Index
2026-10-23 — progress

dexhand(Sharpa) 브랜치 → main merge

ego2robot-dexhand | commits a2162eb, 5e8d5bb, 177c310 (origin push 미실시)

TL;DR

254→318
tests passed
32 / 12
충돌 곳 / 파일
4/4
main config hash 동일
30
array bit-identical

1 배경/목적

dexhand 작업(10/19–10/20)은 worktree ../ego2robot-dexhand에 커밋되지 않은 채였다(24개 파일 수정, dex 모듈 untracked). 그동안 main은 closed-loop eval, F2b_w0 placement, strict export rules로 8 commit 앞서 나갔다. 두 쪽을 합쳐야 dex 코드를 main 기능(closed-loop eval 등)과 함께 쓸 수 있다.

2 작업 내용

a2162eb dex 코드 커밋 (stale 테스트 3개 갱신: hash 기대값에 data.dataset/mano_dir, registry에 sharpa_floating) 5e8d5bb 작업 로그 커밋 177c310 main → dexhand merge 후 main fast-forward (push 안 함)

충돌 해소 결정

영역결정
카메라 항main의 CameraProbe.intrusion(§9.1, 거리+높이 판정)만 유지, side 인자 추가. dex 전용 거리 penalty 삭제
config hashmain의 HASH_OPTIONAL 방식 + dex 섹션 제외. data.dataset, data.mano_dir, ik.max_transition_detour를 HASH_OPTIONAL에 추가
Config.__post_init__merge로 두 개가 겹쳐 dex+grasp 검증이 무력화된 것을 발견, 하나로 통합
physicsmain이 리팩터링한 settle/FrameProbe/SequenceSetup에 dex 손 시작 자세, hand_q servo, TACO target 물체 이식. target 접촉 bit는 main finite-table bit(1, 2)와 겹치지 않게 4로 분리
pipeline/object_view/exportH2OSequence 대신 open_sequence 사용. export split filter는 H2O에서만 동작
tools/make_data_gallery.pyexport key joint14 → joint (그대로면 실제로 깨졌을 버그)
DESIGNclosed-loop eval은 §19 유지, dex는 §20으로 이동. §20.2 dex grasp, §20.3 contact IK 추가

3 결과

항목결과
전체 테스트merge 전 254 passed → merge 후 314 passed / 4 failed → 수정 후 318 passed / 6 skipped
실패 4개 원인stale 기대값 3, gallery joint14 버그 1
main config hash 4개aloha 2bcfe0c49e76, ur5e 7009c1d39520, ur5e_obj d336c8a9be5c, yam 86bdf9f81c3d 모두 main 코드와 동일
dex physics replaymerge 전 a2162eb vs 후: 30개 array + episode 기록 전부 bit-identical (H2O subject2/k1/1 floating, TACO brush/bowl target 포함)

4 Takeaway

dex 코드가 main에 들어왔고 gripper production 경로와 dex physics 결과는 바뀌지 않았다.
dex placement 수치(카메라 거리 0.345 m 등)는 카메라 항 교체로 달라지므로 재측정이 필요하다.

5 Next Steps