pub struct GicpConfig {
pub max_iterations: usize,
pub max_correspondence_distance: f32,
pub k_neighbors: usize,
pub epsilon: f64,
pub transformation_epsilon: f64,
pub fitness_epsilon: f64,
pub min_correspondences: usize,
pub initial_guess: Isometry3<f32>,
pub covariance_radius: Option<f32>,
}Expand description
Configuration for Generalized ICP (plane-to-plane).
GICP models each point’s local surface as an anisotropic Gaussian and minimizes the Mahalanobis distance between correspondences, combining the robustness of point-to-plane ICP for both clouds. Local covariances are estimated from k-nearest neighbors and regularized toward planar disks.
Fields§
§max_iterations: usizeMaximum number of GICP iterations.
max_correspondence_distance: f32Maximum correspondence distance.
k_neighbors: usizeNumber of neighbors used to estimate per-point covariance.
epsilon: f64Planar regularization: eigenvalue assigned along the surface normal.
transformation_epsilon: f64Stop when the transform update is smaller than this threshold.
fitness_epsilon: f64Stop when the fitness is smaller than this threshold.
min_correspondences: usizeMinimum number of correspondences required per iteration.
initial_guess: Isometry3<f32>Initial transform guess mapping source into target frame.
covariance_radius: Option<f32>When set (and the register-gicp-gpu feature is enabled), estimate
per-point covariances on the GPU using a uniform grid neighbor search of
this radius instead of the CPU KD-tree. Falls back to CPU on GPU errors.
Implementations§
Source§impl GicpConfig
impl GicpConfig
Sourcepub fn with_correspondence_distance(
max_correspondence_distance: f32,
) -> GicpConfig
pub fn with_correspondence_distance( max_correspondence_distance: f32, ) -> GicpConfig
Creates a config with the given correspondence distance.
Trait Implementations§
Source§impl Clone for GicpConfig
impl Clone for GicpConfig
Source§fn clone(&self) -> GicpConfig
fn clone(&self) -> GicpConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GicpConfig
impl Debug for GicpConfig
Source§impl Default for GicpConfig
impl Default for GicpConfig
Source§fn default() -> GicpConfig
fn default() -> GicpConfig
Source§impl PartialEq for GicpConfig
impl PartialEq for GicpConfig
Source§fn eq(&self, other: &GicpConfig) -> bool
fn eq(&self, other: &GicpConfig) -> bool
self and other values to be equal, and is used by ==.impl Copy for GicpConfig
impl StructuralPartialEq for GicpConfig
Auto Trait Implementations§
impl Freeze for GicpConfig
impl RefUnwindSafe for GicpConfig
impl Send for GicpConfig
impl Sync for GicpConfig
impl Unpin for GicpConfig
impl UnsafeUnpin for GicpConfig
impl UnwindSafe for GicpConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<R, P> ReadPrimitive<R> for P
impl<R, P> ReadPrimitive<R> for P
Source§fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
fn read_from_little_endian(read: &mut R) -> Result<Self, Error>
ReadEndian::read_from_little_endian().