Index
2026-09-04 — Analysis

Routine(type3) 예시 컨텍스트 — 실제 카드에서 추출

scene_bench 데이터 생성 · TidyBot형 정리 규칙 · 예시 3채 + 쌍둥이 1편 · 공급 실측 3건

TL;DR

3+1
예시 편 (+쌍둥이)
424
Dresser+Fridge 집
1~2
store_ok 칸 / fixture
4 / 9
서랍 칸당 사과 / 계란
12
칸 ≥4 fixture 2종 집

결정 변경 (같은 날, 이 리포트 이후)

1 예시 컨텍스트

일회용 스크립트(tmp/routine_examples_v2.py)가 게이트 통과 train 카드에서 뽑았다. 지시문의 {src}는 카드의 실제 상면, 목적지는 클래스 낱말만 준다(어느 인스턴스인지 말하지 않음). 물체 이름은 inventory/asset_bench.json의 carry 등급 에셋이다.

train_8807__2000방 2 Bedroom · 6 Kitchen · 7 LivingRoom기본 편
R1 FOOD → fridge부엌 냉장고 · store_ok 칸 7
R2 GADGET → dresser drawer침실 서랍장 · store_ok 칸 2
유닛규칙지시 (로봇이 실제로 수행)물체 · 출발
U1R1"Put the apple on the counter in the fridge."Apple_9 · Kitchen
U2R2"Put the cell phone on the tv stand in the dresser drawer."Cellphone_1 · LivingRoom
U3R1"Put the potato on the sofa in the fridge."Potato_6 · LivingRoom
U4R2"Put the remote on the dining table in the dresser drawer."Remote_3 · Kitchen
U5R1"Put the egg on the dining table in the fridge."Egg_29 · LivingRoom
U6R2"Put the cell phone on the bed in the dresser drawer."Cellphone_4 · Bedroom
홀드아웃 — 컨텍스트에 있되 안 보이는 곳(숨김 상자)에 둔다
R1 Tomato_10 Bread_19   R2 Alarm_Clock_1 Alarm_Clock_12   미끼(규칙 없음) Pen_3
routine_direct
"Put this away."
로봇 앞에 Tomato_10
정답: fridge 어느 인스턴스든 안 + 닫힘
routine_multi
"Clear the dining table."
식탁(Kitchen) 위: 토마토 · 빵 · 알람시계 ×2 · 펜
토마토·빵 → fridge / 알람시계 → dresser drawer / 펜 → 그대로(control)
train_8807__2001같은 집 · 같은 홀드아웃쌍둥이 — 값 맞바꿈
R1 FOOD → dresser drawer침실 서랍장 · store_ok 칸 2
R2 GADGET → laundry basket주입 Laundry_Hamper_1_1 · 뚜껑 hinge
유닛규칙지시물체 · 출발
U1R1"Put the apple on the dining table in the dresser drawer."Apple_9 · LivingRoom
U2R2"Put the cell phone on the counter in the laundry basket."Cellphone_1 · Kitchen
U3R1"Put the potato on the sofa in the dresser drawer."Potato_6 · LivingRoom
U4R2"Put the remote on the bed in the laundry basket."Remote_3 · Bedroom
U5R1"Put the egg on the tv stand in the dresser drawer."Egg_29 · LivingRoom
U6R2"Put the cell phone on the dining table in the laundry basket."Cellphone_4 · Kitchen
routine_direct
"Put this away."
로봇 앞에 Tomato_10
정답: dresser drawer — 상식대로 냉장고에 넣으면 이 편에서 실패
routine_multi
"Clear the dining table."
같은 5개
토마토·빵 → dresser drawer / 알람시계 → laundry basket / 펜 → 그대로
train_7279__2000방 4 Bedroom · 5 Bathroom · 6 Kitchen · 7 LivingRoom기본 편
R1 FOOD → fridge부엌 냉장고 · store_ok 칸 2
R2 CLOTH → dresser drawer침실 서랍장 · store_ok 칸 2
유닛규칙지시물체 · 출발
U1R1"Put the apple on the dining table in the fridge."Apple_9 · LivingRoom
U2R2"Put the cloth on the dining table in the dresser drawer."Cloth_11 · Kitchen
U3R1"Put the potato on the bed in the fridge."Potato_6 · Bedroom
U4R2"Put the cloth on the dining table in the dresser drawer."Cloth_3 · Bedroom
U5R1"Put the egg on the side table in the fridge."Egg_29 · Kitchen
U6R2"Put the cloth on the sofa in the dresser drawer."Cloth_12 · LivingRoom
홀드아웃
R1 Tomato_10 Bread_19   R2 Hand_Towel_1 ×2 (에셋 1종 → 두 바디로 주입)   미끼 Pen_3
routine_direct
"Put this away."
Tomato_10
정답: fridge
routine_multi
"Clear the dining table."
식탁(Bedroom) 위: 토마토 · 빵 · 손수건 ×2 · 펜
토마토·빵 → fridge / 손수건 → dresser drawer / 펜 → 그대로
train_1347__2000방 2 Bedroom · 6 Kitchen · 7 LivingRoom기본 편
R1 FOOD → fridge부엌 냉장고 · store_ok 칸 1
R2 CLOTH → dresser drawer침실 서랍장 · store_ok 칸 1
유닛규칙지시물체 · 출발
U1R1"Put the apple on the bed in the fridge."Apple_9 · Bedroom
U2R2"Put the cloth on the tv stand in the dresser drawer."Cloth_11 · LivingRoom
U3R1"Put the potato on the dining table in the fridge."Potato_6 · Kitchen
U4R2"Put the cloth on the counter in the dresser drawer."Cloth_3 · Kitchen
U5R1"Put the egg on the sofa in the fridge."Egg_29 · LivingRoom
U6R2"Put the cloth on the bed in the dresser drawer."Cloth_12 · Bedroom
홀드아웃
R1 Tomato_10 Bread_19   R2 Hand_Towel_1 ×2   미끼 Pen_3   칸이 각 1개뿐 — k=3 전부 한 칸에 (multi-insert 필수)
routine_direct
"Put this away."
Tomato_10
정답: fridge
routine_multi
"Clear the dining table."
식탁(Kitchen) 위: 토마토 · 빵 · 손수건 ×2 · 펜
토마토·빵 → fridge / 손수건 → dresser drawer / 펜 → 그대로
보이는 잡음: "sofa 위 사과", "bed 위 감자" 같은 출발 상면은 카드의 도달 가능 상면을 그대로 쓴 결과다. 출발 상면을 식탁·조리대·책상·사이드테이블로 제한하면 자연스러워진다(선택). Hand_Towel은 에셋이 1종이라 같은 에셋을 두 바디로 주입한다.

2 공급 실측 — 계획서 가정이 틀린 곳

실측 1 · 닫힌 수납처의 store_ok 칸은 fixture당 1~2개

fixture 클래스store_ok 칸 01234+비고
Dresser3182433131192서랍장 977개 (790채)
Fridge174166201110104
SideTable50145———서랍 1칸
Desk204326——
ShelvingUnit178———

계획서는 k=3 증거 + 홀드아웃을 칸 단위로 가정했다. 칸 ≥4인 fixture 두 종류를 가진 집은 12채, ≥3은 26채, 클래스 합산 ≥3도 44채뿐이다. 따라서 한 칸에 여러 개 넣기(multi-insert)가 전제여야 한다.

칸 용량 (카드의 칸 크기 vs 에셋 dims_cm, 여유 2 cm 격자 근사)

fixture 칸폭 × 높이 × 깊이 (중앙, cm)사과 (11×11×12)계란 (8×8×8)컵 (13×13×15)
Dresser 서랍37 × 21 × 424개 · ≥3 가능 72%9개 · 89%2개 · 46%
Fridge43 × 21 × 272개 · 46%8개 · 95%1개 · 42%
Desk 서랍37 × 17 × 368개 · 100%12개 · 100%3개 · 81%
SideTable 서랍46 × 19 × 223개 · 69%4개 · 69%0개 · 11%
결론: 음식·소형 기기(휴대폰 12×2×9, 리모컨 7×22×2)는 k=3이 한 칸에 들어간다. 컵·그릇(DISH)은 안 된다 → 제외. 병(24.8 cm)은 칸 높이 21 cm보다 커서 눕혀야 한다 → GADGET·CLOTH 우선.
미검증: multi-insert 코드 경로(fixture_open.insert_into_slot_gen 반복)는 type2 바구니에서 검증됐지만, fixture 칸에 이미 든 물체와의 충돌은 검증된 적 없다. 파일럿 1순위.

실측 2 · 홀드아웃을 숨길 "목적지가 아닌 fixture"가 거의 없다

집의 concealing fixture는 보통 Dresser와 Fridge뿐이라 둘 다 목적지로 쓰면 숨길 곳이 사라진다(예시 3채 전부 해당). 대안: 뚜껑 있는 Laundry_Hamper_1_1(hinge 0~90°, 닫힌 채 옴, 삽입 IK 82/83 검증) 또는 뚜껑 Box 에셋(31종)을 숨김 상자로 하나 더 주입해 홀드아웃·미끼를 넣어 두고 컨텍스트에서 절대 열지 않는다. 열린 상면 + spot_visibility 예측기는 폴백.

실측 3 · 집별 수납처 조합 (store_ok ≥1, 게이트 통과 790채)

조합집 수routine 가능?
Dresser + Fridge + 3번째(SideTable/Desk/Shelf)126가능
Dresser + Fridge298가능 (합계 424)
Dresser + 3번째 (냉장고 없음)55R1 값 후보 조정 시
Fridge + 3번째 (서랍장 없음)59R2를 Hamper로만
닫힌 클래스 1종197Hamper 주입으로 2종 확보 가능
없음55불가

3 값 맞바꿈(쌍둥이) 구조 — 자연스러움을 지키는 방법

Dresser+Fridge만 있는 집에서 두 규칙의 값을 단순히 맞바꾸면 한 클래스가 반드시 냉장고로 간다(첫 버전에서 "soap bottle → fridge"가 나왔다). 아래 구조는 네 조합 전부 그럴듯하고 두 규칙의 목적지가 항상 다르다.

R1 FOODR2 CLOTH / GADGET
기본 편 (seed 짝수)fridgedresser drawer
쌍둥이 (seed 홀수)dresser drawerlaundry basket (주입)

의미

상식(blind)은 음식을 냉장고에 넣으므로 기본 편은 맞추고 쌍둥이에서 틀린다 → 짝 채점(A6)이 상식 찍기를 걸러낸다. Hamper는 TidyBot의 laundry basket/storage box와 같은 역할이라 논문 서사와도 맞는다. 단, Hamper 뚜껑을 g_store_in 경로로 닫는 것은 미검증(type2는 뚜껑을 열어 못 박고 시작).

4 계획서 수정 제안 — TidyBot 전환으로 대체됨 (숨김 상자 주입만 유효)

절현재제안
§2-1 (6)목적지에 빈 칸이 남아야 함칸 ≥1 + multi-insert (한 칸에 k=3 + 홀드아웃). 칸 크기 게이트로 사전 검사
§3-1FOOD·DISH·GADGET·TOILETRY·CLOTHDISH 제외(용량). TOILETRY는 눕힘 검증 후
§3-2클래스 쌍은 두 값이 양쪽 후보에 있는 쌍R1 FOOD Fridge↔Dresser · R2 {CLOTH, GADGET} Dresser↔Hamper(주입) 고정 구조
§4-1 / §4-3홀드아웃은 목적지 아닌 fixture의 닫힌 칸숨김 상자 주입(뚜껑 Hamper/Box, 절대 안 엶) 1순위, 예측기 상면 폴백
§4-1출발 상면 = 도달 가능 열린 상면(선택) 식탁·조리대·책상·사이드테이블로 제한
§11-3미확인 목록multi-insert 충돌을 1순위로, Hamper 뚜껑 닫힘 2순위

5 Next

다음

수정 제안 확인 → 계획서 반영 → 구현 계획(writing-plans). 파일럿 첫 실험은 서랍 칸 하나에 사과 3개 + 토마토 1개 넣고 닫기(multi-insert 충돌)와 Hamper 뚜껑 닫기 두 가지다. 둘 다 카메라 없이 수 분이면 된다.