MIT License

项目介绍

MIT-SPARK/KISS-Matcher 是一个托管在 GitHub 上的开源项目,主要使用 C++ 编写,采用 MIT License 许可证,目前获得 814 个 Star、97 次 Fork。

仓库全名
MIT-SPARK/KISS-Matcher
开源许可证
MIT License
Star 数
814
Fork 数
97
未关闭 Issue
7

README 摘要

KISS-Matcher Keep it simple, make it scalable. (May 19, 2026) Python package is now available on PyPI :package: Installation All installations are set up automatically in an out-of-the-box manner. Run the command below to install basic dependency packages: make deps auto-detects the host OS: Linux (Ubuntu/Debian): installs the toolchain via apt-get. macOS (Apple Silicon / Intel): installs the toolchain via Homebrew…

完整内容见 GitHub 原始 README 或本页 。

常见问题

KISS-Matcher 用什么语言开发?

主要使用 C++ 编写,采用 MIT License 许可证,目前有 814 个 Star。

KISS-Matcher 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 KISS-Matcher 的源码?

可以直接克隆仓库:git clone https://github.com/MIT-SPARK/KISS-Matcher.git,默认分支为 main;安装与运行步骤见仓库 README。

KISS-Matcher 最近还在维护吗?

仓库最近一次更新为 9月30日,当前有 7 个未关闭 Issue;Star 数为 814,可作为社区活跃度的参考。

关于

KISS-Matcher: Fast, Robust, and Scalable Registration + ROS2 SLAM examples

描述取自 GitHub 官方 API,中文内容由 GitRead 中文社区 编辑团队整理。

语言占比

C++
CMake
Makefile
Python
Shell

Release

README

KISS-Matcher


C++ Core Build Python Build



KISS Matcher

Keep it simple, make it scalable.

(May 19, 2026) Python package is now available on PyPI
pip install kiss-matcher


:package: Installation

All installations are set up automatically in an out-of-the-box manner.

Run the command below to install basic dependency packages:

git clone https://github.com/MIT-SPARK/KISS-Matcher.git
cd KISS-Matcher
make deps

make deps auto-detects the host OS:

  • Linux (Ubuntu/Debian): installs the toolchain via apt-get.
  • macOS (Apple Silicon / Intel): installs the toolchain via Homebrew. AppleClang does not ship with OpenMP, so we pull in llvm + libomp from Homebrew and the Makefile automatically routes the C++ build through $(brew --prefix llvm)/bin/clang++. If you have not installed Homebrew yet, install it first from https://brew.sh.

After that, follow the C++ or Python installation instructions below.


C++

Run the command below. That’s it.

git clone https://github.com/MIT-SPARK/KISS-Matcher.git
cd KISS-Matcher
make cppinstall
Warning 警告

If you encounter the following error:

CMake Error: Not a file: ${your_directory}/KISS-Matcher/cpp/kiss_matcher/build/_deps/robin-build/cmake_install.cmake
CMake Error: Error processing file: ${your_directory}/KISS-Matcher/cpp/kiss_matcher/build/_deps/robin-build/cmake_install.cmake
make: *** [Makefile:42: cppinstall] Error 1

it means that the ROBIN package is already installed in your environment. In that case, simply run the following command:

make cppinstall_matcher_only
Q. How does it work?

The cppinstall command is encapsulated in the Makefile. and cppinstall calls deps to automatically install the dependencies. In addition, KISS-Matcher requires ROBIN. But it’s also automatically linked via robin.cmake

After installation, kiss_matcher and robin are placed in the installation directory using the following commands in the Makefile, respectively: @$(SUDO) cmake --install cpp/kiss_matcher/build @$(SUDO) cmake --install cpp/kiss_matcher/build/_deps/robin-build

Q. Building from a non-Makefile flow on macOS?

If you invoke cmake directly on macOS instead of going through make cppinstall, point CMake at the Homebrew LLVM toolchain so OpenMP is available:

LLVM_PREFIX=$(brew --prefix llvm)
cmake -S cpp/kiss_matcher -B build \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_C_COMPILER="$LLVM_PREFIX/bin/clang" \
      -DCMAKE_CXX_COMPILER="$LLVM_PREFIX/bin/clang++" \
      -DUSE_SYSTEM_ROBIN=OFF
cmake --build build -j$(sysctl -n hw.ncpu)

USE_SYSTEM_ROBIN=OFF forces a fresh ROBIN via FetchContent and avoids picking up an older / incompatible system install. On Linux this flag is not required, but it is harmless.

Example codes

We provide plentiful scalable registration examples. Please visit our cpp/example directory and follow the instructions.

How To Use in Other Packages in C++?

See CMakeLists.txt in cpp/examples.


Python

Install from PyPI (Linux x86_64 manylinux_2_28+, macOS 14+ arm64; sdist build elsewhere):

pip install kiss-matcher           # core only (numpy)
pip install kiss-matcher[viz]      # adds viser for the visualization demo

Or install editably from a source checkout:

pip install --upgrade pip setuptools wheel scikit-build-core ninja cmake build
pip install -e python/
Quickstart

After installing, run the synthetic-data smoke test (no external data, no viser):

python python/examples/quickstart.py

It generates 5k random points, applies a known rigid transform, and prints the recovered rotation/translation errors. Expect sub-degree rotation error and sub-centimetre translation error.

For real point clouds with 3D visualization (requires [viz] extra):

python python/examples/run_kiss_matcher.py \
    --src_path /path/to/src.pcd \
    --tgt_path /path/to/tgt.pcd \
    --resolution 0.3

We also provide out-of-the-box python registration examples. Go to python directory and follow the instructions.


Citation

This study is the culmination of my continuous research since my graduate school years. If you use this library for any academic work, please cite our original paper, and refer to other papers that are highly relevant to KISS-Matcher.

See bibtex lists
 @inproceedings{lim2025icra-KISSMatcher,
   title={{KISS-Matcher: Fast and Robust Point Cloud Registration Revisited}},
   author={Lim, Hyungtae and Kim, Daebeom and Shin, Gunhee and Shi, Jingnan and Vizzo, Ignacio and Myung, Hyun and Park, Jaesik and Carlone, Luca},
   booktitle={Proc. IEEE Int. Conf. Robot. Automat.},
   year={2025},
   codeurl   = {https://github.com/MIT-SPARK/KISS-Matcher},
   note   = {Accepted. To appear}
 }
 @article{Lim24ijrr-Quatropp,
   title={{Quatro++: R}obust global registration exploiting ground segmentation for loop closing in {LiDAR SLAM}},
   author={Lim, Hyungtae and Kim, Beomsoo and Kim, Daebeom and Mason Lee, Eungchang and Myung, Hyun},
   journal={Int. J. Robot. Res.},
   pages={685--715},
   year={2024},
   doi={10.1177/02783649231207654}
 }
@inproceedings{Lim22icra-Quatro,
    title={A single correspondence is enough: Robust global registration to avoid degeneracy in urban environments},
    author={Lim, Hyungtae and Yeon, Suyong and Ryu, Soohyun and Lee, Yonghan and Kim, Youngji and Yun, Jaeseong and Jung, Euigon and Lee, Donghwan and Myung, Hyun},
    booktitle={Proc. IEEE Int. Conf. Robot. Automat.},
    pages={8010--8017},
    year={2022}
}
@InProceedings{Shi21icra-robin,
    title={{ROBIN:} a Graph-Theoretic Approach to Reject Outliers in Robust Estimation using Invariants},
    author={J. Shi and H. Yang and L. Carlone},
    booktitle={Proc. IEEE Int. Conf. Robot. Automat.},
    note = {arXiv preprint: 2011.03659, \linkToPdf{https://arxiv.org/pdf/2011.03659.pdf}},
    pdf="https://arxiv.org/pdf/2011.03659.pdf",
    year={2021}
}
@article{Yang20tro-teaser,
    title={{TEASER: Fast and Certifiable Point Cloud Registration}},
    author={H. Yang and J. Shi and L. Carlone},
    journal={IEEE Trans. Robot.},
    volume = 37,
    number = 2,
    pages = {314--333},
    note = {extended arXiv version 2001.07715 \linkToPdf{https://arxiv.org/pdf/2001.07715.pdf}},
    pdf={https://arxiv.org/pdf/2001.07715.pdf},
    Year = {2020}
}
@inproceedings{Zhou16eccv-FGR,
    title={Fast global registration},
    fullauthor={Zhou, Qian-Yi and Park, Jaesik and Koltun, Vladlen},
    author={Q.Y. Zhou and J. Park and V. Koltun},
    booktitle={Proc. Eur. Conf. Comput. Vis.},
    pages={766--782},
    year={2016}
}

Contributing

Like KISS-ICP, we envision KISS-Matcher as a community-driven project, we love to see how the project is growing thanks to the contributions from the community. We would love to see your face in the list below, just open a Pull Request!

Acknowledgements

This project was supported by the NRF grant funded by the government of South Korea, Ministry of Science and ICT (MSIT) (No. RS-2024-00461409).

We sincerely express our gratitude to Prof. Cyrill Stachniss’ group at the University of Bonn for their generosity in allowing us to use the term KISS. In particular, I (Hyungtae Lim) personally deeply appreciate Tizziano Guadagnino, Benedikt Mersch, Louis Wiesmann, and Jens Behley for their kind support and collaboration during my time at the University of Bonn. Without them, KISS-Matcher would not exist today. A special thanks goes to my co-author, Nacho, for taking the time to thoroughly teach me modern C++ and modern CMake. We would also like to express our gratitude to Kenji Koide for his exceptional effort in open-sourcing the wonderful open source, small_gicp, which plays a crucial role in enhancing the efficiency of our pipeline. His dedication to the research community continues to inspire and enable advancements in the field.

Again, their generosity, expertise, and contributions have greatly enriched our work, and we are truly grateful for their support.

评论

暂无评论