명령줄
TUI 화면을 열지 않고 터미널에서 쓰는 plem 명령들입니다.
plem 은 plem-cli 패키지가 설치하는 명령으로, plem <명령> 을 이 기기에 설치된 plem-<명령> 실행 파일에 인자 그대로 넘깁니다. 그래서 쓸 수 있는 명령은 설치된 패키지에 따라 달라집니다 — 예를 들어 드라이브 패키지(plem-drive)만 설치한 기기에는 plem drive 만 있습니다. plem --help 는 이 기기에 설치된 명령 목록을 보여 주고, 각 명령의 자세한 도움말은 plem <명령> --help 로 봅니다. 인자 없이 plem 만 실행하면 TUI 가 설치돼 있을 때 TUI 를 띄우고, 없으면 명령 목록을 보여 줍니다. 설치되지 않은 명령을 부르면 plem <명령>: not installed on this device (no plem-<명령>) 한 줄을 출력하고 종료 코드 127 로 끝납니다.
| 명령 | 용도 |
|---|---|
plem version | 설치된 PLEM 버전 |
plem update | 업데이트 |
plem kill | 남은 스택 프로세스 정리 |
plem remote | 원격 지원 연결 |
plem code | AI 에이전트(베타, 기본 설치에 포함). 로봇 스택 기동·정지, 이동, 그리퍼, 저장 포즈를 대화로 다룹니다. 물리 동작과 저장 포즈·프로필 변경은 실행 전에 확인을 받습니다 |
plem workspace | 사용자 워크스페이스 확인 · 해제 |
plem profile | 로봇 프로필의 그리퍼 · F/T 센서 확인 · 변경 |
plem init <이름> | 커스텀 토크 컨트롤러 스캐폴드 |
plem drive <동사> | 서보 드라이브 도구(check, run. 목록은 plem drive --help). plem-drive <동사> 로 직접 불러도 같습니다. 내 서보 드라이브 붙이기 |
plem uninstall | PLEM 제거 — 아래 plem uninstall |
plem code 는 Teaching Pendant 에서 Job 이 실행 중이거나 일시정지돼 있으면 팔 이동·그리퍼 명령을 거부하고 그 Job 을 알려 줍니다 — 펜던트에서 ⏹ 로 Job 을 끝낸 뒤 다시 시키세요. 확인은 명령을 보내기 직전 한 번뿐이라, 그 뒤 펜던트에서 새로 시작한 Job 과 겹치는 것은 막지 못합니다.
plem 을 실행할 때 뜨는 질문
업데이트 안내. 새 버전이 있으면 TUI 가 뜨기 전에 안내가 먼저 나옵니다.
PLEM 0.10.0 → 0.10.1 사용 가능 (패치)
지금 업데이트하시겠습니까? [Y/n] (20초 무응답 시 로봇을 실행합니다)
Enter 나 y 는 업데이트를 시작하고, n 은 건너뜁니다. 20초 동안 아무것도 누르지 않거나 Ctrl+C 를 누르면 질문을 건너뛰고 TUI 로 넘어갑니다 — 무인 재시작에서 업데이트 질문이 기동을 막지 않게 하려는 동작입니다. 질문은 터미널에서 직접 실행했을 때만 나오고, 새 버전 확인에 실패하면 그냥 넘어갑니다. 자세한 절차는 업데이트에 있습니다.
워크스페이스 채택. 빌드된 사용자 워크스페이스 안에서 plem 을 실행하면 그 워크스페이스를 쓸지 묻습니다 ([y/N], 기본은 아니오). 채택한 워크스페이스는 로봇 기동 전체에 오버레이로 적용되고 커스텀 토크 컨트롤러 검색에도 쓰입니다 — 커스텀 토크 컨트롤러. 그 용도가 아니면 아니오로 두세요.
plem kill
TUI 가 비정상 종료돼 스택 프로세스만 남았을 때 씁니다. 모든 프로세스에 한꺼번에 종료 신호를 보내고 3초 뒤 남은 것을 강제로 끝냅니다. plem drive run 으로 띄운 드라이브 버스는 대상에서 빠집니다 — 그 버스는 띄운 터미널에서 Ctrl-C 로 세우세요.
plem kill --dry # 무엇을 끝낼지 목록만 봅니다
plem kill # 정리합니다
plem kill --force # 기다리지 않고 즉시 강제 종료합니다 (--dry 와 함께 주면 --force 가 이깁니다)
plem remote
지원팀이 요청했을 때 실행하세요. 원격 지원 터널이 열리고 터미널을 차지합니다. Ctrl+C 로 끊습니다.
plem workspace
등록한 워크스페이스를 보여 줍니다(로봇 기동 전체에 적용되는 오버레이 — 커스텀 토크 컨트롤러가 주 용도). plem workspace clear 는 등록만 해제합니다 — 로봇 프로필에서 고른 Plugin 컨트롤러는 그대로이므로, 기본 컨트롤러로 돌아가려면 프로필의 토크 컨트롤러도 되돌리세요.
plem profile
plem profile grippers 는 이 기기에서 쓸 수 있는(드라이버가 설치된) 그리퍼 모델을 보여 줍니다. plem profile set-gripper <로봇> <모델> 은 그 로봇의 그리퍼를 바꾸고, none 을 주면 해제합니다. 드라이버가 설치된 모델만 받고, 통신 방식은 모델에 맞춰 자동으로 정해지며, 이전 모델의 세부 설정은 지웁니다. 저장한 값은 다음 기동부터 적용됩니다. 카메라 캘리브레이션이 있는 로봇이면 바꾼 뒤 재캘리브레이션 경고(The tool stack changed (…))를 한 줄 남깁니다 — 저장은 그대로 됩니다. --dry-run 을 붙이면 바뀌는 내용만 보여 주고 저장하지 않습니다. 다른 곳(설정 화면·Pendant)이 같은 로봇을 저장하는 중이면 잠시 후 다시 시도하라고 알립니다. plem code 에 「그리퍼 rg6 연결해줘」라고 하면 이 명령으로 처리됩니다(변경 내용을 보여 주고 확인을 받습니다).
plem profile ft-sensors 는 이 기기에서 쓸 수 있는(설명 패키지가 설치된) F/T 센서 모델을, plem profile set-ft-sensor <로봇> <모델> 은 그 로봇의 F/T 센서를 바꾸고 none 이면 해제합니다. 설정 화면과 Pendant 의 로봇 편집에서도 고를 수 있습니다. 새로 고를 때 그 센서가 지원하지 않는 로봇이면 cannot be set on this robot 으로 지원 로봇 목록과 함께 거절하고(AFT200-D80 은 Neuromeka Indy7 v3), 프로필에 로봇 모델이 정해지지 않았으면 그 사실을 알리며 거절합니다. 해제는 언제나 됩니다. --dry-run·다음 기동부터 적용·다른 곳이 저장 중일 때의 안내는 그리퍼와 같습니다. plem code 는 F/T 센서를 바꾸지 않습니다.
plem uninstall
PLEM 을 기기에서 지웁니다. 먼저 sudo 암호를 묻고, 지울 범위를 보여 준 뒤 확인을 받고 진행합니다. 패키지만 새로 받으려는 것이면 제거하지 말고 plem update 를 쓰세요.
plem uninstall --keep-license # 라이선스·기기 키를 남기고 제거합니다
plem uninstall --help # 전체 옵션
기본은 라이선스와 plem code 기기 키까지 지웁니다. 하지만 기기 등록은 PLEM 서버에 그대로 남아, 같은 기기를 다시 등록하면 어떤 토큰으로도 거부됩니다. 지운 뒤 다시 설치하려면 담당자에게 기존 기기 등록 삭제를 요청하고(그 등록에 쓴 토큰도 함께 폐기됩니다), 새로 받은 토큰으로 설치하세요. 부득이 제거하실 때는 --keep-license 를 붙여 라이선스와 기기 키 파일을 남기고, 다시 설치하기 전에 지원팀에 문의하세요 — 기기 키는 PLEM 서버도 다시 알려 주지 않아, 남긴 파일이 유일한 사본입니다. 로봇 프로필 등 사용자 데이터(~/.plem)는 기본으로 남습니다.
plem init
커스텀 토크 컨트롤러 스캐폴드를 만듭니다. 전체 흐름은 커스텀 토크 컨트롤러에 있습니다.