Adafruit BNO055 calibration gives different results every time

19 Views Asked by At

I am trying to calibrate the Adafruit BNO055 IMU sensor following this tutorial. However, when the device is fully calibrated, the offset values I get are different every time. Here are some examples:

Accelx_offset = -32
Accely_offset = -44
Accelz_offset = -27
Magx_offset = -1190
Magy_offset = 1249
Magz_offset = 1127
Gyrox_offset = -2
Gyroy_offset = 0
Gyroz_offset = 0
Accel_radius = 1000
Mag_radius = 537


Accelx_offset = -32
Accely_offset = 33
Accelz_offset = -20
Magx_offset = 272
Magy_offset = -18
Magz_offset = -141
Gyrox_offset = -1
Gyroy_offset = 0
Gyroz_offset = 0
Accel_radius = 1000
Mag_radius = 574


Accelx_offset = -29
Accely_offset = 12
Accelz_offset = 3
Magx_offset = 294
Magy_offset = 7
Magz_offset = -193
Gyrox_offset = 1
Gyroy_offset = -2
Gyroz_offset = 6
Accel_radius = 1000
Mag_radius = 1249


Accelx_offset = -13
Accely_offset = 10
Accelz_offset = -9
Magx_offset = 268
Magy_offset = -22
Magz_offset = -163
Gyrox_offset = -1
Gyroy_offset = 0
Gyroz_offset = -3
Accel_radius = 1000
Mag_radius = 719

Furthermore, despite any attempt to calibrate the sensor, after the calibration is finished, and without cutting the power supply of the sensor, the x and y acceleration values i get are very off. For example in the last calibration shown above, after placing the sensor flat on a surface I get:

X: -0.4600  Y: -0.6800  Z: 9.8100
X: -0.4600  Y: -0.6900  Z: 9.8000
X: -0.4600  Y: -0.6900  Z: 9.8200
X: -0.4500  Y: -0.6800  Z: 9.8300
X: -0.4600  Y: -0.6900  Z: 9.8000
X: -0.4500  Y: -0.6900  Z: 9.8100
X: -0.4800  Y: -0.6900  Z: 9.8300
X: -0.4500  Y: -0.7000  Z: 9.8400
X: -0.4700  Y: -0.7000  Z: 9.8200
X: -0.4500  Y: -0.6900  Z: 9.8000
X: -0.4900  Y: -0.7000  Z: 9.8200
X: -0.4600  Y: -0.6900  Z: 9.8300
X: -0.4500  Y: -0.6700  Z: 9.8000
X: -0.4700  Y: -0.6700  Z: 9.7900
X: -0.4500  Y: -0.6900  Z: 9.8200
X: -0.4500  Y: -0.6800  Z: 9.8300
X: -0.4600  Y: -0.6900  Z: 9.8300
X: -0.4800  Y: -0.6900  Z: 9.8200
X: -0.4800  Y: -0.6800  Z: 9.8000
X: -0.4600  Y: -0.7000  Z: 9.8300
X: -0.4500  Y: -0.7000  Z: 9.8400
X: -0.4500  Y: -0.6700  Z: 9.8200
X: -0.4600  Y: -0.6700  Z: 9.8200
X: -0.4600  Y: -0.6900  Z: 9.8300
X: -0.4500  Y: -0.6900  Z: 9.8000
X: -0.4600  Y: -0.6800  Z: 9.8100

I can see that the values are pretty consistent around some numbers, but these numbers are not correct and should be 0. What am I missing?

0

There are 0 best solutions below