2021年10月12日火曜日

コマ遊び体験から慣性計測ユニット(IMU)を理解する

 


私の子供時代はもはや遠い昔です。あの頃は、携帯電子機器はもちろん、ビデオゲームも、小型ゲーム機もありませんでした。遊びといえば、「プレイ・ドー」や「シリーパティー」といった粘土系のおもちゃや、フリスビー、マジック8ボール、そしてバネ状でユニークな動きをする「スリンキー」が人気だった時代。中でも私のお気に入りは、マテル社の「ホットトップ」というコマのおもちゃでした。基本的には、ケースの内側でホイールが回転するジャイロスタットなのですが、当時、画期的なコマとして発売されました(1)。そのからくりは高速回転するハイテクベアリングにあり、コマは高速で回転するため、なかなか倒れませんでした。もっと速く回してやろうとコマ先を何度も床に擦りつけてから、床に放ったときにたてるあのコマの音が、今でも蘇ってくるようです。

 

 



1おもちゃのコマ(画像:RODRIGO SAINZ/Shutterstock.com

 

 

実はこのコマには、ジャイロスコープの原理が応用されています。ジャイロスコープは、角運動量保存の法則により、回転中は垂直の状態を保ちます(ニュートン(1687)、ラプラス(1799)、フーコー(1852)、ランキン(1858)など)。この現象を利用して、ジャイロスコープは物体の向きや角速度の維持または計測に使用されています。

 

 

MEMS

今日のエレクトロニクス設計では、この機械的知識をセンサに応用しています。このようなセンサには、微小電気機械システム(MEMS)技術が採用されます。MEMSセンサ技術は、複数のセンサやソフトウェアソリューションを1つに統合させて、センサフュージョンを実現します。そのため、情報通信技術(ICT)、モノのインターネット(IoT)、自動車など、さまざまな大規模産業に向けたソリューションが可能になります。半導体メーカーは、この統合ソリューションを調整して、組み込み補償やセンサ処理、さらにはシンプルなプログラマブルインターフェイスに活用しています。

そんななか、人間の知覚に迫るMEMSセンサ技術の最前線にいるのが、TDK InvenSense社です。InvenSenseは、TDKのセンサシステムズビジネスカンパニー 内の一部門で、 コンシューマー、産業、自動車、IoTなどの市場に向けたMEMSモーション、オーディオ、および圧力ソリューションのリーディングメーカーです。高性能MEMSマイク、圧力センサ、MEMS 3/6/7/9軸モーションセンサなど、InvenSenseの幅広い製品ポートフォリオにより、TDKは性能と品質の限界を広げ、さまざまな業界に向け技術革新を強化しています。今回は、TDK InvenSenseMEMS慣性計測ユニット(IMU)で物体の位置がどのように把握できるのかについて説明したいと思います。 


IMU

MEMS技術によって、高精度なジャイロスコープや加速度センサ、磁気センサ、圧力センサを複数軸で組み合わせ、ひとつのデバイスに統合することが可能になりました。このように複数の異なるセンサが統合されたデバイスのことを、慣性計測ユニット(IMU)といいます。IMUは、身体のある部位のにかかる力、角速度、身体の向きなどを検出・計測するデバイスです。アイザック・ニュートン(1642–1726/27)は、慣性を「運動の第1法則」(『自然哲学の数学的諸原理』1687年)として次のように定義しています。「すべての物体は、外部から力を加えられない限り、静止している物体は静止状態を続け、運動している物体は等速直線運動を続ける 」。MEMS技術は、極めて複雑なアプリケーションを使用する場合や動的環境下でも、複数の自由度(DoF)を確実に検出・処理します。

 

複数の自由度

IMUを選択する際に重要な基準の1つとなるのが自由度です。IMUには、通常210の自由度があります。

自由という言葉は、文脈によってさまざまな意味を持ちます。ここで言う自由とは、選択の自由や政治的自由ではなく、物理学、特に力学における自由です。力学では、自由度は、物体の位置や運動状態を表す並進運動や回転運動に対応します。例えば、力を加えても変形しない物体(剛体)の場合、並進と回転にはそれぞれ3自由度があり、合計6自由度になります(2)。

 

  1. 並進:前/
  2. 並進:左/
  3. 並進:上/
  4. 回転:横(ロール)
  5. 回転:前/後(ピッチ)
  6. 回転:左/右(ヨー)



26自由度。3次元空間における剛体の動きの可能性: 前後、左右、上下、および3軸を中心とした回転。(出典:Peter Hermes Furian/Shutterstock.com 

加速度センサ(速度の変化を計測位置を取得)とジャイロセンサ(角速度を計測向きを取得)を組み合わせてデータを収集することで、デバイスは最大6自由度を計算することができます。では、6を超える自由度(DoF)がなぜあるのでしょうか。IMUメーカーは、もっとセンサフュージョンを行えば、もっとパフォーマンスを向上できることに気づきました。そこで測定値を改善し、エラーを減らして、内部調整や補正に対応できる優れたデータを取得できるよう、もう1つセンサを追加しました。それが磁気センサで、この追加により、新たなセンサ情報が取得できます。磁気センサは、地球の磁場を検出し、それによって方位の測定が可能になります。この情報を加速度センサとジャイロセンサと合わせてセンサ融合させると、センサメーカーが言うように、自由度が3つ増えることになります。こうして9自由度のIMUが生まれたのです。

誤解のないよう付け加えておくと、この言葉には若干の強引さがあります。というのも物理学で定義されているのは、6自由度だからです。しかし、IMUデバイスは、センサフュージョンによって3種類の3軸センサを使用しているため、ソリューションには9つのセンサ入力データが提供されることになります。

先ほど、IMUには、10自由度を持つものもあると言いました。9自由度まで説明しましたが、 どうすれば10自由度になるのでしょうか。

答えは簡単で、もう1つセンサを追加すればいいのです。気圧センサを加えて、センサ情報を増やします。気圧センサを組み込めば、IMUメーカーが言うように、10自由度になります。

 

3 DoF 加速度センサ

3 DoF ジャイロセンサ

3 DoF 磁気センサ

1 DoF 気圧センサ

10 DoF

 

まとめ

私の子供時代のおもちゃとは違って、今日の電子機器には、ますます多くのセンサ情報が求められています。センサフュージョンは、複数のセンサとソフトウェアソリューションを統合し、車載、ICTIoTの実現に貢献しています。この記事で、IMUがどのように複数のセンサを1つのモノリシックデバイスに統合しているのかが、おわかりいただけたと思います。子供たちを夢中にさせたあのコマのように、IMUの威力を実感するには、TDK InvenSenseの豊富な製品ラインアップをご覧ください。



 

★★★★★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★


著者


ポール・ゴラータ

2011年マウザー・エレクトロニクスに入社。シニアテクノロジースペシャリストとして、戦略的リーダーシップ、計画の実行、全体的な製品ライン、高度技術製品に関するマーケティング指導などを通じてマウザーの実績に貢献している。また設計技師に電気工学の最新情報やトレンドを伝えるため、ユニークかつ貴重な技術コンテンツを配信し、マウザー・エレクトロニクスの理想的な企業としての地位強化にも貢献している。

マウザー・エレクトロニクス以前は、Hughes Aircraft CompanyMelles GriotPiper JaffrayBalzers OpticsJDSU、及びArrow Electronicsに勤務。製造、マーケティング、及び営業関連に従事した。DeVry Institute of Technology(イリノイ州シカゴ)にてBSEET(電気工学技術の理学士号)、Pepperdine University(カリフォルニア州マリブ)にてMBA(経営学修士号)、Southwestern Baptist Theological Seminary(テキサス州フォートワース)にてMDiv w/BL(神学及び聖書文学修士号)及びPhD(博士号)を取得。


2021年9月22日水曜日

複雑なMLも簡単に実装-Google TensorFlow Lite

 


テクノロジーの進歩の歴史を振り返ってみると、別々に進化したテクノロジー同士がやがて一つに融合し、世界を一変させるという事例に事欠きません。原子力とジェットエンジンとの融合は、原子力空母を生み出し、20世紀の戦争の様相を一変させました。コンピュータと無線通信技術との融合は、スマートフォンの誕生をもたらし、それによって、人とテクノロジーとのつながり方、さらには人と人とのつながり方までもが大きく変わりました。今、次に時代を変える技術融合として期待が高まっているのが、組み込み機器とAI(人工知能)です。ここでは、この融合がどのような進化を遂げているのかについて見ていきたいと思います。

 

エッジコンピューティングの登場

AIという概念は、古くは古代ギリシャ時代の文献にも見られまが、20世紀前半になるまで、実際にテクノロジーとして本格的なAI開発が行われることはありませんでした。基本的にAIは、デジタル技術がまるで人間の脳のように、アナログ世界と効率的にやり取りすることを可能にします。現実の世界でAIを実用化するためには、自動運転車にように、多数の動的入力を処理しながら、電子機器と物理的世界とのやり取りがほぼ瞬時に行われる必要があります。幸いにも、組み込み電子システムは、機械学習アルゴリズムの開発とともに進化を遂げてきました。この2つが出会ったことから、エッジコンピューティングという概念が生まれました

 

エッジコンピューティングは、これまでクラウド上の強力な処理能力をもつハードウェアでしか達成しえなかった処理能力を物理/デジタル・インターフェイスのエッジにあるローカル機器にもたらします。さらに、マイクロコンピュータやセンサなど、低価格ながらも優れた組み込み部品の普及によって、規模と機能の両面において、自動化技術に革命を起こしています。 

 

TensorFlow Lite:小さなハードウェア大きな機械学習アルゴリズム

TensorFlowは、複雑な数値計算アルゴリズムや機械学習 ML)をプロジェクトに簡単に導入するための、Googleによって開発されたオープンソースソフトウェアライブラリです(1)。Googleによると、このライブラリは、Python(すべてのプラットフォームでPython 3.7以降)とC言語に対して安定したアプリケーションプログラミングインターフェイスを提供し、また、 C++GoJava JavaScriptに対しては下位互換性を保証しないAPIを提供しています。さらに、AppleSwift言語にはアルファ版がリリースされています。


1GoogleTensorFlow Lite for Microcontrollerウェブサイト (画像:Google

TensorFlowは、ディープニューラルネットワーク(Deep Neural NetworkDNN)の開発と活用に向けて、いわゆるエンドツーエンドの機械学習サポートを提供します。DNNは、パターン認識や物体の検出と分類を得意とするMLの実装の1つです。TensorFlowライブラリは、学習と推論という機械学習プロセスの両フェーズをサポートします。学習フェーズでは、ディープニューラルネットワーク(DNN)を訓練しますが、これにはサーバーグレードのハードウェアやGPU(グラフィックスプロセッシングユニット)などによく見られるような大きな計算能力が必要です。最近では、学習をサポートするために特定用途向け集積回路TPUTensor Processing Unit)が開発されました。2番目の推論フェーズでは、訓練されたDNNを実世界で使用し、新たな入力について学習したモデルに基づき分析を行いそれに基づき推奨を行います。このフェーズは、組み込み製品の開発者にとって非常に興味深いものとなるはずです。

TensorFlow Lite for Microcontrollers TensorFlowライブラリのサブセット)のリリースは、ほとんどの組み込みシステムアプリケーションでよく見られるメモリに制約のあるデバイス上で推論を実行することを特に目的としています。新しいネットワークを学習させることはできません。それにはやはりハイエンドのハードウェアが必要になります。

 


機械学習のユースケース

人工知能、ニューラルネットワーク、機械学習という言葉を聞くと、SFか特別な専門用語を想像する人が多いと思います。では、これらの新しいテクノロジーは実際に何を意味するのでしょうか。

組込みシステムで実行されるAIアルゴリズムの目的は、センサから収集された実世界のデータを、従来の手続き型またはオブジェクト指向のプログラミング手法では実現できなかった効率的な方法で処理することです。おそらく最も注目されているユースケースは、従来の自動車から、車線逸脱警報や衝突防止などの自動運転支援機能を搭載した自動車、さらには人間による制御を必要としない完全自動運転を目指す自動車の進化に見られます。ただし、これ以外にもあまり目立たないところでディープラーニングがすでに多く活用されています。スマートフォン音声認識やAmazonAlexaのような仮想アシスタントに、ディープラーニングアルゴリズムが採用されています。そのほかにも、セキュリティアプリケーションの顔検出や、Zoomのような遠隔会議システムでのグリーンスクリーンを使わない背景の置換など、さまざまなユースケースがあります。

 

IoTデバイスのように、機械学習アルゴリズムとインターネット接続の両方を活用するデバイスの大きな利点の1つは、簡単な無線ファームウェア更新で、時間の経過とともに製品が新しいモデルやより優れた学習モデルを統合できるという点です。つまり、新しいモデルとファームウェアがハードウェアの物理メモリと処理能力の範囲内である限り、製品は時間とともに賢くなり、その機能も製造時に提供されていたものに制限されることはありません。

 

2 TensorFlowモデルを、マイクロコントローラなどのメモリ制限のあるデバイスで使用できるバージョンに変換する。(画像: NXP

 

ワークフロー

TensorFlow Lite for Microcontrollersに提供されているドキュメントによると、開発ワークフローは5つの主要なステップに分けられます(2)。ステップは次のとおりです。

  1. TensorFlowモデルを生成/取得する: モデルは、変換後、ターゲットデバイスに収まるよう小さくする必要があり、サポートされている操作のみ使用が可能です。現在サポートされていない操作を使用したい場合は、カスタム実装を行うことができます。

  2. モデルをTensorFlow Lite FlatBufferに変換する: TensorFlow Liteコンバータを使用して、モデルを標準のTensorFlow Liteフォーマットに変換します。 量子化されたモデルを出力すると、サイズが小さく、実行効率が向上します。

  3. FlatBufferCバイト配列に変換する: モデルは、単純なCファイルの形式で読み取り専用プログラム メモリに格納します。標準ツールを使用すれば、FlatBufferCバイト配列に変換することができます。

  4. TensorFlow Lite for MicrocontrollersC++ ライブラリを統合する: データを収集し、C++ライブラリを使用して推論を実行し、結果を処理できるようマイクロコントローラ・コードを記述します。

  5. デバイスにデプロイする: プログラムをビルドし、デバイスにデプロイします。

 

TensorFlow Liteライブラリと互換性のある組み込みプラットフォームを選択する際に、開発者が注意すべき点は次のとおりです。

 

  1. Arm Cortex-MプロセッサやESP32ベースシステムなどの32ビット・アーキテクチャに基づいています。

  2. メモリサイズが数十キロバイトで測定されるシステムで実行可能です。

  3. TensorFlow Lite for MicrocontrollersC++ 11で記述されています。

  4. TensorFlow Lite for Microcontrollersは、Arduinoライブラリとして利用できます。また、フレームワークは、Mbedなどの開発環境のプロジェクトも生成できます。

  5. オペレーティングシステムのサポート、動的メモリ割り当て、標準のC/C++ライブラリは必要ありません。

 

次のステップ

Googleでは組み込みプラットフォームで実行できるサンプルとして、 事前に訓練された4つのモデルを提供しています。これらのモデルはわずかな変更を加えるだけで、さまざまな開発ボードで使用することができます。サンプルは次のとおりです。

  • Hello World: TensorFlow Lite for Microcontrollersの基本的な使い方を実演します。

  • Micro-Speech: マイクロフォンで音声を取り込み、"yes""no"という単語を検出します。

  • Person Deflection: イメージセンサでカメラデータを取り込み、人の在/不在を検出します。

  • Magic Wand: 加速度データを取り込み、3つの異なるジェスチャーに分類します。


これから数ヶ月にわたり、これらのモデルを次のさまざまなマイクロコントローラプラットフォーム(3)上で実行させる方法について、順を追って説明していきたいと思います。

 

  


3: 本プロジェクトシリーズで使用する開発ボード:  (左上から時計回りに) NXP i.MX RT1060Infineon XMC 4700 RelaxSiLabs SLSTK3701A EFM32 GG11 スターターキット、Microchip SAM E54 Xplained Pro。(画像:マウザー)

 

★★★★★★★★★★★★★★★★★★★★
★★★★★★★★★★★★★★★★★★★★


著者

 


マイケル・パークス

 

マウザー・エレクトロニクスの寄稿ライター。カスタム電子機器設計スタジオ・技術コンサルタント会社Green Shoe Garage(米国メリーランド州)の経営者でもある。科学的・技術的トピックに対する社会の意識向上に向けてS.T.E.A.M. Power Podcastを制作。メリーランド州プロフェッショナルエンジニア(P.E.)資格を取得、ジョンズ・ホプキンス大学にてシステム工学で修士号を取得。

 

コマ遊び体験から慣性計測ユニット(IMU)を理解する

  私の子供時代はもはや遠い昔です。あの頃は、携帯電子機器はもちろん、ビデオゲームも、小型ゲーム機もありませんでした。遊びといえば、「プレイ・ドー」や「シリーパティー」といった粘土系のおもちゃや、フリスビー、マジック 8 ボール、そしてバネ状でユニークな動きをする「スリンキー...