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

# /odom and /vo priority in robot_pose_ekf

Hi, my setup currently is using ccny_rgbd to provide /vo data and then using this with gmapping. If I publish odometry transforms then the vo corrects the odometry too much, what is the best way to change odom so it has a higher priority and robot_pose_ekf takes into account odom more than vo?

edit retag close merge delete

Sort by ยป oldest newest most voted

This is controlled by the covariance part of the of the nav_msgs/Odometry and sensor_msgs/Imu messages subscribed to by robot_pose_ekf. Larger values in the covariance will cause that source to be "trusted" less.

more

Do you have any idea what sort of number range to put them as or can you link to some theory about it? Thanks. This is how it is set up for the /vo; I don't understand covariance matrices, I found this code on an answer here. Can you explain why 3 of the numbers are the 9s? odom.pose.covariance = boost::assign::list_of(VISUAL_COVARIANCE)(0)(0)(0)(0)(0) + (0)(VISUAL_COVARIANCE)(0)(0)(0)(0) + (0)(0)(999999)(0)(0)(0) + (0)(0)(0)(999999)(0)(0) + (0)(0)(0)(0)(999999)(0) + (0)(0)(0)(0)(0)(VISUAL_COVARIANCE); From: http://answers.ros.org/question/66489/combine-visual-odometry-data-from-ccny_rgbd-with-encodersimu/

( 2013-07-26 09:55:28 -0500 )edit

The 999s are just large values, signaling a large covariance and are probably there because there is no information for the specific values (they are probably at z, roll, pitch, leaving non-large values for x,y, yaw).

( 2013-07-27 05:46:59 -0500 )edit

Are you able to point out to me which column is used for yaw? Thanks. Edit: I changed (6,6) and it seems to have worked, but if I have done it wrong please correct me, thanks.

( 2013-07-27 08:39:58 -0500 )edit