(57)【要約】  開示されるのは、様々な人間の手の位置を検知するのに適した複数の別個のＦＭＴセンサパターンを含むコントローラを用いるタッチセンシティブコントローラシステムである。コントローラシステムはコントローラと手のインタラクションを反映するデータだけでなくタッチ事象も出力する。ＦＭＴセンサは共通の信号発生装置によって操作されてもよく、コントローラ上の手の位置、配向及び把持を理解することを助けるための本体生成クロストークを見ることが可能である。一実施形態において、信号注入はＦＭＴセンサデータを補足することができる。複数のＦＭＴセンサ及び付加的な注入信号によって送受信されたデータ間の融合は、タッチ及び手のモデリングの両方に、より進歩した適合度を提供する場合がある。【選択図】図２
2020514896.tif 000002
【特許請求の範囲】
【請求項１】
タッチセンシティブコントローラであって：
親指中心部分及びトリガー中心部分を支持するコントローラ本体；
親指中心部分に関連した第１のセンサパターンであって、前記第１のセンサパターンは第１の複数の導体及び第２の複数の導体を含み、前記第１及び第２の複数の導体は、親指中心部分に隣接したタッチ事象が複数の第１の導体の少なくとも１つと複数の第２の導体の少なくとも１つとの間の結合に変化を生じさせるように配向される、第１のセンサパターン；
トリガー中心部分に関連した第２のセンサパターンであって、前記第２のセンサパターンは第３の複数の導体及び第４の複数の導体を含み、前記第３及び第４の複数の導体は、トリガー中心部分に隣接したタッチ事象が複数の第３の導体の少なくとも１つと複数の第４の導体の少なくとも１つとの間の結合に変化を生じさせるように配向される、第２のセンサパターン；
導体の第１及び第３の複数の導体の各々の別個の導体に動作可能に接続している信号発生装置であって、前記信号発生装置は、導体の第１及び第３の複数の導体の各々の別個の導体上に周波数直行信号を発する、信号発生装置；
複数の信号受信器であって、前記複数の信号受信器の各々は、第２及び第４の複数の導体の各々の導体の別個の導体に動作可能に接続され、前記複数の信号受信器の各々は、動作可能に接続される導体上に存在する信号を受信するのに適し、前記複数の信号受信器は、統合期間中に、それが動作可能に接続される導体の別個の導体上に存在する信号を同時に受信することによりフレームを受信するのに適する、複数の信号受信器；
親指中心部分に隣接した電磁気の障害を反映する第１のヒートマップ、及びトリガー中心部分に隣接した電磁気の障害を反映する第２のヒートマップを生成するのに適した信号プロセッサであって、各ヒートマップは、少なくとも一部、統合期間中に受信したフレームに基づく、信号プロセッサを含む、タッチセンシティブコントローラ。
【請求項２】
前記第１のセンサパターンは３層センサパターンである、請求項１に記載のタッチセンシティブコントローラ。
【請求項３】
前記第２のセンサパターンは３層センサパターンである、請求項１に記載のタッチセンシティブコントローラ。
【請求項４】
前記第１のセンサパターンは３層センサパターンである、請求項３に記載のタッチセンシティブコントローラ。
【請求項５】
少なくともコントローラに対する親指の位置、及びコントローラに対する人差し指の位置を画定するのに適した情報を含む指情報データ構造であって：及び
前記第１のヒートマップの少なくとも一部に基づいたコントローラに対する親指の位置に関する情報を備え、並びに前記第２のヒートマップの少なくとも一部に基づいたコントローラに対する人差し指の位置に関する情報を備えた指情報データ構造を占めるのに適したプロセッサ、をさらに含む、請求項１に記載のタッチセンシティブコントローラ。
【請求項６】
プロセッサ及び信号プロセッサは同じ集積回路である、請求項５に記載のタッチセンシティブコントローラ。
【請求項７】
信号発生装置と、前記第１の複数の導体における導体の各々の別個の導体との間の動作する接続は、フィードラインを含み；及び、
前記第１のセンサパターンは前記フィードラインに隣接した分断要素をさらに含む、請求項６に記載のタッチセンシティブコントローラ。
【請求項８】
前記分断要素は、分断線、及び分断面の群から選ばれた要素である、請求項７に記載のタッチセンシティブコントローラ。
【請求項９】
信号発生器と、前記第３の複数の導体の各々の別個の導体との間の動作する接続は、フィードラインを含み；及び、
第２のセンサパターンはフィードラインに隣接した分断要素をさらに含む、請求項６に記載のタッチセンシティブコントローラ。
【請求項１０】
分断要素は分断線及び分断面の群から選ばれた要素である、請求項９に記載のタッチセンシティブコントローラ。
【請求項１１】
コントローラ本体上の第３のセンサパターンであって、
第５の複数の導体及び第６の複数の導体を含む、第３のセンサパターン；
第５の複数の導体の各々の別個の導体に動作可能にさらに接続する、信号発生装置であって、前記第５の複数の導体の各々の別個の導体の各々上に周波数直行信号を発する、信号発生装置；
付加的な複数の信号受信器であって、前記付加的な複数の信号受信器の各々は、第６の複数の導の別個の導体に動作可能に接続され、前記付加的な複数の信号受信器の各々は、動作可能に接続される導体上に存在する信号を受信するのに適し、前記付加的な複数の信号受信器は、統合期間中に、それが動作可能に接続される導体の別個の導体上に存在する信号を同時に受信することによりコントローラ本体フレームを受信するのに適する、付加的な複数の信号受信器、をさらに含み；
前記信号プロセッサは、受信したコントローラ本体フレームの少なくとも一部に基づいた、コントローラ本体に隣接した電磁気の障害を反映する第３のヒートマップを生成するのにさらに適する、請求項５に記載のタッチセンシティブコントローラ。
【請求項１２】
前記複数の信号受信器、及び前記付加的な複数の信号受信器は同じ集積回路の一部である、請求項１１に記載のタッチセンシティブコントローラ。
【請求項１３】
前記第３のセンサパターンは２層センサパターンである、請求項１１に記載のタッチセンシティブコントローラ。
【請求項１４】
前記指情報データ構造は、コントローラに対する中指；薬指；及び小指の少なくとも１つの位置を画定するのに適した情報をさらに含み、及び、
前記プロセッサは前記第３のヒートマップの少なくとも一部に基づいた前記指情報データ構造を占めるのにさらに適する、請求項１１に記載のタッチセンシティブコントローラ。
【請求項１５】
前記指情報データ構造は、コントローラに対する中指；薬指；及び小指；の位置を画定するのに適した情報をさらに含み；及び、
プロセッサは前記第３のヒートマップの少なくとも一部に基づいた中指、薬指及び小指の位置に関するデータを備えた、前記指情報データ構造を占めるのにさらに適する、請求項１１に記載のタッチセンシティブコントローラ。
【請求項１６】
信号発生装置に動作可能に接続された信号注入要素であって、
信号注入に周波数直交信号を発するのにさらに適した、信号発生装置、をさらに含む、請求項１５に記載のタッチセンシティブコントローラ。
【請求項１７】
意図されたコントローラとのユーザインタラクション中に、ユーザの手の上でコントローラ本体を保持するためにコントローラ本体に付けられたハンドストラップ、をさらに含み；及び、
前記信号注入要素は、意図されたコントローラとのユーザインタラクション中に、それをユーザの手との接触させる前記ハンドストラップに近接して位置される、請求項１６に記載のタッチセンシティブコントローラ。
【請求項１８】
補足的な信号発生装置に動作可能に接続される信号注入要素を有する補足的な信号注入システム、をさらに含み；
前記補足的な信号発生装置は、信号注入要素に周波数直交信号を発するのに適し；及び、
前記補足的な信号注入システムは、意図されたコントローラとユーザのインタラクション中に、信号注入要素がユーザの体との接触を保つことを許可するのに適する、請求項１５に記載のタッチセンシティブコントローラ。
【請求項１９】
前記補足的な信号注入は、リストバンド；時計；スマートウォッチ；携帯電話；グローブ；リング；スタイラス；ポケットサイズの物体；シートクッションまたは他のシーティングパッド；フロアマット；肘掛け；机面；ベルト；靴；及びウェアラブルのコンピューティングデバイス、から成る群から選ばれる１つの形態である、請求項１８に記載のタッチセンシティブコントローラ。
【請求項２０】
前記プロセッサは、信号注入要素に発せられる周波数直交信号の検出の少なくとも一部に基づいた、親指、人差し指、中指、薬指及び小指、の少なくとも１つの位置に関するデータを備えた前記指情報データ構造を占めるのにさらに適する、請求項１６に記載のタッチセンシティブコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０１７年３月２０日に出願された発明の名称“Ｈａｎｄ  Ｓｅｎｓｉｎｇ  Ｃｏｎｔｒｏｌｌｅｒ”である米国仮出願第６２／４７３，９０８号の利益を主張するものであり、該文献の内容は参照により本明細書に組み込まれる。
【０００２】
開示された装置及び方法は一般に、ヒューマンマシンインタフェースのコントローラの分野、特に、ホバー、把持、圧力を含むタッチに敏感なヒューマンマシンインタフェースコントローラに関する。
【背景技術】
【０００３】
近年、マルチタッチ技術が発達してきている。開発の手段は、同時直交信号スキーム（ｓｉｍｕｌｔａｎｅｏｕｓ  ｏｒｔｈｏｇｏｎａｌ  ｓｉｇｎａｌｉｎｇ  ｓｃｈｅｍｅ）を使用して、センサとの容量性インタラクションに基づいたタッチのヒートマップの産出を取り囲む。多数の特許出願が同時直列信号スキームによって駆動されるセンサを使用した相互検知に関して出願され、出願人の先の２０１３年３月１５日に出願された発明の名称“Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｖｉｃｅ”である米国特許出願第１３／８４１，４３６号、及び２０１３年１１月１日に出願された発明の名称“Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｐｏｓｔ  Ｐｒｏｃｅｓｓｉｎｇ”である米国特許出願第１４／０６９，６０９号を含むが限定されない
【０００４】
これらのシステムと方法は平面のセンサ上のマルチタッチセンシングを概して対象とする。携帯型のオブジェクトで、ユーザのタッチ、ジェスチャー及びインタラクションを理解するために情報を得ることは、無数の可能性をもたらすが、携帯型のオブジェクトは無数の形状になるので、コントローラなどの携帯型のオブジェクトに静電容量のタッチセンサを組み入れるのは難しい場合があり、センサがそれによって携帯型のオブジェクトで、ユーザのジェスチャー及び他のインタラクションに関する情報を提供することができる。
【０００５】
概して、タクセル（ｔａｘｅｌ）（あるいは行‐列の交点）データはヒートマップへ集められる。その後、これらのヒートマップはタッチ事象を特定するために後処理され、及び、タッチ事象は、ジェスチャーを含むが制限させないタッチインタラクション、及びそれらのジェスチャーが行なわれる物体を理解しようとする後続処理に流れ込む。
【０００６】
ユーザのジェスチャー及びコントローラとの他のインタラクションに関するより多くの詳細情報を提供する容量性タッチコントローラが必要とされる。
【０００７】
コントローラを用いたユーザのインタラクションのハンドモデルを提供することができる容量性タッチコントローラシステムは必要とされる。
【図面の簡単な説明】
【０００８】
本開示の前述及び他の目的、特徴、及び利点は、添付の図面で例証されるような実施形態の以下の特定の記載から明白になるであろう。図中、参照文字は図面全体にわたって同一の部品を指す。図面は必ずしも同一縮尺である必要はなく、その代わりに開示された実施形態の例証原則に重点が置かれている。
【図１Ａ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図１Ｂ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図１Ｃ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図１Ｄ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図１Ｅ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図１Ｆ】静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラの図解を示す。
【図２】ユーザの手の中のコントローラの実施形態を例示し、コントローラの親指中心部分と親指のインタラクションに基づいて検知されたヒートマップのコンピュータ化モデルを示す。
【図３Ａ】コントローラの親指中心部分に関連する使用のためのセンサパターンの例示的な実施形態を示す。
【図３Ｂ】コントローラの親指中心部分に関連する使用のためのセンサパターンの例示的な実施形態を示す。
【図３Ｃ】コントローラの親指中心部分に関連する使用のための３層センサパターンの例示的な実施形態を示す。
【図３Ｄ】コントローラの親指中心部分に関連する使用のための３層センサパターンの例示的な実施形態を示す。
【図４】コントローラのトリガー中心部分と人差し指の検知されたインタラクションに基づいた、ユーザの手の中のコントローラの例示的な実施形態及び人差し指の位置を示すコンピュータ化モデルを示す。
【図５Ａ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な実施形態を示す。
【図５Ｂ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な実施形態を示す。
【図６Ａ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な他の実施形態を示す。
【図６Ｂ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な他の実施形態を示す。
【図７Ａ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な他の実施形態を依然として示す。
【図７Ｂ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な他の実施形態を依然として示す。
【図８Ａ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な更なる実施形態を示す。
【図８Ｂ】コントローラのトリガー中心部分に関連する使用のための３層センサパターンの例示的な更なる実施形態を示す。
【図９】ユーザの手の中のコントローラの例示的な実施形態及びコントローラ本体の内の静電容量センサに基づいた手の位置を示すコンピュータ化モデルを示す。
【図１０Ａ】コントローラ本体の不規則な湾曲に続く行と列で作られたフィッシュボーンセンサパターンの実施形態の１つの視点の図解を示す。
【図１０Ｂ】コントローラの実施形態の左面を形成するために使用することができるコンポーネントを示す。
【図１０Ｃ】コントローラの実施形態の左面を形成するために使用することができるコンポーネントを示す。
【図１０Ｄ】コントローラ本体の実施形態の右面を形成するために使用することができるコンポーネントを示す。
【図１０Ｅ】コントローラ本体の実施形態の右面を形成するために使用することができるコンポーネントを示す。
【図１０Ｆ】センサパターンの二次元のトレース、及びコントローラの実施形態に関して使用される場合があるフィードラインを示す。
【図１０Ｇ】センサパターンの二次元のトレース、及びコントローラの実施形態に関して使用される場合があるフィードラインを示す。
【図１１Ａ】人差し指の位置及び動作の図解、及び人差し指の位置及び動作に関連したテンプレート及び波形を示す。
【図１１Ｂ】人差し指の位置及び動作の図解、及び人差し指の位置及び動作に関連したテンプレート及び波形を示す。
【図１１Ｃ】人差し指の位置及び動作の図解、及び人差し指の位置及び動作に関連したテンプレート及び波形を示す。
【図１２】本発明の一実施形態に従う全面的なライブラリパイプラインのブロック図を示す。
【図１３】本発明の一実施形態に従った、コールの予想される順序、及び外部スレッドとＧｅｎｅｒｉｃＭｏｄｕｌｅのスレッドとの間のインタラクションの図解を示し、ｓｔａｒｔＬｏｏｐ（）及びｌｏｏｐ（）に対するすべてのコールは成功していると仮定している。
【図１４】発明の一実施形態に従った、状態機械の図がＧｅｎｅｒｉｃＭｏｄｕｌｅに支持された状態のリストを、それらの遷移条件と同様に、示す。
【図１５】本発明の一実施形態に従った、スレッドが正常に作成された場合のＧｅｎｅｒｉｃＭｏｄｕｌｅの予想されるライフサイクルの図解を示し、及び、エラーはｓｔａｒｔＬｏｏｐ（）またはｌｏｏｐ（）中に生じない。
【図１６Ａ】本発明の実施形態におけるコールの順序を示す順番図である。
【図１６Ｂ】本発明の実施形態におけるコールの順序を示す順番図である。
【図１６Ｃ】本発明の実施形態におけるコールの順序を示す順番図である。
【図１６Ｄ】本発明の実施形態におけるコールの順序を示す順番図である。
【図１７Ａ】本発明の２つの様々な（しかし非独占的な）実施形態に従った、ＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ生成の構造を示す。
【図１７Ｂ】本発明の２つの様々な（しかし非独占的な）実施形態に従った、ＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ生成の構造を示す。
【図１８】利き手、インデックス、指及びサムパッドのためのチェックボックスを含むコントローラＵＩの実施形態を示す。
【図１９】コントローラの本体のまわりの測定されていないヒートマップを視覚化する。
【図２０】実質的にその表面を包むように把持されたコントローラの本体のまわりのヒートマップを視覚化する。
【図２１】把持されていないコントローラの本体のまわりのヒートマップを視覚化する。
【図２２】右ねじれの中に保持された、較正されたコントローラの本体のまわりのヒートマップを視覚化する。
【図２３】発明の一実施形態に従った、ライブラリの基本的なライフサイクルを示す。
【図２４】発明の一実施形態に従った、人間の手の図、及びコントローラに関連する手の一連の関節と骨格を示す。
【図２５】本発明の一実施形態に従った、図２４に例示されるような骨格データの描写を反映する一覧表である。
【図２６】ユーザの指情報を描写するために使用することができるデータ構造の実施形態を示す。
【図２７】典型的な右手のためのｓｋｅｌｅｔｏｎＰｏｓｅｓの実施形態を例示する一覧表である。
【図２８】典型的な右手のためのｓｋｅｌｅｔｏｎＰｏｓｅｓの実施形態を例示する一覧表である。
【発明を実施するための形態】
【０００９】
この出願は、高速のマルチタッチセンサなどのユーザーインタフェース、及び２０１６年８月３０日に出願された、発明の名称「Ｔｏｕｃｈ−Ｓｅｎｓｉｔｉｖｅ  Ｏｂｊｅｃｔｓ」である米国特許出願第１５／２５１，８５９号に開示された他のインタフェースに関する。その出願の全開示、及び参照によってその明細書に組み込まれた出願は、参照によって本明細書に組込まれる。
【００１０】
様々な実施形態において、本開示はハンドセンシングコントローラ、及びセンシングコントローラ（例えばハンドセンシングコントローラ、及びタッチセンシングコントローラ）を設計、製造、操作するための方法に向けされ、並びに、特定に、人間のインタラクションを感知するために静電容量センサを使用するコントローラにおける。この開示の全体にわたって、様々なコントローラ形及びセンサパターンは説明の目的に使用される。例となる構成要素及び／または幾何学的形状は、本発明を例示する目的で開示されるが、他の構成要素及び幾何学的形状は、開示の範囲及び精神から逸脱することなく、本開示の観点から、当技術分野において本明細書において当業者に明白となる。
【００１１】
この開示全体にわたり、「ホバー」、「タッチ」「タッチ（複数）」「接触」、「接触（複数）」、「圧力」、「圧力（複数）」と用語または他の記述語は、すなわちユーザの指、スタイラス、オブジェクトまたは体の一部が検知される、ヒューマンマシンインタラクションが起きる際の事象または期間について記述するために使用されてもよい。いくつかの実施形態では、及び時に一般的に単語「接触」によって表示されるように、これらの検出は、センサまたはそれが具体化される機器との身体的な接触によって結果として生じる。他の実施形態では、及び時に一般的にセンサは、タッチ表面上のある距離をホバリングしている「タッチ」、そうでなければタッチセンス装置から離れている「タッチ」の検出を可能にするように調整されうる。本明細書において使用されるように、「タッチ面」は実際の特徴を持っていても、持っていなくてもよく、全般的に特徴がまばらな面であってもよい。感知された物理接触への依存を示す本説明内の言葉の使用は、記載された技術がそれらの実施形態にのみしか適用されないことを意味するように解釈するべきではなく；実際に、一般的に、本明細書において記載されるものは、一様に「接触（ｃｏｎｔａｃｔ）」及び「ホバリングする（ｈｏｖｅｒ）」に当てはまり、が本明細書においてされているように、それら各々は、タッチ（ｔｏｕｃｈ）」である。より一般的には、本明細書において使用されるように、用語「タッチ」は、本明細書に記載される種類のセンサによって検知可能な行為を指し、したがって本明細書で使用されるように、用語「うろつく（ｈｏｖｅｒ）」は、本明細書で意図される「タッチ」の意味で「タッチ」の１種である。「圧力」は、物体の表面に対するユーザの接触（例えば、彼らの指または手を押す）によって加えられた単位面積当たりの力を指す。「圧力」の量は「接触」（すなわち「タッチ」）と同じ尺度である。タッチは、「ホバリングする（ｈｏｖｅｒ）」、「接触（ｃｏｎｔａｃｔ）」、「圧力（ｐｒｅｓｓｕｒｅ）」、または「把持（ｇｒｉｐ）」の状態を指すが、「タッチ（ｔｏｕｃｈ）」が無い状態は、センサによる正確な計測値の閾値以下の信号の変化によって一般的に特定される。よって、本明細書で使用されるように、句「タッチ事象」及び単語「タッチ」は、名詞として使用される場合、近くのタッチ、及び近くのタッチ事象、又はセンサを使用して識別され得る他のジェスチャーを含む。一実施形態に従い、タッチ事象は、非常に低いレイテンシ（例えば、約１０ミリ秒以下、又は約１ミリ秒未満）で、検出され、処理され、及び、ダウンストリームの計算プロセスに供給される場合がある。
【００１２】
本開示において、特に特許請求の範囲内において使用されるように、第１の（ｆｉｒｓｔ）、及び第２の（ｓｅｃｏｎｄ）などの順序の用語は、それら自体で、順番、時間、または一意性を示唆することは意図されず、むしろ１つの請求された構成を別のものと区別するために使用される。文脈が規定するいくつかの使用において、これらの用語は、第１の（ｆｉｒｓｔ）と第２の（ｓｅｃｏｎｄ）が一意的な物であることを示唆することもある。例えば、事象が第１の時間で発生し、別の事象が第２の時間で発生する場合には、第１の時間が第２の時間の前に発生するようには意図されてはいない。しかしながら、第２の時間が第１の時間の後であるというさらなる限定が、請求項において示される場合、その文脈は、第１の時間と第２の時間が一意的な時間となることを読み取るように要求するだろう。同様に、内容がそのように規定するか可能にする場合には、同様に、内容がそのように規定するか可能にする場合には、順序用語は広く解釈されるように意図され、従って特定された２つのクレーム解釈は、同じ特性、または異なる特性であり得る。よって、例えば、第１の及び第２の周波数は、限定されないが、同じ周波数、例えば、第１の周波数が１０Ｍｈｚであり、及び第２の周波数が１０Ｍｈｚ、である可能性があり；または異なる周波数、例えば、第１の周波数が１０Ｍｈｚであり、及び第２の周波数が１１Ｍｈｚ、である可能性もある。そうでなければ、コンテキストは、例えば、第１の及び第２の周波数が周波数において互いに対して直交であることにさらに限定する場合を規定してもよく、その場合には、それらは同じ周波数となりえない。
【００１３】
一実施形態において、開示された高速マルチタッチセンサは、タッチ事象の高い更新レート及び低いレイテンシ計測値のために強化された投影型静電容量の方法を活用する。この技術は、上記の利点を得るためにハードウェア及びより高周波数の波形を平行して使用することができる。また、感度が良くてロバストな測定を行なうための方法も開示され、該方法は、透明なディスプレイ表面上で使用されてもよく、且つ、この技術を使用する製品の安価な製造を可能にする場合もある。この点において、本明細書に使用されるような「容量式物体」は、指、人体の他の部分、スタイラス、又は、センサの感度が良い任意の物体であり得る。本明細書に開示されたセンサ及び方法は、静電容量に依存する必要はない。例えば光学センサに関して、そのような実施形態は、タッチ事象を感知するためにフォトントンネリングと光漏出を利用し、及び本明細書で使用される「静電容量」コントローラはそのような感知に適合したスタイラスまたは指などの任意の物体を含む。同様に、本明細書に使用されるような「タッチ位置」及び「タッチセンス装置」は、容量式コントローラと開示されたセンサとの間に実際のタッチ接触を必要としない。
【００１４】
本明細書に使用されるような用語「コントローラ」は、ヒューマンマシンインタフェースの機能を提供する対象物に言及するように意図される。一実施形態において、コントローラは携帯型である。一実施形態において、本明細書に記載された、感知されたタッチ入力とは別々に数えられるように、携帯型のコントローラに６自由度（例えば、上／下、左／右、前／後、傾斜、片揺れ及び回転）を与える。一実施形態において、コントローラに６自由度未満を与えてもよい。一実施形態において、概して２７自由度を持つと考えられる人間の手の運動のレプリカにおけるように、コントローラにより多くの自由度を与えてもよい。最後まで、用語「６−ＤＯＦコントローラ」は、コントローラがトラッキング可能な自由度の合計を厳密に数えるよりも、コントローラの位置と配向が空間の内でトラッキングされる実施形態を指し；すなわち、コントローラは、タッチトラッキング、ボタンプッシング、タッチパッドあるいはジョイスティック入力のような付加的な自由度に可能性があるかどうかにかかわらず「６−ＤＯＦ」と呼ばれる。さらに、例えばその回転／傾斜／片揺れではなくその３Ｄ位置がトラッキングされるコントローラ、あるいは２または１次元のみの動作がトラッキングされるがその配向は３または恐らくより少数の自由度でトラッキングされるコントローラなどの、６次元未満でトラッキングされ得るコントローラに言及するために用語６−ＤＯＦを使用する。
【００１５】
図１Ａ−１Ｆは、静電容量センサパターンを組込む典型的な６−ＤＯＦコントローラ（１００）の様々な観点の図解を表す。一実施形態において、コントローラ（１００）のトップ（１０４）または近くからコントローラ（１００）のボトム（１０６）まで延びる図２に示されるハンドストラップ（１０２）は、６−ＤＯＦコントローラ（１００）の利用を促進するために提供される。一実施形態において、コントローラ（１００）は親指中心部分（（１１０））及びトリガー中心部分（１１２）を有する。一実施形態において、コントローラ（１００）は、ユーザの手（１０５）の手のひらに概して合うように設計される。一実施形態において、コントローラ（１００）は、左または右手のいずれかで使用が可能になるように設計される。一実施形態において、特定のコントローラ（１００）は左と右手の各々で使用される。
【００１６】
静電容量センサパターンは、行と列を有していると概して見なされる。本明細書で使用されるが、しかし、用語「行」と「列」は、四方格子よりもむしろ、信号が送信される導体のセット（行）、及び、信号が繋がれ得る導体のセット（列）を指すように意図される（信号が行上で送信される、及び列自体の上で受信される概念は恣意的であり、信号は、容易に、恣意的に列と指定された導体上に送信されて、かつ恣意的に行と命名された導体上で受信されうるか、両方とも恣意的に他の何かと命名され得、更に同じ導体が送信機並びに受信機の役割を行う可能性がある。）下記でより詳細に説明されるように、行と列がグリッドを形成する必要はなく；行列交点に隣接したタッチが行と列の間に結合することを増加するか減少する限り、多くの形状があり得る。
【００１７】
多数の静電容量センサパターンは以前提案された、例えば、２０１６年４月１４日に申請された発明の名称「Ｃａｐａｃｉｔｉｖｅ  Ｓｅｎｓｏｒ  Ｐａｔｔｅｒｎｓ」である出願人の先の米国特許出願第１５／０９９，１７９号、その出願の全開示、及び参照によってその明細書に組込まれた出願を参照とし、参照によって本明細書に組込まれる。一実施形態において、図１Ａ−１Ｆで示されるコントローラ（１００）は複数の静電容量センサパターンを含む。一実施形態において、２つもしくはそれ以上のセンサパターンは一つのコントローラで用いられる可能性がある。一実施形態において、３つのセンサパターンが一つの携帯型のコントローラ（１００）で用いられる。示されるような実施形態において、１つのセンサパターンは親指中心の検出のために用いられ、他のセンサパターンはトリガー中心の検出のために用いられ、そして他のセンサパターンはコントローラの本体のまわりの他の場所で検出のために用いられる。
【００１８】
すべてまたはセンサパターンのいかなる組み合わせのための送信器及び受信器は、必要とされる信号を送受信することができる単一の集積回路に動作可能に接続される場合がある。一実施形態において、集積回路の容量（つまり、送信の数、及び受信チャネル）、及びセンサパターンの要求（つまり、送信の数、及び受信チャネル）が許可する場合には、コントローラ上の多数のセンサパターンのすべてのための送信器及び受信器はすべて、共通集積回路によって操作される。一実施形態において、共通集積回路を備えるコントローラ上の多数のセンサパターンのすべてのための送信器及び受信器をすべて操作することは、多数の集積回路を使用するより効率的である場合がある。
【００１９】
一実施形態において、親指中心のセンサは、コントローラ（１００）が保持されると、親指（１０３）の最も近くの比較的平らな面上に配置される。タクセル密度（すなわちセンサパターン上の行列交点の密度）は、センサパターンからセンサパターンまで変化する場合がある。一実施形態において、センサパターンは、３．５ｍｍと７ｍｍの間などの比較的高いタクセル密度と親指中心のエリアのために選択される。一実施形態において、親指中心のエリアは、正確に親指（１０３）をモデル化するために検知データが使用されることを可能にする適合度を十分に向上させるため、５ｍｍのタクセル密度が提供される。一実施形態において、親指中心のエリアは、より一層適合度を向上させるために３．５ｍｍのタクセル密度が提供される。
【００２０】
タクセル密度の選択に加えて、センサパターンは、接触に対立するように、その遠くの、近くの、あるいは中間のホバーを検知する能力を基に、選択される場合がある。一実施形態において、親指中心のセンサのためのセンサパターンは、３ｍｍから１０ｍｍの間までホバーを検知するために選択される。一実施形態において、親指中心のセンサのためのセンサパターンは、少なくとも３ｍｍまでホバーを検知するために選択される。一実施形態において、親指中心のセンサのためのセンサパターンは、少なくとも４ｍｍの間までホバーを検知するために選択される。一実施形態において、親指中心のセンサのためのセンサパターンは、少なくとも５ｍｍの間までホバーを検知するために選択される。一実施形態において、親指中心のセンサのためのセンサパターンは、正確に意図したユーザの集団の親指（１０３）をモデル化するために、検知データを使用することを十分可能にする距離まで、ホバーを検知するように選択される。
【００２１】
図２に簡潔に戻ると、ユーザの手（１０５）の中のコントローラ（１００）が示され、コントローラ（１００）の親指中心部分（１１０）と親指（１０３）のインタラクションに基づいて検知された、ヒートマップのコンピュータ化モデル（２００）も同様である。ヒートマップは、更に検知されたタッチとエリアを反映する赤、及びあまり検知されなかったタッチとエリアを反映する青によって、虹のようなスペクトルに渡ったタッチのエリアを図示する。ヒートマップは、また便宜的に検知されたタッチの量に一致するタッチ面から距離をおいてタッチ表示色層を位置付け、−−一層の検知はコンピュータ反映モデル内のセンサから距離を置く赤を結果としてもたらす。図２に図示されるように、ユーザの手の親指（１０３）が、親指中心部分（１１０）上の親指中心センサパターンに接するか、あるいはほぼ接する。
【００２２】
一実施形態において、親指中心センサパターンは行と列のグリッドから構成される。一実施形態において、親指中心センサパターンの行列配向はある角度で配置され、それによってそれがコントローラ（１００）上で配向されるように、行と列が親指中心センサパターンの面に対角線上に延びる。一実施形態において、行及び親指中心センサパターンの列は、およそ３０度のコントローラ（１００）上のそれぞれの配向に対してある角度で配置される。一実施形態において、行及び親指中心センサパターンの列は、およそ６０度のコントローラ（１００）上のそれぞれの配向に対してある角度で配置される。一実施形態において、親指中心センサパターンは３層で作られており、コントローラ（１００）の親指中心部分（１１０）に対して概して対角線上に延びる受信器の二層、並びに受信器の二層上、下、または間で作動する送信器の第３の層を含み、及びコントローラ（１００）の親指中心部分（１１０）に対してほぼ水平またはほぼ垂直に配向される。
【００２３】
図３Ａ−３Ｄに戻ると、３つのセンサパターンが説明的に示され、親指中心センサパターンとして用いられる場合がある。これらの特定の例が許容可能な結果を与えると既に発見されている一方、この開示の範囲と精神の範囲内であり、本発明に関して親指中心センサパターンとして他のセンサパターンを使用する。多くの他のセンサパターンは、この開示の点から見て親指中心センサパターンとして使用において当業者に明白である。
【００２４】
図３Ａで示されるセンサパターンは適当に働き、行及び列（例えば送信アンテナと受信アンテナ）はソリッドと破線で示される。図３Ｂで示されるセンサパターンは更に、ソリッドと破線で列及びカラムを示す。図３Ｂにおいてセンサパターンは、フィードラインの近くに延びるラインを分断することをさらに含む。図３Ｃ及び３Ｄは、３層センサの層を示し、図３Ｄのソリッド及び破線の各々はセンサの層を描写し、及び図３Ｄの破線は他の層を描写する。一実施形態において、図３Ｃのソリッド及び破線はすべて、列（例えば受信アンテナ）として使用され、及び、図３Ｄの破線は送信器として使用される。一実施形態において、３層センサは、本明細書に説明されるように、コントローラの親指中心センサパターンの目的で高品質な画像化を提供する。図３Ｃのセンサパターンは、フィードラインの近くに延びる、より広い分断ライン（それらを分断平面と指称する場合がある）をさらに含む。図３Ｃの部分的な詳細も明確性に対して提供される（図３Ｅ参照）。
【００２５】
指をフィードラインに接近するなどの静電容量性のオブジェクトとして、スミアリングが生じる場合がある。一実施形態において、スミアリングを緩和するために、（例えば親指中心センサパターンエリアを拡大させることによって）フィードラインをさらに離れた位置へ移動することができる。一実施形態において、スミアリングを緩和するために、フィードラインを表面から遠ざけて物体へと向けることができる。これらの各々は当業者に明白な欠点を有する。一実施形態において、スミアリングを緩和するために、図３Ｂで示されるような分断ラインあるいは図３Ｃで示されるような広い分断平面が付加される場合がある。
【００２６】
図４に戻ると、ユーザの手の中のコントローラ（１００）は、コントローラ（１００）のトリガー中心部分（１１２）と人差し指（１０７）の検知されたインタラクションに基づいて手の位置、及び特に人差し指の位置を示すコンピュータ化モデル（２００）であるように示される。図４に図示されるように、ユーザの手（１０５）の人差し指（１０７）もトリガー中心部分のセンサパターンに接するか、あるいはほぼ接し、したがって、手（１０５）のコンピューターモデル（２００）は、コンピューターディスプレイ上の同様の固定された位置を示す。
【００２７】
一実施形態において、独立センサパターンはトリガー中心部分センサに対して使用される。一般に、トリガー式入力は他のタッチに関連した入力よりはるかに簡単である。一実施形態において、人差し指（１０７）はコントローラ（１１０）に対して比較的、自由度を制限している。それに応じて、一実施形態において、トリガーセンサは、コントローラ（１１０）のトリガー中心部分（１１２）に対する人差し指（１１０）の関係について解釈するために１つのタクセルのみを必要とする。トリガー中心部分センサパターンに対する比較的長いホバー距離（例えば３．５ｃｍ以内、あるいは５ｃｍ以内、あるいは７ｃｍ以内、あるいは１０ｃｍ以内）を提供することが望ましいので、一実施形態において、トリガー中心部分センサパターンは、コントローラ（１００）のトリガー中心部分（１１２）の表面へ概して（内側または外側に）垂直に延びるアンテナから構成される場合がある。
【００２８】
タッチ表面へ概して垂直に延びるアンテナを使用するセンサパターンを用いる静電容量センサパターンは以前提案された、例えば、２０１６年７月２９日に申請された発明の名称「Ｈｏｖｅｒ−Ｓｅｎｓｉｔｉｖｅ  Ｔｏｕｃｈｐａｄ」である出願人の先の米国特許出願第１５／２２４，２２６号、その出願の全開示、及び参照によってその明細書に組込まれた出願を参照とし、参照によって本明細書に組込まれる。一実施形態において、トリガー中心部分センサパターンは１つの送信アンテナ及び１つの受信アンテナから構成される。一実施形態において、トリガー中心部分センサパターンは１つの送信アンテナ及び２つ以上受信アンテナから構成される。
【００２９】
実際、人差し指（１０７）の自由度は単一タクセルの解像度以上を必要とする場合がある。それに応じて、一実施形態において、トリガー中心部分センサパターンは上記より複雑なセンサパターンから構成される。一実施形態において、行と列のグリッドが用いられる。一実施形態において、トリガー中心部分センサパターンは、受信器のためのダイヤモンド配置正方形の側面、及び中央送信器（図示せず）を使用して作成される。一実施形態において、トリガー中心部分センサパターンは、受信器のための円配置正方形の四分区間、及び中央送信器（図示せず）を使用して作成される。一実施形態において、先の場合のどちらかで、上述され上で示されるように、スミアリングは分断ラインまたは広い分断平面を付加することで緩和される場合がある。
【００３０】
一実施形態において、トリガー中心部分センサパターンは親指中心センサパターンと異なる。一実施形態において、トリガー中心部分センサパターンは、コントローラ（１１０）の本体の少なくとも一部上で使用されるセンサパターンと異なる。
【００３１】
図５Ａ−８Ｂに戻ると、例示の３層トリガー中心部分センサパターンが示される。一実施形態において、図５Ａに示されるように、２つの受信層は、概ねグリッドのようなレイアウトで、不規則な（すなわち真っ直ぐでない）導体線（５０１、５０２）から構成される。図２において、送信層は、トリガー中心部分センサパターンに対して概ね垂直に延びる並列導体（５０３）から構成される。一実施形態において、図６Ａに示されるように、２つの受信層は、概ねグリッドのようなレイアウトで、不規則な（すなわち真っ直ぐでない）導体線（６０１、６０２）から構成される。図６Ｂにおいて、送信層は、トリガー中心部分センサパターンに対してほぼ垂直に延びる並列導体（６０３）から構成される。上述されるように、実施形態の各場合において、スミアリングは分断ラインまたは広い分断平面を付加することで緩和される場合がある。
【００３２】
一実施形態において、図７Ａにおいて、２つの受信層は、概ねグリッドのようなレイアウトで、不規則な（すなわち真っ直ぐでない）導体線（７０１、７０２）から構成される。図７Ｂにおいて、送信層もまた不規則な導体（７０３）から構成され、これはトリガー中心部分センサパターンに垂直にわたってではなく、概ね並列で、水平に延びる。一実施形態において、上述され上で示されるように、スミアリングを分断ラインまたは広い分断平面を付加することで緩和することできる場合がある。
【００３３】
一実施形態において、図８Ａでは、２つの受信層は、概ねダイヤモンドのようなレイアウトで、不規則な（すなわち真っ直ぐでない）導体線（８０１、８０２）から構成される。図８Ｂでは、送信層は導体（８０３）から構成され、これはほぼ並列かまたはトリガー中心部分センサパターンに水平にわたって延びる。一実施形態において、上述され上で示されるように、スミアリングを分断ラインまたは広い分断平面を付加することで緩和することできる場合がある。一実施形態において、周波数直交周波数（ｆｒｅｑｕｅｎｃｙ−ｏｒｔｈｏｇｏｎａｌ  ｆｒｅｑｕｅｎｃｙ）は送信層の導体（８０３）の各々上に送信される。各層上の対角線の導体線（８０１）及び（８０２）の各々は、特有の受信器へ接続される。一実施形態において、２つのヒートマップが作り出され、１つは対角線受信器及び送信器の１組間のインタラクションに対応し、及びもう一方は、対角線受信器及び送信器の他方の１組に対応する。一実施形態において、２つのヒートマップはともに渦巻き状にされる場合がある。一実施形態において、２つのヒートマップを渦巻き状にすることは、解像度を高める。一実施形態において、２つのヒートマップを渦巻き状にすることは、信号対雑音特性を向上させる。一実施形態において、２つのヒートマップを渦巻き状にすることは、感知された動作に対して適合度を高める。
【００３４】
一実施形態において、トリガー中心センサパターンの行列配向はある角度で配置され、それによってそれがコントローラ（１００）上で配向されるように、行と列がトリガー中心センサパターンの面に対角線上に延びる。一実施形態において、行及びトリガー中心センサパターンの列は、およそ３０度のコントローラ（１００）上のそれぞれの配向に対してある角度で配置される。一実施形態において、行及びトリガー中心センサパターンの列は、およそ６０度のコントローラ（１００）上のそれぞれの配向に対してある角度で配置される。一実施形態において、トリガー中心センサパターンは３層で作られており、コントローラ（１００）のトリガー中心部分（１１０）に対して概して対角線上に延びる受信器の二層、並びに受信器の二層上、下にまたは間で作動する送信器の第３の層を含み、及びコントローラ（１００）のトリガー中心部分（１１０）に対してほぼ水平またはほぼ垂直に配向される。
【００３５】
一実施形態において、送信器上に送信される周波数に対する各周波数直交である１つ以上の周波数がユーザの体に適用される。一実施形態において、送信器上に送信される周波数に直交である周波数が、ユーザの体に適用される。一実施形態において、ユーザの体に適用された周波数は、コントローラ上の１つ以上の接触から（図示せず）手のひらまたはユーザの手の後部まで適用されてもよい。一実施形態において、第３のヒートマップは印加周波数を分解して作り出すことができる。実験の試験において、印加周波数データのため感知されたデータは、物質的に形作られ、並びに容易に判別可能なピークを明らかにし、上記のような、印加周波数がないタッチを結果として生じる。一実施形態において、印加周波数のためのセンサデータはセンサから比較的長い範囲（例えば２ｃｍ以上）で接近測定のために使用される。一実施形態において、印加周波数のためのセンサデータはセンサから比較的短い範囲（例えば１ｃｍ以上）で位置測定のために使用される。一実施形態において、印加周波数データは、送信器上並びに互いの上で送信される周波数に対して周波数直交である２つ以上の周波数を結果として生じる場合がある。一実施形態において、２つ以上の印加周波数データは、コントローラ上の１つ以上の接触から（図示せず）ユーザの手のひらまたはユーザの手の後部まで適用されてもよい。一実施形態において、２つ以上の印加周波数データの各々は、同じ接触あるいはコントローラ上の接触（図示せず）からユーザの手のひらまたはユーザの手の後部まで適用されてもよい。一実施形態において、２つ以上の印加周波数データの各々は、異なる接触あるいはコントローラ上の接触（図示せず）からユーザの手のひらまたはユーザの手の後部まで適用されてもよい。一実施形態において、２つ以上の印加周波数データの各々は、異なる接触あるいはコントローラ上の接触（図示せず）からユーザの手のひらまたはユーザの手の後部まで適用されてもよく、及び、接触は信号間の分化を結果として生じるように、物理的な場所に一定間隔で配置される。
【００３６】
図９に戻ると、ユーザの手（１０５）の中のコントローラ（１００）は、コントローラ本体（１１４）中の静電容量センサに基づいた手の位置を示すコンピュータ化モデルであるように示される。図９はさらに、ユーザのもう一方の手からの人差し指の位置及び圧力を示す、グラフ式に表示されたヒートマップを示めす。図９に図示されるように、ユーザのもう一方の手の人差し指（１０７）は人体センサパターンと実質的に接触している。
【００３７】
一実施形態において、独立パターンは人体センサパターンのために使用される。トリガー中心部分及び親指中心センサパターンと異なり、一実施形態において、人体センサパターンは三次元で不規則及び／または複雑な湾曲で使用されてもよい。一実施形態において、これは、本明細書に説明されるような、適切なセンサ設計及び特定のソフトウェア及び数学的な考察の両方を必要とする。
【００３８】
図１０Ａはコントローラ（１００）の不規則な湾曲に続く行と列で作られたフィッシュボーンセンサパターンの実施形態の１つの視点の図解を示す。図１０Ｂ及び１０Ｃは、本体部分（１１４）の左面を形成するために使用することができる２つの構成要素の実施形態を示す。図１０Ｄ及び１０Ｅは、本体部分（１１４）の右面を形成するために使用することができる２つの構成要素の実施形態を示す。図１０Ｆ及び１０Ｇは、図１０Ｄ及び１０Ｅに示される本体部分（１１４）の右面の構成要素に関して使用され得る、センサパターンとフィードラインの二次元のトレースを示す。図１０Ｇは更に、コントローラ（１００）上の親指中心センサパターンの受信側面に関して使用され得るセンサパターンの二次元のトレース及びフィードラインを示す（例えば図１参照）。
【００３９】
図１０Ｂ−Ｅは、その部分の内部（例えば凹面）側面上のアンテナのために提供された機械的なトラフ（例えば空間）を示す。図で１０Ｃ及び１０Ｅ示される部分は、図１０Ｂ及び１０Ｄで示される部分の内表面内に適当である。一実施形態において、一旦アンテナが取り付けられたならば、図１０Ｂ／Ｃの組み合わせ及び図１０Ｄ／Ｅの組み合わせは、本体部分（１１４）の半分及び本明細書に記載されたコントローラ（１００）に関して感知するためのセンサパターンを形成する。本体部分（１１４）の二等分は本体部分（１１４）を形成するように、ともに取り付けられてもよい。一実施形態において、上で説明したように、独立した親指中心とトリガー中心部分センサパターンが用いられてもよく、並びに本体部分（１１４）に支持されてもよい。
【００４０】
一実施形態において、あらゆる幾何学的形状は、センサを他の行列交差と同じ数に近づけて配置することにより適合される。したがって一実施形態において、交差のレベルと数は、ある程度まで等しくなければならない。
【００４１】
一実施形態において、本体部分（１１４）の左半分及び本体部分（１１４）の右半分は送信アンテナを共有する。一実施形態において、本体部分（１１４）の左半分及び本体部分（１１４）の右半分は受信アンテナを共有する。したがって、一実施形態において、左側アンテナ上で送信された周波数はまた、右側アンテナ上で送信され、その逆もまた然りである。同様に、実施形態において、本体部分（１１４）の各半分上の受信アンテナは、１つの受信器に関連する場合がある。したがって、実施形態において、コントローラ（１００）の本体部分（１１４）の左半分にある各送信器アンテナは、コントローラ（１００）の本体部分（１１４）の右半分にある送信器アンテナと共通の周波数を共有し、コントローラ（１００）の本体部分（１１４）の左半分にある各受信アンテナは、コントローラ（１００）の本体部分（１１４）の右半分にある受信アンテナと伝導的に結合される。このように、少数の送信器及び受信器はコントローラ（１００）を操作するために使用される場合がある。
【００４２】
一実施形態において、本体部分（１１４）の左半分及び本体部分（１１４）の右半分は送信アンテナを共有しない。一実施形態において、本体部分（１１４）の左半分及び本体部分（１１４）の右半分は受信アンテナを共有しない。したがって、実施形態において、左側アンテナ上で送信された周波数はまた、右側アンテナ上で送信されず、その逆もまた然りである。同様に、実施形態において、本体部分（１１４）の各半分上の各受信アンテナは、１つの受信器に関連する場合がある。したがって、実施形態において、本体部分（１１４）の各半分上の各受信アンテナは、それ自身の受信器と関連し、及び、本体部分（１１４）の各半分上の各送信アンテナは、それ自身の送信器及びそれ自身の特有の直交周波数と関連する。したがって、実施形態において、本体部分（１１４）の半分の各センサはスルーボディークロストーク（ｔｈｒｕ−ｂｏｄｙ  ｃｒｏｓｓｔａｌｋ）を検知する場合がある。一実施形態において、そのようなスルーボディークロストークにより、本体部分（１１４）の２分の１の上の受信器は、本体部分（１１４）のもう一方の半分上の送信器上で送信された信号を受信する場合がある。一実施形態において、本体部分（１１４）の各半分上の受信器は、信号が本体部分（１１４）のそれ自身の半分上で送信された信号を検知するのに適合するとこに加えて、本体部分（１１４）のもう一方の半分上で送信された信号を検知するように適合される。
【００４３】
タクセル
本明細書で使用されるように、タクセルは、１つのＦＭＴ  ｌｏｇｉｃａｌ  ｔｒａｎｓｍｉｔｔｅｒと１つの  ＦＭＴ  ｌｏｇｉｃａｌ  ｒｅｃｅｉｖｅｒと間のクロストークの局所的なエリアである。一実施形態において、多数の導体素子は１つの論理的な受信器（ｌｏｇｉｃａｌ  ｒｅｃｅｉｖｅｒ）または送信器に接続されてもよい。多数の導体素子が用いられる場合でさえ、インタラクションは常に１つの論理的な送信器または受信器のみを提供する。さらに、多数の論理素子が共通の導体素子に接続される場合、電圧を合計する物理の法則によって、構造は、ＴＸ／ＲＸペアの順列がそれぞれ個々で独立したかのように、論理的に縮小されるだろう。
【００４４】
一般に、タクセルは、アンテナパターンを備えたアンテナに対し同様に作用する。一実施形態において、タッチオブジェクトは、タクセル及びその３次元のタッチレスポンスに関するタッチオブジェクトの位置ベクトル（Ｘ、Ｙ、Ｚ）と同等なベースライン（非タッチ）レスポンスで障害を引き起こす。一実施形態において、１つ以上の中心（例えばアンテナパターンの２つ以上の中心）から反応するタクセルは、固有の混同のために典型的に選択されず、これは、２つのタッチオブジェクトとして、２つの別の位置ベクトルで同じ信号障害を引き起こす場合がある。
【００４５】
タクセルの画定で使用されるようなクロストークについての概念を明らかにする必要がある。所与のＲＸ／ＴＸペア間の故意でないクロストークは、有害な作用を引き起こす場合がある。例えば、故意でないクロストークは単一でない局所的なエリアを結果として生じ得、及び、障害位置ベクトル計算（ｄｉｓｔｕｒｂａｎｃｅ  ｐｏｓｉｔｉｏｎ  ｖｅｃｔｏｒ  ｃａｌｃｕｌａｔｉｏｎ）へと混同を招くことが全く望ましくない。同様に、所与の出願で使用されている複数のＲＸチャネルにわたる不同か相違する時間ドメインの応答は、選択されたＲＸインピーダンス、ＲＸゲイン、時間ドメインフィルタリング及び用いられた等化スキームに対して、時間ドメインの中の有害な交換を招く場合がある。したがって、本明細書に使用されるようなクロストークは、エレクトロニクス文献の中で概して引用される典型的な有害な作用ではなく、望ましく且つ測定可能な作用を指す。したがって、本体送信クロストーク（ｂｏｄｙ−ｔｒａｎｓｍｉｔｔｅｄ  ｃｒｏｓｓｔａｌｋ）を指す場合、本出願は、例えば、第１の位置からそれが感知し得る他の位置まで、体（例えば手）によって運ばれる送信器からの信号を指している。したがって、例えば、人差し指（１０７）は、特有の直交周波数を送信するトリガー中心部分センサパターンに接してもよく、及び、その特有の直交周波数は受信アンテナへ、それから親指中心センサパターン上の受信器と導かれる場合があり、手（１０５）によって導かれたこの信号はクロストークと指称されるだろう。
【００４６】
他の実施形態において、信号Ａが導体Ｘ上にあり、及び、信号Ｂが導体Ｙ上にあり、及び、導体Ｘ並びに導体Ｙが互いに近接している場合、信号Ａのある部分が導体Ｙ上に現われる場合がある。より従来の用語において、クロストーク「アグレッサ」は信号Ａであり、クロストーク「ビクティム」は信号Ｂである。所望されないものとして、クロストークの従来の観点と異なり、重要な情報は新規のＦＭＴオブジェクト感知方法及び本明細書に開示され記載される装置でのクロストークに由来する場合があることは、本開示の点から見て当業者に対して明白である。
【００４７】
一実施形態において、タクセル構成要素は２つの主要な部分を含む：タッチオブジェクト（あるいは導入された周波数）に対して反応的でない部分Ａ；及び、タッチオブジェクトに対して反応的である部分Ｂ。所与のタクセルのための所与の周波数のクロストークの合計は、Ａ＋Ｂである。一実施形態において、Ａ：Ｂの比及びＡ＋Ｂのマグニチュードの合計のどちらも、ＦＭＴを使用するセンサパターンに由来したデータを理解するのに重要である。
【００４８】
一実施形態において、各タクセルクロストーク（Ａ＋Ｂ）を時間ドメインにおける他のタクセルクロストークごとと合計すると、Ｚドメインにおいて最終的にサンプリングされ、且つその構成周波数及び周波数ドメインのマグニチュードへ分離可能である複雑な時間ドメイン波形を結果としてもたらす。一実施形態において、この複雑な時間ドメイン波形のＶｐｐ（電圧ピークからピークまで）は、ＡＤＣ（アナログディジタル変換器）入力の限度を越えない。そのため、一実施形態において、システム設計（センサ設計を含む）はＡＤＣ入力でＶｐｐを最適化することを含む。一実施形態において、タクセルＡ＋Ｂ、所与の受信器上のタクセルの数及び故意でないクロストークが、この時間ドメイン波形のＶｐｐを占める。
【００４９】
それにもかかわらず、Ａはタッチオブジェクトに対して無反応であり、よって、それは高い信号対雑音設計に直接寄与せず、適切なセンサの設計は、ＡとＢの両方を考慮することが要求される。例えば、高Ａ比センサは、外部雑音の注入、システム雑音及び故意でないクロストークに影響されにくい場合がある。及び例えば、高Ｂ比センサは、両方とも近い接触をしている並びに更に離れているタッチオブジェクトに対して、より大きな測定可能な反応を有している場合があり、及び信号注入及びクロスカップリング能力が更に高い場合がある。したがって、実施形態において、この開示の点から見て当業者に対して明白であるように、所与の出願及び所望のセンサ応答については、ＡとＢの両方は、所望の結果を達成するために選択的に設計されるべきである。
【００５０】
例えば図１Ａ−１Ｆ、３Ａ−３Ｄ及び１０Ａ−１０Ｇにおいて、示されたヒューマンマシンインタフェースコントローラ（１００）の一実施形態の設計において、１つの設計の目標は、高いホバー感度を有するコントローラ本体部分（１１４）を提供することだった。一実施形態において、個々の幅導電性フィラメントは、複雑な湾曲面に切断された機械的なトラフに配置され、コントローラ本体部分（１１４）の起点に対するＸ、Ｙ、Ｚスペース中の各タクセルの正確な配置を提供する。したがって、コントローラ本体部分（１１４）中のタクセルは機械的設計で画定定点での特有のＴＸ／ＲＸ交差から結果として生じる。
【００５１】
２次元センサ（例えばタッチパネル）のため、シミュレーション、経験的な測定または他の方法によって、補間曲線をセンサのために計算することができる。補間曲線は、タクセルでのＦＭＴ信号障害（ｔｉｘｅｌ）とそのタクセルからのタッチオブジェクトの距離との間の数学的関係がある。この補間方程式は、タッチオブジェクトのＸＹ位置の計算を可能にする。一実施形態において、補間方程式は多数のタクセルからのデータにわたって使用され、及び、タッチオブジェクトが単一のタクセル上に直接存在しない場合でさえ、タッチの位置を特定することができる。
【００５２】
一実施形態において、センサパターンが非平面の場合には、タクセル位置はＸＹＺで表わされなければならず、及び、ＸＹＺの補間曲線と同様に、所与のタクセルの分類に対するＸＹＺの位置を計算するために、タクセルに垂直なベクトルが提供され且つ使用される場合がある。したがって、一実施形態において、各行列交差は再構成のための三次元タクセルを表わし、コントローラ（１００）の表面に垂直方向でスペース中への三次元マッピングを備える。言い換えると、タクセルフィールド方向（ｔａｘｅｌ  ｆｉｅｌｄ  ｄｉｒｅｃｔｉｏｎ）はコントローラ（１００）の表面に垂直に投影され、それは立体の中へ再配置される。したがって、実施形態において、三次元空間ヒートマップが構築され、及び、タクセルの配向に関する情報とともにタクセルデータはヒートマップを占めるように使用される。
【００５３】
したがって、実施形態において、例えば図１０Ａで描写されるようなコントローラ（１００）の本体部分（１１４）のためのフィッシュボーンセンサの使用は、Ａ＋Ｂは主に高Ｂ比に有利に動かされた。一実施形態において、高Ｂ比に有利にＡ＋Ｂを中へ移動させることは、本体部分（１１４）の表面から離れている信号検出性能を延ばす場合がある。一実施形態において、高Ｂ比に有利にＡ＋Ｂを中へ移動させることは、ＴＸとＲＸ層の間の離層を拡大することにより遂行される場合がある。一実施形態において、ＴＸとＲＸの層の間の離層は少なくとも５００ミクロンである。一実施形態において、ＴＸとＲＸの層の間の離層は１０００ミクロンである。一実施形態において、ＴＸ導体及びＲＸ導体の間の距離が拡大すると、ＡはＢより速く減少する。したがって、実施形態において、ＴＸとＲＸ層の間の離層の拡大は、Ａ＋Ｂの減少を結果としてもたらすが、Ａに対するＢの比率は増加する。一実施形態において、Ａ＋Ｂの減少は、ＡＤＣの限度を超過せずにＴＸＶｐｐの増加を可能にした。したがって、実施形態において、少なくとも１８ＶｐｐのＴＸ電圧が用いられた。一実施形態において、２４ＶｐｐのＴＸ電圧が用いられた。
【００５４】
ハンドトラッキングを支持する周波数注入
一実施形態において、周波数注入に支持される場合、ＦＭＴ静電容量センサハンドトラッキングを改善することができる。ＦＭＴ静電容量センサの記述については、出願人の先の出願である、２０１３年３月１５日に提出され、「Ｌｏｗ−Ｌａｔｅｎｃｙ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｄｅｖｉｃｅ」と題された米国特許出願第１３／８４１，４３６号明細書、及び２０１３年１１月１日に提出され、「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｐｏｓｔ  Ｐｒｏｃｅｓｓｉｎｇ」と題された米国特許出願第１４／０６９，６０９号明細書を概して参照する。周波数注入は、ユーザの体に対する周波数または多数の周波数の適用を指し、及び、したがって、ＦＭＴ静電容量センサ上へのその周波数の導体としてユーザの体を使用する。一実施形態において、導入周波数は、ＦＭＴ静電容量センサ送信器上で送信される周波数に対する直交周波数である。一実施形態において、複数の導入周波数は両方とも互いに直交する周波数であり、及びＦＭＴ静電容量センサ送信器上で送信される周波数に直交の周波数である。
【００５５】
一般に、行が周波数送話器として働き、列が周波数受信器として働く場合に、ＦＭＴはセンサパターンを用いる。（上に説明されるように、行及び列の表示は任意であり、例えばグリッドのような構造か、ほぼ直線の形状のどちらかのように指定するようには意図されない）。一実施形態において、ＦＭＴと周波数注入を組み合わせる場合、導入周波数または周波数を待つために、列は受信器として付加的に使用される。一実施形態において、ＦＭＴと周波数注入を組み合わせる場合、導入周波数または周波数を待つために、行または列は受信器として付加的に使用される。
【００５６】
一実施形態において、既知の周波数あるいは既知の周波数は、１つ以上の独立した送信器を使用して、例えば、ユーザの手に送達される。一実施形態において、独立した送信器は各リストバンド、ハンドストラップ、シーティングパッド、肘掛け、またはユーザと接触するあらゆる他のオブジェクトに関連する。一実施形態において、コントローラ（１００）はコントローラ（１００）の本体部分（１１４）の１つ以上の部分上に１つ以上の独立した送信器を配備し、コントローラ（１００）が使用されている場合、コントローラはユーザの手に通常は接している。一実施形態において、ハンドストラップを有するコントローラ（１００）は、ハンドストラップ（１０２）上に１つ以上の独立した送信器を配備し、コントローラ（１００）が使用されている場合、コントローラはユーザの手に通常は接している。
【００５７】
一実施形態において、導入された既知の周波数と共に、ＦＭＴは、既知の周波数または各受信器での既知の周波数の強さを測定することができる。一実施形態において、導入された既知の周波数と共に、ＦＭＴは、各行及び各列に受信器と信号プロセッサを関連させることにより、各行及び各列の上の既知の周波数または既知の周波数の強さを測定することができる。一実施形態において、各行上の導入周波数または周波数のための信号強度の測定は、導入周波数を導く本体部分の位置に関する情報を提供する。
【００５８】
一実施形態において、各行及び各列上の導入周波数または周波数のための信号強度の測定は、導入周波数を導く本体部分の位置に関する詳細な情報を提供する。一実施形態において、行及び列からの位置情報は、信号強度の測定の２つ独立した一次元セットを提供する。一実施形態において、２つの一次元セットは、２Ｄヒートマップ（従来のＦＭＴ送信器／受信器ヒートマップと類似する）などの中間の表示を生成するために使用することができるディスクリプタを提供する。一実施形態において、２つの一次元セットは、センサ近くでの指の動作の再構成でよりよい適合度を有効にするために使用することができるディスクリプタを提供する。一実施形態において、検知された周波数注入信号は、ＦＭＴセンサパターンのみの範囲にわたって拡大されたホバー範囲を提供する。
【００５９】
一実施形態において、周波数注入ディスクリプタは指の１組の離散的位置に対応する信号強度の前もって画定されたプロファイルを作成するために使用される。一つの実施形態において、ディスクリプタは、指の動作に相互に関連可能なこれらのディスクリプタから意味のある情報を抽出するために、ベースラインと騒音低下技術、あるいは他の多次元の分析技術（例えば２０１３年１１月１日に出願された発明の名称「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｐｏｓｔ−Ｐｒｏｃｅｓｓｉｎｇ」である出願人の先の米国特許出願第１４／０６９，６０９号、及び２０１４年３月１７日に出願された発明の名称「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｎｏｉｓｅ  Ｒｅｄｕｃｔｉｏｎ」である米国特許出願第１４／２１６，７９１号を参照）と組み合わせられる。一つの実施形態において、ＦＭＴヒートマップ処理技術はさらにこの周波数強度信号上で使用可能である。検知された周波数注入信号から結果として生じるＦＭＴヒートマップ処理及びディスクリプタを組み合わせることによって、忠実性は改善される場合がある。
【００６０】
一つの実施形態において、手のトラッキングは、実際の手を描写するためにバーチャルハンドの階層的な骨格を基にする描写を使用して計算される。一つの実施形態において、周波数注入ディスクリプタは、連続的なリアルタイムアニメーションあるいは仮想的な手の描写を基にする階層的な骨格の他のデジタル表現へマッピングされ、それにより、実際の手の動作を模倣する。
【００６１】
実時間で、指の角度のフィードあるいは骨格の角度のフィード中への信号フィードを翻訳するために、線形あるいは非線形関数を使用することで、マッピングを達成することができるのは当業者にとって明白である。一つの実施形態において、信号強度サンプルとグラウンドトルス基準との間の相関特性を使用可能である。一つの実施形態において、グラウンドトルス基準は、例えるが限定しない、モーションキャプチャーあるいは他の視覚ベースの処理技術或いは予め定められたキャプチャーされたポーズ等の、他の技術を使用して捉えられる。
【００６２】
モデルマッピングを画定するための基礎として上述されるような、手（１０５）に適合され、且つ測定されるような信号注入の内在的性質が使用可能であることは、当業者に明白である。一つの実施形態において、１つ以上の続く生成されたデータ技術は次のマッピングに使用可能である：マニュアルまたは自動的な管理あるいは非管理トレーニング、データマイニング、分類あるいは回帰技術。一実施形態において、データ技術は手のモデリングを識別するため、したがって手をトラッキングする目的に使用可能である。上記で説明されるように、１つの実施形態において、上記で説明されるような信号注入ハードウェア及びソフトウェアは、ＦＭＴ性能と組み合わせ可能であり、同じＦＭＴセンサパターン、送信器並びに受信機を使用する。一実施形態において、上記で説明されるような信号注入ハードウェア及びソフトウェアは、ＦＭＴ性能と組み合わせ可能であり、したがって付加的な受信機を備えるＦＭＴタッチセンサシステムを補完する。一実施形態において、上記で説明されるような信号注入ハードウェア及びソフトウェアは、ＦＭＴ性能と組み合わせ可能であり、したがって付加的な注入された周波数を認識するための容量を備えるＦＭＴタッチセンサシステムを補完する。
【００６３】
タッチ並びにホバー、及び手の位置をトラッキングする周波数注入の情報の併合
一実施形態において、１つ以上の覆われたセンサが異なる情報をトラッキングするために使用される。１つの実施形態において、タッチ情報はＦＭＴを使用してトラッキングされる場合がある。例えば２０１３年１１月１日に出願された発明の名称「Ｆａｓｔ  Ｍｕｌｔｉ−Ｔｏｕｃｈ  Ｐｏｓｔ−Ｐｒｏｃｅｓｓｉｎｇ．」である出願人の先の米国特許出願第１４／０６９，６０９号を参照する。ＦＭＴの使用は、約４ｃｍまでの接触及びホバーの両方にタッチ情報を提供する。一実施形態において、周波数注入はＦＭＴに付加される。一実施形態において、１つ以上の周波数が手または手に近接する体に注入される。一実施形態において、ＦＭＴへの周波数注入の付加は、ホバーに更なる忠実性及びより多くの範囲を提供する。一実施形態において、同じセンサはＦＭＴ周波数（ａ／ｋ／ａ「内部周波数」）及び１つの付加的な注入された周波数（ａ／ｋ／ａ「外部周波数」）を読み取るために使用された。一実施形態において、同じセンサはＦＭＴ周波数（ａ／ｋ／ａ「内部周波数」）及び複数の付加的な注入された周波数（ａ／ｋ／ａ「外部周波数」）を読み取るために使用された。一実施形態において、ＦＭＴ及び周波数注入の組み合わせは、手のモデリングの範囲を４ｃｍを超えて効果的に拡大した。一実施形態において、ＦＭＴ及び周波数注入の組み合わせは、手のモデリングの範囲を５ｃｍを超えて効果的に拡大した。一実施形態において、ＦＭＴ及び周波数注入の組み合わせは、手のモデリングの範囲を６ｃｍを超えて効果的に拡大した。一実施形態において、ＦＭＴ及び周波数注入の組み合わせは、完全な屈曲、つまり手の動きの全領域、に対する手のモデリングの範囲を効果的に拡大した。
【００６４】
一実施形態において、一つのセンサ／センサパターンは周波数の情報をすべて受信可能である。一実施形態において、多数のセンサパターン（トランスミッターとレシーバーの層）は覆われる（例えば図３Ａ−３Ｄ、５Ａ、５Ｂ、８Ａ、８Ｂ、１０Ａ−１０Ｇ参照）。
【００６５】
一実施形態において、要素（例えばアンテナ）は、コントローラ（１００）の本体部分（１１４）の表面上、あるいはその表面の近くに位置され、ここでそれらはコントローラ（１００）のオペレーション中にユーザの手（１０５）と接触を保つようになる。コントローラ（１００）の操作中の手（１０５）と十分に接触している場合、信号は、センサによって検出することができる手（１０５）を通して進入し進む。送信ループは信号発生器から、にコントローラ（１００）の本体部分（１１４）上の要素まで、手（１０５）まで、ＦＭＴによって測定される受信アンテナ（例えば列）まで進む。一実施形態において、送信ループは、手（１０５）がアンテナと接触（必ずしも接しないが）中であり、且つ受信アンテナと接触（必ずしも接しないが）中である場合、と閉じられる。一実施形態において、要素（例えばアンテナ）はコントローラの操作中にユーザの手（１０５）の後部と接触を保つ可能性があるコントローラストラップ（１０２）に位置される。送信ループは上述されるように本体部分（１１４）の要素で作成され、コントローラストラップ（１０２）の要素がユーザの手（１０５）の例えば手のひらではなく、後部に触れるであろうことを除く。一実施形態において、信号注入システムは次の形状を有するあるいは部分的に有する：リストバンド；時計；スマートウォッチ；携帯電話；グローブ；リング；スタイラス；ポケットに入れられる物体；シートクッションあるいは他のシーティングパッド；フロアマット；肘掛け；デスク面；ベルト：靴；ウェアラブルのコンピューティングデバイス、あるいはコントローラ（１００）の操作中にユーザと接触する可能性が高いあらゆる他の物体。一実施形態において、送信ループは、信号ソースと受信アンテナとの間で、ユーザの体によって同様に作成される。
【００６６】
一実施形態において、信号発生器から要素までの信号の強度は、４ｃｍの範囲を超える手の検出を可能にするために十分でなければならない。一実施形態において、信号発生器から要素までの信号の強度は、５ｃｍの範囲を超える検出を可能にしなければならない。一実施形態において、信号の強度は、７ｃｍを超える検出を可能にしなければならない。一実施形態において、信号の強度は、手（１０５）の完全な屈曲の検出を可能にしなければならない。
【００６７】
人差し指の屈曲の感知
一実施形態において、人差しの指屈曲は、接近したホバー及びＦＭＴを介したコンタクトデータを使用して感知される。一実施形態において、接近したホバーとトリガー中心のセンサパターンからの接触データは、人差し指の屈曲を感知するのに使用される。
【００６８】
一実施形態において、基準枠が記憶される。一実施形態において、基準枠は、コントローラが、例えば、検知できる信号がタッチの結果として受信されない等、ストップ中の場合、センサの状態を反映する。一実施形態において、原点信号データの一つのＮｘＭフレームはベースラインとして保存される。
【００６９】
一実施形態において、ベースラインを使用して、入力フレームは、デシベル（つまり−２０．０ｆ＊ｌｏｇ１０（入力／ベースライン））に変換される。変換された入力フレームはヒートマップとして言及される。
【００７０】
一実施形態において、平均信号値が計算される。平均信号値は波形として言及される。一実施形態において、ヒートマップ中の各列Ｍについて、列の平均信号値が波形として計算される。一実施形態において、波形は各行Ｎについて計算される。一実施形態において、波形は、行と列の信号値の組み合わせから計算される。一実施形態において、波形の計算ための情報の選択はセンサパターンに左右される。
【００７１】
図１１Ａを参照すると、コントローラ（１００）が把持される場合、人差し指（１０７）はほぼ垂直である。一実施形態において、ほぼ垂直の人差し指（１０７）を表わす波形は、テンプレートとして保存される。一実施形態において、テンプレートは、テンプレートが取得された手（１０５）あるいはユーザに関連する。一実施形態において、複数のテンプレート（例えば複数の手及び／またはユーザ用、及び／または同じ手用）が、将来的な使用ために保存される。一実施形態において、多数のテンプレートは組み合わせられてもよい。テンプレートは、情報を標準化するかあるいは手（１０５）及び人差し指（１０７）についての統計データを得るために組み合わせられてもよい。
【００７２】
図１１Ｂに戻ると、１つの実施形態において、典型的な指の動き中に、入力波形をテンプレートと比較可能である。一実施形態において、標準化された平均二乗偏差（ＮＲＭＳＤ）は入力波形及びテンプレートの類似性尺度を提供するように計算される。一実施形態において、ＮＲＭＳＤは０から１の範囲である。
【００７３】
類似性手段の精度を向上させるために、１つの実施形態において、入力波形及びテンプレートは、人差し指（１０７）の個々の骨格（近位、中間、遠位）及びそれらのセンサに沿った位置に対応する３つの領域へ分割される。一実施形態において、指の各部分に１つで、３つのＮＲＭＳＤ値が計算される（ＮＲＭＳＤｐｒｏｘｉｍａｌ、ＮＲＭＳＤｍｉｄｄｌｅ、  ＮＲＭＳＤｄｉｓｔａｌ）。入力波形はテンプレートと比較可能であり；破線は、波形とテンプレートが３つのセグメントへと分割される場所を示す。
【００７４】
一実施形態において、ＮＲＭＳＤ値は、各関節で回転を計算するための重みとして使用される。例えば、
Ｒｐｒｏｘｉｍａｌ＝ＮＲＭＳＤｐｒｏｘｉｍａｌ＊Ａｎｇｌｅ＿Ｍａｘｉｍｕｍｐｒｏｘｉｍａｌ．
Ｒｍｉｄｄｌｅ＝ＮＲＭＳＤｍｉｄｄｌｅ＊Ａｎｇｌｅ＿Ｍａｘｉｍｕｍｍｉｄｄｌｅ．
Ｒｄｉｓｔａｌ＝ＮＲＭＳＤｄｉｓｔａｌ＊Ａｎｇｌｅ＿Ｍａｘｉｍｕｍｄｉｓｔａｌ．
【００７５】
図１１Ｃに戻ると、１つの実施形態において、ＮＲＭＳＤが常に正であるので、テンプレート及び入力波形の積分は、人差し指（１０７）をいつ拡大するか測定するために計算される場合がある。入力波形及びテンプレートの積分は０未満である。一実施形態において、
Ｒｐｒｏｘｉｍａｌ＝ＮＲＭＳＤｐｒｏｘｉｍａｌ＊Ａｎｇｌｅ＿Ｅｘｔｅｎｓｉｏｎｐｒｏｘｉｍａｌ．
Ｒｍｉｄｄｌｅ＝ＮＲＭＳＤｍｉｄｄｌｅ＊Ａｎｇｌｅ＿Ｅｘｔｅｎｓｉｏｎｍｉｄｄｌｅ．
Ｒｄｉｓｔａｌ＝ＮＲＭＳＤｄｉｓｔａｌ＊Ａｎｇｌｅ＿Ｅｘｔｅｎｓｉｏｎｄｉｓｔａｌ．
【００７６】
実施構造
一実施形態において、ライブラリは、コントローラ（１００）（あるいは他の装置）からのインプットがライブラリの異なるモジュラーコンポーネントによって異なる方法で処理されるように書かれるが、アウトプットは同期された方法でライブラリのクライアントに利用可能である。したがって、１つの実施形態において、データがライブラリから利用可能になる場合、各モジュールによって処理されたデータは同じインプットフレームからであるべきであり、並びに各処理モジュールは他のもののすべてと同じインプットの流れを見るべきであった。さらに、実施形態において、異なるフレームを表わすデータが考慮される。
【００７７】
図１２に戻ると、全面的なライブラリパイプラインが発明の１つの実施例に従って示される。（ｓｙｎｃ）ラベルを付けられたパイプラインのパーツは、上記の目的を完了することを保証するための同期を含む。一実施形態において、各々（ｓｙｎｃ）インタラクションは、その目標を達成するためにバッファリングオブジェクト（例えばＲＷＳｗａｐＢｕｆｆｅｒ）を使用する。
【００７８】
一実施形態において、バッファーは、１つの物体を多数のリーダがアクセス可能であり、１つのクライアントに対する書き込みアクセスを物体に与えることができ、現在使用されておらず、読み取られるのを待つ１つの物体を記憶することができる、１つの物体を保持することができる。これは、同時的な読出し書込みアクセス可能にし、データソースをストリーミングするために適切に機能する。
【００７９】
一実施形態において、どのリーダも現在より古いデータ構造を保持している間に、ライターが新しいデータを書き終えた場合（及び場合のみ）、アウトプットデータは落とされ、いかなるクライアントにも見られない。記載されているようなアウトプットデータを落とすことは、システムを介した古いデータの伝播を緩和し、低いエンドからエンドへのレイテンシを維持するのを助ける。
【００８０】
一実施形態において、ハンドラー（３０２）、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（）（３０４）及びＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）として、図１２のブロックによって表される構成要素の各々はモジュールとして施行され、各々はそれ自身のライフサイクル及びそれ自身の実行するスレッドを有する。この構造は、強固なライフサイクルに付随し、かつパイプライン内の同調を可能にするために個々のコンポーネントの設定可能な起動／分解を有効にする。一実施形態において、これらのコンポーネントの各々はＧｅｎｅｒｉｃＭｏｄｕｌｅ分類の下位分類として実行される。これは各構成要素のライフサイクルを対処するためにブループリントを作成し、各下位分類の挙動を画定するために下位分類によって実行される機能を残す。
【００８１】
ＧｅｎｅｒｉｃＭｏｄｕｌｅ中で無効にされると予想される機能、及びそれらの意図された目的は、以下のとおりである：
ｉｎｉｔ（）−世界的に入手可能なリソースを割り当て、及び実行に必要なあらゆる準備の全てを行う。
ｓｔａｒｔＬｏｏｐ（）−スレッド特有のリソースを割り当て、及びスレッドセッションを始めるために必要なあらゆる準備を行う。
ｆｉｎｉｓｈＬｏｏｐ（）−スレッド特有のリソースを解除し、及びスレッドセッションを終了するために必要なあらゆることを終了させる。
ｐｒｅＳｔｏｐ（）−スレッドに止まることを要求した後、しかし結合するべきスレッド上でブロッキングする前に、あらゆる必要なコマンド関連のセットアップを執行する。
ｐｏｓｔＳｔｏｐ（）−スレッドが結合した後に、あらゆるコマンド関連の分解を執行する。
ｌｏｏｐ（）−モジュールが止まることを要求されるまで、スレッド上で繰り返しコールされる主作業機能。
【００８２】
一実施形態において、機能、ｉｎｉｔ（）、ｓｔａｒｔＬｏｏｐ（）及びｌｏｏｐ（）は、それらの実行の間にエラーが生じてもいなくても戻ることが可能であり、エラーが生じた場合はフォルス（ｆａｌｓｅ）が戻る。ｉｎｉｔ（）へコール中でのエラーは、スレッドが始められるのを防ぎ、且つｓｔａｒｔＬｏｏｐ（）またはｌｏｏｐ（）中での失敗はスレッドを終了させる。
【００８３】
一実施形態において、ｆｉｎｉｓｈＬｏｏｐ（）はスレッドが終了するごとに遂行され、これはスレッド／セッションリソースを整理するのが目的であり、並びにスレッド状態の変化を表わし、一方ｐｒｅＳｔｏｐ（）及びｐｏｓｔＳｔｏｐ（）は中止要求に必要なあらゆる処理も扱っており、且つコマンドの始まりと終わりを表わす。
【００８４】
一実施形態において、ＧｅｎｅｒｉｃＭｏｄｕｌｅの内部デフォルト機能の施行が無効にされないならば、ｓｔａｒｔＬｏｏｐ（）、ｆｉｎｉｓｈＬｏｏｐ（）、ｐｒｅＳｔｏｐ（）及びｐｏｓｔＳｔｏｐ（）はモジュールのライフサイクルに一度のみ実行されることが保証される。
【００８５】
一実施形態において、ＧｅｎｅｒｉｃＭｏｄｕｌｅの内部の、あるいはその下位分類のうちのいずれか中での機能は、終了合図（ｍＳｔｏｐＲｅｑｕｅｓｔｅｄまたはｓｈｏｕｌｄＳｔｏｐ（））を待たずに永久にブロッキングされる場合がある。一実施形態において、ＧｅｎｅｒｉｃＭｏｄｕｌｅの下位分類によって無効にされたあらゆる機能はその親分類の機能をコールすべきであり、適切な機能性のためにつながれることが予期されるクラス階層中の付加的な実行がある場合があることによる。
【００８６】
図１３に戻ると、例証は、コール及び外部スレッドとＧｅｎｅｒｉｃＭｏｄｕｌｅのスレッドとの間のインタラクションの予期された順序を示し、ｓｔａｒｔＬｏｏｐ（）及びｌｏｏｐ（）に対するすべてのコールが成功することが予想される。図１４に簡潔に戻ると、機械の状態の図は、それらの転換状態と同様に、ＧｅｎｅｒｉｃＭｏｄｕｌｅに支持された状態のリストを示す。また、図１５に簡潔に変わると、例証は、スレッドが正常に作成され、ｓｔａｒｔＬｏｏｐ（）またはｌｏｏｐ（）中にエラーが生じない場合のＧｅｎｅｒｉｃＭｏｄｕｌｅの予想ライフサイクルを示す。
【００８７】
一実施形態において、ハンドラーは、チャネル（例えば、ソケットを通ったＵＤＰデータグラム、あるいは．ｐｃａｐフォーマットファイルからのリードパケット）からの受信データを分類し、ライブラリの他の構成要素によって消耗されるように、かつライブラリの残りの同期と消費のためにフレームデータを利用可能にするように、フレーム中へデータをフォーマットする。
【００８８】
一実施形態において、ＧｅｎｅｒｉｃＨａｎｄｌｅｒとＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）との間に渡されたフレームは、ライブラリが接続されるコントローラ（１００）で使用されるセンサのタイプに応じて異なるサイズにされてもよい。この情報は、その時に使用されているコントローラ（１００）に関する構成特有のパラメーターでテンプレート化されるフレームのためのインタフェース分類（ＩＧｅｎｅｒｉｃＦＭＴＦｒａｍｅ）を使用して抽出される場合がある。一実施形態において、ＩＧｅｎｅｒｉｃＦＭＴＦｒａｍｅ分類は、どのテンプレートパラメーターが前もって使用されていたか知る必要なしに、コントローラ（１００）に関する情報を公開する。ハンドラー分類は、アウトプットバッファーとしてフレームを扱う場合があり、及び、実施形態において、構成特有のパラメーターを提供する必要はない。
【００８９】
一実施形態において、ハンドラー分類は、コントローラ（１００）からのワイヤー上に現われるのと同じデータ順に情報を（例えばフレームに）書き出す。一実施形態において、チャネルメジャー順（ｃｈａｎｎｅｌ−ｍａｊｏｒ  ｏｒｄｅｒ）が用いられる。一実施形態において、、アウトプットバッファーは常にビンまたはチャネルメジャーである固定ビット幅（例えば３２ビットあるいは６４ビット）を提供され、及び行または列にビンとチャネルを固定可能である。
【００９０】
一実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ）（３０４）は、ＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓのアウトプットデータ及びＡＰＩクライアントの同期と同様に、ライブラリのすべてのＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）ためのハンドラーのアウトプットデータの同期を施行する。
【００９１】
一実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）は、ハンドラーからのフレームが利用可能であるまで、すべてのプロセッシングスレッド（ｐｒｏｃｅｓｓｉｎｇ  ｔｈｒｅａｄ）をブロックし、すべてのプロセッシングスレッドが現在保持するフレームを終えるまで待つ。一旦アンブロックされたならば、プロセッシングスレッドからのアウトプットデータのすべてがコミットされ、且つＡＰＩクライアントによる消費に利用可能である。その後、プロセスは繰り返され得、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）はフレームが利用可能であるまですべてのプロセッシングスレッドをブロックする。
【００９２】
一実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）はハンドラーによって所有されたモジュールである。他の実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）はライブラリのライフサイクルの間存在するモジュールである。この後者の設計の選択はより強固で、より可撓性の起動及び分解手順を可能にし得、並びにモジュールのための十分に画定されたルールを明示する。一実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）は、プロセッシングスレッドがそれら自身を付加し且つ削除することを可能にし、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）の内部でそのプロセッシング／同期状態（プロセッシングなどを待つデータ）にそのプロセッシングスレッドを関連付けるＩＤを受け取る。
【００９３】
一実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）は、ライブラリが実行される間、随意にインプットストリームから新しいフレームを受け取ることから、プロセッシングスレッドがそれら自身をレジスター（ｒｅｇｉｓｔｅｒ）し且つアンレジスター（ｕｎｒｅｇｉｓｔｅｒ）することを可能にする。このレジストレーションの許可は、ライブラリのトラッキングを続けるため、かつ物事がどのようにして相互に作用する必要があるか決定されるために必要である状態の数を拡大する場合がある。
一実施形態において、ライブラリのハンドラー及び各プロセッシングスレッドの状態を更新し続けるために、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）は、他のモジュールが、それらがいつそれらの状態を変更するか通知することを可能にするメッセージキューを含む。したがって、実施形態において、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）の内部に６ビットセットがある：
ｍＰｒｏｃＩｄＢｉｔｓｅｔ：レジスターされたプロセッシングスレッドに与えられたＩＤをトラッキングする。
ｍＰｒｏｃＥｎａｂｌｅｄＢｉｔｓｅｔ：実行中且つデータを処理する準備ができているプロセッシングスレッドをトラッキングする（ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅのメッセージキューを通り抜けた状態変化を通じた設定またはリセット）。
ｍＰｒｏｃＤａｔａＢｉｔｓｅｔ：現在処理されているフレームを処理すると期待されるプロセッシングスレッドをトラッキングする。
ｍＰｒｏｃＤａｔａＣｏｍｍｉｔＢｉｔｓｅｔ：
クライアントが利用可能になるようにコミットされる必要のあるデータを有するプロセッシングスレッドをトラッキングする。
ｍＳｔａｒｔＥｎａｂｌｅｄＢｉｔｓｅｔ：パケットとしてデータにともに受信することが期待されるプロセッシングスレッドをトラッキングする（ライブラリがスタートする場合に、すべての有効にされたプロセッシングスレッド間の第１のフレームを同期するために使用され、（初期に無効にならなかったならば、あるいは可能になるのが遅くなければ）全てのプロセッシングスレッドが同じデーターストリームを受信することを保証する）。
ｍＦｏｒｃｅＲｅｔｕｒｎＢｉｔｓｅｔ：戻ることを要求され、且ついかなるＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）機能の内部でもブロックするべきでない、あらゆるプロセッシングスレッドをトラッキングする。
【００９４】
一実施形態において、一旦プロセッシングスレッドがＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）とレジスターすれば、それが（ａｄｄＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（）を介して）レジスターされている間に、独自にそのプロセッシングスレッドを識別するＩＤを受信する。一実施形態において、いつ、プロセッシングスレッドがアンレジスターする場合（ｒｅｍｏｖｅＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（））、保証は無効にされ、及びＩＤが新しいスレッドに与えられる場合がある。同じプロセッシングスレッドが後に再び正常にレジスターする場合、それは同じ保証を持った新しいＩＤを受信する場合がある。
【００９５】
一実施形態において、全てのプロセッシングスレッドは、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅの内部状態を最新にしておくために、ＦｒａｍｅＢｕｆｆｅｒＳｔａｔｅ（３０４）のそれらのインスタンス上でｓｅｎｄＵｐｄａｔｅＭｅｓｓａｇｅ（）をコールしなければならない。これが起こらない場合、プロセッシングスレッドは新しいデータを受信しない場合があり、あるいは、それは、スレッドが既に終了している場合はスレッドがデータの処理をするのを待って、パイプラインのストールを引き起こす場合がある。
【００９６】
図１６に変わって、順番図は、本発明の実施形態におけるコールの順序を示して示される。
【００９７】
一実施形態において、ＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）の分類は、ＡＰＩのいかなるクライアントによってライブラリを介してアクセスされる、フレームのストリーム上で任意の計算を執行するように意図される。一実施形態において、ＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ分類は、コントローラからのフレームを処理するように意図されるあらゆる構成要素のためのインタフェースとして役立つ。したがって、ＧｅｎｅｒｉｃＭｏｄｕｌｅで利用可能な機能に加えて、ＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄは、処理枠データに適しているｌｏｏｐ（）に画定を提供する場合がある。一実施形態において、ｌｏｏｐ（）の実行は、各プロセッシングスレッドが以前に概説された同じデータを使用していることを保証するために必要とされるフレームの獲得及びコールのリリースを扱う。一実施形態において、ｌｏｏｐ（）実行は、ｄｏＰｒｏｃｅｓｓｉｎｇ（）である、新しいフレームデータが読み取られており、処理の準備ができている場合実行する新しい仮想関数をコール、これは特定のプロセッシングスレッドによって行われる作業の大部分が行われる場所である。一実施形態において、各分類のＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）はＧｅｎｅｒｉｃＭｏｄｕｌｅから引き継ぐべきであり、及び上に概説されたライフサイクルに従う。
【００９８】
一実施形態において、ライブラリは、それらの内部のデータにアクセスするために、必要とされるモジュールライフサイクルコールがライブラリの状態と一致するために、且つＡＰＩを通して作られたライブラリのクライアントからのいかなる要請されたコマンドにモジュールを公開するために作成されたプロセッシングスレッドの各々に対する１組のポインターを維持する。
【００９９】
一実施形態において、各プロセッシングスレッドは、クライアントがそのスレッドのアウトプットが必要か否か明示することを可能にするために、可能／不可能機能を公開するべきである。一実施形態において、公開された機能は、ライブラリによるＣＰＵ及びメモリの無用の使用を制限する場合がある。同様に、実施形態において、プロセッシングスレッドが公開するいかなるオプション機能（例えばＦｉｎｇｅｒＩｎｆｏＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄのためにトラッキングする人差し指）は、特にそれらが計算上高価で、必ずしも求められない場合、オンとオフに切り替え可能でなければならない。
【０１００】
一実施形態において、ＧｅｎｅｒｉｃＭｏｄｕｌｅの下位分類である各ＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）は必要に応じてリソースをロックするために使用できるミューテックを引き継ぐ。他の実施形態において、スレッドは、基礎モジュールのミューテックを保持する場合に何もスリープしない限り、それ自身のロッキングストラテジーを使用してもよい。
【０１０１】
一実施形態において、ライブラリ内では、コントローラタイプのパラメーターを記憶しているグローバルデータ構造の１つの組がある。一実施形態において、コントローラパラメーターは、コントローラから出るフレームデータのフォーマット（例えばビンの数、チャンネルの数、ビットにおけるデータ幅の数）上のボード特定情報と同様に、網目構造及び解釈のための情報を含む。
【０１０２】
一実施形態において、プロセッシングスレッドは、それらが出力するデータ、及びそれらが実行するアルゴリズムに関して構成されてもよい。一実施形態において、構成はコントローラタイプに適合し得、あるいはコントローラのパラメーターまたはコントローラを実行するボードのパラメーターに左右される場合がある。
【０１０３】
図１７Ａ及び１７Ｂに戻ると、コントローラ構成に左右されて異なって起動するＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄｓ（３０６）を作成するように使用される２つの実施形態の構造を示す。図１７ＡはＦｉｎｇｅｒＩｎｆｏＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄのように、多数の構成特有のアルゴリズムを支持するのにふさわしいＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄを下位分類するプロセッシングスレッドための抽象的な分類を有する実施形態を示し、そこでは処理はコントローラタイプに激しく左右される。図１７Ａ中の示されるのは、Ｇｅｎｅｒｉｃ  Ｍｏｄｕｌｅ（４０２）、ＩＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（４０４）、ＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（４０６）、ＩＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ（４０８）、ＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ１（４１０）、ＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ２（４１２）、及びＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ３  （４１４）である。図１７Ｂは、インタフェースとして使用される独立した分類を有する実施形態を示し、これは具体的プロセッシングスレッドによって使用されるデータタイプを抽象化するのに役立つ場合がある。図１７Ｂにおいて示されるのは、Ｇｅｎｅｒｉｃ  Ｍｏｄｕｌｅ（４０２）、ＩＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（４０４）、  ＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（４０６）、ＩＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ（４０８）、及び  ＤｅｒｉｖｅｄＰｒｏｃｅｓｓｉｎｇ  Ｔｈｒｅａｄ（４１６）である。ＧｅｎｅｒｉｃＰｒｏｃｅｓｓｉｎｇＴｈｒｅａｄ（４０６）は、各構成におけるデータタイプがテンプレート化される場合、テンプレートパラメーターとして出力するデータタイプを承諾し、その後インタフェースはアクセッサ−機能によってそのデータタイプを抽象化すべきである。一実施形態において、図１７Ａ及び１７Ｂにおいて示される方法は、構成特有の実行及びデータタイプとともに多数の具体的なプロセッシングスレッド実行をサポートするように、組み合わせられる場合がある。
【０１０４】
コントローラ構成／キャリブレーション
一実施形態において、コントローラユーザーインタフェースソフトウェアがコントローラ（１００）の構成及び／またはキャリブレーションを許可するために提供される。図１８に戻ると、利き手、インデックス（ｉｎｄｅｘ）、指及びサムパッド用のチェックボックスを含むコントローラＵＩ（ユーザーインタフェース）が提供される。チェックボックスを使用し、ユーザは、コントローラ（１００）の特定された特徴のための新しいデータを提供するか妨げるためにコントローラ（１００）を形成することができるかもしれない。
【０１０５】
一実施形態において、コントローラ（１００）をキャリブレーションするための及び、ヒートマップを視覚化するためのソフトウェアが提供される。図１９に戻ると、観察された色は、青から赤までの範囲であってもよく、静電結合強度（青が最も弱く、赤が最も強い）を示す。一実施形態において、コントローラ（１００）のキャリブレーションに先立って、図１９で見られるように、視覚化されたヒートマップは騒がしく見える場合がある。一実施形態において、コントローラ（１００）をキャリブレーションし、したがって、より正確なヒートマップを有するために、ユーザは、コントローラ（１００）が実質的に包まれることを保証するように両手でコントローラ（１００）を把持し、その後コントローラ（１００）から手を離してもよい。図２０は、両手で把持されたコントローラ（１００）からのヒートマップの視覚化を示し、及び、図２１は、記載されるような各場合における、解放されたコントローラ（１００）からのヒートマップの視覚化を示す。把持し且つ解放する過程は、コントローラ（１００）、したがってヒートマップの視覚化をキャリブレーションすることを可能にする。図２２に簡潔に戻ると、右手中に保持されたキャリブレーションされたコントローラ（１００）の視覚化が示される。
【０１０６】
図２３に戻ると、ライブラリの基本的なライフサイクルが示される。一実施形態において、ライブラリからデータが読まれる前に、工程（５０２）では、ライブラリを最初に初期化し且つスタートされなければならない。一実施形態において、ライブラリを初期化するために、初期化コール（例えばＴａｃｔｕａｌＩｎｉｔｉａｌｉｚｅＷｉｔｈＬｉｖｅＳｔｒｅａｍ（））が正常に戻らなければならない。一実施形態において、一度初期化されると、ライブラリは、同じセットアップを維持する間に複数回、スタート並びにストップされる場合がある。したがって、例えば、もしライブラリがコントローラからのライブデータストリームを読み込むために初期化される場合、ライブラリがスタートされストップされる度に、それはそれが異なるセットアップで再初期化されるまで、コントローラ（１００）からのデータの中でストリーミングされるようにさらにセットアップされる。
【０１０７】
一実施形態において、ライブラリが始められる前に、工程（５０４）において、必要とされるデータを生成するいかなる処理の特徴は、それらの特徴が処理されるのを保証するように有効にされなければならない。一実施形態において、工程（５０４）では、不必要なデータを生成する特徴は無効にされなければならない。不必要なデータを生成する特徴を無効にすることは、不必要な計算を軽減する。一実施形態において、デフォルトによって、すべての処理特徴が無効になり、並びにコール（例えばＴａｃｔｕａｌＥｎａｂｌｅＮｏｒｍａｌｉｚｅｄＩｎｔｅｎｓｉｔｙ（））によって有効（あるいは再無効）になり、これはライブラリがスタートされた後に生じる。
【０１０８】
一実施形態において、工程（５０６）では、ライブラリの内部で処理をスタートすることである、スタート機能（例えばＴａｃｔｕａｌＳｔａｒｔ（））がコールされなければならず；それが正常に戻る場合、ライブラリは、読み込み元として初期化されたソースからのいかなるデータも処理するようにセットアップされなければならない。
【０１０９】
一実施形態において、工程（５０８）では、機能はライブラリから利用可能な最新のデータ（例えばＴａｃｔｕａｌＳｙｎｃＤａｔａ（））を読み込むためにコールされる。一実施形態において、工程（５１０）では、ライブラリから利用可能な最新データを読み込むためにコールされた機能は、入手可能なデータを最新の利用可能な処理されたデータへ更新し、その後ライブラリからの利用可能なデータを読み込むためのデータアクセス機能をコールする。一実施形態において、他のコール（例えばＴａｃｔｕａｌＨａｓＮｅｗＤａｔａ（）＝ＴＲＵＥ）は（例えばＴａｃｔｕａｌＳｙｎｃＤａｔａ（）コール後）最新データを読み込むための新しいデータがあることを保証するために提供される。一実施形態において、ライブラリは、最後のスタートコール（例えばＴａｃｔｕａｌＳｔａｒｔ（））がされる前に有効になった処理特徴からデータを作り出すのみである。一実施形態において、工程（５１２）では、ストップコール（例えばＴａｃｔｕａｌＳｔｏｐ（））はライブラリの処理特徴をストップために提供される。一実施形態において、一度ストップされると、処理特徴は、スタート機能に対する続くコール上で再開されることができる。一実施形態において、工程（５１４）では、リソース割当て解除機能はまた、ライブラリ（例えばＴａｃｔｕａｌＤｅｓｔｒｏｙ（））において利用可能である。割当て解除機能が正常にコールされる場合、リソースは割り当てを解除され、並びにライブラリは初期化するために他の再初期化コールを必要とする。
【０１１０】
一実施形態において、セットアップスレッドは、とりわけ原点ヒートマップの有効化、標準化された強度の有効化、及び指の位置の有効化を許可し、並びにプロセッシングスレッド制御機能は利き手トラッキングの有効化、人差し指トラッキングの有効化、中指／薬指／小指トラッキングの有効化、及び親指トラッキングの有効化を含む場合がある。一実施形態において、例えばデータはアクセスされるが、（覆われる場合がある）標準化された強度ヒートマップデータを得、及び手の骨格データを得る。
【０１１１】
手の骨格データ
図２４は、人間の手の図解、及びコントローラに関連する手の一続きの関節及び骨を含む。図解及び使用されるモデルは、いくつかの部分（例えば手根）がコントローラ（１００）によって生成されたモデルに関連するか、し得ない程度まで簡易化される場合がある。具体的には、図２４は、他の骨に関するその階層（紺色ライン）である、人間の手（水色ドット）上の各骨の対応する位置（あるいは簡易化の位置）を示し、並びに名前共に骨を特定する。一実施形態において、前腕中のノードはルートノードであって、親を有しない。
【０１１２】
一実施形態において、手の骨格データはパックされた３２ビットのフロートアレイで保存され、各骨はメーター及び（ｑｘ、ｑｙ、ｑｚ、ｑｗ）回転四元数における全量で（ｘ、ｙ、ｚ）位置ベクトルの７−タプルとして扱われ、各タプルはその親（すなわちその祖先によって行われたあらゆる回転も考慮に入れて、局所的な軸中で行われた翻訳）に対する局所変形として扱われる。特にコントローラ（１００）によって許可された感度、性能及び自由度の点から見て、多くの他のデータ構造は手を表わすために使用される場合があることは当業者に対して明白である。
【０１１３】
従って、図２５は、上に記載された骨格データの表示の表の実施形態を示す。図２５の表は表の一実施形態を表わし、それは計算装置のメモリ中に存在する。図２５の中の各骨の名前は図２４からの名前に相当する。
【０１１４】
図２６は、ユーザの指の情報を表わすために使用することができるデータ構造の実施形態を示す。実施形態に従って、データ構造は、ユーザの指及び／または手の位置及び配向に関する各種情報を表わしてもよい。一実施形態において、データ構造は下記を使用して、ユーザの指の情報を表わす：
フラグはビットセットである；
ｉｎｄｅｘＰｒｅｓｅｎｃｅ、ｍｉｄｄｌｅＰｒｅｓｅｎｃｅ、ｒｉｎｇＰｒｅｓｅｎｃｅ及びｐｉｎｋｙＰｒｅｓｅｎｃｅは各々、コントローラ（１００）の近くの指の存在を示す値を表わし、−−実施形態では、値は０と１の間の標準化されたフロートであり、ここで０の値は完全にコントローラ（１００）から離れて延ばされている指を表し、及び、１の値は、完全に縮小されコントローラ（１００）に触れる指を表わす；
ｉｎｄｅｘＸとｉｎｄｅｘＹはトリガー上の位置を表わす。実施形態において、それらはカルテシアンであり、ここで−０．５のｘ値はトリガーのちょうど左にあり、及び、０．５の値はトリガーのちょうど右にあり；同様に、−０．５のｙ値はトリガーの下にあり、及び０．５の値は上にあり、−−実施形態において、一方の値が−１にセットされれる場合、この機能はコントローラ（１００）によって支持されない；
ｔｈｕｍｂＸとｔｈｕｍｂＹはサムパッド上の位置を表わし、実施形態において、それらはカルテシアンであり、−０．５のｘ値はサムパッドのちょうど左にあり、及び、０．５の値はサムパッドのちょうど右にあり；同様に、−０．５のｙ値はサムパッドの下にあり、及び０．５の値は上にある；
ｔｈｕｍｂＤｉｓｔａｎｃｅは、コントローラ（１００）からの距離を表わし、実施形態において、０の値は、コントローラ（１００）と接触を示し、１の値は、親指（１０３）がコントローラに近くないことを示し、及び、０と１の間の値は、親指１０３がコントローラ（１００）からある距離離れてホバリングすることを示す；
タイムスタンプは、この構造中の所与のセンサ状態の時間を表わし、実施形態において、タイムスタンプは、例えばマイクロセカンドで表す事ができる；
ｆｒａｍｅＮｕｍはこのデータがいつ関連したのか指標となり、記録されたデータセッションに対して、これは、１セットの記録されたフレーム中での位置を表わす場合があり、及び、ライブストリームセッションに対して、これは受信した各センサフレームの増加する数を表す場合がある；
手の骨格中の各骨の位置及び回転を表わすｓｋｅｌｅｔｏｎＰｏｓｅｓは、実施形態において、フロートのアレイであり、ここで各骨は、（ｘ、ｙ、ｚ）位置ベクトル及び回転四元数（ｑｘ、ｑｙ、ｑｚ、ｑｗ）を表わす７タプルのフロートとして所与である；
ｌｏｃａｌＳｃａｌｅは、手の骨格の構成要素上で遂行されると期待されるスケーリングを反映し、実施形態において、これはスカラーの（ｘ、ｙ、ｚ）３タプルとして所与のフロートのアレイである；
利き手は現在コントローラを把持しているのがどの手なのか表し、実施形態において、利き手は０−２の間の整数値を有し、ここで０はコントローラを把持する手はないことを表し、１は、左手がコントローラを把持していることを表し、及び、２は、右手がコントローラを把持していることを表わす。
【０１１５】
図２７及び２８は、典型的な右手のためのｓｋｅｌｅｔｏｎＰｏｓｅｓの実施形態を反映する表であり、図２７は開いた手のひらであり、及び図２８は把持している。各骨は独立した列に反映され、並びに７タプルはｘ、ｙ、ｚ位置ベクトルとｑｘ、ｑｙ、ｑｚ、ｑｗ回転四元数とを表わす。位置（ｘ、ｙ、ｚ）はメートルである。各骨のための軸は、骨の祖先のいずれかによって実行されるいかなる回転を考慮する（人間の手及び彼らの階層上の各骨の位置の描写については、図２４を参照する）。すべての翻訳及び回転は骨の親に関連する。典型的な量は小数点以下５桁でのみ示される。
【０１１６】
一実施形態において、コントローラ（１００）上の１つ以上のセンサパターンから獲得した情報は、ユーザの指、手及び手首のモデルを低いレイテンシを伴う３Ｄで提供するための基礎を提供可能である。骨格モデルの低いレイテンシ送達は、ＶＲ／ＡＲシステムがユーザの手のリアルタイム解釈を提供することを許可する場合がある。さらに、本明細書に示された骨格データは、出願及び操作システムソフトウェアがタッチセンシティブオブジェクト上のホバー、接触、把持、圧力及びジェスチャーだけでなく、それを特定することが出来る情報を有することを可能するが、しかし、それはさらに手の位置及び配向を提供し、そこからジェスチャーの意図をより容易に導き出し得る。
【０１１７】
本システムは、コントローラ、及びＦＭＴまたはＦＭＴのようなシステムを使用するホバー、接触及び圧力を感知できる他のオブジェクトのブロック線図及びコントローラの運用上の図解に関して、上に記載される。ブロック図または操作図のそれぞれのブロック、及び、ブロック図または操作図のブロックの組み合わせは、アナログハードウェアまたはデジタルハードウェアとコンピュータプログラム命令によって実行されてもよい。コンピュータプログラム命令は、汎用コンピュータのプロセッサ、専用コンピュータ、ＡＳＩＣ、または他のプログラム可能データ処理装置に提供されてもよく、これにより、コンピュータのプロセッサまたは他のプログラム可能データ処理装置によって実行される命令が、ブロック図または操作ブロックで指定された機能／動作を実施する。
【０１１８】
上記の議論によって明示的に制限されることを除けば、いくつかの交互の実施において、ブロックに特筆された機能／行為は、操作に関する例示に明記された順序以外で生じることもある。例えば、及び、において、ブロックが連続して示されている場合の実行の順序は実際に、同時に、または実質的に同時に実行されるか、または、実行時には、どのブロックも、関与する機能／行為に依存して、他のものに対して異なる順序で実行されることもある。
【０１１９】
本発明はその好ましい実施形態に関して具体的に示され、記載されてきた一方で、形態と詳細の様々な変化は本発明の精神と範囲から逸脱することなくなされ得るということが当業者に理解されよう。
【図１Ａ】
2020514896.tif 000003
【図１Ｂ】
2020514896.tif 000004
【図１Ｃ】
2020514896.tif 000005
【図１Ｄ】
2020514896.tif 000006
【図１Ｅ】
2020514896.tif 000007
【図１Ｆ】
2020514896.tif 000008
【図２】
2020514896.tif 000009
【図３Ａ】
2020514896.tif 000010
【図３Ｂ】
2020514896.tif 000011
【図３Ｃ】
2020514896.tif 000012
【図３Ｄ】
2020514896.tif 000013
【図３Ｅ】
2020514896.tif 000014
【図４】
2020514896.tif 000015
【図５Ａ】
2020514896.tif 000016
【図５Ｂ】
2020514896.tif 000017
【図６Ａ】
2020514896.tif 000018
【図６Ｂ】
2020514896.tif 000019
【図７Ａ】
2020514896.tif 000020
【図７Ｂ】
2020514896.tif 000021
【図８Ａ】
2020514896.tif 000022
【図８Ｂ】
2020514896.tif 000023
【図９】
2020514896.tif 000024
【図１０Ａ】
2020514896.tif 000025
【図１０Ｂ】
2020514896.tif 000026
【図１０Ｃ】
2020514896.tif 000027
【図１０Ｄ】
2020514896.tif 000028
【図１０Ｅ】
2020514896.tif 000029
【図１０Ｆ】
2020514896.tif 000030
【図１０Ｇ】
2020514896.tif 000031
【図１１Ａ】
2020514896.tif 000032
【図１１Ｂ】
2020514896.tif 000033
【図１１Ｃ】
2020514896.tif 000034
【図１２】
2020514896.tif 000035
【図１３】
2020514896.tif 000036
【図１４】
2020514896.tif 000037
【図１５】
2020514896.tif 000038
【図１６Ａ】
2020514896.tif 000039
【図１６Ｂ】
2020514896.tif 000040
【図１６Ｃ】
2020514896.tif 000041
【図１６Ｄ】
2020514896.tif 000042
【図１７Ａ】
2020514896.tif 000043
【図１７Ｂ】
2020514896.tif 000044
【図１８】
2020514896.tif 000045
【図１９】
2020514896.tif 000046
【図２０】
2020514896.tif 000047
【図２１】
2020514896.tif 000048
【図２２】
2020514896.tif 000049
【図２３】
2020514896.tif 000050
【図２４】
2020514896.tif 000051
【図２５】
2020514896.tif 000052
【図２６】
2020514896.tif 000053
【図２７】
2020514896.tif 000054
【図２８】
2020514896.tif 000055
【国際調査報告】
2020514896.tif 000056
2020514896.tif 000057