nabo
Overview
nabo is a fast K Nearest Neighbour (KNN) library for low-dimensional spaces. It is a re-implementation in pure Rust of the C++ library of the same name by its original author. This work has been sponsored by Enlightware GmbH.
nabo is no_std compatible.
Usage
To use nabo in your project, you need to either:
- Use
nabo::simple_point::SimplePointas your point type. - Implement the
nabo::Pointtrait for your own point type.
If you want to avoid a dependency to rand, disable the rand feature.
In that case, the random generation of point clouds for SimplePoint will not be available.
Benchmark
You can benchmark nabo using the following command:
cargo bench
Citing nabo
If you use nabo in the academic context, please cite this paper that evaluates its performances in the context of robotics mapping research:
@article{elsebergcomparison,
title={Comparison of nearest-neighbor-search strategies and implementations for efficient shape registration},
author={Elseberg, J. and Magnenat, S. and Siegwart, R. and N{\"u}chter, A.},
journal={Journal of Software Engineering for Robotics (JOSER)},
pages={2--12},
volume={3},
number={1},
year={2012},
issn={2035-3928}
}
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.