Skip to content

feat: Dual SO-101 SIM과 RoboTwin 데이터 계약 통합 - #53

Merged
Alpenj merged 86 commits into
mainfrom
pro/main-integration-so101-20260907-01
Sep 7, 2026
Merged

Alpenj merged 86 commits into
mainfrom
pro/main-integration-so101-20260907-01

Conversation

@Alpenj

@Alpenj Alpenj commented Sep 7, 2026 •

Copy link
Copy Markdown
Owner

Dual SO-101 SIM/teleop와 RoboTwin HDF5→canonical NPZ 경로를 main에 통합한다. 첫 state→action 급변, 동시 출력 덮어쓰기, 초기 infeasible 경로 허용, 안전 옵션 없는 checkpoint 재시도를 거부한다.

변경과 포함 범위

  • PR #40과 #49의 전체 head, PR #51의 보고서 기준 3ff180aff3eb312b91a2e2c6ea8e8d6b734148b3까지 기존 커밋 이력을 보존한다.
  • converter는 첫/마지막 전이, integral frequency, next-measured-state 의미를 검증하고 완성 NPZ를 no-clobber hard link로 게시한다.
  • planner는 시작점을 포함한 모든 constraint 결과를 통과해야 direct path/graph connector를 반환한다.
  • native ACT checkpoint는 weights_only=True로만 읽는다. 지원하지 않는 runtime이나 로드 오류에서는 재시도 없이 실패한다.
  • 로컬 추가 수정: fd8b0763c5a24ed8cf0753aa6df8b6175315b005.
  • 작업 중 #51에 추가된 문서 커밋 bfb33deb6ad62c0775d5be0e9fbcf4b67de715d6은 이 PR에 포함하지 않았다. 해당 PR과 별도 C++ safety/bimanual/jitter/문서 PR은 후속 작업으로 보존한다.

검증

동일한 신규 planner/checkpoint 테스트가 수정 전 각각 실패하고 수정 후 통과했다. 별도 worktree에서 실행했고, 원본 WIP·runtime·실제 dataset에는 patch를 적용하지 않았다.

  • RoboTwin converter/planner regression: 17개 PASS.
  • native ACT CPU 학습/checkpoint roundtrip 포함: 3개 PASS.
  • native ACT supervisor/mock bus: 6개 PASS.
  • 기존 physical-motion 차단/static safety: 9개 PASS.
  • 기존 XML model contract와 HDF5 converter fixture: 각각 PASS.
  • git diff --check: PASS.

최종 head fd8b0763c5a24ed8cf0753aa6df8b6175315b005의 CI 3개 모두 성공:

검사 실행
hardware-free-tests 34073917818
robotwin-contract-tests 34073917802
mujoco-headless-tests 34073917826

실행 범위와 한계

이번 통합은 SIM/offline 범위다. planner 회귀는 실제 segment 코드를 CPU tensor 대체 연산과 가짜 constraint 결과로 검사하며, 실제 CuRobo collision geometry를 검증하지 않는다. 초기 constraint 예외를 제거한 뒤 SAPIEN/CuRobo handover를 다시 실행하지 않았으므로 9월 5일 성공 기록을 새 planner의 성공 근거로 사용하지 않는다.

실제 IL 단위/action 의미 교차 검증과 NPZ→실물 record/train importer는 미지원이다. 외부 RoboTwin runtime pin·dirty 변경·asset provenance도 재현 보장 범위 밖이다. installer는 외부 경로를 명시하는 수동 SIM 도구로 분리돼 있고 CI가 실행하지 않는다. 실물 장치 접근이나 실물 dispatch 승인은 수행하지 않았다.

검증 명령과 상세 범위: 통합 검증 기록, RoboTwin 지원 범위.

Define the ordered A-to-B pick, return-to-A, and place state machine with freshness, base-arm interlock, transport hold, bounded retry, and fail-closed contracts. Verified by 84 MuJoCo headless tests.
Expose named navigation goals, pose, velocity, settled-state, freshness, and watchdog contracts while keeping left/right wheel commands private to adapters. Verified by five mobility contract tests.
Model front RGB-D and left/right gripper RGB streams with explicit modality, calibration, payload, timestamp, disabled-role, synchronization, and per-stream health contracts. Verified by ten combined capability tests.
Require bilateral finger contact and friction-only lift evidence, preserve three-camera simulation contracts, and record the current hardware role aliases plus unresolved Astra S color-driver findings.

Verified: 152/152 mobile_dual_so101 tests pass with hardware_execution=false; install_hardware_aliases.sh passes bash -n; git diff --check passes.
Run official ColorReaderPoll or non-UVC SimpleViewer with the packaged OpenNI2 2.3.0.86 libraries instead of the Ubuntu 2.2 runtime. Record the loader pitfall and pending hardware validation.

Verified: launcher bash syntax passes; check mode resolves all runtime files; disconnected mode exits with code 3.
Align the Astra S with the TurtleBot3 front camera bracket, replay the measured 20 Hz shoulder-pan smoke continuously in MuJoCo, and record the non-passing dynamics gate. Verified with 157 MuJoCo tests.
Alpenj and others added 26 commits September 4, 2026 13:23
…itions

Validate integral frequency and include the first measured state in the velocity gate. Publish NPZ with no-clobber hard links and preserve dangling output symlinks, including CLI use. Hardware-free synthetic regression tests passed locally; no runtime or physical validation claimed.
…ssions

16 hardware-free unittest methods. Includes concurrent output publication, symlink preservation, initial/single-frame transitions, frequency validation, normal image/depth schema, and cleanup on failure. Fixtures are handcrafted HDF5 only.
Use GitHub-hosted ubuntu-24.04, pinned actions and exact CPU-only fixture package versions. Run the existing XML/HDF5 fixtures and 16 new regression tests. No SAPIEN/CUDA/real IL or physical hardware success is implied.
…ning

Preserve a 50-branch ref ledger before candidate creation. This records remote SHAs only and is explicitly not a backup of local WIP, Git objects, LFS, physical datasets, or runtime.
…blockers

Document actual baseline/candidate synthetic test results, ancestry checks, isolated writer scope and unverified runtime/IL/WIP items. Keep main merge, auto-merge and existing branch/PR cleanup explicitly deferred.
Job-level env cannot reference runner context. Use RUNNER_TEMP inside a run step and GITHUB_ENV for subsequent steps. Preserve the initial workflow attempt in history; no source or original branch changes.
@Alpenj Alpenj changed the title feat: main 통합 후보 — 기존 이력 보존 및 RoboTwin 회귀 수정 feat: Dual SO-101 SIM과 RoboTwin 데이터 계약 통합 Sep 7, 2026
@Alpenj
Alpenj marked this pull request as ready for review September 7, 2026 01:46
@Alpenj
Alpenj merged commit a2c4444 into main Sep 7, 2026
3 checks passed
@Alpenj
Alpenj deleted the pro/main-integration-so101-20260907-01 branch September 7, 2026 02:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant