Resurgence (PY2022)
Codebase for the Husky Robotics 2021-2022 rover Resurgence
Loading...
Searching...
No Matches
filters::statespace Namespace Reference

Collection of utility methods for use with state space applications. More...

Classes

class  NoiseCovMat
 Represents a square noise covariance matrix. More...
 
class  NoiseCovMat<-1, -1, -1 >
 Represents a square noise covariance matrix.
 

Typedefs

using NoiseCovMatX = NoiseCovMat<-1, -1, -1>
 

Functions

template<int size>
Eigen::Matrix< double, size, sizecreateCovarianceMatrix (const Eigen::Matrix< double, size, 1 > &stdDevs)
 Create a covariance matrix modelling independent variables with the given standard deviations.
 
template<int numStates>
Eigen::Matrix< double, numStates, numStates > discreteToContinuous (const Eigen::Matrix< double, numStates, numStates > &A, double dt)
 Convert a discrete time system matrix to continuous time.
 
template<int numStates, int numInputs>
void discreteToContinuous (Eigen::Matrix< double, numStates, numStates > &A, Eigen::Matrix< double, numStates, numInputs > &B, double dt)
 Convert discrete time system and input matrices to continuous time.
 
template<int numStates, int numInputs>
void continuousToDiscrete (Eigen::Matrix< double, numStates, numStates > &A, Eigen::Matrix< double, numStates, numInputs > &B, double dt)
 Convert continuous time system and input matrices to discrete time.
 
template<int numStates>
Eigen::Matrix< double, numStates, numStates > discretizeA (const Eigen::Matrix< double, numStates, numStates > &contA, double dt)
 Convert a continuous time system matrix to discrete time.
 
template<int numStates>
void discretizeAQ (const Eigen::Matrix< double, numStates, numStates > &contA, const Eigen::Matrix< double, numStates, numStates > &contQ, Eigen::Matrix< double, numStates, numStates > &discA, Eigen::Matrix< double, numStates, numStates > &discQ, double dt)
 Convert a continuous time system matrix and additive process noise matrix to discrete time.
 
template<int numStates>
Eigen::Matrix< double, numStates, numStates > discretizeQ (const Eigen::Matrix< double, numStates, numStates > &contA, const Eigen::Matrix< double, numStates, numStates > &contQ, double dt)
 Discretizes a continuous time additive process noise covariance matrix.
 
template<int numStates>
Eigen::Matrix< double, numStates, numStates > discretizeR (const Eigen::Matrix< double, numStates, numStates > &contR, double dt)
 Discretizes a continuous time additive output noise covariance matrix.
 

Detailed Description

Collection of utility methods for use with state space applications.

Function Documentation

◆ continuousToDiscrete()

template<int numStates, int numInputs>
void filters::statespace::continuousToDiscrete ( Eigen::Matrix< double, numStates, numStates > & A,
Eigen::Matrix< double, numStates, numInputs > & B,
double dt )

Convert continuous time system and input matrices to discrete time.

Template Parameters
numStatesThe number of states in the system.
Parameters
AA reference to the continuous time system matrix. It will be replaced with the discrete time equivalent.
BA reference to the continuous time input matrix. It will be replaced with the discrete time equivalent.
dtThe time in seconds between updates.

◆ createCovarianceMatrix()

template<int size>
Eigen::Matrix< double, size, size > filters::statespace::createCovarianceMatrix ( const Eigen::Matrix< double, size, 1 > & stdDevs)

Create a covariance matrix modelling independent variables with the given standard deviations.

Template Parameters
sizeThe dimension of the noise.
Parameters
stdDevsThe standard deviation of each element.
Returns
A size x size covariance matrix.

◆ discreteToContinuous() [1/2]

template<int numStates>
Eigen::Matrix< double, numStates, numStates > filters::statespace::discreteToContinuous ( const Eigen::Matrix< double, numStates, numStates > & A,
double dt )

Convert a discrete time system matrix to continuous time.

Template Parameters
numStatesThe number of states in the system.
Parameters
AThe discrete time system matrix.
dtThe time in seconds between updates.
Returns
An equivalent continuous time system matrix.

◆ discreteToContinuous() [2/2]

template<int numStates, int numInputs>
void filters::statespace::discreteToContinuous ( Eigen::Matrix< double, numStates, numStates > & A,
Eigen::Matrix< double, numStates, numInputs > & B,
double dt )

Convert discrete time system and input matrices to continuous time.

Template Parameters
numStatesThe number of states in the system.
Parameters
AA reference to the discrete time system matrix. It will be replaced with the continuous time equivalent.
BA reference to the discrete time input matrix. It will be replaced with the continuous time equivalent.
dtThe time in seconds between updates.

◆ discretizeA()

template<int numStates>
Eigen::Matrix< double, numStates, numStates > filters::statespace::discretizeA ( const Eigen::Matrix< double, numStates, numStates > & contA,
double dt )

Convert a continuous time system matrix to discrete time.

Template Parameters
numStatesThe number of states in the system.
Parameters
contAThe continuous time system matrix.
dtThe time in seconds between updates.
Returns
An equivalent discrete time system matrix.

◆ discretizeAQ()

template<int numStates>
void filters::statespace::discretizeAQ ( const Eigen::Matrix< double, numStates, numStates > & contA,
const Eigen::Matrix< double, numStates, numStates > & contQ,
Eigen::Matrix< double, numStates, numStates > & discA,
Eigen::Matrix< double, numStates, numStates > & discQ,
double dt )

Convert a continuous time system matrix and additive process noise matrix to discrete time.

Template Parameters
numStatesThe number of states in the system.
Parameters
contAA reference to the continuous time system matrix.
contQA reference to the continuous time additive process noise matrix.
discAA reference to a matrix where the discrete time system matrix will be stored.
discQA reference to a matrix where the discrete process noise covariance matrix will be stored.
dtThe time in seconds between updates.

◆ discretizeQ()

template<int numStates>
Eigen::Matrix< double, numStates, numStates > filters::statespace::discretizeQ ( const Eigen::Matrix< double, numStates, numStates > & contA,
const Eigen::Matrix< double, numStates, numStates > & contQ,
double dt )

Discretizes a continuous time additive process noise covariance matrix.

Template Parameters
numStatesThe number of states in the system.
Parameters
contAThe continuous time system matrix.
contQThe continuous time process noise covariance matrix.
dtThe time in second between updates.
Returns
The discrete time process noise covariance matrix.

◆ discretizeR()

template<int numStates>
Eigen::Matrix< double, numStates, numStates > filters::statespace::discretizeR ( const Eigen::Matrix< double, numStates, numStates > & contR,
double dt )

Discretizes a continuous time additive output noise covariance matrix.

Template Parameters
numStatesThe number of states in the system.
Parameters
contRThe continuous time output noise covariance matrix.
dtThe time in seconds between updates.
Returns
The discrete time output noise covariance matrix.