Skip to content

A modern modular pure Rust implementation of the Iterative Closest Point algorithm.

License

Notifications You must be signed in to change notification settings

Synphonyte/modern-icp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modern ICP

Crates.io Docs MIT/Apache 2.0 Build Status

A modern modular pure Rust implementation of the Iterative Closest Point algorithm.

Example

let (alignee_transform, error_sum) = estimate_transform(
    alignee_cloud,
    &target_cloud,
    20, // max iterations
    BidirectionalDistance::new(&target_cloud),
    accept_all,
    reject_n_sigma_dist(3.0),
    point_to_plane_lls::estimate_isometry,
    same_squared_distance_error(1.0),
);

Integrations

An integrations with the modelz crate is provided so you can use Model3D with the estimate_transform function.

use modelz::Model3D;

if let (Ok(alignee), Ok(target)) = (Model3D::load("alignee.gltf"), Model3D::load("target.stl")) {
    let (transform, error_sum) = estimate_transform(
        alignee,
        &target,
        20, // max iterations
        BidirectionalDistance::new(&target),
        accept_all,
        reject_n_sigma_dist(3.0),
        point_to_plane_lls::estimate_isometry,
        same_squared_distance_error(1.0),
    );
}

About

A modern modular pure Rust implementation of the Iterative Closest Point algorithm.

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published