TL;DR
- dev 16 seq moved 성공: ALOHA 0/78, UR5e 7/78, YAM 3/78
- 전체 184 seq: ALOHA 4/829 (0.5%), UR5e 61/829 (7.4%) — dev 결론과 동일
- gap 가설 확인: lifted 프레임 중 gap ≥ 물체 폭 비율 ALOHA 28%, UR5e 43%, YAM 48%. gap +20 mm만으로 UR5e 7→14
0.5%
ALOHA moved 성공 (4/829)
7.4%
UR5e moved 성공 (61/829)
~19 min
CPU, 전체 dataset / robot
1 배경 / 목적
기존 dataset은 kinematic retargeting뿐이라, 로봇 action을 그대로 실행했을 때 물체가 영상처럼 움직이는지 확인한 적이 없었다. 사용자 질문("h2o와 같은 세팅을 시뮬에 만들어 성공을 만들어서 확인해야 하는 것 아닌가")에 따라 policy 학습 전에 데이터 재생 검증부터 수행.
가설: dataset gripper gap(= thumb-tip↔finger-tip − 12 mm)이 grasp 시 물체 폭 이상이면 position-controlled gripper가 물체를 조이지 못한다.
2 작업 내용
Workflow wf_741cccfa-f67: Implement → Review(physics, integration; finding 14개) → Fix. 커밋 a652357. tests 211 passed.
ego2robot/physics.py — action segment마다 MuJoCo replay
물체: H2O mesh, 충돌=convex hull(첫 rest face에서 바닥 절단: lotion 89° 넘어짐 해결), 시각 mesh는 별도 geom
질량(추정): book 1.43, milk/cocoa 0.5, lotion/spray 0.25, chips/cappuccino 0.2, espresso 0.1 kg (0.5×/2× 민감도 낮음)
접촉: friction 0.8, torsional 5 mm, elliptic cone, impratio 10 (YAM 14 mm slip 해결)
팔: menagerie actuator + velocity feed-forward
pipeline: physics stage(deps prepare, CPU), scripts/run_physics.sh, tools/physics_summary.py, tools/render_physics.py
export.physics_filter(기본 off) → "L4: physics ..." 사유로 필터
성공 판정 (moved episode, 모두 만족)
- ADD-S 프레임별 ≤ 20 mm (≥80% 프레임) & 끝 ≤ 30 mm; centroid ≤ 30 mm (≥80%) & 끝 ≤ 50 mm
- 영상 lift > 30 mm이면 sim lift ≥ 절반; 시작 feasible (overlap ≤ 10 mm, 과벌림 ≤ 2 mm)
- frozen-object / no-robot replay가 추종하지 않아야 함(로봇이 원인). threshold는 GT noise floor 기준 (정지 drift ADD-S p99 2.3 mm, 손에 든 jitter p99 2.9 mm)
팔 추종 오차 p50/p95 (FF 사용): ALOHA 4.3/20.7 mm, UR5e 0.6/12.2 mm — FF 없이는 24/57, 17/82 mm.
3 결과
dev: 16 seq, robot당 85 ep (moved 78 / static 7)
| ALOHA | UR5e + 2F-85 | YAM |
| moved 성공 | 0/78 | 7/78 | 3/78 |
| IK ok + feasible start 중 성공 | 0/28 | 6/25 | 3/26 |
| static 건드리지 않음 / 판정 가능 | 6/7 / 6/7 | 5/7 / 4/7 | 6/7 / 6/7 |
| frozen-object / no-robot baseline | 12/78 / 1/78 |
실패 상위: ALOHA start_collision 30, ik_fail 15, no_grasp_contact 9 · UR5e ik_fail 30, start_collision 22, dropped 9 · YAM ik_fail 47.
gap_offset 진단 (moved 성공)
| variant | ALOHA | UR5e | UR5e dropped |
| base | 0 | 7 | 9 |
| +10 mm | 2 | 8 | 7 |
| +20 mm | 6 | 14 | 2 |
| mass ×0.5 / ×2 | 1 / 0 | 7 / 7 | 9 / 8 |
Oracle grasp(scripted, 10 cm lift, 1 s hold): ALOHA spray 89 mm lift / 1.0 mm slip, UR5e milk 98 mm / 0.7 mm → 시뮬레이터 자체는 정상.
전체 dataset (snapshot a875557, 184 seq, 933 ep: moved 829 / static 104)
| ALOHA | UR5e |
| moved 성공 | 4/829 (0.5%) | 61/829 (7.4%) |
| static 건드리지 않음 / 판정 가능 | 81/104 / 53/104 | 68/104 / 61/104 |
| moved 실패 상위 | start_collision 314, ik_fail 168, no_grasp 63 | ik_fail 342, start_collision 169, dropped 91 |
| lifted 프레임 gap ≥ 폭 | 21% | 32% |
| TCP 추종 p50/p95 | 4.2 / 24.0 mm | 0.7 / 17.3 mm |
Export(physics metric은 sidecar): ALOHA 933→688 ep / 63,116 frame, UR5e 933→509 ep / 46,431 frame. accepted moved 중 physics 성공 ALOHA 3/629, UR5e 47/461. v2.1·v3.0 verify 통과 (action[k]=state[t+1+k] 오차 0, state−robot.npz ≤ 2.3e-7). Jobs: physics 199012/199013, export 199020/199021.
4 Takeaway
현재 kinematic dataset은 물리적으로 거의 실행되지 않는다 (성공 0–9%). L1–L3 curation을 통과한 episode도 대부분 물리 실패.
원인은 시뮬레이터가 아니라 retargeting: gripper 폭·위치가 사람 손 keypoint에서 나와 실제 grasp pose/gap이 아니다. 사람이 손바닥으로 쥐면 thumb–index가 넓게 남아 (32 mm espresso에 44–65 mm 개방) 물체를 놓친다.
5 Next Steps
- Object-aware grasp retargeting (→ 별도 카드, 구현 완료): 접촉 구간 검출, 물체 좌표계 고정 grasp, gap = 폭 − squeeze, approach/release blend. 가설: start_collision/no_grasp_contact/dropped 대부분 해소.
- 한계: 물체 rigid 취급(open/pour/close), in-hand 시작은 이전 grasp 미계승, tolerance 절대값, YAM 팔이 0.5 kg에서 100 mm 중 64 mm만 상승.