Skip to content

Minimal, robust, accurate and real-time LiDAR odometry [ROS Version]

License

Notifications You must be signed in to change notification settings

chengwei0427/mad-icp

 
 

Repository files navigation

MAD-ICP Ros Version

This is a Ros Version Mad-ICP

New Features

  1. ROS support,with a simple viewer
  2. multi-type lidar support(velodyne,ouster,robosense,and pandar)

-------------------------------------------------------------

MAD-ICP

It Is All About Matching Data -- Robust and Informed LiDAR Odometry

A minimal, robust, accurate, and real-time LiDAR odometry.

This version is mainly for reviewers. Soon, you can install this system via `pip` and have a proper viewer. Our preprint is available for more details and results.

Building

Building has been tested on Ubuntu 20.04 (with g++).

The following external dependencies are required.

Dependency Version(s) known to work
Eigen 3.3
OpenMP
pybind11

After obtaining all dependencies, the application can be built with CMake, for example, as follows:

cd mad-icp
mkdir build && cd build && cmake .. && make -j

Running

A few other Python packages need to be installed for running, namely: numpy, pyyaml, and rosbags. You can find the specific versions in the requirements.txt. We suggest to create a virtual env and run pip3 install -r requirements.txt.

We provide a Python launcher for both rosbags and bin formats (we are currently working on bin format luncher; for this reason, you do not find configurations for KITTI and Mulran). The configuration file is important for the sensor characteristics and extrinsic information (most of the time, ground truths are not in the LiDAR frame). The internal parameters are in configurations/params.cfg; all the experiments have been run with this same set.

How to run (rosbag), make sure estimate_path and data_path point to a folder:

cd apps
python3 rosbag_runner.py --data_path /path_to_bag_folder/ --estimate_path /path_to_estimate_folder/ --dataset_config ../configurations/datasets/dataset_config_file --mad_icp_config ../configurations/params.cfg --num_cores 4 --num_keyframes 4 --realtime

Our runner directly saves the odometry estimate file in KITTI format (homogenous matrix row-major 12 components); in the near future, we will provide more available formats like TUM. Our pipeline is anytime realtime, therefore you can play with parameters num_keyframes and num_cores, if you have enough computation we suggest to increase these (we run demo with 16 and 16), if not you can leave it in the proposed way.

About

Minimal, robust, accurate and real-time LiDAR odometry [ROS Version]

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages

  • C++ 79.6%
  • CMake 13.9%
  • C 6.5%