pub struct IEKFLocalizer {
pub state: IEKFState,
pub covariance: Matrix4<f64>,
pub config: IEKFConfig,
}Expand description
Iterated Extended Kalman Filter for robot localization
Fields§
§state: IEKFStateCurrent state estimate [x, y, yaw, v]
covariance: Matrix4<f64>State covariance matrix
config: IEKFConfigConfiguration
Implementations§
Source§impl IEKFLocalizer
impl IEKFLocalizer
Sourcepub fn new(config: IEKFConfig) -> Self
pub fn new(config: IEKFConfig) -> Self
Create a new IEKF localizer; panics on invalid config.
Sourcepub fn try_new(config: IEKFConfig) -> RoboticsResult<Self>
pub fn try_new(config: IEKFConfig) -> RoboticsResult<Self>
Create a new validated IEKF localizer.
Sourcepub fn with_initial_state(initial_state: IEKFState, config: IEKFConfig) -> Self
pub fn with_initial_state(initial_state: IEKFState, config: IEKFConfig) -> Self
Create with an explicit initial state; panics on invalid inputs.
Sourcepub fn estimate(
&mut self,
measurement: &IEKFMeasurement,
control: &IEKFControl,
dt: f64,
) -> Result<&IEKFState, RoboticsError>
pub fn estimate( &mut self, measurement: &IEKFMeasurement, control: &IEKFControl, dt: f64, ) -> Result<&IEKFState, RoboticsError>
Full IEKF estimation step (predict + iterated update).
Trait Implementations§
Source§impl StateEstimator for IEKFLocalizer
impl StateEstimator for IEKFLocalizer
Source§fn predict(&mut self, control: &Self::Control, dt: f64)
fn predict(&mut self, control: &Self::Control, dt: f64)
Prediction step — identical to EKF predict.
Source§fn update(&mut self, measurement: &Self::Measurement)
fn update(&mut self, measurement: &Self::Measurement)
Update step using iterated linearization.
Silently skips the update if the innovation covariance S is singular.
Source§type State = Matrix<f64, Const<4>, Const<1>, ArrayStorage<f64, 4, 1>>
type State = Matrix<f64, Const<4>, Const<1>, ArrayStorage<f64, 4, 1>>
State type used by this estimator
Source§type Measurement = Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>
type Measurement = Matrix<f64, Const<2>, Const<1>, ArrayStorage<f64, 2, 1>>
Measurement type used by this estimator
Auto Trait Implementations§
impl Freeze for IEKFLocalizer
impl RefUnwindSafe for IEKFLocalizer
impl Send for IEKFLocalizer
impl Sync for IEKFLocalizer
impl Unpin for IEKFLocalizer
impl UnsafeUnpin for IEKFLocalizer
impl UnwindSafe for IEKFLocalizer
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
Mutably borrows from an owned value. Read more
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.