Index
2026-09-10 — Research

GaP · Harness VLA · Show-Harness · ENPIRE · GPT-6 Astra가 FurnitureBench 삽입 병목을 풀 수 있는가

FurnitureBench | 대안 접근법 문헌조사 + 벤치마크 코드 대조 + 자기수정

TL;DR

5 mm
조립 위치 공차
19.9°
축당 회전 공차
0.375
pi0.5 조건부 삽입 SR
2/4
평가 예산 버그 가구 수
5개
조사한 방법론

1 배경 / 목적

LingBot-VA all_low 라운드가 one_leg 0.133 (pi0.5 0.36 대비 미달)로 종료된 직후, 사용자가 최신 방법론 Graph-as-Policy(GaP)와 Harness VLA가 같은 문제(FurnitureSim 조립, 특히 정밀 삽입+나사 체결)를 커버할 수 있는지 확인을 요청했다. 목적은 "논문 요약"이 아니라 우리 코드·데이터와 직접 대조해 실제로 통할지 판단하는 것. 대화가 진행되며 조사 범위가 GPT-6 Astra API, Show-Harness, ENPIRE까지 확장됐고, 최종적으로 사용자가 초기 결론에 "다시 생각해봐"라고 반박하면서 가정 자체를 코드로 재검증하는 라운드가 이어졌다.

기존 상태: LingBot 트랙은 종료됐지만 pi0.5(0.36)도 삽입 단계에서 막혀 있다. "다른 방법을 새로 학습시키지 않고 기존 정책/스크립트를 감싸거나 대체해서 이 병목을 넘을 수 있는가"가 핵심 질문이었다.

2 작업 내용

2.1 벤치마크가 실제로 요구하는 값 (코드 확인)

항목값출처
조립 위치 공차 (부품 간 상대 pose, 축별)[10, 5, 10] mmconfig.py:94 assembled_pos_threshold
조립 회전 공차 (3축 각각)cos ≥ 0.94 = 축당 19.9°furniture.py:27 ori_bound, pose.py:102 is_similar_rot
step 예산 (기본, 가구별)one_leg 600 / lamp 1000 / round_table 1300 / cabinet 1500sim_config.py:19 scripted_timeout
요구 동작grasp → transport → insert(5 mm 정렬) → screw(반복 손목 회전 + 재파지)
평가 하니스 버그 발견: 우리는 4가구 전부 max_steps=1000으로 평가해 왔다. 기본 예산 대비 one_leg 167%(여유) / lamp 100% / round_table 77% / cabinet 67% — 다부품 가구의 기존 0/10 결과에는 예산 부족이 섞여 있어 재평가 전까지 어떤 방법론 비교도 오염된 상태다.

2.2 pi0.5 실패 구조 분석 (재시도 계열 예측의 근거)

항목값
phase 3(다리를 base 근처까지) 도달48/50
도달 후 조건부 삽입 성공률0.375
재시도가 독립이라면 2/3/4회 기대값0.609 / 0.756 / 0.847
실패 에피소드 leg_base_dist_min0.072
성공 에피소드 leg_base_dist_min (=조립 완료 시 기하 거리)0.090
결정적 관찰: 실패가 성공보다 더 가깝다(0.072 < 0.090). 즉 실패는 "아깝게 빗나감"이 아니라 다리가 base 옆/아래에 눕는 다른 배치로 끝난다 — 파지 자세 유지 재시도의 독립성 가정이 깨진다는 뜻(재파지가 있어야 독립에 가까워짐).

2.3 5개 방법론 조사 요약

GaP
자연어→스킬그래프 컴파일, sim 정제, 데모 불필요. 성공률 미공개
Harness VLA
frozen VLA를 분석 프리미티브로 감쌈. LIBERO-Pro 50→82.4%. contact-rich 미개선
GPT-6 Astra
RoboCurve: 거친조작 95%, 좁은공차 10% 정체(Fable과 동일)
Show-Harness
이산 액션 토큰, step 1~2cm/15°. 2cm→1cm에서 60%→82%(step 의존)
ENPIRE
코딩 에이전트가 정책·보상 코드 반복 개선. pin insertion 13%→99%(pass@8)

2.4 자기수정 — scripted agent 코드를 직접 읽었다

furniture_bench/furniture/parts/leg.py 확인 결과:

insert_wait : ground-truth pose로 고정 목표점 계산 → 서보 insert_release: 그리퍼를 열어 다리를 떨어뜨림. 들어갔는지 확인 없음 insert : "Dummy transition state for skill complete." (주석 원문) screw : 고정 -95도 손목 회전 1회 + 5mm 하강, 각도허용 0.3rad → 바로 release grep torque/force/retry/search/spiral/contact 사용 : 0건
1차 판단 오류: "스킬 그래프 접근의 천장 = scripted agent 0.37~0.53"이라고 봤던 것이 틀렸다. 이 코드는 검증도 재시도도 힘 피드백도 없는, 2023년에 데모 생성용으로 한 번 쓰고 아무도 반복 개선하지 않은 코드의 성공률일 뿐 접근 계열의 한계가 아니다. ENPIRE가 하는 일이 정확히 이런 코드를 실행 피드백으로 반복 개선하는 것이다.

두 번째 오류: RGB 학습 정책의 인식 난이도를 코드 기반 접근에 그대로 적용했다. 5 mm 정렬이 어려운 건 224×224 RGB에서 pose를 추정하는 학습 정책에게다. sim의 코드 기반 접근은 parts_poses(정확한 부품 pose), joint_torques(7), clean depth를 그대로 쓸 수 있어 인식 난이도가 사라진다.

3 결과 (예측 비교)

방법1차 예측 (one_leg)수정 예측 (one_leg)수정 근거
GaP0.37~0.530.5보다 상당히 위, 불확실sim 정제 루프가 실제 자동인지, force-feedback 삽입 스킬을 사람이 써야 하는지가 변수(beta, 수치 미공개)
GPT-6 Astra 직접 제어~0~0 (변화 없음)절대 ee pose 웨이포인트 + LLM 20회 예산 — 나사 체결을 표현 불가
Harness VLA0.45~0.550.6~0.8분석 프리미티브의 재파지+재배치가 독립성을 만듦: 조건부 삽입 0.375 × 3~4회 재시도 → 0.75~0.85, 보수적으로 0.6~0.8
Show-Harness~0≤0.2 (유지)문제는 반복 부재가 아니라 행동 인터페이스(1~2cm/15° 이산 open-loop 스텝) 자체 — 접촉 중 jam 대응 불가
ENPIRE 계열0.7~0.9 pass@k, pass@1 미지0.9+ (수 시간 반복 내)시작점이 open-loop 0.5 스크립트, sim에 정확한 상태·무료 리셋·병렬·정확한 검증(is_assembled_idx) 전부 있음 → 검증→재파지 재시도, 토크 스파이크 jam 감지, screw 반복만 넣어도 크게 상승

다부품(lamp/round_table/cabinet): 시퀀싱은 스크립트가 처리하므로, 삽입당 신뢰도가 0.5→0.9+가 되면 4회 삽입 태스크 성공률은 0.06→0.65~0.8로 뛴다(예산은 조정 가능한 파라미터).

GPT-6 Astra를 "코딩 에이전트" 역할로 넣었을 때 (ENPIRE 루프 대체)

지표GPT-6 Astra비교 대상차이
Deep SWE (코딩)74.1%Claude Opus 5: 73.7%+0.4 (동급)
로봇 태스크 출력 토큰2.1kFable 5.1: 12.9k6.2× 적음
로봇 태스크 소요 시간2.5분Fable 5.1: 6.8분2.7× 빠름
로봇 태스크 비용/run$0.94Fable 5.1: $2.122.3× 저렴
예측: 반복 속도/비용 2~3배 개선(ENPIRE 병목이 정확히 에이전트 대기 시간). 최종 성능 천장은 거의 안 바뀜 — ENPIRE 원 논문에서 Claude Code·Codex가 sim에서 동일하게 95%에 도달(코딩 능력이 동급이면 천장도 같음). 단 실물 Push-T에서는 3개 중 2개 에이전트가 완전 실패해 "어려운 태스크에서는 에이전트 선택이 pass/fail을 가른다"는 반례도 있음.

4 Takeaway

의미

1차 결론("넷 중 셋은 이 벤치마크에서 pi0.5 0.36을 못 넘길 가능성이 높다")은 방법론적 오류에서 나온 잘못된 결론이었다. 반복 없는 open-loop 스크립트의 성공률을 "접근 계열의 천장"으로 잘못 해석했고, RGB 학습 정책의 인식 난이도를 상태에 접근 가능한 코드 기반 접근에 그대로 적용했다. 사용자의 "다시 생각해봐" 한 마디가 이 두 오류를 드러냈다 — 1차 조사에서 논문 수치만 비교하고 우리 스크립트 코드를 실제로 읽지 않은 게 원인이었다.

재분석 후 실질적 결론: 이 조사에서 가장 값진 발견은 "어떤 최신 정책을 새로 학습할까"가 아니라 "우리 데모 생성기(scripted agent) 자체가 한 번도 반복 개선되지 않은 2023년 코드"라는 사실이다. ENPIRE 방식으로 scripted insert/screw를 0.5→0.9+로 끌어올리면 (a) 수집 수율 2배, (b) 삽입·나사 구간 데모 품질 상승 → pi0.5·LingBot 둘 다의 병목(RGB에서 삽입 학습)이 데이터 쪽에서 완화된다. 이건 pi0.5 트랙과 경쟁하는 새 트랙이 아니라 상류(upstream) 개선이다.

확정된 것: Show-Harness의 이산 행동 인터페이스는 이 벤치마크의 5 mm 공차와 구조적으로 안 맞는다(step 크기 의존이 자체 데이터로 입증됨). Astra는 회전율은 올리지만 천장은 안 바꾼다는 것도 ENPIRE 데이터로 뒷받침된다.
불확실한 것: ENPIRE·GaP·Harness VLA 셋 다 FurnitureBench에서 실측된 적이 없다 — 전부 코드 대조 기반 예측이며, 실제 실행 전까지는 확정할 수 없다.

5 Next Steps

미해결 한계

어떤 방법론도 아직 FurnitureBench에서 실측되지 않았다 — 전부 코드/논문 대조로 도출한 예측치. round_table·cabinet 평가는 예산 버그(1000 step, 기본 1300/1500 필요)로 오염돼 있어 재평가 전까지는 다부품 성능 자체를 신뢰할 수 없다. ENPIRE·GaP 계열 도입은 에이전트 루프 구축 비용이 커서 우선순위 조정이 필요하다.

다음 작업 (우선순위 순)

1. 저비용·즉시: pi0.5 b128 40k에 재시도 래퍼(parts_poses 기반 삽입 실패 감지 → 재정렬 → 재시도, max_steps 1500)만 붙여 one_leg 50ep 재평가. Harness VLA에서 가져올 유일한 실질 요소를 재학습 없이 검증(1 GPU 몇 시간).

2. 평가 하니스 버그 수정 선행: round_table(1300)·cabinet(1500)을 기본 예산으로 재평가 — 현재 0/10에는 예산 부족이 섞여 있어 다른 어떤 비교의 전제도 될 수 없음.

3. 중기: ENPIRE 방식(코딩 에이전트가 정책 코드를 실행 피드백으로 반복 개선)을 scripted insert/screw 스킬에 적용. sim이라 리셋 무료·병렬·is_assembled_idx 검증 자명 — ENPIRE의 최대 병목(실물 로봇 활용률)이 사라진다. 목표: scripted 성공률 0.5 → 0.8+.

4. GaP·Show-Harness는 현재 도입 근거가 약함(GaP는 beta·수치 미공개, Show-Harness는 인터페이스 구조적 부적합). Astra는 모델 교체 자체가 저비용이므로 향후 에이전트 루프의 회전율 개선 용도로만 저비용 검토.