Imu#
- group drv_imu
Wraps the lis2mdl and lsm6ds drivers in a single API.
- Author
Mališa Vučinić malisa.vucinic@inria.fr
- Copyright
Inria, 2023
Functions
-
void imu_init(lis2mdl_data_ready_cb_t lis2mdl_callback, lsm6ds_data_ready_cb_t lsm6ds_callback)#
Initialize the IMU chips.
- Parameters:
lis2mdl_callback – [in] callback pointer invoked whenever LIS2MDL data is ready, can be NULL
lsm6ds_callback – [in] callback pointer invoked whenever LSM6DS data is ready, can be NULL
-
float imu_calculate_roll(lsm6ds_acc_data_t *acc_reading)#
Calculate roll angle.
- Parameters:
acc_reading – [in] Raw accelerometer reading struct
- Returns:
Roll angle
-
float imu_calculate_pitch(lsm6ds_acc_data_t *acc_reading)#
Calculate pitch angle.
- Parameters:
acc_reading – [in] Raw accelerometer reading struct
- Returns:
Pitch angle
-
float imu_calculate_uncompensated_heading(lis2mdl_compass_data_t *mag_reading)#
Calculate uncompensated heading.
- Parameters:
mag_reading – [in] Raw magnetometer reading struct
- Returns:
Heading angle
-
float imu_calculate_tilt_compensated_heading(lis2mdl_compass_data_t *mag_reading, lsm6ds_acc_data_t *acc_reading)#
Calculate tilt-compensated heading.
- Parameters:
mag_reading – [in] Raw magnetometer reading struct
acc_reading – [in] Raw accelerometer reading struct
- Returns:
Tilt-compensated heading angle