← Index
2026-10-05 — Experiment

FurnitureSim one_leg — 치수 지시 + move_joint_space + 순응 모드

GPT-Policy | jobs 169697–169701, 171010–171019, 171720–171724

TL;DR

3/5
치수 지시 (n=5)
6/10
move_joint_space v2
2/5
순응 모드 (실패)
$7–11
성공 run API 환산

1배경/목적

직전 300s run(그리퍼 수정 후)은 2/5. seed 2 trace 분석 결과 파지 판단은 정확(폭 30mm=파지, 1.6mm=빈손 인지)했고, 실제 원인은 (1) 구멍 입구에 얕게 얹고 놓음, (2) 놓은 뒤 옆으로 빼다 다리·탁판을 침(탁판 복구 ~40 step), (3) 재파지 높이를 RGB로 추정해 다리 윗면보다 위에서 닫음. 이후 남은 병목인 손목 뒤집기 경로(IK 거부 반복)와 cross-threading 대응까지 연속 시험.

2작업 내용

(a) 치수 지시 — configs/tasks/furniture-one-leg-screw-geometry.json

다리 전체 87.5mm, 몸통 30x30x~63mm, 나사 ~25mm 나사 끝이 입구에 닿을 때 윗면 ~87mm, 완전 체결 시 ~63mm (above hole face) 나사 >=10mm 삽입 후 놓기 (윗면 <=77mm) / 놓은 뒤 수직 50mm+ 상승 후 수평 이동 윗면 ~15mm 아래를 위에서 재파지 / 300s, 120 decisions

값은 에셋 extents + EmbodiedSWE scene 상수에서 계산.

(b) move_joint_space 도구 + v2 지시문 (furniture-one-leg-v2.json)

simulation/furniture.py::_move_joint_space: 목표 TCP pose를 다중 시드(현재, 홈, q5±π·q7 분기, 고정 랜덤 24개)로 끝점 IK → 관절한계 여유 0.05rad 이상 해 중 현재 관절과 가장 가까운 해를 smoothstep 보간(0.6 rad/s). motion/ik.py refine()/within_execution_tolerance() 추가. null optional 인자 제거(Codex structured output 호환). 테스트 3개 추가 → 97 passed.

(c) screw 순응 모드

worker execute(..., stiffness_scale) (kp×s, kd×√s)를 screw 회전에만 적용(s=0.3). 테스트 추가 → 98 passed.

3결과

(a) 치수 지시 (seed 0–4)

seed결과stepsimAPI비고
0성공83245s$16.4screw 4회
1성공44142s$7.0
2성공49165s$7.3
3예산 소진—300s$25.411.3mm 삽입·재파지 성공, 첫 screw 호출 직후 소진
4예산 소진—300s$16.7뒤집기 IK 거부 연속

놓은 뒤 다리 쓰러짐 0건(직전 2건). seed 3 메모 "腿顶约92.3毫米, 高于孔面76.2毫米, 插入约11.3毫米" → 치수 기반 계산 동작 확인.

(b) move_joint_space v2 (n=10, jobs 171010–171019)

seed결과stepsimjoint movesAPI비고
0성공44194s4$6.9
1성공53186s4$8.5
2성공47150s3$6.9
3예산 소진—300s10$23.5완전 안착 0.3mm, yaw ~49°
4give_up—267s9$23.8삽입 반복 막힘, 22–25mm 이탈
5성공56186s2$9.3
6예산 소진—300s13$27.4높이 12.4mm 남음
7모델 done—252s10$24.0완전 안착 0.3mm, yaw ~60°
8성공63176s6$10.9
9성공58169s5$9.5
성공 run 44–63 decisions, sim 150–194s. 원 FurnitureBench 판정 6/10, 나사축 기준(EmbodiedSWE식) 8/10.

(c) 순응 모드 (seed 0–4, jobs 171720–171724)

2/5 (seed 0, 4) vs 같은 시드 강성 1.0 run 4/5. seed 2: no_descent로 멈췄고 높이 6.9mm 남음(누르는 힘 감소), seed 1: 완전 안착이나 yaw 32° 어긋남.

강성 0.3은 눌러 박는 힘을 줄여 오히려 악화 → 기본값 1.0 원복(기능은 유지).

4Takeaway

관측 가능한 치수만 제공해도 삽입 깊이·재파지 높이를 모델이 스스로 계산해 실패 모드 하나(놓은 뒤 쓰러짐)를 제거했다. 손목 뒤집기는 IK 시행착오 비용이 컸고, move_joint_space로 호스트가 경로를 탐색하게 하자 성공률이 유지/확대(3/5 → 6/10, n 확대)됐다. 남은 실패는 "완전 안착 + yaw 불일치"로, 나사산을 따라 돌지 않고 눌려 안착하는 FurnitureSim 접촉 특성 추정. 순응 제어는 해법이 아님.

5Next Steps