Skip to content

Navigation repeatedly fails for the first few goals #3346

@VishalDhayalan

Description

@VishalDhayalan

Bug report

Required Info:

  • Operating System:
    • Ubuntu 22.04
  • ROS2 Version:
    • Humble
  • Version or commit hash:
    • 1.1.3-1
  • DDS implementation:
    • CycloneDDS

Steps to reproduce issue

Without changing anything from the defaults, run: ros2 launch nav2_bringup tb3_simulation_launch.py headless:=False slam:=True autostart:=True.
This launches all the nodes, gazebo and RViz perfectly. RViz shows an initial patch of map built from the scans got from the robot being in its initial pose as shown in the screenshot below (as expected).

image

Now (using the Nav2 Goal button) send goals to the robot.

Expected behaviour

The robot plans a path to that goal and follows it, driving the robot to the goal location while growing the map via SLAM.

Actual behaviour

The robot simply spins in place, moves back a short distance (officially known as 'back up') and repeats this randomly, taking a good 10-15 secs to show a path to the goal (if at all) and then struggling to even start to follow the path. This continues to happen for the first few goals without fail almost every time I launch, until a certain point (anywhere from the 2nd to 5th goal) at which it actually starts moving significantly following the planned path and the first map update is seen (where the map grows).

After this point, there are never any problems following successive reasonable goals, even many challenging ones.
I have provided a short video below also demonstrating this visually. Luckily in this run the navigation only failed for the first goal and almost failed for the second...

Nav2.navigation.failure.upon.startup.mp4

I've also noticed the control server say "Invalid path, Path is empty." when the robot stops following the path suddenly (even tho a full path to the goal is shown). This even happens in the video above for the second goal, as shown in the terminal at 1:01.

image

Is it possible to make it follow the initial goals (from the very first goal) more reliably?
I don't see this behaviour mentioned anywhere in the docs or on online videos demonstrating the same example.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions