(57)【要約】【課題】拘束形状を複合現実感上で動的に作成できるようにし、らかじめ拘束形状が登録されていない場所においても、間単に拘束形状を用いて仮想物体を操作できるようにすることを目的とする。【解決手段】３次元空間内に位置する仮想物体の位置および姿勢に関する操作を補助する情報処理装置であって、前記仮想物体を現実空間上に重畳して表示するために現実空間の画像を撮像する撮像手段と、前記撮像された画像に仮想物体を合成する合成手段と、前記仮想物体の位置および姿勢の操作を行う操作手段と、外部からの指示により現実空間の３次元位置を得て、記前記仮想物体の位置および姿勢の操作を補助する拘束形状を求める補助手段とを有し、前記仮想物体の位置および姿勢は、前記補助手段によって求められた拘束形状に基づく拘束条件のもとに、前記操作手段からの指示によって操作される。【選択図】　　　図１
2004062758.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間内に位置する仮想物体の位置および姿勢に関する操作を補助する情報処理装置であって、
前記仮想物体を現実空間上に重畳して表示するために現実空間の画像を撮像する撮像手段と、
前記撮像された画像に仮想物体を合成する合成手段と、
前記仮想物体の位置および姿勢の操作を行う操作手段と、
外部からの指示により現実空間の３次元位置を得て、記前記仮想物体の位置および姿勢の操作を補助する拘束形状を求める補助手段とを有し、
前記仮想物体の位置および姿勢は、前記補助手段によって求められた拘束形状に基づく拘束条件のもとに、前記操作手段からの指示によって操作されることことを特徴とする情報処理装置。
【請求項２】
前記拘束形状は、前記外部からの指示により得られた現実空間の３次元位置を、頂点または構成要素とする面から構成される形状であることを特徴とする請求項１及至２のいずれかに記載の情報処理装置。
【請求項３】
前記操作手段を用いた、前記仮想物体の位置および姿勢の操作は、前記拘束形状に沿った平行移動変換、または拘束形状と前記仮想物体が接する面における法線を軸とする回転変換が可能であることを特徴とする請求項１及至３のいずれかに記載の情報処理装置。
【請求項４】
前記仮想物体は、前記操作手段による操作により、前記操作手段の２次元画面上での位置と前記仮想物体の２次元画面上での位置が同期するように、３次元の変換を受けることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
３次元空間内に位置する仮想物体の位置および姿勢に関する操作を行う情報処理方法であって、
前記仮想物体を現実空間上の３次元位置に固定して表示するために前記撮像手段の位置および姿勢を示す外部パラメータを取得する計測ステップと、
前記仮想物体の位置および姿勢の操作を行う操作ステップと、
前記操作手段の操作に対して拘束を加えて前記仮想物体の操作を補助する補助ステップと、
前記拘束を生成する基準となる拘束形状を入力するための入力ステップと、
撮像手段によって得られた現実空間の映像と該撮像手段の位置および姿勢から推定される仮想物体の映像とを合成する合成ステップとを有し、
前記補助ステップは、前記操作ステップにおける前記仮想物体の位置および姿勢を前記拘束平面を基準として変換し、操作補助をすることを特徴とする情報処理方法。
【請求項６】
前記入力ステップは、外部からの指示により現実空間の３次元位置を得ることを特徴とする請求項５に記載の操作補助装置。
【請求項７】
請求項５または６に記載の情報処理方法をコンピュータ装置に実行させることを特徴とするコンピュータプログラム。
【請求項８】
請求項７記載のコンピュータプログラムを格納したことを特徴とするコンピュータ装置読みとり可能な記憶媒体。
【請求項９】
現実空間の映像と仮想物体を合成することにより得られる複合現実空間上において、仮想物体の位置および姿勢を操作するための情報処理方法であって、
３次元位置情報を取得することができる操作部を用いてユーザによって指示された現実空間上における複数の位置から拘束条件となる拘束形状を求め、
前記求められた拘束形状を拘束条件として、ユーザの指示に応じて前記仮想物体の位置および姿勢を変更し、
現実空間の映像に、前記変更された位置・姿勢に応じて生成された仮想物体の画像を合成することを特徴とする情報処理方法。
【請求項１０】
前記拘束形状は平面であることを特徴とする請求項９記載の情報処理方法。
【請求項１１】
前記仮想物体の位置および姿勢の変更は、前記操作部の位置および姿勢を変化させることにより行われることを特徴とする請求項１０記載の情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
複合現実空間における仮想物体を操作するものに関する。
【０００２】
【従来の技術】
６自由度操作が可能な操作デバイスを用いて仮想物体を操作する場合に、限られた物理法則を使用することで、ユーザの操作を意図する操作になるように補助する方法がある。例えば、ある仮想空間の平面上に配置された仮想物体を同平面上の異なる位置に移動しようとした場合、ユーザからの入力である６自由度の操作をそのまま反映させて仮想物体を移動するのではなく、重力、衝突を模して仮想物体を平面に沿って２次元平面上を移動する方がユーザにとっては直感的な操作となる。また同様に、平面上で回転操作をする場合には、平行移動成分や３軸の回転を同時に操作させるよりも、平面に垂直な法線を軸とする１軸の回転に制限することで、ユーザの意図した操作を実現できる。ここで、１つの平面によって仮想物体の操作に制約を与える平面を拘束平面、また、複数の平面から構成される拘束平面の集合体を拘束形状と呼ぶ。
【０００３】
【発明が解決しようとする課題】
従来は、前述のような拘束形状を仮想空間上における仮想の物体をあらかじめモデリングして入力することで、そのモデルを拘束形状として用いてきた。この方法を仮想空間上で実現する場合は、単一の空間において仮想物体と拘束形状が表現されているため、拘束形状を設定することは容易であった。一方で、複合現実空間を実現する上では、現実空間と仮想空間との２空間の正確な位置合わせを行うことが重要な要素となるため、拘束形状を現実空間に対応させるためには、現実空間上の正確な数式モデル表現又は形状モデル表現が必要となる。なぜならば、拘束形状に設定するモデルは、ユーザが目分量で設定するものではなく、現実空間の形状に対応したモデルでなければならないからである。もし、現実空間の一平面と一致していない平面の数式モデルを拘束平面として利用し、仮想物体を操作した場合には、仮想物体が現実空間の平面から浮いていたり、平面よりも下に移動したりするなどの、仮想空間と現実空間の空間的な不連続性が生じる。この不連続性をユーザが体験した場合は、現実空間に存在する物体が仮想物体に影響を与えないことに違和感を受け、直感的に操作ができない場合がある。しかしながら、現実空間上の拘束形状の正確なモデル化は、幾何学的に正確な形状の入力や実現する環境の誤差（センサ計測誤差、センサの配置に対する誤差など）をも考慮しなければならないため、困難であった。
【０００４】
このように、仮想物体の操作に現実空間に存在する物体の影響を与えることで補助する方法を実現するためには、あらかじめ正確な数式モデル、形状モデルを用意する必要があり、さらにモデルを用意している場所でしかこの操作方法を用いることができなかった。
【０００５】
本発明は、これらの問題を鑑みて発明されたものであり、拘束形状を複合現実感上で動的に作成できるようにし、あらかじめ拘束形状が登録されていない場所においても、間単に拘束形状を用いて仮想物体を操作できるようにすることを目的とする。
【０００６】
【課題を解決するための手段】
上記目的を達成するために本発明は以下の構成を有する。
【０００７】
本願請求項１に記載の発明は、３次元空間内に位置する仮想物体の位置および姿勢に関する操作を補助する情報処理装置であって、前記仮想物体を現実空間上に重畳して表示するために現実空間の画像を撮像する撮像手段と、前記撮像された画像に仮想物体を合成する合成手段と、前記仮想物体の位置および姿勢の操作を行う操作手段と、外部からの指示により現実空間の３次元位置を得て、記前記仮想物体の位置および姿勢の操作を補助する拘束形状を求める補助手段とを有し、前記仮想物体の位置および姿勢は、前記補助手段によって求められた拘束形状に基づく拘束条件のもとに、前記操作手段からの指示によって操作されることを特徴とする情報処理装置。
【０００８】
本願請求項５記載の発明は、３次元空間内に位置する仮想物体の位置および姿勢に関する操作を行う情報処理方法であって、前記仮想物体を現実空間上の３次元位置に固定して表示するために前記撮像手段の位置および姿勢を示す外部パラメータを取得する計測ステップと、前記仮想物体の位置および姿勢の操作を行う操作ステップと、前記操作手段の操作に対して拘束を加えて前記仮想物体の操作を補助する補助ステップと、前記拘束を生成する基準となる拘束形状を入力するための入力ステップと、撮像手段によって得られた現実空間の映像と該撮像手段の位置および姿勢から推定される仮想物体の映像とを合成する合成ステップとを有し、前記補助ステップは、前記操作ステップにおける前記仮想物体の位置および姿勢を前記拘束平面を基準として変換し、操作補助をすることを特徴とする。
【０００９】
本願請求項９記載の発明は、現実空間の映像と仮想物体を合成することにより得られる複合現実空間上において、仮想物体の位置および姿勢を操作するための情報処理方法であって、３次元位置情報を取得することができる操作部を用いてユーザによって指示された現実空間上における複数の位置から拘束条件となる拘束形状を求め、前記求められた拘束形状を拘束条件として、ユーザの指示に応じて前記仮想物体の位置および姿勢を変更し、現実空間の映像に、前記変更された位置・姿勢に応じて生成された仮想物体の画像を合成することを特徴とする。
【００１０】
【発明の実施の形態】
（実施形態１）
＜１．構成＞
以下、添付図面を参照して、本発明を適用した好適な実施形態に従って詳細に説明する。
【００１１】
図１は本発明の複合現実空間における仮想物体の操作補助装置を適用した実施形態における概略構成を示す。図２は本実施形態における装置の構成の模式図である。
【００１２】
ＨＭＤ１０００には、撮像部１０１０、撮像部位置姿勢計測部１０２０、表示部１０３０が取り付けられ互いに固定されている。なお、本実施形態では図２に示すように、撮像部１０１０と表示部１０３０をＨＭＤ内にそれぞれ２基搭載しており、ステレオで現実空間の撮像と複合現実空間の認識が可能である。ユーザはこのＨＭＤ１０００を頭部に装着することで、表示部１０３０に映るステレオの複合現実空間画像（以下、ＭＲ画像とする）を見ることができる。本発明では、ステレオの撮像と表示を行うことに限定するものではなく、少なくとも１つ以上の撮像部と表示部があれば適応可能である。さらに、本発明では、ＨＭＤ１０００を使用することに限定するものではなく、撮像部と撮像部位置姿勢計測部１０２０が固定され、表示部１０３０をユーザが見える状態にある方法であれば、適応可能である。
【００１３】
撮像部位置姿勢計測部１０２０は、本実施形態においてＰｏｌｈｅｍｕｓ社の３Ｄ　ＳＰＡＣＥ　ＦＡＳＴＲＡＫセンサを使用しており、図２に示すように、現実空間上に配置された磁界発生装置２０２０から発生した磁界を撮像部に固定されている受信装置である撮像部位置姿勢計測部１０２０で受け、受けた磁界の変化をセンサコントローラ２０３０に送ることで撮像部位置姿勢を計測している。本発明においては、この撮像部位置姿勢計測部は、磁気センサに限るものではなく、光学センサ、画像処理による撮像部位置姿勢推定など、撮像部の位置姿勢を計測できるものであれば適応可能である。
【００１４】
撮像画像の取得部１０４０は、撮像部１０１０において撮像された撮像画像を画像データとして保持する。
【００１５】
撮像部位置姿勢推定部１０５０では、撮像部位置姿勢計測部１０２０で得られた計測値を基に撮像部位置姿勢の推定を行う。この推定には、撮像画像の取得部１０４０に保持されている画像中から、３次元空間中での位置が既知である特徴点を用いて高精度に求める方法や、センサの誤差を推定して修正する方法などを適応してもよい。
【００１６】
拘束形状入力部１０６０は、現実空間上にある拘束平面２０００の３次元位置を取得し、拘束形状生成部１０８０に入力する。本実施形態では、Ｐｏｌｈｅｍｕｓ社の３Ｄ　ＳＰＡＣＥ　ＦＡＳＴＲＡＫセンサのスタイラスを使用する。このスタイラスには、現実空間上の物体の３次元位置を指定するなどのユーザインターフェースのためのボタン（不図示）が１つ装備されている。本発明においては、このような３次元ポインティングデバイスに限るものではなく、現実空間の画像特徴をステレオカメラで撮像して物体の形状を求めるような方法など、現実空間の拘束形状を正確にモデル化できるものであれば適応可能である。
【００１７】
拘束形状生成部１０８０においては、入力された拘束平面を今までに蓄積していた拘束形状と合成し記憶する。図３はこの拘束形状生成部１０８０の内部の構成を示すブロック図である。拘束平面生成部３０００においては、入力された現実空間上の３次元位置から平面の数式モデル、又は形状モデルを生成し、拘束平面とする。生成された拘束形状は、拘束形状記憶部において記憶される。
【００１８】
仮想物体操作部１０９０は、仮想物体２０１０の６自由度操作を行うものである。本実施形態においては拘束形状入力部１０６０のスタイラスを併用する。本発明においては、スタイラスを併用する方法に限るものではなく、仮想物体操作部１０９０として、もう１台のＦＡＳＴＲＡＫセンサを用意してスタイラスを用いる方法でもよい。さらにＦＡＳＴＲＡＫセンサではなく、他の光学センサや２次元で操作するマウスなどを用いてもよい。
【００１９】
仮想物体配置形状記憶部１０７０は、仮想物体２０１０の形状及びシーン中の配置を記憶する。記憶されている仮想物体２０１０は操作補助部１１００に転送され、拘束形状２０００の干渉と仮想物体操作１０９０によって入力された操作に従って操作補助部１１００内の仮想物体２０１０の配置、又は形状が変更される。
【００２０】
操作補助部１１００は、拘束形状生成部１０８０、仮想物体配置形状記憶部１０７０の情報から操作制約を生成し、仮想物体操作部１０９０から入力される操作に対して制約を行う。図４は操作補助部１１００の構成を示すブロック図である。距離判定部４０００では、仮想物体配置形状記憶部１０７０に格納されている操作対象の仮想物体２０１０と拘束形状生成部１０８０に格納されている拘束形状２０００との距離を比較する。操作拘束生成部４０１０は、距離判定部によって求められた距離と拘束形状に従って、対象仮想物体に対する操作制限を生成する。操作決定部４０２０では仮想物体操作部１０９０の操作入力と、操作拘束生成部４０１０にて生成された操作制限から最終的な操作を決定し、仮想物体に対して操作を行い、結果の仮想物体位置姿勢を仮想物体配置形状記憶部１０７０に記憶する。
【００２１】
仮想画像生成部１１１０は、撮像部位置姿勢推定部１０５０と仮想物体配置形状記憶部１０７０に基づいて仮想物体２０１０を表示座標系に２次元投影し、仮想画像を生成する。
【００２２】
画像合成部１１２０は、撮像画像の取得部１０４０と仮想画像生成部１１１０から得られる画像を合成する。
【００２３】
ＭＲ画像出力部１１３０では、合成された画像を表示部１０３０に転送する。
【００２４】
ＨＭＤ１０００内にある表示部１０３０にはユーザの視点位置に対応した画像が表示される。ユーザはこの画像を見ることで複合現実空間を知覚でき、同時に複合現実空間上の仮想物体２０１０の操作も同時に行う。
【００２５】
なお、本実施形態においては、前述の撮像画像の取得部１０４０、撮像部位置姿勢推定部１０５０、仮想物体配置形状記憶部１０７０、拘束形状生成部１０８０、操作補助部１１００、仮想画像生成部１１１０、画像合成部１１２０、ＭＲ画像出力部１１３０を図２におけるワークステーション２０４０内に格納する。ワークステーション２０４０は、基本構成の機器の他に、撮像部の画像をキャプチャするために２系統のビデオキャプチャ装置と２系統の映像出力装置を備える。本発明においては、このようなワークステーションに限るものではなく、前述の機能と同等の機能を持つ計算機であればよい。
【００２６】
＜２．処理の手順＞
この実施形態における処理の手順を図５のフローチャートを参照して説明する。
【００２７】
ステップＳ５０００において撮像部１０１０にて撮像される画像を撮像画像の取得部１０４０に入力する。
【００２８】
ステップＳ５０１０において、撮像部位置姿勢計測部の計測値を撮像部位置姿勢推定部に入力し、撮像部の位置姿勢を推定する。推定した位置姿勢を基に、世界座標系から撮像部座標系に座標系を変換する４行４列のビューイング変換行列ＭＣを生成する。
【００２９】
ステップＳ５０２０において、拘束形状を入力するか仮想物体の操作をするかの選択をユーザの拘束形状入力部１０６０のボタン操作によって判定する。本発明においては、この操作をスタイラスのボタン操作によって選択させる方法に限るものではなく、マウスやキーボードなどの他の入力装置を用いて選択をさせる方法でも適応可能である。
【００３０】
ステップＳ５０２０において、拘束形状を入力するモードが選択された場合は、ステップＳ５０３０に移る。また、仮想物体の操作をするモードが選択された場合は、ステップＳ５０４０に移る。
【００３１】
ステップＳ５０３０において、拘束形状入力部１０６０から現実空間上の物体の点を入力して拘束形状を生成する。図１０は現実空間上の拘束形状を入力する様子を示す模式図である。ステップＳ５０３０についての詳細は後述する。
【００３２】
ステップＳ５０４０において、仮想物体操作部１０９０から仮想物体２０１０の操作入力を受ける。この操作入力における仮想物体操作部１０９０の位置姿勢の変化分を記憶しておく。
【００３３】
ステップＳ５０５０において、操作補助部１１００に入力された拘束形状２０００と操作によって更新された仮想物体２０１０の位置を比較し、距離があらかじめ定めている閾値よりも小さい場合は、拘束形状の制限を受けることになるのでステップＳ５０６０に移る。閾値よりも大きい場合は、拘束形状の制限を受けずに操作可能となるのでステップＳ５０７０に移る。ここで、現在仮想物体２０１０がある拘束平面２０００Ａ（不図示）から拘束を受けて平行移動変換、または回転変換が行われた場合において、変換後の仮想物体が別の拘束平面２０００Ｂ（不図示）とまたがる場合には、仮想物体２０１０の重心位置と拘束平面２０００の重心位置との距離が近い方の拘束を受ける。
【００３４】
ステップＳ５０６０においては、拘束形状２０００に基づいて、仮想物体２０１０の操作を補正する。詳細は後述する。
【００３５】
ステップＳ５０７０においては、仮想物体の操作結果に応じて仮想物体配置形状記憶部１０７０内の仮想物体の状態を更新する。
【００３６】
ステップＳ５０８０においては、仮想物体配置形状記憶部１０５０の仮想物体２０１０をステップＳ５０１０によって得られたビューイング変換行列ＭＣによって変換し、さらに既知であるプロジェクション行列によって２次元投影を行う。
【００３７】
ステップＳ５０９０においては、ステップＳ５０００で得られた撮像画像に、ステップＳ５０８０で得られた仮想画像を重畳してＭＲ画像出力部１１３０によって表示部１０３０に表示する。
【００３８】
＜２．１　拘束形状の生成処理手順の詳細＞
図６はステップＳ５０３０の拘束形状の生成に関する詳細な処理手順を示すフローチャートである。ステップＳ６０００では、入力した点から数式モデルを生成するか、形状モデルを生成するかをユーザのスタイラスのボタン操作により選択させる。本発明においては、この操作をスタイラスのボタン操作によって選択させる方法に限るものではなく、マウスやキーボードなどの他の入力装置を用いて選択をさせる方法でも適応可能である。数式モデルを生成するモードが選ばれた場合は、ステップＳ６０１０に移行する。
【００３９】
ステップＳ６０１０においては、入力される現実空間上の物体のデータに基づいて数式モデルが生成される。詳細な処理手順は後述する。生成された数式モデルのパラメータはステップＳ６０５０において拘束形状記憶部３０１０に追加される。
【００４０】
ステップＳ６０２０においては、拘束形状入力部１０６０から拘束形状として登録する現実空間の物体上の点（３次元位置）を受ける。図１０における点ａ０２０が拘束形状となる物体上の点を示している。
【００４１】
ステップＳ６０３０においては、ステップＳ６０２０によって入力された点が合計３点未満であれば、ステップＳ６０２０に戻り、点の入力を待つ。現実空間上の３点入力された場合は、ステップＳ６０４０に移る。
【００４２】
ステップＳ６０４０においては、入力された３点から３次元空間中で三角形パッチ（図１０のａ０２０が囲む三角形のパッチ）を生成する。図１０のように現実空間上の六角柱を拘束形状として入力するのであれば、図１０のように六角柱の頂点を入力して表面に三角形パッチを生成するする。このとき、入力する３点は六角柱の表面を三角形で区切るように分割する。ここで、入力した点と作成した三角形パッチをユーザが拘束平面の入力を確認できるように、仮想の点とパッチに対応する半透明のポリゴンを入力操作に伴い生成し、描画してもよい。
【００４３】
ステップＳ６０５０においては、生成された数式モデル、又は形状モデルを拘束形状記憶部３０１０に追加する。
【００４４】
＜２．２　数式モデルの生成処理手順の詳細＞
図７はステップＳ６０１０の拘束形状の数式モデル生成に関する詳細な処理手順を示すフローチャートである。本実施形態においては、拘束形状の数式モデルの生成モジュールとして４点以上の点群から最小二乗近似を用いて平面の数式モデルを生成する方法を用意する。
【００４５】
まず、形状モデルに適している拘束平面と、数式モデルに適している拘束平面について説明する。形状モデルについては、ユーザが持つ拘束形状入力部１０６０によって計測できる距離内に拘束平面の頂点を含む物体に対して適用することが望ましい。このように形状モデルで入力した拘束平面を組み合わせて、より複雑な拘束形状を生成することができる。一方で、数式モデルは、拘束形状入力部１０６０によって計測できる範囲に対して、全体の形状が大きいものに対して適応することが望ましい。これは、地面のように、入力すべき頂点が遠方にあり入力が不可能である領域についても、拘束形状入力部１０６０によって計測できる範囲内の拘束平面に設定する同一平面上において４点以上の入力を行うだけで、拘束平面を設定することができるからである。この場合、この拘束平面の数式モデルは無限平面を表すモデルとなる。
【００４６】
次に、最小二乗近似による無限平面の数式モデルの生成方法について説明する。平面の式をａｘ＋ｂｙ＋ｃｚ＝１とし、これをベクトル演算で表現すると、
【００４７】
【外１】
2004062758.tif 000003
となる。求める平面上に存在する点は式（１）が成り立つ。これにより入力したｎ個の点群がすべて平面上にあると仮定すると、
【００４８】
【外２】
2004062758.tif 000004
が成り立つ。ここで、この式を
ｐ・Ｘ＝ｄ　　式（３）
とおく。この式（３）のＸの一般化逆行列を求めることで平面の数式モデルのパラメータであるｐ（ａ，ｂ，ｃ）が求められる。ここで、式（３）のＸの一般化逆行列をＸ＋とすると
Ｘ＋＝Ｘｔ・（Ｘ・Ｘｔ）−１　　式（４）
となり、
ｐ＝ｄ・Ｘｔ＝ｄ・Ｘｔ・（Ｘ・Ｘｔ）−１　　式（５）
この式（５）によって、入力点群から平面の数式モデルのパラメータｐ（ａ，ｂ，ｃ）が求められる。
【００４９】
以上のことを踏まえて、図７のフローチャートを用いて、数式モデルの生成処理手順を説明する。
【００５０】
ステップＳ７０００においては、拘束形状入力部１０６０から拘束形状として登録する現実空間の平面２０００上の点を受ける。図１０の点ａ０１０が入力する点を示している。
【００５１】
次にステップＳ７０１０においては、ステップＳ７０００において入力された点が４点以上である場合はステップＳ７０２０に移る。入力点が４点未満であった場合には、ステップＳ７０００に戻って点が入力されるまで待つ。
【００５２】
ステップＳ７０２０においては、ユーザによる点群の入力終了命令があるまでステップＳ７０００に戻って点の入力を行う。終了命令があった場合はステップＳ７０３０に移る。
【００５３】
ステップＳ７０３０においては、入力された点群を式（５）のＸの行列に設定し、式（５）の計算結果から平面の数式モデルのパラメータｐを求める。ここで得られたパラメータｐを式（１）に代入することにより平面の数式が得られる。
【００５４】
本発明においては、この平面の数式モデルだけを備えることに限るものではなく、様々な形状を数式モデル化できる方法においても適応可能である。さらに数式モデル化のモジュールの種類を１つ、又は複数用意する方法、形状モデルの頂点を入力として数式モデルに変換する方法であっても適応可能である。
【００５５】
＜２．３　仮想物体の操作に対する拘束処理の手順の詳細＞
図８はステップＳ５０６０の拘束形状の操作に関する詳細な処理手順を示すフローチャートである。ここで、仮想物体２０１０を操作する場合は、仮想物体操作部１０９０をユーザが手に持ち、仮想物体に仮想物体操作部１０９０を空間的に接触させ、仮想物体操作部１０９０が備えるボタン（不図示）を押すことによって、以後、仮想物体２０１０を仮想物体操作部１０９０の変化量と位置姿勢の変化量とを同期させることにより仮想物体の６自由度操作するものとする。また、仮想物体操作部１０９０が備えるボタンを離すことによって、この同期が解除されるものとする。この場合、ユーザは仮想物体を仮想物体操作部１０９０によって「つかむ」という感覚が得られる。
【００５６】
ステップＳ８０００においては、ステップＳ５０４０で行われた仮想物体の操作によって、仮想物体２０１０が拘束形状２０００に接触、又は内部に侵入した場合はステップＳ８０１０に移る。それ以外の場合は、ステップＳ８０２０に移る。
【００５７】
ステップＳ８０１０においては、拘束形状と仮想物体の位置に基づいて仮想物体の位置姿勢を補正する。この補正方法について、図９の仮想物体２０１０Ｘが拘束形状２０００内に侵入している様子を示す模式図を用いて説明する。
【００５８】
図中の９０１０Ａ、９０１０Ｂ、９０１０Ｃは拘束形状２０００内に侵入している仮想物体２０１０Ｘの三角形ポリゴンの頂点を示す。ステップＳ８０１０では、９０００Ａ、９０００Ｂが示す補正変換により、拘束平面２０００上に接するような図中の点９０２０の場所に移動させ、補正する。補正変換９０００は、変換前の仮想物体２０１０Ｘが、仮想物体の重心位置から最短距離にある拘束形状２０００に仮想物体の頂点９０２０のうち１つ以上の頂点が接するように配置する。
【００５９】
まず、変換前の頂点９０１０の中で、拘束形状２０００に侵入していて、かつ、拘束形状２０００から一番離れている点９０１０Ａを選ぶ。次に、選択した点９０１０Ａを通り仮想物体２０１０が拘束平面２０００に侵入した方向の逆方向の直線が拘束平面２０００と交わる点９０２０Ａを求める。次に、仮想物体２０１０Ｘを９０１０Ａから９０２０Ａに移動させる変換９０００Ａにより平行移動する。次に、移動後の仮想物体の三角形ポリゴンを構成する他方の頂点９０１０Ｂ’、９０１０Ｃ’のうち拘束平面２０００との距離が閾値９０４０よりも内側にある９０１０Ｃ’を選択し、９０２０Ａを回転中心として、９０１０Ｃ’が拘束平面２０００に接するような回転変換９０００Ｂを仮想物体２０１０Ｙにかける。もし、９０１０Ｂ’も閾値内に入るのであれば、９０１０Ｃ’と９０１０Ｂ’がそれぞれ拘束平面２０００に接するような回転変換を仮想物体２０１０Ｙにかける。この閾値９０４０は、あらかじめユーザが登録してもよいし、ユーザが状況に応じて動的に決定してもよい。このようにして、拘束平面２０００に接するように補正変換を行ったあとにステップＳ８０２０に移行する。
【００６０】
ステップＳ８０２０では、仮想物体２０１０の受ける操作について拘束を加える。
【００６１】
この拘束は、仮想物体の操作に対して、拘束平面の法線を軸とした回転と、拘束平面に平行な平行移動しか許さないものである。もし、仮想物体の操作によって、拘束平面に平行でない平行移動成分ｔ（ｔｘ，ｔｙ，ｔｚ）Ｔが行われた場合は、平行移動成分のうち、拘束平面に平行でない成分を消去することにより、拘束の影響を与える。例えば、世界座標系で定義された平行移動変換を拘束平面上にＸＺ平面があるローカル座標系に変換行列ＴＷＬによって変換し、変換された平行移動成分のＹ成分に０を設定する。そして、変更を受けた平行移動成分を世界座標系からローカル座標系への逆変換行列（ＴＷＬ）−１によって変換することで、拘束平面上を移動する平行移動成分ｔ’（ｔ’ｘ，ｔ’ｙ，ｔ’ｚ）Ｔが生成される。式（６）はこの計算式を表す。
【００６２】
【外３】
2004062758.tif 000005
【００６３】
この拘束は操作決定部４０２０の内部に格納される。操作決定部４０２０は再び、仮想物体が他の拘束平面２０００内に侵入し、ターゲットとなる拘束平面が変更されるまでは仮想物体に対して同じ拘束を与える。
【００６４】
この拘束が仮想物体２０１０の操作に加えられることにより、ユーザは、仮想物体の操作に対して拘束形状との接触、重力を視覚的に感じることになり、仮想物体２０１０の操作を直感的に行うことができる。
【００６５】
＜変形例１＞
実施形態のステップＳ６０１０における数式モデル生成モジュールにおいては、点を入力することにより平面の数式モデルを算出していたが、本発明は、この方法に限るものではなく、２つの方向ベクトルを入力する方法により平面の数式モデルを算出することも可能である。図１１は２つの方向ベクトルを利用した数式モデル生成モジュールＳ６０１０のフローチャートを表し、図１２はこの数式モデル生成方法の様子を示す模式図である。この例を図１１のフローチャートに従って説明する。
【００６６】
まず、ステップＳｂ０００において、拘束平面２０００に平行な直線を拘束形状入力部１０６０によって入力する。ここで拘束形状入力部１０６０は、図１２のように、現実物体上の拘束平面２０００と平行になるように置かなければならない。ここで拘束形状入力部１０６０の姿勢を図１２に示すようにｃ０で定義すると、ｃ０のＸ軸方向Ａが拘束平面２０００と平行になる。
【００６７】
次に、ステップＳｂ０１０において、方向ベクトルが２つ以上入力されるまでステップＳｂ０００に戻り、入力処理を続ける。ここで、図１２のように、拘束形状入力部１０６０’の姿勢ｃ０’のＸ軸方向Ｂを入力することで、ステップＳｂ０２０に移る。
【００６８】
次に、ステップＳｂ２０２において、方向Ａと方向Ｂの外積を計算することにより、２つの方向ベクトルを含む平面の法線を得られる。この２つの方向ベクトルが拘束平面２０００と平行であることから、Ａ×Ｂを法線とする平面も同じく、拘束平面２０００に平行である。ここで、計測点と計測点から拘束平面２０００へ垂線を降ろした点Ｐを通り、Ａ×Ｂを法線とする平面が拘束平面となる。ここで、平面の式を
ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０　　　　　式（７）
とおくと、Ａ×Ｂが法線であるので求められた法線ベクトルの各要素が（ａ、ｂ、ｃ）に対応することになる。これにより、法線の各要素の値と点Ｐを式（７）に代入することで定数ｄが得られる。これにより、拘束平面２０００の数式が求められる。
【００６９】
＜変形例２＞
実施形態で生成した拘束平面を用いて、複合現実空間における仮想物体の操作を補助する方法の変形例を説明する。この仮想物体の操作方法を図１３、図１４の模式図を用いて説明する。この操作方法の例における機器の構成は、先に述べた実施形態の構成と同じである。図１３は、仮想物体を操作している状態の俯瞰図を表しており、図１４は、ユーザが見ているＭＲ画像を表している。この方法を用いることにより、ユーザが持つ仮想物体操作部１０９０が届く範囲よりも遠方にある仮想物体を直感的に操作することが可能である。
【００７０】
まず、あらかじめ設定してある拘束平面２０００上に仮想物体２０１０を配置する。この仮想物体２０１０は仮想物体操作部１０９０によって操作するが、仮想物体操作部１０９０は仮想物体２０１０に３次元的に接する必要は無く、ユーザが見るＭＲ画像の奥行きを無視した２次元空間上で接触し、かつ仮想物体操作部１０９０に備えられたボタン（不図示）を押している場合に、画面上における仮想物体操作部１０９０の２次元位置ｄ０２０と仮想物体２０１０の２次元位置が同期するような操作が仮想物体に対して行われる。ボタンを離した場合には、仮想物体２０１０と仮想物体操作部１０９０とは同期しなくなり、仮想物体の平行移動は終了する。この場合、ユーザが仮想物体操作部１０９０を６自由度操作しても、仮想物体２０１０に与えられる操作は拘束平面上の平行移動だけに拘束される。
【００７１】
仮想物体操作部１０９０と仮想物体２０１０のＭＲ画像上での接触を検出するためには、双方のＭＲ画像上での２次元位置が必要となる。この２次元位置（Ｐ’ｘ，Ｐ’ｙ）Ｔは、世界座標系上での双方の３次元位置（Ｐｘ，Ｐｙ，Ｐｚ）Ｔ（図１３のｄ０１０、ｄ０３０）を撮像部位置姿勢計測部１０２０によって求められた撮像部１０１０の位置姿勢から４ｘ４の同次座標変換行列であるビューイング変換行列ＭＣによってカメラ座標系に変換され、既知である４ｘ３の同次座標変換行列であるプロジェクション行列ＭＰによって画像座標系に２次元投影されることにより求められる。式（８）はこの計算式を表す。
【００７２】
【外４】
2004062758.tif 000006
【００７３】
さらに、２次元空間での平行移動を拘束平面と平行な３次元空間における平行移動に変換するためには、仮想物体操作部１０９０の２次元平面における始点ｄ０２０と終点ｄ０２０’を求め、それぞれをカメラ座標系の原点ｄ０４０からカメラ座標系（３次元空間）における投影された２次元位置（ｄ０２０、ｄ０２０’）を通る直線と、カメラ座標系上の拘束平面２０００との交点（ｄ０３０、ｄ０３０’）を求める。次に、拘束平面上における始点ｄ０３０から終点ｄ０３０’に向かうベクトルを平行移動量ｄ０５０とし、この平行移動量ｄ０５０をモデルビュー行列の逆行列ＭＣ−１によって世界座標系における座標変換を行う。このようにして得られた世界座標系での平行移動量を用いて、仮想物体を移動させることで、ＭＲ画像上で仮想物体操作部１０９０と仮想物体２０１０が同期して操作することが可能となる。
【００７４】
（他の実施形態）
前述した実施の形態の機能を実現する様に各種のデバイスを動作させる様に該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施の形態の機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（ＣＰＵあるいはＭＰＵ）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【００７５】
この場合、前記ソフトウエアのプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【００７６】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピー（Ｒ）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることが出来る。
【００７７】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００７８】
更に供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【００７９】
【発明の効果】
以上説明したように、本発明によれば、複合現実空間における仮想物体の操作方法を補助することにより、ユーザは従来の操作方法よりも直感的に仮想物体の操作を行うことが可能となる。
【図面の簡単な説明】
【図１】複合現実空間における仮想物体の操作補助装置を適用した実施形態における概略構成を示すブロック図である。
【図２】実施形態１における装置の構成を示す模式図である。
【図３】拘束形状生成部１０８０の内部の構成を示すブロック図である。
【図４】図４は操作補助部１１００の構成を示すブロック図である。
【図５】実施形態１における処理の手順を示すフローチャートである。
【図６】ステップＳ５０３０の拘束形状の生成に関する詳細な処理手順を示すフローチャートである。
【図７】ステップＳ６０１０の拘束形状の数式モデル生成に関する詳細な処理手順を示すフローチャートである。
【図８】ステップＳ５０６０の拘束形状の数式モデル生成に関する詳細な処理手順を示すフローチャートである。
【図９】仮想物体２０１０Ｘが拘束形状２０００Ａに侵入している様子を示す模式図である。
【図１０】現実空間上の拘束形状を入力する様子を示す模式図である。
【図１１】変形例１における拘束形状の数式モデル生成に関する詳細な処理手順を示すフローチャートである。
【図１２】変形例１における拘束形状の数式モデル生成方法の様子を示す模式図である。
【図１３】仮想物体を操作している状態を左後方から見た俯瞰図を示す。
【図１４】ユーザが見ている撮像部１０１０で撮像した画像と仮想画像を合成したＭＲ画像の模式図を示す。
【図１】
2004062758.tif 000007
【図２】
2004062758.tif 000008
【図３】
2004062758.tif 000009
【図４】
2004062758.tif 000010
【図５】
2004062758.tif 000011
【図６】
2004062758.tif 000012
【図７】
2004062758.tif 000013
【図８】
2004062758.tif 000014
【図９】
2004062758.tif 000015
【図１０】
2004062758.tif 000016
【図１１】
2004062758.tif 000017
【図１２】
2004062758.tif 000018
【図１３】
2004062758.tif 000019
【図１４】
2004062758.tif 000020