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

Covariance/filter errors when launching robot_pose_ekf + iRobot Create

asked 2011-03-25 02:46:51 -0500

Pi Robot gravatar image

updated 2011-03-25 02:47:59 -0500

Hello,

I am running an iRobot Create with the Brown driver and Sparkfun's 9D Razor IMU. To talk to the IMU I am using Adam Stambler's imu_9drazor package. The Brown Create driver successfully provides odometry data on the /odom topic and I can teleop the robot on the /cmd_vel topic. The imu_9drazor node successfully produces data on the /imu and /imu/imu_raw topics. Now I'd like to combine the two odometry sources using the robot_pose_ekf package. However, when I launch the robot_pose_ekf node, I get a stream of error messages like the following:

[ERROR] [1301063933.943333309]: filter time older than odom message buffer
[ERROR] [1301063933.998367333]: Covariance specified for measurement on topic wheelodom is zero

The launch file I am using to bring up the robot_pose_ekf node is as follows:

<launch>
  <node pkg="avr_bridge" type="bridge_node.py" name="imu_node" args="$(find imu_
9drazor)/config/imu.yaml">
   <remap from="imu" to="imu/imu_raw"/>
   </node>
   <node pkg="imu_9drazor" name="imu_msg_converter" type="msgConverter.py">
     <remap from="imu_raw" to="imu/imu_raw"/>
   </node>

  <node pkg="robot_pose_ekf" type="robot_pose_ekf" name="robot_pose_ekf">
    <remap from="imu_data" to="imu" />
    <param name="freq" value="10.0" />
    <param name="sensor_timeout" value="1.0" />
    <param name="publish_tf" value="true" />
    <param name="odom_used" value="true" />
    <param name="imu_used" value="true" />
    <param name="vo_used" value="false" />
    <param name="debug" value="false" />
    <param name="self_diagnose" value="false" />
  </node>
</launch>

Any thoughts on what I am missing?

Thanks!

patrick

edit retag flag offensive close merge delete

Comments

Hi patrick have did you manage to get the brown create drivers working with robotpose_ekf? I wanted to use the normal turtlebot node but it doesn't work since i have that usb problem (but it works with the create).

Sentinal_Bias gravatar image Sentinal_Bias  ( 2013-06-04 21:18:22 -0500 )edit

I made some modifications and it got rid of the covariance errors but now robot_pose_ekf does not publish odom_combined...

Sentinal_Bias gravatar image Sentinal_Bias  ( 2013-06-04 21:20:08 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2011-03-25 03:34:35 -0500

fergs gravatar image

Patrick, the Brown package does not fill in the covariance matrix part of the odometry message. I imagine that covariances are needed by the ekf estimation. You might be interested to see the covariance matrix that has been added to the turtlebot driver (around line 297 here https://kforge.ros.org/turtlebot/turtlebot/file/2154e9c1c701/turtlebot_node/nodes/turtlebot_node.py)

You could probably copy that covariance matrix into the brown driver as well (and maybe submit a patch to brown for inclusion, as it seems a good idea to publish a valid matrix).

edit flag offensive delete link more

Comments

Thanks Fergs. That sounds like a good theory and I'll try it out this weekend when I have the robot in front of me again.
Pi Robot gravatar image Pi Robot  ( 2011-03-25 06:26:06 -0500 )edit

Hi i added the covariance filling code from 297 and it seem to work. But i think the turtlebot drivers publishes encoder data as well as imu data in separate topics, so i suppose i have to do this as well. are there any patches available for the brown drivers?

Sentinal_Bias gravatar image Sentinal_Bias  ( 2013-06-04 22:21:05 -0500 )edit

Question Tools

Stats

Asked: 2011-03-25 02:46:51 -0500

Seen: 3,455 times

Last updated: Mar 25 '11