mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-26 01:51:41 +00:00
[wpimath] Remove incorrect discretization in pose estimators (#3460)
This commit is contained in:
committed by
GitHub
parent
ea0b8f48e6
commit
646ded9123
@@ -212,7 +212,7 @@ class DifferentialDrivePoseEstimator {
|
||||
const Eigen::Matrix<double, 3, 1>& y)>
|
||||
m_visionCorrect;
|
||||
|
||||
Eigen::Matrix<double, 3, 3> m_visionDiscR;
|
||||
Eigen::Matrix<double, 3, 3> m_visionContR;
|
||||
|
||||
units::second_t m_nominalDt;
|
||||
units::second_t m_prevTime = -1_s;
|
||||
|
||||
@@ -208,7 +208,7 @@ class MecanumDrivePoseEstimator {
|
||||
const Eigen::Matrix<double, 3, 1>& y)>
|
||||
m_visionCorrect;
|
||||
|
||||
Eigen::Matrix3d m_visionDiscR;
|
||||
Eigen::Matrix3d m_visionContR;
|
||||
|
||||
units::second_t m_nominalDt;
|
||||
units::second_t m_prevTime = -1_s;
|
||||
|
||||
@@ -101,7 +101,7 @@ class SwerveDrivePoseEstimator {
|
||||
u, y,
|
||||
[](const Eigen::Matrix<double, 3, 1>& x,
|
||||
const Eigen::Matrix<double, 3, 1>& u) { return x; },
|
||||
m_visionDiscR, frc::AngleMean<3, 3>(2), frc::AngleResidual<3>(2),
|
||||
m_visionContR, frc::AngleMean<3, 3>(2), frc::AngleResidual<3>(2),
|
||||
frc::AngleResidual<3>(2), frc::AngleAdd<3>(2));
|
||||
};
|
||||
|
||||
@@ -161,9 +161,7 @@ class SwerveDrivePoseEstimator {
|
||||
void SetVisionMeasurementStdDevs(
|
||||
const wpi::array<double, 3>& visionMeasurementStdDevs) {
|
||||
// Create R (covariances) for vision measurements.
|
||||
Eigen::Matrix<double, 3, 3> visionContR =
|
||||
frc::MakeCovMatrix(visionMeasurementStdDevs);
|
||||
m_visionDiscR = frc::DiscretizeR<3>(visionContR, m_nominalDt);
|
||||
m_visionContR = frc::MakeCovMatrix(visionMeasurementStdDevs);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -296,7 +294,7 @@ class SwerveDrivePoseEstimator {
|
||||
const Eigen::Matrix<double, 3, 1>& y)>
|
||||
m_visionCorrect;
|
||||
|
||||
Eigen::Matrix3d m_visionDiscR;
|
||||
Eigen::Matrix3d m_visionContR;
|
||||
|
||||
units::second_t m_nominalDt;
|
||||
units::second_t m_prevTime = -1_s;
|
||||
|
||||
@@ -251,7 +251,7 @@ class UnscentedKalmanFilter {
|
||||
* @param y Measurement vector.
|
||||
* @param h A vector-valued function of x and u that returns the measurement
|
||||
* vector.
|
||||
* @param R Measurement noise covariance matrix.
|
||||
* @param R Measurement noise covariance matrix (continuous-time).
|
||||
*/
|
||||
template <int Rows>
|
||||
void Correct(const Eigen::Matrix<double, Inputs, 1>& u,
|
||||
@@ -290,7 +290,7 @@ class UnscentedKalmanFilter {
|
||||
* @param y Measurement vector.
|
||||
* @param h A vector-valued function of x and u that returns the
|
||||
* measurement vector.
|
||||
* @param R Measurement noise covariance matrix.
|
||||
* @param R Measurement noise covariance matrix (continuous-time).
|
||||
* @param meanFuncY A function that computes the mean of 2 * States + 1
|
||||
* measurement vectors using a given set of weights.
|
||||
* @param residualFuncY A function that computes the residual of two
|
||||
|
||||
Reference in New Issue
Block a user