Index
2026-10-17 — Experiment

Physics replay 검증 stage — H2O digital twin, 16 seq dev + 전체 dataset

ego2robot | commit a652357 · snapshot a875557 | MuJoCo

TL;DR

0.5%
ALOHA moved 성공 (4/829)
7.4%
UR5e moved 성공 (61/829)
12.5 ms
replay / frame
~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, 모두 만족)

팔 추종 오차 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)

ALOHAUR5e + 2F-85YAM
moved 성공0/787/783/78
IK ok + feasible start 중 성공0/286/253/26
static 건드리지 않음 / 판정 가능6/7 / 6/75/7 / 4/76/7 / 6/7
frozen-object / no-robot baseline12/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 성공)

variantALOHAUR5eUR5e dropped
base079
+10 mm287
+20 mm6142
mass ×0.5 / ×21 / 07 / 79 / 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)

ALOHAUR5e
moved 성공4/829 (0.5%)61/829 (7.4%)
static 건드리지 않음 / 판정 가능81/104 / 53/10468/104 / 61/104
moved 실패 상위start_collision 314, ik_fail 168, no_grasp 63ik_fail 342, start_collision 169, dropped 91
lifted 프레임 gap ≥ 폭21%32%
TCP 추종 p50/p954.2 / 24.0 mm0.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