MultiBody State Estimation (MBSE) C++ Library

The MultiBody State Estimation (MBSE) C++ library

A library for multibody forward and inverse dynamics, state estimation, and parameter identification.

Related papers and approaches implemented in this repository:

Paradigm #1: Based on factor-graphs

Forward and inverse dynamics, closed kinematic chains constraints solved as factors in a factor graphs, and more.

For the theory behinds this work, refer to :


Paradigm #2: Particle filter estimator

A Bayesian filter has been implemented as a particle filter. Only planar dynamics models have been tested. For the theory behinds this work, refer to :

Open video



In Ubuntu, install dependencies with:

    sudo apt-get install build-essential cmake libsuitesparse-dev libmrpt-dev libgtsam-dev

To build:

    mkdir build
    cd build
    cmake ..  
    # If you see no errors, go on, otherwise fix them!
    make        # To compile the library and examples
    make test_legacy   # To run unit tests

You should also be able to compile this project under Windows and Visual Studio.

Using mbse as a library in a user program

In your CMake project, add:

    find_package(mbse REQUIRED)
    # then in your target:
    target_link_libraries(${PROJECT_NAME} mbse::mbse)

For CMake to find the library, in cmake-gui or ccmake, set the variable mbse_DIR to BUILD_DIR/cmake, where BUILD_DIR is the compilation directory where you built MBSE.