This is a embedded-hal driver for Bosch's inertial measurement unit (IMU) BNO055.
It is device-agnostic and uses I2c
and Delay
embedded-hal traits for its operation.
Uses and re-exports nalgebra's Quaternion for quaternion reading and Rotation3 for Euler angles.
Add dependency to Cargo.toml
:
bash
cargo add bno055
Instantiate and init the device: ```rust // ... declare and configure your I2c and Delay implementations ...
// Init BNO055 IMU let imu = bno055::Bno055::new(i2c, delay);
imu.init()?;
// Enable 9-degrees-of-freedom sensor fusion mode with fast magnetometer calibration imu.set_mode(bno055::BNO055OperationMode::NDOF)?;
Ok(imu) ```
Read orientation data: quaternion or euler angles (roll, pitch, yaw/heading)
rust
let quat = imu.quaternion()?;
// or:
let euler = imu.euler_angles()?;