(57)【要約】【課題】  物体間の距離を簡便に提示する為の技術を提供すること。【解決手段】  ＣＰＵ２０１は、計測点から計測方向に線分を延長した場合に、線分が配置モデルと交差したか否かをチェックする。交差したと判定した場合には、線分が配置モデルと交差した点の位置と計測点の位置とに基づく距離を求める。そして表示部２０８の表示画面上に、求めた距離の表示を行う。【選択図】    図２
2007213437.tif 000002
【特許請求の範囲】
【請求項１】
３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理方法であって、
前記基準点からの方向を設定する方向設定工程と、
前記基準点の位置を設定する位置設定工程と、
前記基準点から前記方向に線分を延長した場合に、当該線分と前記３次元物体との交点が存在するか否かをチェックするチェック工程と、
前記チェック工程で交点が存在すると判定した場合に、前記交点の位置と前記基準点の位置とに基づく距離を求める計算工程と、
前記計算工程で求めた距離の提示を行う提示工程と
を備えることを特徴とする情報処理方法。
【請求項２】
３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理方法であって、
前記基準点からの方向を設定する方向設定工程と、
前記基準点の位置を設定する位置設定工程と、
前記基準点から前記方向に存在する３次元物体までの距離を計測する距離計測工程と、
前記計測工程で計測した距離の提示を行う提示工程と
を備えることを特徴とする情報処理方法。
【請求項３】
３次元空間中の第１の３次元物体と第２の３次元物体との距離を提示する情報処理方法であって、
前記第１の３次元物体と前記第２の３次元物体との接点を検出する接点検出工程と、
前記第１の３次元物体の移動後の前記第１の３次元物体上の前記接点の位置を検出する位置検出工程と、
前記接点検出工程で検出した前記第２の３次元物体上の前記接点と、前記位置検出工程で検出した前記第１の３次元物体上の前記接点とに基づく距離を求める計算工程と、
前記計算工程で求めた距離の提示を行う提示工程と
を備えることを特徴とする情報処理方法。
【請求項４】
前記提示工程では、前記交点の位置と前記基準点の位置との間に前記距離を表示することを特徴とする請求項１に記載の情報処理方法。
【請求項５】
前記提示工程では、前記第１の３次元物体上の接点の位置と前記第２の３次元物体上の接点の位置との間に前記距離を表示することを特徴とする請求項３に記載の情報処理方法。
【請求項６】
前記基準点は複数の基準点であり、基準点毎に前記方向が設定されることを特徴とする請求項１又は２に記載の情報処理方法。
【請求項７】
前記提示工程は、前記距離に応じた色を提示することを特徴とする請求項１乃至６のいずれかに記載の情報処理方法。
【請求項８】
前記提示工程では、前記距離に応じた音の強弱又は高低により提示することを特徴とする請求項１乃至７のいずれかに記載の情報処理方法。
【請求項９】
３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理装置であって、
前記基準点からの方向を設定する方向設定手段と、
前記基準点の位置を設定する位置設定手段と、
前記基準点から前記方向に線分を延長した場合に、当該線分と前記３次元物体との交点が存在するか否かをチェックするチェック手段と、
前記チェック手段で交点が存在すると判定した場合に、前記交点の位置と前記基準点の位置とに基づく距離を求める計算手段と、
前記計算手段で求めた距離の提示を行う提示手段と
を備えることを特徴とする情報処理装置。
【請求項１０】
３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理装置であって、
前記基準点からの方向を設定する方向設定手段と、
前記基準点の位置を設定する位置設定手段と、
前記基準点から前記方向に存在する３次元物体までの距離を計測する距離計測手段と、
前記計測手段で計測した距離の提示を行う提示手段と
を備えることを特徴とする情報処理装置。
【請求項１１】
３次元空間中の第１の３次元物体と第２の３次元物体との距離を提示する情報処理装置であって、
前記第１の３次元物体と前記第２の３次元物体との接点を検出する接点検出手段と、
前記第１の３次元物体の移動後の前記第１の３次元物体上の前記接点の位置を検出する位置検出手段と、
前記接点検出手段で検出した前記第２の３次元物体上の前記接点と、前記位置検出手段で検出した前記第１の３次元物体上の前記接点とに基づく距離を求める計算手段と、
前記計算工程で求めた距離の提示を行う提示手段と
を備えることを特徴とする情報処理装置。
【請求項１２】
コンピュータに請求項１乃至８の何れか１項に記載の情報処理方法を実行させるためのプログラム。
【請求項１３】
請求項１２に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想空間の画像を取り扱う技術に関するものである。
【背景技術】
【０００２】
以前より、コンピュータの中に構築された仮想の３次元世界の中に没入するＶＲ（仮想現実感）技術があった。また、ＶＲ技術を用いて、何らかの作業を仮想的に体験し、作業が可能であるかや、作業のしやすさなどを検証することが行われている。
【０００３】
例えば、このようなシミュレーションを行う際に、作業者の手や工具は３次元形状モデルで表現し、そのモデルを作業者の手の動きなどに連動させて移動・回転させる。そして、作業を模擬するように手や工具のモデルを動かし、手や工具と周囲のオブジェクトとの距離を見ながら、オブジェクトの間に手や工具を差し込む隙間があるか否かを確認する。
【０００４】
上記のような検証作業を行う際に、コンピュータ・グラフィクスの干渉チェックの技術により、手や工具と周囲のオブジェクトの接触を検知することができた。
【０００５】
一方、CAD(Computer Aided Design)やDMR(Digital Mockup Review)で用いるツールには部品間の距離を計測する機能を持つものがある。例えば、米国UGS社のCADツール"I-deas"では、部品を２つ指定し、その部品間で一番近接した２点を探索して距離をテキスト表示する機能、および指定した２地点の距離を算出してテキスト表示する機能を備えている。
【非特許文献１】廣瀬通孝 著「バーチャル・リアリティ」（産業図書）
【非特許文献２】“TGS SERIES open inventor 5 FROM MERCURY USER’S GUIDE”
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のＶＲ技術では、オブジェクトの接触を判定することは出来たが、接触していないオブジェクト間の距離を計測・表示する技術はなかった。また、CADやDMRのツールではオブジェクト間の距離を計測・表示することは可能であるが、計測する地点を明示的に指定しなければならないという煩雑さがあった。さらに、計測部位の指定にはユーザの手動による細かい操作を必要とする点で煩雑さが増していた。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、物体間の距離を簡便に提示する為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【０００９】
即ち、３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理方法であって、
前記基準点からの方向を設定する方向設定工程と、
前記基準点の位置を設定する位置設定工程と、
前記基準点から前記方向に線分を延長した場合に、当該線分と前記３次元物体との交点が存在するか否かをチェックするチェック工程と、
前記チェック工程で交点が存在すると判定した場合に、前記交点の位置と前記基準点の位置とに基づく距離を求める計算工程と、
前記計算工程で求めた距離の提示を行う提示工程と
を備えることを特徴とする。
【００１０】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００１１】
即ち、３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理方法であって、
前記基準点からの方向を設定する方向設定工程と、
前記基準点の位置を設定する位置設定工程と、
前記基準点から前記方向に存在する３次元物体までの距離を計測する距離計測工程と、
前記計測工程で計測した距離の提示を行う提示工程と
を備えることを特徴とする。
【００１２】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００１３】
即ち、３次元空間中の第１の３次元物体と第２の３次元物体との距離を提示する情報処理方法であって、
前記第１の３次元物体と前記第２の３次元物体との接点を検出する接点検出工程と、
前記第１の３次元物体の移動後の前記第１の３次元物体上の前記接点の位置を検出する位置検出工程と、
前記接点検出工程で検出した前記第２の３次元物体上の前記接点と、前記位置検出工程で検出した前記第１の３次元物体上の前記接点とに基づく距離を求める計算工程と、
前記計算工程で求めた距離の提示を行う提示工程と
を備えることを特徴とする。
【００１４】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００１５】
即ち、３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理装置であって、
前記基準点からの方向を設定する方向設定手段と、
前記基準点の位置を設定する位置設定手段と、
前記基準点から前記方向に線分を延長した場合に、当該線分と前記３次元物体との交点が存在するか否かをチェックするチェック手段と、
前記チェック手段で交点が存在すると判定した場合に、前記交点の位置と前記基準点の位置とに基づく距離を求める計算手段と、
前記計算手段で求めた距離の提示を行う提示手段と
を備えることを特徴とする。
【００１６】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００１７】
即ち、３次元空間中の操作可能な基準点と３次元物体との距離を提示する情報処理装置であって、
前記基準点からの方向を設定する方向設定手段と、
前記基準点の位置を設定する位置設定手段と、
前記基準点から前記方向に存在する３次元物体までの距離を計測する距離計測手段と、
前記計測手段で計測した距離の提示を行う提示手段と
を備えることを特徴とする。
【００１８】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００１９】
即ち、３次元空間中の第１の３次元物体と第２の３次元物体との距離を提示する情報処理装置であって、
前記第１の３次元物体と前記第２の３次元物体との接点を検出する接点検出手段と、
前記第１の３次元物体の移動後の前記第１の３次元物体上の前記接点の位置を検出する位置検出手段と、
前記接点検出手段で検出した前記第２の３次元物体上の前記接点と、前記位置検出手段で検出した前記第１の３次元物体上の前記接点とに基づく距離を求める計算手段と、
前記計算工程で求めた距離の提示を行う提示手段と
を備えることを特徴とする。
【発明の効果】
【００２０】
本発明の構成により、物体間の距離を簡便に提示することができる。
【発明を実施するための最良の形態】
【００２１】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００２２】
［第１の実施形態］
本実施形態では、操作者がその位置や姿勢を操作可能な仮想物体（マニピュレータ）と、その他の仮想物体（配置モデル）との距離を通知するための技術について説明する。
【００２３】
図２は、本実施形態に係る情報処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【００２４】
２０１はＣＰＵで、メモリ２０２に保持されているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、本コンピュータが行う後述の各処理を実行する。
【００２５】
２０２はメモリで、外部記憶装置２０５からロードされたプログラムやデータ、位置姿勢センサ２１０から入力した位置姿勢データ等を一時的に記憶するためのエリアを有する。まら、メモリ２０２は、ＣＰＵ２０１が各種の処理を実行する際に使用するワークエリアも有する。即ち、メモリ２０２は、各種のエリアを適宜提供することができる。
【００２６】
２０３はＣＰＵ２０１、メモリ２０２、そして後述するインターフェース２０４を繋ぐバスである。
【００２７】
２０４はインターフェースで、後述する外部記憶装置２０５、キーボード２０６、マウス２０７、表示部２０８、Ｉ／Ｏ２０９、位置姿勢センサ２１０、そしてバス２０３を繋ぐものである。
【００２８】
外部記憶装置２０５は、ＯＳ（オペレーティングシステム）や、コンピュータが行う後述の各処理をＣＰＵ２０１に実行させるためのプログラムやデータを保存するためのものである。これらのプログラムやデータはＣＰＵ２０１による制御に従って適宜メモリ２０２にロードされる。そして、このロードされたプログラムやデータを用いてＣＰＵ２０１が処理を実行することで、コンピュータは以下説明する各処理を実行する。なお、外部記憶装置２０５には更に、後述の説明で既知の情報とするものについても保存されているものとする。
【００２９】
キーボード２０６、マウス２０７は、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ２０１に対して入力することができるデバイスである。
【００３０】
表示部２０８は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ２０１による処理結果を画像や文字などでもって表示することができる。
【００３１】
位置姿勢センサ２１０は、自身の位置姿勢を計測するものである。同図には位置姿勢センサ２１０は１つのみを示しているが、実際には複数の位置姿勢センサで構成されているものとする。本実施形態では、位置姿勢センサは、仮想空間を観察する観察者の手、観察者の視点（目）の位置近傍に取り付けられているものとする。従って、位置姿勢センサ２１０は、観察者の視点の位置姿勢、手の位置姿勢を計測し、その計測結果をデータとしてメモリ２０２や外部記憶装置２０５に送出するものである。
【００３２】
なお、位置姿勢センサ２１０としては、例えば、磁気センサや超音波センサなどがあり、そのどれを用いても良い。しかし、如何なる形態のものを用いるにせよ、以下説明する計測対象の位置姿勢が取得できれば、その取得形態については特に限定するものではない。
【００３３】
本実施形態では位置姿勢センサ２１０が計測する位置姿勢は、現実空間中の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系（世界座標系）における位置姿勢であるとする。しかし、位置姿勢センサ２１０が如何なる座標系における位置姿勢を計測しようとも、世界座標系との位置姿勢関係が既知の座標系であれば良い。即ち、この位置姿勢関係を用いれば、周知の技術により、位置姿勢センサ２１０が計測した位置姿勢は世界座標系における位置姿勢に変換可能である。
【００３４】
次に、マニピュレータと配置モデルとの距離計測について説明する。図１は、マニピュレータと配置モデルとの距離計測について説明する図である。また、同図に示した情報は上記表示部２０８に表示するものでもある。
【００３５】
同図において１０１，１０２は配置モデルである。同図では配置モデルはワイヤーフレームの形態でもって示しているが、平面パッチを陰影付けして表現するようにしても良い。１０３はマニピュレータである。本実施形態では、マニピュレータは観察者の手の位置姿勢、若しくは手の位置姿勢に所定のバイアスを付加した位置姿勢に配置する。即ち、マニピュレータの位置姿勢と観察者の手の位置姿勢とは固定された関係となる。これにより、観察者が自身の手を動かすことで、マニピュレータの位置姿勢を操作することが可能となる。
【００３６】
ここで、マニピュレータ１０３上には予め４点の計測時の基準点（以下、計測点）１０４〜１０７が設定され、且つ各計測点におけるマニピュレータ１０３の表面の法線方向に計測方向が定められている。本実施形態では、マニピュレータ１０３と配置モデル１０１，１０２との距離を計算する際には、各計測点について、計測方向に延長した直線が配置モデル１０１若しくは配置モデル１０２と交差した点を求め、最もマニピュレータ１０３の位置に近い交差点と計測点との間の距離を計算する。そして計算結果を表示する。
【００３７】
同図の場合、計測点１０５については、計測方向に延長した直線が配置モデル１０１若しくは配置モデル１０２と交差した点を求め、求めた交差点のうち最もマニピュレータ１０３の位置に近い交差点を求める。この点は１０８で示す点となる。従って交差点１０８と計測点１０５との間の距離を求め、１１３に示す如く、求めた距離を表示する。また、この距離がどこからどこまでのものであるのかを示すために、交差点１０８から計測点１０５までの間を示す矢印の仮想物体を配置する。
【００３８】
また、計測点１０６については、計測方向に延長した直線が配置モデル１０１若しくは配置モデル１０２と交差した点を求め、求めた交差点のうち最もマニピュレータ１０３の位置に近い交差点を求める。この点は１０９で示す点となる。従って交差点１０９と計測点１０６との間の距離を求め、１１１に示す如く、求めた距離を表示する。また、この距離がどこからどこまでのものであるのかを示すために、交差点１０９から計測点１０６までの間を示す矢印の仮想物体を配置する。
【００３９】
なお、計測点１０４，１０７については、計測方向に直線を延長した場合に、配置モデル１０１，若しくは配置モデル１０２と交差した点は存在しないので、距離、矢印を表示するための一連の処理は行わない。
【００４０】
図３は、マニピュレータと配置モデルとの距離を求め、求めた距離に基づいた表示処理を行うための処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムやデータは外部記憶装置２０５に保存されており、このプログラムやデータはＣＰＵ２０１による制御に従ってメモリ２０２にロードされる。そして、ＣＰＵ２０１がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行する。
【００４１】
なお、以下の説明では、マニピュレータ上における計測点、及び配置モデル上でこの計測点に対応する最近接点のセットを「計測点対」と呼称する。図１の場合、計測点１０５と、計測点１０５に対応する最近接点１０８のセットが１つの計測点対であり、計測点１０６と計測点１０５に対応する最近接点１０９のセットが１つの計測点対となる。
【００４２】
先ず、ステップＳ３０１では、ＣＰＵ２０１は、以下説明する各処理を実行するために必要なデータを外部記憶装置２０５からＲＡＭ２０３にロードする。このロードするデータには、マニピュレータや配置モデルといった仮想物体の画像を描画するためのデータや、それぞれの仮想物体の配置位置（初期配置位置）、マニピュレータ座標系（マニピュレータ上の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系）における計測点の位置、計測方向を示すベクトルのデータ、観察者の手に取り付けられた位置姿勢センサ２１０とマニピュレータ座標系との位置姿勢関係を示すデータ等が含まれている。
【００４３】
なお、仮想物体を描画するためのデータには、例えば、仮想物体がポリゴンでもって構成されている場合には、ポリゴンを構成している各頂点の位置データ、ポリゴンの法線ベクトルデータ、ポリゴンカラーデータが含まれている。なお、この仮想物体にテクスチャマッピングを施す場合には、仮想物体を描画する為のデータには、テクスチャ画像データが含まれている。
【００４４】
次に、ステップＳ３０２では、メモリ２０２上で管理している計測点対リストをクリアする。計測点対リストとは、計測点対、及び計測点対をなす２点間の距離を管理するために、計測点対に係る情報を登録するためのテーブルで、ステップＳ３０２では、このテーブルに登録されている情報をクリアする。
【００４５】
次にステップＳ３０３では、位置姿勢センサ２１０から、観察者の視点の位置姿勢、手の位置姿勢をデータとしてメモリ２０２、若しくは外部記憶装置２０５に取得する。上述の通り、これらの位置姿勢は世界座標系におけるものとして取得される。
【００４６】
次にステップＳ３０４では、マニピュレータ上における各計測点について、配置モデル上における対応点を求め、計測点対を決定する処理を行う。ステップＳ３０４における処理の詳細については後述する。
【００４７】
次にステップＳ３０５では先ず、配置モデルを配置すると共に、マニピュレータを、手の位置姿勢若しくは手の位置姿勢に所定のバイアスを付加した位置姿勢に配置する。そして、これら仮想物体を配置した仮想空間を、ステップＳ３０３で取得した（視点の）位置姿勢から見える視点から見た場合に見える画像（仮想空間の画像）を生成する。ステップＳ３０５における処理の詳細については後述する。
【００４８】
そしてステップＳ３０６では、生成した画像を表示部２０８に出力する。これにより、表示部２０８の表示画面上には観察者の視点から見た仮想空間の画像が表示されることになる。
【００４９】
なお、観察者が例えばＨＭＤ（ヘッドマウントディスプレイ）を頭部に装着しており、このＨＭＤが上記Ｉ／Ｏ２０９に接続されている場合には、このＨＭＤに仮想空間の画像を出力するようにしても良い。その場合、ＨＭＤが有する表示画面上には、観察者自身の視点の位置姿勢に応じて見える仮想空間の画像が表示されることになる。これは周知の仮想現実感提示技術に適用しても同様である。
【００５０】
そして、本処理を終了する条件が満たされた場合には、処理をステップＳ３０７を介して本処理を終了する。本処理を終了する条件が満たされた場合とは、例えば、本処理を終了する旨の指示がキーボード２０６やマウス２０７から入力され、ＣＰＵ２０１がこれを検知した場合や、例えば、ＣＰＵ２０１が本処理の開始時から所定時間の経過を検知した場合である。
【００５１】
一方、本処理を終了する条件が満たされていない場合には、処理をステップＳ３０７を介してステップＳ３０２に戻し、以降の処理を繰り返す。
【００５２】
次に、上記ステップＳ３０４における処理の詳細について、図４を用いて説明する。図４は、ステップＳ３０４における処理の詳細を示すフローチャートである。なお、同図のフローチャートに従った処理は、１つの計測点に対応する配置モデル上の点を検索する処理であるので、ステップＳ３０４では、図４のフローチャートに従った処理をマニピュレータ上における全ての計測点について行うことになる。
【００５３】
先ずステップＳ４０１では、マニピュレータ上における複数の計測点のうち、未だ選択されていない計測点（マニピュレータ側計測点）を選択し、マニピュレータ側計測点の世界座標系における位置姿勢を求める処理を行う。
【００５４】
この処理は、マニピュレータ座標系上におけるマニピュレータ側計測点の位置姿勢、観察者の手に取り付けられた位置姿勢センサ２１０とマニピュレータ座標系との位置姿勢関係、及び上記ステップＳ３０３で取得した観察者の手の位置姿勢とに基づいて行う。
【００５５】
より詳しく説明すると、周知の通り、観察者の手に取り付けられた位置姿勢センサ２１０とマニピュレータ座標系との位置姿勢関係を用いれば、マニピュレータ座標系における計測点の位置を、観察者の手に取り付けられた位置姿勢センサ２１０の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系（センサ座標系）における位置に変換することができる。
【００５６】
また、観察者の手に取り付けられた位置姿勢センサ２１０が計測した位置姿勢に基づいて、センサ座標系を世界座標系に変換するためのマトリクスを求めることができるので、このマトリクスを用いて、センサ座標系における計測点の位置を世界座標系における位置に変換する。
【００５７】
次にステップＳ４０２では、同様の方法を用いて、マニピュレータ側計測点からの計測方向のマニピュレータ座標系における姿勢を示すベクトルから、世界座標系における計測方向を示すベクトルを求める。
【００５８】
以上、ステップＳ４０１，Ｓ４０２における処理、即ち、マニピュレータ座標系における位置や姿勢を世界座標系における位置や姿勢に変換するための処理については周知のものであるので、これに関する詳細な説明は省略する。
【００５９】
次に、ステップＳ４０３では、マニピュレータ側計測点から計測方向に線分（半直線）を延長した場合に、この線分と配置モデルとの交点を求める処理を行う。交点の位置を求めるための処理については周知のものであるので、これに関する詳細な説明は省略する。
【００６０】
次にステップＳ４０４では、交点が存在したか否かをチェックする。存在しない、即ち、マニピュレータ側計測点から計測方向に延長した直線上に配置モデルが存在しない場合には本処理を終了する。
【００６１】
一方、交点が１以上存在した場合には、処理をステップＳ４０５に進め、求めた交差点のうち、マニピュレータの位置に最も近い交差点、即ち、マニピュレータ側計測点の位置からの距離が最も小さい交差点を選択する。そしてステップＳ４０６では、ステップＳ４０５で選択した交差点とマニピュレータ側計測点とを計測点対とし、このマニピュレータ側計測点の位置、この交差点の位置、そしてこれら２点間の距離を計測点対リストに登録する。
【００６２】
次に、上記ステップＳ３０５における処理の詳細について、図５を用いて説明する。図５は、ステップＳ３０５における処理の詳細を示すフローチャートである。
【００６３】
先ずステップＳ５０１では、観察者の手に取り付けられた位置姿勢センサ２１０から取得した観察者の手の位置姿勢、若しくは手の位置姿勢に所定のバイアスを付加した位置姿勢を、現在のマニピュレータの位置姿勢に設定（更新）する。
【００６４】
次に、ステップＳ５０２では、全ての計測点対について、計測点対をなすマニピュレータ側計測点、交差点について、マニピュレータ側計測点から交差点に向かう矢印の仮想物体（矢印モデル）を仮想空間中に配置する。次にステップＳ５０３では、観察者の視点の位置近傍に取り付けられた位置姿勢センサ２１０から取得した位置姿勢、若しくはこの位置姿勢に所定のバイアスを付加した位置姿勢を、現在の観察者の視点の位置姿勢として設定（更新）する。
【００６５】
そして、ステップＳ５０４では先ず、配置モデルを所定の位置姿勢でもって仮想空間中に配置すると共に、マニピュレータをステップＳ５０１で更新した位置姿勢でもってこの仮想空間中に配置する。そしてこのような仮想空間を、ステップＳ５０３で更新した位置姿勢を有する視点から見た場合に見える画像（仮想空間画像）をメモリ２０２上に生成（描画）する。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための処理については周知の技術であるので、これに関する説明は省略する。
【００６６】
次に、ステップＳ５０５では、上記計測点対リストを参照し、各計測点対についてステップＳ４０６で求めた距離を、各計測点対の近傍位置に表示する。本処理は例えば、先ず、計測点対をなすマニピュレータ側計測点と交差点との中点の位置を求め、更に、仮想空間画像を表示する表示画面上にこの中点位置を投影した場合の位置を求める。そして、求めた投影位置近傍にこの２点間の距離を記した２次元テキストを配置する。
【００６７】
以上の説明により、本実施形態によれば、マニピュレータを用いた通常のシミュレーション操作を行いながら、マニピュレータとその周辺仮想物体との距離を容易に確認することができる。即ち、距離を確認するために、計測する部位を指定する煩雑な操作や、シミュレーションのための操作以外の特殊な操作を必要としない。
【００６８】
なお本実施形態では配置モデルは固定された位置に配置するものとしたが、動的にその位置や姿勢を変化させても良い。また、本実施形態では、１つの計測点には１つの計測方向を設定したが、２以上の計測方向を設定しても良い。
【００６９】
更に、本実施形態では、計測点や計測方向は予め設定されているものとして説明したが、本コンピュータの操作者がキーボード２０６やマウス２０７を用いてその数や位置、姿勢を編集するようにしても良い。その場合、例えば、表示部２０８の表示画面上にこの編集のためのＧＵＩを表示し、このＧＵＩに対してキーボード２０６やマウス２０７を用いて操作を行うことで、上記編集を行うようにすればよい。また、計測点や計測方向の数については変更せずに、既に設定されているもののうち、処理で使用するものを決定するようにしても良い。即ち、それぞれの計測点、計測方向について有効／無効を設定する。この設定についても同様に、ＧＵＩを操作して行うようにすればよい。
【００７０】
また、本実施形態では、ステップＳ４０６で求めた距離は、マニピュレータ側計測点と、このマニピュレータ側計測点から計測方向に延長した線分と配置モデルとが交差した交差点のうちマニピュレータの位置に最も近い交差点と、の距離である。しかし、求める距離はこれに限定するものではない。
【００７１】
図８は、計測点対をなすマニピュレータ側計測点と交差点との間の距離の計算についての変形例を説明する図である。本実施形態では図８（ａ）に示す如く、マニピュレータ側計測点８６０と、このマニピュレータ側計測点８６０から計測方向に延長した線分と配置モデル８０１とが交差した交差点のうちマニピュレータ８０２の位置に最も近い交差点８５０と、の距離（同図では３０６ｍｍ）である。
【００７２】
しかし、図８（ｂ）に示す如く、マニピュレータ側計測点８６０から計測方向に延長した線分と配置モデル８０１とが交差した交差点のうちマニピュレータ８０２の位置に最も近い交差点８５０とマニピュレータ側計測点８６０との距離（同図では３０６ｍｍ）、交差点８５０に隣接する交差点８７０と交差点８５０との距離（同図では１００ｍｍ）を求めるようにしても良い。
【００７３】
また、図８（ｃ）に示す如く、マニピュレータ側計測点８６０と、このマニピュレータ側計測点８６０から計測方向に延長した線分と配置モデル８０１とが交差した交差点のうちマニピュレータ８０２の位置に最も近い交差点以外の交差点８８０と、の距離（同図では４０６ｍｍ）を求めるようにしても良い。
【００７４】
更には、図８（ａ）〜（ｃ）に示した何れの距離を求めるのかを、ＧＵＩなどでもって選択するようにしても良い。なお、何れの距離を求める場合においても、図８（ａ）〜（ｃ）に示す如く、マニピュレータ側計測点と交差点との間を示す矢印モデルは配置するし、距離も表示する。
【００７５】
また、本実施形態では、マニピュレータの数は１つとしたが、これに限定するものではなく、複数であっても良い。その場合、それぞれのマニピュレータについて同様の処理を行えばよい。
【００７６】
更に、マニピュレータ毎にその形状や、マニピュレータ上に設ける計測点、計測方向などを変えたものを予めデータとして用意しておき、何れかを選択して用いるようにしても良い。
【００７７】
また、本実施形態では、矢印の仮想物体と距離の２つの情報を表示したが、両方を表示することに限定するものではなく、何れか一方のみでも良いし、本コンピュータの操作者が何れを表示するのかを選択するようにしても良い。
【００７８】
また、マニピュレータ側計測点と交差点との間を示す表示は次のようにして行っても良い。即ち、マニピュレータ側計測点、交差点のそれぞれを仮想空間画像を表示する表示画面上に投影し、投影した２点間を結ぶ２次元画像としての矢印を表示する。
【００７９】
また、マニピュレータの位置姿勢に対する操作方法についても特に限定するものではない。即ち、マニピュレータの位置姿勢を規定する位置姿勢センサ２１０を観察者の体の如何なる場所に取り付けても良いし、アクチュエータに取り付けてキーボード２０６やマウス２０７を用いて操作するようにしても良い。
【００８０】
［第２の実施形態］
第１の実施形態では、計測方向がマニピュレータ座標系に対して固定されていたが、以下のような座標系に対して固定するようにしても良い。
【００８１】
・  世界座標系
・  モデルの座標系
・  観察方向
更に、計測方向を固定する対象を複数の候補の中から選択可能としてもよい。
【００８２】
［第３の実施形態］
本実施形態では、マニピュレータと配置モデルとを接触させた場合に、接触点を計測点として用いる場合について説明する。なお、本実施形態に係る情報処理装置については第１の実施形態と同じものを用いるものとする。
【００８３】
図９は、計測点の設定と、設定した計測点を用いて配置モデルとの距離表示を行うための操作手順について示した図である。先ず、図９（ａ）に示す如く、マニピュレータ９０２上に計測点を設定すると共に、配置モデル上においてこの計測点との距離を計測したい点を設定する場合には、設定したい箇所同士を接触させる。同図ではマニピュレータ９０２上における箇所９０３、配置モデル上における箇所９０３を計測点とするので、この箇所９０３同士を接触させる。これにより、箇所９０３を計測点（図９（ｂ）では計測点９０４，９０５として示している）として登録することができる。
【００８４】
計測点の登録後は第１の実施形態と同じで、図９（ｂ）に示す如く、計測点９０５と計測点９０４との間の距離（同図では３０６ｍｍ）、及びこの２点間を示す矢印を表示する。
【００８５】
図６は、マニピュレータと配置モデルとの距離を求め、求めた距離に基づいた表示処理を行うための処理のフローチャートである。なお、同図のフローチャートに従った処理をＣＰＵ２０１に実行させるためのプログラムやデータは外部記憶装置２０５に保存されており、このプログラムやデータはＣＰＵ２０１による制御に従ってメモリ２０２にロードされる。そして、ＣＰＵ２０１がこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは以下説明する各処理を実行する。
【００８６】
先ず、ステップＳ６０１では上記ステップＳ３０１と同様に、ＣＰＵ２０１は、以下説明する各処理を実行するために必要なデータを外部記憶装置２０５からＲＡＭ２０３にロードする。
【００８７】
次に、ステップＳ６０２では上記ステップＳ３０３と同様に、位置姿勢センサ２１０から、観察者の視点の位置姿勢、手の位置姿勢をデータとしてメモリ２０２、若しくは外部記憶装置２０５に取得する。上述の通り、これらの位置姿勢は世界座標系におけるものとして取得される。
【００８８】
次にステップＳ６０３では、マニピュレータと配置モデルとの接触をチェックし、接触がある場合にはマニピュレータ、配置モデルのそれぞれにおける接触点を、それぞれにおける計測点として求める。上述の通り、マニピュレータの位置姿勢は、位置姿勢センサ２１０を手に装着した観察者によって自在に操作することができる。従って、観察者はマニピュレータの位置姿勢を操作し、マニピュレータ上において計測点としたい箇所を、配置モデル上において計測点としたい箇所に接触させる。なお、接触点が複数存在する場合には最初に検知した接触点を以下の処理で用いるものとして選択する。若しくは、複数の接触点の重心を求め、求めた重心位置に最も近いマニピュレータ上の点（例えばポリゴン頂点）、配置モデル上の点をそれぞれ、マニピュレータ上における計測点、配置モデル上における計測点として求める。
【００８９】
ここで、計測点を求めるとは、その座標を求めることになる。例えば、マニピュレータ上における計測点を求めるとは、マニピュレータ上における接触点の座標を求めることになる。ここで、求めた接触点の座標は、マニピュレータ座標系におけるものとなる。これは配置モデルについても同様で、配置モデル上における計測点を求めるとは、配置モデル上における接触点の座標を求めることになる。ここで、求めた接触点の座標は、配置モデル座標系におけるものとなる。配置モデル座標系とは、配置モデル上の１点を原点とし、この原点で互いに直交する３軸をそれぞれｘ、ｙ、ｚ軸とする座標系である。
【００９０】
図６に戻って次に、接触点を求めた場合には処理をステップＳ６０４を介してステップＳ６０５に進め、接触点が存在しなかった場合には処理をステップＳ６０４を介してステップＳ６０６に進める。
【００９１】
ステップＳ６０５では、マニピュレータ上における計測点、配置モデル上における計測点を計測点対とし、それぞれの計測点の位置をメモリ２０２に登録する。ここで、配置モデル上における計測点の位置は、世界座標系におけるものに変換してから登録する。配置モデル座標系における位置を世界座標系における位置に変換するためには、配置モデル座標系と世界座標系との位置姿勢関係を予め測定し、データとして外部記憶装置２０５に登録しておく必要がある。従って、この位置姿勢関係を用いれば、配置モデル座標系における位置を世界座標系における位置に変換することができる。なお、世界座標系における位置を得るための方法についてはこれに限定するものではない。
【００９２】
次に、ステップＳ６０６では、マニピュレータ上における計測点の位置を世界座標系における位置に変換する。本ステップにおける処理は上記ステップＳ４０１における変換処理と同様にして行う。
【００９３】
次にステップＳ６０７では、ステップＳ６０６で変換した世界座標系におけるマニピュレータ上における計測点の位置と、ステップＳ６０５で登録した世界座標系における配置モデル上における計測点の位置との間の距離を求める。
【００９４】
次にステップＳ６０８では先ず、配置モデルを配置すると共に、マニピュレータを、手の位置姿勢若しくは手の位置姿勢に所定のバイアスを付加した位置姿勢に配置する。更に、それぞれの計測点間を示す矢印の仮想物体を配置する。そして、これら仮想物体を配置した仮想空間を、ステップＳ６０２で取得した（視点の）位置姿勢から見える視点から見た場合に見える画像（仮想空間の画像）を生成する。なお、この画像上には第１の実施形態と同様の処理を行うことで、計測点間の距離表示を配置する。
【００９５】
そしてステップＳ６０９では、生成した画像を表示部２０８に出力する。これにより、表示部２０８の表示画面上には観察者の視点から見た仮想空間の画像が表示されることになる。
【００９６】
そして、本処理を終了する条件が満たされた場合には、処理をステップＳ６１０を介して本処理を終了する。本処理を終了する条件が満たされた場合とは、例えば、本処理を終了する旨の指示がキーボード２０６やマウス２０７から入力され、ＣＰＵ２０１がこれを検知した場合や、例えば、ＣＰＵ２０１が本処理の開始時から所定時間の経過を検知した場合である。
【００９７】
一方、本処理を終了する条件が満たされていない場合には、処理をステップＳ６１０を介してステップＳ６０２に戻し、以降の処理を繰り返す。
【００９８】
以上の説明により、本実施形態によれば、マニピュレータ上における計測点、配置モデル上における計測点を簡単な対話的操作による設定することが出来る。
【００９９】
［第４の実施形態］
上記第１乃至３の実施形態では、距離の表示を「数値」としてテキスト表示していた。本実施形態では、距離に応じた色を表示する。この場合、矢印の仮想物体、若しくは矢印の２次元画像を表示する処理以外は上記各実施形態と同様の処理を行う。
【０１００】
図７は、矢印の仮想物体の画像を配置し、描画するための処理のフローチャートである。先ず、ステップＳ７０１では、計測点対をなす２点の位置を取得する。次にステップＳ７０２では、この２点を結ぶ矢印の仮想物体（矢印モデル）を配置する。次に、この仮想物体の色（ポリゴン色でも良いし、テクスチャ色でも良い）を、この２点間の距離に応じて決定する。
【０１０１】
色の具体的な決定方法としては、例えば距離を予め定められた５段階の範囲に分類し、距離の小さい段階から大きい段階へと順に青・緑・黄色・オレンジ・赤に設定するなどが考えられる。ただし、これに限定されるものではなく、距離の大小に応じて色が異なればよい。
【０１０２】
最後にステップＳ７０４では、ステップＳ７０３で決定した色でもって矢印モデルの画像を描画する。以上の処理は、２点間を結ぶ矢印画像として２次元画像を用いる場合であっても同様で、ようは、２点間の距離を示す画像の色を、距離に応じて異ならせればよい。
【０１０３】
以上の説明により、本実施形態によれば、距離を表すテキスト表示よりも、直感的にかつ素早く距離を把握できる。
【０１０４】
尚、距離の大小を直感的に報知するための手法については様々なものが考えられ、例えば、音の高低や強弱、あるいは振動の周波数の高低や強弱でもって距離の大小を報知するようにしても良い。
【０１０５】
更に、距離の大小の報知方法はこのような複数の中から予め決定しておいても良いし、本コンピュータの操作者が適宜選択できるようにしても良い。
【０１０６】
［第５の実施形態］
本実施形態では、計測点対をなす２点間の距離と所定の閾値との大小比較を行い、所定の閾値よりも大きい距離となる２点について距離や矢印モデル等の表示形態を異ならせるようにしても良い。
【０１０７】
例えば、計測点対をなす２点間の距離が所定の閾値以下である場合には、この２点間の距離や２点間を示す矢印の表示を強調表示するようにしても良い。強調表示の具体例としては、赤など目立つ色に設定する、点滅表示する、太く表示する、大きく表示する、といった方法が考えられる。若しくは、計測点対をなす２点間の距離が所定の閾値以上であるような２点については、距離や矢印といった表示を行わないようにしても良い。
【０１０８】
また、距離に応じて、マニピュレータや配置モデルの表示形態を異ならせるようにしても良い。例えば、計測点対をなす２点間の距離が所定の閾値以下である場合には、マニピュレータを赤色のワイヤフレームで表示するなど強調表示したり、配置モデルを赤色のワイヤフレームで表示するなど強調表示することが挙げられる。
【０１０９】
また、閾値との大小比較の結果を音声において通知するようにしても良い。例えば、すべての計測点対のうち、所定の閾値未満の距離を持つものがある場合に、何らかの警告音を発生させることが考えられる。
【０１１０】
さらに、表示属性を変化させる対象を複数組み合わせてもよい。例えば、マニピュレータと配置モデルの両方を強調表示する方法がある。
【０１１１】
なお、この閾値は予め定められたものであっても良いし、適宜変更可能なものであっても良い。
【０１１２】
［第６の実施形態］
計測点対間を結ぶ矢印モデルの両端は計測点の位置を示している。したがって、矢印モデルを視認しやすくすると、観察者にとって計測点の位置が分かりやすくなる。そこで、モデル側計測点を含む、配置モデルあるいは配置モデルを構成する部品を半透明に表示してもよい。あるいは、マニピュレータを半透明に表示してもよい。さらには、モデル側計測点を含む、配置モデルあるいは配置モデルを構成する部品、およびマニピュレータの両方を半透明に表示してもよい。上記の方法では、観察者から見て矢印が配置モデルに隠されない場合も矢印と交差する配置モデルを半透明に描画する。この方法に替えて、矢印を隠す配置モデルを探索し、半透明で描画してもよい。
【０１１３】
［第７の実施形態］
上記各実施形態では、マニピュレータと配置モデルとの距離を報知するものであるから、計測方向に延長した直線が交差しない配置モデルについてはあまり重要ではない。従ってこのような配置モデルについては半透明表示するようにしても良いし、一時的に表示を行わないようにしても良い。
【０１１４】
［第８の実施形態
上記各実施形態では、ＶＲ（バーチャル・リアリティ）への適用例を示したが、ＭＲ（Mixed Reality：複合現実感）への適用も可能である。この場合、例えば配置モデル、マニピュレータのいずれか一方、または両方が現実物体となりうる。
【０１１５】
配置モデルが現実物体の場合、マニピュレータに距離計測装置を装備し、周囲の現実物体との距離を計測して、計測結果を仮想的に表示（例えば、第１の実施形態と同様にマニピュレータと周囲の物体を結ぶ矢印と距離を表すテキストを表示）してもよい。
【０１１６】
［第９の実施形態］
上記各実施形態では、計測点の数・位置・計測方向・距離の計測結果の提示方法・形状モデルの表示属性などに選択肢があることを説明した。これらの選択肢は本コンピュータの操作者が対話的に選択してもよいし、本コンピュータがアルゴリズム的に選択してもよいし、或いは本コンピュータがアルゴリズム的にいくつかの候補を選び出し、それら候補の中から操作者が対話的に選択してもよい。
【０１１７】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【０１１８】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２０】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１２１】
【図１】マニピュレータと配置モデルとの距離計測について説明する図である。
【図２】本発明の第１の実施形態に係る情報処理装置に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図３】マニピュレータと配置モデルとの距離を求め、求めた距離に基づいた表示処理を行うための処理のフローチャートである。
【図４】ステップＳ３０４における処理の詳細を示すフローチャートである。
【図５】ステップＳ３０５における処理の詳細を示すフローチャートである。
【図６】マニピュレータと配置モデルとの距離を求め、求めた距離に基づいた表示処理を行うための処理のフローチャートである。
【図７】矢印の仮想物体の画像を配置し、描画するための処理のフローチャートである。
【図８】計測点対をなすマニピュレータ側計測点と交差点との間の距離の計算についての変形例を説明する図である。
【図９】計測点の設定と、設定した計測点を用いて配置モデルとの距離表示を行うための操作手順について示した図である。
【図１】
2007213437.tif 000003
【図２】
2007213437.tif 000004
【図３】
2007213437.tif 000005
【図４】
2007213437.tif 000006
【図５】
2007213437.tif 000007
【図６】
2007213437.tif 000008
【図７】
2007213437.tif 000009
【図８】
2007213437.tif 000010
【図９】
2007213437.tif 000011