Kalman Filter
卡尔曼滤波KFCommonFusing a model's prediction with a noisy measurement, weighted by how much each is trusted, to estimate a system's state.
Proposed by Rudolf Kálmán in his 1960 paper ‘A New Approach to Linear Filtering and Prediction Problems,’ and later used for orbit estimation in the Apollo program. Each cycle has two steps: prediction, where a motion model projects the current state and its uncertainty (covariance) forward; and update, where a new measurement z corrects that prediction via x̂ = x̂⁻ + K(z − Hx̂⁻), with x̂⁻ the predicted value, H mapping the state to the measurement it should produce, and K the Kalman gain — the more trustworthy the measurement, the larger K becomes. For a linear model with Gaussian noise of known covariance, this is the optimal estimator. Robot models are usually nonlinear, so variants such as the Extended Kalman Filter (EKF) and Unscented Kalman Filter (UKF) are commonly used instead, fusing IMU, encoder, and vision data to estimate a robot body's pose and velocity.
ExampleThe open-source control code for MIT's Cheetah 3 and Mini Cheetah uses a linear Kalman filter to estimate body position and velocity: IMU acceleration drives the prediction step, leg kinematics gives each foot's relative position and velocity as the measurement, and trust in each leg is adjusted based on whether it is touching the ground.
- Also called
- KF, Linear Kalman Filter
- Related
- Extended Kalman Filter · Unscented Kalman Filter · State Estimation · Multi-Sensor Fusion · Inertial Measurement Unit · Leg Odometry
- Sources
- Wikipedia: Kalman filter
Kalman, A New Approach to Linear Filtering and Prediction Problems, J. Basic Engineering 82 (1960)
MIT Cheetah-Software: PositionVelocityEstimator.h(LinearKFPositionVelocityEstimator)