I am designing an absolute orientation sensor suite to track my glider's orientation. I do fly some loops and hard turns, but much of my time is spent spiraling up thermals. I'm currently looking at using a BMI088 with a BMM150 and would like to understand how the sensor readings might drift over multi-hour flights.
Does the BMM150 require a stationary orientation in order to accurately measure its orientation? If so, how long does it take to reorient itself once the plane is maintaining a constant orientation?
If not, what are its limitations? How fast can the glider turn before the magnetometer loses its bearings? And, once again, how fast does the magnetometer reorient itself and does the glider need to maintain a constant orientation for it to do so?
I understand that the BMI088 will support the BMM150 through the fusion software, but I need it to track this glider for multiple hours of uninterrupted flight, with as little hassle as possible. I figured that this is best sensor combination for this application, but I am no expert.
Thank you for you insights!
Solved! Go to Solution.
Thanks for your inquiry.
It is true that BMI088 + BMM150 is a good combination for glider application. But you need to either develop or adopt 9DoF sensor fusion algorithm to obtain responsive and accurate Euler angles or rotation vector.
You may consider using BNO055 that has 9-axis sensors, Atmel MCU and BSX sensor fusion algorithm running inside. On page 33 of BNO055 datasheet at https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bno055-ds000.pdf you will find the sensor sampling rate and sensor fusion output rate. For example, when BNO055 is operating at 9DoF sensor fusion mode the accel and gyro are sampling at 100Hz, while the mag is at 20Hz. The sensor fusion output rate is 100Hz. This means that,
(1) When the object is rotating or turning, gyro takes the lead to quickly update the Euler angles at 100Hz dynamically.
(2) When the object stops rotating for example moving straight, the accel and mag will take the lead for Euler angles output and compensate gyro bias drift.
(3) In order to get accurate heading angle, the mag needs to be auto-calibrated all the time so that the mag x/y/z data are always located at the surface of the sphere whose origin is at (0, 0, 0) centered.
Another option is to use BHI260AP + BMM150. You can directly get sensor fusion outputs and the mag is auto-calibrated in real time.
Thank you for your thought-out reply! I will certainly look into the BNO055 as well as the BHI260AP, now that you have recommended them. I have a follow-up question:
The mag cannot require perfect stillness to autocalibrate effectively. At what angular rate does BMM150 become unable to autocalibrate?
Thanks for your insights.
BNO055 has BSX3 sensor fusion algorithm running inside, where BHI260AP BSX4 newer version. So I would like to recommend BHI260AP + BMM150 rather than BNO055 for your application. In addition, BNO055 has max ODR of 100Hz and fixed in SW, where BHI260AP can output sensor fusion results such as Euler angles, quaternions, linear acceleration and gravity vector up to 800Hz and it is programmable with the SDK.
BSX3 and BSX4 sensor fusion algorithms can auto-calibrate BMM150 mag with Figure-8 motions in 3D space. If BMM150 doesn't rotate, then it is not possible to calibrate it. As long as the object is rotating, BMM150 will be auto-calibrated. The stillness of the object can help calibrate gyro offsets.
Wow, thanks again for your comments.
Is there a reason not to use the BMI088? As I understand it, I should be able to run the sensor fusion algorithm on an arduino, correct? The BMI looks more attractive on its flyer due to its advertised "unmatched bias stability" of its gyro in an automotive use case.
How is it to adopt a fusion algorithm? Difficult? The BMI088 flyer insinuates that Bosch has a ready made algorithm to fuse the BMI088 and the BMM150, among others, in a 10 DoF comprehensive sensor solution by Bosch Sensortec. So, shouldn't be too hard, right?