Repository navigation
Conversation
be86e4c to
0297049
Compare
0297049 to
8700f7a
Compare
Review reportUpdated: 2026-10-21. Direct predecessor: #4734.
What changes and why the diff is largeMigrate mapping/navigation callers from wrapper-owned numerical methods to generated messages plus explicit helpers. The unit covers occupancy grids, map storage/CLI, relocalization, graph/loop closure, A* safety/planning, native planners and followers; it also adds explicit region definitions. Review mapSuggested entry points: dimos/message_utils/occupancy.py, dimos/message_utils/pointcloud.py, packages/dimos-generated/custom/dimos_msgs/msg/RegionBounds.msg, dimos/mapping/cli/map.py, dimos/navigation/go2/replanning_a_star/global_planner.py. Complete file mapImplementation (85)
Build and dependency metadata (13)
Tests (44)
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/message_utils dimos/mapping/occupancy/test_generated_operations.py dimos/mapping/occupancy/test_generated_path_resampling.py dimos/mapping/occupancy/test_generated_rendering.py dimos/mapping/test_generated_costmapper.py dimos/mapping/test_generated_odometry_hist.py dimos/mapping/voxels/test_generated_stream.py dimos/navigation/go2/replanning_a_star/test_generated_astar.py dimos/navigation/go2/replanning_a_star/test_generated_planner.py dimos/navigation/go2/replanning_a_star/test_generated_safety.py dimos/robot/unitree/type/test_lidar.pyRemaining workCurrent predecessor is incorporated. Native planner builds, Clippy/Nix and full robot graph validation remain unverified. The installed-wheel tip checks are described in #4734; they do not certify each intermediate package independently. |
8700f7a to
f46ed9c
Compare
Migrate mapping and navigation messages to generated CDR types while keeping the existing algorithms. This includes occupancy grids, clouds, paths, goals, followers and explicit map region IDs.
Base: #4734. Region definitions and their tests stay here. Native mapper, MLS, local planner and trajectory follower now bind public SDK encoders and the shared integer-nanosecond TF adapters from #4774. Delete duplicate TF conversions and codec-only wrappers; retain real pointcloud layout conversion. Nix builds pin the corrected SDK source and include the independent message-adapter crate.
Final combined-stack validation: mapper 102 tests, MLS 135, local planner 93, follower 63. Six real Python/native integration tests pass with generated clouds, regions and paths. Source staging from the actual pinned archive passes locked Cargo dependency checks; full Nix builds were not run. The broader Python mapping suite and whole-graph cutover were not rerun for this codec change.
Existing algorithm and boundary review: #4737 (comment)
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.