(57)【要約】【課題】可動コントローラを使った対話式制御のための自己完結式INSシステムを提供する。【解決手段】コンピュータ制御されるゲーム・ディスプレイの諸側面を制御する可動ゲーム・コントローラが、当該可動コントローラの直線運動および角度運動を判別する装置をもつ。前記装置は、動いているコントローラの三軸方向の直線運動および三軸方向の角度運動を感知するための複数の自己完結式慣性センサーを含む。各センサーは、他のセンサーに対して、固定された線形位置および配向にマウントされている。コントローラの直線運動および角度運動は、前記複数の自己完結式慣性センサーのそれぞれの相関された動きセンサー読みから計算される。【選択図】図１
2008307392.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイと対話するためにユーザーが操作できる装置であって：
当該装置がユーザーによって三次元空間中である位置から別の位置に動かされる際に当該装置の六つの相対的な直線運動および角度運動を導出するのに十分なセンサー・データを提供する複数の慣性センサーを有しており、プロセッサが、前記慣性センサーからのセンサー・データを相関付けて当該装置の基準点に対する相対的な位置および配向を決定することにより、当該装置の軌跡が推定され、前記ディスプレイにおける対応する動きを表現するために使われるようにするよう構成されている、装置。
【請求項２】
前記装置が第一のデバイスおよび第二のデバイスを含む統合されたコントローラである請求項１記載の装置であって、独立して作動できる前記第一のデバイスはトランシーバを有し、前記第一のデバイスに着脱可能式に結合される前記第二のデバイスは前記複数の慣性センサーの一部または全部を有し、
前記第二のデバイスは、前記第一のデバイスと通信して前記複数のセンサーからのセンサー・データの一部または全部を前記第一のデバイスに転送し、それにより前記第一のデバイスが前記センサー・データを前記トランシーバを介して前記ディスプレイに接続されているベース・デバイスに転送するようにするためのインターフェースを有する、
装置。
【請求項３】
請求項２記載の装置であって、前記第一のデバイスが基礎コントローラであり、該基礎コントローラが：
前記慣性センサーの全部ではないが一つまたは複数を含む第一のセットを有しており、該基礎コントローラ中の慣性センサーからのセンサー・データは当該装置の六つの相対的な直線運動および角度運動を導出するには不十分であり、
前記第二のデバイスが補助デバイスであり、該補助デバイスは：
前記慣性センサーの全部ではないが一つまたは複数を含む第二のセットを有しており、該補助デバイス中の慣性センサーからのセンサー・データの一部または全部は前記インターフェースを介して前記基礎コントローラに転送され、それにより前記基礎コントローラおよび前記補助デバイス両方からのセンサー・データは当該装置の六つの相対的な直線運動および角度運動を導出するには十分になる、
装置。
【請求項４】
請求項３記載の装置であって、前記補助デバイスは独立して機能するものではなく、前記基礎コントローラと一緒に機能させられるよう設計されており、前記補助デバイスからのあらゆる感知測定は前記基礎コントローラを補完するものであり、前記基礎コントローラ中のプロセッサが、もしあれば前記基礎コントローラ中の慣性センサーと前記補助デバイス中の慣性センサーからのセンサー・データを相関付けするよう構成されている、装置。
【請求項５】
請求項３記載の装置であって、前記基礎コントローラが前記複数の慣性センサーのうちの三つを一つの三軸加速度計として含んでおり、前記補助デバイス中の第二のセット中の慣性センサーからのセンサー・データが前記三軸加速度計からのセンサー・データを補完するものであり、前記三軸加速度計および前記補助デバイスからのセンサー・データが当該装置の六つの相対的な直線運動および角度運動を導出するために十分になる、装置。
【請求項６】
請求項１ないし５のうちいずれか一項記載の装置であって、前記慣性センサーが実質的に自己完結式であり、結果として、動きに対する制約がなく、当該装置を操作するためのユーザーによる外部源のセットアップまたは設定がない、装置。
【請求項７】
当該装置がゲーム・コントローラであり、前記プロセッサが前記ディスプレイを駆動するゲーム機中にある、請求項１ないし５のうちいずれか一項記載の装置。
【請求項８】
前記軌跡が、ユーザーの動きを前記ディスプレイと同期させるために実質的にリアルタイムで計算される、請求項１ないし５のうちいずれか一項記載の装置。
【請求項９】
請求項１ないし５のうちいずれか一項記載の装置であって、当該装置の直線運動および角度運動が、仮想世界において操作されるオブジェクトのアニメーションを制御する、装置。
【請求項１０】
請求項１ないし５のうちいずれか一項記載の装置であって、前記軌跡を、該軌跡に意味を与えるために使われる明示的な理解の集合のうちの一つに分類するための追加的な認識要素が設けられている、装置。
【請求項１１】
前記プロセッサがさらに、推定された位置および配向に関連付けられた推定された誤差のセットを判別することによって、当該装置のより精確な軌跡を導出するよう構成されている、請求項１ないし１０のうちいずれか一項記載の装置。
【請求項１２】
前記推定された誤差が：当該装置が地上の基準座標系内に位置していると想定する、当該装置が実質的に人間の起動力によって動いていると想定する、当該装置がハンドヘルドである装置、ウェアラブルである装置または動いているもしくは静止しているオブジェクトに取り付け可能である装置のうちの少なくとも一つであると想定することを含む一組の想定に応答して導出される、請求項１１記載の装置。
【請求項１３】
人間の生物機械的な属性が、推定される誤差を決定するために使われる、請求項１２記載のシステム。
【請求項１４】
前記推定された誤差を決定するために、前記軌跡を所定の可能な動き種別の集合のうちの一つに分類する追加的な認識要素の出力が、その動き種別がどのように実行できるかについての知識と組み合わされる、請求項１２記載のシステム。
【請求項１５】
前記推定された誤差が前記センサーに関連付けられ、当該装置の推定される位置および配向のうちのいずれかを改善するためにその後の使用のために維持される、請求項１２記載の装置。
【請求項１６】
前記プロセッサが当該装置が実質的に静穏である一つまたは複数の時間期間を同定するよう構成されており、当該装置の配向が、該一つまたは複数の期間を表し、当該装置に対する重力の方向を決定するのに十分な慣性センサーからの情報を含むデータに基づいている、請求項１ないし１５のうちいずれか一項記載の装置。
【請求項１７】
前記プロセッサが、当該装置の絶対的な位置および配向のうち少なくとも一つの要素についての情報を提供する、前記複数の慣性センサーの一つではない少なくとももう一つのセンサーからのデータに応答して、推定された位置および配向の要素を調整するよう構成されている、請求項１ないし１６のうちいずれか一項記載の装置。
【請求項１８】
前記プロセッサが、想定および／または直接ポインティング・デバイスによって当該装置の初期の絶対的な位置および配向の要素を決定し、当該装置が動かされるやいなや前記複数の慣性センサーから受領されるセンサー・データから当該装置の推定される位置および配向を推定するよう構成されている、請求項１ないし１７のうちいずれか一項記載の装置。
【請求項１９】
プロセッサが、三つの配向のうちの二つを、加速度計からなる初期センサーのセットからの読みを重力の方向に対応する所定の軸に完全に沿って整列させるために必要な当該装置の回転を見出すことによって決定するよう構成されている、請求項１ないし１８のうちいずれか一項記載の装置。
【請求項２０】
ユーザーが当該装置を６自由度で操作し、仮想世界を表示するために使われる有利な視点（vantage  viewpoint）が当該装置の直線運動および角度運動に従って決定される、請求項１ないし５のうちいずれか一項記載の装置。
【請求項２１】
ユーザーが、表示されている仮想世界内の異なる有利な視点に動くことによって、妨害するオブジェクトの背後にある領域を知覚する、請求項２０記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ディスプレイ・ゲームのような応用における、可動コントローラ（movable  controller）を使った対話式制御のための自己完結式慣性ナビゲーション・システム（self-contained  inertial  navigation  system）に関する。
【背景技術】
【０００２】
任天堂（登録商標）Ｗｉｉ（登録商標）リモコンという無線コントローラは、コンピュータ・ディスプレイ・ゲーム・システムのためのユーザー対話式コントローラにおける最も最近の技術進歩の一例である。このリモコンは、対話するユーザーが手に持つ可動の無線リモート・コントローラであり、入力データを従来式の短距離無線RF伝送、たとえばＢｌｕｅｔｏｏｔｈ（商標）を介して、コンピュータ制御されるゲーム・ディスプレイ・システムに送信し、赤外光センサーを介してデータを受信する。このゲーム・コントローラは、公開された米国出願US2007/0060384（2007年3月15日）において詳細に記載されている。
【０００３】
任天堂（登録商標）Ｗｉｉ（登録商標）のようなゲーム・システム用の可動コントローラでは、当該可動コントローラの相対的な直線運動および角度運動を感知し、追跡するために自己完結したINSシステムを使うことが望ましい。現行の最新技術の可動コントローラはこの機能をもたない。たとえば、Ｗｉｉ（登録商標）リモコンは、赤外光センサーを介して受信したデータを使って、環境中に何らかの既知の配位で設置された一組の外部赤外光源からの自分の位置および配向についての情報を推定することができない。しかし、光センサーの使用は、装置が光源に依存し、よって自己完結ではないことを意味する。外部信号源の使用は、ユーザーが外部源を設置し、設定する必要があるので、わずらわしい。さらに、ユーザーは、外部源を視野内に保つために、コントローラでなされる動きを制限しなければならない。自己完結式のシステムはそのような動きの制限がなく、ユーザーによる外部源の設置や設定も必要としない。
【０００４】
自己完結式のINSシステムは典型的には、加速度計およびジャイロスコープのようなセンサーを使う。Ｗｉｉ（登録商標）リモコンのような現状技術の可動コントローラは、三軸加速度計を使う。しかしながら、可動コントローラの直線運動および角度運動を推定するために必要とされる６つの自由度すべてを計算するには、単一の三軸加速度計では不十分である。実際、単一の三軸加速度計では固定した回転と線形加速は同じ読み（reading）のセットを生じることがあるので、コントローラが並進されているのか回転されているのかさえ決定することができない。しかしながら、コントローラがどのように保持されており、どの軸に沿って動かされるかについての想定をすることによって、時には相対的な直線運動および角度運動を追跡することができる。たとえば、任天堂（登録商標）Ｗｉｉ（登録商標）についての現状技術のゲームでは、プレーヤーはコントローラをどのように保持し、動かすかについて指示される。プレーヤーがだいたい指示に従っていると想定することによって、三軸加速度計からの信号を解釈して、コントローラの相対的な直線運動および角度運動をおおまかに追跡することができる。しかし、ユーザーが可動コントローラを動かしたり保持したりしうる仕方を制約することが望ましくない幅広いクラスのゲームその他の応用がある。したがって、可動コントローラの現状技術は、不必要に制限がある。
【０００５】
三次元空間中を動く物体の位置の感知および経路の追跡の背景を概観すると、追跡は、加速度計およびジャイロスコープの組み合わせを使って、加速が世界座標系における厳密に線形な加速を表すような慣性系を生成または計算する慣性ナビゲーション・システム（INS）によってなされる。物体の世界座標系での線形加速度を時間に対して知れば、その物体の開始位置に対する現在位置を、時間に対して計算することができる。物体の角加速度を時間に対して知れば、任意の時点におけるその配向を与えることができる。通常、物体の追跡において、角速度と組み合わされた線形加速度が、物体の開始位置に対する位置および配向を与えるために必要かつ十分である。あらゆる時刻において、求める必要のある６つの未知数がある。たいていのINS（慣性ナビゲーション・システム）は、３つの角速度を固定するまたは求めるためにジャイロスコープを使う。ひとたび時間に対して配向が知られれば、加速度計を使って上記のように３つの線形加速度を追跡することができる。慣性ナビゲーション・システムの分野に関する序説および詳細情報については、非特許文献１を参照。
【０００６】
米国カリフォルニア州PATH交通およびハイウェー・システムのためにカリフォルニア大学バークレー校によって2002年6月に発表された非特許文献２を参照。この文献はここに参照によって組み込まれる。これは、加速度計だけを使って剛体の直線運動および角度運動を計算する慣性ナビゲーション・システムの実現可能性の研究である。この刊行物は、自動車などの線速度および角速度を測定するシステムに関するものである。その決定は、数十分の時間スケールで数十メートルの精度で動きを追跡する。
【非特許文献１】D.  Titterton  and  J.  Weston,  "Radar,  Sonar,  Navigation  &  Avionics  Strap  down  Inertial  Navigation  Technology",  2nd  Edition,  IEE  Radar,  Sonar,  Navigation  and  Avionics  Series,  2005
【非特許文献２】Chin-Woo  Tan  et  al.,  "Design  and  Error  Analysis  of  Accelerometer-Based  Inertial  Navigation  Systems",  2002
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、可動コントローラを使った対話式制御のための自己完結式INSシステムを提供する。好ましい実施形態では、可動コントローラは、動いているコントローラの相対的な直線運動および角度運動を追跡することによって、コンピュータ・ディスプレイ・ゲーム・システムの何らかの側面に対する対話的な制御を提供する。
【課題を解決するための手段】
【０００８】
ある実施形態では、本発明は、可動コントローラに複数の自己完結式慣性センサーを組み込み、各センサーによって感知された動きを相関させ、それにより動いているコントローラの三次元的な線形経路および角度配向の両方が精確に追跡されうるようにすることに関わる。最良な結果のために、前記複数の自己完結式慣性センサーは、６つの軸、すなわち３つの直線状の軸に沿った線形加速度について３つおよび角度運動を決定するための３つの軸に沿って追跡できる必要がある。こうして、可動コントローラ中の一つの三軸加速度計および一つの三軸ジャイロスコープの組み合わせが非常に効果的に機能することになる。しかしながら、当業者は、センサーのさまざまな他の組み合わせも効果的に機能するであろうことを認識するであろう。たとえば、６つの加速度計を既知のレイアウトで配置して、可動コントローラを使った対話式制御のための効果的なINSシステムを提供することができる。
【０００９】
本発明のある実施形態では、６つ未満の軸に沿った動きを感知する自己完結式慣性センサー、たとえば三軸加速度計をもつ既存のゲーム・コントローラは、追加的な慣性センサーが取り外し可能な仕方でゲーム・コントローラに取り付けられることによって向上され、複合ゲーム・コントローラを与えうる。そのような複合ゲーム・コントローラは、該複合コントローラの直線運動および角度運動を感知することができるであろう。該複合コントローラは、動いているコントローラの直線／角度運動を感知するための自己完結式慣性センサーを含む少なくとも一つのコントローラと；さらに前記動いているコントローラの直線運動および角度運動を感知するための、前記コントローラに対する固定された線形位置および配向で前記コントローラに取り外し可能な仕方で取り付けられている一つまたは複数の自己完結式慣性センサーと；前記のコントローラのセンサーおよび別個のセンサーのそれぞれによって感知された動きを相関させる装置との組み合わせを有することになる。そのような複合コントローラにおいては、組み合わされたセンサーは、６軸全部に沿った動き感知を提供するべきである。たとえば、従来のゲーム・コントローラが三軸加速度計を有する場合、取り付けられた一組のセンサーは、一つの三軸ジャイロスコープまたは少なくとも組み合わされた三軸感知を提供する複数の取り付けられたジャイロスコープを含むことができる。取り付けられたセンサーは、従来のゲーム・コントローラに対して既知の位置に前記コントローラ上にマウントされるべきである。
【００１０】
前記複合コントローラが６軸すべてに沿った感知を提供しない場合、それでも基礎コントローラより有用であることがありうる。特に、ユーザーが当該コントローラを保持し、動かす際の制約が、当該複合コントローラの直線運動および角度運動を追跡する機能を損なうことなく、緩和できることがありうるのである。
【００１１】
本発明のある実施形態では、取り付けられたセンサーは、基礎コントローラに取り付けられた一つまたは複数の他のコントローラであってもよい。該コントローラが何らかの既知の配位で取り付けられることができるよう、別個のデバイスが設けられてもよい。あるいはまた、取り付けのために適切な縛り（banding）が使われてもよい。縛りがすべてのコントローラの互いに対する精密に知られた相対位置および配向を与えない場合、別個の較正段階が必要とされることがある。
【００１２】
ある実施形態では、一つまたは複数の自己完結式慣性センサーをもつデバイスが、自らの直線運動および角度運動を追跡することができない従来式の基礎コントローラに取り付けられ、複合コントローラを角度運動および直線運動の両方を追跡するコントローラに変換してもよい。従来のＷｉｉ（登録商標）リモコンでは、取り外し可能な仕方で取り付けられたセンサーは、従来の基礎コントローラのポートに挿入されうるドングルの形である。
【００１３】
後述するように、上記の発明は、可動ゲーム・コントローラの直線運動および角度運動を動的に決定する方法として、また可動ゲーム・コントローラの直線運動および角度運動を動的に決定するためのコンピュータ・プログラムとして実装されてもよい。
【００１４】
本発明のもう一つの側面によれば、自らの直線運動および角度運動を決定するための装置を有する上に定義した可動コントローラによってゲームの諸側面が制御されるコンピュータ・ゲーム・システムが提供される。たとえば、ゲームは前記コントローラの動きを解釈して、ゲーム・ディスプレイ上の剣のアニメーションを駆動して、ディスプレイ上の剣がコントローラの動きと見かけ上同じような仕方で動くようにしてもよい。自己完結式INSシステムは、追跡が始まったときのコントローラの位置および配向をもとにして動きを追跡できるだけなので、ゲームは、コントローラが何らかの初期の開始位置および配向に保持されていたと想定してもよい。その場合、制御される画面上のオブジェクトに適用される動きは、初期の開始位置および配向についてのこの想定に対して正しいのみである。開始位置および配向をより精確に決定するために、追加的な、自己完結式でなくてもよいセンサーおよび諸技法を使うことができる。
【００１５】
この簡単な要約は、本発明の性質が迅速に理解されうるよう与えたものである。本発明のより完全な理解は、本発明の好ましい実施形態の以下の記述を付属の図面との関連で参照することによって得ることができる。
【発明を実施するための最良の形態】
【００１６】
〈定義〉
上述のものおよび以下のものを含めた本稿での本発明の記載において、使用される用語を明確にするために次の定義を掲げておく。
【００１７】
自己完結式慣性センサー（self-contained  inertial  sensor）：動いている物体の、６つの可能な直線軸および角度軸のうち一つまたは複数の軸に沿った加速度を測定するための、外部信号源が環境中に置かれることを必要としない装置。特に断りのない限り、「センサー」の語は、自己完結式慣性センサーを指すものと理解される。例示的な目的のため、本稿では、加速度計およびジャイロスコープを使った具体化を記述するが、当業者は、自己完結式慣性センサーとして他の装置を使うこともできることをただちに認識するであろう。たとえば、時間の経過に対して諸画像を比較するカメラ（たとえば光学式マウスで使われているカメラ）は自己完結式慣性センサーとして使うことができる。しかし、環境中に意図的に置かれた赤外線源またはマーカーを追跡することによって機能するよう設計されている赤外線カメラは、自己完結式慣性センサーの例ではない。
【００１８】
加速度計（accelerometer）：動いている物体の一点において一つまたは複数の軸に沿った加速度を測定する装置。加速度計は、自己完結式慣性センサーの例である。本装置は、所与の位置において測定する軸の数に依存して、一軸ないし三軸であることができる。たとえば、三軸加速度計は、該加速度計が位置されている点における三つの軸に沿った加速度を測定する。剛体は、直線三つ、回転三つで六つの可能な自由度で独立して動くことができる。したがって、動きの経路に対する制約について追加的な前提なしには、単一の加速度計は、それが取り付けられている剛体の直線運動および角度運動を決定するのには、決して十分であることはできない。さらに、動きの経路に対する制約についてのさらなる前提を課すことなしには、単一の加速度計は（三軸加速度計でも）、それが取り付けられている剛体の動きが単一自由度に沿ったものであるかどうかさえ決定できない。それは、追加的情報なしでは、それが経験している加速の源が、それが取り付けられている剛体の直線運動からのものか角度運動からのものかを知る手だてがないためである。しかしながら、何らかの好適な配位で剛体上の種々の点に配置された一組の加速度計からの読みを処理することで、六つの自由度すべてに沿っての剛体の直線運動および角度運動を決定することができる。注意しておくべきは、静止しているときでさえ、加速度計は地球の、あるいは他の任意の十分大きな物体の重力場に応答するということである。
【００１９】
ジャイロスコープ（gyroscope）：回転する物体上のある点において一つまたは複数の軸のまわりの角速度を測定する装置。ジャイロスコープは、自己完結式慣性センサーの例である。本装置は、所与の位置において測定する軸の数に依存して、一軸ないし三軸であることができる。たとえば、三軸ジャイロスコープは、該ジャイロスコープが位置されている点における三つの軸のまわりの角速度を測定する。三軸ジャイロスコープは、時間の経過に対して剛体の配位を追跡するためには十分ではあるが、空間中の物体の線形運動に関しては何の情報も与えてくれない。
【００２０】
コントローラ（controller）：可動ゲーム・コントローラ。必須ではないが好ましくは無線式かつハンドヘルド型で、該コントローラには一つまたは複数の自己完結式慣性センサーが含まれており、コンピュータ・ゲームのような関連する対話式アプリケーションを制御するための出力データを与える。
【００２１】
基礎コントローラ（basic  controller）：上に定義したようなコントローラであって、六つの自由度すべてにおける直線運動および角度運動を追跡するために十分な自己完結式慣性センサーを欠いているもの。
【００２２】
複合コントローラ（composite  controller）：本発明に基づくコントローラ。基礎コントローラの動き感知機能を高めるよう、基礎コントローラに自己完結式慣性センサーを含む別のコントローラまたはデバイスを取り付けたもの。
【００２３】
自己追跡オブジェクト（self-tracking  object）：自己追跡オブジェクトとは、そのオブジェクトの位置および配向の変化を追跡するのに十分な時系列を発生させる自己完結式慣性センサーを含んでいるオブジェクトである。複合コントローラは、自己追跡オブジェクトでありうるオブジェクトの一例である。
【００２４】
〈発明の説明〉
本発明のいくつかの実施形態について詳細に述べる。図１〜図３のそれぞれは、複合ゲーム・コントローラのいくつかの可能な実施形態の一つを示している。そこでは、動いている複合コントローラの直線運動および角度運動を表す、複合ゲーム・コントローラからの統合的な（unitary）出力が与えられる必要がある。
【００２５】
図１を参照すると、ドングル接続を使って複合コントローラが構築されている。特に、補助的な自己完結式慣性センサー１０３を含んでいる補助的なコントローラまたは筐体が基礎ゲーム・コントローラ１０１のポート１０２に受け容れられている。そのような結合において、ドングル１０３中の自己完結式慣性センサーからの出力は、コントローラ１０１中のデータ処理ユニットによって、コントローラ１０１中の自己完結式慣性センサーの出力と組み合わされて、複合コントローラ全体の組み合わされた出力を与えうる。最良の結果のために、複合コントローラ中の自己完結式慣性センサー全部における組み合わされた感知は、６つの軸、すなわち三つの直線軸に対する動いている複合コントローラの直線運動の感知のための三つの線形独立な軸と、三次元的な角度運動を感知するための三つの線形独立な軸とに沿った動き感知を提供するべきである。こうして、基礎コントローラ１０１が三軸加速度計を有する場合、ドングル１０３が含むべきは、基礎コントローラの三軸加速度計と組み合わされたときに、六つの自由度全部における動きの感知を提供するような自己完結式慣性センサーである。
【００２６】
図２に関しては、基礎コントローラ２０１と固定された位置および配向で、コンポーネント２０２がストラップ２０３によって縛られてもよい。この実施形態のこの初歩的な図解では、二つのゲーム・コントローラが一緒に縛られる。しかしながら、コンポーネント２０２は、支持ハウジング中にマウントされた適切な自己完結式慣性センサーであってもよい。基礎コントローラ２０１が従来式の三軸加速度計をもつ場合、コンポーネント２０２が含むべきは、該三軸加速度計との組み合わされた出力が、六つの自由度全部を追跡するのに十分なような追加的な自己完結式慣性センサーである。ここでもまた、センサー筐体に関わりなく、複合ゲーム・コントローラを形成する前記複数の自己完結式慣性センサーの出力を組み合わせて、動いている複合コントローラの直線運動および角度運動を表す、複合ゲーム・コントローラからの統合的な出力を提供するようにするためのハードウェアまたはソフトウェアでの実装がなければならない。
【００２７】
図３を参照すると、図２と同様のもう一つの初歩的な図解が示されている。基礎コントローラ３０１は、剛性の平面状支持基板３０５上にマウントされている。この例示的実施形態の目的のために、二つの追加的なコンポーネント３０２および３０３も基板３０５にマウントされている。これらのコンポーネントのそれぞれは、少なくとも一つの自己完結式慣性センサーを提供する。図３の初歩的な実施形態の図解における便宜上、自己完結式慣性センサーを含む三つのゲーム・コントローラがバンド３０４によって互いに対して固定された位置および配向に縛られており、コントローラ３０１に縛り付けられている、二つの自己完結式慣性センサー含有コンポーネント３０２および３０３はコントローラでなくてもよい。コンポーネント３０２および３０３は、自己完結式慣性センサーを支持する筐体中にマウントされた適切な自己完結式慣性センサーであってもよい。補助的コンポーネント３０２および３０３がコントローラであるか単に必要な自己完結式慣性センサーであるかにかかわりなく、当該複合ゲーム・コントローラを形成する複数の自己完結式慣性センサーの出力を組み合わせて、動いている複合コントローラの直線運動および角度運動を表す、複合ゲーム・コントローラからの統合的な出力を提供するための実装がなければならない。
【００２８】
図１〜図３に描かれている複合コントローラのそれぞれにおいて、取り付けられた自己完結式慣性センサー・コンポーネントと基礎コントローラとの間に何らかの形のデータ伝送チャネルが設けられてもよい。通常の短距離無線RF伝送、たとえばＢｌｕｅｔｏｏｔｈ（登録商標）システムが、たとえば取り付けられたコンポーネント２０２から基礎コントローラ２０１にデータを伝送するために使われ、基礎コントローラ２０１において出力が相関されてもよい。あるいはまた、コンポーネント２０１および２０２のそれぞれの角度運動および／または直線運動を表すデータが、コンピュータ制御されるゲーム・ディスプレイに無線で送信され、ゲーム・ディスプレイのコンピュータによって相関させられて、コンピュータ・ゲームのプレイに必要とされる剛性コントローラの角度運動および直線運動を与えることもできる。
【００２９】
本発明の広い側面によれば、図４に示されるように、六つの軸に沿った感知を提供するために必要とされる自己完結式慣性センサーのすべてが一つのゲーム・コントローラに組み込まれてもよい。
【００３０】
先述したように、組み合わされた自己完結式慣性センサーは、制約のないユーザーによる動きを追跡するために、三つの直線軸および三つの角度軸のすべての感知を提供する必要がある。この要請は、さまざまな方法で満たすことができる。具体的には、ジャイロスコープが高々三つの、少なくとも六つの相異なる軸に対する読みを提供する加速度計およびジャイロスコープの任意の組み合わせが適切に位置されれば十分であろう。一つの三軸加速度計および一つの三軸ジャイロスコープを使うとき、センサーは、互いに対して任意の既知の関係で置かれてよい。角速度の読みの数が三つに満たないとき、組み合わされた自己完結式慣性センサーの互いに対する位置および配向は、現実的な機能する実施形態を提供するために重要である。任意の所与の組の自己完結式慣性センサーについて、そのような位置および配向の多くの組み合わせが現実的であろうが、加速度計を使うときのそのような現実的な組み合わせの決定については、上記の非特許文献２を参照してもよい。
【００３１】
ここで、図１〜図３のいずれかにおけるマウントされた自己完結式慣性センサーの相関を考える。これら三つの実施形態のそれぞれは、無線式複合ゲーム・コントローラと考えることができ、結果として得られるのは、自己完結式慣性センサーと、当該装置によって記録された加速度および角速度のデータを時刻tにおける世界座標系での当該装置の新しい位置および配向を計算するのに十分な情報に変換するプログラム・ルーチンとを含むシステムである。適切な変換については、上記の非特許文献２、特に6ページの式2.7を参照。該文献では、加速度計出力は世界座標系における直線加速度と物体座標系における角加速度との関数であることが述べられている。上に参照した論文における用途は、六つの一軸加速度計の使用を想定しているが、式2.7は、直接、観察された角速度を代入して、微分を取って角加速度を計算することによって、加速度計の代わりに一つまたは複数のジャイロスコープを扱うよう修正できる。すると三つの方程式を解くことにより、システムは、時間の経過に対するコントローラ内のある固定点の位置および配向を追跡できるようになる。前記各実施形態のコンポーネントのいずれにおいても、自己完結式慣性センサーのすべては、上記のような動いているコントローラの直線運動および角度運動を計算するのに十分な出力を提供するために現実的な自己完結式慣性センサーの組み合わせを提供するよう、位置され、配向されなければならない。そのようなセンサー配位のすべてが実用的ではないながら、驚くことに、三つの加速度計を使った構成のほとんどすべてが実用的であると判明することが見出されている。こうして、加速度計の位置および配向の配位は、複合ゲーム・コントローラの編成において、細かくではなく、大まかに調整するだけでよい。
【００３２】
上記の非特許文献２に関し、本発明の目的は、数十分の時間スケールでの数十メートルの精度という該文献の乗物スケールではなく、数秒の時間スケールにおけるセンチメートル・スケールの精度での動きの追跡であることも、注意しておくべきである。
【００３３】
より具体的には、図面に示した構造に関し、図１の実施形態の利点は、ドングル・プラグインが本発明の実際的な実施形態を表すということである。上述したように、動き感知ドングル１０３は、既存の動き感知ゲーム・コントローラ１０１の拡張ポート１０２に差し込まれる。たとえば、動き感知ゲーム・コントローラが任天堂（登録商標）Ｗｉｉ（登録商標）リモコンである場合、ドングルはその拡張ポートに差し込まれる。この実施形態は、動き感知機能をもつゲーム・コンソール（たとえば、任天堂（登録商標）Ｗｉｉ（登録商標）システム）のあらゆる消費者にとって入手可能な一つの動き感知ゲーム・コントローラにのみ依拠するので、商業的に現実的である。その際、複数の自己完結式慣性センサーを含む新しいドングルがほどほどのコストで生産できる。基礎コントローラ、たとえばＷｉｉ（登録商標）リモコンへの相互接続のため、この構成から望ましい動きデータを抽出するために特別な努力は要求されない。図５に関して後述するように、コントローラからゲーム・ディスプレイに向けられたゲーム・コントローラ信号は、Ｗｉｉ（登録商標）リモコン内の三軸加速度計からの出力と、ドングル内の複数の自己完結式慣性センサーからの相関された出力とを含むことになる。
【００３４】
図１の実施形態のもう一つの側面によれば、取り付けられたドングルは、動き感知するゲーム・コントローラのセンサー（たとえば三軸加速度計）と組み合わされたときに、センサーの読みの結果として得られる組み合わせが、時間に対するコントローラの位置および配向を推定するために十分であるような、十分な追加的な自己完結式慣性センサーを含んでいる。ドングルだけでは、必ずしも６変数すべてを完全に指定するのに十分でなくてもよいが、自己完結式慣性センサーの数およびそのドングル中でのだいたいの位置付けを選択することによって、そのようなドングルをＷｉｉ（登録商標）リモコンのような基礎ゲーム・コントローラに取り付けることを通じて、各デバイスが個々に有するデータが不十分だったとしても、６つの次元すべてにおける運動および配向を追跡する機能をもつ複合コントローラを創り出すことが可能になるのである。基礎ゲーム・コントローラが三軸加速度計を有するとして、ドングルの可能な実施形態は、三つの線形独立な軸をカバーするジャイロスコープを、あるいは二つ以下のジャイロスコープに角加速度を推定するための追加的な加速度計を合わせたものを含むことになる。基礎コントローラ中の三軸加速度計からドングル中の慣性センサーまで走る軸のまわりの角速度を測定するためのジャイロスコープが利用可能でない場合、精確な状態推定を得るためにユーザーの動きを制約することが必要になることがありうる。というのも、加速度計はこの軸のまわりの角加速度を直接検出することはできないからである。その制約は、システムによって、システムの任意のユーザーに、手首のこの動きをできるだけ制限する必要があると伝えるために伝達される。
【００３５】
代替的な実施形態が図２に示されている。ここでは、複数のゲーム・コントローラが組み合わされて複合コントローラを形成し、複合コントローラの共同センサーが全部で六つの直線／角度軸の感知を提供する。三つ以上のコントローラを含めることによって、あるいは三つの線形独立な直線軸および三つの線形独立な角度軸に沿って測定するために必要とされるよりも多くのセンサーを使うことによって、追加的な利点が見出されることもありうる。上記の実施形態で述べたように、複合コントローラの構成が角度軸のうちの一つまたは複数に沿った測定を許さない場合には、何らかの仕方でユーザーの動きを制約することが必要となることがありうることを注意しておく。しかしながら、センサーの読みが線形独立であれば、使えるのが加速度計だけだったとしても、非特許文献２に記載された方法は六つの軸すべてについて解くために十分であろう。
【００３６】
図２の実施形態の一つの利点は、既存の基礎コントローラからユーザーが複合コントローラを構築することを許容できるということである。しかしながら、この方法は、構成をシステムに知らせるために、デバイスごとの較正プロセスを必要とする可能性が高い。これは、ユーザーに、その複合コントローラを一連の簡単な静的姿勢に置いてもらう（コントローラを精密な弧に沿って動かすのではなく）ことによって実装できる。平らな表面上で、コントローラは、各動き感知ゲーム・コントローラの製造業者のフェースプレートを平らな表面上に載せて（すなわち、それぞれのy軸が重力の方向と揃えられる）、暫時安置したままにされる。この簡単な静的姿勢は、上で参照したアルゴリズムの構成を調整して、ユーザーが実際に創り出したものとより緊密に整合するようにすることを許容する。ここで先述したように、加速度計を組み合わせて直線運動および角度運動の追跡を提供する際、互いに対する加速度計の大まかな位置付けでさえ、これらの運動属性についてのあるレベルの追跡を提供する。さらに、加速度計の整列の比較的大まかなレベルの精度が、システムへのドメインレベルのフィードバックによって向上されることがありうる。それは最終的に累積しうる位置付けの誤差を緩和するのを助ける。したがって、加速度の読みの精度を外挿して、コントローラの最適位置付けについて、単なる知識に基づく推定だったものの埋め合わせをすることが可能になる。
【００３７】
上記の一般的なアルゴリズムは、一つまたは複数の繰り返された動きの終わりにおいてのみ、結果を報告するよう拡張されてもよい。ここで、各動きは同一の初期制約条件で始まり、時間および空間において本質的に同じ軌跡をたどり、最終的な速度および加速度は0になる。m≧1をそれらの繰り返される動きの数とする。すると、最終的な動き軌跡推定は、入力として、時間に対するm個の解すべてと、任意的にコントローラについての線加速度および角加速度についての、全m組の時系列センサー読みのデータを取ることができ、そのm個の入力の関数として計算された一つの最終的な解を出力することができる。
【００３８】
さらに、本アルゴリズムは、加速度計に基づく動き認識を使って、どの繰り返される動きがこの最終的な動き軌跡推定器への入力として受入可能かを制約するよう拡張されてもよい。本発明の各コントローラは動き信号を提供するので、提案されるユーザーとの適切なトレーニングまたは較正セッションを通じて、ジェスチャーが受入可能な動き信号の提供について分類されてもよい。すると、オリジナルとは著しく異なっている動きは、同定され、上記の総合（aggregation）プロセスから除去されることができる。
【００３９】
本アルゴリズムは、コントローラに累積した誤差が大きくなってリーズナブルな追跡情報をもはや与えなくなるまでになったとき、システムに通知するよう拡張されてもよい。本アルゴリズムはまた、計算された速度はいかなる時点においても、いかなる軸に沿っても、人間の限界を超えることは許されないといった、追加的な前提を入れて拡張されてもよい。
【００４０】
図５は、図１〜図４の装置に関して記載してきたものの簡単な図解である。コンピュータ制御された対話式ゲーム・ディスプレイ５００がゲーム・コントローラ５０３によって制御されるゲーム・アクション５０１を有する。ゲーム・コントローラ５０３は好ましくは本発明に基づく複合コントローラで、プレーヤーの動く手５０２によって何らかの経路５０６に沿って運ばれてもよい。経路５０６は直線成分５０４および角度成分５０５を有する。
【００４１】
コンピュータ制御されるディスプレイ５００およびハンドヘルド・コントローラ５０３内のプログラムは、プレーヤーがコントローラを何らかの開始位置に保持していると想定し、次いで、プレーヤーがコントローラを動かすと、プログラムは、数秒間は信頼できる形でコントローラ５０３の相対的な位置および配向を推定できる。その時間の間、ゲーム５００はコントローラの状態の表現を描く５０１ことができる。逆運動学（inverse  kinematics）のような既知の技法により、コントローラの状態はゲームにおけるアニメーションを駆動できる。たとえば、プレーヤーが物理的なコントローラを振ったのと同様の仕方で、ゲームのキャラクターが仮想的な剣を振ることができる。
【００４２】
ゲームの境界、すなわちゲーム・ディスプレイ５００に関するコントローラ５０３の動きの限界の位置は任意であり、ドメイン依存である。好ましくは、ゲーム・ディスプレイの初期位置のまわりに、ある半径がある。該半径は、たいていのゲーム・コントローラの動作範囲（operational  range）くらいである。
【００４３】
ここで図６を参照すると、図５に関して記載したようなコンピュータ制御されるゲーム・ディスプレイを使った本発明の動作におけるプログラムの一般化されたフローチャートが記載されている。
【００４４】
ユーザーがコントローラの動きを開始したかどうかについて、初期判定がされる（ステップ６０１）。コントローラの初期状態に関し、初期速度および加速度は0という制約が提案される。動きの初期判定が「YES」であれば、コントローラ内の全センサーからの読みを取得する必要がある。複合コントローラの場合、これは、基礎コントローラからのすべてのセンサーの読みおよび複合コントローラを較正する他のコンポーネントに付随する任意のセンサーからのすべての読みを含む。典型的には、センサー値は、何らかの好適な高い周波数で読まれ、センサーの読みからのデータは、プレイされているコンピュータ・ゲームと整合する適切な点で、コンピュータ制御されるディスプレイに、先述した短距離RF伝送を介して出力される（ステップ６０２）。センサー読みデータの伝送は典型的には、コントローラおよびコンピュータ制御されるゲーム・ディスプレイがオンにされるときは常に、1秒間に何百回も行われる。よって、ステップ６０２は単に、コンピュータ制御されるディスプレイが本発明と整合する仕方でそれらの読みを処理することを開始するということを含意するに過ぎない。次に、コンピュータ制御されるディスプレイに付随するプロセッサが、センサーの読みから角度運動を抽出するステップ６０３を実行する。このステップは、使用されるセンサーの具体的な構成に依存する。たとえば、三つのジャイロスコープが使われる場合、それらのジャイロスコープは角速度の読みを与え、それらの読みが一度積分されて、相対的な角度運動、すなわち配向の変化を得ることができる。代わりに加速度計が使われる場合、読みは角加速度を与えることになり、それらの読みは、二度積分されて、相対的な角度運動を得ることができる。もちろん、ジャイロスコープが一部の角度軸のために使われ、他の角度軸には加速度計が使われることもできる。その場合、ステップ６０３は、ジャイロスコープからの読みについては一度、加速度計からの読みについては二度積分する適切な動作を実行することになる。ステップ６０３で計算された配向の変化は、次いで、ステップ６０４で、その配向変化を加えることによって以前の配向推定を更新するために使われる。次いで角度運動を計算する際に使われなかったセンサーの読みが、センサー読みデータから抽出される（ステップ６０５）。典型的には、残っているセンサーの読みは加速度計からのもので、それらの加速度計の読みから、ステップ６０３からの角度運動の推定が除去され（ステップ６０６）、三つの直線軸すべてに沿った直線運動、すなわち位置の変化に起因する加速度を残すことができる。次いで、ステップ６０６で計算された推定された位置の変化を使って、コントローラの位置を更新できる（ステップ６０７）。コントローラが動かされ続ける際、動きが続けられているかどうかに関する判定がなされる（ステップ６０８）。YESであれば、プロセスはステップ６０２に戻る。NOであれば、ゲームが終了しているかどうかについてのさらなる判定がなされる（ステップ６０９）。YESであれば、ゲームは終了される。NOであれば、プロセスは分岐してステップ６０１に戻る。ここで、プレーヤーの次のコントローラ動きを待つ。
【００４５】
ここで図７を参照すると、ソフトウェア要素を使う一つの方法の概観が述べられる。
【００４６】
左側は、第一時間の状況７０６を示している。右側は、第二時間の状況７０７を示している。
【００４７】
第一の時間期間７０６（図７では過去として示されている）において、ゲーム・プレーヤー７０２は自己追跡オブジェクト７０３を保持している。自己追跡オブジェクト７０３からの出力はゲーム・コンソール７０４に無線または他の何らかの技法によって通信されている。ゲーム・コンソール７０４はゲームと関連して動作する。ゲームはゲーム世界（たとえば創作の、架空の世界）の描写をディスプレイまたはその他の呈示装置７２０上に呈示している。
【００４８】
第二の時間期間７０７（図７では現在として示されている）において、プレーヤーは自己追跡オブジェクト７０３でジェスチャーまたは他の動き７１１を実行する。動き７１１は並進成分７１２および回転成分７１２を含む。この動きの結果、デバイスは、第一の時間期間７０６における第一の配位７０８から、第二の時間期間７０７における第二の配位７１４へと動かされる。動き７１１に応答して、自己追跡オブジェクト７０３は一つまたは複数の時系列のデータを生成する。該一つまたは複数の時系列データは動き７１１を記述するものである。
【００４９】
ゲーム・コンソール７０４上で実行される、あるいは別のデバイス上で実行されゲーム・コンソール７０４がアクセスできるソフトウェア要素７０５は、動き７１１に応答して自己追跡オブジェクト７０３によって生成された時系列データの少なくとも一部を解釈して、呈示装置７２０をして、第一の配位７１５から第二の配位７１６へと動く、自己追跡オブジェクト７０３に対応するオブジェクト（ゲーム世界における何らかの架空のキャラクター）の対応するアニメーションを表示させる。ある実施形態では、これらのソフトウェア要素７０５は、ここに記載される方法を使うことで、他の場合に可能であるより忠実な前記の動きの対応するアニメーションを生成する。
【００５０】
ここで図８を参照すると、ある実施形態で使われる、自己追跡オブジェクトに適用される逆あてはめアルゴリズム（backfitting  algorithm）が記載される。
【００５１】
最も一般的なケースでは、動きは三次元で生起し、並進の自由度３つ、さらに回転の自由度３つがある。説明の目的のため、そして二次元のページでの表現の簡単のため、以下の記載は二次元の動き８１１に関するものとなっている。しかしながら、以下の二次元の場合についての記載は、本方法が三次元の動き８１１にどのように適用されるかを十分すぎるほど例解している。したがって、当業者は二次元の動き８１１に関する本方法の記載から、同じ方法を三次元の動き８１１に関してどのように適応するかを、簡単に理解するであろう。
【００５２】
何らかの第一の配位にある図７に示された動き感応装置７０３のような自己追跡オブジェクトについて動き８１１が始まる。前記第一の配位では、位置８０１および配向８０２は既知であるか、あるいは少なくとも既知であると想定される。オブジェクトの初期配位を推定する諸方法は、以下により詳細に述べる。ある実施形態では、自己追跡オブジェクトの配向８０２は加速度計の読みから推定される。加速度計の読みは、瞬間的な静穏期間の間に、自己追跡オブジェクトに対する重力の方向を指示するのである。加速度計およびジャイロスコープからのセンサー読みに応答して、ソフトウェア要素７０５は、静穏期間中であるかどうかを判定する。ある実施形態では、原点は自己追跡オブジェクトの位置に設定される。
【００５３】
代替的な諸実施形態では、初期配位についての情報を推定するために、直接ポインティング・デバイスからの情報が使用されてもよい。たとえば、自己追跡オブジェクトがレーザー・ポインタを含んでいてもよく、それをユーザーが呈示装置８２０のほうにまたはソフトウェア要素７０５に位置が知られている他の何らかの装置のほうに向けることによって、向き付けしてもよい。当業者は、自己追跡オブジェクトの開始時の配位に関して、多様な他のおよびさらなる可能なセンサー、想定またはセンサーおよび想定の両方が使用されうることを認識するであろう。
【００５４】
自己追跡オブジェクトが動くにつれて、ソフトウェア要素７０５はジャイロスコープおよび加速度計の読みを積分し、組み合わせ、自己追跡オブジェクトの時間変動する配位における変化の推定を提供する。以下の式は、単純化された例示的な計算を示す：
・配向(t＋dt)＝配向(t)＋Gyro(t)×dt      (1)
・速度(t＋dt)＝速度(t)＋｛配向(t)×［Acc(t)−（時刻tにおける回転からの向心加速度）］−重力｝×dt      (2)
・位置(t＋dt)＝位置(t)＋速度(t＋dt)×dt      (3)。
【００５５】
上記の式(1)において、Gyro(t)は時刻tにおける角速度の三つの直交する読みを含む。以前の読み以来経過した時間dtをかけることによって、該以前の読み以来の各軸のまわりの角度変化が得られる。この変化が以前の配向推定に適用できる。これらの計算をする実施形態は、配向情報が保存される形に依存する。ゲーム業界では、この目的のためには四元数が普通に使われる。その場合、Gyro(t)×dt項からの角度変化は、四元数回転に変換され、四元数の算法を使って加えられることができる。
【００５６】
式(2)において、Acc(t)はオブジェクトの基準座標系における時刻tにおける加速度の三つの直交する読みを含む。加速度計が物理的にジャイロスコープと同じ位置にない場合、計算はまず、加速度計がジャイロスコープの位置のまわりを回転していることから帰結する一切の加速を差し引く。たとえば、加速度計がオブジェクトのz軸に沿って変位されている場合、以下の調整が加速度計の読みに対してなされる必要があろう。Acc(t)とGyro(t)はベクトルなので、そのそれぞれのスカラー成分を指すために[0]、[1]および[2]が使われる。
・Acc(t＋dt)[0]を、AA[1]×zOffset−（Gyro(t＋dt)[0]×Gyro(t＋dt)[2]）×zOffsetだけ増やす
(4)
・Acc(t＋dt)[1]を、−AA[0]×zOffset−（Gyro(t＋dt)[1]×Gyro(t＋dt)[2]）×zOffsetだけ増やす
(5)
・Acc(t＋dt)[2]を、（Gyro(t＋dt)[0]^2＋Gyro(t＋dt)[1]^2）×zOffsetだけ増やす
(6)
ここで、
AA[0]＝（Gyro(t＋dt)[0]−Gyro(t)[0]）／dt
(7)
AA[1]＝（Gyro(t＋dt)[1]−Gyro(t)[1]）／dt
(8)。
【００５７】
調整された加速度計の読みは、オブジェクトの現在の配向を使って、オブジェクト座標系から世界座標系に変換される。重力に起因する加速（地球表面上では約9.8m/s/s）が差し引かれる。オブジェクト位置の三次元方向のそれぞれにおける変化はdt×dtを乗算することによって見出すことができる。
【００５８】
これらの計算または等価な計算を使って、ソフトウェア要素７０５は、点線８０３で示されるような位置および配向の推定を生成できる。ノイズ、限られた精度またはその他の要因などによって引き起こされるセンサー読みの誤差の累積のため、あるいは時系列データの伝送の誤差に起因して、自己追跡オブジェクトの実際の位置および配向は、現実からは少なくともいくらか違った位置および配向８０５の組の推定を生成する可能性が高い。時間がたつと、この違いはゲーム・コンソール７０４およびゲームの動作にとって有意となるに十分になることがある。たとえば、時間がたつとともに、推定された位置および配向推定値を結合することによって生成されたアニメーションがプレーヤーにとってますます非現実的に見えるようになるのに十分大きくなることもある。
【００５９】
時折、ソフトウェア要素７０５は、動き感応オブジェクト７０３の位置および配向に関する追加的な情報を受け取る。該情報は識別可能な時間に利用可能になる。その結果、ソフトウェア要素７０５は、新しい瞬時的な位置８０６ａおよび配向８０６ｂを決定できる。第一の例として、これは、プレーヤーが動き感応装置７０３を動かすのを止め、その結果、識別可能な静穏期間にはいる場合に起こることができる。第二の例として、ソフトウェア要素７０５は、上記のポインティング・デバイスのような他のセンサーからの読みを受信することがある。その結果、その時点で、新しい瞬時的な位置８０６ａおよび配向８０６ｂの少なくとも何らかのサブセットをより精密に推定できる。配位についてのこれらの新しい推定値を計算するいくつかの例をのちに述べる。
【００６０】
精密な情報または他の補正情報が利用可能になるとき、本願発明者らは、その情報は、単にその時点におけるより信頼できる推定値を得ること以上のために使えることを発見した。具体的には、その情報は、センサーの読みの最近の履歴の少なくとも何らかの部分にわたる誤差について何かを推定するために使うことができる。そうした誤差推定を考慮に入れることによって、図８の実線８０４で示されるような新しい軌跡が計算されることができる。新しい軌跡８０４はまだ自己追跡オブジェクトの実際の軌跡の完璧な反映ではないことがありうるが、本願発明者らは、単なる元の推定よりは精確で有用なものであると見出した。特に、遅延はされるが、プレーヤーにとって、実行されたばかりの動き８１１のより精確な表現と見えるアニメーションを駆動するために使うことができる。
【００６１】
ある実施形態では、再推定された軌跡の計算は、次の要素およびステップを含む。
【００６２】
再推定された軌跡の計算は、二つの範疇の誤差に主たる関心を寄せる。
【００６３】
・第一の範疇は、異なる時点においてセンサーに対する効果が本質的にランダムである誤差を含む。そのような誤差は、センサーの読みの報告におけるノイズ、限られた精度に起因するセンサーの読みの報告における打ち切り誤差などに応答したものでありうる。一例として、ジャイロスコープの読みが8ビット値として報告される場合、これは、本質的にランダムな誤差――真の値とこの限られた精度に丸められる値との間の差――の効果をもつことになる。
【００６４】
・第二の範疇は系統的な、すなわち、ある特定のセンサーのデータが時間がたっても実質的に一貫した仕方で影響される誤差を含む。そのような誤差は、そのセンサーの較正誤り（たとえば、本当の0の値について報告されたセンサー・データが、有限の0でない値に誤って較正されることがありうる）に応答したものでありうる。
【００６５】
再推定された軌跡の計算は、まず配向の誤差に対処する。動き時間のこの区間についての初期位置をt0と記し、時刻t1ないしtk（両端含む）におけるk回の更新を想定すると、時刻tkにおける予測される配向は
・配向(t0)＋Σi=1  to  k  Gyro(ti)×(ti−ti-1)      (9)
となる。
【００６６】
予測される配向は、各Gyro(ti)を（tgtOrient−配向[tk]）／(tk−t0)×(ti−ti-1)だけ調節することにより、強制的に目標配向（target  orientation）に合わせられることができる。
【００６７】
計算は、これらの調節を、上記の二つの誤差源に割り当てる。ランダム誤差の範疇をkステップのランダムウォークと見ると、典型的な変位（√k）×err<sensor>があるはずである。ここで、err<sensor>は個々の読みに対するそのセンサーについての典型的な誤差である。この値は、実験解析によって決定できる。残りの誤差は、もしあれば、ジャイロスコープ上のオフセット誤差であると想定でき、将来の読みに対して適用できる。ある実施形態では、適用される最大補正を制限して、残留補正がもしあればそれをさらなる未知の因子に帰することが望ましいことがありうる。
【００６８】
計算は同様の手順を、位置の更新の際に配向の新しい推定値を使って、加速度計の読みを調節するために適用する。位置についての手順は、いくらかより込み入っている。というのも、加速度計の読みに適用される調節は、その時点のセンサーの配向に依存して最終的な位置に対して異なる効果をもつからである。まず、計算は、新しい調節された配向および向心加速度（centripetal  acceleration）が正しいと想定する。すると計算は、上記の式(2)および式(3)を使って、三つの加速度計の読みのそれぞれの、各ステップについての位置の三つの成分のそれぞれに対する効果を算出できる。これは、時刻tkについては、位置の三つの成分jのそれぞれについて、
・位置(tk)[j]＝位置(t0)[j]＋速度(t0)[j]×(tk−t0)＋Σi=1  to  k  φ×Acc(ti)×(ti−ti-1)×(tk−ti)      (10)
という効果をもつ。ここで、φは、配向(ti)が与えられたとき、Acc(ti)の各成分が速度の成分jに対してもつ効果を示すベクトルである。
【００６９】
この式は、Accの読みの変化が最終的な位置にどのように影響するかを支配する。計算は、目標位置に合わせるためにAccに対してなす最小の調節を見出すために解く。これらの調節に応答して、計算は、上記の方法を使って、それらをノイズ誤差とオフセット誤差との間で分ける。
【００７０】
再推定または逆あてはめのプロセスは、動き８１１の終わりに一度起こるだけということに制限されない。動き８１１の期間の間、どんなに短くても長くても、追加的情報が利用可能になるときは常に、その追加的情報は、現在の動き８１１およびその任意の過去の一部についての、再同期および再推定ステップとして組み込まれることができる。普通なら動き感知装置７０３によって導入されるかもしれない何らかの誤差をより信頼できる形で推定するために先に向かって使われることもできる。線８０８は、ソフトウェア要素７０５によって、第一のセットの推定パラメータを使って生成された第一の位置および配向経路を示している。線８０７は、上記のような新しい情報を組み込んだのち、かつ線８０８によって示される位置および配向経路を再推定したのち、ソフトウェア要素８０５によって、第二のセットの推定パラメータを使って生成された第二の位置および配向経路を示している。このプロセスは、繰り返し、逐次的に適用されることができる。その結果、ソフトウェア要素７０５は、動き８１１の忠実な追跡の比較的より長いシーケンスを、精確に決定しうる。
【００７１】
上記の計算は、推定される軌跡およびセンサー誤差を調節するために、目標配位についての情報を使う。代替的な実施形態では、計算は、目標速度についての情報を使ってもよい。そのような場合、計算は、上記の式(10)の代わりに下記の式(11)
・速度(tk)[j]＝速度(t0)[j]＋Σi=1  to  k  φ×Acc(ti)×(ti−ti-1)      (11)
を使うことによって得られる対称的な手順を使う。
【００７２】
ここで図９を参照して、以下ではゲーム・コントロール・システムにおける情報の流れのデータ流れ図について述べる。
【００７３】
自己追跡オブジェクト９１７は一組の生のセンサー読み９０２を提供し、これをデバイス・ドライバ９０１が自己追跡オブジェクト９１７から受信する。デバイス・ドライバ９０１はハードウェア較正ステップを適用して、一組の較正されたセンサー読み９０８を生成する。ハードウェア較正の技法は当業者には知られており、たとえば、（ａ）既知のまたは計算された温度変動に従って生のセンサー読み９０２を修正すること、ならびに（ｂ）自己追跡オブジェクト９１７の製造工程で導入されたかもしれない誤差を補償することが含まれる。製造誤差は、自己追跡オブジェクト９１７が製造されるときに、工場で実行される較正ステップで検出してもよい。
【００７４】
ある実施形態では、ゲーム９１１は、自己追跡オブジェクトの初期配位についての想定９１０を定式化する。これらの想定は、ソフトウェア要素７０５がオブジェクトの初期配位についてなすべき想定を含むことができる。たとえば、ゲーム９１１は、オブジェクトの初期位置または配向の一つまたは複数の成分を供給してもよい。
【００７５】
配位初期化器９０９は、ゲーム９１１によって供給されたこれらの想定９１０を受信する。これらの想定９１０から、配位初期化器９０９は、追跡器９１８によって使用される初期配位を決定する。
【００７６】
ある実施形態では、ゲーム９１１は、オブジェクトについての初期位置と、オブジェクトの重力に対応する、ここでz軸と記される軸のまわりの回転についての想定される値とを提供する。配向の他の二つの成分は、慣性センサーからの読みに応答して、配位初期化器９０９によって計算できる。この計算は、オブジェクトが静止しているときに実行できる。
【００７７】
ある実施形態では、配位初期化器９０９は、センサーからの情報を使って、その装置が現在動いているかどうかを推定する。たとえば、自己追跡オブジェクト９１７が静止していると想定または検知できる場合、重力加速度の読みが、配向情報を推定するために使用できる。装置が比較的動きがないとき、ジャイロスコープの読みは、みな0に近く、センサーによって報告される加速度はほとんど完全に重力に起因するはずである。そのような場合、加速度計の読みは、時間がたっても一貫しているはずで、1G（約9.8m/s/s）の加速度を近似するノルムをもつ。これらの条件が実質的に満たされているとき、配位初期化器９０９はそのオブジェクトが実質的に静止していると判定する。
【００７８】
配位初期化器９０９が配位の二つの成分を決定できるのは、加速度計の読みを完全にz軸方向に揃えるのに必要な世界座標系における回転を見出すことによる。ある実施形態では、配位初期化器９０９は軸を最大の加速度計の読みに揃えるための一組の回転を決定する。この計算は、次の擬似コードで示されるようにして実行されうる：
――――――――――――
if  最大軸がX軸正方向
largeRot[Z]＝M_PI/2;  largeRot[X]＝M_PI/2;
else  if  最大軸がX軸負方向
largeRot[Z]＝−M_PI/2;  largeRot[0]＝M_PI/2;
(11)
――――――――――――
if  最大軸がY軸正方向
largeRot[Z]＝M_PI/2;  largeRot[0]＝M_PI/2;
else  if  最大軸がY軸負方向
largeRot[Z]＝0;  largeRot[0]＝M_PI/2;
(12)
――――――――――――
if  最大軸がZ軸正方向
largeRot[Z]＝0;  largeRot[0]＝M_PI;
else  if  最大軸がZ軸負方向
largeRot[Z]＝0;  largeRot[0]＝0;
(13)
――――――――――――
largeRotを使って初期配位を設定
(14)
――――――――――――
gravReading＝初期配位×Acc;
rotX＝−atan（gravReading(Y)／tmpReadings(Z)）;
(15)
――――――――――――
X軸のまわりに追加的なrotX回転することにより初期配位を調節
(16)
――――――――――――
gravReading＝初期配位×Acc;
rotY＝atan（tmpReadings(X)／tmpReadings(Z)）;
(17)
――――――――――――
Y軸のまわりに追加的なrotY回転することにより初期配位を調節
(18)
――――――――――――
。
【００７９】
配位初期化器９０９は、残りの成分を、ゲームからの入力を使って設定する。ある実施形態では、配位初期化器９０９はz軸のまわりの回転は0であると想定する。
【００８０】
もし他のセンサー読み、たとえば上記のようなポインティング・デバイスからの読みが利用可能であれば、配位初期化器９０９はそれらの他のセンサー読みを、初期配位についての情報を決定するために使ってもよい。
【００８１】
最初に、追跡器９１８は、現在の配位は初期配位９１２であると想定する。時間がたつにつれて、追跡器９１８は、較正されたセンサー読み９０８に応答して初期配位に変化を適用することによって、現在の配位を決定する。
【００８２】
ある実施形態では、自己追跡オブジェクト９１７のセンサーは、自己追跡オブジェクト９１７の位置および配向の変化を追跡するために十分なジャイロスコープおよび加速度計を含む。上記のように、ソフトウェア要素７０５は既知の原理に従ってジャイロスコープおよび加速度計の読みを積分し、組み合わせる。
【００８３】
９１７内のセンサーの精度および解像度に依存して、既知の技法は、コンピュータ・ゲームのある実施形態で使うために信頼できる配位推定値を生成するのに十分でない可能性がある。したがって、本願発明人らは、推定値の信頼性を著しく改善し、したがって新たなクラスのアプリケーションを可能にする技術を見出した。
【００８４】
ある実施形態では、追跡器９１８は、較正されたセンサー読み９０８に制約条件を適用する。これらの制約条件に含まれるものとしては、読みをクランピングして許容可能な範囲にする、読みから計算された値をクランピングして既知の範囲にする、抵抗項（drag  term）を導入する、あるいは手のぶれを有意な動きと誤解釈するのを避けるために閾値としてはたらく最小インパルスを要求する、といったことがある。
【００８５】
ひとたび追跡器９１８が較正された読みを制約したら、慣性案内の技術および関連分野からの既知の諸技法を使って、配位推定９０５を生成する。配位推定は補正器９０７に送られ、補正器９０７は該推定を調節して、補正された推定９１６を生成する。ある実施形態では、補正は、上記の逆あてはめアルゴリズムを使って動的に計算され、保存され９０３、定期的に更新される９０６。いかなる仕方であれ限定することは意図していないが、補正の例として、次のようなものが含まれる。
【００８６】
●追跡器９１８は、自己追跡オブジェクト９１７は人間の形の機械的モデルによって制約される動きに従うと想定することによって、自己追跡オブジェクト９１７の動きに対する制約条件を部分的に決定してもよい。たとえば、ゲーム・プレーヤーの腕が非現実的な曲がり方をしない限り起こりえない動きのように、ある位置推定が四肢の長さについての想定を破ることが知られる場合、推定９０５はしかるべく補正できる。
【００８７】
ある実施形態では、追跡器９１８は、人間の形のモデルの位置および配向についての推定を、その人物が自己追跡オブジェクト９１７を動かしている際に、行ってもよい。たとえば、追跡器９１８は、その人間の形の腕、肩およびコントローラを保持する手の、定期的な（または他の仕方で規定された）時間シーケンスにおける各時間ステップでの位置および配向の推定を決定してもよい。これは、人体の関連する各関節についての角度ならびに可能性としては筋肉組織の伸張、まとめて本稿では「姿勢（ポーズ）」と称されるものを推定することを含むことになろう。その推定にはたとえば、R.  Featherstone,  "Robot  Dynamics  Algorithms"に記載されるような逆運動学のための既知の技法を使う。
【００８８】
そのような諸実施形態において、追跡器９１８は、それぞれのそのような推定される姿勢を検査し、その推定を、推定される姿勢の現実性（likelihood）のために調節する（自己追跡オブジェクト９１７の推定される位置および配向の現実性のためにその推定値を調節することへの追加として、またはその代わりとして）。何らかの特定の推定される姿勢の現実性とは、（ａ）人間の生理についての情報、たとえば肘、肩、手首などがどのように回転できるか、ならびに、（ｂ）自己追跡オブジェクト９１７がコントローラとして使用されている特定の用途についての情報を使って決定されてもよい。
【００８９】
たとえば、自己追跡オブジェクト９１７が野球のバットをシミュレートするために使われている実施例、たとえばスポーツ・ゲームでは、追跡器９１８は個別的な野球バット・スイング動きの現実性を評価し、野球バットを振るプレーヤーによって実行された場合のその現実性に応じてそれらのスイング動きに関係する姿勢に割り当てることができる。これは、野球バットを振るプレーヤーが（想像上の）野球のボールにコンタクトする姿勢がそうでないものよりもより大きな現実性を有するという効果をもつことになる。さらに、追跡器９１８は、一つまたは複数の単純化する想定を利用することができる。たとえば、野球バットを振るプレーヤーは、自己追跡オブジェクト９１７を振る間、両手で握って、比較的じっと、まっすぐに立っているといった想定である。
【００９０】
そのような実施形態において、追跡器９１８が、人間の生理を考えたとき、あるいは自己追跡オブジェクト９１７がコントローラとして使われている特定の用途についての情報の性質を考えたときにありそうもないと見なす推定される姿勢（または一連の姿勢）に遭遇するとき、追跡器９１８は（ａ）その推定された姿勢または一連の姿勢を調節してより現実性のあるものにする、および（ｂ）自己追跡オブジェクト９１７の動き、よって結果として姿勢または一連の姿勢を、を再推定してその調節に一致するようにする、ことができる。
【００９１】
代替的な諸実施形態において、人間の形について、その人物が自己追跡オブジェクト９１７を動かしている際の姿勢の明示的なモデルが必要でなくてもよい場合がありうる。そのような場合、追跡器９１８は、何らかの特定の姿勢または一連の姿勢がありそうかありそうもないかを判定するために、その人間の動きについての論理的な想定を使ってもよい。たとえば、人間が――その用途の性質により――比較的固定した位置に立っていると想定されてもよさそうな場合、自己追跡オブジェクト９１７の報告または推定される位置でその比較的固定した位置から遠すぎるものは一切、その距離に応じて調節されてもよい。これは、自己追跡オブジェクト９１７のどんな報告または推定される位置も、その人間の初期位置を取り囲むボックスまたは球内に留まるよう実質的に制約され、その人間が典型的に物理的に届く範囲によって制限されることになるという効果をもつ。
【００９２】
●追跡器９１８は、時折、自己追跡オブジェクト９１７の重力に対する角度配位、すなわち自己追跡オブジェクト９１７がその瞬間、「上」または「下」からどの角度を指しているかを検出してもよい。たとえば、自己追跡オブジェクト９１７が静穏状態にはいる場合、自己追跡オブジェクト９１７の角度配位はしかるべく調節されることができる。
【００９３】
●追跡器９１８は、時折、自己追跡オブジェクト９１７が静穏でありそうな期間にあると想定してもよい。たとえば、ゲームが、ゲーム・プレーヤーにとって何もすることがなく、よってゲーム・プレーヤーは自己追跡オブジェクト９１７を動かしていない可能性が高いということを示すときがその例である。追跡器９１８が静穏でありそうな期間を検出できれば、自己追跡オブジェクト９１７の相対的な速度および角速度が決定でき、自己追跡オブジェクト９１７の位置および配向を記述するパラメータがしかるべく調節されることができる。
【００９４】
●追跡器９１８は、時折、ゲーム・プレーヤーのようなユーザーからデータを受領してもよい。該データはユーザーが供給し、自己追跡オブジェクト９１７の位置および配向を決定する際に支援するために使うことができる情報を示す。
【００９５】
第一の例として、ユーザーが自己追跡オブジェクト９１７上のボタンを押し、そのボタンが銃をシミュレートするために使われる用途（たとえば「一人称シューティング・ゲーム」）である場合、追跡器９１８はそのボタン押下のタイミングを使って、自己追跡オブジェクト９１７の可能な位置または配向の組を、たとえば自己追跡オブジェクト９１７が、シミュレートされる銃が実際に標的のほうに向けられるような配向であるものに、制約してもよい。
【００９６】
第二の例として、ユーザーが、自己追跡オブジェクト９１７に付随するコンソールを使ってテキスト・データを入力する場合、追跡器９１８はそのテキスト・データを使ってもよい（あるいはそのようなテキスト・データが入力されているという事実を使ってもよい）。その結果、追跡器９１８は、自己追跡オブジェクト９１７の位置および配向の決定をしかるべく調節しうる。
【００９７】
●追跡器９１８は、時折、追加的なセンサーから入力値を受信してもよい。追加的なセンサーとはたとえば、ライトペン、赤外線リモート・センサーまたは自己追跡オブジェクト９１７の配向の他の指示器である。追跡器９１８は、追加的なセンサーからのそれらの値を使って、自己追跡オブジェクト９１７の可能な位置または配向の組を制約してもよい。その結果、追跡器９１８は、自己追跡オブジェクト９１７の位置および配向の決定をしかるべく調節しうる。
【００９８】
補正された推定９１５は、次いで、ゲーム内の制約条件および想定に基づいてさらに補正されることができる。いかなる仕方であれ限定することは意図していないが、補正の例として、次のようなものが含まれる。
【００９９】
●追跡器９１８は、自己追跡オブジェクト９１７の位置および配向に対する制約条件を、動きの終わりにおける自己追跡オブジェクト９１７の可能な最終的な配位の組について想定する制限に従って、決定してもよい。たとえば、ある運動（または運動の任意の部分）の終わりに自己追跡オブジェクト９１７がユーザーの頭または体と同じ空間位置にくる場合、あるいは壁またはゲーム・コントローラ自身と同じ空間的位置にくる場合、追跡器９１８は、自己追跡オブジェクト９１７の可能な位置および配向の組を制限してその可能性を排除し、自己追跡オブジェクト９１７の位置および配向の決定をしかるべく調節してもよい。
【０１００】
●追跡器９１８は、自己追跡オブジェクト９１７の可能な動きの組にゲームの制約条件を適用してもよい。これはたとえば、自己追跡オブジェクト９１７がゲーム・プレーヤーによって、特定の型のオブジェクトをエミュレートするために（たとえば、ファンタジー・ゲームにおいて剣を使うために、あるいはスポーツ・ゲームにおいてゴルフ・クラブを使うために）使われている場合である。したがって、追跡器９１８は、可能な動きの組を、したがって、自己追跡オブジェクト９１７の相対的な位置および配向の変化を、しかるべく制限してもよい。
【０１０１】
第一の例として、自己追跡オブジェクト９１７が剣をシミュレートするために使われた用途（たとえば、ファンタジー・ロールプレイング・ゲーム）では、追跡器９１８は、ゲーム世界において、固い壁または他の剣など、ある種のオブジェクトを通過したり、そうしたオブジェクト内でその動きを終えたりすることができないよう、そのシミュレートされた剣の可能な動きを制限することができる。
【０１０２】
第二の例として、自己追跡オブジェクト９１７が野球のゲームにおける野球のバットをシミュレートするために使われていた用途では、追跡器９１８は、シミュレートされるバットの可能な動きを、野球ゲームにおいてバットがストライクゾーン内またはその近くに留まるよう制限することができる。これは、（ａ）可能なアニメーションの範囲を限定し、よってそのアニメーションを実行するタスクを簡略化する、（ｂ）自己追跡オブジェクト９１７の追跡における比較的大きめの誤差を検出する、および（ｃ）人間による異常な行動、たとえばその人間がシミュレートされるバッティング領域から歩み去る決断をする場合などを検出する、といった効果を有することになるだろう。
【０１０３】
●自己追跡オブジェクト９１７を使ったアプリケーションは、動き認識信号の使用に関わりうる。動き認識信号はたとえば、米国特許出願第11/486,997,  "Generating  Motion  Recognizers  for  Arbitrary  Motions"において詳細に記載されるようなものである。そのような場合、動き認識信号は、自己追跡オブジェクト９１７の動きを、一組の事前選択された動きの諸クラスのうちの一つ（または可能性としては二つ以上）に分類する。
【０１０４】
一例では、自己追跡オブジェクト９１７が一つまたは複数の台所用品をシミュレートするために使われる用途（たとえば、料理に関係するゲーム、シミュレーションまたは教育環境）では、追跡器９１８は、自己追跡オブジェクト９１７による動きを、そうした環境で使われる既知のジェスチャー、たとえば揚げる、ひっくり返す、刻む、たたくなどに分類する動き認識器を使ってもよい。自己追跡オブジェクト９１７を保持している人間による任意の動きが、これらの既知のジェスチャーの一つまたは複数に分類されることになる。その結果、動きをそれらの既知のジェスチャーの一つまたは複数に割り当てる動き認識信号が与えられる。
【０１０５】
さまざまな実施形態において、動き認識信号は（ａ）動きを特定のジェスチャーとして一意的に分類する、（ｂ）動きを一組の可能なジェスチャーの一つとして分類する、（ｃ）動きをそれらの可能なジェスチャーのそれぞれの確率またはその他のスコアに関連付ける、などしうる。
【０１０６】
追跡器９１８は、動き認識信号から得る知識――動きの、ジェスチャーの特定のクラスへの割り当て――を使って、自己追跡装置９１７の位置および配向の可能な推定の組を、動き認識信号と整合するものに制限することができる。
【０１０７】
たとえば、いかなる仕方であれ限定することは意図していないが、動き認識信号が自己追跡装置９１７（フライパンをシミュレートしている）がたった今オムレツをひっくり返すのに使われたことを示すとすると、自己追跡装置９１７から受領されたセンサー読みまたは時系列データで、そのジェスチャー（たとえば、野菜を刻むことまたは肉をたたくことに関連しそうな動き）と整合しない一切のものは、誤っている、意図されていないまたは無意味である可能性がより高いと見なされてもよい。すると追跡器９１８は、それらのセンサー読みまたは時系列データの使用を制動してもよい。その結果、自己追跡装置９１７の位置および配向の改良された、あるいは少なくともより整合的な推定が得られる。さらに、自己追跡装置９１７を保持する人間による無意識または意図しない動きから整合しない動きが帰結した場合、追跡器９１８はその人間に、改良された追跡の知覚を提供できることになる。
【０１０８】
さまざまな実施形態において、動き認識信号は、動きを特定のジェスチャーに関係させる追加的な情報を提供しうる。たとえば可能性としては、（ａ）その動きと分類された各ジェスチャーとの間の距離の指標の評価、あるいは（ｂ）その動きとジェスチャーの特定のクラス内の特定のプロトタイプとの間の距離の指標の評価である。
【０１０９】
たとえば、いかなる仕方であれ限定することは意図されていないが、動き認識信号が、自己追跡装置９１７（フライパンをシミュレートしている）がたった今オムレツをひっくり返すのに使われたことを示すが、自己追跡装置９１７（鋭いナイフをシミュレートしている）がたった今野菜を刻むために使われたというリーズナブルな代替的な解釈があるとすると、追跡器９１８は、選ぶべきそれらの可能性の間の曖昧さを使って、曖昧なそれらのセンサー読みまたは時系列の使用を制動することについて、それほど積極的でなくてもよい。
【０１１０】
ある実施形態では、各特定のジェスチャーに規範的アニメーションが関連付けられていてもよい。その結果、特定の動きに応答して実際に呈示されるアニメーションは、自己追跡装置９１７の推定された実際の動きと、検出され分類されたジェスチャーに割り当てられている規範的アニメーションとの混合であってもよい。いくつかのアプリケーションでは、これは追跡器９１７に、「フィットへのスナップ」を実行する、すなわち実際の動きを、人間によって実際に実行された近似ではなく、そのジェスチャーが理想的に実行されるべき仕方（または仕方の一つ）で呈示することを許容することになる。代替的な諸実施形態では、呈示されるアニメーションは、動きが検出され分類されるべきジェスチャーの二つ以上のクラスに関連付けられた規範的アニメーションの重み付けされた混合であってもよい。その混合の相対的な重みは、各クラスへの距離の指標に応じて、各クラスに関連付けられた確率に応じて、などであってもよい。
【０１１１】
●同様に、規範的アニメーションは、特定のジェスチャー・クラス内の特定の各プロトタイプに関連付けられてもよい。そのような場合、特定の動きに応答して実際に呈示されるアニメーションは、（ａ）それらのプロトタイプ・ジェスチャーに関連付けられた諸規範的アニメーションの混合であってもよいし、（ｂ）それらのプロトタイプ・ジェスチャーに関連付けられた諸規範的アニメーションにフィットすべくスナップされてもよいし、（ｃ）それらのプロトタイプ・ジェスチャーの一つまたは複数に関連付けられた規範的アニメーションおよび自己追跡装置９１７の実際の動きの混合であってもよい。そのような各場合において、混合する各可能性に関連付けられる重みは、上記のような指標に応じたものでよい。追跡器９１８は、時折、DPD（直接ポインティング・デバイス［direct  pointing  device］）の読みを受領してもよい。たとえば、自己追跡オブジェクト９１７が、該自己追跡オブジェクト９１７の整列からの既知の配向において、一組のLEDまたは他の電磁的もしくは音響的整列要素と整列されていることを判定するなどである。追跡器９１８は、それらのDPD読みを使って、自己追跡オブジェクト９１７の可能な位置または配向の組を制約してもよい。その結果、追跡器９１８は、自己追跡オブジェクト９１７の位置および配向の決定をしかるべく調整しうる。
【０１１２】
●追跡器９１８は、時折、自己追跡オブジェクト９１７がもはや動いていないと想定してもよい。たとえば、ゲーム・コントローラが、ユーザーが取るべき行動がないことを示すときなどである。追跡器９１８は、その想定を使って、自己追跡オブジェクト９１７の可能な位置または配向の組を制限してもよい。その結果、追跡器９１８は、自己追跡オブジェクト９１７の位置および配向の決定をしかるべく調整しうる。
【０１１３】
ゲーム補正された推定９１２は、ゲームに通信して返され、典型的には該ゲームにおいて自己追跡オブジェクト９１７に対応するゲーム要素の動きに対応することが意図されているアニメーションを駆動するために使われる。たとえば、ゲーム要素が剣（ファンタジー・ゲームでの）またはゴルフ・クラブ（スポーツ・ゲームでの）である場合、そのゲーム要素がユーザーがゲーム追跡装置９１７を動かした仕方に従って動く呈示が作成されることになる。
【０１１４】
ある実施形態では、追跡器９１８は、自己追跡オブジェクト９１７が、アニメーションを使ってユーザーに呈示される仮想環境におけるシミュレートされるオブジェクトの動きに、一対一にマッピングされると想定する。
【０１１５】
●一組の代替的な実施形態では、仮想環境は、自己追跡オブジェクト９１７の位置または配向における変化に応答してその仮想環境における力またはその他の起動力（motive  power）を決定してもよい。たとえば、自己追跡オブジェクト９１７の位置または配向の急峻な変化は、その仮想環境におけるオブジェクトに対して投げる力または操る力（a  throwing  or  maneuvering  force）を付与するための指令であると解釈されてもよい。そのような例では、仮想環境は（ａ）加えるべき力の量を決定し、（ｂ）それに応答して、その仮想環境におけるそのオブジェクトの位置または配向の変化の組を決定し、（ｃ）それに応答して、そのオブジェクトを含むその仮想環境のアニメーションを決定することになる。
【０１１６】
自己追跡オブジェクト９１７の位置または配向の変化に応答したそのような動作の例としては次のようなものが含まれる。
【０１１７】
（１）自己追跡オブジェクト９１７は、仮想環境において投げられることのできるオブジェクト――たとえば野球のボール――をシミュレートするために使われてもよい。自己追跡オブジェクト９１７の位置または配向の変化は、そのオブジェクトがどのくらい強く、どの方向に投げられるかを決定するために使われる（たとえば、ユーザーは野球のボールをシミュレートする自己追跡オブジェクト９１７を使って野球のボールを投げるまねをしてもよい。もちろん、自己追跡オブジェクト９１７を実際にゲーム・コントローラに投げつけないよう注意しつつであるが、自己追跡オブジェクト９１７が緩衝物を具備するなどして実際に投げてもいいようにできている場合はその限りではない）。
【０１１８】
（２）自己追跡オブジェクト９１７は、仮想環境において打つまたは投げるための道具を――たとえば野球のバット――をシミュレートするために使われてもよい。自己追跡オブジェクト９１７の位置または配向の変化は、力その他の起動力を決定するために使われる。その力は、その仮想環境において、オブジェクトがどのくらい強く、どの方向に振られるかを決定するために使われる（たとえば、ユーザーは野球のバットをシミュレートする自己追跡オブジェクト９１７を使って野球のバットで野球のボールを打つまねをしてもよい）。
【０１１９】
（３）同様に、自己追跡オブジェクト９１７は、仮想環境において道具――たとえば電灯スイッチまたは銃の引き金のような――をシミュレートするために使われてもよい。その結果、自己追跡オブジェクト９１７の位置または配向の変化は、その仮想環境によって、その仮想環境において電灯をつけるまたは銃を発砲するために十分な力が加えられたことを示すと解釈されることになる。
【０１２０】
●一組の代替的な実施形態では、仮想環境における視点（ユーザーのまたはカメラの視点のような）が、自己追跡オブジェクト９１７の位置または配向における変化に応答してもよい。そのような実施形態では、ユーザーは、仮想環境において方向を維持するまたはオブジェクトを選択することが許容されうる（可能性としては架空の3D環境の仮想現実感描写のように）。ユーザーは、ユーザーの視界が仮想現実感描写において普通なら妨げられる状況であっても、この機能を与えられてもよい。
【０１２１】
（１）一例として、ユーザーは、物理的に自己追跡オブジェクト９１７を保持していて、仮想環境がそのオブジェクトに対応するオブジェクトをシミュレートしていてもよい。シミュレートされるオブジェクトまたは「CVD」（対応仮想デバイス［corresponding  virtual  device］）は、銃、鞭、ポインティング・デバイス（たとえばレーザー・ポインタ）といった任意のオブジェクトと同じようなものである。仮想環境において、線セグメント（または他の経路）が計算される。該線セグメントは、CVDに結合され、CVD近くの仮想環境の領域中に延びる。前記計算は、自己追跡オブジェクト９１７の一つまたは複数の位置または配向の変化を、可能性としては仮想環境からの追加的な情報と組み合わせたものに、基づく。これは、自己追跡オブジェクト９１７の配向の変化に直接対応する線セグメントまたはその他の経路の方向を設定することを含む。線セグメントは、レーザー・ポインタの場合のようにまっすぐでも、あるいは銃の場合（重力および風の影響を考慮に入れる）のようにほぼまっすぐでもよいし、あるいは鞭の場合のように意図的に曲がっていてもよい。よって、計算される線セグメントは、ユーザーによって所望される線セグメントを表す。
【０１２２】
計算された線セグメントが仮想環境においてオブジェクトまたは構造体（construct）（たとえば、表面または領域といった非物理的な「オブジェクト」）に交わる場合、たとえば、仮想的なオブジェクト、平面またはキャラクターに接触する場合、仮想環境はユーザーがその交わったオブジェクトまたは構造体を意図的に選択しているまたは他の仕方で指示していると判定する。
【０１２３】
たとえば、図１０は、さまざまなオブジェクト１００１および１００２を含む三次元的な仮想環境１０００を示している。CVD１００５は、仮想環境１０００における自己追跡オブジェクト９１７の表現である。上記のように、オブジェクトおよび構造体は、何らかの線セグメント（またはレイ［ray］）１００６を使って選択できる。自己追跡オブジェクト９１７が動かされ、よってその位置または配向を変えると、新しい位置のCVD１００４および線セグメント１００３が、ユーザーに、新しいオブジェクト１００２を選択することを許容する。これは、仮想世界におけるゲーム・プレーヤーに、普通なら通常の視野平面に沿って隠蔽されているオブジェクトを選択することを許容する。
【０１２４】
この方法を使うことの例は、ゲーム・プレーヤーが、仮想環境において銃、懐中電灯または鞭に対応するコントローラとして自己追跡オブジェクト９１７を保持することを含む。次いでプレーヤーはコントローラを動かして、銃、懐中電灯または柔軟なケーブルの方向を指示することができる。自己追跡オブジェクト９１７の位置または配向の変化は、対応するCVDに加えられることができる。
【０１２５】
自己追跡オブジェクト９１７が仮想世界において銃（または弓のような他の発射装置）に対応する例では、ゲーム・プレーヤーは、図１１の左側に示されるように、仮想世界において、低い壁の背後に身を隠してもよい。上記の技法を使って、ゲーム・プレーヤーは、図１１の右側に示されるように、自己追跡オブジェクト９１７を上げ、CVD銃を仮想環境内で動かし、ゲーム・プレーヤーがその有利な点（vantage  point）を変えることなく、CVD銃を壁の背後の領域に向けて下向きにする。
【０１２６】
同様に、自己追跡オブジェクト９１７が仮想世界において懐中電灯（またはレーザー・ポインタのような他のポインティング・デバイス）に対応する例では、ゲーム・プレーヤーはCVD懐中電灯を画面中に向ける任意の角度を指示する機能を与えられ、視野平面の上の原点のみに制限されない。図１２は、左側では、室内のそれより奥へのゲーム・プレーヤーの視界を隠蔽する仮想環境におけるオブジェクトを示している。上記の技法を使って、ゲーム・プレーヤーは、図１２の右側に示されるように、自己追跡オブジェクト９１７を動かして、仮想環境における有利な点のいかなる変化も要求することなく、CVD懐中電灯に隠蔽オブジェクトの背後の領域を照らさせる。
【０１２７】
同様に、自己追跡オブジェクト９１７が仮想世界において鞭（またはロープのような別の柔軟なケーブル）に対応する例では、ゲーム・プレーヤーは、仮想環境における隠蔽オブジェクトを、たとえば普通ならゲーム・プレーヤーに見えないパイプにそのケーブルを通すために、「迂回して届く」機能を与えられる。
【０１２８】
●上記の技法は、ゲーム・プレーヤーが自己追跡オブジェクト９１７の位置および配向の６つの自由度すべてを使って仮想環境内の方向を指示することを許容する。これは、方向を支持する既知の諸方法に対して著しい利点を有する。
【０１２９】
プロセスは、典型的には、ゲームにおいて、プレーヤーがゲームからの刺激および指示に応答してコントローラを動かすにつれて繰り返される。
【０１３０】
ここで図１３を参照して、以下である実施形態における制御フローについて述べる。
【０１３１】
ゲームが始まり、何らかの初期セットアップ期間がある。このセットアップは、メモリ割り当ておよび他のよく知られたステップを含んでいてもよい。
【０１３２】
次いでゲームは自己追跡オブジェクト上でボタンが押されたという信号を待つ。ボタンを押すことは、追跡が始まる開始時基準の一例でしかない。代替的に、ゲームは内部状態に基づいて開始を合図し、好適な指示をプレーヤーに伝えてもよい。
【０１３３】
ひとたびゲームが追跡を開始したいと指示したとき、自己追跡オブジェクトはまだ追跡をする用意ができていないことがありうる。たとえば、ある実施形態では、追跡が開始できる前に短い静穏期間が必要とされることがある。その場合、プレーヤーはボタンを押したあと、まだしばらくじっとしている必要がある。あるいはまた、初期配位を決定するために追加的なセンサー読みが要求されてもよい。たとえば、プレーヤーはまず直接ポインティング・デバイスをポイントしてもよい。
【０１３４】
ひとたび追跡が進行できるようになると、追跡器９１８に利用可能な任意の情報から初期配位がセットアップされる。
【０１３５】
次いで追跡器９１８が上記のプロセスを反復する。その際、追跡器９１８は、（ａ）次のことを実行する：
・追跡器９１８は、自己追跡装置９１７から時系列データを受領する。
・追跡器９１８は、それらの時系列データに応答して自己追跡装置９１７の位置および配向の推定をする。
・追跡器９１８は、自己追跡装置９１７の位置および配向のよりよい推定をすることを許容する情報を受領する。
・追跡器９１８は、自己追跡装置９１７の位置および配向の最も最近の履歴の組について、その推定を更新する。
【０１３６】
ある実施形態では、このプロセスは、追跡器９１８が追跡が終わることができるという信号を受領するまで、繰り返し反復される。終了信号は時間に基づいていてもよいし、ゲーム・イベントに基づいていてもよいし、あるいはボタンに基づいていてもよい。
【０１３７】
追跡器９１８は、ゲームが終了するまで、自己追跡装置９１７の位置および配向の推定をし続ける。
【０１３８】
〈代替的な実施形態〉
本発明の好ましい実施形態を上記したが、記載された概念および原理から理解され、導出されることのできる数多くの変形がある。
【０１３９】
そのような潜在的な変形および実施例は次のものを含む。
【０１４０】
いくつかのゲーム・コントローラ構成の場合、向上された動き追跡の幻想を与えるため、何らかの想定の組を利用する賢いゲーム・デザインを使うことができる。たとえば、プレーヤーが、ある仕方でコントローラを保持し、ある軸に沿って動かすよう指示されてもよい。するとセンサー・データの解析により、対応するアニメーションが表現されることが許容される。プレーヤーが想定のうちのいずれかを破る場合、生成されるアニメーションは典型的には実際のプレーヤーの動きに対応しない。
【０１４１】
場合によっては、本発明のコントローラによって提供されるセンサー・データは、解析され、特定のアニメーションに対応する用意されている標準的なデータ出力と比較されてもよい。次いでそのセンサー・データが最良マッチであるアニメーションが選択され、再生される。選択されたアニメーションを、センサー・データと最良マッチとの間の対応の度合いに基づいて修正することも可能である。たとえば、センサー・データが動きが何らかの提供されているアニメーションのより速いバージョンであることを示す場合、アニメーションは対応して速くしたスピードで再生できる。
【０１４２】
たいていの現在利用可能なゲーム・コントローラは、ジャイロスコープなしのコントローラにおけるプレーヤーの実際の動きを完全に決定するための要求される六軸加速度計較正を含まない。たとえば、いくつかの現代のゲーム・コントローラでは、三つのほぼ同位置の加速度計または単一の三軸加速度計しかない。そのようなコントローラを使ってプレーヤーの動きに対応するアニメーションを画面上に表現することは、プレーヤーの意図される動きについての強い想定をすることを要求する。いくつかの場合、この要求は、既知の技法で緩和できる。たとえば、いくつかの現代のコントローラは赤外線センサーを含み、何らかの直接ポイント・デバイス（DPD:  direct  point  device）をポイントするとき、該赤外線センサーが、プレーヤーの動きについてのさらなる情報を判別するために使うことのできる追加的な情報を提供する。しかしながら、プレーヤーの動きは赤外線センサーのレンジ内にDPDをとどめる狭い範囲の動きに制約される必要がある。
【０１４３】
本発明の概念は、システム中にさらなるセンサーを追加することに拡張されてもよい。上記の一般的なアルゴリズムは、そのような構成に拡張されてもよい。たとえば、６つだけでなく、９つの加速度計感知軸をもつ三つの動き感知ゲーム・コントローラがあることもできる。三つの追加的な軸の感知は、一般的なアルゴリズムに適用されるべきフィードバックを提供することができる。
【０１４４】
同様に、前記の一般的なアルゴリズムは、時間を短縮するために適用できる。システムには数多くの潜在的な競合する誤差がありうる。毎秒サンプル数は、積分誤差との兼ね合いを取りつつ、時間に対する感度を制限するために低下されてもよい。これは部分的に、人間の動きが生起する時間スケールに基づいている。本発明の概念に基づき、各面上のある配位で位置された加速度計をもつ立方体が、コントローラの位置および配向をより長い時間期間にわたって信頼できる形で追跡できる。そのような立方体は、コントローラ上に、たとえば適切なドングル接続を介してマウントされることができる。
【０１４５】
コントローラ内かコントローラ外かを問わず自己完結式慣性センサーの複合構造を構成してそれらのセンサーの最良の位置および配向を選択して実用的な複合コントローラを提供するにあたっては、各センサーおよび十分剛体的な物体内における異なるセンサーの物理的な関係を記述する追加的なパラメータを考慮に入れる必要がある。たとえば、図１〜図３の複合コントローラについての配位推定は次のものの推定を含むことができる：
・当該装置が静止しているときの自己完結式慣性センサーの読み；
・自己完結式慣性センサーの上側および下側のレンジ；
・自己完結式慣性センサーの感度；
・感度が時間、温度およびその他の条件とともにどう変動するか；
・コントローラ内での個々の自己完結式慣性センサーの相対位置；
・コントローラの物理的なサイズ；
・各コントローラ間の距離；
・各コントローラの互いに対する相対配位；
・各コントローラの重心の相対位置。
【図面の簡単な説明】
【０１４６】
【図１】二つの動き感知ゲーム・コントローラまたは自己完結式慣性センサーを含む同様の筐体がドングル・アタッチメントによって着脱可能式に取り付けられて、本発明に基づくゲーム・コントローラを提供しうる、例示的な実施形態を示す図である。
【図２】二つの動き感知ゲーム・コントローラまたは自己完結式慣性センサーを含む同様の筐体が着脱可能式に取り付けられて、本発明に基づく複合ゲーム・コントローラを提供しうる、もう一つの例示的な実施形態を示す図である。
【図３】三つの動き感知ゲーム・コントローラまたは自己完結式慣性センサーを含む同様の筐体が着脱可能式に基板上にマウントされて、本発明に基づくゲーム・コントローラを提供しうる、もう一つの例示的な実施形態を示す図である。
【図４】本発明に基づくゲーム・コントローラにおける装置の一般化された例示的な表現を示す図である。
【図５】表示されるコンピュータ・ゲームに対して感知されるハンドヘルド無線ゲーム・コントローラの三次元的な直線運動および角度配向を示す図である。
【図６】コンピュータ制御されるゲーム・ディスプレイのためのコントローラでの本発明の動作におけるプログラムの一般化されたフローチャートである。
【図７】ある実施形態でソフトウェア要素を使う一つの方法の概観を示す図である。
【図８】ある実施形態で使われる逆あてはめアルゴリズムの二次元表現を示す図である。
【図９】ゲーム・コントロール・システムにおける情報の流れのデータ流れ図である。
【図１０】可能性としてはフィクションのゲーム世界における、オブジェクトを選択する例を示す図である。
【図１１】可能性としてはフィクションのゲーム世界における、見ることなくオブジェクト越しに撃つ例を示す図である。
【図１２】可能性としてはフィクションのゲーム世界における、見ることなくオブジェクトの背後を照明する例を示す図である。
【図１３】ある実施形態におけるプロセス流れ図である。
【符号の説明】
【０１４７】
１００  動き感知ゲーム・コントローラに動き感知ドングルを取り付けることによって作られる複合コントローラ
１０１  基礎コントローラ
１０２  ポート
１０３  ドングル
２００  複数の動き感知ゲーム・コントローラから作られる複合コントローラ
２０１  基礎コントローラ
２０２  コンポーネント
２０３  ストラップ
３００  複数の動き感知ゲーム・コントローラから作られる複合コントローラ
３０１  基礎コントローラ
３０２  自己完結式慣性センサー含有コンポーネント
３０３  自己完結式慣性センサー含有コンポーネント
３０４  バンド
３０５  支持基板
４００  相対的な角度運動および直線運動を追跡できる動き感知コントローラ
４０１  メモリ
４０２  制御
４０３  データ・プロセッサ
４０４  慣性センサー
４０５  慣性センサー
４０６  無線トランシーバ
５００  対話式ゲーム・ディスプレイ
５０１  ゲーム・コントローラによって制御されるゲーム・アクション
５０２  プレーヤーの手
５０３  コントローラ
５０４  直線成分
５０５  角度成分
５０６  経路
６０１  コントローラ動きあり？
６０２  全慣性センサーから読みを取得
６０３  三つの角度軸に沿った角度動きを抽出
６０４  コントローラ配向の推定を更新
６０５  残りの慣性センサーの読みを抽出
６０６  三つの直線軸に沿った直線動きの推定を計算
６０７  コントローラ位置の推定を更新
６０８  コントローラ動き継続？
６０９  ゲーム・オーバー？
７０２  プレーヤー
７０３  自己追跡オブジェクト
７０４  ゲーム・コンソール
７０５  ソフトウェア要素
７０６  第一の時間期間（過去）
７０７  第二の時間期間（現在）
７０８  第一の配位
７１１  呈示装置
７１２  動きの並進成分
７１３  動きの回転成分
７１４  第二の配位
７１５  （ゲーム世界の）オブジェクトの第一の配位
７１６  （ゲーム世界の）オブジェクトの第一の配位
７１８  ソフトウェア要素
７２０  呈示装置
８０１  位置
８０２  配向
８０３  位置および配向の推定
８０４  新しい軌跡
８０５  現実からは少なくともいくらか違った位置および配向の組の推定
８０６ａ  新しい位置
８０６ｂ  新しい配向
８１１  実行された動き
９００  データの流れ
９０１  デバイス・ドライバ
９０２  生のセンサー読み
９０３  補正
９０５  未補正の配位推定
９０６  補正更新
９０７  補正器
９０８  較正された読み
９０９  初期コントローラ配位を設定
９１０  初期配位についての想定
９１１  ゲーム
９１２  初期配位
９１３  ゲーム世界の対応する配位推定
９１４  ゲーム固有のフィルタ
９１５  補正された配位推定
９１６  補正された配位推定
９１７  自己追跡オブジェクト
９１８  追跡器
１０００  仮想環境
１００１  オブジェクト
１００２  オブジェクト
１００３  線セグメント
１００４  対応仮想デバイス（CVD）
１００５  対応仮想デバイス（CVD）
１００６  線セグメント
【図１】
2008307392.tif 000003
【図２】
2008307392.tif 000004
【図３】
2008307392.tif 000005
【図４】
2008307392.tif 000006
【図５】
2008307392.tif 000007
【図６】
2008307392.tif 000008
【図７】
2008307392.tif 000009
【図８】
2008307392.tif 000010
【図９】
2008307392.tif 000011
【図１０】
2008307392.tif 000012
【図１１】
2008307392.tif 000013
【図１２】
2008307392.tif 000014
【図１３】
2008307392.tif 000015