Rosanswers logo


There is no filtered odometry from robot_localization when I put visual odometry as an input. Interesting thing is that robot_localization successfully produces a filtered odometry when I put wheel odometry instead of visual odometry. Both visual odometry and wheel odometry uses same ros message (i.e. nav_msgs/Odometry). The launch file is follows.

<node pkg="robot_localization" type="ekf_localization_node" name="ekf_localization" clear_params="true">

  <param name="frequency" value="20"/>
  <param name="sensor_timeout" value="0.1"/>
  <param name="two_d_mode" value="true"/>

  <param name="map_frame" value="map"/>
  <param name="odom_frame" value="odom_combined"/>
  <param name="base_link_frame" value="base_footprint"/>
  <param name="world_frame" value="map"/> 

  <param name="transform_time_offset" value="0.0"/>

  <param name="odom0" value="/visual_odometer/odometry"/>  

  <rosparam param="odom0_config">[true, true, false,
                                  false, false, true,
                                  false, false, false,
                                  false, false, false,
                                  false, false, false]</rosparam>
  <param name="odom0_differential" value="false"/>

Any comments would be appreciated.

[Example of wheel odometry] image description

[Example of visual odometry] image description

Originally posted by Soonhac on ROS Answers with karma: 38 on 2015-10-06

Post score: 1

Original comments

Comment by Tom Moore on 2015-10-07:
Can you please post a sample message from each input?

Comment by Soonhac on 2015-10-07:
Hi Tom, I post sample messages above.

Comment by theDrGray on 2015-10-15:
Having the same issue with the output from rtabmap. Did you find a solution?

Comment by Tom Moore on 2015-10-16:
Do the frame_ids in rtabmap start with forward slashes?


1 Answer 1


Rosanswers logo

Looking at the messages, I think you need to ditch the forward slashes in the visual odometry frame_ids. Also, make sure you're providing transforms from those frame_ids to your robot's frames. Also also, I would recommend fusing the linear velocities rather than the absolute positions, though you can fuse the orientations from the VO as is.

Originally posted by Tom Moore with karma: 13689 on 2015-10-08

This answer was ACCEPTED on the original site

Post score: 0


Your Answer

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