Quick start

Installation

Dependencies

  • Eigen 3 :

    • Linux ( Ubuntu and similar )

      apt-get install libeigen3-dev
    • OS X

      brew install eigen
  • lt::optional : included in the external folder

From source

To generate manif Python bindings run,

git clone https://github.com/artivis/manif.git
cd manif
python3 -m pip install .

Use manifpy in your project

from manifpy import SE3

...

state = SE3.Identity()

...

Tutorials and application demos

We provide some self-contained and self-explained executables implementing some real problems. Their source code is located in manif/examples/. These demos are:

  • se2_localization.py : 2D robot localization based on fixed landmarks using SE2 as robot poses. This implements the example V.A in the paper.
  • se3_localization.py : 3D robot localization based on fixed landmarks using SE3 as robot poses. This re-implements the example above but in 3D.
  • se2_sam.py : 2D smoothing and mapping (SAM) with simultaneous estimation of robot poses and landmark locations, based on SE2 robot poses. This implements a the example V.B in the paper.
  • se3_sam.py : 3D smoothing and mapping (SAM) with simultaneous estimation of robot poses and landmark locations, based on SE3 robot poses. This implements a 3D version of the example V.B in the paper.
  • se3_sam_selfcalib.py : 3D smoothing and mapping (SAM) with self-calibration, with simultaneous estimation of robot poses, landmark locations and sensor parameters, based on SE3 robot poses. This implements a 3D version of the example V.C in the paper.
  • se_2_3_localization.py : A strap down IMU model based 3D robot localization, with measurements of fixed landmarks, using SE_2_3 as extended robot poses (translation, rotation and linear velocity).

To run a demo, simply go to the manif/examples/ folder and run,

cd manif/examples
python3 se2_localization.py