ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Navigation 2: can't reach the goal pose

asked 2021-05-29 03:52:13 -0600

Leonti gravatar image

I'm using Navigation with ROS 2 (Foxy) and I have a strange issue when the robot can't quite reach the goal pose.

It starts fine, follows the path, but stops too early before the goal and then tries spin recovery multiple times until it fails. Here is the picture of the final state: image description

As you can see there is still a little bit to go until the goal is reached, but it stops and then tries to adjust the angle too early. After it fails to match the angle it tries spin recovery a couple of times.

Here is the video of what is happening:

Why doesn't it go all the way until the goal pose? As the map in RViz shows the system clearly knows that base_link is not yet in position so it should have kept going before attempting to match the angle. Odometry seems fine because I'm using stepper motors and they are very precise. It corresponds to where the robot is in the room. The odometry arrow in RViz also points in the same direction where the robot is.

Which navigation parameters should I look at? What could explain this behaviour?

Cheers, Leonti

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2021-07-17 22:09:06 -0600

Leonti gravatar image

The issue was that I had an outdated config file for Navigation 2 which was missing some parameters (not 100% sure which ones).

After updating my nav2_params.yaml from the foxy branch navigation now succeeds. Logs were saying that the robot failed to make progress, so I'm thinking that the progress checker plugin was either not configured or the defaults were too aggressive for my robot, so it was failing to register the progress and kept restarting the navigation during rotation to match the angle.

As far as not quite reaching the goal before attempting to match the angle issue I think it was just the default xy_goal_tolerance parameter. It was configured to be 25cm, so I think as soon as robot reached the outer edge of that radius it was satisfied and started to match the angle, that's why it was never reaching the exact start of the arrow. After reducing tolerance to 10cm it's more accurate now.

edit flag offensive delete link more

Question Tools



Asked: 2021-05-29 03:52:13 -0600

Seen: 966 times

Last updated: Jul 17 '21