27 #include "generated/modules.h"
48 imu1.spi.p = &PIXHAWK6X_IMU1_SPI_DEV;
49 imu1.spi.slave_idx = PIXHAWK6X_IMU1_SPI_SLAVE_IDX;
72 imu2.spi.p = &PIXHAWK6X_IMU2_SPI_DEV;
73 imu2.spi.slave_idx = PIXHAWK6X_IMU2_SPI_SLAVE_IDX;
95 imu3.spi.p = &PIXHAWK6X_IMU3_SPI_DEV;
96 imu3.spi.slave_idx = PIXHAWK6X_IMU3_SPI_SLAVE_IDX;
Main include for ABI (AirBorneInterface).
int32_t phi
in rad with INT32_ANGLE_FRAC
int32_t psi
in rad with INT32_ANGLE_FRAC
int32_t theta
in rad with INT32_ANGLE_FRAC
#define ANGLE_BFP_OF_REAL(_af)
#define int32_rmat_of_eulers
Rotation matrix from Euler angles.
void imu_set_defaults_accel(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Vect3 *neutral, const struct Int32Vect3 *scale)
Set the defaults for a accel sensor WARNING: Should be called before sensor is publishing messages to...
void imu_set_defaults_gyro(uint8_t abi_id, const struct Int32RMat *imu_to_sensor, const struct Int32Rates *neutral, const struct Int32Rates *scale)
Set the defaults for a gyro sensor WARNING: Should be called before sensor is publishing messages to ...
Inertial Measurement Unit interface.
static struct invensense2_t imu3
void imu_pixhawk6x_init(void)
static struct invensense3_t imu1
static struct invensense3_t imu2
void imu_pixhawk6x_event(void)
void imu_pixhawk6x_periodic(void)
void invensense2_event(struct invensense2_t *inv)
Should be called in the event thread.
void invensense2_periodic(struct invensense2_t *inv)
Should be called periodically to request sensor readings.
void invensense2_init(struct invensense2_t *inv)
Initialize the invensense v2 sensor instance.
Driver for the Invensense V2 IMUs ICM20948, ICM20648 and ICM20649.
enum invensense2_accel_range_t accel_range
Accelerometer range configuration.
@ INVENSENSE2_GYRO_DLPF_229HZ
@ INVENSENSE2_GYRO_RANGE_4000DPS
Only possible for ICM20649.
enum invensense2_gyro_dlpf_t gyro_dlpf
Gyro DLPF configuration.
@ INVENSENSE2_ACCEL_RANGE_30G
Only possible for ICM20649.
@ INVENSENSE2_ACCEL_DLPF_265HZ
enum invensense2_bus_t bus
The communication bus used to connect the device SPI/I2C.
enum invensense2_accel_dlpf_t accel_dlpf
Accelerometer DLPF configuration.
uint8_t abi_id
The ABI id used to broadcast the device measurements.
enum invensense2_gyro_range_t gyro_range
Gyro range configuration.
void invensense3_periodic(struct invensense3_t *inv)
Should be called periodically to request sensor readings.
void invensense3_event(struct invensense3_t *inv)
Should be called in the event thread.
void invensense3_init(struct invensense3_t *inv)
Initialize the invensense v3 sensor instance.
Driver for the Invensense V3 IMUs ICM40605, ICM40609, ICM42605, IIM42652 and ICM42688.
enum invensense3_gyro_range_t gyro_range
Gyro range configuration.
@ INVENSENSE3_ACCEL_RANGE_32G
Only possible for ICM40609.
@ INVENSENSE3_GYRO_ODR_4KHZ
enum invensense3_parser_t parser
Parser of the device.
uint16_t accel_aaf
Accelerometer Anti-alias filter 3dB Bandwidth configuration [Hz].
@ INVENSENSE3_PARSER_FIFO
enum invensense3_accel_odr_t accel_odr
Accelerometer Output Data Rate configuration.
@ INVENSENSE3_ACCEL_ODR_4KHZ
enum invensense3_bus_t bus
The communication bus used to connect the device SPI/I2C.
@ INVENSENSE3_GYRO_RANGE_2000DPS
enum invensense3_accel_range_t accel_range
Accelerometer range configuration.
uint8_t abi_id
The ABI id used to broadcast the device measurements.
uint16_t gyro_aaf
Gyro Anti-alias filter 3dB Bandwidth configuration [Hz].
enum invensense3_gyro_odr_t gyro_odr
Gyro Output Data Rate configuration.
Architecture independent SPI (Serial Peripheral Interface) API.