(57)【特許請求の範囲】
【請求項１】
計測対象の位置及び／または姿勢の計測を位置及び／または姿勢センサの出力値に基づいて行うときに必要な補正情報の導出を行う情報処理装置であって、
計測対象の位置及び／または姿勢を計測するセンサと、
視点の予め定められた位置姿勢に基づいて、ユ−ザが前記予め定められた位置姿勢において表示画面を観察した場合に該表示画面上で観測されるであろう指標を示す指標仮想画像を生成する生成手段と、
現実空間上の指標と前記生成された指標仮想画像とが、表示画面上で一致していることを示すユーザ指示を入力する入力手段と、
前記入力手段の入力に応じて前記センサの出力値を取得する取得手段と、
前記予め定められた位置及び／または姿勢を示す情報と、前記取得手段が取得したセンサの出力値とに基づいて、前記補正情報を演算する演算手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記位置及び／または姿勢センサは前記計測対象に直接又は間接的に装着されており、前記センサの出力値は、センサ座標系における前記センサ自身の位置及び／または姿勢を表す情報であって、
前記補正情報は、センサ座標系における前記センサ自身の位置及び／または姿勢をセンサ座標系における前記計測対象の位置及び／または姿勢に変換する第１の座標変換情報と、センサ座標系の位置及び／または姿勢を世界座標系の位置及び／または姿勢へ変換する第２の座標変換情報を含むことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記位置及び／または姿勢の計測は位置及び姿勢の計測であり、前記センサは位置及び姿勢センサであって、
前記演算手段は、前記第１の座標変換情報のうちの姿勢に関する情報と、前記第２の座標変換情報のうちの位置に関する情報を求める処理を行うことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記位置及び／または姿勢の計測は姿勢のみの計測であり、前記センサは姿勢センサであって、
前記未知である情報は、前記第１の座標変換情報のうちのピッチ角及びロ−ル角に関する情報と、前記第２の座標変換情報のうちのヨー角に関する情報であることを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記計測対象は、表示画面に現実空間を光学的に透過させつつ当該表示画面に仮想空間を重畳表示する表示装置を観察するユーザの視点であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記計測対象は、現実空間を撮像する撮像手段の視点であることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
前記指標は前記現実空間内で面積または体積を持つ物体であり、
前記生成手段は、前記指標の形状情報を含む幾何情報を用いて前記指標仮想画像を生成することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項８】
前記生成手段は、前記指標のワイヤ−フレ−ムを生成することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
位置及び／または姿勢センサの出力値に基づいて、現実空間を撮像した映像に仮想空間を重畳描画して表示画面に表示する、あるいは、表示画面に現実空間を光学的に透過させつつ当該表示画面に仮想空間を重畳表示する複合現実感提示装置であって、
請求項１乃至８のいずれか１項に記載の情報処理装置と、
複合現実感の提示を行う提示モードと補正情報の導出を行う導出モードを切替える切替え手段とを備え、
前記導出モードでは前記情報処理装置を用いて前記補正情報の導出を行い、
前記提示モードでは前記補正情報と前記センサの出力値とを用いて複合現実感の提示を行うことを特徴とする複合現実感提示装置。
【請求項１０】
前記導出モードに用いる物体の幾何情報の一部あるいは全てを、前記提示モードと共用することを特徴とする請求項９に記載の複合現実感提示装置。
【請求項１１】
計測対象の位置及び／または姿勢の計測を、前記計測対象の位置及び／または姿勢を検出する位置及び／または姿勢センサの出力値に基づいて行うときに必要な補正情報の導出を行う情報処理方法であって、
視点の予め定められた位置姿勢に基づいて、ユ−ザが前記予め定められた位置姿勢において表示画面を観察した場合に該表示画面上で観測されるであろう指標を示す指標仮想画像を生成する生成工程と、
現実空間上の指標と前記生成された指標仮想画像とが、表示画面上で一致していることを示すユーザ指示を入力する入力工程と、
前記入力工程での入力に応じて前記センサの出力値を取得する取得工程と、
前記予め定められた位置及び／または姿勢を示す情報と、前記取得工程で取得したセンサの出力値とに基づいて、前記補正情報を演算する演算工程と
を備えることを特徴とする情報処理方法。
【請求項１２】
前記位置及び／または姿勢センサは前記計測対象に直接又は間接的に装着されており、前記センサの出力値は、センサ座標系における前記センサ自身の位置及び／または姿勢を表す情報であって、
前記補正情報は、センサ座標系における前記センサ自身の位置及び／または姿勢をセンサ座標系における前記計測対象の位置及び／または姿勢に変換する第１の座標変換情報と、センサ座標系の位置及び／または姿勢を世界座標系の位置及び／または姿勢へ変換する第２の座標変換情報を含むことを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
コンピュータに請求項１１又は１２に記載の情報処理方法を実行させることを特徴とするプログラム。
【請求項１４】
請求項１３に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項１５】
さらに、世界座標系におけるセンサ座標系位置姿勢を算出する導出する導出手段を有し、
前記演算手段は、前記予め定められた位置及び／または姿勢、前記取得手段が取得したセンサの出力値および前記世界座標系におけるセンサ座標系位置姿勢に基づいて、前記補正情報を演算することを特徴とする請求項１又は２に記載の情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複合現実感提示を行うための技術に関するものである。
【０００２】
【従来の技術】
近年、複合現実感（以下、「ＭＲ」（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）と称す）に関する研究が盛んに行われている。ＭＲとは現実空間と仮想空間の繋ぎ目のない結合を目的とし、バーチャルリアリティ（以下、ＶＲと称す）において重要な技術である。
【０００３】
ＭＲは従来、現実空間と切り離された状況でのみ体験可能であったＶＲの世界と現実空間の共存を目的とし、ＶＲを増強する技術として注目されている。
【０００４】
ＭＲには、ビデオカメラなどの撮影装置で撮影された現実空間の映像に仮想空間（たとえばコンピュータグラフィックス（以下、ＣＧと称す）により描画された仮想物体や文字情報など）の映像を重畳表示するビデオシースルー方式と、表示装置に現実空間を光学的に透過させつつ、その表示画面に仮想空間の映像を重畳表示する光学シースルー方式がある。
【０００５】
ＭＲの応用としては、患者の体内の様子を透視しているかのように医師に提示する医療補助の用途や、工場において製品の組み立て手順を実物に重ねて表示する作業補助の用途など、今までのＶＲとは質的に全く異なった新たな分野が期待されている。
【０００６】
これらの応用に対して共通に要求されるのは、現実空間と仮想空間の間の位置姿勢合わせをいかにして行うかという技術であり、従来から多くの取り組みが行われてきた。
【０００７】
ビデオシースルー方式のＭＲにおける位置姿勢合わせの問題は、現実空間に設定した世界座標系（以後、単に世界座標系と呼ぶ）におけるビデオカメラの３次元位置姿勢を正確に求める問題に帰結される。また光学シースルー方式のＭＲにおける位置姿勢合わせの問題は、同様に世界座標系におけるユーザの視点の３次元位置姿勢を求める問題といえる。
【０００８】
これらの問題を解決する方法として、磁気センサや超音波センサなどの３次元位置姿勢センサを利用して、世界座標系におけるビデオカメラやユーザの視点の３次元位置姿勢を導出することが一般的に行われている。
【０００９】
３次元位置姿勢センサが出力する出力値は、例えば磁気センサの場合は、後述の交流磁界発生源の位置を中心として定義される座標系であるところのセンサ座標系におけるセンサ自身の３次元位置姿勢であり、計測対象であるところの世界座標系におけるビデオカメラやユーザの視点の３次元位置姿勢ではない。すなわち、センサ出力値をそのまま世界座標系におけるビデオカメラやユーザの視点の３次元位置姿勢として用いることはできず、何らかの座標変換が必要となる。以下では、センサ出力値と世界座標系におけるビデオカメラやユーザの視点の３次元位置姿勢との間の座標変換を行うためのデータをキャリブレーションデータ（補正情報）と呼ぶこととする。また、キャリブレーションデータを前もって設定、あるいは算出する過程をキャリブレーションと呼ぶこととする。正確なキャリブレーションが行われることで初めて、３次元位置姿勢センサの出力を世界座標系におけるビデオカメラやユーザの視点の３次元位置姿勢に変換することが可能となり、ＭＲにおける正確な位置姿勢合わせが実現される。
【００１０】
【発明が解決しようとする課題】
しかしキャリブレーション、すなわち、
・世界座標系におけるセンサ座標系の位置姿勢（センサの出力を世界座標系におけるセンサの位置姿勢に変換するための情報）の取得
・センサから見た計測対象（カメラ、或いは観察者の視点）の位置姿勢（センサの位置姿勢を、計測対象の位置姿勢に変換するための情報）の取得
が困難であった。
【００１１】
本発明は以上の問題に鑑みてなされたものであり、センサ座標系を世界座標系に変換するための情報や、センサの位置姿勢を計測対象の位置姿勢に変換するための情報を取得することを目的とする。
【００１２】
【課題を解決するための手段】
本発明の目的を解決する為に、例えば本発明の情報処理装置は以下の構成を備える。
【００１３】
すなわち、計測対象の位置及び／または姿勢の計測を位置及び／または姿勢センサの出力値に基づいて行うときに必要な補正情報の導出を行う情報処理装置であって、
計測対象の位置及び／または姿勢を計測するセンサと、
視点の予め定められた位置姿勢に基づいて、ユ−ザが前記予め定められた位置姿勢において表示画面を観察した場合に該表示画面上で観測されるであろう指標を示す指標仮想画像を生成する生成手段と、
現実空間上の指標と前記生成された指標仮想画像とが、表示画面上で一致していることを示すユーザ指示を入力する入力手段と、
前記入力手段の入力に応じて前記センサの出力値を取得する取得手段と、
前記予め定められた位置及び／または姿勢を示す情報と、前記取得手段が取得したセンサの出力値とに基づいて、前記補正情報を演算する演算手段と
を備えることを特徴とする。
【００１４】
本発明の目的を解決する為に、例えば本発明の複合現実感提示装置は以下の構成を備える。
【００１５】
すなわち、位置及び／または姿勢センサの出力値に基づいて、現実空間を撮像した映像に仮想空間を重畳描画して表示画面に表示する、あるいは、表示画面に現実空間を光学的に透過させつつ当該表示画面に仮想空間を重畳表示する複合現実感提示装置であって、
請求項１０乃至１６のいずれか１項に記載の情報処理装置と、
複合現実感の提示を行う提示モードと補正情報の導出を行う導出モードを切替える切替え手段とを備え、
前記導出モードにおいて前記複合現実感提示に必要な補正情報の導出を行い、前記提示モードにおいて該補正情報を用いて複合現実感の提示を行う。
【００１６】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１７】
［第１の実施形態］
以下、本発明の情報処理装置及びその方法をゲーム装置のキャリブレ−ションを行う装置及びその方法に適用し、更に例えば、ＭＲ技術を利用したエアーホッケーゲーム装置に適用する場合の詳細を説明する。
【００１８】
エアーホッケーゲームは相手の存在する対戦型のゲームであり、通常下部から圧縮空気を供給してパックを浮かして、このパックを打ち合い、相手のゴールにパックを入れたら得点が入る。得点の多い方を勝者とするゲームである。本実施形態のＭＲ技術を適用したエアーホッケーゲームは、パックを仮想３次元画像として現実環境のテーブルに重畳してプレーヤに提示して、現実のマレットで打ち合うものである。
【００１９】
＜ゲーム装置の構成＞
第１図は、本実施形態のシステムのゲーム装置部分を側面から見た図である。
ＭＲ技術を使ったエアーホッケーゲームは、テーブル１０００を挟んで、二人の対戦者２０００，３０００が手にマレット（２６０Ｌ，２６０Ｒ）をもって向かい合う。二人の対戦者２０００，３０００は頭部にヘッドマウントデイスプレイ２１０Ｌ，２１０Ｒ（以下ＨＭＤと略す）を装着する。本実施形態のマレット（２６０Ｌ、２６０Ｒ）はその先端に赤外線発光器を有しており、マレットの位置検出には赤外線発光器から発せられた赤外線を用いる。その詳細については後述する。又その他のマレットの位置検出方法としてマレットの形状や色に特徴があるのであれば、それらの特徴を用いたパターン認識により行っても良い。
【００２０】
本実施形態のＨＭＤ２１０Ｌ、２１０Ｒは、第３図に示すようにシースルー型である。同図に示すＨＭＤについての詳細な説明は後述する。両対戦者２０００，３０００はＨＭＤ２１０Ｌ，２１０Ｒを装着していてもテーブル１０００の表面を観察することができる。またＨＭＤ２１０Ｌ、２１０Ｒには後述の画像処理システムから３次元仮想画像が入力される。従って、対戦者２０００，３０００は、ＨＭＤ２１０Ｌ、２１０Ｒの光学系（第１図には不図示）を通した現実空間の映像に重ねて、ＨＭＤ２１０Ｌ、２１０Ｒの表示画面に表示された３次元仮想画像を見ることとなる。
【００２１】
第２図は、左側プレーヤ２０００が自身のＨＭＤ２１０Ｌからみた映像を示す。二人のプレーヤは仮想映像によるパック１５００を打ち合う。パック１５００を打つのはプレーヤ２０００が手に握っている現実のマレット２６０Ｌを用いる。プレーヤ２０００は手にマレット２６０Ｌを握っている。相手プレーヤ３０００の直前には仮想のゴール１２００Ｒが見える。画像処理システム（第２図には不図示）は、ゴール１２００Ｒが相手方近傍に見えるように、３次元ＣＧを生成してＨＭＤ２１０Ｌに表示する。
【００２２】
対するプレーヤ３０００も、ＨＭＤ２１０Ｒを介してプレーヤ３０００の近傍に仮想の
ゴール（不図示）を見ることとなる。パック１５００も不図示の画像処理システムにより生成されて、各々のＨＭＤに表示される。
【００２３】
＜磁気センサつきＨＭＤ＞
第３図は、ＨＭＤ２１０の構成を示す。このＨＭＤ２１０はシースルー型のＨＭＤで、例えば特開平７−３３３５５１号公報のＨＭＤの本体に、磁気センサ２２０を支柱２２１を介して取り付けたものである。図中、２１１はＬＣＤ表示パネルである。ＬＣＤ表示パネル２１１からの光（観察者に対して提供される映像）は、光学部材２１２に入射し、全反射面２１４にて反射して、凹面ミラー２１３の全反射面にて反射して、全反射面２１４を透過して観察者の目に届く。
【００２４】
磁気センサ２２０は観察者の視点の位置姿勢を計測する。磁気センサは磁気ノイズに弱いので、支柱２２１により、ノイズ発生源である表示パネル２１１から離間した。
【００２５】
尚、第３図に示したＨＭＤ２１０に磁気センサ２２０を取り付ける構成は光学的シースルー方式のＨＭＤに限らず、ビデオシースルー方式のＨＭＤであっても、ビデオカメラの視点の位置姿勢を検出する目的で、磁気センサをそのＨＭＤに装着することは可能である。
【００２６】
第１図において、夫々のＨＭＤ２１０Ｌ、２１０Ｒはバンド（不図示）によってプレーヤ２０００，３０００の頭部に固定される。プレーヤの夫々の頭部には第１，３図に示すように磁気センサ２２０（２２０Ｌ，２２０Ｒ）、撮像手段としてのＣＣＤカメラ２４０（２４０Ｌ，２４０Ｒ）が、それぞれ固定されている。カメラ２４０の視界はプレーヤの前方に設定されている。エアーホッケーゲームの場合には、それぞれテーブル１０００の上面を見ることとなるので、カメラ２４０もテーブル１０００の表面を撮像する。交流磁界発生源２５０は、磁気センサ２２０を計測範囲に含むような、任意の位置に固定されている。磁気センサ２２０は、交流磁界発生源２５０が発する交流磁界の変化をセンスする。
【００２７】
図１に不図示の位置姿勢計測部５０００は、磁気センサ２２０がセンスした交流磁界の変化に応じて、交流磁界発生源２５０の位置を中心として定義されるセンサ座標系８０１０における磁気センサ２２０の位置姿勢を計測する。図１に不図示の位置姿勢変換部５０６０（５０６０Ｌ，５０６０Ｒ）は、図１に不図示のキャリブレ−ションデ−タ記憶部５０８０（５０８０Ｌ，５０８０Ｒ）が記憶しているキャリブレ−ションデ−タ（これは、後に述べるキャリブレ−ション手法によって獲得される）に基づいて、センサ座標系８０１０における磁気センサ２２０の位置姿勢を、世界座標系８０００におけるプレーヤの視点の位置姿勢に変換する。尚、本実施形態では、磁気センサ２２０、交流磁界発生源２５０、位置姿勢計測部５０００として、Ｐｏｌｈｅｍｕｓ社製の位置姿勢計測システムＦａｓｔｒａｋを使用した。また、位置姿勢変換部５０６０及びキャリブレ−ションデ−タ記憶部５０８０は、例えばＳＧＩ社製のコンピュータシステムＯＮＹＸ２により構成される
プレーヤがテーブル１０００の表面を見るために斜め下方を向くと、プレーヤの視点の位置姿勢の変化は磁気センサ２２０により検知され、この検知された位置姿勢の変化に基づいてＨＭＤ２１０を通した視界には、テーブル１０００の表面と、前述の仮想のパック１５００、現実のマレット２６０（２６０Ｌ，２６０Ｒ）、仮想のゴール１２００（１２００Ｌ，１２００Ｒ）が見える。このように常にプレーヤの視点の位置姿勢の変化は磁気センサ２２０により検知され、検知された位置姿勢に基づいた映像及び現実空間をプレーヤは見ることになる。
【００２８】
尚、本明細書では、ある座標系Ａにおける対象Ｂの位置姿勢を、４×４の行列ＭＢＡで記述することとする。これは言い換えれば、座標系Ａから対象Ｂが定義する座標系Ｂへの座標変換行列であり、座標系Ａにおける座標ＰＡ＝（ＸＡ，ＹＡ，ＺＡ，１）Ｔを座標系Ｂにおける座標ＰＢ＝（ＸＢ，ＹＢ，ＺＢ，１）Ｔに変換する変換式、ＰＢ＝ＭＢＡＰＡを定義するものである。すなわち、世界座標系８０００におけるプレ−ヤの視点１９０１の位置姿勢ＭＶＷは、世界座標系８０００における座標ＰＷ＝（ＸＷ，ＹＷ，ＺＷ，１）Ｔをプレ−ヤの視点座標系における座標ＰＶ＝（ＸＶ，ＹＶ，ＺＶ，１）Ｔに変換するための座標変換行列（ＰＶ＝ＭＶＷＰＷ）と言い換えることもできる。
【００２９】
又、対象の位置姿勢を示す変換行列Ｍは、Ｘ軸まわりの回転行列ＲＸ、Ｙ軸まわりの回転行列ＲＹ、Ｚ軸まわりの回転行列ＲＺと、平行移動行列Ｔ（いずれも４×４）の積により構成されており、Ｍ＝ＲＴ＝ＲＺＲＸＲＹＴの関係が成立している。これらの行列はそれぞれ、
【００３０】
【数１】
0003631151.tif 000002
【００３１】
【数２】
0003631151.tif 000003
【００３２】
【数３】
0003631151.tif 000004
【００３３】
【数４】
0003631151.tif 000005
で表される。ここでｘ、ｙ、ｚ、θｘ、θｙ、θｚは対象の位置姿勢を表わしており、ｘ、ｙ、ｚは位置、θｘは仰角、θｙは方位角、θｚは傾きを示している。
【００３４】
次に、図１９を用いて、位置姿勢変換部５０６０Ｌにおいて、世界座標系８０００におけるプレ−ヤ２０００の視点１９０１の位置姿勢ＭＶＷを求める方法を説明する。
【００３５】
同図において、世界座標系８０００における交流磁界発生源２５０の位置姿勢（これはすなわち世界座標系８０００におけるセンサ座標系８０１０の位置姿勢に相当する）をＭＴＷ、センサ座標系８０１０における磁気センサ２２０Ｌの位置姿勢をＭＳＴ、磁気センサ２２０Ｌから見たプレ−ヤ２０００の視点１９０１の相対的な位置姿勢をＭＶＳとする。
【００３６】
このとき、世界座標系８０００におけるプレ−ヤ２０００の視点１９０１の位置姿勢ＭＶＷは、以下の式で示すことができる。
【００３７】
ＭＶＷ＝ＭＶＳ・ＭＳＴ・ＭＴＷ          （式Ａ）
これらの位置姿勢のうち、ＭＳＴが位置姿勢変換部５０６０Ｌへの入力、ＭＶＷが位置姿勢変換部５０６０Ｌからの出力であり、ＭＶＳ及びＭＴＷが、ＭＳＴをＭＶＷに変換するために必要なキャリブレ−ションデ−タに相当する。すなわち、位置姿勢変換部５０６０Ｌは、位置姿勢計測部５０００からの入力ＭＳＴと、後に述べるキャリブレ−ションデ−タ記憶部５０８０Ｌに記憶されているＭＶＳ及びＭＴＷを用いて、（式Ａ）に基づいてＭＶＷを算出し、これを後に述べる画像生成部５０５０Ｌへと出力する。
【００３８】
＜キャリブレ−ション時の装置の構成＞
第２０図は本実施形態のゲーム装置のキャリブレ−ションを行う際の装置構成を示している。同図に示したように、キャリブレ−ションにおいては、ゲ−ム体験時の装置構成を殆どそのまま使用する。具体的には、交流磁界発生源２５０，磁気センサ２２０Ｌ，位置姿勢計測部５０００，ＨＭＤ２１０Ｌはゲ−ム体験時と同様の配置で使用され、位置姿勢変換部５０６０Ｌ及び画像生成部５０５０Ｌに代わって、キャリブレ−ション部５０５５Ｌ及び指示部５０９０が追加された構成となる。
【００３９】
第４図は、キャリブレ−ションを行う場合の概要を示している。キャリブレ−ションは、ＨＭＤ２１０Ｌを装着したプレ−ヤの視点１９０１の位置姿勢ＭＶＷをある予め定めた位置姿勢Ｍ０ＶＷに移動させて（あるいは、プレ−ヤがＨＭＤ２１０Ｌを装着した際にプレ−ヤの視点１９０１が位置姿勢Ｍ０ＶＷに位置するであろう位置姿勢に、不図示の操作者がＨＭＤ２０１Ｌを移動させて）、その時点での位置姿勢計測部５０００の出力Ｍ０ＳＴを取得することで行われる。プレ−ヤあるいは不図示の操作者は、指示部５０９０Ｌを用いて、視点１９０１が位置姿勢Ｍ０ＶＷに位置していることを入力する。キャリブレ−ション部５０５５Ｌは、指示部５０９０Ｌへの入力に従って、その時点（すなわち、視点１９０１が位置姿勢Ｍ０ＶＷに位置している時点）における位置姿勢計測部５０００の出力Ｍ０ＳＴを入力し、位置姿勢Ｍ０ＶＷと位置姿勢Ｍ０ＳＴに基づいてキャリブレ−ションデ−タＭＶＳ及びＭＴＷのうちの未知の値を算出し、キャリブレ−ションデ−タ記憶部５０８０Ｌに出力する。
【００４０】
尚、本実施形態では、世界座標系からセンサ座標系への座標変換行列ＭＴＷは何らかの手法（例えば後述する方法）により導出されおり、未知のキャリブレ−ションデ−タはＭＶＳのみであると仮定する。キャリブレ−ションデ−タ記憶部５０８０Ｌは、キャリブレ−ション部５０５５Ｌから入力したキャリブレ−ションデ−タＭＶＳを記憶するとともに、ＭＴＷを既知の値として記憶する。キャリブレ−ションデ−タ記憶部５０８０Ｌに記憶された変換行列ＭＶＳ及びＭＴＷは、ゲーム体験時において位置姿勢変換部５０６０Ｌによって参照される。
【００４１】
キャリブレーショングリッド６０００は、現実空間上の固定位置に配置可能であり、ＨＭＤ２１０Ｌを移動させるための目安となる規定の位置をグリッド上に有している。このグリッドの固定位置とグリッド上の既定の位置は、キャリブレ−ショングリッド６０００を固定位置に配置し、その既定の位置にＨＭＤ２１０Ｌを移動させた場合に、ＨＭＤ２１０Ｌを装着したプレ−ヤの視点１９０１が位置姿勢Ｍ０ＶＷ付近に位置するように設定されている。キャリブレーショングリッド６０００は磁気センサ２２０Ｌが交流磁界発生源２５０の出力する交流磁界を受信する時に影響を受けないように例えば複数のプラスチックパイプを組み上げて出来ているものであり、視点１９０１が位置姿勢Ｍ０ＶＷに位置する事を補助する役割を有している。
【００４２】
テーブル１０００上には、世界座標系における位置の既知なマーカ１６００（１６００ａ，１６００ｂ，・・・）が設置される。これらのマ−カは、後述するキャリブレ−ション部５０５５Ｌの処理において、視点１９０１が位置姿勢Ｍ０ＶＷに位置する事を補助するために使用される。なお本実施形態ではマーカ１６００を４個使っているが、このマーカの数に限定されるものではなく、複数のマーカを使用した状況でも適応可能である。
【００４３】
次に、キャリブレ−ション部５０５５Ｌの処理の詳細について述べる。第５図は、本実施形態におけるキャリブレ−ション部５０５５Ｌの詳細な構成を示した図である。尚、キャリブレ−ション部５０５５Ｌは、例えばコンピュータシステムＯＮＹＸ２により構成される。
【００４４】
第５図に示すように、キャリブレ−ション部５０５５Ｌは、メモリ５０４５Ｌ、仮想マーカ映像生成部５０７５Ｌ、マーカ位置記憶部５０３５Ｌ、キャリブレ−ションデ−タ算出部５０４０Ｌから構成されている。
【００４５】
マーカ位置記憶部５０３５Ｌは、マーカ１６００の世界座標系における位置を記憶しており、仮想マーカ映像生成部５０７５Ｌにマーカ位置を出力する。
【００４６】
メモリ５０４５Ｌは、予め定めた視点１９０１の位置姿勢Ｍ０ＶＷを記憶する。
【００４７】
仮想マーカ映像生成部５０７５Ｌは、マーカ位置記憶部５０３５Ｌに記憶されているマーカ位置と、メモリ５０４５Ｌ内に格納された視点１９０１の位置姿勢Ｍ０ＶＷを元に、視点１９０１が位置姿勢Ｍ０ＶＷに位置した場合にプレ−ヤが観測するであろう各マーカの表示面上における位置を計算し、その位置に例えば×印を描画した仮想映像を生成し、表示部２１０Ｌに表示させる。
【００４８】
表示部２１０Ｌは、現実空間のマーカ１６００を光学的に透過させつつ、仮想マーカ映像生成部５０７５Ｌが生成するマ−カの仮想映像を表示する。視点位置１９０１が位置姿勢Ｍ０ＶＷに位置していれば、プレ−ヤが観察する現実空間のマーカの像とマ−カの仮想映像が一致するはずである。
【００４９】
指示部５０９０Ｌは、前述のように、プレ−ヤあるいは不図示の操作者の入力により、視点１９０１が位置姿勢Ｍ０ＶＷに位置していること検知し、キャリブレ−ションデ−タ算出処理の実行の指示をキャリブレ−ションデ−タ算出部５０４０Ｌへと送信する。プレ−ヤは、表示部２１０Ｌに表示されたマーカの仮想映像と、表示部２１０Ｌを光学的に透過して観察される現実空間のマーカの像を、ＨＭＤ２１０Ｌの（すなわち視点１９０１の）回転と平行移動によって重ね合わせて、十分に重なった時点で、例えば特定のをキ−を押すといった指示部５０９０Ｌへの入力を行う。
【００５０】
キャリブレ−ションデ−タ算出部５０４０Ｌは、指示部５０９０Ｌより入力される指示に従って、指示が入力された時点（すなわち、視点１９０１が位置姿勢Ｍ０ＶＷに位置している時点）における位置姿勢計測部５０００の出力Ｍ０ＳＴを入力し、さらに、メモリ５０４５Ｌ内に格納された位置姿勢Ｍ０ＶＷと、キャリブレ−ションデ−タ記憶部５０８０Ｌに格納された位置姿勢ＭＴＷを入力する。
【００５１】
ここで、キャリブレ−ションデ−タ算出部５０４０Ｌで処理されるデ−タの間には、（式Ａ）より、
Ｍ０ＶＷ＝ＭＶＳ・Ｍ０ＳＴ・ＭＴＷ          （式Ｂ）
の関係が成立する。ここで、（式Ｂ）を変形すると、
ＭＶＳ＝Ｍ０ＶＷ・ＭＴＷ−１・Ｍ０ＳＴ−１        （式Ｃ）
となる。キャリブレ−ションデ−タ算出部５０４０Ｌは、（式Ｃ）に基づいて未知のキャリブレ−ションデ−タＭＶＳを算出し、キャリブレ−ションデ−タ記憶部５０８０Ｌに出力する。
【００５２】
第６図は本実施形態のキャリブレ−ション装置の処理のフローチャートを示したものである。なお、同フローチャートに従ったプログラムコードは本実施形態の装置内の不図示のＲＡＭやＲＯＭなどのメモリ内に格納され、不図示のＣＰＵにより読み出され、実行される。
【００５３】
ステップＳ１０４０において、上述の方法で仮想マーカ映像生成部５０７５Ｌがマーカの仮想映像を生成し、表示部２１０Ｌに表示させる。ステップＳ１０４０で表示部２１０Ｌに表示された画像を示しているのが図７Ａである。図中のＸマークが各マーカの仮想映像を表している。また、現実空間に設置してあるマーカ１６００は、表示部２１０Ｌを光学的に透過してプレ−ヤに観測される。この時の表示部２１０Ｌにおいてプレ−ヤが観測する像を図７Ｂで示している。
【００５４】
そして、ステップＳ１０７０でマーカの仮想映像と実物のマーカの像の位置をＨＭＤ２１０Ｌの（すなわち視点１９０１の）平行移動または回転により的確に重ね合わせる。（図７Ｃの状態）
そしてステップＳ１０８０において重ね合わせが的確な時点で指示部５０９０Ｌを操作する。
【００５５】
ステップＳ１０９０において、上述の方法によりキャリブレ−ションデ−タ算出部５０４０Ｌが座標変換行列ＭＶＳを計算し、キャリブレ−ションデ−タ記憶部５０８０Ｌに出力する。
【００５６】
＜世界座標系におけるセンサ座標系の位置姿勢ＭＴＷの導出＞
世界座標系８０００におけるセンサ座標系８０１０の位置姿勢ＭＴＷを求める方法について以下に説明する。
【００５７】
キャリブレーショングリッド６０００を現実空間上の固定位置に配置し、キャリブレーショングリッド６０００上の規定の位置（測定点）に磁気センサ２２０Ｌを配置する。この規定の位置は複数あり、本実施形態ではキャリブレーショングリッド６０００上の３点において磁気センサ２２０Ｌの出力を測定する。磁気センサ２２０Ｌにより測定された結果はキャリブレ−ション部５０５５Ｌに入力される。
【００５８】
キャリブレ−ション部５０５５Ｌでは、磁気センサ２２０Ｌにより測定された３点の計測値に基づいて世界座標系８０００におけるセンサ座標系８０１０の位置姿勢ＭＴＷを算出し、第５図のキャリブレ−ションデ−タ記憶部５０８０に格納する。
【００５９】
キャリブレ−ション部５０５５Ｌにおいて、位置姿勢ＭＴＷを求める方法の詳細について以下説明する。
【００６０】
第１８図は磁気センサによる磁気センサの位置姿勢の測定方法について説明する概念図である。世界座標系の原点をＯＷ，世界座標系のｘ、ｙ、ｚ軸を夫々ＸＷ、ＹＷ、ＺＷ、センサ座標系の原点（の世界座標系における位置）をＯＳ、センサ座標系のｘ、ｙ、ｚ軸（の世界座標系における単位方向ベクトル）を夫々ＸＳ、ＹＳ、ＺＳ、上述の３測定点（の世界座標系における位置）を夫々ＰＯ，ＰＺ，ＰＺＸ、上述の３点の計測値（センサ座標系における位置）を夫々ｖＯ，ｖＺ，ｖＺＸとする。その際、上述の３点ＰＯ，ＰＺ，ＰＺＸは以下の条件を満たさなくてはいけない。いいかえれば、以下の条件を満たすように、キャリブレーショングリッド６０００の固定位置とグリッド上の３点の測定点を定める必要がある。
【００６１】
・ＰＯは、その世界座標系における位置が既知でなければならない。
【００６２】
・ＰＺは、ベクトル（ＰＺ−ＰＯ）がＺＷと平行かつ同一方向でなければならない。
【００６３】
・ＰＺＸは、ＰＯ，ＰＺ，ＰＺＸの３点を含む平面が世界座標系でのｚ−ｘ平面と平行になるような点で、かつ、ベクトル（ＰＸＺ−ＰＯ）の世界座標系におけるｘ成分の値が正でなければならない。
【００６４】
この条件に基づいて、上述のセンサ座標系８０１０の位置姿勢ＭＴＷを以下の順で求める。
【００６５】
まず、（ＰＺ−ＰＯ）がＺＷと平行かつ同一方向であることから、センサ座標系のｚ軸方向単位ベクトルＺＳを以下の式により求める。
【００６６】
ＺＳ＝（ｖＺ−ｖＯ）／｜ｖＺ−ｖＯ｜
次に、（ＰＺＸ−ＰＯ）が世界座標系におけるｚ−ｘ平面内のベクトルでありかつそのｘ成分が正であることから、センサ座標系のｙ軸方向の単位ベクトルＹＳを以下の式により求める。
【００６７】
ＹＳ＝（ＺＳ×（ｖＺＸ−ｖＯ））／｜ＺＳ×（ｖＺＸ−ｖＯ）｜
次に、上述のＺＳ、ＹＳから、センサ座標系のｘ軸方向の単位ベクトルＸＳを以下の式により求める。
【００６８】
ＸＳ＝ＹＳ×ＺＳ
以上の計算により求まったＸＳ、ＹＳ、ＺＳにより世界座標系におけるセンサ座標系の姿勢を決定することができる。ＸＳ＝（ＸＸ、ＹＸ、ＺＸ）、ＹＳ＝（ＸＹ、ＹＹ、ＺＹ）、ＺＳ＝（ＸＺ、ＹＺ、ＺＺ）とすると、世界座標系におけるセンサ座標系の姿勢ＲＴＷは以下のようになる。
【００６９】
【数５】
0003631151.tif 000006
【００７０】
次に、世界座標系におけるセンサ座標系の位置（すなわち、世界座標系におけるセンサ座標系の原点の位置ＯＳ）を求める。以下に示す方法ではＰＯを用いるが、ＰＯ以外にもＰＺ，ＰＺＸの世界座標が既知であれば、これらの点を用いても良い。
【００７１】
ＯＳ＝ＰＯ−ＲＴＷ−１ｖＯ
その結果、世界座標系におけるセンサ座標系の位置（を表わす平行移動行列）ＴＴＷは、（数１）によって求められる。
【００７２】
その結果、世界座標系におけるセンサ座標系の位置姿勢ＭＴＷは、以下の式によって導出される。
【００７３】
ＭＴＷ＝ＲＴＷＴＴＷ
上記の方法により、複数の計測点で計測される磁気センサ２２０Ｌの信号に基づいて、世界座標系におけるセンサ座標系の位置姿勢ＭＴＷを求めることができる。
【００７４】
尚、世界座標系におけるセンサ座標系の位置姿勢ＭＴＷは、巻尺や分度器等による計測値を手掛りに試行錯誤的に求めても良いし、交流磁界発生源の位置姿勢が計測可能な他のいずれの計測手段を用いて求めても良いことはいうまでもない。
【００７５】
＜３次元画像の生成提示システム＞
第８図は、第１図で示したゲーム装置において上述のキャリブレーションにより求めたキャリブレーションデータを利用している３次元画像の生成提示システムの構成を示した図である。
【００７６】
この画像生成提示システムは、プレーヤ２０００のＨＭＤ２１０Ｌ及びプレーヤ３０００のＨＭＤ２１０Ｒの夫々に、３次元の仮想画像（第３図のパック１５００，ゴール１２００）を出力するものである。プレーヤ２０００，３０００に対する３次元の仮想画像の生成は、夫々画像生成部５０５０Ｌ，５０５０Ｒに拠って行われる。本実施形態では画像生成部５０５０Ｌ、５０５０Ｒの夫々に米国ＳＧＩ社製のコンピュータシステムＯＮＹＸ２を用いた。
【００７７】
画像生成部５０５０Ｌ（５０５０Ｒ）は、ゲーム状態管理部５０３０が生成するパック位置情報等と、前述の位置姿勢変換部５０６０Ｌ（５０６０Ｒ）が出力するプレーヤ２０００（３０００）の視点の位置姿勢を入力として受け、ＨＭＤ２１０Ｌ（２１０Ｒ）に表示させる画像を生成する。ゲーム状態管理部５０３０はコンピュータシステムＯＮＹＸ２により構成された。
【００７８】
テーブル１０００の中央上空に固定されたＣＣＤカメラ２３０（図１にも図示）は、テーブル１０００の表面を全て視野に納める。カメラ２３０によって取得されたマレットの位置情報等を含むマレット情報はマレット位置計測部５０１０に入力される。この計測部５０１０は、同じく、ＳＧＩ社製Ｏ２コンピュータシステムにより構成された。計測部５０１０は、２名のプレーヤのマレット位置、即ち、手の位置を検出する。手の位置に関する情報はゲーム状態管理部５０３０に入力される。即ち、ゲーム状態・ゲームの進行は基本的にはマレットの位置によって全てが決定される。
【００７９】
＜マレット位置計測＞
第９図乃至第１１図は、マレット位置を計測する制御手順を示すフローチャートである。
【００８０】
エアーホッケーゲームでは、プレーヤは自身のマレットを他のプレーヤの領域まで進めることはない。そのために、左側プレーヤ２０００（右側プレーヤ３０００）のマレット２６０Ｌ（２６０Ｒ）を探索する処理は、第１１図に示すように、左側フィールドの画像データＩＬ（画像データＩＲ）に処理を集中すればよい。固定位置にあるＣＣＤカメラ２３０が取得した画像を第１２図に示すように２つの分割することは容易である。
【００８１】
従って、第９図のフローチャートにおいて、プレーヤ＃１（プレーヤ２０００）のマレット２６０Ｌの探索についてはステップＳ１００で、プレーヤ＃２（プレーヤ３０００）のマレット２６０Ｒの探索についてはステップＳ２００で処理が行われる。そこで、便宜上、右側プレーヤのマレットの探索（ステップＳ２００）を例にして説明する。
【００８２】
先ず、ステップＳ２１０で撮影部２３０において撮像した上述の画像（多値画像）を取得する。ステップＳ２１２では、撮像した画像において右半分の画像データＩＲについてサブルーチン「ローカル領域での探索」を行う。その詳細は第１０図に示される。ステップＳ２１２で画像座標系でのマレット位置の座標（ｘ，ｙ）が見つかると、ステップＳ２１４からステップＳ２２０に進み、画像座標系でのマレット位置座標（ｘ，ｙ）を次式に従ってテーブル１０００の座標系（第１４図を参照）の座標位置（ｘ’，ｙ’）に変換する。
【００８３】
【数６】
0003631151.tif 000007
【００８４】
ここで、ＭＴは画像座標系とテーブル座標系とをキャリブレーションするための３×３の変換行列で、既知である。ステップＳ２２０で得られた座標位置（ｘ’，ｙ’）はゲーム状態管理部５０３０に送られる。
【００８５】
ローカル領域でマレットがみつからなかったならば、ステップＳ２１６で「グローバル領域での探索」を行う。「グローバル領域での探索」でマレットが見つかったならば、ステップＳ２２０でその座標位置をテーブル座標系に変換する。尚、ローカル又はグローバル領域で探索された座標位置は、次の処理でのローカル領域におけるマレットの探索に用いられる。
【００８６】
第１０図はマレットをローカル領域で探索する処理（ステップＳ２１２の詳細）を示す。但し、この処理は便宜上右側フィールドにおける探索処理を示すが、左側フィールドにおけるマレットの探索処理についても実質的に同様である。
【００８７】
ステップＳ２２０で、次式で定義される大きさ（２Ａ＋１）×（２Ｂ＋１）画素の矩形領域を抽出する。
【００８８】
ｘ＝［Ｉ’ｘ−Ａ，Ｉ’ｘ＋Ａ］
ｙ＝［Ｉ’ｙ−Ａ，Ｉ’ｙ＋Ｂ］
ここで、Ｉ’ｘ，Ｉ’ｙは探索領域ＩＲ中の任意の座標値であり、Ａ，Ｂは探索領域の大きさを決める定数であって、かかる探索領域は第１３図のようになる。
【００８９】
ステップＳ２３０は、ステップＳ２２０で定義された矩形領域中の全ての画素（ｘ，ｙ）について、特徴の評価値ＩＳ（ｘ，ｙ）が一定の条件を満足する画素を抽出する工程である。この工程ではマレットの赤外線発光器から発せられる赤外線の強度値と類似する画素を抽出する方法を用いるのが好適である。
【００９０】
即ち、ステップＳ２３２では、類似度ＩＳが所定の閾値以上をしめす画素を見つける。そのような画素を見つけると、カウンタＮに発生度数の累積値を記憶する。また、そのような画素のｘ座標値及びｙ座標値をレジスタＳＵＭｘ及びＳＵＭｙに累積記憶する。即ち、
Ｎ＝Ｎ＋１
ＳＵＭｘ＝ＳＵＭｘ＋ｘ
ＳＵＭｙ＝ＳＵＭｙ＋ｙ
とする。ステップＳ２３０を終了すると、第１３図の領域中でマレットからの赤外光のパターンに類似している全ての画素の個数Ｎ、及び座標値の累積値ＳＵＭｘ，ＳＵＭｙが得られる。Ｎ＝０であればステップＳ２３６で結果”Ｎｏｔ  Ｆｏｕｎｄ”が出力される。Ｎ＞０であれば、マレットらしいものが見つかったのであり、ステップＳ２３８で、マレットの位置（Ｉｘ，Ｉｙ）を、
Ｉｘ＝ＳＵＭｘ／ｎ
Ｉｙ＝ＳＵＭｙ／ｎ
に従って演算する。そして、マレット位置（Ｉｘ，Ｉｙ）をテーブル座標系に変換した座標値を渡す。
【００９１】
第１１図は、ステップＳ２１６のグローバル領域探索の詳細手順を示す。第１１図のステップＳ２４０で、右側フィールドの画像ＩＲ中の、
｛（ｘ，ｙ）｜ｘ＞０，ｘ＜Ｗｉｄｔｈ  ，ｘ＝ｎＣ，ｙ＞０，ｙ＜Ｈｅｉｇｈｔ，ｙ＝ｍＤ
（ただしｎ，ｍは整数）｝
を満足する画素の中で、特徴の評価値Ｉｓの最大値をレジスタＭａｘに記憶する。ここで、Ｃ，Ｄは探索の粗さを決める定数であり、ＷｉｄｔｈおよびＨｅｉｇｈｔの定義は第１６図に示す。即ち、ステップＳ２４２で、特徴量ＩＳが閾値記憶レジスタＭａｘに記憶されている閾値を超えるか否かを判断する。そのような画素が見つかったならば、ステップＳ２４４で、その特徴量を新たな閾値とすべく、ステップＳ２４４で、
Ｍａｘ＝ＩＳ（ｘ，ｙ）
Ｉｘ＝ｘ
Ｉｙ＝ｙ
とする。ステップＳ２４６では、グローバル探索で見つかった最もマレットらしい画素（Ｉｘ，Ｉｙ）の座標値をステップＳ２２０に渡す。
【００９２】
このようにして、マレットを画像中で見つけ、その座標値をテーブル座標系に変換したものをゲーム状態管理部５０３０に渡す。
【００９３】
＜ゲーム状態管理＞
第１４図は、本実施形態のエアーホッケーゲームのゲームフィールドを示す。このフィールドは、テーブル１０００の上の２次元平面上に定義され、ｘ，ｙ軸を有する。また、左右の２つの仮想的ゴールライン１２００Ｌ，１２００Ｒと、第１４図において上下方向に設けられた仮想的壁１３００ａ，１３００ｂとを有する。仮想的ゴールライン１２００Ｌ，１２００Ｒと仮想的壁１３００ａ，１３００ｂはその座標値は既知であり移動することはない。このフィールドの中で、マレット２６０Ｒ，２６０Ｌの移動に応じて、パック１５００の仮想画像が移動する。
【００９４】
パック１５００は、現在位置の座標情報Ｐｐと速度情報ｖｐとを有し、左マレット２６０Ｌは現在位置の座標情報ＰＳＬと速度情報ｖＳＬとを有し、右マレット２６０Ｒは現在位置の座標情報ＰＳＲと速度情報ｖＳＲとを有する。
【００９５】
第１５図は、ゲーム状態管理部５０３０における処理手順を説明するフローチャートである。ステップＳ１０において、パック１５００の初期位置Ｐｐ０及び初期速度ｖｐ０を設定する。
【００９６】
尚、パック１５００は速度ｖｐで等速度運動を行う。また、パック１５００は、壁又はスティックに当たると完全弾性衝突を行う。即ち速さには変化が無く、速度の方向が反転する。なおスティックとはマレットの位置に重畳表示される仮想映像であり、以下マレットとパック１５００の衝突判定はこのスティックとパック１５００の衝突判定を行うことで処理を進める。
【００９７】
ゲーム状態管理部５０３０は、マレット位置計測部５０１０が計測した各マレットの位置情報ＰＳから速度情報ｖＳを得る。
【００９８】
ステップＳ１２は、ゲームでの勝敗が決定する（ステップＳ５０で一方が３点を先取する）迄の間は、Δｔ時間毎に実行される。
【００９９】
すると、ステップＳ１２では、パック１５００の位置は、
Ｐｐ＝Ｐｐ０＋ｖｐ０・Δｔ
に更新される。初期位置及び初期速度設定後におけるパック１５００の位置は、一般には、
Ｐｐ＝Ｐｐ＋ｖｐ・Δｔ
で表される。ステップＳ１４では、更新されたパック位置Ｐｐがプレーヤの＃１側（左プレーヤ）のフィールドにあるか否かを調べる。パック１５００が左プレーヤ側にある場合について説明する。
【０１００】
ステップＳ１６では、現在のパック位置が左プレーヤのスティック１１００Ｌと干渉する位置にあるか否かを調べる。パック１５００がスティック１１００Ｌと干渉する位置にあるとは、左プレーヤ２０００がマレット２６０Ｌをパックに衝突させるようなマレット操作を行ったことを意味するから、パック１５００の運動を反転させるために、ステップＳ１８で、パック１５００の速度ｖｐのｘ方向速度成分の符号を反転させて、ステップＳ２０に進む。
【０１０１】
尚、単に速度ｖｐのｘ方向速度成分の符号を反転させる代わりに、
Ｐｐ＝−Ｐｐｘ＋ｖＳＬｘ
として、パックが、スティックの操作速度を重畳されて反対方向に進むようにしても良い。
【０１０２】
一方、現在のパック位置が左プレーヤのスティック１１００Ｌと干渉する位置にない場合（ステップＳ１６でＮＯ）には、そのままステップＳ２０に進む。
【０１０３】
ステップＳ２０では、パックの位置が仮想壁１３００ａ又は１３００ｂと衝突する位置にあるか否かを調べる。ステップＳ２０の判断がＹＥＳの場合には、ステップＳ２２でパックの速度のｙ成分を反転させる。
【０１０４】
次にステップＳ２４で、現在のパック位置が左プレーヤのゴールライン内にあるか否かを調べる。ＹＥＳの場合には、ステップＳ２６で相手側のプレーヤ、即ち、右（＃２）プレーヤの得点を加算する。ステップＳ５０では、いずれかの得点が３点以上先取したかを調べる。３点以上であればゲームを終了する。
【０１０５】
ステップＳ１４での判断で、パックの位置Ｐｐが右プレーヤ側（＃２プレーヤ側）にある場合には、ステップＳ３０以下を実行する。ステップＳ３０〜ステップＳ４０は、ステップＳ１６〜ステップＳ２６と実質的に動作は同じである。
【０１０６】
かくして、ゲームの進行状態は管理される。ゲームの進行状態はパックの位置、スティックの位置であり、前述したように画像生成部５０５０（５０５０Ｌ，５０５０Ｒ）に入力される。
【０１０７】
第１７図に、位置姿勢変換部５０６０（５０６０Ｌ，５０６０Ｒ）及び画像生成部５０５０（５０５０Ｌ、５０５０Ｒ）における処理のフローチャートを示す。なお同図のフローチャートにおける夫々のプレーヤに対する処理は同じであるために、夫々のプレーヤに対して共通の処理とする。
【０１０８】
位置姿勢変換部５０６０Ｌは、ステップＳ１７０１において、位置姿勢計測部５０００からセンサ座標系における磁気センサの位置姿勢ＭＳＴを入力する。次にステップＳ１７０２において、キャリブレーションデータ記憶部５０８０に格納されたキャリブレーションデータＭＷＴ及びＭＳＶを読み込む。そしてステップＳ１７０３において、プレーヤの視点１９０１の位置姿勢ＭＶＷを式（Ａ）により決定する。
【０１０９】
画像生成部５０５０は、ステップＳ１７０４ではゲーム状態管理部５０３０内の不図示のメモリ内に格納されているスティック、パックの位置及び形状データを読み込み、ステップＳ１７０５で、この位置及び形状データを用いてプレーヤの視点１９０１の位置姿勢ＭＶＷに基づいたスティック、パックの映像を生成し、ステップＳ１７０６において夫々のプレーヤのＨＭＤ２１０Ｌ、２１０Ｒに対して生成した映像を出力する。
【０１１０】
以上の説明により、本実施形態におけるキャリブレ−ション装置及びその方法によれば、磁気センサの出力値をプレ−ヤの視点の位置姿勢に変換するためのキャリブレーションデータが未知であっても、これを算出することができる。
【０１１１】
［第２の実施形態］
第１の実施形態では、磁気センサから見たプレ−ヤの視点の相対的な位置姿勢ＭＶＳが未知であった。言い換えれば変換行列ＭＶＳを平行移動成分ＴＶＳと回転成分ＲＶＳとに分けたとき、その両方が未知であった。
【０１１２】
また、第１の実施形態では、世界座標系におけるセンサ座標系の位置姿勢ＭＴＷに関しては、平行移動成分ＴＴＷと回転成分ＴＶＳの両方が既知であった。
【０１１３】
本実施形態では、ＭＶＳの平行移動成分ＴＶＳ及びＭＴＷの回転成分ＲＴＷが何らかの方法により既知である場合に、他の未知なキャリブレ−ションデ−タ、すなわち、ＭＶＳの回転成分ＲＶＳ及びＭＴＷの平行移動成分ＴＴＷの算出を行う方法について説明する。なお、本実施形態における装置構成は第１の実施形態と同一であり、唯一、キャリブレ−ションデ−タ算出部５０４０Ｌの内部における処理が異なっている。
【０１１４】
ここで、ＭＶＳの平行移動成分ＴＶＳ（すなわち、磁気センサの位置とユーザの視点位置との位置関係）は、例えば物差しなどで直接計測する。また、ＭＴＷの回転成分ＲＴＷについては、例えば、第１の実施形態で説明したＲＴＷを求める方法により算出する。
【０１１５】
なお、これらの値の導出は、第１の実施形態におけるＭＴＷの導出と同様に試行錯誤的に行っても良いし、他のいずれの計測手段によって行ってもよい。
【０１１６】
これらの既知なパラメ−タは、第１の実施形態と同様に予めキャリブレ−ションデ−タ記憶部５０８０に格納されているものとする。
（式Ｂ）の関係を回転成分と並行移動成分に分離して記述すると、以下の式が成り立つ。
【０１１７】
Ｒ０ＶＷＴ０ＶＷ＝ＲＶＳＴＶＳ・Ｍ０ＳＴ・ＲＴＷＴＴＷ      （式Ｄ）
（式Ｄ）を以下のように変形する。
【０１１８】
ＲＶＳ−１Ｒ０ＶＷＴ０ＶＷＴＴＷ−１＝ＴＶＳＭ０ＳＴＲＴＷ      （式Ｅ）
ここで、右辺は全て値の得られている項であるので、この積を計算し行列Ｍ’とおき、さらにこの行列Ｍ’を、Ｍ’＝Ｒ’Ｔ’（Ｒ’は回転成分、Ｔ’は平行移動成分）に分解すると、（式Ｅ）は以下のようになる。
【０１１９】
ＲＶＳ−１Ｒ０ＶＷＴ０ＶＷＴＴＷ−１＝Ｒ’Ｔ’    （式Ｆ）
（式Ｆ）において、右辺、左辺でそれぞれ平行移動成分、回転成分は恒等式として存在するので、ＲＶＳは
ＲＶＳ＝Ｒ０ＶＷＲ’−１
と求めることができる。同様にＴＴＷは
ＴＴＷ＝Ｔ’−１Ｔ０ＶＷ
と求めることができる。最後に、算出されたキャリブレ−ションデ−タＲＶＳ及びＴＴＷは、キャリブレ−ションデ−タ記憶部５０８０Ｌに出力される。
【０１２０】
［第３の実施形態］
本実施形態では、磁気センサから見たプレ−ヤの視点の相対的な位置姿勢ＭＶＳが何らかの方法により既知である場合に、他の未知なキャリブレ−ションデ−タ、すなわち、世界座標系におけるセンサ座標系の位置姿勢ＭＴＷの算出を行う方法について説明する。
【０１２１】
本実施形態における装置構成は第１の実施形態と同一であり、唯一、キャリブレ−ションデ−タ算出部５０４０Ｌの内部における処理が異なっている。すなわち、（式Ｂ）を変形して
ＭＴＷ＝Ｍ０ＳＴ−１・ＭＶＳ−１・Ｍ０ＶＷ
とすることで、未知のキャリブレ−ションデ−タＭＴＷを算出し、キャリブレ−ションデ−タ記憶部５０８０Ｌに出力する。
【０１２２】
なお、位置姿勢ＭＶＳの導出は、例えば第１の実施形態の方法によって行っても良いし、定規や分度器等による計測値を手掛りに試行錯誤的に求めてもよいし、他のいずれの計測手段によって行ってもよい。
【０１２３】
［第４の実施形態］
第１乃至３の実施形態は、物体の位置及び姿勢を計測する位置姿勢センサであるところの磁気センサのキャリブレ−ションを行う例であったが、物体の姿勢のみを計測する姿勢センサのキャリブレ−ションにも適応可能である。本実施形態では、姿勢センサを用いたゲ−ム装置において、姿勢センサの出力値（すなわち、センサ座標系における姿勢センサの姿勢）を世界座標系におけるプレ−ヤの視点の姿勢に変換するためのキャリブレ−ションデ−タを求める方法について説明する。なお、本実施形態における装置構成は、センサが姿勢センサであること、位置姿勢計測部が姿勢計測部であることを除いては、第１の実施形態とほぼ同一である。
【０１２４】
ここで、世界座標系におけるセンサ座標系の姿勢をＲＴＷ、センサ座標系における姿勢センサの姿勢（姿勢センサの出力値）をＲＳＴ、姿勢センサから見たプレ−ヤの視点の相対的な姿勢をＲＶＳとする。なお、姿勢センサの多くは磁気センサにおける交流磁界発生源に相当するようなセンサ座標系を定義する明示的な機器を有していないが、センサ出力が原点を指している（すなわちＲＳＴ＝Ｉを出力している）際の世界座標系におけるセンサの姿勢がＲＴＷに相当していると考えると、実施形態１乃至３と同様な座標変換関係が成立する。すなわち、（式Ａ）の関係は以下の式で表すことができる。
【０１２５】
ＲＶＷ＝ＲＶＳ・ＲＳＴ・ＲＴＷ        （式Ｇ）
これらの姿勢のうち、ＲＳＴが位置姿勢変換部５０６０Ｌへの入力、ＲＶＷが位置姿勢変換部５０６０Ｌからの出力であり、ＲＶＳ及びＲＴＷが、ＲＳＴをＲＶＷに変換するために必要なキャリブレ−ションデ−タに相当する。すなわち、位置姿勢変換部５０６０Ｌは、位置姿勢計測部５０００からの入力ＲＳＴと、キャリブレ−ションデ−タ記憶部５０８０Ｌに記憶されているＲＶＳ及びＲＴＷを用いて、（式Ｇ）に基づいてＲＶＷを算出する。位置姿勢変換部５０６０Ｌはさらに、算出された世界座標系におけるプレ−ヤの視点の姿勢ＲＶＷと、他の手段によって与えられる世界座標系におけるプレ−ヤの視点の位置ＴＶＷ（例えば超音波センサや光学センサといった位置センサの計測値を用いてもよいし、視点の位置が移動しない場合や移動量が無視できる場合には予め設定した固定値を用いてもよいし、位置情報を取得する他のいずれの手段を用いてもよい）に基づいて、世界座標系におけるプレ−ヤの視点の位置姿勢ＭＶＷを算出し、これを画像生成部５０５０Ｌへと出力する。
【０１２６】
なお本実施形態では、世界座標系におけるセンサ座標系の姿勢ＲＴＷのうち、ｘ軸まわりの回転成分ＲｘＴＷおよびｚ軸まわりの回転成分ＲｚＴＷは単位行列であるとし（すなわちＲＴＷ＝ＲｙＴＷ）、ｙ軸まわり（すなわち方位方向）の回転成分ＲｙＴＷのみが未知であると仮定する。多くの姿勢センサは地球の重力方向を計測することにより、方位方向（ｙ軸周り、ヨー方向）以外は現実空間の座標系の値を出力可能であることから、世界座標系を地表面と水平に定義することにより、世界座標系とセンサ座標系のｙ軸が一致するので、ＲｘＴＷおよびＲｚＴＷは単位行列とすることができる。
【０１２７】
又、本実施形態では、姿勢センサから見たプレーヤの視点の相対的な姿勢ＲＶＳのうち、その逆行列ＲＳＶ（これは、プレーヤの視点から見た姿勢センサの相対的な姿勢を表わす）のｙ軸まわりの回転成分ＲｙＳＶが何らかの方法によって既知であるとし、ｘ軸まわりの回転成分ＲｘＳＶおよびｚ軸まわりの回転成分ＲｚＳＶが未知であると仮定する。ＲｙＳＶの導出は分度器等の計測値を手掛りに試行錯誤的に行ってもよいし、他のいずれの計測手段を用いて行ってもよい。
【０１２８】
これら既知のデータであるＲｘＴＷ，ＲｚＴＷおよびＲｙＳＶは、キャリブレーションデータ記憶部５０８０Ｌに予め記憶されている。
【０１２９】
キャリブレーションは、ＨＭＤ２１０Ｌを装着したプレーヤの視点１９０１の姿勢ＲＶＷをある予め定めた姿勢Ｒ０ＶＷ（＝Ｒｙ０ＶＷ）に移動させて、その時点でのセンサ出力Ｒ０ＳＴを取得することで行われる。このとき、（式Ｇ）より、以下の関係が成立する。
【０１３０】
Ｒｙ０ＶＷ＝（ＲｚＳＶＲｘＳＶＲｙＳＶ）−１Ｒ０ＳＴＲｙＴＷ        （式Ｈ）
これを変形すると、（式Ｈ）は以下のようになる。
【０１３１】
ＲｚＳＶＲｘＳＶＲｙＳＶＲｙ０ＶＷ＝Ｒｚ０ＳＴＲｘ０ＳＴＲｙ０ＳＴＲｙＴＷ
ここで、左辺、右辺のそれぞれがｚ、ｘ、ｙ軸周りの回転成分の積となっているので、ｚ、ｘ、ｙ軸周りの回転成分毎に恒等式が成立する。まず、ｚ、ｘ軸周りの回転成分の恒等式は以下の通りとなる。
【０１３２】
ＲｚＳＶ＝Ｒｚ０ＳＴ
ＲｘＳＶ＝Ｒｘ０ＳＴ
これより、ＲｚＳＶおよびＲｘＳＶを求めることができる。
【０１３３】
一方、ｙ軸周りの回転成分の恒等式は以下の通りとなる。
【０１３４】
ＲｙＳＶＲｙ０ＶＷ＝Ｒｙ０ＳＴＲｙＴＷ
これより、
ＲｙＴＷ＝ＲｙＳＶＲｙ０ＶＷＲｙ０ＳＴ−１
となり、ＲｙＴＷを求めることができる。
【０１３５】
本実施形態におけるキャリブレーションデータ算出部５０４０Ｌは、上記の処理によってキャリブレーションデータＲｚＳＶ、ＲｘＳＶおよびＲｙＴＷの算出を行い、これらの値からさらに、ＲＶＳ（＝（ＲｚＳＶＲｘＳＶＲｙＳＶ）−１）およびＲＴＷ（＝ＲｙＴＷ）を算出して、これをキャリブレーションデータ記憶部５０８０Ｌへと出力する。
【０１３６】
なお、本実施形態におけるメモリ５０４５Ｌは、上記のキャリブレ−ションデ−タ算出のために必要な予め定めた視点の姿勢Ｒ０ＶＷの他に、仮想マ−カ画像生成部５０７５Ｌがマ−カの仮想映像を生成するために必要な予め定めた視点の位置Ｔ０ＶＷも保持している。
【０１３７】
＜変形例１＞
上記実施形態は光学式ＨＭＤを用いたものであったが、光学式ＨＭＤの適用に限定されるものではなく、ビデオシースルー方式のＨＭＤにも適用可能である。
【０１３８】
その場合、上述の実施形態ではプレ−ヤの視点１９０１であった計測対象が、ビデオシースルー方式のＨＭＤに備わっている撮像装置（例えばビデオカメラ）の視点となる。予め定めた位置姿勢Ｍ０ＶＷは撮像装置の視点の位置姿勢であり、変換行列ＭＶＳは磁気センサ２２０Ｌから見た撮影部の位置姿勢を示す変換行列となる。
【０１３９】
本実施形態では、仮想マ−カ映像生成部５０７５Ｌは、予め定めた位置姿勢Ｍ０ＶＷに従って、撮像装置が撮影した現実空間の映像（マ−カ画像）にマ−カの仮想映像を重畳描画し、これを表示部へと表示する。マーカ１６００はマーカ画像においてテーブル１０００と判別可能な状態にする必要がある。操作者は、表示部に表示された映像上において、マ−カの現実の映像と仮想の映像が重なるように、撮像部の位置姿勢を操作する。なお、ビデオシ−スル−方式の場合には、光学式ＨＭＤの場合とは異なり、キャリブレ−ション時に用いる表示部は、ゲ−ム装置におけるＨＭＤ２１０Ｌを必ずしも用いなくても良く、ＣＲＴディスプレイやその他の表示機器を用いても良い。
【０１４０】
＜変形例２＞
ゲ−ム装置の方式が光学式ＨＭＤの場合においても、ＨＭＤ２１０Ｌにプレ−ヤの視点からみた相対的な位置姿勢が既知な撮像装置が装着されている場合には、キャリブレ−ションを変形例１と同様にビデオシ−スル−方式で行うことも可能である。
【０１４１】
本実施形態では、仮想マ−カ映像生成部５０７５Ｌは、予め定めたプレ−ヤ視点の位置姿勢Ｍ０ＶＷとプレ−ヤの視点からみた撮像装置の相対的な位置姿勢によって定められる世界座標系における撮像装置の位置姿勢に従って、撮像装置が撮影した現実空間の映像（マ−カ画像）にマ−カの仮想映像を重畳描画し、これを表示部へと表示する。なお、表示部としてＨＭＤ２１０Ｌを用いる場合には、表示面の透過率を調整し遮蔽状態にすることが好ましい。
【０１４２】
＜変形例３＞
上記実施形態は、位置合わせの手掛りとして点の情報であるマーカ１６００を用いたが、視点の位置姿勢を予め定めた位置姿勢Ｍ０ＶＷに位置させるための視覚的なキュ−となる幾何情報であれば、いずれの幾何情報を用いてもよい。例えば机などの現実物体の形状を環境から取り込み、予め定めた位置姿勢Ｍ０ＶＷに従ってそのワイヤ−フレ−ムモデルを描画してもよい。この場合、現実の机の像とそこに重畳したワイヤ−フレ−ム映像が一致するように視点を移動させることで、視点を位置姿勢Ｍ０ＶＷに誘導することが可能となる。また、キャリブレ−ション後に表示される仮想物体（例えば、実施形態１における仮想のパック）を予め定めた位置姿勢Ｍ０ＶＷに従って描画することでも、現実の机の像の上のあるべき位置に仮想のパックが位置するように視点を移動させることで、視点を位置姿勢Ｍ０ＶＷに誘導することができる。なお、これらのいずれかを組み合わせることが可能あることは言うまでもない。
【０１４３】
＜変形例４＞
上記実施形態では視点を位置姿勢Ｍ０ＶＷに位置させることを補助する目的でキャリブレ−ショングリッド６０００を用いたが、キャリブレ−ショングリッドは必ずしも必要ではなく、視覚情報のみを手掛りにしてもよい。また、視覚情報を用いずに、キャリブレ−ショングリッド６０００上の既定の位置に既定の姿勢でＨＭＤ２１０Ｌを位置させることで、視点を位置姿勢Ｍ０ＶＷに位置させてもよいし、視点を予め定めた位置姿勢（あるいは姿勢）に導くものであれば、それ以外のいずれの方法を用いてもよい。
【０１４４】
＜変形例５＞
上記実施形態は、エアーホッケーゲームに適用したものであったが、言うまでもなく上述の実施形態はエアーホッケーゲーム以外の複合現実感を提示するシステムに適応可能である。また、２人の協調作業にのみ好適であることはない。１人あるいは３人以上の作業者（あるいはプレーヤ）に複合現実感を提示するシステムにも適用可能である。また、複合現実感を提示するシステムに限らず、磁気センサを用いて撮像装置の視点の位置姿勢を計測するいずれの用途に用いることも可能である。また、変形例２で述べたプレーヤ視点の位置姿勢計測に限らず、撮像装置の視点との相対的な位置姿勢が既知であるようないずれの計測対象の位置姿勢を計測する用途に用いることも可能である。
【０１４５】
＜変形例６＞
上記実施形態では、磁気センサとして交流磁界を利用した磁気センサを使用しているが、このセンサの適用に限られるものではない。ジャイロセンサや超音波センサなど、計測対象の位置姿勢または姿勢を検出できるセンサであればいずれのセンサに対しても適用可能である。
【０１４６】
［他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４８】
本発明を上記記憶媒体に適用する場合、その記憶媒体には先に説明した（図６及び／又は、図９及び／又は、図１０及び／又は、図１１及び／又は、図１５及び／又は、図１７に示す）フローチャートに対応するプログラムコードが格納されることになる。
【０１４９】
【発明の効果】
以上説明したように本発明によれば、センサ座標系を世界座標系に変換するための情報や、センサの位置姿勢を計測対象の位置姿勢に変換するための情報を取得することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に用いられているシステムのゲーム装置部分を側面から見た図である。
【図２】左側プレーヤ２０００が自身のＨＭＤ２１０Ｌからみた映像を示す図である。
【図３】ＨＭＤ２１０の構成を示す図である。
【図４】キャリブレ−ションを行う場合の概要を説明する図である。
【図５】本発明の第１の実施形態のキャリブレ−ション部５０５５Ｌの詳細な構成を示した図である。
【図６】本発明の第１の実施形態のキャリブレ−ション装置の処理のフローチャートである。
【図７Ａ】ステップＳ１０４０で表示部２１０Ｌに表示された画像を示す図である。
【図７Ｂ】表示部２１０Ｌを光学的に透過してプレ−ヤに観測される像を示す図である。
【図７Ｃ】ステップＳ１０７０でマーカの仮想映像と実物のマーカの像の位置をＨＭＤ２１０Ｌの（すなわち視点１９０１の）平行移動または回転により的確に重ね合わせる際の状態を示す図である。
【図８】第１図で示したゲーム装置においてキャリブレーションにより求めたキャリブレーションデータを利用している３次元画像の生成提示システムの構成を示した図である。
【図９】マレット位置を計測する制御手順を示すフローチャートである。
【図１０】マレット位置を計測する制御手順を示すフローチャートである。
【図１１】マレット位置を計測する制御手順を示すフローチャートである。
【図１２】固定位置にあるＣＣＤカメラ２３０が取得した画像を２つの分割した場合を説明する図である。
【図１３】探索領域を示す図である。
【図１４】本発明の第１の実施形態のエアーホッケーゲームのゲームフィールドを示す図である。
【図１５】ゲーム状態管理部５０３０における処理手順を説明するフローチャートである。
【図１６】ＷｉｄｔｈおよびＨｅｉｇｈｔの定義を説明する図である。
【図１７】位置姿勢変換部５０６０（５０６０Ｌ，５０６０Ｒ）及び画像生成部５０５０（５０５０Ｌ、５０５０Ｒ）における処理のフローチャートである。
【図１８】磁気センサによる磁気センサの位置姿勢の測定方法について説明する概念図である。
【図１９】位置姿勢変換部５０６０Ｌにおいて、世界座標系８０００におけるプレ−ヤ２０００の視点１９０１の位置姿勢ＭＶＷを求める方法を説明する図である。
【図２０】本発明の第１の実施形態のゲーム装置のキャリブレ−ションを行う際の装置構成を示す図である。
【図１】
0003631151.tif 000008
【図２】
0003631151.tif 000009
【図３】
0003631151.tif 000010
【図４】
0003631151.tif 000011
【図５】
0003631151.tif 000012
【図６】
0003631151.tif 000013
【図７Ａ】
0003631151.tif 000014
【図７Ｂ】
0003631151.tif 000015
【図７Ｃ】
0003631151.tif 000016
【図８】
0003631151.tif 000017
【図９】
0003631151.tif 000018
【図１０】
0003631151.tif 000019
【図１１】
0003631151.tif 000020
【図１２】
0003631151.tif 000021
【図１３】
0003631151.tif 000022
【図１４】
0003631151.tif 000023
【図１５】
0003631151.tif 000024
【図１６】
0003631151.tif 000025
【図１７】
0003631151.tif 000026
【図１８】
0003631151.tif 000027
【図１９】
0003631151.tif 000028
【図２０】
0003631151.tif 000029