JP2005107972A - 複合現実感提示方法、複合現実感提示装置 - Google Patents
複合現実感提示方法、複合現実感提示装置 Download PDFInfo
- Publication number
- JP2005107972A JP2005107972A JP2003341631A JP2003341631A JP2005107972A JP 2005107972 A JP2005107972 A JP 2005107972A JP 2003341631 A JP2003341631 A JP 2003341631A JP 2003341631 A JP2003341631 A JP 2003341631A JP 2005107972 A JP2005107972 A JP 2005107972A
- Authority
- JP
- Japan
- Prior art keywords
- virtual object
- orientation
- operation unit
- unit
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】 仮想物体の操作方法を適宜切り替え可能にし、正確、かつ、効率的に仮想物体の操作を行うこと。
【解決手段】 撮像部位置姿勢計測部1020は現実空間、仮想空間で共有される視点の位置姿勢を取得し、操作部位置姿勢計測部1070は操作部1100の位置姿勢を計測し、仮想物体操作部1080はパラメータを操作部1100の位置姿勢を用いて、選択された操作方法で操作し、仮想画像生成部1110は操作されたパラメータに従った位置姿勢の仮想物体の、視点の位置姿勢から見える画像を生成し、表示部1030は上記視点から見える現実空間に重畳させて観察者に提示する。
【選択図】 図8
【解決手段】 撮像部位置姿勢計測部1020は現実空間、仮想空間で共有される視点の位置姿勢を取得し、操作部位置姿勢計測部1070は操作部1100の位置姿勢を計測し、仮想物体操作部1080はパラメータを操作部1100の位置姿勢を用いて、選択された操作方法で操作し、仮想画像生成部1110は操作されたパラメータに従った位置姿勢の仮想物体の、視点の位置姿勢から見える画像を生成し、表示部1030は上記視点から見える現実空間に重畳させて観察者に提示する。
【選択図】 図8
Description
本発明は、例えばコンピュータグラフィクスによる仮想画像を現実の空間に融合させて観察者に提示する複合現実感提示システムにおいて、3次元空間上での仮想物体の操作を行う方法に関するものである。
従来、CADデータなどの仮想的な3次元モデルを操作する場合には、CRTモニタなどに3次元空間画像を2次元画像として投影し、擬似3次元空間においてマウス、キーボード等で物体の形状操作を行っていた。しかし、2次元平面への投影時に、3次元物体の情報が欠落してしまうため、3次元物体を直感的に操作することが難しい場合がある。この問題を解決するために、仮想現実感(Virtual Reality: VR)技術を用いて、3次元の物体を3次元空間上で操作することが試みられている。
3次元空間での入力装置として、マウス、キーボードの代わりに磁気センサなどの6自由度位置姿勢計測装置を備えた入力装置が用いられている。しかし、入力装置を扱う人間の手と仮想空間における操作物体との相対位置が掴みにくいという問題から、近年では複合現実感(Mixed Reality: MR)技術を利用して、現実空間と仮想物体との位置関係が把握できる状態で操作を行う方法も考えられている。
この複合現実感技術(例えば、非特許文献1を参照)とは、現実空間上にCG等の非現実空間(仮想空間)画像を重畳、もしくは合成し、ユーザに提示する技術である。ユーザに提示する手段としては、HMD(Head Mounted Display)などが用いられる。この複合現実感技術を利用すると、現実空間上の自分の手の位置がHMDを通して確認できるため、操作対象の仮想物体との位置関係を容易に把握することができる。
「H. Tamura, H. Yamamoto and A. Katayama: "Mixed reality: Future dreams seen at the border between real and virtual worlds," Computer Graphics and Applications, vol.21, no.6, pp.64-70, 2001.」
「H. Tamura, H. Yamamoto and A. Katayama: "Mixed reality: Future dreams seen at the border between real and virtual worlds," Computer Graphics and Applications, vol.21, no.6, pp.64-70, 2001.」
複合現実感技術を用いて仮想物体の操作を行う場合に、6自由度位置姿勢計測装置を備えた入力装置の値をそのまま物体の3次元位置及び姿勢として操作する(以降、この操作方法を直接操作と呼ぶ)と、短時間で意図した位置及び姿勢にならない場合がある。
例えば、仮想物体が机の上に置かれていることを想定して、物体をこの机の天板に沿って移動・回転させたい場合や、仮想物体を6自由度位置姿勢計測装置を持った手の移動範囲よりも大きく移動させたい場合などである。天板に沿って物体を動かす場合は、人間の手の6自由度動作入力では、手のぶれなどに起因して仮想物体が天板から浮いてしまったり、天板にめり込んでしまうため、短時間で正確に操作を行うことは難しい。
また、仮想物体を大きく移動させたい場合、6自由度位置姿勢計測装置の可動範囲制限などから、移動操作を複数回に分けて実行する必要があり、短時間での操作ができない問題がある。
本発明は、以上の問題に鑑みて成されたものであり、仮想物体の操作方法を適宜切り替え可能にし、正確、かつ、効率的に仮想物体の操作を行うことを目的とする。
本発明の目的を達成するために、例えば本発明の複合現実空間提示方法は以下の構成を備える。
即ち、仮想空間の画像を生成し、現実空間に重畳させて観察者に提示する複合現実空間提示方法であって、
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得工程と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作部の位置姿勢を計測する第1の計測工程と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択工程と、
前記パラメータを、前記第1の計測工程で計測された前記操作部の位置姿勢を用いて、前記選択工程で選択された操作方法で操作する操作工程と、
前記操作工程で操作された前記パラメータに従った位置姿勢の前記仮想物体の、前記取得工程で取得された前記視点の位置姿勢から見える画像を生成する生成工程と、
前記生成工程で生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示工程と
を備えることを特徴とする。
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得工程と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作部の位置姿勢を計測する第1の計測工程と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択工程と、
前記パラメータを、前記第1の計測工程で計測された前記操作部の位置姿勢を用いて、前記選択工程で選択された操作方法で操作する操作工程と、
前記操作工程で操作された前記パラメータに従った位置姿勢の前記仮想物体の、前記取得工程で取得された前記視点の位置姿勢から見える画像を生成する生成工程と、
前記生成工程で生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示工程と
を備えることを特徴とする。
本発明の目的を達成するために、例えば本発明の複合現実空間提示装置は以下の構成を備える。
即ち、仮想空間の画像を生成し、現実空間に重畳させて観察者に提示する複合現実空間提示装置であって、
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得手段と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作手段と、
前記操作手段の位置姿勢を計測する第1の計測手段と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択手段と、
前記パラメータを、前記第1の計測手段が計測した前記操作部の位置姿勢を用いて、前記選択手段が選択した操作方法で操作する操作手段と、
前記操作手段が操作した前記パラメータに従った位置姿勢の前記仮想物体の、前記取得手段が取得した前記視点の位置姿勢から見える画像を生成する生成手段と、
前記生成手段が生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示手段と
を備えることを特徴とする。
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得手段と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作手段と、
前記操作手段の位置姿勢を計測する第1の計測手段と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択手段と、
前記パラメータを、前記第1の計測手段が計測した前記操作部の位置姿勢を用いて、前記選択手段が選択した操作方法で操作する操作手段と、
前記操作手段が操作した前記パラメータに従った位置姿勢の前記仮想物体の、前記取得手段が取得した前記視点の位置姿勢から見える画像を生成する生成手段と、
前記生成手段が生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示手段と
を備えることを特徴とする。
本発明の構成により、仮想物体の操作方法を適宜切り替え可能にし、正確、かつ、効率的に仮想物体の操作を行うことができる。
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
[第1の実施形態]
まず、従来の複合現実空間における仮想物体の操作方法として、位置姿勢入力装置の出力値から位置姿勢変化分を取り出し、その変化分をそのまま仮想物体の移動回転量として利用する操作方法を説明する。図4は従来の操作方法である直接操作を行っている様子を示す模式図である。同図において2010は仮想物体、1100は操作者が仮想物体2010を操作するためのインターフェースとして機能する操作部である。
まず、従来の複合現実空間における仮想物体の操作方法として、位置姿勢入力装置の出力値から位置姿勢変化分を取り出し、その変化分をそのまま仮想物体の移動回転量として利用する操作方法を説明する。図4は従来の操作方法である直接操作を行っている様子を示す模式図である。同図において2010は仮想物体、1100は操作者が仮想物体2010を操作するためのインターフェースとして機能する操作部である。
同図は、操作者が操作部1100を手に持ち、これを同図矢印400の如く回転させると、この回転と同じ回転(同図矢印401で示す回転)を仮想物体2010に反映させている状態を示している。同様に、操作部1100の移動についても、同じ移動成分が仮想物体2010に反映される。このように直接操作は、操作部1100の位置姿勢の変化分をそのまま仮想物体2010に反映させる目的で利用する。
以下説明する本実施形態に係る複合現実空間提示システムによれば、従来の図4に示すような直接操作だけではなく、状況に応じて適宜仮想物体の操作方法を選択することを許容する。そしてこれにより、正確、かつ、効率的に仮想物体を操作させることを実現する。
<構成>
図1は本実施形態に係る複合現実空間提示システムの機能構成を示すブロック図である。また図2は、この複合現実空間提示システムの模式図である。尚、図1と図2とで同じ部分については同じ番号を付けている。
図1は本実施形態に係る複合現実空間提示システムの機能構成を示すブロック図である。また図2は、この複合現実空間提示システムの模式図である。尚、図1と図2とで同じ部分については同じ番号を付けている。
HMD1000には、撮像部1010、撮像部位置姿勢計測部1020、表示部1030が取り付けられ、夫々はHMD本体1000に固定されている。
本実施形態では図2に示すように、撮像部1010と表示部1030とは夫々2つずつHMD本体1000内に設けられており、撮像部1010R、表示部1030Rは右目用、撮像部1010L、表示部1030Lは左目用のものである。これにより、このHMD1000を頭部に装着した観察者の右目と左目には、それぞれ独立した画像を提示することができ、ステレオでもって画像を提示することができる。
本実施形態では、撮像部1010Rが撮像した現実空間の画像と、後段のワークステーション2040が生成した右目用の仮想空間の画像とが重畳された画像(この重畳画像を以下、MR画像と呼称する)を表示部1030Rにより右目に提示し、撮像部1010Lが撮像した現実空間の画像と、後段のワークステーション2040が生成した左目用の仮想空間の画像とが重畳された画像を表示部1030Lにより左目に提示するので、結果として観察者はMR画像をステレオでもって観察することができる。なお、以下説明する処理の本質はステレオでもってMR画像を観察者に提示することに限定するものではなく、撮像部、表示部を右目、左目で共有した場合(即ち観察者がモノラル画像を観察する場合)であっても良いことは以下の説明より明らかである。
また、観察者にMR画像を提示するための手段として本実施形態ではHMDを用いるが、この装置に限定するものではなく、撮像部と撮像部位置姿勢計測部1020が固定され、表示部1030をユーザが観察可能な装置であれば良い。
なお、以下、特に右目用、左目用に限定する説明でない限りは、撮像部、表示部は1010,1030でもって示す(R、Lは付けない)ものとする。
撮像部位置姿勢計測部1020は、自身の位置姿勢を計測するためのもので(最終的には、視点としての撮像部の位置姿勢を求めるためのもの)、本実施形態では磁気センサ型のものを用いる。この磁気センサ(撮像部位置姿勢計測部1020)としては例えば、Polhemus社のFASTRAKセンサが好適である。この磁気センサは図2に示すように、現実空間上に配置された磁界発生装置2020から発生した磁界を受け、受けた磁界の変化をセンサコントローラ2030に送る。このコントローラ2030は、磁界発生装置2020を原点とする座標系における撮像部位置姿勢計測部1020の位置姿勢を求める。
またセンサコントローラ2030は、操作部1100の操作部位置姿勢計測部1070から入力した位置姿勢信号をデータとして後段のワークステーション2040に出力する処理も行う。
そしてこの位置姿勢のデータをワークステーション2040に出力し、周知の計算を行うことにより、世界座標系(現実空間中の1点を原点とし、この原点から互いに直交する3つの軸を設定することにより設定される座標系)における撮像部1010の位置姿勢を求めることができる。このような、磁気センサを用いての撮像部1010の世界座標系における位置姿勢の計測方法については周知のものであるので、ここでの説明は省略する。
なお、撮像部位置姿勢計測部1020に適用可能なセンサは磁気センサに限定するものではなく、他の種類のセンサでも良い。例えば光学センサ、画像処理による撮像部位置姿勢推定など、撮像部の位置姿勢を計測できるものであれば撮像部位置姿勢計測部1020には適応可能である。
撮像画像の取得部1040は、撮像部1010によって撮像された現実空間の撮像画像を画像データとして保持する。
撮像部位置姿勢推定部1050では、撮像部位置姿勢計測部1020で得られた位置姿勢の計測値を基に撮像部1010の位置姿勢の推定を行う。この推定には、撮像画像の取得部1040に保持されている画像中から、現実空間中での位置が既知である特徴点を用いて高精度に求める方法や、センサの誤差を推定して修正する方法などを適応してもよい。いずれにせよ、この撮像部位置姿勢推定部1050により、撮像部1010の世界座標系における位置姿勢を求め(推定し)、これを以下の計算に用いるものとする。
操作部1100は、操作者が仮想物体2010の操作を行うタイミングを指示するためのイベント入力部1060と、操作部1100自体の位置姿勢を計測するための操作部位置姿勢計測部1070から構成される。この操作部位置姿勢計測部1070が計測する操作部1100の位置姿勢は説明を簡単にするために、世界座標系におけるものとするが、それ以外の座標系のものであっても、世界座標系における位置姿勢に変換可能であればよい。また、操作部位置姿勢計測部1070には物体の位置姿勢計測が可能な装置であれば適用可能であり、例えば、光学センサ、ジャイロと超音波センサの組み合わせによるものや、画像の特徴から位置姿勢を計測するものであっても良い。
この操作部1100は、本実施形態では前述のFASTRAKセンサのスタイラスを使用する。このスタイラスにはボタンが1つ装備され、このボタンをイベント入力部1060として利用する。しかし、このイベント入力部1060を用いて指示する情報を、他の装置、例えば、ワークステーション2040の不図示のキーボードやマウスを用いて入力しても良い。従って、以下の説明でイベント入力部1060を用いて入力する情報は、操作者以外のものが入力するようにしても良い。
本実施形態では、このイベント入力部1060を、複合現実空間(実際には仮想空間)にいくつか設置した仮想物体の内、操作対象として1つを選択する為に用いるものとする。このイベント入力部1060の使用については後述する。
仮想物体操作部1080は、操作部1100による仮想物体の操作結果を決定する。図3は、仮想物体操作部1080の詳細な構成を構成を示すブロック図である。
物体選択部3010は、複合現実空間中に複数設置している仮想物体の中から、操作を行う対象の仮想物体の選択/解除を行う。なお、この物体選択部3010は、記憶部1090に記憶されている2種類の選択方法夫々を示す設定データのうち、事前に選択された方の設定データに従った選択方法に従って操作を行う対象の仮想物体の選択/解除を行う。
この2種類の選択方法の内、一方は、図11に示すように、操作部1100における所定の位置(例えば操作部位置姿勢計測部1070が計測する操作部1100の位置)から所定半径内の領域11010と交わる仮想物体のうち、一番近いものを選択するという選択方法(以下では直接選択方法と呼ぶ)である。この選択方法によれば、仮想物体2010を選択する場合に、この仮想物体2010に操作部1100を近づけるだけ、もしくは近づけた状態でイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスによってイベントを入力することで選択できる。なお、領域11010の形状やその位置については特に限定するものではない。
また、上記2種類の選択方法の内、他方は、図12に示すように、操作部1100における所定の位置(例えば操作部位置姿勢計測部1070が計測する操作部1100の位置)を始点とし、操作部位置姿勢計測部1070が計測する操作部1100の姿勢方向に延長する直線(光線)12010を想定し、その光線12010上にある仮想物体のうち一番近い仮想物体を選択する方法(以下では光線選択方法と呼ぶ)である。この光線選択方法は、遠くに存在する物体を選択するのに適している。
従ってこの2つの選択方法を示す設定データが記憶部1090に記憶されており、事前に何れかの設定データがイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスを用いて選択されている。従って物体選択部3010は、この選択された選択方法に従って、操作部1100によってどの仮想物体が選択/解除されているかを判断する。なお、解除の方法については後述する。
直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050は、それぞれ、物体選択部3010が仮想物体を選択している場合に、この仮想物体の操作を行うために機能するものである。
ここで、「仮想物体の操作」とは、操作部位置姿勢計測部1070によって計測した位置姿勢の変化分のうち、位置成分の行列Wt、姿勢成分の行列Wrを用いて位置姿勢変換行列ΔMを生成し、仮想物体の位置姿勢(3次元配置情報)を示す行列Mに積算することで、次にフレームにおける仮想物体の位置姿勢を示す行列M’を求めることを示す(以下の式1を参照)。
即ち「仮想物体の操作」とは、仮想物体に係るパラメータを操作することを示す。ここではこの「パラメータ」とは、仮想物体の位置姿勢を示す行列を示す。この行列M’を表すデータは記憶部1090に記憶され、仮想画像生成部1110が仮想物体の画像を生成する際に用いられる。
仮想物体の位置姿勢を示す行列M、位置変化成分を示す行列Wt、姿勢変化成分を示す行列Wrは夫々、4x4の行列である。行列Mはあらかじめ仮想物体の初期位置姿勢として記憶部1090に記憶されている。位置姿勢変換行列ΔMは、行列Wt、Wrを用いて算出される行列である。Wt、Wrは、操作部位置姿勢計測部1070からの出力として得られる。
仮想物体の位置姿勢を示す行列M、位置変化成分を示す行列Wt、姿勢変化成分を示す行列Wrは夫々、4x4の行列である。行列Mはあらかじめ仮想物体の初期位置姿勢として記憶部1090に記憶されている。位置姿勢変換行列ΔMは、行列Wt、Wrを用いて算出される行列である。Wt、Wrは、操作部位置姿勢計測部1070からの出力として得られる。
式2はWt、式3はWrを示す式で、夫々の行列の成分は夫々周知の通り、操作部位置姿勢計測部1070による位置姿勢の計測値に基づいて決まるものである。
以下で詳しく説明する、直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050の4つの操作部は夫々異なる操作則でもって仮想物体を操作するものであり、事前に記憶部1090に設定される設定データにより、このうちの1つの操作部の使用が許可される。なお、どの操作部を用いても当然、その目的は選択中の仮想物体の位置や姿勢を変化させる、換言すればこれらを示す行列Wt、Wrを変更することであるから、結果的には、操作後の仮想物体の位置姿勢を求めるためのΔMを求めることが、何れの操作部を用いてもその目的となる。
以下で詳しく説明する、直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050の4つの操作部は夫々異なる操作則でもって仮想物体を操作するものであり、事前に記憶部1090に設定される設定データにより、このうちの1つの操作部の使用が許可される。なお、どの操作部を用いても当然、その目的は選択中の仮想物体の位置や姿勢を変化させる、換言すればこれらを示す行列Wt、Wrを変更することであるから、結果的には、操作後の仮想物体の位置姿勢を求めるためのΔMを求めることが、何れの操作部を用いてもその目的となる。
以下では、この4つの夫々の操作部を用いた場合に、ΔMを求める方法について説明する。
<直接操作部>
直接操作部3020は、図4に示すように、操作部1100の移動と回転をそのまま、仮想物体2010の移動回転操作に反映させる為のものである。従って、上記4つの操作部のうち直接操作部3020を選択した場合、直接操作部3020は、現在のフレームにおいて操作部位置姿勢計測部1070が計測した仮想物体の位置姿勢の位置変化成分を示す行列Wt、姿勢変化成分を示す行列Wr、そして1つ前のフレームにおいて操作部位置姿勢計測部1070が計測した仮想物体の位置姿勢の位置変化成分を示す行列Wt−1、姿勢変化成分を示す行列Wr−1、を用いて、以下の式に従って行列ΔMを求める。
直接操作部3020は、図4に示すように、操作部1100の移動と回転をそのまま、仮想物体2010の移動回転操作に反映させる為のものである。従って、上記4つの操作部のうち直接操作部3020を選択した場合、直接操作部3020は、現在のフレームにおいて操作部位置姿勢計測部1070が計測した仮想物体の位置姿勢の位置変化成分を示す行列Wt、姿勢変化成分を示す行列Wr、そして1つ前のフレームにおいて操作部位置姿勢計測部1070が計測した仮想物体の位置姿勢の位置変化成分を示す行列Wt−1、姿勢変化成分を示す行列Wr−1、を用いて、以下の式に従って行列ΔMを求める。
ΔWrは、行列Wr−1と行列Wrとの差分行列を示すもので、以下の式5に従って求めることができる。
また、ΔWtは、行列Wt−1と行列Wtとの差分行列を示すもので、以下の式6に従って求めることができる。
従って、直接操作部3020は、式5,6に従って先ずΔWt、ΔWrを求め、そしてこのΔWt、ΔWrを用いて、式4に従ってΔMを求める。なお直接操作部3020は、ΔWr、ΔWtには、仮想物体2010に操作を加えない間は、単位行列を設定し、操作を開始した時点から差分計算を開始する。例えば、WtとWt−1とが同じであればΔWtを単位行列とする。また、WrとWr−1とが同じであればΔWrを単位行列とする。
そしてこのようにして求めた行列ΔMのデータを記憶部1090に出力する。なお、以上の処理では、ΔWr、ΔWtは独立に計算することができるため、ユーザがイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスによって指示を与え、操作方法選択状態データを記憶部1090に格納することにより、操作部1100の回転操作のみの仮想物体への反映、操作部1100の平行移動操作のみの仮想物体への反映を操作時にユーザが選択することができる。
そしてこのようにして求めた行列ΔMのデータを記憶部1090に出力する。なお、以上の処理では、ΔWr、ΔWtは独立に計算することができるため、ユーザがイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスによって指示を与え、操作方法選択状態データを記憶部1090に格納することにより、操作部1100の回転操作のみの仮想物体への反映、操作部1100の平行移動操作のみの仮想物体への反映を操作時にユーザが選択することができる。
<平面拘束操作部>
平面拘束操作部3030は、操作部1100の移動回転操作を、予め指定した平面2050に拘束して仮想物体の移動回転操作に反映させる操作方法を提供する。例えば、平面2050上に沿って仮想物体2010を動かす場合などに有効な操作方法である。
平面拘束操作部3030は、操作部1100の移動回転操作を、予め指定した平面2050に拘束して仮想物体の移動回転操作に反映させる操作方法を提供する。例えば、平面2050上に沿って仮想物体2010を動かす場合などに有効な操作方法である。
図13は、平面拘束操作部3030を用いた仮想物体2010の操作方法を説明する図である。図13では、仮想物体2010が選択されているものとし、操作部1100を同図矢印13020、矢印13030に示す如く移動、回転させた場合に、仮想物体2010の位置姿勢の変化を示している。
平面拘束操作部3030によって仮想物体2010が操作されると、操作部1100の移動成分と回転成分は、平面拘束操作部3030によって、予め指定してある平面2050に沿った2次元平行移動成分と、平面2050の法線に平行な直線を軸とした1軸の回転成分に変換される。この2次元平行移動成分と1軸回転成分が平面拘束操作部3030によって仮想物体2010の位置姿勢に反映され、仮想物体2010の位置姿勢は平面2050に沿って操作される。ここで拘束する平面2050は以下の式7で表現されるものとする。
ここで、N:(nx、ny、nz)はこの平面S(2050)の法線ベクトルを表し、P1:(p1x、p1y、p1z)は平面S(2050)上の点を示している。この平面Sの式を示すデータは記憶部1090が保持しているものとする。
このとき、平面拘束操作部3030は、行列ΔMを以下の式8に従って算出する。
このとき、平面拘束操作部3030は、行列ΔMを以下の式8に従って算出する。
ここで、ΔWr’は平面Sの法線に平行な直線を軸とする回転に拘束された差分回転変換行列である。この行列ΔWr’は、まず前述のΔWrの行列から回転軸ベクトルAと回転角gを計算する。これらは、以下の式によって得られる。
次に、以下の式11に従った計算、即ち、ベクトルA とベクトルNとの内積値を求め、求めた内積値を回転角gと積算してg’を求める計算を行う。
その結果、この回転角g’だけ、平面2050の法線ベクトルNを軸として回転するとする。すなわちΔWr’は、以下の式で表すことができる。
一方、ΔWt’は、平面2050に拘束される2次元平行移動変換を表す。このΔWt’については、先ず図16に示す如く、前述のΔWtの平行移動成分のベクトルT(Δt1、Δt2、Δt3)の始点Ps(即ち、1つ前のフレームにおける操作部1100の位置)を(ps1、ps2、ps3)としたときに、ベクトルTの終点(ps1+Δt1、ps2+Δt2、ps3+Δt3)を平面2050に素直に投影した点Pe(pe1、pe2、pe3)を以下の式13に従って求める。
これにより、平面2050に拘束する平行移動変換行列ΔWt’は以下の式14で表すことができる。
なお、平面2050の式を示すデータ(例えば法線ベクトルNの成分データ、点P1の座標データ)は記憶部1090が記憶している。なお、この平面の式は動的に変化させてもよく、その場合は、平面の式を示すデータを動的に更新すればよい。
従って、平面拘束操作部3030は、式9〜11に従ってΔWr’を求め、式13,14に従ってΔWt’を求める。そして、このΔWt’、ΔWr’を用いて、式8に従ってΔMを求める。なお平面拘束操作部3030は、ΔWr’、ΔWt’には、仮想物体2010に操作を加えない間は、単位行列を設定し、操作を開始した時点から差分計算を開始する。例えば、式13で求めたpe1、pe2、pe3の何れも、前のフレームのそれと比べて同じであればΔWt’を単位行列とする。また、上記g’の値が、前のフレームと同じであればΔWr’を単位行列とする。
従って、平面拘束操作部3030は、式9〜11に従ってΔWr’を求め、式13,14に従ってΔWt’を求める。そして、このΔWt’、ΔWr’を用いて、式8に従ってΔMを求める。なお平面拘束操作部3030は、ΔWr’、ΔWt’には、仮想物体2010に操作を加えない間は、単位行列を設定し、操作を開始した時点から差分計算を開始する。例えば、式13で求めたpe1、pe2、pe3の何れも、前のフレームのそれと比べて同じであればΔWt’を単位行列とする。また、上記g’の値が、前のフレームと同じであればΔWr’を単位行列とする。
そしてこのようにして求めた行列ΔMのデータを記憶部1090に出力する。なお、以上の処理では、ΔWr’、ΔWt’は独立に計算することができるため、ユーザがイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスによって指示を与え、操作方法選択状態データを記憶部1090に格納することにより、操作部1100の回転操作のみの仮想物体への反映、操作部1100の平行移動操作のみの仮想物体への反映を操作時にユーザが選択することができる。
<光線平面拘束操作部>
光線平面拘束操作部3040は、操作部1100における所定の位置(例えば操作部位置姿勢計測部1070が計測する操作部1100の位置)を始点とし、操作部位置姿勢計測部1070が計測する操作部1100の姿勢方向に延長する直線(光線)(図12における光線12010)を想定し、その光線12010と平面2050との交点の位置に仮想物体を移動させる操作方法を提供する。
光線平面拘束操作部3040は、操作部1100における所定の位置(例えば操作部位置姿勢計測部1070が計測する操作部1100の位置)を始点とし、操作部位置姿勢計測部1070が計測する操作部1100の姿勢方向に延長する直線(光線)(図12における光線12010)を想定し、その光線12010と平面2050との交点の位置に仮想物体を移動させる操作方法を提供する。
例えば、仮想物体2010が遠くに配置されている場合、この仮想物体2010を平面2050に沿って操作部1100(または操作者)に近づけるなど、遠くに配置されている仮想物体を平面に沿って大きく移動させる場合に有効な操作方法である。
図14は、光線平面拘束操作部3040を用いた仮想物体2010の操作方法を説明する図である。図14では、仮想物体2010が選択されているものとし、操作部1100を同図矢印13020に示す如く移動、回転させた場合の、仮想物体2010の位置姿勢の変化を示している。
光線平面拘束操作部3040によって仮想物体2010を操作する場合、操作部1100の移動成分と回転成分は、光線平面拘束操作部3040によって、光線14010と予め指定してある平面2050との交点に拘束されるような2次元平行移動成分と、平面2050の法線に平行な直線を軸とした1軸の回転成分に変換される。この2次元平行移動成分と1軸回転成分が光線平面拘束操作部3040によって仮想物体2010の位置姿勢に反映され、仮想物体2010の位置姿勢はこの2次元平行移動成分と1軸回転成分に拘束されて操作される。
なお、この光線14010は、必ずしも操作部1100の指す方向に固定されるものではなく、操作部1100を中心とした操作部座標系(操作部1100における所定の位置(例えば操作部位置姿勢計測部1070が計測する操作部1100の位置)を原点とし、この原点の位置から互いに直交する3つの軸により形成される座標系)における方向ベクトルとして入力することで、自由に方向を変更することができるようにしてもよい。
ここで、この操作部座標系は上述の通り、原点位置、3つの軸方向を予め設定することで形成されるものであるが、例えば操作部位置姿勢計測部1070が計測する操作部1100の位置をこの座標系の原点とする場合、この原点の世界座標系における位置姿勢(換言すれば、上記3つの軸の姿勢)は操作部位置姿勢計測部1070が計測する姿勢成分として計測されるので、結果として原点の世界座標系における位置、上記3つの軸の世界座標系における姿勢を得ることができる。
従って、現在操作部位置姿勢計測部1070により計測した原点位置、3軸の姿勢を用いれば、周知の技術により、世界座標系における位置姿勢を操作部座標系における位置姿勢に変換する為の行列Mcsを求めることができる。
よって本実施形態では、操作部座標系における位置姿勢を得るためには、世界座標系における位置姿勢を得、この位置姿勢を行列Mcsにより変換して操作部座標系における位置姿勢に変換して得るものとするが、操作部位置姿勢計測部1070が計測する操作部1100の位置姿勢がどの座標系によるものであるかなどに応じて、この操作部座標系における位置姿勢を得る方法は異なる。しかし、この操作部座標系における位置姿勢を求める方法については本処理の本質ではないし、周知の技術であることから、ここでの詳細な説明は省略する。
このとき、光線平面拘束操作部3040は、行列ΔMを以下の式15に従って算出する。
ここで、ΔWr’については、平面拘束操作部3030による求め方と同様の方法で光線平面拘束操作部3040が求めるものとする。一方、Wt’については光線平面拘束操作部3040は以下説明する手順に従って求めるものとする。
まず、光線14010の上記操作部座標系における方向ベクトルをL(l1,l2,l3)とし、このベクトルLをWr・Wtによって世界座標系に座標変換したベクトルをL’(l’1,l’2,l’3)とする。なお、方向ベクトルLが操作部1100の指す方向に向いているとした場合、例えば、操作部1100の世界座標系における位置姿勢は操作部位置姿勢計測部1070により計測されるので、この位置姿勢を上記行列Mcsにより変換して得る。
まず、光線14010の上記操作部座標系における方向ベクトルをL(l1,l2,l3)とし、このベクトルLをWr・Wtによって世界座標系に座標変換したベクトルをL’(l’1,l’2,l’3)とする。なお、方向ベクトルLが操作部1100の指す方向に向いているとした場合、例えば、操作部1100の世界座標系における位置姿勢は操作部位置姿勢計測部1070により計測されるので、この位置姿勢を上記行列Mcsにより変換して得る。
また、このベクトルL’は以下の式16に従って求められる。
このベクトルL’の直線は以下の式17に表される。
ここで、(x1、y1、z1)は、操作部座標系における原点を(0,0,0)とし、この原点の座標値をWr・Wtによって変換した座標値、即ち、操作部座標系における原点の世界座標系における座標値を示す。なお、以下では操作部座標系における原点を「計測点」と呼称する場合がある。
また、式17で表される直線上の任意の点の座標(x、y、z)は以下の式18でもって表される。
また、式17で表される直線上の任意の点の座標(x、y、z)は以下の式18でもって表される。
ここでmは媒介変数である。ここで、式18と式7から、平面Sと式17で表される直線との交点を求める為の媒介変数mの値を求め、求めた媒介変数mの値を式18に代入することで、交点の座標I(i1、i2、i3)を求めることができる。
そして、求めた交点の座標を用いて、平面2050と光線14010との交点に拘束される平行移動変換行列Wt’は以下の式19でもって表すことができる。
そして、求めた交点の座標を用いて、平面2050と光線14010との交点に拘束される平行移動変換行列Wt’は以下の式19でもって表すことができる。
なお、平面2050の式を示すデータ(例えば法線ベクトルNの成分データ、点P1の座標データ)は記憶部1090が記憶している。なお、この平面の式は動的に変化させてもよく、その場合は、平面の式を示すデータを動的に更新すればよい。
この平面2050を操作時に変更する場合の仮想物体2010の状態を図17に示す。図17に示す例では、(1)、(2)、(3)の順番で操作部1100の位置姿勢を変化させている。仮想物体17050のモデル座標系17020の原点は、図17で示すように、仮想物体17050の一角に原点を設け、互いに直交する3つの軸を仮想物体の各辺に合わせるようにするものとする。操作部1100が(2)の状態であるとき、光線平面拘束操作部3040は、仮想物体17050が現実空間の壁17040に埋もれないようにするため、仮想物体2010の形状とあらかじめ記憶部1090に設定されている現実空間の情報に基づいて、現在の操作に利用している拘束平面17030を新たな拘束平面17060に更新する。ここで、平面170030,170040のデータは平面2050と同様に記憶部1090に記憶されているものとする。
この平面2050を操作時に変更する場合の仮想物体2010の状態を図17に示す。図17に示す例では、(1)、(2)、(3)の順番で操作部1100の位置姿勢を変化させている。仮想物体17050のモデル座標系17020の原点は、図17で示すように、仮想物体17050の一角に原点を設け、互いに直交する3つの軸を仮想物体の各辺に合わせるようにするものとする。操作部1100が(2)の状態であるとき、光線平面拘束操作部3040は、仮想物体17050が現実空間の壁17040に埋もれないようにするため、仮想物体2010の形状とあらかじめ記憶部1090に設定されている現実空間の情報に基づいて、現在の操作に利用している拘束平面17030を新たな拘束平面17060に更新する。ここで、平面170030,170040のデータは平面2050と同様に記憶部1090に記憶されているものとする。
この場合の新たな拘束平面17060は、壁17040に平行で、モデル座標17020の原点を通る平面となる。拘束平面17060に更新することにより、操作部1100を(3)の位置に動かすと、仮想物体17050は壁17040に沿って(5)の位置から(6)の位置に移動する。
従って、光線平面拘束操作部3040は、式9〜11に従ってΔWr’を求め、式16〜19に従ってWt’を求める。そして、このWt’、ΔWr’を用いて、式15に従ってΔMを求める。なお光線平面拘束操作部3040は、ΔWr’、Wt’には、仮想物体2010に操作を加えない間は、単位行列を設定し、操作を開始した時点から差分計算を開始する。例えば、求めた媒介変数mの値が前のフレームのそれと比べて同じであればWt’を単位行列とする。また、上記g’の値が、前のフレームと同じであればΔWr’を単位行列とする。
そしてこのようにして求めた行列ΔMのデータを記憶部1090に出力する。なお、以上の処理では、ΔWr’、Wt’は独立に計算することができるため、ユーザがイベント入力部1060、もしくはワークステーション2040の不図示のキーボードやマウスによって指示を与え、操作方法選択状態データを記憶部1090に格納することにより、操作部1100の回転操作のみの仮想物体への反映、操作部1100の平行移動操作のみの仮想物体への反映を操作時にユーザが選択することができる。
<固定操作部>
固定操作部3050は、操作部1100との相対位置姿勢が固定されるような移動回転を仮想物体に反映させる操作方法を提供する。例えば、仮想物体2010を操作部1100で掴んで観察するなど、直感的な操作が必要な場合に有効な操作方法である。
固定操作部3050は、操作部1100との相対位置姿勢が固定されるような移動回転を仮想物体に反映させる操作方法を提供する。例えば、仮想物体2010を操作部1100で掴んで観察するなど、直感的な操作が必要な場合に有効な操作方法である。
図15は、固定操作部3050を用いた仮想物体2010の操作方法を説明する図である。同図において15010は上記操作部座標系を示す。同図では、操作部座標系の原点位置を操作部1100の先端の位置としている。
図15では、仮想物体2010が選択されているものとし、操作部1100を同図矢印15030に示す如く移動、回転させた場合に、仮想物体2010の位置姿勢の変化(同図矢印15020で示す如く変化)を示している。より具体的には、操作部1100を操作部座標系15010のx軸周りに回転させると、仮想物体2010は、操作部座標系15010のx軸を中心として同図矢印15020で示す如く、操作部1100が回転した角度だけ回転変換を受ける。
平行移動に関しても同様に、操作部1100との相対位置を保つような平行移動変換を受ける。操作部1100の世界座標系における移動成分と回転成分は、4x4の座標変換行列に変換され、仮想物体2010の世界座標系上での位置姿勢を表す4x4の行列に積算することにより操作部1100と仮想物体2010の相対位置が固定されるような操作となる。
このとき、固定操作部3050は、行列ΔMを以下の式20に従って算出する。
また、遠くの仮想物体2010をこの固定操作部3050で操作する場合に、平行移動変換量が大きすぎて扱いが難しい状況があるため、操作部1100と仮想物体2010との両者の位置間の距離を拡大または縮小させる平行移動変換をΔMに加えてもよい。
以上の4つの操作部により、様々な種類の操作方法を操作者に提供することができる。
以上の4つの操作部により、様々な種類の操作方法を操作者に提供することができる。
図1に戻って、記憶部1090は、仮想物体の形状や色などの仮想物体を描画するためのデータ、配置データ、モデル選択状態データ、選択方法選択状態データ、操作方法選択状態データ、拘束平面データ、現実空間における平面(図2の机2050、図17の床17030、壁17040等)を描画するためのデータ、本実施形態の装置の実行に必要なデータ等を記憶する。仮想物体の配置情報などは、操作部1100の位置姿勢の変化や、イベント入力部1060により変更が加えられる。
モデル選択状態データとは、どのモデル(仮想物体)が選択状態/非選択状態にあるのかを示すデータであって、例えば各仮想物体に対して1ビットのデータを割り当て、このデータの値が1であれば選択されている、0であれば選択されていない、というように、各仮想物体に対する選択状態/非選択状態を判断する為に用いる。
選択方法選択状態データとは、直接選択方法、光線選択方法の何れが現在選択されているのかを示すデータで、例えばMR画像を観察者に提示する処理の前段でこのデータには、ワークステーション2040を用いて直接選択方法、光線選択方法の何れかが設定されている。
操作方法選択状態データとは、上記4つの操作部のうち、現在どの選択部が選択されているのかを示すデータで、例えばMR画像を観察者に提示する処理の前段でこのデータには、ワークステーション2040を用いて上記4つの操作部のうち用いる操作部の何れかが設定されている。
また、直接操作、平面拘束操作、光線平面拘束操作の3つの操作選択部に関しては、加えて「平行移動操作のみの反映」、「回転操作のみの反映」の選択が可能になる。つまり、以下の10通りの操作方法が設定可能である。
・ 直接操作
・ 直接操作+平行移動操作のみの反映
・ 直接操作+回転操作のみの反映
・ 平面拘束操作
・ 平面拘束操作+平行移動操作のみの反映
・ 平面拘束操作+回転操作のみの反映
・ 光線平面拘束操作
・ 光線平面拘束操作+平行移動操作のみの反映
・ 光線平面拘束操作+回転操作のみの反映
・ 固定操作
仮想画像生成部1110は、撮像部位置姿勢推定部1050が出力する撮像部1010の世界座標系における位置姿勢を、仮想空間と現実空間とで共有される視点の位置姿勢と見なした場合に、この視点の位置姿勢から見える仮想物体の画像を、記憶部1090が記憶する、この仮想物体を描画するためのデータを用いて生成(描画)する。
・ 直接操作+平行移動操作のみの反映
・ 直接操作+回転操作のみの反映
・ 平面拘束操作
・ 平面拘束操作+平行移動操作のみの反映
・ 平面拘束操作+回転操作のみの反映
・ 光線平面拘束操作
・ 光線平面拘束操作+平行移動操作のみの反映
・ 光線平面拘束操作+回転操作のみの反映
・ 固定操作
仮想画像生成部1110は、撮像部位置姿勢推定部1050が出力する撮像部1010の世界座標系における位置姿勢を、仮想空間と現実空間とで共有される視点の位置姿勢と見なした場合に、この視点の位置姿勢から見える仮想物体の画像を、記憶部1090が記憶する、この仮想物体を描画するためのデータを用いて生成(描画)する。
画像合成部1120は、撮像画像の取得部1040から得られる現実空間の撮像画像と、仮想画像生成部1110から得られる仮想物体の画像(仮想空間の画像)とを合成した画像を生成し、出力する。この合成については、撮像画像の取得部1040で取得した画像の上に仮想画像生成部1110からの仮想画像を重畳することにより行われる。
MR画像出力部1130は、画像合成部1120から出力された合成画像、即ちMR画像をHMD1000の表示部1030に出力する。これにより、表示部1030には、HMD1000の位置姿勢に応じた現実空間の画像、及び仮想空間の画像とが重畳された画像が表示され、このHMD1000を頭部に装着したユーザに、このMR画像を提示することができる。
なお、図1において、撮像画像の取得部1040、撮像部位置姿勢推定部1050、仮想物体操作部1080、記憶部1090、仮想画像生成部1110、画像合成部1120、MR画像出力部1130はワークステーション2040の機能構成に含まれるものとする。
<ワークステーション2040の構成>
図23は、このワークステーション2040の基本構成を示す図である。同図において2301はCPUで、RAM2302やROM2303に格納されているプログラムやデータを用いて、ワークステーション2040全体の制御を行うと共に、上記MR画像を生成し、HMD1000の表示部1030に出力するまでの一連の処理を実行する。
図23は、このワークステーション2040の基本構成を示す図である。同図において2301はCPUで、RAM2302やROM2303に格納されているプログラムやデータを用いて、ワークステーション2040全体の制御を行うと共に、上記MR画像を生成し、HMD1000の表示部1030に出力するまでの一連の処理を実行する。
2302はRAMで、外部記憶装置2307や記憶媒体ドライブ装置2308からロードされたプログラムやデータを一時的に記憶するためのエリアを備えると共に、CPU2301が各種の処理を実行するために用いるワークエリアも備える。
2303はROMで、ブートプログラムなど、本装置全体の制御を行うためのプログラムやデータ等を格納する。
2304、2305は夫々キーボード、マウスで、各種の指示をCPU2301に入力することができる。
2306は表示部で、CRTや液晶画面などにより構成されており、ワークステーション2040の状態情報や上記処理により生成したMR画像等を表示することができる。
2307はハードディスクドライブ装置等に代表される大容量情報記憶装置で、ここにOS(オペレーティングシステム)や、CPU2301が上記MR画像を生成して表示部1030に出力するまでの一連の処理を実行する為に必要なプログラムやデータを格納する。格納する格納するプログラムやデータはRAM2302に読み出され、CPU2301の実行対象となる。
尚、図1に示した撮像部位置姿勢推定部1050、仮想物体操作部1080、仮想画像生成部1110、画像合成部1120、MR画像出力部1130はプログラムにより実装しても良く、その場合、このプログラムを外部記憶装置2307に保存しておき、必要に応じてRAM2302に読み出し、CPU2301がこれを実行することにより、ワークステーション2040は、以上説明したMR画像を生成して表示部1030に出力するまでの一連の処理を実行することができる。
また、外部記憶装置2307に保存するデータには、上記記憶部1090が記憶しているデータ群を含むものとする。即ち、上記外部記憶装置2307は記憶部1090としての機能をも有する。
2308は記憶媒体ドライブ装置で、CD−ROMやDVD−ROMなどの記憶媒体に記録されているプログラムやデータを読み出し、RAM2302や外部記憶装置2307に出力する。なお、上記外部記憶装置2307に保存されているプログラムやデータをこの記憶媒体に記録しておき、記憶媒体ドライブ装置2308がこの記憶媒体からこのプログラムやデータをRAM2302に読み出し、CPU2301がこれを実行するようにしても良い。
2309はI/F(インターフェース)で、HMD1000やセンサコントローラ2030をワークステーション2040に接続するためのもので、I/F2309を介してワークステーション2040からHMD1000の表示部1030にMR画像を送信したり、HMD1000の撮像部1010から現実空間の撮像画像を受信したり、センサコントローラ2030から位置姿勢データを受信したりすることができる。
尚、以上の構成はワークステーション以外にも、例えばPC(パーソナルコンピュータ)であっても良いので、ワークステーション2040の代わりにPCを用いても良いし、ワークステーション2040を用いることに限定するものではない。
<処理の手順>
以下では、1フレーム分のMR画像を生成して表示部1030に出力するまでに、ワークステーション2040が行う処理について、同処理のフローチャートである図5を参照して、説明する。従って、図5に示すフローチャートに従った処理を繰り返し行うことで、複数のフレームのMR画像を生成し、HMD1000の表示部1030に出力することができる。なお、、図5に示したフローチャートに従ったプログラムはRAM2302にロードされ、CPU2301がこれを実行することで、ワークステーション2040は、同図フローチャートに従った処理を実行することになる。
以下では、1フレーム分のMR画像を生成して表示部1030に出力するまでに、ワークステーション2040が行う処理について、同処理のフローチャートである図5を参照して、説明する。従って、図5に示すフローチャートに従った処理を繰り返し行うことで、複数のフレームのMR画像を生成し、HMD1000の表示部1030に出力することができる。なお、、図5に示したフローチャートに従ったプログラムはRAM2302にロードされ、CPU2301がこれを実行することで、ワークステーション2040は、同図フローチャートに従った処理を実行することになる。
先ずステップS5010においては、撮像部1010が撮像した現実空間の撮像画像を撮像画像の取得部1040に入力する。
ステップS5020においては、撮像部位置姿勢計測部1020による計測値を撮像部位置姿勢推定部1050に入力し、撮像部1010の世界座標系における位置姿勢を推定する。推定した位置姿勢情報を基に、世界座標系における撮像部1010の位置姿勢を示すための4×4のビューイング変換行列Mcを生成する。ビューイング変換行列Mc、及びその求め方については周知の技術であるので、ここでの説明は省略する。
次に、ステップS5030においては、操作部1100の位置姿勢を操作部位置姿勢計測部1070にて計測し、Wr、Wtを得る。
ステップS5040においては、記憶部1090に記憶されている選択方法選択状態データを参照し、現在設定されている選択方法が直接選択方法、もしくは光線選択方法の何れであるかを判断する。
ステップS5050においては、イベント入力部1060から仮想物体を選択する指示を示すイベントが入力されたか否かを判断する。要するに、イベント入力部1060がボタンである場合、このボタンが押下されたか否かを判断する。イベント入力部1060が指示されると、物体選択部3010はこのイベントを発行する。
イベント入力部1060が指示され、イベントが発行された場合には処理をステップS5060に進め、発行されていない場合には処理をステップS5080に進める。
ステップS5060においては、記憶部1090を参照し、現在選択されている仮想物体が存在するかを判定する。これは例えば上記モデル選択状態データを参照し、各仮想物体に対するこのデータが示すものが「選択されている」か否かをチェックする。
ここで、既に選択されている仮想物体が存在する場合には処理をステップS5070に進め、存在しない場合には処理をステップS5090に進める。
現在選択されている仮想物体が存在する場合、入力されたイベントは現在選択されている仮想物体の選択解除であると解釈され、ステップS5070で、仮想物体の選択を解除する。即ち、この仮想物体に対するモデル選択状態データを「選択されていない」旨のデータに書き換える。即ち、イベント入力部1060は、その指示毎に、「選択」、「非選択」を交互に指示するものである(選択対象の仮想物体が、選択可能な状態にある場合)。
一方、現在選択されている仮想物体が存在しない場合には、ステップS5090において、操作部1100の位置から所定サイズの領域(指定領域)内に仮想物体が存在するか否かを判断する。これは例えば、仮想物体の座標位置がRAM2302にデータとして管理されているのであるから、この位置と、操作部位置姿勢計測部1070が計測した操作部1100の位置とを参照し、操作部1100の位置から所定サイズの領域以内に仮想物体の位置が含まれるか否かを判断することにより、実現可能である。
そしてこの判断処理の結果、指定領域内に仮想物体が存在しない場合には処理をステップS5110に進める。一方、存在する場合には処理をステップS5100に進める。
ステップS5100では、操作部1100による操作により、仮想物体の位置姿勢の変更操作(仮想物体の位置、及び/又は姿勢を示すパラメータの変更処理)を行うのであるが、このステップS5100における処理の詳細については図6を用いて後述する。
ステップS5110においては、仮想画像生成部1110によって、記憶部1090に記憶されている仮想物体を描画するためのデータを用いて、3次元仮想空間における仮想物体を生成し、これをステップS5020によって得られたビューイング変換行列Mcによって変換し、さらに既知であるプロジェクション行列によってスクリーン座標系に投影する処理を行う。即ち、HMD1000の表示部1030に表示するための仮想物体の画像の生成を行う。
ステップS5120においては、画像合成部1120が、ステップS5010で得られた現実空間の撮像画像に、ステップS5110で得られた仮想物体の画像を重畳し、後段のMR画像出力部1130に出力し、MR画像出力部1130はこれをHMD1000の表示部1030に出力する処理を行う。これにより、表示部1030にはこのMR画像が表示される。
ステップS5080においては、ステップS5060と同様に、記憶部1090を参照し、現在選択されている仮想物体が存在するかを判定する。存在する場合には、処理をステップS5100に進め、存在しない場合には処理をステップS5110に進める。
図6は、ステップS5100における処理の詳細を示すフローチャートである。
ステップS6010では、記憶部1090に設定された操作方法選択状態データを参照して、用いるべき操作部として直接操作部3020が選択されているか否かを判断する。直接操作部3020が選択されている場合には処理をステップS6020に進め、直接操作部3020は、以上説明した直接操作部3020によるΔMの生成処理を行い、次のフレームにおける仮想物体の位置姿勢を示す行列M’の生成処理を行う。ステップS6020における処理の詳細については図7を用いて後述する。
一方、ステップS6010で直接操作部3020が選択されていないと判断した場合には処理をステップS6030に進め、平面拘束操作部3030が選択されているか否かを判断する。平面拘束操作部3030が選択されている場合には処理をステップS6040に進め、平面拘束操作部3030は、以上説明した平面拘束操作部3030によるΔMの生成処理を行い、次のフレームにおける仮想物体の位置姿勢を示す行列M’の生成処理を行う。ステップS6030における処理の詳細については図8を用いて後述する。
一方、ステップS6030で平面拘束操作部3030が選択されていないと判断した場合には処理をステップS6050に進め、光線平面拘束操作部3040が選択されているか否かを判断する。光線平面拘束操作部3040が選択されている場合には処理をステップS6060に進め、光線平面拘束操作部3040は、以上説明した光線平面拘束操作部3040によるΔMの生成処理を行い、次のフレームにおける仮想物体の位置姿勢を示す行列M’の生成処理を行う。ステップS6060における処理の詳細については図9を用いて後述する。
一方、ステップS6050で光線平面拘束操作部3040が選択されていないと判断した場合には処理をステップS6070に進め、固定操作部3050が選択されていると判断し、固定操作部3050は、以上説明した固定操作部3050によるΔMの生成処理を行い、次のフレームにおける仮想物体の位置姿勢を示す行列M’の生成処理を行う。ステップS6070における処理の詳細については図10を用いて後述する。
図7は、上記ステップS6020における処理の詳細を示すフローチャートである。上述の通り、ステップS6020における処理は直接操作部3020が行うものである。
ステップS7020では、ΔWrを計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「平行移動操作のみの反映」がユーザによって選択されていない場合、ΔWrを計算すると判断する。計算すると判断した場合には処理をステップS7030に進め、RAM2302に一時的に記憶させているWr−1、Wrのデータを用いて式5に従ってΔWrを求める処理を行う。
一方、ΔWrは計算しないと判断した場合には、処理をステップS7025に進め、ΔWrには単位行列を設定する。
そして次に、ステップS7040では、ΔWtを計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「回転操作のみの反映」がユーザによって選択されていない場合、ΔWtを計算すると判断する。計算すると判断した場合には処理をステップS7050に進め、RAM2302に一時的に記憶させているWt−1、Wtのデータを用いて式6に従ってΔWtを求める処理を行う。
一方、ΔWtは計算しないと判断した場合には、処理をステップS7045に進め、ΔWtには単位行列を設定する。
次にステップS7060では、以上求めたΔWr、ΔWtを用いて式4に従ってΔMを求め、更に式1に従ってM’を求める。求めたM’のデータはRAM2302に出力される。
図8は、上記ステップS6030における処理の詳細を示すフローチャートである。上述の通り、ステップS6030における処理は平面拘束操作部3030が行うものである。
ステップS8020では、ΔWr’を計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「平行移動操作のみの反映」がユーザによって選択されていない場合、ΔWr’を計算すると判断する。計算すると判断した場合には処理をステップS8030に進め、式9〜11に従ってΔWr’を求める処理を行う。
一方、ΔWr’は計算しないと判断した場合には、処理をステップS8025に進め、ΔWr’には単位行列を設定する。
そして次に、ステップS8040では、ΔWt’を計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「回転操作のみの反映」がユーザによって選択されていない場合には、ΔWt’を計算すると判断する。計算すると判断した場合には処理をステップS7050に進め、式13,14に従ってΔWt’を求める処理を行う。
一方、ΔWt’は計算しないと判断した場合には、処理をステップS8045に進め、ΔWt’には単位行列を設定する。
次にステップS8060では、以上求めたΔWr’、ΔWt’を用いて式8に従ってΔMを求め、更に式1に従ってM’を求める。求めたM’のデータはRAM2302に出力される。
図9は、上記ステップS6060における処理の詳細を示すフローチャートである。上述の通り、ステップS6060における処理は光線平面拘束操作部3040が行うものである。
ステップS9020では、ΔWr’を計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「平行移動操作のみの反映」がユーザによって選択されていない場合、ΔWr’を計算すると判断する。計算すると判断した場合には処理をステップS9030に進め、式9〜11に従ってΔWr’を求める処理を行う。
一方、ΔWr’は計算しないと判断した場合には、処理をステップS9025に進め、ΔWr’には単位行列を設定する。
そして次に、ステップS9040では、Wt’を計算するか否かを判断する。例えば、記憶部1090に格納された操作方法選択状態データを参照して「回転操作のみの反映」がユーザによって選択されていない場合には、Wt’を計算すると判断する。計算すると判断した場合には処理をステップS9050に進め、式7,17,18に従って光線と平面との交点を求める処理を行う。そしてステップS9060で、求めた交点を式19で示す行列Wt’としてRAM2302に保持する。
一方、Wt’は計算しないと判断した場合には、処理をステップS9045に進め、Wt’には単位行列を設定する。
次にステップS8070では、以上求めたΔWr’、Wt’を用いて式15に従ってΔMを求め、更に式1に従ってM’を求める。求めたM’のデータはRAM2302に出力される。
図10は、上記ステップS6070における処理の詳細を示すフローチャートである。上述の通り、ステップS6070における処理は固定操作部3050が行うものである。
ステップS10010では、式20に従ってΔMを求める。そしてステップS10020では、ステップS10010で求めたΔMを用いて、式1に従って行列M’を求める。求めたM’のデータはRAM2302に出力される。
以上の説明により、本実施形態は、操作部と仮想物体との距離などに応じて複数の操作方法の中から1つを選択し、選択した操作方法でもって仮想物体を操作できるので、高い利便性でもって、より的確に仮想物体を操作することができる。
尚、本実施形態では、HMD1000はビデオシースルー型のものをと用いているが、光学シースルー型のものを用いても良い。この場合、当然HMD1000には撮像部1010は備わっておらず、これに伴い、撮像画像の取得部1040、画像合成部1120も備わっていない。よって、仮想画像生成部1110により生成された仮想空間の画像はMR画像出力部1130により表示部1030に出力される。HMD1000が光学シースルー型であれば表示部1030を介して現実空間が見えるので、HMD1000を頭部に装着した操作者は、表示部1030に表示された向こう側の現実空間が見えると共に、この現実空間に重なって表示部1030に表示された仮想空間の画像を見ることができ、結果として、観察者の目には現実空間と仮想空間とを重畳したものを提示することができる。
又当然であるが、HMD1000の位置、及び/又は姿勢を固定するのであれば、撮像部位置姿勢計測部1020、撮像部位置姿勢計測部1050は必要なく、その場合、HMD1000の世界座標系における位置、及び/又は姿勢は予め計測し、計測した位置、及び/又は姿勢のデータを予め記憶部1090に記憶させておき、必要に応じて用いればよい。
又、本実施形態では仮想物体の操作方法として直接選択方法、光線操作方法の2つを用いたが、これ以上の数の操作方法を適用しても良いし、この2つの操作方法に限定されるものではない。
[第2の実施形態]
第1の実施形態では、選択方法選択状態データ、操作方法選択状態データはMR画像を観察者に提示する処理の前段で、ワークステーション2040により予め設定されたものであった。当然、これらのデータはワークステーション2040を操作すれば変更でき、選択方法や操作方法を変更することはできるのであるが、HMD1000を頭部に装着している観察者がリアルタイムにこれらを変更することは、操作部1100の構成上できなかった。本実施形態では、操作部1100にこれらを変更するための操作部を新たに設けることで、選択方法や操作方法を観察者がリアルタイムに変更できるシステムを示す。
第1の実施形態では、選択方法選択状態データ、操作方法選択状態データはMR画像を観察者に提示する処理の前段で、ワークステーション2040により予め設定されたものであった。当然、これらのデータはワークステーション2040を操作すれば変更でき、選択方法や操作方法を変更することはできるのであるが、HMD1000を頭部に装着している観察者がリアルタイムにこれらを変更することは、操作部1100の構成上できなかった。本実施形態では、操作部1100にこれらを変更するための操作部を新たに設けることで、選択方法や操作方法を観察者がリアルタイムに変更できるシステムを示す。
図24は、本実施形態で用いる操作部を示す図である。同図において図1と同じ部分については同じ番号を付けており、その説明を省略する。同図において2400は操作部本体である。この操作部2400は図2に示す操作部1100の代わりとして用いられるので、センサコントローラ2030に接続されている。
2401は直接選択方法、光線選択方法の何れかを選択するための操作部で、この操作部2401が例えばボタンであるとすると、押下する度に、現在使用する選択方法が直接選択方法、光線選択方法と交互に切り替わる。そしてこの切り替えた旨の信号は後段のセンサコントローラ2030を介してワークステーション2040に通知されるので、ワークステーション2040のCPU2301は、RAM2302に記憶している選択方法選択状態データを、通知された信号が示す旨に切り替える。これにより、HMD1000を頭部に装着している操作者は、手に持っている操作部2401を操作することで選択方法選択状態データを更新することができ、選択方法を直接選択方法、光線選択方法の何れかにリアルタイムに変更することができる。
2402は仮想物体を操作するために用いる上記4つの操作部(直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050)のうち何れかを選択するための操作部で、この操作部2402が例えばボタンであるとすると、押下する度に、上記4つの操作部のうち、アクティブになる1つが順番に切り替わる。そしてアクティブになる操作部が、選択された操作部となる。即ち、現在使用する操作方法が順次切り替わる。そしてこの切り替えた旨の信号は後段のセンサコントローラ2030を介してワークステーション2040に通知されるので、ワークステーション2040のCPU2301は、RAM2302に記憶している操作方法選択状態データを、通知された信号が示す旨に切り替える。これにより、HMD1000を頭部に装着している操作者は、手に持っている操作部2402を操作することで操作方法選択状態データを更新することができ、操作方法を直接操作部3020による操作、平面拘束操作部3030による操作、光線平面拘束操作部3040による操作、固定操作部3050による操作の何れかにリアルタイムに変更することができる。
2403は操作部2401,2402によって切り替わった選択方法、操作方法を表示するための表示部で、現在選択されている選択方法、操作方法を数値や文字などで表示する。
以上説明した操作部を用いることで、HMD1000を頭部に装着した操作者は手に持っている操作部2400に備わっている操作部2401、2402を操作することで、リアルタイムに選択方法、操作方法を切り替えることができるので、操作者は適宜、自分の好みに応じて切り替えることができるので、より高い利便性でもって、より的確に仮想物体を操作することができる。
[第3の実施形態]
本実施形態では、上記4つの操作部(直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050)をワークステーション2040側で判断して切り替える。その場合、第1の実施形態と異なるのは、図1における仮想物体操作部の構成である。
本実施形態では、上記4つの操作部(直接操作部3020、平面拘束操作部3030、光線平面拘束操作部3040、固定操作部3050)をワークステーション2040側で判断して切り替える。その場合、第1の実施形態と異なるのは、図1における仮想物体操作部の構成である。
図18は、本実施形態に係る仮想物体操作部の機能構成を示すブロック図である。同図において、図3と同じ部分については同じ番号を付けており、その説明は省略する。
操作方法決定部1801は、記憶部1090内の現実空間の情報、仮想物体2010の位置姿勢情報、操作部1100の位置姿勢情報から、現在の状況に最適な操作方法を選択する。
図19は、本実施形態に係る仮想物体操作部により行われる仮想物体操作処理(ステップS5100)の詳細を示すフローチャートである。図6と同じ部分については同じ番号を付けており、その説明を省略する。図19に示すフローチャートは、図6に示すフローチャートにおいて、ステップS6010の前にステップS1901を加えたものである。
ステップS1901では、操作方法決定部1801が、記憶部1090内の現実空間の情報、仮想物体2010の位置姿勢情報、操作部1100の位置姿勢情報から、現在の状況に最適な操作方法を選択する。
図20はステップS1901の処理の詳細を示すフローチャートである。
ステップS20010では、記憶部1090内の仮想物体2010と現実空間の平面(2050、17030、17040等)との距離を算出し、距離が閾値以下の値であれば、処理をステップS20030に進める。一方、この距離が閾値以上の値であれば、処理をステップS20020に進める。ここで、仮想物体と平面との距離の計算についてであるが、仮想物体の位置姿勢のデータは常に得られるものであり、平面のデータは上述の通り記憶部1090に記憶されているので、平面と仮想物体との直線距離はこれらのデータを用いれば計算することができる。
ステップS20020では、これから用いるべき操作方法を固定操作部3050を用いた操作方法に設定する。即ち、記憶部1090に記憶されている操作方法選択状態データを、固定操作部3050を用いた操作方法を表すデータに更新する。これにより、以下、固定操作部3050を用いた操作方法により、仮想物体を操作することができる。
ステップS20030では、記憶部1090に記憶されている選択方法選択状態データを参照し、このデータが直接選択方法を示すデータであるかどうかを判定し、直接選択方法を示すデータである場合には、処理をステップS20050に進め、一方、選択方法選択状態データが光線選択方法を示すデータであった場合には、処理をステップS20040に進める。
ステップS20040では、これから用いるべき操作方法を平面拘束操作部3030を用いた操作方法に設定する。即ち、記憶部1090に記憶されている操作方法選択状態データを、平面拘束操作部3030を用いた操作方法を表すデータに更新する。これにより、以下、平面拘束操作部3030を用いた操作方法により、仮想物体を操作することができる。
ステップS20050では、これから用いるべき操作方法を光線平面拘束操作部3040を用いた操作方法に設定する。即ち、記憶部1090に記憶されている操作方法選択状態データを、光線平面拘束操作部3040を用いた操作方法を表すデータに更新する。これにより、以下、光線平面拘束操作部3040を用いた操作方法により、仮想物体を操作することができる。
以上の処理により、上記4つの操作部のうち使用する操作部を状況に応じて選択することができる。なお、4つの操作部のうちいずれを用いるかの判断基準は図20に示したような、平面と仮想物体との距離が閾値以上であるか否か以外であっても良く、これに限定されるものではない。
以下では、別の判断基準について説明する。
図21は、別の判断基準を説明するための図である。同図では、現実空間の机2050の仮想物体上に、ロボットの形状を有する仮想物体21030、及びダイアルの形状を有する仮想物体21020A、21020Bが配置されている。ロボットの仮想物体21030に対しては、操作者が直接的に操作しやすいように、固定操作部3050による操作が選択されている方が好ましい。また、ダイアルの仮想物体21020A、21020Bは、その位置を移動させることなく、回転させるために用いるものであるので、机のオブジェクト2050上から浮いたり、位置が移動することは避けたい。従って、このダイアルの仮想物体21020A、21020Bに対しては、平面拘束操作部3030による操作のうち、回転操作のみを与えることが好ましい。
従って、ここでは用いるべき操作部を、操作対象として選択する仮想物体によって切り替える。
図22は、用いるべき操作部を、操作対象として選択する仮想物体によって切り替える場合における操作方法決定部1801が行う処理のフローチャートである。即ち、図22はこの場合のステップS1901の処理の詳細を示すフローチャートである。
先ず、ステップS22010では、操作部1100によって選択されている仮想物体が、ロボットの仮想物体21030であるか否かを判定する。この判定処理では、上記モデル選択状態データを参照する。
上述の通り、各仮想物体にはこのモデル選択状態データが割り当てられており、このモデル選択状態データには上記ステップS5090で、操作部1100の位置から所定サイズの領域(指定領域)内に仮想物体が存在すると判断する、即ち、この仮想物体が存在すると判断した場合には「選択されている」旨のデータがセットされる。従って、各仮想物体に対するモデル選択状態データに「選択されている」、「選択されていない」のいずれかの旨のデータがセットされた後に、ステップS22010では、このセット後のロボットの仮想物体21030のモデル選択状態データを参照する処理を行い、この参照したモデル選択状態データが「選択されている」旨を示すデータであるか否かを判断する。
そしてロボットの仮想物体21030のモデル選択状態データが「選択されている」旨を示すデータであれば処理をステップS22020に進め、ロボットの仮想物体21030のモデル選択状態データが「選択されていない」旨を示すデータであれば処理をステップS22030に進める。
ステップS22020では、これから用いるべき操作方法を固定操作部3050を用いた操作方法に設定する。即ち、記憶部1090に記憶されている操作方法選択状態データを、固定操作部3050を用いた操作方法を表すデータに更新する。これにより、ロボットの仮想物体21030を操作する場合には固定操作部3050を用いた操作方法が設定されることになる。
ステップS22030では、操作部1100によって選択されている仮想物体が、ダイアルの仮想物体21020A、又は21020Bであるか否かを判定する。この判定処理では、上記ステップS22010と同様にしてモデル選択状態データを参照する。即ち、ダイアルの仮想物体21020A、21020Bのモデル選択状態データを参照する処理を行い、この参照したモデル選択状態データが「選択されている」旨を示すデータであるか否かを判断する。
そしてダイアルの仮想物体21020A、又は21020Bが選択されていれば処理をステップS22040に進め、ダイアルの仮想物体21020A、21020Bのいずれも選択されていない場合には本処理を終了する。
ステップS22040では、これから用いるべき操作方法を平面拘束操作部3030を用いた操作方法に設定する。即ち、記憶部1090に記憶されている操作方法選択状態データを、平面拘束操作部3030を用いた操作方法を表すデータに更新する。これにより、以下、ダイアルの仮想物体21020A、又は21020Bを操作する場合には平面拘束操作部3030を用いた操作方法が設定されることになる。
なお、上述の通り、ダイアルの仮想物体に対する操作としては、位置の変更は行わずに回転のみを行うことが好ましいので、ステップS22040では更に、平面拘束操作部3030による操作のうち、回転操作のみをダイアルの仮想物体21020A、21020Bのうち選択した方に反映させるようにする。
このように、上記4つの操作部のうちいずれを用いるかの判断基準は様々なものがあり、これ以外の判断基準を考えることも可能である。
[その他の実施形態]
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
Claims (13)
- 仮想空間の画像を生成し、現実空間に重畳させて観察者に提示する複合現実空間提示方法であって、
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得工程と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作部の位置姿勢を計測する第1の計測工程と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択工程と、
前記パラメータを、前記第1の計測工程で計測された前記操作部の位置姿勢を用いて、前記選択工程で選択された操作方法で操作する操作工程と、
前記操作工程で操作された前記パラメータに従った位置姿勢の前記仮想物体の、前記取得工程で取得された前記視点の位置姿勢から見える画像を生成する生成工程と、
前記生成工程で生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示工程と
を備えることを特徴とする複合現実空間提示方法。 - 更に前記視点としての撮像装置により前記現実空間の画像を撮像する撮像工程を備え、
前記取得工程では、前記撮像装置の位置姿勢を計測することで得、
前記提示工程では、前記撮像工程で撮像された前記現実空間の画像上に前記生成工程で生成した画像を合成して前記観察者に提示することを特徴とする請求項1に記載の複合現実空間提示方法。 - 前記選択工程では、
前記操作部の位置姿勢の変化量をそのまま前記パラメータに反映させる第1の操作方法、
前記操作部の位置姿勢の変化量を所望の平面に拘束して前記パラメータに反映させる第2の操作方法、
前記操作部における所定の位置から前記操作部の姿勢に基づく方向に延長する直線と所望の平面との交点の位置に前記仮想物体が位置し、かつ平面に拘束するように、前記パラメータを操作する第3の操作方法、
前記操作部と前記仮想物体との位置姿勢関係が固定するように、前記パラメータに反映させる第4の操作方法
のうち、1つを選択することを特徴とする請求項1又は2に記載の複合現実空間提示方法。 - 前記選択工程で前記第1の操作方法が選択された場合、
前記操作工程では、前記操作部の位置の変化量、姿勢の変化量を求め、求めた当該2つの変化量を用いて、前記仮想物体の位置姿勢の変化量を求め、求めた当該変化量を用いて、前記仮想物体の次の位置姿勢を示すパラメータを求めることを特徴とする請求項3に記載の複合現実空間提示方法。 - 前記選択工程で前記第2の操作方法が選択された場合、
前記操作工程では、前記操作部の位置の変化量、姿勢の変化量を求め、当該2つの変化量と前記所望の平面を示すデータを用いて、前記所望の平面に拘束された前記仮想物体の位置姿勢の変化量を求め、求めた当該変化量を用いて、前記仮想物体の次の位置姿勢を示すパラメータを求めることを特徴とする請求項3に記載の複合現実空間提示方法。 - 前記選択工程で前記第3の操作方法が選択された場合、
前記操作工程では、前記直線と前記所望の平面との交点の位置を求め、求めた当該位置を用いて前記仮想物体の位置を示すパラメータを求め、
更に、前記操作部の姿勢の変化量を求め、当該変化量と前記所望の平面を示すデータを用いて、前記所望の平面に拘束された前記仮想物体の姿勢の変化量を求め、求めた当該変化量、及び前記位置を示すパラメータを用いて、前記仮想物体の次の位置姿勢を示すパラメータを求めることを特徴とする請求項3に記載の複合現実空間提示方法。 - 前記選択工程で前記第4の操作方法が選択された場合、
前記操作工程では、前記第1の計測工程で計測した前記仮想物体の位置姿勢を示すパラメータを用いて、前記仮想物体の位置姿勢の変化量を求め、求めた当該変化量を用いて、前記仮想物体の次の位置姿勢を示すパラメータを求めることを特徴とする請求項3に記載の複合現実空間提示方法。 - 前記選択工程では、前記操作部による前記パラメータの操作方法を、前記仮想物体と所望の平面との距離を求め、求めた当該距離と所定の閾値との大小比較の結果によって、予め設けられた2つ以上の操作方法の中から選択することを特徴とする請求項3乃至7のいずれか1項に記載の複合現実感提示方法。
- 前記選択工程では、前記操作部による前記パラメータの操作方法を、前記操作部による操作対象の仮想物体に応じて、予め設けられた2つ以上の操作方法の中から選択することを特徴とする請求項3乃至7のいずれか1項に記載の複合現実感提示方法。
- 更に、前記操作工程による処理対象の仮想物体を選択する方法を切り替える切り替え工程を更に備えることを特徴とする請求項1乃至9のいずれか1項に記載の複合現実空間提示方法。
- 仮想空間の画像を生成し、現実空間に重畳させて観察者に提示する複合現実空間提示装置であって、
前記現実空間、及び前記仮想空間で共有される視点の位置姿勢を取得する取得手段と、
前記仮想空間における仮想物体の位置姿勢を示すパラメータを操作するための操作手段と、
前記操作手段の位置姿勢を計測する第1の計測手段と、
前記操作部による前記パラメータの操作方法を、予め設けられた2つ以上の操作方法の中から選択する選択手段と、
前記パラメータを、前記第1の計測手段が計測した前記操作部の位置姿勢を用いて、前記選択手段が選択した操作方法で操作する操作手段と、
前記操作手段が操作した前記パラメータに従った位置姿勢の前記仮想物体の、前記取得手段が取得した前記視点の位置姿勢から見える画像を生成する生成手段と、
前記生成手段が生成した画像を、前記視点から見える前記現実空間に重畳させて前記観察者に提示する提示手段と
を備えることを特徴とする複合現実空間提示装置。 - コンピュータに、請求項1乃至10のいずれか1項に記載の複合現実感提示方法を実行させることを特徴とするプログラム。
- 請求項12に記載のプログラムを格納する、コンピュータ読み取り可能な記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003341631A JP2005107972A (ja) | 2003-09-30 | 2003-09-30 | 複合現実感提示方法、複合現実感提示装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003341631A JP2005107972A (ja) | 2003-09-30 | 2003-09-30 | 複合現実感提示方法、複合現実感提示装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005107972A true JP2005107972A (ja) | 2005-04-21 |
Family
ID=34536181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003341631A Withdrawn JP2005107972A (ja) | 2003-09-30 | 2003-09-30 | 複合現実感提示方法、複合現実感提示装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005107972A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007299062A (ja) * | 2006-04-27 | 2007-11-15 | Canon Inc | 情報処理方法、情報処理装置 |
JP2008040832A (ja) * | 2006-08-07 | 2008-02-21 | Canon Inc | 複合現実感提示システム及びその制御方法 |
JP2011008350A (ja) * | 2009-06-23 | 2011-01-13 | Canon Inc | 画像処理方法及び画像処理装置 |
CN102750079A (zh) * | 2011-03-31 | 2012-10-24 | 索尼公司 | 终端设备、对象控制方法以及程序 |
JP2012252650A (ja) * | 2011-06-06 | 2012-12-20 | Toshiba Corp | 3d表示処理システム |
WO2014050966A1 (ja) * | 2012-09-27 | 2014-04-03 | 京セラ株式会社 | 表示装置、制御システムおよび制御プログラム |
JP2014512607A (ja) * | 2011-04-08 | 2014-05-22 | コーニンクレッカ フィリップス エヌ ヴェ | 画像処理システム及び方法 |
JP2017084323A (ja) * | 2015-10-22 | 2017-05-18 | キヤノン株式会社 | 情報処理装置、方法及びプログラム |
JP2017134803A (ja) * | 2016-01-27 | 2017-08-03 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
JP2019207448A (ja) * | 2018-05-28 | 2019-12-05 | 大日本印刷株式会社 | 販売システム |
JP2020129167A (ja) * | 2019-02-07 | 2020-08-27 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
WO2022074791A1 (ja) * | 2020-10-08 | 2022-04-14 | マクセル株式会社 | 3次元拡張現実処理システム、3次元拡張現実処理方法、及び3次元拡張現実処理システムのユーザインターフェース装置 |
-
2003
- 2003-09-30 JP JP2003341631A patent/JP2005107972A/ja not_active Withdrawn
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007299062A (ja) * | 2006-04-27 | 2007-11-15 | Canon Inc | 情報処理方法、情報処理装置 |
JP2008040832A (ja) * | 2006-08-07 | 2008-02-21 | Canon Inc | 複合現実感提示システム及びその制御方法 |
JP2011008350A (ja) * | 2009-06-23 | 2011-01-13 | Canon Inc | 画像処理方法及び画像処理装置 |
US8994729B2 (en) | 2009-06-23 | 2015-03-31 | Canon Kabushiki Kaisha | Method for simulating operation of object and apparatus for the same |
JP2012212345A (ja) * | 2011-03-31 | 2012-11-01 | Sony Corp | 端末装置、オブジェクト制御方法及びプログラム |
CN102750079A (zh) * | 2011-03-31 | 2012-10-24 | 索尼公司 | 终端设备、对象控制方法以及程序 |
US10373375B2 (en) | 2011-04-08 | 2019-08-06 | Koninklijke Philips N.V. | Image processing system and method using device rotation |
JP2014512607A (ja) * | 2011-04-08 | 2014-05-22 | コーニンクレッカ フィリップス エヌ ヴェ | 画像処理システム及び方法 |
US10629002B2 (en) | 2011-04-08 | 2020-04-21 | Koninklijke Philips N.V. | Measurements and calibration utilizing colorimetric sensors |
JP2012252650A (ja) * | 2011-06-06 | 2012-12-20 | Toshiba Corp | 3d表示処理システム |
WO2014050966A1 (ja) * | 2012-09-27 | 2014-04-03 | 京セラ株式会社 | 表示装置、制御システムおよび制御プログラム |
JP2017084323A (ja) * | 2015-10-22 | 2017-05-18 | キヤノン株式会社 | 情報処理装置、方法及びプログラム |
JP2017134803A (ja) * | 2016-01-27 | 2017-08-03 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
JP2019207448A (ja) * | 2018-05-28 | 2019-12-05 | 大日本印刷株式会社 | 販売システム |
JP7172139B2 (ja) | 2018-05-28 | 2022-11-16 | 大日本印刷株式会社 | 販売システム |
JP2020129167A (ja) * | 2019-02-07 | 2020-08-27 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
JP7451084B2 (ja) | 2019-02-07 | 2024-03-18 | キヤノン株式会社 | 情報処理装置および情報処理方法 |
WO2022074791A1 (ja) * | 2020-10-08 | 2022-04-14 | マクセル株式会社 | 3次元拡張現実処理システム、3次元拡張現実処理方法、及び3次元拡張現実処理システムのユーザインターフェース装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3944019B2 (ja) | 情報処理装置および方法 | |
JP4533087B2 (ja) | 画像処理方法、画像処理装置 | |
JP4262011B2 (ja) | 画像提示方法及び装置 | |
JP4500632B2 (ja) | 仮想現実感提示装置および情報処理方法 | |
JP5709440B2 (ja) | 情報処理装置、情報処理方法 | |
US8994729B2 (en) | Method for simulating operation of object and apparatus for the same | |
JP6290754B2 (ja) | 仮想空間表示装置、仮想空間表示方法及びプログラム | |
US20110029903A1 (en) | Interactive virtual reality image generating system | |
US7123214B2 (en) | Information processing method and apparatus | |
JP2009123018A (ja) | 画像処理装置、画像処理方法 | |
JP4632851B2 (ja) | Ct画像表示方法及び装置 | |
JP2008040832A (ja) | 複合現実感提示システム及びその制御方法 | |
JP2005107972A (ja) | 複合現実感提示方法、複合現実感提示装置 | |
JP2020052790A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
JP2007004713A (ja) | 画像処理方法、画像処理装置 | |
JP2009087161A (ja) | 画像処理装置、画像処理方法 | |
JP2006252468A (ja) | 画像処理方法、画像処理装置 | |
JP2005339377A (ja) | 画像処理方法、画像処理装置 | |
JP2009048237A (ja) | 画像処理装置、画像処理方法 | |
JP4689344B2 (ja) | 情報処理方法、情報処理装置 | |
JP4110226B2 (ja) | 三次元画像表示装置 | |
JP2006085375A (ja) | 画像処理方法、画像処理装置 | |
JP2006215750A (ja) | 画像処理方法、画像処理装置 | |
JP2005165665A (ja) | 仮想物体の操作補助装置、方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体 | |
JP2011008351A (ja) | 画像処理方法及び画像処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20061205 |