This page (revision-2) was last changed on 2020-05-14 20:26 by Murray Altheim

This page was created on 2020-05-14 20:23 by Murray Altheim

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
2 2020-05-14 20:26 49 bytes Murray Altheim to previous
1 2020-05-14 20:23 4 KB Murray Altheim to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 1 changed 62 lines
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|https://www.adafruit.com/product/2472]:
%%blockquote
If you've ever ordered and wire up a 9-DOF sensor, chances are you've also realized the challenge of turning the sensor data from an accelerometer, gyroscope and magnetometer into actual "3D space orientation"! Orientation is a hard problem to solve. The sensor fusion algorithms (the secret sauce that blends accelerometer, magnetometer and gyroscope data into stable three-axis orientation output) can be mind-numbingly difficult to get right and implement on low cost real time systems.
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
%%small
|| 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|https://cdn-shop.adafruit.com/datasheets/BST_BNO055_DS000_12.pdf] (Bosch Datasheet, PDF)
* [Adafruit 9-DOF Absolute Orientation IMU Fusion Breakout - BNO055|https://circuitpython.readthedocs.io/projects/bno055/en/latest/api.html], CircuitPython driver library
* [BNO055 IMU Sensor|https://www.mathworks.com/help/supportpkg/arduino/ref/bno055imusensor.html], (MathWorks documentation, with description)
* [Euler Angles vs. Quaternions|https://www.allaboutcircuits.com/projects/bosch-absolute-orientation-sensor-bno055/] from AllAbout Circuits
* [Magnetometer Description|https://www.vectornav.com/support/library/magnetometer] from VectorNav
* [AdaFruit BNO055|https://www.adafruit.com/product/2472], Product Page
* [Pololu BNO055 9 DOF Absolute Orientation IMU Module|https://www.robotshop.com/en/bno055-9-dof-absolute-orientation-imu-module.html], Product Page
* [IMU BNO055|https://forum.arduino.cc/index.php?topic=442661.msg3047115#msg3047115], Arduino forum discussion
----
[{Tag Sensor}]
[{SET alias='BNO055AbsoluteOrientationSensor'}]