マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > IMU:オンボードの機械学習によりホストのスリープ状態を維持可能

IMU:オンボードの機械学習によりホストのスリープ状態を維持可能

著者 Steve Leibson 氏
Digi-Keyの北米担当編集者 提供
2019-04-18
マルツ掲載日:2019-07-22


 慣性測定ユニット(IMU)は、加速度センサやジャイロスコープ、他のセンサからの多軸位置情報の定常的なストリームを提供する際に幅広く使用されています。データをすべて生成する高い自由度(degrees of freedom:DOF)により、これらのデバイスからマージされたデータストリームはシステムプロセッサを常にウェイクモードに保ち、未加工のIMUデータを精査して有用なジェスチャとシステム位置情報を抽出します。設計者に必要なのは、メインプロセッサからのこの精査機能をオフロードする方法です。機械学習が、その答えとなる可能性があります。

 この記事では、IMUの使用に関する簡単な概要を解説し、STMicroelectronicsの6DOFのLSM6DSOを紹介します。次に、このデバイスを使用して、機械学習や決定木処理をIMUに追加および統合することにより、リアルタイムの位置や動きの処理をホストアプリケーションプロセッサからオフロードする方法と、これらの機能を実際のアプリケーションで使用する方法を説明します。

クイックIMUレビュー

 IMUは多くのモーションセンサを1つのデバイスに統合し、高精度の位置決め情報を提供できます。IMUは、民生用(携帯電話)、医療用(イメージング)、産業用(ロボティクス)、軍用(ヘッドトラッキング)などのさまざまなアプリケーションに使用できます。IMUはセンサのモーションに反応し、次の1つ以上のモーションセンサタイプを統合します。

 ジャイロスコープセンサは、通常は度/秒の単位で表される角度位置の変化を測定します。経時的な角速度を統合することにより、方向の変化を追跡するのに使用可能な移動角度を測定できます。ジャイロスコープは重力から独立した相対的な移動を追跡するため、センサのバイアスや統合結果からの誤差は「ドリフト」と呼ばれる位置誤差になります。これは、ソフトウェアにより補償可能です。

 加速度センサは、リニア加速度を測定します。これには、デバイスモーションと重力による加速が引き起こす加速コンポーネントが含まれます。加速度の測定単位はg(この場合、1g=地球の重力=9.8メートル/秒^2)です。加速度センサは、1軸、2軸、3軸(XYZ座標システムを定義)で提供されます。

 磁気センサは、通常はマイクロテスラ(μT)またはガウス(100μT=1ガウス)単位で磁界強度を測定します。モバイルエレクトロニクスに最も一般的に使用される磁気センサは、3軸ホール効果磁気センサです。検出した地球の磁界の角度を計算し、その測定された角度を加速度センサが測定した重力と比較することにより、磁北に対するデバイスの方位を高精度で測定することができます。

 IMUを使用したモーショントラッキングは、センサフュージョンを採用して、相対的なデバイス方向と位置の単一の高精度な予測を既知の開始点/方向から取得します。通常、センサフュージョンはソフトウェアを採用し、IMUメーカーまたはアプリケーション開発者により開発された複雑な数学的アルゴリズムを使用してIMUのさまざまなモーションセンサ出力を組み合わせます。

 センサフュージョンを使用した位置計算により、次の測定を行うことができます。

・重力:デバイスでのモーションによって発生する加速度を除外した地球の重力。加速度センサは、IMUの静止時に重力ベクトルを測定します。IMUが動いているときの重力測定では、加速度センサとジャイロスコープからのデータを融合し、モーションにより発生した加速度を差し引く必要があります。
・リニア加速度:加速度センサにより測定されたデバイスの加速度と同等(ただし、ソフトウェアを使用して重力ベクトルが差し引かれます)。IMUリニア加速度は、3次元空間の動きを測定するのに使用できます。
・方向(姿勢):ヨー(アジマス)、ピッチ、ロールを含む一連のオイラー角(測定単位は度)。
・回転ベクトル:加速度センサ、ジャイロスコープ、磁気センサからのデータを組み合わせて取得。回転ベクトルは、特定の軸を中心とした回転角度を表します。

IMU誤差の原因

 ジャイロスコープは角速度の変化により方向をセンスしますが、変化をセンスするだけで固定されたリファレンスフレームがないため、経時的にドリフトする傾向があります。加速度センサデータをジャイロスコープデータに追加することにより、ソフトウェアはジャイロスコープのバイアスを最小限に抑え、より高精度の位置予測を実現できます。加速度センサは重力に対する方向の変化をセンスし、そのデータを使用してジャイロスコープを方向付けることができます。

 加速度センサの精度は、動的計算よりも静的計算のほうで優れています。ジャイロスコープはシステムがすでに動作しているときの方向検出に優れています。加速度センサは素早く反応するため、データを単独で使用すると加速度センサのジッタとノイズにより誤差が蓄積されます。さらに、加速度センサには重力などの外力により加速度が歪む傾向があり、これもシステム内でノイズとして蓄積されます。このデータをフィルタリングすることにより精度が向上します。

 ジャイロスコープの短期的な精度と加速度センサの長期的な精度を組み合わせることにより、各センサの長所によって他方のセンサの短所が相殺されるか少なくとも軽減され、さらに高精度の方向読み取りが実現します。2つのセンサタイプが相互に補完し誤差を軽減しますが、誤差を軽減するための他の方法もあります。

誤差の軽減に必要なフィルタリングの融合

 IMUソフトウェアは、フィルタリングを使用してIMUデータの位置決め誤差を最小化します。センサデータを融合するためのフィルタリング方法はいくつかありますが、それぞれ複雑さの程度が異なっています。相補的フィルタは、ハイパスのジャイロスコープフィルタとローパスの加速度センサフィルタを組み合わせます。これにより、加速度センサデータ内の高周波数ノイズは短時間で除去され、ジャイロスコープデータにより平滑化されます。

 このセンサ処理やフィルタリング、融合をすべて実行するのに必要な計算処理能力はエネルギーを消費します。これは、特にIMU情報の連続ストリームを必要としない電池駆動システムにおいて問題になる可能性があります。多くの組み込みアプリケーションでは、ホストプロセッサをスリープモードからウェイクさせる割り込みをIMUが生成し、割り込みの結果として処理を開始するかアクションを実行することにより、著しい節電を実現できます。この機能を有効にするために、一部のIMUベンダーはIMUに処理機能と意思決定機能を組み込み始めています。

IMUに思考させる

 STMicroelectronicsの6DOF LSM6DSOは、そのようなIMUの1つです。この製品には、3つのMEMSジャイロスコープと3つのMEMS加速度センサが組み込まれており、すべてオンボード処理を使用して、ホストプロセッサからの監視または支援なしで方向の変化やジェスチャを検出できます。IMUは、最高性能モードでの動作中に0.55mAを消費します。

 このモードでは、LSM6DSOは空間内のそれ自体の姿勢と動きを継続的に監視し、ホストプロセッサをウェイクしてセンサストリーム上の追加処理を実行する事前に取り決められた条件で割り込みを生成できます。常に動作可能状態を維持する低電力IMUを使用することには有用性があります。これは、ホストプロセッサをスリープ状態にさせ、必要時にのみウェイクさせることができるためです。これは、電池駆動システムにおいて実証された信頼性の高い省エネ方法です。

 ジャイロスコープと加速度センサに加えて、LSM6DSO IMUには、信号コンディショニングとフィルタブロック、16個のプログラムを実行可能な有限ステートマシン(FSM)(すべて共通の設定可能な出力データレートを共有)、および機械学習コアが含まれています。これらのリソースを併用することにより、次の条件の場合のイベント検出割り込みを生成できます。

・自由落下
・ウェイクアップ
・6DOF方向
・シングルクリックおよびダブルクリックセンシング
・アクティビティ/非アクティビティ認識
・静止/モーション検出

 信号コンディショニングブロックは、その感度レジスタ内に保存された変換係数を適用して、未加工のセンサデータをスケーリングします。次に、未加工のIMUセンサデータストリームを、FSMが識別可能な16ビットの半精度浮動小数点(HFP)バイト形式に変換します。

 図1は、IMUのMEMSセンサ(加速度センサおよびジャイロスコープ)、2個のA/Dコンバータ(ADC)、および4個のフィルタブロックを示しています。フィルタブロックを使用して、アナログMEMSセンサ信号をフィルタ処理されたデジタルデータストリームに変換します。


図1LSM6DSO IMUは、2個のADCを使用して、その内蔵MEMS加速度センサとジャイロスコープからのアナログ信号をデジタルストリームに変換します。ADCに続いて、4個のデジタルフィルタが、内蔵FSM/機械学習コアおよびホストプロセッサによる意思決定用に信号を調整します。(画像提供:STMicroelectronics)

 プログラム可能なFSMは、設定ブロックと16個のプログラムブロックで構成されています。FSMの設定ブロックは、FSM全体を設定および制御します。FSMの16個のプログラムブロックは、それぞれ入力セレクタブロックとコードブロックで構成されています(図2)。これらのブロックは、どちらもIMU内のレジスタに書き込まれた値によって制御されています。


図2LSM6DSO IMU内のFSMの16個のプログラムブロックは、それぞれ入力セレクタブロックとコードブロックで構成されています。(画像提供:STMicroelectronics)

 入力セレクタブロックは、IMUの内部センサの1つ、またはIMUセンサハブに接続された外部センサから選択された入力データを、コードブロックにルーティングします。IMUのセンサハブには、磁気センサなどの追加外部センサを4個搭載できます。これらのセンサは、I2Cポートを経由してIMUに接続されます。

 FSMのコードブロックには、ステートマシン用の1つのプログラムが含まれています。プログラムブロックのデータセクションの固定部分は、6バイトで構成され、プログラムの閾値の数、ヒステリシス、マスク、およびタイマ設定を定義します。プログラムブロックの変数データセクションは、データセクションの固定部分に保存された値によって定義されたとおりの各プログラムの実際の閾値、ヒステリシス、マスク、およびタイマ設定を保持します。

 データセクションの固定部分は、コードブロックのメモリフットプリントの変数部分のサイズ、プログラム可能なリセットベクトル、およびプログラムカウンタも定義します。これらはすべて8ビットの値であるため、各FSMプログラムは256バイトに制限されます。

 プログラムブロックの命令セクションには、実際のFSMプログラムが含まれています。プログラム命令には、閾値に対するセンサ入力の確認、ゼロクロスの確認、タイムアウト比較用のタイマ値確認のためのオペコードが含まれます。オペコードは、現在のFSM状態から次の状態へ移行するのに必要な条件を指定します。さらに、プログラムの変数データセクションに保存された閾値とマスクの選択、4個までの外部センサのいずれかに接続するためのIMUセンサハブの多重セレクタの設定、および割り込みのアサートのためのコマンドオペコードもあります。

 各FSMプログラムは、割り込みを生成し、選択された入力信号に基づいて対応するレジスタ値の内容を変更できます。これらのレジスタ値は、データをIMUからホストプロセッサに渡すために使用されます。

 FSMを演算論理装置のないマイクロプロセッサとして考えると効果的です。FSMは、選択と比較を行い、その比較に基づいて次の状態についての意思決定を行えます。FSMは、比較からのブール結果以外の値を計算しません。

 FSMはマイクロプロセッサではありません。FSMは比較を行い、その比較に基づいてプログラムフローへの簡単な変更を実行できます。FSMはシンプルなマシンであるため、FSMオペコードにより直接プログラムされています。FSMには高レベルの言語コンパイラはありませんが、一般にプログラムがとてもシンプルなためコンパイラは必要ありません。

FSMの使用

 LSM6DSO IMUのFSMは、事前定義されたモーションパターンによりアクティブ化される割り込み信号を生成するようにプログラミングできます。FSMは16個の独立プログラムを同時に実行して、モーションを検出できます。各FSMプログラムは、if-then-else手順のシーケンスで構成され、LSM6DSOの加速度センサおよびジャイロスコープからのセンサストリームを入力として使用します。いずれかのFSMプログラムがあらかじめプログラムされたパターンとの一致を検出すると、FSMはホストプロセッサへの割り込みを生成できます。

 16個のFSMプログラムには、それぞれ固定データ、変数データ、命令用に3個のメモリセクションが含まれます。図3は、単一のFSMプログラムブロックダイアグラムを示しています。


図3:STMicroelectronicsのLSM6DSO IMUのFSMには16個のコードブロックが組み込まれており、各コードブロックには固定データ、変数データ、および命令用に3個のメモリセクションが含まれます。(画像提供:STMicroelectronics)

 コードブロックの単一プログラムの構造は、メモリのブロック内の3個のセクションで構成されています。

・すべてのFSMプログラムで同じサイズの固定データセクション
・サイズの異なる変数データセクション
・条件およびコマンドを含む命令セクション

 各FSMコードブロックのプログラミングには、FSMの動作を決定するプログラミング値を3個のメモリセクションに読み込むことが関係します。STMicroelectronicsは、ダウンロード可能なUnico評価開発ソフトウェアおよび開発環境内で、FSMプログラミングツールを提供しています。

 STMicroelectronicsは、FSMのプログラミング方法の学習支援機能として、Unico開発ツールにいくつかのサンプルFSMプログラムを含めています。これらのサンプルプログラムは、以下のIMUベースの割り込みシナリオのデモを提供します。

・基本的な歩数計
・自由落下時のシステム
・シンプルなモーション検出
・システムが持ち上げられた
・システムが振動させられた
・システムの動作が停止した(静止)
・手首の傾き

 サンプルFSMプログラム例は、さまざまなFSM機能の使用のデモを示しています。これらのサンプルプログラムは、いずれもLSM6DSO STEVAL-MKI197V1 IMUアダプタボードに対応した28ピンソケットを持つSTEVAL-MKI109V3 eMotion STM32評価ボードなどのIMUデモプラットフォームにインストールできます。Unico開発環境で数回クリックするだけで、プログラム例の1つを使用してSTEVAL-MKI109V2ボードをプログラミングできます。ただし、LSM6DSOには見た目以上のものがあります。

機械学習コア

 LSM6DSO IMUには、機械学習コアと呼ばれるより高度でプログラム可能なパターンマッチングエンジンも組み込まれています。このエンジンは、内蔵IMUセンサおよび接続された外部センサからの複数のセンサデータストリームを使用して動きのクラスを識別できます。認識可能なイベントクラスには、静止(動きなし)、ウォーキング、ジョギング、自転車、ドライブが含まれます。分類は、機械学習コア内で決定木の形式をとります。

 機械学習コアは、3つのブロック(センサデータブロック、計算ブロック、および決定ブロック)で構成されます(図4)。機械学習コアのセンサデータブロックは、IMUの内蔵加速度センサやジャイロスコープおよびI2Cインターフェースを経由してIMUに接続された外部センサからのデータストリームを集計します。

 計算ブロックは、事前定義されたフィルタリングパラメータを使用してセンサデータをフィルタリングし、平均、分散、ピーク間振幅、最小、最大、ゼロクロスを含むウィンドウ型統計を計算できます。決定木は、計算されたセンサデータ統計を閾値と比較して、入力データを分類します。


図4:STMicroelectronicsのLSM6DSO IMUの機械学習コアは、3つのブロック(内部および外部センサからのデータストリームを集計するセンサデータブロック、センサデータをフィルタリングしてそのセンサデータ上の統計を計算する計算ブロック、および計算された統計に基づいてイベントを分類する決定木)で構成されています。(画像提供:STMicroelectronics)

 LSM6DSOのFSMの場合と同様、Unico開発環境の専用ツールを使用してIMUの機械学習コアをプログラムします。有限ステートマシンおよび機械学習コアをホストプロセッサと併用して、より高度な位置トラッキングアルゴリズムを実装することもできます。STMicroelectronicsのSTM32Cube開発システム用にダウンロード可能な同社のX-CUBE-MEMS1ソフトウェアパックには、次のサンプルソフトウェアルーチンが含まれています。

・アクティビティ認識:ユーザーにより実行されるアクティビティのタイプに関する情報を提供します。これには、静止、ウォーキング、速歩、ジョギング、自転車、ドライブが含まれます。このアルゴリズムは、一般には携帯電話またはある種のウェアラブルデバイスで使用されます。
・モーション持続時間検出:歩数計データと組み合わせることにより、モーション持続時間検出ではユーザーがアクティブになっている時間を秒単位で判定します。このアルゴリズムは、一般にはフィットネスまたはヘルストラッキング用のウェアラブルデバイスに使用されます。
・振動またはモーション強度検出:ユーザーモーションの強度に関する情報を提供し、モーション強度を0(静止)から10(全速力)の範囲で識別できます。このアルゴリズムは、一般には携帯電話またはある種のウェアラブルフィットネスデバイスで使用されます。
・携帯位置認識:ユーザーがデバイスを携帯する方法に関する情報を提供し、その位置(机の上、手の中、頭の近く、シャツのポケット、ズボンのポケット、ジャケットのポケット、腕)を識別できます。このアルゴリズムは、一般には携帯電話またはその他の携帯デバイスで、アクティビティ関連のコンテキスト検出に使用されます。

結論

 ホストプロセッサの電力消費量は比較的大きいため、ホストプロセッサを実行しながら位置測定を維持したり、IMUデータから動きやジェスチャを検出したりするニーズは、電池駆動の組み込み設計では達成困難です。ただし、機械学習の実行に十分なオンボード処理機能を持つ新世代の低電力IMUは、必要になるまでホストプロセッサを低電流モードでスリープ状態にすることにより、この問題を解決できます。


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



このページのコンテンツはDigi-Key社より提供されています。
英文でのオリジナルのコンテンツはDigi-Keyサイトでご確認いただけます。
   


Digi-Key社の全製品は 1個からマルツオンラインで購入できます

※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigi-Key社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ