// the find
MIT-SPARK/KISS-Matcher
KISS-Matcher: Fast, Robust, and Scalable Registration + ROS2 SLAM examples
KISS-Matcher is a C++ and Python library for global point cloud registration. It finds the rigid transform between two clouds without an initial guess, using feature matching, ROBIN-based outlier rejection, and a GNC solver. It is aimed at LiDAR and RGB-D researchers and robotics engineers who need to align scans or build loop closures in SLAM, and it ships ROS 2 examples for both.
The pipeline is split into separate files: FasterPFH for features, ROBINMatching for correspondence outlier rejection, and GncSolver for the pose fit. You can read or test one stage without the others. The C++ core is exposed to Python through a pybind module and published to PyPI, and the quickstart runs a synthetic 5k-point check with no data download, which is a sensible smoke test for a new install. The ROS 2 side goes beyond a single demo: ros/src/slam has a loop detector, loop closure, and a pose graph manager, so the library is shown inside a full SLAM loop, not only pairwise registration. CI runs separate C++ and Python workflows on Ubuntu and macOS, and the README explains the macOS OpenMP problem (AppleClang ships without it) and routes the build through Homebrew LLVM instead of hiding it.
The README has no benchmark numbers and no comparison against TEASER++, plain RANSAC, or FPFH matching, so the speed and accuracy case rests on the 2025 paper. If you need to choose between this and an alternative, you will have to read the paper or run your own data. `make deps` and `make cppinstall` run apt-get or Homebrew and install into system prefixes with sudo, and the ROBIN warning shows that an existing ROBIN install breaks cppinstall and needs a different target. Read the Makefile before running it on a machine you care about. Windows is absent from the README and the badges. PyPI wheels cover Linux x86_64 and macOS arm64 only, so everywhere else pip falls back to an sdist build that needs a working CMake and compiler toolchain. The ROS 2 examples are badged for Humble only, and the quickstart's accuracy expectation applies to synthetic data, not real scans.