measurementModels#

Executive Summary#

This class provides an container for all the measurement models and components to a kalman filter. This class is a necessary component to any Kalman Filter implementation

Virtual and Private method descriptors#

The following table lists all the class methods and their function

Interface methods which remain private#

Method Name

Method Function

Protected or Private

Virtual or not

model

compute measurement model give a state

public

necessary

computeMeasurementMatrix

compute measurement matrix give a state

public

necessary

Module assumptions and limitations#

None

User Guide#

This section lists all the setters and getters that are defined by the interface

Interface methods which remain private#

Method Name

Method Function

Necessity

get/setMeasurementName

set the name of the measurement to distinguish it from others

necessary

get/setTimeTag

set the measurement time tag

necessary

get/setValidity

set the measurement validity

necessary

get/setObservation

set the measurement observation value

necessary

get/setMeasurementNoise

set the measurement noise matrix

necessary

get/setPreFitResiduals

set the measurement pre fit residuals

necessary

get/setPostFitResiduals

set the measurement pre fit residuals

necessary

Static methods for common measurement models#

Method Name

Method Function

positionStates

measurement of position state

normalizedPositionStates

measurement of heading direction

mrpStates

measurement of position state with a shadow set check

velocityStates

measurement of velocity states

class MeasurementModel#

Container class for measurement data and models.

Public Functions

Eigen::MatrixXd model(const FilterStateVector &state) const#

Function to represent measurement model which inputs a stateModel and outputs a matrix

Parameters:

FilterStateVector

Returns:

Eigen::MatrixXd

void setMeasurementModel(const std::function<const Eigen::MatrixXd(const FilterStateVector&)> &modelCalculator)#

Set function to represent measurement model which inputs a stateModel and outputs a matrix

Parameters:

std::function<const – Eigen::MatrixXd(const FilterStateVector&)>

Eigen::MatrixXd computeMeasurementMatrix(const FilterStateVector &state) const#

Function to represent measurement matrix which inputs a stateModel and outputs a matrix (partial of measurement

Parameters:

FilterStateVector

Returns:

Eigen::MatrixXd

void setMeasurementMatrix(const std::function<const Eigen::MatrixXd(const FilterStateVector&)> &hMatrixCalculator)#

Set function to represent measurement matrix which inputs a stateModel and outputs a matrix (partial of measurement model with respect to state)

Parameters:

std::function<const – Eigen::MatrixXd(const FilterStateVector&)>

Eigen::VectorXd subMeasurements(const Eigen::VectorXd &measurementObserved, const Eigen::VectorXd &measurementPredicted) const#

Subtract measurements. By default this is a linear subtraction, but could be subMrp or other functions depending on the measurement type

Parameters:
  • Eigen::VectorXd – measurementObserved

  • Eigen::VectorXd – measurementPredicted

Returns:

Eigen::VectorXd

void setMeasurementSubtraction(const std::function<const Eigen::VectorXd(const Eigen::VectorXd&, const Eigen::VectorXd&)> &add)#

Set function to add measurements. By default this add function is an R^n subtraction, but could be subMrp or other functions depending on the measurement type

Parameters:

subFunction – std::function<const Eigen::VectorXd(const Eigen::VectorXd&, const Eigen::VectorXd&)>

size_t size() const#

Return the size of the observation

Returns:

size_t

std::string getMeasurementName() const#

Get measurement name

Returns:

std::string

void setMeasurementName(std::string_view measurementName)#

Set measurement name

Parameters:

std::string

double getTimeTag() const#

Get measurement time tag

Returns:

double

void setTimeTag(double measurementTimeTag)#

Set measurement time tag

Parameters:

double

bool getValidity() const#

Get measurement validity

Returns:

Eigen::VectorXd

void setValidity(bool measurementValidity)#

Set measurement validity

Parameters:

bool

Eigen::VectorXd getObservation() const#

Get measurement observation

Returns:

Eigen::VectorXd

void setObservation(const Eigen::VectorXd &measurementObserved)#

Set measurement observation

Parameters:

Eigen::VectorXd

Eigen::MatrixXd getMeasurementNoise() const#

Get measurement noise

Returns:

Eigen::MatrixXd

void setMeasurementNoise(const Eigen::MatrixXd &measurementNoise)#

Set measurement noise

Parameters:

Eigen::MatrixXd

Eigen::VectorXd getPreFitResiduals() const#

Get pre fit residuals of observation

Returns:

Eigen::VectorXd

void setPreFitResiduals(const Eigen::VectorXd &measurementPreFit)#

Set pre fit residuals of observation

Parameters:

Eigen::VectorXd

Eigen::VectorXd getPostFitResiduals() const#

Get post fit residuals of observation

Returns:

Eigen::VectorXd

void setPostFitResiduals(const Eigen::VectorXd &measurementPostFit)#

Set post fit residuals of observation

Parameters:

Eigen::VectorXd

Public Static Functions

static Eigen::VectorXd positionStates(const FilterStateVector &state)#

Measurement model that returns the position component of the state

Parameters:

FilterStateVector – state

Returns:

Eigen::VectorXd

static Eigen::VectorXd normalizedPositionStates(const FilterStateVector &state)#

Measurement model that returns the unit vector of the position state

Parameters:

FilterStateVector – state

Returns:

Eigen::VectorXd

static Eigen::VectorXd mrpStates(const FilterStateVector &state)#

Measurement model that returns the position component of the state, and performs a MRP shadow set check

Parameters:

FilterStateVector – state

Returns:

Eigen::VectorXd

static Eigen::VectorXd velocityStates(const FilterStateVector &state)#

Measurement model that returns the velocity component of the state

Parameters:

state

Returns:

Eigen::VectorXd

static Eigen::VectorXd velocityStatesWithBias(const FilterStateVector &state)#

Measurement model that returns the velocity component of the state with Bias

Parameters:

FilterStateVector – state

Returns:

Eigen::VectorXd