Last updated 2024-10-29 21:34:15.790605.
Version v1.2.1. Made by Ethan Uppal and Utku Melemetci.
This repository hosts Ethan's implementation of Iterative Closest Points (ICP) as applied to scan matching. It is a first step in my project to implement Simultaneous Localization and Mapping (SLAM).
You can view installation instructions at INSTALL.md.
I host the usage information and documentation at cornellev.github.io/icp/. Please see there for information on how to download and how to use the library.
You can build the documentation yourself locally with make docs
.
The main page will be located at docs/index.html
relative to the project root.
Started work on a new implementation (read this paper).
It passes all make test
tests.
Here is the performance currently:
ICP ALGORITHM BENCHMARKING
=======================================
* Method name: test1
* Number of trials: 50
* Burn-in period: 0
* Ideal convergence threshold: 20
* Min cost: 19.4709
* Max cost: 19.4709
* Median cost: 19.4709
* Mean cost: 19.4709
* Min iterations: 7 (real: 7)
* Max iterations: 7 (real: 7)
* Median iterations: 7 (real: 7)
* Mean iterations: 7 (real: 7)
* Average time per invocation: 0.00413281s
The algorithm runs extremely fast now. We only need it to run at 6hz with our current LiDAR.
It also matches quite well. Below is the result of running this ICP implementation on two point clouds obtained within the workspace.
However, there is still remove for improvement with regard to outlier rejection and other parts of the algorithm (for instance, adopting a point-to-line metric).