Rosanswers logo

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.


Originally posted by gerhenz on ROS Answers with karma: 53 on 2014-08-20

Post score: 0


2 Answers 2


Rosanswers logo

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.

Originally posted by Murilo F. M. with karma: 806 on 2014-08-20

This answer was ACCEPTED on the original site

Post score: 5

Original comments

Comment by gerhenz on 2014-08-20:
Everything is clearer now. Thanks Murilo!

Comment by Murilo F. M. on 2014-08-21:
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.

Comment by Tom Moore on 2014-08-24:
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.


Rosanswers logo

@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.

Originally posted by Tom Moore with karma: 13689 on 2014-08-20

This answer was NOT ACCEPTED on the original site

Post score: 3

Original comments

Comment by gerhenz on 2014-08-20:
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!

Comment by Tom Moore on 2014-08-20:
That sounds correct to me. You're welcome!

Comment by Murilo F. M. on 2014-08-20:
Thanks a lot, Tom! It's good to know I'm going in the right direction.

Comment by KDROS on 2014-12-30:
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

Comment by Tom Moore on 2014-12-30:
Please post your issue as a new question.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.