Ask Your Question

What's the difference between global and local costmap's static_map?

asked 2011-07-17 14:48:02 -0500

sam gravatar image

updated 2011-07-17 14:49:10 -0500

In navigation tutorial :

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~

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2011-07-18 14:53:25 -0500

eitan gravatar image

updated 2011-07-20 11:42:26 -0500

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.

edit flag offensive delete link more


So in navigation tutorial, why global static_map set to true,and local static_map set to false?
sam gravatar imagesam ( 2011-07-18 22:49:04 -0500 )edit
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.
eitan gravatar imageeitan ( 2011-07-19 05:17:22 -0500 )edit
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?
sam gravatar imagesam ( 2011-07-19 20:46:32 -0500 )edit
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.
eitan gravatar imageeitan ( 2011-07-25 06:35:16 -0500 )edit

@eitan is there a way to add a fake obstacle for the local planner to take into acount in the planning?

ctguell gravatar imagectguell ( 2013-11-03 15:55:58 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2011-07-17 14:48:02 -0500

Seen: 8,895 times

Last updated: Jul 20 '11