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

Navigation with Gmapping

asked 2014-04-03 19:10:59 -0600

ctguell gravatar image

Im using navigation with gmapping and wanted to know that if in the global_costmap_params.yaml the static map should be true or false? I have it with false and its working fine. the problem is that when i look in rxgraph the move_base node DOES NOT subscibe to the /map but to /tf published by gmapping. Can anyone explai to me why is it that /map message does not appear in rxgraph?

edit retag flag offensive close merge delete

Comments

@demmeln when i look in the rxgraph i only see the move_base node related to navigation i dont see the any costmap, but it appears that the costmap subscribes to the /map. So why is there no costmap node and is the /map only usefull for localisation as @AbuIbra ? i have to explain whats the use of /map

ctguell gravatar image ctguell  ( 2014-04-04 07:21:46 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted
2

answered 2014-04-04 11:37:23 -0600

paulbovbel gravatar image

You definitely should be running the costmap with a static global map for gmapping. If you're using a laser scanner for global navigation, you will get artifacts and potentially false openings/obstacles whenever gmapping decides to relocalize itself.

Depending on your ros distribution (i.e. hydro and layered costmaps), you can also subscribe to updates on the /map topic, which would make it work properly with gmapping.

edit flag offensive delete link more

Comments

@paulbovbel when i put the static global map true the navigation does not work and i get the following error. You have set map parameters, but also requested to use the static map. Your parameters will be overwritten by those given by the map server. So i dont know what to do, also the /tf message that goes from gmapping to move_base what does it send? @demmeln

ctguell gravatar image ctguell  ( 2014-04-04 20:16:55 -0600 )edit

move_base will need transforms from your robot frame to your costmaps' global frames. That's usually odom for local, and map for global.

paulbovbel gravatar image paulbovbel  ( 2014-04-05 05:00:21 -0600 )edit

Even though you set a width, height and resolution for your costmap, those will be overwritten by the map received from gmapping, so you can probably leave those blank.

paulbovbel gravatar image paulbovbel  ( 2014-04-05 05:01:06 -0600 )edit

@paulbovbel thanks, when you say theres a tf from map to global whats its use?? to use map as the globalcostmap?? thanks

ctguell gravatar image ctguell  ( 2014-04-05 07:17:24 -0600 )edit
0

answered 2014-04-04 01:33:29 -0600

demmeln gravatar image

updated 2015-12-15 17:03:16 -0600

EDIT: Apparently this has changed, see first comment.

I'm not quite sure, but from the documentation ( http://wiki.ros.org/costmap_2d#Subscr... ) it seems that with a static map, the costmap is initialized only once at the beginning by making a service call to the the map server. It does not contiuesly update from a "map" topic. I'm not sure if an updateing gridmap can be achieved with the current implementation or if you have to write a custom layer for the global costmap.

edit flag offensive delete link more

Comments

1

I don't know if it was this way back when you answered this, but the global costmap can handle updating the map. When a new map appears on the map topic, the costmap will re-initialize its map.

kwiesz91 gravatar image kwiesz91  ( 2015-09-14 17:17:31 -0600 )edit

Good to know. AFAIK it was different back in the day.

demmeln gravatar image demmeln  ( 2015-12-15 17:00:01 -0600 )edit
0

answered 2014-04-04 02:18:22 -0600

AbuIbra gravatar image

updated 2014-04-04 02:22:53 -0600

move_base node DOES NOT subscibe to the /map but to /tf published by gmapping

This is normal, I guess, since the costmap is created using the laser detections (or whatever source of mesures about obstacles you are using) and it is updated according to what these sensors are seeing in real time. (cause if not you won't be avoiding moving obstacles like people and chairs moved so often for example)

/map is only used for localisation (whether by launching GMapping which does it while building the map OR by loading some previously built map and using amcl), and sending goals intuitively in rviz using the right tool..

edit flag offensive delete link more

Comments

This is not quite true, but only for the local costmap. The global costmap used for the global planner is initialized from the gridmap, but only once at the beginning it seems.

demmeln gravatar image demmeln  ( 2014-04-04 03:55:07 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2014-04-03 19:10:59 -0600

Seen: 1,870 times

Last updated: Dec 15 '15