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

robot_localization and gmapping - how the transform should be done?

asked 2017-08-22 19:54:31 -0600

Ago gravatar image

updated 2017-08-22 23:53:19 -0600

We are trying to use robot_localization and gmapping. What we have done so far: we use gmapping to publish the transform between map -> odom. Then we tried to apply gps, imu and odom using ekf from robot_localization. We use navsat_transform and one ekf node to fuse all the data. This node does odom -> base_link transform. This setting does not work very well.

Here: (page 4) there is a picture: localization and navigation

This indicates, that I should fuse gmapping and navsat_transform result in one localization node. Should this be done? How should it be done? Is there an example of it?

edit retag flag offensive close merge delete


Can you tell us how are you configuring gmapping and robot_localization? Specifically the parameters base_frame and odom_frame in gmapping and the parameter base_link_frame in robot_localization.

Also, have you tried other robot_localization packages? like robot_pose_ekf for example.

juanlu gravatar image juanlu  ( 2017-08-23 04:30:02 -0600 )edit

As explained in the presentation video: The upper is a either-or relation. So you fuse either gmapping or amcl or navsat_transform. This is because all these nodes provide an absolute position.

Humpelstilzchen gravatar image Humpelstilzchen  ( 2017-08-23 04:32:43 -0600 )edit

Haven't tried robot_pose_ekf. base frame is base_footprint, odom frame is odom. In robot_localization, base_link_frame is base_footprint. About Humpelstilzchen's comment, how could I use laser and gps together?

Ago gravatar image Ago  ( 2017-08-23 04:47:48 -0600 )edit

I am have the same issue. Any help please.

Deep gravatar image Deep  ( 2017-10-14 22:46:13 -0600 )edit

Hey, Ago and Deep, did you get your setup to work?

Robbe_C gravatar image Robbe_C  ( 2018-04-02 14:22:47 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2017-10-03 03:00:12 -0600

Tom Moore gravatar image

That's a pretty complex configuration! You're not fusing the gmapping output into the EKF in some way, are you?

This is also probably not going to play well with loop closure, unless you have a GPS with high accuracy.

In any case, it's almost impossible to make a determination about what's not working in your setup without at least your launch files and sample input messages.

edit flag offensive delete link more


Hello Tom Moore

How would you handle this problem if you had gmapping, imu and GPS? Is it possible to use the gmapping with a gps? or do you have to choose between them?

Robbe_C gravatar image Robbe_C  ( 2018-04-08 03:29:52 -0600 )edit

The problem is that your map frame will constantly be shifting any time gmapping closes a loop, so the navsat_transform_node transform to your world frame will be constantly invalidated. Once you _have_ a map, then you can use GPS data, I suppose, but only _after_ you localize in the map.

Tom Moore gravatar image Tom Moore  ( 2018-04-09 03:50:20 -0600 )edit

Ok, thanks for the reply! If I understand it correctly, it's not a good idea to use gps in combination with gmapping. Is it a better idea to use a combination of gmapping and imu if the laser scanner data is available and use gps in combination with imu if it's not available?

Robbe_C gravatar image Robbe_C  ( 2018-04-09 04:07:21 -0600 )edit

The answer to this is far too long to put in a comment, I'm afraid. Please ask a separate question. Thanks.

Tom Moore gravatar image Tom Moore  ( 2018-04-12 02:32:34 -0600 )edit

Ok, I have posted my question:

Robbe_C gravatar image Robbe_C  ( 2018-04-12 06:16:06 -0600 )edit

Question Tools

1 follower


Asked: 2017-08-22 19:54:31 -0600

Seen: 1,274 times

Last updated: Oct 03 '17