Skip to content

flomobility/Flo_MINS

Repository files navigation

MINS

Docker Image CI

An efficient, robust, and tightly-coupled Multisensor-aided Inertial Navigation System (MINS) which is capable of flexibly fusing all five sensing modalities (IMU, wheel encoders, camera, GNSS, and LiDAR) in a filtering fashion by overcoming the hurdles of computational complexity, sensor asynchronicity, and intra-sensor calibration.

Exemplary use case of MINS:

  • VINS (mono, stereo, multi-cam)
  • GPS-IMU (single, multiple)
  • LiDAR-IMU (single, multiple)
  • wheel-IMU
  • Camera-GPS-LiDAR-wheel-IMU or more combinations.

alt text alt text

Key Features

  • Inertial(IMU)-based multi-sensor fusion including wheel odometry and arbitrary numbers of cameras, LiDARs, and GNSSs (+ VICON or loop-closure) for localization.
  • Online calibration of all onboard sensors (check exemplary results).
  • Consistent high-order state on manifold interpolation improved from our prior work (MIMC-VINS) and dynamic cloning strategy for light-weight estimation performance.
  • Multi-sensor simulation toolbox for IMU, camera, LiDAR, GNSS, and wheel enhanced from our prior work (OpenVINS)
  • Evaluation toolbox for consistency, accuracy, and timing analysis.
  • Very detailed options for each sensor enabling general multi-sensor application.

Dependency

MINS is tested on Ubuntu 18 and 20 and only requires corresponding ROS (Melodic and Noetic).

  • Default Eigen version will be 3.3.7 (Noetic) or lower, but if one has a higher version the compilation can be failed due to thirdparty library (libpointmatcher) for LiDAR.

ROS2

For instructions and dependencies for building the package on ros2 you can look into the Dockerfile. After building and sourcing, you should be able to start the simulation with

ros2 run mins simulation mins/config/simulation/config.yaml

You can then start rviz2 to look at the path as estimated through MINS.

For running in real mode you can use:

ros2 run mins subscribe mins/config/shanks/config.yaml

And then play a bag in another terminal, for example from the euroc_mav, after converting it using rosbags:

ros2 bag play maggi_bag/magg_1

Again, you can look at the paths and the pose estimated by MINS with rviz2.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published