BNO055 9 DOF Absolute Orientation IMU Fusion Breakout Board Tutorial

Looking for an on line tutorial for the 9-dof.
Thanks, Gramps

Hello @Gramps and welcome to the RobotShop community,

You can find the online tutorial link in the Useful Links on the product description.

Let us know if you have further questions

Thank you! We appreciate your help😎

1 Like

Hi @Gramps, while certainly not a tutorial you may be interested in my “Heading Bot” example of using the BNO055 on a GoPiGo3 bot.

Here is the complete design write-up:

HEADING ROBOT

heading_robot.py uses the Dexter Industries Inertial Measurement Unit (BNO055 chip)
in IMUPLUS mode (Fusion from Gyros and Accelerometers only, no magnetometers) to
orient the GoPiGo3 robot with respect to the orientation when the program is started as 0 degrees.

heading_robot.py uses three IMU interface layers (modified DI IMU classes)

  • my_safe_inertial_management_unit.py SafeIMUSensor() class
  • my_inertial_management_unit.py InertialMeasurementUnit() class
  • myBNO055.py BNO055() class

These classes implement features above the DI IMU standard interface:

  • Initialization of HW in IMUPLUS mode (Fusion using only Gyros and Accels, no mags)
  • Safe “reset and remap axes” method to set heading to 0
  • Tracking of soft I2C exceptions
  • Software Only Interface Object initialization to allow HW access/control without setting mode
  • Multi-process safe program to read values from IMU without knowing current mode
  • verbose options for greater visibility into IMU operations
  • di_i2c mutex protected access to more BNO055 methods

heading_robot architecture is based on the superb compass_robot example designed by Robert Lucian Chiriac @RobertLucian

Get The Code:

cd ~ 
curl -LJO https://github.com/slowrunner/Carl/raw/master/Examples/imu/di_BNO055/headingbot/headingbot.tar.gz 
tar -xzvf headingbot.tar.gz
cd headingbot

Usage:

  1. Mount Dexter Industries Inertial Measurement Unit Point-up, chip to front
  2. Connect IMU to GoPiGo3’s AD1 port
  3. Orient GoPiGo3 to some reference such as floor board joints or taped line on floor
  4. ./heading_robot.py

heading_bot_display

  1. Press arrow keys for shortcut to 0, 90, 180, 270
    or enter a direction such as 45, then press return
  2. Watch for robot to complete re-orienting
  3. Check what heading the robot “thinks” it is pointed (IMU heading)
  4. Optionally press “f” key to make robot move forward, press “Space” key to stop
  5. Press ctrl-c to exit

Notes:

You also may be interested in my experience using the BNO055 on my bot:

EVALUATION OF BNO055 IMU vs Wheel Encoders

1 Like