turtlebot3: run the simulator, the map and the pose in the same place - #76
Open
bburda wants to merge 1 commit into
Open
turtlebot3: run the simulator, the map and the pose in the same place#76bburda wants to merge 1 commit into
bburda wants to merge 1 commit into
Conversation
The headless profile passed gz_args as separate tokens, and launch joins those with no separator, so the simulator was started with one glued argument "-r-s-v2<world>" and never ran the world. No sensor data reached ROS, the global costmap never got its transform, planner_server hung in Activating, and the lifecycle manager aborted the whole navigation bringup. Keeping the separator inside the string is the form ros_gz_sim expects. The map yaml carried origin [-1.76, -2.42] while the map.pgm it points at ships with [-10.0, -10.0], so the map sat about eight metres away from the robot. The spawn point then fell outside the global costmap and every plan was refused with "Start Coordinates ... was outside bounds". AMCL was configured to start at (0, 0) while the robot spawns at (-2.0, -0.5). Headless has no RViz to correct that by hand, so the covariance stayed high and the robot could not follow a path. Add tests/smoke_test_navigation.sh, which asserts the lifecycle nodes reach active, the robot is inside the costmap, a goal completes and localization stays certain. It runs in the existing turtlebot job, on the stack that job already starts. The other smoke test deliberately does not navigate, which is how all three of these could ship together unnoticed.
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.
Description
Three settings had drifted apart in the headless turtlebot3 profile, and together they stopped the
demo from navigating at all. Each one hid the next, so they had to be found in order.
The simulator was never given the world.
gz_argswas passed as separate tokens, and launchjoins those with no separator, so gz started with one glued argument:
No sensor data reached ROS, so AMCL never published the map to odom transform, the global costmap
could not activate,
planner_serversat inActivatingfor 68 seconds and the lifecycle managergave up on the whole stack:
The map was in the wrong place.
turtlebot3_world.yamlcarriedorigin: [-1.76, -2.42]whilethe
map.pgmit points at ships in turtlebot3_navigation2 withorigin: [-10.0, -10.0]. The maplanded about eight metres from the robot, so the spawn point was outside the global costmap and
every plan was refused before it started:
AMCL started somewhere the robot is not. It was configured at
(0, 0)while the robot spawnsat
(-2.0, -0.5). Headless has no RViz to set the pose by hand, so the covariance stayed high andthe robot could not follow a path.
Related Issue
closes #75
Testing
New
tests/smoke_test_navigation.shruns in the existing turtlebot job, on the stack that jobalready starts, so it costs no extra build. Measured against a running demo, 10 passed and 0 failed:
Each fix was then reverted on its own, to check the test fails when the bug comes back:
The existing
tests/smoke_test_turtlebot3.shstill passes 49 of 49 on the same stack.With all three in place the demo raises its navigation faults for real for the first time: a goal
sent while the stack was misconfigured produced
NAVIGATION_GOAL_ABORTEDfrom/bridge/anomaly_detector/goal_statusthrough the detector itself, not through injection.Checklist