上記グラフ 黒線はBNO085 yaw角 青緑線がBNO055 yaw角です。
10か月もBNO055をいじってきたので、BNO085に乗り換える意義をしっかりと確認しておきます。
●やった方法
プラボックスの側壁に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があるとか、決して磁気センサにはよろしくない環境ですが、両者同じ環境です。
●結果
①基準位置から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角精度が高精度になる方法を開発してます。
●以後
BNO055は、pitch roll専用センサとして太ももにでも装着するように使います。
BNO085は、RTKシステムBOX内に収納しようと思います。ただし、Z軸下方向の姿勢を維持できるように
レイアウトすることが重要です。