Repository navigation
Conversation
638a7cf to
546874f
Compare
0f3303f to
ad31cbc
Compare
Review reportUpdated: 2026-10-21. Direct predecessor: #4736.
What changes and why the diff is largeAdapt Go2, G1, R1, whole-body and simulation edges to generated messages. It also adds ROS-native object conversion, DimSim browser/Deno CDR support over the existing LCM envelope, and LeRobot boundary adaptation. Review mapSuggested entry points: dimos/msgs/driver.py, dimos/protocol/pubsub/impl/rospubsub_conversion.py, dimos/core/transport.py, dimos/robot/unitree/go2/connection.py, dimos/robot/galaxea/r1pro/connection.py, misc/DimSim/cli/bridge/cdr.ts, native/python/lerobot/dimos_lerobot/runtime.py. Complete file mapImplementation (32)
Build and dependency metadata (4)
Tests (15)
Documentation and replay inputs (3)
Review focus and scope reductions
ValidationFresh checks on Reproduction commands, not executed here unless stated aboveRun from this PR's own checkout root after installing its documented test dependencies. These are selected review entry points, not a claim of full-stack coverage. uv run pytest dimos/protocol/pubsub/impl/test_cdr_ros_conversion.py dimos/hardware/whole_body/transport/test_adapter.py dimos/robot/unitree/g1/test_cdr_boundaries.py
uv run pytest dimos/robot/unitree/test_dimsim_connection.py dimos/robot/galaxea/r1pro/test_cdr_streams.py dimos/simulation/engines/test_cdr_streams.pyRemaining workReal ROS, full simulator scenes, Nix and physical hardware are unverified. The two DimSim TypeScript acceptance cases remain skipped. Driver wrapper conversions still serve active internal callers; drone, Habitat and other graphs remain unmigrated. |
ad31cbc to
bb22c6c
Compare
What this adds
Migrate Go2, G1, R1, whole-body, simulation, DimSim and LeRobot message boundaries to generated CDR types. Keep conversions at driver APIs.
Base: #4736. ROS types use a registry-checked adapter and native ROS serialization. DimSim uses the existing LCM transport with the shared CDR codec.
Validation and limits
Fresh cleanup checks: 60 boundary tests passed, including a minimal headless MuJoCo model. Two DimSim TypeScript/physics cases were skipped. Repository hooks passed.
WIP: real ROS, full simulator scenes, standalone installed-layer execution, Nix and hardware were not verified. Drone, Habitat and other legacy graphs still need migration.
Review report: file map, scope and verification
Shared CDR foundation
Standard ROS definitions are fetched and verified through the existing source lock and generation pipeline in #4366. Native SDK support is included in #4722. Shared Python value implementations and regressions are reviewed in #4800–#4803 before the #4734 caller migration. SDK and consumers use the same generated Rust message crate, including
Time,TransformStampedandTFMessage; there is no separate TF schema package or generation command. Camera/depth callers migrate in #4734 and mapping/navigation callers in #4737.The external CDR and transforms library pins remain unchanged. Local verification passed 122 SDK tests, all existing native consumer suites, and all 24 real native/DimSim/port acceptance tests without skips. Seven staged Nix source layouts resolve exactly one message crate with locked Cargo metadata. This is not a full Nix build or hardware validation. Fresh CI runs verify #4722 independently and the combined stack tip.
Stack #4804 contains the 12 original feature PRs and four separately reviewed adapter/buffer PRs (#4800–#4803). The redundant #4774 is superseded by #4722. No feature PR has been merged into main; existing conflicts with main and the WIP cutover failures in #4739 remain.