|
STAR
Cal STAR — firmware, DAQ server, and engine design
|
Enhanced EKF Navigation with Magnetometer Support. More...
#include <EKFNavigationEnhanced.hpp>
Classes | |
| struct | EnhancedConfig |
| Enhanced configuration with magnetometer parameters. More... | |
Public Member Functions | |
| EKFNavigationEnhanced () | |
| ~EKFNavigationEnhanced () | |
| bool | initialize (const EnhancedConfig &config, const NavigationState &initial_state) |
| Initialize with enhanced configuration. | |
| bool | processMagnetometerMeasurement (const IMUMeasurement &measurement, const calibration::IMUCalibration::CalibratedReading &calibrated) |
| Process magnetometer measurement with calibration. | |
| double | getHeading () const |
| Get heading estimate (from magnetometer + gyro fusion). | |
| Eigen::Vector3d | getMagneticField () const |
| Get magnetic field estimate. | |
| void | setIMUCalibration (std::shared_ptr< calibration::IMUCalibrationSystem > calib_system) |
| Set IMU calibration system. | |
Private Member Functions | |
| void | updateWithMagnetometer (const Eigen::Vector3d &mag_field) |
| Eigen::Vector3d | computeMagnetometerMeasurement (const Eigen::VectorXd &state) const |
| Eigen::MatrixXd | computeMagnetometerJacobian (const Eigen::VectorXd &state) const |
| double | computeHeadingFromQuaternion (const Eigen::Quaterniond &q) const |
| double | computeHeadingFromMagnetometer (const Eigen::Vector3d &mag_field, const Eigen::Quaterniond &q) const |
Private Attributes | |
| EnhancedConfig | enhanced_config_ |
| std::shared_ptr< calibration::IMUCalibrationSystem > | imu_calibration_ |
| Eigen::Vector3d | magnetic_field_ |
| double | heading_ |
| std::mutex | mag_mutex_ |
Enhanced EKF Navigation with Magnetometer Support.
Extends EKFNavigation to properly integrate magnetometer measurements for heading estimation and attitude correction.
Definition at line 16 of file EKFNavigationEnhanced.hpp.
| fsw::nav::EKFNavigationEnhanced::EKFNavigationEnhanced | ( | ) |
| fsw::nav::EKFNavigationEnhanced::~EKFNavigationEnhanced | ( | ) |
|
private |
|
private |
|
private |
References state.
|
private |
References state.
| double fsw::nav::EKFNavigationEnhanced::getHeading | ( | ) | const |
Get heading estimate (from magnetometer + gyro fusion).
| Eigen::Vector3d fsw::nav::EKFNavigationEnhanced::getMagneticField | ( | ) | const |
Get magnetic field estimate.
| bool fsw::nav::EKFNavigationEnhanced::initialize | ( | const EnhancedConfig & | config, |
| const NavigationState & | initial_state ) |
Initialize with enhanced configuration.
| bool fsw::nav::EKFNavigationEnhanced::processMagnetometerMeasurement | ( | const IMUMeasurement & | measurement, |
| const calibration::IMUCalibration::CalibratedReading & | calibrated ) |
Process magnetometer measurement with calibration.
| measurement | Raw magnetometer reading |
| calibrated | Calibrated magnetometer reading |
References calibrated.
| void fsw::nav::EKFNavigationEnhanced::setIMUCalibration | ( | std::shared_ptr< calibration::IMUCalibrationSystem > | calib_system | ) |
Set IMU calibration system.
|
private |
|
private |
Definition at line 80 of file EKFNavigationEnhanced.hpp.
|
private |
Definition at line 85 of file EKFNavigationEnhanced.hpp.
|
private |
Definition at line 81 of file EKFNavigationEnhanced.hpp.
|
mutableprivate |
Definition at line 86 of file EKFNavigationEnhanced.hpp.
|
private |
Definition at line 84 of file EKFNavigationEnhanced.hpp.