【IMU】BNO055とBNO085の繰り返し精度比較<ドリフト精度倍以上違う>

上記グラフ 黒線はBNO085 yaw角 青緑線がBNO055 yaw角です。
※信州MAKERSでのIMUの評価は、yaw角の方向精度を扱ってますので、記載がない角度は全てyaw角です。
10か月もBNO055をいじってきたので、BNO085に乗り換える意義をしっかりと確認しておきます。

※2024年8月 BNO085のyaw角補正は、終了しました。いろいろな処理をこころみても±3.5度程度にしかなりませんでした。スペックが±5度程度なので、そういう製品だということで、諦める以外にありません。以後は、高性能IMU(5万円以上)の検討にはいります。

※2024年5月15日追記 高性能IMUのスペック値から低価格IMUを見れば、どこがダメなのかよくわかります。
低価格IMUと高性能IMU(5万円~77万円)では、ジャイロのBIAS(ドリフト)の安定性が桁違いに違うのが最大の違いです。
つまり、放っておくとどんどん出力がズレていく現象が、低価格品だ1時間で数百度もずれますが、高性能IMUでは数十度から1-2度しかずれません。
上記のグラフのように経時でずれていくドリフト現象が短時間では見られないのが高性能IMUです。
詳しくは下記記事をどうぞ 高性能IMU(TacticalGrade)は、軍事転用されるので個人では購入できません。

【STA24】高性能IMUの仕様比較と仕様学習<個人では入手できない>

BNO085は、自動キャリブレーションのアルゴリズムで、ドリフトを抑える機能がBNO055より優れているので、ドリフトが少なくなってますが、完全にとりきれません。
回転範囲が大きくなるとドリフト量も増えてきますので、スキーのようにyaw角180度以上でいろいろな動きをする場合は、±5度から最悪±15度程度の誤差がでます。

●やった方法
 プラボックスの側壁にBNO055とBNO085を貼り付けて、ESP32Dとバッテリーも収納して
BlueToothで両者のyaw,pitch,rollを同期送信して、PCのCPLTでリアルタイムグラフを記録する

ESP32のプログラムは、GISTにおいてあります。BNO055は、I2C  BNO085は、UART-RVCモードです。
 https://gist.github.com/dj1711572002/ecd6f1c11f9b52f38688d08af5a4a437

BNO055は、NDOFモードでフルFUSIONです。Quarternion からyaw,pitch,roll角を計算出力
BNO085は、RVCモードのyaw,pitch,rollを出力

周期は50msec
磁気環境は、1m距離にデスクトップPCとか20cmにノートPCがあるとか、決して磁気センサにはよろしくない環境ですが、両者同じ環境です。
●結果
①基準位置からyaw角360度回転して基準位置での誤差を見る
どんどんドリフトしていきますが、14回転させて累積誤差でみると
BNO055は、ドリフト幅18度、BNO085は、8度と半分以下のドリフト精度で収まってます。
いずれにせよ、360度回転の累積精度は、センサのファームでは想定範囲外の使い方みたいです。

②BNO085のUART-RVCモードは、Z軸が重力下方向の姿勢とZ軸が水平方向でノイズがはいります。
Z軸水平方向だとノイズがはいってますが、BNO055と比べると半分以下の誤差精度です。

③0-90度往復、0-180度往復、0-360度回転でどんどんドリフトが大きくなりますが。
BNO085は、180度以下の往復回転では、2度以内なので優秀です。


●感想
BNO055は、キャリブレーションを随時行ってるのですが、BNO085は、自分がどういう使われ方をしているかという動作分類機能をもっているので、それにしたがって、キャリブレーションしているので、BNO055より賢くキャリブレーションするのではないかと類推してます。ハードが同じなので、ドリフトは同じなので、ファームでいかに補正するかの違いですので、ファームの賢さが重要です。データシート見ると、BNO085は、電子機器メーカーの技術者が機器に組み込むための様々な機能をもってます。これらの機能を使えば、詳細なセンサとファームの状態が把握できると思いますが、私は、ユーザーなので、出力の精度が確保されていれば、それで、アプリケーションを開発する方向でいきます。

※2024年4月追記   4か月間スキー滑走計測でBNO085を使用した結果
BNO085のyaw角精度は、補正しても±5度程度なので、計測用途には向きません。VRゴーグルとかロボット制御など制御目的で作う用途なら、測定誤差を制御系で打ち消すことができると思います。スキー場で実験を繰り返した結果、スキー滑走での必要なyaw角度精度は、±0.6度程度が必要と結論を得たため、IMUでなくRTK MovingBase法(2点のアンテナ間の精密測量技術)で±1度未満の測定をすることにしました。装置が大きくなるのですが計測に必要な精度が得られないので、苦渋の判断でIMUは、補間用センサとして使うことにしました。

【STA24】BootsOn Yaw補正値とSkiOn Heading角との比較<要求精度±0.6度だった>

 

※その後
回転運動と手で振り回す運動で、RTK Heading角とBNO085のyaw角精度比較して2σ=±5度程度の実測値を得たので、使えると判断しました。私の場合はRTKがあるので、直線運動時にBNO085のyaw角とRTKのheadMot角が一致するので、そこで、補正値を決めれば、BNO085でも±1度以内になると見込んでます。IMU単体だと±1度以内の精度の良いyaw角を得るには、数十万円から百万円のIMUが必要ですが、5万円のRTKと組み合わせることで、yaw角精度が高精度になる方法を開発してます。

【STA24】BNO085yaw回転精度をRTK Heading角基準で測定<2σで5度以内>

 

●以後
BNO055は、pitch roll専用センサとして太ももにでも装着するように使います。
BNO085は、RTKシステムBOX内に収納しようと思います。ただし、Z軸下方向の姿勢を維持できるように
レイアウトすることが重要です。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です