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

Using robot_localization package

asked 2014-08-20 10:46:07 -0500

gerhenz gravatar image

Hi, I'm trying to use the robot_localization package in my project to improve my turtlebot pose estimate.

I've read the package page and the tutorials but I'm still confused in some parts:

  1. In the package page it states that the ekf_localization is the only node in the package. However, in the GPS integration tutorial it is used utm_transform_node. Do I need to use both of them? Is utm_transform_node output one of the inputs for ekf_localization? If yes, should I use the same IMU data for both nodes?

  2. I've attached a cellphone to the robot and I'm retrieving the data from its internal sensors. Since my GPS data is already in latitude/longitude format, may I just publish this data in the fix topic in the utm_odometry_node from the gps_common package? This way I wouldn't need to use the nmea_navsat_driver package.

  3. I know I'm supposed to use the data from the cellphone accelerometer as my IMU data. But I'm also receiving the data from the inclinometer sensor which provides me roll/pitch/yaw angle values. Wouldn't this data be more useful than the one from the accelerometer? Could it be easily implemented in the position estimate?

I'm sorry for the several questions, but I'm quite new to ROS and some things are still not very clear to me.


edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-08-20 12:59:47 -0500

Murilo F. M. gravatar image

Take my answer with a pinch of salt, as I have started setting up robot_localization on my system, but I haven't tested it yet.

For question 1) Yes, you need to use both nodes. utm_transform_node will only broadcast a transform from global UTM coordinates to your robot's frame, and requires nav_msgs/Odometry messages with raw UTM coordinates, so you also need utm_odometry_node. For the second part, yes, utm_transform_node should publish messages on the topic subscribed by ekf_localization. Lastly, yes, you may use the same IMU data for both nodes.

Regarding question 2) As long as you publish sensor_msgs/NavSatFix messages populated with data from a GPS device (and a timestamp) on the topic subscribed by utm_odometry_node, you do not need nmea_navsat_driver.

Finally, question 3) Why not use both? You would need to configure both sensors with robot_localization, but fusion of an arbitrary number of sensors is claimed to be one of the advantages over robot_pose_ekf.

I'll post a comment once I have configured and tested my system with robot_localization.

edit flag offensive delete link more


Everything is clearer now. Thanks Murilo!

gerhenz gravatar image gerhenz  ( 2014-08-20 13:59:14 -0500 )edit

It appears that utm_transform_node is missing (not installed) if the robot_localization package is installed using apt-get. There is an issue in the CMakeLists.txt. There is a pull request on github to fix this issue.

Murilo F. M. gravatar image Murilo F. M.  ( 2014-08-21 17:10:04 -0500 )edit

This has been fixed in release x.1.4 (x is dependent upon your ROS version). It may take a week or two before the Debian packages are updated, so until then, just grab the source.

Tom Moore gravatar image Tom Moore  ( 2014-08-24 08:05:27 -0500 )edit

answered 2014-08-20 13:31:23 -0500

Tom Moore gravatar image

updated 2014-08-20 13:35:44 -0500

@Murilo F. M. already pretty much hit the nails on their respective heads. Re: (1), I need to update the documentation. ekf_localization_node was the only node at the time I wrote it, but then I added utm_transform_node to aid in GPS integration, and then neglected to update the wiki. For (3), robot_localization doesn't (yet) use linear accelerometer data. The only IMU data it uses is orientation and rotational velocity. If your accelerometers are also providing some estimate of orientation, then you can use both.

EDIT: However, utm_transform_node will want something with a yaw estimate, which probably won't be available from your accelerometer.

edit flag offensive delete link more


Therefore, I assume the best approach (at least for now) is to use the data from the inclinometer sensor since it provides the orientation angles of the robot. Thanks Tom!

gerhenz gravatar image gerhenz  ( 2014-08-20 14:02:24 -0500 )edit

That sounds correct to me. You're welcome!

Tom Moore gravatar image Tom Moore  ( 2014-08-20 14:05:49 -0500 )edit

Thanks a lot, Tom! It's good to know I'm going in the right direction.

Murilo F. M. gravatar image Murilo F. M.  ( 2014-08-20 14:28:48 -0500 )edit

Dear All, I dont have GPS Modeule, I have to use this package for Pose estimation, I am newbie plz help me in this. I am using Firebird robot

KDROS gravatar image KDROS  ( 2014-12-30 04:54:41 -0500 )edit

Please post your issue as a new question.

Tom Moore gravatar image Tom Moore  ( 2014-12-30 07:17:05 -0500 )edit

Question Tools



Asked: 2014-08-20 10:46:07 -0500

Seen: 1,529 times

Last updated: Aug 20 '14