0
$\begingroup$

Rosanswers logo

In navigation tutorial : http://www.ros.org/wiki/navigation/Tutorials/RobotSetup#Costmap_Configuration_.28local_costmap.29_.26_.28global_costmap.29

I found that in global_costmap_params.yaml exist static_map: true.

Also in local_costmap_params.yaml exist static_map: false.

What's the difference between them?

Why global set to true,and local set to false?

If I want to do online slam with gmapping(means dynamically build a map when navigation), what setting should I use?

Thank you~


Originally posted by sam on ROS Answers with karma: 2570 on 2011-07-17

Post score: 7

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The difference between the global and local costmap is that the global planner uses the global costmap to generate a long-term plan while the local planner uses the local costmap to generate a short-term plan. There are many different ways to configure the two costmaps, but in the tutorials only the global costmap is configured to use a map while the local planner operates in the odometric frame.

Setting the "static_map" parameter to true just means that you'll be taking an outside map source for navigation. That map could come from SLAM or it could come from a source like the map_server. You shouldn't have to change the way you've configured the navigation stack to run SLAM, you'll just replace the map_server with your SLAM algorithm of choice.

To see an example of the navigation stack running with SLAM, you might want to check out the navigation_stage package. Specifically, you'll be interested in the move_base_gmapping_5cm.launch file.

The "static_map" parameter is, admittedly, a bit poorly named. It should probably be something like "external_map" instead, but there are legacy reasons for why it has its current name. There was a time where the navigation stack couldn't support dynamically changing maps, but now it handles them just fine.


Originally posted by eitan with karma: 2743 on 2011-07-18

This answer was ACCEPTED on the original site

Post score: 17


Original comments

Comment by eitan on 2011-07-25:
Yes, gmapping can just replace the map_server with global static_map=true. An example of setting static_map=false, rolling_window=true would be a situation where you want to run navigation for the robot in the odometric frame without any map at all.

Comment by sam on 2011-07-19:
So can gmapping just replace map_server with global static_map=true? And when is the case/example that I should set global static_map=false,rolling window=true?

Comment by eitan on 2011-07-19:
For the tutorial, only the global costmap uses an a priori map, so the static_map parameter is set to true. The local costmap, however, only uses local sensor information to build an obstacle map, so static_map is set to false.

Comment by sam on 2011-07-18:
So in navigation tutorial, why global static_map set to true,and local static_map set to false?

Comment by ctguell on 2013-11-03:
@eitan is there a way to add a fake obstacle for the local planner to take into acount in the planning?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.