fast-gicp
A Rust wrapper for the fast_gicp C++ library, providing efficient 3D point cloud registration algorithms.
Features
- Fast GICP: Generalized Iterative Closest Point algorithm with multi-threading support
- Fast VGICP: Voxelized GICP for efficient large-scale point cloud registration
- CUDA Acceleration: GPU-accelerated variants (FastVGICPCuda, NDTCuda)
- Builder Pattern: Type-safe configuration with compile-time validation
- Zero-Copy: Efficient point cloud wrappers with minimal overhead
- Comprehensive Testing: 90+ tests covering all algorithms and edge cases
Quick Start
Add to your Cargo.toml:
[]
= "0.3"
# For CUDA support
= { = "0.3", = ["cuda"] }
Basic usage:
use ;
// Create point clouds
let source = from_points;
let target = from_points;
// Configure and run registration
let gicp = builder
.max_iterations
.transformation_epsilon
.build?;
let result = gicp.align?;
println!;
println!;
Available Algorithms
FastGICP
Standard GICP with optional regularization methods:
use RegularizationMethod;
let gicp = builder
.max_iterations
.num_threads
.regularization_method
.build?;
FastVGICP
Voxelized GICP for large point clouds:
use VoxelAccumulationMode;
let vgicp = builder
.resolution
.voxel_accumulation_mode
.build?;
CUDA Variants
GPU-accelerated algorithms (requires cuda feature):
// Voxelized GICP on GPU
let cuda_vgicp = builder
.resolution
.build?;
// NDT on GPU
let ndt = builder
.resolution
.distance_mode
.build?;
Documentation
Full API documentation with examples is available at docs.rs/fast-gicp.
Requirements
- Rust 1.70+
- CMake 3.15+
- C++17 compiler
- PCL 1.8+ (Point Cloud Library)
- Optional: CUDA 11.0+ for GPU features
License
Licensed under the BSD 3-Clause License. See LICENSE for details.