iterative closest points
CEV ICP algorithm library
|
Scan-matching is a method for localization that uses high-frequency LiDAR data. This project is Ethan's implementation of algorithms for scan-matching. Please read this document to learn more about the math.
Item | Location |
---|---|
Documentation | icp::ICP |
Repository | https://github.com/cornellev/icp |
Contents | Overview Features Install Usage |
sensor_msgs::LaserScan
.First, download and install the dependencies. Only eigen3 is necessary for the library. If you only wish to build the library, install eigen3 only. The remaining dependencies are only for the visualization tool.
Dependency | Library Location (at which) | Header Location (under which) |
---|---|---|
eigen3 | N/A | /usr/local/include/eigen3/ |
SDL2 | $(sdl2-config --cflags) | $(sdl2-config --libs) |
My SDL2 wrapper | /usr/local/lib/libsdlwrapper.a | /usr/local/include/sdlwrapper/ |
libcmdapp2 | /usr/local/lib/libcmdapp.a | /usr/local/include/ |
libconfig | /usr/local/lib/libconfig.a | /usr/local/include/ |
There is also a dependency on simple-test if you want to run the tests (make test
). Please follow the installation instructions there.
It is likely that you already have SDL installed. If not, follow the instructions at the link provided (which goes to the SDL website). Do the same for eigen3. Then, to download and install the remaining dependencies, run
If you encounter any errors in this process, please open an issue on the corresponding repositories, and I will try to resolve it as soon as possible.
Finally, you can clone the icp repository.
You should run make test
to make sure everything has been setup correctly for the library.
Follow the instructions in the INSTALL.md document to install locally. The library contains tested implementations of different ICP algorithms. Common to all of them is the icp::ICP interface, the documentation for which describes how to construct and use these implementations. Read the documentation of the specific implementations for more information:
Optionally, read Writing an ICP Instance to use your own ICP implementations.
The following command visualizes the two LiDAR scans at the given files. Instructions are printed to standard output.
You can benchmark with make bench
; by default, this will pass -mvanilla
.
The program itself can be built with
which will create an executable named main
in the working directory. You can query ./main -h
and ./main -v
for usage and versioning information.