Resurgence (PY2022)
Codebase for the Husky Robotics 2021-2022 rover Resurgence
|
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, size > | createCovarianceMatrix (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. | |
Collection of utility methods for use with state space applications.
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.
numStates | The number of states in the system. |
A | A reference to the continuous time system matrix. It will be replaced with the discrete time equivalent. |
B | A reference to the continuous time input matrix. It will be replaced with the discrete time equivalent. |
dt | The time in seconds between updates. |
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.
size | The dimension of the noise. |
stdDevs | The standard deviation of each element. |
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.
numStates | The number of states in the system. |
A | The discrete time system matrix. |
dt | The time in seconds between updates. |
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.
numStates | The number of states in the system. |
A | A reference to the discrete time system matrix. It will be replaced with the continuous time equivalent. |
B | A reference to the discrete time input matrix. It will be replaced with the continuous time equivalent. |
dt | The time in seconds between updates. |
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.
numStates | The number of states in the system. |
contA | The continuous time system matrix. |
dt | The time in seconds between updates. |
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.
numStates | The number of states in the system. |
contA | A reference to the continuous time system matrix. |
contQ | A reference to the continuous time additive process noise matrix. |
discA | A reference to a matrix where the discrete time system matrix will be stored. |
discQ | A reference to a matrix where the discrete process noise covariance matrix will be stored. |
dt | The time in seconds between updates. |
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.
numStates | The number of states in the system. |
contA | The continuous time system matrix. |
contQ | The continuous time process noise covariance matrix. |
dt | The time in second between updates. |
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.
numStates | The number of states in the system. |
contR | The continuous time output noise covariance matrix. |
dt | The time in seconds between updates. |