(57)【要約】【課題】立体映像や遠近法を用いなくても、二次元表示した仮想空間内における、オブジェクトと操作者の操作位置との三次元的な位置関係を簡単かつ明確に提示する。【解決手段】受容体８の三次元位置を検出し、この検出位置の変化をもとに、ユーザが受容体８により操作する仮想空間内の指示点の位置を表し受容体の検出位置の変化に対応して表示位置が変化するカーソル画像ＶCAと、仮想空間の二次元平面方向に対する当該カーソル画像データＶCAの投影位置を表すカーソル画像データＶCBと、上記カーソル画像ＶCAと上記カーソル画像データＶCBとの仮想空間内における距離を表現するカーソル画像データＶCCを生成する。そして、この生成された各カーソル画像データを、操作ボタンを示すオブジェクト画像データＶBと合成して、プロジェクタ５から水平テーブル２に投影させる。【選択図】      図１
2009080702.tif 000002
【特許請求の範囲】
【請求項１】
各々が流体を噴出する複数の噴出口を二次元平面に配置した噴出ユニットと、
前記噴出口から噴出される流体を受ける受容面を有する受容体の、前記二次元平面に対して設定した第１の軸に対し垂直な平面の二次元座標と前記第１の軸方向の座標とにより表される三次元空間における位置を検出する受容体位置検出手段と、
コンピュータ・グラフィックにより作成された二次元または三次元の仮想空間を表す画像を、前記二次元平面上に表示する画像表示手段と、
前記噴出ユニット、受容体位置検出手段及び画像表示手段に接続される制御ユニットと
を具備し、
前記制御ユニットは、
前記受容体位置検出手段による前記受容体の検出位置に基づいて、前記画像表示手段により表示された画像により表される仮想空間における前記受容体の操作者の操作位置を表し、かつ前記受容体の検出位置の変化に応じて表示位置が変化する第１のカーソル画像を生成する手段と、
前記受容体位置検出手段による前記受容体の検出位置に基づいて、前記第１の軸に対し垂直な平面の二次元座標に対応させた前記仮想空間の二次元平面方向への前記第１のカーソル画像の投影位置を表す第２のカーソル画像と、前記第１のカーソル画像と前記第２のカーソル画像との前記仮想空間内における両者間の距離を表す第３のカーソル画像のうちの少なくとも一方を生成する手段と、
前記画像表示手段によって表示される、コンピュータ・グラフィックにより作成された二次元または三次元の仮想空間を表す画像中に表示させるべき仮想オブジェクトを表す画像を生成する手段と、
前記生成された仮想オブジェクトを表す画像と、前記第１のカーソル画像と、前記第２及び第３のカーソル画像のうちの少なくとも一方を、前記画像表示手段により前記仮想空間に表示させる手段と
を備えることを特徴とする力覚提示装置。
【請求項２】
前記制御ユニットは、
前記受容体位置検出手段により検出された、前記受容体の前記二次元平面に対して設定した第１の軸方向における位置の変化に応じて、前記第１のカーソル画像と、前記第２及び第３のカーソル画像のうちの少なくとも一方の表示パターンを変化させる手段を
さらに備えることを特徴とする請求項１記載の力覚提示装置。
【請求項３】
前記制御ユニットは、
前記受容体位置検出手段による前記受容体の検出位置の変化に基づいて、前記仮想オブジェクトに対する前記第１のカーソル画像の接触を検出する手段と、
前記仮想オブジェクトに対する前記第１のカーソル画像の接触が検出された場合に、前記第１のカーソル画像の表示パターンを、前記第１のカーソル画像が仮想オブジェクトに接触していないときの表示パターンとは異なる形態に変化させる手段と
を、さらに備えることを特徴とする請求項１又は２記載の力覚提示装置。
【請求項４】
前記制御ユニットは、
前記画像表示手段を投影方式にした場合における、前記受容体位置検出手段による前記受容体の検出位置と前記画像表示手段の設置位置との相対位置に基づいて、前記第１、第２または第３のカーソル画像の表示位置が前記受容体の影の位置と重なり合うか否かを判定する手段と、
前記第１、第２または第３のカーソル画像の表示位置が前記受容体の影の位置と重なり合うと判定された場合に、前記影の位置と重ならないように当該第１、第２または第３のカーソル画像の表示位置を変化させる処理と、前記影に対して見えやすいように表示パターンを変化させる処理のうちの少なくとも一方を行う手段と
を、さらに備えることを特徴とする請求項１、２又は３のいずれかに記載の力覚提示装置。
【請求項５】
前記制御ユニットは、
前記画像表示手段を投影方式にした場合における、前記受容体位置検出手段による前記受容体の検出位置と前記画像表示手段の設置位置との相対位置に基づいて、一つ以上の前記受容体と一つ以上の前記第１のカーソル画像に対して、前記受容体の位置の変化に応じて表示位置が変化する前記第１のカーソル画像と該当する前記受容体とが対であることを示すための画像情報を、対となる前記受容体の表面に表示させる手段
を、さらに備えることを特徴とする請求項１、２、３又は４のいずれかに記載の力覚提示装置。
【請求項６】
前記制御ユニットは、
前記受容体位置検出手段による前記受容体の検出位置の変化に基づいて、前記仮想オブジェクトに対する前記第１または第２のカーソル画像の接触を検出する手段と、
前記仮想オブジェクトに対する前記第１のカーソル画像との接触が検出された場合のその接触状態と、前記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合のその接触状態と、前記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合における前記第１のカーソル画像と前記第２のカーソル画像との間の距離とのうちの少なくとも一つに応じて、前記噴出ユニットの前記受容体に噴出空気を当てるべく設定された該当する前記噴出ユニットの噴出口からの流体の噴出を制御する手段と
を、さらに備えることを特徴とする請求項１、２、３、４又は５のいずれかに記載の力覚提示装置。
【請求項７】
各々が流体を噴出する複数の噴出口を二次元平面に配置した噴出ユニットを用い、制御ユニットの制御の下で前記複数の噴出口から選択的に流体を噴出させることにより、前記複数の噴出口から噴出した空気を受容体に当てることで受容体をもった利用者に力覚を与える力覚提示方法において、
前記二次元平面に対して設定した第１の軸に対し垂直な平面の二次元座標と前記第１の軸方向の座標とにより表される三次元空間における、前記受容体の位置を検出する過程と、
コンピュータ・グラフィックにより作成された二次元または三次元の仮想空間を表す画像を前記二次元平面上に表示する過程と、
前記検出された受容体の位置に基づいて、前記仮想空間における前記受容体の操作者の操作位置を表し、かつ前記受容体の検出位置の変化に応じて表示位置が変化する第１のカーソル画像を生成する過程と、
前記検出された受容体の位置に基づいて、前記第１の軸に対し垂直な平面の二次元座標に対応させた前記仮想空間の二次元平面方向への前記第１のカーソル画像の投影位置を表す第２のカーソル画像と、前記第１のカーソル画像と前記第２のカーソル画像との前記仮想空間内における両者間の距離を表す第３のカーソル画像のうちの少なくとも一方を生成する過程と、
前記コンピュータ・グラフィックにより作成された二次元または三次元の仮想空間を表す画像中に表示させるべき仮想オブジェクトを表す画像を生成する過程と、
前記生成された仮想オブジェクトを表す画像と、前記第１のカーソル画像と、前記第２及び第３のカーソル画像のうちの少なくとも一方を、前記仮想空間に表示する過程と
を備えることを特徴とする力覚提示方法。
【請求項８】
前記受容体の前記二次元平面に対して設定した第１の軸方向における位置の変化に応じて、前記第１のカーソル画像と、前記第２及び第３のカーソル画像のうちの少なくとも一方の表示パターンを変化させる過程を
さらに備えることを特徴とする請求項７記載の力覚提示方法。
【請求項９】
前記検出された受容体の位置の変化に基づいて、前記仮想オブジェクトに対する前記第１のカーソル画像の接触を検出する過程と、
前記仮想オブジェクトに対する前記第１のカーソル画像の接触が検出された場合に、前記第１のカーソル画像の表示パターンを、前記第１のカーソル画像が仮想オブジェクトに接触していないときの表示パターンとは異なる形態に変化させる過程と
を、さらに備えることを特徴とする請求項７又は８記載の力覚提示方法。
【請求項１０】
前記仮想空間の画像の表示を投影手段により行うようにした場合に、前記検出された受容体の位置と前記投影手段の設置位置との相対位置に基づいて、前記第１、第２または第３のカーソル画像の表示位置が前記受容体の影の位置と重なり合うか否かを判定する過程と、
前記第１、第２または第３のカーソル画像の表示位置が前記受容体の影の位置と重なり合うと判定された場合に、前記影の位置と重ならないように当該第１、第２または第３のカーソル画像の表示位置を変化させる処理と、前記影に対して見えやすいように表示パターンを変化させる処理のうちの少なくとも一方を行う過程と
を、さらに備えることを特徴とする請求項７、８又は９のいずれかに記載の力覚提示方法。
【請求項１１】
前記仮想空間の画像の表示を投影手段により行うようにした場合に、前記検出された受容体の位置と前記投影手段の設置位置との相対位置に基づいて、一つ以上の前記受容体と一つ以上の前記第１のカーソル画像に対して、前記受容体の位置の変化に応じて表示位置が変化する前記第１のカーソル画像と該当する前記受容体とが対であることを示すための画像情報を、対となる前記受容体の表面に表示する過程と
を、さらに備えることを特徴とする請求項７、８、９又は１０のいずれかに記載の力覚提示方法。
【請求項１２】
前記検出された受容体の位置の変化に基づいて、前記仮想オブジェクトに対する前記第１または第２のカーソル画像の接触を検出する過程と、
前記仮想オブジェクトに対する前記第１のカーソル画像の接触が検出された場合のその接触状態と、前記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合のその接触状態と、前記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合における前記第１のカーソル画像と前記第２のカーソル画像との間の距離とのうちの少なくとも１つに応じて、前記噴出ユニットの前記受容体に噴出空気を当てるべく設定された該当する前記噴出ユニットの噴出口からの流体の噴出を制御する過程と
を、さらに備えることを特徴とする請求項７、８、９、１０又は１１のいずれかに記載の力覚提示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ユーザに対し力覚を用いて仮想空間を提示する力覚提示装置及び力覚提示方法に関する。
【背景技術】
【０００２】
日常の生活環境にＶＲ技術（Virtual reality technologies）を適用するためには、利用者を拘束しないインタフェースの開発が必要であり、その一つとして空気等の流体の圧力を利用した力覚提示方法が提案されている。この力覚提示方法は、例えば空気を噴出する多数の噴出口（噴出ノズル）をマトリクス状に二次元平面に配列する。そして、これらの噴出ノズルから選択的に空気を噴出させ、この噴出空気をユーザが手に持った風受容体で受けることにより、ユーザが三次元オブジェクトの表面を知覚できるようにしたものである（例えば、非特許文献１を参照。）。
【０００３】
【非特許文献１】鈴木由里子ほか、「風インタフェースによる無拘束な力覚ディスプレイ」、映像情報メディア学会技術報告、情報ディスプレイ映像表現＆コンピュータグラフィックス、ｐｐ．３９−４２、２００４年１１月５日
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、このような力覚提示方法を用いてユーザが三次元オブジェクトの所望の場所に接触しようとする場合、オブジェクトと受容体との三次元的な位置関係を利用者に視覚的に提示することが必要である。例えば、噴出ノズルが配置された二次元平面上に複数のオブジェクトが提示されている場合に、これらのオブジェクトのどれを受容体が選ぼうとしているのか、或いは選んでいるのかを利用者に提示するため、二次元平面上における上記オブジェクトと受容体との位置関係を利用者に提示する必要がある。また、受容体を噴出口方向に下げたときに当該受容体に当たる噴出空気の圧力によりオブジェクトを押さえる反発力を表現することから、二次元平面に対し直交する方向における受容体とオブジェクトとの距離（高さ）を利用者に提示する必要がある。
【０００５】
そこで、オブジェクトと受容体との三次元的な位置関係を提示する方法として、従来では立体映像を利用する方法が考えられていた。しかし、立体映像を表示するためには複雑な表示装置が必要であり、またユーザの視点に合わせた空間映像を投影表示しなければならない場合は、複数のユーザが同時に利用することが難しかった。
【０００６】
また、遠いものが小さく近いものが大きく表現される遠近法を適用して三次元空間の高さ方向に垂直な方向から見た三次元の空間を二次元平面に透視投影することにより空間を表現する方法がある。しかし、例えばボタン等を押さえることでイベントが起こるオブジェクトの場合、受容体とボタンの高さ方向に対する近さはわかるが、ボタンが複数ある場合にどのボタン上に受容体があってどのボタンを選択しようとしているのかが分かりにくい。また、上方から三次元空間を見下ろす、上方向から見た三次元空間画像を投影する空間表現の場合では、受容器とオブジェクトとの高さ（地表面に垂直方向の距離）がわかりにくくなる。また、透視投影で表示した場合、見下ろした視点の軸を中心とて両側に広がるように表示されることになるので、さらにどのボタン上に受容体があってどのボタンを選択しようとしているのかが分かりにくい。さらに、表示面と噴出口配列とを一致させておかなければならないと云う制限がある。
【０００７】
この発明は上記事情に着目してなされたもので、その目的とするところは、立体映像や遠近法を用いなくても、二次元表示した仮想空間における、オブジェクトと操作者の操作位置との三次元的な位置関係を簡単かつ明確に提示することが可能な力覚提示装置及び力覚提示方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するためにこの発明の一観点は、各々が流体を噴出する複数の噴出口を二次元平面に配置した噴出ユニットと、上記噴出口から噴出される流体を受ける受容面を有する受容体の、上記二次元平面に対して設定した第１の軸に対し垂直な平面の二次元座標と前記第１の軸方向の座標とにより表される三次元空間における位置を検出する受容体位置検出手段と、コンピュータ・グラフィックにより作成された二次元または三次元の仮想空間の画像を前記二次元平面上に表示する画像表示手段と、上記噴出ユニット、受容体位置検出手段及び画像表示手段に接続される制御ユニットとを具備する力覚提示装置にあって、  
上記制御ユニットにおいて、上記受容体位置検出手段による上記受容体の検出位置に基づいて、上記画像表示手段によって表示された画像により表される仮想空間における上記受容器の操作者の操作位置を表し、上記受容体の検出位置の変化に対応して表示位置が変化する第１のカーソル画像を生成すると共に、上記第１の軸に対し垂直な平面の二次元座標に対応させた前記仮想空間の二次元平面方向への上記第１のカーソル画像の投影位置を表す第２のカーソル画像と、上記第１のカーソル画像と第２のカーソル画像との上記仮想空間内における両者距離を表す第３のカーソル画像のうちの少なくとも一方を生成する。また、上記画像表示手段によって表示される仮想空間を表す画像中に表示させるべき仮想オブジェクトを表す画像を生成する。そして、上記生成された各カーソル画像と仮想オブジェクトを表す画像を上記画像表示手段により上記仮想空間に表示させるように構成したものである。
【０００９】
したがって、画像表示手段によって表示された画像により表される仮想空間には、仮想オブジェクトと共に、上記仮想空間における操作者の操作位置を表しかつ上記受容体の検出位置の変化に対応して表示位置が変化する第１のカーソル画像が表示され、さらにこの上記二次元平面に対して設定した第１の軸に対し垂直な平面の二次元座標に対応させた上記仮想空間の二次元平面方向への上記第１のカーソル画像の投影位置を表す第２のカーソル画像と、上記第１のカーソル画像と第２のカーソル画像との上記仮想空間内における両者間の距離を表す第３のカーソル画像のうちの少なくとも一方が表示される。このため、ユーザは第１のカーソル画像と第２または第３のカーソル画像から、仮想空間における仮想オブジェクトと受容体との位置関係を三次元的に明確に認識することが可能となる。また、第１のカーソル画像と第２または第３のカーソル画像を別々に生成して表示させるようにしている。これらにより、立体映像を表示させる場合や遠近法に基づく表示手法を適用する場合に比べ、複雑な表示装置や画像表示処理を必要とせずにカーソル画像の三次元的な表示を行うことができる。また、ユーザの視点に合わせた空間映像を表示する必要がないため、複数のユーザが同時に利用することが可能となる。
【００１０】
また、この発明は次のような各種構成要素を備えることも特徴とする。  
第１の構成要素は、上記制御ユニットにおいて、上記受容体位置検出手段により検出された、上記二次元平面に対して設定した第１の軸方向における位置の変化に応じて、上記第１のカーソル画像と、上記第２及び第３のカーソル画像のうちの少なくとも一方の表示パターンを変化させるようにしたものである。
したがって、例えば二次元平面に対して設定した第１の軸方向を、複数の噴出口が配置された二次元平面と直交する方向とした場合において、ユーザが受容体を二次元平面と直交する方向に動かした場合に、その移動位置、つまり二次元平面に対する受容体の高さ方向の位置の変化を、上記カーソル画像の表示パターンの変化からより一層明確に認識することが可能となる。
【００１１】
第２の構成要素は、上記制御ユニットにおいて、上記受容体位置検出手段による上記受容体の検出位置の変化に基づいて、上記仮想オブジェクトに対する第１のカーソル画像の接触を検出する。そして、接触が検出された場合に、上記第１のカーソル画像の表示パターンを上記第１のカーソル画像が仮想オブジェクトに接触していないときの表示パターンとは異なる形態に変化させるようにしたものである。
したがって、ユーザは、第１のカーソル画像が仮想オブジェクトに接触したことをカーソル画像の表示パターンの変化からより一層明確に認識することが可能となる。
【００１２】
第３の構成要素は、上記制御ユニットにおいて、上記画像表示手段を投影方式にした場合における、上記受容体位置検出手段による上記受容体の検出位置と上記画像表示手段の設置位置との相対位置に基づいて、上記第１、第２または第３のカーソル画像の表示位置が上記受容体の影の位置と重なり合うか否かを判定する。そして、上記第１、第２または第３のカーソル画像の表示位置が上記受容体の影の位置と重なり合うと判定された場合に、前記影の位置と重ならないように当該カーソル画像の表示位置を変化させる処理と、前記影に対して見えやすいように表示パターンを変化させる処理のうちの少なくとも一方を行うようにしたものである。
したがって、カーソル画像がユーザの持つ受容体の影になって本来の位置に表示されない場合でも、表示位置をずらすかまたは表示パターンを異ならせることによりカーソル画像を表示させることが可能となる。
【００１３】
第４の構成要素は、上記制御ユニットにおいて、上記受容体位置検出手段による上記受容体の検出位置と上記画像表示手段の設置位置との相対位置に基づいて、一つ以上の上記受容体と一つ以上の上記第１のカーソル画像に対して、上記受容体の位置の変化に応じて表示位置が変化する上記第１のカーソル画像と該当する上記受容体とが対であることを示すための画像情報を、対となる前記受容体の表面に表示するようにしたものである。
したがって、複数の受容体を使用する場合でも、受容体の表面に対となるカーソル画像に対応した画像情報を投影するため、対応するカーソルが分かりやすくなる。
【００１４】
第５の構成要素は、上記制御ユニットにおいて、上記受容体位置検出手段による上記受容体の検出位置の変化に基づいて、上記仮想オブジェクトに対する第１または第２のカーソル画像の接触を検出する。そして、上記仮想オブジェクトに対する第１のカーソル画像の接触が検出された場合の接触状態と、上記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合の接触状態と、上記仮想オブジェクトに対する第２のカーソル画像の接触が検出された場合における上記第１のカーソル画像と上記第２のカーソル画像との間の距離のうちの少なくとも１つに応じて、上記噴出ユニットの上記受容体に噴出空気を当てるべく設定された該当する前記噴出ユニットの噴出口からの流体の噴出を制御するようにしたものである。
したがって、ユーザは、第１のカーソル画像が仮想オブジェクトに接触したことを、または、第２のカーソル画像が仮想オブジェクトに接触したことを、または、第２のカーソル画像が仮想オブジェクトに接触した場合で、第１のカーソル画像と第２のカーソル画像との距離の力を、カーソル画像による表示だけでなく、流体の噴出による力覚表示によりさらに明確に認識することが可能となる。
【発明の効果】
【００１５】
すなわち、この発明の一観点によれば、立体映像や遠近法を用いずに、二次元表示した仮想空間内における、オブジェクトと操作者の操作位置との三次元的な位置関係を簡単かつ明確に提示することが可能で、装置の簡略化及びコストダウンを図ることができる。また、利用者の視点に合わせた立体視用の映像を投影する必要がないことから、複数の利用者の同時利用を可能とすることができる。さらに、仮想空間へのカーソル画像の表示により間接的な指示を行えるようにし、これにより表示面と噴出口配列とを一致させておかなければならないと云う制限を無くして、噴出装置とは独立した位置或いは大きさの表示も可能とすることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照してこの発明の実施形態を説明する。
（第１の実施形態）  
図１は、この発明の第１の実施形態における力覚提示装置の概略構成図である。この装置は噴出ユニット１を備えている。噴出ユニット１は、支持台４上に水平テーブル２を載置し、この水平テーブル２に複数の噴出口（噴出ノズル）３，３，…を配設したものである。噴出口３，３，…の配置構成は、例えば隣接するもの同士の位置関係が正方形をなすようにマトリクス状に設定されている。
【００１７】
上記各噴出口３，３，…はそれぞれチューブを介して図示しないコンプレッサに接続される。コンプレッサは上記各噴出口３，３，…に対しチューブを通して圧縮空気を送る。またコンプレッサと上記各噴出口３，３，…との間には電磁弁ユニットが設けられる。この電磁弁ユニットは上記各噴出口３，３，…に対し１対１に対応して設けられた複数の電磁弁を有する。これらの電磁弁は、制御ユニット６から発生される開閉制御信号に応じて個別に開閉動作し、これにより上記コンプレッサから送り出された圧縮空気を上記各噴出口３，３，…に選択的に供給して噴出させる。
【００１８】
一方、上記噴出ユニット１の上方の空間には受容体８が配置される。受容体８はユーザが把持する取手の先端部に椀型をなす受容器を取着したもので、この受容器が上記噴出口３，３，…の一つから噴出される空気を受け止める役割を果たす。ユーザは、水平テーブル２上方の三次元空間において、受容体８を三次元方向、つまり水平方向及び垂直方向に任意に移動させながら受容体８で受け止めた空気の噴出を知覚することにより、噴出ユニット１上に想定される三次元オブジェクトを力覚により認識可能となる。なお、受容体８の受容器の外形寸法は上記各噴出口３，３，…の配列間隔と同等か又はそれより若干大きく設定されており、これにより受容器が噴出ユニット１の上方のどの位置にあっても上記噴出口３，３，…の少なくとも１つから噴出される空気を受け止めることができるようになっている。
【００１９】
なお、この実施形態では、噴出口は水平なテーブルに設置している場合を示しているが、その限りではない。例えば、実空間の壁面に噴出口が配置されているなど、垂直な面上に噴出口が配置されている場合もある。その他、実空間の地表面に対して傾けた面上に噴出口が配置されている場合もあり、またその場合、噴出口の噴出方向が、噴出口が配置された面に対して垂直である場合もあるし、噴出口が配置された面の角度に関わらず常に地表面に対して垂直な方向に噴出させる場合もある。
【００２０】
また、上記噴出ユニット１の上方位置には一対のカメラ７，７が配置されている。このカメラ７，７は上記受容体８の三次元位置を検出するためのもので、それぞれ斜め上方の異なる方向から上記受容体８を撮像してその画像信号を制御ユニット６に送る。このとき、上記受容体８の受容器の上面中央部には図１に示すようにマーカＭが取着されている。このマーカＭは、制御ユニット６が上記画像信号中から受容体８の位置を認識するために使用される。
【００２１】
この受容体８の三次元位置とは、噴出ユニットの噴出口が配置された二次元平面に対して任意に設定した第１の軸に垂直な平面の二次元座標と、噴出ユニットの噴出口が配置された二次元平面に対して任意に設定した第１の軸方向の座標、で構成された三次元座標空間である。以降この実施形態では、噴出ユニットの噴出口が配置された二次元平面に対して任意に設定した第１の軸に垂直な平面の二次元座標面を、噴出口が設定された水平テーブル２に対する水平方向とし、また噴出ユニットの噴出口が配置された二次元平面に対して任意に設定した第１の軸方向の座標を、噴出口が設定された水平テーブル２に対する垂直方向とする。
【００２２】
ただし、その限りではない。前述した例として、噴出口が垂直な面上に配置されている場合、噴出ユニットの噴出口が配置された二次元平面に対して任意に設定した第１の軸方向を、受容体の位置の基準方向としたとき、その受容体位置の基準方向を、噴出口から流体が噴出する方向とする場合もあるが、噴出方向に垂直な、例えば地表面に垂直な方向（実空間の高さ方向）とする場合もある。また、実空間の地表面に対して傾けた面上に噴出口が配置されている場合についても、その受容体位置の基準方向を、地表面に対して傾けた噴出口が配置されている方向とする場合もあるが、噴出口が配置された面の角度に関わらず常に地表面に対して垂直な方向に噴出させる場合もある。
【００２３】
ところで、制御ユニット６は例えばパーソナル・コンピュータからなり、次のように構成される。図２はその機能構成を示すブロック図である。  
すなわち、制御ユニット６は中央処理ユニット（ＣＰＵ：Central Processing Unit）１１を備えている。このＣＰＵ１１には、バス１２を介してプログラムメモリ１３とデータメモリ１４が接続され、さらにカメラインタフェース（カメラＩ／Ｆ）１５、プロジェクタインタフェース（プロジェクタＩ／Ｆ）１６と、外部インタフェース（外部Ｉ／Ｆ）１７及び入出力インタフェース（入出力Ｉ／Ｆ）１８がそれぞれ接続されている。
【００２４】
このうち先ずカメラＩ／Ｆ１５は、ＣＰＵ１１の制御の下でカメラ７、７からそれぞれ画像信号を取り込む。プロジェクタＩ／Ｆ１６は、ＣＰＵ１１の制御の下で後述する生成プログラムにより生成されたオブジェクト画像データ及びカーソル画像データをプロジェクタ５へ出力し、プロジェクタ５により当該オブジェクト画像及びカーソル画像を上記水平テーブル２に投影させる。なお、本実施形態では、特に画像及びカーソル画像を上記水平テーブル２に投影させるものとして、プロジェクタインタフェース（プロジェクタＩ／Ｆ）１６を挙げたが、一般的な液晶ディスプレイ等の画像を表示する表示デバイスでもかまわない。
【００２５】
外部Ｉ／Ｆ１７は、ＣＰＵ１１の制御の下で図示しない電磁弁ユニットに対し開閉制御信号を出力し、これにより噴出口３，３，…から選択的に空気を噴出させる。入出力Ｉ／Ｆ１８には、入力デバイス１９及び表示デバイス２０が接続される。入力デバイス１９は例えばキーボードとマウスからなる。表示デバイス２０は液晶（ＬＣＤ）表示器からなる。入出力Ｉ／Ｆ１８は、上記入力デバイス１９の操作情報を入力情報として取り込んでＣＰＵ１１に渡す。またそれと共に、ＣＰＵ１１の制御の下で表示データを表示デバイス２０に供給して表示させる。
【００２６】
データメモリ１４は記憶媒体としてハードディスク等の随時書き込み読み出しが可能なメモリを使用したもので、仮想オブジェクトの画像データ、カメラ７，７により撮像された受容体８の画像データ、これらの画像データから検出される受容体８の位置座標データ、及びカーソル画像の基本データ等を記憶するために用いられる。
【００２７】
プログラムメモリ１３には、受容体位置検出プログラム１３１と、オブジェクト生成プログラム１３２と、カーソル生成プログラム１３３と、噴出制御プログラム１３４がそれぞれ格納されている。  
受容体位置検出プログラム１３１は、カメラ７，７により撮像された各画像データをカメラＩ／Ｆ１５に一定の周期で受信させ、この受信された各画像データをデータメモリ１４内の作業領域に一時保存させる。そして、この各画像データに対し画像のパターン認識及び三角法等による距離測定演算を行い、受容体８の受容体８に取着されているマーカＭの三次元位置を検出する処理を、上記ＣＰＵ１１に実行させる。なお、三次元位置を取得する方法としては、1台のカメラで取得する方法やその他に磁気センサ等の方法を採用することもできる。
【００２８】
オブジェクト生成プログラム１３２は、コンピュータで作り出した二次元または三次元の仮想空間を表す画像中の仮想オブジェクトを表す画像データを生成し、この生成されたオブジェクトの画像データを上記プロジェクタＩ／Ｆ１６に供給して、プロジェクタ５から水平テーブル２上に対し二次元画像として投影させる処理を、上記ＣＰＵ１１に実行させる。
【００２９】
仮想オブジェクトとしては、例えば図１又は図４に示すような複数の操作ボタンを表すオブジェクトが用いられる。この操作ボタンのオブジェクトは、空間平面に対して凹凸等の仮想的な高さ情報を持っている。この仮想的な高さ情報を表現するために、二次元画像中の操作ボタンの輪郭に影を付けたり、透視投影により斜め上から見たような画像にすることが考えられる。その他、仮想オブジェクトとしては、コンピュータ・グラフィクス技術により構築された三次元情報を有する地図や構造物等のオブジェクトも含まれる。この場合、例えば図５に示すように三次元情報を持ったオブジェクトが配置された空間を上空から眺めた二次元画像が用いられる。このときの高さは、三次元空間内で定義されている高さ情報を使用する。
【００３０】
なお、仮想オブジェクトとしては、コンピュータ・グラフィックにより生成された立体のオブジェクトが配置された空間や立体地図に限らず、ウィンドウやホームページ、マウスポインタ、アイコン、ボタン等が表示されたデスクトップ空間等も含まれる。これらのオブジェクトも仮想的な高さ情報を有しており、この高さ情報を表現するために先に述べたようにオブジェクトの輪郭に影を付けたり、透視投影により斜め上から見たような画像にしたり、上空から眺めた二次元画像が用いられる。
【００３１】
カーソル生成プログラム１３３は、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標に基づいて、オブジェクト生成プログラム１３２により生成されるオブジェクトが存在する仮想空間内の、受容体８の位置が対応する仮想空間内の位置を算出し、その位置に存在するカーソル画像データＶC を生成する。この実施形態では、水平テーブル２上の三次元空間の座標を、そのまま仮想空間の座標として対応させることとし、仮想空間の地表面と水平テーブル２上面が一致している場合とする。
【００３２】
したがって、水平テーブル２上の三次元空間における受容体８の位置をそのまま仮想空間内の位置に反映したカーソル画像データＶC を生成し、この生成したカーソル画像データを上記プロジェクタＩ／Ｆ１６に供給して、プロジェクタ５から水平テーブル２上に対し二次元画像として投影させる処理を、上記ＣＰＵ１１に実行させる。この場合、現実の受容体の位置は、同一の場所として設定した仮想空間内のカーソル画像VCの位置となるので、例えば受容体真下にカーソル画像VCがプロジェクトによって表示される。
【００３３】
ただし、このような、受容体８の位置座標系が、そのままオブジェクト生成プログラム１３２により生成されるオブジェクトが存在する仮想空間の座標系と重なる場合に限らない。例えば、実空間の壁面に仮想空間を表す画像が表示される場合や、受容器を動かす空間と外れた場所を仮想空間を表す画像を表示する場所と設定する場合もある。また、単純にお互いの座標系原点がずれており、テーブル上面に対して仮想空間の地表面がずれている場合もある。また、受容器を動かす三次元空間と、オブジェクトやカーソルが存在する仮想空間の大きさが異なる場合もある。その場合、受容器の位置の変化とカーソル画像VCの位置の変化は比例関係であり、一致していない場合もありえる。これらの場合も、受容体８の位置が対応する仮想空間内の位置を算出し、その位置に存在するカーソル画像データＶC を生成することになり、画像表示手段で該当する仮想空間内の位置に表示することになる。
【００３４】
なお、このように受容体の絶対位置とカーソルの位置を対応させる必要がないので、受容体の相対位置変化とカーソルの位置変化を関連づけるインダイレクト（間接的な）な入力方法が可能となる。例えば、受容体の位置の変化に対してカーソルの位置の変化を同一にする必要がないので、受容体の移動量が多い場合には、カーソルの移動速度を速くすることや、カーソルが存在する領域に応じて、受容器の位置変化量とカーソルの位置変化量の対応を可変にさせることもできる。
【００３５】
カーソル画像データＶC は、第１のカーソル画像データＶCAと、第２のカーソル画像データＶCBと、第３のカーソル画像データＶCCとから構成される。  
第１のカーソル画像データＶCAは、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標をもとに、水平テーブル２上の三次元空間における受容体８による指示点の位置を表す画像として生成される。この指示点とは、仮想空間内における操作者の操作場所を示したものである。また前述したように、受容体の位置を仮想空間に反映した位置に存在する。この第１のカーソル画像データＶCAの表示位置は、受容体８の三次元移動に応じて水平方向及び垂直方向のいずれの座標値も変化する。
【００３６】
また第１のカーソル画像データＶCAは、噴出口が配置された二次元平面に対して任意に設定した第１の軸方向における位置の変化に応じてその表示パターンが変化する。この実施形態では、噴出口が配置された二次元平面に対して任意に設定した第１の軸方向を水平テーブル２に垂直な方向としているので、受容体８の垂直方向の移動に応じてその表示パターンが変化する。例えば、垂直方向の位置が高いほど、つまり水平テーブル２面から離間するほど表示サイズが大きくなり、反対に垂直方向の位置が低くなるほど、つまり水平テーブル２面に近づくほど表示サイズが小さくなるように制御される。  
さらに第１のカーソル画像データＶCAは、オブジェクトに対する受容体８による指示点位置の接触または押し込みが検出された場合に、表示パターンが接触前の表示パターンとは異なるパターンに、例えば異なる表示色に変化する。
【００３７】
第２のカーソル画像データＶCBは、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標をもとに、噴出口が配置された二次元平面に対して任意に設定した第１の軸に垂直な平面の二次元座標に対応させた、仮想空間の二次元平面方向への第１のカーソル画像データＶCAの投影位置を表す画像として生成される。
【００３８】
この実施形態では、噴出口が配置された二次元平面に対して任意に設定した第１の軸に垂直な平面の二次元座標とは、水平テーブル２に水平な方向であり、さらにその方向に対応させた仮想空間の二次元平面方向とは、水平テーブル２に水平な方向として重ねた仮想空間の地表面方向にあたる。結果として、第２のカーソル画像データＶCBは、水平テーブル２に対する上記第１のカーソル画像データＶCAの投影位置を表す画像として生成されることになる。
【００３９】
すなわち、ユーザが受容体８により操作する現在の指示点を水平テーブル２上に投影した位置を表す画像として生成される。また、投影される仮想空間の二次元平面は、仮想空間の地表面とする場合もあるし、オブジェクトが配置された上面になる場合もある。したがって、上記第１のカーソル画像データＶCAの直下にオブジェクト画像が表示される場合には、このオブジェクト画像の頂上に対する上記第１のカーソル画像データＶCAの投影位置を表す画像として、つまりオブジェクト画像の仮想的な高さを考慮してその高さ位置を表す画像として生成される。
【００４０】
その他、仮想空間の表面が複数面あるとする場合もある。例えば複数のウインドウが重なっておりそれぞれを空間表面とする場合や、建物の立体オブジェクトがあり各階を空間表面とする場合である。どの面を投影面とするかをあらかじめ設定しておく場合や、受容体の直下の表面を投影面とする場合など、投影表面は逐次変更可能である。  
なお、噴出口が配置された二次元平面に対して任意に設定した第１の軸に垂直な平面の二次元座標に対応させた、仮想空間の二次元平面方向を、地表面に対して傾いた別の面とする場合もある。
【００４１】
また第２のカーソル画像データＶCBも、上記第１のカーソル画像データＶCAと同様に、噴出口が配置された二次元平面に対して任意に設定した第１の軸方向における位置の変化に応じてその表示パターンが変化する。この実施形態では、噴出口が配置された二次元平面に対して任意に設定した第１の軸方向を水平テーブル２に垂直な方向としているので、垂直方向の高さ位置に応じてその表示パターンが変化する。例えば、垂直方向の位置が高いほど、つまり水平テーブル２面から離間するほど表示サイズが大きくなり、反対に垂直方向の位置が低くなるほど、つまり水平テーブル２面に近づくほど表示サイズが小さくなるように制御される。
【００４２】
第３のカーソル画像データＶCCは、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標をもとに、上記第１のカーソル画像データＶCAの表示位置とその直下の水平テーブル２面またはオブジェクトの頂上に表示される上記第２のカーソル画像データＶCBの表示位置との仮想空間内における両者間の距離を表す画像として生成される。
すなわち、ユーザが受容体８により操作する現在の指示点の仮想的な高さを表す画像として生成される。また第３のカーソル画像データＶCCは、ユーザが受容体８により操作する現在の指示点の高さ位置の変化に応じて表示パターン、例えば形状または表示色が変化する。
【００４３】
図４及び図５は、以上のように生成された第１、第２及び第３のカーソル画像ＶCA，ＶCB，ＶCCの表示例を示すものである。図４の例は、操作ボタンを示すオブジェクト画像と共に表示される場合で、第１のカーソル画像データＶCAは輪郭を濃度の濃い実線により示した「矢印」で表現され、第２のカーソル画像データＶCBは輪郭を濃度の薄い実線で示しかつ表示サイズを上記第１のカーソル画像データＶCAより小さいサイズに設定した「矢印」で表現される。第３のカーソル画像データＶCCは、第１のカーソル画像データＶCAと第２のカーソル画像データＶCBとの間を結ぶ複数の破線で表現される。
【００４４】
図５の例は、構造物を示すオブジェクト画像と共に表示される場合で、第２のカーソル画像データＶCBは全体を濃度の薄い色で塗りつぶした「矢印」で表現される。なお、この例では、第１のカーソル画像データＶCAの投影位置が仮想的にオブジェクトの頂上にある状態を表現している。
【００４５】
噴出制御プログラム１３４は、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標に基づいて、受容体８の位置を仮想空間内に反映した指示点位置であるカーソル画像ＶCAのオブジェクトに対する接触または押し込みを検出し、接触または押し込みが検出された場合にその旨を力覚提示するためにそれぞれ異なる強度の空気を噴出ユニット１から噴出させる処理を、上記ＣＰＵ１１に実行させる。
【００４６】
次に、以上のように構成された力覚提示装置による力覚提示動作を制御ユニット６の制御手順に従って説明する。図３は制御ユニット６による制御手順と制御内容を示すフローチャート、図６（ａ）〜（ｅ）は受容体８の移動に応じたカーソル画像の変化を示す図である。
【００４７】
制御ユニット６は、先ずステップＳ３１において、例えば操作ボタンを示すオブジェクト画像データＶBを生成し、この生成したオブジェクト画像データをプロジェクタＩ／Ｆ１６からプロジェクタ５に供給する。これにより、水平テーブル２面に操作ボタンのオブジェクト画像ＶB が投影される。
【００４８】
制御ユニット６は、次にステップＳ３２においてカメラ７，７により撮像された上記水平テーブル２上の三次元空間の画像データをカメラＩ／Ｆ１５により取り込み、この取り込んだ各画像データから受容体８の三次元位置を検出する。この受容体８の位置検出処理は、例えば次のように行われる。
【００４９】
すなわち、上記取り込んだ各画像データを一旦データメモリ１４に保存し、このデータメモリ１４に保存した上記各画像データに対しそれぞれパターンマッチングを行って受容体８のマーカＭに相当する画像を認識する。そして、各画像データ中から認識したマーカＭ画像間の相対位置をもとに例えば三角法による距離計算を行って、上記水平テーブル２上の三次元空間における上記受容体８の水平位置座標及び垂直位置座標を算出する。
【００５０】
制御ユニット６は、次にステップＳ３３において、上記算出された受容体８の位置に対応づけた仮想空間内の位置を算出する。この位置が、操作者が仮想空間内で操作する指示位置である。そして、この指示点位置を表すカーソル画像ＶCAを生成する。また、ステップＳ３４，３５においてそれぞれ、カーソル画像データＶCB，ＶCCの生成処理を行う。
【００５１】
次に、ステップＳ３６において、受容体８の水平位置座標及び垂直位置座標に対応づけた仮想空間内のカーソル画像ＶCAの水平位置座標及び垂直位置座標と、上記投影された操作ボタンを示すオブジェクト画像の仮想的な高さを示す座標値とをもとに、上記オブジェクトに対する指示点位置であるカーソル画像ＶCAの接触の有無を判定する。
【００５２】
この判定の結果、接触していなければ、次にステップＳ３７において上記オブジェクトに対してカーソル画像ＶCBがオブジェクトに重なっているかを判定する。この判定の結果、重なっていた場合には、ステップＳ３９において、空気を噴出すると設定されているか、またはカーソル画像ＶCAとＶCBの距離に応じて空気を噴出すると設定されているかを判定し、設定されている場合にはステップＳ４０により空気を噴出させる制御を行う。なお、この空気の噴出制御については後述する。
【００５３】
これに対し、カーソル画像ＶCBがオブジェクトに重なっていないと判定された場合と、重なっていても空気を噴出しないと設定されている場合には、ステップＳ３４に移行して以下のようにカーソル画像データＶCA，ＶCB，ＶCCの表示処理を行う。
【００５４】
すなわち、先ずステップＳ３８１において、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標をもとに、ユーザが受容体８により操作する現在の指示点の位置を表す「矢印」形状の第１のカーソル画像ＶCAを生成する。その際、「矢印」の表示サイズは上記検出された三次元位置座標の垂直方向の座標値をもとに設定される。
【００５５】
カーソル画像ＶCAを生成・表示する具体的な方法としては、受容体８の位置（x,y,z）をそのまま仮想空間の位置座標として、仮想空間内の（x,y,z）の位置に生成・表示する場合が考えられる。また、仮想空間の座標が現実空間に対して、その原点が（Cx,Cy,Cz）ずれている場合には、その値だけ受容体８の位置座標に対してずらして、仮想空間内に反映して、カーソル画像ＶCAを生成・表示する。
【００５６】
次にステップＳ３８２において、上記受容体位置検出プログラム１３１により検出された受容体８の三次元位置座標をもとに、水平テーブル２に対する上記第１のカーソル画像データＶCAの投影位置を表す「矢印」形状の第２のカーソル画像データＶCBが生成される。この第２のカーソル画像データＶCBの表示サイズは、操作ボタンを示すオブジェクトの径に対応するサイズに設定される。
【００５７】
具体的な処理方法としては、仮想空間内におけるカーソル画像ＶCAの座標(x,y,z)に対して、カーソル画像ＶCAを投影する仮想空間の二次元平面方向を仮想空間内のxz平面方向とし、投影する面を仮想空間の面をy=0の仮想空間内のxz平面とする場合、(x,0,z)の座標にカーソル画像ＶCBを生成・表示する方法がある。投影面を y=0の仮想空間内のxz平面としたが、 y軸方向の高さhの立方体のオブジェクト上面に投影するとした場合、投影面は y=hの仮想空間内のxz平面となる。また、ある高さのy=h’の仮想空間内のxz平面にカーソル画像ＶCBを平面で投影する場合もあるが、投影面が平面でない時に、その形状に合わせてカーソル画像ＶCAを投影し、カーソル画像ＶCBが平面にならない場合もある。
【００５８】
具体的には、カーソル画像が存在するあるyz平面における第１のカーソル画像ＶCAのx軸上の大きさSで、x軸上に存在するカーソル画像ＶCA の座標が(X,Y,Z)から(X+S,Y,Z)まであった場合に、第１のカーソル画像ＶCA の座標(X,Y,Z)に対する投影を、y=0のxz平面に投影し、第１のカーソル画像ＶCA の座標(X+S,Y,Z)に対する投影を、y=hのxz平面に投影する場合である。例えば、第１のカーソル画像ＶCAを投影する真下がオブジェクトのエッジの部分に重なる場合がそれに当たる。これに対して、第１のカーソル画像ＶCAが存在する仮想空間内の全ての座標(x,y,z)に対して、それぞれ投影するy＝y’の高さのxz面を設定し、その場所である(x,y’,z)に投影する。もちろん、簡易に行うため、第１のカーソル画像ＶCAのある座標(x,y,z)の真下である代表の高さのxz平面に第１のカーソル画像ＶCAの全ての点を第２のカーソル画像ＶCBとして投影することも可能である。
【００５９】
最後にステップＳ３８３において、上記生成した第１のカーソル画像ＶCAと第２のカーソル画像データＶCBとの間を関連付ける第３のカーソル画像データＶCCを生成する。例えば、第１のカーソル画像ＶCAの「矢印」と第２のカーソル画像データＶCBの「矢印」の対応する５つの角を結ぶ５本の破線により構成される。
【００６０】
具体的な処理方法としては、仮想空間内における第１のカーソル画像ＶCAの座標(x,y,z)に対して、第１のカーソル画像ＶCAを投影する仮想空間の二次元平面方向を仮想空間内のxz平面方向、投影する仮想空間の面をy=0の仮想空間内のxz平面とする場合、yの値に応じて第３のカーソル画像データＶCCを生成・表示される方法がある。第１のカーソル画像ＶCAと、それを投影した地表面の第２のカーソル画像ＶCBを仮想空間内の高さyの長さを持つ破線でつなぐことになる。
【００６１】
そして制御ユニット６は、以上のように生成された第１、第２及び第３のカーソル画像データＶCA，ＶCB，ＶCCを、操作ボタンを示すオブジェクト画像データＶBと合成し、この合成後の画像データをプロジェクタＩ／Ｆ１６からプロジェクタ５に供給する。この結果水平テーブル２には、操作ボタンのオブジェクト画像データＶBと第１、第２及び第３のカーソル画像データＶCA，ＶCB，ＶCCが合成された合成画像が投影される。図６（ａ）にその表示画像の一例を示す。
【００６２】
次の受容体位置検出タイミングになると、制御ユニット６はステップＳ３２に戻り、先に述べたようにカメラ７，７により撮像された上記水平テーブル２上の三次元空間の画像データをカメラＩ／Ｆ１５により取り込み、この取り込んだ各画像データから受容体８の三次元位置を検出する。そして、オブジェクトに対する受容体８による指示点の位置の接触の有無を判定し、接触していないと判定されれば、ステップＳ３８１〜Ｓ３８３において、上記検出された受容体８の三次元位置座標をもとに第１、第２及び第３のカーソル画像データＶCA，ＶCB，ＶCCを生成する。そして、この生成された第１、第２及び第３のカーソル画像データＶCA，ＶCB，ＶCCを、操作ボタンを示すオブジェクト画像データＶBと合成し、この合成後の画像データをプロジェクタ５により水平テーブル２に投影させる。
【００６３】
このとき、前回の位置検出時点から今回の位置検出時点までの間に、ユーザにより受容体８が動かされて、受容体８による指示点の位置が操作ボタンを示すオブジェクトに近付く方向へ移動したとする。この場合、第１のカーソル画像データＶCAは、例えば図６（ｂ）に示すように操作ボタンを示すオブジェクトに近づいたことを表現するために、その表示位置が変更されると共に表示サイズが小さなサイズに変更される。また、この第１のカーソル画像データＶCAの変更に従い、第３のカーソル画像データＶCCも変更される。
【００６４】
以後同様に、ユーザにより受容体８が操作されて、その高さ方向の位置が操作ボタンを示すオブジェクトにさらに近づくと、第１のカーソル画像データＶCAは例えば図６（ｃ）に示すように表示位置及び表示サイズがさらに変更される。また、それに従い第３のカーソル画像データＶCCも変更される。
【００６５】
したがって、上記第１のカーソル画像データＶCAの表示位置及び表示サイズの変化により、ユーザは操作ボタンを示すオブジェクトに対する受容体８の仮想的な高さ位置を正確に把握することが可能となる。また、上記したように受容体８がオブジェクトに接触していない状態では、上記第１のカーソル画像データＶCAの表示位置の直下に位置する操作ボタンのオブジェクト上に第２のカーソル画像データＶCBが投影される。このためユーザは、第２のカーソル画像データＶCBにより、自身が操作しようとしている操作ボタンを示すオブジェクトの位置を正確に把握することが可能となる。
【００６６】
さて、ユーザにより受容体８がさらに操作されて、受容体８による指示点の位置が操作ボタンを示すオブジェクトに接触する位置に移動したとする。この場合制御ユニット６は、上記オブジェクトに対する受容体８による指示点の位置の接触をステップＳ３６で検出し、後述するステップＳ４１の判定を経てステップＳ４２に移行する。このステップＳ４２では、操作ボタンと接触している状態を表現するための第１のカーソル画像データＶCAが生成され、この第１のカーソル画像データＶCAが操作ボタンを示すオブジェクト画像データデータＶBと合成されて、プロジェクタ５により水平テーブル２に投影される。図６（ｄ）はこのとき表示される第１のカーソル画像データＶCAの一例を示すもので、この例では輪郭が濃い実線で表現された「矢印」を表示した場合を示している。
【００６７】
またこのとき制御ユニット６は、上記オブジェクトに対する受容体８による指示点の位置の接触が検出されると、ステップＳ４３に移行し、上記接触を力覚提示するための空気を噴出ユニット１から噴出させる制御を実行する。すなわち、上記検出された受容体８の三次元位置座標をもとに、この受容体に空気を当てるように設定した噴出口から空気を噴出する。
【００６８】
この実施形態では、受容体８の水平テーブル２に平行な水平面上に噴出口が配置されているので、受容体８の水平方向の位置座標を下に、当該受容体８が接触している操作ボタンのオブジェクトの位置に対応する噴出ノズル３ｉを選択する。そして、この選択した噴出ノズル３ｉに対応する電磁弁を開成させるための開閉制御信号を外部Ｉ／Ｆ１７から電磁弁ユニットに与える。この結果、上記選択した噴出ノズル３ｉから空気が噴出される。このとき、空気の噴出強度は、上記オブジェクトに対する受容体８による指示点位置の接触を表現するために予め設定された固有の値となるように制御される。  
したがって、ユーザは上記噴出ノズル３ｉからの空気の噴出を受容体８で知覚することになり、この力覚提示と上記第１のカーソル画像データＶCAの表示により、オブジェクトに対する受容体８による指示点位置の接触を認識することができる。
【００６９】
また、先述したように、受容体８による指示点の位置にあるカーソル画像ＶCAとオブジェクトが接触しなくても、空気を噴出する場合がある。第１のカーソル画像ＶCAはオブジェクトと接触していないが、第２のカーソル画像ＶCBがオブジェクトに重なった場合である。  
【００７０】
具体的には、第２のカーソル画像ＶCBがオブジェクトに重なった場合、常に空気を噴出することで利用者に提示する場合もあるし、また重なった瞬間のみ空気を噴出して、重なったことを利用者に提示する場合である。また、重なった場合に第１のカーソル画像ＶCAと第２のカーソル画像ＶCBとの距離に応じて空気を噴出し、その近さを提示する場合もある。これらの場合においても、その時点の受容体８に空気を当てるように設定した噴出口から空気を噴出する。また、その空気噴出の強度は、接触した時の強度と同じ場合やより弱い力にする場合もある。また、第１のカーソル画像ＶCAと第２のカーソル画像ＶCBの高さに応じて噴出させる場合には、その値に応じて噴出強度を設定したり、予め何段階かの噴出強度を設定し、高さとそのレベルの対応付けを決めておくことで、高さに応じた噴出強度により空気を噴出させることが可能である。
【００７１】
さらに、ユーザが受容体８を動かして、受容体８による指示点の位置が操作ボタンを示すオブジェクトをあたかも押し込んだ状態に相当する位置に移動したとする。なお、押し込んだ状態として、オブジェクト上面を押さえ込んで表面を凹ませる場合もあるし、オブジェクト上面に対してさらに深く掘り進んでいく場合が挙げられる。この掘り進んでいく場合には、例えば地表面を掘り進んでいく場合が挙げられる。このとき、押さえ込んだオブジェクト表面、例えば地表面を薄くしたり表示しないことで、押さえ込んで掘り進んだ受容体８の指示点位置に対応する高さにおける仮想空間内に存在するものを、見えやすくする方法をとることがある。
【００７２】
この場合制御ユニット６は、上記オブジェクトに対する受容体８による指示点位置の押し込み操作をステップＳ４１で検出し、ステップＳ４４に移行する。このステップＳ４４では、操作ボタンを押し込んだ状態を表現する第１のカーソル画像ＶCAが生成され、この第１のカーソル画像ＶCAが操作ボタンを示すオブジェクト画像データデータＶBと合成されて、プロジェクタ５により水平テーブル２に投影される。図６（ｅ）はこのとき表示される第１のカーソル画像データＶCAの一例を示すもので、この例では濃度の濃い色で塗りつぶされた「矢印」を表示した場合を示している。
【００７３】
またこのとき制御ユニット６は、上記オブジェクトに対する受容体８による指示点位置の押し込み操作が検出されるとステップＳ４５に移行し、上記押し込み操作を力覚提示するための空気を噴出ユニット１から噴出させる制御を実行する。この制御も上記接触の場合と同様の手順で行われ、これにより押し込まれた操作ボタンに対応する噴出ノズル３ｉから空気が噴出される。このとき、空気の噴出強度は、上記オブジェクトに対する受容体８による指示点位置の押し込み操作を表現するために予め設定された、上記接触の場合よりも大きな値となるように制御される。  
したがって、この場合ユーザは上記噴出ノズル３ｉからの空気の強い噴出を受容体８で知覚することになり、この力覚提示と上記第１のカーソル画像データＶCAの表示により、オブジェクトに対する受容体８による指示点位置の押し込み操作（クリック操作）を認識することができる。
【００７４】
以上述べたように第１の実施形態では、カメラ７，７により撮像された各画像データから受容体８の三次元位置を検出し、この検出された受容体８の三次元位置をもとに、ユーザが受容体８により操作する現在の指示点の位置を表す「矢印」形状の第１のカーソル画像ＶCAと、水平テーブル２に対する当該第１のカーソル画像データＶCAの投影位置を表す「矢印」形状の第２のカーソル画像データＶCBと、上記第１のカーソル画像ＶCAの垂直方向の高さ位置を表現するための第３のカーソル画像データＶCCを生成する。そして、この生成された各カーソル画像データＶCA，ＶCB，ＶCCを、操作ボタンを示すオブジェクト画像データＶBと合成して、プロジェクタ５から水平テーブル２に投影させるようにしている。
【００７５】
したがって、ユーザは上記各カーソル画像データＶCA，ＶCB，ＶCCにより、自身が操作する受容体８による三次元空間中の指示点の位置を明確に把握することが可能となる。また、各カーソル画像データＶCA，ＶCB，ＶCCを別々に生成して表示させることで三次元を表示している。これらにより、立体映像を表示させる場合や遠近法に基づく表示手法を適用する場合に比べ、複雑な表示装置や画像表示処理を必要とせずにカーソル画像の三次元的な表示を行うことができる。また、ユーザの視点に合わせた空間映像を表示する必要がないため、複数のユーザが同時に利用することが可能となる。
【００７６】
また第１の実施形態では、オブジェクトに対する受容体８による指示点位置にあるカーソル画像ＶCAの接触または押し込みが検出されると、第１のカーソル画像データＶCAの表示パターンを接触前の表示パターンとは異ならせると共に、接触または押し込みの状態を力覚提示するために強度の異なる空気を噴出ユニット１から噴出させるようにしている。したがって、ユーザは上記噴出ノズル３ｉからの空気の噴出による直接的な力覚提示と、上記第１のカーソル画像データＶCAの表示パターンを異ならせた間接的な視覚表示により、オブジェクトに対する受容体８による指示点位置の位置にあるカーソル画像ＶCAの接触または押し込みを認識することができる。
【００７７】
また、オブジェクトに対するカーソル画像ＶCBの重なりが検出されると、重なっていることまたは重なった瞬間、さらに重なっているときのカーソル画像ＶCAとＶCBの距離に応じて、力覚提示するために強度の異なる空気を噴出ユニット１から噴出させるようにしている。従って,ユーザはオブジェクトに対するカーソル画像ＶCAの重なりを認識することができ、受容体８による指示点位置がオブジェクト上空にあることなどを認識することができる。
【００７８】
なお、第１、第２及び第３の各カーソル画像データＶCA，ＶCB，ＶCCは、以下のような各種変形が可能である。  
第１の変形例は、図７（ａ）に示すように、第１のカーソル画像データＶCAと第２のカーソル画像データＶCBの表示サイズを、第１のカーソル画像データＶCAの高さ位置にかかわらず同一に設定したものである。この例では、ユーザが受容体８の高さ位置を変化させないように水平方向に移動させた場合には、カーソル画像ＶCA，ＶCB，ＶCCの表示位置が同一の表示サイズ、色または形状を維持したまま水平方向へ移動する。またユーザが受容体８を高さ方向にのみ動かした場合には、その高さ位置の変化に応じてカーソル画像ＶCAの表示位置が変化すると共にカーソル画像ＶCCの長さが変化するが、カーソル画像ＶCBの表示位置は変化しない。なお、この“利用者が受容体８により操作する指示点の三次元空間内の高さ”とは、三次元空間内で定義されたある基準点からの高さと、三次元空間内で指示位置が存在する場所の地表面からの高さの両方を含む。
【００７９】
また、第１の実施形態でも例示したが、利用者が受容体８により操作する三次元空間内の指示点の高さ位置に応じて、カーソル画像ＶCA，ＶCB，ＶCCの表示位置、表示サイズ、表示色または形状を適宜変化させることも可能である。図７（ｂ）、（ｃ）、（ｄ）はその一例を示すものである。図７（ｂ）に示す例では、利用者が操作する受容体８による三次元空間内の指示点の高さ位置が高くなるに従いカーソル画像ＶCAの表示サイズを大きくし、逆にカーソル画像ＶCBの表示サイズを小さくした場合を示している。図７（ｃ）に示す例では、三次元空間内の指示点の高さ位置が高くなるに従い、カーソル画像ＶCBの表示濃度または表示色が薄くなるようにした場合を示している。図７（ｄ）に示す例では、カーソル画像ＶCCを表示せず、三次元空間内における指示点の高さに応じて、カーソル画像ＶCA，ＶCBの表示位置は変化させずに表示サイズや表示色を変化させた場合を示している。
【００８０】
また、投影された三次元空間における高さ位置に応じて、カーソル画像ＶCBを変化させることも可能である。その例として、ユーザが操作する受容体８による空間内の指示点の高さは変わらないが、例えばオブジェクトの存在によりユーザの指示点位置の直下の空間位置の高さが高くなったことに応じて、カーソル画像ＶCA，ＶCB，ＶCCの表示位置、表示サイズ、表示色または形状を変化させる場合や、第１のカーソル画像ＶCAは変化させず、第２及び第３のカーソル画像ＶCB，ＶCCの表示位置、表示サイズ、表示色または形状を変化させる場合が考えられる。さらに、三次元空間内で定義されている高さに対して第１及び第２のカーソル画像ＶCA，ＶCBが存在する高さまたは深さ位置が変化した場合に、その高さまたは深さを特に表現するためにカーソル画像ＶCA，ＶCB，ＶCCの表示サイズ、表示色または形状を変化させることも考えられる。さらに、手前が大きく遠いものが小さく見える透視投影表示で、場所によって大きさが変化するように設定された空間に対して、その設定にならって大きさが変わるだけでなく、特にデフォルメして大きさ等が変化して、空間内の高さや場所を表現することも考えられる。
【００８１】
また、以上述べた例はいずれも第２のカーソル画像ＶCBを使用するものであるが、第２のカーソル画像ＶCBを用いずに三次元空間におけるユーザの指示点の位置を表現することも可能である。例えば、図８（ａ）、（ｂ）に示すように、カーソル画像ＶCA，ＶCCのみにより三次元空間におけるユーザの指示点の位置を表現する。この場合、第３のカーソル画像ＶCCにより、指示点の高さと共に、指示点位置の直下の水平テーブル２上の位置またはオブジェクトの頂上位置を示唆することが可能である。また、第３のカーソル画像ＶCCを使用せずに、第１及び第２のカーソル画像ＶCA，ＶCBのみにより三次元空間におけるユーザの指示点の位置を表現するようにしてもよい。さらに、いずれも場合においても、第１のカーソル画像ＶCAは図９（ａ）、（ｂ）、（ｃ）に示すように三次元空間における高さ位置に応じてその表示色を変化させるようにするとよい。
【００８２】
また、図６（ｄ）（ｅ）において説明したように、受容体８による指示点の位置が操作ボタンのオブジェクトに接触するかまたは押し込んだ状態に対応する位置まで移動した場合に、操作ボタンのオブジェクト画像を変化させるようにしてもよい。特に、押し込まれた状態を表現するために、操作ボタンのオブジェクト画像を一部が凹むかまたは全体が沈んだ状態を表現したものに変化させる。
【００８３】
さらに、操作ボタンのオブジェクトを押し込んだ状態を表現する場合に、カーソル画像ＶCAの表示位置がオブジェクトの中或いは下側になることもある。このような場合、カーソル画像がオブジェクト画像により隠れて見えなくなるので、カーソル画像の視認性を維持するためにオブジェクト画像のカーソル画像と重なる部位を透明または半透明にするとよい。
【００８４】
（第２の実施形態）  
図１に示したシステムのように、プロジェクタ５を使用して空間の映像を水平テーブル２の投影面上に投影するシステムでは、投影すべき映像の一部がプロジェクタ５と水平テーブル２との間に存在する受容体８に遮られ、その結果投影面に表示されるべきカーソル画像が見えなくなったり、また投影面に受容体８の影ができて操作しにくくなると云う不具合が発生する。その対策として、半透明の受容体８を使用することも考えられているが、半透明の受容体８を通して投影されることで、投影面には薄い受容体８の影とぼやけたカーソル画像が表示され、依然として見え難かったり操作のし難さが残る。
【００８５】
そこで、この発明の第２の実施形態では、水平テーブル２の投影面に投影されるべきカーソル画像と受容体８の影との重なりを検出し、重なりが検出された場合にカーソル画像の表示サイズを大きなサイズに変更して見えやすくする。また、特に半透明の受容体８を通すことで見えにくくなる場合には、カーソル画像の濃度または表示色を濃くする。さらに、カーソル画像が半透明の受容体８のエッジ部分に重なる場合には、カーソル画像がエッジに重ならないようにカーソル画像の表示サイズを小さくし、色を強調させるといった制御を行う。これにより、エッジ部分によりカーソル画像にゆがみが発生しないようにする。
【００８６】
水平テーブル２の投影面に投影されるべきカーソル画像と受容体８の影との重なりを検出する手段は、受容体８の影の位置とカーソルの位置から算出することができる。具体的な検出処理方法の一例を以下に説明する。  
図１０は、プロジェクタ５により上方から水平テーブル２の投影面に画像が投影された状態を示している。同図において、水平テーブル２の投影面を、中央を原点としたｘｙ座標面とし、水平テーブル２に対するプロジェクタ５の高さをＤ、受容体５の高さをｄとする。また、受容体８の位置を（Ｐx,Ｐy）、影の位置を（Ｓx,Ｓy）、カーソルの位置を（Ｃx,Ｃy）とする。このときｘ軸における、影の中心位置は以下となる。ｙ軸においても同様に考えられる。  
Ｓx ＝Ｐx×｛Ｄ／（Ｄ−ｄ）｝    …（１）
【００８７】
また、カーソル画像の中心位置を以下のように設定したとする。なお、αx，βxは、ｘ軸上における受容体８のｘ座標値に応じて、水平テーブル２上に表現するカーソル画像のｘ座標算出のための定数である。αxは受容体８の位置に対して必ずカーソル画像の表示位置をずらすための定数である。βxはプロジェクタ５が真上に位置する原点（図１０の例ではテーブル中央）と受容体８の位置に応じてカーソル表示を設定するための定数で、αx＝０のとき、０＜βx＜１の場合は受容体８の位置に対して原点よりの内側にあり、βx＝１のときは受容体８の位置の直下に、１＜βxの場合は受容体８に対して原点のない外側にカーソルが表示される。  
Ｃx＝Ｐx×βx＋αx  （αx, βxは定数。ただしβx＞０とする。）    …（２）
【００８８】
受容体８の座標に対して、影の位置（Ｓx，Ｓy）とカーソルの位置を（Ｃx，Ｃy)に対して、ＳxとＣx、かつＳy とＣyがある距離内にあるとき、つまり、
｜Ｓx−Ｃx｜≦Ｋ かつ｜Ｓy−Ｃy｜≦Ｌ  （｜｜は絶対値）    …（３）
であるとき、影がカーソル画像と重なるものとして、重なる場合を検出することができる。このある距離内を表すＫやＬは、影とカーソル画像双方の大きさで決定する。  
なお、以上述べた影とカーソル画像との重なりを検出する処理と、その検出結果に基づくカーソル画像の表示サイズ、表示濃度または表示色を変更する処理は、図２に示したカーソル生成プログラム１３３をＣＰＵ１１に実行させることにより実現される。
【００８９】
したがって、第２の実施形態によれば、水平テーブル２の投影面に投影されるべきカーソル画像と受容体８の影との重なりが検出された場合に、カーソル画像の表示サイズを大きなサイズに変更して見えやすくすることができる。また、半透明の受容体８を通すことで見えにくくなる場合には、カーソル画像の濃度または表示色を濃くする。さらに、カーソル画像が半透明の受容体８のエッジ部分に重なる場合には、カーソル画像がエッジに重ならないようにカーソル画像の表示サイズを小さくし、色を強調させる。これにより、エッジ部分によりカーソル画像にゆがみが発生しないようにすることができる。
【００９０】
（第３の実施形態）  
この発明の第３の実施形態は、プロジェクタ５により上方から水平テーブル２に向けてカーソル画像を投影するシステムにおいて、カーソル画像が受容体８８により遮られて投影されない場合に、受容体８の位置に連動していたカーソル画像の位置を変化させないようにするか、カーソル画像の表示位置を変化させるようにしたものである。  
この機能を採用することで、水平テーブル２の投影面に投影された空間映像の全ての位置に対して、受容体８の影に重なることなくカーソル画像で指示することが可能となる。
【００９１】
図１１にこの実施形態におけるカーソル生成表示処理の動作を示す。  
プロジェクタ５に対して右側に受容体８が位置し、その受容体８よりさらに右側に受容体８の影が存在している状態を初期段階とし、この初期段階における受容体８に対するカーソル画像の投影位置を、前記（２）式よりαx=０、βx=１とする。この初期の段階を図１１（ａ）に示す。このとき、受容体８を水平テーブル２の中央に近づけるように動かすと、影は受容体８の真下に近づくのでカーソル画像と影が重なってしまう。この影とカーソル画像が重なる手前の位置まで、カーソル画像は受容体８の真下に投影するものとする。
【００９２】
さらに受容体８を水平テーブル２の中央に近づけると、受容体８の影がカーソル画像に重なる。そこで、受容体８の位置に連動していたカーソルの位置を変化させないように、カーソル画像の表示位置を固定する。図１１（ｂ）はその状態を示す。したがって、受容体８の影がカーソルに重なっている間は、受容体８を動かしてもカーソル画像の表示位置は動かない。
【００９３】
この状態からさらに受容体８を動かし、水平テーブル２の中央を通り越して左側まで移動させ、図１１（ｃ）に示すようにカーソル画像が表示されている位置を影が通り過ぎた状態にする。そうすると、再び受容体８の位置に応じてカーソル画像の表示位置を移動させる。このカーソル画像が再び動き始めた時の受容体８の位置に対するカーソル画像の位置は、図１１（ａ）の時の受容体８の真下にカーソル画像が表示されていた状態とは異なる。すなわち、影とカーソル画像が重なる領域から出る時の受容体８の位置に対する、影とカーソル画像が重なる領域に入る時の受容体８の位置に対応したカーソル画像の座標の対応関係となる。この関係に基づいて、カーソル画像の表示位置が決められる。再度影とカーソル画像が重なるまで、カーソル画像の表示位置はこの時の受容体８に対する位置関係に従い設定される。
【００９４】
次に、カーソル画像の表示位置の処理の例を以下に説明する。  
図１０に示たように、プロジェクタ５により上方から水平テーブル２の投影面に映像が投影された状態において、水平テーブル２の投影面を、中央を原点としたｘｙ座標面とし、水平テーブル２に対するプロジェクタ５の高さをＤ、受容体８の高さをｄとする。また、受容体８の位置を（Ｐx，Ｐy）、影の位置を（Ｓx，Ｓy）、カーソルの位置を（Ｃx，Ｃy）とする。また、受容体８の影の大きさに関係する受容体８の大きさをＰｒ（Ｐｒ＞０）、カーソル画像の表示サイズをＣｒ（Ｃｒ＞０）とする。なお、この例では影の大きさはｘ軸方向、ｙ軸方向とも同じ大きさとして考えるが、ｘ軸方向とｙ軸方向で大きさが異なる場合も考えられる。また、実際には位置検出の誤差なども考慮して、半径は実際より大きめの大きさを設定しておく方法もある。
【００９５】
このとき受容体８がPxの位置にいるときのｘ軸における影の範囲は以下となる。ｙ軸においても同様に考えられる。  
｛Ｐx−Ｐｒ｝×｛Ｄ／（Ｄ−ｄ）｝≦Ｓx≦｛Ｐx＋Ｐｒ｝×｛Ｄ／（Ｄ−ｄ）｝
…（４）
【００９６】
一例として、初期のカーソル画像の投影位置を、（２）式よりαx＝０、βx＝１として設定し、図１１（ａ）の初期の段階において受容体８の真下にカーソル画像が投影されるようにする。この初期の段階のカーソル画像の映像投影範囲は以下のようになる。ｙ軸においても同様に考えられる。  
Ｐx−Ｃｒ≦Ｃx≦Ｐx−Ｃｒ    …（５）
【００９７】
図１１の左側から右側に向かう方向をｘ軸の正の方向とし、受容体８を右側から左側に動かす時、この初期の段階の受容体８の位置に対して、図１１（ｂ）に示すようなカーソル画像と受容体８の影が重なり始める受容体８のｘの値は、  
｛Ｐx−Ｐｒ｝×｛Ｄ／（Ｄ−ｄ）｝＝Ｐx＋Ｃｒ
となる。つまり、
Ｐx＝Ｐｒ×｛Ｄ／ｄ｝＋Ｃｒ×｛（Ｄ−ｄ）／ｄ｝
である。
【００９８】
また、受容体８をそのまま図中右側から左側へ動かし、中央を通り過ぎた時、カーソル画像と受容体８の影が重なり終わる受容体８の位置は、
｛Ｐｘ＋Ｐｒ｝×｛Ｄ／（Ｄ−ｄ）｝＝Ｐx−Ｃｒとなる。つまり、
Ｐx＝−Ｐｒ×｛Ｄ／ｄ｝−Ｃｒ×｛（Ｄ−ｄ）／ｄ｝
である。  
これにより、受容体８の位置が以下の領域に来た時、カーソル画像の表示位置を動かさないように設定する。
この時、カーソル画像が表示されている位置は、下記の領域に受容体８が入った時の受容体８に対応するカーソル画像の位置となる。  
−Ｐｒ×｛Ｄ／ｄ｝−Ｃｒ×｛（Ｄ−ｄ）／ｄ｝≦Ｐx≦Ｐｒ×｛Ｄ／ｄ｝＋Ｃｒ×｛（Ｄ−ｄ）／ｄ｝かつ
−Ｐｒ×｛Ｄ／ｄ｝−Ｃｒ×｛（Ｄ−ｄ）／ｄ｝≦Ｐy≦Ｐｒ×｛Ｄ／ｄ｝＋Ｃｒ×｛（Ｄ−ｄ）／ｄ｝      …（６）
【００９９】
例えば、受容体８が、
Ｐ１（ｘ，ｙ）＝［Ｐｒ×｛Ｄ／ｄ｝＋Ｃｒ×｛（Ｄ−ｄ）／ｄ｝−Ｐｒ×｛Ｄ／ｄ｝＋Ｃｒ×｛（Ｄ−ｄ）／ｄ｝］
の位置から、上記（５）式の領域に受容体８が入り、テーブル原点を超えて、
Ｐ２（ｘ，ｙ）＝［−Ｐｒ×｛Ｄ／ｄ｝−Ｃｒ×｛（Ｄ−ｄ）／ｄ｝−Ｐｒ×｛Ｄ／ｄ｝−Ｃｒ×｛（Ｄ−ｄ）／ｄ｝］
の位置まで動き、さらに進んだとする。受容体８の位置がＰ１の時はカーソルの中央の位置は、
（Ｃx，Ｃy）＝Ｐ１（ｘ，ｙ）
となる。この領域に入った位置をデータメモリ１４に記録しておく。
【０１００】
次に、Ｐ２（ｘ，ｙ）の位置に受容体８が進むまで、カーソル画像は
（Ｃx，Ｃy）＝Ｐ１（ｘ，ｙ）
の位置に表示させる。
受容体８がＰ２（ｘ，ｙ）を過ぎて影領域を出ると、受容体８の位置に対して以下のような位置関係でカーソルを表示する。  
Ｃx＝Ｐx＋２×Ｐｒ×｛Ｄ／ｄ｝＋２×Ｃｒ×｛（Ｄ−ｄ）／ｄ｝
Ｃy＝Ｐy＋２×Ｐｒ×｛Ｄ／ｄ｝＋２×Ｃｒ×｛（Ｄ−ｄ）／ｄ｝      （７）。
【０１０１】
つまり、影とカーソル画像が重なる領域に入る時の受容体８の位置座標と、影とカーソル画像とが重なる領域から出る時の受容体８の位置座標の差分だけ、カーソル画像の位置をずらしたことになる。再度領域に入った時も、影とカーソル画像が重なる領域に入った受容体８の位置と、領域から出る受容体８の位置に応じて、カーソル画像を表示させる。これは、受容体８の相対位置変化とカーソル画像の位置変化を関連づけるインダイレクトな入力方法という利点を活かしている。
【０１０２】
なお、受容体８のｘｙ座標だけでなく、高さが変わることで、重なり始める位置も変化するので同様の処理を行う。特に本実施形態では、（２）式のαx＝０、βx＝１の例を挙げたが、そうではない値の場合、受容体８のｘｙ座標が変わらなくても高さが変わることで、重なり始める位置が変わるので同様の処理を行う。
【０１０３】
さらに、影により操作し難くなる問題に対し、影の位置に応じてカーソル画像の表示位置を制御する例として、ユーザが指定した位置でカーソル画像と受容体８の影が重なるように、カーソル画像を表示する方法が挙げられる。つまり、（３）式を満たすカーソル画像または影の位置を、ユーザが指定する位置となるように、（２）式のαx、βxを設定する。このようにすることで、その場所はデッドゾーンとし、クリックするボタンなどを表現しないようにすることができる。
【０１０４】
また、水平テーブル２の投影面のサイズから、このデットゾーンを水平テーブル２の外に設定し、カーソル画像と影が重なる場所を水平テーブル２上に作らない方法もあげられる。ただし、（２）式のαx、βxの値によっては、受容体８に対するカーソル画像の位置が離れすぎてしまうので、影との重なり領域から離れた場所では、受容体８に対して近くなるようにカーソル画像の位置を設定し、影との重なり領域に対してある程度近づいたら、段階的に（２）式のαx、βxの値を変化させ、影とカーソル画像との重なり位置を制御する方法がある。
【０１０５】
なお、以上述べた影とカーソル画像との重なりを検出する処理と、その検出結果に基づくカーソル画像の表示位置を制御する処理は、図２に示したカーソル生成プログラム１３３をＣＰＵ１１に実行させることにより実現される。
したがって、第３の実施形態によれば、水平テーブル２の投影面に投影されるべきカーソル画像と受容体８の影との重なりが検出された場合に、カーソル画像の表示位置の移動を停止させたりまた進めたりすることで、カーソル画像を見えやすくすることができる。
【０１０６】
（第４の実施形態）
この発明の第４の実施形態は、プロジェクタ５の位置に対する受容体８の位置に基づき、カーソル画像に対応する受容体８表面にカーソル画像と対であることを示す画像情報を投影するものである。  
複数人で使用する場合、利用者が把持する受容体８に対応するカーソルの表示がわかりにくくなることが発生する。そこで、図１に示したシステムのような、プロジェクタ５を使用して空間の映像を提示する場合、受容体８に映像が投影されることを利用して、カーソル表示と受容体８が対であることがわかるような画像情報（例えば色や形状）を受容体８表面に投影する。例えば、カーソル画像ＶCAと受容体８表面に同一の画像を表示したり、同じ色を表示することや、数字、アルファベット等の対応マークを表示することが挙げられる。ただし、受容体８は半球を使用しているので、表面に投影した場合映像がゆがんで見えてしまう。それでも対応しているとわかる簡単なマークである必要がある。
【０１０７】
なお、受容体８は映像投影面より高い位置にあるので、（Ｐx，Ｐy）の位置の受容体８の表面にカーソル画像と対となるマークを表示しようとする場合、（１）式で示した影の位置として算出した座標位置、または受容体８の大きさがあることから、その算出した座標位置からある距離内に投影することになる。結果として、（Ｐx，Ｐy）の位置の受容体８に対応したカーソル表示を式２より算出されたカーソルの座標（Ｃx，Ｃy）に表示し、そのカーソルと対となる受容体８表面に投影される画像を（１）式より算出された影の座標（Ｓx，Ｓy）、またはその周囲に表示するものとして、映像を算出する。
【０１０８】
なお、この発明は上記各実施形態に限定されるものではなく、制御ユニットの構成やその制御手順と制御処理については、種々の変形が可能である。  
要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【０１０９】
【図１】この発明の第１の実施形態に係わる力覚提示装置の全体構成を示す図である。
【図２】図１に示した力覚提示装置における制御ユニットの機能構成を示すブロック図である。
【図３】図２に示した制御ユニットによる力覚提示制御の手順と内容を示すフローチャートである。
【図４】図３に示した力覚提示制御によるオブジェクト画像とカーソル画像の第１の表示例を示す図である。
【図５】図３に示した力覚提示制御によるオブジェクト画像とカーソル画像の第２の表示例を示す図である。
【図６】図３に示した力覚提示制御による、受容体の動きに応じたカーソル画像の変化の一例を示す図である。
【図７】カーソル画像の他の表示例を示す図である。
【図８】カーソル画像の別の表示例を示す図である。
【図９】カーソル画像のさらに別の表示例を示す図である。
【図１０】この発明の第２の実施形態に係わる力覚提示方法を説明するための図である。
【図１１】この発明の第３の実施形態に係わる力覚提示方法を説明するための図である。
【符号の説明】
【０１１０】
１…噴出ユニット、２…水平テーブル、３…噴出口、４…支持台、５…プロジェクタ、６…制御ユニット、７…カメラ、８…受容体、Ｍ…マーカ、１１…中央処理ユニット（ＣＰＵ）、１２…バス、１３…プログラムメモリ、１４…データメモリ、１５…カメラインタフェース（カメラＩ／Ｆ）、１６…プロジェクタインタフェース（プロジェクタＩ／Ｆ）、１７…外部インタフェース（外部Ｉ／Ｆ）、１８…入出力インタフェース（入出力Ｉ／Ｆ）、１９…入力デバイス、２０…表示デバイス、１３１…受容体位置検出プログラム、１３２…オブジェクト生成プログラム、１３３…カーソル生成プログラム、１３４…噴出制御プログラム、ＶCA…第１のカーソル画像、ＶCB…第２のカーソル画像、ＶCC…第３のカーソル画像、ＶB …操作ボタンのオブジェクト画像、ＶO …構造物のオブジェクト画像、ＶS …受容体による影。
【図１】
2009080702.tif 000003
【図２】
2009080702.tif 000004
【図３】
2009080702.tif 000005
【図４】
2009080702.tif 000006
【図５】
2009080702.tif 000007
【図６】
2009080702.tif 000008
【図７】
2009080702.tif 000009
【図８】
2009080702.tif 000010
【図９】
2009080702.tif 000011
【図１０】
2009080702.tif 000012
【図１１】
2009080702.tif 000013