orat / GAAlign

Robust Sampling-based Point Cloud Registration using Geometric Algebra

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GAAlign

A point cloud registration library based on projective geometric algebra (PGA). Official implementation of the paper Robust Sampling-based Point Cloud Registration using Geometric Algebra.

alt text

Update

  • 05.10.22 This paper has officially been awarded the "Best Paper Award: GA Applied to Computational Performance" at the ICACGA 2022.

Results

alt text

Installation

Note: Under windows we strongly recommend the use of vcpkg to install the 3rd party libraries.

Required 3rd party libraries:

  • Boost (Components: filesystem, algorithm, program_options)
  • Eigen3
  • PCL (Components: common, filters)

Optional 3rd party libraries (Only used by the testbench)

  • matplotlibcpp (which requires a working installation of python 3.x)
  • OpenCV

Optional 3rd party libraries (used for visualization)

  • PCL (Components: visualization)

Gaalop Precompiler

This software uses the GAALOP Precompiler for creating optimized c++ code from geometric algebra directly inside c++. For this to work you need a recent build of the Precompiler (e.g. from the repository: https://github.com/CallForSanity/Gaalop)

When compiling the project with Cmake you need to specify the following option:

-DGPC_ROOT_DIR=...

If you want to use maxima for creating symbolically optimized code, you should also specify the options:

-DGPC_WITH_MAXIMA=True
-DMAXIMA_BIN=...

To enable Common Sub Expression optimization for better performance you can use the option:

-DGPC_USE_GCSE=True

Example Build calls

When using vcpkg in Windows you can use:

-DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" -DGPC_ROOT_DIR="C:\Users\Kai\Documents\Uni\Master\Semester4\GeometricAlgebraicComputing\GAALOP_Precompiler\GPC" -DGPC_USE_GCSE=True -DENABLE_TESTBENCH=True

Datasets

A selection of models that can be used to test the application can be downloaded from Link.

To run the testbench, for reproducing the comparison to other algorithms, you need to download the source models and unpack them in the resources/models/ folder. These models are used as part of the testbench and the full generated dataset is output to the Datasets folder. A precalcualted dataset will be available at this point at a later point in time.

Usage

The application takes two parameters as input: First the source point cloud (which should be aligned) and secondly the target point cloud (which stays fixed).

gaalign-app.exe source.ply target.ply

The testbench does not require any arguments.

About

Robust Sampling-based Point Cloud Registration using Geometric Algebra

License:MIT License


Languages

Language:C++ 97.3%Language:CMake 2.5%Language:C 0.2%Language:Shell 0.0%