Monday, November 30, 2015

Switching to Adafruit BNO055

We managed to retrieve accelerometer and magnetometer data from IMU (LSM9DS0). But the raw data are not meaningful, so we tried to convert them to degree by ourselves. As the x, y values are unstable and the corresponding arctan changes all the time, which results in very unstable calculated degree. The expected deviation should be smaller than the inaccuracy, so this instability is unacceptable. We tried to calibrate it and have tried other methods found online but they didn't help.  


From Adafruit website, "If you've ever ordered and wire up a 9-DOF sensor, chances are you've also realized the challenge of turning the sensor data from an accelerometer, gyroscope and magnetometer into actual '3D space orientation'! Orientation is a hard problem to solve." The problem we met is exactly this one. After lots of trial and error, we decided to use Adafruit BNO055, which is a smart 9-DOF sensor that does the sensor fusion all on its own. So it will give absolute orientation as follows.



After testing, we managed to get meaningful data from BNO055. In the above figure on the left, the degree detected is 328 degree. When I turned the board to the right (in the figure on the right), the detected degree changed to 347 degree. Most important, when I don't move the board, the value keeps stable.

No comments:

Post a Comment