Ask Your Question
6

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 : http://www.ros.org/wiki/navigation/Tu...

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
13

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

Comments

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
1
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

5 followers

Stats

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

Seen: 8,895 times

Last updated: Jul 20 '11