변경 이력
v0.9.0
최신호환성 주의
- 로봇: 관절 브레이크 조작이 전 벤더에서 전원과 함께 움직입니다 — 해제는 관절에 전원을 넣어 자세를 잡은 채 풀고(이동(TRAJECTORY)·프리드라이브 모드에서만 받아들입니다), 체결은 전원을 내려 잠급니다.
- 로봇: 전원을 끈 채 브레이크만 풀어 팔을 손으로 밀던 조작이 없어집니다 — 충돌 뒤 재배치는 화면의 복구 조작으로 오류를 초기화한 다음 프리드라이브에서 중력보상을 받으며 손으로 옮기고, 보호정지가 살아 있으면 원인(비상정지 버튼, 팔이 밀고 있는 외력)을 먼저 없애 안전 상태가 NORMAL 로 돌아온 뒤 프리드라이브로 들어갑니다.
- 로봇: Indy7 계열·Elfin10-L 은 기기 시리얼 없이 기동하면 즉시 오류로 멈춥니다 — 관절 보정값의 유일한 원천이 기기별 프로필(`~/.plem/profiles/<시리얼>.json`)이라 이전처럼 시리얼 없이 보정값 0 으로 조용히 기동해 자세가 어긋나는 일을 막는 것으로, plem TUI 로 기동하면 로봇 프로필에 등록된 시리얼이 자동으로 전달됩니다.
- 로봇: Elfin 로봇의 모션 계획이 Pilz(PTP·LIN·CIRC) 전용으로 바뀝니다 — 계획기를 `ompl` 로 지정해 둔 RViz·MoveIt 구성은 Pilz 로 바꿔야 하고, Elfin 에는 장애물 회피 계획이 제공되지 않습니다.
- 로봇: 장애물 회피가 필요한 계획 요청은 충돌 회피(cuMotion)가 켜져 있지 않으면 다른 계획기로 대체되지 않고 거부됩니다 — 회피 계획은 cuMotion 을 켠 Humble 트레인의 Neuromeka 로봇에서만 실행되고 그 밖에서는 기본(결정론적) 계획으로 바꿔 보내야 하며, 계획기를 직접 지정하던 `planner_hint` 도 더는 계획기를 바꾸지 못하고 다르면 거부되니 이 값은 비우고 회피 필요 여부로 요청하십시오.
- 그리퍼: 그리퍼 하드웨어 플러그인 이름이 `neuromeka_robot_driver/GripperHardwareInterface` 에서 `plem_robot_nodes/GripperHardwareInterface` 로 바뀝니다 — 옛 이름을 손으로 적어 둔 URDF 는 기동에 실패하므로 새 이름으로 고쳐야 합니다(제공된 그리퍼 xacro 를 그대로 쓰는 구성은 조치가 필요 없습니다).
- 튜닝: b0 자동 튜닝이 위치영역 하나로 통일되면서 같은 이름의 튜닝 액션이 다른 계약을 갖습니다 — `TuneB0Position`(`tune_b0_position`)을 쓰던 호출자는 `TuneB0`(`tune_b0`)로, 튜닝 도구는 `online-position` 대신 `online` 서브커맨드로 바꾸고 `adapt_sign` 은 ±1 을 반드시 명시해야 합니다(속도영역 튜너는 은퇴).
새 기능
- 문서: 공개 문서 사이트에 plem TUI · Teaching Pendant · Plem Lab 사용 가이드가 화면별 페이지로 들어갑니다 — 기동 구성·제어·정지와 복구·조작·튜닝·실행 절차를 실제 화면 캡처와 함께 단계별로 설명합니다.
개선·변경
- 문서: 카메라(ZED X Mini)와 충돌 회피(cuMotion)가 ROS 2 Humble 트레인에서만 제공되는 점을 하드웨어·기동 안내에 명시합니다.
- 로봇: 서버가 로봇의 기준 프레임과 벤더 도구(마스터링·도달성 검사)를 설치된 로봇 카탈로그에서 해석합니다 — Neuromeka 고정값을 없애 다른 벤더 로봇(Huayan Elfin)에서도 장면·캘리브레이션 흐름이 올바른 프레임으로 동작합니다.
- 안전: 로봇 모션 잠금(캘리브레이션·TUI·서버 사이의 동시 조작 방지)을 한 구현으로 통일합니다 — 구성 요소마다 따로 두던 사본이 서로 다른 잠금 파일을 잡아 배타가 조용히 풀릴 수 있던 경로를 없앴습니다.
- 문서: AI 코딩 에이전트용 문서(`depot.wimcorp.dev/docs/<버전>/llms.txt`)가 공개 문서 사이트와 코드에서 컴파일한 위키(전수 인덱스 + 자기완결 페이지)로 바뀝니다 — 구 developer manual 챕터 재발행을 중단합니다. 이 문서는 플러그인 없이 어떤 코딩 에이전트에서도 같은 URL 로 씁니다(Claude Code 용 `plem-docs` 플러그인은 은퇴).
- 로봇: plem TUI 에서 Huayan Elfin 로봇을 골라 그대로 기동할 수 있습니다 — 로봇 종류가 지정되지 않으면 엉뚱한 로봇으로 기동하지 않고 즉시 오류로 알리며, 관절 목록도 벤더와 무관하게 올바로 읽습니다.
- 조그: Teaching Pendant 에서 조그 속도를 1 % 단위로 지정합니다 — 슬라이더가 1 % 격자로 움직이고 ±1 % 버튼과 퍼센트 표시가 함께 붙습니다.
수정
- 문서: 릴리스마다 공개 문서 사이트가 Humble·Jazzy 두 트레인 모두 같은 버전으로 갱신됩니다 — 이전에는 Jazzy 문서가 0.6.5 에 머물러 있었습니다.
- 로봇: JP7 기기에서 관절 이동 명령이 모두 "IK solver" 오류로 거부되던 문제를 고쳤습니다 — Jazzy 트레인의 로봇 패키지가 IK 솔버 플러그인(TRAC-IK)을 함께 설치합니다.
- Teaching Pendant: JP7 기기에서 3D 패널을 연 뒤 rosapi 노드가 종료돼 3D 로봇 모델·Plem Lab 로봇 검색이 되지 않던 문제를 고쳤습니다 — 설치·업데이트 시 rosapi 의 알려진 결함을 자동 보정하고, rosapi 가 apt 로 갱신돼도 다시 적용됩니다.
- Teaching Pendant · Plem Lab: 로봇 모델을 읽을 때 존재하지 않는 노드까지 조회해 로그에 `Service /robot_state_publisher/get_parameters is not available` 가 남던 동작을 없앴습니다.
- 로봇: 설정 화면에서 Elfin 로봇에 '플래닝 미지원' 표시가 잘못 붙던 것을 없앴습니다 — 이 로봇은 실제로 모션 계획이 됩니다.
- 로봇: Elfin10-L 에서 브레이크를 푸는 중 드라이브가 고장으로 떨어져 관절이 잠긴 채 보호정지로 무너지던 문제를 고쳤습니다 — 이전 운전에서 남은 고장도 전원 재투입 없이 초기화됩니다.
- 로봇: Elfin10-L 의 링크 질량·무게중심·관성과 토크 환산 값을 벤더 자료를 근거로 정정하고 제어 튜닝 기본값을 다시 잡았습니다 — 중력보상이 과하게 걸려 프리드라이브에서 팔이 밀리던 현상과 화면 토크 표시의 오차가 개선되며, 일부 관절 모듈과 프리드라이브 밀림은 실기 확인이 남아 있습니다.
- 문서: 문서 사이트 주소로 들어가면 배포판 선택 화면 대신 문서 첫 화면으로 바로 연결됩니다 — 배포판(Humble/Jazzy) 전환은 상단 토글에서 합니다.
제거
- 문서: plem-tui 패키지가 개발자 매뉴얼 PDF(`/opt/plem/share/doc/plem-developer-manual.pdf`)를 더 이상 동봉하지 않습니다 — 개발자 문서는 공개 문서 사이트(https://www.wimcorp.co.kr/plem/)가 정본이며, PDF 는 릴리스 산출물로만 제공됩니다.
- 로봇: 드라이버에 등록되지 않은 로봇 모델 12종(icon·indyrp2·nuri·opti·indy12 계열)을 선택 목록에서 제거합니다 — 목록에는 드라이버 레지스트리에 등록된 모델(Indy7 계열, Elfin10-L)만 남으며, 이전에는 제거된 항목을 고르면 'Unknown robot model' 로 실패했습니다.
v0.8.0
새 기능
- 그리퍼: JP7(Ubuntu 24.04) 기기에서도 Danhae 그리퍼 패키지가 함께 설치됩니다.
- 튜닝: 위치영역 b0 온라인 튜닝 도구가 추가됩니다 (전문가용).
개선·변경
- 패키징: 모든 릴리스 패키지를 격리된 컨테이너에서 빌드하고, 설치 검증을 통과한 산출물만 발행합니다.
- 조그: 조그 명령의 적용이 불확실하게 끝난 경우 화면이 이를 구분해 표시합니다.
수정
- 조그: JP7 기기에서 조그 실패 후 복구가 이어지지 않던 문제를 고쳤습니다.
- 로봇: JP7 기기에서 프리드라이브 명령이 올바로 전달되지 않던 문제를 고쳤습니다.
v0.7.1
사용자 가시 변경 없음
v0.7.0
새 기능
- 설치: 파이썬 구성 요소가 필요한 라이브러리를 패키지에 담아 배포합니다 — 설치·업데이트 중 인터넷이 끊겨도 완료됩니다.
개선·변경
- 설치: 통신 설정·실시간 권한·환경 변수·카메라 권한을 패키지가 직접 관리합니다. 설치하면 항상 갖춰지고, 제거하면 함께 정리됩니다.
- 업데이트: 설치 대상 목록을 대표 패키지 하나가 관리해 `plem update` 가 구성 요소를 빠뜨리지 않습니다.
- 원격 지원: 원격 지원 도구가 라이선스 도구와 함께 항상 설치됩니다.
- 온보딩: 설치·업데이트·제거가 서로 겹쳐 실행되지 않도록 잠금을 공유합니다.
- 패키징: 패키지 버전 표기에 배포판 이름이 붙습니다 (예: `0.7.0-1jammy`).
- 문서: 공개 문서 사이트를 개편했습니다 — 브랜드 테마, 화면 스크린샷, 변경 이력 페이지.
수정
- 온보딩: 설치 중 네트워크가 끊겨도 스크립트가 중간까지만 실행되지 않습니다.
- 설치: ROS 2 저장소 키를 내려받을 때 검증하고 원자적으로 배치합니다.
- 제거: `--keep-license` 가 라이선스를 실제로 보존합니다.
- 제거: ROS 2 저장소 원복이 다른 패키지가 쓰는 키 참조를 보존합니다.
- 업데이트: 시스템 언어 설정과 무관하게 버전이 올바로 표시됩니다.
- 라이선스 발급: 토큰 앞뒤 공백 때문에 인증이 실패하던 문제를 고쳤습니다.
- 라이선스 발급: 빈 토큰을 넘기면 즉시 오류로 알립니다.
제거
- 업데이트: `plem update --rollback` 을 은퇴했습니다 — 실행하면 안내와 함께 중단되며, 복구는 재설치로 합니다.