Skip to content

feat: use CDR at Go2 module and viewer boundaries - #4698

Draft
TomCC7 wants to merge 2 commits into
cc/feat/cdr-recorder-boundaryfrom
cc/feat/cdr-go2-boundary
Draft

TomCC7 wants to merge 2 commits into
cc/feat/cdr-recorder-boundaryfrom
cc/feat/cdr-go2-boundary

Conversation

@TomCC7

@TomCC7 TomCC7 commented Oct 20, 2026

Copy link
Copy Markdown
Member

Go2Connection still declared legacy typed wire ports while its mapping and perception consumers now use canonical CDR. Its image/cloud/odom/TF/camera-info outputs and cmd_vel input now use generated classes; explicit boundary adapters retain the existing internal SDK value API. The basic blueprint viewer consumes these generated values too.

Linear: https://linear.app/dimensional/project/message-encoding-refactor-05a3ddb4af3e/overview

Parent: #4697. Existing internal calibration helper, odom-to-mount math, driver command API and port names are retained. Image publication owns its bytes. The cloud adapter preserves RGB, intensity, offset_time, tag, line and per-point stamps together. The existing costmap numerical renderer remains behind an explicit generated-to-value adapter; this does not retire dimos_lcm. Full simulation/DDS/controller/teleop graph closure and historical fixture conversion remain separate work, not claimed by this module boundary.

Category Files Additions Deletions
Module boundary and cloud port spec 2 151 25
Basic blueprint viewer adapters 1 36 19
Module/driver/rendering tests 2 233 9
CI installed-code acceptance 1 8 1

Offline manual acceptance, from a checkout installed with its developer tests and optional Unitree dependencies:

LCM_DEFAULT_URL=memq:// python -m pytest --noconftest --import-mode=importlib -o addopts='' -q dimos/robot/unitree/go2/test_connection.py dimos/robot/unitree/test_connection.py dimos/robot/unitree/go2/blueprints/basic/test_unitree_go2_basic.py

Expected: 28 passed. Tests replace the robot SDK at its external boundary; they never connect to a robot. The actual module's declared ports pass image/cloud/odom/TF through the default factory and real LCM memq. Rerun tests inspect actual pinhole, pose values/axes, clipped map points, PGO keyframe/edge geometry and costmap mesh. No viewer launch or human acceptance is implied.

Validation: 28 source and 28 isolated installed-wheel tests passed; installed module/blueprint origins asserted in site-packages. Three production files passed strict mypy; scoped hooks passed except unavailable Nix lint. Wheel SHA256 c7c2c2a1167fff5c22d91c3d7885506b8c1799b934d1f0d124ac25a946059b04. Optional SDK import dependencies were added to task test venvs and the Linux test definition (repository-pinned SDK2.1.2 plus its import-only subset and aiortc1.14.0 in the installed environment); source environment already contained supported aiortc1.15.0. This focused import setup is not a full optional-SDK dependency/pip-check claim. CI definition installs libportaudio2 on its runner; no local host/system/network configuration was changed. No CI polling, benchmarks, physical operations or registry publication.

This branch has not been deployed

No deployments
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