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

doubt regarding working of base_local_planner and oscillations about the global plan

asked 2015-05-29 08:13:31 -0500

Naman gravatar image

updated 2015-05-29 16:30:36 -0500

Hi all,

I have a doubt regarding the working of the base_local_planner, specifically Trajectory Rollout planner. According to the above link, the local planner samples in the robot's control space, performs forward simulation, evaluates different trajectories and finally picks the highest scoring trajectory, My question is how does the local planner makes sure that the robot follows that exact trajectory? Does it use a PID Controller or something like that? The problem I am having is that robot does not follow the global plan accurately but oscillates about the global plan. I have tried tuning different parameters and followed which reduced the oscillations but its still not very good, the robot still oscillates about the global plan. So, I was wondering if it uses something like PID, how can I tune those parameters?

Update 1: One more thing, how does the base_local_planner uses odom (nav_msgs/Odometry) and gives a better estimate for /cmd_vel? There has to be some kind of a controller (maybe only P Control). Sorry If I am being really naive, but it would be great if someone can clear my doubt or point me in the right direction?

Any help will be appreciated.

Thanks a lot.
Naman Kumar

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2015-05-29 08:28:27 -0500

dornhege gravatar image

Short answer would be: It doesn't.

The local planner itself is run in a control loop by move_base, i.e., the local trajectory isn't passed off to another component to be executed. Only the velocity commands at the beginning of this trajectory are send to the robot (which must implement these within its controller). In the next timestep the trajectories are reevaluated given the current pose, sensor data, etc.

If nothing unexpected changed, the trajectory that was best before should still be the best in the next step and thus the velocity commands are send again. This closes the loop.

edit flag offensive delete link more


@dornhege, Thanks! So, once the base_local_planner publishes the velocities ("cmd_vel"), there should be a base controller (like a PID) (move_base) running to make sure that the robot follows the trajectory, right?

Naman gravatar image Naman  ( 2015-05-29 08:48:45 -0500 )edit

No, the base controller only follows velocity commands, but not a trajectory and these are usually resend by the local planner frequently. The local planner should make sure the robot follows a trajectory. It assumes that the base controller correctly follows the given velocity commands.

dornhege gravatar image dornhege  ( 2015-06-01 03:40:46 -0500 )edit

Question Tools

1 follower


Asked: 2015-05-29 08:13:31 -0500

Seen: 244 times

Last updated: May 29 '15