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

How cost_maps and global/local planner works?

asked 2013-12-11 03:23:07 -0600

RB gravatar image

updated 2013-12-11 03:29:51 -0600

Hi, I have gone through http://wiki.ros.org/move_base; but some doubt comes to my mind.

  1. Why odometry affects only the local planner and how?
  2. Sensor data may be fed into both local and global cost map. Which module in ROS decides this?
  3. How global cost_map influence the global planner (similarly local cost_map/local planner) for effective planning?

4) What the internal navigation messages (flown from global planner to local planner) contains?

Thanks for your time..

edit retag flag offensive close merge delete

Comments

For parameters tuning (that isn't simple, as Dereck says), I suggest you to look at this tutorial: http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide

Tirjen gravatar image Tirjen  ( 2013-12-11 04:56:00 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
5

answered 2013-12-11 04:36:50 -0600

Dereck gravatar image
  1. The global planner only uses the current map and the radius of the robot to plan a path from point A to B. It doesn't care how the robot moves in order to accomplish this trajectory.

    The local planner uses the motion model of the robot to find the best set of commands that accomplish the global plan. For a skid steer robot for example, it would 'simulate' every forward and rotational velocity that it is capable of performing and choosing the best set of velocities that accomplish the goal.

  2. You define these relationships in your launch file for the navigation stacks.

  3. the cost map is used to avoid obstacles, set the inflation radius slight larger than the radius of your robot to make sure the planner avoids the corners of objects as it goes around them.

  4. You can see all of the messages passed between ros nodes with 'rostopic list', 'rostopic echo /topic', and rqtgraph.

    Specifically however, the global planner subscribes to the map, the robot's current position, and the specified goal position and publishes a path between those points

    The local planner subscribes to the map, and the global planner's path. It then publishes a cmd_vel message to the robot.

It's a complex system to wrap your head around at first, because ROS is a huge ecosystem, but once it 'clicks' I think you'll agree that it's quite simple. (but difficult to tune perfectly... :P

This is the navigation stack for my robot, perhaps it will serve as a good example? https://github.com/dawonn/ros-pioneer3at

Happy robot-ing!

edit flag offensive delete link more

Comments

@Derek Thanks a lot

RB gravatar image RB  ( 2013-12-12 07:25:40 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2013-12-11 03:23:07 -0600

Seen: 2,096 times

Last updated: Dec 11 '13