Ask Your Question

robot_pose_ekf publish rate? [closed]

asked 2012-06-12 06:43:56 -0500

jdlangs gravatar image

updated 2012-06-12 07:13:37 -0500

Lorenz gravatar image

I'm having trouble getting the robot_pose_ekf node running correctly. I have a nav_msgs::Odometry topic from a GPS sensor publishing at 1Hz on the 'vo' topic and an sensor_msgs::Imu publishing at 20 Hz on the 'imu_data' topic. However, over the course of a minute long run, the odom_combined topic is only publishing 5-6 messages.

The parameters I've used in the launch file are:

param name="output_frame" value="odom_combined"<br>
param name="freq" value="20.0"<br>
param name="sensor_timeout" value="1.0"<br>
param name="odom_used" value="false"<br>
param name="imu_used" value="true"<br>
param name="vo_used" value="true"<br>

My data is being published from a bag file. Could this be an issue at all? Why else might the ekf node not be publishing at the rate given by freq?

Thanks, Josh

edit retag flag offensive reopen merge delete

Closed for the following reason the question is answered, right answer was accepted by jdlangs
close date 2017-11-21 11:09:59.662488


Thanks, for some reason, every time I read that wiki page I understood it to mean it would publish once just a single initial data point had been published on each sensor topic.

jdlangs gravatar image jdlangs  ( 2012-09-06 05:35:23 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted

answered 2012-07-16 19:33:30 -0500

sethu chidam gravatar image

since your gps is operating at 1 Hz, i think the maximum frequency with which you can publish is 1 Hz. This is because according to basic ekf, the predictor is updated as and when the data from the imu is available and then when the gps data is available, the values are corrected and then published. I think this is reason why you can't publish at 20 Hz.

ATB! (PS: I am not sure if my answer is right, but it is as per my limited knowledge...Please correct me if my answer is wrong)

edit flag offensive delete link more

answered 2012-07-17 01:37:00 -0500

cagatay gravatar image

Yes you are right

here is the paragraph about timing on robot_pose_ekf 's wiki

Imagine the robot pose filter was last updated at time t_0. The node will not update the robot pose filter until at least one measurement of each sensor arrived with a timestamp later than t_0. When e.g. a message was received on the odom topic with timestamp t_1 > t_0, and on the imu_data topic with timestamp t_2 > t_1 > t_0, the filter will now update to the latest time at which information about all sensors is available, in this case to time t_1. The odom pose at t_1 is directly given, and the imu pose at t_1 is obtained by linear interpolation of the imu pose between t_0 and t_2. The robot pose filter is updated with the relative poses of the odom and imu, between t_0 and t_1.

edit flag offensive delete link more

Question Tools


Asked: 2012-06-12 06:43:56 -0500

Seen: 1,008 times

Last updated: Jul 17 '12