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?