UMich-BipedLab / Cassie_StateEstimation

Code for various extended Kalman filter state estimation methods for Cassie.
BSD 3-Clause "New" or "Revised" License
39 stars 13 forks source link

Cassie State Estimation

This repository contains a Matlab/Simulink implementation of the contact-aided invariant extended Kalman filter. The filter was designed for use on a Cassie-series biped robot using Simulink Real-Time. The filter uses IMU, contact, and encoder measurements to estimate the base pose and velocity.

This filter is developed and explained in: "Contact-aided Invariant Extended Kalman Filtering for Legged Robot State Estimation". Please cite this paper if the filter is being used (the BibTeX entry is located at the bottom of the README).

Requirements

Running the example

  1. Open Matlab to the "Examples" folder.

  2. Execute the scipt "run.m". This will open and run a simulink model with the measurement data stored in the "mat" folder. After the simulation finishes, a few plots will appear analyzing the results of the state estimator.

  3. The filter parameters can be changed in the "Estimators\RightInvariant_EKF\RIEKF_InitFcn.m" script. This script is automatically executed when the simulink model is run.

Simulink Library

The simulink library "Libraries\lib_StateEstimation.slx" contains several useful state estimation blocks including the right-invariant extended Kalman filter, a ground reaction force estimator, and a kinematic velocity estimator.

Tunable Parameters

The following parameters will affect the actual noisy measurements coming into the filter:

The following parameters will affect how the filter is run:

The following parameters affect the initial condition and covariances used for the process and measurement models:

The following parameters set the initial covariance for the state estimate:

Citations

The contact-aided invariant extended Kalman filter is described in: