This page is about the BNO055 9-Axis Absolute Orientation sensor.
The BNO055 is a Inertial Measurement Unit (IMU) sensor with 9 Degrees of Freedom (DoF), all focused on telling you its orientation in space. It can output the following sensor data:
- Absolute Orientation (Euler Vector, 100Hz) Three axis orientation data based on a 360° sphere
- Absolute Orientation (Quatenrion, 100Hz) Four point quaternion output for more accurate data manipulation
- Angular Velocity Vector (100Hz) Three axis of 'rotation speed' in rad/s
- Acceleration Vector (100Hz) Three axis of acceleration (gravity + linear motion) in m/s^2
- Magnetic Field Strength Vector (20Hz) Three axis of magnetic field sensing in micro Tesla (uT)
- Linear Acceleration Vector (100Hz) Three axis of linear acceleration data (acceleration minus gravity) in m/s^2
- Gravity Vector (100Hz) Three axis of gravitational acceleration (minus any movement) in m/s^2
- Temperature (1Hz) Ambient temperature in degrees celsius
Here's a description from Adafruit:
Bosch is the first company to get this right by taking a MEMS accelerometer, magnetometer and gyroscope and putting them on a single die with a high speed ARM Cortex-M0 based processor to digest all the sensor data, abstract the sensor fusion and real time requirements away, and spit out data you can use in quaternions, Euler angles or vectors.
Notes#
- "If you are designing a sensor solution for a system that has a limited range of motion, you can use Euler angles. But if you are designing a sensor that can be oriented anywhere in space, you should use quaternions." (All About Circuits, ref below)
Modes#
BNO055 Configuration Mode | (Transient Mode) | |
---|---|---|
OPERATION_MODE_ACCONLY | 0x01 | Accelerometer only |
OPERATION_MODE_MAGONLY | 0x02 | Magnetometer only |
OPERATION_MODE_GYRONLY | 0x03 | Gyroscope only |
OPERATION_MODE_ACCMAG | 0x04 | Accelerometer and Magnetometer only |
OPERATION_MODE_ACCGYRO | 0x05 | Accelerometer and Gyroscope only |
OPERATION_MODE_MAGGYRO | 0x06 | Magnetometer and Gyroscope only |
OPERATION_MODE_AMG | 0x07 | Accelerometer, Magnetometer and Gyroscope (without fusion) |
OPERATION_MODE_IMUPLUS | 0x08 | Inertial Measurement Unit (Accelerometer and Gyroscope Sensor Fusion Mode) |
OPERATION_MODE_COMPASS | 0x09 | Tilt Compensated Compass (Accelerometer and Magnetometer Sensor Fusion Mode) |
OPERATION_MODE_M4G | 0x0A | Magnetometer and Gyroscope Sensor Fusion Mode |
OPERATION_MODE_NDOF_FMC_OFF | 0x0B | 9 Degrees of Freedom Sensor Fusion with Fast Magnetometer Calibration Off |
OPERATION_MODE_NDOF | 0x0C | 9 Degrees of Freedom Sensor Fusion |
References#
- BNO055 Intelligent Absolute Orientation Sensor, 9-Asix Sensor Fusion All-in-one Windows 8.x Compliant Sensor Hub (Bosch Datasheet, PDF)
- Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055, CircuitPython driver library
- BNO055 IMU Sensor, (MathWorks documentation, with description)
- Euler Angles vs. Quaternions from AllAbout Circuits
- Magnetometer Description from VectorNav
- AdaFruit BNO055, Product Page
- Pololu BNO055 9 DOF Absolute Orientation IMU Module, Product Page
- IMU BNO055, Arduino forum discussion