We tried a view BNO055 driver for ROS2 and found a bug in all of them. To adhere to REP 103 the messages have to use SI units.
In this package there are two problems:
- The acceleration factor is
1000 where it has to be 100
- The magnetometer unit is in
μT and not T the factor hast to be 16000000 and not 16
The Bug
The linear_acceleration scale factor is set to 1000, but has to be 100.
From the BNO055 Data Sheet:
- 3.6.1 Unit selection - Table 3-17: Accelerometer Unit settings:
| Unit |
Representation |
| m/s² |
1 m/s² = 100 LSB |
| mg |
1 mg = 1 LSB |
- 3.6.1 Unit selection - Table 3-19: Magnetometer Unit settings:
| Unit |
Representation |
| μT |
1 μT = 16 LSB |
Info
In the end, we decided to use the ros2_bno055_driver from RoverRobotics-archive, because we only have an RPi4 and python is not that performant. Here are our fixes RoverRobotics-archive/ros2_bno055_driver#6. But because this is the upstream repository of ros-foxy-bno055, it would be beneficial for other to fix it here as well.
We tried a view BNO055 driver for ROS2 and found a bug in all of them. To adhere to REP 103 the messages have to use SI units.
In this package there are two problems:
1000where it has to be100μTand notTthe factor hast to be16000000and not16The Bug
The
linear_accelerationscale factor is set to1000, but has to be100.From the BNO055 Data Sheet:
Info
In the end, we decided to use the ros2_bno055_driver from RoverRobotics-archive, because we only have an RPi4 and python is not that performant. Here are our fixes RoverRobotics-archive/ros2_bno055_driver#6. But because this is the upstream repository of
ros-foxy-bno055, it would be beneficial for other to fix it here as well.