8class Imu :
public IImu {
12 float gyro[3], accel[3], mag[3];
14 const float accel_bias[3] = {0.076091, -0.056203, 0.049820};
15 const float accel_scale[3][3] = {{1.004290, 0.002457, 0.000033},
16 {0.002457, 1.002675, 0.002101},
17 {0.000033, 0.002101, 0.994819}};
18 const float gyro_bias[3] = {0.00127898, 0.00048873, 0.00255299};
19 const float gyro_scale[3][3] = {
24 const float orientation[3][3];
27 Imu(uint32_t sampling_rate_,
float beta_,
const float orientation_[3][3]);
29 float get_temp()
override;
30 void get_attitude(
Attitude_t& attitude)
override;
32 void set_heat_pwm(uint16_t duty_cycle)
override;
33 void gather_sensor_data(
AhrsSensor_t& sensor,
bool read_mag)
override;
34 void adjust_data(
float output[3],
float data[3],
const float bias[3],
35 const float scale[3][3]);