Resurgence (PY2022)
Codebase for the Husky Robotics 2021-2022 rover Resurgence
Toggle main menu visibility
Loading...
Searching...
No Matches
src
filters
KalmanFilterBase.h
1
#pragma once
2
3
#include "StateSpaceUtil.h"
4
5
#include <Eigen/Core>
6
7
namespace
filters {
8
15
template
<
int
stateDim,
int
inputDim>
class
KalmanFilterBase {
16
public
:
17
KalmanFilterBase()
18
: P(
Eigen::Matrix<double, stateDim, stateDim>::Identity
() * 1e5),
19
xHat(
Eigen::Matrix<double, stateDim, 1>::Zero
()) {}
20
26
virtual
void
predict
(
const
Eigen::Matrix<double, inputDim, 1>
& input) = 0;
27
34
void
reset
() {
35
reset
(
Eigen::Matrix<double, stateDim, 1>::Zero
());
36
}
37
46
void
reset
(
const
Eigen::Matrix<double, stateDim, 1>
& state) {
47
Eigen::Matrix<double, stateDim, stateDim>
newP =
48
Eigen::Matrix<double, stateDim, stateDim>::Identity
() * 1e5;
49
reset
(state, newP);
50
}
51
62
void
reset
(
const
Eigen::Matrix<double, stateDim, 1>
& state,
63
const
Eigen::Matrix<double, stateDim, 1>
& stdDevs) {
64
reset
(state,
statespace::createCovarianceMatrix
(stdDevs));
65
}
66
78
void
reset
(
const
Eigen::Matrix<double, stateDim, 1>
& state,
79
const
Eigen::Matrix<double, stateDim, stateDim>
& estCovMat) {
80
xHat = state;
81
P = estCovMat;
82
}
83
89
Eigen::Matrix<double, stateDim, 1>
getState
()
const
{
90
return
xHat;
91
}
92
100
Eigen::Matrix<double, stateDim, stateDim>
getEstimateCovarianceMat
()
const
{
101
return
P;
102
}
103
104
protected
:
105
Eigen::Matrix<double, stateDim, stateDim>
P;
106
Eigen::Matrix<double, stateDim, 1>
xHat;
107
};
108
109
}
// namespace filters
Eigen::DenseBase::Zero
static const ConstantReturnType Zero()
Eigen::MatrixBase::Identity
static const IdentityReturnType Identity()
Eigen::Matrix
filters::KalmanFilterBase::getState
Eigen::Matrix< double, stateDim, 1 > getState() const
Gets the current state estimate.
Definition
KalmanFilterBase.h:89
filters::KalmanFilterBase::reset
void reset(const Eigen::Matrix< double, stateDim, 1 > &state, const Eigen::Matrix< double, stateDim, 1 > &stdDevs)
Reset the filter.
Definition
KalmanFilterBase.h:62
filters::KalmanFilterBase::reset
void reset(const Eigen::Matrix< double, stateDim, 1 > &state)
Reset the filter.
Definition
KalmanFilterBase.h:46
filters::KalmanFilterBase::getEstimateCovarianceMat
Eigen::Matrix< double, stateDim, stateDim > getEstimateCovarianceMat() const
Get the current estimate covariance matrix.
Definition
KalmanFilterBase.h:100
filters::KalmanFilterBase::reset
void reset(const Eigen::Matrix< double, stateDim, 1 > &state, const Eigen::Matrix< double, stateDim, stateDim > &estCovMat)
Reset the filter.
Definition
KalmanFilterBase.h:78
filters::KalmanFilterBase::reset
void reset()
Reset the filter.
Definition
KalmanFilterBase.h:34
filters::KalmanFilterBase::predict
virtual void predict(const Eigen::Matrix< double, inputDim, 1 > &input)=0
Use the model to predict the next system state, given the current inputs.
filters::statespace::createCovarianceMatrix
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.
Definition
StateSpaceUtil.h:23
Generated by
1.17.0