EKF Updater Class for IMU Sensors.
More...
#include <imu_updater.hpp>
|
| | ImuUpdater (unsigned int imu_id, bool is_extrinsic, bool is_intrinsic, const std::string &log_file_directory, double data_log_rate, std::shared_ptr< DebugLogger > logger) |
| | IMU EKF Updater Constructor. More...
|
| |
| Eigen::VectorXd | PredictMeasurement (EKF &ekf) const |
| | Predict acceleration measurement. More...
|
| |
| Eigen::MatrixXd | GetZeroAccelerationJacobian (EKF &ekf) const |
| | Zero acceleration Jacobian method. More...
|
| |
| void | UpdateEKF (EKF &ekf, const double time, const Eigen::Vector3d &acceleration, const Eigen::Matrix3d &acceleration_covariance, const Eigen::Vector3d &angular_rate, const Eigen::Matrix3d &angular_rate_covariance) |
| | EKF update method for IMU measurements. More...
|
| |
| bool | ZeroAccelerationUpdate (EKF &ekf, double local_time, const Eigen::Vector3d &acceleration, const Eigen::Matrix3d &acceleration_covariance, const Eigen::Vector3d &angular_rate, const Eigen::Matrix3d &angular_rate_covariance) |
| | Check for and perform a zero-acceleration update. More...
|
| |
| Eigen::MatrixXd | GetMeasurementJacobian (EKF &ekf) const |
| | Calculate IMU measurement jacobian. More...
|
| |
| void | AngularUpdate (EKF &ekf, const Eigen::Vector3d &angular_rate, const Eigen::Matrix3d &angular_rate_covariance) const |
| | IMU state angular rate updater. More...
|
| |
| | Updater (unsigned int sensor_id, std::shared_ptr< DebugLogger > logger) |
| | EKF Updater constructor. More...
|
| |
|
| static void | KalmanUpdate (EKF &ekf, const Eigen::MatrixXd &jacobian, const Eigen::VectorXd &residual, const Eigen::MatrixXd &measurement_noise_input) |
| |
|
unsigned int | m_id |
| | Associated sensor ID.
|
| |
|
std::shared_ptr< DebugLogger > | m_logger |
| | Debug logger.
|
| |
EKF Updater Class for IMU Sensors.
◆ ImuUpdater()
| ImuUpdater::ImuUpdater |
( |
unsigned int |
imu_id, |
|
|
bool |
is_extrinsic, |
|
|
bool |
is_intrinsic, |
|
|
const std::string & |
log_file_directory, |
|
|
double |
data_log_rate, |
|
|
std::shared_ptr< DebugLogger > |
logger |
|
) |
| |
IMU EKF Updater Constructor.
- Parameters
-
| imu_id | IMU Sensor ID |
| is_extrinsic | switch if this is the base sensor |
| is_intrinsic | switch if imu intrinsics should be calibrated |
| log_file_directory | Logging file directory |
| data_log_rate | Maximum average rate to log data |
| logger | Debug logger pointer |
◆ AngularUpdate()
| void ImuUpdater::AngularUpdate |
( |
EKF & |
ekf, |
|
|
const Eigen::Vector3d & |
angular_rate, |
|
|
const Eigen::Matrix3d & |
angular_rate_covariance |
|
) |
| const |
IMU state angular rate updater.
- Parameters
-
| ekf | EKF address |
| angular_rate | Angular rate measurement |
| angular_rate_covariance | Angular rate covariance |
◆ GetMeasurementJacobian()
| Eigen::MatrixXd ImuUpdater::GetMeasurementJacobian |
( |
EKF & |
ekf | ) |
const |
Calculate IMU measurement jacobian.
- Parameters
-
- Returns
- Measurement jacobian
◆ GetZeroAccelerationJacobian()
| Eigen::MatrixXd ImuUpdater::GetZeroAccelerationJacobian |
( |
EKF & |
ekf | ) |
const |
Zero acceleration Jacobian method.
- Parameters
-
- Returns
- Measurement Jacobian matrix
◆ PredictMeasurement()
| Eigen::VectorXd ImuUpdater::PredictMeasurement |
( |
EKF & |
ekf | ) |
const |
Predict acceleration measurement.
TODO: The frames are not correct here.
- Parameters
-
- Returns
- Predicted measurement vector
◆ UpdateEKF()
| void ImuUpdater::UpdateEKF |
( |
EKF & |
ekf, |
|
|
const double |
time, |
|
|
const Eigen::Vector3d & |
acceleration, |
|
|
const Eigen::Matrix3d & |
acceleration_covariance, |
|
|
const Eigen::Vector3d & |
angular_rate, |
|
|
const Eigen::Matrix3d & |
angular_rate_covariance |
|
) |
| |
EKF update method for IMU measurements.
- Parameters
-
| ekf | EKF address |
| time | Measurement time |
| acceleration | Measured acceleration |
| acceleration_covariance | Estimated acceleration error |
| angular_rate | Measured angular rate |
| angular_rate_covariance | Estimated angular rate error |
◆ ZeroAccelerationUpdate()
| bool ImuUpdater::ZeroAccelerationUpdate |
( |
EKF & |
ekf, |
|
|
double |
local_time, |
|
|
const Eigen::Vector3d & |
acceleration, |
|
|
const Eigen::Matrix3d & |
acceleration_covariance, |
|
|
const Eigen::Vector3d & |
angular_rate, |
|
|
const Eigen::Matrix3d & |
angular_rate_covariance |
|
) |
| |
Check for and perform a zero-acceleration update.
- Parameters
-
| ekf | EKF address |
| local_time | Measurement in local EKF time |
| acceleration | Measured acceleration |
| acceleration_covariance | Estimated acceleration error |
| angular_rate | Measured angular rate |
| angular_rate_covariance | Estimated angular rate error |
- Todo:
- Test stationary rotation
The documentation for this class was generated from the following files: