idm_robocasa_mg30_h50_v2_8gpu ckpt-60K eval 721.6 mm 실패 원인 규명 — 학습(robomimic agentview 128×128 AV1)과 eval(droid exterior 180×320 h264)의 카메라 system 자체가 다른 OOD.idm_mg30(v2.1 droid cam)와 mg30_real_h50(v3.0 h50 state)가 동일 source의 두 export임을 발견 → episode_index+frame_index cross-source 매칭으로 재 dump 없이 droid video + h50 eef-pose state hybrid 학습 가능.idm_robocasa_mg30_h50_v2_8gpu/checkpoint-60000 (22h, 8 GPU 학습 완료)의 24-ep simulator replay eval 결과가 avg_pos_error_mm = 721.6 mm로 나옴. 같은 eval 체계의 baseline (mg3000_v2_state_8gpu, Pixel-IDM v2)은 134.8 mm — 약 5× 나쁨. 24개 task 전부 systemic하게 363–1106 mm 범위로 잘못된 결과. 모델/체크포인트 자체보다 데이터·전처리 mismatch가 의심되어 root cause 분석.
| 데이터셋 | 카메라 키 | 해상도 | Codec | 용도 |
|---|---|---|---|---|
idm_mg30 / idm_mg3000 | exterior_image_1/2_left, wrist_image_left | 180×320 | h264 | baseline 학습·eval |
mg30_real_h50 (v3.0) | robot0_agentview_left/right, eye_in_hand | 128×128 | AV1 | 이번 h50 학습 |
idm_heldout | exterior_image_1/2_left, wrist_image_left | 180×320 | h264 | eval |
idm_mg30와 mg30_real_h50의 720 episode 전체에서 length 완전 일치 (720/720). action_eef[12] vs mg30_real_h50.action[12] frame-level max abs diff ≤ 2.98e-08 (10 ep sample, float32 noise floor 수준). 두 데이터셋은 같은 mg30 source 시뮬레이션에서 다른 카메라 + 다른 state schema로 추출한 것.
tmp/smoke_h50_droid_pixel_v2.py: 9 indices shape/dtype/value-range assertion 전부 통과. images=(6,3,256,256) float32 in [-1,1], actions=(16,32) action_eef 192/192 non-zero, state 224/256 non-zero. Login 1 GPU 5-step smoke train: loss 1.307, 20s 통과.
학습 제출: 처음 --qos=own 시도 → QOSMaxCpuPerUserLimit (pi05 Job 1198/1199가 core-own 8 GPU 점유 중) → extra QOS로 재제출. Job 1241 (extra, sbmr 5, n15 시작).
| 모델 | avg pos error (mm) | gripper agree | 비고 |
|---|---|---|---|
| h50 droid hybrid v2 ckpt-10K | 167.9 ±103.3 | 92.2% | 17% 학습 시점 |
| baseline mg3000_v2_state (60K) | 134.8 | — | reference |
| 이전 h50 v2 robomimic (60K) | 721.6 | 76.6% | cam OOD 실패작 |
| 구간 | task (pos error mm) |
|---|---|
| <100 mm (7개) | CoffeePressButton 43, CloseSingleDoor 55, CloseDrawer 69, TurnOffMicrowave 72, TurnOffStove 84, TurnSinkSpout 87, OpenDrawer 89 |
| 100–200 mm (8개) | CoffeeServeMug 106, TurnOnMicrowave 106, CoffeeSetupMug 111, TurnOnStove 124, PnPCounterToCab 126, TurnOnSinkFaucet 138, OpenSingleDoor 148, PnPStoveToCounter 158 |
| 200–400 mm (8개) | CloseDoubleDoor 211, PnPMicrowaveToCounter 232, PnPSinkToCounter 267, PnPCabToCounter 300, PnPCounterToStove 310, OpenDoubleDoor 314, PnPCounterToSink 369 |
| 400+ mm (1개) | PnPCounterToMicrowave 401 |
idm_mg30(droid)와 mg30_real_h50(h50)가 동일 source의 두 export라는 발견이 핵심. 재 dump 없이 video/state를 cross-source 매칭하여 hybrid 학습 가능. Hybrid 접근은 Pi0.5 호환성도 유지 — state/action이 mg30_real_h50 v3.0 schema 그대로.
PnP류 task가 200+ mm로 약한 패턴은 latent-A multistream의 task-level 패턴(PnPSinkToCounter best, CloseDoubleDoor worst)과 반대 양상. 카메라 system 회복 후 정밀 grasp task가 우세하게 부족 — "더 많은 step"으로 해결될지, structural한 어려움인지 60K 결과를 봐야 판단 가능.