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) |
| Predict acceleration measurement. More...
|
|
Eigen::MatrixXd | GetZeroAccelerationJacobian (EKF &ekf) |
| Zero acceleration Jacobian method. More...
|
|
void | UpdateEKF (EKF &ekf, 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) |
| Calculate measurement jacobian. More...
|
|
void | AngularUpdate (EKF &ekf, const Eigen::Vector3d &angular_rate, const Eigen::Matrix3d &angular_rate_covariance) |
| IMU state angular rate updater. More...
|
|
| Updater (unsigned int sensor_id, std::shared_ptr< DebugLogger > logger) |
| EKF Updater constructor. More...
|
|
void | KalmanUpdate (EKF &ekf, const Eigen::MatrixXd &jacobian, const Eigen::VectorXd &residual, const Eigen::MatrixXd &measurement_noise) |
|
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 |
|
) |
| |
IMU state angular rate updater.
- Parameters
-
angular_rate | Angular rate measurement |
angular_rate_covariance | Angular rate covariance |
omg_bias | Angular rate bias |
◆ GetMeasurementJacobian()
Eigen::MatrixXd ImuUpdater::GetMeasurementJacobian |
( |
EKF & |
ekf | ) |
|
Calculate measurement jacobian.
- Parameters
-
pos_i_in_b | IMU position in the body frame |
ang_i_to_b | IMU orientation to the body frame |
ang_b_to_l | Body orientation to the local frame |
- Returns
- Measurement jacobian
◆ GetZeroAccelerationJacobian()
Eigen::MatrixXd ImuUpdater::GetZeroAccelerationJacobian |
( |
EKF & |
ekf | ) |
|
Zero acceleration Jacobian method.
- Parameters
-
- Returns
- Measurement Jacobian matrix
◆ PredictMeasurement()
Eigen::VectorXd ImuUpdater::PredictMeasurement |
( |
EKF & |
ekf | ) |
|
Predict acceleration measurement.
TODO: The frames are not correct here.
- Parameters
-
- Returns
- Predicted measurement vector
◆ UpdateEKF()
void ImuUpdater::UpdateEKF |
( |
EKF & |
ekf, |
|
|
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 pointer |
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 pointer |
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: