UMich-BipedLab / Contact-Aided-Invariant-EKF

Example code for contact-aided invariant extended Kalman filtering.
BSD 3-Clause "New" or "Revised" License
75 stars 26 forks source link

Contact-Aided Invariant EKF

This repository contains an example Matlab/Simulink implementation of the contact-aided invariant extended Kalman filter. The filter was designed for use on a Cassie-series biped robot, however it can be easily modified for other systems. The included measurement dataset was generated through a simulation of Cassie walking.

This filter is developed and explained in: "Contact-aided Invariant Extended Kalman Filtering for Legged Robot State Estimation".

A C++ library and ROS wrapper for the filter is currently under development.

Running the example

  1. Open Matlab to the "matlab_example" folder.

  2. Run the scipt "run_RIEKF_test.m". This will open and run a simulink model with the measurement data stored in the "/data" 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 "example_code/RIEKF_InitFcn.m" script. This script is automatically executed when the simulink model is run.

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: