ov_msckf namespace

Contents

This is an implementation of a Multi-State Constraint Kalman Filter (MSCKF) [10] which leverages inertial and visual feature information. We want to stress that this is not a "vanilla" implementation of the filter and instead has many more features and improvements over the original. In additional we have a modular type system which allows us to initialize and marginalizing variables out of state with ease. The key features of the system are the following:

  • Sliding stochastic imu clones
  • First estimate Jacobians
  • Camera intrinsics and extrinsic online calibration
  • Time offset between camera and imu calibration
  • Standard MSCKF features with nullspace projection
  • 3d slam feature support (with five different representations)
  • Generic simulation of trajectories through and environment

We suggest those that are interested to first checkout the State and Propagator which should provide a nice introduction to the code. Both the slam and msckf features leverage the same Jacobian code, and thus we also recommend looking at the UpdaterHelper class for details on that.

Classes

class Propagator
Performs the state covariance and mean propagation using imu measurements.
class RosVisualizer
Helper class that will publish results onto the ROS framework.
class State
State of our filter.
class StateHelper
Helper which manipulates the State and its covariance.
struct StateOptions
Struct which stores all our filter options.
class UpdaterHelper
Class that has helper functions for our updaters.
class UpdaterMSCKF
Will compute the system for our sparse features and update the filter.
struct UpdaterOptions
Struct which stores general updater options.
class UpdaterSLAM
Will compute the system for our sparse SLAM features and update the filter.
class VioManager
Core class that manages the entire system.