Skip to content
/ ICET Public

Real-time LIDAR Odometry and Mapping with Robust Error Bounds

Notifications You must be signed in to change notification settings

mcdermatt/ICET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ICET

This repository contains code for our Iterative Closest Ellipsoidal Transform (ICET) point cloud registration algorithm. C++ code is provided in a ROS package to demonstrate real-time HD Map generation. Also included is a python implementation of ICET and interactive jupyter notebook with inline 3D visualization so our algorithm can be tested without needing to set up a ROS enviornment on your machine.

Compile

Use the following commands to download and compile ICET

cd ~/catkin_ws/src
git clone https://github.com/mcdermatt/ICET
cd ..
catkin_make

This package was developed and tested with ROS Noetic

Real-time HD Map generation

Begin by sourcing your workspace and running a roscore

source ~/catkin_ws/devel/setup.bash
roscore

The included fake_lidar node provides an interface for loading popular autonomous driving datasets from a .csv, .bin, or .npy format and publishing point cloud messages in the same format as the Velodyne VLP-32 sensor. Modify the fake_lidar.py file to point towards the correct local directory containing your dataset and run this node in a new terminal with:

source ~/catkin_ws/devel/setup.bash
rosrun icet fake_lidar 

Alternatively, the included package can be run directly off a ROSBAG using the following command. Make sure that the simpleMapMaker.cpp code is subscribed to the correct topic!

source ~/catkin_ws/devel/setup.bash
rosbag play my_bag.bag

A real time mapping demo can be run with the following node in another terminal:

source ~/catkin_ws/devel/setup.bash
rosrun icet map_maker_node

HD Maps are published as PointCloud2 messages in the "/hd_map" topic which can be viewed via RViz

A "snail trail" showing the trajectory of the vehicle is also published as a PointCloud2 message "/snail_trail"

Alternatively, an odometry node can be run with the following command, which outputs transforms and the accurate error bounds to a standard odometry message:

rosrun icet odometry_node

Benchmarking

Runtime for scan registration is dependant on sensor resolution, computer hardware, voxel resolution, and the number of iterations the algorithm is allowed to run. In our testing, we were able to achieve a optimal registration accuracy with a mean registration time of 35ms for 64-channel data running for 7 iterations on a Ryzen 5800x CPU and with a resolution of 75 azimuthal voxels and 24 elevation voxels.

Additional Tools

An OpenGL visualizer is included which can be helpful for tuning the C++ implementation of ICET for new sensors and enviornments. Exaple use is demonstrated in the icet_cpp_demo. which is located within the /src/ directory.

Cite ICET

Thank you for citing our work if you have used any of our code:

ICET Online Accuracy Characterization for Geometry-Based Laser Scan Matching

@article {ICET,
  author = {McDermott, Matthew and Rife, Jason},
  title = {ICET Online Accuracy Characterization for Geometry-Based Laser Scan Matching},
  volume = {71},
  number = {2},
  elocation-id = {navi.647},
  year = {2024},
  doi = {10.33012/navi.647},
  publisher = {Institute of Navigation},
  issn = {0028-1522},
  URL = {https://navi.ion.org/content/71/2/navi.647},
  eprint = {https://navi.ion.org/content/71/2/navi.647.full.pdf},
  journal = {NAVIGATION: Journal of the Institute of Navigation}
}

Mitigating Shadows in LIDAR Scan Matching Using Spherical Voxels

@ARTICLE{SphericalICET,
  author={McDermott, Matthew and Rife, Jason},
  journal={IEEE Robotics and Automation Letters}, 
  title={Mitigating Shadows in LIDAR Scan Matching Using Spherical Voxels}, 
  year={2022},
  volume={7},
  number={4},
  pages={12363-12370},
  doi={10.1109/LRA.2022.3216987}}
}

DNN Filter for Bias Reduction in Distribution-to-Distribution Scan Matching

@article{mcdermott2022dnn,
  title={DNN Filter for Bias Reduction in Distribution-to-Distribution Scan Matching},
  author={McDermott, Matthew and Rife, Jason},
  journal={arXiv preprint arXiv:2211.04047},
  year={2022}
}

About

Real-time LIDAR Odometry and Mapping with Robust Error Bounds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published