Index
2026-08-13 — Experiment Design

실험 A/B 설계 — 2-Stage 분리 검증

scene_bench | 실데이터 val_136 위에서 VLA축(실행)과 VLM축(분해)을 따로 검증한 뒤 교차 대조 | N0 텔레포트 트랙

TL;DR

2
독립 실험
17/17
상태복원 매칭
15
B 언롤
4단계
A 시퀀스

1 공통 무대 — 실데이터 에피소드 시작 상태 복원

과제는 실데이터 val_136의 event 0 그 자체를 쓴다 (임의 설정 아님):

GT (subtasks.json event 0): "Pick up the bowl from the dining table in the living room and place it in or on the tv stand in the living room" TARGET = bowl_847a24bfa9d8b1a1f26661ebbb850f56_1_0_7 (인벤토리 category 매칭으로 자동 결정) RECEPTACLE = stand_6bc09b7e2670723819cfaf03855284c1_2_0_7 (tv stand)
복원된 에피소드 시작 상태
시뮬 예시 — 복원된 frame-0 상태 (exo_camera_1 실렌더): dining table 위에 bowl(전면 검은 그릇)·포크·소금통·양상추·책. 로봇 베이스는 테이블 앞

복원 절차 (N1 부품, 검증 완료)

sample_task(house_index=136)으로 씬 로드 → restore_frame0(env, ~/sample/val_136__0)이 traj.h5의 t=0 GT로 물체·로봇 상태를 세팅.

실측: actor 매칭 17/17 (100%), bowl 위치 오차 0.00000 m (h5 GT 대비). 씬 재현이 결정론적이라 물체는 이미 일치, 로봇 포즈만 실제 복원 대상(Δ4.02 m)이었음.
제약 명시: 우리 로봇은 고정베이스 Franka(8-dim) — 실데이터의 mobile 11-dim과 달리 이동은 N0 텔레포트(오케스트레이터)가 담당. 사용자 확정 (a)안.

2 실험 A — VLA축: 분해된 instruction이 실제로 도는가

VLM을 ScriptedPlanner로 대체(분해 고정)하고, 실행 축만 측정한다. 오케스트레이터·판정은 T1~T3와 동일 코드.

INPUT — ScriptedPlanner에 주입하는 결정 시퀀스 (원문)

Run 1 (baseline, 도달권 검증): [ {"skill":"pick", "object_id":"bowl_847a24bf…_1_0_7"} ] # 시작 포즈에서 바로 Run 2 (main, 분해 시퀀스): [ {"skill":"navigate", "object_id":"diningtable_…"}, # ① N0 텔레포트 {"skill":"pick", "object_id":"bowl_847a24bf…_1_0_7"}, # ② VLA: "pick up the bowl." {"skill":"navigate", "object_id":"stand_6bc09b7e…_2_0_7"}, # ③ 텔레포트+bowl 동반(carry) {"skill":"pick_and_place", "object_id":"bowl_847a24bf…_1_0_7", "receptacle_id":"stand_6bc09b7e…_2_0_7"} ] # ④ 가설: place 국면 재개

단계별 실행 주체와 판정 (output)

단계실행 주체VLA에 들어가는 input판정 (output)
① navigateN0 텔레포트— (정책 안 거침; place_robot_near로 접근 포즈, 팔은 홈)유효 포즈 적용 ok + base 좌표 로그
② pickπ0.5-FT2캠 letterbox 224 + 관절 8-D + "pick up the bowl."oracle: 들림+로봇단독접촉, ≤600스텝
③ navigate(carry)N0 텔레포트— (bowl에 SE(2) 델타 적용해 gripper 상대포즈 유지 — 물리 테스트로 1e-6 검증됨)bowl이 로봇과 함께 tv stand 앞으로
④ pnp 재개 (핵심 가설)π0.5-FT동일 형식 + "pick up the bowl and place it on the tv stand." — 이미 파지한 상태에서(a) place 모션 존재(프레임 diff) (b) oracle: tv stand 지지

가설 ④의 근거

π0.5 학습 데이터에서 pnp 프롬프트는 에피소드 내내 동일한 문자열이다 — 즉 "파지 완료 후 place로 향하는 국면"도 같은 프롬프트 아래 학습됐다. 따라서 파지 상태에서 같은 프롬프트로 재개하면 학습 분포의 후반부와 일치한다는 가설. 대안이던 "Place the {} in or on the {}" 단독 문구는 정책 템플릿에 없어 OOD(최대 14% 손실)라 배제. (a)모션 존재만 성립해도 부분 증거, (b) oracle 성공까지 나오면 완전 증거.

판정 철학: 이 실험의 산출물은 성공률이 아니라 정보다 — 어느 단계에서 무엇이 끊기는지(접근 포즈? 파지? 운반? 재개?)가 온라인 통합 시 보강 지점을 정한다. 물리 실패도 데이터로 기록.

3 실험 B — VLM축: 자연어 하나로 분해를 잘 뽑는가

시뮬 실행 없이 오프라인 언롤: 결정만 기록하고, 매 턴 synthetic outcome("succeeded")을 넣어 done까지 굴린다.

INPUT — 언롤당 구성

구성요소내용 (실측 원문)
씬 이미지위 §1의 복원 상태 exo_camera_1 렌더 1장 (모든 언롤 공유, 정적)
인벤토리val_136 복원 상태의 [uid] category — room (x,y,z) 전체 목록
자연어 변형 5종V1 "Put the bowl in front of the TV." / V2 "Move the bowl to the TV stand." / V3 "Take the bowl from the dining table and put it on the TV stand." / V4 "Place the bowl on the TV stand in the living room." / V5 "bowl을 TV 앞에 갖다 놔."
문법navigate 포함 6스킬 (T1~T3 시스템 프롬프트 + N1의 navigate 확장). 변형당 3 trial, 최대 6턴

OUTPUT — 기대 형태와 채점

기대 시퀀스 예 (nav→pnp 클래스): turn1: {"skill":"navigate", "object_id":"diningtable_…"} ← synthetic "succeeded" 주입 turn2: {"skill":"pick_and_place", "object_id":"bowl_847a24bf…", "receptacle_id":"stand_6bc09b7e…"} ← synthetic "succeeded" 주입 turn3: {"skill":"done"}
지표정의
① id 정확도pick/pnp 결정의 object_id==TARGET, receptacle_id==RECEPTACLE 비율
② 시퀀스 클래스nav→pnp / nav→pick→nav→pnp / pnp-only / other (순수 분류기, 단위테스트)
③ done 규율목표 달성 보고 후 done 선언 vs max-turns 소진 vs abort
④ 재질의/환각가드레일(valid-set 검증+재질의 1회)이 잡아낸 존재하지 않는 uid 시도 횟수
⑤ 일관성같은 변형 3회의 시퀀스 클래스 일치율
설계 한계 명시: 이미지/인벤토리가 매 턴 정적(실행이 없으므로) — 상태 변화 반영은 온라인 통합(다음 단계)에서만 가능. synthetic "succeeded"는 분해 능력만 분리 측정하기 위한 장치다.

4 교차 판정 — 2-stage 성립 조건

실험 B
VLM이 뽑은 분해
≈ ?
실험 A
실제로 도는 시퀀스
→
결과 조합결론다음 액션
B 분해 일치 + A 전 단계 통과2-stage 성립 — 온라인 결합 준비 완료결합 런 1회 (자연어→온라인 실행)
B 일치 + A ④ 실패place-재개 가설 기각④ 대안: pnp 전체 재실행(pick부터) 또는 place 전용 FT 검토
B 불일치(클래스 산포) + A 통과분해가 병목시스템 프롬프트에 canonical 분해 예시 주입(few-shot) 후 재측정
둘 다 불안정축별 보강 후 재실험위 두 액션 병행

5 중간 결과 스냅샷 (B 완료, A 진행 중)

지표실측 (15 언롤, $1.60)판독
id 정확도object 12/12, receptacle 12/12 (100%)최종 결정 기준 완벽 — 단 아래 ④와 함께 읽어야
시퀀스 클래스nav→pnp 11/15 (73%), other 3, pnp-only 1지배 클래스가 N0 문법과 일치
done 규율done 13 / abort 2대체로 정상 종료
재질의/환각환각 uid 25회 / 재질의 25회가드레일이 필수 부품임을 정량 확인 — trial당 ~1.7회 교정
일관성평균 0.73 (V5 한국어 0.33 최저)문구 민감성 존재 — 세부는 N2 리포트
실험 A 결과와 abort 2건 원인 분석은 완료 후 별도 결과 리포트로 추가 예정