pub struct LoRansacConfig {
pub k_min: u32,
pub k_max: u32,
pub confidence: f64,
pub tau_outer_sq: f64,
pub tau_inner_sq: f64,
pub tau_aw_lm_sq: f64,
pub lo_max_iterations: u32,
pub min_inliers: usize,
}Expand description
Configuration for LO-RANSAC board pose estimation.
These parameters are tuned for sub-pixel, metrology-grade perception on structured fiducial grids. See the accompanying architectural specification for the mathematical justification behind each constant.
Fields§
§k_min: u32Minimum RANSAC iterations before dynamic stopping is permitted. Guarantees the sampler escapes spatially-correlated occlusion clusters (e.g., a cable over 4 adjacent tags) before the stopping rule fires.
k_max: u32Hard ceiling on RANSAC iterations (worst-case execution time bound). Caps runtime at ~20 µs/frame even on fundamentally degraded images.
confidence: f64Desired probability of finding at least one clean minimal sample.
tau_outer_sq: f64Outer inlier threshold, squared (pixels²).
Wide net for the initial consensus gate: a 4-point IPPE model on sub-pixel noisy data can tilt, so this threshold is intentionally generous enough to admit all geometrically consistent tags even under per-tag pose noise before the LO GN step refines things.
tau_inner_sq: f64Inner inlier threshold, squared (pixels²).
Tight gate applied within the LO Gauss-Newton inner loop. Anything outside ~1 px after GN smoothing is a Hamming alias, chromatic aberration, or physical occlusion — exclude from further GN.
tau_aw_lm_sq: f64AW-LM inlier threshold, squared (pixels²).
Applied to the LO-verified pose to build the inlier set passed to the final Anisotropic Weighted LM step. This should be generous (≥ the outer threshold) so that AW-LM can exploit the maximum number of geometrically consistent observations; its internal Huber weighting (k = 1.345) robustly downweights any residual outliers.
lo_max_iterations: u32Maximum iterations for the LO inner loop.
Gauss-Newton converges quadratically; if the basin is not reached within 5 steps the solver is thrashing — terminate early.
min_inliers: usizeMinimum outer inlier count needed to trigger the LO inner loop.
Trait Implementations§
Source§impl Clone for LoRansacConfig
impl Clone for LoRansacConfig
Source§fn clone(&self) -> LoRansacConfig
fn clone(&self) -> LoRansacConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LoRansacConfig
impl Debug for LoRansacConfig
Auto Trait Implementations§
impl Freeze for LoRansacConfig
impl RefUnwindSafe for LoRansacConfig
impl Send for LoRansacConfig
impl Sync for LoRansacConfig
impl Unpin for LoRansacConfig
impl UnsafeUnpin for LoRansacConfig
impl UnwindSafe for LoRansacConfig
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.