ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | Q&A
Ask Your Question

Navigation 2: can't reach the goal pose

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

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 -0500

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

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



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

Seen: 322 times

Last updated: Jul 17 '21