Skip to content

joeuser846/ros-imu-bno055

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ROS driver for IMU Bosch BNO055 (I2C)

This is a ROS node for the BNO055 IMU that communicates via I2C and without any dependencies besides libi2c-dev. It does not require RTIMULib, RTIMULib2, RTIMULib3 or whatever the latest sequel is. It is specifically targeted at using a BNO055 with NVIDIA boards such as the TX1, TX2, and Xavier, or any other board that has native I2C.

The BNO055 supports I2C and UART communication. This driver supports I2C only. If you are looking for a UART driver, see this driver by mdrwiega instead.

Parameters:

  • device -- the path to the i2c device. Default is /dev/i2c-1. Use i2cdetect in the i2c-tools package to find out which bus your IMU is on.
  • address -- the i2c address of the IMU. Default is 0x28.

Outputs topics:

  • /data (sensor_msgs/Imu) -- fused IMU data
  • /raw (sensor_msgs/Imu) -- raw accelerometer data
  • /mag (sensor_msgs/MagneticField) -- raw magnetic field data
  • /temp (sensor_msgs/Temperature) -- temperature data
  • /status (diagnostic_msgs/DiagnosticStatus) -- a DiagnosticStatus object showing the current calibration, interrupt, system status of the IMU

Service calls:

  • /reset (std_srvs/Trigger) -- resets the IMU
  • /calibrate (std_srvs/Trigger) -- not yet implemented

Usage notes

Raspberry Pi

The Raspberry Pi hardware I2C does not support clock stretching. You have two options:

NVIDIA Jetson platforms

You may need to add your user to the i2c group, e.g. sudo usermod -aG i2c nvidia. It should just work after that.

About

ROS package for the BNO055 IMU via I2C

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 76.3%
  • C 21.0%
  • CMake 2.7%