【IMU】BNO085は、BNO055のファーム改良品<Adafruit版BNO085ゲット>

BNO055 10か月いじって、ファームの不具合らしき現象が多発したので、改良版ないかとさがしたら、
CEVA社がBNO055のファーム改良シリーズBNO08xシリーズを製品化していました。
最初から、BNO08xを購入しておけばよかったのですが、日本国内では、あまりなくて、中華通販で購入するか、米国通販で購入するかです。私は、中華通販が嫌なので、高いけど安心な米国通販DIGIKEYを愛用してます。=>ひずみゲージアンプもマイコンもDIYデバイスは、欧米流通を使うようにしてます。珍しいデバイスだと、国内ではバカ高くて、輸入したほうが安いです。BNO086は、国内通販で6千円もします。中華通販で2-3千円米国通販3-4千円台です。
●BNO085の評判
VR関連業界では、VRのDIYをやる方達がIMUを評価されていて、BNO085が低価格IMUの中では良いと評価されてました。VRゴーグルの角度誤差なら5度くらいでても良いということなのだと思います。私の場合は、スキーの横滑り角なので5度では不足なので、RTKと組み合わせて3度以内をめざしてます。

●2024年から機械学習テーマを本格化させるのでRTKより応用が広いIMUを使って、機械学習テーマをやろうと企ててます。ですので、使えるIMU探しは2024年度も継続していきます

●AdafruitのBNO085の解説ページ
https://www.adafruit.com/product/4754

The BNO085 by the motion sensing experts at CEVA Hillcrest Laboratories takes the familiar 3-axis accelerometers, gyroscopes, and magnetometers and packages then alongside an Arm Cortex M0 processor running CEVA’s SH-2 firmware that handles the work of reading the sensors, fusing the measurements into data that you can use directly, and packaging that data and delivering it to you. If the name and description of the BNO085 sounds strikingly similar to those of the BNO055 by Bosch Sensortec, there is a good reason why: they’re the same thing, but also they’re not. Thanks to a unique agreement between Bosch and CEGA, the BNO085 uses the same hardware as the BNO055 but very different firmware running on it.

“How different?” you might ask. Well my friend, pull up a chair and grab a box of popcorn because it’s quite a list. First lets list the similarities. The BNO055 and BNO085 can both deliver the following types of sensor data and sensor fusion products:

  • Acceleration Vector / Accelerometer
    Three axes of acceleration (gravity + linear motion) in m/s^2
  • Angular Velocity Vector / Gyro
    Three axes of ‘rotation speed’ in rad/s
  • Magnetic Field Strength Vector / Magnetometer
    Three axes of magnetic field sensing in micro Tesla (uT)
  • Linear Acceleration Vector
    Three axes of linear acceleration data (acceleration minus gravity) in m/s^2
  • Gravity Vector
    Three axes of gravitational acceleration (minus any movement) in m/s^2
  • Absolute Orientation/  Rotation Vector
    Four point quaternion output for accurate data manipulation

Thanks to the sensor fusion and signal processing wizards from CEVA, with the BNO085 you also get:

  • Application Optimized Rotation Vectors
    For AR/VR, low latency, and low power consumption
  • Additional Base Sensor Reports
    Separate and simultaneous outputs of Calibrated, Uncalibrated + Correction, and Raw ADC outputs for the Accelerometer, Gyro, and Magnetometer
  • Detection and Classification reports:
    • Stability Detection and Classification
    • Significant Motion Detector
    • Tap, Step, and Shake Detectors
    • Activity Classification

As if the above wasn’t enough, the BNO085 also provides an impressive suite of detection and classification products by further analyzing the measured motion:

  • Stability Detection and Classification
  • Tap Detector
  • Step Detector
  • Step Counter
  • Activity Classification
  • Significant Motion Detector
  • Shake Detector

More information about the various report types is available on the Report Types page

chatGPTで翻訳してもらうと

CEVA Hillcrest Laboratoriesのモーションセンシング専門家によるBNO085は、おなじみの3軸アクセラレータ、ジャイロスコープ、および磁力計を取り、それにArm Cortex M0プロセッサを搭載し、CEVAのSH-2ファームウェアで実行して、センサの読み取り、測定値をデータに融合し、それを直接使用できるデータにパッケージ化し、そのデータを配信します。BNO085の名前と説明がBosch SensortecのBNO055と驚くほど似ているように聞こえる場合、それには理由があります。それらは同じものですが、同時に異なります。ボッシュとCEVAの間の独自の合意により、BNO085はBNO055と同じハードウェアを使用していますが、その上で非常に異なるファームウェアが実行されています。

では、「どれほど異なるのか?」と思うかもしれませんね。友達よ、椅子を引っ張り、ポップコーンの箱を手に入れてください、なぜならそれはかなりのリストだからです。まず、類似点をリストアップしましょう。BNO055とBNO085は、次の種類のセンサデータおよびセンサフュージョン製品を共に提供できます:

  • 加速度ベクトル/アクセラレータ
    • m/s^2での3軸の加速度(重力+直線運動)
  • 角速度ベクトル/ジャイロ
    • rad/sでの3軸の「回転速度」
  • 磁場強度ベクトル/マグネトメータ
    • マイクロテスラ(uT)での3軸の磁場感知
  • 線形加速度ベクトル
    • m/s^2での3軸の直線加速度データ(重力を差し引いた加速度)
  • 重力ベクトル
    • m/s^2での3軸の重力加速度(任意の動きを差し引いたもの)
  • 絶対方向/回転ベクトル
    • 正確なデータ操作のための4ポイントの四元数出力

CEVAのセンサフュージョンおよび信号処理のウィザードのおかげで、BNO085では次のものも得られます:

  • アプリケーション最適化された回転ベクトル
    • AR/VR、低遅延、低消費電力
  • 追加の基本センサーレポート
    • アクセラレータ、ジャイロ、およびマグネトメータのためのキャリブレーション済み、キャリブレーションなし+補正、およびRaw ADC出力の別々および同時出力
  • 検出および分類レポート
    • 安定性の検出と分類
    • 重大なモーション検出器
    • タップ、ステップ、およびシェイク検出器
    • アクティビティの分類

上記が十分でないかのように、BNO085は測定されたモーションをさらに分析して、印象的な検出および分類製品のスイートも提供します:

  • 安定性の検出と分類
  • タップ検出器
  • ステップ検出器
  • ステップカウンター
  • アクティビティの分類
  • 重大なモーション検出器
  • シェイク検出器

さまざまなレポートタイプに関する詳細な情報は、Report Typesページで入手できます。

 

ということで、改良具合を実感したく、さっそくDIGIKEYで2個ゲットしました。
来週くらいに届くので11月から12月にかけて評価レポート載せます。
1月からはスキーに実装して、昨年のBNO055の結果と比較してみます。
●注意:AdafruitのBNO85でI2Cを使う場合、ESP32は不適と書いてありますので、ESP32ユーザーはI2CでなくUARTかSPIを使うことになります。私は、Teensy4.1でARM のCPUなので大丈夫だと思います。
しかし、私も基礎実験用にESP32Dを使っているので、実際にI2C接続して破綻するか確認してみます。

The BNO08x I2C implementation violates the I2C protocol in some circumstances. This causes it not to work well with certain chip families. It does not work well with Espressif ESP32, ESP32-S3, and NXP i.MX RT1011, and it does not work well with I2C multiplexers. Operation with SAMD51, RP2040, STM32F4, and nRF52840 is more reliable.

BNO08xのI2C実装は、いくつかの状況でI2Cプロトコルに違反します。そのため、特定のチップファミリーとうまく動作しません。Espressif ESP32、ESP32-S3、NXP i.MX RT1011ではうまく動作せず、I2Cマルチプレクサでもうまく動作しません。SAMD51、RP2040、STM32F4、nRF52840での動作はより確実です。

 

●仕様
CEVAの製品ページ
https://www.ceva-dsp.com/product/bno-9-axis-imu/

データシート
https://www.ceva-dsp.com/wp-content/uploads/2019/10/BNO080_085-Datasheet.pdf

●精度の記述
データシートの49ページにありました。
実際は、Rotationベクトルで5度前後 磁気ローテーションベクトルで10度発生する場合あると
正直に書いてあります。BNO055は、20度とか突然でるので、それが困るので、ローテーションで5度
くらいに収まってくれれば、RTKで補間すれば3度以下になるのでスキーで使えると踏んでます。

●以後
11月から12月で回転治具でBNO055と同様の実験評価して、ファーム改良の効果を確認します。
うまくいけば、1月以降はスキーのRTKシステムに搭載します。

4 thoughts on “【IMU】BNO085は、BNO055のファーム改良品<Adafruit版BNO085ゲット>”

  1. BNO085関連の記事、大変参考になります。どうもありがとうございます。
    さて「Teensy4.1はARMのCPUなので大丈夫だと思う」とありますが、Teensy4.1にはARM Cortex-M7@600MHzコアを採用したNXP i.MX RT1062チップが載っています。また不適だと例示されたNXP i.MX RT1011チップも、ARM Cortex-M7@500MHzコアを採用しています。型番は異なりますが同じi.MX RT1000シリーズのCPUなので、どういう問題が起こりうるのか、ちょっと心配です。

    1. dorado様
      コメント有難うございます。滅多にコメントいただけないので、うれしいです。
      Adafruitの注意書きは、I2C周りの不具合があったからだと思います。I2C周りの不具合は、プルアップ抵抗値の僅かな相違で波形がGNDレベルに落ち切ってない
      場合よく不具合がおきます。その現象は、ケーブルの長さとか、シールドの有無、シールドがあってもGNDを片GNDか両GNDとかで波形が違ってきますので
      微妙な違いで、I2Cがコケるという現象があります。その現象にあたったので、注意書きを書いたのだと思います。ですので、I2Cを使う場合は、オシロで、プルアップ抵抗が大丈夫かを確認する必要があります。AdafruitのABNO085は、20kΩの抵抗が基板上に載ってしまっているので、それが原因で、不具合がでるのではないかと想像してます。私の場合通常4.7Kから10KΩのプルアップをつかいますが、20kだと大きすぎて波形が鈍るような気がします。 ということで、AdafruitのBNO085は、UARTで使うことにしてます。AdafruitのBNO085のライブラリーは、I2C,UART,SPIを使えるようになっています。UART-RVCモードは、ライブラリー無でバイナリー19バイトを受信するだけですので、簡単で具合よいです。BNO085の試運転は、UART-RVCモードをお勧めします。それから,UART接続で、レジスタの設定を試して十分制御できたのを確認してからI2Cをいじりだして、オシロとロジアナで波形と信号を見ながら接続すれば、不具合がおきても、原因がわかるので、対策がとれると思います。Adafruitは、超初心者向けのキットを目指しているので、汎用的な使い方までサポートしてない感じがします。中華BNO085のほうが何もしてないチップだけなので、慣れた方には、扱い易いかもしれません。私もはっきりしたことが分らないので、回答にはなりませんが、BNO085関係は、日本国内では、未だユーザーが少ない感じですので、一歩一歩開拓していく人が何人かでてこないと普及が進まないと思いますので、I2Cとマイコンの問題に挑戦していただければ幸いです。宜しくお願いいたします。

  2. コメントありがとうございます。I2Cはたまに、気まぐれになりますよね。
    AdafruitのWebページによると、BNO085ボードのI2Cプルアップは10kΩのようです。ただ基板上のプルアップ抵抗が大きすぎる分には、外部にプルアップ抵抗を追加すれば補えないでしょうか?
    2023年4月末にBNO085/BNO086(後継?)のデータシートに「BNO086はいまのところI2Cのポーリングモードをサポートしていないので、もし必要ならBNO085を使ってね」という太字の注意書きが追記されています。「いまのところ」「太字の注意書き」「追記」なので、発売後に何か想定外のことが確認されたのかと思います。一方2023年8月に、SparkFunからBNO086ボードがアナウンスされました。このボードはQwiic(I2C)接続が基本ですが、特に注意喚起はないようです。チップが改良されたのか、何らかの方法で回避できたのか、あるいはSparkFunのライブラリでは使える部分だけを使っているのかは分かりません。BNO08XのI2Cは、とりあえず要注意かもしれません。
    UART×8chが実験的に別の用途でフルに埋まる計画(!?)でしたので、UART-RVCモードは頭にありませんでした。アドバイス、どうもありがとうございます。いろいろと検討してみます。今後とも、よろしくお願い致します。

    1. dorado様 ご回答有難うございます。プルアップ10Kオームでしたか、勘違いしていてすみません。よくお調べになられているようで、感心いたしました。
      これからも新たな知見をコメントしていただけると、BNO085を見に来る読者様が助かると思います。
      BNO085の投稿記事1か月で、300人以上来訪されてますので、注目のデバイスだと思います。dorado様のご使用体験を記事投稿していただけると皆さま大喜びすると思います。
      時々熱心な読者様がいて、有益な情報をいただけたり、作品の投稿記事をいただいてます。
      御目的のご用途がUARTが埋まっていて、I2Cを使わざる得ないので、ご心配だと存じます。私がI2Cを使えば状況が少しでもわかるかもしれませんが、
      私の場合、BNO085を急いでスキー計測システムに組み込まないといけませんので、手間とリスクが少ないUART-RVCモードで使ってみます。とりあえず、初すべりまでは、UART-RCVモードで使ってみます。1月以降で他のモードをI2Cでいじってみようと思います。
       宜しくお願いいたします。

コメントを残す

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