feat(galaxea): r1pro kronknav blueprint fed by lidar and head depth - #4019
Draft
jeff-hykin wants to merge 6 commits into
Draft
feat(galaxea): r1pro kronknav blueprint fed by lidar and head depth#4019jeff-hykin wants to merge 6 commits into
jeff-hykin wants to merge 6 commits into
Conversation
The head camera sits on the 4-DOF torso, so its pose cannot be a static transform. Adds a pinocchio FK publisher driven by motor_states, plus a depth-to-cloud module, so both clouds reach the raytracing voxel map with their own frame_id rather than being merged into one.
❌ 7 Tests Failed:
View the full list of 7 ❄️ flaky test(s)
To view more test analytics, go to the Test Analytics Dashboard |
Frame ids are configuration, not constants, so they move out of constants.py onto R1ProConnectionConfig. The standalone JointStateTfPublisher goes away with them: R1ProConnection already owns the joint states, so it derives the articulated transforms itself and publishes the whole R1 tree on one port. test_replay gains the head camera's reason to exist. A slab is authored in base_link above the chassis lidar, back-projected into a depth image through the transform the connection derives from joint angles, then rebuilt through replay, DepthCloud and tf. Dropping that transform, stacking a second optical rotation on it, or letting the cloud inherit the vendor's optical frame instead of the calibration frame each move the points somewhere else. Both suites start the shared reactivex pool's workers in a module fixture. The pool spawns them lazily, so the first test to move a message through one otherwise looks to conftest's thread monitor like it leaked them.
Per-pixel unprojection of a 1280x720 frame in numpy was the slowest link in the head-camera path. Move it into a native module so the work runs in a subprocess off the Python bus, and drive the R1's replay streams and zenoh transports off one topic table instead of two hand-kept lists. - depth_cloud is now a declarative NativeModule over a Rust binary; the 11 geometry tests move to unproject.rs, and module.rs gains three more pinning the frame_id precedence the Python test used to cover. - topics.py holds every R1 Pro wire topic. r1pro_coordinator builds its transports from it and R1ProReplay derives its stream names from it, so renaming a topic can no longer make a replayed stream silently vanish. - Replay's camera_info YAML fallback is gone. Galaxea publishes no camera_info, so the connection puts the robot's per-unit calibration on head_camera_info; a recording that skipped that stream is one to redo. Clippy was run by hand (`cargo clippy -p dimos-depth-cloud --all-targets -- -D warnings`, clean) because the pre-commit hook's nix devShell cannot evaluate on macOS.
Its fileset lists every root-workspace member by hand, so adding one without adding it here makes cargo fail to load the manifest before the recorder builds at all.
Both modules were added without regenerating the registry, so test_all_blueprints_is_current has been failing since the blueprint landed; earlier CI runs only masked it by cancelling the test job.
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.
r1pro nav blueprint using kronk nav. Lidar and head depth both feed the raytracing map, each with its own tf frame.