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

How does robot_pose_ekf work?

asked 2012-08-31 04:20:20 -0600

Kevin gravatar image

I am very familiar with Kalman filters, but not with BFL code. I have looked at the source code and also searched for some technical description of what is going on in robot_pose_ekf and can't figure it out. There was a similar question here which is asking a similar thing, but no useful answer has been given.

Question: What are the equations used in the Kalman filter ... can't figure them out from the code?

I am beginning to agree with comments from @mjcarroll here that this isn't really a Kalman filter like I am use to (model based) and more of a way to blend sensor values based on covariance.

Goal: do some inertial navigation work using an IMU and video odometry. I want to make sure robot_pose_ekf doesn't do this already.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2012-08-31 10:54:01 -0600

jbohren gravatar image

updated 2012-08-31 11:11:56 -0600

From what I can see from the code, the process model is defined in this file. The question you referenced asked for the transition and measurement matrices, but because this odometry process model is nonlinear, this matrix is not constant. Instead, it is generated by linearizing the process model about the current estimate. Check out the wikipedia page for the EKF for more on this.

You can see the computation of the expected value and the partial derivatives with respect to the process inputs (or if you like probabalistic terms more than systems terms, the conditioning variables). Anyone who is using robot_pose_ekf should make sure this process model is consistent with his or her robot's dynamics.

For the sensor data, these are all linear models, so you can immediately see their definition like the odom measurement model defined here. Similarly, anyone using this should make sure these measurement models are appropriate.

The interfaces that all these things use are defined by the BFL (Bayesian Filtering Library) API, specifically, interfaces for representing an analytic system model with gaussian uncertainty and an analytic conditional gaussian along with the linear model representations.

edit flag offensive delete link more

Question Tools


Asked: 2012-08-31 04:20:20 -0600

Seen: 915 times

Last updated: Aug 31 '12