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

robot_pose_ekf

asked 2012-01-12 07:55:47 -0500

Alireza gravatar image

Hi all, I am using robot_pose_ekf for combining my IMU data with robot odometry to have a better odometry. but the big problem is that this node does not publish the result of combination as a (nav_msgs/Odometry) message. So does any body already solved this issue? i tried writing another node for converting output of this node (geometry_msgs/PoseStamped) to (nav_msgs/Odometry) but i faced some problem about setting the values of covariances.

So any help would be appreciated.

edit retag flag offensive close merge delete

3 Answers

Sort by ยป oldest newest most voted
2

answered 2012-01-13 01:18:08 -0500

DimitriProsser gravatar image

Although robot_pose_ekf does not OUTPUT covariances, it must take in covariances. That means that your sensor inputs (wheel_odometry, vo, and imu_data) must produce their own covariances. The IMU's covariance can be obtained from the datasheet. As for wheel odometry and visual odometry, take a look at what the pr2 does for covariances. You could probably just run the pr2 simulator and look at the output of wheel_odometry and vo to see what they have.

When you try to re-compile the output of pose_ekf into a nav_msgs/Odometry message, you don't need to fill in the covariances unless the node that subscribes to odometry_combined also needs covariance.

As for obtaining the twist, no, robot_pose_ekf will not give you twist. The twist portion of the message is a measure of the robot's velocities in each direction. You would have to take this data from one of the input messages (probably wheel_odometry). In this case, wheel_odometry would be the only source of twist in the x, y, and theta directions.

edit flag offensive delete link more
0

answered 2012-01-12 17:19:49 -0500

Alireza gravatar image

the default values of covariances of robot's odometry is zero, and according to http://ros.org/wiki/robot_pose_ekf/Troubleshooting the diagonal elements of the covariance matrix cannot be zero, so what about that? i have to set my own covariances? how can i calculate them?

Also according to http://www.ros.org/doc/api/nav_msgs/html/msg/Odometry.html Odometry has 2 part containing pose & twist, but the output of robot_pose_ekf and according to http://www.ros.org/doc/api/geometry_msgs/html/msg/PoseStamped.html geometry_msgs/PoseStamped has only Pose part!

thanks for your help.

edit flag offensive delete link more
1

answered 2012-01-12 11:22:04 -0500

Unless your application needs the covariance, you can leave those fields in the Odometry message set to their default value. Since the EKF does maintain an estimate of the covariance, I'm sure it wouldn't be too hard to modify robot_pose_ekf publish that as well if you need it.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2012-01-12 07:55:47 -0500

Seen: 1,470 times

Last updated: Jan 13 '12