Files
gps/soc/software/gps_system/header/fusion/fusion_imu_quality.h
T

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