Repository navigation
fix(lunar_sim): anchor planning scene to odom - #1109
Merged
Merged
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.
Motivation
Keepout boxes created in lunar_sim's Planning Scene Editor moved with the rover because MoveIt's planning frame was the moving
footprintlink. World collision objects should retain their pose inodomwhile the rover moves.Brief description
Add a planar SRDF virtual joint from
odomtofootprint. The existing state monitor reads the controller's TF to update the rover pose, and the planning scene stores world objects inodom.The rover remains rooted at
footprintin the URDF. The planar joint represents its moving root without freezing it or adding translation/yaw rail joints. No odometry bridge is needed: rc4's existing multi-DOF state monitor subscribes to TF and resolves the virtual joint's parent and child frames.The four-wheel
basegroup, controllers, and rover-relative Objective commands retain their existing behavior. Direct velocity teleoperation still does not perform collision avoidance. Document the planning-frame contract and correct the self-collision comment to distinguish internal wheel motion from root motion.How it was tested
On MoveIt Pro 10.2.0-rc4 with an isolated lunar_sim instance:
footprint) and passed with the planar joint (odom)./get_planning_sceneand TF checks confirmed 0.149744 m of rover motion, an exactly unchanged box pose/geometry inodom, and root-state/TF agreement within 5 micrometres. Before/after screenshots confirmed both rover and box render correctly.odom, with root state following TF.(0, 0.5, 0.5)inodom. Both MoveIt root-state motion and fresh odometry TF were required; a stationary root would fail the check.colcon build --packages-select lunar_simsucceeded.colcon test --packages-select lunar_simandcolcon test-result --test-result-base build/lunar_sim --verbose: 24 tests, zero errors, failures, or skips.Dead Reckon SquareandReset MuJoCo Simboth completed successfully; Desktop teleoperation started and stopped successfully.Fixed planning frame: before and after UI teleoperation