Struct PntosStandardFusionStrategy
Defined in File fusion_strategy.h
Struct Documentation
-
struct PntosStandardFusionStrategy
Assumes the system is described by discrete-time matrices and noise inputs are zero-mean white Gaussian.
UNSTABLE: This feature is unstable and is not yet considered part of the stable pntOS API. Usage of this feature is highly discouraged in non-experimental code, and its definition may change at any time.
Public Members
-
PntosCommonFusionStrategy common
-
size_t (*get_num_states)(struct PntosStandardFusionStrategy *self)
Return the total number of states added to this filter.
-
size_t (*add_states)(struct PntosStandardFusionStrategy *self, PntosMatrix *initial_estimate, PntosMatrix *initial_covariance, PntosMatrix *cross_covariance)
Increase number of filter states and set the estimate, covariance, and cross-covariance (optional). Returns index of the first added state. If
cross_covarianceis NULL, cross covariance between the existing states and the added states will be set to zeroes.
-
void (*remove_states)(struct PntosStandardFusionStrategy *self, size_t first_index, size_t count)
Decrease the number of states by
count, starting atfirst_index.first_indexpluscountcannot be greater than or equal to the value returned by get_num_states.
-
PntosMatrix *(*get_estimate)(struct PntosStandardFusionStrategy *self)
Get the current state estimate. Returns NULL if no states have been added to this fusion strategy. Guaranteed to not be NULL if get_num_states returns a value other than 0.
-
void (*set_estimate_slice)(struct PntosStandardFusionStrategy *self, PntosMatrix *new_estimate, size_t first_index)
Set a slice of the state vector.
first_indexplus the number of rows innew_estimatemust be less than or equal to the value returned by get_num_states. The number of columns innew_estimatemust be equal to 1.
-
PntosMatrix *(*get_covariance)(struct PntosStandardFusionStrategy *self)
Get the current state covariance. Returns NULL if no states have been added to this fusion strategy. Guaranteed to not be NULL if get_num_states returns a value other than 0.
-
void (*set_covariance_block)(struct PntosStandardFusionStrategy *self, PntosMatrix *new_covariance, size_t first_row, size_t first_col)
Set a slice of the state covariance by first row and column.
first_rowplus the number of rows innew_covariancemust be less than or equal to the value returned by get_num_states.first_colplus the number of columns innew_covariancemust be less than or equal to the value returned by get_num_states.
-
void (*set_covariance_slice)(struct PntosStandardFusionStrategy *self, PntosMatrix *new_covariance, size_t first_state)
Set a slice of the state covariance along the diagonal.
first_stateplus the number of rows innew_covariancemust be less than or equal to the value returned by get_num_states.first_stateplus the number of columns innew_covariancemust be less than or equal to the value returned by get_num_states.
-
void (*propagate)(struct PntosStandardFusionStrategy *self, PntosStandardDynamicsModel *dynamics_model)
Propagates the state estimate and covariance forward one time epoch using the given dynamics model. get_num_states must return a value greater than zero before this method can be called. Also, the H matrix in
dynamics_modelmust have a number of columns equal to the value returned by get_num_states.
-
void (*update)(struct PntosStandardFusionStrategy *self, PntosStandardMeasurementModel *measurement_model)
Updates the state estimate and covariance at the current time using the given measurement model. get_num_states must return a value greater than zero before this method can be called. Also, the Phi matrix in
measurement_modelmust have a number of columns equal to the value returned by get_num_states.
-
struct PntosStandardFusionStrategy *(*clone)(struct PntosStandardFusionStrategy *self)
Produce a deep-copy this fusion strategy instance.
-
PntosCommonFusionStrategy common