Rosanswers logo

Hello there !

I'm trying to fuse data from different sensors (IMU, GPS and a rotating lidar) into an extended Kalman filter provided by robot_localization in order to drive my rover using move_base. I'm running ros indigo on ubuntu 14.04.

With the right packages i was able to publish three topics for my three sensors :

  • /gps/fix : sensor_msgs/NavSatFix
  • /imu/data : sensor_msgs/Imu
  • /pose_with_covariance_stamped : geometry_msgs/PoseWithCovarianceStamped (let's call it /pose)

Here's how my navsat_transform_node and ekf_localization node are set :


  • Input : /imu/data, /gps/fix, /odometry/filtered
  • Output : /odometry/gps


  • Input : /imu/data, /pose, /odometry/gps
  • Output : /odometry/filtered

According to REP105 and what I've read in this forum I think my frames are set correctly, see the tf tree below:

image: (in the link below if not working)

Now when i plot my topics in rviz i see /odometry/filtered drifting to infinity and beyond and i don't understand why ... Looking at my tf tree it looks like the map->utm transform is bugged, however i got this message in my navsat_transform terminal :

INFO[1470904382.578813798]: World frame->utm transform is Origin: (-4945736.2295890189707 677781.95941346196923 -470427.19763114472153) Rotation (RPY): (0.085877088202917686854, -0.066475908266541719471, -1.5762575291089457874)

My initial pose doesn't look right, as for my orientation i've offseted my imu and my robot is almost pointing north so that looks correct.

I have rosbag all my topics and put my launch files link:[here](https://www.dropbox.com/sh/obevfkity8y31tv/AADz-HDo7QbMdbeaX_7gOR6za?dl=0"debug files dropbox") or link:here , i'd be glad if you could have a look at it and give me a clue of what i'm doing wrong ! I made the rosbag while the robot wasn't moving and pointing almost north.

Thank you for your time.


Correcting the coma to a dot in value="0,00436332" (in navsat.launch) didn't change the drifting

Originally posted by aymar111 on ROS Answers with karma: 1 on 2016-08-11

Post score: 0


1 Answer 1


Rosanswers logo

Just had a quick look through your navsat_transform_template.launch file. It looks like your magnetic declination parameter is set to


With a comma "," instead of a dot "." I'm pretty sure this should be a dot. Otherwise, navsat_transform won't be using the correct magnetic declination, so its /odomtry/gps output will have a systematic error in it which will mess up everything from that point onwards. In general, double check your magnetic declination and yaw offset - I can't stress enough how critical those parameters are. If they aren't correct then navsat_transform will just give you erroneous data.

I'll have a look through the bag file when I can just to confirm if this is your problem.

Originally posted by M@t with karma: 2327 on 2016-08-11

This answer was ACCEPTED on the original site

Post score: 0

Original comments

Comment by aymar111 on 2016-08-12:
Thank you for noticing this mistake ! I'm adding an EDIT to my post, but whatsoever i ran with the "." instead of the "," and it didn't change the drifting ..


Your Answer

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