기동 구성 — Robot Control Setup
plem 을 실행하면 처음 보이는 화면입니다. 여기서 고른 값으로 로봇 스택이 기동됩니다. 위에서 아래로 진행하세요.
- 띄울 로봇을 선택합니다.
- 로봇마다 EtherCAT 마스터를 배정합니다.
- 제어 주기를 확인합니다.
- 구성 요소를 켜고 끕니다.
- Start 를 누르거나
s를 누릅니다. Robot Control 화면으로 넘어간 뒤 거기서s를 한 번 더 눌러야 스택이 기동됩니다.
이 화면에는 키 안내 줄이 없습니다. 주요 키는 셋입니다 (한글 입력 상태에서는 s 대신 ㄴ).
| 키 | 동작 |
|---|---|
s | Start |
, | 설정 열기 |
Esc | 취소 — 프로그램이 종료됩니다 |
ROS_DOMAIN_ID 줄
맨 위 한 줄은 이 기기가 어느 ROS 2 도메인에서 동작하는지를 알려 줍니다. 값은 설정(,)에 저장한 값 하나입니다 — 셸 환경 변수는 읽지 않습니다.
| 표시 | 뜻 |
|---|---|
✓ ROS_DOMAIN_ID: N | 이번 실행에 적용된 값입니다. 설정을 바꾸면 plem 을 다시 시작할 때까지 Settings has M: restart plem to apply 가 붙습니다 |
⚠ ROS_DOMAIN_ID: 0 (default …) | 도메인이 지정되지 않았거나 0 입니다 — 같은 DDS 전송 범위에서 도메인 0 을 쓰는 다른 ROS 2 참여자와 통신이 섞일 수 있습니다 |
기본 DDS 설정은 기기 안(localhost)으로 한정돼 있지만, 외부 ROS 2 환경과 연결하실 때는 도메인을 정해 두세요 — 설정에서 1–101 사이 값을 지정합니다. 도메인은 plem 이 시작할 때 한 번 정해집니다 — 설정을 바꾼 뒤에는 스택 재기동이 아니라 plem 을 완전히 종료하고 다시 실행해야 적용되고, 그 뒤에 여는 터미널부터 새 값을 받습니다. 자기 ROS 2 환경과 맞추는 방법은 ROS 2 통합에 있습니다.
로봇 선택
목록의 각 줄은 로봇 ID (시리얼) 모델 입니다. 등록된 로봇이 없으면 목록 대신 안내가 나옵니다 — 납품 구성과 다르면 지원팀에 문의하세요. 모델 자리에 주황색 no model — set in Settings 나 invalid model (blank) — fix in Settings 가 보이면 그 로봇은 기동되지 않습니다 — 지원팀에 문의하세요.
여러 대를 함께 띄우실 수 있습니다. 단 동시에 기동하는 로봇 수는 검출된 EtherCAT 마스터 수를 넘을 수 없고, 같은 제조사 로봇은 한 번에 최대 4대입니다(초과는 Start 뒤 기동 단계에서 거부됩니다). Teaching Pendant 는 로봇 한 대일 때만 켤 수 있습니다 — 두 대 이상 고르면 그 토글이 꺼지고 잠깁니다. Plem Lab 은 여러 대에서도 됩니다.
EtherCAT 마스터 배정
기기가 검출한 마스터 번호가 Assign masters (available: …) 에 나열됩니다. 로봇을 선택하면 비어 있는 마스터가 자동으로 배정됩니다. 다른 로봇이 이미 쓰는 마스터를 고르면 두 로봇의 배정이 서로 바뀝니다.
마스터가 하나도 검출되지 않으면 배정 줄 대신 이 문구가 나옵니다.
LAN 케이블과 서보 전원을 확인하신 뒤 다시 검출시키세요 — 설정(,)을 열었다 닫거나, Esc 로 나갔다가 plem 을 다시 실행하면 됩니다.
제어 주기
마스터 옆 입력란이 제어 주기입니다. 단위는 마이크로초이고 200–1000 사이만 받습니다. 기본값 1000 µs 가 1 kHz 이며, 값을 바꾸면 옆의 힌트가 µs (2.5 kHz) 처럼 따라 바뀝니다. 특별한 이유가 없으면 기본값을 두세요. 이 값은 기억되지 않고 실행할 때마다 1000 으로 시작합니다.
구성 요소
| 토글 | 기본값 | 조건 | 켜면 |
|---|---|---|---|
| MoveIt | 켜짐 | — | 모션 플래닝이 뜹니다. 관절 이동·Teaching Pendant 의 이동 노드가 이것을 씁니다 |
| Camera (Perception) | 꺼짐 | MoveIt + 인식 지원 카메라가 지정된 로봇 | 카메라 드라이버와 3D 인식이 뜹니다(인식 지원 카메라가 없는 로봇에서는 아무것도 뜨지 않습니다). Jetson 의 CPU·GPU 메모리를 많이 씁니다. 카메라별 트레인 지원은 지원 하드웨어 참조 — RealSense D455 는 두 트레인 공통, ZED X Mini 는 ROS 2 Humble(JetPack 6) 트레인 한정 |
| Perception Profile | balanced | MoveIt + Camera | 인식 품질과 속도의 균형 — fast · balanced · precise · thin_object_precise |
| Collision Avoidance (cuMotion) | 꺼짐 | MoveIt + 충돌 회피 지원 모델(Indy7 계열) | 장애물 회피 플래닝이 뜹니다. 카메라가 꺼져 있으면 로봇 자체 충돌 검사와 미리 등록된 정적 장애물만 다루고, 카메라로 만드는 동적 환경 맵은 없습니다. 지원 모델에서는 ROS 2 Humble(JetPack 6) 트레인 한정: Jazzy(JetPack 7) 기기에는 cuMotion 이 아직 프로비저닝되지 않았습니다 — 이 토글을 켜고 Start 하면 로봇 스택 기동이 실패합니다(사전 경고 없음). Elfin10-L 은 충돌 회피 지원 모델이 아니라 이 토글을 켜도 cuMotion 을 건너뛰고 정상 기동합니다 |
| Teaching Pendant | 켜짐 | 로봇 1대 | 웹 Teaching Pendant 가 뜹니다 |
| Plem Lab | 켜짐 | — | 웹 Plem Lab 이 뜹니다 |
Jazzy(JetPack 7) 기기에서 이 화면을 쓰신다면: Camera 는 RealSense 로 정상 동작합니다. 충돌 회피 지원 모델(Indy7 계열)에서는 Collision Avoidance(cuMotion)를 반드시 꺼둔 채로 두세요 — 켜고 Start 하면 로봇 스택 기동이 실패합니다. 트레인별 지원 범위는 로봇 스택 기동에 정리돼 있습니다.
MoveIt 을 끄면 Camera 와 Collision Avoidance 도 함께 꺼지고 잠깁니다. 다시 켜면 이전 선택이 돌아옵니다. Collision Avoidance 를 켰는데 Camera 가 꺼져 있으면 Start 때 동적 환경 맵이 없다는 안내가 뜹니다 — 필요하면 Camera 도 켜세요.
구성 요소 선택은 이 화면에서 Start 가 받아들여지는 순간 기억돼 다음 실행의 기본값이 됩니다. 로봇 선택과 마스터 배정은 기억되지 않습니다.
Start 가 막힐 때
Start 버튼은 준비가 끝나야 초록으로 바뀝니다. 초록이 아닌 채로 누르면 화면에 이유가 나옵니다.
| 안내 | 하실 일 |
|---|---|
No robots selected | 로봇을 하나 이상 체크하세요 |
No EtherCAT masters available | 케이블·서보 전원을 확인하고 다시 실행하세요 |
N robots selected but only M EtherCAT master(s) available | 로봇 수를 마스터 수 이하로 줄이세요 |
Assign a master to <로봇> · Duplicate master N | 마스터를 로봇마다 하나씩, 겹치지 않게 배정하세요 |
<로봇>: serial not set — add it in Settings | 프로필에 시리얼이 없습니다 — 지원팀에 문의하세요 |
Robot '<로봇>' has no robot model — set Robot Model in Settings [,] → Edit Robot … (Robot Control 에서 s) | 프로필에 로봇 모델이 없습니다 — 지원팀에 문의하세요 |
Robot '<로봇>': robot model '<모델>' is not in any installed robot_models.yaml catalog … (Robot Control 에서 s) | 프로필의 모델이 이 기기에 설치된 로봇 모델이 아닙니다 — 지원팀에 문의하세요 |
<로봇>: control period must be 200-1000 µs | 제어 주기를 범위 안으로 고치세요 |
<로봇>: Camera serial number is required to start the camera stack … | 카메라 시리얼이 프로필에 없습니다 — 카메라를 연결한 채 다시 Start 하면 한 대만 검출될 때 자동으로 채워집니다. 그래도 막히면 지원팀에 문의하세요 |
Start 직후 알림 몇 가지가 뜰 수 있습니다. camera extrinsic not calibrated 는 카메라는 뜨지만 장애물 인식은 꺼진다는 뜻입니다 — Hand-eye 캘리브레이션을 마치면 켜집니다.
설정 (,)
Robot Control Setup 과 Robot Control 어느 쪽에서든 , 로 설정을 엽니다. 위쪽은 로봇 목록, 아래쪽은 이 기기의 설정입니다.
| 항목 | 설명 |
|---|---|
| Log Level | 스택 로그의 상세 정도 — Error only · Warning+ · Info(기본) · Debug |
| ROS_DOMAIN_ID | 1–101. 비우면 미지정(0)입니다 |
| plem-server hot reload (Development) | 개발용입니다. 꺼 둔 채로 두세요 |
Save 를 누르면 Settings saved. Restart plem to apply. 가 뜹니다 — 로그 상세 정도는 다음 스택 기동부터, ROS 도메인은 plem 을 다시 실행해야 적용됩니다.
~/.plem/settings.yaml 의 ros_domain_id 를 손으로 고쳐 1–101 정수가 아닌 값이 들어가면 plem 이 시작하지 않고 그 파일과 허용 범위를 알려 줍니다 — 그 줄을 고치거나 지우세요.
로봇 행의 Del 은 확인을 물은 뒤(y 확정, n 취소) 그 로봇의 프로필을 지웁니다. 되돌릴 수 없고 이 화면에서 다시 등록할 수도 없으니 누르지 마시고, 필요하면 지원팀에 문의하세요. + Add Robot 으로 로봇을 새로 등록하는 일은 납품 때 마쳐 두므로 보통은 쓰지 않습니다.
로봇 편집
로봇 행의 Edit 를 누르면 그 로봇의 프로필이 열립니다. 장착한 그리퍼·F/T 센서를 바꿨거나 카메라 캘리브레이션 기록을 고를 때 씁니다. Save 로 저장한 값은 다음 스택 기동부터 적용됩니다. 같은 항목은 Teaching Pendant 의 로봇 설정과 plem profile 명령으로도 바꿀 수 있습니다.
| 항목 | 설명 |
|---|---|
| Robot ID | 편집에서는 바꿀 수 없습니다 |
| Serial · Robot Model · Torque Controller | 납품한 로봇 개체에 맞춰 설정돼 있습니다 — 바꾸셔야 하면 지원팀에 문의하세요. 커스텀 토크 컨트롤러는 커스텀 토크 컨트롤러를 따르세요 |
| Gripper | 장착한 그리퍼 모델. 비우면 그리퍼 없음입니다. 통신 방식은 모델에 맞춰 정해집니다 |
| F/T Sensor | 장착한 F/T 센서 모델. 비우면 센서 없음입니다 — F/T 센서 |
| Camera · Configure Camera… | 카메라 모델과 그 세부 설정. 카메라 모델을 바꾸면 Calibration 선택이 비워집니다 — 캘리브레이션은 카메라 모델마다 따로입니다 |
| Calibration | 이 로봇에 연결할 카메라 캘리브레이션 기록. 고른 카메라·로봇 모델에 맞는 기록만 이름 · RMS … mm · 날짜 로 나옵니다. 비우면 공장 기본 장착값을 씁니다 — 이때 장애물 인식은 꺼집니다 |
목록은 이 기기에 설치된 모델만 보여 줍니다. 목록이 비어 있고 Gripper/Camera/F/T options unavailable … Check that the PLEM/ROS environment is sourced and that the robot packages are installed. 가 뜨면 PLEM 설치가 온전하지 않은 것입니다 — 지원팀에 문의하세요.
편집·저장할 때 나올 수 있는 안내입니다.
| 안내 | 뜻 |
|---|---|
The tool stack changed (…): the camera calibration was measured with the previous setup. Recalibrate the camera before using it. | 카메라 캘리브레이션이 있는 로봇에서 그리퍼나 F/T 센서를 바꿨습니다. 카메라가 툴에 붙어 있으면 위치가 달라지므로, 카메라를 쓰려면 Hand-eye 캘리브레이션을 다시 하세요. 저장과 기동은 막지 않습니다 |
Robot model changed (…): an existing camera calibration was measured on the old model … | 로봇 모델을 바꿨습니다. 이전 모델에서 잰 캘리브레이션으로는 카메라를 켠 기동이 거부되니 다시 캘리브레이션하세요 |
Changing the gripper drops its vendor params (…) on save. | Teaching Pendant 에서 그리퍼 세부 설정을 정해 둔 로봇에서 Gripper 선택을 바꾸면 바로 뜹니다. 그대로 저장하면 그 세부 설정이 지워집니다 |
… cannot be set on this robot … | 고른 F/T 센서를 이 로봇 모델에 쓸 수 없습니다 — 지원 로봇 목록이 함께 나옵니다 |
… changed on disk since it was opened (another writer) — reopen the robot and redo this edit | 편집 화면을 연 사이 Teaching Pendant 나 plem profile 이 같은 항목을 저장했습니다. 아무것도 저장되지 않았으니 편집 화면을 닫고 다시 열어 고치세요 |
편집 화면을 연 사이 다른 곳이 다른 항목을 저장했다면, 저장은 내가 바꾼 항목만 적용하고 그쪽에서 바꾼 값은 그대로 둡니다.