Index
2026-04-18 — Plan

IDM Simulator-Based Evaluation 계획

GR00T-Dreams | RoboCasa 시뮬레이터 리플레이로 IDM action 품질 검증

TL;DR

4
Phases
50~100
Eval episodes
8
핵심 메트릭
미완
현재 상태

1 배경 / 목적

IDM의 held-out 평가(CosSim=0.161, MSE=0.081)는 normalized action space에서의 오차이다. 이 수치가 실제 로봇 궤적의 품질을 반영하는지 직접 확인이 필요하다.

핵심 문제: normalized-space CosSim과 실제 task 성공률 사이의 관계가 불명확. 논문(DreamGen)도 IDM 자체 메트릭 대신 downstream task SR만 보고.

세 가지 핵심 질문에 답하는 것이 목표:

2 평가 파이프라인

Phase 1: 데이터 준비

MG-30 학습에 미사용된 held-out 에피소드 선정. 기존 idm_heldout 데이터셋(720 ep, 리렌더링 완료) 활용.

소스: /home/nas_main/taewoongkang/Dataset/robocasa/idm_heldout (LeRobot 포맷) 원본 HDF5: /home/nas_main/minhopark/datasets/robot/robocasa/v0.1/single_stage/ 매핑: parquet action/state 데이터로 원본 HDF5 에피소드 매칭 평가 대상: task당 3~5개 ep × 24 task = 약 50~100 episodes
Phase 2: IDM Action Dump

held-out 에피소드 비디오 → IDM 추론 → predicted action 저장. 기존 IDM_dump/dump_idm_actions.py 활용.

conda: gr00t-idm (PyTorch 2.12, B200) 체크포인트: ckpt-10K (현재 best), 25K, 30K, best (100K 완료 후) action 포맷: IDM output(normalized) → unapply() → raw 12-dim [eef_pos(3), eef_rot(3), gripper(1), base(4), ctrl(1)] 주의: gripper binary {0,1}→{-1,1}, unapply 후 scale 확인 필요
Phase 3: 시뮬레이터 리플레이 & 비교

원본 HDF5의 initial state에서 GT action과 IDM action을 각각 리플레이. robocasa/scripts/playback_dataset.py 기반 신규 스크립트 작성.

conda: robocasa (mujoco 3.2.6) 브랜치: v02-preprocessing 스크립트 (신규): scripts/eval_idm_simulator.py 출력: 비디오 (GT|IDM side-by-side, 384×216/cam, 20fps) + 궤적 데이터 (EEF pos/quat, gripper, state, reward) → outputs/idm_simulator_eval/ckpt-10k/__comparison.mp4
Phase 4: 정량 분석 & 시각화

궤적 divergence, task success rate, per-dim 분석, 체크포인트 간 비교.

평가 메트릭

메트릭설명계산
EEF Position Error위치 궤적 divergence‖eef_pos_gt[t] − eef_pos_idm[t]‖₂ per step
EEF Rotation Error회전 궤적 divergencequaternion distance
Gripper Agreementopen/close 일치율sign 일치 비율
Task Success (GT)GT action task 완수env._check_success() at final step
Task Success (IDM)IDM action task 완수env._check_success() at final step
State Divergence전체 물리 상태 차이‖state_gt[t] − state_idm[t]‖₂
Divergence Onset궤적 이탈 시작 stepfirst t where ‖pos_err‖ > threshold
Cumulative Reward총 보상sum(rewards)

3 현재 상태 (계획 수립 완료, 실행 미착수)

미착수: 이 카드는 평가 계획이며, 실제 실행 결과는 없음. 선행 작업 목록 참조.

선행 작업 체크리스트

항목상태비고
held-out LeRobot 데이터셋완료720 ep, 리렌더링+변환 완료
IDM best checkpoint진행 중100K step 학습 완료 대기, 임시로 ckpt-10K 사용
LeRobot ↔ HDF5 에피소드 매핑미확인parquet action으로 매칭 필요
Action 포맷 매칭 검증미확인unapply() 후 scale 검증 필요
eval_idm_simulator.py 스크립트미작성신규 작성 필요
GT action replay determinism 확인미확인원본 states와 비교하여 검증 필요

리스크

Action scale mismatch 가능성: IDM unapply() 후 scale이 시뮬레이터 기대값과 다를 수 있음. GT action과 IDM action의 분포를 histogram으로 먼저 비교해야 함.
환경 분리 제약: IDM 추론(gr00t-idm)과 시뮬레이터(robocasa)가 다른 conda env → sbatch 2개 별도 제출.

4 Takeaway

왜 이 평가가 중요한가

CosSim=0.161이 "낮다"고 해서 IDM이 쓸모없다고 결론 내리기 이르다. 실제로 simulator에서 task를 완수할 수 있다면 DreamData 파이프라인의 pseudo label 품질이 충분하다는 것이 확인된다. 반대로 task를 전혀 완수하지 못한다면 MG-3000 규모 확장이나 task별 IDM 학습이 선행되어야 한다.

이 평가 결과가 전체 DreamData 프로젝트의 다음 Phase (pseudo label → policy 학습) 진입 여부를 결정하는 핵심 gate다.

5 Next Steps

실행 예시 (Phase 2 IDM dump): conda activate gr00t-idm sbm "python IDM_dump/dump_idm_actions.py \ --checkpoint outputs/idm_robocasa_mg30/checkpoint-10000 \ --dataset /home/nas_main/taewoongkang/Dataset/robocasa/idm_heldout \ --output_dir outputs/idm_actions_dump/ckpt-10k" \ --gres=gpu:1 -c 24 --mem 200GB --qos=core-extra