diff --git a/FullPoseEstimator_8h_source.html b/FullPoseEstimator_8h_source.html deleted file mode 100644 index ef96ba8f..00000000 --- a/FullPoseEstimator_8h_source.html +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - -Resurgence (PY2022): src/filters/FullPoseEstimator.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
FullPoseEstimator.h
-
-
-
1#pragma once
-
2
-
3#include "../kinematics/DiffDriveKinematics.h"
-
4#include "../navtypes.h"
-
5#include "MultiSensorEKF.h"
-
6
-
7#include <array>
-
8
-
9namespace filters {
-
10using namespace kinematics;
-
- -
21public:
-
22 static constexpr int numStates = 3;
-
23 static constexpr int numSensors = 2;
- -
25
-
26 FullPoseEstimator(const Eigen::Vector2d& inputNoiseGains, double wheelBase, double dt,
-
27 const Eigen::Vector2d& gpsStdDev, double headingStdDev);
-
28
-
36 void correctGPS(const navtypes::point_t& gps);
-
37
-
45 void correctHeading(double heading);
-
46
-
53 void predict(double thetaVel, double xVel);
-
54
- -
63
-
72 void reset();
-
73
-
84 void reset(const navtypes::pose_t& pose);
-
85
-
95 void reset(const navtypes::pose_t& pose, const navtypes::pose_t& stdDevs);
-
96
-
102 navtypes::pose_t getPose() const;
-
103
-
104private:
- -
106 double dt;
- -
108};
-
-
109
-
110} // namespace filters
- - -
This class implements a pose estimator that can fuse multiple sensors with the kinematic model for ac...
Definition FullPoseEstimator.h:20
-
void correctGPS(const navtypes::point_t &gps)
Use a gps measurement to correct the pose estimate.
Definition FullPoseEstimator.cpp:95
-
void reset()
Reset the pose estimator.
Definition FullPoseEstimator.cpp:116
-
void predict(double thetaVel, double xVel)
Use the model to predict the next system state, given the current inputs.
Definition FullPoseEstimator.cpp:107
-
void correctHeading(double heading)
Use a heading measurement to correct the pose estimate.
Definition FullPoseEstimator.cpp:99
-
Eigen::Matrix< double, numStates, numStates > getEstimateCovarianceMat() const
Get the current estimate covariance matrix.
Definition FullPoseEstimator.cpp:128
-
navtypes::pose_t getPose() const
Gets the current state estimate.
Definition FullPoseEstimator.cpp:132
-
Definition MultiSensorEKF.h:154
-
Represents the kinematics of a differential drive.
Definition DiffDriveKinematics.h:14
-
- - - - diff --git a/PoseEstimatorLinear_8h_source.html b/PoseEstimatorLinear_8h_source.html deleted file mode 100644 index d3a30923..00000000 --- a/PoseEstimatorLinear_8h_source.html +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - -Resurgence (PY2022): src/filters/PoseEstimatorLinear.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
PoseEstimatorLinear.h
-
-
-
1#pragma once
-
2
-
3#include "../navtypes.h"
-
4#include "KalmanFilter.h"
-
5
-
6#include <Eigen/Core>
-
7
-
8namespace filters {
-
9
-
-
18class [[deprecated]] PoseEstimatorLinear {
-
19public:
-
29 PoseEstimatorLinear(const Eigen::Vector3d& stateStdDevs,
-
30 const Eigen::Vector3d& measurementStdDevs, double dt);
-
31
-
39 void correct(const navtypes::transform_t& measurement);
-
40
-
47 void predict(double thetaVel, double xVel);
-
48
-
-
56 Eigen::Matrix3d getEstimateCovarianceMat() const {
-
57 return kf.getEstimateCovarianceMat();
-
58 }
-
-
59
-
-
65 void reset() {
-
66 reset(Eigen::Vector3d::Zero());
-
67 }
-
-
68
-
77 void reset(const navtypes::pose_t& pose);
-
78
-
85 void reset(const navtypes::pose_t& pose, const navtypes::pose_t& stdDevs);
-
86
-
-
92 navtypes::pose_t getPose() const {
-
93 return kf.getState();
-
94 }
-
-
95
-
96private:
- -
98 double dt;
-
99};
-
-
100
-
101} // namespace filters
-
Implements a Kalman Filter.
Definition KalmanFilter.h:21
-
Uses a Kalman Filter to estimate the robot pose.
Definition PoseEstimatorLinear.h:18
-
navtypes::pose_t getPose() const
Gets the current state estimate.
Definition PoseEstimatorLinear.h:92
-
Eigen::Matrix3d getEstimateCovarianceMat() const
Get the current estimate covariance matrix.
Definition PoseEstimatorLinear.h:56
-
void reset()
Reset the estimator.
Definition PoseEstimatorLinear.h:65
-
- - - - diff --git a/PoseEstimator_8h_source.html b/PoseEstimator_8h_source.html deleted file mode 100644 index 0819d14e..00000000 --- a/PoseEstimator_8h_source.html +++ /dev/null @@ -1,154 +0,0 @@ - - - - - - - -Resurgence (PY2022): src/filters/PoseEstimator.h Source File - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
PoseEstimator.h
-
-
-
1#pragma once
-
2
-
3#include "../kinematics/DiffDriveKinematics.h"
-
4#include "../navtypes.h"
-
5#include "ExtendedKalmanFilter.h"
-
6
-
7#include <Eigen/Core>
-
8
-
9using namespace kinematics;
-
10namespace filters {
-
11
-
- -
19public:
-
23 static constexpr int numStates = 3;
-
24
- -
29
-
43 PoseEstimator(const Eigen::Vector2d& inputNoiseGains,
-
44 const Eigen::Vector3d& measurementStdDevs, double wheelBase, double dt);
-
45
-
53 void correct(const navtypes::transform_t& measurement);
-
54
-
61 void predict(double thetaVel, double xVel);
-
62
- -
71
-
80 void reset();
-
81
-
92 void reset(const navtypes::pose_t& pose);
-
93
-
103 void reset(const navtypes::pose_t& pose, const navtypes::pose_t& stdDevs);
-
104
-
110 navtypes::pose_t getPose() const;
-
111
-
112private:
- -
114 DiffDriveKinematics kinematics;
-
115 double dt;
-
116};
-
-
117
-
118} // namespace filters
- -
Implements a discrete-time EKF.
Definition ExtendedKalmanFilter.h:29
-
Uses an Extended Kalman Filter to estimate the robot pose.
Definition PoseEstimator.h:18
-
static constexpr int numStates
The dimension of the state vector.
Definition PoseEstimator.h:23
-
PoseEstimator(const Eigen::Vector2d &inputNoiseGains, const Eigen::Vector3d &measurementStdDevs, double wheelBase, double dt)
Create a new Pose Estimator.
Definition PoseEstimator.cpp:31
-
void correct(const navtypes::transform_t &measurement)
Correct the pose estimation with measurement data.
Definition PoseEstimator.cpp:69
-
Eigen::Matrix< double, numStates, numStates > getEstimateCovarianceMat() const
Get the current estimate covariance matrix.
Definition PoseEstimator.cpp:86
-
void reset()
Reset the pose estimator.
Definition PoseEstimator.cpp:74
-
void predict(double thetaVel, double xVel)
Use the model to predict the next system state, given the current inputs.
Definition PoseEstimator.cpp:61
-
navtypes::pose_t getPose() const
Gets the current state estimate.
Definition PoseEstimator.cpp:90
-
Represents the kinematics of a differential drive.
Definition DiffDriveKinematics.h:14
-
- - - - diff --git a/annotated.html b/annotated.html index 9f2d6c5a..95c794b9 100644 --- a/annotated.html +++ b/annotated.html @@ -114,73 +114,70 @@  CNoiseCovMatRepresents a square noise covariance matrix  CNoiseCovMat<-1, -1, -1 >Represents a square noise covariance matrix  CExtendedKalmanFilterImplements a discrete-time EKF - CFullPoseEstimatorThis class implements a pose estimator that can fuse multiple sensors with the kinematic model for accurate estimation - CKalmanFilterImplements a Kalman Filter - CKalmanFilterBaseBase class for Kalman Filters - CMultiSensorEKF - COutputRepresent an output for a system - CPoseEstimatorUses an Extended Kalman Filter to estimate the robot pose - CPoseEstimatorLinearUses a Kalman Filter to estimate the robot pose - CRollingAvgFilterImplements a rolling average filter of the specified type - Nh264encoder - CEncoder - CEncoderImpl - Cx264_nal_t_simple - Nkinematics - CDiffDriveKinematicsRepresents the kinematics of a differential drive - CDiffWristKinematicsRepresents the kinematics of a differential wrist - CFabrikSolver2DImplementation of the FABRIK algorithm, in the special case of 2 dimensions - Cgearpos_tRepresents the positions (or power) of the two motor-driven gears in the differential wrist - Cjointpos_tRepresents the position (or power) of the differential wrist joint - CPlanarArmKinematicsKinematics object for a sequence of arm segments in a 2d plane - CSwerveDriveKinematicsCalculates forward and inverse drivebase kinematics for a 4-wheel swerve drivebase with specifiable width and length - Cswervewheelvel_tRepresents robot wheel velocities in robot reference frame, in polar form (wheel speed and angle) - Cwheelvel_t - Nnavtypes - Ceulerangles_t - Cgpscoords_tRepresents a GPS coordinate in degrees - CURCLeg - CURCLegGPS - Nnet - Nardupilot - CArduPilotProtocol - Nmc - Ntasks - CArmIKTaskThis task sets the arm joint positions to track the current IK command - CCameraStreamTaskThis task is responsible for sending the camera streams to Mission Control over websocket - CPowerRepeatTaskThis task is responsible for periodically resending setMotorPower commands to the motors - CTelemReportTaskThis task periodically sends robot telemetry data to Mission Control - CMissionControlProtocol - Nwebsocket - CSingleClientWSServerA WebSocket server class that only accepts a single client at a time to each endpoint served by this server - CWebSocketProtocolDefines a protocol which will be served at an endpoint of a server - NrobotCollection of functions for manipulating a motor - NtypesTypes for use in the world interface - CDataPointRepresents data measured using a sensor at a given time - CLimitSwitchDataA class that represents limit switches from a specific motor - Cbase_motorAn abstract motor class - Ccan_motor - Cencparams_t - Cpidcoef_tA struct containing a set of PID coefficients - Cpotparams_tRepresents parameters defining a potentiometer scale - Csim_motor - Nstd - Chash< std::pair< T1, T2 > > - NutilA collection of utility functions and classes with common use-cases - Nimpl - CNotifiable - CAsyncTaskAn abstract class that can be overridden to run long-running tasks and encapsulate task-related data - ClatchImplementation of a countdown latch for threading synchronization - CPeriodicSchedulerUses a single thread to periodically invoke callbacks at a given frequency - CPeriodicTaskImplements a task that executes a function periodically - CRAIIHelperA helper class for executing a function when leaving a scope, in RAII-style - CScopedTimerA utility class that helps with timing - CWatchdogImplements a thread-safe watchdog - Nvideo - CH264EncoderThis class encodes OpenCV frames into encoded H264 data that can be sent to an H264 decoder, like JMuxer - CGPSDatumA GPS datum that specifies the reference ellipsoid for use in GPS calculations - CGPSToMetersConverterA class used to convert gps coordinates to coordinates on a flat xy-plane, and vice versa - CJacobianVelControllerThis class controls the velocity of a multidimensional mechanism by commanding its position using the jacobian of the kinematics + CKalmanFilterImplements a Kalman Filter + CKalmanFilterBaseBase class for Kalman Filters + CMultiSensorEKF + COutputRepresent an output for a system + CRollingAvgFilterImplements a rolling average filter of the specified type + Nh264encoder + CEncoder + CEncoderImpl + Cx264_nal_t_simple + Nkinematics + CDiffDriveKinematicsRepresents the kinematics of a differential drive + CDiffWristKinematicsRepresents the kinematics of a differential wrist + CFabrikSolver2DImplementation of the FABRIK algorithm, in the special case of 2 dimensions + Cgearpos_tRepresents the positions (or power) of the two motor-driven gears in the differential wrist + Cjointpos_tRepresents the position (or power) of the differential wrist joint + CPlanarArmKinematicsKinematics object for a sequence of arm segments in a 2d plane + CSwerveDriveKinematicsCalculates forward and inverse drivebase kinematics for a 4-wheel swerve drivebase with specifiable width and length + Cswervewheelvel_tRepresents robot wheel velocities in robot reference frame, in polar form (wheel speed and angle) + Cwheelvel_t + Nnavtypes + Ceulerangles_t + Cgpscoords_tRepresents a GPS coordinate in degrees + CURCLeg + CURCLegGPS + Nnet + Nardupilot + CArduPilotProtocol + Nmc + Ntasks + CArmIKTaskThis task sets the arm joint positions to track the current IK command + CCameraStreamTaskThis task is responsible for sending the camera streams to Mission Control over websocket + CPowerRepeatTaskThis task is responsible for periodically resending setMotorPower commands to the motors + CTelemReportTaskThis task periodically sends robot telemetry data to Mission Control + CMissionControlProtocol + Nwebsocket + CSingleClientWSServerA WebSocket server class that only accepts a single client at a time to each endpoint served by this server + CWebSocketProtocolDefines a protocol which will be served at an endpoint of a server + NrobotCollection of functions for manipulating a motor + NtypesTypes for use in the world interface + CDataPointRepresents data measured using a sensor at a given time + CLimitSwitchDataA class that represents limit switches from a specific motor + Cbase_motorAn abstract motor class + Ccan_motor + Cencparams_t + Cpidcoef_tA struct containing a set of PID coefficients + Cpotparams_tRepresents parameters defining a potentiometer scale + Csim_motor + Nstd + Chash< std::pair< T1, T2 > > + NutilA collection of utility functions and classes with common use-cases + Nimpl + CNotifiable + CAsyncTaskAn abstract class that can be overridden to run long-running tasks and encapsulate task-related data + ClatchImplementation of a countdown latch for threading synchronization + CPeriodicSchedulerUses a single thread to periodically invoke callbacks at a given frequency + CPeriodicTaskImplements a task that executes a function periodically + CRAIIHelperA helper class for executing a function when leaving a scope, in RAII-style + CScopedTimerA utility class that helps with timing + CWatchdogImplements a thread-safe watchdog + Nvideo + CH264EncoderThis class encodes OpenCV frames into encoded H264 data that can be sent to an H264 decoder, like JMuxer + CGPSDatumA GPS datum that specifies the reference ellipsoid for use in GPS calculations + CGPSToMetersConverterA class used to convert gps coordinates to coordinates on a flat xy-plane, and vice versa + CJacobianVelControllerThis class controls the velocity of a multidimensional mechanism by commanding its position using the jacobian of the kinematics diff --git a/classes.html b/classes.html index b553dba6..d6c5709b 100644 --- a/classes.html +++ b/classes.html @@ -101,7 +101,7 @@
Encoder (h264encoder)
EncoderImpl (h264encoder)
encparams_t (robot)
eulerangles_t (navtypes)
ExtendedKalmanFilter (filters)
F
-
FabrikSolver2D (kinematics)
FullPoseEstimator (filters)
+
FabrikSolver2D (kinematics)
G
gearpos_t (kinematics)
gpscoords_t (navtypes)
GPSDatum
GPSToMetersConverter
@@ -131,7 +131,7 @@
Output (filters)
P
-
packettype_t (can)
PeriodicScheduler (util)
PeriodicTask (util)
pidcoef_t (robot)
PIDController (control)
PIDGains (control)
PlanarArmController (control)
PlanarArmKinematics (kinematics)
PoseEstimator (filters)
PoseEstimatorLinear (filters)
potparams_t (robot)
PowerRepeatTask (net::mc::tasks)
+
packettype_t (can)
PeriodicScheduler (util)
PeriodicTask (util)
pidcoef_t (robot)
PIDController (control)
PIDGains (control)
PlanarArmController (control)
PlanarArmKinematics (kinematics)
potparams_t (robot)
PowerRepeatTask (net::mc::tasks)
R
RAIIHelper (util)
RollingAvgFilter (filters)
diff --git a/classfilters_1_1FullPoseEstimator-members.html b/classfilters_1_1FullPoseEstimator-members.html deleted file mode 100644 index 96cb93b1..00000000 --- a/classfilters_1_1FullPoseEstimator-members.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - -Resurgence (PY2022): Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
filters::FullPoseEstimator Member List
-
-
- -

This is the complete list of members for filters::FullPoseEstimator, including all inherited members.

- - - - - - - - - - - - - -
correctGPS(const navtypes::point_t &gps)filters::FullPoseEstimator
correctHeading(double heading)filters::FullPoseEstimator
FullPoseEstimator(const Eigen::Vector2d &inputNoiseGains, double wheelBase, double dt, const Eigen::Vector2d &gpsStdDev, double headingStdDev) (defined in filters::FullPoseEstimator)filters::FullPoseEstimator
getEstimateCovarianceMat() constfilters::FullPoseEstimator
getPose() constfilters::FullPoseEstimator
numSensors (defined in filters::FullPoseEstimator)filters::FullPoseEstimatorstatic
numStates (defined in filters::FullPoseEstimator)filters::FullPoseEstimatorstatic
predict(double thetaVel, double xVel)filters::FullPoseEstimator
reset()filters::FullPoseEstimator
reset(const navtypes::pose_t &pose)filters::FullPoseEstimator
reset(const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)filters::FullPoseEstimator
state_t typedef (defined in filters::FullPoseEstimator)filters::FullPoseEstimator
- - - - diff --git a/classfilters_1_1FullPoseEstimator.html b/classfilters_1_1FullPoseEstimator.html deleted file mode 100644 index a41c5ad2..00000000 --- a/classfilters_1_1FullPoseEstimator.html +++ /dev/null @@ -1,362 +0,0 @@ - - - - - - - -Resurgence (PY2022): filters::FullPoseEstimator Class Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
-Public Types | -Public Member Functions | -Static Public Attributes | -List of all members
-
filters::FullPoseEstimator Class Reference
-
-
- -

This class implements a pose estimator that can fuse multiple sensors with the kinematic model for accurate estimation. - More...

- -

#include <FullPoseEstimator.h>

- - - - -

-Public Types

-using state_t = navtypes::Vectord<numStates>
 
- - - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

FullPoseEstimator (const Eigen::Vector2d &inputNoiseGains, double wheelBase, double dt, const Eigen::Vector2d &gpsStdDev, double headingStdDev)
 
void correctGPS (const navtypes::point_t &gps)
 Use a gps measurement to correct the pose estimate.
 
void correctHeading (double heading)
 Use a heading measurement to correct the pose estimate.
 
void predict (double thetaVel, double xVel)
 Use the model to predict the next system state, given the current inputs.
 
Eigen::Matrix< double, numStates, numStates > getEstimateCovarianceMat () const
 Get the current estimate covariance matrix.
 
void reset ()
 Reset the pose estimator.
 
void reset (const navtypes::pose_t &pose)
 Reset the pose estimator.
 
void reset (const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)
 Reset the pose estimator.
 
navtypes::pose_t getPose () const
 Gets the current state estimate.
 
- - - - - -

-Static Public Attributes

-static constexpr int numStates = 3
 
-static constexpr int numSensors = 2
 
-

Detailed Description

-

This class implements a pose estimator that can fuse multiple sensors with the kinematic model for accurate estimation.

-

Internally, this uses an EKF. This differs from filters::PoseEstimator in that multiple sensors are supported.

-

The tracked states are x, y, and heading, in map space.

-

Member Function Documentation

- -

◆ correctGPS()

- -
-
- - - - - - - -
void filters::FullPoseEstimator::correctGPS (const navtypes::point_t & gps)
-
- -

Use a gps measurement to correct the pose estimate.

-

The sensor reading is assumed to be appropriately recent.

-
Parameters
- - -
gpsThe gps measurement, in map space.
-
-
- -
-
- -

◆ correctHeading()

- -
-
- - - - - - - -
void filters::FullPoseEstimator::correctHeading (double heading)
-
- -

Use a heading measurement to correct the pose estimate.

-

The sensor reading is assumed to be appropriately recent.

-
Parameters
- - -
headingThe heading sensor reading, in map space.
-
-
- -
-
- -

◆ getEstimateCovarianceMat()

- -
-
- - - - - - - -
Eigen::Matrix< double, 3, 3 > filters::FullPoseEstimator::getEstimateCovarianceMat () const
-
- -

Get the current estimate covariance matrix.

-

This is an indication of the uncertainty of the pose estimate.

-
Returns
The estimate covariance matrix, AKA the P matrix.
- -
-
- -

◆ getPose()

- -
-
- - - - - - - -
pose_t filters::FullPoseEstimator::getPose () const
-
- -

Gets the current state estimate.

-
Returns
The state estimate.
- -
-
- -

◆ predict()

- -
-
- - - - - - - - - - - -
void filters::FullPoseEstimator::predict (double thetaVel,
double xVel )
-
- -

Use the model to predict the next system state, given the current inputs.

-
Parameters
- - - -
thetaVelCommanded rotational velocity.
xVelCommanded x velocity.
-
-
- -
-
- -

◆ reset() [1/3]

- -
-
- - - - - - - -
void filters::FullPoseEstimator::reset ()
-
- -

Reset the pose estimator.

-

Sets the state estimate to the zero vector and resets the estimate covariance matrix to a diagonal matrix with large values to reflect complete uncertainty in the current pose. If you have any information about the current pose, use reset(const pose_t &, -const pose_t &)

- -
-
- -

◆ reset() [2/3]

- -
-
- - - - - - - -
void filters::FullPoseEstimator::reset (const navtypes::pose_t & pose)
-
- -

Reset the pose estimator.

-

Sets the state estimate to the supplied vector and resets the estimate covariance matrix to a diagonal matrix with large values to reflect complete uncertainty in the current pose. If you have any information about the current pose, use reset(const pose_t &, -const pose_t &)

-
Parameters
- - -
poseThe pose to which the state estimate will be set.
-
-
- -
-
- -

◆ reset() [3/3]

- -
-
- - - - - - - - - - - -
void filters::FullPoseEstimator::reset (const navtypes::pose_t & pose,
const navtypes::pose_t & stdDevs )
-
- -

Reset the pose estimator.

-

Sets the state estimate to the supplied vector and sets the estimate covariance matrix to reflect the given uncertainty.

-
Parameters
- - - -
poseThe pose to which the state estimate will be set.
stdDevsThe standard deviation for each element in the pose.
-
-
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/classfilters_1_1KalmanFilterBase.html b/classfilters_1_1KalmanFilterBase.html index 69d8f781..adc293ec 100644 --- a/classfilters_1_1KalmanFilterBase.html +++ b/classfilters_1_1KalmanFilterBase.html @@ -100,19 +100,13 @@
Inheritance graph
- - - - - - - - - - - - - + + + + + + +
[legend]
@@ -273,7 +267,7 @@

filters::ExtendedKalmanFilter< stateDim, inputDim, outputDim, processNoiseDim, outputNoiseDim >, filters::ExtendedKalmanFilter< numStates, 2, 3, 2, 3 >, filters::KalmanFilter< stateDim, inputDim, outputDim >, and filters::KalmanFilter< 3, 3, 3 >.

+

Implemented in filters::ExtendedKalmanFilter< stateDim, inputDim, outputDim, processNoiseDim, outputNoiseDim >, and filters::KalmanFilter< stateDim, inputDim, outputDim >.

diff --git a/classfilters_1_1KalmanFilterBase__inherit__graph.map b/classfilters_1_1KalmanFilterBase__inherit__graph.map index 54d07fdf..544451e3 100644 --- a/classfilters_1_1KalmanFilterBase__inherit__graph.map +++ b/classfilters_1_1KalmanFilterBase__inherit__graph.map @@ -1,15 +1,9 @@ - - - - - - - - - - - - - + + + + + + + diff --git a/classfilters_1_1KalmanFilterBase__inherit__graph.md5 b/classfilters_1_1KalmanFilterBase__inherit__graph.md5 index f46f7ccd..d9d4b69b 100644 --- a/classfilters_1_1KalmanFilterBase__inherit__graph.md5 +++ b/classfilters_1_1KalmanFilterBase__inherit__graph.md5 @@ -1 +1 @@ -9062434c4e4e70699d613660de13d92d \ No newline at end of file +3ce86d33ff519b34ee03bfef4d710d5f \ No newline at end of file diff --git a/classfilters_1_1KalmanFilterBase__inherit__graph.png b/classfilters_1_1KalmanFilterBase__inherit__graph.png index 6ebce59d..54217350 100644 Binary files a/classfilters_1_1KalmanFilterBase__inherit__graph.png and b/classfilters_1_1KalmanFilterBase__inherit__graph.png differ diff --git a/classfilters_1_1PoseEstimator-members.html b/classfilters_1_1PoseEstimator-members.html deleted file mode 100644 index 13d1aafa..00000000 --- a/classfilters_1_1PoseEstimator-members.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - -Resurgence (PY2022): Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
filters::PoseEstimator Member List
-
-
- -

This is the complete list of members for filters::PoseEstimator, including all inherited members.

- - - - - - - - - - - -
correct(const navtypes::transform_t &measurement)filters::PoseEstimator
getEstimateCovarianceMat() constfilters::PoseEstimator
getPose() constfilters::PoseEstimator
numStatesfilters::PoseEstimatorstatic
PoseEstimator(const Eigen::Vector2d &inputNoiseGains, const Eigen::Vector3d &measurementStdDevs, double wheelBase, double dt)filters::PoseEstimator
predict(double thetaVel, double xVel)filters::PoseEstimator
reset()filters::PoseEstimator
reset(const navtypes::pose_t &pose)filters::PoseEstimator
reset(const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)filters::PoseEstimator
statevec_t typedeffilters::PoseEstimator
- - - - diff --git a/classfilters_1_1PoseEstimator.html b/classfilters_1_1PoseEstimator.html deleted file mode 100644 index 78c12fe7..00000000 --- a/classfilters_1_1PoseEstimator.html +++ /dev/null @@ -1,374 +0,0 @@ - - - - - - - -Resurgence (PY2022): filters::PoseEstimator Class Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
-Public Types | -Public Member Functions | -Static Public Attributes | -List of all members
-
filters::PoseEstimator Class Reference
-
-
- -

Uses an Extended Kalman Filter to estimate the robot pose. - More...

- -

#include <PoseEstimator.h>

- - - - - -

-Public Types

-using statevec_t = Eigen::Matrix<double, numStates, 1>
 The type of the state vector.
 
- - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 PoseEstimator (const Eigen::Vector2d &inputNoiseGains, const Eigen::Vector3d &measurementStdDevs, double wheelBase, double dt)
 Create a new Pose Estimator.
 
void correct (const navtypes::transform_t &measurement)
 Correct the pose estimation with measurement data.
 
void predict (double thetaVel, double xVel)
 Use the model to predict the next system state, given the current inputs.
 
Eigen::Matrix< double, numStates, numStatesgetEstimateCovarianceMat () const
 Get the current estimate covariance matrix.
 
void reset ()
 Reset the pose estimator.
 
void reset (const navtypes::pose_t &pose)
 Reset the pose estimator.
 
void reset (const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)
 Reset the pose estimator.
 
navtypes::pose_t getPose () const
 Gets the current state estimate.
 
- - - - -

-Static Public Attributes

-static constexpr int numStates = 3
 The dimension of the state vector.
 
-

Detailed Description

-

Uses an Extended Kalman Filter to estimate the robot pose.

-

This class uses a Kalman Filter to continuously estimate the pose of the robot in 2d space. The tracked states are x, y, and heading. All of these states are in map space.

-

Constructor & Destructor Documentation

- -

◆ PoseEstimator()

- -
-
- - - - - - - - - - - - - - - - - - - - - -
filters::PoseEstimator::PoseEstimator (const Eigen::Vector2d & inputNoiseGains,
const Eigen::Vector3d & measurementStdDevs,
double wheelBase,
double dt )
-
- -

Create a new Pose Estimator.

-
Parameters
- - - - - -
inputNoiseGainsThe gain for the noise in each dimension of the input space. This pose estimator models process noise as noise applied to the wheel velocities with standard deviation proportional to the wheel velocity. The standard deviation of the noise is modelled as k * sqrt(abs(v)) where k is the input noise gain and v is the wheel velocity.
measurementStdDevsThe standard deviations for each of the measurement elements. This represents additive noise in the measurements.
wheelBaseThe distance between the left and right wheels.
dtThe time in seconds between updates.
-
-
- -
-
-

Member Function Documentation

- -

◆ correct()

- -
-
- - - - - - - -
void filters::PoseEstimator::correct (const navtypes::transform_t & measurement)
-
- -

Correct the pose estimation with measurement data.

-

The measurement should be in the same space as the state.

-
Parameters
- - -
measurementThe measurement to use to correct the filter, as a transform.
-
-
- -
-
- -

◆ getEstimateCovarianceMat()

- -
-
- - - - - - - -
Eigen::Matrix< double, 3, 3 > filters::PoseEstimator::getEstimateCovarianceMat () const
-
- -

Get the current estimate covariance matrix.

-

This is an indication of the uncertainty of the pose estimate.

-
Returns
The estimate covariance matrix, AKA the P matrix.
- -
-
- -

◆ getPose()

- -
-
- - - - - - - -
pose_t filters::PoseEstimator::getPose () const
-
- -

Gets the current state estimate.

-
Returns
The state estimate.
- -
-
- -

◆ predict()

- -
-
- - - - - - - - - - - -
void filters::PoseEstimator::predict (double thetaVel,
double xVel )
-
- -

Use the model to predict the next system state, given the current inputs.

-
Parameters
- - - -
thetaVelCommanded rotational velocity.
xVelCommanded x velocity.
-
-
- -
-
- -

◆ reset() [1/3]

- -
-
- - - - - - - -
void filters::PoseEstimator::reset ()
-
- -

Reset the pose estimator.

-

Sets the state estimate to the zero vector and resets the estimate covariance matrix to a diagonal matrix with large values to reflect complete uncertainty in the current pose. If you have any information about the current pose, use reset(const pose_t &, -const pose_t &)

- -
-
- -

◆ reset() [2/3]

- -
-
- - - - - - - -
void filters::PoseEstimator::reset (const navtypes::pose_t & pose)
-
- -

Reset the pose estimator.

-

Sets the state estimate to the supplied vector and resets the estimate covariance matrix to a diagonal matrix with large values to reflect complete uncertainty in the current pose. If you have any information about the current pose, use reset(const pose_t &, -const pose_t &)

-
Parameters
- - -
poseThe pose to which the state estimate will be set.
-
-
- -
-
- -

◆ reset() [3/3]

- -
-
- - - - - - - - - - - -
void filters::PoseEstimator::reset (const navtypes::pose_t & pose,
const navtypes::pose_t & stdDevs )
-
- -

Reset the pose estimator.

-

Sets the state estimate to the supplied vector and sets the estimate covariance matrix to reflect the given uncertainty.

-
Parameters
- - - -
poseThe pose to which the state estimate will be set.
stdDevsThe standard deviation for each element in the pose.
-
-
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/classfilters_1_1PoseEstimatorLinear-members.html b/classfilters_1_1PoseEstimatorLinear-members.html deleted file mode 100644 index 0928d2c6..00000000 --- a/classfilters_1_1PoseEstimatorLinear-members.html +++ /dev/null @@ -1,106 +0,0 @@ - - - - - - - -Resurgence (PY2022): Member List - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
filters::PoseEstimatorLinear Member List
-
-
- -

This is the complete list of members for filters::PoseEstimatorLinear, including all inherited members.

- - - - - - - - - -
correct(const navtypes::transform_t &measurement)filters::PoseEstimatorLinear
getEstimateCovarianceMat() constfilters::PoseEstimatorLinearinline
getPose() constfilters::PoseEstimatorLinearinline
PoseEstimatorLinear(const Eigen::Vector3d &stateStdDevs, const Eigen::Vector3d &measurementStdDevs, double dt)filters::PoseEstimatorLinear
predict(double thetaVel, double xVel)filters::PoseEstimatorLinear
reset()filters::PoseEstimatorLinearinline
reset(const navtypes::pose_t &pose)filters::PoseEstimatorLinear
reset(const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)filters::PoseEstimatorLinear
- - - - diff --git a/classfilters_1_1PoseEstimatorLinear.html b/classfilters_1_1PoseEstimatorLinear.html deleted file mode 100644 index 5aade222..00000000 --- a/classfilters_1_1PoseEstimatorLinear.html +++ /dev/null @@ -1,373 +0,0 @@ - - - - - - - -Resurgence (PY2022): filters::PoseEstimatorLinear Class Reference - - - - - - - - - - - - - -
-
- - - - - - -
-
Resurgence (PY2022) -
-
Codebase for the Husky Robotics 2021-2022 rover Resurgence
-
-
- - - - - - - - -
-
- - -
-
-
-
-
-
Loading...
-
Searching...
-
No Matches
-
-
-
-
- - -
-
-
-Public Member Functions | -List of all members
-
filters::PoseEstimatorLinear Class Reference
-
-
- -

Uses a Kalman Filter to estimate the robot pose. - More...

- -

#include <PoseEstimatorLinear.h>

- - - - - - - - - - - - - - - - - - - - - - - - - - -

-Public Member Functions

 PoseEstimatorLinear (const Eigen::Vector3d &stateStdDevs, const Eigen::Vector3d &measurementStdDevs, double dt)
 Create a new Pose Estimator.
 
void correct (const navtypes::transform_t &measurement)
 Correct the pose estimation with measurement data.
 
void predict (double thetaVel, double xVel)
 Use the model to predict the next system state, given the current inputs.
 
Eigen::Matrix3d getEstimateCovarianceMat () const
 Get the current estimate covariance matrix.
 
void reset ()
 Reset the estimator.
 
void reset (const navtypes::pose_t &pose)
 Reset the estimator.
 
void reset (const navtypes::pose_t &pose, const navtypes::pose_t &stdDevs)
 Reset the estimator.
 
navtypes::pose_t getPose () const
 Gets the current state estimate.
 
-

Detailed Description

-

Uses a Kalman Filter to estimate the robot pose.

-

This class uses a Kalman Filter to continuously estimate the pose of the robot in 2d space. The tracked states are x, y, and heading. All of these states are in map space. In most cases, you should probably use PoseEstimator instead. However, I don't think we should delete this until we confirm that PoseEstimator works on a real robot.

-

Constructor & Destructor Documentation

- -

◆ PoseEstimatorLinear()

- -
-
- - - - - - - - - - - - - - - - -
filters::PoseEstimatorLinear::PoseEstimatorLinear (const Eigen::Vector3d & stateStdDevs,
const Eigen::Vector3d & measurementStdDevs,
double dt )
-
- -

Create a new Pose Estimator.

-
Parameters
- - - - -
stateStdDevsThe standard deviations for each of the state elements. This represents noise in the system model.
measurementStdDevsThe standard deviations for each of the measurement elements. This represents noise in the measurements.
dtThe time in seconds between updates. Used to discretize the system model.
-
-
- -
-
-

Member Function Documentation

- -

◆ correct()

- -
-
- - - - - - - -
void filters::PoseEstimatorLinear::correct (const navtypes::transform_t & measurement)
-
- -

Correct the pose estimation with measurement data.

-

The measurement should be in the same space as the state.

-
Parameters
- - -
measurementThe measurement to use to correct the filter, as a transform.
-
-
- -
-
- -

◆ getEstimateCovarianceMat()

- -
-
- - - - - -
- - - - - - - -
Eigen::Matrix3d filters::PoseEstimatorLinear::getEstimateCovarianceMat () const
-
-inline
-
- -

Get the current estimate covariance matrix.

-

This is an indication of the uncertainty of the pose estimate.

-
Returns
The estimate covariance matrix, AKA the P matrix.
- -
-
- -

◆ getPose()

- -
-
- - - - - -
- - - - - - - -
navtypes::pose_t filters::PoseEstimatorLinear::getPose () const
-
-inline
-
- -

Gets the current state estimate.

-
Returns
The state estimate.
- -
-
- -

◆ predict()

- -
-
- - - - - - - - - - - -
void filters::PoseEstimatorLinear::predict (double thetaVel,
double xVel )
-
- -

Use the model to predict the next system state, given the current inputs.

-
Parameters
- - - -
thetaVelCommanded rotational velocity.
xVelCommanded x velocity.
-
-
- -
-
- -

◆ reset() [1/3]

- -
-
- - - - - -
- - - - - - - -
void filters::PoseEstimatorLinear::reset ()
-
-inline
-
- -

Reset the estimator.

-

Sets the state estimate to the zero vector and resets the estimate covariance matrix.

- -
-
- -

◆ reset() [2/3]

- -
-
- - - - - - - -
void filters::PoseEstimatorLinear::reset (const navtypes::pose_t & pose)
-
- -

Reset the estimator.

-

Sets the state estimate to the supplied vector and resets the estimate covariance matrix.

-
Parameters
- - -
poseThe pose to which the state estimate will be set.
-
-
- -
-
- -

◆ reset() [3/3]

- -
-
- - - - - - - - - - - -
void filters::PoseEstimatorLinear::reset (const navtypes::pose_t & pose,
const navtypes::pose_t & stdDevs )
-
- -

Reset the estimator.

-
Parameters
- - - -
poseThe pose to set as the new estimate.
stdDevsThe standard deviations in each axis of the state vector.
-
-
- -
-
-
The documentation for this class was generated from the following files: -
- - - - diff --git a/dir_1bc13244e26df1e1f069a1fd18e36da3.html b/dir_1bc13244e26df1e1f069a1fd18e36da3.html index 2b1560de..b09db4e2 100644 --- a/dir_1bc13244e26df1e1f069a1fd18e36da3.html +++ b/dir_1bc13244e26df1e1f069a1fd18e36da3.html @@ -100,18 +100,12 @@ Files  ExtendedKalmanFilter.h   - FullPoseEstimator.h KalmanFilter.h    KalmanFilterBase.h    MultiSensorEKF.h   - PoseEstimator.h -  - PoseEstimatorLinear.h RollingAvgFilter.h    StateSpaceUtil.h diff --git a/doxygen_crawl.html b/doxygen_crawl.html index 137a5f91..d933fdb5 100644 --- a/doxygen_crawl.html +++ b/doxygen_crawl.html @@ -32,12 +32,9 @@ - - - @@ -126,8 +123,6 @@ - - @@ -136,10 +131,6 @@ - - - - @@ -384,7 +375,6 @@ - diff --git a/files.html b/files.html index 191976ce..5e739703 100644 --- a/files.html +++ b/files.html @@ -116,56 +116,53 @@  TrapezoidalVelocityProfile.h   filters  ExtendedKalmanFilter.h - FullPoseEstimator.h - KalmanFilter.h - KalmanFilterBase.h - MultiSensorEKF.h - PoseEstimator.h - PoseEstimatorLinear.h - RollingAvgFilter.h - StateSpaceUtil.h -  gps -  usb_gps - read_usb_gps.h - gps_util.h -  kinematics - DiffDriveKinematics.h - DiffWristKinematics.h - FabrikSolver.h - PlanarArmKinematics.h - SwerveDriveKinematics.h -  network -  websocket - WebSocketProtocol.h - WebSocketServer.h - MissionControlMessages.h - MissionControlProtocol.h - MissionControlTasks.h -  utils - core.h - doc.h - json.h - math.h - random.h - scheduler.h - ScopedTimer.h - threading.h - time.h - transform.h -  video - encoder.hpp - H264Encoder.h -  world_interface -  motor - base_motor.h - can_motor.h - sim_motor.h - data.h - real_world_constants.h - world_interface.h - Constants.h - Globals.h - navtypes.h + KalmanFilter.h + KalmanFilterBase.h + MultiSensorEKF.h + RollingAvgFilter.h + StateSpaceUtil.h +  gps +  usb_gps + read_usb_gps.h + gps_util.h +  kinematics + DiffDriveKinematics.h + DiffWristKinematics.h + FabrikSolver.h + PlanarArmKinematics.h + SwerveDriveKinematics.h +  network +  websocket + WebSocketProtocol.h + WebSocketServer.h + MissionControlMessages.h + MissionControlProtocol.h + MissionControlTasks.h +  utils + core.h + doc.h + json.h + math.h + random.h + scheduler.h + ScopedTimer.h + threading.h + time.h + transform.h +  video + encoder.hpp + H264Encoder.h +  world_interface +  motor + base_motor.h + can_motor.h + sim_motor.h + data.h + real_world_constants.h + world_interface.h + Constants.h + Globals.h + navtypes.h diff --git a/functions_c.html b/functions_c.html index 1e564edb..3efdeaa1 100644 --- a/functions_c.html +++ b/functions_c.html @@ -82,15 +82,13 @@
Here is a list of all documented class members with links to the class documentation for each member:

- c -