32 lines
1.3 KiB
C
32 lines
1.3 KiB
C
#ifndef FUSION_IMU_QUALITY_H
|
|
#define FUSION_IMU_QUALITY_H
|
|
|
|
#include <stdbool.h>
|
|
|
|
#define FUSION_IMU_QUALITY_AXIS_COUNT 3u
|
|
|
|
/*
|
|
* Hardware-neutral IMU characteristics. The nominal noise fields describe
|
|
* the sensor/board measurement stream. The process-noise fields are the
|
|
* deliberately conservative values used by the ESKF and may include timing,
|
|
* mounting, calibration and temperature uncertainty in addition to white
|
|
* sensor noise.
|
|
*/
|
|
typedef struct {
|
|
const char* name;
|
|
double nominal_accel_noise_density_mps2_sqrt_hz[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double nominal_gyro_noise_density_rps_sqrt_hz[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double process_accel_noise_density_mps2_sqrt_hz[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double process_gyro_noise_density_rps_sqrt_hz[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double accel_bias_random_walk_mps2_sqrt_s[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double gyro_bias_random_walk_rps_sqrt_s[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
double calibration_accel_std_limit_mps2;
|
|
double calibration_gyro_std_limit_rps;
|
|
double zero_gyro_measurement_std_rps[FUSION_IMU_QUALITY_AXIS_COUNT];
|
|
} fusion_imu_quality_profile_t;
|
|
|
|
void fusion_imu_quality_default(fusion_imu_quality_profile_t* profile);
|
|
bool fusion_imu_quality_is_valid(const fusion_imu_quality_profile_t* profile);
|
|
|
|
#endif
|