square_table (다리 4개) — Franka 한 대 조립assembly.furniture_square_table.franka.* 등록.one_leg 해법이 동작하는 것을 확인한 뒤, 사용자 요청으로 원본의 전체 square_table(다리 4개)로 확장했다. 목표는 한 다리용 해법 구조가 여러 부품 태스크에도 통하는지 확인하는 것.
scenes/furniture_one_leg.py: 다리를 목록으로 처리. _leg_specs() 훅, leg_in_top(k), hole_offset(k), seated_legs()(n, L), seated() = 전부. 상태 저장 형식 {"top","legs"}.FurnitureSquareTableScene/Cfg: 원본 reset_pos를 (전방 = tag y, 측면 = -tag x)로 옮겨 다리를 (0.07, ±0.12/±0.20)에 배치. leg1~4 메시 사용, 바깥 치수 동일, 부피 차이 0.6% 이내.FurnitureSquareTableGrader 추가.assembly.furniture_square_table(.franka.{osc,impedance,diff_ik,pink_ik,joint}). 에셋 변환 스크립트가 leg1~3도 생성(512/256).experiments/furniture_one_leg_franka/solution/solve.py)_CUR = {"k","h"}로 지정. 상판 밀기는 1회만.| 버전 | 성공 (4개 전부) | 다리 단위 | 비고 |
|---|---|---|---|
| v1 (seed 1~3) | 1/3 | 9/12 | 실패 3건 모두 옆 다리 간섭으로 집기 실패 |
| v2 (seed 0~5) | 5/6 | 23/24 (96%) | seed 3: 집기 1회 실패 후 재시도 성공. seed 4: 첫 다리가 첫 조이기 사이클에서 기울어짐(cos 0.85) |
experiments/furniture_one_leg_franka/videos/square_table_v2_s0.mp4 (185MB), 2배속 480p 2.4MB.Q_STAND도 다리 위치와 무관하게 동작 (세운 뒤 다리 축이 항상 손 x축과 나란함).