pinocchio IK 관절 경로로 바꾸자 square가 2/6에서 6/6이 됐다. diff_ik는 반력에 밀린 자세를 새 기준으로 삼아 손이 8 cm까지 표류했다.top_frame, 갓 배치), round_table과 drawer는 범용 씬 위에 새 solve(_ScrewView 어댑터)를 작성했다.사용자 요청은 "다른 task들도 싹 다 할 때까지 끊기지 않고 진행"이었다. 시작 시점 상태는 다음과 같다.
JointController로 실행한다. 목표는 마지막 명령값에서 보간한다.| 태스크 | 핵심 수정 |
|---|---|
| square_table | IK 나사 사이클(plan_cycle), release 후 기울어진 다리는 2축 레벨링(그립 높이에서 90° 회전 재파지) |
| desk | 구멍 순서 (3,2,1,0): 이웃이 서 있으면 세우기 IK 관절 여유가 0.11 rad로 떨어지고, 이웃 없이 하면 0.7–0.84 rad |
| lamp | 베이스 나사 프레임(x축 180°), collar 파지, 착좌 시 종료, 갓은 집게 축을 램프 방향과 수직으로 두고 15 mm 위로 운반 |
| round_table | 기둥은 다리 파이프라인 재사용. 받침은 십자 살을 r 30에서 잡고, 축 정렬 후 90° 공전 회전과 이웃 살 재파지 반복 |
| drawer | box 위치 조정 → 위 서랍 먼저 → 손잡이 30° 기울여 파지 → 되짚어 상승 → 느린 운반 → 4 mm씩 폐루프 삽입. 두 번째 서랍은 앞 서랍 손잡이 앞쪽에서 하강 |
| 범용 씬 | 나사 결합 쌍은 축만 판정(SCREW_AXES), 둥근 파트 구름 감쇠(rolling_parts) |
| 태스크 | 이전 | 현재 | 남은 실패 |
|---|---|---|---|
| square_table | 2/6 | 6/6 | — |
| lamp | — | 6/6 | — |
| round_table | — | 6/6 | — |
| desk | 0/6 | 5/6 | s2: 다리 간격 50 mm라 집기 불가 |
| drawer | — | 4/6 | s1 두 번째 서랍 하강 중 충돌, s4 손잡이 IK 자세 없음 |
| stool | — | ~3/6 | 마지막 hole 2에서 스터드가 입구에 걸림 |
| cabinet | — | 불가 | 문 스냅핏(틈 6.0 mm < 기둥 6.2 mm), 기둥 양끝 막힘 |
| chair | — | 미착수 | 등받이를 붙이려면 좌판을 뒤집어 세워야 함 |
"계획은 IK, 실행은 관절 공간, 목표는 파트 자세"라는 세 원칙으로 거의 모든 실패를 정리할 수 있었다. 남은 실패는 대부분 물리 접촉(이웃 파트, 스냅핏)이나 FB 기준 데이터 문제다.