6291a7d)해 읽음 — context compiler(데모 24 view/48 image 제한), action은 재생 대상이 아닌 과거 예시, online decide-execute-reobserve 루프, IK-only planner(충돌 회피 아님), PixelLocalizer 삼각측량(시뮬 GT 미사용) 확인CAP_DESIGN.md에서 detect_object가 시뮬 oracle 분기를 명시적으로 쓴다고 확인했기 때문ObservedSurface(RGB-D→로봇 기준 표면점) 모듈 신규 구현 + 동작 직후 새 관측 패킷을 남기는 어댑터 추가, 테스트 36개 통과, extra job 131145(seed 80102)에서 태그 관측 2개(52,58) → 8개(0,1,2,3,52,54,58,59)로 확장260916 카드(demo_icl_sensor_pivot)에서 privileged 시뮬레이터 정답 pose 입력을 금지하기로 결정하면서 AprilTag+RGB-D 센서 전용 인식 파이프라인에 착수했고, depth-plane 대체 추정기로 pose 복구(6/6)까지 확인했다. 그러나 그 카드는 "지각이 되는가"만 답했지, "지각 결과를 어떤 실행 구조(harness)에 태워 실제 조작 결정을 내리게 할 것인가"는 열려 있었다.
260911 카드(gap_harnessvla_enpire_coverage)에서 이미 Harness VLA/ENPIRE/GaP/Show-Harness/GPT-6 Astra를 검토한 바 있지만, 그때 질문은 "이 방법들의 성능이 우리 삽입 병목을 커버하는가"였다. 이번 조사는 "그 방법들의 코드 구조 중 무엇을 실제로 이식할 것인가"로 질문이 다르다. 마침 2026-09-16 GPT-Policy 논문·코드가 공개돼 "데모 한 개 + 학습 없는 VLM + 제한된 로봇 도구 + 실행 후 재관측"이라는 우리 목표와 정확히 같은 구조의 참고 구현이 새로 등장했다.
공개 저장소(cheng-haha/GPT-Policy, commit 6291a7dec476ac6c76bdbd056bbf325c40a8215b)에서 24개 파일을 다운로드해 URL·SHA256을 sources.json에 고정하고 읽었다. upstream 실행·모델 호출·로봇 실험 재현은 하지 않았다.
| 후보 | 확인된 구조 | 이번 판단 |
|---|---|---|
| ASPIRE | libero_reduced_skill_library.py(마스크/픽셀+깊이→3D점), trace_logger.py(동작 입출력+시각증거 기록), 코드 수정→검증 축적 루프 | 채택 (기존 CaP-X와 가장 근접, 우선 참고) |
| Harness VLA | RGB-D 기반 위치 결정 + 고정 기하 동작과 frozen VLA 접촉 동작 조합. 절차는 기억, 좌표는 현재 관측에서 재계산 (부록 E: 숨겨진 물체 pose 접근 금지 명시) | 관측·이동·접촉 분리 + 재시도 구조 채택 |
| ENPIRE | 환경준비·정책개선·실행·분석 모듈 분리. 단 CAP_DESIGN.md에 detect_object의 시뮬 oracle 분기가 명시됨 | oracle 경로는 배제, reset/평가/실패분류 구조만 참고 |
| ESPIRE | VLM의 embodied spatial reasoning 진단 벤치마크 — 로봇 정책 하네스가 아님(이름 유사로 인한 혼동 확인) | 채택 대상 아님 |
결정 후 즉시 두 가지를 구현했다: (1) ObservedSurface — 보정된 RGB-D를 로봇 기준 표면점으로 변환하고 픽셀/마스크 조회에 관측 단계·출처를 연결(미관측 깊이·오래된 관측은 목표로 반환하지 않음), (2) 동작 직후 새 관측 packet을 자동으로 남기는 어댑터. 신규 테스트 36개 통과 후 새 탐색 seed 80102로 extra job 131145를 제출했다.
GPT-Policy 논문 Table 1(조건당 반복 3회, 실물 로봇)을 구조 참고 근거로 함께 확인했다 — 이는 우리 실험 결과가 아니라 채택 판단의 근거 자료다.
| Task | 데모 없음 | Human Video | Robot Video+Action |
|---|---|---|---|
| 수건/노트 pickup | 0/3 | 2/3 | — |
| 병뚜껑 열기 | 0/3 | 2/3 | 3/3 |
| 플러그 재삽입 | 0/3 | 0/3 | 2/3 |
| 나머지 6개 태스크 | 각 조건 3/3 (100%) | 3/3 | |
simulated.json이 존재하지만 backend는 여전히 arx이고 CAN interface 포함 — FurnitureBench 어댑터는 공개 트리에 없음. LICENSE도 검토·평가용 공개(재배포/상용 라이선스 미정)라 업스트림 코드를 그대로 복사하지 않고 구조만 참고.demo_icl 트랙이 "센서로 볼 수 있는가"(260916) 단계를 지나 "무슨 구조로 결정을 내리게 할 것인가"를 확정하는 단계로 넘어갔다. ASPIRE 코드 수정 루프 + Harness VLA 재시도 구조라는 구체적 선택지가 생겼고, ENPIRE의 oracle 경로를 명시적으로 배제한 것은 260916에서 정한 "privileged pose 금지" 원칙을 하네스 선택에도 일관되게 적용했다는 의미다.
다만 이 카드 자체는 아직 온라인 모델 연결이나 조립 성공을 만들지 않았다 — 결정과 준비 단계다. 실제 online 모델 결정 루프의 첫 실행 결과는 같은 날 진행된 native_icl 트랙에서 별도로 확인한다.
GPT-Policy 방식의 온라인 VLM 연결(외부 유료 API 없이 클러스터 폐쇄형 batch 안에서 실행)을 아직 구현하지 않음 — 현재는 이 세션(native conversation model)이 직접 결정을 내리는 대체 경로만 있다. GPT-Policy의 PixelLocalizer 삼각측량이 "같은 정지점을 지정했다"는 가정을 수치 검사만으로 증명하지 못한다는 한계도 그대로 이식됨.
(1) 데모 문맥을 데모 없음/로봇 영상만/영상+action 3조건으로 고정해 비교, (2) 고정 4자세 순회 대신 매 스텝 실제 모델 호출 → 도구 실행 → 재관측 → 다음 호출을 연결(진행 중, native_icl 카드 참조), (3) 파지·짧은 들어올리기·놓기부터 평가하고 조립으로 확장, scorer는 정책 밖에서 판정.