OMX Follower 그립퍼 설정 (2026-10-28)
ROBOTIS OMX + LeRobot 환경에서 팔로워 그립퍼(ID 16) 과부하를 해결한 설정.
모터 설정 (ID 16, Operating Mode 5 = Current-Based Position Control)
| 레지스터 | 주소 | 값 | 영역 |
|---|---|---|---|
| Current_Limit | 38 | 600 | EEPROM |
| Goal_Current (유지) | 102 | 100 | RAM |
| Goal_Current (이동 부스트) | 102 | 200 | RAM |
| Position_P_Gain | 84 | 800 | RAM |
| Position_I_Gain | 82 | 0 | RAM |
| Position_D_Gain | 80 | 0 | RAM |
| Min_Position_Limit | 52 | 2123 | EEPROM |
| Max_Position_Limit | 48 | 2873 | EEPROM |
리더 그립퍼(ID 6): homing_offset 100, range 917~2577
명령줄 옵션
--teleop.gripper_open_pos=95
없으면 리더 정규화 출력이 62에서 막혀 팔로워가 충분히 열리지 않는다.
원인 (세 겹 + 기구)
- 캘리브레이션 부재. 리더와 팔로워 그립퍼 가동 범위가 달랐는데 원시값을 1:1로 전달. JSON만 수정하면 is_calibrated 불일치로 calibrate()가 기본값(0~4095)으로 되돌림. 모터 EEPROM(Position Limit, Homing_Offset)과 JSON을 함께 맞춰야 적용됨.
- Position 게인 P 250 / D 600. 작은 위치 오차에서 구동량이 부족해 마찰을 못 넘음.
- 쥐는 동안 PWM이 상한 885에 포화되어 약 2.5초 뒤 Overload(error 32). 전류는 162로 Current_Limit 600에 한참 못 미쳤음. Overload 판정은 전류 초과가 아니라 "최대 출력이 지속되는 것" 기준.
- 그립퍼 측 나사 하나가 열림을 물리적으로 막고 있었음. 조인 뒤 열림 끝이 2573에서 2902로 확대.
중요한 성질
- Position 게인과 Goal_Current는 RAM. 전원을 끄거나 reboot하면 초기화됨
- LeRobot이 connect 시 configure()에서 다시 쓰므로, 소스에 넣어야 유지됨
- Current_Limit과 Position Limit은 EEPROM. 쓰려면 Torque_Enable=0이고 Hardware Error가 0이어야 함
- Hardware Error Status(주소 70)는 reboot 또는 전원 재투입으로만 지워짐
파일
- omx_patches.diff : lerobot 소스 수정 (git apply로 적용)
- omx_calibration.tar.gz : ~/.cache/huggingface/lerobot/calibration 전체