I’m working on a Raspberry Pi quadcopter on ROS2 (more on that in a later post) and I selected the popular BNO055 sensor as the IMU. It has good support and seems to be quite widely used in the hobby community.
There are already ROS1 drivers (mdrwiega, dheera and joeyjyyang), a non-ROS driver (fm4dd) and also a ROS2 driver by flynneva (python-based, UART using pyserial) but there are no ROS2 C++ drivers using the official Bosch Sensortec package.
The driver can be found here. It uses I2C, but could easily be expanded to support UART communication (the Sensortec package supports both). The driver doesn’t support calibration or reset at the moment. Contributions are welcome.
In particular I could do with some help with an issue I’ve found. At the moment the Euler angles (RPY) produced by the EKF seem inconsistent with the Quaternion output [link].