Ask Your Question

Which part of ROS navigation is responsible for path correction? [closed]

asked 2016-08-11 11:12:09 -0500

meirela gravatar image

I've been traveling around ROS' navigation stack, looking for the path correction code and I couldn't find it. I am using a kobuki iClebo's TurtleBot platform, along with kinect instead of laser scan.

I am pretty new to robotics and ROS, so I might need to understand first:
-There is the global planner (let's say A-star/Djikstra in my case) which is responsible for the Global Path
-There is the local planner (DWA/base_local_planner) which, alongside with the obstacle updates to the map by /scan topic, is responsible for obstacle avoidance and hopefully path correction (?)
-There is the move_base which I think acts as a "manager" for both of the above

Now, I couldn't find anywhere in those three the part that is responsible for path correction - the procedure of understanding where you are (localization), understanding where you were suppose to be (given by one of the planners) and giving control commands in order to close the gap between the two.

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by ahendrix
close date 2018-07-05 17:22:40.072534

1 Answer

Sort by ยป oldest newest most voted

answered 2016-08-11 12:17:54 -0500

ahendrix gravatar image

There isn't one module that's responsible for "path correction"; it's actually an interaction between two different parts of the system.

AMCL uses lidar and odometry information to estimate the position of the robot within the world. It corrects for drift in the odometry and publishes a TF transform between the global map frame and the odometry frame.

The local planner receives the estimated position of the robot and tries to create a colliision-free trajectory and a command that moves the robot toward and along the global plan. The result is that this corrects for any drift of the robot or motors.

edit flag offensive delete link more


From your answer, you are suggesting that the local planner is capable of avoiding obstacles without replanning of the global plan?

aarontan gravatar image aarontan  ( 2018-07-04 17:11:32 -0500 )edit

The move_base framework gives the local planners some leeway to choose a different path or abort, but each local planner will implement that slightly differently. That isn't really the topic of this question, so if you want more details I suggest you ask a new question.

ahendrix gravatar image ahendrix  ( 2018-07-05 17:22:28 -0500 )edit

@ahendrix, ok will do, please check my latest question and let me know if you know anything!

aarontan gravatar image aarontan  ( 2018-07-05 17:45:06 -0500 )edit

Question Tools



Asked: 2016-08-11 11:12:09 -0500

Seen: 190 times

Last updated: Aug 11 '16