scripts/demo_icl_sensor) 설계 및 진단. 조립 정책은 아직 없음 — 이번 작업은 "관측이 성립하는가" 확인 단계직전 카드의 demo_icl drawer v4(heldout 7/10=70%)는 시뮬레이터의 물체 정답 pose와 벤치마크 조립 목표를 정책이 직접 읽는 privileged 조건에서 얻은 결과다. 이 성공을 실물 로봇에 적용 가능한 형태로 확장하려던 v5(box/서랍 재파지 로직 개선)가 진행되던 중, 사용자가 "실제로 관측 가능한 입력만 사용해야 한다"는 요구를 명시했다.
results/demo_icl/20260915_drawer_refine_v5/retired.json — reason: "User requires real-world-observable inputs; privileged simulator object poses and scorer-derived assembly targets are forbidden." 대기 중이던 job 4개(127891/127893/127894/127895)를 취소하고, 이미 완료된 4개(127863/127867/127868/127869)는 기록만 보존. v4의 동결 정책·70% 결과 자체는 변경하지 않음.새 계약: 정책/인식 컴포넌트에 물체 transform, segmentation ID, mesh 기하, reset 사전분포, scorer 목표, 숨겨진 접촉력을 절대 전달하지 않는다(scripts/demo_icl_sensor/AGENTS.md에 명문화). RGB(-D) 카메라 관측과 로봇 센서(joint encoder, EE FK, gripper width)만 정책 입력으로 허용.
로그인 노드에서는 §1 디버깅 허용 범위 내 고정 10-step, GPU 1개, 300초 제한 foreground smoke만 수행(전체 정책 평가는 여전히 sbatch extra 전용). 중복 제출된 대기 job 128512는 실행 전 취소.
| 진단 | estimator | 결과 | 비고 |
|---|---|---|---|
| debug_perception | PnP + 명목 19.5mm 태그 | observed_poses=0 | 측정 깊이와 명목 크기 불일치로 두 태그(id 52, 58) 전부 pose_or_depth_rejected |
| debug_perception_depth | depth_plane (실측 깊이 평면 피팅) | observed_poses=6 | 3프레임 × 2태그 = 6/6 복구. 측정 변 길이 20.78mm(id58)/20.69mm(id52), 평면 RMS ~4e-8m |
| demo 영상 태그 검출 (10프레임) | PnP | 전부 거부 | 보정 파일 부재로 metric pose 없음 — 픽셀 코너 검출까지만 확인 |
손목 카메라(color_image1)는 전 구간에서 태그 미검출 — 전면 카메라(color_image2)만 관측 성공. 경계 테스트 29개 통과(python -m unittest discover -s scripts/demo_icl_sensor).
직전 카드의 70% 성공은 이 프로젝트가 "privileged 정보를 받으면 코드 정책으로 assembly가 가능하다"는 것을 보여줬지만, 그 결과는 이 새 요구조건 아래에서는 유효하지 않다. 지금 확보한 것은 인식 파이프라인의 기하학적 정합성(태그 검출·평면 피팅)뿐이며, 조립 성공률로 이어지려면 관측 기반 파지/충돌 판단이라는 완전히 새로운 레이어가 필요하다 — v4의 70%를 재현하려면 사실상 처음부터 다시 쌓아야 한다.
실측 카메라/hand-eye 보정 파일이 없음(이 서버에 RealSense 미연결) — 시뮬레이션 보정만으로는 실물 전이를 주장할 수 없음. 손목 카메라 태그 미검출 원인 미조사.
1) 서랍 등 누락 부품을 찾기 위한 추가 관측 각도 확보, 2) 관측 기반 파지 후보 생성 + 충돌 검사, 3) 단일 human demo의 작업 순서(박스→아래/위 서랍→부분삽입 후 밀기)와 연결해 첫 센서 전용 정책 시도. 전체 정책 평가는 반드시 extra sbatch로.