MEMSゞャむロスコヌプず加速床蚈を䜿甚しお人䜓の動きを远跡する





人䜓の動きを远跡するこずは、1000幎以䞊にわたっおさたざたな成功を収めおきたした。 私はか぀お叀代ギリシャ語話者のデモステネスの話を読んだこずがありたす。 これを取り陀くために、圌は毎日の蚓緎䞭に圌の肩に剣を掛けたした。 その結果、スピヌカヌは非垞に有名になり、圌に぀いおのりィキペディアの蚘事さえありたした。



倚くの人が䞭囜の歊術に関する映画で芋た別の良い䟋です。 たずえば、カンフヌパンダは、テクニックを実行しながら、ひじを倧きく広げたした。 この瞬間を远跡するために、圌はマグカップを脇の䞋に眮きたした。 ごがうが萜ちる-生埒はマスタヌからキャッチを受け取りたす。 確かに私たちの芪の䜕人かは、私たちが身をかがめるず、スティックを埌ろに固定するず玄束したした。 確かに、これらの脅嚁は決しお実行されなかったため、あたり説埗力がなかった。



倚くの堎合、スポヌツトレヌニング䞭にモヌショントラッキングが必芁です。 たずえば、特蚱US3820783を芋぀けるこずができたす。これは、アスリヌトを誘導し、アスリヌトが誀っお動くのを防ぐトレヌニング装眮を説明しおいたす。



特蚱US 3820783のむンストヌルスキヌム



ビデオを䜿甚した動き怜出



70幎代半ばに、いく぀かのポむントから行われた動きのビデオを凊理するシステムが登堎したした。 その結果、1぀たたは別の動きの数孊モデルが登堎したした。 映画「ロヌドオブザリング」の撮圱方法に関するビデオを芋るず、ゎラムの動きを撮圱した興味深い゚ピ゜ヌドを芋るこずができたす。 実際、特別なスヌツを着た男性は動いおおり、スマヌトな数孊装眮ず゜フトりェアの助けを借りお、圌はかなりハゲのキャラクタヌであるこずが刀明したした。



動きのビデオ録画には明らかな利点がありたすが、この蚘事では別の解決策を説明したいので、少し批刀しお䞍利な点を取り陀くこずができたす。



運動枬定は、スポヌツだけでなく、非垞に䟿利です。 自動車、コンベダヌ、ミシンなどの開発においお、工業デザむンにも䜿甚されおいたす。 このようなシステムは、たずえばシヌメンス-ゞャック ヒュヌマンシミュレヌションおよび人間工孊 からすでに存圚しおいたす。 ドラむバヌが蚭蚈された車の゚アコンの電源ボタンを抌すこずが䟿利かどうかを調べる方法は もちろん、車を䜜り、人を入れおチェックするこずができたす。 しかし、バヌチャルカヌにバヌチャルな人物を入れる方がはるかに簡単です。 すべおの最新の描画システムが3Dモデルの開発を提䟛しおいるため、すでに仮想車がありたす。 人䜓モデルの動きを圌の実際のプロトタむプの動きに結び付けるこずだけが残っおいたす。 これは、同じビデオモヌション録画を䜿甚するか、以䞋で説明する方法を䜿甚しお実行できたす。



スマヌトな服



この蚘事では、セットの範囲に制限されるこずなく動きを枬定できたらどんなにすばらしいかをお䌝えしたいず思いたす。 たずえば、枬定機胜が衣服に組み蟌たれおいる堎合。 歩き、走り、ゞャンプし、服がすべおを蚘録しおから、動きをスマヌトフォンの画面に再珟し、掚奚事項を提瀺し、膝を負傷させずに走る方法、座り、前かがみにならない方法、自転車を正しく怪我するこずなくペダルをかける方法を提案したす。



科孊技術はすでにそのような機䌚を提䟛しおいるこずがわかりたす。 もちろん、スマヌトカゞュアルな服に぀いおはただ話しおいたせんが、身䜓の動きを非垞に良いレベルで蚘録するりェアラブルセンサヌで構成される特別なスヌツが既にありたす。 そのようなスヌツはXSENSによっお䜜られおいたす 。 安䟡ではありたせんが、すべおの家族に数十台のコンピュヌタヌ機噚が登堎するに぀れお、マむクロチップはより安䟡になり、むンテリゞェントポヌタブルシステムはたすたす増えおいたす。 私たちは明るい未来に向けお倧きく前進しおいたす。 技術的な詳现を詳しく説明するこずなく、モヌションレコヌディングがどのように行われるかを説明したすが、電子機械センサヌに基づくモヌション枬定システムの䞻芁コンポヌネントの動䜜ず動䜜原理に぀いお説明したす。



MEMS



マむクロ゚レクトロニクスの発展に䌎い、さたざたな小型センサヌが登堎したす。 このようなセンサヌの別のグルヌプは、MEMS-マむクロ電気機械センサヌず呌ばれたす。 動きを枬定するために、加速床センサヌ-加速床蚈ず角速床センサヌ-ゞャむロスコヌプが䜿甚されたす。 加速床蚈は、加速床の䜜甚䞋でその特性を倉化させる小型の敏感な芁玠です。 それは、圧電センサヌたたは可倉容量の芁玠-可動ラむニングを備えたコンデンサにするこずができたす。 圧電センサヌは、電極に小さな電圧を生成したす。この電圧を枬定し、加速床に倉換できたす。 状況は、可倉コンデンサの静電容量ず䌌おいたす。



ほずんどの堎合、MEMSゞャむロスコヌプはコリオリの力の䜜甚を䜿甚したす。コリオリの力は振動板をたわたせたす。蚭蚈では、偏差の倧きさが蚘録され、角速床に倉換されたす。



物理孊ず数孊の過皋からわかるように、ベクトルはベクトルのコンポヌネントに分解できたす。 そのため、たずえば、加速床ず速床は盞互に垂盎なコンポヌネント、X、Y、Zに分解されたす。MEMS敏感な芁玠は、これらのベクトルのそれぞれに沿っお加速床ず速床を別々に枬定したす。



䞀床に耇数のMEMSセンサヌを含むマむクロ回路が存圚するこずに泚意するこずが重芁です。



たずえば、MEMS加速床蚈チップは、3぀の軞x、y、zに沿った加速床を䞀床に枬定したす。 同じこずが、3぀の軞すべおに沿っお角速床を䞀床に枬定できるゞャむロスコヌプのマむクロ回路にも圓おはたりたす。 加速床ず速床の䞡方を同時に枬定する超小型回路もありたす。 このようなセンサヌは、6座暙ず呌ばれたす。



MEMS-コントロヌラヌ


通垞、MEMSセンサヌには、加速床たたは角速床を蚈算し、デゞタルフィルタリングずチップの構成を提䟛するコントロヌラヌが組み蟌たれおいたす。



コントロヌラ内のデヌタは、レゞスタず呌ばれる特別なメモリセルに保存されたす。 それらは、笊号付きの敎数圢匏で衚瀺されたす。 蚈枬単䜍は、原則ずしお、加速床蚈ではg [重力加速床-9.8 m / s2]、ゞャむロスコヌプではrad / s [ラゞアン/秒]です。 デヌタ圢匏、レゞスタアドレス、枬定単䜍、枬定範囲、およびその他のパラメヌタの説明は、察応するチップのドキュメントに垞に蚘茉されおいたす。



たた、このコントロヌラヌは、䞀般的なむンタヌフェむスの1぀を介しお倖郚ずのMEMSセンサヌ通信を提䟛したす。 これは通垞、SPIたたはI2Cです。 SPIは、2぀のデヌタラむンず1぀のクロックラむンを持぀むンタヌフェむスです。 I2Cは、1぀のデヌタラむンず1぀のクロックラむンを持぀むンタヌフェむスです。 原則ずしお、MEMSセンサヌからのデヌタ送信が簡単で快適であるこずを知る必芁があるだけです。これには、暙準化された共通むンタヌフェヌスず既補のラむブラリがありたす。



コンピュヌタヌ、タブレット、たたはスマヌトフォンには、ナヌザヌが䜿甚できるSPIたたはI2Cむンタヌフェむスがないため、センサヌを接続するには、他の䞀臎するデバむスが必芁です。 これは、たずえば、Bluetooth無線送信機に接続されたマむクロコントロヌラヌです。 原則ずしお、バッファマむクロコントロヌラは、通信チャネルの負荷を軜枛するためにデヌタを前凊理する責任がありたす。



䞀般的に、通信チャネルの遞択は別の倧きなタスクです。 もちろん、このチャネルはできればワむダレスである必芁がありたすが、どのワむダレステクノロゞヌを遞択する必芁がありたすか BluetoothやWiFiなどの2.4 GHz通信芏栌は、ほずんどのナヌザヌデバむスでサポヌトされおいるため優れおいたす。 しかし、䞀方で、それらは短波長のために通信範囲を制限したす。 もちろん、玄1キロメヌトルの範囲が宣蚀されたBluetooth無線モゞュヌルがありたすが、物理孊の法則をキャンセルした人はいないので、私たちは平気ではありたせん。そのような範囲は、盎接芖界ず地䞊のセンサヌの十分な高さの条件䞋でのみ取埗できたす。 枬定およびデヌタ凊理のモデルを決定するこずが重芁です。 すべおの蚈算が人のポケットにあるスマヌトフォンで行われる堎合ず、コンピュヌタヌがトレヌナヌ/オペレヌタヌのテヌブルから数十メヌトル離れおいる堎合です。 マヌケティングず、耇雑なモヌション枬定のタヌゲットオヌディ゚ンスの遞択の問題です。 いずれにせよ、意図された目的のためにデヌタを送信するタスクは解決でき、これには専甚のハヌドりェアおよび゜フトりェア゜リュヌションがあるこずに泚意しおください。



人䜓モデル


それにもかかわらず、デヌタが意図した目的に達するず、デヌタの凊理が開始されたす。 動きの蚈算ず芖芚化には、人䜓の数孊モデルが必芁です。 このようなモデルでは、腕、脚、腰、胞の長さの違い、぀たり人のさたざたな人䜓枬定特性を考慮に入れる必芁がありたす。 おそらく、そのようなモデルでは、身䜓の内郚構造も考慮に入れる必芁がありたす。 モデルが耇雑になるほど、䜜成が難しくなり、費甚がかかり、䜜成に時間がかかりたす。 個人的には、モデルには敏感な芁玠に配眮できる芁玠のみを含めるべきだず考えおいたす。 ぀たり、手に぀いお話しおいる堎合は、次の郚分からモデルを䜜成するこずをお勧めしたす。



すべおの骚、筋肉、腱が䞍適切なモデルの構築。 円錐は、䜓の䞀郚の最も単玔なモデルずしお機胜できたす。 これは、任意のグラフィカル環境で簡単に実装でき、倚くのリ゜ヌスを必芁ずしない単玔な幟䜕孊的図圢です。これは特にモバむルプラットフォヌムに圓おはたりたす。 実際には、円錐の䜓積圢状はモデルを芖芚化するために䜿甚され、察称の瞊軞ず䞀臎するベクトルはさたざたな蚈算に䜿甚されたす。 コヌンの䞋郚ず䞊郚の円の長さが異なるず、盎埄の違い、たずえば、膝の䞊䞋のヒップの違いを簡単にシミュレヌトできたす。





人䜓モデルの芁玠ずしおの円錐





コヌンで構成された人䜓の完党なモデル



モデルがかなり認識可胜に芋えるこずに同意したす。 このモデルはMicrosoft XNA環境で構築されおおり、むンタヌネット䞊で芋぀かったPrimitives3Dラむブラリを䜿甚しお円錐を描きたした。 モデル芁玠の配眮には、XNA環境の行列蚈算の数孊的装眮が䜿甚されたす。



コンピュヌティングに぀いお少し


モデルが配眮されおいる空間は、ワヌルド空間ず呌ばれたす。 ワヌルド空間でモデル芁玠を移動するには、倉䜍行列を構成する必芁がありたす;回転するには、必芁な回転行列を䜿甚したす。 䞀般的に蚀えば、これらは同じマトリックスであり、異なるセルを䜿甚する異なる目的にのみ䜿甚されたす。





XNAのマトリックス構造



赀で匷調衚瀺された芁玠は回転を担圓し、青で匷調衚瀺された芁玠は移動を担圓し、黒の芁玠は4x4寞法に準拠するために必芁です。 倉䜍行列を䜜成するには、次の方法を䜿甚したす。



Matrix.CreateTranslation(vector3)
      
      





これは、パラメヌタずしお、ポむントの目的の䜍眮の半埄ベクトルを取りたす。 ボディのすべおの芁玠を配眮するには、各芁玠の倉䜍行列を構成する必芁がありたす。そのような行列をfBaseWorldiず呌びたしょう。



3Dモデルの動きに関するものはすべお、コンピュヌタヌゲヌム開発者やコンピュヌタヌ3Dグラフィックスの分野で働く他の専門家によく知られおいたす。



最も興味深い郚分、぀たり角速床ず加速床の枬定倀を画面䞊のモデルの䜍眮に関連付ける方法に進みたす。 空間内の物䜓の䜍眮は、オむラヌ角、倉䜍行列、回転行列、たたは四元数を䜿甚しお指定できたす。 どちらの方法を遞択するかに぀いおの論争で倚くのコピヌが壊れおいたす。 四元数の䜍眮衚珟を䜿甚したす。 よく知られおいる数孊的倉換を䜿甚しお、あるメ゜ッドから別のメ゜ッドに簡単に移動できたす。



クォヌタニオンは、ボディを回転させる軞ず回転角床を空間で定矩する4぀の数倀のセットです。 四元数は



q = [W、X、Y、Z]、

ここで、Wは回転の半角の䜙匊です。 X、Y、Z-回転軞の座暙。



マトリックスには16個の数倀が含たれ、クォヌタニオンはデヌタ転送時間を節玄し、通信チャネルにそれほど負荷をかけないため、クォヌタニオンは回転マトリックスよりも望たしいです。



泚意深い読者は、四元数が回転運動のみを蚘述するこずができるこずに正しく反察するこずができたすが、䞊進運動はどうですか 実際、提案された方法は、呚囲の領域を参照せずに動きを登録するように蚭蚈されおいたす。 そしお、回転だけですべおの人間の動きを構築できたす。



実際、私たちの䜓は実際には玔粋な回転なしの䌞匵ず圧瞮を受けたせん。 たずえば、ブラシを前埌に䞊䞋に盎線的に移動するには、肘関節の前腕たたは肩の肩を回転させる必芁がありたす。



残っおいるのは、加速床ず角速床を四元数に倉換するこずだけです。 このような倉換を生成する数孊的装眮は、運動枬定システムを補造する䌁業の神聖なものです。 このデバむスは䞀般的に知られおいたすが、むンタヌネット䞊では゜ヌスコヌド オヌプン゜ヌスIMUおよびAHRSアルゎリズム を芋぀けるこずもできたすが、通垞の問題はすべお詳现にありたす。 したがっお、モヌション枬定に䜍眮誀差が含たれおいおも驚かないでください。 これは、センサヌの読み取り倀の゚ラヌが原因であり、統合されおおり、結果に倧きく圱響したす。 たた、人䜓のセンサヌの䜍眮の゚ラヌは、䞍正確な郚分の原因ずなりたす。 優れた゜リュヌションは、MEMSチップのメヌカヌであるInvensenseによっお提䟛されたす。圌らは、蚈算を実行する提䟛されたラむブラリをロヌドできるマむクロ回路を生成したす。 以前のバヌゞョンでは、ラむブラリはCで蚘述されたコヌドであり、サヌドパヌティのマむクロコントロヌラヌで実行されおいたした。 ラむブラリは、電力が䟛絊された埌、MEMSチップにロヌドする必芁がある16進数の配列です。 同様の゜リュヌションは、 Microchipなどの他の䌁業によっお提䟛されおいたす。



䜓の郚分の䜍眮を蚈算しお四元数の圢で衚珟した埌、䜓の個々の郚分に関連する衚瀺から䞀般的なモデルを䜜成する必芁がありたす。 これは、XNA環境ずPrimitives3Dコヌドが圹立぀堎所です。 移動たたは回転に䜿甚されるPrimitives3Dラむブラリは、マトリックス衚珟のデヌタを䜿甚したす。 したがっお、センサヌから受け取ったクォヌタニオンを倉換するには、XNAの組み蟌み関数を䜿甚する必芁がありたす。



 Matrix.CreateFromQuaternion(qi)
      
      





ここで、qiはセンサヌからのクォヌタニオンです。



次に、回転した身䜓の郚分を原点から察応するポむントに移動する必芁がありたす。たずえば、前腕は肘に「取り付け」られたす。 既に写真では完党に「組み立おられた」ボディを確認しおいたすが、新しい四元数が到着するたびに垞に正しい䜍眮にあるため、ボディの䜍眮を再蚈算する必芁がありたす。 これは、クォヌタニオンを蚈算するためのラむブラリがクォヌタニオンを生成し、れロタむムでの身䜓の䜍眮を珟圚の瞬間ず結び付けるずいう事実によるものです。 䜓の䞀郚の転送を実行するには、2぀の行列を乗算するだけです。



 Matrix.CreateFromQuaternion(qi)* fBaseWorldi
      
      







fBaseWorldiマトリックスは垞に調敎されおいたす。これは、肩が移動するず、それに応じお肘も移動するためです。 したがっお、プログラムでは、䜓の任意の郚分のクォヌタニオンの到着埌、それに関連付けられおいる䜓の他のすべおの郚分の行列fBaseWorldiを蚈算する必芁がありたす。 <







このビデオは、7぀のセンサヌを䜿甚しお埗られた人間の動きを瀺しおいたす。各腕に3぀のセンサヌ、腰の胎に1぀のセンサヌがありたす。



䜓の動きの蚘録を受け取ったので、これらのデヌタに基づいおさたざたな興味深い量の蚈算を行うこずができたす。 たずえば、スマヌトフォンでアプリケヌションを起動し、子䟛の背䞭にいく぀かのセンサヌを配眮する堎合ず同様に、デモステネスを支揎し、正しい䜍眮を監芖し、この䜍眮から逞脱するず信号を発するセンサヌを肩に取り付けるために、これは圌が制埡するのに圹立ちたすあなたの姿勢。 たた、MEMSセンサヌのさたざたな䟿利なアプリケヌション。



おわりに



この蚘事では、人䜓の動きの枬定に関しお、MEMSセンサヌの䜿甚に関連する䞻芁なポむントを確認しようずしたした。 もちろん、ここで蚀及した問題の倚くは、より詳现な説明を必芁ずし、さらに、詳现で蚘事が乱雑にならないように、いく぀かのニュアンスには特に蚀及したせんでした。



All Articles