Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Shared whole-body transport, G1 DDS boundary and R1 upper-body ROS boundary now agree on generated
dimos_msgs/MotorCommandArray,sensor_msgs/JointStateandsensor_msgs/Imu. Their G1/GROOT/R1 blueprint pins use canonical CDR. Internal MotorCommand/MotorState math and the existingtransport_lcmregistry key stay unchanged.Parent: #4712. Message encoding refactor.
Generated command arrays no longer have the old constructor's cross-array length guarantee: G1 and R1 therefore reject an inconsistent length before touching the SDK. G1 soft-start/damping/gain behavior remains; G1's paired state/IMU use a shared exact stamp. R1 fused state keeps its oldest source segment in integer nanoseconds and retains the original zero/negative-driver-stamp arrival-time fallback. R1 tracking-speed and torso/arm ordering are preserved.
Manual offline acceptance from a configured checkout:
DIMOS_TRANSPORT=lcm LCM_DEFAULT_URL=memq:// uv run pytest --noconftest --import-mode=importlib -o addopts='' -q \ dimos/hardware/whole_body/transport/test_adapter.py \ dimos/robot/unitree/g1/test_wholebody_connection.py25 source +25 isolated installed-wheel checks, strict typing6 production files, applicable hooks and wheel pass; Nix unavailable. Wheel SHA256
cefeb66b31545172d576595df3154865e9ec1e4a1f9c532c9df9db86065b568b.Graph tests use actual default-factory CDR transports, with per-channel ownership matching an in-process coordinator (distinct memq endpoints cannot communicate). Both LCM memq and discovery-disabled loopback Zenoh exercise adapter caches, state/IMU field values, canonical commands to a fake DDS endpoint, real R1 feedback fusion and generated commands to fake ROS publishers. All five array length gates run against initialized fake SDK state. Existing G1 damping/soft-start assertions remain. Actual blueprint imports resolve canonical map keys with project asset download explicitly forbidden.
CPU ONNX Runtime1.24.1 (repository lock version) was installed only into task-private test environments to import the shipped GROOT blueprint; no weights/inference/training. No DDS/ROS node, robot or hardware operation ran. Actual ROS still needs rclpy and matching compiled ROS packages; #4712 documents that boundary. Remaining R1 sensor planes, generic simulation/viewer, collection/native-worker/other graphs, fixtures, Gate B dependency retirement and final ancestry/PR organization remain open. No CI polling or benchmark work.