업데이트
새 버전이 나왔는지 아는 법
두 군데에서 알려 드립니다. plem 을 실행할 때 새 버전이 있으면 지금 업데이트할지 물어보고, 거절하거나 응답하지 않으시면 평소대로 Robot Control Setup 화면으로 넘어갑니다. TUI 화면 아래 버전 표시 옆에도 새 버전이 함께 뜹니다.
둘 다 조회에 실패하면 조용히 넘어갑니다. 알림이 없다고 최신이라는 뜻은 아닙니다.
지금 버전은 plem version 으로 확인하세요. 버전은 X.Y.Z 형식입니다.
업데이트하기
로봇 스택을 먼저 내려 주세요. 실행 중인 세션이 있으면 업데이트가 시작되지 않고 그대로 중단됩니다. TUI 를 정상 종료하시고, 남은 프로세스가 있으면 plem kill 로 정리하세요.
plem update
진행하시면 다음 순서로 처리됩니다.
- 최신 업데이트 절차를 받아 그것으로 진행합니다. 받지 못하면(인터넷 연결 없음 등) 기기에 설치된 절차로 계속합니다. 그래서 여러 버전을 건너뛰어도 그 사이 추가된 단계를 모두 거칩니다.
- 실행 중인 세션이 없는지 확인합니다.
- 설치된 버전과 새 버전을 보여 주고 계속할지 묻습니다.
- 패키지를 설치합니다. 이번 업데이트로 더 이상 쓰이지 않게 된 패키지가 있으면 이름과 정리 명령을 알려 드립니다(자동으로 지우지 않습니다).
- 운영 계정을 실시간 제어(
realtime)·자격증명(plem) 그룹에 넣습니다. 이미 들어 있으면 넘어갑니다. - 충돌 회피 구성 요소(cuMotion)에 빠진 것이 있으면 채웁니다(JetPack 6 기기).
- 기기의 로봇 모델이 등록 정보와 다르면 승인을 받아 맞춥니다.
끝나면 plem 으로 다시 기동하세요. 업데이트가 스택을 대신 띄워 주지는 않습니다.
0.7.0 이상이 설치된 기기는 중간 버전을 거치지 않고 바로 최신으로 올릴 수 있습니다. 그보다 오래된 기기는 지원 채널로 문의하세요. 1단계(최신 절차 받기)는 0.9.0 다음 버전부터 들어 있어서, 0.9.0 이하에서 처음 올릴 때는 기기에 있던 절차로 진행됩니다. 0.7.x 기기의 plem update 는 처음 한 번 멈출 수 있으니, 그때는 아래 구성 요소 제거 절의 명령으로 올리세요.
업데이트는 ~/.plem 아래 데이터를 백업하지도, 되돌리지도 않습니다. 남겨야 할 데이터가 있으면 업데이트 전에 직접 복사해 두세요.
0.9.0 이하에서 올리시면 업데이트 뒤 첫 기동 때 저장돼 있던 AI 워크플로 세션 기록이 지워집니다. 보존하려면 업데이트 전에 ~/.plem/<로봇 이름>/plem.db 를 복사해 두세요(로봇마다 하나씩 있으니 모두 복사하세요). 워크플로·웨이포인트·Job 은 그대로 남습니다.
업데이트가 401 로 멈추면
plem update 가 패키지 목록을 받다가 401 로 멈추면 이 기기의 토큰이 폐기됐거나 라이선스가 만료된 것입니다. 저장소에서는 둘을 구별할 수 없으니 담당자에게 확인하세요.
-
만료 — 담당자에게 연장(Renew)을 요청하세요. 연장된 뒤 기기에서 아래 명령으로 새 라이선스를 받고 로봇 스택을 다시 시작하세요. 연장 전에 실행하면 같은 401 로 거부됩니다.
sudo plem-register --refresh -
폐기 — 폐기된 토큰은 되살릴 수 없습니다. 담당자에게 새 토큰을 받아
plem uninstall로 제거한 뒤 첫 설치부터 다시 하셔야 합니다(설치 명령은 이미 등록된 기기에서 멈춥니다).
라이선스 문제 전반은 문제 해결 §라이선스에 있습니다.
구성 요소를 지워야 한다며 멈추면
업데이트는 설치된 구성 요소를 지워야 할 때, 새 버전이 그 이름을 은퇴시켰다고 선언한 경우에만 지우고 진행합니다. 선언되지 않은 제거가 필요하면 아무것도 바꾸지 않고 멈춥니다.
0.7.x 기기에 있던 옛 절차는 이 판단을 하지 못해 은퇴한 구성 요소가 있어도 멈춥니다. 이때는 최신 절차로 한 번만 직접 실행하세요. 그다음부터는 plem update 가 정상 동작합니다.
curl -fsSL https://depot.wimcorp.dev/jetson/update.sh | sudo bash
최신 절차로도 같은 안내가 나오면 지원 채널로 문의하세요.
다른 패키지 작업 중이라며 멈추면
자동 업데이트 같은 다른 패키지 작업이 실행 중이면 패키지 설치는 최대 5분 기다립니다. 패키지 목록을 받는 단계는 기다리지 않고 Could not get lock 으로 멈추니, 잠시 뒤 다시 실행하세요.
업데이트한 뒤
한 번만 하시면 됩니다.
- 다시 로그인하세요. 업데이트가 운영 계정을
realtime·plem그룹에 새로 넣었다면 다시 로그인(또는 재부팅)해야 적용됩니다.id -nG로 확인할 수 있습니다. - 새 터미널에서
ros2 daemon stop을 한 번 실행하세요. 이미 떠 있던ros2데몬이 예전 통신 설정을 기억하고 있을 수 있습니다. 다음ros2명령이 새 설정으로 데몬을 다시 띄웁니다. ~/.bashrc등에ROS_DOMAIN_ID·CYCLONEDDS_URI·RMW_IMPLEMENTATION을export해 두셨다면 지우세요.plem은 그 값을 읽지 않고, 새 터미널에 같은 값을 넣어 줍니다. 남겨 두면 그 셸의ros2만 로봇과 갈라집니다. 도메인은 TUI 설정(,)에서 바꿉니다.- 변경 이력의 호환성 주의 항목을 확인하세요. 외부 프로그램이나 설정을 고쳐야 하는 변경이 거기 모여 있습니다.
알아 둘 것
원격 ROS 2 클라이언트를 쓰신다면 기기의 ROS 2 통신은 기본적으로 기기 안(루프백)에서만 열립니다. 다른 PC 에서 이 기기의 토픽을 보시려면 /usr/share/plem/cyclonedds-localhost.xml 을 /etc/plem/cyclonedds.xml 로 복사해 네트워크 인터페이스 이름만 바꾸세요. 방법은 ROS 2 통합에 있습니다. 예전에 PLEM_CYCLONEDDS_SYSTEM_DEFAULT=off 로 원격 접속을 열어 두셨다면 그 값은 이제 읽히지 않으니 같은 방법으로 옮기세요.
라이선스는 다시 발급받지 않으셔도 됩니다. 검증은 소프트웨어 버전을 보지 않습니다. 만료된 경우는 위 401 절을 보세요.
커스텀 토크 컨트롤러를 쓰신다면 플러그인 인터페이스(C-ABI)의 큰 버전이 그대로면 이미 빌드한 플러그인은 그대로 동작합니다. 다만 다시 빌드할 때 소스를 고쳐야 하는 변경이 있을 수 있으니 업데이트 전에 변경 이력의 「개발자 SDK」 항목을 확인하세요. PLEM 의 큰 버전(major)이 올라가는 업데이트는 알림이 플러그인 재빌드 가능성을 함께 알려 드립니다.
되돌리기는 지원하지 않습니다
이전 버전으로 내리거나 업데이트를 되돌리는 기능은 없습니다. 업데이트 후 문제가 있으면 지원 채널로 문의하시거나, plem uninstall --keep-license 로 제거한 뒤 다시 설치해 복구해 주세요(이미 등록된 기기라 남아 있는 라이선스를 그대로 씁니다).