KISS-ICP: In Defense of Point-to-Point ICP — Accurate and Robust 3D Point Cloud Registration

Cyrill Stachniss
StachnissLab
Published in
4 min readOct 4, 2022

Robots need to know how they move when navigating through unknown spaces. This ego-motion estimation is often called odometry estimation. While most sensor and other LiDAR odometry systems progressed by adding more complexity to the ego-motion estimation process, we flip that around and move in the opposite direction. By removing a majority of parts from today’s complex registration systems and by focusing on the core elements, we can build a surprisingly effective system that is simple to realize and can operate under various environmental conditions using different LiDAR sensors. That is what this article is about. All the technical details are shared, and the software as well — so try yourself how powerful fairly simple systems can be, beating most of the complex systems out there.

KISS-ICP Running on KITTI

Pose Estimation is Important

Incremental pose estimation is an essential building block for any mobile robot that needs to navigate in unknown environments autonomously. In the LiDAR sensing domain, most of the current sensor odometry pipelines typically use some form of ICP algorithm to estimate the poses of the robot incrementally while it moves through unexplored spaces. Even though LiDAR odometry has been an active area of research over the last three decades, the design of most systems is coupled with assumptions about the robot motion and the structure of the environment to achieve accurate and robust alignment results. So far, there is no 3D LiDAR odometry approach free of parameter tuning, which works out of the box — in different scenarios, using arbitrary LiDAR sensors, supporting different motion profiles and consequently types of robots such as ground and aerial systems. Thus, there is always some hand-tuning needed, especially when targeting high accuracy. To move forward to eliminating this need, there is KISS-ICP (paper, software), a simple yet powerful point cloud registration pipeline and ready to use. KISS-ICP has been developed by Ignacio Vizzo and pushed to its limits with the support of Tiziano Guadagnino, Benedikt Mersch, Louis Wiesmann, Jens Behley, and Cyrill Stachniss, hopefully toward a new gold standard baseline for LiDAR odometry.

Back to the Roots

We go back to the roots, back to classical point-to-point Iterative Closest Point or ICP introduced more than 30 years ago by Besl and McKay in 1992. We address sequentially operating LiDAR odometry and challenge current systems that prohibit current approaches from generalizing to different environments, sensor resolutions, and motion profiles using a single configuration. We present simple yet effective reasoning that allows us to minimize the need for parameter tuning.

Caption: Point cloud maps generated online by KISS-ICP registering cloud by cloud and estimating the robot’s motion. The scans have been recorded using different sensors, different point densities, different orientations, and different shooting patterns.

Main Contributions of KISS-ICP

The main contribution of our work is a simple yet highly effective approach to LiDAR odometry that accurately computes a robot’s pose online during navigation. We identify the core components and show that we obtain competitive odometry with the proper use of ICP that builds on basic reasoning about the system’s physics and the sensor data’s nature. The key ingredients are:
- Motion prediction and scan de-skewing;
- Spatial scan sub-sampling;
- An adaptive threshold for correspondence search;
- ICP with a robust kernel.
These blocks make our approach effective and, at the same time, generalize easily. We explicitly go for a “keep it small and simple” approach. We show that exploiting point-to-point ICP is on par with state-of-the-art odometry systems, can accurately compute the robot’s odometry in many environments and motion profiles with the same system configuration, and provides an effective solution to motion distortion without relying on IMUs or wheel odometers. Through this simplicity, KISS-ICP has only a few parameters, most of which do not need to be adjusted. In sum, “good old point-to-point ICP” is a surprisingly powerful tool. There is little need to move to more sophisticated approaches if the basic components are done well.

KISS-ICP in Action

With our approach, we participated, for example, in the KITTI Odometry Benchmark. As it turns out, KISS-ICP ranks second among all open-source systems submitted to KITTI and ninth among closed-source systems — often being optimized specifically to KITTI. For us, this situation is different. We use our standard parameter set consisting of only seven values, which work basically everywhere. Finally, our system operates faster than the sensor frame rate, roughly at 40 Hz. We believe that KISS-ICP will become a new baseline for future sensor odometry systems and a solid, high-performance starting point for future approaches. The software is simple and robust, installs via pip install, and performs well, pushing the state-of-the-art in 3D LiDAR odometry to its limits and challenging most of the more sophisticated systems.

Install and Run KISS-ICP on Your Machine

Only a few commands need to be typed into your terminal window, and KISS-ICP will be running on your machine, reproducing all results presented in the paper. Not only on KITTI, also on several other datasets such as MulRan, NCLT, or the Newer College dataset:

$ pip install kiss-icp
$ kiss_icp_pipeline [YOUR-DATASET]

In case you need help, try:

$ kiss_icp_pipeline — help

KISS-ICP Help

More Information

KISS-ICP: In Defense of Point-to-Point ICP — Simple, Accurate, and Robust Registration If Done the Right Way by Ignacio Vizzo, Tiziano Guadagnino, Benedikt Mersch, Louis Wiesmann, Jens Behley, and Cyrill Stachniss. Submission to the IEEE Robotics and Automation Letters on 14.09.2022, paper currently under review. Preprint available at arXiv.

[Paper@arXiv] https://arxiv.org/abs/2209.15397
[Software] https://github.com/PRBonn/kiss-icp

--

--