로봇이 물체를 옮기다 실패하면(놓기 실패, 떨어뜨림) 물체는 계획과 다른 가구에 놓인다. 그런데 정답 파일의 표면(그리고 일부는 방)은 계획했던 목적지 그대로다. 그래서 물체가 소파·침대·의자·서랍장 위에 있는데 정답은 tv stand, countertop, bed 등으로 적혀 있다.
건수Finding 정답 19개 / 19 질의(로봇 위에 얹힌 2개 포함, 전체 722 질의·1,014 정답 중), Restore 현재 위치 9개 / 9 질의(전체 575 질의·771 정답 중). 실제 위치 오류 전체(A1+A3+A12)는 Finding 26 정답 / 25 질의.
영향실제 위치를 맞힌 답이 0점이 된다. gemini-3.7-flash 보관 행에서 물리적으로 틀린 Finding 정답 26개에 대해 '실제 가구'를 답한 수 / '정답 파일의 가구'를 답한 수는 Uniform Frames 12 / 2, MemER^R 13 / 1, R&R Agent 12 / 0, MEM^R 11 / 3이다.
어떻게 고칠 것인가권장: 질의 생성기(build_eval.py)에서 실패 이벤트의 surface·room을 계획값이 아니라 물체가 멈춘 좌표(settled_xyz)로 다시 계산해 queries.jsonl을 재생성한다(이미 surface_src=measured인 25개 정답은 표면이 맞다). 대안: queries.jsonl의 해당 28행을 손으로 고친다. 로봇 몸체에 얹힌 2행(find:train_4392__2:q02, q06)은 평가에서 제외한다. 고치면 해당 행의 점수가 바뀌어 논문 수치가 달라진다.
조립 주: 통합 목록의 'Finding 25 질의/26 정답'은 세 유형의 합이다 — 계획 목적지(A1) 19, 낡은 scene card(A12) 6, 바닥 낙하(A3) 1. 방 오류(A2) 14 질의와 합치면 Finding 33 질의다(6 질의 중복).
한계·반례가구의 평면 범위(footprint)가 scene card에 없어 가구 표본점까지의 거리(0.4 m 초과)로 판정했다. Finding 고유 물체 16건 중 12건은 프레임으로 확인(12/12 오류), 나머지는 좌표만 확인. 0.4 m 이내로 옆 가구에 올라간 경우는 이 규칙으로 못 잡는다. 마스터 목록의 'Finding 25 질의/26 정답'은 A1·A3·A12를 합친 수다.
전체 목록gt_find_restore__items.csv 에서 phys_loc_cause 가 'failed_event:' 또는 'riding_on_robot' 으로 시작하는 행. 질의 단위는 gt_find_restore__queries.csv 의 gt_now_physically_wrong == 1.
실제 예시 4개
find:train_6278__1:q02
질의Pick up the potato I moved earlier
채점 정답(living room, tv stand)
실제감자가 빨간 소파 좌판 위에 있다. tv stand(뒤쪽 흰 가구)까지 3.1 m.
왜 오류인가놓기에 실패해 소파에 떨어졌는데 정답은 계획 목적지인 tv stand다. 네 방법 모두 sofa라고 답해 0점.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['living room', 'sofa']], place 점수 0)At t=352.1s, the robot was holding the irish potato over the sofa in the living room before placing it there.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['living room', 'sofa']], place 점수 0)The robot moved an irish potato from the kitchen countertop and placed it on the red sofa in the living room at t=360s (IMG 49), where it remains.
빨간 상자 = 감자(소파 위). 화면 뒤쪽 TV 아래 흰 가구가 정답으로 적힌 tv stand.
왜 오류인가방과 표면이 모두 계획값이다. 실제 방은 bedroom(방 다각형 기준), 실제 가구는 bed. 네 방법 모두 (bedroom, bed)로 답해 0점.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'bed']], place 점수 0)The cell phone was picked up from the small cabinet/nightstand and placed onto the bed in the bedroom.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'bed']], place 점수 0)At t=510s, the robot placed the cell phone onto the bed in the bedroom (IMG 65, 66), where it currently remains.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)The remote control was moved to the dresser in the bedroom (seen placed next to the bowl at t=405.0s).
MEM^R reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)The remote control was moved from the living room sofa to the kitchen countertop, and finally placed on top of the dresser in the bedroom.
실패한 이벤트에서 정답의 방 번호가 계획했던 방으로 남았다. 8개 정답은 표면만 실제 값으로 다시 측정돼 있어 (kitchen, toilet)처럼 정답 자체가 모순이다. 6개 정답은 방과 표면이 모두 계획값이다(A1과 겹침).
건수Finding 정답 14개 / 14 질의(방이 채점되는 989개 정답 중), Restore 현재 위치 1개 / 1 질의, Restore 원래 위치 0 / 771.
영향방이 틀리면 위치 점수(loc)와 (방, 표면) 점수(place)가 모두 0이 된다. 아래 세 예시에서 (bathroom, toilet)·(bedroom, dresser)라고 실제대로 답한 방법이 전부 0점이다.
어떻게 고칠 것인가권장: 생성기에서 실패 이벤트의 room을 물체 최종 좌표가 들어 있는 방 다각형으로 계산해 재생성. 대안: queries.jsonl 15행의 room 수정. 논문 수치가 바뀐다.
한계·반례방 다각형 포함 판정(규칙)이다. 14개 모두 방 경계에서 0.18–2.95 m 안쪽이라 경계 오차는 아니다. 마스터 목록의 'A1과 합쳐 Finding 35 질의'는 내 원장으로는 33 질의다(물리 오류 25 질의와 방 불일치 14 질의의 합집합, 6 질의 중복).
전체 목록gt_find_restore__items.csv 의 loc_room_poly_mismatch == 1 (실제 방은 loc_room_actual). 표면과 방이 모순인 8개는 loc_room_vs_surface_uid_inconsistent == 1.
실제 예시 3개
find:train_6878__2:q01
질의Pick up the key chain I moved earlier
채점 정답(kitchen, toilet)
실제열쇠고리가 화장실 변기 뚜껑 위에 있다.
왜 오류인가정답이 '부엌의 변기'다. 이 집 부엌에는 변기가 없다. 실제 방은 bathroom.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['bathroom', 'toilet']], place 점수 0)The key chain was moved to the toilet seat in the bathroom during the episode.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['bathroom', 'toilet']], place 점수 0)The robot picked up the key chain from the bedroom tv stand and placed it on the toilet seat/lid in the bathroom at t=360s. It was still seen resting there at t=630s and t=660s while the robot picked up the cell phone beside it.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['bathroom', 'toilet']], place 점수 0)At t=360s, the robot picked up the mug from the dining table in the kitchen, carried it to the bathroom, and placed it on the toilet lid at t=450s.
왜 오류인가정답 방이 kitchen, 실제는 bedroom. 네 방법 모두 (bedroom, dresser)로 답해 0점.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)The robot picked up the white bottle from the kitchen area and placed it onto the wooden dresser in the bedroom.
MEM^R reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)The bottle was taken from the desk and placed on the bedroom dresser (where a basketball, table lamp, and watch are located).
로봇이 감자를 서랍장에 놓다가 옆의 꽃병을 쳐서 바닥에 떨어뜨렸다. 꽃병은 로봇이 옮긴 물체가 아니라서(settled_frame=0) 정답이 처음 받침인 dresser로 남았다.
건수1건 (Finding 정답 1,014개 중 '표면 라벨이 있는데 바닥 높이'인 유일한 행). Restore 0건.
영향떨어진 것을 기록하고 floor라고 답한 방법이 오답 처리된다(첫 감사에서 MEM^R 메모리가 'knocked the vase to the floor'로 기록).
어떻게 고칠 것인가queries.jsonl의 이 행을 on_floor=true, surface=null로 수정. 근본적으로는 생성기에서 로봇이 옮기지 않은 물체도 최종 좌표로 받침을 다시 측정한다.
한계·반례로봇이 옮기지 않은 정답 460개 중 3 cm 넘게 밀린 것은 18개(고유 물체 13개)이고, 받침이 바뀐 것은 이 1건뿐이다.
전체 목록gt_find_restore__items.csv 의 phys_loc_issue == 'floor_height'.
실제 예시 1개
find:train_1299__2:q05
질의Navigate to the vase
채점 정답(living room, dresser)
실제꽃병이 서랍장 옆 바닥에 쓰러져 있다(z = 0.094 m).
왜 오류인가정답은 dresser, 실제는 floor.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)A white vase is located on the dining table in the kitchen, seen at t=0.0s.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)The vase is located on the dining table in the kitchen, as observed across multiple views up to t=420s (IMG 40, IMG 42, IMG 50).
치기 전(3394프레임): 빨간 상자 = 서랍장 위의 회색 꽃병. 로봇이 감자를 들고 접근 중.
로봇이 옮기지 않은 물체의 정답 표면은 scene card(집 설명 파일)의 받침 값을 그대로 쓴다. 그런데 일부 물체는 녹화 0프레임부터 카드와 다른 곳(1.9–6.0 m 거리)에 있다.
건수Finding 정답 6개 / 5 질의, 컨텍스트 3개(train_4887__0, train_4887__2, train_9584__2).
영향보이는 대로 답하면 0점. 예: 'A mug is visible resting on the dresser in the bedroom.' → 정답은 tv stand.
어떻게 고칠 것인가생성기에서 정답 표면을 카드가 아니라 녹화의 최종 좌표로 측정해 재생성. hidden 물체는 fixture(들어 있는 가구)를 표면으로 쓴다. 대안: queries.jsonl 6개 정답 수정.
한계·반례카드와 초기 위치가 0.3 m 넘게 다른 정답만 셌다. 정답이 아닌 물체까지 포함한 카드 불일치(추적 물체 2,220개 중 118개가 3 cm 넘게 다름)는 전수 조사하지 않았다.
전체 목록gt_find_restore__items.csv 의 phys_loc_cause 가 'stale_card' 로 시작하는 행. 카드와 초기 위치 차이는 init_vs_card_m.
실제 예시 3개
find:train_4887__0:q03
질의Navigate to the remote control
채점 정답(bedroom, tv stand)
실제리모컨이 처음부터 검은 안락의자 위에 있다. 정답 가구까지 5.9 m.
왜 오류인가한 번도 움직이지 않은 물체인데 정답 가구에 있었던 적이 없다.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'armchair']], place 점수 0)At t=61.6s, the remote control was seen resting on the black armchair in the bedroom. It remained there throughout the episode.
MEM^R reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'armchair']], place 점수 0)The memory summary states that in the bedroom, there was a black armchair holding a remote control.
왜 오류인가fixture 필드는 shelf로 맞게 들어 있는데 surface에 카드 받침(dining table, 5.7 m 거리)이 남아 채점은 dining table로 한다.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['living room', 'dresser'], ['kitchen', 'dining table']], place 점수 0)There are two bowls in the house: one is inside the drawer of the dresser in the living room, and another is on the dining table in the kitchen.
영향정답 표면은 맞지만 이 행들이 '숨겨진 물체' 조건으로 집계된다(본표에서 hidden을 따로 떼는 분모가 달라진다). exo_camera_1에 8–219초 동안 보이는 물체다.
어떻게 고칠 것인가생성기의 concealment 판정을 계획이 아니라 최종 좌표가 서랍·칸 안인지로 바꿔 재생성. 대안: queries.jsonl 18개 정답의 concealment를 open으로 수정(예산 2,500→1,500 스텝도 함께). hidden 조건의 분모가 바뀐다.
한계·반례규칙은 '물체 높이가 가구 top_z보다 위(−3 cm 허용)'. 고유 물체 16개 중 9개를 프레임으로 확인했고 9/9가 상판 위였다. 나머지 7개는 높이만 확인.
전체 목록gt_find_restore__items.csv 의 hidden_label_but_on_top == 1.
실제 예시 4개
find:train_8287__1:q03
질의Pick up the c d
채점 정답(bedroom, desk), hidden
실제CD가 나무 책상 상판 위에 놓여 있다.
왜 오류인가숨겨진 물체가 아니다. 세 방법이 그대로 보고 정답을 맞혔다.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'desk']], place 점수 1)The CD is resting on the desk in the bedroom.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser'], ['kitchen', 'dining table']], place 점수 1)There are two bowls in the house: one is on the dresser in the bedroom, and the other is on the dining table in the kitchen.
A5Resume "모든 방 방문": 로봇이 이미 들어가 있던 방을 정답은 미방문으로 셈결정 필요
"Navigate to every room in the house" 과제의 정답은 남은 방 수 = 방 수 − 방문 유닛 수다. 방문 유닛은 'Navigate to the X + Look around' 한 묶음만이다. 로봇이 그 방에서 다른 과제나 심부름을 했거나, 그 방에서 시작했거나, 지나간 것은 세지 않는다. 이 정의는 질의문과 프롬프트 어디에도 없다.
건수방문 과제가 미완인 62 질의 중 46 질의. 36건은 그 방에서 시작했거나 다른 과제·심부름을 수행, 10건은 통과만. 시작 방이 미방문으로 남은 질의 14, 컷 시점에 로봇이 '미방문' 방 안에 있는 질의 10.
영향gemini-3.7-flash에서 미방문 방 진입이 없는 16행은 MEM^R 11/16, R&R Agent 11/16인데, 진입이 있는 46행은 MEM^R 13/46, R&R Agent 8/46이다. 정답 행동 로그(GT Action Log)는 62/62다(로그에 방문 유닛이 그대로 적혀 있음).
어떻게 고칠 것인가권장: 질의 턴 또는 시스템 프롬프트에 방문의 정의를 한 문장으로 명시한다("방 한가운데로 가서 둘러본 것만 방문"). 대안: 방문을 '방에 들어감'으로 바꿔 정답을 다시 계산하거나(46행 변경), 실행 트랙(시작 방을 방문으로 인정)과 정의를 통일한다. 어느 쪽이든 Resume 수치가 바뀐다.
한계·반례방 안/밖 판정은 로봇 base 좌표를 scene card 방 다각형에 넣어 구했다(157개 집에서 가구 좌표와 방 다각형의 일관성은 확인). 46행 모두 체류 10초 이상이다. 통과만 한 10건은 '방문'으로 볼지 사람마다 다를 수 있다.
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Pick up five of the eggs from the dining table and place them into the basket." → remaining 1 ; "Navigate to every room in the house." → remaining 3
실제로봇은 living room에서 시작해 달걀 4개를 바구니에 넣고(약 4.6분), 리모컨 옮기기와 포크 옮기기 심부름도 living room에서 했다. 컷 시점에도 living room 안이다. 합계 413초. 그런데 정답은 bathroom만 방문으로 쳐서 남은 방이 3개다. 지도에서 보듯 kitchen과 bedroom도 지나갔다.
왜 오류인가로봇이 실제로 들어가 머문 방을 정답은 '아직 안 간 방'으로 센다. '들어간 방 = 방문'으로 세면 남은 방 수가 달라진다. 두 번째 심부름 문장 자체가 "...to the dining table in the living room"이다.
scene card의 방 다각형 위에 컷까지의 로봇 base 경로(파란 선)를 그린 지도. 초록 = 정답이 방문으로 센 방, 빨강 = 정답은 미방문인데 로봇이 들어가 있던 LivingRoom, 회색 = 그 밖의 미방문 방. 빨간 원 번호는 아래 캡처 위치.
["T1 [0, 1551] Pick up the egg from the dining table and place it into the basket", "T1 [1552, 3359] Pick up the egg from the dining table and place it into the basket", "T1 [3360, 5100] Pick up the egg from the dining table and place it into the basket", "T1 [5101, 6898] Pick up the egg from the dining table and place it into the basket", "E1 [7132, 9013] Move the remote to the other end of the dining table", "T2 [9014, 10202] Navigate to the bathroom", "E2 [10344, 12961] Move the fork from the dining table to the dining table in the living room"]
resume:train_3378__2000:cut_10
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 1
실제로봇은 kitchen에서 시작해 감자 4개를 바구니에 넣고 냉장고 문 닫기 심부름도 kitchen에서 했다. 합계 612초. 정답은 kitchen을 미방문으로 쳐서 남은 방 1개.
왜 오류인가로봇이 실제로 들어가 머문 방을 정답은 '아직 안 간 방'으로 센다. '들어간 방 = 방문'으로 세면 남은 방 수가 달라진다. 심부름 문장: "close the fridge door in the kitchen".
scene card의 방 다각형 위에 컷까지의 로봇 base 경로(파란 선)를 그린 지도. 초록 = 정답이 방문으로 센 방, 빨강 = 정답은 미방문인데 로봇이 들어가 있던 Kitchen, 회색 = 그 밖의 미방문 방. 빨간 원 번호는 아래 캡처 위치.
["T1 [0, 2056] Pick up the potato from the dining table and place it into the basket", "T1 [2057, 4285] Pick up the potato from the dining table and place it into the basket", "E1 [4747, 8694] Close the fridge door in the kitchen", "T1 [8695, 11252] Pick up the potato from the dining table and place it into the basket", "T1 [11253, 13531] Pick up the potato from the dining table and place it into the basket", "T2 [13532, 14235] Navigate to the living room", "T2 [14236, 15609] Navigate to the bedroom", "T2 [15610, 16310] Navigate to the bathroom", "E2 [16452, 20762] Move the phone from the tv stand to the dining table in the living room"]
resume:train_308__2000:cut_06
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 1
실제로봇은 kitchen↔bedroom을 오가며 living room 모서리를 세 번 지나갔다(합계 30초, 소파와 TV가 보인다). 그 방에서 한 일은 없다. 정답은 living room 미방문, 남은 방 1개.
왜 오류인가로봇이 실제로 들어가 머문 방을 정답은 '아직 안 간 방'으로 센다. '들어간 방 = 방문'으로 세면 남은 방 수가 달라진다. 통과만 한 전형적인 경우(46건 중 10건이 이런 유형).
scene card의 방 다각형 위에 컷까지의 로봇 base 경로(파란 선)를 그린 지도. 초록 = 정답이 방문으로 센 방, 빨강 = 정답은 미방문인데 로봇이 들어가 있던 LivingRoom, 회색 = 그 밖의 미방문 방. 빨간 원 번호는 아래 캡처 위치.
["T1 [0, 340] Navigate to the kitchen", "T1 [341, 1318] Navigate to the bedroom", "E1 [1460, 2373] Go check whether the salt shaker is still on the countertop in the kitchen", "T1 [2374, 3716] Navigate to the bathroom", "E2 [3858, 4983] Open a drawer of the dresser in the bedroom"]
답변 행에서 본 같은 문제 — Resume 방 방문: 실제로 들어간 방 수로 답하면 오답 (행 증거)
"Navigate to every room in the house."의 GT 남은 방 수는 "그 방으로 가서 둘러보는 단위"가 끝난 방만 방문으로 센다. 지나간 방, 심부름 때문에 들어간 방, 출발한 방은 세지 않는 경우가 있다. 질의 프롬프트는 "rooms left to visit"라고만 한다. 메모리가 로봇이 있었던 방을 맞게 기억할수록 오답이 된다.
건수방문 대기 과제 62개 중 46개에서 실제 들어간 방 수 > GT 방문 수. 방문 칸 오답 중 "실제 들어간 방 수로 계산한 값"과 같은 답: R&R 29/39, MEM^R 22/32, MemER^R 14/38, Uniform 11/33.
영향방문 대기가 있는 62행 정답: MEM^R 24, R&R 19, MemER^R 17, Uniform 16(방문 없는 99행은 R&R .667 > MEM^R .505). GT를 실제 들어간 방 기준으로 바꾸면 R&R .528→.621, MEM^R .460→.478, GT Log 1.000→.714.
한계·반례실제 들어간 방은 traj.h5의 robot_base_pose(5프레임 간격)와 씬카드 방 다각형으로 계산했다. 영상 캡처는 넣지 않았다. 한 장의 프레임으로는 "그 방에 있었다"를 확실히 보여 주기 어렵고 궤적 수치가 더 직접적이다.
resume:train_8590__2000:cut_02 [R&R]
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 2 (GT가 방문으로 센 방: bedroom)
실제컷까지 로봇 base가 실제로 있었던 방: bedroom(첫 진입 프레임 0, 머문 시간 26초), living room(첫 진입 프레임 660, 머문 시간 12초), kitchen(첫 진입 프레임 950, 머문 시간 176초). 집의 방 3개.
왜 오류인가답 "Hold on — move the spray bottle to the other end of the dining table first." → 1 은 "전체 방 수 − 실제 들어간 방 수"와 같다. GT는 "그 방으로 가라는 단위"를 끝낸 방만 세어 남은 방 2개를 요구한다.
R&R Agent reader input — LEDGER room linerooms seen so far: bedroom (t=0) · living room (t=0) · kitchen (t=30)
R&R reader reasoningAll 3 rooms (bedroom, living room, kitchen) have been visited, completing the navigation command. The robot was interrupted while moving the spray bottle (atomizer) across the dining table, leaving 1 object move remaining.
원자료 필드
n_rooms
3
gt_remaining
2
answer_remaining
0
n_rooms_physically_entered
3
resume_ok
0
commands
[f1] Navigate to every room in the house. | [f383] Hold on — move the spray bottle to the other end of the dining table first.
resume:train_4844__2000:cut_03 [MEM^R]
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 2 (GT가 방문으로 센 방: bedroom, living room)
실제컷까지 로봇 base가 실제로 있었던 방: bedroom(첫 진입 프레임 0, 머문 시간 51초), kitchen(첫 진입 프레임 555, 머문 시간 42초), living room(첫 진입 프레임 1110, 머문 시간 38초). 집의 방 4개.
왜 오류인가답 "Navigate to every room in the house." → 1 은 "전체 방 수 − 실제 들어간 방 수"와 같다. GT는 "그 방으로 가라는 단위"를 끝낸 방만 세어 남은 방 2개를 요구한다.
MEM^R reader reasoningThe user requested the robot to navigate to every room in the house (4 total: bathroom, bedroom, kitchen, living room). The robot has visited the bedroom, kitchen, and living room, leaving the bathroom unvisited (1 room remaining). The interruption command to open a dresser drawer in the bedroom wa…
원자료 필드
n_rooms
4
gt_remaining
2
answer_remaining
1
n_rooms_physically_entered
3
resume_ok
0
commands
[f1] Navigate to every room in the house. | [f1635] Hold on — open a drawer of the dresser in the bedroom first.
resume:train_9864__2000:cut_08 [R&R]
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 2 (GT가 방문으로 센 방: bedroom, living room)
실제컷까지 로봇 base가 실제로 있었던 방: bedroom(첫 진입 프레임 0, 머문 시간 305초), kitchen(첫 진입 프레임 2570, 머문 시간 129초), living room(첫 진입 프레임 9540, 머문 시간 30초). 집의 방 4개.
왜 오류인가답 "Navigate to every room in the house." → 1 은 "전체 방 수 − 실제 들어간 방 수"와 같다. GT는 "그 방으로 가라는 단위"를 끝낸 방만 세어 남은 방 2개를 요구한다.
R&R Agent reader input — LEDGER room linerooms seen so far: bedroom (t=0) · living room (t=0) · kitchen (t=90)
R&R reader reasoningThe robot completed the command to move three mugs (completed at t=330s). For the task 'Navigate to every room in the house', 4 rooms exist in total (bathroom, bedroom, kitchen, living room). Since t=350s, the robot has visited the living room, kitchen, and bedroom, leaving 1 room (bathroom) left t…
원자료 필드
n_rooms
4
gt_remaining
2
answer_remaining
1
n_rooms_physically_entered
3
resume_ok
0
commands
[f1] Pick up three of the mugs from the dining table and place them in or on the dresser. | [f1642] Hold on — close the fridge door in the kitchen first. | [f4550] Okay, continue what you were doing. | [f8740] Navigate to every room in the house. | [f11136] Hold on — go check whether the vase is still on the dining table in the bedroom first.
방문 칸(62개) 정오
방법
방문 칸 오답
그중 답 = 실제 들어간 방 수 기준
방문 대기 62행 정답
방문 없는 99행 정답
Uniform
33
11
16
26
MEM^R
32
22
24
50
MemER^R
38
14
17
32
R&R
39
29
19
66
A6Resume: 완료로 기록된 사과가 바구니 밖 바닥에 있음정답 파일 수정
"Pick up four of the apples ... into the basket"의 세 번째 유닛이 성공으로 기록됐지만, 그 사과는 바구니 뚜껑 뒤 바닥에 떨어져 있다. 정답은 3개 완료·1개 남음인데 실제로 바구니에 들어간 과제 사과는 2개다.
건수물체 옮기기 미완 과제 111개 중 1개(질의 1개).
영향이 질의는 바구니 안을 정확히 센 모델이 오답 처리된다. 전체 수치 영향은 1/161행.
어떻게 고칠 것인가eval/resume/queries.jsonl의 resume:train_1843__2000:cut_11에서 T2의 m을 3→2, r을 1→2로 고치거나 컨텍스트를 다시 생성한다. 생성기의 유닛 성공 판정에 '놓은 뒤 목적지 안에 머무는지' 검사를 넣는다.
한계·반례규칙이 처음에 건 12건 중 나머지 11건은 정상으로 확인했다.
전체 목록gt_resume_routine__items.csv: R_phys_done_unit_not_in_dst=1
실제 예시 1개
resume:train_1843__2000:cut_11
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Press the button on the washing machine five times." → remaining 2 ; "Pick up four of the apples from the dining table and place them into the basket." → remaining 1
실제바구니 안에 사과 3개(과제로 넣은 2개 + 처음부터 있던 1개), 뚜껑 뒤 바닥에 1개.
왜 오류인가세 번째로 '완료' 처리된 사과(t2a4_Apple_13)가 바구니에 들어가지 않았다. 물리 상태로는 남은 개수가 2다.
손목 카메라. 바구니 안에 사과 3개. 빨간 상자 = 뚜껑 뒤 바닥에 떨어진 네 번째 사과(완료로 기록된 것).
A7Resume 의심 1건: "서랍 닫기" 심부름이 완료로 채점되는데 컷 프레임에서 서랍이 열려 보인다정답 파일 수정
resume:train_3610__2000:cut_02는 심부름 "close the open drawer of the dresser in the bedroom"이 끝난 순간에 자른 질의다. GT는 이 심부름을 완료로 보고, 미완 목록에 넣으면 오답이다. 컷 프레임에서는 서랍장의 서랍 여러 칸이 열려 보인다.
건수1 질의. 오라클이 아닌 5개 방법 전부 이 심부름을 미완으로 답했다.
영향GT가 틀렸다면 5개 행이 잘못 0점 처리된 것이다. 컷이 심부름 종료 시점인 질의는 93/161개이고, 방금 끝난 심부름을 미완으로 답한 행은 방법별 9–14행이다.
어떻게 고칠 것인가이 에피소드의 서랍 관절 상태(states/cut_02.npz 또는 traj.h5 scene_joint_qpos)를 확인한다. 닫히지 않았으면 GT의 finished에서 빼거나 질의를 제외한다. 닫혔는데 다른 서랍이 처음부터 열려 있던 것이라면 명령 문구("the open drawer")가 모호하므로 문서에 적는다.
한계·반례프레임 한 장으로 판단했다. 닫으라고 한 서랍이 어느 칸인지, 관절 값이 얼마인지는 확인하지 않았다. 같은 유형의 다른 2개 질의(train_3911 cut_02, train_8190 cut_03)는 컷 프레임에서 완료 여부가 보이지 않았다.
전체 목록qa_rows_resume_routine__items.csv: query_id=resume:train_3610__2000:cut_02 (같은 유형 전체는 extra_errand_at_cut>=1)
실제 예시 1개
resume:train_3610__2000:cut_02
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Press the button on the coffee machine three times." → remaining 2 ; 완료로 처리: "Hold on — close the open drawer of the dresser in the bedroom first."
실제컷 프레임(1966)에서 흰 서랍장의 서랍 3칸이 앞으로 나와 있다.
왜 오류인가완료로 채점되는 심부름의 결과가 컷 프레임에서 보이지 않는다. 5개 방법이 모두 미완으로 답했다.
Uniform reader reasoning (answer: "Press the button on the coffee machine three times." → 3 ; "Hold on — close the open drawer of the dresser in the bedroom first." → 1)The robot was interrupted before completing any button presses on the coffee machine (3 presses remaining). It then navigated to the bedroom dresser to close the open drawer, but the episode ended while the drawer was still open (1 drawer …
MEM^R reader reasoning (answer: "Press the button on the coffee machine three times." → 2 ; "Hold on — close the open drawer of the dresser in the bedroom first." → 1)The user first asked to press the coffee machine button three times; the robot pressed it once before being interrupted, leaving 2 presses remaining. The second command asked to close the open drawer of the dresser in the bedroom; the robo…
MemER^R reader reasoning (answer: "Press the button on the coffee machine three times." → 2 ; "Hold on — close the open drawer of the dresser in the bedroom first." → 1)The robot pressed the coffee machine button 1 time out of the requested 3 times before being interrupted at t=21s, leaving 2 presses remaining. For the second command, the robot reached the bedroom dresser and was in the middle of closing …
R&R reader reasoning (answer: "Press the button on the coffee machine three times." → 2 ; "Hold on — close the open drawer of the dresser in the bedroom first." → 1)The user gave two commands. For the first command, 'Press the button on the coffee machine three times.', the robot only pressed the button once at t=0s before moving away, leaving 2 presses remaining. For the second command (the interrupt…
Put the gadgets from the countertop on the side table.
n_evidence
1
n_attempted
4
evidence_obj
t3a1_Cellphone_4
train_3514__6505 R2 / train_8831__6696 R2
질의(질의 없음)
채점 정답(없음)
실제두 컨텍스트 모두 "Put the bottles from the dining table into the laundry basket."이 들리지만 성공 0회.
왜 오류인가들린 명령에 해당하는 규칙이 성립하지 않았고, 테이블에 남은 스프레이병·비누병은 multi 질의 목록에서 빠져 있다.
원자료 필드
train_3514__6505
{"n_done": 0, "n_attempted": 4, "ok": 0}
train_8831__6696
{"n_done": 0, "n_attempted": 3, "ok": 0}
A10Routine: 2개 이상 방법이 같은 "다른 방"을 답한 질의 23개정답 파일 수정
수납처는 GT와 같은데 방만 다른 답 가운데, 오라클이 아닌 4개 방법(Uniform, MEM^R, MemER^R, R&R) 중 2개 이상이 같은 다른 방을 답한 direct 질의 목록이다. 모델들이 일치해서 다른 방 이름을 쓴다면 GT 방 라벨이 화면에 보이는 모습과 다를 가능성이 있다.
건수23 질의 / direct 214 질의 (4개 방법 일치 2, 3개 일치 5, 2개 일치 16). 방 단어만 다른 답이 하나라도 나온 질의는 76개.
영향GT 방이 틀렸거나 모호하다면 이 질의의 오답은 메모리 실패가 아니다. 방을 무시한 채점에서 MEM^R·R&R가 약 .80으로 오르는 것과 같은 원인이다(C4).
어떻게 고칠 것인가23개 질의의 수납처 프레임을 보고 씬카드 방 종류가 보이는 모습과 맞는지 판정한다. 틀린 것은 GT 파일(routine queries.jsonl의 answers[].room, instances[].room)을 고치고, 모호한 것은 방을 채점에서 빼거나 복수 정답으로 둔다. GT를 고치면 해당 행 점수가 바뀐다.
한계·반례이 영역에서는 프레임을 5개 컨텍스트만 봤다. 아래 3개 캡처는 방 종류를 한 장으로 단정하기 어렵다는 것을 보여 줄 뿐 GT가 틀렸다는 증명은 아니다. 반례 1건(train_6929__7721: 실제 욕실).
전체 목록qa_rows_resume_routine__items.csv: family=routine, kind=direct, n_methods_same_alt_room>=2 (질의 단위로 중복 제거)
실제 예시 3개
routine:train_3218__6616:direct_R2
질의Put the alarm clock on the countertop away.
채점 정답(bathroom, side table)
실제씬카드상 Bathroom. 4개 방법 전부 bedroom이라고 답했다.
왜 오류인가여러 방법이 독립적으로 같은 다른 방 이름을 답했다. GT 방 라벨(씬카드 방 종류)이 보이는 모습과 맞는지 확인이 필요하다.
Uniform reader reasoning (answer ('bedroom', 'side table'))In the bedroom, personal electronics and bedside items such as alarm clocks are kept on the side table next to the bed.
MEM^R reader reasoning (answer ('bedroom', 'side table'))The user instructed to put gadgets from the countertop onto the side table, which is located in the bedroom where other gadgets such as an alarm clock, cell phone, and remote control are kept.
MemER^R reader reasoning (answer ('bedroom', 'side table'))In the bedroom, personal electronic items and small accessories from the kitchen countertop (such as the smartphone) are placed on the side table.
R&R reader reasoning (answer ('bedroom', 'side table'))The user instructed at t=0s to put gadgets on the side table. An alarm clock is a gadget, and the side table is located in the bedroom where other gadgets like the cell phone were placed.
증거 물체가 가장 크게 보이는 보관 프레임. 빨간 상자 = GT (bathroom, side table), 태블릿이 놓인 나무 수납장. 벽화와 나무 바닥이 보이고 욕실 단서는 없다. 4개 방법 모두 bedroom.
실제씬카드상 Bedroom. 방 안에 TV, 침대, 소파가 함께 있어 거실로도 침실로도 읽힌다.
왜 오류인가여러 방법이 독립적으로 같은 다른 방 이름을 답했다. GT 방 라벨(씬카드 방 종류)이 보이는 모습과 맞는지 확인이 필요하다.
Uniform reader reasoning (answer ('living room', 'sofa'))In the episode, the robot grasped a spray bottle from the table and placed it on the sofa in the living room.
MEM^R reader reasoning (answer ('living room', 'sofa'))In the episode, bottles were tasked to be placed onto the sofa in the living room.
MemER^R reader reasoning (answer ('living room', 'sofa'))In earlier frames, the robot transported a spray bottle from the table and placed it onto the sofa in the living room.
R&R reader reasoning (answer ('living room', 'sofa'))At t=0s, the user instructed to put bottles from the dining table onto the sofa, which is located in the living room.
빨간 상자 = GT (bedroom, sofa)와 그 위의 병. 같은 방에 TV와 침대가 함께 보인다. 4개 방법 모두 living room.
왜 오류인가여러 방법이 독립적으로 같은 다른 방 이름을 답했다. GT 방 라벨(씬카드 방 종류)이 보이는 모습과 맞는지 확인이 필요하다.
Uniform reader reasoning (answer ('living room', 'sofa'))In earlier snapshots, food items from the dining table (such as bread, eggs, and apples) were moved and placed onto the sofa in the living room.
MEM^R reader reasoning (answer ('living room', 'sofa'))The user instructed to put food from the dining table onto the sofa in the living room.
R&R reader reasoning (answer ('living room', 'sofa'))At t=0s, the user instructed to put food from the dining table onto the sofa. Other food items from the dining table (egg, irish potato, apple) were placed on the sofa in the living room.
쿼리 프레임. 빨간 상자 = GT (bedroom, sofa) 위에 놓인 음식. 화면에는 소파와 서랍장만 보이고 침대는 없다. 3개 방법이 living room.
Finding/Restore의 정답 표면 이름은 시뮬레이터 uid 앞부분(prefix)에서 만들어진다. prefix stand_는 전부 "tv stand"가 되는데, scene card(집 설계도)에서는 이 prefix가 TVStand 7종과 SideTable 34종이다. SideTable 34종은 작은 탁자·서랍 달린 협탁·콘솔·상자 모양이고 TV 받침으로 보이는 것은 없다. GT Action Log(정답 행동 기록)는 이들을 "side table"이라 쓰지만 그 단어는 답 어휘에 없다.
건수자산 모델 34/41종. 정답 자리 Finding 49/1,014(질의 47/722), Restore 67(now 25 + original 42, 질의 61/575). writer(R&R Agent 표면 태그)가 "tv stand"라고 부른 것 0/84 사건(dresser 37, coffee table 22, desk 20). reader가 "tv stand"라 답한 것 3/310(정답이 한 곳인 62자리 × blind 제외 5전략), GT Action Log reader 0/62.
영향원 채점(place_set_raw)으로는 이 116자리가 든 질의의 (방, 표면) 일치가 사실상 불가능하다: reader가 "tv stand"라 답한 것이 3/310뿐이다. 상한 역할인 GT Action Log도 0/62다. 방만 보는 지표에는 영향이 없다. 보관된 논문 런은 사후 채점 보정(scripts/scoring_fixes.py의 "tv stand 명칭 구제 R2")을 거쳤다: Finding 34행, Restore 27행이 구제돼 place_set이 1로 올라갔다(원값은 scores.place_set_raw). SideTable이 정답인 Finding 단일 정답 행 105개(5전략) 중 26개가 그렇게 구제됐고(원값은 전부 0), Restore의 해당 행은 now·original 면 모두 0 그대로다. 따라서 '사실상 0점'은 원 채점 기준이며, 공개 코드의 기본 채점에는 이 구제가 들어 있지 않다.
어떻게 고칠 것인가권장: 답 어휘에 "side table"을 추가하고 정답 표면 이름을 prefix가 아니라 scene card 카테고리로 만든다(src/rrbench/qa/facts.py의 surface_display(category(uid)) 호출부와 vocab_v1.json; scene card 필요). 이렇게 하면 reader 프롬프트의 어휘 목록이 바뀌므로 재실행이 필요하고 논문 수치가 바뀐다. 대안인 alias만 추가("dresser"·"desk"를 tv stand로 인정)는 같은 방에 진짜 Dresser가 있는 경우가 29/60 인스턴스라 권하지 않는다. 모델별 제안은 proposal_table.
한계·반례stand_1624c1…(욕실 1개, GT 질의 0)은 보관 프레임과 영상 표본 어디에서도 조건에 맞게 잡히지 않아 캡처가 없다. 상자 위치는 scene card의 가구 좌표를 카메라에 투영해 그렸고 전부 눈으로 확인했다. stand_2d3805(TVStand)는 벽걸이 TV 아래 개방형 선반이라 이름이 애매하다(판정 b). writer 이름은 30초 창 단위 매칭이다.
전체 목록asset_names__items.csv: flag_sidetable_graded_tv_stand == 1 (Finding 49행, Restore 67행). 모델별: asset_names__furniture.csv: uid_prefix == stand
TV가 올라간 받침: low dark TV stand with a TV on it. 자연스러운 이름: tv stand
scene_card_category
TVStand
scene_card_asset
TV_Stand_222_1
graded_name_finding_restore
tv stand
graded_name_routine
tv stand
action_log_names
tv stand 4
execution_track_name
tv stand
writer_surf_tags_finding_restore
tv stand 2 | Restore 런: tv stand 2
writer_surf_tags_routine
-
writer_surf_tags_resume
-
n_gt_queries
Finding 3, Restore now 1, Restore original 1, Routine 2
example_query_id
find:train_4584__0:q00
my_verdict
a
n_instances_with_role
5
room_types
LivingRoom 5
모델별 재라벨 제안 (41행)
asset_model
scene_card_category
current_graded_name
proposed_graded_name
proposed_aliases
collision_rooms
stand_5426aedb08187682682ed7909e975c1e
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 3개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 2, TVStand 1, CoffeeTable 0
stand_4b42c255f5978da2d8b93d12ef0e4d49
SideTable
tv stand
side table
console table; desk(같은 방에 Desk가 없을 때만)
역할 인스턴스 3개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 2, TVStand 2, CoffeeTable 0
stand_25807daa05bf4fa77b42bb0d74287c18
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 4개 중 같은 방에 Dresser 1, Desk 1, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_007a3ac7acf8cfc943375cf9dded27c1
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 4개 중 같은 방에 Dresser 3, Desk 2, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_5d16078a7bd6fdfa833400b617a5e319
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_36dbef8167c9a42a3cae3d3b9df3c678
SideTable
tv stand
side table
end table, nightstand
역할 인스턴스 2개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_54403f6cc218f420d6800514603ec66a
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 3개 중 같은 방에 Dresser 1, Desk 1, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_789e1bee5ebbeabb503337b46417ac81
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 3개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 1, TVStand 1, CoffeeTable 0
stand_2e2e06de230c7e35b71a090f5dd91776
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 3개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_ea63f84ad6a9306dd5bfefe095742a7d
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_3dd929e987652b8ff80d3776ae51182e
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 1개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_5c5cc4165b010353473cdf7b8812c1c8
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_6e40a42bfc4e336b800e55293d64f949
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_9985276433646fd9350dc0cc79ad70c5
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 3개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 1, TVStand 1, CoffeeTable 0
stand_accd13ef606f3a2fbd33b6c6efb9184a
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 6개 중 같은 방에 Dresser 4, Desk 0, 다른 SideTable 0, TVStand 2, CoffeeTable 0
stand_d6f76ad5211053ea9a50ec41257445c1
SideTable
tv stand
side table
console table; desk(같은 방에 Desk가 없을 때만)
역할 인스턴스 1개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_ff4dc8c26a171f1ee525b510e1af7754
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_21c2dbc17d6b5fd8ef5b1c9d0ab918f1
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_42466b84ce48a9b79efeb350f836a319
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_287212d857563b69c436c48e10486a04
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 4개 중 같은 방에 Dresser 2, Desk 1, 다른 SideTable 0, TVStand 2, CoffeeTable 0
stand_5de29547228814a754c9d2ee8090c2c2
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_6551b0129b3b9154069ddecf59bafb80
SideTable
tv stand
side table
end table, nightstand
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_9a9926b2d8ac08db7acc25dc8992dcac
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 2개 중 같은 방에 Dresser 1, Desk 1, 다른 SideTable 1, TVStand 1, CoffeeTable 0
stand_cc1057287277ab028605f57cf2966667
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 1, TVStand 1, CoffeeTable 0
stand_d88e64e9bbe403674b090e0ff14be738
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 4개 중 같은 방에 Dresser 4, Desk 0, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_e1c743dfc432ffa1535bbe2c81aba0e2
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 2개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 2, CoffeeTable 0
stand_0700a35365186e681b61c7ceff02fd8d
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_69c39b1676c35a6b5341c5c66b4f7e60
SideTable
tv stand
side table
nightstand, bedside table; dresser(같은 방에 진짜 Dresser가 없을 때만)
역할 인스턴스 3개 중 같은 방에 Dresser 3, Desk 1, 다른 SideTable 1, TVStand 1, CoffeeTable 0
stand_058a67c561c62b469723bf4c552260e3
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 2개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 1, TVStand 2, CoffeeTable 0
stand_2babcd7cdec3aed247cfc56ee0c6e550
SideTable
tv stand
side table
console table; desk(같은 방에 Desk가 없을 때만)
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_3148b2233e6c8004e5c2e2e96533d781
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 1, CoffeeTable 0
stand_ad3904b5b66fc0dd4a8f6f0c6c8e3ff1
SideTable
tv stand
side table
end table, nightstand, bedside table
역할 인스턴스 1개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_1624c15ab946547284067215985fa1a8
SideTable
tv stand
side table
end table, nightstand
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_ed06bd6b2ac58e6eff75f4b429d16e87
SideTable
tv stand
side table
console table; desk(같은 방에 Desk가 없을 때만)
역할 인스턴스 1개 중 같은 방에 Dresser 0, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_ed4e820a3dc33f7d06806f03165a92cf
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 9개 중 같은 방에 Dresser 4, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
stand_d7bcab0e55dd1454aa1f6d84a1b849b8
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 14개 중 같은 방에 Dresser 6, Desk 0, 다른 SideTable 4, TVStand 0, CoffeeTable 0
stand_a649b94a02f784c3cd77980808bf8778
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 8개 중 같은 방에 Dresser 1, Desk 0, 다른 SideTable 3, TVStand 0, CoffeeTable 0
stand_a443035b64c6a1d8ec56016b4848acfd
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 9개 중 같은 방에 Dresser 4, Desk 2, 다른 SideTable 2, TVStand 0, CoffeeTable 0
stand_f6248a86c5b683b58be4307d13baa977
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 11개 중 같은 방에 Dresser 4, Desk 0, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_2d38058a5113e5e3b537441d68682195
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 5개 중 같은 방에 Dresser 0, Desk 1, 다른 SideTable 1, TVStand 0, CoffeeTable 0
stand_2d4059a6325be429979c765f8ce0665b
TVStand
tv stand
tv stand
tv console, media console, tv cabinet
역할 인스턴스 5개 중 같은 방에 Dresser 2, Desk 0, 다른 SideTable 0, TVStand 0, CoffeeTable 0
답변 행에서 본 같은 문제 — 가구는 맞혔는데 "tv stand"라는 단어 때문에 0점인 답
uid가 stand_로 시작하는 가구는 전부 "tv stand"로 채점되는데, 그중 절반은 scene card에서 SideTable(협탁·작은 탁자·서랍장)이다. 답 어휘에 side table이 없어 reader는 coffee table / desk / dresser 중 하나로 옮겨 답하고 0점이 된다.
건수SideTable을 다른 단어로 부른 답 자리(엄격 규칙): Finding coffee table 42, desk 31, dresser 26; Restore 78, 23, 27. 같은 방에 진짜 dresser/desk가 있어 약한 근거로 분류한 자리: Finding 32, Restore 52.
실제촛대가 처음 놓여 있던 가구는 작은 흰 원형 탁자다. reader의 "coffee table"이 그 가구다.
왜 오류인가현재 위치는 맞혔고 원래 위치도 가구는 맞는데 단어 때문에 0점.
MemER^R reader reasoningAt t=320.0s, the candle was first observed on the coffee table in the living room. By t=390.0s, it had moved onto the sofa in the living room, where it remained.
빨간 상자: 촛대가 놓인 작은 흰 원형 탁자(scene card SideTable). 채점 정답 단어는 "tv stand", reader는 "coffee table".
왜 오류인가reader의 "orange dresser"가 정답 가구인데 정답 단어가 tv stand라 0점.
Uniform Frames reader reasoningThe tissue box was first observed in the bedroom on top of the orange dresser. It is currently in the bathroom, resting on top of a dark wood dresser.
1번 상자: 서랍 달린 주황색 가구. scene card에서는 SideTable(에셋 Side_Table_302)이고 채점 정답 단어는 "tv stand"다. 2번 상자: 그 위의 휴지 상자. reader는 이 가구를 "orange dresser"라고 불렀다.
scene card 카테고리 DiningTable 19종이 모두 "dining table"로 채점된다. 직접 본 결과 의자가 딸린 식탁은 6종이고, 나머지 13종은 작은 탁자·좁은 벽면 탁자·2단 탁자·접이식 탁자·소파 옆 원탁이다. 침실에도 많이 놓인다. writer는 이 가구를 자주 "desk"로 기록한다.
건수자산 모델: a 6종, b 12종, c 1종. 정답 자리 Finding 331/1,014, Restore now 200·original 252, Routine 108. (bedroom, dining table)인 정답 자리 Finding 87, Restore 129. writer 표면 태그가 "desk"인 비율 Finding/Restore 39%(70/178 사건), Routine 29%(44/150), Resume 27%(74/270).
영향"desk"나 "table"로 기억하거나 답하면 표면 오답이 된다. 정답 자리 수가 가장 많은 가구라 이름 문제 중 영향 범위가 가장 넓다. 같은 방에 진짜 Desk가 있는 경우는 역할 인스턴스 219개 중 17개뿐이다.
어떻게 고칠 것인가권장: 채점기에서 "table"·"desk"를, 그 방에 다른 Desk/탁자가 없을 때 dining table 정답으로 인정(alias + 방 안 유일성 조건, vocab.py/grading.py). 대안: 작은 탁자 13종의 채점 이름을 "table"로 바꾸고 어휘에 추가(프롬프트 변경, 재실행 필요). 어느 쪽이든 논문 수치가 바뀐다. 모델별 제안은 proposal_table.
한계·반례a/b/c 판정은 조사자 한 명이 모델당 1~2프레임을 보고 내린 것이다. "desk" 비율은 writer(gemini-3.7-flash)의 표면 태그 기준이며, reader 답 분포에는 기억 실패가 섞여 있다.
전체 목록asset_names__furniture.csv: uid_prefix == diningtable (판정 열 verdict_graded_finding_restore). 사건 단위: asset_names__touches.csv: model이 diningtable_로 시작하고 w_surf == desk
round dark table. 자연스러운 이름: round table; table. 판정 b(여러 이름 중 하나)
scene_card_asset
Dining_Table_16_2
graded_name
dining table
my_verdict
b
writer_surf_tags_finding_restore
dining table 1
writer_surf_tags_routine
-
writer_surf_tags_resume
dining table 2
n_gt_queries
Finding 1, Restore now 0, Restore original 1, Routine 0
n_instances_with_role
2
room_types
LivingRoom 2
example_query_id
find:train_3916__0:q05
모델별 재라벨 제안 (19행)
asset_model
my_verdict
current_graded_name
proposed_graded_name
proposed_aliases
collision_rooms
diningtable_3cbd92eaa3132b2ab597519900dbdf3a
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 44개 중 같은 방에 Desk 4, SideTable 4, CoffeeTable 1, 다른 DiningTable 0
diningtable_a2b8eb556a504cc29381a375cd56b397
a
dining table
dining table
table, kitchen table
역할 인스턴스 50개 중 같은 방에 Desk 5, SideTable 7, CoffeeTable 1, 다른 DiningTable 0
diningtable_12409cd5f7f694b8bf89ae1089f0bfa4
a
dining table
dining table
table, kitchen table
역할 인스턴스 39개 중 같은 방에 Desk 8, SideTable 4, CoffeeTable 2, 다른 DiningTable 0
diningtable_62e787a3885245c34cc3330240910beb
a
dining table
dining table
table, kitchen table
역할 인스턴스 34개 중 같은 방에 Desk 3, SideTable 7, CoffeeTable 1, 다른 DiningTable 0
diningtable_089acb80b74f0348b7337b13ac73b412
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 37개 중 같은 방에 Desk 3, SideTable 6, CoffeeTable 0, 다른 DiningTable 0
diningtable_9ad22c85731f44adaa87de6c1f5efb23
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 39개 중 같은 방에 Desk 4, SideTable 3, CoffeeTable 0, 다른 DiningTable 0
diningtable_9c02a064c4b425976de085d4eaaa59cb
a
dining table
dining table
table, kitchen table
역할 인스턴스 24개 중 같은 방에 Desk 2, SideTable 3, CoffeeTable 0, 다른 DiningTable 0
diningtable_ccf909fdcb2bcd7c1441fe7740cecd0b
a
dining table
dining table
table, kitchen table
역할 인스턴스 17개 중 같은 방에 Desk 0, SideTable 4, CoffeeTable 0, 다른 DiningTable 0
diningtable_0a462aa94ded95b9713578ea44eea3d8
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 13개 중 같은 방에 Desk 0, SideTable 2, CoffeeTable 0, 다른 DiningTable 0
diningtable_5998373f8cc3a5cf95fd99d754406513
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 9개 중 같은 방에 Desk 0, SideTable 1, CoffeeTable 0, 다른 DiningTable 0
diningtable_66a98315ac722a439c35ad98c2c33f80
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 6개 중 같은 방에 Desk 0, SideTable 3, CoffeeTable 0, 다른 DiningTable 0
diningtable_a1271102e7d3313087397a337003b3b7
a
dining table
dining table
table, kitchen table
역할 인스턴스 8개 중 같은 방에 Desk 0, SideTable 2, CoffeeTable 0, 다른 DiningTable 0
diningtable_c587120d46e86fcffc3997332bbc2427
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 7개 중 같은 방에 Desk 0, SideTable 0, CoffeeTable 0, 다른 DiningTable 0
diningtable_f6fd7e53ba9774cd88928e8024aad55f
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 4개 중 같은 방에 Desk 0, SideTable 0, CoffeeTable 0, 다른 DiningTable 0
diningtable_0312c56eb609cae1c30e5c9439a4e09e
c
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 5개 중 같은 방에 Desk 0, SideTable 1, CoffeeTable 0, 다른 DiningTable 0
diningtable_b4e1a9042fbd52004d56633326efce4a
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 2개 중 같은 방에 Desk 0, SideTable 0, CoffeeTable 0, 다른 DiningTable 0
diningtable_7bd9af02966b7e2fb8bfb44fd45f9dc7
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 4개 중 같은 방에 Desk 0, SideTable 0, CoffeeTable 0, 다른 DiningTable 0
diningtable_68b96849c09db3aa9b6a0302e884463a
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 3개 중 같은 방에 Desk 0, SideTable 0, CoffeeTable 0, 다른 DiningTable 0
diningtable_995c04cd7646dfbd70ce9f1aea5de37e
b
dining table
table
dining table, table; desk·side table(같은 방에 Desk/SideTable이 없을 때만)
역할 인스턴스 2개 중 같은 방에 Desk 0, SideTable 1, CoffeeTable 0, 다른 DiningTable 0
답변 행에서 본 같은 문제 — 가구는 맞혔는데 "dining table"을 desk라 불러 0점인 답
DiningTable 에셋은 침실·거실에도 놓이고 전부 "dining table"로 채점된다. 침실에 있는 탁자를 writer와 reader는 desk라고 부른다. 이름 문제 중 가장 큰 덩어리다.
건수DiningTable을 desk로 부른 답 자리(그 방에 진짜 desk가 없는 경우만): Finding 137, Restore 252. coffee table로 부른 자리 7/9.
영향tv stand 구제는 이 행들을 다루지 않는다(D5의 누락 이유 1위, 160/154행).
한계·반례이미지로 확인한 것은 이 3건이다.
find:train_2788__2:q02 [MEM^R]
질의Pick up the bowl
채점 정답(bowl:bedroom,dining table)
실제침실의 나무 탁자(의자 1개, 휴대폰, 화분) 위에 bowl이 있다. 이 방에 다른 desk는 없다.
왜 오류인가writer 메모리와 reader 모두 desk라 부른다. 정답 단어가 "dining table"이라 0점.
MEM^R reader reasoningAccording to the memory summary, a bowl was observed on the desk in the bedroom and was not moved during the episode.
MEM^R memory (written by the writer)M[bowl]: I picked up a knife from the kitchen countertop, carried it into the bedroom (where I saw a bed with a box and pillow, a basketball and box on the floor, a dresser, and a desk with a chair, cell phone, house plant, knickknack, key chain, and bowl), and placed the knife on the des
1번: 침실의 나무 탁자(의자 1개, 휴대폰, 화분). 채점 정답 단어는 "dining table". 2번: 질의 대상 bowl.
Put the bottles from the countertop on the shelving unit.
B4GT Action Log는 "side table"이라 쓰는데 Finding/Restore 답 어휘에 그 단어가 없다어휘
정답 행동 기록(GT Action Log)의 가구 이름은 scene card 카테고리에서 온다(SideTable → "side table"). Finding/Restore reader가 쓸 수 있는 표면 어휘 16개에는 "side table"이 없고 파서는 그 단어를 거부한다. 그래서 로그를 받은 reader는 어휘 안의 다른 단어로 바꿔 답한다.
건수type1 로그에서 SideTable이 출발지 32회·도착지 16회 등장(로그 이름 = 카드 카테고리, 예외 0/834). SideTable이 정답인 단일 정답 자리 62곳에서 GT Action Log reader의 답: coffee table 25, dresser 10, desk 6, dining table 3, floor 2, 기권 14, 그 밖 2, "tv stand" 0.
영향상한선으로 쓰는 GT Action Log가 이 자리들에서 원 채점 기준 0점이다. 보관된 논문 런은 사후 채점 보정(scripts/scoring_fixes.py의 "tv stand 명칭 구제 R2")을 거쳤다: Finding 34행, Restore 27행이 구제돼 place_set이 1로 올라갔다(원값은 scores.place_set_raw). SideTable이 정답인 Finding 단일 정답 행 105개(5전략) 중 26개가 그렇게 구제됐고(원값은 전부 0), Restore의 해당 행은 now·original 면 모두 0 그대로다. 따라서 '사실상 0점'은 원 채점 기준이며, 공개 코드의 기본 채점에는 이 구제가 들어 있지 않다.
어떻게 고칠 것인가B1과 함께 해결: 어휘에 "side table" 추가 + 정답 이름을 카드 카테고리로. 최소 조치로는 canon_surface에 "side table"/"end table" → SideTable 정답 인정 alias(Routine용 canon_surface_routine에는 이미 있음).
한계·반례캡처는 해당 질의의 집이 아니라 같은 자산 모델이 잘 보이는 다른 컨텍스트의 것일 수 있다(상자 안 가구의 모양은 같다).
질의Pick up the remote control and place it in or on where it first was
채점 정답{'room': 'bedroom', 'surface': 'tv stand'}
실제로그는 이 가구를 "side table"이라 부른다. reader는 어휘에 없는 그 단어 대신 "desk"라고 답했다.
왜 오류인가정답 행동 기록을 그대로 받은 reader조차 채점 이름 "tv stand"를 낼 방법이 없다.
GT Action Log (subtasks.json task_description)Pick up the remote control from the side table in the bedroom and place it in or on the drawer of the dresser
GT Action Log reader reasoning (gemini-3.7-flash)The remote control was picked up from the side table (desk) in the bedroom and placed onto the dresser in the bedroom, where it currently remains.
실제로그는 이 가구를 "side table"이라 부른다. reader는 어휘에 없는 그 단어 대신 "coffee table"라고 답했다.
왜 오류인가정답 행동 기록을 그대로 받은 reader조차 채점 이름 "tv stand"를 낼 방법이 없다.
GT Action Log (subtasks.json task_description)Pick up the candle from the side table in the living room and place it in or on the sofa
GT Action Log reader reasoning (gemini-3.7-flash)The candle was moved from the side table (coffee table) in the living room to the sofa in the living room, and was not moved again. Therefore, it is currently on the sofa in the living room, and its first location was on the coffee table in the living room.
실제로그는 이 가구를 "side table"이라 부른다. reader는 어휘에 없는 그 단어 대신 "coffee table"라고 답했다.
왜 오류인가정답 행동 기록을 그대로 받은 reader조차 채점 이름 "tv stand"를 낼 방법이 없다.
GT Action Log (subtasks.json task_description)Pick up the cell phone from the side table in the living room and place it in or on the countertop
GT Action Log reader reasoning (gemini-3.7-flash)The cell phone is currently on the dining table in the kitchen after being moved from the countertop. Originally, it was located on the side table (coffee table) in the living room.
가구 이름을 만드는 곳이 네 군데다: Finding/Restore 채점(uid prefix → vocab_v1.json), Routine 채점(질의 파일), GT Action Log(scene card 카테고리), 실행 트랙(agent/naming.py). SideTable은 tv stand / side table / side table / side table, ShelvingUnit은 shelf / shelf / shelving unit / shelving unit이다. Routine에서는 사용자 발화가 "shelving unit"인데 정답은 "shelf"이고 파서는 "shelving unit"을 거부한다.
건수이름이 출처 간에 다른 자산 모델 88/264종. 아래는 정답 질의가 많은 순으로 15종(SideTable 13 + ShelvingUnit 2). Routine ShelvingUnit 정답 자리 51(질의 28).
영향한 트랙에서 통하는 이름이 다른 트랙에서 오답이나 파싱 거부가 된다. 방법 간 비교에서 GT Action Log와 R&R Agent(작성 안내에 "side table" 포함)가 서로 다른 이름 환경에 놓인다.
어떻게 고칠 것인가가구 이름표를 하나로 통일(scene card 카테고리 기준 표시명 1개 + alias 목록)하고 네 곳이 그 표를 읽게 한다: vocab_v1.json, vocab.py의 ROUTINE_SURFACE_EXTRA/_ROUTINE_ALIASES, agent/naming.py의 COARSE_ALIASES. 최소 조치: _ROUTINE_ALIASES에 "shelvingunit" → "shelf" 추가.
한계·반례88종에는 로그의 "drawer of the dresser"처럼 표현만 다른 경우도 포함된다.
전체 목록asset_names__furniture.csv: names_differ_across_sources == 1
답 어휘는 시뮬레이터 uid에서, 질의문과 로그의 단어는 scene card 카테고리나 주입 에셋 이름에서 온다. 질의는 "potato"라고 묻는데 파서가 받는 이름은 "irish potato"뿐이다. 표로만 제시한다.
건수어휘 밖 질의 단어가 든 질의: Finding 76/722, Restore 111/575, Routine 154/314(Routine 파서는 원문을 그대로 둔다). 어휘 밖 단어: potato, kettle, pan, spray bottle, soap bottle, paper towel roll, cloth, hand towel, phone, remote, keys, soap bar, desk lamp, toilet paper roll.
영향보관된 gemini-3.7-flash 런에서는 해당 질의의 행 1,120개 중 재질의 2개, 최종 파싱 실패 0개로 점수 영향이 없었다. 채점은 (방, 표면)만 비교하고 물체 이름은 보지 않는다.
어떻게 고칠 것인가vocab.py의 canon_object에 alias 추가(potato→irish potato, kettle→boiler, pan→cooking pan, spray bottle→atomizer, soap bottle→soapdispenser, paper towel roll→paper towel, cloth→fabric, phone→cell phone, remote→remote control, keys→key chain). gemini 수치는 바뀌지 않는다. plumbershelper prefix는 어휘 키 plumber'shelper와 맞지 않으므로 정규화 한 줄 추가.
한계·반례마스터 목록의 "약한 reader의 파서 거부율(qwen-8B 6%, molmo2 9–11%, cosmos 33%)"은 이 영역의 자료로 확인한 수치가 아니다. 여기서는 gemini-3.7-flash만 확인했다.
전체 목록asset_names__objects.csv: name_mismatch_query_vs_graded == 1 또는 words_parser_rejects가 비어 있지 않음
예시 19개
actor:cloth
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: cloth 46 / 로그 단어: cloth 53 / 실행 트랙 이름: cloth
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
cloth
scene_card_category
(injected actor)
n_gt_queries
22
actor:hand towel
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: hand towel 72 / 로그 단어: - / 실행 트랙 이름: hand towel
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
hand towel
scene_card_category
(injected actor)
n_gt_queries
72
actor:potato
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: potato 23 / 로그 단어: potato 107 / 실행 트랙 이름: potato
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
potato
scene_card_category
(injected actor)
n_gt_queries
23
actor:remote
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: remote control 22 / 로그 단어: remote 41 / 실행 트랙 이름: remote
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
remote
scene_card_category
(injected actor)
n_gt_queries
17
actor:soap bottle
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: soap bottle 51 / 로그 단어: soap bottle 82 / 실행 트랙 이름: soap bottle
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
soap bottle
scene_card_category
(injected actor)
n_gt_queries
28
actor:spray bottle
채점 정답채점 어휘 이름: (not in vocab_v1)
실제질의문 단어: spray bottle 78 / 로그 단어: - / 실행 트랙 이름: spray bottle
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
spray bottle
scene_card_category
(injected actor)
n_gt_queries
78
scene:atomizer
채점 정답채점 어휘 이름: atomizer
실제질의문 단어: spray bottle 22 / 로그 단어: ? 12; spray bottle 5 / 실행 트랙 이름: spray bottle
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
spray bottle
scene_card_category
SprayBottle
n_gt_queries
20
scene:barsoap
채점 정답채점 어휘 이름: bar soap
실제질의문 단어: - / 로그 단어: ? 1; soap bar 1 / 실행 트랙 이름: soap bar
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
soap bar
scene_card_category
SoapBar
n_gt_queries
0
scene:boiler
채점 정답채점 어휘 이름: boiler
실제질의문 단어: kettle 14 / 로그 단어: - / 실행 트랙 이름: kettle
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
kettle
scene_card_category
Kettle
n_gt_queries
14
scene:cellulartelephone
채점 정답채점 어휘 이름: cell phone
실제질의문 단어: cell phone 101 / 로그 단어: cell phone 38; ? 8; phone 6 / 실행 트랙 이름: cell phone
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
phone
scene_card_category
CellPhone
n_gt_queries
96
scene:cookingpan
채점 정답채점 어휘 이름: cooking pan
실제질의문 단어: pan 27 / 로그 단어: - / 실행 트랙 이름: pan
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
pan
scene_card_category
Pan
n_gt_queries
27
scene:fabric
채점 정답채점 어휘 이름: fabric
실제질의문 단어: cloth 3 / 로그 단어: cloth 2; ? 1 / 실행 트랙 이름: cloth
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
cloth
scene_card_category
Cloth
n_gt_queries
3
scene:irishpotato
채점 정답채점 어휘 이름: irish potato
실제질의문 단어: potato 74 / 로그 단어: potato 21 / 실행 트랙 이름: potato
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
potato
scene_card_category
Potato
n_gt_queries
71
scene:keyring
채점 정답채점 어휘 이름: key chain
실제질의문 단어: key chain 81 / 로그 단어: key chain 34; ? 5; keys 3 / 실행 트랙 이름: key chain
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
keys
scene_card_category
KeyChain
n_gt_queries
78
scene:papertowel
채점 정답채점 어휘 이름: paper towel
실제질의문 단어: paper towel roll 32 / 로그 단어: ? 2; paper towel roll 2 / 실행 트랙 이름: paper towel roll
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
paper towel roll
scene_card_category
PaperTowelRoll
n_gt_queries
32
scene:remotecontrol
채점 정답채점 어휘 이름: remote control
실제질의문 단어: remote control 267 / 로그 단어: remote control 130; ? 19; remote 9 / 실행 트랙 이름: remote control
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
remote
scene_card_category
RemoteControl
n_gt_queries
242
scene:soapdispenser
채점 정답채점 어휘 이름: soapdispenser
실제질의문 단어: soap bottle 33 / 로그 단어: ? 11; soap bottle 8 / 실행 트랙 이름: soap bottle
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
soap bottle
scene_card_category
SoapBottle
n_gt_queries
32
scene:tablelamp
채점 정답채점 어휘 이름: table lamp
실제질의문 단어: - / 로그 단어: ? 2; desk lamp 2 / 실행 트랙 이름: desk lamp
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
desk lamp
scene_card_category
DeskLamp
n_gt_queries
0
scene:toilettissue
채점 정답채점 어휘 이름: toilet tissue
실제질의문 단어: - / 로그 단어: ? 4; toilet paper roll 4 / 실행 트랙 이름: toilet paper
왜 오류인가질의나 로그가 쓰는 단어가 답 어휘에 없다.
원자료 필드
words_parser_rejects
toilet paper roll
scene_card_category
ToiletPaper
n_gt_queries
0
B7물체 에셋이 이름과 다르게 보인다 (egg, vase, pepper shaker, ladle, remote control, mug)데이터 재생성
몇몇 물체는 화면에서 그 이름으로 보이지 않는다. egg는 갈색 타원체라 감자와 같고, vase는 납작한 노란 돔, ladle은 긴 숟가락, remote control은 버튼 없는 회색 판이다. writer가 물체를 집는 순간(GT pick 사건과 겹치는 30초 창)에 붙인 이름으로 셌다.
영향Finding/Restore는 질의가 물체 이름을 주므로, 메모리에 다른 이름으로 적히면 reader가 그 사건을 찾지 못한다. 사람도 구분하기 어려운 경우라 모델 능력의 문제가 아니라 에셋의 문제다.
어떻게 고칠 것인가권장: 해당 물체가 정답인 질의에 표시를 달아 별도 집계하거나, 혼동 쌍(egg=irish potato, ladle=spoon, mug=cup, pepper shaker=salt shaker)을 메모리 매칭에서 동치로 취급. 근본 해결은 에셋 교체(데이터 재생성).
한계·반례마스터 목록의 "vase 0/28, pepper shaker 0/16"은 이 영역의 장부와 다르다: 장부 값은 0/14, 0/8이며 이것도 Finding 런과 Restore 런의 메모리를 합친 수다(같은 녹화를 두 번 기록). pepper shaker는 확인 가능한 사건이 하나뿐이라 예시가 1개다. remote control이 "cell phone"·"credit card"로 불린 사건은 물체가 집게에 가려 설득력 있는 캡처를 얻지 못했다. egg_1은 상자 안 물체가 팔에 일부 가려 있고 주변의 같은 에셋이 더 잘 보인다.
B7b닮은 물체 쌍이 같은 집에 함께 있고 실제로 혼동된다 (pen/pencil, cup/mug, knife/butter knife, remote/cell phone)결정 필요
서로 닮은 카테고리가 같은 컨텍스트에 따로 존재한다. 아래는 쌍마다 각 물체가 가장 크게 보이는 장면이다. 크게 보이면 구분되는 쌍도 있지만, 실제 사건에서는 물체가 수백 픽셀이라 이름이 바뀐다.
건수300 컨텍스트 중 둘 다 집에 있는 것: remote control/cell phone 235, pen/pencil 193, cup/mug 147, knife/butter knife 76. Finding/Restore 정답 질의 중 같은 방에 다른 쪽이 있는 것: 206 / 28 / 34 / 30.
영향메모리에 닮은 쪽 이름으로 적히면 질의의 물체를 찾지 못하거나 다른 물체의 위치를 답한다.
어떻게 고칠 것인가결정 사항: 혼동 쌍을 채점·매칭에서 묶을지, 같은 방에 닮은 물체가 있는 질의를 별도 표시할지. 데이터 쪽에서는 한 집에 닮은 쌍을 함께 두지 않도록 재생성.
한계·반례캡처는 혼동이 일어난 바로 그 사건이 아니라 각 물체가 가장 잘 보이는 장면이다. knife/butter knife와 remote/cell phone은 이 크기에서는 사람이 구분할 수 있다. "같은 집" 수치는 scene card 물체와 주입물 기준의 규칙 집계다.
전체 목록asset_names__confusions.csv: kind == lookalike_cooccurrence (example_ids 열에 같은 방 질의 id)
실제 예시 4개
pen/pencil
채점 정답pen 와 pencil
실제둘 다 가는 막대다. 이 캡처처럼 크게 보일 때는 색으로 구분되지만 pick 직전 중앙값은 pen 165픽셀(약 13×13)이라 보통은 구분이 안 된다.
Resume 명령은 "place them into the basket", "eggs"라고 하는데 MEM^R writer는 바구니를 "bin" 또는 "trash can"으로, 달걀을 "irish potato"로 적는다. 횟수는 맞게 적혀 있어도 reader는 명령의 물체·수납처와 다르다고 보고 과제를 시작하지 않았다고 답한다. R&R Agent는 쓰기 프롬프트(tagmem_v7)가 "laundry basket" 이름을 지정하고 읽기 안내(v9)에 "my notes may name an object differently from the instruction" 문장이 있다.
건수put_in_container 67칸 중 MEM^R 메모리가 bin/trash can만 쓴 칸 42, basket 22(R&R는 basket 64). eggs 과제 51칸 중 달걀을 potato로 적은 칸 MEM^R 23, R&R 24. 이 원인의 오답 행 MEM^R 24/87, R&R 12/76.
영향달걀이 potato로 적힌 칸의 정답률 MEM^R 10/23(43%) vs egg로 적힌 칸 24/28(86%). R&R는 19/24(79%) vs 21/27(78%)로 차이가 없다. 이 행을 빼면 MEM^R .460→.540, R&R .528→.570.
어떻게 고칠 것인가writer에 주는 물건 목록에 basket을 넣고(run_eval_resume.py의 RRBENCH_WRITER_INVENTORY=v2) 전 writer에 똑같이 적용한다. "메모의 이름이 명령과 다를 수 있다" 문장은 전 방법 reader 안내에 넣거나 R&R에서도 뺀다. 달걀 에셋이 감자처럼 보이는 문제는 에셋 교체가 근본 해결. 재측정이 필요하고 수치가 바뀐다.
한계·반례D3와 같은 증거를 쓴다. 마스터 D3의 "R&R 143/158, MEM^R trash can 107/150"은 다른 영역(memory_content)의 집계라 이 영역 수치(칸 기준 42/67, 64/67)와 분모가 다르다. 이름 불일치 행 판정은 reasoning 정규식 20행(19행 해당)과 메모리 원문 6개 확인에 근거한다.
전체 목록qa_rows_resume_routine__items.csv: family=resume, name_mismatch_cmd_vs_memory=1 (열 mem_container_word)
실제 예시 2개
resume:train_9402__2000:cut_07
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Pick up five of the eggs from the desk and place them into the basket." → remaining 1 ; "Press the button on the washing machine four times." → remaining 2
실제바구니는 뚜껑이 열린 고리버들 통이고 달걀은 갈색이라 감자처럼 보인다. 컷까지 4개를 넣었다(GT 남은 1).
왜 오류인가메모리의 횟수는 GT와 같다. 이름이 명령과 달라 reader가 "그 과제는 시작하지 않았다"고 답했다.
MEM^R memory at the cutdresser with three irish potatoes, and an open trash can holding four irish potatoes I previously placed inside. In the living room, there is a cart, a sofa with a laptop, and a desk holding reading material and a bowl (which I attempted to grasp but aborted). Returning through the bedroom, I enter
MEM^R reader reasoningCommand 1 required placing five eggs into a basket, but no eggs were moved (5 remaining). Command 2 asked to move the bowl on the table, but the grasp was aborted (1 remaining). Command 3 asked to press the button on the washing machine four times, but it was only pressed twice (2 remaining).
달걀 4개째를 넣기 직전. 1 = 명령의 "basket"(뚜껑 달린 고리버들 통, 메모리는 "open trash can"). 2 = 명령의 "eggs"(갈색 둥근 물체, 메모리는 "irish potatoes").
"Pick up five of the eggs from the desk and place them into the basket." → 5 ; "Hold on — move the bowl to the other end of the dining table first." → 1 ; "Press the button on the washing machine four times." → 2
resume_ok
0
gt_done
put_in_container 4/5;press_button 2/4
resume:train_3897__2000:cut_12
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Navigate to every room in the house." → remaining 1 ; "Pick up five of the eggs from the dining table and place them into the basket." → remaining 1
실제컷까지 달걀 4개가 바구니에 들어갔다(GT 남은 1). 메모리도 4개를 넣었다고 적었다.
왜 오류인가메모리의 횟수는 GT와 같다. 이름이 명령과 달라 reader가 "그 과제는 시작하지 않았다"고 답했다.
MEM^R memory at the cutsh potato). One by one, I picked up and dropped four irish potatoes from the table into the cylindrical bin, bringing the total inside the bin to five (leaving three on the table). I then traveled to the dining table in the dining/kitchen area and positioned my gripper above the toaster.
MEM^R reader reasoningThe robot has visited 3 out of 4 rooms (bedroom, living room, kitchen), leaving 1 room (bathroom) left to navigate. The command to pick up 5 eggs from the dining table and place them in the basket has not been started yet, leaving all 5 eggs remaining. All check interruptions have been completed.
영향거부된 행은 내용과 무관하게 0점이다. "dining room", "table", "counter", "couch", "nightstand"처럼 뜻이 분명한 단어가 포함된다.
어떻게 고칠 것인가어휘 별칭 추가(vocab._ROUTINE_ALIASES: counter→countertop, couch→sofa, nightstand→side table, shelving unit→shelf, hamper류) 또는 재질의 메시지에 허용 목록을 다시 보여 준다. "dining room"·"laundry room"은 방 어휘 4개에 대응이 없어 결정이 필요하다. JSON 잘림은 max_tokens 문제로 별도. 별칭을 넣으면 오픈 모델 수치가 바뀌고 flash는 그대로다.
한계·반례이 표는 Routine만 집계했다(마스터의 "Resume·Routine"과 다름). Resume에는 닫힌 어휘 거부가 없다. 마스터가 든 "side table"은 Routine 어휘에 있어 여기서는 거부되지 않는다(Finding/Restore 쪽 문제). 재질의에서 고쳐진 첫 시도 거부는 세지 않았다. 캡처로 보여 줄 대상이 아니라 표만 실었다.
전체 목록qa_rows_resume_routine__other_models.csv: family=routine, parse_ok=0 (열 parse_error)
실제 예시 1개
cosmos-r2-8b Routine (집계)
질의(여러 질의)
채점 정답(해당 없음)
실제파서 오류 문자열의 형태
왜 오류인가방 "dining room"은 방 어휘(bathroom, bedroom, kitchen, living room)에 없어 답 전체가 거부된다.
parser error (rows[].error)selections[0].room 'dining room' is not one of the rooms
parser error (rows[].error)selections[0].surface 'cabinet' is not in the surface list
원자료 필드
rows_failed
300
rows_total
1884
최종 실패 행에서 거부된 단어 (Routine, 모델별 행 수)
축
단어
cosmos-r2-8b
molmo2-8b
qwen3vl-8b
qwen3vl-32b
qwen3.8-27b
방
dining room
25
3
5
6
0
방
laundry room
2
12
1
0
0
방
dining area
4
0
0
1
0
수납처
table
2
29
0
1
0
수납처
counter
0
19
0
0
0
수납처
cabinet
15
13
0
3
0
수납처
drawer
16
8
5
0
0
수납처
refrigerator / fridge
5
8
0
0
7
수납처
nightstand
0
5
0
0
0
수납처
couch
2
0
0
0
0
수납처
wooden table
5
0
0
0
0
수납처
black shelf / black cabinet
8
0
0
0
0
모델별 최종 실패 행과 재질의 행 (Routine 1,884행)
모델
최종 실패
재질의한 행(attempts=2)
gemini-3.7-flash
0
0
gpt-5.6-luna
0
4
gemma4-31b
0
4
qwen3.8-27b
8
93
qwen3vl-32b
19
119
molmo2-8b
130
324
qwen3vl-8b
168
265
cosmos-r2-8b
300
691
B10가구 이름 shelf · tv stand · shelving unit · side table이 실행에서 접지되지 않는다어휘
지시문이 말한 (방, 가구)로 navigate하면 하네스가 "there is no shelving unit in kitchen"처럼 그 방에 그 가구가 없다고 답한다. 이름은 집 이름 목록에 있는데도 그렇다. QA 어휘 이름인 shelf·tv stand는 실행 이름 목록에 없다(목록에는 shelving unit·side table).
건수하네스 진단상 접지 안 되는 GT 질의 23개(Routine 19, Finding 2, Restore 2). 메시지 수: GT Routine shelving unit 64 · side table 26, recalled Routine shelving unit 45 · side table 19. 셀 성공은 표 참조
영향해당 셀은 목적지에 갈 수 없어 구조적으로 실패한다. E8의 abort 196셀 중 다수가 이 메시지로 끝난다.
어떻게 고칠 것인가두 층으로 나눠 고친다. (1) 어휘: src/rrbench/agent/naming.py:105의 COARSE_ALIASES(shelf → Shelf|ShelvingUnit, tv stand → TVStand|SideTable)가 논문 런에서 적용됐는지 확인하고, GT 계획 문장을 만들 때 QA 어휘 이름 대신 집 이름 목록의 이름을 쓰게 한다(execution/online_plan.py의 계획 문장 생성). (2) 방 라벨: 이름이 목록에 있는데 GT 방에서 접지되지 않는 질의는 물체의 방 라벨과 GT의 방이 다른 것이므로 데이터의 방 값 또는 execution/grounding.py:anchor_candidates의 방 일치 조건(가구가 걸친 인접 방 허용)을 고친다. 재실행 대상.
조립 주: 첫 통합 목록의 'shelving unit으로 abort 79셀'은 틀렸다. 79는 GT Routine의 invalid 2회 abort 전체이고 그중 shelving unit 메시지는 약 30셀이다.
한계·반례마스터 목록의 "shelf 성공 0/87"은 recalled 67셀 + GT Restore 20셀의 합이다(표 3에서 재계산). "shelving unit으로 abort 79셀"은 정확하지 않다 — 79는 GT Routine의 invalid 2회 abort 전체이고, 그중 shelving unit 메시지로 끝난 것은 표 1·E8의 조합표 기준 약 30셀이다. 왜 GT 방에서 접지되지 않는지는 씬 요약이 보관돼 있지 않아 확정하지 못했다.
전체 목록exec_cells__items.csv: gt_unground 비어 있지 않음 / nosurf_msgs에 이름 포함; 질의 목록은 exec_cells__gt_names_unground.json
실제 예시 1개
gt:routine:cb0e655b4877:rollforward-vis-pure
질의Clear the countertop. Items on it: spray bottle, alarm clock, soap bottle, soap bottle.
채점 정답put the spray bottle away on the side table in the bedroom || put the alarm clock away on the shelving unit in the kitchen || put the soap bottle away on the side table in the bedroom || put the soap bottle away on the side table in the bedroom
[{"turn": 0, "controller": "navigate(category=spray bottle, surface=countertop, room=kitchen)", "harness_messages": ["there is no countertop in bathroom"], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {}, "reasoning": "Navigate to the spray bottle on the countertop in the kitchen to begin step 1."}, {"turn": 1, "controller": "pick(category=spray bottle, surface=None, room=None)", "harness_messages": [], "executed_on": "h1_Spray_Bottle_1", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "Plan step 1: put the spray bottle away on the side table in the bedroom. We are at the countertop facing the objects, ready to pick the spray bottle."}, {"turn": 2, "controller": "navigate(category=spray bottle, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {}, "reasoning": "We need to execute step 1 of the plan: put the spray bottle away on the side table in the bedroom. First, navigate to the spray bottle on the countertop in the kitchen to get within picking range."}, {"turn": 3, "controller": "navigate(category=alarm clock, surface=shelving unit, room=living room)", "harness_messages": ["there is no shelving unit in kitchen", "there is no shelving unit in living room"], "reasoning": "unified turn invalid twice: there is no shelving unit in living room"}]
정답의 방 이름은 scene card의 방 유형(bedroom/bathroom/kitchen/living room)이다. writer가 붙인 방 이름을, 로봇이 그 방 안에 90% 이상 머문 30초 구간(창)마다 scene card와 비교했다. 침실에 식탁·소파·TV대가 있거나, 한 프레임에 방을 특징짓는 가구가 들어오지 않으면 다른 방으로 기록된다.
건수일치 4,157/4,842창(85.9%): kitchen 80.2%, bedroom 86.7%, living room 90.5%, bathroom 93.3%. 창이 3개 이상인 방 481개 중 일치율 60% 미만 61개. 침실에 식탁이 있는 방 159/872, 침실에 소파 16, 욕실에 수납가구 46. 일치율 낮은 방 53개의 프레임을 봤을 때 26개는 한 장으로 방 유형을 판단할 수 없었다.
영향방 이름이 틀리면 방 지표와 (방, 표면) 지표 모두 오답이다. 침실+소파 방의 일치율은 61.0%(111/182창)로, 가구 배치가 직접 원인이다.
어떻게 고칠 것인가결정 사항: 방 채점을 완화할지(예: 그 집에서 해당 표면이 하나뿐이면 표면만으로 인정) 여부. 대안은 reader에게 그 집의 방 목록과 대표 가구를 알려주는 프롬프트 변경, 또는 침실에 식탁·소파가 놓이지 않게 데이터 재생성.
한계·반례"거실에 침대가 있다"는 1차 감사의 관찰은 scene card로는 확인되지 않는다(침대가 Bedroom 밖에 있는 방 0/872). 방 이름 태그는 30초 창 단위라 문 너머로 본 옆방이 섞일 수 있다. 캡처는 방마다 한 장이며 방 전체를 보여주지 않는다.
전체 목록asset_names__rooms.csv: low_agreement(<0.6,>=3 windows) == 1 (61행). 사건 단위: asset_names__touches.csv에서 w_room != gt_room
실제 예시 4개
train_1843:room4
채점 정답scene card 방 유형: bedroom
실제scene card 가구 목록: Chair 6; Bed 2; Dresser 1; DiningTable 1; TVStand 1. writer가 이 방에 있는 동안 붙인 방 이름(30초 창별 최다 태그): living room 12
왜 오류인가방 유형을 알려주는 가구가 화면에 없거나, 다른 방을 떠올리게 하는 가구가 함께 있다.
1 = day bed(서랍 달린 흰 침대, 수납장처럼 보인다), 2 = 큰 식탁. 침실인데 거실·식당처럼 보인다.
실제scene card 가구 목록: Chair 4; Bed 1; Dresser 1; ArmChair 1; TVStand 1; Sofa 1; DiningTable 1. writer가 이 방에 있는 동안 붙인 방 이름(30초 창별 최다 태그): living room 37; bedroom 33; bathroom 4
왜 오류인가방 유형을 알려주는 가구가 화면에 없거나, 다른 방을 떠올리게 하는 가구가 함께 있다.
하네스는 녹화 길이를 obs_scene.steps_emitted로 읽어서, reader에게 주는 '현재 시야'가 마지막 물체를 수납처에 놓은 직후 프레임이 된다. 실제 녹화는 그 뒤 10–77초 동안 테이블로 돌아가는 구간이 더 있다. 그래서 정답 규칙의 증거 물체가 정답 수납처 위에 놓인 모습이 질의와 함께 전달된다.
건수158/314 질의(direct 81/214, multi 77/100)에서 증거 물체가 exo_camera_1에 200픽셀 이상 보임. 하네스의 누출 플래그(leak_last_frame)는 4행뿐.
영향gemini-3.7-flash direct 214행에서 보이는 81행 대 안 보이는 133행 정답률: 기억 없음(No Memory) 17.3% 대 6.8%, Uniform Frames 44.4% 대 21.1%, MEM^R 81.5% 대 53.4%. 기억력이 아니라 사진 읽기로 맞히는 행이 섞여 있다.
어떻게 고칠 것인가권장: src/rrbench/qa/episode_loader.py:120의 n_steps를 traj.h5 실제 길이(영상 프레임 수)로 바꿔 현재 시야를 테이블 복귀 후 마지막 프레임으로 한다. 함께 routine.leak_last_frame을 '실제 질의 프레임, exo_camera_1' 기준으로 다시 계산한다. 대안: 158행을 본표에서 제외. 어느 쪽이든 Routine 논문 수치가 바뀐다.
한계·반례1차 감사의 37/314는 픽셀이 측정되지 않은 프레임(-1)을 그대로 읽은 값이다(픽셀은 5프레임마다만 기록). 가장 가까운 측정 프레임(±2프레임)으로 세면 158이다. 직접 본 질의 프레임 9장 중 9장에서 증거가 보였다(1장은 수납처 발치 바닥). 158행 전부를 눈으로 보지는 않았다.
전체 목록gt_resume_routine__items.csv: family=routine & T_evid_visible_query_frame_ge200_exo1=1
실제 예시 4개
routine:train_4706__7528:direct_R2
질의Put the butter knife on the countertop away.
채점 정답butter knife->bedroom/desk
실제책상(선반 달린 책상) 위에 국자·뒤집개·칼이 놓여 있다. 로봇이 방금 마지막 조리도구를 내려놓은 자리다. 질의 종류: direct(물건 하나를 치우라는 질의).
왜 오류인가답으로 써야 할 수납처와 그 위의 증거 물체가 reader에게 주는 '현재 시야' 한 장에 그대로 찍혀 있다. 기억이 없어도 이 사진만으로 답할 수 있다.
reader가 '현재 시야'로 받는 프레임(exo_camera_1, steps_emitted−1). 빨간 상자 = 정답 규칙의 증거 물체가 놓인 정답 수납처.
답변 행에서 본 같은 문제 — Routine 현재 시야 누출: 메모리 없는 reader가 쿼리 프레임에서 답을 읽는다 (행 증거)
reader가 받는 "현재 시야"는 steps_emitted−1 프레임이다. 이 프레임은 로봇이 마지막 물건을 수납처에 놓은 직후라, 수납처와 그 위의 같은 종류 물건이 보인다. 데이터셋이 넣은 "테이블 복귀" 구간은 잘려 쓰이지 않는다.
건수쿼리 프레임에 규칙의 증거 물체가 200픽셀 이상 보이는 질의 158/314(direct 81/214, multi 77/100), 본표 310행 중 157. 하네스 누출 플래그는 4행. No Memory가 맞힌 direct 23행 중 15행이 현재 시야 답, Uniform이 맞힌 direct 64행 중 23행은 증거가 쿼리 프레임에만 있다.
영향발화에 수납처가 있는 direct 행에서 시야에 보임 79행 / 안 보임 95행의 정답률: No Memory .177 / .063, Uniform .430 / .189. 시야 누출 157행을 빼면 Uniform .223→.183, No Memory .074→.052, R&R .606→.647. 순위는 같다.
한계·반례픽셀 기준은 증거 물체(놓인 뒤)만 센다. 바구니 안 물체는 잡히지 않아 laundry basket 규칙은 과소 계산된다. No Memory 15행 중 1행(train_4492__7250)은 reasoning이 상식 표현이라 시야 답인지 불확실하다.
routine:train_2814__7699:direct_R1
질의Put the spray bottle on the countertop away.
채점 정답(living room, sofa)
실제메모리가 전혀 없는 No Memory reader가 쿼리 프레임만 보고 정답을 냈다.
왜 오류인가쿼리 프레임(steps_emitted−1)이 마지막 놓기 직후라서, 방금 놓은 같은 종류 물건과 수납처가 화면에 보인다.
No Memory reader reasoning (answer ('living room', 'sofa'), place_set 1)A spray bottle is currently kept on the sofa in the living room.
No Memory reader가 본 유일한 이미지. 빨간 상자 = 검은 소파 위에 방금 놓은 병들.
왜 오류인가쿼리 프레임(steps_emitted−1)이 마지막 놓기 직후라서, 방금 놓은 같은 종류 물건과 수납처가 화면에 보인다.
No Memory reader reasoning (answer ('living room', 'armchair'), place_set 1)In the current scene, a spray bottle and dispenser are seen placed on the armchair in the living room.
Put the bottles from the countertop on the armchair. / Put the kitchen utensils from the countertop on the dining table.
routine:train_1161__7338:direct_R2
질의Put the fork on the dining table away.
채점 정답(living room, sofa)
실제메모리가 전혀 없는 No Memory reader가 쿼리 프레임만 보고 정답을 냈다.
왜 오류인가쿼리 프레임(steps_emitted−1)이 마지막 놓기 직후라서, 방금 놓은 같은 종류 물건과 수납처가 화면에 보인다.
No Memory reader reasoning (answer ('living room', 'sofa'), place_set 1)Cutlery such as the knife is placed on the sofa in the living room, so the fork should also go on the sofa in the living room.
Put the gadgets from the dining table on the side table. / Put the kitchen utensils from the dining table on the sofa.
쿼리 프레임에 증거가 보이는 행과 아닌 행의 정답률 (본표 310행)
조건
NoMem
GTLog
Uniform
MEM^R
MemER^R
R&R
증거가 보임 (n=157)
0.096
0.771
0.261
0.567
0.268
0.567
증거가 안 보임 (n=153)
0.052
0.745
0.183
0.516
0.307
0.647
direct·발화에 수납처 있음·보임 (n=79)
0.177
1.000
0.430
0.810
0.443
0.747
direct·발화에 수납처 있음·안 보임 (n=95)
0.063
1.000
0.189
0.684
0.358
0.811
C2단수 질의인데 같은 종류 물체가 집에 더 있다데이터 재생성
로봇이 옮기지 않은 물체를 묻는 Finding 질의(find_distractor)의 정답은 '추적 목록(tracked_objects)에 든 그 종류 물체 전부'다. 추적 목록 밖의 같은 종류 물체는 집에 실제로 있고 화면에도 나오지만 없는 것으로 친다. 그래서 'Pick up the mug'의 정답이 하나인데 머그가 다른 방에도 보인다.
건수find_distractor 334 질의 중 같은 종류 물체가 더 있는 질의 129개(단일 80, 다중 49). 그중 다른 물체가 다른 (방, 표면)에 있고 exo_camera_1 시야에 들어온 질의 58개(단일 34, 다중 24; 다중은 'all the …'인데 정답 목록에서 빠진 경우 포함).
영향다른 물체의 위치를 답하면 0점이다. 아래 네 예시에서 시각 메모리 방법 대부분이 정답이 아닌 쪽 물체를 답했다.
어떻게 고칠 것인가권장: 생성기에서 추적 여부와 무관하게 같은 종류 물체를 모두 세어, 둘 이상이면 단수 질의를 만들지 않거나 'all the …' 정답에 포함한다(데이터 재생성). 대안: 채점기가 같은 종류 다른 물체의 (방, 표면)도 정답으로 인정한다. 어느 쪽이든 논문 수치가 바뀐다.
조립 주: '다른 물체 위치로 답해 오답 81행'은 규칙 판정이고, 증거를 모으는 중 반례가 1건 나왔다(reader가 본 것은 정답 물체였고 방 단어만 달랐음). 81은 상한으로 읽어야 한다. 질의 쪽 수치(단일 80개 중 다른 물체가 시야에 들어오는 것 34개)는 그대로다.
한계·반례추적 안 된 물체는 픽셀 수가 없어서 '화면 안 + 2.5 m 이내 10초 이상'을 시야 대용 지표로 썼다(추적된 정지 물체 3,586개로 보정하면 92%가 실제로 보였다). 고유 (집, 종류) 43건 중 17건을 프레임으로 봤고 13건은 또렷, 4건은 작아서 식별 불가였다. '로봇이 옮긴 물체' 질의(I moved earlier)는 518개 묶음 전부 옮긴 물체 집합과 정답이 일치해 모호하지 않다. 마스터 목록의 '오답 81행'은 내 원장에 없는 수치다(다른 영역 집계).
전체 목록gt_find_restore__items.csv 의 ambiguity_class 가 'AMBIG_other_elsewhere_in_view' 또는 'PLURAL_INCOMPLETE_other_elsewhere_in_view'. 다른 물체 목록은 other_instances 열. 질의 단위는 gt_find_restore__queries.csv 의 ambiguous == 1 (family == find).
왜 오류인가질의는 단수('the …')인데 다른 물체가 (kitchen, countertop)에 보인다. 그쪽을 답하면 0점이다.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'countertop']], place 점수 0)A white mug is visible resting on the kitchen countertop in the current view.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'countertop']], place 점수 0)A white mug is located on the countertop in the kitchen.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'countertop']], place 점수 0)The mug is visible on the countertop in the kitchen in the current view.
왜 오류인가질의는 단수('the …')인데 다른 물체가 (bedroom, dresser)에 보인다. 그쪽을 답하면 0점이다.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)The watch was seen on the white dresser in the bedroom at the beginning of the episode.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'dresser']], place 점수 0)In the bedroom, a watch is visible resting on the white dresser alongside a dark vase.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['living room', 'desk']], place 점수 0)The watch (small ring-shaped object) was seen resting on the desk in the living room at t=450s and t=480s (IMG 63, IMG 65), and has not been moved since.
왜 오류인가질의는 단수('the …')인데 다른 물체가 (kitchen, dining table)에 보인다. 그쪽을 답하면 0점이다.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['bedroom', 'tv stand']], place 점수 0)In the snapshot at t=70.8s, a cell phone is visible resting on the tv stand in the bedroom.
MemER^R reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)In the memory frame at t=310.0s (kitchen), a cell phone is visible resting on the dining table next to the house plant and drinkware.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)Based on memory entry t=300s (IMG 40), the cell phone was last seen resting on the dining table in the kitchen.
왜 오류인가질의는 단수('the …')인데 다른 물체가 (kitchen, dining table)에 보인다. 그쪽을 답하면 0점이다.
Uniform Frames reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)The bowl was seen on the dining table in the kitchen at t=0.0s and remained there (visible again at t=593.9s).
MemER^R reader reasoning (gemini-3.7-flash, 답 [['living room', 'desk']], place 점수 0)At t=0.0s, the robot was interacting with the bowl on the kitchen dining table. Later at t=460.0s, the bowl is resting on the desk in the living room.
R&R Agent reader reasoning (gemini-3.7-flash, 답 [['kitchen', 'dining table']], place 점수 0)The bowl is located on the dining table in the kitchen, where it has remained resting throughout the episode.
한계·반례81행은 위치 일치 규칙이라 과대일 수 있다. 증거 수집 중 반례를 1건 찾았다: find:train_6056__2:q05 [MemER^R]는 규칙상 여기에 들었지만 프레임(exo1_f10999)을 보면 reader가 본 것은 정답 vase 자체이고 방 단어만 달랐다(방 이름 문제). 아래 3건은 reader가 인용한 프레임에 정답 물체가 0픽셀인 행만 골랐다. 마스터 목록의 "읽은 10행 중 5행만 확실"은 다른 유형(identity_instance)의 수치이고, 이 유형은 단수 질의 9행을 읽어 9행 모두 다른 인스턴스의 위치였다(이미지 확인 전 기준). 2850__2, 8171__1은 정답 쪽 인스턴스가 또렷이 보이는 보관 프레임이 없어 답한 쪽만 캡처했다.
find:train_3426__1:q05 [Uniform Frames]
질의Pick up the mug
채점 정답(mug:bedroom,tv stand)
실제이 집에는 mug가 2개다. 하나는 침실 탁자 위(정답), 하나는 부엌 countertop 위(현재 화면에 보임).
왜 오류인가질의는 "Pick up the mug"뿐이라 어느 mug인지 정할 수 없다. 실제로 있는 다른 mug의 위치를 정확히 답했는데 0점.
Uniform Frames reader reasoningA white mug is visible resting on the kitchen countertop in the current view.
마지막 프레임(현재 화면). 빨간 상자: 부엌 countertop 위의 mug. reader는 이 mug로 답했다.
Restore 질의는 'Pick up the mug and place it … where it first was'처럼 종류만 말한다. 같은 종류 물체 둘을 로봇이 옮긴 컨텍스트에서 정답은 자격 조건(변위 1 m 이상 등)을 통과한 하나뿐이다.
건수Restore 26 질의 / 27 정답(restore_target 322 질의 중). 24개 정답은 다른 물체도 로봇이 옮겼고, 3개 정답(restore:train_1362__0:q00, q01, q03의 vase)은 추적된 다른 vase가 0.3 m 넘게 자리를 바꿨다.
영향다른 쪽 물체의 현재·원래 위치를 답하면 0점이다.
어떻게 고칠 것인가생성기 자격 규칙: 같은 종류에서 자리가 바뀐 물체가 둘 이상이면 복수 질의로 묶거나 질의를 만들지 않는다(재생성). 대안: 채점기가 두 물체 중 어느 쪽 (현재, 원래) 쌍이든 인정.
한계·반례규칙 판정(이벤트 기록과 궤적)이다. 아래 두 예시는 프레임으로 두 물체를 확인했다. 옮기지 않은 같은 종류 물체가 다른 곳에 있는 질의는 따로 180개 있다('원래 자리로'가 옮겨진 것만 가리킨다고 읽어야 답이 하나가 된다).
전체 목록gt_find_restore__items.csv 의 ambiguity_class 가 'AMBIG_other_instance_also_' 로 시작 (family == restore).
실제 예시 2개
restore:train_1362__0:q02
질의Pick up the mug and place it in or on where it first was
채점 정답현재 (living room, dining table) → 원래 (kitchen, countertop)
실제로봇이 머그 두 개를 옮겼다. 정답은 그중 하나뿐이다.
왜 오류인가문장에 'I moved' 같은 구분이 없고 옮겨진 같은 종류가 둘이라 어느 것을 되돌리라는지 정해지지 않는다.
bedroom/bed:trk1:view38.2s; living room/tv stand:trk1:view65.8s; living room/tv stand:trk1:view70.2s; living room/dining table:trk0:view42.6s
n_other_moved_by_robot
1
ambiguity_class
AMBIG_other_instance_also_moved_by_robot
other_uid
keyring_38a2d58fb440223e3e220a82f38a2261_1_0_4
C4Routine: 수납처는 맞고 방 단어만 달라 0점결정 필요
채점은 (방, 수납처) 쌍이 GT와 같아야 한다. 발화는 수납처만 말하고 방은 말하지 않으므로 방은 메모리에서 와야 한다. 텍스트 방법의 오답 대부분은 수납처는 맞고 방 단어만 씬카드의 방 종류와 다른 경우다. 로봇은 그 종류 물건을 GT 수납처에만 놓았으므로 writer가 적은 방은 GT 방을 다르게 부른 것이다.
건수방 단어만 다른 행(답한 방에 그 가구 종류 없음): MEM^R 71, R&R 44, Uniform 24, MemER^R 23 (314질의 중, multi 포함). direct만: MEM^R 39, R&R 22, Uniform 13, MemER^R 13. 같은 종류의 다른 가구를 답한 행은 별도(direct MEM^R 9, R&R 11).
어떻게 고칠 것인가결정 사항. 권장: 본표에 place_set과 함께 수납처만 채점한 값(class_ok)과 다른 인스턴스 허용 값(place_any)을 병기하고, GT 방 라벨이 보이는 모습과 맞는지 A10 목록부터 확인한다. 방 목록 한 줄을 질의에 주는 방법(Resume에서 쓴 RRBENCH_QUERY_ROOMS)도 있다. 채점 정의를 바꾸면 논문 수치와 순위가 바뀐다.
한계·반례모델이 실제로 그 가구의 위치를 알았는지는 직접 증명되지 않는다. 프레임은 5개 컨텍스트만 봤고 반례가 1건 있다(train_6929__7721은 세면대가 보이는 욕실인데 모델이 bedroom이라고 함).
전체 목록qa_rows_resume_routine__items.csv: family=routine, room_name_mismatch=1 (cause_primary=ROOM_name_mismatch는 direct만)
실제 예시 3개
routine:train_1949__7456:direct_R2
질의Put the mug on the dining table away.
채점 정답(bathroom, side table)
실제씬카드는 이 방을 Bathroom으로 분류한다. 화면에는 나무 바닥과 어두운 벽만 보인다.
왜 오류인가수납처 단어는 GT와 같고 방 단어만 다르다. 답한 방에는 그 종류 가구가 씬카드에 없으므로 모델은 같은 가구를 다른 방 이름으로 부른 것이다.
MEM^R reader reasoning (answer ('living room', 'side table'), place_set 0, class_ok 1)The user previously instructed that dishes from the dining table should be placed onto the side table in the living room. Since a mug is a dish, it belongs on the side table.
쿼리 프레임. 빨간 상자 = GT (bathroom, side table). 나무 바닥에 흰 원형 탁자이고 욕실임을 알 단서가 화면에 없다.
실제씬카드는 이 방을 Kitchen으로 분류한다. GT "shelf"는 낮은 검은 수납장이다.
왜 오류인가수납처 단어는 GT와 같고 방 단어만 다르다. 답한 방에는 그 종류 가구가 씬카드에 없으므로 모델은 같은 가구를 다른 방 이름으로 부른 것이다.
MEM^R reader reasoning (answer ('living room', 'shelf'), place_set 0, class_ok 1)The user previously instructed to move bottles from the countertop to the shelf in the living room.
쿼리 프레임. 빨간 상자 = GT (kitchen, shelf). 빨간 벽 옆의 작은 검은 수납장이고 부엌 단서가 없다.
실제씬카드는 이 방을 LivingRoom으로 분류한다. MEM^R는 kitchen이라고 답했다. kitchen에는 씬카드상 dining table이 없다.
왜 오류인가수납처 단어는 GT와 같고 방 단어만 다르다. 답한 방에는 그 종류 가구가 씬카드에 없으므로 모델은 같은 가구를 다른 방 이름으로 부른 것이다.
MEM^R reader reasoning (answer ('kitchen', 'dining table'), place_set 0, class_ok 1)Fabrics and clothes from the countertop are placed on the dining table in the kitchen.
쿼리 프레임. 빨간 상자 = GT (living room, dining table). 초록 천이 놓인 갈색 탁자.
visible_at_start, visible_px_at_start, last_seen_frame, seen_s는 wrist_camera·exo_camera_1·exo_camera_2 중 최댓값으로 계산돼 있다. 메모리 QA의 writer와 reader는 exo_camera_1만 받는다.
관찰 규칙(observed)의 증거는 로봇이 옮기지 않고 지나가며 카메라에 잡힌 물건 3개다. writer는 exo_camera_1에서 30초마다 4장만 본다. 데이터셋의 노출 기록(segments, max_px)은 두 exo 카메라를 합쳐 계산돼 있어 exo_camera_1 기준보다 넉넉하다.
건수표본 프레임에 200픽셀 이상으로 한 번도 안 잡힌 증거 물체 29/120, 물체가 하나도 안 잡힌 규칙 5/40. 50픽셀 기준이면 5/120, 1/40. Uniform Frames 8장 기준이면 200픽셀 이상 잡힌 규칙 12/40.
영향해당 5개 규칙(direct 5행, multi 5행)은 증거가 writer 입력에 사실상 없다. 관찰 규칙 direct 40행 전체의 정답률은 MEM^R 8/40, R&R Agent 13/40, GT Action Log 1/40이다.
어떻게 고칠 것인가데이터셋의 노출 기준을 exo_camera_1로 다시 계산해 기준 미달 규칙을 표시·제외하거나, writer 표본 밀도를 높인다. 문서에 노출 기록이 두 카메라 합집합 기준임을 적는다.
한계·반례마스터 목록의 34/120, 7/40은 내 첫 집계의 오류다(표본 프레임 0번을 빼먹음). 다시 센 값이 29/120, 5/40이고 원장 CSV와 gt_resume_routine.md를 고쳤다. 200픽셀은 데이터셋이 쓰는 기준이며, train_3413__7889처럼 132픽셀로 작게 보이는 경우도 '없음'에 들어간다.
전체 목록gt_resume_routine__routine_evidence.csv: kind=pass_by & n_sampled_ge200=0 / gt_resume_routine__routine_rules.csv: source=observed & evidence_in_sampled_ge200=0
실제 예시 2개
routine:train_1815__8424:direct_R2
질의Put the hand towel on the countertop away.
채점 정답hand towel->living room/sofa
실제증거 물체 o1e0_Cloth_11, o1e1_Cloth_10, o1e2_Cloth_6. exo_camera_1에 200픽셀 이상 보인 시간은 각각 [5.4, 2.0, 8.4]초. 표본 80장 어디에도 천 3장이 1픽셀을 넘지 않는다.
왜 오류인가writer는 30초 창마다 4장만 받는다. 증거가 지나가며 잠깐 보였을 뿐이라 받은 사진에는 없거나 매우 작다.
writer가 받는 표본 프레임 중 증거가 가장 크게 잡힌 장면 (증거가 보이지 않는다).
실제증거 물체 o1e0_Knife_4, o1e1_Ladle_1, o1e2_Spatula_1. exo_camera_1에 200픽셀 이상 보인 시간은 각각 [4.0, 5.8, 0.2]초. 표본 76장 중 가장 잘 보이는 장면에서도 132픽셀로, 200픽셀 기준에 못 미친다(작게 보이기는 한다).
왜 오류인가writer는 30초 창마다 4장만 받는다. 증거가 지나가며 잠깐 보였을 뿐이라 받은 사진에는 없거나 매우 작다.
writer가 받는 표본 프레임 중 증거가 가장 크게 잡힌 장면. 빨간 상자 = 증거(132픽셀).
Put the bottles from the countertop on the armchair.
C9Routine observed 규칙: 증거가 입력에 있어도 "규칙 없음"으로 기권결정 필요
observed 규칙은 로봇이 옮긴 적도 지시받은 적도 없는 분류다. 지나가며 본 "같은 종류 물건이 어떤 가구 위에 있음"만이 근거다(예: 소파 위의 휴대폰·리모컨 → alarm clock은 소파로). reader는 그 장면이 입력에 있어도 지시나 놓은 기록이 없다며 기권한다.
건수direct observed 40행 중 정답: GT Log 1, MEM^R 8, Uniform 12, R&R 13, MemER^R 14. 증거가 입력에 있는데 기권한 행: MEM^R 7, MemER^R 6, Uniform 5, R&R 7(색인에는 있으나 검색되지 않은 4행을 더하면 11). multi의 mixed 40행 정답: R&R 3, MEM^R 2, Uniform 2, MemER^R 2, GT Log 0.
영향GT Log는 정의상 observed 규칙에 답이 없어 Routine 상한이 .758이다. multi mixed 질의는 observed 물건 하나 때문에 거의 전부 0점이다(self 물건은 다 맞고 observed만 틀린 행: GT Log 36, MEM^R 31, R&R 27).
어떻게 고칠 것인가과제 정의 결정. 권장: observed 규칙 질의를 본표에서 분리해 따로 보고하고, multi는 물건 단위 부분 점수(loc_f1 등)를 병기한다. observed를 유지한다면 시스템 프롬프트에 "본 적 있는 보관 위치도 규칙으로 쓴다"가 이미 있으므로("where you saw such things kept") 질의 문구를 바꿔도 효과가 불확실하다. 집계 방식만 바꾸면 재측정 없이 가능.
한계·반례원장의 "R&R 11행"은 증거 entry가 메모리 색인에 있는 행 수다. 그중 reader 입력(검색 결과)에 실제로 들어간 것은 7행이고 4행은 검색되지 않았다. 따라서 "입력에 있었는데 기권"은 R&R 7, 합계 25행이 정확하다(원장과 마스터의 29행은 색인 기준). 프레임 방법의 "입력에 있음"은 증거 물체 200픽셀 이상 기준이다.
전체 목록qa_rows_resume_routine__items.csv: family=routine, cause_primary=ABSTAIN_observed_evidence_in_input (multi는 cause_primary=MULTI_only_observed_item_missing_or_wrong)
실제 예시 3개
routine:train_6754__7860:direct_R2 [R&R]
질의Put the spray bottle on the countertop away.
채점 정답(kitchen, dining table)
실제R&R reader 입력에 "식탁 위 soap dispenser" 이미지와 캡션이 있었다. 같은 질의에서 MEM^R는 "Bottles are kept on the dining table in the kitchen."으로 정답.
왜 오류인가같은 종류 물건이 그 가구 위에 있는 것이 reader 입력에 있었는데, reader는 지시나 놓은 기록이 없다는 이유로 기권했다.
R&R Agent reader input — retrieved image entry (IMG, frame 10499)Dining table holding soap dispensers and a book in the kitchen (obj=soapdispenser,bottle act=look room=kitchen surf=dining table)
R&R Agent reader input — retrieved image entry (frame 750)Kitchen dining table with two bottles, a water bottle, and an item, and countertop with various produce
R&R reader reasoning (abstain)There is no instruction, placement history, or demonstrated preference in memory regarding where spray bottles (or atomizers) belong in this house.
R&R reader에게 실제로 전달된 이미지 entry(프레임 10499). 빨간 상자 = GT (kitchen, dining table) 위의 soap bottle들.
실제MEM^R 메모리에 "a sofa (holding a remote control, cell phone, and newspaper)"가 있다. reader는 alarm clock 규칙이 없다고 답했다.
왜 오류인가같은 종류 물건이 그 가구 위에 있는 것이 reader 입력에 있었는데, reader는 지시나 놓은 기록이 없다는 이유로 기권했다.
MEM^R memory (reader input)I was instructed to "Put the food from the countertop on the side table." In the living room, I saw a bed, a sofa (holding a remote control, cell phone, and newspaper), a tv stand with a bowl, a house plant, a shelf with a vase, and a side table. In the kitche
MEM^R reader reasoning (abstain)The instruction was to move food items from the kitchen countertop to the living room side table. There is no rule or demonstrated placement for alarm clocks or electronics.
writer가 본 프레임 중 하나(3250). 빨간 상자 = 빨간 소파 위의 휴대폰 2개와 리모컨. MEM^R 메모리에 이 내용이 문장으로 들어 있다.
Put the food from the countertop on the side table.
routine:train_5864__8552:direct_R2 [MemER^R]
질의Put the alarm clock on the countertop away.
채점 정답(living room, sofa)
실제MemER^R reader가 받은 8장 중 첫 장에 소파 위 휴대폰이 보인다. reader는 alarm clock을 옮긴 적이 없다며 기권했다.
왜 오류인가같은 종류 물건이 그 가구 위에 있는 것이 reader 입력에 있었는데, reader는 지시나 놓은 기록이 없다는 이유로 기권했다.
MemER^R reader input8 kept frames: [0, 1000, 2249, 2749, 4000, 4999, 5749, 8249]. Frame 0 shows the sofa with two cell phones (evidence pixels 737).
MEM^R memory (same context, also abstained)The user instructed me to put the bottles from the countertop onto the shelving unit. I saw a white shelf, a sofa with cell phones, and a countertop holding multiple bottles, an alarm clock, and an at
MemER^R reader reasoning (abstain)I observed an alarm clock on the kitchen countertop, but no alarm clock was moved during the episode and there is no prior memory or demonstration indicating where alarm clocks belong in this house.
MemER^R가 보관해 reader에게 준 프레임 0. 빨간 상자 = 검은 소파 위의 휴대폰 2개.
미완 과제가 1개인 질의와 2개인 질의의 문장이 다르다. 문장만 보고 답 목록의 길이를 알 수 있다.
건수161/161. "finish what you were doing" 100행은 모두 미완 1개, "finish all of what you were doing" 61행은 모두 미완 2개.
영향'어느 과제가 미완인지'를 맞히는 난도가 낮아진다. 크기는 미측정.
어떻게 고칠 것인가두 문장을 하나로 통일한다(queries.jsonl의 query). 통일하면 Resume 수치가 바뀔 수 있다. 유지한다면 논문에 명시.
전체 목록gt_resume_routine__items.csv: family=resume, kind 열(resume1/multi)
실제 예시 2개
resume:train_123__2000:cut_05
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답미완 1개: "Navigate to every room in the house." → remaining 2
실제kind=resume1, pending 1개
왜 오류인가'what'이면 항상 1개.
원자료 필드
kind
resume1
n_pending
1
resume:train_123__2000:cut_06
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답미완 2개
실제kind=multi, pending 2개
왜 오류인가'all of what'이면 항상 2개.
원자료 필드
kind
multi
n_pending
2
C14숨겨진 물체(서랍 안)의 Restore 실행은 한 셀도 성공하지 못했다결정 필요
정답 물체가 닫힌 서랍·수납장 안에 있는 Restore 질의는 실행에서 전부 실패했다. 물체를 꺼내려면 open을 성공시킨 뒤 안쪽에서 집어야 한다.
건수GT 설정 D3 0/140(28질의 × 5방법), 숨겨진 정답이 있는 Restore 셀 GT 0/190, recalled 0/69. 비교: Finding은 숨겨진 정답 셀 GT 37/220
영향Restore D3 칸은 방법 간 차이를 전혀 보여 주지 못한다. 평균에 0만 더한다.
어떻게 고칠 것인가과제 정의 결정. 권장: 숨겨진 물체 Restore를 실행 트랙 표에서 별도 칸으로 분리해 "현재 정책으로 수행 불가"로 표기하거나 셀 목록에서 뺀다. open 정책이 준비되면 다시 넣는다. 코드 수정 대상은 아니다.
한계·반례마스터 목록의 "서랍 안/위가 같은 답"은 QA 쪽 항목이고 여기서는 실행 결과만 다룬다. open/close를 시도한 셀 수는 표에 있다. open이 성공했는지는 턴 기록의 ok 값으로만 확인했다.
전체 목록exec_cells__items.csv: family=restore, subtype=D3 (또는 gt_hidden=1)
실제 예시 1개
gt:restore:243875f8910e:rollforward-v3
질의Pick up the remote control and place it in or on where it first was
채점 정답put the remote control back — it is now on the dresser in the bedroom; return it to the tv stand in the living room
실제정답 concealment=hidden. pick·open 시도 전부 실패.
왜 오류인가remote control이 서랍장 서랍 안에 있다. 제어기는 서랍장으로 가서 pick과 open을 반복했지만 한 번도 들지 못하고 예산이 끝났다.
controller reasoning (turn 35)The gripper is currently empty, so we are not holding the remote control. We must navigate back to the dresser in the bedroom where the remote control is located.
[{"turn": 0, "controller": "navigate(category=remote control, surface=dresser, room=bedroom)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "remotecontrol_1_0_7", "dist_to_gt_m": {"remotecontrol_1_0_7": 0.49}, "reasoning": "According to the plan, the remote control is currently on the dresser in the bedroom. I need to navigate there first."}, {"turn": 1, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "We arrived at the dresser in the bedroom. According to the plan, the remote control is on the dresser. I will issue a pick command for the remote control."}, {"turn": 2, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The remote control has not been picked up yet. A pick typically requires several turns, so continuing the pick subgoal."}, {"turn": 3, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is still positioning and has not grasped the remote control yet. Continuing the pick subgoal."}, {"turn": 4, "controller": "pick(category=remote control, surface=dresser, room=bedroom)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The pick action for remote control is still in progress and not yet grasped/lifted. Continuing pick(remote control)."}, {"turn": 5, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is reaching towards the remote control on the dresser, but hasn't picked it up yet. Continuing pick subgoal."}, {"turn": 6, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The pick action is still underway and the remote control has not been grasped yet. Repeating pick(remote control)."}, {"turn": 7, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The pick action for remote control is still in progress as the gripper is reaching towards the dresser surface/remote. Continuing pick."}, {"turn": 8, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The pick action for remote control is still in progress and the object is not yet lifted in the gripper. Repeating the pick subgoal."}, {"turn": 9, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The remote control is not yet grasped/lifted in the gripper. As per rules, pick usually requires multiple turns, so continuing pick."}, {"turn": 10, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is reaching for the remote control on the dresser but has not yet completed the grasp and lift. Repeating pick."}, {"turn": 11, "controller": "pick(category=remote control, surface=None, room=None)", "harness_messages": [], "executed_on": "remotecontrol_1_0_7", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is still reaching for the remote control and has not yet grasped or lifted it. Re-issuing pick."}]
Restore 숨겨진 물체 셀의 실행 결과
설정
구분
셀
성공
open/close를 시도한 셀
정답을 한 번이라도 든 셀
gt
하위유형 D3(숨겨진 물체)
140
0
4
0
gt
정답 중 숨겨진 물체가 있는 셀 전체
190
0
5
18
gt
숨겨진 물체가 없는 셀
550
116
0
301
recalled
하위유형 D3(숨겨진 물체)
46
0
36
0
recalled
정답 중 숨겨진 물체가 있는 셀 전체
69
0
47
7
recalled
숨겨진 물체가 없는 셀
521
130
2
297
C15질의문 오탈자데이터 재생성
Finding 질의문에 복수형 오타와 깨진 물체 이름이 있다.
건수Finding 5 질의 / 722: 'potatos' 3, 'tomatos' 1, 'c d' 1. Restore 0 / 575. (Resume의 35 질의는 다른 영역 집계)
영향Finding·Restore에서는 감점으로 이어진 증거가 없다. 파서는 'c d'를 'CD'로 받아들인다. 다만 'potato'라는 단어 자체는 파서가 거부한다(어휘 문제, 별도 항목).
어떻게 고칠 것인가생성기의 복수형 규칙에 potato→potatoes, tomato→tomatoes 추가, compactdisk의 표시 이름을 'CD'로 통일. queries.jsonl 5행 문구 수정. 점수 영향은 없을 것으로 본다.
한계·반례미디어 없음(텍스트 증거).
전체 목록gt_find_restore__items.csv 의 typo != ''.
실제 예시 3개
find:train_8287__1:q03
질의Pick up the c d
채점 정답(bedroom, desk)
실제물체 이름이 'c d'로 띄어져 있다(어휘의 표시 이름은 'CD').
왜 오류인가깨진 표기.
원자료 필드
name
c d
obj_cat
compactdisk
typo-potatos
질의Pick up all the potatos
실제'potatoes'가 'potatos'로 적혀 있다.
왜 오류인가복수형 오타. 해당 질의: find:train_3377__1:q05, find:train_6222__0:q00, find:train_6222__1:q01
typo-tomatos
질의Pick up all the tomatos
실제'tomatoes'가 'tomatos'로 적혀 있다.
왜 오류인가복수형 오타. 해당 질의: find:train_3944__0:q04
D. 방법 간 공정성
D1Routine: 사용자 발화가 R&R Agent와 MEM^R reader에만 전달된다결정 필요
Routine에서 사용자가 말한 명령("Put the food from the countertop on the side table.")에는 수납처 이름과 물건 분류어가 들어 있다. R&R Agent는 하네스가 이 발화를 메모리 entry로 넣어 주고, MEM^R는 writer가 발화를 받아 메모리 문장에 옮긴다. MemER^R와 Uniform Frames의 reader는 프레임만 받는다. 보관소의 io/<ctx>.md에는 reader 입력이 없어 코드와 메모리 파일, reasoning으로 확인했다.
건수정답 direct 행의 reasoning이 발화를 인용: GT Log 166/175, MEM^R 115/137, R&R 135/149, Uniform 0/64, MemER^R 0/83. 발화에 GT 수납처가 있는 direct 질의 174/212(본표 기준), 없는 질의 38.
영향발화에 수납처가 있는 174행에서 수납처 단어만 채점하면 MEM^R 1.000, R&R .954, MemER^R .489, Uniform .379. 발화에 없는 38행에서는 R&R .342 = MemER^R .342, MEM^R .184. R&R와 MEM^R의 우위는 발화가 있는 행에서만 나온다.
어떻게 고칠 것인가권장: 발화를 전 방법 reader 입력에 같은 형식으로 주거나(코드 memory_strategy._frames_turn의 RRBENCH_FRAMES_HEARD, rollforward.visual_memory_turns) 전 방법에서 뺀다. 어느 쪽이든 재측정이 필요하고 논문 수치가 바뀐다. 최소 조치는 논문에 비대칭을 명시하고 "발화에 수납처 있음/없음" 분할 표를 싣는 것.
조립 주: 'MEM^R 1.000, R&R .954'는 방을 뺀 수납처 단어 정답률이다. 방까지 맞힌 값은 .741 / .782다.
한계·반례마스터 목록의 "정답률 MEM^R 1.000, R&R .954"는 방을 뺀 수납처 단어 정답률(class_ok)이다. 방까지 맞힌 place_set은 MEM^R .741, R&R .782. reader 입력 원문은 보관되어 있지 않아 재구성했다.
전체 목록qa_rows_resume_routine__items.csv: family=routine, 열 gt_surface_in_heard_command, reasoning_cites_command, evidence_source
실제 예시 2개
routine:train_4533__7194:direct_R2
질의Put the bread on the countertop away.
채점 정답(living room, dining table)
실제R&R writer 자신도 이 탁자를 "desk"로 적었다(LEDGER "place apple → desk"). 그런데 발화 entry가 있어 reader는 "dining table"로 답했다.
왜 오류인가같은 질의인데 방법마다 reader가 받은 입력이 다르다. 발화를 받은 방법은 발화의 수납처 단어를 그대로 답하고, 프레임만 받은 방법은 가구 이름과 물건 분류를 스스로 정해야 한다.
R&R Agent reader input — harness-inserted entryHeard the user say: "Put the food from the countertop on the dining table."
R&R Agent reader input — LEDGER linesplace apple → desk [living room]: ×2 (n=?,2 · t=90,300) | place irish potato → desk [living room]: ×1 (n=1 · t=210) | place egg → dining table [living room]: ×1 (n=1 · t=420) | rooms seen so far: dining table (t=0) · kitchen (t=0) · living room (t=60)
MEM^R memory (reader input, full text start)The user instructed me to "Put the food from the countertop on the dining table." Initially, the kitchen countertop held an atomizer, two apples, a tomato, an egg, and two irish potatoes. In the main room, there is a side table with a laptop and credit card, an armchair with soapdispensers, and a d…
MemER^R reader input8 kept frames only (frames [0, 749, 3250, 4999, 5500, 6499, 8999, 10817]), no text
NoMem reader reasoning (answer abstain, place_set 0)There is no prior memory or established rule in this episode indicating where bread or food items belong in this house.
GTLog reader reasoning (answer ('living room', 'dining table'), place_set 1)The user previously instructed to put food from the countertop onto the dining table in the living room.
Uniform reader reasoning (answer ('living room', 'desk'), place_set 0)In the episode, food items from the kitchen countertop (such as apples, potatoes, and other food items) are moved to the white desk in the living room.
MEM^R reader reasoning (answer ('living room', 'dining table'), place_set 1)The user previously instructed to move food items from the countertop to the dining table in the living room. Bread is a food item, so it should be placed on the dining table.
MemER^R reader reasoning (answer ('living room', 'desk'), place_set 0)In the episode, food items such as apples, potatoes, and eggs from the kitchen countertop were transported and placed onto the desk in the living room.
R&R reader reasoning (answer ('living room', 'dining table'), place_set 1)The user instructed to put food from the kitchen countertop onto the dining table in the living room, where other food items (apples, potato, egg) were also placed.
쿼리 프레임. 빨간 상자가 GT "dining table"(음식이 놓인 흰 탁자). 프레임만 본 두 방법은 이것을 "desk"라고 불러 0점, 발화를 받은 방법은 "dining table"로 정답.
Put the food from the countertop on the dining table.
NoMem
answer=abstain score=0
GTLog
answer=('living room', 'dining table') score=1
Uniform
answer=('living room', 'desk') score=0
MEM^R
answer=('living room', 'dining table') score=1
MemER^R
answer=('living room', 'desk') score=0
R&R
answer=('living room', 'dining table') score=1
routine:train_1437__8070:direct_R2
질의Put the spray bottle on the countertop away.
채점 정답(living room, side table)
실제발화의 분류어 "bottles"가 없으면 soap dispenser와 spray bottle이 같은 분류인지 알 수 없다. MemER^R는 기권했다.
왜 오류인가같은 질의인데 방법마다 reader가 받은 입력이 다르다. 발화를 받은 방법은 발화의 수납처 단어를 그대로 답하고, 프레임만 받은 방법은 가구 이름과 물건 분류를 스스로 정해야 한다.
R&R Agent reader input — harness-inserted entryHeard the user say: "Put the bottles from the countertop on the side table."
R&R Agent reader input — LEDGER linesplace bottle → side table [living room]: ×4 (n=1,2,3,3 · t=90,180,450,480) | place soapdispenser → side table [living room]: ×1 (n=1 · t=300) | rooms seen so far: bathroom (t=0) · kitchen (t=30) · living room (t=30)
MEM^R memory (reader input, full text start)The user instructed me to put the bottles from the kitchen countertop onto the side table. I transported a blue bottle with a yellow pump, a pink rectangular soapdispenser, and a small blue bottle with a yellow top onto the side table. A rectangular blue soapdispenser remains on the floor near the …
MemER^R reader input8 kept frames only (frames [0, 3250, 4999, 5999, 8249, 8749, 9749, 12227]), no text
NoMem reader reasoning (answer ('bedroom', 'side table'), place_set 0)A spray bottle is already kept on the side table in the bedroom, so other spray bottles belong there as well.
GTLog reader reasoning (answer ('living room', 'side table'), place_set 1)The user previously instructed to put bottles from the countertop onto the side table in the living room.
Uniform reader reasoning (answer ('living room', 'side table'), place_set 1)In the episode, the robot picks up a spray bottle from the kitchen countertop and places it onto the black side table in the living room.
MEM^R reader reasoning (answer ('living room', 'side table'), place_set 1)The user previously instructed to move bottles from the kitchen countertop to the side table in the living room.
MemER^R reader reasoning (answer abstain, place_set 0)The robot moved several soap and lotion dispensers from the kitchen countertop to the side table in the living room during the episode, but it never moved or received instructions regarding the spray bottle. Without a demonstrated rule or destination for spray bottles, the robot must abstain.
R&R reader reasoning (answer ('living room', 'side table'), place_set 1)At t=0s, the user instructed to put the bottles from the countertop on the side table. Multiple bottles/spray bottles from the kitchen countertop were subsequently placed on the side table in the living room.
쿼리 프레임. 빨간 상자가 GT "side table" 위에 놓인 병들. MemER^R는 병을 옮긴 것을 봤지만 "spray bottle" 규칙은 없다며 기권.
Put the bottles from the countertop on the side table.
NoMem
answer=('bedroom', 'side table') score=0
GTLog
answer=('living room', 'side table') score=1
Uniform
answer=('living room', 'side table') score=1
MEM^R
answer=('living room', 'side table') score=1
MemER^R
answer=abstain score=0
R&R
answer=('living room', 'side table') score=1
Routine direct: 발화에 GT 수납처가 있는지에 따른 정답률 (본표 310행 기준, direct 212행)
조건
NoMem
GTLog
Uniform
MEM^R
MemER^R
R&R
발화에 수납처 있음: place_set (n=174)
0.115
1.000
0.299
0.741
0.397
0.782
발화에 수납처 있음: 수납처 단어만(class_ok) (n=174)
0.184
1.000
0.379
1.000
0.489
0.954
발화에 수납처 없음: place_set (n=38)
0.053
0.026
0.289
0.184
0.342
0.342
Routine: 증거 출처별 정답률(place_set, 본표 310행)
조건
NoMem
GTLog
Uniform
MEM^R
MemER^R
R&R
direct self (n=174)
0.115
1.000
0.299
0.741
0.397
0.782
direct observed (n=38)
0.053
0.026
0.289
0.184
0.342
0.342
multi self (n=60)
0.000
1.000
0.067
0.500
0.083
0.600
multi mixed (n=38)
0.026
0.000
0.053
0.053
0.053
0.079
정답 direct 행의 reasoning이 발화를 인용한 행 수
방법
인용 행
정답 direct 행
NoMem
0
23
GTLog
166
175
Uniform
0
64
MEM^R
115
137
MemER^R
0
83
R&R
135
149
D2Resume: R&R Agent reader는 하네스가 세어 준 장부(LEDGER)를 받는다결정 필요
R&R Agent의 reader 입력에는 "LEDGER (exact counts over my whole index up to now):" 아래에 하네스가 메모리 entry를 세어 만든 줄(동작·물체·목적지별 횟수, 지금까지 본 방 목록)이 들어간다. 다른 방법에는 이런 집계가 없다. 답의 정오는 장부의 정오를 거의 그대로 따른다.
건수R&R 161행 전부 입력에 장부 있음. 장부가 모든 칸에서 맞음 79행 → 정답 68. 장부가 틀림 82행 → 정답 17, 그중 48행은 틀린 장부 값을 그대로 답함. reasoning에 "ledger"라고 쓴 행 45.
영향칸별 장부 정확도는 press 29/49, move 33/44, put 60/67, visit 12/62. 방 방문 과제에서는 장부의 방 목록이 명령 시점과 무관하게 t=0부터 태그된 방을 전부 나열해 대부분 틀린다.
어떻게 고칠 것인가결정 사항: (1) 장부를 R&R 방법의 일부로 논문에 명시하거나 (2) 같은 집계를 다른 방법에도 주거나 (3) 뺀다. 장부를 유지한다면 tagmem.read_ledger의 방 목록을 명령 시점 이후로 제한하고 같은 물체의 이름이 갈린 줄(egg / irish potato)을 합친다. 고치면 R&R 수치가 바뀐다.
한계·반례장부가 뜻하는 남은 횟수는 규칙으로 계산했다(press는 기기 이름, move/put은 목적지 이름으로 줄을 대응). 대응 규칙이 틀린 행이 있을 수 있다.
전체 목록qa_rows_resume_routine__items.csv: family=resume, strategy=tagmem-r3, 열 ledger_rem, ledger_right, pred_eq_ledger, reasoning_cites_ledger
실제 예시 5개
resume:train_3274__2000:cut_10
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Pick up four of the eggs from the tv stand and place them into the basket." → remaining 1
실제reader 답: "Pick up four of the eggs from the tv stand and place them into the basket." → 1 / resume_ok=1
왜 오류인가장부가 맞고 reader가 그대로 따른 경우. 장부 "place egg → laundry basket ×3"에서 4−3=1을 답했다.
R&R Agent reader input — LEDGER (harness-computed)open side table → side table [bedroom]: ×1 (n=? · t=60) | place egg → laundry basket [living room]: ×3 (n=1,2,3 · t=300,390,450) | rooms seen so far: living room (t=0) · kitchen (t=0) · bedroom (t=30) · bathroom (t=150)
R&R Agent reader reasoningThe robot was instructed to pick up four eggs and place them into the basket. According to the ledger and memory log, it successfully placed 3 eggs into the basket before being interrupted. Thus, 1 egg remains to be moved.
원자료 필드
ledger_implied_remaining
1
ledger_right
1
pred_eq_ledger
1
gt_done_units
3/4
resume:train_204__2000:cut_05
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Pick up five of the eggs from the dining table and place them into the basket." → remaining 1
실제reader 답: "Pick up five of the eggs from the dining table and place them into the basket." → 1 / resume_ok=1
왜 오류인가장부가 맞고 reader가 따른 경우. 메모는 달걀을 irish potato로 적었지만 장부 횟수 4를 그대로 써서 정답.
R&R Agent reader reasoningThe first command asked to move five eggs (referred to as irish potatoes in perception) from the dining table into the basket. The ledger and event records show that 4 have been placed so far, leaving 1 remaining. The second command to move the remote to the kitchen countertop was an interruption t…
원자료 필드
ledger_implied_remaining
1
ledger_right
1
pred_eq_ledger
1
gt_done_units
4/5
resume:train_9149__2000:cut_03
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 2
실제reader 답: "Navigate to every room in the house." → 1 / resume_ok=0
왜 오류인가장부가 틀리고 reader가 따른 경우. 장부의 방 목록 3개(실제 들어간 방은 kitchen, living room 2개)를 그대로 세어 남은 방 1(GT 2).
R&R Agent reader reasoningCommand 1 required navigating to all 4 rooms in the house (bathroom, bedroom, kitchen, living room). The ledger indicates the robot visited 3 rooms (kitchen, living room, bedroom) before being interrupted, leaving 1 room (bathroom) to visit. Command 2 ('move the pepper shaker from the countertop to…
원자료 필드
ledger_implied_remaining
1
ledger_right
0
pred_eq_ledger
1
gt_done_units
2/4
resume:train_8554__2000:cut_06
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Navigate to every room in the house." → remaining 1
실제reader 답: (empty list) / resume_ok=0
왜 오류인가장부가 틀리고 reader가 따른 경우. 장부가 방 4개를 나열해 reader는 방문 과제가 끝났다고 보고 답에서 뺐다(GT 남은 방 1).
R&R Agent reader reasoningThe robot was instructed to navigate to every room in the house (bathroom, bedroom, kitchen, living room). The ledger confirms all 4 rooms were visited (bathroom at t=0s, bedroom at t=30s, kitchen at t=30s, living room at t=90s). The interruptions to check the toilet and open a fridge drawer were b…
원자료 필드
ledger_implied_remaining
0
ledger_right
0
pred_eq_ledger
1
gt_done_units
3/4
resume:train_1843__2000:cut_06
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Press the button on the washing machine five times." → remaining 2
실제reader 답: "Press the button on the washing machine five times." → 4 / resume_ok=0
왜 오류인가장부가 틀리고 reader가 따른 경우. 누름이 3회였는데 장부에는 1회만 있어 남은 횟수 4(GT 2).
R&R Agent reader reasoningThe robot was tasked with pressing the button on the washing machine 5 times. It pressed it once at t=60s before being interrupted by tasks to open a drawer and move a soap bottle (both of which were completed). Thus, 4 button presses remain.
Resume 명령은 "place them into the basket", "eggs"라고 하는데 MEM^R writer는 바구니를 "bin" 또는 "trash can"으로, 달걀을 "irish potato"로 적는다. 횟수는 맞게 적혀 있어도 reader는 명령의 물체·수납처와 다르다고 보고 과제를 시작하지 않았다고 답한다. R&R Agent는 쓰기 프롬프트(tagmem_v7)가 "laundry basket" 이름을 지정하고 읽기 안내(v9)에 "my notes may name an object differently from the instruction" 문장이 있다.
건수put_in_container 67칸 중 MEM^R 메모리가 bin/trash can만 쓴 칸 42, basket 22(R&R는 basket 64). eggs 과제 51칸 중 달걀을 potato로 적은 칸 MEM^R 23, R&R 24. 이 원인의 오답 행 MEM^R 24/87, R&R 12/76.
영향달걀이 potato로 적힌 칸의 정답률 MEM^R 10/23(43%) vs egg로 적힌 칸 24/28(86%). R&R는 19/24(79%) vs 21/27(78%)로 차이가 없다. 이 행을 빼면 MEM^R .460→.540, R&R .528→.570.
어떻게 고칠 것인가writer에 주는 물건 목록에 basket을 넣고(run_eval_resume.py의 RRBENCH_WRITER_INVENTORY=v2) 전 writer에 똑같이 적용한다. "메모의 이름이 명령과 다를 수 있다" 문장은 전 방법 reader 안내에 넣거나 R&R에서도 뺀다. 달걀 에셋이 감자처럼 보이는 문제는 에셋 교체가 근본 해결. 재측정이 필요하고 수치가 바뀐다.
한계·반례마스터 D3의 "R&R 143/158, MEM^R trash can 107/150"은 다른 영역(memory_content)의 집계라 이 영역 수치(칸 기준 42/67, 64/67)와 분모가 다르다. 이름 불일치 행 판정은 reasoning 정규식 20행(19행 해당)과 메모리 원문 6개 확인에 근거한다.
전체 목록qa_rows_resume_routine__items.csv: family=resume, name_mismatch_cmd_vs_memory=1 (열 mem_container_word)
실제 예시 3개
resume:train_9402__2000:cut_07
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Pick up five of the eggs from the desk and place them into the basket." → remaining 1 ; "Press the button on the washing machine four times." → remaining 2
실제바구니는 뚜껑이 열린 고리버들 통이고 달걀은 갈색이라 감자처럼 보인다. 컷까지 4개를 넣었다(GT 남은 1).
왜 오류인가메모리의 횟수는 GT와 같다. 이름이 명령과 달라 reader가 "그 과제는 시작하지 않았다"고 답했다.
MEM^R memory at the cutdresser with three irish potatoes, and an open trash can holding four irish potatoes I previously placed inside. In the living room, there is a cart, a sofa with a laptop, and a desk holding reading material and a bowl (which I attempted to grasp but aborted). Returning through the bedroom, I enter
MEM^R reader reasoningCommand 1 required placing five eggs into a basket, but no eggs were moved (5 remaining). Command 2 asked to move the bowl on the table, but the grasp was aborted (1 remaining). Command 3 asked to press the button on the washing machine four times, but it was only pressed twice (2 remaining).
달걀 4개째를 넣기 직전. 1 = 명령의 "basket"(뚜껑 달린 고리버들 통, 메모리는 "open trash can"). 2 = 명령의 "eggs"(갈색 둥근 물체, 메모리는 "irish potatoes").
"Pick up five of the eggs from the desk and place them into the basket." → 5 ; "Hold on — move the bowl to the other end of the dining table first." → 1 ; "Press the button on the washing machine four times." → 2
resume_ok
0
gt_done
put_in_container 4/5;press_button 2/4
resume:train_3897__2000:cut_12
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답"Navigate to every room in the house." → remaining 1 ; "Pick up five of the eggs from the dining table and place them into the basket." → remaining 1
실제컷까지 달걀 4개가 바구니에 들어갔다(GT 남은 1). 메모리도 4개를 넣었다고 적었다.
왜 오류인가메모리의 횟수는 GT와 같다. 이름이 명령과 달라 reader가 "그 과제는 시작하지 않았다"고 답했다.
MEM^R memory at the cutsh potato). One by one, I picked up and dropped four irish potatoes from the table into the cylindrical bin, bringing the total inside the bin to five (leaving three on the table). I then traveled to the dining table in the dining/kitchen area and positioned my gripper above the toaster.
MEM^R reader reasoningThe robot has visited 3 out of 4 rooms (bedroom, living room, kitchen), leaving 1 room (bathroom) left to navigate. The command to pick up 5 eggs from the dining table and place them in the basket has not been started yet, leaving all 5 eggs remaining. All check interruptions have been completed.
"Navigate to every room in the house." → 1 ; "Pick up five of the eggs from the dining table and place them into the basket." → 5
resume_ok
0
gt_done
visit_rooms 3/4;put_in_container 4/5
resume:train_3274__2000:cut_10
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Pick up four of the eggs from the tv stand and place them into the basket." → remaining 1
실제컷까지 3개를 넣었다(GT 남은 1). 메모리는 3개를 bin에 넣었다고 적었다. 같은 행에서 R&R는 장부 "place egg → laundry basket ×3"으로 정답.
왜 오류인가메모리의 횟수는 GT와 같다. 이름이 명령과 달라 reader가 "그 과제는 시작하지 않았다"고 답했다.
MEM^R memory at the cutroom, approached the black dresser, and picked up three irish potatoes one by one, dropping each into the bin beside the dresser. Afterward, I rotated and surveyed the living room, observing the desk (with a box and pencils), a house plant, and the patterned armchair with a bowl on it.
MEM^R reader reasoningThe robot successfully visited all 4 rooms (living room, kitchen, bedroom, bathroom) to complete the navigation task, and completed both interruption tasks (opening the drawer of the nightstand and checking the pencils on the desk). The task to pick up four eggs from the tv stand has not been start…
달걀 3개째를 넣기 직전. 1 = "basket"(메모리는 "the bin beside the dresser"). 2 = 남은 달걀(메모리는 "irish potatoes"), 놓인 가구는 명령의 "tv stand"(메모리는 "black dresser").
"Pick up four of the eggs from the tv stand and place them into the basket." → 4
resume_ok
0
gt_done
put_in_container 3/4
메모리의 이름과 칸 정답률 (Resume, 칸 = 대기 과제 1개)
방법
이름
칸
칸 정답
MEM^R
바구니를 basket으로
22
17
MEM^R
바구니를 bin/trash can으로
42
29
R&R
바구니를 basket으로
64
55
MEM^R
달걀을 egg로
28
24
MEM^R
달걀을 potato로
23
10
R&R
달걀을 egg로
27
21
R&R
달걀을 potato로
24
19
D4사후 채점이 행마다 다른 정답 기준을 쓴다 (Finding 1위가 1행 차이로 뒤집힘)채점기
결과 파일의 각 행에는 정답 문자열(gt)과 점수가 같이 저장돼 있다. 정답 문자열은 옛 방 이름 조인 결과이고, 점수는 scene card 방 이름으로 다시 매긴 값이다. 사후 보정 중 "물체↔위치 대응 강등"은 옛 문자열을 기준으로 검사해서, 답이 완전히 맞는 행을 틀렸다고 강등한다. Finding에서는 일부 행(30행)의 점수 자체도 옛 기준 그대로다.
건수정답 문자열이 scene card와 다른 질의: Finding 19/722, Restore 20/575. 옛 기준 점수가 남은 행: Finding 30/4,332(place 또는 채점 가능 여부가 바뀌는 행 20). 강등 7행 중 5행이 잘못된 강등이고 5행 모두 GT Action Log.
영향논문 Finding은 R&R Agent 334/717 > GT Action Log 333/717이다. 같은 파이프라인을 전 행에 일관되게 적용하면 GT Action Log 337/720 > R&R Agent 335/720으로 순서가 바뀐다. Restore 순위는 그대로다.
어떻게 고칠 것인가병합 단계에서 저장 점수를 쓰지 말고 항상 현행 채점기 + scene card 방 이름으로 다시 매기고, 행의 gt도 같이 갱신한다. 강등 검사(scripts/qa/scoring_fixes.py binding_ok)는 그 갱신된 정답을 쓴다. multi 행에서 category 이름 불일치를 오답으로 볼지 결정한다. 논문 수치가 바뀐다(Finding 방법당 0~+4행, 분모 717→720).
한계·반례강등 7행은 논문의 6개 방법 기준이다(논문에 없는 rollforward-v2에 1행 더 있음). 표의 "일관 적용" 값은 tmp/ledger_work/qa_rows_find_restore/paper_fixed.py로 계산했다.
전체 목록qa_rows_find_restore__items.csv: f_gt_text_stale_roomjoin=1, f_score_uses_old_roomjoin=1, binding_demoted=1 / qa_rows_find_restore__posthoc_changes.csv: posthoc_step가 binding 또는 room rescoring으로 시작
왜 오류인가강등 검사(binding_ok)는 행에 저장된 옛 정답 문자열과 답을 비교한다. 점수 자체는 scene card 방 이름으로 매겨져 있어 두 기준이 어긋난다.
GT Action Log reader reasoningThe user moved two remote controls during the episode: remote control #1 was placed on the dining table in the living room, and remote control #2 was placed on the sink in the bathroom.
왜 오류인가강등 검사(binding_ok)는 행에 저장된 옛 정답 문자열과 답을 비교한다. 점수 자체는 scene card 방 이름으로 매겨져 있어 두 기준이 어긋난다.
GT Action Log reader reasoningRemote control #1 was moved to the desk in the bedroom and then to the dining table in the bedroom. Remote control #2 was moved from the sofa in the living room to the cart in the living room.
실제판정: category 이름 차이(knife→butter knife)로 강등. 위치 2개는 맞음
왜 오류인가단일 답 행에서는 category를 보지 않는데 multi 행에서만 category 이름이 다르면 강등된다.
R&R Agent reader reasoningThe butter knife was moved and placed in the dresser in the bedroom at t=240s. The yellow apple was moved from the dining table and placed on the kitchen countertop at t=390s (IMG 51).
왜 오류인가강등 검사(binding_ok)는 행에 저장된 옛 정답 문자열과 답을 비교한다. 점수 자체는 scene card 방 이름으로 매겨져 있어 두 기준이 어긋난다.
GT Action Log reader reasoningThe potato (irish potato) was originally on the kitchen countertop and moved to the kitchen chair. The mug was originally on the bedroom dining table and moved to the bathroom toilet.
왜 오류인가강등 검사(binding_ok)는 행에 저장된 옛 정답 문자열과 답을 비교한다. 점수 자체는 scene card 방 이름으로 매겨져 있어 두 기준이 어긋난다.
GT Action Log reader reasoningRemote control #1 was initially on the sofa in the living room and was moved to the dining table in the bedroom via the desk. Remote control #2 was initially on the sofa in the living room and was moved to the cart in the living room.
왜 오류인가단일 답 행에서는 category를 보지 않는데 multi 행에서만 category 이름이 다르면 강등된다.
MEM^R reader reasoningTwo cups were moved during the episode: one was moved from the tv stand in the bedroom to the bedroom desk drawer, and another was moved from the kitchen countertop to the bathroom sink.
왜 오류인가강등 검사(binding_ok)는 행에 저장된 옛 정답 문자열과 답을 비교한다. 점수 자체는 scene card 방 이름으로 매겨져 있어 두 기준이 어긋난다.
GT Action Log reader reasoningThe pen was moved from the dining table in the living room to the sofa in the living room. Its initial location was the dining table in the living room, and it is currently on the sofa in the living room. The remote control was moved from the sofa in the living room to the dining table in the bedroo
Finding: 논문 값 vs 같은 파이프라인을 전 행에 일관되게 적용한 값 (정답 행/분모)
방법
논문 값
scene card 정답으로 전 행 재채점 → 강등 → tv stand 구제
거실 비교 버그까지 수정
No Memory
86/717 = .1199
86/720 = .1194
86/720 = .1194
GT Action Log
333/717 = .4644
337/720 = .4681
342/720 = .4750
Uniform Frames
256/717 = .3570
256/720 = .3556
258/720 = .3583
MEM^R
244/717 = .3403
245/720 = .3403
247/720 = .3431
MemER^R
316/717 = .4407
317/720 = .4403
318/720 = .4417
R&R Agent
334/717 = .4658
335/720 = .4653
337/720 = .4681
Restore: 같은 비교 (분모 575)
방법
논문 값
일관 적용
거실 비교 버그까지 수정
No Memory
2 = .0035
2 = .0035
3 = .0052
GT Action Log
266 = .4626
269 = .4678
280 = .4870
Uniform Frames
55 = .0957
55 = .0957
57 = .0991
MEM^R
66 = .1148
66 = .1148
68 = .1183
MemER^R
92 = .1600
92 = .1600
96 = .1670
R&R Agent
109 = .1896
109 = .1896
112 = .1948
D5tv stand 이름 구제가 같은 상황의 행 대부분을 놓친다채점기
사후 보정 "tv stand 이름 구제"는 정답 단어가 tv stand이고, 답이 1개이고, 방 단어가 맞고, 답이 desk/coffee table이거나 원문에 side table이 나올 때만 0점을 1점으로 올린다. 가구는 맞고 단어만 다른 같은 상황의 행이 조건 밖이라는 이유로 0점으로 남는다.
건수구제된 행 Finding 28, Restore 23. 같은 대우를 받아야 하는데 0점인 행 Finding 291, Restore 246 (정답 단어가 tv stand가 아님 160/154, multi 89/38, 방 단어 18/15, 거실 버그 10/22, 답 단어가 desk/coffee table이 아님 9/7, 방에 같은 이름 가구 있음 5/7, 기타 0/3).
영향방 안에서 다른 가구와 헷갈릴 수 없는 이름만 인정해도 Finding R&R Agent .463→.540, MemER^R .431→.482, GT Action Log .463→.492; Restore R&R Agent .186→.257, GT Action Log .447→.530. 구제를 일부 행에만 적용하면 방법 간 비교가 그 조건에 좌우된다.
어떻게 고칠 것인가권장: 사후 구제 대신 채점을 가구 인스턴스 기준으로 바꾼다(정답 가구의 scene card 종류별 허용 단어 집합 + "그 방에 그 단어의 다른 가구가 없을 것" 조건, multi 행에도 항목별 적용). 대안: 어휘에 side table을 추가하고 dining table↔desk, clothes dryer↔washing machine alias를 넣어 재측정. 어느 쪽이든 논문 수치가 바뀐다.
한계·반례"같은 대우를 받아야 하는 행"은 내 엄격 이름 규칙(alias + 방 내 유일성)으로 센 것이고 읽어서 확인한 정밀도는 약 90%다. orange dresser 반례는 이미지로 1건만 확인했다.
실제침실의 나무 탁자 위에 bowl이 있다(캡처). 메모리와 답 모두 그 가구를 desk라고 부른다.
왜 오류인가누락 이유 ①: 정답 단어가 tv stand가 아니다. 가구는 맞고 단어만 다른 같은 상황인데 구제 규칙은 tv stand 정답에만 적용된다.
MEM^R reader reasoningAccording to the memory summary, a bowl was observed on the desk in the bedroom and was not moved during the episode.
MEM^R memory (written by the writer)M[bowl]: I picked up a knife from the kitchen countertop, carried it into the bedroom (where I saw a bed with a box and pillow, a basketball and box on the floor, a dresser, and a desk with a chair, cell phone, house plant, knickknack, key chain, and bowl), and placed the knife on the des
1번: 침실의 나무 탁자(의자 1개, 휴대폰, 화분). 채점 정답 단어는 "dining table". 2번: 질의 대상 bowl.
The tissue box was observed on the desk in the bedroom (seen at t=0.0s and t=430.0s).
find:train_7428__1:q01 [GT Action Log]
질의Pick up all the remote controls I moved earlier
채점 정답(remote control:bedroom,tv stand | remote control:kitchen,dining table)
실제로그에는 "side table"로 적혀 있고 reader는 coffee table로 옮겨 답했다. 두 번째 물체는 정확히 맞았다.
왜 오류인가누락 이유 ②: 답이 2개인 multi 행은 규칙에서 통째로 제외된다.
GT Action Log reader reasoningTwo remote controls were moved during the episode. Remote control #1 was last placed on the side table (coffee table) in the bedroom. Remote control #2 was placed on the dining table in the kitchen.
GT Action Log events (source@room -> destination@room)L[remote control] ok dining table@living room -> armchair@bedroom () fr[1667, 4318] / L[remote control] ok armchair@bedroom -> side table@bedroom () fr[6967, 8958]
The tissue box was observed on the desk in the bedroom (seen at t=0.0s and t=430.0s).
find:train_8843__1:q01 [Uniform Frames]
질의Pick up the remote control I moved earlier
채점 정답(remote control:bedroom,tv stand)
실제가구는 정답 가구(SideTable)인데 방 단어가 bedroom이 아니라 living room이다.
왜 오류인가누락 이유 ③: 방 단어가 다르면(loc_set=0) 구제하지 않는다.
Uniform Frames reader reasoningAt t=149.4s, the robot is seen holding the remote control in the living room near a small side table/coffee table holding a plant and basketball.
The tissue box was observed on the desk in the bedroom (seen at t=0.0s and t=430.0s).
find:train_4360__2:q01 [GT Action Log]
질의Pick up the key chain I moved earlier
채점 정답(key chain:living room,tv stand)
실제reader가 "side table을 coffee table로 옮긴다"고 직접 썼다. 정답 방이 living room이다.
왜 오류인가누락 이유 ④: 거실 비교 버그(E11) 때문에 정답 방이 living room이면 판정 불가로 처리돼 구제가 꺼진다.
GT Action Log reader reasoningThe key chain was moved to the side table in the living room during the 426s–558s interval. Mapping the side table to the allowed surface list gives coffee table in the living room.
실제reader가 말한 "orange dresser"는 캡처의 주황색 가구이고 이것이 정답 가구(SideTable)다. 같은 방에 진짜 Dresser(Dresser_315_2)는 따로 있다.
왜 오류인가구제 규칙은 "그 방에 진짜 dresser가 있으니 dresser 답은 진짜 오답"이라며 dresser를 구제하지 않는다. 이 행은 그 근거의 반례다.
Uniform Frames reader reasoningThe tissue box was first observed in the bedroom on top of the orange dresser. It is currently in the bathroom, resting on top of a dark wood dresser.
1번 상자: 서랍 달린 주황색 가구. scene card에서는 SideTable(에셋 Side_Table_302)이고 채점 정답 단어는 "tv stand"다. 2번 상자: 그 위의 휴지 상자. reader는 이 가구를 "orange dresser"라고 불렀다.
dresser answers are never rescued (counter-example)
D6GT 설정 Finding·Restore의 R&R Agent 행은 전부 조건이 다른 두 번째 런이다결정 필요
다른 네 방법은 한 번 돌린 행이다. R&R Agent(tagmem-r3)만 전 셀이 두 번째 런(oracle_tmrep_*) 행으로 교체돼 있다. 이 런은 정책 카메라 배치 규칙이 다르고(strict_policy_camera=True) 운반 버그 수정이 전 셀에 들어가 있다. 다른 방법의 Restore는 148셀 중 27–32셀만 운반 수정판이다.
건수Finding 150셀, Restore 148셀 전부. 성공 수 Finding 54 → 55, Restore 21 → 26/148(.142 → .176)
영향Restore에서 R&R Agent의 순위가 교체로 4위권에서 2위로 바뀐다. 같은 셀의 두 런 사이 뒤집힘이 Finding 25/150, Restore 25/148이라 한 번 더 돌린 쪽을 고른 효과와 조건 차이를 분리할 수 없다.
어떻게 고칠 것인가결정 사항. 권장: 다섯 방법을 같은 하네스 판(운반 수정 포함, 같은 카메라 규칙)으로 다시 돌리거나, R&R Agent를 원 행으로 되돌린다(scene_bench/scripts/archive_oracle_plan.py --keep-original-tagmem). 유지한다면 논문과 PROVENANCE에 조건 차이를 적는다. rr-bench 쪽은 src/rrbench/execution/online.py:1102의 RRBENCH_STRICT_POLICY_CAMERA 기본값과 문서에 논문 표가 어느 값으로 만들어졌는지 적는다.
한계·반례교체 전 Restore R&R 행 148개 중 29개는 운반 수정 재실행(rr) 행이었다.
전체 목록exec_cells__items.csv: setting=gt, family∈{find,restore}, strategy=tagmem-r3 (final_tag=tmrep, strict_policy_camera=True); 교체 쌍은 exec_cells__superseded.csv: sup_why=replaced_by_tmrep
실제 예시 1개
archive_oracle_plan.py:47-49
실제보관 스크립트 주석이 교체와 비공개 방침을 적고 있다.
왜 오류인가표 머리·PROVENANCE·summary에는 조건 차이가 적혀 있지 않다.
/home/nas_main/taewoongkang/repos/Robotics/scene_bench/scripts/archive_oracle_plan.py:47-49 (verbatim)# 260925 사용자 결정 "본표를 바꿔줘 지금 실험 결과로": find·restore 의 **tagmem-r3 행을 tmrep(재현 런, src_main14 = 운반 수정 + strict_policy_camera) 행으로 교체**한다.
archive_oracle_plan.py:48# 조건 차이(두 번째 추첨 · 정책 카메라 규칙이 다른 4 arm 과 다름)는 사용자가 나중에 직접 명시하기로 해 표 머리·PROVENANCE·summary 에는 적지 않는다(사용자 260925 "PROVENANCE 에
archive_oracle_plan.py:49# 명시하지 말라"). 기록은 claude/260925/exp-oracle_tmrep_tagmem_replicate.md. --keep-original-tagmem 으로 옛 표를 재현할 수 있다.
GT 설정 Finding·Restore 최종 행의 출처와 strict_policy_camera 값 (14행)
패밀리
방법
행 출처(base=원 런, rr=운반 수정 재실행, tmrep=두 번째 런)
strict_policy_camera
셀
find
blind
base
150
find
frames-uniform
base
150
find
rollforward-v3
base
150
find
rollforward-vis-pure
base
150
find
tagmem-r3
tmrep
True
150
restore
blind
base
116
restore
blind
rr
32
restore
frames-uniform
base
117
restore
frames-uniform
rr
31
restore
rollforward-v3
base
118
restore
rollforward-v3
rr
30
restore
rollforward-vis-pure
base
121
restore
rollforward-vis-pure
rr
27
restore
tagmem-r3
tmrep
True
148
R&R Agent(tagmem-r3) 교체 전후 성공 수
패밀리
셀
교체 전 성공
교체 후(표) 성공
뒤집힌 셀
find
150
54
55
25
restore
148
21
26
25
같은 셀을 두 번 이상 돌린 쌍 — 결과가 뒤집힌 수 (exec_cells__superseded.csv) (16행)
설정
패밀리
쌍 종류
방법
쌍 수
뒤집힘
이전 행 성공
표에 쓴 행 성공
gt
find
replicate_other_camera_rule(tmrep)
tagmem-r3
150
25
54
55
gt
restore
bugfix_rerun
전체
149
41
13
40
gt
restore
replicate_other_camera_rule(tmrep)
tagmem-r3
148
25
21
26
gt
routine
bugfix_rerun
전체
185
36
25
35
recalled
restore
bugfix_rerun
전체
121
32
17
39
recalled
resume
bugfix_rerun
전체
63
3
0
3
recalled
resume
replicate_same_harness
tagmem-r3
85
17
11
18
recalled
resume
scene_or_plan_changed_rerun
전체
81
20
22
20
recalled
resume
writer_version_changed
전체
57
7
5
6
recalled
routine
bugfix_rerun
전체
265
57
25
54
recalled
routine
replicate_same_harness
blind
1
0
0
0
recalled
routine
replicate_same_harness
frames-uniform
3
2
0
2
recalled
routine
replicate_same_harness
rollforward-v3
1
0
0
0
recalled
routine
replicate_same_harness
rollforward-vis-pure
1
0
0
0
recalled
routine
replicate_same_harness
textlog
4
1
1
0
recalled
routine
scene_or_plan_changed_rerun
전체
221
65
48
63
D7recalled 설정 Resume의 R&R Agent 85셀은 3회 중 가장 높은 회차다결정 필요
같은 85셀을 세 번 돌렸고 표에는 3회차 행(rep3_resume_*)이 들어갔다. 다른 방법은 한 번 돌렸다. PROVENANCE_resume.md §5에 회차별 성공률 .153 / .118 / .212가 적혀 있고 "표 md에는 표시하지 않았다"고 되어 있다.
건수85셀. 보관 행 기준 1회차 성공 11/85(방문 재채점 전) → 3회차 18/85. 두 회차 사이 뒤집힌 셀 17/85
영향R&R Agent의 Resume 수치(.212)는 세 번 중 최고값이고, 세 회차 평균은 PROVENANCE 기준 .161이다. 다른 방법과 같은 조건의 비교가 아니다.
어떻게 고칠 것인가결정 사항. 권장: 세 회차 평균과 범위를 보고하거나, 모든 방법을 같은 횟수로 반복한다. 2회차 행(rep2_resume_*)은 PROVENANCE에 "보존"이라고 적혀 있으나 보관소 rows/에 없으므로 추가한다.
한계·반례1회차 성공 11/85는 행의 success 값이다. PROVENANCE의 .153(13/85)은 방문 사후 재채점을 적용한 값이다.
전체 목록exec_cells__superseded.csv: family=resume, pair_type=replicate_same_harness
recalled Resume R&R Agent 1회차 vs 3회차 (같은 85셀)
1회차 → 3회차
셀
0 → 0
62
0 → 1
12
1 → 0
5
1 → 1
6
D8Routine: 두 모델의 Uniform Frames 행은 발화가 들어간 옛 조건이다데이터 재생성
260925부터 Uniform Frames reader는 발화를 받지 않게 바뀌었고 재측정한 모델의 행에는 frames_heard=False가 붙어 있다. qwen3vl-8b와 cosmos-r2-8b의 Uniform 행에는 이 필드가 없다(옛 조건: 프레임 사이에 발화 캡션이 끼어 있음). 같은 표 안에서 모델마다 Uniform의 입력이 다르다.
건수Uniform 314행 × 2개 모델. 본표 Uniform: qwen3vl-8b .216, cosmos-r2-8b .165. 새 조건 모델: flash .223(예외적으로 높음), luna .029, gemma4-31b .039, qwen3.8-27b .035, qwen3vl-32b .003, molmo2-8b .003.
영향qwen3vl-8b의 Uniform 정답 direct 66행 전부(66/66)의 reasoning이 사용자 지시를 인용한다. 같은 계열의 더 큰 모델 qwen3vl-32b는 새 조건에서 .003이다. 발화 유무가 이 칸의 점수를 결정한다.
어떻게 고칠 것인가두 모델의 Uniform을 새 조건(발화 없음)으로 다시 재거나, 표에서 해당 칸을 옛 조건으로 표시한다. 재측정하면 두 칸의 수치가 바뀐다.
한계·반례옛 조건이라는 판단은 frames_heard 필드가 없다는 점, PROVENANCE의 "미교체 모델 행은 옛 조건" 문구, reasoning의 지시 인용에 근거한다. reader 입력 원문은 보관되어 있지 않다.
전체 목록qa_rows_resume_routine__other_models.csv: family=routine, strategy=frames-uniform, model in (qwen3vl-8b, cosmos-r2-8b); merged.json 행의 frames_heard 필드 유무
qwen3vl-8b Uniform Frames reader reasoning (place_set 1)The robot was previously instructed to put food from the countertop on the side table, indicating that food items are typically stored on the side table. The current view shows the robot holding a tomato, which is a food item, and the side table is visible nearby.
gemini-3.7-flash Uniform Frames reader reasoning (place_set 0, frames_heard=False)In the episode, food items such as the tomato from the kitchen countertop were moved to the desk in the bedroom.
원자료 필드
heard_command
Put the food from the countertop on the side table.
qwen3vl-8b_row_frames_heard
(field absent)
flash_row_frames_heard
False
모델별 Routine Uniform Frames (본표 310행 place_set)
reader 모델
frames_heard 필드
Uniform place_set
발화에 수납처 있는 direct 174행
gemini-3.7-flash
False
.223
.299
gpt-5.6-luna
False
.029
.034
gemma4-31b
False
.039
.069
qwen3.8-27b
False
.035
.063
qwen3vl-32b
False
.003
.006
molmo2-8b
False
.003
.006
qwen3vl-8b
없음(옛 조건)
.216
.379
cosmos-r2-8b
없음(옛 조건)
.165
.276
D9Resume: gpt-5.6-luna는 명령을 "[t=0s] …" 접두까지 복사해 0점채점기
Resume 답의 task는 명령 목록의 문장과 글자 단위로 같아야 한다(대소문자·구두점만 무시). 명령 목록은 1. [t=0s] "Navigate to every room in the house." 형식으로 주어진다. gpt-5.6-luna는 시각 접두와 따옴표까지 복사해, 과제와 남은 횟수가 맞아도 0점이 된다.
건수luna의 답 항목 320개가 접두 포함. 문장이 글자 단위로 다른 행: Uniform 74/161, MemER^R 77, R&R 56, MEM^R 7. gemini-3.7-flash는 해당 행 0(문장이 다른 행 2개는 점수와 무관).
영향접두를 떼고 채점하면 luna Uniform .075→.180, MemER^R .075→.180, R&R .099→.161, MEM^R .118 그대로. 엄격 채점의 순위 MEM^R > R&R > Uniform=MemER^R가 Uniform=MemER^R > R&R > MEM^R로 바뀐다.
어떻게 고칠 것인가채점기 grading.score_resume에서 task 앞의 ^\d+\.\s* 와 \[t=\d+s\] 접두, 감싼 따옴표를 떼고 대조한다(권장). 또는 명령 목록 형식에서 시각을 뺀다(prompt.build_resume_command_part; 시각은 No Memory에게 진행량 단서도 준다). 채점기만 고치면 재측정 없이 luna 수치가 바뀌고 flash 수치는 그대로다.
한계·반례다른 모델은 규칙만 적용했다. molmo2-8b는 "Hold on —" 접두 생략 159건으로 유형이 다르다. "potatos"를 "potatoes"로 고쳐 쓴 사례는 확인한 4개 모델에서 0건이다.
전체 목록qa_rows_resume_routine__other_models.csv: family=resume, model=gpt-5.6-luna, task_text_nonverbatim=1 (열 score vs lenient_text_or_room)
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답"Pick up three of the apples from the dining table and place them into the basket." → remaining 2
실제과제와 남은 횟수 2가 모두 맞는데 tasks_ok=0, resume_ok=0.
왜 오류인가답의 task 문자열에 [t=0s] "…" 접두가 붙어 글자 단위 대조에 실패했다.
gpt-5.6-luna Uniform Frames answer (unfinished[0]){"task": "[t=0s] \"Pick up three of the apples from the dining table and place them into the basket.\"", "remaining": 2}
원자료 필드
tasks_ok
0
resume_ok
0
resume_ok_with_prefix_stripped
1
gpt-5.6-luna Resume 161행: 엄격 대조와 접두를 뗀 대조
방법
엄격 resume_ok
접두 뗀 resume_ok
문장이 다른 행
No Memory
.106
.106
1
GT Log
.981
.981
0
Uniform
.075
.180
74
MEM^R
.118
.118
7
MemER^R
.075
.180
77
R&R
.099
.161
56
D10Restore의 R&R 메모리: 어떤 쓰기 프롬프트로 만들었는지 기록이 서로 다름문서
Restore 결과 보관소에서 R&R Agent 메모리의 쓰기 프롬프트 버전이 세 곳에 다르게 적혀 있다. 질의 행은 v11, 컨텍스트별 ingest 기록은 "v5 Finding 메모리 재사용", PROVENANCE.md는 "쓰기 v5". 실제 항목 내용은 Finding(v5) 메모리와 다르고 v11 프롬프트의 형식과 맞는다.
건수"재사용"으로 표시된 53개 컨텍스트 중 53개에서 항목이 Finding 보관본과 다르다. Restore 질의 575행 전부 tagmem_version=v11
영향논문·README가 "Finding/Restore의 R&R = 쓰기 v5"라고 쓰면 사실과 다르다. Restore에서만 R&R 쓰기 프롬프트가 다르다는 점(패밀리별 프롬프트 조정)이 기록에서 가려진다.
어떻게 고칠 것인가문서와 메타데이터 수정: scene_bench/scripts/archive_final_results.py의 restore note("tagmem = 쓰기 v5 + 읽기 v8")를 "쓰기 v11"로, merged.json contexts[*].tagmem_ingest의 reused_from / tagmem_version을 실제 ingest 출처로 고친다. rr-bench 문서(docs)에도 패밀리별 쓰기 프롬프트(v5 / v11 / v7)를 표로 명시. 수치는 바뀌지 않는다.
한계·반례v11로 썼다는 것은 항목 형식(표면별 텍스트 항목, act 없는 항목 620개)과 행의 필드로 추정한 것이고 ingest 로그 자체는 보지 못했다.
전체 목록restore_v1.1_609076c0/models/gemini-3.7-flash/merged.json: rows[].tagmem_version, contexts[].tagmem_ingest.{reused_from, tagmem_version, writer_prompt}
실제 예시 1개
restore:train_1362__0:tagmem_ingest
실제같은 컨텍스트의 Finding 보관본은 60개 항목, Restore 보관본은 59개 항목이고 첫 항목부터 문장이 다르다.
Restore entry #2 (v11-style per-surface text entry, act=None){"type": "text", "text": "On the desk are a mug, pencil, key chain, cell phone, and knickknack.", "frame": null, "tags": {"obj": ["mug", "pencil", "key chain", "cell phone", "knickknack"], "act": null, "room": ["bedroom"], "surf": ["desk"], "n": null}, "t": [0.0, 29.96], "id": 2}
Finding entry #0 for the same context (v5){"type": "text", "text": "The robot placed a credit card onto the round side table.", "tags": {"obj": ["credit card"], "act": "place", "room": ["bedroom"], "surf": ["coffee table"], "n": null}}
원자료 필드
n_entries_restore
59
n_entries_find
60
contexts_marked_reused
53
of_which_entries_differ_from_find
53
D11Resume: writer는 사용자 명령을 받지 않는다문서
Resume 녹화에서 사용자는 "버튼을 다섯 번 눌러라", "잠깐, 먼저 냉장고를 열어라" 같은 명령을 한다. 메모리를 쓰는 모델(writer)은 이 명령을 입력으로 받지 않고 영상 프레임만 본다. 명령은 질의 시점에 reader에게만 목록으로 주어진다. Routine에서는 writer가 발화를 받는 것과 다르다.
건수메모리 범위 안의 명령 485개 중 MEM^R 메모리에 명령으로 적힌 것 0개. Resume R&R 항목 5,630개 중 발화 항목 0개 (Routine은 178개)
영향writer는 무엇이 과제이고 무엇이 끼어든 심부름인지 모른 채 기록한다. 예를 들어 "check" 심부름을 물체를 집은 것으로 적는다. 방법 간 조건은 같지만(모든 writer가 못 받음) 논문이 "로봇이 들은 것을 기억한다"고 읽히면 사실과 다르다.
어떻게 고칠 것인가권장: 문서에 명시(논문 방법 절, rr-bench docs) — "Resume에서 발화는 질의 턴에만 제공된다". 대안: RRBENCH_WRITER_HEARD=1로 모든 writer에 발화를 주고 재측정(코드에 이미 스위치가 있다) — 수치 변경.
한계·반례코드 경로는 공개본(rr-bench) 기준이다. 논문 런의 환경변수는 PROVENANCE.md의 스위치 목록(SBENCH_WRIST_INSET=both SBENCH_WRITER_FPS=1 SBENCH_QUERY_ROOMS=1 SBENCH_CUT_TAIL=1)에 WRITER_HEARD가 없다는 것으로 확인했다.
전체 목록memory_content__items.csv: family == resume and etype == heard (how == utterance_NOT_given_to_writer); memory_content__rr_entries.csv: family == resume and heard == 1
실제 예시 2개
resume:train_5886__2000:commands
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답사용자 명령 4개: "Pick up three of the eggs from the dresser and place them into the basket." / "Hold on — go check whether the phone is still on the countertop in the kitchen first." / "Okay, continue what you were doing." / "Press the button on the coffee machine four times."
실제최종 MEM^R 메모리와 R&R 항목 어디에도 명령 문장이나 "instructed / user said"가 없다. 행동만 적혀 있다.
왜 오류인가메모리만으로는 "세 개를 옮기라고 했는지", "check가 심부름이었는지" 알 수 없다.
MEM^R final memory (entire)In the bedroom, I picked up 2 irish potatoes from the wooden dresser and dropped them into the trash can (leaving 2 on the dresser). After a brief trip to the kitchen and back, I picked up a 3rd irish potato from the dresser (leaving 1 irish potato remaining on it) and dropped it into the trash can
R&R Agent: all act tags used in this contextlook×30, navigate×9, place×6, pick×5, press×2
src/rrbench/qa/episode_loader.py:76-86heard: list = [] … # By default a type2 (Resume) writer hears no utterances at all, although every reader receives the command list (and the type3 Routine writer does hear them). RRBENCH_WRITER_HEARD=1 turns this on … if (meta.get("kind") == "type2" and queries and os.environ.get("RRBENCH_WRITER_H
src/rrbench/qa/prompt.py:125,175The query turn lists the commands the user has spoken so far, in order. … for i, c in enumerate(query["commands"], 1)]
src/rrbench/qa/memory_strategy.py:39-43 (heard_part returns None when ep.heard is empty)
n_commands_in_scope
485
n_in_memr_memory
0
rr_heard_entries_resume
0
resume:train_123__2000:e0
채점 정답심부름 E1 (frames 482–693): "go check whether the phone is still on the sofa in the living room" — 보기만 하고 아무것도 집지 않는다
실제R&R은 같은 구간에 pillow를 집었다고 적었다. MEM^R은 팔을 뻗었다가 거뒀다고만 적었다.
왜 오류인가명령을 모르는 writer가 "확인하러 간" 동작을 집기로 해석했다.
R&R Agent entry #2The robot picked up the green pillow from the sofa.
MEM^R final memoryI reached toward the sofa near the pillow and cell phone before retracting my arm.
원자료 필드
command
Hold on — go check whether the phone is still on the sofa in the living room first.
command_frame
341
D12동명 가구 중 정답 가구를 골라 주는 기능이 GT 설정에서만 켜져 있다문서
한 방에 같은 이름의 가구가 여럿이면 하네스가 정답 가구를 대신 고른다(preferred_surfaces). 행 필드 n_preferred_surfaces를 보면 GT 설정 Finding·Restore·Routine은 켜져 있고 recalled 설정은 0이다. Resume은 플래그가 켜져 있으나 적용 0회.
영향두 실행 설정이 같은 하네스 조건이 아니다. 제어기에게는 보이지 않는 정답 정보가 GT 설정에서만 쓰였다. 다만 적용된 셀의 성공은 낮다(GT Restore 15/190).
어떻게 고칠 것인가src/rrbench/execution/online.py:1006-1007의 RRBENCH_PREFER_GT_SURFACE(기본 "1")를 문서에 적고, 논문 표를 만든 값(GT 설정 켬 / recalled 끔)을 docs와 paper_config.py에 고정한다. 권장: 두 설정을 같은 값으로 맞춰 재실행.
전체 목록exec_cells__items.csv: n_preferred_surfaces, pref_hits_nav, pref_hits_place
설정 × 패밀리별 정답 가구 선호 적용
설정
패밀리
셀
n_preferred_surfaces>0
navigate에서 적용된 셀
place에서 적용된 셀
gt
find
750
750
33
0
gt
restore
740
740
173
57
gt
resume
805
0
0
0
gt
routine
615
615
54
9
recalled
find
1569
0
0
0
recalled
restore
590
0
0
0
recalled
resume
422
0
0
0
recalled
routine
655
0
0
0
E. 하네스 버그·결함
E1가구 앞에만 선 자세(anchor)에서는 pick이 거의 성공하지 않는다코드
navigate가 물체 옆이 아니라 가구 중심 앞에 로봇을 세우는 경우(anchor 모드)가 있다. 하네스는 물체가 로봇에서 1.0 m 안이면 pick을 허용한다. 그 자세에서 저수준 정책은 거의 집지 못한다.
건수GT 설정 Finding: pick 1회 성공률 instance 모드 30.0%(2,771회) 대 anchor 모드 3.0%(2,103회). anchor 자세에서만 pick을 시도하고 실패한 셀: GT Finding 149/153, Restore 230/240, Routine 113/113
영향이 셀들은 장부에서 "정책 pick 실패"로 분류되지만 실제 원인은 세운 위치다. 거리 0.85–1.0 m 구간의 성공률은 1.2%다.
어떻게 고칠 것인가권장: (1) E2를 고쳐 anchor 모드 자체를 줄인다. (2) src/rrbench/execution/online_planner.py:94의 REACH_RADIUS = 1.0을 정책이 실제로 집는 거리(표 기준 0.7 m 안팎)로 낮추거나, online_planner.py:506within_reach에서 거리 밖이면 "navigate first"를 돌려주게 한다. 그러면 닿지 않는 자세의 pick이 턴을 소모하지 않는다. 대안: anchor 모드일 때 nav0.teleport_to가 가구 중심이 아니라 질의 물체에 가장 가까운 가장자리에 세우게 한다. 어느 쪽이든 실행 트랙 수치가 바뀌므로 재실행이 필요하다.
조립 주: 접지 모드별 차이가 큰 것은 Finding뿐이다(anchor 3.0% 대 instance 30.0%). 아래 표에서 Restore는 3.6% 대 5.3%, Routine은 9.2% 대 10.0%로 거의 같다. Restore·Routine의 낮은 pick 성공률은 접지 모드로 설명되지 않는다.
한계·반례자세 캡처는 1셀(box)만 넣었다. 다른 셀은 에피소드 폴더에 턴별 프레임이 있으나, 본 3장에서 대상 물체(salt shaker, spatula 등)가 팔에 가리거나 너무 작아 표시할 수 없었다. 거리는 navigate 도착 위치와 데이터셋의 물체 좌표로 계산한 평면 거리다. Routine은 물체 좌표가 질의에 없어 거리표에서 빠진다.
전체 목록exec_cells__items.csv: gt_picks_only_from_anchor_pose=1 (열 gt_pick_pose_modes에 시도별 모드)
실제 예시 3개
gt:find:1562f24aa206:rollforward-v3
질의Pick up the box and the pepper shaker
채점 정답pick up the box — on the dining table in the bedroom || pick up the pepper shaker — on the countertop in the kitchen
실제모든 navigate가 anchor 모드. pick은 GT 물체에 실행됐고 한 번도 들리지 않았다(result_ok=false).
왜 오류인가navigate가 가구 앞(anchor)에 세웠고 하네스는 1.0 m 안이라 pick을 받아 줬지만, pick이 전부 실패했다.
controller reasoning (turn 22)The gripper is closing/closed on the box flap but has not completed lifting it. Continue pick(box).
첫 navigate 도착 직후 외부 카메라. 빨간 상자: 집어야 할 box. 로봇은 식탁 옆면 앞에 서 있고 box까지 평면 거리 0.87 m. 이 자세에서 pick 22회가 모두 실패했다.
[{"turn": 0, "controller": "navigate(category=box, surface=dining table, room=bedroom)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_4", "dist_to_gt_m": {"box_1_0_4": 0.86, "peppershaker_1_0_6": 8.58}, "reasoning": "Navigate to the dining table in the bedroom targeting the box before attempting to pick it."}, {"turn": 1, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "We have arrived at the dining table in the bedroom where the box is located. The box is visible on the table. We need to execute pick on the box."}, {"turn": 2, "controller": "pick(category=box, surface=dining table, room=bedroom)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The previous pick attempt did not grasp or lift the box; the box is still resting on the dining table. Retrying pick(box)."}, {"turn": 3, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The box has not been lifted into the gripper yet. The gripper is still empty. Retrying pick(box)."}, {"turn": 4, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The robot is still positioning and attempting to grasp the box on the dining table. It has not been lifted yet, so continue issuing pick(box)."}, {"turn": 5, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is moving towards the box on the dining table but has not yet grasped and lifted it. I will continue executing pick(box)."}, {"turn": 6, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper has closed near the box flap/edge, but the box has not visibly been lifted into the air yet. Re-issuing pick(box) to complete the lift."}, {"turn": 7, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is engaging with the box edge. Re-issuing pick to complete the lift."}, {"turn": 8, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper has closed onto the edge of the box but the object has not yet been lifted up clearly. Continue executing pick(box)."}, {"turn": 9, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is repositioning near the box. I will continue executing pick(box) until it is lifted."}, {"turn": 10, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is positioned next to the box flap on the dining table, but the box has not been lifted yet. Continuing the pick skill."}, {"turn": 11, "controller": "pick(category=box, surface=None, room=None)", "harness_messages": [], "executed_on": "box_1_0_4", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper has closed onto the edge of the box, but the lifting phase has not finished yet. Retrying pick(box) to complete the lift."}]
gt:find:f2ad8eddd1e6:blind
질의Pick up the apple and the spoon
채점 정답pick up the apple — on the countertop in the kitchen || pick up the spoon — on the countertop in the kitchen
실제모든 navigate가 anchor 모드. pick은 GT 물체에 실행됐고 한 번도 들리지 않았다(result_ok=false).
왜 오류인가navigate가 가구 앞(anchor)에 세웠고 하네스는 1.0 m 안이라 pick을 받아 줬지만, pick이 전부 실패했다.
controller reasoning (turn 28)The robot is in front of the countertop where the apple is located. The first step of the plan is to pick up the apple.
[{"turn": 0, "controller": "navigate(category=apple, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 0.71, "spoon_1_0_6": 0.66}, "reasoning": "According to the plan, step 1 is to pick up the apple on the countertop in the kitchen. I will navigate to the countertop in the kitchen."}, {"turn": 1, "controller": "pick(category=apple, surface=countertop, room=kitchen)", "harness_messages": [], "executed_on": "apple_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "We have navigated to the kitchen countertop. Step 1 of the plan is to pick up the apple on the countertop."}, {"turn": 2, "controller": "navigate(category=apple, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 1.12, "spoon_1_0_6": 1.1}, "reasoning": "Navigate to the countertop in the kitchen next to the apple to begin step 1 of the plan."}, {"turn": 3, "controller": "navigate(category=apple, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 0.99, "spoon_1_0_6": 0.95}, "reasoning": "Navigate closer to the apple on the kitchen countertop to ensure it is within reach for picking."}, {"turn": 4, "controller": "navigate(category=spoon, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 1.07, "spoon_1_0_6": 1.03}, "reasoning": "The apple was successfully picked up. Next, according to the plan, I need to pick up the spoon on the countertop in the kitchen. I will navigate to the spoon first."}, {"turn": 5, "controller": "navigate(category=apple, surface=countertop, room=kitchen)", "harness_messages": ["there is no apple within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 0.95, "spoon_1_0_6": 0.93}, "reasoning": "The apple is not within reach, so navigate to the kitchen countertop near the apple first."}, {"turn": 6, "controller": "pick(category=spoon, surface=None, room=None)", "harness_messages": [], "executed_on": "spoon_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The apple was successfully lifted and placed back down, completing step 1. Now proceeding to step 2: pick up the spoon on the countertop."}, {"turn": 7, "controller": "navigate(category=apple, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"apple_1_0_6": 0.98, "spoon_1_0_6": 0.96}, "reasoning": "We need to pick up the apple first according to Step 1. Let's navigate to the apple on the kitchen countertop to ensure we are within reach."}, {"turn": 8, "controller": "pick(category=apple, surface=None, room=None)", "harness_messages": [], "executed_on": "apple_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The robot is in front of the kitchen countertop. The first plan step is to pick up the apple."}, {"turn": 9, "controller": "pick(category=apple, surface=None, room=None)", "harness_messages": [], "executed_on": "apple_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The robot is in the process of grasping the apple; issuing pick(apple) again to complete the lift."}, {"turn": 10, "controller": "pick(category=apple, surface=None, room=None)", "harness_messages": [], "executed_on": "apple_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is positioning near the apple but has not grasped or lifted it yet. Continuing the pick subgoal."}, {"turn": 11, "controller": "pick(category=apple, surface=None, room=None)", "harness_messages": [], "executed_on": "apple_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper did not successfully grasp and lift the apple yet. Retrying pick apple."}]
gt:find:3263721c734f:rollforward-v3
질의Pick up the tissue box, the statue, and the pan
채점 정답pick up the tissue box — on the desk in the bedroom || pick up the statue — on the desk in the bedroom || pick up the cooking pan — on the countertop in the kitchen
실제모든 navigate가 anchor 모드. pick은 GT 물체에 실행됐고 한 번도 들리지 않았다(result_ok=false).
왜 오류인가navigate가 가구 앞(anchor)에 세웠고 하네스는 1.0 m 안이라 pick을 받아 줬지만, pick이 전부 실패했다.
controller reasoning (turn 40)The pick action on the statue is still executing or positioning. Retrying pick(statue) to complete the grasp and lift.
[{"turn": 0, "controller": "navigate(category=tissue box, surface=desk, room=bedroom)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "desk_1_0_2", "dist_to_gt_m": {"tissuepaper_1_0_2": 0.85, "statue_1_0_2": 1.08, "cookingpan_1_0_6": 1.75}, "reasoning": "We need to pick up the tissue box on the desk in the bedroom first. Navigating to the desk in the bedroom."}, {"turn": 1, "controller": "pick(category=tissue box, surface=desk, room=bedroom)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "We are at the desk in the bedroom for Step 1. Let's execute pick on the tissue box."}, {"turn": 2, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper has reached and is grasping the tissue box, but the pick is still in progress and not yet lifted. Repeating pick to complete the action."}, {"turn": 3, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is touching/aligning with the tissue box but has not completed the lift. Issuing pick again to complete the lift."}, {"turn": 4, "controller": "pick(category=tissue box, surface=desk, room=bedroom)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is touching/aligning with the tissue box on the desk but has not lifted it yet. Issuing pick tissue box again."}, {"turn": 5, "controller": "navigate(category=tissue box, surface=desk, room=bedroom)", "harness_messages": ["there is no tissue box within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "desk_1_0_2", "dist_to_gt_m": {"tissuepaper_1_0_2": 0.62, "statue_1_0_2": 0.7, "cookingpan_1_0_6": 1.45}, "reasoning": "The tissue box is not considered within reach; navigating specifically to the tissue box on the desk in the bedroom."}, {"turn": 6, "controller": "pick(category=tissue box, surface=desk, room=bedroom)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "We are at the desk in the bedroom where the tissue box is located. I will execute pick(tissue box)."}, {"turn": 7, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The previous pick attempt targeted the wrong object on the desk. The tissue box is still on the desk to the left. Re-issuing pick(tissue box)."}, {"turn": 8, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is reaching towards the desk area but has not yet grasped/lifted the tissue box. Continuing pick(tissue box)."}, {"turn": 9, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The tissue box has not been grasped or lifted yet. Retrying pick(tissue box)."}, {"turn": 10, "controller": "pick(category=tissue box, surface=None, room=None)", "harness_messages": [], "executed_on": "tissuepaper_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The arm is still reaching down towards the tissue box and has not yet grasped or lifted it. Repeating pick(tissue box)."}, {"turn": 11, "controller": "pick(category=statue, surface=None, room=None)", "harness_messages": [], "executed_on": "statue_1_0_2", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "Tissue box was successfully grasped and lifted. Next step in the plan is to pick up the statue, which is directly on the desk in front of the robot."}]
GT 물체에 대한 pick 1회당 성공률 — 직전 navigate의 접지 모드별 (최종 셀) (24행)
설정
패밀리
접지 모드
pick 시도
성공
성공률
gt
find
anchor
2103
63
0.030
gt
find
instance
2771
830
0.300
gt
find
navigate 없이
141
43
0.305
gt
restore
anchor
5721
204
0.036
gt
restore
instance
4253
225
0.053
gt
restore
navigate 없이
170
26
0.153
gt
restore
room
613
3
0.005
gt
routine
anchor
2517
232
0.092
gt
routine
instance
3879
389
0.100
gt
routine
navigate 없이
1255
132
0.105
gt
routine
room
193
1
0.005
recalled
find
anchor
1726
83
0.048
recalled
find
floor_instance
37
0
0.000
recalled
find
instance
4525
1909
0.422
recalled
find
navigate 없이
672
241
0.359
recalled
find
room
39
19
0.487
recalled
restore
anchor
1315
145
0.110
recalled
restore
instance
3573
258
0.072
recalled
restore
navigate 없이
310
62
0.200
recalled
restore
room
141
0
0.000
recalled
routine
anchor
707
73
0.103
recalled
routine
instance
6094
804
0.132
recalled
routine
navigate 없이
1197
70
0.058
recalled
routine
room
352
0
0.000
GT 물체에 대한 pick 1회당 성공률 — 직전 navigate 도착 위치와 물체의 평면 거리별 (Finding·Restore, 물체가 아직 안 움직인 시도만) (20행)
설정
패밀리
거리(m)
pick 시도
성공
성공률
gt
find
0.5–0.7
2315
229
0.099
gt
find
0.7–0.85
676
19
0.028
gt
find
0.85–1.0
341
4
0.012
gt
find
<0.5
380
71
0.187
gt
find
>1.0
15
0
0.000
gt
restore
0.5–0.7
6390
187
0.029
gt
restore
0.7–0.85
1507
43
0.029
gt
restore
0.85–1.0
852
6
0.007
gt
restore
<0.5
1325
66
0.050
gt
restore
>1.0
97
1
0.010
recalled
find
0.5–0.7
2465
499
0.202
recalled
find
0.7–0.85
457
21
0.046
recalled
find
0.85–1.0
345
3
0.009
recalled
find
<0.5
693
196
0.283
recalled
find
>1.0
13
0
0.000
recalled
restore
0.5–0.7
2774
138
0.050
recalled
restore
0.7–0.85
473
10
0.021
recalled
restore
0.85–1.0
269
1
0.004
recalled
restore
<0.5
819
64
0.078
recalled
restore
>1.0
36
4
0.111
원인군 분포 — 설정 × 패밀리 (최종 셀; a 하네스 접지·판정, b invalid 2회 abort, c 한도, d 저수준 정책, e 제어기, i 채점·인프라)
설정
패밀리
n
success
a
b
c
d
e
i
gt
find
750
270
121
3
2
308
46
0
gt
restore
740
116
107
9
0
471
37
0
gt
resume
805
203
47
1
141
240
168
5
gt
routine
615
95
79
79
0
329
33
0
recalled
find
1569
808
168
2
0
515
67
9
recalled
restore
590
130
56
6
0
348
49
1
recalled
resume
422
78
7
42
73
124
96
2
recalled
routine
655
147
15
52
0
385
56
0
종료 사유 분포 — 설정 × 패밀리 (최종 셀)
설정
패밀리
n
done
budget_exhausted
nav_loop
max_subgoals
stalled
abort
gt
find
750
430
197
87
9
5
22
gt
restore
740
242
187
158
91
42
20
gt
resume
805
396
111
171
26
84
17
gt
routine
615
193
118
166
39
16
83
recalled
find
1569
1144
275
108
37
2
3
recalled
restore
590
228
201
98
23
33
7
recalled
resume
422
173
71
107
13
12
46
recalled
routine
655
294
175
74
23
31
58
E2답이 여러 카테고리인 질의는 navigate가 항상 가구 앞(anchor)으로만 접지된다코드
navigate 접지가 제어기가 준 물체 이름 대신 질의 전체의 카테고리 문자열을 쓴다. 답이 여러 개면 이 문자열이 "ladle+pencil"처럼 "+"로 이어져 있어 어떤 물체와도 일치하지 않는다. 그래서 물체 옆(instance)이 아니라 가구 앞(anchor)이나 방 기준점(room)에 선다. Routine multi는 같은 단어가 반복돼도 이어 붙는다. surface="floor" 지정도 같은 이유로 바닥의 물체로 가지 못한다.
건수GT 설정 최종 셀 성공: Finding 4/180(36질의), Restore 7/285(57질의), Routine 0/215(43질의). recalled 설정: Finding 12/165, Restore 1/56, Routine 0/28
영향이 질의들은 방법과 무관하게 거의 0이다. recalled 설정에서는 방법마다 이런 셀의 수가 다르다(Finding textlog 55셀, blind 3셀).
어떻게 고칠 것인가src/rrbench/execution/online_planner.py:704-706에서 ground_selection(...)에 넘기는 두 곳의 self.category를 step.category(제어기가 이번 턴에 준 이름)로 바꾼다. step.category가 없을 때만 self.category로 되돌린다. 같은 파일 _decide의 navigate 분기는 _pending_grounding을 그대로 쓰므로 추가 수정은 없다. execution/online.py:823-824gt_grounding_strict도 같은 결합 문자열을 쓰므로 답별 카테고리로 바꿔야 진단값이 맞는다. 해당 셀(GT 680셀, recalled 249셀)은 재실행해야 하고 표 수치가 바뀐다.
한계·반례첫 감사의 수치(Finding 0.028/216행 등)는 대체 전 행 기준이라 위 최종 셀 수치와 다르다.
전체 목록exec_cells__items.csv: cat_joined=1
실제 예시 2개
gt:restore:6e66fbbca7cf:tagmem-r3
질의Pick up the tissue box and the fork and place them in or on where they first were
채점 정답put the tissue box back — it is now on the dining table in the living room; return it to the chair in the bedroom || put the fork back — it is now on the chair in the bedroom; return it to the dining table in the kitchen
실제navigate 6회 전부 대상이 diningtable, 조작 0회, nav_loop로 종료.
왜 오류인가제어기는 매 턴 category="tissue box"를 줬지만 접지는 계획 카테고리 "tissue box+fork"로 이뤄져 어떤 물체와도 일치하지 않았다. 6회 모두 식탁 앞(anchor).
controller note (turn 1)The robot is at the dining table in the living room, but the tissue box is at the other end. Navigating specifically to the tissue box on the dining table to get within reach.
controller reasoning (turn 5)The robot is at the dining table in the living room, but still not close enough to reach the tissue box on the far end. Continuing navigation towards the tissue box.
[{"turn": 0, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.52, "fork_1_0_6": 5.93}, "reasoning": "Following step 1 of the plan, we need to navigate to the dining table in the living room to pick up the tissue box."}, {"turn": 1, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.59, "fork_1_0_6": 5.89}, "reasoning": "The robot is at the dining table in the living room, but the tissue box is at the other end. Navigating specifically to the tissue box on the dining table to get within reach."}, {"turn": 2, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.51, "fork_1_0_6": 5.86}, "reasoning": "We need to get within reach of the tissue box on the dining table in the living room before picking it."}, {"turn": 3, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.55, "fork_1_0_6": 5.85}, "reasoning": "The tissue box is at the far end of the dining table and out of manipulation reach. Navigating to the tissue box on the dining table in the living room."}, {"turn": 4, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.68, "fork_1_0_6": 5.72}, "reasoning": "The robot is at the dining table but the tissue box is at the far end of the table, out of reach. Navigating closer to the tissue box."}, {"turn": 5, "controller": "navigate(category=tissue box, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {"tissuepaper_1_0_2": 1.58, "fork_1_0_6": 5.78}, "reasoning": "The robot is at the dining table in the living room, but still not close enough to reach the tissue box on the far end. Continuing navigation towards the tissue box."}]
gt:find:5010d0968b72:blind
질의Pick up the pepper shaker, the ladle, and the bowl
채점 정답pick up the pepper shaker — on the dining table in the kitchen || pick up the ladle — on the countertop in the kitchen || pick up the bowl — on the dining table in the kitchen
실제anchor 모드 6회, 가장 가까웠던 거리 1.82 m.
왜 오류인가category="pepper shaker", 계획 카테고리는 "pepper shaker+ladle+bowl". 식탁 앞에 선 뒤 하네스가 "no pepper shaker within reach"를 5번 돌려줬다.
controller reasoning (turn 5)The pepper shaker is not within reach. I need to navigate closer to the pepper shaker on the dining table in the kitchen.
[{"turn": 0, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.87, "ladle_1_0_6": 4.47, "bowl_1_0_6": 1.76}, "reasoning": "We need to start with Step 1: pick up the pepper shaker on the dining table in the kitchen. First navigate there."}, {"turn": 1, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": ["there is no pepper shaker within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.96, "ladle_1_0_6": 4.4, "bowl_1_0_6": 1.87}, "reasoning": "The pepper shaker is not within reach, so we need to navigate to the dining table near the pepper shaker first."}, {"turn": 2, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": ["there is no pepper shaker within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.86, "ladle_1_0_6": 4.49, "bowl_1_0_6": 1.74}, "reasoning": "Navigate closer to the pepper shaker on the dining table in the kitchen."}, {"turn": 3, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": ["there is no pepper shaker within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.86, "ladle_1_0_6": 4.49, "bowl_1_0_6": 1.74}, "reasoning": "The pepper shaker is not within reach, so navigate to the dining table in the kitchen first."}, {"turn": 4, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": ["there is no pepper shaker within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.82, "ladle_1_0_6": 4.52, "bowl_1_0_6": 1.69}, "reasoning": "The pepper shaker is not within reach, so navigate to the dining table in the kitchen targeting the pepper shaker."}, {"turn": 5, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": ["there is no pepper shaker within reach — navigate first"], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 1.87, "ladle_1_0_6": 4.48, "bowl_1_0_6": 1.75}, "reasoning": "The pepper shaker is not within reach. I need to navigate closer to the pepper shaker on the dining table in the kitchen."}]
방법별 성공 — 전체 / 답이 여러 카테고리인(결합) 셀만 / 결합 셀 제외 (33행)
설정
패밀리
방법
전체
결합 셀
결합 제외
gt
find
blind
55/150 (0.367)
2/36 (0.056)
53/114 (0.465)
gt
find
frames-uniform
58/150 (0.387)
0/36 (0.000)
58/114 (0.509)
gt
find
rollforward-v3
53/150 (0.353)
0/36 (0.000)
53/114 (0.465)
gt
find
rollforward-vis-pure
49/150 (0.327)
1/36 (0.028)
48/114 (0.421)
gt
find
tagmem-r3
55/150 (0.367)
1/36 (0.028)
54/114 (0.474)
gt
restore
blind
16/148 (0.108)
2/57 (0.035)
14/91 (0.154)
gt
restore
frames-uniform
21/148 (0.142)
1/57 (0.018)
20/91 (0.220)
gt
restore
rollforward-v3
29/148 (0.196)
1/57 (0.018)
28/91 (0.308)
gt
restore
rollforward-vis-pure
24/148 (0.162)
1/57 (0.018)
23/91 (0.253)
gt
restore
tagmem-r3
26/148 (0.176)
2/57 (0.035)
24/91 (0.264)
gt
routine
blind
19/123 (0.154)
0/43 (0.000)
19/80 (0.237)
gt
routine
frames-uniform
15/123 (0.122)
0/43 (0.000)
15/80 (0.188)
gt
routine
rollforward-v3
20/123 (0.163)
0/43 (0.000)
20/80 (0.250)
gt
routine
rollforward-vis-pure
19/123 (0.154)
0/43 (0.000)
19/80 (0.237)
gt
routine
tagmem-r3
22/123 (0.179)
0/43 (0.000)
22/80 (0.275)
recalled
find
blind
45/86 (0.523)
0/3 (0.000)
45/83 (0.542)
recalled
find
textlog
149/333 (0.447)
1/55 (0.018)
148/278 (0.532)
recalled
find
frames-uniform
145/256 (0.566)
3/25 (0.120)
142/231 (0.615)
recalled
find
rollforward-v3
126/244 (0.516)
0/19 (0.000)
126/225 (0.560)
recalled
find
rollforward-vis-pure
166/316 (0.525)
4/30 (0.133)
162/286 (0.566)
recalled
find
tagmem-r3
177/334 (0.530)
4/33 (0.121)
173/301 (0.575)
recalled
restore
blind
1/2 (0.500)
0/0
1/2 (0.500)
recalled
restore
textlog
47/266 (0.177)
1/43 (0.023)
46/223 (0.206)
recalled
restore
frames-uniform
12/55 (0.218)
0/1 (0.000)
12/54 (0.222)
recalled
restore
rollforward-v3
16/66 (0.242)
0/2 (0.000)
16/64 (0.250)
recalled
restore
rollforward-vis-pure
21/92 (0.228)
0/6 (0.000)
21/86 (0.244)
recalled
restore
tagmem-r3
33/109 (0.303)
0/4 (0.000)
33/105 (0.314)
recalled
routine
blind
5/22 (0.227)
0/0
5/22 (0.227)
recalled
routine
textlog
44/184 (0.239)
0/9 (0.000)
44/175 (0.251)
recalled
routine
frames-uniform
17/66 (0.258)
0/3 (0.000)
17/63 (0.270)
recalled
routine
rollforward-v3
26/142 (0.183)
0/6 (0.000)
26/136 (0.191)
recalled
routine
rollforward-vis-pure
20/84 (0.238)
0/2 (0.000)
20/82 (0.244)
recalled
routine
tagmem-r3
35/157 (0.223)
0/8 (0.000)
35/149 (0.235)
E3같은 종류의 다른 물체를 들면 인정되지 않는다결정 필요
제어기는 물체를 이름으로만 가리킨다. 같은 가구에 같은 종류 물체가 둘 이상이면 하네스가 어느 것인지 고른다(navigate는 uid 오름차순 첫 번째, pick은 로봇에서 가장 가까운 것). pick 성공 판정은 정답 물체가 들렸는지만 본다. 그래서 정답이 아닌 쪽을 실제로 들어도 실패로 기록된다.
건수정답 물체를 한 번도 겨냥하지 못하고 끝난 셀: GT Finding 63, GT Restore 42, GT Routine 4, recalled Finding 110, recalled Restore 38. 데이터가 twin_nearby로 표시한 셀의 성공: GT Finding 17/140, GT Restore 24/185
영향제어기가 선택할 수 없는 부분에서 성패가 갈린다. 실패한 pick 뒤의 done 선언 중 일부는 제어기 오인이 아니라 실제로 물체를 든 경우다.
어떻게 고칠 것인가결정이 필요하다. 권장: 질의가 인스턴스를 구분하지 않는 문장("Pick up the fork")이면 같은 가구 위 같은 카테고리 물체를 모두 정답으로 인정한다 — src/rrbench/execution/online_planner.py:861의 judge_ids와 execution/online.py의 online_success 입력(plan.gt_bodies)에 쌍둥이 uid를 추가. "I moved earlier"처럼 특정 물체를 가리키는 질의는 agent/naming.py의 resolve_name(최근접 선택)과 execution/grounding.py의 instances_on(uid 오름차순)에 정답 uid 우선 인자를 넘기는 방법이 있으나, 이는 하네스가 정답을 대신 고르는 것이므로 문서에 적어야 한다. 대안: 쌍둥이가 있는 질의를 셀 목록에서 뺀다(twin_nearby=1). 어느 쪽이든 수치가 바뀐다.
한계·반례이미지로 "실제로 들었다"를 확인한 것은 여기 3셀이다. 나머지 셀은 턴 기록(정답이 아닌 uid에 pick 실행)만 확인했다. c9424d에서 어느 mug가 정답인지는 이미지로 구분할 수 없고 턴 기록의 uid로만 안다.
전체 목록exec_cells__items.csv: n_manip_nongt_samecat>0 또는 root_cause=a7_wrong_instance_same_category 또는 twin_nearby=1
실제 예시 3개
gt:find:d00a79ee2c62:frames-uniform
질의Pick up the fork I moved earlier
채점 정답pick up the fork — on the countertop in the kitchen
실제손목 프레임에 fork가 그리퍼에 들려 있다. 턴 기록은 executed_on이 정답이 아닌 fork, result_ok=false.
왜 오류인가같은 조리대의 다른 fork를 실제로 들었지만 판정은 정답 fork만 본다. pick은 실패로 기록되고 셀도 실패.
controller reasoning (turn 2)The fork has been successfully grasped and lifted in the gripper, completing the only step of the plan.
pick 직후 손목 카메라. 빨간 상자: 그리퍼에 물려 들린 fork. 하네스 기록은 lifted_gt=[] (정답 fork가 아님).
[{"turn": 0, "controller": "navigate(category=fork, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "fork_1_0_6", "dist_to_gt_m": {"fork_1_0_6": 0.88}, "reasoning": "Navigate to the countertop in the kitchen to locate and pick up the fork."}, {"turn": 1, "controller": "pick(category=fork, surface=None, room=None)", "harness_messages": [], "executed_on": "fork_1_0_6", "is_gt": false, "result_ok": false, "steps": 128, "reasoning": "The robot is at the countertop in the kitchen. The target fork is on the countertop within reach."}, {"turn": 2, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The fork has been successfully grasped and lifted in the gripper, completing the only step of the plan."}]
gt:find:cdc183f9e355:rollforward-v3
질의Pick up the fork I moved earlier
채점 정답pick up the fork — on the countertop in the kitchen
실제손목 프레임에 fork가 들려 있다.
왜 오류인가위와 같은 집·같은 질의 유형의 다른 방법 셀. 정답이 아닌 fork를 들었고 인정되지 않았다.
controller reasoning (turn 2)The fork is visibly grasped and lifted in the gripper, completing the goal.
[{"turn": 0, "controller": "navigate(category=fork, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "fork_1_0_6", "dist_to_gt_m": {"fork_1_0_6": 0.67}, "reasoning": "The fork is located on the countertop in the kitchen, but not currently within reach of the gripper. Navigating to the fork on the countertop."}, {"turn": 1, "controller": "pick(category=fork, surface=None, room=None)", "harness_messages": [], "executed_on": "fork_1_0_6", "is_gt": false, "result_ok": false, "steps": 128, "reasoning": "We are positioned at the countertop in the kitchen. Step 1 of the plan is to pick up the fork on the countertop. I will command pick('fork')."}, {"turn": 2, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The fork is visibly grasped and lifted in the gripper, completing the goal."}]
gt:find:c9424dba2ed2:rollforward-vis-pure
질의Pick up the mug I moved earlier
채점 정답pick up the mug — on the dresser in the bedroom
실제손목 프레임에 mug 하나가 그리퍼에 물려 있고 바로 옆에 다른 mug가 있다.
왜 오류인가서랍장 위에 mug가 둘 있다. 하네스가 이름 "mug"를 정답이 아닌 쪽으로 풀었고, 그 mug를 든 것은 인정되지 않았다.
controller reasoning (turn 2)The mug has been successfully picked up and lifted from the dresser in the bedroom, completing the goal.
pick 직후 손목 카메라. 왼쪽 상자: 그리퍼에 물린 mug(턴 기록상 정답 아님). 오른쪽 상자: 옆의 다른 mug.
[{"turn": 0, "controller": "navigate(category=mug, surface=dresser, room=bedroom)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "mug_1_0_4", "dist_to_gt_m": {"mug_2_0_6": 0.68}, "reasoning": "Navigate to the bedroom dresser where the mug is located."}, {"turn": 1, "controller": "pick(category=mug, surface=dresser, room=bedroom)", "harness_messages": [], "executed_on": "mug_1_0_4", "is_gt": false, "result_ok": false, "steps": 128, "reasoning": "We have navigated to the dresser in the bedroom where the mug is located. Now we will pick up the mug."}, {"turn": 2, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The mug has been successfully picked up and lifted from the dresser in the bedroom, completing the goal."}]
E4Resume 방 방문 navigate가 매번 거절된다: 프롬프트는 방만 지정해도 된다고 하고 스키마는 물체 이름을 요구한다코드
시스템 프롬프트는 "surface may be null = just enter the room"이라고 안내한다. 같은 문단에 "ALWAYS also fill category"도 있다. 스키마 검증은 navigate에 category가 없으면 invalid로 돌려보낸다. "Visit the kitchen" 같은 방문 과제에는 채울 물체가 없다.
영향방문 한 번마다 VLM 호출이 한 번 더 든다. 같은 턴에 다른 invalid가 겹치면 abort된다(E8). 연속 navigate 6회 제한(nav_loop)과 겹쳐 방문 과제가 잘린다.
어떻게 고칠 것인가src/rrbench/agent/schema.py:27의 _NEEDS_OBJECT에서 "navigate"를 빼고, schema.py:133-134에서 navigate는 room만 있으면 통과시키도록 한다. execution/online_planner.py:704-706의 접지는 category가 None이면 surface/room만으로 anchor·room 모드를 쓰면 된다. 프롬프트(online_planner.py:360-365)의 "ALWAYS also fill category"는 "물체를 향해 갈 때만"으로 고친다. 프롬프트가 바뀌므로 Resume은 재실행 대상이다.
한계·반례거절당한 첫 응답 원문은 episode.json에 남지 않는다(마지막 응답만 저장). 메시지와 최종 응답으로만 확인했다.
전체 목록exec_cells__items.csv: n_rq_needcat>0
실제 예시 2개
gt:resume:a7dee1fdb321:blind
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Visit the living room — remaining unit 1 of 1
실제harness_messages에 "skill 'navigate' requires category"가 방문 navigate마다 붙는다.
왜 오류인가방 방문 과제라 가리킬 물체가 없다. category를 비운 navigate가 매번 "requires category"로 거절되고, 제어기는 아무 물체 이름이나 채워 다시 답한다.
controller reasoning (turn 0)Plan step 1 requires visiting the living room. I will navigate to the living room.
[{"turn": 0, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Plan step 1 requires visiting the living room. I will navigate to the living room."}, {"turn": 1, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the living room. I will navigate to the living room targeting an object in it."}, {"turn": 2, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the living room. I will navigate to the living room with sofa as the target category."}, {"turn": 3, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The robot has successfully navigated to and arrived in the living room, satisfying the goal."}]
prompt_sentence
navigate(room, surface): go to the named surface in the named room ... surface may be null = just enter the room; ... ALWAYS also fill category with the object you are ultimately going for. (src/rrbench/execution/online_planner.py:360-364)
schema_rule
if step.skill in _NEEDS_OBJECT and not step.category: return f"skill '{step.skill}' requires category" (src/rrbench/agent/schema.py:133-134; _NEEDS_OBJECT at :27 includes 'navigate')
gt:resume:cbaad057eb1a:rollforward-vis-pure
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Visit the living room — remaining unit 1 of 1
실제harness_messages에 "skill 'navigate' requires category"가 방문 navigate마다 붙는다.
왜 오류인가방 방문 과제라 가리킬 물체가 없다. category를 비운 navigate가 매번 "requires category"로 거절되고, 제어기는 아무 물체 이름이나 채워 다시 답한다.
controller reasoning (turn 0)The plan requires visiting the living room. I will navigate to the living room targeting the sofa.
[{"turn": 0, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the living room. I will navigate to the living room targeting the sofa."}, {"turn": 1, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Navigating to the living room as required by the plan."}, {"turn": 2, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Navigating to the living room to complete the visit goal, targeting sofa."}, {"turn": 3, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the living room. I will navigate to the living room with the sofa as the target category."}, {"turn": 4, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Navigate to the living room, targeting the sofa to satisfy visiting the living room."}, {"turn": 5, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the living room. I will navigate to the sofa in the living room."}]
prompt_sentence
navigate(room, surface): go to the named surface in the named room ... surface may be null = just enter the room; ... ALWAYS also fill category with the object you are ultimately going for. (src/rrbench/execution/online_planner.py:360-364)
schema_rule
if step.skill in _NEEDS_OBJECT and not step.category: return f"skill '{step.skill}' requires category" (src/rrbench/agent/schema.py:133-134; _NEEDS_OBJECT at :27 includes 'navigate')
E5물체를 든 채 한 place가 스텝 0으로 성공 처리된다코드
든 물체를 내려놓는 place 서브골은 먼저 하네스가 팔을 가구 위로 옮긴다(preplace). 그 직후 "이미 놓였는가" 판정이 참이면 정책을 한 스텝도 돌리지 않고 성공으로 끝낸다. 하네스는 든 상태를 지우고 팔을 뺀다. 에피소드 끝의 채점에서는 놓이지 않은 것으로 나온다.
건수이런 턴이 1회 이상 있는 셀: GT Restore 25, GT Resume 19, GT Routine 17, recalled Restore 16, Resume 8, Routine 15. 이것이 최종 원인으로 분류된 셀: GT 10, recalled 6
영향제어기는 프레임만 보고 놓았다고 믿고 done을 선언한다. 든 상태가 지워져 "you are still holding" 안내도 더 나오지 않는다.
어떻게 고칠 것인가src/rrbench/agent/orchestrator.py:1373의 vacuous = bool(judge())가 든 물체 place(vla_held_place)에서도 그대로 적용된다. 든 물체 place에서는 vacuous 단축을 끄고 정책을 실제로 실행한 뒤 held_place_judge(orchestrator.py:438)로 판정하게 한다. preplace 이동 중 물체가 손에서 빠진 경우는 dropped로 기록해 planner.report에 전달한다. 릴리즈 코드의 held_place_judge는 이미 최종 채점과 같은 is_placed_on을 쓰므로, 논문 런 스냅샷과 릴리즈가 다른지 먼저 확인해야 한다. 영향 셀은 재실행 대상.
조립 주: 첫 통합 목록의 '물체가 그리퍼에 남는다'는 틀렸다. 확인한 예시에서 그리퍼는 비어 있다. 성립하는 것은 '정책 스텝 0으로 성공 처리됐는데 최종 채점은 미배치'다.
한계·반례마스터 목록의 "물체는 그리퍼에 남음"은 이미지로 확인되지 않았다. aa0c6bee1b9f의 손목 프레임에서 그리퍼는 비어 있고 병은 흰 쿠션 면 위, 로봇 손목 가까이에 있다(높이로 추정했던 내용을 정정). 이 셀에서 최종 채점이 왜 미배치인지(로봇과 닿아 있어서인지, 목적지 가구가 아닌 면이어서인지)는 이미지로 가르지 못했다. eef1ced7a27d에서는 물체가 바닥에 있다. 공통점은 "정책 실행 없이 성공 처리 → 최종 채점은 미배치"이고, 물체가 어디에 남는지는 셀마다 다르다. eef1ced7a27d는 이미지 없이 기록만 확인했다.
전체 목록exec_cells__items.csv: n_pnp_vac_held>0 (원인 셀은 root_cause=a3_vacuous_place_while_holding)
실제 예시 2개
gt:routine:aa0c6bee1b9f:rollforward-vis-pure
질의Put the spray bottle on the countertop away.
채점 정답put the spray bottle away on the armchair in the bedroom
실제place 턴: vacuous=true, steps=0, success=true. 최종: placed_gt=[], 물체 높이 z=0.565 m(안락의자 윗면 0.318 m보다 25 cm 위), 목표와 평면 거리 0.359 m. 캡처에서 그리퍼는 비어 있고 병은 흰 쿠션 면 위, 로봇 손목 가까이에 놓여 있다. 하네스가 놓은 것이 아니라 팔을 옮기는 동안 손에서 빠진 것으로 보인다.
왜 오류인가place 턴이 스텝 0으로 성공 처리됐다(정책이 한 스텝도 실행되지 않음). 하네스는 든 상태를 지우고 팔을 뺐다. 최종 채점에서는 놓이지 않은 것으로 판정됐다.
controller reasoning (turn 5)The spray bottle has been successfully placed on the armchair in the bedroom. The task is complete.
place "성공" 직후 제어기가 받은 손목 카메라. 빨간 상자: spray bottle. 그리퍼(아래 검은 부분)는 비어 있다.
[{"turn": 0, "controller": "navigate(category=spray bottle, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "h2_Spray_Bottle_8", "dist_to_gt_m": {}, "reasoning": "Navigate to the spray bottle on the countertop in the kitchen to prepare to pick it up."}, {"turn": 1, "controller": "pick(category=spray bottle, surface=None, room=None)", "harness_messages": [], "executed_on": "h2_Spray_Bottle_8", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The robot is in front of the yellow spray bottle on the countertop. The next step is to pick up the spray bottle."}, {"turn": 2, "controller": "pick(category=spray bottle, surface=None, room=None)", "harness_messages": [], "executed_on": "h2_Spray_Bottle_8", "is_gt": true, "result_ok": true, "steps": 17, "reasoning": "The gripper is grasping the spray bottle but has not lifted it up yet. Continuing the pick skill."}, {"turn": 3, "controller": "navigate(category=spray bottle, surface=armchair, room=bedroom)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "armchair_1_0_4", "dist_to_gt_m": {}, "reasoning": "The spray bottle has been picked up from the countertop. Now navigate to the armchair in the bedroom to place it."}, {"turn": 4, "controller": "pick_and_place(category=spray bottle, surface=armchair, room=None)", "harness_messages": [], "executed_on": "h2_Spray_Bottle_8", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "held_place": true, "reasoning": "The robot has arrived in front of the armchair in the bedroom while holding the spray bottle. Now place the spray bottle on the armchair."}, {"turn": 5, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The spray bottle has been successfully placed on the armchair in the bedroom. The task is complete."}]
place_turn_raw
{"vacuous": true, "success": true, "steps": 0, "held_object_id": null, "prompt": "Place the spray bottle on the chair."}
질의Pick up the bottle and the wine bottle and place them in or on where they first were
채점 정답put the bottle back — it is now on the dining table in the kitchen; return it to the side table in the kitchen || put the wine bottle back — it is now on the chair in the kitchen; return it to the dining table in the kitchen
실제9번 턴 vacuous=true, steps=0. 최종 placed_gt=[].
왜 오류인가bottle을 든 채 tv stand 앞에서 place가 스텝 0으로 성공 처리됐다. 최종 위치는 바닥(z=0.054 m)이고 놓인 것으로 인정되지 않았다.
controller reasoning (turn 14)The wine bottle has been placed onto the dining table and the gripper has released it. Both the bottle and wine bottle are returned to their initial locations.
[{"turn": 7, "controller": "pick(category=bottle, surface=None, room=None)", "harness_messages": [], "executed_on": "bottle_1_0_6", "is_gt": true, "result_ok": true, "steps": 3, "reasoning": "The gripper is holding the bottle neck but needs another pick step to complete the lift trajectory before navigating."}, {"turn": 8, "controller": "navigate(category=bottle, surface=side table, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "stand_1_0_6", "dist_to_gt_m": {"bottle_1_0_6": 4.62, "winebottle_1_0_6": 4.52}, "reasoning": "The bottle is now firmly grasped and lifted in the gripper. According to the plan, step 1 is to return the bottle to the side table in the kitchen. I will navigate to the side table in the kitchen while carrying the bott"}, {"turn": 9, "controller": "pick_and_place(category=bottle, surface=side table, room=kitchen)", "harness_messages": [], "executed_on": "bottle_1_0_6", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "held_place": true, "reasoning": "The robot has navigated to the side table in the kitchen while holding the clear bottle. Now execute pick_and_place to put the bottle onto the side table."}, {"turn": 10, "controller": "navigate(category=wine bottle, surface=chair, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "chair_2_0_6", "dist_to_gt_m": {"bottle_1_0_6": 0.74, "winebottle_1_0_6": 0.73}, "reasoning": "The bottle has been placed at the side table. Now proceeding to step 2 of the plan: retrieve the wine bottle from the chair in the kitchen."}, {"turn": 14, "controller": "done(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The wine bottle has been placed onto the dining table and the gripper has released it. Both the bottle and wine bottle are returned to their initial locations."}]
물체를 들지 않은 상태의 pick_and_place는 "정답 후보 물체 중 하나라도 목적지 위에 있는가"로 판정한다. Resume에서는 중단 전에 옮긴 물체가 이미 목적지에 있으므로 시작하자마자 참이 되고, 정책은 한 스텝도 실행되지 않는다. 6번 반복되면 무진전(stalled)으로 에피소드가 잘린다.
건수이런 턴이 1회 이상 있는 셀: GT Resume 216/805, GT Restore 82/740, GT Routine 31/615, recalled Resume 69/422, Restore 79/590, Routine 61/655. 이것만 반복하다 끝난 셀: GT Resume 38, recalled Resume 5
영향Resume의 "N개 옮기기" 과제에서 남은 물체를 pick_and_place 한 번으로 옮기는 길이 막힌다. 시스템 프롬프트는 pick_and_place를 "one atomic unit — you cannot split"이라고 설명해 빈손 pick_and_place를 유도한다.
어떻게 고칠 것인가src/rrbench/execution/online_planner.py:861의 judge_ids(정답 후보 전체)를 그 턴에 실제로 고른 object_id 하나로 좁혀 place_judge(agent/orchestrator.py:414)에 넘긴다. 그러면 이미 놓인 다른 물체가 판정을 참으로 만들지 않는다. 프롬프트(online_planner.py:367-368)의 pick_and_place 설명을 운반 패밀리에서는 "든 물체를 내려놓는 동작"으로 고쳐 Holding 규칙(:337-340)과 맞춘다. Resume·Restore·Routine 재실행 대상.
한계·반례이미지는 넣지 않았다(실행된 동작이 없어 보여줄 변화가 없다). 턴 기록의 vacuous·steps 값이 증거다.
전체 목록exec_cells__items.csv: n_pnp_vac_empty>0 (Resume), n_pnp_vac - n_pnp_vac_held > 0 (Restore·Routine); 원인 셀 root_cause=a6_vacuous_emptyhand_pnp
실제 예시 2개
gt:resume:eceee7f3339c:tagmem-r3
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Pick up four of the eggs from the desk and place them in or on the dining table — from the Desk in the living room to the DiningTable in the living room — remaining unit 1 of 2 || Pick up four of the eggs from the desk and place them in or on the dining table — from the Desk in the living room to the DiningTable in the living room — remaining unit 2 of 2
실제pick_and_place 턴이 전부 vacuous=true, steps=0, held_place 없음. 놓인 개수는 늘지 않았다.
왜 오류인가빈손으로 pick_and_place를 냈다. 판정 대상이 "정답 후보 중 아무거나 목적지에 있으면 참"이라, 이미 놓여 있는 물체 때문에 시작 시점에 참이 되어 실행되지 않았다.
controller reasoning (turn 5)The robot is holding an egg in front of the dining table. Continuing pick_and_place to deposit the egg onto the dining table.
[{"turn": 0, "controller": "pick_and_place(category=egg, surface=dining table, room=living room)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is currently holding an egg over the dining table. Executing pick_and_place on the dining table will place it down to progress step 1 of the plan."}, {"turn": 1, "controller": "pick_and_place(category=egg, surface=dining table, room=None)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is holding an egg above the dining table in the living room. Executing pick_and_place to put the egg down on the dining table to continue fulfilling step 1 of the plan."}, {"turn": 2, "controller": "pick_and_place(category=egg, surface=dining table, room=None)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "We are currently holding an egg in front of the dining table in the living room. We need to complete placing it onto the dining table."}, {"turn": 3, "controller": "pick_and_place(category=egg, surface=dining table, room=None)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is holding an egg in front of the dining table in the living room. It needs to place it onto the dining table."}, {"turn": 4, "controller": "pick_and_place(category=egg, surface=dining table, room=living room)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is holding an egg in front of the dining table. I will execute pick_and_place to place it on the dining table."}, {"turn": 5, "controller": "pick_and_place(category=egg, surface=dining table, room=living room)", "harness_messages": [], "executed_on": "t2a1_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is holding an egg in front of the dining table. Continuing pick_and_place to deposit the egg onto the dining table."}]
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Pick up four of the eggs from the dining table and place them into the basket — from the DiningTable in the living room into the Laundry_Hamper_1 in the living room — remaining unit 1 of 2 || Pick up four of the eggs from the dining table and place them into the basket — from the DiningTable in the living room into the Laundry_Hamper_1 in the living room — remaining unit 2 of 2
실제pick_and_place 턴이 전부 vacuous=true, steps=0, held_place 없음. 놓인 개수는 늘지 않았다.
왜 오류인가빈손으로 pick_and_place를 냈다. 판정 대상이 "정답 후보 중 아무거나 목적지에 있으면 참"이라, 이미 놓여 있는 물체 때문에 시작 시점에 참이 되어 실행되지 않았다.
controller reasoning (turn 7)The robot is in front of the dining table with an egg and the laundry hamper within reach. I will execute pick_and_place to move the egg into the laundry hamper.
[{"turn": 0, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a7_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "I need to continue placing eggs from the dining table into the laundry hamper. Since I am positioned right by the table and the hamper, I will execute pick_and_place for the egg into laundry hamper 1."}, {"turn": 1, "controller": "navigate(category=egg, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "t1a2_Egg_30", "dist_to_gt_m": {}, "reasoning": "The current plan requires moving eggs from the dining table into laundry hamper 1. I need to navigate to the dining table to pick up the next egg."}, {"turn": 2, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The laundry hamper lid has been removed and the hamper is open. I will pick up an egg from the dining table and place it into laundry hamper 1."}, {"turn": 3, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is in front of the dining table and the laundry hamper. An egg is within reach on the table. I will use pick_and_place to move the egg into laundry hamper 1."}, {"turn": 4, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "I am standing at the dining table with the eggs and the laundry hamper within reach. I will pick up an egg and place it into the laundry hamper."}, {"turn": 5, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "We are currently positioned at the dining table with the egg and laundry hamper 1 in reach. Step 1 requires placing an egg from the dining table into the laundry hamper 1. I will execute pick_and_place to move the egg in"}, {"turn": 6, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=None)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is in front of the dining table with eggs and next to the laundry hamper. The next plan step is to pick an egg and place it into the laundry hamper."}, {"turn": 7, "controller": "pick_and_place(category=egg, surface=laundry hamper 1, room=living room)", "harness_messages": [], "executed_on": "t1a2_Egg_30", "is_gt": true, "result_ok": true, "steps": 0, "vacuous": true, "reasoning": "The robot is in front of the dining table with an egg and the laundry hamper within reach. I will execute pick_and_place to move the egg into the laundry hamper."}]
E7GT 계획 문장이 원래 발화의 개수를 그대로 싣고 있어 제어기가 불가능하다고 abort한다코드
Resume의 GT 계획은 "Pick up five of the eggs from the dining table and place them into the basket — … — remaining unit 1 of 1"처럼 원 발화 전체에 남은 단위 수만 덧붙인다. 탁자에 달걀이 2–3개 남은 것을 본 제어기가 "five가 안 된다"고 판단한다.
건수제어기가 스스로 abort한 60셀 중 이 사유 16셀(GT Resume 9, GT Finding 2, GT Restore 1, recalled Resume 4)
영향과제는 수행 가능했는데 지시문 문구 때문에 0점이 된다. press 과제에서도 같은 문장 구조("three times — remaining unit 1 of 2")가 쓰인다.
어떻게 고칠 것인가src/rrbench/execution/online_plan.py:134(f"{task} — remaining unit {i} of {r}")와 GT 계획 문장을 만드는 src/rrbench/execution/resume_gt.py:108gt_unfinished에서, 원 발화의 개수 표현을 남은 개수로 바꾼 문장을 쓴다(예: "Move 1 more egg from the dining table into the laundry hamper"). 계획 문장이 바뀌므로 Resume 재실행 대상.
한계·반례16셀은 abort 사유를 정규식으로 분류한 뒤 사유 전문을 읽어 센 값이다. Finding 2셀과 Restore 1셀은 Resume과 문장 구조가 다르다("all the potatos"에 물체가 하나만 보임) — 같은 분류에 들어 있지만 원 발화 개수 문제는 Resume 13셀이다.
전체 목록exec_cells__items.csv: abort_kind=controller_abort 그리고 abort_types=count_in_instruction_exceeds_visible_objects
실제 예시 3개
gt:resume:627e9bbcac51:frames-uniform
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답Pick up five of the eggs from the dining table and place them into the basket — from the DiningTable in the living room into the Laundry_Hamper_1 in the living room — remaining unit 1 of 1 || Visit the bedroom — remaining unit 1 of 1 || Visit the kitchen — remaining unit 1 of 1 || Visit the living room — remaining unit 1 of 1
실제남은 단위는 계획 문장 끝의 remaining unit 수뿐이다.
왜 오류인가계획 문장이 원래 발화의 개수("five of the eggs")를 그대로 싣고 뒤에 "remaining unit 1 of 1"만 붙인다. 제어기는 다섯 개를 옮겨야 한다고 읽고 불가능하다며 abort했다.
controller abort reasoning (turn 1)The task requires picking up five eggs from the dining table, but there are only three eggs on the dining table. It is impossible to complete this requirement.
[{"turn": 0, "controller": "pick(category=egg, surface=None, room=None)", "harness_messages": [], "executed_on": "t1a4_Egg_30", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "I am standing in front of the dining table in the living room with eggs in reach. Step 1 requires picking up eggs and placing them in the laundry hamper. I will begin by picking up an egg."}, {"turn": 1, "controller": "abort(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The task requires picking up five eggs from the dining table, but there are only three eggs on the dining table. It is impossible to complete this requirement."}]
gt:resume:4c73d253cbaf:blind
질의You were interrupted earlier. Go back and finish all of what you were doing.
채점 정답Pick up four of the potatos from the dining table and place them into the basket — from the DiningTable in the living room into the Laundry_Hamper_1 in the living room — remaining unit 1 of 1 || Visit the living room — remaining unit 1 of 1 || Visit the bathroom — remaining unit 1 of 1 || Visit the kitchen — remaining unit 1 of 1
실제남은 단위는 계획 문장 끝의 remaining unit 수뿐이다.
왜 오류인가계획 문장이 원래 발화의 개수("five of the eggs")를 그대로 싣고 뒤에 "remaining unit 1 of 1"만 붙인다. 제어기는 다섯 개를 옮겨야 한다고 읽고 불가능하다며 abort했다.
controller abort reasoning (turn 1)The plan requires picking up four potatoes from the dining table, but there are only two potatoes on the dining table. Therefore, the task cannot be completed.
[{"turn": 0, "controller": "navigate(category=potato, surface=dining table, room=living room)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "t1a3_Potato_9", "dist_to_gt_m": {}, "reasoning": "Step 1 requires picking up four potatoes from the dining table and placing them into the laundry hamper in the living room. I will navigate to the dining table in the living room first."}, {"turn": 1, "controller": "abort(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The plan requires picking up four potatoes from the dining table, but there are only two potatoes on the dining table. Therefore, the task cannot be completed."}]
gt:resume:212020b7109f:frames-uniform
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Pick up five of the eggs from the dining table and place them into the basket — from the DiningTable in the living room into the Laundry_Hamper_1 in the living room — remaining unit 1 of 1
실제남은 단위는 계획 문장 끝의 remaining unit 수뿐이다.
왜 오류인가계획 문장이 원래 발화의 개수("five of the eggs")를 그대로 싣고 뒤에 "remaining unit 1 of 1"만 붙인다. 제어기는 다섯 개를 옮겨야 한다고 읽고 불가능하다며 abort했다.
controller abort reasoning (turn 0)The plan requires picking up five eggs from the dining table, but there are only two eggs available on the dining table. It is impossible to complete the task.
[{"turn": 0, "controller": "abort(category=None, surface=None, room=None)", "harness_messages": [], "reasoning": "The plan requires picking up five eggs from the dining table, but there are only two eggs available on the dining table. It is impossible to complete the task."}]
E8한 턴에 invalid 응답 2회면 에피소드가 abort된다코드
제어기 응답이 검증에 걸리면 하네스가 이유를 알려 주고 한 번만 다시 묻는다. 두 번째도 걸리면 그 자리에서 에피소드를 끝낸다. 문서에는 없는 규칙이다.
영향거의 전부 두 번째 메시지가 "there is no S in R"(그 방에 그 가구가 없다)이다. 방을 한 번 더 고칠 기회가 없어서 끝난다. 물체를 든 채 끝난 셀: GT Routine 10, recalled Resume 18, recalled Routine 16.
어떻게 고칠 것인가src/rrbench/agent/unified_turn.py:246-259: 두 번째 invalid에서 SubgoalDecision(skill="abort")를 돌려주는 대신 그 턴을 "아무 것도 하지 않은 턴"으로 기록하고 다음 턴으로 넘긴다(턴 상한과 무진전 6회 가드가 무한 반복을 막는다). 재질의 횟수를 2회로 늘리는 것만으로도 방 추측 실패 대부분이 풀린다. 근본 원인은 B10(가구 이름 접지)과 Routine 지시문에 출발 방이 없는 점이다. 문서에 규칙을 적는다.
한계·반례JSON 형식 오류가 낀 abort는 1건뿐이다.
전체 목록exec_cells__items.csv: abort_kind=harness_invalid_twice (열 abort_types, abort_msgs, abort_tried)
실제 예시 3개
gt:routine:cb0e655b4877:rollforward-vis-pure
질의Clear the countertop. Items on it: spray bottle, alarm clock, soap bottle, soap bottle.
채점 정답put the spray bottle away on the side table in the bedroom || put the alarm clock away on the shelving unit in the kitchen || put the soap bottle away on the side table in the bedroom || put the soap bottle away on the side table in the bedroom
실제마지막 턴의 harness_messages에 두 메시지가 있고 결정은 abort("unified turn invalid twice").
왜 오류인가계획이 말한 "shelving unit in the kitchen"이 접지되지 않아 한 번, 다른 방으로 바꿔 한 번 거절되고 끝났다.
controller reasoning (turn 3)unified turn invalid twice: there is no shelving unit in living room
[{"turn": 1, "controller": "pick(category=spray bottle, surface=None, room=None)", "harness_messages": [], "executed_on": "h1_Spray_Bottle_1", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "Plan step 1: put the spray bottle away on the side table in the bedroom. We are at the countertop facing the objects, ready to pick the spray bottle."}, {"turn": 2, "controller": "navigate(category=spray bottle, surface=countertop, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {}, "reasoning": "We need to execute step 1 of the plan: put the spray bottle away on the side table in the bedroom. First, navigate to the spray bottle on the countertop in the kitchen to get within picking range."}, {"turn": 3, "controller": "navigate(category=alarm clock, surface=shelving unit, room=living room)", "harness_messages": ["there is no shelving unit in kitchen", "there is no shelving unit in living room"], "reasoning": "unified turn invalid twice: there is no shelving unit in living room"}]
both_messages
there is no shelving unit in kitchen || there is no shelving unit in living room
controller_tried
navigate(alarm clock|shelving unit|living room)
gt:routine:53d0293afac4:blind
질의Put the tomato on the countertop away.
채점 정답put the tomato away on the shelving unit in the kitchen
실제마지막 턴의 harness_messages에 두 메시지가 있고 결정은 abort("unified turn invalid twice").
왜 오류인가tomato를 든 상태에서 pick을 내 한 번, "shelving unit in kitchen"으로 가려다 한 번 거절됐다. 물체를 든 채 종료.
controller reasoning (turn 3)unified turn invalid twice: there is no shelving unit in kitchen
[{"turn": 1, "controller": "pick(category=tomato, surface=None, room=None)", "harness_messages": [], "executed_on": "h2_Tomato_1", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is positioned near the tomato but has not grasped and lifted it yet. Continuing the pick subgoal."}, {"turn": 2, "controller": "pick(category=tomato, surface=None, room=None)", "harness_messages": [], "executed_on": "h2_Tomato_1", "is_gt": true, "result_ok": true, "steps": 53, "reasoning": "The gripper is positioned around the tomato but has not yet completed the grasp and lift. Repeating the pick subgoal."}, {"turn": 3, "controller": "navigate(category=tomato, surface=shelving unit, room=kitchen)", "harness_messages": ["you are still holding the tomato — you cannot pick another object; put it down first with pick_and_place(category, surface) at the destination", "there is no shelving unit in kitchen"], "reasoning": "unified turn invalid twice: there is no shelving unit in kitchen"}]
both_messages
you are still holding the tomato — you cannot pick another object; put it down first with pick_and_place(category, surface) at the destination || there is no shelving unit in kitchen
controller_tried
navigate(tomato|shelving unit|kitchen)
recalled:resume:cd70689e682b:rollforward-v3
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Navigate to every room in the house — remaining unit 1 of 1
실제마지막 턴의 harness_messages에 두 메시지가 있고 결정은 abort("unified turn invalid twice").
왜 오류인가회상한 답의 가구 이름 "garbage can"이 실행 이름 목록의 바구니("laundry hamper 1")와 달라 접지되지 않았다.
controller reasoning (turn 12)unified turn invalid twice: there is no garbage can in kitchen
[{"turn": 9, "controller": "navigate(category=egg, surface=dining table, room=kitchen)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "diningtable_1_0_6", "dist_to_gt_m": {}, "reasoning": "The egg is located on the far side of the dining table near the chair, out of reach from the current base position. I need to navigate to the dining table specifically targeting the egg to get within manipulation range."}, {"turn": 10, "controller": "pick(category=egg, surface=None, room=None)", "harness_messages": [], "executed_on": "t1a6_Egg_30", "is_gt": false, "result_ok": false, "steps": 128, "reasoning": "We have navigated close to the egg on the dining table. Now we should pick the egg."}, {"turn": 11, "controller": "pick(category=egg, surface=None, room=None)", "harness_messages": [], "executed_on": "t1a6_Egg_30", "is_gt": false, "result_ok": false, "steps": 128, "reasoning": "The gripper is grasping the egg on the dining table, but it has not been fully lifted yet. Issuing pick again to complete the lift."}]
both_messages
there is no garbage can within reach — navigate first || there is no garbage can in kitchen
controller_tried
navigate(garbage can|garbage can|kitchen)
E9목표를 채웠는데 스텝 예산 초과로 실패 처리된다채점기
성공은 "목표 충족 그리고 사용 스텝 ≤ 예산"이다. 예산 검사는 턴 시작 때만 하고 navigate 주행은 예산을 넘겨도 끝까지 간다. 그래서 목표는 예산 안에서 채웠지만 마지막 주행 때문에 사용 스텝이 예산을 넘은 셀이 실패가 된다.
영향건수는 작다. 다만 목표를 채운 시점이 아니라 에피소드가 끝난 시점의 스텝으로 판정하는 규칙이라, 완료를 인지하지 못한 제어기에게만 불리하게 작용한다.
어떻게 고칠 것인가src/rrbench/execution/online.py:1136의 within_budget = steps_used <= step_budget을 "목표가 충족된 턴까지의 누적 스텝 ≤ 예산"으로 바꾼다(행의 goal_met_turn과 턴별 steps_used로 계산 가능). 또는 src/rrbench/agent/orchestrator.py:878에서 주행을 예산에 맞춰 자른다. 전자는 재실행 없이 보관 행으로 재채점할 수 있다.
전체 목록exec_cells__items.csv: root_cause=i_goal_met_but_over_step_budget (또는 lifted_or_placed_but_over_budget=1)
실제 예시 2개
recalled:find:fbe31b6ca4c0:frames-uniform
질의Pick up the pepper shaker
채점 정답pick up the pepper shaker — on the dining table in the kitchen
실제success_nobudget=true, within_budget=false.
왜 오류인가4번째 턴에 pepper shaker를 들었다(정답 충족). 그 뒤에도 계속 행동했고 마지막 navigate가 예산을 넘겨 1675/1500 스텝이 되어 실패로 채점됐다.
controller reasoning (turn 9)The pepper shaker has fallen onto the floor in the kitchen. I need to navigate to the floor next to the pepper shaker to pick it up.
[{"turn": 0, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "peppershaker_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 0.68}, "reasoning": "Navigate to the dining table in the kitchen where the pepper shaker is located."}, {"turn": 1, "controller": "pick(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The robot is at the dining table in the kitchen where the pepper shaker is located. I will command pick('pepper shaker')."}, {"turn": 2, "controller": "pick(category=pepper shaker, surface=None, room=None)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": true, "steps": 24, "reasoning": "The gripper is positioned near the pepper shaker on the dining table; issuing pick again to complete grasping and lifting."}, {"turn": 3, "controller": "pick(category=pepper shaker, surface=None, room=None)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": true, "steps": 69, "reasoning": "The pepper shaker is right in front of the gripper on the dining table. I will command the robot to pick up the pepper shaker."}, {"turn": 4, "controller": "pick(category=pepper shaker, surface=None, room=None)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": true, "steps": 18, "reasoning": "The gripper is near the target. I will issue the pick command for the pepper shaker."}, {"turn": 5, "controller": "pick(category=pepper shaker, surface=None, room=None)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The gripper is positioned above the dining table near the pepper shaker. I will execute the pick skill on the pepper shaker."}, {"turn": 6, "controller": "navigate(category=pepper shaker, surface=floor, room=kitchen)", "harness_messages": [], "grounding_mode": "room", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 4.14}, "reasoning": "The pepper shaker was knocked onto the floor. I need to navigate to the pepper shaker on the floor in the kitchen before picking it up."}, {"turn": 7, "controller": "navigate(category=pepper shaker, surface=dining table, room=kitchen)", "harness_messages": [], "grounding_mode": "instance", "nav_target": "peppershaker_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 0.7}, "reasoning": "Navigate to the dining table in the kitchen where the pepper shaker was observed."}, {"turn": 8, "controller": "pick(category=pepper shaker, surface=None, room=None)", "harness_messages": [], "executed_on": "peppershaker_1_0_6", "is_gt": true, "result_ok": false, "steps": 128, "reasoning": "The pepper shaker is visible on the floor in front of the robot/gripper. I will attempt to pick it up."}, {"turn": 9, "controller": "navigate(category=pepper shaker, surface=floor, room=kitchen)", "harness_messages": [], "grounding_mode": "room", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {"peppershaker_1_0_6": 3.96}, "reasoning": "The pepper shaker has fallen onto the floor in the kitchen. I need to navigate to the floor next to the pepper shaker to pick it up."}]
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답Visit the kitchen — remaining unit 1 of 1 || Visit the living room — remaining unit 1 of 1 || Visit the bedroom — remaining unit 1 of 1
실제resume_score.gc=1.0인데 success=false.
왜 오류인가남은 방 3곳을 모두 방문했다(3/3). 제어기는 done을 내지 않고 계속 돌았고 3405/3088 스텝으로 실패.
controller reasoning (turn 5)The kitchen and living room have been visited according to the plan. The final step is to visit the bedroom, targeting the bed.
[{"turn": 0, "controller": "navigate(category=countertop, surface=countertop, room=kitchen)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {}, "reasoning": "Step 1 is to visit the kitchen. Navigating to the countertop in the kitchen."}, {"turn": 1, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Step 1 (visit the kitchen) is complete. The next step is to visit the living room, heading towards the sofa."}, {"turn": 2, "controller": "navigate(category=bed, surface=bed, room=bedroom)", "harness_messages": [], "grounding_mode": "anchor", "nav_target": "bed_1_0_4", "dist_to_gt_m": {}, "reasoning": "Completed visiting the kitchen and living room according to the plan. Next step is to visit the bedroom."}, {"turn": 3, "controller": "navigate(category=countertop, surface=countertop, room=kitchen)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "anchor", "nav_target": "countertop_1_0_6", "dist_to_gt_m": {}, "reasoning": "The plan requires visiting the kitchen. Navigating to the countertop in the kitchen."}, {"turn": 4, "controller": "navigate(category=sofa, surface=None, room=living room)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "diningtable_1_0_7", "dist_to_gt_m": {}, "reasoning": "Completed visiting the kitchen. The next step in the plan is to visit the living room."}, {"turn": 5, "controller": "navigate(category=bed, surface=None, room=bedroom)", "harness_messages": ["skill 'navigate' requires category"], "grounding_mode": "room", "nav_target": "bed_1_0_4", "dist_to_gt_m": {}, "reasoning": "The kitchen and living room have been visited according to the plan. The final step is to visit the bedroom, targeting the bed."}]
scripts/qa/naming_rescue.py 132행이 scene card의 방 종류를 소문자로 바꿔 정답의 방 이름과 비교한다. 카드에는 "LivingRoom"이라 적혀 있어 소문자로 바꾸면 "livingroom"이 되고 정답의 "living room"과 절대 같지 않다. 그래서 정답 방이 거실인 행은 전부 "판정 불가"가 되어 구제되지 않는다.
건수이 버그만 고치면 추가로 구제되는 행: Finding 12행(GT Action Log 5), Restore 23행(GT Action Log 11). 내 엄격 규칙 기준 누락 행 중 이 이유인 것은 10/22행.
영향GT Action Log가 가장 많이 손해를 본다(Finding +5행, Restore +11행). D4의 표에서 "거실 비교 버그까지 수정" 열이 그 결과다.
어떻게 고칠 것인가132행의 비교를 공백 제거 후 비교로 바꾸거나 facts.ROOM_TYPE_NAME 매핑을 쓴다: (x.get("type") or "").lower() == room_name.lower().replace(" ", ""). 고치면 논문 수치가 바뀐다.
scripts/qa/naming_rescue.py:132
rid = [x["rid"] for x in card.get("rooms", []) if (x.get("type") or "").lower() == room_name.lower()]
한계·반례12/23행은 6개 방법 기준. bedroom·kitchen·bathroom은 영향 없다.
전체 목록qa_rows_find_restore__items.csv: r2_tight_livingroom_fixed=1 AND r2_stored=0
실제 예시 2개
find:train_188__2:q01 [GT Action Log]
질의Navigate to the egg I moved earlier
채점 정답(egg:living room,tv stand)
실제정답 가구는 거실의 SideTable. reader가 side table을 coffee table로 옮겼다고 썼다.
왜 오류인가방이 bedroom이었다면 구제되는 행이다. 정답 방이 living room이라 0점으로 남았다.
GT Action Log reader reasoningThe egg was picked up from the kitchen countertop and placed on the drawer of the side table in the living room, which corresponds to the coffee table surface category.
GT Action Log events (source@room -> destination@room)L[egg] ok countertop@kitchen -> drawer of the side table@living room () fr[2768, 8283]
GT Action Log reader reasoningThe candle was moved from the side table (coffee table) in the living room to the sofa in the living room, and was not moved again. Therefore, it is currently on the sofa in the living room, and its first location was on the coffee table in the living room.
GT Action Log events (source@room -> destination@room)L[candle] ok side table@living room -> sofa@living room () fr[6698, 9811]
빨간 상자: 촛대가 놓인 작은 흰 원형 탁자(scene card SideTable). 채점 정답 단어는 "tv stand", reader는 "coffee table".
R&R Agent의 메모리는 태그(obj, act, room, surf)가 달린 항목이고 reader는 태그로 항목을 찾는다. 방 태그에 가구 이름이 들어가거나, 답 어휘에 없는 방 이름을 쓰거나, 행동 항목에 물체 이름을 둘 이상 달아 둔 항목이 있다.
건수전체 25,986개 항목 중: 방 태그가 가구 이름("dining table") 40개, 어휘 밖 방 태그 388개. pick/place/drop 텍스트 항목 3,078개 중 물체 이름 병기 461개
영향방 태그가 틀린 항목은 방으로 걸러 찾을 때 빠진다. 물체 이름 병기는 두 이름 어느 쪽으로 물어도 검색되므로 R&R에 유리하게 작용하지만, 다른 물체의 질의에도 끌려 나온다(예: pencil 질의에 pen 항목).
어떻게 고칠 것인가권장: 태그 파서(src/rrbench/qa/tagmem.py의 엔트리 파싱)에서 room 값을 방 어휘로 검증하고, 어휘 밖이면 버리거나 "dining room" 처리 규칙을 정한다. 물체 병기는 프롬프트 규칙(tagmem_v5/v7/v11 "tag ALL plausible candidates")의 의도된 동작이므로 유지 여부를 결정하고 논문에 명시. 파서를 고치면 재-ingest 없이 읽기만 다시 돌려도 수치가 바뀔 수 있다.
한계·반례방 태그가 가구인 40개는 전부 읽어 확인했다. 병기 조합 상위: egg+irish potato 100, cup+mug 35, butter knife+knife 27, cell phone+remote control 22, pen+pencil 10. 텍스트 증거만 있다.
로봇이 물체를 집거나 놓았는데, 글로 메모리를 쓰는 두 방법(MEM^R = 매 창마다 요약문을 다시 쓰는 방법, R&R Agent = 태그 달린 항목을 쌓는 방법) 모두 그 시간 창에 해당 행동을 적지 않은 경우다. writer에게 보여 준 프레임에는 그 장면이 들어 있다.
건수재시도를 뺀 pick/place 중 둘 다 놓친 것: Finding 74/880, Restore 86/880, Resume 3/654, Routine 31/770
영향옮겨진 물체의 약 8–10%(Finding/Restore)는 어느 텍스트 메모리에도 이동 기록이 없어, 그 물체를 묻는 질의는 메모리로 답할 수 없다.
어떻게 고칠 것인가데이터나 채점 문제가 아니라 관측·기록의 한계다. 권장: 논문에 기록률 표를 한계로 명시. 대안: writer 입력 밀도를 높이거나(RRBENCH_CHUNK_WINDOW_S, RRBENCH_WRITER_FPS) 손목 카메라를 함께 주고 재측정 — 이 경우 논문 수치가 바뀐다.
한계·반례세 번째 예시(train_188__2)는 프레임에서 머그가 팔에 가려 보이지 않는다. "보이는데 안 썼다"가 분명한 것은 앞의 두 예시다. 기록 여부는 규칙 매칭이며 손으로 읽은 범위(43 컨텍스트)에서 놓친 기록은 찾지 못했다.
전체 목록memory_content__items.csv: etype in (pick, place), retry != 1, writer in (MEM^R, R&R) 둘 다 recorded == 0 (같은 family, context, event_id)
실제식탁 위의 가느다란 butter knife 옆으로 그리퍼가 내려가 집는다(0–30초 창의 2번째·3번째 프레임).
왜 오류인가집는 장면이 writer 프레임 2장에 들어 있는데 두 메모리 모두 이 창에 pick 문장이 없다.
MEM^R memory, window 0 (new text)I started in the kitchen/dining area. On the dining table, I observed a wine bottle, a tomato, bread, and a lettuce. On the nearby countertop, there was a plate, an apple, and other small items. I turned my arm away from the dining table toward the doorway and trash can.
R&R Agent text entries, window 0(no text entry with a pick)
빨간 상자 = 식탁 위 butter knife. 그리퍼가 바로 옆에 있다. (writer에게 준 프레임)
왜 오류인가놓기 전(그리퍼에 knife)과 놓은 뒤(좌석 위 knife) 프레임이 모두 writer에게 갔지만 두 메모리 모두 place 문장이 없다.
MEM^R memory, window 2 (new text)…ottle, tomato, bread, and lettuce on the dining table, and a plate and apple on the countertop. I then entered the living room, where I saw a round coffee table with a house plant and bowl, a yellow armchair, a tv stand with a television, a table lamp, and another dark armchair which I approached.
MEM^R memory, window 3 (new text)…d apple on the countertop. I entered the living room, noting a round coffee table with a house plant and bowl, a yellow armchair, a tv stand with a television, a table lamp, and a dark armchair. After checking the empty dark armchair, I turned around and headed back toward the kitchen/dining area.
R&R Agent text entries, windows 2-3#6 [text, act=navigate] Robot turned towards the dark blue armchair and floor lamp | #9 [text, act=navigate] Robot navigated from the living room into the kitchen
왜 오류인가로봇이 mug를 bed에 놓았지만 두 메모리 모두 window 16–17에 행동 문장이 없다(이 예시는 가림이 원인일 수 있다).
MEM^R memory, window 16 (new text)I started in a bedroom with a bed (pillow, teddy bear), floor pillow, desk (table lamp, laptop, basketball, knickknack, house plant, mug, vase), and dark dresser (safe, statue, pencil, red pen). I returned to the bedroom, approached the bed, and reached toward the teddy bear.
MEM^R memory, window 17 (new text)I returned to the bedroom, approached the bed, and positioned my gripper above the teddy bear.
R&R Agent text entries, windows 16-17#66 [text, act=look] Bed in bedroom holds teddy bear and pillow | #67 [text, act=look] Dresser in bedroom holds tissue box | #70 [text, act=look] Bed in bedroom holds panda teddy bear and pillow
영향이름이 다르게 적힌 이벤트는 기억은 했어도 질의와 연결되지 않는다. vase, pepper shaker, Resume의 egg는 사실상 전부 해당한다.
어떻게 고칠 것인가권장: 에셋 외형과 이름을 대조해 alias를 추가한다(갈색 egg ↔ irish potato, 노란 vase ↔ candle/knickknack, cup ↔ mug 등; 어휘 파일 src/rrbench/qa/vocab_v1.json과 채점기 canon_object). alias를 넣으면 논문 수치가 바뀐다. 대안: 논문에 물체별 이름 일치율을 한계로 보고.
한계·반례pepper shaker 예시는 물체가 매우 작다(상자 안 흰 점). remote control은 프레임에서 형태가 분명한데도 다른 이름이 적힌 경우와 작아서 구분이 어려운 경우가 섞여 있다. R&R이 두 이름을 함께 태그하면(예: remote control|cell phone) 일치로 셌다.
전체 목록memory_content__items.csv: recorded == 1 and obj_cmp == diff (gt_obj, w_obj 열). R&R의 이름 병기는 hedged == 1
왜 오류인가MEM^R은 candle, R&R은 candle(같은 물체를 뒤에서는 knickknack)로 적었다. vase로 적힌 적이 없다.
MEM^R memoryplaced the candle onto a dining chair by the dining table, then turned and began walking back past the kitchen countertop toward the bedroom.
R&R Agent entry#29 The robot placed the candle on the chair. [obj tags: candle]
R&R Agent entry (same object, later pick)#49 The robot picked up the yellow knickknack from the chair
물체를 놓거나 집은 가구는 프레임에 보이고 writer도 그 가구를 가리키지만, 부르는 이름이 GT(그리고 채점 어휘)와 다르다. 대표적으로 GT "dining table"을 desk로, laundry basket을 trash can으로, side table(uid 접두사 stand_)을 dresser/coffee table/desk로 적는다.
영향목적지 오답의 대부분이 장면을 못 본 것이 아니라 가구 분류 이름 차이다. Resume에서 R&R만 맞는 것은 tagmem_v7 프롬프트에만 있는 이름 힌트("side table", "laundry basket") 때문이라 방법 간 비교가 공정하지 않다.
어떻게 고칠 것인가권장: (1) 채점 어휘에 alias 추가 또는 GT 가구 이름을 scene card category 기준으로 재부여(desk/dining table/side table 구분), (2) 이름 힌트를 모든 writer 프롬프트에 동일하게 주거나 모두 뺀다(src/rrbench/prompts/tagmem_v7.txt 마지막 문단). 둘 다 논문 수치가 바뀐다.
한계·반례이미지로 본 목적지 불일치 10건 중 7건이 이 유형이었다(memory_content__image_checks.csv). MEM^R의 가구 이름은 문장에서 규칙으로 뽑은 것이라 일부 추출 오류가 있다.
전체 목록memory_content__items.csv: etype == place and recorded == 1 and surf_cmp == diff (gt_surf, gt_surf_graded, w_surf 열); pick 출발지는 etype == pick
실제 예시 4개
restore:train_2277__2:s3.place1
채점 정답place: salt shaker / dining table / living room (frames 11864–12263, 475–491s, outcome=ok)
실제작은 흰 접이식 탁자 위에 물체를 놓는다. GT 이름은 dining table.
왜 오류인가두 writer 모두 desk로 적었다. 채점 어휘에서 desk와 dining table은 다른 답이다.
MEM^R memoryplaced the salt shaker on the desk.
R&R Agent entry#69 Robot placed salt shaker on desk [obj tags: salt shaker]
왜 오류인가MEM^R은 trash can으로 적었다. R&R은 laundry basket — tagmem_v7 프롬프트가 "a plastic laundry hamper or basket … is a laundry basket; do not call [it] a … trash can"이라고 알려 주기 때문이다.
MEM^R memory, window 2I then navigated past the bed to a trash can on the floor, dropped the irish potato inside it, and turned around to face the rest of the room.
R&R Agent entry#8 robot placed irish potato into laundry basket
빨간 상자 = GT "laundry basket". 오른쪽 아래 손목 카메라에는 통 안쪽과 들고 있는 물체가 보인다.
MEM^R은 30초 창마다 요약문 전체를 다시 쓴다. 어느 창에서 분명히 적었던 pick/place가 이후 버전에서 빠지거나 다른 서술로 바뀌어 최종 메모리에 남지 않는다. 앞쪽 이벤트일수록 많이 사라진다.
건수기록된 pick/place 중 최종 메모리에 행동 문장이 없는 것: Finding 144/797, Restore 132/789, Resume 93/630, Routine 280/753. 같은 문장에 물체와 가구가 위치 서술로라도 남은 것을 빼면 35, 41, 14, 59
영향reader는 최종 메모리만 본다. Finding 앞 1/3 구간 이벤트의 23.5%가 행동 기록으로는 남지 않는다(뒤 1/3은 10.9%).
어떻게 고칠 것인가방법(MEM^R) 자체의 특성이므로 데이터 수정 대상이 아니다. 권장: 논문에 구간별 소실률 표를 제시. 대안: 재작성 프롬프트(src/rrbench/prompts/rollforward_v3b.txt)는 이미 "not by throwing events away"라고 지시하고 있어 프롬프트 수정 효과는 불확실하다.
한계·반례"사라짐"은 규칙이 뽑은 행동 문장 기준이다. 요약 문장으로 바뀐 경우(예: "moved X from A to B")는 남은 것으로 처리했다.
전체 목록memory_content__items.csv: writer == MEM^R and recorded == 1 and retained_final == lost (lost_at_win = 사라진 창, state_in_final = 위치 서술로 남았는지)
실제window 0과 1에는 cup을 집었다는 문장이 있고 window 2부터 없다. 최종 메모리(window 23)에는 cup이 식탁 위 "cups"로만 남는다.
왜 오류인가로봇이 cup을 집어 옮기다 떨어뜨린 이벤트가 60초 만에 메모리에서 사라졌다.
MEM^R memory, window 0I started in the dining room near the dining table, which had a house plant, vase, bowl, spoon, cups, and other items on it. I moved closer to the dining table and picked up a cup.
MEM^R memory, window 1I started in the dining room near the dining table, which had a house plant, vase, bowl, spoon, and cups on it. I picked up a cup, turned to look toward the living room (which contains a sofa and tv stand), and then turned back toward the dining area where an open safe sits on the floor.
MEM^R memory, window 2 (cup pick gone)I started in the dining room by the dining table, which holds a house plant, vase, cups, spoon, apple, pen, and an irish potato. Nearby on the floor is an open safe, and the kitchen countertop and living room (with sofa and tv stand) are visible nearby. After moving around the dining table, I picked
MEM^R final memory (window 23), first sentencesI started in the dining room by the dining table (holding a house plant, vase, cups, spoon, apple, pen, and an irish potato; open safe on floor nearby). I picked up the irish potato and placed it onto the living room dresser (holding a vase, credit card, and watch; tv stand, sofa, and coffee table w
실제window 2에는 spatula를 dresser에 놓았다고 적혀 있다. window 3에서 "past a dresser"로 바뀌고, 최종 메모리(window 10)는 "explored … and returned it to the kitchen countertop"만 남긴다.
왜 오류인가spatula가 한동안 dresser 위에 있었다는 사실(이전 위치를 묻는 질의의 답)이 최종 메모리에 없다.
MEM^R memory, window 2I picked up the spatula from the countertop, carried it through the doorway into the adjoining room, and placed it on the dresser next to a desk.
MEM^R memory, window 3I picked up the spatula, carried it into the adjoining room past a dresser and a desk (which had a vase and a book), and also saw a sofa with a laptop in the living room area.
MEM^R final memory (window 10)I saw a spatula, two tomatoes, an apple, a toaster, a fork, a knife, a bottle, a vase, and a coffeemaker on the kitchen countertop. I picked up the spatula, explored the dining/living areas, and returned it to the kitchen countertop.
원자료 필드
recorded_window
2
lost_at_window
3
n_windows
11
final_contains_dresser_placement
False
MEM^R: 기록된 pick/place가 최종 메모리에서 행동 문장으로 사라진 비율 (녹화 구간 3등분)
패밀리
앞 1/3
중간 1/3
뒤 1/3
전체
Finding
66/281 (23.5%)
50/259 (19.3%)
28/257 (10.9%)
144/797 (18.1%)
Restore
57/277 (20.6%)
48/259 (18.5%)
27/253 (10.7%)
132/789 (16.7%)
Resume
53/210 (25.2%)
32/244 (13.1%)
8/176 (4.5%)
93/630 (14.8%)
Routine
107/244 (43.9%)
108/262 (41.2%)
65/247 (26.3%)
280/753 (37.2%)
F5Resume: 컷 시점 메모리의 반복 횟수가 실제와 다름결정 필요
Resume 질의는 "몇 번 했고 몇 번 남았는가"를 묻는다. 중단 시점(컷)의 메모리에서 버튼 누름·물체 옮김 횟수를 세어 GT 완료 횟수와 비교했다. 버튼 누름은 3회 이상이면 거의 맞지 않는다.
영향횟수가 틀리면 남은 횟수 답이 틀린다. MEM^R은 주로 적게 세고(press 과소 21건), R&R은 더 세는 경우가 있다(put_in_container 과다 17건).
어떻게 고칠 것인가관측·기록의 한계로 데이터 수정 대상이 아니다. 권장: 논문에 횟수별 정확도 표를 제시하고 press 3회 이상 구간을 별도로 보고. 참고로 R&R reader는 하네스가 세어 주는 ledger를 받으므로, 공정성을 위해 다른 방법에도 같은 집계를 주거나 R&R에서 빼는 결정이 필요하다.
한계·반례MEM^R 횟수는 문장에서 규칙으로 뽑았다("N times", "twice", "a third time"). 물체 옮김 횟수는 가장 많이 놓인 물체 이름 기준이라 같은 종류 과제가 둘이면 섞일 수 있다(other_task_same_class_possible 열). 이 항목은 텍스트 증거만 있고 캡처는 넣지 않았다(누름 횟수는 정지 화면으로 확인할 수 없다).
전체 목록memory_content__resume_cut_counts.csv: task_type == press_button and gt_done >= 3 (memr_count, rr_count, memr_diff, rr_diff 열)
실제 예시 3개
resume:train_6325__2000:cut_05
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답컷(frame 2768) 시점까지 실제 press 4회 (GT done=4); 명령: "Press the button on the microwave five times."
실제컷 시점까지 microwave 버튼을 4회 눌렀다. MEM^R은 횟수 없이 "interacted with the microwaveoven"만 남겼고, R&R은 press 항목이 6개(n=6까지)다.
왜 오류인가MEM^R은 0회로, R&R은 6회로 읽힌다. 실제는 4회.
MEM^R memory at the cut (press-related sentences)I previously went to the kitchen countertop where I saw a microwaveoven, bottle, apple, bowl, lettuce, toaster, sponge, and soapdispenser, and interacted with the microwaveoven.
R&R Agent press entries up to the cut#2 (t=0s, n=None) The robot pressed a button on the microwave oven. | #4 (t=30s, n=2) The robot pressed a button on the microwave oven. | #5 (t=30s, n=3) The robot pressed a button on the microwave oven. | #6 (t=30s, n=4) The robot pressed a button on the microwave oven. | #7 (t=30s, n=5) The robot
원자료 필드
cut_frame
2768
gt_done
4
memr_count
0
rr_count
6
rr_max_n_tag
6
gt_press_frames
334-585, 586-837, 838-1089, 1090-1341
resume:train_8325__2000:cut_09
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답컷(frame 12238) 시점까지 실제 press 3회 (GT done=3); 명령: "Press the button on the dryer five times."
실제컷 시점까지 dryer 버튼을 3회 눌렀다. MEM^R은 "operated the washing machine knob" 한 번, R&R은 4개 항목.
왜 오류인가MEM^R 1회, R&R 4회로 둘 다 3회가 아니다. MEM^R은 가전 이름도 washing machine으로 적었다.
MEM^R memory at the cut (press-related sentences)I walked into the bathroom/laundry room containing a washing machine, toilet, sink, and plunger, and operated the washing machine knob.
R&R Agent press entries up to the cut#41 (t=360s, n=1) The robot pressed the knob on the clothes dryer. | #43 (t=360s, n=2) The robot pressed the knob on the clothes dryer again. | #45 (t=360s, n=3) The robot pressed the knob on the clothes dryer a third time. | #47 (t=390s, n=4) The robot pressed the knob on the clothes dryer.
원자료 필드
cut_frame
12238
gt_done
3
memr_count
1
rr_count
4
rr_max_n_tag
4
gt_press_frames
9032-9283, 9284-9535, 9536-9787
resume:train_1843__2000:cut_06
질의You were interrupted earlier. Go back and finish what you were doing.
채점 정답컷(frame 4299) 시점까지 실제 press 3회 (GT done=3); 명령: "Press the button on the washing machine five times."
실제컷 시점까지 3회 눌렀다(2회 → 심부름 → 1회). 두 메모리 모두 2회만 적었다.
왜 오류인가심부름 전의 연속 2회를 1회로 적었다. R&R은 첫 항목에서 가전을 "safe"로 적었다.
MEM^R memory at the cut (press-related sentences)I pressed the central control knob of a black clothes dryer once. Afterwards, I returned to the clothes dryer and pressed its central knob a second time.
R&R Agent press entries up to the cut#3 (t=0s, n=1) Robot pressed the dial on the safe | #15 (t=60s, n=1) Robot pressed the button dial on the black washing machine
원자료 필드
cut_frame
4299
gt_done
3
memr_count
2
rr_count
2
rr_max_n_tag
1
gt_press_frames
208-404, 405-601, 2138-2334
Resume: 컷 시점 메모리의 횟수가 GT와 정확히 같은 비율
과제
GT 완료 횟수
MEM^R 정확
R&R 정확
press_button
1–2회
23/40 (57.5%)
32/40 (80.0%)
press_button
3회 이상
1/9 (11.1%)
2/9 (22.2%)
move_objects
1–2회
24/32 (75.0%)
28/32 (87.5%)
move_objects
3회 이상
9/12 (75.0%)
11/12 (91.7%)
put_in_container
1–2회
33/41 (80.5%)
27/41 (65.9%)
put_in_container
3회 이상
17/26 (65.4%)
20/26 (76.9%)
F6Restore: 로봇 없이 옮겨진 물체 — 전·후 위치는 적혀 있어도 "옮겨졌다"는 인식이 없음결정 필요
Restore에는 로봇이 건드리지 않았는데 녹화 도중 다른 곳으로 옮겨지는 물체(distractor)가 있다. 메모리가 옮겨지기 전 위치와 옮겨진 뒤 위치를 각각 적은 경우에도, 두 기록을 연결해 "이 물체가 옮겨졌다"고 적은 사례는 찾지 못했다.
건수옮겨진 물체 148개 중 전·후 위치(가구)가 모두 기록된 것: R&R 32, MEM^R 35. 원위치만: R&R 70, MEM^R 58. 현위치만: 64, 60. MEM^R 최종 메모리에서 변화를 뜻하는 표현이 규칙에 걸린 것 3건 — 읽어 보니 3건 모두 해당 물체의 이동을 말한 것이 아니었다
영향"원래 있던 곳으로 되돌려라"는 질의에 답하려면 같은 물체의 전·후 위치를 연결해야 한다. 148개 중 3/4 이상은 한쪽 위치가 아예 없고, 둘 다 있는 경우에도 같은 종류 물체가 두 곳에 있는 것처럼 적힌다.
어떻게 고칠 것인가데이터 수정 대상이 아니라 과제 난이도·방법 한계다. 권장: 논문에 "전·후 모두 기록 32–35/148"을 Restore distractor 질의의 상한 근거로 제시. 대안: writer 프롬프트에 "이전에 본 위치에서 사라진 물체를 기록하라"는 지시를 추가하고 재측정(수치 변경).
한계·반례요청받은 "변화를 적은 사례 1개"는 제시하지 못했다. 규칙(previously / no longer / now holds 등)에 걸린 3건(train_2159__2의 cup·irish potato, train_6998__2의 salt shaker)을 모두 읽었으나 다른 물체나 로봇 자신의 이동에 관한 문장이었다. MEM^R 쪽 위치 판정은 같은 문장 안에 물체와 가구가 함께 나오는지로 본 것이라 느슨하다.
전체 목록memory_content__static_objects.csv: kind == restore_distractor; which == origin / current 별 surf_ok, MEM^R의 change_words
실제 예시 2개
restore:train_3655__2:spray bottle
질의Pick up the spray bottle and place it in or on where it first was
실제초록 atomizer가 79초에는 흰 식탁 위에, 590초에는 검은 선반 위에 있다. GT상 frame 5235–7525 사이에 로봇 없이 옮겨졌다.
왜 오류인가최종 메모리에 두 위치가 다 적혀 있지만 서로 다른 문장에 "an atomizer"로 따로 나오고 옮겨졌다는 말이 없다.
MEM^R final memory (sentence 1)From the dining table (holding a bowl, bread, bottles including a wine bottle, an atomizer, and a knife), I picked up a cup and placed it into an open drawer of the bedroom dresser.
MEM^R final memory (sentence 2)I moved one remote control to a kitchen shelf next to a statue (near counters with a toaster, tomato, boiler, soapdispenser, spoon, sponge, bread, and a house plant).
R&R Agent image entry, frame 4750Objects on the dining table including wine bottle, atomizer, bread, bottle, salt shaker, and cup [room=['kitchen'], surf=['dining table']]
R&R Agent image entry, frame 14749Kitchen shelf with a statue and a green atomizer spray bottle [room=['kitchen'], surf=['shelf']]
실제흰 식탁 위에 있던 작은 shaker가 나중에는 소파 위 knife 옆에 있다. GT상 frame 4745–9650 사이에 옮겨졌다.
왜 오류인가R&R은 두 시점 모두 "shaker"를 적었지만(방 태그는 bedroom → living room으로 달라짐) 이동을 적은 항목이 없다. MEM^R 최종 메모리는 salt shaker를 식탁에만 두고 소파에는 "a knife and bottle"이라고 적었다.
MEM^R final memoryIn the bedroom (containing an armchair, a sofa holding a knife and bottle, a bed holding a teddy bear, laptop, and pillow, a dresser holding a house plant, and a tv stand holding a desktopcomputer), I saw a dining table holding a bowl, CD, watch, cell phone, and salt shaker, and picked up a remote c
R&R Agent image entry, frame 749Dining table with CD, watch, bowl, cell phone, remote control, and shaker [room=['bedroom'], surf=['dining table']]
R&R Agent image entry, frame 23249Living room sofa with knife and shaker bottle [room=['living room'], surf=['sofa']]
메모리에 적힌 pick/place/open/close 중 그 시간대에 대응하는 GT 이벤트가 없는 것들이다. 대부분은 무(無)에서 지어낸 것이 아니라 같은 순간의 반대 행동을 잘못 적은 것이다: 물체를 놓는 순간을 "집었다"로, 닫는 순간을 "열었다"로 적는다.
건수GT에 없는 행동 기록: Finding MEM^R 46건 · R&R 51건, Restore 47 · 49, Resume 36 · 37, Routine 27 · 42. 그중 반대 종류 GT 이벤트가 ±1 창 안에 있는 것: Finding 33/46 · 41/51, Restore 34/47 · 40/49, Routine 25/27 · 41/42
영향놓은 물체를 "집어 갔다"고 적으면 그 물체의 현재 위치가 반대로 기억된다. 존재하지 않는 물체 이동이 메모리에 생긴다.
어떻게 고칠 것인가데이터 수정 대상이 아니다. 권장: 논문에 이 유형을 관측 한계(30초당 4프레임, 그리퍼에 가려 잡은 물체가 안 보임)의 결과로 기술. 대안: writer 입력에 손목 카메라를 추가(RRBENCH_WRITER_WRIST / RRBENCH_WRIST_INSET)하고 재측정 — 수치 변경.
한계·반례label == halluc의 정밀도는 20건씩 읽어 MEM^R 15/20, R&R 18/20이다(나머지는 요약 문장 재서술이나 두 창 늦은 기록). 재시도 사이에 물체를 잠깐 내려놓는 등 GT에 세그먼트가 없지만 실제로 일어났을 수 있는 행동도 여기에 포함된다.
전체 목록memory_content__extra_mentions.csv: label == halluc; 뒤바뀜은 opposite_class_event_nearby == 1
실제로봇이 key chain을 침실 dresser 위(파란 책 옆)에 내려놓는다. 집은 것은 없다.
왜 오류인가두 writer 모두 놓는 장면을 "dresser에서 CD를 집었다"고 적었다. place는 기록되지 않았고 없는 pick이 생겼다.
MEM^R memory, window 20 (new text)In the bedroom, there is a dining table (box, house plant), a chair (holding an irish potato), a baseball bat on the floor, a dresser (holding a book; previously held a CD), and a desk (teddy bear; drawer contains an irish potato). I then went to the bedroom dresser and picked up the CD from it.
R&R Agent entries, window 20#79 [text, act=pick] Robot picks up CD from dresser | #80 [image, act=pick] Robot picking up CD from dresser
실제분홍 cell phone을 나무 탁자 위에 놓는다(다른 phone 하나가 이미 놓여 있다).
왜 오류인가R&R은 같은 창에 "gripped the pink cell phone on the desk"(act=pick)를 적었고 MEM^R은 "placed … but then reached down and grasped the pink cell phone again"이라고 적었다. 다시 집은 GT 이벤트는 없다.
MEM^R memory, window 14 (new text)After placing one remote control onto the dining table and a black cell phone onto the desk in the adjacent room, I placed a pink cell phone onto the desk, but then reached down and grasped the pink cell phone again.
R&R Agent entries, window 14#62 [image, act=pick] Robot gripping the pink cell phone on the desk | #63 [text, act=pick] Robot gripped the pink cell phone on the desk.
왜 오류인가R&R은 "Robot picked up the atomizer from the sofa"(act=pick)로 적고 이 프레임을 "grasping a blue atomizer on the black sofa"로 저장했다. MEM^R은 같은 창에 "placed it on the sofa"로 맞게 적었다.
MEM^R memory, window 10 (new text)Then, I picked up an apple from the dining table and placed it on the side table. Afterwards, I picked up a bottle from the dining table and placed it on the sofa.
R&R Agent entries, window 10#40 [text, act=pick] Robot picked up the atomizer from the sofa. | #41 [image, act=pick] Robot gripper grasping a blue atomizer on the black sofa
빨간 상자 = 소파 위에서 병을 쥔 그리퍼. GT는 place 구간(frame 7825–8224).
Pick up the soap bottle from the dining table and place it in or on the sofa
GT에 없는 행동 기록 수, 그중 반대 종류의 GT 이벤트가 ±1 창 안에 있는 것
패밀리
MEM^R
R&R
Finding
33/46
41/51
Restore
34/47
40/49
Resume
14/36
24/37
Routine
25/27
41/42
F-restore-notmoved진짜 기억 실패의 전형: "이 물체는 옮겨지지 않았다"문서
Restore에서 가장 큰 오답 원인. 물체가 옮겨졌는데 reader가 옮겨진 적 없다고 판단해 현재 위치와 원래 위치를 같은 곳으로 답한다. 이름·정답 문제와 달리 채점을 바꿔도 남는 실패다.
건수Restore 637행(전체 오답의 약 33%): 제3의 한 곳으로 답 272, 현재 위치는 맞고 원래=현재 191, 원래 위치는 맞고 현재=원래 174. 방법별 GT Action Log 36, Uniform Frames 169, MEM^R 135, MemER^R 157, R&R Agent 140.
영향로봇이 직접 옮기지 않은(재배치된) 물체 질의에서 특히 많다: 단일 distractor 196질의에서 방법당 67–75행.
어떻게 고칠 것인가고칠 오류가 아니라 벤치마크가 재려는 실패다. 다만 재배치 이동이 30초당 4장 샘플에 실제로 보이는지는 별도 확인이 필요하다.
실제wine bottle은 로봇이 아닌 재배치로 부엌 countertop에서 화장실 변기 위로 옮겨졌다.
왜 오류인가메모리에는 처음 위치만 있고 이동이 없다. reader는 "옮겨지지 않았다"고 보고 현재 위치를 처음 위치로 답했다. 이름이나 정답 문제가 아닌 실제 기억 실패다.
MEM^R reader reasoningThe wine bottle was first observed on the kitchen countertop and was not moved during the episode, so it remains on the kitchen countertop.
MEM^R memory (written by the writer)M[wine bottle]: I moved the knife to the kitchen countertop (which held a wine bottle, butter knife, statue, atomizer, mug, house plant, toaster, and vase).
왜 오류인가현재 위치는 맞혔지만 직전 위치도 같은 곳이라고 답했다(이동 전 위치가 메모리에서 연결되지 않음).
R&R Agent reader reasoningAccording to the latest memory entry at t=390s (IMG 44), the key chain is currently located on the tv stand in the living room. The PREV-HOP record indicates that just before its last change at t=360s (IMG 41), it was also on the tv stand in the living room.
R&R Agent memory entriesT[key chain] #0 tex f=None t=0 act=pick room=['living room'] surf=['dining table']: Robot picked up key chain from dining table / T[key chain] #2 ima f=250 t=0 act=look room=['living room'] surf=['dining table']: Key chain on dining table near book, bowl, and soapdispenser / ... +13 more entries
원자료 필드
method
R&R Agent
parsed_answer
key chain:living room,tv stand/living room,tv stand
영향Restore는 575질의 중 253개를 로그로 풀 수 없어 오라클 상한이 약 56%다. 이름을 인정한 채점에서는 Finding에서 MemER^R(.515)와 R&R Agent(.582)가 GT Action Log(.492)를 넘는다.
어떻게 고칠 것인가로그 생성(src/rrbench/qa/memory_strategy.py textlog_lines_v2)에 실패 후 놓인 가구를 쓸지 결정하고, 논문·문서에서 GT Action Log를 "상한"이 아닌 "로봇 행동만 아는 기준선"으로 설명한다.
한계·반례캡처 없음(텍스트 증거).
전체 목록qa_rows_find_restore__items.csv: strategy=textlog AND cause_group in (n_log_design, e_abstain_log_design)
실제 예시 3개
find:train_9909__2:q02 [GT Action Log]
질의Pick up the mug I moved earlier
채점 정답(mug:bathroom,toilet)
실제mug는 화장실 변기 위에 놓였다. 로그에는 "서랍에 넣으려다 실패"만 있고 어디에 놓였는지 없다.
왜 오류인가reader는 프롬프트의 "떨어진 물체는 바닥에 있다"를 따라 floor로 답했다. 오라클 로그로도 풀 수 없는 질의다.
GT Action Log reader reasoningThe attempt to place the mug in the dresser drawer in the bathroom failed, causing the mug to be dropped on the floor in the bathroom.
GT Action Log events (source@room -> destination@room)L[mug] failed dining table@kitchen -> drawer of the dresser@bathroom () fr[7117, 12738]
System prompt (Finding)Use "floor" if it is lying on the floor rather than on a surface — an object that was dropped ends up there.
GT Action Log reader reasoningThe spoon was being moved to the desk drawer in the bedroom when the attempt failed, causing it to be dropped onto the floor in the bedroom.
GT Action Log events (source@room -> destination@room)L[spoon] failed countertop@kitchen -> drawer of the desk@bedroom () fr[4408, 9672]
질의Pick up the pot and place it in or on where it first was
채점 정답(pot:bedroom,bed/kitchen,dining table)
실제pot은 로봇이 아닌 재배치로 부엌 식탁에서 침실 침대로 옮겨졌다. 로그에는 pot이 아예 없다.
왜 오류인가로그에 없는 물체라 현재 화면만 보고 "옮겨진 기록이 없다"고 답했다. Restore distractor 253질의 전부가 이 조건이다.
GT Action Log reader reasoningThe pot is currently visible resting on the bed in the bedroom. Since there is no record of it having moved during the episode, its original location is also on the bed in the bedroom.
GT Action Log events (source@room -> destination@room)L[pot]: (not in log)