3.8 트러블슈팅
| 증상 | 가능한 원인 | 진단 | 조치 |
|---|---|---|---|
| 한 관절만 반대로 움직임 | axis 또는 캘리브레이션 부호 불일치 | 작은 양의 명령, 시뮬레이션/실물 비교 | 매핑 행렬의 해당 부호 수정, 재검증 |
| 시작 순간 크게 튐 | 첫 자세 불일치 | 시작 직전 Leader/Follower 차이 출력 | 제한 속도 정렬 단계 추가 |
| 그리퍼가 반대로 작동 | 0/100 극성 또는 URDF 매핑 혼동 | 명령 단위를 분리해 로그 | 명시적 변환 함수 사용 |
| IK가 특이점에서 진동 | 감쇠 부족, 방향 과제 과구속 | 최소 특이값과 스텝 크기 기록 | 증가, 위치 우선, step clamp |
| IK가 수렴하지 않음 | 목표가 작업 공간 밖 | 최종 오차와 joint clamp 횟수 확인 | 목표 투영, 실패 상태 반환 |
JointState가 뒤섞임 | 배열 인덱스를 이름 없이 복사 | name 배열 비교 | 사전 기반 이름 재정렬 |
| 주기적 timeout | USB/전원/케이블 또는 너무 짧은 timeout | 모터 LED, 포트 로그, 주기 히스토그램 | 배선/전원 확인 후 timeout 재설계 |
| RViz 형상이 튐 | 중복 TF 또는 오래된 stamp | ros2 run tf2_tools view_frames | namespace/frame prefix 분리 |
| Isaac Sim 관절이 과도하게 튐 | drive stiffness/damping 또는 단위 오류 | 한 관절씩 저속 시험 | 단위/한계 확인, gain 하향 |
통신 timeout을 무조건 재시도로 덮지 않는다. 공식 LeRobot 안내도 SO 계열 timeout에서 먼저 데이지 체인 LED, 케이블, 전원 변형을 확인하도록 안내한다. 물리 문제를 빠른 재전송으로 악화시키지 않는다.