(57)【特許請求の範囲】
【請求項１】
コンピュータにより実行される、追跡システムを較正する方法であって、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、ビデオゲームコンソールが位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記ビデオゲームコンソールが前記追跡対象オブジェクトに含まれる慣性センサから慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度により前記慣性データを調整するステップと、
を備えることを特徴とする方法。
【請求項２】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項１に記載の方法。
【請求項５】
前記追跡対象オブジェクトは、前記動きに富んだ経路に沿って移動されるとき、固定されたピッチ及びロールを保ち、
ピッチ及びロールが固定されることにより、前記慣性データは、三次元ワールド座標系に変換されることなく、算出された加速度により調整することが可能である
ことを特徴とする請求項１に記載の方法。
【請求項６】
取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記慣性データは、第１のセットのベクトルを含み、算出された加速度は、第２のセットのベクトルを含み、
算出された加速度により前記慣性データを調整するステップは、
前記位置センサのピッチを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第１の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第２の角度を決定するステップと、
を含むことを特徴とする請求項１に記載の方法。
【請求項８】
算出された加速度により前記慣性データを調整するステップは、
可能性のある複数の第１の角度と可能性のある複数の第２の角度を選択するステップと、
前記可能性のある複数の第１の角度のうちの一つと、前記可能性のある複数の第２の角度のうちの一つとのそれぞれの組み合わせにより、前記第１のセットのベクトルを回転させるステップと、
前記可能性のある複数の第１の角度のうちの一つと、前記可能性のある複数の第２の角度のうちの一つとのそれぞれの組み合わせについて、回転された第１のセットのベクトルと、第２のセットのベクトルとの間の差を算出するステップと、
回転された第１のセットのベクトルと、第２のセットのベクトルとの間の差を最小にする、可能性のある第１の角度と可能性のある第２の角度との組み合わせを、前記第１の角度及び前記第２の角度として特定するステップと、
を更に含むことを特徴とする請求項７に記載の方法。
【請求項９】
算出された加速度により前記慣性データを調整するステップは、
前記第１のセットのベクトルと前記第２のセットのベクトルとの間の三次元角度を決定するステップと、
前記三次元角度を、前記第１の角度及び前記第２の角度に分解するステップと、
を更に含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記第１のセットのベクトル及び前記第２のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去するステップを更に含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記第１のセットのベクトル及び前記第２のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項７に記載の方法。
【請求項１２】
前記第１のセットのベクトルのそれぞれと、時間的に近接する前記第２のセットのベクトルとの大きさを比較するステップと、
前記第１のセットの第１のベクトルが、時間的に近接する前記第２のセットの第２のベクトルと、同じ大きさである場合、前記第１のベクトルは、三次元ワールド座標系における動きを表現し、前記第２のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定するステップと、
を更に備えることを特徴とする請求項７に記載の方法。
【請求項１３】
前記位置センサは、カメラ、Ｚ−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項１に記載の方法。
【請求項１４】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する慣性センサにより収集され、
前記方法は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項１５】
前記位置センサの視野が未知であり、
前記方法は、前記位置センサの視野を求めるステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項１６】
前記視野を求めるステップは、
１以上の可能性のある視野を仮定するステップと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への一致を試みるステップと、
前記慣性データが算出された加速度に最良に一致される、前記可能性のある視野を、前記位置センサの視野として特定するステップと、
を含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
処理システムにより実行されたとき、前記処理システムに方法を実行させる命令を含むコンピュータ読み取り可能な記録媒体であって、
前記方法は、
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、位置センサから前記追跡対象オブジェクトの位置データを取得するステップと、
前記追跡対象オブジェクトが前記動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトに含まれる慣性センサから慣性データを取得するステップと、
前記位置データを前記位置センサの三次元座標系に変換するステップと、
前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出するステップと、
算出された加速度により前記慣性データを調整するステップと、
を備えることを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データを変換するステップは、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換するステップを含む
ことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記慣性データは、第１のセットのベクトルを含み、算出された加速度は、第２のセットのベクトルを含み、
算出された加速度により前記慣性データを調整するステップは、
前記位置センサのピッチを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第１の角度を決定するステップと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第２の角度を決定するステップと、
を含むことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記位置センサの視野が未知であり、
前記追跡対象オブジェクトは球であり、
前記方法は、前記位置センサの視野を求めるステップを更に備え、
前記視野を求めるステップは、
前記位置センサの画像平面への前記球の楕円投影を含む、前記球の画像データを取得するステップと、
前記画像データから、前記位置センサの画像平面における前記球の位置を決定するステップと、
前記楕円投影の長軸及び短軸を算出するステップと、
前記球の位置及び前記長軸と前記短軸との間の差に基づいて、前記位置センサの視野を算出するステップと、
を含むことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項２１】
追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、慣性データを収集し、前記慣性データを計算装置に送信する、１以上の慣性センサを含む追跡対象オブジェクトと、
前記追跡対象オブジェクトが動きに富んだ経路に沿って移動されるとき、前記追跡対象オブジェクトの位置データを収集し、前記位置データを前記計算装置に送信する位置センサと、
前記慣性データ及び前記位置データを取得し、前記位置データを前記位置センサの三次元座標系に変換し、前記位置センサの前記三次元座標系における前記追跡対象オブジェクトの加速度を算出し、算出された加速度により前記慣性データを調整する計算装置と、
を備えることを特徴とする追跡システム。
【請求項２２】
前記位置センサは、ビデオカメラであり、
前記位置データは、複数の画像の位置及び画像の大きさを含み、
前記位置データの変換は、前記複数の画像の位置のそれぞれを、対応する画像の大きさ及び前記ビデオカメラの視野に基づいて、前記位置センサの三次元座標系に変換することを含む
ことを特徴とする請求項２１に記載の追跡システム。
【請求項２３】
前記動きに富んだ経路は、前記位置センサに近づく動き、及び、前記位置センサから遠ざかる動きのうちの少なくとも一つを含むことを特徴とする請求項２２に記載の追跡システム。
【請求項２４】
前記動きは、最小限の加速度のしきい値を越える加速度を生じさせることを特徴とする請求項２２に記載の追跡システム。
【請求項２５】
前記計算装置は、更に、取得された慣性データを、重力に沿った軸を有する三次元ワールド座標系に変換することを特徴とする請求項２２に記載の追跡システム。
【請求項２６】
前記慣性データは、第１のセットのベクトルを含み、算出された加速度は、第２のセットのベクトルを含み、
算出された加速度により前記慣性データを調整することは、
前記位置センサのピッチを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第１の角度を決定することと、
前記位置センサと前記追跡対象オブジェクトとの間の相対ヨーを表現する、前記第１のセットのベクトルと前記第２のセットのベクトルとの間の第２の角度を決定することと、
を含むことを特徴とする請求項２２に記載の追跡システム。
【請求項２７】
算出された加速度により前記慣性データを調整することは、
可能性のある複数の第１の角度と可能性のある複数の第２の角度を選択することと、
前記可能性のある複数の第１の角度のうちの一つと、前記可能性のある複数の第２の角度のうちの一つとのそれぞれの組み合わせにより、前記第１のセットのベクトルを回転させることと、
前記可能性のある複数の第１の角度のうちの一つと、前記可能性のある複数の第２の角度のうちの一つとのそれぞれの組み合わせについて、回転された第１のセットのベクトルと、第２のセットのベクトルとの間の差を算出することと、
回転された第１のセットのベクトルと、第２のセットのベクトルとの間の差を最小にする、可能性のある第１の角度と可能性のある第２の角度との組み合わせを、前記第１の角度及び前記第２の角度として特定することと、
を更に含むことを特徴とする請求項２６に記載の追跡システム。
【請求項２８】
算出された加速度により前記慣性データを調整することは、
前記第１のセットのベクトルと前記第２のセットのベクトルとの間の三次元角度を決定することと、
前記三次元角度を、前記第１の角度及び前記第２の角度に分解することと、
を更に含むことを特徴とする請求項２６に記載の追跡システム。
【請求項２９】
前記計算装置は、更に、前記第１のセットのベクトル及び前記第２のセットのベクトルのそれぞれについて、最小限のしきい値よりも小さいベクトルを除去することを特徴とする請求項２６に記載の追跡システム。
【請求項３０】
前記計算装置は、更に、前記第１のセットのベクトル及び前記第２のセットのベクトルのそれぞれを、大きいベクトルは小さいベクトルよりも重く重み付けされるように、ベクトルの大きさに基づいて重み付けをするステップを更に備えることを特徴とする請求項２６に記載の追跡システム。
【請求項３１】
前記計算装置は、更に、
前記第１のセットのベクトルのそれぞれと、時間的に近接する前記第２のセットのベクトルとの大きさを比較し、
前記第１のセットの第１のベクトルが、時間的に近接する前記第２のセットの第２のベクトルと、同じ大きさである場合、前記第１のベクトルは、三次元ワールド座標系における動きを表現し、前記第２のベクトルは、前記位置センサの三次元座標系における動きを表現すると決定する
ことを特徴とする請求項２６に記載の追跡システム。
【請求項３２】
前記位置センサは、カメラ、Ｚ−カメラ、超音波センサ、及び光検出器のうちの一つであることを特徴とする請求項２２に記載の追跡システム。
【請求項３３】
前記慣性データは、前記追跡対象オブジェクトの中心から所定のずれを有する１以上の慣性センサにより収集され、
前記計算装置は、ジャイロスコープにより提供される観測値及び加速度計と前記中心との間の既知の距離に基づいて、慣性データ及び算出された加速度のうちの一つに、前記所定のずれを補償するオフセットを適用することを特徴とする請求項２２に記載の追跡システム。
【請求項３４】
前記位置センサの視野が未知であり、
前記計算装置は、更に、前記位置センサの視野を求めることを特徴とする請求項２２に記載の追跡システム。
【請求項３５】
前記視野を求めることは、
１以上の可能性のある視野を仮定することと、
それぞれの可能性のある視野について、前記慣性データの算出された加速度への一致を試みることと、
前記慣性データが算出された加速度に最良に一致される、前記可能性のある視野を、前記位置センサの視野として特定することと、
を含むことを特徴とする請求項３４に記載の追跡システム。
【請求項３６】
前記算出された加速度により前記慣性データを調整するステップは、前記慣性データと算出された前記加速度とを比較することにより、前記慣性データの精度を確認するステップを含むことを特徴とする請求項１に記載の方法。
【請求項３７】
前記算出された加速度により前記慣性データを調整するステップは、前記慣性データと算出された前記加速度とを比較することにより、前記慣性データの精度を確認するステップを含むことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項３８】
前記算出された加速度により前記慣性データを調整することは、前記慣性データと算出された前記加速度とを比較することにより、前記慣性データの精度を確認することを含むことを特徴とする請求項２１に記載の追跡システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、米国仮出願第６１／１３８，４９９号（２００８年１２月１７日出願）及び米国出願第１２／４３５，３８６号（２００９年５月４日出願）に関するとともに、それらの優先権を主張し、それらの出願は本明細書に援用される。
【０００２】
本出願は、同時係属中の米国出願第１２／４３５，２８５号（２００９年５月４日出願、発明の名称「追跡システムにおける角度誤差の補正」）に関する。
【０００３】
本発明は、一般に、追跡システムの較正に関し、とくに、オブジェクトの位置データ及びオブジェクトに関する更に取得した又は既知のデータに基づいてオブジェクトの位置を追跡するために用いられる追跡システムの較正に関する。
【背景技術】
【０００４】
コンピュータゲーム産業において、ユーザとゲームシステムとの間のインタラクションを増加させるゲームの開発がトレンドになっている。よりリッチな対話式の体験を達成するための一つの方法は、ゲームコントローラを用いて、ゲームシステムがゲームコントローラの動きを追跡することによりユーザの動きを追跡し、その動きをゲームの入力として用いることである。一般に、ジェスチャー入力は、コンピュータシステム、ビデオゲームコンソール、スマートアプライアンスなどの電子機器を、オブジェクトを追跡するビデオカメラ又は他の位置センサにより取得されたジェスチャーに反応させるために適用される。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザの位置及び動きの信頼できる測定を行うためには、一般に、ゲームシステムを較正する必要がある。このような較正は、ゲームシステムが使用されるたびに必要となる。従来のシステムにおいては、ゲームシステムの較正は、ビデオカメラの傾き、ユーザからビデオカメラまでの距離などのプロパティをユーザが測定するための制御された正確なプロセスを必要とする。従来のゲームシステムは、このような制御された正確なプロセスなしでは較正を実行することができない。
【課題を解決するための手段】
【０００６】
本発明は、本発明の実施の形態を説明するために用いられる、下記の説明及び添付の図面を参照することにより、最も良く理解されうる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一つの実施の形態における、追跡システムの透視図を示す図である。
【０００８】
【図２】図２（ａ）は、本発明の一つの実施の形態における、ボール部を有するゲームコントローラを示す図である。
【０００９】
図２（ｂ）は、本発明の一つの実施の形態における、ボール部を有する別のゲームコントローラを示す図である。
【００１０】
図２（ｃ）は、本発明の一つの実施の形態における、ユーザに配置された複数のモーションキャプチャボールを示す図である。
【００１１】
【図３】本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す図である。
【００１２】
【図４】本発明の一つの実施の形態における、追跡システムのブロック図を示す図である。
【００１３】
【図５】一つの実施の形態における、マルチプレイヤー環境の概略図を示す図である。
【００１４】
【図６】追跡システムを較正する方法の一つの実施の形態のフロー図を示す図である。
【００１５】
【図７】追跡システムを較正する方法の別の実施の形態のフロー図を示す図である。
【００１６】
【図８】本発明の一つの実施の形態に係る、カメラの画像平面における異なる位置に投影された球を示す図である。
【００１７】
【図９】カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法の一つの実施の形態のフロー図を示す図である。
【００１８】
【図１０】本発明の一つの実施の形態において、カメラの撮像平面上に楕円として投影された球を示す図である。
【００１９】
【図１１】本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す図である。
【００２０】
【図１２】本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す図である。
【発明を実施するための形態】
【００２１】
本明細書では、ゲームシステムにおいて用いられる追跡システムを較正するための方法及び装置が説明される。一つの実施の形態において、追跡システムを較正するために、追跡対象オブジェクトが動きに富んだ経路（rich motion path：リッチモーションパス）に沿って移動されるときに、追跡対象オブジェクトの位置データ（例えば画像の位置及び画像の大きさ）が位置センサにより取得される。さらに、追跡対象オブジェクトが動きに富んだ経路に沿って移動されるときに、追跡対象オブジェクトに対応する慣性データが取得される。位置データは、位置センサの三次元座標系に変換される。一つの実施の形態において、画像の位置は、対応する画像の大きさ及び位置センサの視野に基づいて、三次元座標系に変換される。位置センサの視野は、既知であっても未知であってもよい。位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。慣性データは、追跡システムを較正するために、算出された加速度と調整される。慣性データと算出された加速度との調整は、位置センサのピッチの算出と、位置センサと追跡対象オブジェクトとの間の相対ヨーの算出を含む。慣性データと算出された加速度との調整は、位置センサの視野の算出を更に含んでもよい。
【００２２】
下記の説明においては、特定の数値的な詳細が示される。しかしながら、本発明が、これらの特定の詳細なしに実施されることが可能であることは、当業者には明らかである。いくつかの例において、本発明を不明瞭にするのを避けるために、詳細よりもむしろ、既知の構造及び装置がブロック図の形で示される。
【００２３】
下記の詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビット上の演算のアルゴリズム及び記号表現の観点から示される。これらのアルゴリズムの記述及び表現は、その成果を最も効果的に他の当業者に伝えるために、データ処理の分野の当業者により用いられる手段である。アルゴリズムは、本明細書において、及び一般的に、所望の結果を達成する自己矛盾のない一連のステップであると理解されている。ステップは、物理量の必要な物理操作である。通常、必然的ではないが、これらの量は格納可能な電気的又は磁気的信号の形式をとり、送信され、結合され、比較され、及びその他の操作を受ける。これらの信号を、ビット、値、要素、記号、文字、項、数などと呼ぶことが、主に共通の使用のために、時に便利であることが立証されている。
【００２４】
しかしながら、これらの語及び類義語の全ては、適当な物理量に関連付けられるもので、これらの量に適用される単なる便利なラベルであることに留意するべきである。以下の議論から明らかであるように、とくにそうではないと断らない限り、詳細な説明の全体にわたって、「処理」「計算」「変換」「調整」「決定」などの語を用いた議論は、物理的（例えば電気的）な量としてコンピュータシステムのレジスタ及びメモリ内で表現されるデータを操作し、コンピュータシステムのメモリ又はレジスタ、又は、他の同様な情報ストレージ、通信又は表示装置の中で物理量として同様に表現される他のデータに変換するコンピュータシステム又は同様の電気的計算装置の動作及び処理のことを指すことが理解される。
【００２５】
本発明は、また、本明細書の手順を実行するための装置に関する。この装置は、要求される目的のために特別に構築されてもよいし、コンピュータに格納されたコンピュータプログラムにより選択的に作動された又は再構成された汎用コンピュータを備えてもよい。一つの実施の形態において、本明細書の手順を実行するための装置は、ゲームコンソール（例えば、ソニープレイステーション（登録商標）、ニンテンドーＷｉｉ（登録商標）、マイクロソフトＸｂｏｘ（登録商標）など）を含む。コンピュータプログラムは、例えば、フロッピー（登録商標）ディスクを含む任意の種類のディスク、光ディスク（例えば、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、ディジタルビデオディスク（ＤＶＤ）、ブルーレイディスク（登録商標）など）、及び磁気光学ディスク、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光学カード、又は電気的命令を格納するために適した任意の種類の媒体などのコンピュータ読み取り可能な記録媒体に格納されてもよい。
【００２６】
マシン読み取り可能な媒体は、マシン（例えばコンピュータ）により読み取り可能な形式で情報を格納又は送信するための任意のメカニズムを含む。例えば、マシン読み取り可能な媒体は、マシン読み取り可能な記録媒体（例えば、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記録媒体、光記録媒体、フラッシュメモリ装置など）、マシン読み取り可能な通信媒体（電気、光、音響又は他の形式の伝送信号、例えば、搬送波、赤外線信号、ディジタル信号など）などを含む。
【００２７】
図１は、本発明の一つの実施の形態における、追跡システム１００の透視図を示す。追跡システム１００は、位置センサ１０５、位置センサ１０５により追跡されるオブジェクト１１０、及び位置センサ１０５及びオブジェクト１１０により取得されたデータを処理する計算装置１１５を含む。一つの実施の形態において、追跡システム１００は、ゲームシステムの構成要素である。または、追跡システム１００は、モーションキャプチャシステムの構成要素であってもよい。
【００２８】
位置センサ１０５により検知される位置データ（例えば画像）は、撮像平面と撮像平面に垂直なベクトルにより定義される位置センサ１０５の参照フレーム１５０内のデータである。本明細書では、参照フレームは、オブジェクトの位置、方向及び他のプロパティを測定するための座標系として定義される。参照フレーム及び座標系という語は、本出願を通して交換可能に用いられる。
【００２９】
図示されるように、位置センサ１０５は、テレビジョンセット１２０の上面に、床１５０に対して負のピッチ１４５をもって設置される。ピッチ１４５は、位置センサ１０５の測定平面内にある位置センサの参照フレーム１５０の水平軸と重力１３５に垂直な平面との間の角である。ピッチ１４５がゼロでない値をとる限り、位置センサ１０５は、ワールド参照フレーム（重力１３５の向きに沿った軸（例えばｙ２）を有する参照フレームとして定義される）とは異なる参照フレーム１５０を有する。
【００３０】
本発明の一つの実施の形態において、位置センサ１０５は標準的なビデオカメラである。この実施の形態において、位置センサ１０５は、深さ方向の情報（位置センサ１０５及びオブジェクト１１０の間の距離）を、オブジェクト１１０の大きさを特定する予め定義された情報及び／又は位置センサ１０５の視野（field of view：ＦＯＶ）を特定する予め定義された情報に基づいて取得してもよい。視野１２５は、位置センサ１０５により撮像される所与のシーンの角度範囲である。視野は、カメラのレンズにより発生する画像の歪み（例えばズームの量）を定義する。オブジェクト１１０が位置センサ１０５から遠くへ移動するにつれて（すなわち、距離１３０が増加するにつれて）、位置センサ１０５により撮像されるオブジェクト１１０の画像は小さくなる。したがって、位置センサ１０５に対するオブジェクト１１０の距離１３０は、位置センサ１０５の視野１２５が既知であれば、追跡対象のオブジェクト１１０の画像の大きさ（例えば、ピクセルで測定される）の、追跡対象のオブジェクト１１０の既知の実際の大きさに対する比に基づいて決定できる。視野１２５又はオブジェクト１１０の大きさのいずれかが未知であれば、未知の値は、例えば、図９を参照して後述されるようにして求められる。
【００３１】
本発明の別の実施の形態において、位置センサ１０５は、Ｚカメラ（映像を深さ方向の情報とともに撮像可能な単一レンズのビデオカメラ）又はステレオカメラ（三次元画像を撮像可能な２以上のレンズを有するビデオカメラ）である。この実施の形態において、位置センサ１０５は、オブジェクト１１０の大きさを特定するための情報を予め設定することなく、深さ方向の情報を取得することができる。
【００３２】
本発明の更に別の実施の形態において、位置センサ１０５は、超音波センサアレイ又は光検出器などのセンサアレイである。このような位置センサ１０５は、例えば光又は音の飛行時間又は位相のコヒーレンスを用いて、位置センサ１０５とオブジェクト１１０の間の距離を検出し、三角測量を用いてオブジェクト１１０の垂直及び水平方向の位置を検出する。
【００３３】
オブジェクト１１０は、１以上の慣性センサを含む電子機器である。慣性センサは、単一又は複数の軸に沿った加速度を測定可能でもよく、直線方向だけでなく角加速度を測定可能であってもよい。一つの実施の形態において、オブジェクト１１０は、図２（ａ）及び２（ｂ）に示されたゲームコントローラなどの携帯型電子機器又は携帯型電子機器の一部である。別の実施の形態において、オブジェクト１１０は、図２（ｃ）に示されたモーションキャプチャ（モーキャプ）ボールである。オブジェクト１１０は、正方形、球、三角形、又はより複雑な形状など、任意の形状を有してもよい。一つの実施の形態において、オブジェクト１１０は、球状の形状を有する。
【００３４】
図２（ａ）は、本発明の一つの実施の形態における、ボール部２０５を有するゲームコントローラ２００を示す。図２（ｂ）は、本発明の別の実施の形態における、ボール部２１５を有する別のゲームコントローラ２１０を示す。ある実施の形態において、ボール部２０５及び２１５は、図１のオブジェクト１１０に相当する。
【００３５】
ボール部２０５及び２１５は、異なる色であってもよく、一つの実施の形態において、ボール部２０５及び２１５は、発光してもよい。球状のボール部が示されているが、ボール２０５及び２１５は、球の一部、完全ではない球、アメリカンフットボール又はラグビーで使われるような引き伸ばされたボール、立方体状の形状など、視覚的に追跡する目的のために、他の形状を有していてもよい。一つの実施の形態において、ボール部２０５及び２１５は、直径４ｃｍである。しかしながら、より大きい、又は、より小さい大きさであってもよい。より大きい場合は、視覚的に認識しやすい。例えば、直径が５ｃｍのボールでは、４ｃｍのボールに比べて、画像認識におけるピクセル数が約５５パーセント多くなる。
【００３６】
図２（ｃ）は、本発明の一つの実施の形態における、ユーザ２２５に配置された複数のモーキャプボール２２０を示す。モーキャプボール２２０は、位置センサがモーキャプボール２２０の間の位置又は角度に基づいてユーザの動きを取得し認識するために、それぞれ近接して接合するようにユーザ２２５により装着されるマーカである。一つの実施の形態において、モーキャプボール２２０は、モーションキャプチャスーツに装着される。
【００３７】
図１に戻り、オブジェクト１１０及び位置センサ１０５は、有線及び／又は無線接続を介して計算装置１１５に接続される。有線接続は、例えば、ＩＥＥＥ１３９４（ファイヤーワイヤー（登録商標））ケーブル、イーサネット（登録商標）ケーブル、及びユニバーサルシリアルバス（ＵＳＢ）ケーブルなどを介した接続を含む。無線接続は、例えば、無線忠実（ＷｉＦｉ）接続、ブルートゥース（登録商標）接続、ジグビー（登録商標）接続などを含む。図示された実施の形態において、オブジェクト１１０は、無線により計算装置１１５に接続し、位置センサ１０５は、有線により計算装置１１５に接続する。
【００３８】
計算装置１１５は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機、又は他の計算装置であってもよい。計算装置１１５は、オブジェクト１１０からのユーザ入力に応答可能なゲーム又は他のアプリケーションを実行してもよい。オブジェクト１１０は追跡され、オブジェクト１１０の動きはユーザ入力を提供する。
【００３９】
追跡システム１００がオブジェクト１１０を正確に追跡可能となる前に、追跡システム１００は較正される必要がある。例えば、追跡システム１００のキャリブレーションは、位置センサ１０５のピッチ１４５の算出及び位置センサ１０５とオブジェクト１１０との間の相対的なヨーの算出を含んでもよい。オブジェクト１１０と位置センサ１０５との間の相対ヨーは、オブジェクト１１０と位置センサ１０５の間の向きの差を表す。一つの実施の形態において、オブジェクトが位置センサ１０５の撮像平面に対して垂直な方向に向いているときに、位置センサ１０５とオブジェクト１１０との間のゼロヨーが達成されると定義される。または、オブジェクト１１０が位置センサ１０５の方へ真っ直ぐ向いているときに、ゼロヨーが達成されると定義されてもよい。位置センサ１０５が、視野１２５の不明なカメラである場合、追跡システム１００のキャリブレーションは、位置センサ１０５の視野１２５の算出を含む。オブジェクト１１０の大きさが不明である場合、追跡システム１００のキャリブレーションは、オブジェクト１１０の大きさの決定を含んでもよい。
【００４０】
オブジェクト１１０の内部に配置された慣性センサがキャリブレーションのために十分な慣性データを収集可能とするために、オブジェクト１１０はユーザにより移動されるべきである。オブジェクト１１０は、それぞれの慣性データの測定値が対応する位置の測定値（例えば、対応する画像の大きさ及び画像の位置の測定）を有することを保証するために、位置センサ１０５の視野１２５の範囲で移動されるべきである。キャリブレーションの効果は、オブジェクト１１０が、位置センサ１０５の視野の中にあるリッチモーションパスに沿って移動されることにより増大させることができる。リッチモーション経路は、本明細書において、少なくとも二次元（例えば平面）において生じる、最小限の加速度のしきい値を越える動きとして定義される。一つの実施の形態において、リッチモーション経路は、位置センサ１０５に近づく及び／又は遠ざかるような動きを含んでもよい。一つの実施の形態において、三次元の加速度を含むリッチモーション経路は、二次元のみの加速度を含むリッチモーション経路よりも好ましい。
【００４１】
取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不確定さを有する。オブジェクト１１０により測定された加速度の大きさが減少するにつれて、信号ノイズ比（信号を改悪するノイズ強度に対する信号強度の比）は増加する。信号ノイズ比の減少により、慣性データはより不正確になる。一つの実施の形態において、慣性データが最小限の信号ノイズ比を下回ることを防ぐために、最小限の加速度のしきい値が設定される。
【００４２】
図３は、本発明の一つの実施の形態における、リッチモーション経路に沿って移動されるオブジェクトの例を示す。図示されるように、オブジェクトは、ゲームコントローラ３１０の端に取り付けられたボール３０５であり、リッチモーション経路３１５は、ユーザの頭の周囲の環状の経路である。環状の経路は、円内の動きが一定の加速度を提供する点で有利である。したがって、環状の経路は、増加された慣性データを提供する。リッチモーション経路３１５の全体は、位置センサの視野３２０の内部にあり、位置センサに近づく動き及び遠ざかる動きを含む。
【００４３】
図４は、本発明の一つの実施の形態における、追跡システム４００のブロック図を示す。追跡システム４００は、位置センサ４０５に物理的に接続され、位置センサ４０５により追跡されるオブジェクト４１０に無線接続される計算装置４１５を含む。計算装置４１５は、位置センサ４０５に無線接続され、及び／又は、オブジェクト４１０に物理的に接続されてもよいことが留意されるべきである。一つの実施の形態において、追跡システム４００は、図１の追跡システム１００に相当する。
【００４４】
オブジェクト４１０は、オブジェクト４１０の内部の固定的な位置に設けられた１以上の慣性センサ４２０を含む。一つの実施の形態において、慣性センサ４２０は、１以上のジャイロスコープ及び１以上の加速度計を含む。ジャイロスコープは、向きの変化（例えば、ピッチ、ロール、及びねじりの変化）を検出するために、角運動量を用いる。加速度計は、１以上の軸に沿った加速度を測定する。ジャイロスコープ及び加速度計は、分離された複数のセンサであってもよいし、一つのセンサに結合されていてもよい。一つの実施の形態において、ジャイロスコープ及び加速度計は、マイクロエレクトロメカニカルシステム（micro-electromechanical systems：ＭＥＭＳ）装置である。オブジェクト４１０が（例えばリッチモーション経路に沿って）移動されるとき、慣性センサ４２０は、慣性データを収集し、計算装置４１５へ送信する。慣性センサ４２０により収集された慣性データは、オブジェクト４１０の参照フレームのデータである。
【００４５】
位置センサ４０５は、ビデオカメラ、Ｚ−カメラ、ステレオカメラ、超音波センサアレイ、光検出器、又は画像を撮像可能な他の装置であってもよい。オブジェクト４１０が（例えばリッチモーション経路に沿って）移動されるとき、位置センサ４０５は、オブジェクト４１０の位置データ（例えば画像）を取得する。位置データは、画像の大きさ及び画像の位置の情報を含んでもよい。位置センサ４０５は、計算装置４１５に位置データを送信する。一つの実施の形態において、位置センサ４０５は、位置データが取得されるとリアルタイムに計算装置４１５に位置データを流す。
【００４６】
一つの実施の形態において、オブジェクト４１０が位置センサ４０５により追跡されるとき、オブジェクト４１０の位置の変更は、ゲームやコンピュータアプリケーションなどを制御するために、計算装置４１５に対する入力として使用される。例えば、オブジェクト４１０の位置の変更は、一人称又は三人称の視点のゲームにおけるキャラクタを制御したり、画面上のマウスカーソルを移動させたりするために用いられてもよい。別の実施の形態において、オブジェクト４１０から取得された慣性データは、計算装置４１５に対する入力して使用される。または、慣性データは、計算装置４１５のための精密かつ正確な入力を提供するために、位置センサ４０５により得られた位置データと組み合わせて用いられてもよい。
【００４７】
計算装置４１５は、ビデオゲームコンソール、パーソナルコンピュータ、ゲーム機などであってもよい。一つの実施の形態において、計算装置４１５は、位置センサ４０５から取得された位置データとオブジェクト４１０から取得された慣性データに基づいて追跡システム４００を較正する較正ロジック４３２を含む。更なる実施の形態において、較正ロジック４３２は、それぞれが較正に関連した異なる演算を実行する、慣性データロジックコンポーネント４２５、位置データロジックコンポーネント４３０、及び調整ロジックコンポーネント４３５を含む。
【００４８】
位置データロジックコンポーネント４３０は、（例えば画像内のオブジェクト４１０を検出するために）位置センサ４０５から取得した位置データ（例えば画像）を分析する。一つの実施の形態において、オブジェクト４１０の画像の位置は、画像内のオブジェクト４１０を表すピクセルのグループを分析することにより決定され、オブジェクトの中心が検出される。一つの実施の形態において、それぞれのピクセルのガウス分布が算出され、中心位置のピクセル以下の正確さを提供するために用いられてもよい。
【００４９】
一つの実施の形態において、位置データロジックコンポーネント４３０は、画像位置情報を位置センサ４０５の三次元座標系に変換する。画像位置は、以下の数式を用いて、三次元座標系に変換されうる。
【数１】
0005469179.tif 000002
【数２】
0005469179.tif 000003
【数３】
0005469179.tif 000004
ここで、Ｘｗはワールド参照フレームにおける水平方向の位置、Ｙｗはワールド参照フレームにおける垂直方向の位置、Ｘｉは画像における水平方向の位置、Ｙｉは画像における垂直方向の位置、Ｚｗは位置センサとオブジェクトとの間の距離、ｆは位置センサの焦点距離（視野に比例する値）、Ｒはオブジェクトの大きさ（例えば球の半径をｍｍで表したもの）、ｒはオブジェクトの画像の大きさ（例えば球の投影の半径をピクセルで表したもの）である。
【００５０】
位置データ（例えば画像位置）が三次元座標系に変換されると、位置データロジックコンポーネント４３０は、時間に対する位置情報の二階微分をとり、中心の位置の時間変化に基づいて、位置センサ４０５の三次元座標系におけるオブジェクト４１０の加速度を算出する。位置データロジックコンポーネント４３０は、算出された位置センサ加速度データを調整ロジックコンポーネント４３５に提供する。一つの実施の形態において、位置データロジックコンポーネント４３０は、加速度を算出する前に、位置データ（例えば画像位置）を平滑化する。
【００５１】
慣性データロジックコンポーネント４２５は、算出された加速度に一致させた状態になるように、慣性データを処理する。一つの実施の形態において、慣性データロジックコンポーネント４２５は、慣性データから重力によって生じる加速度を除去し、慣性データを調整ロジックコンポーネント４３５に伝達する。
【００５２】
一つの実施の形態において、位置センサの参照フレームと慣性データについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクト４１０の参照フレームは、オブジェクト４１０のピッチ及びロールが変化するにつれて、位置センサ４０５の参照フレームに対して変化する。さらに、オブジェクト４１０のピッチ及びロールが実質的に固定されない場合、慣性データは、ピッチの変化及び／又はロールの変化により生じる加速度の測定値を含む。このような加速度は、オブジェクト４１０の位置の変化を反映せず、そのため、較正のための有用な情報を提供しない可能性がある。このような加速度は、位置データに基づいて算出可能ではない可能性があるので、位置データロジックコンポーネント４３０により決定される算出された加速度に反映されない可能性がある。これにより、較正において誤差が生じる。
【００５３】
一つの実施の形態において、慣性データロジックコンポーネント４２５は、慣性データをオブジェクト４１０の参照フレームのままとする。慣性データロジックコンポーネント４２５は、例えば、オブジェクトがリッチモーション経路を通して実質的に固定されたピッチ及びロールを維持する場合に、慣性データをオブジェクト４１０の参照フレームのままとしてもよい。さらに、リッチモーション経路にわたってピッチ及びロールの変化が相殺される場合は、慣性データの参照フレームの変更により重大な較正誤差が生じない可能性がある。ピッチ及びロールの変化の平均がゼロとなる場合、参照フレーム間の変更により生じる誤差と、ピッチ及びロールの変化に起因する加速度により生じる誤差とは、ほぼ相殺される。これは、例えば、リッチモーション経路がユーザの前面の小さな環状経路であり、ユーザが手首又は方を動かさずに肘の周りでオブジェクト４１０を回転する場合に達成されうる。このような条件下では、慣性データロジックコンポーネント４２５は、慣性データをオブジェクト４１０の参照フレームのままとしてもよい。
【００５４】
一つの実施の形態において、慣性データロジックコンポーネント４２５は、慣性データを処理して、慣性データをオブジェクト４１０の参照フレームからワールド参照フレーム（重力に沿った軸を有する参照フレーム）に変換する。重力は、慣性センサ４２０により測定可能な下向きの一定の力をアサートする。慣性データは、慣性センサ４２０により検出された下向きの重力に基づいて、ワールド参照フレームに対するオブジェクト４１０のピッチ及びロールを算出することにより、ワールド参照フレームに変換されうる。オブジェクト４１０が移動されるとき、ジャイロスコープを用いて角加速度を決定し、オブジェクト４１０が静止していたときに測定されたピッチ及びロールの初期値に対するオブジェクト４１０のピッチ及びロールの変化を決定することができる。したがって、オブジェクト４１０が移動されるとき、慣性データはワールド参照フレームに変換可能である。これにより、そうでなければ参照フレーム間の関係の変更により導入されるであろう誤差が補正される。
【００５５】
一つの実施の形態において、慣性センサ４２０は、オブジェクト４１０の中心に配置されない。位置センサ４０５により測定される加速度は、オブジェクト４１０の中心に基づいているから、慣性センサ４２０は、位置データに基づいて位置データロジックコンポーネント４３０が算出する加速度と同じ加速度を測定しない。例えば、オブジェクト４１０が弧の周りで振られた場合、位置センサ４０５は、慣性センサ４２０により記録されるよりも大きな加速度を観測する可能性がある。この不一致は、慣性センサ４２０が、オブジェクト４１０の中心よりも弧の中心に近いために生じる。
【００５６】
慣性センサ４２０とオブジェクト４１０の中心の間の位置のずれにより生じる不一致は、ずれが既知であれば除去可能である。（向心力として測定される）角速度は、ジャイロスコープにより測定可能であり、位置のずれとともに、オブジェクト４１０の中心に配置された慣性センサ４２０により観測されるであろう加速度を算出するために用いられる。一つの実施の形態において、調整ロジックコンポーネント４３５に渡されるのは、この加速度である。
【００５７】
調整ロジックコンポーネント４３５は、追跡システム４００を較正するために、位置データロジックコンポーネント４３０により算出された加速度を、慣性データロジックコンポーネント４２５からの慣性データに融合させる。
【００５８】
慣性データの算出された加速度への融合は、位置センサ４０５のピッチ及び位置センサ４０５と追跡対象オブジェクト４１０との間の相対ヨーの算出を含む。位置センサ４０５のピッチの算出は、位置センサを重力に垂直な方向に向かせる回転角度を与える。ヨーに関しては、オブジェクト４１０は、当初、未知の方向へ向いている。したがって、オブジェクト４１０の初期の向きは、ゼロの向きとして任意に選択される。オブジェクト４１０の初期のゼロの向きと位置センサ４０５の向き（ヨー）が算出される。そして、オブジェクト４１０のゼロの向きは、位置センサ４０５の向きに合わせるように修正される。追跡システム４００は、例えばオブジェクト４１０の内部に設けられたジャイロスコープを用いて、オブジェクト４１０のゼロの向きからのずれを監視することにより、オブジェクト４１０が向いている方向を検出することができる。
【００５９】
慣性データは、第１のベクトルセットとして表現され、算出された加速度は、第２のベクトルセットとして表現されうる。算出された加速度及び慣性データは、同じオブジェクトの動きの異なる測定値を表す。したがって、算出された加速度及び慣性データは、第１のベクトルセットのそれぞれのベクトルが第２のベクトルセットのベクトルに対応する、合致したベクトルセットを含む。対応するベクトルは、同じ原点と同じ大きさを有する。２つのベクトルセットの唯一の違いは、それらが測定された参照フレームである。したがって、慣性データは、参照フレームを揃えるために必要な空間内の回転を求めることにより、算出された加速度と融合される。位置センサ４０５の視野が未知である一つの実施の形態において、慣性データを算出された加速度に融合させるために、スケーリング変換が実行される。
【００６０】
一つの実施の形態において、ピッチ及びヨーは、複数の可能性のある第１の角度（ピッチを表す）及び複数の可能性のある第２の角度（ヨーを表す）により、一つのベクトルセットのベクトルを回転させることにより求められる。可能性のある第１の角度及び可能性のある第２の角度の異なる多数の組み合わせが試されてもよい。回転された第１のセットのベクトルと対応する第２のセットのベクトルとの間の差を最小にする、可能性のある第１の角度と可能性のある第２の角度の組み合わせが、正しい第１及び第２の角度である。最急降下法、部分最小二乗法、最小二乗適合技術、又は他の誤差最小化技術が、正しい第１及び第２の角度を算出するために試される、可能性のある第１の角度及び可能性のある第２の角度の組み合わせの数を最小限にするために用いられてもよい。
【００６１】
オブジェクトの動きを含むそれぞれのベクトルＶｉは、第１のベクトルセットにおいてはＶｉ１と表され、第２のベクトルセットにおいてはＶｉ２と表される。第１のベクトルセットにおける全てのベクトルＶｉ１について、ベクトルＶｉ１は、第１及び第２の可能性のある角度に基づいて三次元回転により変換され、変換されたベクトルＶｉ１’となる。それぞれのベクトルＶｉについて、Ｖｉ１’とＶｉ２との間の差Ｄθが算出される。差は、誤差最小化技術を用いて結合されてもよい。例えば、それぞれのベクトル組の差が平均化されてもよい。一つの実施の形態において、第１のベクトルセットの回転されたベクトルＶｉ１’と、第２のベクトルセットのマッチしたベクトルＶｉ２との間の差の平均化された和が算出される。別の実施の形態において、例えば次のアルゴリズムを用いて、差の二乗の和が計算されてもよい。
【数４】
0005469179.tif 000005
他の誤差最小化技術がベクトルの差を結合するために用いられてもよい。
【００６２】
最小のＤθを与える角θが、正しい推定された三次元の角度である。したがって、三次元の角度θを与える、可能性のある第１の角度及び可能性のある第２の角度が、位置センサ４０５のピッチと、位置センサ４０５とオブジェクト４１０との間の相対ヨーを表す。いずれのセットのベクトルが回転されたとしても２つのベクトルセットの間の角度は同じになるから、いずれのセットのベクトルが回転されるかは問題ではない。
【００６３】
別の実施の形態において、慣性データは、座標系を揃える三次元回転を算出することにより、算出された加速度に調整される。三次元回転は、軸及び角度により定義されうる。三次元回転の回転軸は、第１のベクトルセットのベクトルＶｉ１と第２のベクトルセットのベクトルＶｉ２とのクロス積をとることにより求められる。
【数５】
0005469179.tif 000006
【００６４】
下記のように、Ｖｉ１のＶｉ２への投影を表すスカラーｓを求めるために、Ｖｉ１とＶｉ２のドット積（内積）もとられる。
【数６】
0005469179.tif 000007
【００６５】
三次元回転角θは、下記のように、回転軸及びスカラーを用いて求められる。
【数７】
0005469179.tif 000008
【００６６】
三次元回転は、いずれかの参照フレームに分解され、その参照フレームのそれぞれの軸の周りの回転角が決定されてもよい。例えば、三次元回転は、ｘ軸の周りの回転量を決定するためにｙｚ平面（ｘ軸に垂直な平面）に投影されてもよく、ｙ軸の周りの回転量を決定するためのｘｚ平面（ｙ軸に垂直な平面）に投影されてもよい。三次元の角度がワールド参照フレームに投影される場合、重力に沿った軸の周りの回転はヨーであり、重力に垂直で位置センサの画像平面内の軸の周りの回転はピッチである。三次元回転は、例えば、３つの直交する行列、回転行列、又は四元数を用いて、参照フレームの軸の周りの回転に分解されうる。
【００６７】
四元数は、実数上の四次元のノルム多元体を形成する。四元数は、行列変換よりも高速に計算することができ、その直交性を失わないから、座標変換の有用な表現を提供する。回転の四元数表現は、四次元ベクトルとして記述される。
【数８】
0005469179.tif 000009
【００６８】
ワールド参照フレームにおいて、四元数の要素は下記のように表現される。
【数９】
0005469179.tif 000010
【数１０】
0005469179.tif 000011
【数１１】
0005469179.tif 000012
【数１２】
0005469179.tif 000013
ここで、ｅｘ、ｅｙ、及びｅｚは、それぞれ、オブジェクトの参照フレームのｘ、ｙ、及びｚ軸に平行な単位ベクトルを表す。
【００６９】
四元数は、参照フレームに揃えることが必要なヨー及びピッチ回転の双方を完全に表現する。しかしながら、さらに直感的な結果を提供するために、四元数は、下記の式によりピッチ及びヨーのオイラー角に変換されてもよい。ロール、ピッチ、及びヨーは、次式にしたがって、四元数から計算されうる。
【数１３】
0005469179.tif 000014
【数１４】
0005469179.tif 000015
【数１５】
0005469179.tif 000016
【００７０】
ヨー、ピッチ、及びロール角は、それぞれのベクトル組について決定されてもよい。ヨー、ピッチ、及びロール角は、位置センサのピッチと、位置センサ４０５と追跡対象オブジェクト４１０との間の相対ヨーとを決定するために結合されてもよい。ヨー、ピッチ、及びロール角は、平均、重み付き平均、又は他の結合関数を用いて結合されてもよい。
【００７１】
一つの実施の形態において、位置センサは、ゼロのロールを有すると仮定される。したがって、一つの実施の形態において、ベクトル組のロールもゼロであると仮定されてもよい。しかし、ある実施の形態において、ノイズが、ベクトル組のベクトル間でロールがゼロではないことを示す差を生じる可能性がある。このような実施の形態において、ロールはゼロであるとは仮定されず、代わりに、後述のように算出されてもよい。または、ロールはゼロであると仮定されてもよく、ロールがゼロではないことを示すベクトル組は無視されてもよい。一つの実施の形態において、ロールは、ロールがゼロではないことを示す事例においてもゼロであると仮定される。ベクトル組を無視するよりも、ベクトル組について、ロールがゼロであると仮定されることにより生じる差の値が決定されてもよい。最小の差の値を有するベクトル組が、位置センサのピッチと、位置センサ４０５と追跡対象オブジェクト４１０との間の相対ヨーを決定するために用いられてもよい。ノイズを補償する他の方法が用いられてもよい。
【００７２】
図５は、一つの実施の形態における、プレイヤーにより把持された異なるコントローラの位置を決定するために視覚情報が用いられる、マルチプレイヤー環境５００の概略図を示す。マルチプレイヤー環境５００において、位置センサ５０８はプレイフィールド５１８の画像データを取得し、画像データはボールが設けられたコントローラＣ１、Ｃ２、Ｃ４、及びＣ５の位置を取得するために分析される。距離ｄｚ１、ｄｚ２、ｄｚ４、及びｄｚ５は、取得された画像におけるそれぞれのボールの形状及び大きさを分析することにより推定される。計算装置５０２は、取得された座標及び距離を用いて、画面５０４におけるプレイヤーの表現としてアバター５１２ａ及び５１２ｂをそれぞれ生成する。良好な画像認識のための典型的な距離は、約１０フィート（３メートル）である。視覚認識の一つの利点は、コントローラを変更する必要なく、画像取得及び画像認識の向上をシステムに取り込めることである。
【００７３】
図６は、一つの実施の形態に係る追跡システム較正する方法６００の例を示すフロー図である。方法は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令）、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法６００は、図１の計算装置１１５により実行される。一つの実施の形態において、方法６００は、ゲーム又は他のアプリケーションが計算装置１１５上で起動されるたびに実行される。または、方法６００は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【００７４】
図６を参照して、ブロック６０５において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、位置センサから追跡対象オブジェクトの位置データ（例えば画像の位置及び画像の大きさ）を取得する。一つの実施の形態において、計算装置は、位置センサの二次元参照フレームにおけるオブジェクトの画像を取得する。
【００７５】
ブロック６１０において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトから慣性データを取得する。取得された慣性データは、追跡対象オブジェクトの参照フレームのデータであってもよい。
【００７６】
一つの実施の形態において、位置センサの参照フレームと慣性センサについて用いられる参照フレームとの間の相対的な差は、不変に保たれる必要がある。しかしながら、オブジェクトのピッチ及びロールが変化するにつれて、カメラの参照フレームに対するオブジェクトの参照フレームは変化する。したがって、ブロック６１５において、追跡システムは、オブジェクトがリッチモーション経路に沿って移動されるときに、追跡対象オブジェクトのピッチ及び／又はロールがほぼ固定されたままであるか否かを決定する。追跡対象オブジェクトの方向がほぼ固定されたままであれば、方法はブロック６２５に進む。しかし、追跡対象オブジェクトのピッチ及び／又はロールが変化している場合は、方法はブロック６２０へ続く。一つの実施の形態において、ピッチ及びロールの変化の平均がゼロであれば、参照フレーム間の変化により生じる誤差はほぼ相殺されうる。これは、例えば、リッチモーション経路が環状の経路である場合に達成されうる。このような条件下では、方法はブロック６２５に進む。
【００７７】
ブロック６２０において、位置センサは、取得された慣性データを三次元ワールド参照フレームに変換する。この変換は、追跡対象オブジェクトに設けられた慣性センサは常時下向きの重力を測定するためになしうる。ブロック６２５において、画像位置は、（例えば、位置センサの二次元座標系から）位置センサの三次元座標系に変換される。
【００７８】
ブロック６３０において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられる。一つの実施の形態において、加速度は、位置データが取得されるとリアルタイムに算出される。または、加速度は定期的に（例えば１０ミリ秒ごと、０．５秒ごとなど）算出されてもよいし、リッチモーションが完了したときに算出されてもよい。
【００７９】
ブロック６３５において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に融合される。慣性データと算出された加速度の融合は、参照フレームを揃えるために必要な回転の決定を含む。回転の決定は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。一つの実施の形態において、ピッチ及びヨーは、可能性のある複数の第１の角度及び可能性のある複数の第２の角度により、一つのベクトルセットのベクトルを回転させ、参照フレーム間で最も良い整列を与える、可能性のある第１の角度及び可能性のある第２の角度を選択することにより求められる。別の実施の形態において、ピッチ及びヨーは、明示的に求められる。ピッチ及びヨーは、回転行列、オイラー角を定義する３つの直交行列、単位四元数などを用いて求められてもよい。
【００８０】
図７は、追跡システムを較正する方法７００の別の実施の形態のフロー図を示す。方法は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令）、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法７００は、図１の計算装置１１５により実行される。一つの実施の形態において、方法７００は、ゲーム又は他のアプリケーションが計算装置１１５上で起動されるたびに実行される。または、方法７００は、追跡対象オブジェクトが一定期間不動であった後に動きが検出されるたびに実行されてもよい。
【００８１】
図７を参照して、ブロック７０５において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトの位置データ（例えば、画像位置及び画像サイズ）を位置センサから取得する。ブロック７１０において、計算装置は、追跡対象オブジェクトがリッチモーション経路に沿って移動されるとき、追跡対象オブジェクトから慣性データを取得する。慣性データは、追跡対象オブジェクトの参照フレーム又はワールド参照フレームにおけるデータであってもよい。
【００８２】
ブロック７１５において、位置データ（例えば画像位置）が、位置センサの三次元座標系に変換される。ブロック７２０において、位置センサの三次元座標系における追跡対象オブジェクトの加速度が算出される。追跡対象オブジェクトの加速度を算出するために、画像位置の時間に関する二階微分がとられてもよい。
【００８３】
ブロック７２５において、計算装置は、慣性データが算出された加速度に同期されているか否かを判断する。算出された加速度のそれぞれのベクトルは、慣性データのベクトルに対応する。しかし、通信時間や計算時間などの遅延のために、慣性データのベクトルと、算出された加速度の対応するベクトルとの間のタイミングがずれる可能性がある。慣性データが算出された加速度に同期されていない場合、方法はブロック７３０に続く。慣性データと算出された加速度が同期されている場合、方法はブロック７３５に続く。
【００８４】
ブロック７３０において、計算装置は、ベクトルの大きさに基づいて、第１のセット（慣性データ）のベクトルと、時間的に近接した第２のセット（算出された加速度）のベクトルをマッチングする。例えば、第１のセットのベクトルが、第２のセットのベクトルから１／１０秒ずれているが、２つのベクトルの大きさはほぼ等しい場合、２つのベクトルは時間的に揃えられてもよい。第１のセットの全てのベクトルを第２のセットの対応するベクトルに揃えることにより、慣性データ及び算出された加速度が同期される。
【００８５】
ブロック７３５において、取得された慣性データは、位置センサの較正を完了するために、算出された加速度に調和される。慣性データと算出された加速度の調和は、参照フレームを揃えるために必要な回転の決定を含む。慣性データと算出された加速度の調和は、位置センサのピッチ及び位置センサと追跡対象オブジェクトの間の相対ヨーの算出を含む。
【００８６】
ピッチ及びヨーは、それぞれのベクトルの組について、慣性データ及び算出された加速度からの対応するベクトルから別々に算出されうる。信号ノイズのため、異なるベクトルの組について算出されたピッチ及びヨーは一致しない可能性がある。一つの実施の形態において、ピッチ及びヨーは、より正確な解を提供するために、複数のベクトルの組にわたって平均化される。ベクトルの組は、ピッチ及びヨーの精度を更に向上させるために、重み付けされ、及び／又は、フィルタリングされてもよい。
【００８７】
一つの実施の形態において、ブロック７４０において、加速度のしきい値よりも小さいベクトルは、算出された加速度及び慣性データから除去される。取得された慣性データは、慣性データに付随する信号ノイズの量により定義される不正確さを有する。オブジェクトにより測定された加速度の大きさが小さくなるにつれて、信号ノイズ比は大きくなる。信号ノイズ比が小さくなると、慣性データはより不正確になる。したがって、最小限の加速度のしきい値が、誤差を最小限にするために設定されてもよい。
【００８８】
一つの実施の形態において、ブロック７４５において、ベクトルは大きさに基づいて重み付けされる。より大きなベクトル（より大きな加速度を表す）は、小さなベクトルよりも重く重み付けされる。ベクトルの大きさが大きいほど、ベクトルはノイズにより影響されにくい（例えば、信号ノイズ比が大きい）。したがって、ベクトルを重み付けすることにより、較正の精度を向上させることができる。ベクトルは、大きさに基づいて比例的に重み付けされてもよいし、大きさの二乗に基づいて重み付けされてもよいし、他の重み付け関数にしたがって重み付けされてもよい。いくつかの重み付け技術について、ブロック７４０において実行されるようなベクトルのフィルタリングは必要とされなくてもよい。例えば、重み付け関数が、ベクトルの大きさの二乗に基づく場合、小さいベクトルは、ほぼゼロになるように重み付けされる。
【００８９】
方法６００及び７００は、オブジェクトの参照フレーム及び／又はワールド参照フレームに対する位置センサの向きを、ユーザが便利かつ簡易に実行できるような態様で検出して、追跡システムを較正する。双方の方法により、計算装置は、最小限のユーザ入力に基づいて、追跡システムを正確に較正することができる。
【００９０】
カメラを含むいくつかの追跡システムにおいて、カメラの視野（field of view：ＦＯＶ）は既知である可能性がある。しかし、いくつかの追跡システムは、カメラの視野を識別する情報を含まない可能性がある。例えば、未知の固定された視野を有するカメラが追跡システムに含まれうる。または、複数の既知の視野の設定を有するが、いずれの視野の設定が選択されたのかが直ちに明確ではないカメラが追跡システムに含まれうる。カメラの視野が未知であるこのような実施の形態において、実際の視野が決定される、又は、視野が求められるまで、異なる視野が推測されうる。
【００９１】
カメラの視野が未知である一つの実施の形態において、複数の異なる視野が仮定される。方法６００及び７００が、それぞれの仮定された視野について独立して実行されてもよい。回転された（例えば位置センサの）参照フレームと、回転されない参照フレーム（例えばワールド参照フレーム）との間の差を最小にする仮定された視野が、正しい視野であると決定される。
【００９２】
いくつかの追跡システムにおいて、追跡対象オブジェクトのサイズは未知である可能性がある。このような実施の形態において、実際のオブジェクトの大きさが決定される、又は、オブジェクトの大きさが求められるまで、異なるオブジェクトの大きさが推測されうる。オブジェクトの大きさが未知である一つの実施の形態において、複数の異なるオブジェクトの大きさが仮定される。方法６００及び７００が、それぞれの仮定されたオブジェクトの大きさについて独立して実行されてもよい。回転された（例えば位置センサの）参照フレームと、回転されない参照フレーム（例えばワールド参照フレーム）との間の差を最小にする仮定されたオブジェクトの大きさが、正しいオブジェクトの大きさであると決定される。
【００９３】
未知の視野を求める一つの方法は、カメラの撮像平面上への既知のサイズの追跡対象球の楕円投影に基づく。視野が既知であれば、同様の方法が、未知の球のサイズを求めるために用いられうる。球が視線に垂直でない平面上にある場合、球は楕円として投影される。この現象は、図８において観測することができる。図８は、本発明の一つの実施の形態に係る、カメラの画像平面８１５における異なる位置においてカメラの画像平面上に投影された球を示す。図示されるように、画像平面８１５の中心８１０に球が位置するとき、完全な円８０５がカメラの画像平面上に投影される。球が画像平面８１５の中心８１０から離れると、球は楕円として投影される。それぞれの楕円は、長軸８２５及び短軸８２０により表現することができる。図示されるように、楕円の短軸８２０は、常に視野８１５の中心８１０の方へ向いている。球が画像平面８１５の中心８１０から離れるほど、楕円の短軸８２０は短くなる。
【００９４】
図９は、カメラの撮像平面上への球の楕円投影を用いてカメラの視野を決定する方法９００の一つの実施の形態のフロー図を示す。方法９００は、カメラの視野が既知である場合に、未知のオブジェクトの大きさを決定するために用いられてもよい。方法は、ハードウェア（例えば、回路、専用ロジック、プログラマブルロジック、マイクロコードなど）、ソフトウェア（例えば、処理装置上で実行される命令）、又はそれらの組み合わせを含む処理ロジックにより実行されてもよい。一つの実施の形態において、方法９００は、図１の計算装置１１５により実行される。
【００９５】
図９に戻り、ブロック９０５において、計算装置は、球の画像データを取得する。球の画像データは、カメラの撮像平面上に、短軸が画像の中心に向いた楕円として投影される。ブロック９１０において、計算装置は、カメラの撮像平面における球の位置を決定する。楕円の中心が探索され、画像の中心からの距離として表現される。ブロック９１５において、楕円の長軸ａ及び短軸ｂは、次式にしたがって計算される。
【数１６】
0005469179.tif 000017
【数１７】
0005469179.tif 000018
ここで、ｉｘは画像の水平方向の大きさを（例えばピクセル単位で）表し、ｉｙは画像の垂直方向の大きさを（例えばピクセル単位で）表し、Ｚはカメラと球との間の距離であり、ｒは球の半径であり、ｆは投影された楕円の中心から画像の中心までの距離（例えばピクセル単位）である。
【００９６】
数式１６及び１７は、図１０を参照することにより、より良く理解されうる。図１０は、本発明の一つの実施の形態において、カメラの撮像平面１０１５上に楕円１０１０として投影された球１００５を示す。
【００９７】
図９に戻り、ブロック９２０において、計算装置は、画像内の投影の位置と楕円の長軸と短軸との間の比に基づいて、カメラの視野を算出する。短軸に対する長軸の比は、画像内の楕円の中心の位置に依存する。したがって、比は、画像内の楕円の位置に基づいて決定されうる。さらに、球とカメラとの間の距離は、球の半径よりもずっと長いと予想される。このような予想が成立する場合、（ｚ２−ｒ２）はほぼｚ２に等しい。したがって、長軸と短軸との間の比は、次式で表現されうる。
【数１８】
0005469179.tif 000019
【００９８】
距離ｆは、次式で表現されうる。
【数１９】
0005469179.tif 000020
【００９９】
距離ｆは、視野に変換されうる。距離ｆを用いて、水平方向の視野ＦＯＶｘと垂直方向の視野ＦＯＶｙを、標準的な三角関数により次式のように算出することができる。
【数２０】
0005469179.tif 000021
【数２１】
0005469179.tif 000022
ここで、ｗは画像の幅をピクセルで表したものであり、ｈは画像の高さをピクセルで表したものである。
【０１００】
ブロック９２５において、算出された視野は、可能性のある視野の設定と比較される。実際の視野は、算出された視野に最も近い視野の設定の視野であると決定される。投影された画像内の球の楕円変形がわずかである（例えば、楕円の長軸と短軸との間の差がわずかしかない）一つの実施の形態において、算出された視野の誤差は大きい。このような実施の形態において、算出された視野は、視野の範囲である。実際の視野は、視野の範囲内のどこにでもなりうる。視野の範囲は視野の設定と比較され、算出された視野の範囲内にある視野の設定が視野であると決定される。
【０１０１】
ブロック９３０において、カメラを用いて三次元空間内で球を追跡するために視野が用いられる。方法はこれで終了する。
【０１０２】
図１１は、本発明の一つの実施の形態に関連して、コントローラの位置を決定するために用いられうるハードウェア及びユーザインタフェースを示す。図１１は、本発明の一つの実施の形態に係る三次元コントローラ位置探索システムの実装に互換性のあるコンソールであるソニープレイステーション３（登録商標）エンタテインメント装置の全体システム構成を概略的に示す。システムユニット１４００とともに、システムユニット１４００に接続可能な種々の周辺装置が設けられる。システムユニット１４００は、セルプロセッサ１４２８、ランバス（登録商標）ダイナミックランダムアクセスメモリ（ＸＤＲＡＭ）ユニット１４２６、専用のビデオランダムアクセスメモリ（ＶＲＡＭ）ユニット１４３２とともに設けられたリアリティシンセサイザーグラフィックスユニット１４３０、及び入出力ブリッジ１４３４を備える。システムユニット１４００は、さらに、入出力ブリッジ１４３４を介してアクセス可能な、ディスク１４４０Ａから読み出すためのブルーレイ（登録商標）ディスクＢＤ−ＲＯＭ光ディスクリーダ１４４０及び脱着可能なスロットインハードディスクドライブ（ＨＤＤ）１４３６を備える。システムユニット１４００は、オプションで、入出力ブリッジ１４３４を介して同様にアクセス可能な、コンパクトフラッシュ（登録商標）メモリカード、メモリスティック（登録商標）メモリカードなどを読み出すためのメモリカードリーダ１４３８をさらに備える。
【０１０３】
入出力ブリッジ１４３４は、さらに、複数のユニバーサルシリアルバス（ＵＳＢ）２．０ポート１４２４、ギガビットイーサネット（登録商標）ポート１４２２、ＩＥＥＥ８０２．１１ｂ／ｇ無線ネットワーク（Ｗｉ−Ｆｉ）ポート１４２０、７つのブルートゥース（登録商標）接続までサポート可能なブルートゥース無線リンクポート１４１８に接続する。
【０１０４】
動作中、入出力ブリッジ１４３４は、１以上のゲームコントローラ１４０２〜１４０３からのデータを含む全ての無線、ＵＳＢ及びイーサネット（登録商標）データを扱う。例えば、ユーザがゲームをプレーするとき、入出力ブリッジ１４３４は、ブルートゥースリンクを介してゲームコントローラ１４０２〜１４０３からデータを受信し、セルプロセッサ１４２８に伝える。セルプロセッサ１４２８は、ゲームの現在の状態をそのように更新する。
【０１０５】
無線、ＵＳＢ及びイーサネット（登録商標）ポートは、ゲームコントローラ１４０２〜１４０３に加えて、リモートコントローラ１４０４、キーボード１４０６、マウス１４０８、ソニープレイステーションポータブル（登録商標）エンタテインメント装置などの携帯型エンタテインメント装置１４１０、アイトイ（登録商標）ビデオカメラなどのビデオカメラ１４１２、マイクロフォンヘッドセット１４１４、及びマイクロフォン１４１５などの他の周辺装置との接続も提供する。これらの周辺装置は、原則として、システムユニット１４００に無線で接続されてもよい。例えば、携帯型エンタテインメント装置１４１０は、Ｗｉ−Ｆｉアドホック接続を介して通信してもよいし、マイクロフォンヘッドセット１４１４は、ブルートゥースリンクを介して通信してもよい。
【０１０６】
これらのインタフェースの提供は、プレイステーション３装置が、ディジタルビデオレコーダ（ＤＶＲ）、セットトップボックス、ディジタルカメラ、携帯型メディアプレーヤ、ボイスオーバーＩＰ電話、携帯電話、プリンタ、及びスキャナなどの他の周辺装置との互換性をも潜在的に有することを意味する。
【０１０７】
さらに、プレイステーション（登録商標）又はプレイステーション２（登録商標）装置により用いられる種類のメモリカード１４４８の読み出しを可能にするレガシーメモリカードリーダ１４１６が、ＵＳＢポート１４２４を介してシステムユニットに接続されてもよい。
【０１０８】
ゲームコントローラ１４０２〜１４０３は、ブルートゥースリンクを介してシステムユニット１４００と無線通信可能であるか、ＵＳＢポートを介して接続して、ゲームコントローラ１４０２〜１４０３のバッテリを充電するための電源も提供可能である。ゲームコントローラ１４０２〜１４０３は、メモリ、プロセッサ、メモリカードリーダ、フラッシュメモリなどの永続メモリ、ＬＥＤ又は赤外光などの光照射部、超音波通信のためのマイクロフォン及びスピーカ、音響チャンバ、ディジタルカメラ、内部クロック、ゲームコンソールに面した球などの認識可能な形状、及びブルートゥース、ＷｉＦｉなどのプロトコルを用いた無線通信を含んでもよい。
【０１０９】
図２Ａ〜２Ｂにおいて前述したように、ゲームコントローラ１４０２は両手で用いられるように設計されたコントローラであり、ゲームコントローラ１４０３は、ボールが設けられた、片手で扱うコントローラである。１以上のアナログジョイスティック及び従来の制御ボタンに加えて、ゲームコントローラは、三次元位置決定が可能である。したがって、ゲームコントローラのユーザのジェスチャー及び動きが、従来のボタン又はジョイスティックのコマンドに加えて、又はそれに代えて、ゲームに対する入力として翻訳されてもよい。オプションとして、プレイステーションポータブル装置などの他の無線通信可能な周辺装置がコントローラとして用いられてもよい。プレイステーションポータブル装置の場合、装置の画面に、更なるゲーム又は制御情報（例えば、制御命令又はライフの数）が提供されてもよい。ダンスマット（図示せず）、光線銃（図示せず）、ステアリングホイール及びペダル（図示せず）、又は早押しクイズゲームのための単一又はいくつかの大きなボタンなどの専用コントローラ（図示せず）などの他の代替又は追加の制御装置が用いられてもよい。
【０１１０】
リモートコントローラ１４０４は、ブルートゥースリンクを介してシステムユニット１４００と無線通信可能である。リモートコントローラ１４０４は、ブルーレイディスクＢＤ−ＲＯＭリーダ１４４０の動作及びディスク内容のナビゲーションのために適した制御を備える。
【０１１１】
ブルーレイディスクＢＤ−ＲＯＭリーダ１４４０は、従来の記録済み及び記録可能なＣＤ及びいわゆるスーパーオーディオＣＤに加えて、プレイステーション及びプレイステーション２装置に互換なＣＤ−ＲＯＭを読み出し可能である。リーダ１４４０は、従来の記録済み及び記録可能なＤＶＤに加えて、プレイステーション２及びプレイステーション３装置に互換なＤＶＤ−ＲＯＭを更に読み出し可能である。リーダ１４４０は、さらに、従来の記録済み及び記録可能なブルーレイディスクだけでなく、プレイステーション３装置に互換なＢＤ−ＲＯＭを読み出し可能である。
【０１１２】
システムユニット１４００は、生成された、又は、リアリティシンセサイザーグラフィックスユニット１４３０を介してプレイステーション３装置によりデコードされた音声及び映像を、音声及び映像コネクタを介して、モニタ又はディスプレー１４４４と１以上のラウドスピーカ１４４６を有するテレビジョンセットなどの表示及び音声出力装置１４４２に対して供給可能である。音声コネクタ１４５０は、従来のアナログ及びディジタル出力を含んでもよく、映像コネクタ１４５２は、コンポーネントビデオ、Ｓ−ビデオ、コンポジットビデオ、及び１以上の高解像度マルチメディアインタフェース（ＨＤＭＩ）出力などを含んでもよい。結果として、映像出力は、ＰＡＬ又はＮＴＳＣ、又は、７２０ｐ、１０８０ｉ又は１０８０ｐ高解像度の形式であってもよい。
【０１１３】
音声処理（生成、デコードなど）は、セルプロセッサ１４２８により実行される。プレイステーション３装置のオペレーティングシステムは、ドルビー（登録商標）５．１サラウンド音声、ドルビーシアターサラウンド（ＤＴＳ）、及びブルーレイディスクからの７．１サラウンド音声のデコードをサポートする。
【０１１４】
本発明の一つの実施の形態によれば、ビデオカメラ１４１２は、単一の電荷結合素子（ＣＣＤ）、ＬＥＤインジケータ、及びハードウェアベースのリアルタイムデータ圧縮エンコード装置を備え、圧縮されたビデオデータは、システムユニット１４００によりデコードするために、画像間ベースのＭＰＥＧ（motion picture expert group）スタンダードなどの適当な形式で送信されてもよい。カメラＬＥＤインジケータは、例えば逆光条件を知らせるなどのシステムユニット１４００からの適切な制御データに応答して光る。ビデオカメラ１４１２の実施の形態は、ＵＳＢ、ブルートゥース、又はＷｉ−Ｆｉの通信ポートを介してシステムユニット１４００に接続してもよい。ビデオカメラの実施の形態は、１以上の結合されたマイクロフォンを含み、音声データを送信可能であってもよい。ビデオカメラの実施の形態において、ＣＣＤは、高精細ビデオキャプチャに適した解像度を有してもよい。使用中、ビデオカメラにより撮像された画像は、例えば、ゲーム内に組み込まれてもよいし、ゲーム制御入力として解釈されてもよい。カメラの別の実施の形態において、カメラは、赤外光を検出するのに適した赤外線カメラである。
【０１１５】
一般に、システムユニット１４００の通信ポートの一つを介して、ビデオカメラ又はリモートコントローラなどの周辺装置との間で発生するデータ通信を成功させるために、デバイスドライバなどの適切なソフトウェアが提供されるべきである。デバイスドライバの技術は既知であり、ここでは詳述しないが、本実施の形態においてデバイスドライバ又は類似のソフトウェアインタフェースが要求されることは、当業者には理解されるところである。
【０１１６】
図１２は、本発明の一つの実施の形態における、命令の処理に利用可能な追加のハードウェアを示す。図１１のセルプロセッサ１４２８は、メモリコントローラ１５６０及びデュアルバスインタフェースコントローラ１５７０Ａ、１５７０Ｂを備える外部入出力構成、パワープロセッシングエレメント（ＰＰＥ）１５５０と呼ばれるメインプロセッサ、シナジスティックプロセッシングエレメント（ＳＰＥ）１５１０Ａ〜Ｈと呼ばれる８個のコプロセッサ、要素相互接続バス１５８０と呼ばれる、上記の要素を接続する環状データバスの４つの基本要素を備えた構成を有する。セルプロセッサの全体の浮動小数点演算は、プレイステーション２装置のエモーションエンジンの６．２Ｇフロップスであるのに対して、２１８Ｇフロップスである。
【０１１７】
パワープロセッシングエレメント（ＰＰＥ）１５５０は、３．２ＧＨｚの内部クロックで動作するパワーＰＣ（PowerPC）コア（ＰＰＵ）１５５５に互換な、双方向平行マルチスレッドパワー１４７０に基づいている。これは、５１２ｋＢのレベル２（Ｌ２）キャッシュ及び３２ｋＢのレベル１（Ｌ１）キャッシュを備える。ＰＰＥ１５５０は、クロックサイクルごとに８つの単精度演算を行うことができ、これは３．２ＧＨｚにおいて２５．６ギガフロップスにあたる。ＰＰＥ１５５０の主要な役割は、ほとんどの計算作業負荷を扱うＳＰＥ１５１０Ａ〜Ｈのためのコントローラとして機能することである。動作において、ＰＰＥ１５５０は、ジョブのキューを保持し、ＳＰＥ１５１０Ａ〜Ｈのジョブをスケジューリングし、それらの進行を監視する。それぞれのＳＰＥ１５１０Ａ〜Ｈは、ジョブを取ってきて実行するのが役割であるカーネルを実行し、ＰＰＥ１５５０に同期される。
【０１１８】
それぞれのＳＰＥ１５１０Ａ〜Ｈは、シナジスティックプロセッシングユニット（ＳＰＵ）１５２０Ａ〜Ｈを備え、それぞれのメモリフローコントローラ（ＭＦＣ：Memory Flow Controller）１５４０Ａ〜Ｈは、ダイナミックメモリアクセスコントローラ（ＤＭＡＣ：Dynamic Memory Access Controller）１５４２Ａ〜Ｈ、メモリ管理ユニット（ＭＭＵ）１５４４Ａ〜Ｈ、及びバスインタフェース（図示せず）を備える。それぞれのＳＰＵ１５２０Ａ〜Ｈは、クロックが３．２ＧＨｚで、原則として４ＧＢまで拡張可能な２５６ｋＢのローカルＲＡＭ１５３０Ａ〜Ｈを備える、ＲＩＳＣプロセッサである。それぞれのＳＰＥは、理論上、２５．６ＧＦＬＯＰＳの単精度性能を与える。ＳＰＵは、４つの単精度浮動小数演算、４つの３２ビット演算、８つの１６ビット整数演算、又は１６の８ビット整数演算を、１つのクロックサイクルで実行可能である。同じクロックサイクルにて、メモリ命令を実行することもできる。ＳＰＵ１５２０Ａ〜Ｈは、システムメモリＸＤＲＡＭ１４２６に直接アクセスしない。ＳＰＵ１５２０Ａ〜Ｈにより生成される６４ビットのアドレスは、ＭＦＣ１５４０Ａ〜Ｈに渡され、要素相互接続バス１５８０及びメモリコントローラ１５６０を介してメモリにアクセスするためのＤＭＡコントローラ１５４２Ａ〜Ｈに命令される。
【０１１９】
要素相互接続バス（ＥＩＢ）１５８０は、セルプロセッサ１４２８の内部の論理的に巡回した通信バスである。ＥＩＢは、上述のプロセッサエレメント、すなわち、ＰＰＥ１５５０、メモリコントローラ１５６０、デュアルバスインタフェース１５７０Ａ、Ｂ、及び８つのＳＰＥ１５１０Ａ〜Ｈの、合計１２の要素を接続する。要素は、クロックサイクルごとに８バイトの速度でバスを同時に読み、及び書き込むことができる。前述したように、それぞれのＳＰＥ１５１０Ａ〜Ｈは、より長いリード又はライトシーケンスをスケジュールするためのＤＭＡＣ１５４２Ａ〜Ｈを備える。ＥＩＢは４つのチャンネルを備え、２つは時計回りで、２つは反時計回りの方向である。１２の要素の間で、任意の２つの要素の間のうち最も長いデータフローは、適切な方向に６ステップとなる。ＥＩＢの１２スロットの帯域の理論上のピークの瞬間は、要素間の調停を通じて全てが利用されたとき、クロックごとに９６バイトである。これは、クロックレートが３．２ＧＨｚのときの理論上のピークバンド幅の３０７．２ＧＢ／ｓ（ギガバイト毎秒）と同じである。
【０１２０】
メモリコントローラ１５６０は、ランバス社により開発されたＸＤＲＡＭインタフェース１５６２を備える。メモリコントローラは、理論上はピークバンド幅毎秒２５．６ギガバイトで、ランバスＸＤＲＡＭ１４２６と接続する。
【０１２１】
デュアルバスインタフェース１５７０Ａ、Ｂは、ランバスフレックスＩＯ（登録商標）システムインタフェース１５７２Ａ、Ｂを備える。インタフェースは、それぞれが８ビット幅である、入力５経路、出力７経路の１２チャンネルに組織化される。これは、セルプロセッサ及びコントローラ１７０Ａを介した入出力ブリッジ７００及びコントローラ１７０Ｂを介したリアリティシミュレータグラフィックスユニット２００の間の６２．４ＧＢ／ｓ（出力３６．４ＧＢ／ｓ、入力２６ＧＢ／ｓ）の理論的ピークバンド幅を提供する。
【０１２２】
セルプロセッサ１４２８によりリアリティシミュレータ（Reality Simulator）グラフィクスユニット１４３０に送られたデータは、典型的には、表示リスト、頂点の描画命令列、ポリゴンに対するテクスチャの適用、光条件の特定などを含む。
【０１２３】
上述の説明は、例示を意図しており、制限を意図していないことが理解されるべきである。上述の説明を読み、理解した当業者には、多数の別の実施の形態が明らかとなろう。本発明が、いくつかの特定の実施の形態に関して説明されたが、本発明は説明された実施の形態に限られず、添付された特許請求の範囲の精神及び範囲内で変更及び代替が可能であることは、当業者に認識されるところである。したがって、詳細な説明は、限定ではなく例示であるとみなされるべきである。本発明の範囲は、特許請求の範囲に与えられる全ての範囲の均等物とともに、特許請求の範囲を参照して決定されるべきである。
【図１】
0005469179.tif 000023
【図２Ａ】
0005469179.tif 000024
【図２Ｂ】
0005469179.tif 000025
【図２Ｃ】
0005469179.tif 000026
【図３】
0005469179.tif 000027
【図４】
0005469179.tif 000028
【図６】
0005469179.tif 000029
【図７】
0005469179.tif 000030
【図８】
0005469179.tif 000031
【図９】
0005469179.tif 000032
【図１０】
0005469179.tif 000033
【図１２】
0005469179.tif 000034
【図５】
0005469179.tif 000035
【図１１】
0005469179.tif 000036