センサフュージョン設計の迅速化

DigiKeyの北米担当編集者の提供

正確で信頼性の高い位置、方位、移動の感知は、民生用、産業用、軍事/航空宇宙用を含む分野の各種アプリケーションにわたって不可欠な要件となりました。 この複雑なデータを配信するには、適切なセンサシステムにより、基本的なジャイロスコープセンサや加速度計よりも高度センサからの結果を組み入れる必要があります。

これらの個別のセンサから結果を正確に読み出すこと自体が本質的に困難ですが、システム設計者はさらに先の問題として、複数のセンシング要素の出力を組み合わせ、それらの出力をセンサフュージョンと統合する必要があります。 しかし、センサフュージョンの実装の複雑性から、システム開発が停止することは容易に考えられます。

この問題を低減するため、設計者はBosch Sensortec製の2つの方位センサデバイスを利用できます。 これらのデバイスは、カスタム構築のセンサフュージョン設計に替わる、より単純な選択肢で、センサフュージョン機能を提供する、すぐに入手可能なソリューションの開発を迅速化できます。

センサフュージョンの必要性

方位と移動の感知能力は、仮想または物理的な移動に依存するアプリケーションにおいて基本的な役割を果たします。 スマートフォンは、縦方向と横表示を切り替えるなどの単純な機能から、GPS補助なしに動作できる慣性ナビゲーションアプリケーションなどの複雑な機能まで、この能力に依存しています。 スマートフォンや、他の多くの産業用モノのインターネット(IoT)製品に留まらず、医療や車載用のアプリケーションでも、多少の方位認識機能の必要性が増しつつあります。 これは設計者にとって、自社の設計を差別するための機会でもありますが、方位対応のセンサフュージョン設計を実装するためには学習期間が必要となります。

ハードウェアレベルでは、基礎となるセンシングシステムは、加速度計で移動を感知し、ジャイロスコープで回転を感知し、地磁気センサで方向を識別します。 理想的には、これらのセンサにより方位、位置、方向を決定するため必要なすべての情報が得られます。

しかし実際には、それぞれのタイプのセンサには、必要なデータを提供する能力の制限があります。 加速度計は高感度のため、ノイズが発生する傾向があります。 ジャイロスコープは時間とともに揺動するため、絶対的な回転のデータを提供できません。 地磁気センサは、あらゆる磁界に反応するため、周囲に存在する磁性体によって誤った結果が生成されます。

さらに、これらのタイプのセンサはどれも、偏走など複雑な動作を明確に測定できず、地球に対するセンサの絶対方位を特定することはさらに困難です。 これらの複雑な結果を得るには、センサフュージョンというプロセスで、センサのデータを組み合わせる必要があります。

センサフュージョンの方式

センサフュージョンは、複数のセンサからのデータを結合して、単一のセンサからでは得られない結果を生成します。 方位および慣性ナビゲーションの専門家は、特定のクラスのアプリケーション向けに設計された、広範なセンサフュージョンアルゴリズムを採用しています。 これらの各アルゴリズムの解説はこの記事の範囲外ですが、それぞれのアルゴリズムはセンサから得られた生のデータに対して、センサのノイズや精度など各種の特性に基づいて、静的または動的に重み付けすることで、最適な結合を試みています。 その結果、オイラー角や四元数などの抽象化を使用する、方位や移動の数学的投影が得られます。

幸い開発者は、センサフュージョンアルゴリズムの機能を活用するためにアルゴリズムの専門家になる必要はありません。 センサフュージョンアプリケーションを構築するため、開発者はNXP Semiconductorsのセンサフュージョンライブラリなどのソフトウェアソリューションを利用できます。 このNXPのソフトウェアは、NXP製のKinetis K20などのMCUで実行するよう設計されており、取得されたセンサのデータを、MCUに内蔵されている、プログラム可能ゲインアンプ(PGA)、コンパレータ、A/Dコンバータ(ADC)で構成されるアナログ信号チェーンにより組み合わせできます。

このMCUベースの手法により、特定のアプリケーションの要件を非常に柔軟に満たすことができます。 センサフュージョン理論の経験がない開発者でも、利用可能なライブラリを使用して、最適化されたシステムを開発できます。 より特化したアルゴリズムの実装を求める専門家は、対象アプリケーションのコードを置き換え可能です。 その場合でも、すべての開発者はフロントエンドのセンサシステム自体の設計において大きな課題に直面します。

どのようなアルゴリズムを使用する場合でも、センサフュージョンの結果の精度は、基礎となるセンサの設計に大きく依存します。 センサフュージョンの基本的な要件として、センサの測定は、アプリケーションで必要となる時間的な分解能を満たせるように、密接に同期する必要があります。 対象センサの物理的なレイアウトなどの問題点は同期に影響を及ぼし、センサと、センサを処理するデバイスとが離れている場合には特にこの点が問題となります。 このような場合、センサと、対応する信号処理チェーンとの間に存在する、異なるタイミングパスによって、同期に系統的なタイミング誤差が発生する可能性があります。 開発者がこれらの差異を考慮することも可能ですが、統合センサを基礎とする手法を使用すると、この問題を排除できます。

統合センサモジュールによるフュージョンの簡素化

統合センサデバイスは、各対象センサを同じモジュール内に配置し、タイミングパスの相違に関する現実的な問題を排除します。 さらに、このようなデバイスを使用すると、開発者はセンサの精度を損なうようなノイズ源や他の設計上の要因が、センサモジュールの設計者によって既に最小化されていることを前提にできます。 実際に、Bosch SensortecはBMF055 9軸方位センサにおいて、この手法をさらに推し進めています。 このシステムインパッケージ(SiP)デバイスには、Atmel ATSAMD20J18A 32ビットMCUと、同社のBMA280加速度計、BMG160ジャイロスコープ、BMM150地磁気センサにほぼ同等のセンサが内蔵されています(図1)。 (BMF055のセンサは、同等の単独センサとは一部の性能値が異なることに注意してください)

Bosch Sensortec BMF055の図

図1:Bosch Sensortec BMF055は、センサと、AtmelのCortex-M0+ベースのMCUとを組み合わせたもので、生のセンサデータを収集してセンサフュージョンを実行し、方位および慣性測定アプリケーション用のセンサシステムの設計を簡素化します (画像提供:Bosch Sensortec)

内蔵のAtmel ATSAMD20J18A MCUは、ARM® Cortex®-M0+コアを基盤として、32KバイトのSRAMと、256Kバイトのフラッシュメモリを搭載しています。 このMCUはローカルホストとして機能し、SPIバス経由で生のセンサデータを取得して、モジュール内でセンサフュージョンのソフトウェアアルゴリズムを実行します。 その後で、Atmel MCUはUSARTインターフェース経由で外部ホストと通信し、最終的なセンサフュージョンの結果を転送します。

ハードウェアの設計は単純明快です。 BMF055に32KHzの水晶振動子とコンデンサを外付けするだけで、完全なセンサフュージョン設計が完成します(図2)。 実際に、Bosch SensortecのBMF055評価キットはブレークアウト基板と、BMF055および必要なすべての部品が搭載された小さなボードで構成され、単純で使いやすい開発プラットフォームとして機能します。

Bosch Sensortec BMF055の図

図2:Bosch Sensortec BMF055は、いくつかの部品を追加するだけで方位センサシステムを実装でき、シリアルインターフェースを開発に使用できるほか、センサフュージョンの結果をホストシステムへ転送できます。 (画像提供:Bosch Sensortec)

BMF055 SiPにより、センサフュージョンの設計をハードウェア実装するための大きな障壁が取り除かれます。 独自のセンサフュージョンアルゴリズムの作成を必要とする開発者は、独自にMCUベースのセンサフュージョン設計を作成する代わりに、BMF055を統合配置として使用できます。 実際に、Bosch Sensortecは同社のBSX-Liteセンサフュージョンライブラリを、Atmelソフトウェアフレームワーク(ASF)を基盤とする階層化アーキテクチャで提供しています。

このソフトウェアパッケージは、BSX-Liteライブラリ、センサドライバ、および基盤となるASFドライバへのアクセスのため、各レイヤで一連のAPIを公開しています(図3)。 実際の実行時コードは、配布に含まれているパッケージ化されたライブラリに存在します。 開発者は、提供されるスタック上でアプリケーションを迅速に構築でき、アプリケーションで特定の要件が必要な場合だけ、独自の専用センサフュージョンライブラリで代替できます。

Bosch Sensortecのセンサフュージョンソフトウェアパッケージの画像

図3:Bosch Sensortecのセンサフュージョンソフトウェアパッケージでは、BSX-Liteセンサフュージョンライブラリ、センサ、Atmelソフトウェアフレームワーク(ASF)にAPIアクセスが可能です (画像提供:Bosch Sensortec)

Bosch Sensortecのソフトウェアパッケージには、各種のデバイス操作を実行するための高レベル呼び出し方法を紹介する、サンプルコードも含まれています(コードリスト)。 このソフトウェアには、各センサ用のクラスが用意されているため、特定のセンサからデータを読み出す操作を、対応するクラスのインスタンスの適切なメソッドを呼び出すだけで実行できます。 センササポートライブラリの低レベルのルーチンは、必要なバス読み出しを実行し、組み込みのMCUから呼び出されて、SiPモジュールの内部SPIバス経由でセンサデバイスレジスタへのアクセスを行います。

Copy

void bmf055_sensors_initialize (void)

 {

       /* Initialize BMA280 */

       bma_init();

      

       /*BMA settings for running BSXLite: Range = 2G, BW = 62.5Hz*/

       bma2x2_set_range(BMA2x2_RANGE_2G);

       bma2x2_set_bw(BMA2x2_BW_62_50HZ);

      

       /* Initialize BMG160 */

       bmg_init();

      

       /* BMG settings for running BSXLite: Range = 500dps, BW = 64Hz*/

       bmg160_set_range_reg(0x02);

       bmg160_set_bw(0x06);

      

       /* Initialize BMM150 */

       bmm_init();

      

       /*BMM settings for running BSXLite: Preset mode = Regular, Functional state = Forced mode*/

       bmm050_set_presetmode(BMM050_PRESETMODE_REGULAR);     

       bmm050_set_functional_state(BMM050_FORCED_MODE);

 }

コードリスト: BMF055ソフトウェアパッケージには、デバイスに組み込まれている3つのセンサの初期化などの操作を行う高レベルルーチンの使用法を示すサンプルルーチンが含まれています (コード提供:Atmel/Bosch Sensortec)。

ドロップインソリューション

BMF055は完全にプログラム可能なため、カスタムの機能、さらには特化したセンサフュージョン計算が必要なアプリケーションについても、効果的なソリューションです。 すぐに使用できるドロップインソリューションを求めている開発者向けに、Bosch Sensortec BNO055はセンサフュージョンファームウェアとセンサ、およびMCUが統合されており、ファームウェアによって生成された高レベルの情報を直接出力できます。 BNO055はレジスタベースの手法を使用しているため、ホストは加速度、直線加速度、重力ベクタ、磁界強度、角速度、温度、方位などの最終結果を、オイラー角または四元数で取得できます。

ハードウェア統合には、モジュールの提供するI2CおよびUARTポートを使用してホストへ接続できます。必要な基本水晶振動子およびコンデンサはBMF055と同じです。 BMF055と同様に、Bosch Sensortecはデバイスと必要な部品すべてを含むBNO055開発ボードも提供しています。

BNO055はセンサフュージョン計算を実行して最終結果を提供するため、ソフトウェアインターフェースは比較的単純です。 外部のホストがI2CまたはUARTハードウェアインターフェース経由でデバイスにアクセスするため必要なバスの読み出しと書き込みは、基本デバイスドライバによって処理されます。

低レベルのソフトウェアルーチンは、BNO055の専用レジスタにアクセスして、特定のセンサフュージョン結果を取得します。 たとえば、ドライバのルーチンbno055_read_accel_xyz()は生の直線加速度データを読み出し、bno055_convert_float_accel_xyz_msq()関数はデータをm/s2単位の浮動小数点値へ変換します。

結論

拡張現実、ドローン、スマートフォンなどのアプリケーションには、方位と移動を判定する機能が必要です。 センサフュージョンにより、個別ではこれらの情報を生成できない、または明確かつ迅速に生成できないセンサを元にして、これらの情報を得ることができます。 設計者にとって、適切なセンサソリューションの作成は、ハードウェア設計とソフトウェア開発の両面において大きな課題となっています。

BMF055およびBNO055デバイスは、センサフュージョン設計のカスタムおよびドロップインソリューションの迅速な開発への要求に応えることができます。

 
DigiKey logo

免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

出版者について

DigiKeyの北米担当編集者