WO2017077636A1 - シミュレーションシステム - Google Patents

シミュレーションシステム Download PDF

Info

Publication number
WO2017077636A1
WO2017077636A1 PCT/JP2015/081304 JP2015081304W WO2017077636A1 WO 2017077636 A1 WO2017077636 A1 WO 2017077636A1 JP 2015081304 W JP2015081304 W JP 2015081304W WO 2017077636 A1 WO2017077636 A1 WO 2017077636A1
Authority
WO
WIPO (PCT)
Prior art keywords
article
pointer
unit
data
vibration
Prior art date
Application number
PCT/JP2015/081304
Other languages
English (en)
French (fr)
Inventor
幸宏 陽奥
遠藤 康浩
祐 中山
鈴木 達也
Original Assignee
富士通株式会社
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2015/081304 priority Critical patent/WO2017077636A1/ja
Publication of WO2017077636A1 publication Critical patent/WO2017077636A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

制御性を改善したシミュレーションシステムを提供する。 シミュレーションシステムは、物品の画像を表示する表示部と、表示部に表示されるポインタを操作する操作端末機と、操作端末機の位置及び姿勢を検出する第1検出部と、表示部の座標系における操作端末機の位置を検出する第2検出部と、利用者の視線の位置及び方向を検出する第3検出部と、視線ベクトルを算出する第1ベクトル算出部と、端末ベクトルを算出する第2ベクトル算出部と、視線ベクトルと端末ベクトルの接近度合に基づきポインタの移動目標点を求める位置算出部と、移動目標点に基づいて求まる現在のポインタの位置にポインタを表示させる出力部と、現在のポインタの位置と物品の位置とに基づきポインタと物品が接触しているかどうか、又は、移動目標点の位置と物品データが表す物品の位置とに基づき所定時間経過後にポインタと物品が接触するかどうかを判定する判定部とを含む。

Description

シミュレーションシステム
 本発明は、シミュレーションシステムに関する。
 従来より、ユーザに仮想物体との接触を知覚させる接触提示装置であって、ユーザに装着される複数の刺激発生手段と、ユーザと仮想物体の異なる面が接触した場合に、前記刺激発生手段で異なる刺激を発生させるように制御を行う制御部を備えることを特徴とする接触提示装置がある(例えば、特許文献1参照)。
特開2008-108054号公報
 ところで、従来の接触提示装置は、カメラで取得した画像に基づいて、ユーザ(利用者)の腕と仮想物体の異なる面が接触したかどうかを判定する際に、ユーザの腕がユーザの体の他の部分の陰になったような場合にユーザの腕の位置を検出できなくなり、接触の有無の判定に用いる位置データを取得できない場合がある。
 このように接触の有無の判定に用いる位置データを取得できない場合には、接触したかどうかを判定できなくなり、制御性が低下するおそれがある。また、ユーザの腕の位置を再度検出した場合においても、位置データの認識等に時間がかかることで制御性が低下するおそれがある。
 そこで、制御性を改善したシミュレーションシステムを提供することを目的とする。
 本発明の実施の形態のシミュレーションシステムは、物品の形状と位置を表す物品データに基づいて前記物品の画像を表示する表示部と、利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、前記物品データを格納するデータ格納部と、前記操作端末機の位置及び姿勢を検出する第1検出部と、前記第1検出部によって検出される前記位置及び姿勢に基づき、前記表示部の座標系における操作端末機の位置を検出する第2検出部と、利用者の視線の位置及び方向を検出する第3検出部と、前記第3検出部によって検出される前記視線の位置及び方向に基づき、前記表示部の座標系における前記視線の位置及び方向を表す視線ベクトルを算出する第1ベクトル算出部と、前記第1検出部による検出時点の異なる複数の前記位置及び姿勢に基づく複数時点の前記操作端末機の位置をそれぞれ表す複数の位置データを保持する保持部と、前記保持部に保持される前記複数の位置データに基づき、前記操作端末機の位置及び移動方向を表す端末ベクトルを算出する第2ベクトル算出部と、前記視線ベクトルと前記端末ベクトルとの接近度合に基づき、前記ポインタの移動目標の位置と推定される移動目標点の位置を求める位置算出部と、前記移動目標点の位置に基づいて求まる現在の前記ポインタの位置に、前記表示部に前記ポインタを表示させる出力部と、前記移動目標点の位置に基づいて求まる現在の前記ポインタの位置と、前記物品データが表す前記物品の位置とに基づき、前記ポインタと前記物品とが接触しているかどうか、又は、前記移動目標点の位置と、前記物品データが表す前記物品の位置とに基づき、所定時間の経過後に前記ポインタと前記物品とが接触するかどうかを判定する判定部とを含む。
 制御性を改善したシミュレーションシステムを提供することができる。
実施の形態1のシミュレーションシステムを示す図である。 図1に示す処理装置の内部構成を示す図である。 実施の形態1の処理装置が適用されるコンピュータシステムの斜視図である。 コンピュータシステムの本体部内の要部の構成を説明するブロック図である。 操作端末機を示す斜視図である。 振動モータを示す図である。 操作端末機の電気系の構成を示す図である。 振動データを示す図である。 形状データを示す図である。 物品の画像の一例を示す図である。 スクリーンに投影される画像の中におけるポインタの座標の時間変化の一例を示すデータである。 移動目標点の座標の算出方法を説明する図である。 ポインタ履歴データの一例を示す図である。 実施の形態1の処理装置が実行する処理を示すフローチャートである。 実施の形態1のシミュレーションシステム100の利用シーンを示す図である。 物品にポインタが接触した場合の触感の提供の仕方を示す図である。 ポインタで触れる物品の部位と、振動パターンとの関係を表す図である。 ポインタで触れる物品の部位と、振動パターンとの関係を表す図である。 ポインタで触れる物品の材質と、振動パターンとの関係を表す図である。 ポインタで触れる物品の材質と、振動パターンとの関係を表す図である。 実施の形態1の第1変形例を示す図である。 実施の形態1の第2変形例を示す図である。 実施の形態1の第3変形例を示す図である。 実施の形態1の第3変形例を示す図である。 実施の形態1の第3変形例を示す図である。 実施の形態1の第3変形例による操作端末機の電気系の構成を示す図である。 実施の形態1の第4変形例のヘルメットを示す図である。 実施の形態2の操作端末機を示す斜視図である。 実施の形態2の振動データを示す図である。 実施の形態1の処理装置が実行する処理を示すフローチャートである。 ポインタで触れる物品の部位と、振動パターンとの関係を表す図である。 ポインタで触れる物品の材質と、振動パターンとの関係を表す図である。 実施の形態2の変形例を示す図である。 実施の形態2の変形例を示す図である。 実施の形態2の変形例を示す図である。 実施の形態2の変形例を示す図である。 実施の形態2の変形例を示す図である。 実施の形態2の変形例を示す図である。 実施の形態3のシミュレーションシステムの利用シーンを示す図である。 実施の形態3の処理装置が実行する処理を示すフローチャートである。
 以下、本発明のシミュレーションシステムを適用した実施の形態について説明する。
 <実施の形態1>
 図1は、実施の形態1のシミュレーションシステム100を示す図である。図2は、図1に示す処理装置120の内部構成を示す図である。
 シミュレーションシステム100は、スクリーン110A、投影装置110B、3D(3 Dimension)眼鏡110C、処理装置120、操作端末機130、及び位置計測装置140を含む。
 実施の形態1シミュレーションシステム100は、例えば、組み立て作業性を仮想空間において把握するため組立支援システムに適用することができる。組立支援システムでは、例えば、CPU(Central Processing Unit:中央演算処理装置)モジュール、メモリモジュール、通信モジュール、又はコネクタ等の電子部品をマザーボード等に組み付ける作業を仮想空間で模擬的に行うことができる。
 しかしながら、実施の形態1シミュレーションシステム100は、組立支援システムに限らず、三次元空間での作業性を確認する様々なシステムに適用することができる。
 スクリーン110Aは、例えば、プロジェクタ用スクリーンを用いることができる。スクリーン110Aのサイズは、用途に応じて適宜設定すればよい。スクリーン110Aには、投影装置110Bによって投影される画像が表示される。ここでは、物品111及び112の画像がスクリーン110Aに表示されていることとする。
 投影装置110Bは、スクリーン110Aに画像を投影できる装置であればよく、例えば、プロジェクタを用いることができる。投影装置110Bは、ケーブル110B1によって処理装置120に接続されており、処理装置120から入力される画像をスクリーン110Aに投影する。ここでは、投影装置110Bは、3D画像(立体視の画像)をスクリーン110Aに投影できるタイプのものである。
 なお、スクリーン110Aと投影装置110Bは、表示部の一例である。
 3D眼鏡110Cは、シミュレーションシステム100を利用する利用者が装着する。3D眼鏡110Cは、投影装置110Bによってスクリーン110Aに投影される画像を3D画像に変換できる眼鏡であればよく、例えば、入射光を偏光する偏光眼鏡、又は、液晶シャッターを有する液晶シャッター眼鏡を用いることができる。
 また、3D眼鏡110Cには、マーカ110C1が取り付けられている。マーカ110C1は、複数の球体を有し、位置計測装置140から照射される赤外線を様々な方向に反射させる。マーカ110C1は、位置計測装置140による利用者の視線ベクトルの検出に用いられる。
 マーカ110C1は、操作端末機130に取り付けられるマーカ132とは、反射用の球体の配置又は数が異なり、位置計測装置140から入力される画像データの中における反射光のパターンが異なる。
 マーカ110C1は、複数の球体の数、大きさ、配置等によって、マーカ110C1の位置(座標)だけでなく、マーカ110C1の向きが分かるようになっている。このため、処理装置120が実行する画像処理によって、マーカ110C1の位置と、向いている方向を検出することができる。3D眼鏡110Cを掛けた利用者が正面を見る方向と、マーカ110C1が向いている方向とが一致するように、マーカ110C1を3D眼鏡110Cに取り付ければよい。
 なお、スクリーン110A及び投影装置110Bの代わりに、例えば、液晶ディスプレイパネルを用いてもよい。また、3D眼鏡110Cが不要な場合は、3D眼鏡110Cを用いなくてもよい。また、スクリーン110A及び投影装置110Bの代わりに、ヘッドマウントディスプレイを用いてもよい。
 処理装置120は、位置検出部121、履歴保持部122、視線検出部123、ベクトル算出部124A、124B、位置算出部125、映像出力部126、データ格納部127、接触判定部128、駆動制御部129、及び通信部120Aを有する。処理装置120は、例えば、メモリを有するコンピュータによって実現される。
 位置検出部121は、位置計測装置140から入力される画像データに対してパターンマッチング等の画像処理を行い、マーカ132からの反射光に基づいてマーカ132の位置と姿勢を検出する。
 マーカ132の位置は、3次元座標における座標値で表され、姿勢は、3次元座標の3軸方向に対する角度で表される。位置検出部121は、3次元座標におけるマーカ132の座標及び角度をスクリーン110Aに投影される画像の中の座標及び角度に変換し、マーカ132の位置及び角度を表す座標データ及び角度データとして履歴保持部122に出力する。
 マーカ132は、操作端末機130の位置を検出するために設けられているので、マーカ132の位置及び角度は、操作端末機130の位置及び角度を表すデータとして取り扱うことができる。
 このため、以下では、位置検出部121によって検出されるマーカ132の位置及び角度を操作端末機130の位置及び角度として説明する。
 なお、マーカ132とマーカ110C1は、反射用の球体の配置又は数が異なり、位置計測装置140から入力される画像データの中における反射光のパターンが異なるため、位置検出部121は、マーカ132からの反射光に基づいて操作端末機130の位置と姿勢を検出する。位置検出部121は、第2検出部の一例である。
 なお、操作端末機130の位置と姿勢の検出は、位置計測装置140で行ってもよい。
 履歴保持部122は、位置検出部121から出力される操作端末機130の位置を表す座標と、姿勢を表す角度とを保持する。履歴保持部122は、メモリを有するコンピュータによって実現される処理装置120のうちのメモリの一部によって実現される。また、履歴保持部122は、コンピュータのうちのレジスタのようにデータを保持できる部分によって実現されてもよい。
 履歴保持部122は、処理装置120がシステムクロックに基づいて制御周期を繰り返している間に位置検出部121から出力される操作端末機130の位置を表す座標と角度を保持する。履歴保持部122には、複数の制御周期において生成される操作端末機130の座標を表すデータ(座標データ)と、角度を表すデータ(角度データ)とが履歴として保持される。
 なお、履歴保持部122が保持する操作端末機130の座標データ及び角度データについては後述する。
 視線検出部123は、位置計測装置140から入力される画像データに対してパターンマッチング等の画像処理を行い、マーカ110C1からの反射光に基づいて利用者の視線の位置及び方向(姿勢)を検出する。視線検出部123は、第3検出部の一例である。
 利用者の視線の位置及び方向(姿勢)は、3次元座標における座標値で表され、方向(姿勢)は、3次元座標の3軸方向に対する角度で表される。
 視線検出部123は、3次元座標におけるマーカ110C1の座標及び角度をスクリーン110Aに投影される画像の中の座標及び角度に変換し、利用者の視線の位置及び方向(姿勢)を表す位置データ及び角度データとして出力する。
 ベクトル算出部124Aは、履歴保持部122によって保持される、複数の制御周期の処理で得られた操作端末機130の座標を表すデータを読み出し、スクリーン110Aに投影される画像の中の座標における操作端末機130のベクトルを表す端末ベクトルを算出する。ベクトル算出部124Aは、第2ベクトル算出部の一例である。
 端末ベクトルは、複数の制御周期において、位置検出部121から出力される複数の操作端末機130の座標によって規定される。このため、端末ベクトルは、利用者が手で移動させる操作端末機130の軌跡を表す。
 ベクトル算出部124Bは、視線検出部123によって検出される利用者の視線の位置及び方向(姿勢)を表す座標に基づいて、利用者の視線の位置及び方向を表す視線ベクトルを算出する。ベクトル算出部124Bは、第1ベクトル算出部の一例である。
 位置算出部125は、ベクトル算出部124Aによって算出される端末ベクトルと、ベクトル算出部124Bによって算出される視線ベクトルとに基づき、ポインタ130Aの移動目標点の座標(位置)を求める。
 ポインタ130Aの移動目標点とは、利用者が操作端末機130を手で移動させることによって、スクリーン110Aに投影される画像の中で移動するポインタ130Aを移動させたい目標点として推定される位置である。移動目標点の座標(位置)は、移動目標点の座標(X,Y,Z)を表す。
 処理装置120は、一例として、端末ベクトルと視線ベクトルとが交差する点、又は、交差しない端末ベクトルと視線ベクトルとが最も接近する点同士の中点として、移動目標点を求める。なお、移動目標点の求め方については後述する。
 また、位置算出部125は、移動目標点の座標と到着姿勢、最も新しい制御周期における操作端末機130の座標データ及び角度データ等に基づいて、現在のポインタ130Aの座標データ及び角度データを算出する。現在のポインタ130Aの座標データ及び角度データの算出方法については後述する。位置算出部125は、現在のポインタ130Aの座標データ及び角度データを映像出力部126に出力する。
 映像出力部126の出力端子は、ケーブル110B1によって投影装置110Bに接続されている。映像出力部126は、データ格納部127に保持される物品111及び112の物品データによって特定される画像を投影装置110Bに出力し、スクリーン110Aに表示させる。
 また、映像出力部126は、投影装置110Bにポインタ130Aを表示させる。スクリーン110Aに表示される画像内におけるポインタ130Aの位置は、位置算出部125で算出される現在のポインタ130Aの座標データによって決まる。映像出力部126は、出力部の一例である。
 データ格納部127は、物品111及び112の座標と形状を表す物品データ、物品111及び112の触感に応じた振動パターンを表す振動データ、及びポインタ130Aの画像データ等のデータを保持する。データ格納部127は、メモリによって実現され、データ格納部の一例である。
 接触判定部128は、スクリーン110Aに投影される物品111又は112の画像と、スクリーン110Aに表示される操作端末機130のポインタ130Aとが接触したかどうかを判定する。
 接触判定部128は、スクリーン110Aに投影される物品111又は112の形状及び位置を表すデータと、ポインタ130Aの現在の位置を表すデータとを用いて、物品111又は112の画像と、ポインタ130Aとが接触したかどうかを判定する。
 ここで、ポインタ130Aの現在の位置としては、位置算出部125によって算出される移動目標点の座標に基づいて求まる現在のポインタ130Aの位置を用いる。接触判定部128は、移動目標点の座標に基づいて求まる現在のポインタ130Aと、物品111又は112とがスクリーン110Aに投影される画像の中で接触しているかどうかを判定する。接触判定部128は、判定部の一例である。
 なお、移動目標点の座標に基づいて求まる現在のポインタ130Aと、物品111又は112の画像との接触の判定手法については後述する。
 駆動制御部129は、接触判定部128によって物品111又は112の画像と、ポインタ130Aとが接触したと判定されると、ポインタ130Aが接触した物品111又は112の部位の触感に応じた振動パターンの駆動信号を出力する。この駆動信号は、操作端末機130の振動素子を駆動する信号である。
 通信部120Aは、操作端末機130と無線通信を行う通信部であり、例えば、Bluetooth(登録商標)又はWiFi(Wireless Fidelity)等の規格で無線通信を行うことができる。通信部120Aは、駆動制御部129によって生成される駆動信号を操作端末機130に送信する。なお、通信部120Aは、操作端末機130と有線通信を行う通信部であってもよい。
 操作端末機130は、シミュレーションシステム100を利用する利用者が手に保持し、スクリーン110Aに表示されるポインタ130Aの位置をコントロールする端末機である。操作端末機130は、マーカ132と振動素子133R及び133Lとを有する。
 マーカ132は、複数の球体を有し、位置計測装置140から照射される赤外線を様々な方向に反射させる。マーカ132は、位置計測装置140による操作端末機130の位置検出に用いられる。
 振動素子133R及び133Lは、それぞれ、操作端末機130の右側及び左側に振動を発生させるために設けられている。また、振動素子133R及び133Lは、駆動制御部129によって生成される駆動信号が表す物品111又は112の触感に応じた振動パターンによって駆動される。振動素子133R及び133Lは、可動素子の一例である。
 なお、操作端末機130の詳細については後述する。
 位置計測装置140は、赤外線カメラ140A、140B、及び140Cを有し、それぞれ、ケーブル141A、141B、及び141Cによって位置検出部121に接続されている。赤外線カメラ140A、140B、及び140Cは、操作端末機130と、3D眼鏡110Cを装着している利用者とに赤外線を照射し、マーカ110C1及び132で反射された反射光を撮影する。位置計測装置140は、赤外線カメラ140A、140B、及び140Cが出力する画像データを位置検出部121及び視線検出部123に転送する。
 位置計測装置140は、操作端末機の位置及び姿勢を検出する第1検出部の一例であるとともに、利用者の視線の位置及び方向を検出する第3検出部の一例である。
 図3は、実施の形態1の処理装置120が適用されるコンピュータシステムの斜視図である。図3に示すコンピュータシステム10は、本体部11、ディスプレイ12、キーボード13、マウス14、及びモデム15を含む。
 本体部11は、CPU(Central Processing Unit:中央演算装置)、HDD(Hard Disk Drive:ハードディスクドライブ)、及びディスクドライブ等を内蔵する。ディスプレイ12は、本体部11からの指示により画面12A上に解析結果等を表示する。ディスプレイ12は、例えば、液晶モニタであればよい。キーボード13は、コンピュータシステム10に種々の情報を入力するための入力部である。マウス14は、ディスプレイ12の画面12A上の任意の位置を指定する入力部である。モデム15は、外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする。
 コンピュータシステム10に処理装置120としての機能を持たせるプログラムは、ディスク17等の可搬型記録媒体に格納されるか、モデム15等の通信装置を使って他のコンピュータシステムの記録媒体16からダウンロードされ、コンピュータシステム10に入力されてコンパイルされる。
 コンピュータシステム10に処理装置120としての機能を持たせるプログラムは、コンピュータシステム10を処理装置120として動作させる。このプログラムは、例えばディスク17等のコンピュータ読み取り可能な記録媒体に格納されていてもよい。コンピュータ読み取り可能な記録媒体は、ディスク17、ICカードメモリ、フロッピー(登録商標)ディスク等の磁気ディスク、光磁気ディスク、CD-ROM、USB(Universal Serial Bus)メモリ等の可搬型記録媒体に限定されるものではない。コンピュータ読み取り可能な記録媒体は、モデム15又はLAN等の通信装置を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
 図4は、コンピュータシステム10の本体部11内の要部の構成を説明するブロック図である。本体部11は、バス20によって接続されたCPU21、RAM又はROM等を含むメモリ部22、ディスク17用のディスクドライブ23、及びハードディスクドライブ(HDD)24を含む。実施の形態1では、ディスプレイ12、キーボード13、及びマウス14は、バス20を介してCPU21に接続されているが、これらはCPU21に直接的に接続されていてもよい。また、ディスプレイ12は、入出力画像データの処理を行う周知のグラフィックインタフェース(図示せず)を介してCPU21に接続されていてもよい。
 コンピュータシステム10において、キーボード13及びマウス14は、処理装置120の入力部である。ディスプレイ12は、処理装置120に対する入力内容等を画面12A上に表示する表示部である。
 なお、コンピュータシステム10は、図3及び図4に示す構成のものに限定されず、各種周知の要素を付加してもよく、又は代替的に用いてもよい。
 図5は、操作端末機130を示す斜視図である。
 操作端末機130は、筐体131、マーカ132、振動素子133R、133L、ボタン134、及びガイドバー135を有する。
 操作端末機130は、ポインタ130Aの位置の指標となるガイドバー135をスクリーン110Aに向けて利用者が手で持つため、スクリーン110Aに向いた利用者にとって右側に振動素子133Rが位置し、左側に振動素子133Lが位置する。
 また、以下では、左右を表す場合には、ガイドバー135をスクリーン110Aに向けて操作端末機130を保持し、スクリーン110Aを向く利用者を基準に左右の位置関係を表すこととする。
 また、筐体131の振動素子133R、133Lが設けられる面を上面と称し、ガイドバー135が取り付けられる側を前側と称す。
 筐体131は、筐体部131R及び131Lと、遮断部131Aとを有する。筐体部131R及び131Lには、それぞれ、振動素子133R及び133Lが配設されている。筐体部131R及び131Lは、振動素子133R及び133Lが配設される基板部の一例である。
 また、筐体部131Rと筐体部131Lとは、お互いの振動が伝達されないように遮断部131Aによって固定されている。
 すなわち、筐体部131Rと筐体部131Lとは、分断されており、互いの間は遮断部131Aによって接続されている。
 筐体部131R及び131Lは、例えば、樹脂製であり、利用者が手に持つのにちょうど良いサイズを有する。遮断部131Aは、例えば、防振構造を有するゴム部材であり、減衰比の高い防振ゴムを用いることができる。
 遮断部131Aは、振動素子133Rが駆動された場合に筐体部131Rに生じる振動が筐体部131Lに伝達されなくするとともに、振動素子133Lが駆動された場合に筐体部131Lに生じる振動が筐体部131Rに伝達されないようにするために設けられている。
 マーカ132は、複数の球体132Aとワイヤ132Bとを有する。複数の球体132Aは、ワイヤ132Bによって遮断部131Aに取り付けられている。
 マーカ132は、位置計測装置140による操作端末機130の位置と姿勢の検出に用いられるため、位置計測装置140から照射される赤外線を様々な方向に反射させる。マーカ132が反射する赤外線は、赤外線カメラ140A、140B、及び140Cによって撮像され、位置検出部121が画像処理を行うことによってマーカ132の位置と姿勢が検出される。マーカ132の位置と姿勢は、操作端末機130の位置と姿勢を表す。
 マーカ132は、規則性がない様々な方向に赤外線を反射できれば、球体の個数は幾つであってもよく、球体の位置についても特に限定はない。また、球体ではなくてもよいし、マーカ132の検出は、赤外線を用いる手法に限られない。操作端末機130の位置検出を行うことができるのであれば、マーカ132はどのようなものであってもよい。
 振動素子133R及び133Lは、それぞれ、筐体部131R及び131Lの上面に設けられている。振動素子133R及び133Lは、駆動制御部129によって生成される駆動信号が表す物品111又は112の触感に応じた振動パターンによって駆動される。
 振動素子133R及び133Lは、例えば、ピエゾ素子又はLRA(Linear Resonant Actuator)のような振動を発生する素子であればよい。振動素子133R及び133Lを駆動すると、筐体部131R及び131Lの表面に振動が発生する。
 ボタン134は、操作端末機130の機能が割り当てられており、複数あってもよい。機能としては、例えば、処理装置120との無線通信のオン/オフを切り替える機能、ポインタ130Aの表示の明るさを調整する機能等の様々な機能である。
 ガイドバー135は、遮断部131Aの前側に取り付けられている。ガイドバー135は、ポインタ130Aの位置の指標となる部材であり、スクリーン110Aにポインタ130Aが表示される位置を認識しやすくするために設けられている。ガイドバー135は、ここでは、一例として、細長い三角形状の板状部材である。
 ガイドバー135は、操作端末機130を手に持つ利用者が、スクリーン110Aに表示されるポインタ130Aの位置を移動させる際の指標又は基準点になるのであれば、どのような形状のものであってもよい。
 なお、ガイドバー135がなくても、利用者がポインタ130Aの位置を把握しやすいような場合には、操作端末機130は、ガイドバー135を含まなくてもよい。
 図6は、振動モータ133Aを示す図である。振動モータ133Aは、ベース133A1と、回転部133A2とを有する。ベース133A1の内部には、巻線コイルが設けられている。回転部133A2は、偏心構造を有し、回転するとベース133A1に振動が伝達する。このような振動モータ133Aを図5に示す振動素子133R及び133Lの代わりに用いてもよい。
 図7は、操作端末機130の電気系の構成を示す図である。ここでは、筐体131とガイドバー135を簡略化して示し、マーカ132、振動素子133R、133Lを省略する。
 操作端末機130は、振動素子133R、133L、ボタン134、通信部136、ボタン判定部137、及び信号生成部138を有する。なお、ボタン判定部137と信号生成部138は、例えば、マイクロコンピュータのような演算処理装置によって実現される。
 通信部136には、ボタン判定部137及び信号生成部138が接続されている。通信部136は、処理装置120の通信部120Aと無線通信を行う通信部であり、例えば、Bluetooth又はWiFi等の規格で無線通信を行う。
 通信部136は、ボタン判定部137から入力される信号を処理装置120に送信する。また、通信部136は、処理装置120の駆動制御部129によって生成される駆動信号を受信し、信号生成部138に出力する。
 ボタン判定部137は、ボタン134の操作の有無を判定する判定部であり、例えば、処理装置120との無線通信のオン/オフ、ポインタ130Aの表示の明るさを調整等の操作内容を判定する。ボタン判定部137は、操作内容を表す信号を通信部136に出力する。
 信号生成部138は、通信部136が受信する駆動信号を増幅して振動素子133R又は133Lを駆動する。なお、信号生成部138を駆動制御部として捉えてもよい。
 図8は、振動データを示す図である。
 振動データは、スクリーン110Aに表示する物品の触感に応じた振動パターンを表すデータである。振動データは、一例として、物品ID(Identification)、物品名称、材質、部位名称、振動強度、及び振動時間を有する。
 物品IDは、物品毎に割り当てられる識別子である。すべての物品は、互いに異なる物品IDを有する。図8には、例示的な物品IDとして、001,002,003,・・・を示す。
 物品名称は、物品の名称である。図8には、例示的な物品名称として、Plate, Connector, Cable,・・・を示す。
 材質は、物品の表面の材質を表す。図8には、例示的な材質として、Steel(鉄), PBT(Polybutylene terephthalate:ポリブチレンテレフタレート),PVC(polyvinyl chloride:ポリ塩化ビニル)を示す。
 部位名称は、物品の部位を表す。図8には、例示的な部位として、Corner(角)、Edge(辺)、Surface(面)を示す。Corner(角)とは、例えば、直方体の8つの頂点に位置する角である。また、Edge(辺)とは、直方体の12本の辺である。また、Surface(面)とは、直方体の6つの面である。また、球体の場合には、Corner(角)とEdge(辺)の名称は存在せず、Surface(面)のみが存在することになる。なお、部位名称は、直方体及び球体以外の様々な形状の物品に対応して割り当てられている。
 振動強度は、振動素子133R又は133Lを駆動する駆動信号の振幅(Vpp)を表す。振幅は、ピーク・トゥ・ピークの電圧値で示してある。振動強度は、一例として、Corner(角)が最も強く、Edge(辺)は中間的な強度であり、Surface(面)は最も弱い値に設定されている。
 Corner(角)、Edge(辺)、及びSurface(面)の中では、Corner(角)を触った場合の感触が最も強く、Surface(面)を触った場合の感触が最も弱く、Edge(辺)を触った場合の感触は、Corner(角)とSurface(面)の中間だからである。なお、この傾向は、一例として、すべての材質において同様に設定されている。
 振動時間は、振動素子133R又は133Lを駆動する時間(ms)を表す。振動時間は、一例として、Steel(鉄), PBT(ポリブチレンテレフタレート),PVC(ポリ塩化ビニル)で異なるように設定されている。Steel(鉄)の振動時間が最も短く、PVC(polyvinyl chloride:ポリ塩化ビニル)の振動時間が最も長く、PBT(ポリブチレンテレフタレート)の振動時間は、Steel(鉄)とPVC(polyvinyl chloride:ポリ塩化ビニル)の中間である。
 Steel(鉄)は、これら3つの材質の中では最もヤング率が大きく、振動が短い時間で収束するからである。また、PVC(ポリ塩化ビニル)は、これら3つの材質の中では最もヤング率が小さく、振動が収束するまでに最も時間がかかるからである。PBT(ポリブチレンテレフタレート)のヤング率は、これら3つの材質の中では中間的な値だからである。
 以上のような振動データは、現実世界で物品の表面を手で触った場合の触感を振動素子133R又は133Lの振動によって再現するために、部位に応じて振動強度と振動時間が設定されている。
 なお、振動データは、処理装置120のデータ格納部127に格納されている。
 図9は、形状データを示す図である。
 物品データは、スクリーン110Aに表示する物品の座標と形状を表すデータである。物品データは、物品ID、形状タイプ、基準座標、サイズ、及び回転角度を有する。
 形状タイプは、物品の外形を表す。図9では、一例として、形状タイプがCuboid(直方体)とCylinder(円柱体)を示す。
 基準座標は、物品の全体を表す座標の基準になる点の座標値を示す。座標値の単位はメートル(m)である。なお、座標系としては、XYZ座標系を用いる。
 サイズは、物品のX軸方向の長さ、Y軸方向の長さ、Z軸方向の長さを表す。単位はメートル(m)である。一例として、X軸方向の長さは縦の長さを表し、Y軸方向の長さは高さを表し、Z軸方向の長さは奥行き(横方向の長さ)を表す。
 回転角度は、X軸方向、Y軸方向、Z軸方向に対する回転角度θx、θy、θzで表される。単位は度(deg.)である。回転角度θxは、X軸を回転軸として物品を回転させる角度である。同様に、回転角度θy及びθzは、それぞれ、Y軸及びZ軸を回転軸として物品を回転させる角度である。回転角度θx、θy、θzの正方向は、予め決めておけばよい。
 このような物品データを用いれば、CADデータによって表示される物品の画像と同様に、物品データによって特定される画像を表すことができる。
 なお、物品データは、処理装置120のデータ格納部127に格納されている。
 図10は、物品の画像の一例を示す図である。
 図10には、図9の物品データによって表される3つの物品を示す。
 物品IDが001の物品は、形状タイプがCuboid(直方体)で、基準座標(X,Y,Z)が(0.0,0.0,0.0)であり、サイズが(0.8,0.2,0.4)であり、回転角度θx、θy、θzが(0.0,0.0,0.0)である。
 基準座標(X,Y,Z)が(0.0,0.0,0.0)であるため、物品IDが001の物品の1つの頂点は、XYZ座標系の原点Oと一致している。
 物品IDが002の物品は、形状タイプがCuboid(直方体)で、基準座標(X,Y,Z)が(0.6,0.2,0.0)であり、サイズが(0.2,0.2,0.1)であり、回転角度θx、θy、θzが(0.0,0.0,0.0)である。
 このため、物品IDが002の物品は、物品IDが001の物品の上に配置されている。
 物品IDが003の物品は、形状タイプがCylinder(円柱体)で、基準座標(X,Y,Z)が(0.8,0.3,0.1)であり、サイズが(0.2,1.0,0.3)であり、回転角度θx、θy、θzが(0.0,0.0,90.0)である。
 このため、物品IDが003の物品は、Z軸を回転軸として90度回転させた状態で、物品IDが002の物品のX軸正方向側に接続されている。
 なお、上述のように、実施の形態1では、図9に示す物品ID、形状タイプ、基準座標、サイズ、及び回転角度を有する物品データを用いて、スクリーン110Aに投影される画像の中における物品の座標と形状を規定する。
 例えば、形状タイプがCuboid(直方体)の場合に、8つの頂点の座標は、基準座標に対して、サイズで表される物品のX軸方向の長さ、Y軸方向の長さ、Z軸方向の長さを加算又は減算することによって求めることができる。8つの頂点の座標は、形状タイプがCuboid(直方体)の物品のCorner(角)の座標を表す。
 8つの頂点の座標を求めれば、12本の辺を表す式を求めることができる。12本の辺を表す式は、形状タイプがCuboid(直方体)の物品のEdge(辺)の座標を表す式である。
 また、8つの頂点の座標、及び/又は、12本の辺を表す式を求めれば、形状タイプがCuboid(直方体)の物品の6つの表面を表す式が求まり、Surface(面)の座標を求めることができる。
 また、形状タイプがCylinder(円柱体)の場合には、サイズで表される物品のX軸方向の長さ、Y軸方向の長さ、Z軸方向の長さに基づいて、円柱の両端にある円(又は楕円)を表す式を求めることができる。また、両端の円(又は楕円)を表す式と基準座標とを用いれば、両端の円(又は楕円)の座標を表す式を求めることができる。円柱体の側面の座標は、両端の円(又は楕円)の座標を表す式を用いることよって求めることができる。
 ここでは、形状タイプがCuboid(直方体)とCylinder(円柱体)の物品について説明したが、球体、三角錐、凹部を有する直方体等の様々な形状の物品についても、同様にスクリーン110Aに投影される画像の中における座標と形状を求めることができる。
 図11は、端末履歴データの一例を示す図である。図11に示す端末履歴データは、操作端末機130の座標データ及び角度データの履歴を表し、履歴保持部122によって保持される。
 シミュレーションシステム100の利用を開始する際に、操作端末機130の位置のキャリブレーションを行う。キャリブレーションは、位置検出部121で検出する操作端末機130の初期の位置と、スクリーン110Aに表示される画像(仮想空間)の中におけるポインタ130Aの位置とを関連付ける処理である。ポインタ130Aの位置は、物品の物品データを表すXYZ座標系で表される。
 このように、シミュレーションシステム100の利用を開始する際に、操作端末機130の位置のキャリブレーションを行うことにより、スクリーン110Aに表示される画像の中におけるポインタ130Aの初期の位置が決まる。
 図11には、端末履歴データに含まれるパラメータとして、端末ID、Index、時間、X、Y、Z座標、回転角度θx、θy、θzを示す。各パラメータの単位は、図11に示す通りである。
 端末IDは、操作端末機130毎に割り当てられる識別子である。Indexは、操作端末機130の座標データ及び角度データを取得した制御周期(制御サイクル)のサイクル数を表す。時間は、測定開始からの経過時間を表す。
 ここで、Indexが表す制御周期のサイクル数は、位置検出部121によって管理されている。位置検出部121は、実行中の制御周期のサイクル数を監視している。換言すれば、位置検出部121は、現在の制御周期のサイクル数を表すデータを保持している。このように、処理装置120の制御周期のサイクル数は、位置検出部121によって管理されている。
 処理装置120は、制御周期毎に(制御周期の1サイクルの時間が経過する度に)、操作端末機130の座標及び角度を検出できるかどうか判定し、検出した操作端末機130の座標及び角度を図11に示す操作端末機130の座標データ及び角度データに変換して、端末履歴データを作成する。
 操作端末機130の座標データ及び角度データを含む端末履歴データは、履歴保持部122によって保持される。履歴保持部122は、現在及び/又は過去の複数の制御周期で得られる操作端末機130の座標データ及び角度データを保持する。
 図11には、制御周期が0.01ms(ミリ秒)の場合に得られる端末履歴データを示す。最も新しい操作端末機130の座標データ及び角度データは、Indexが表すサイクル数が最も大きい座標データ及び角度データであり、換言すれば、測定開始からの経過時間が最も長いデータになる。図11では、Indexが3で、経過時間が0.03msの座標データ及び角度データが最も新しい。
 最も新しい座標データ及び角度データは、現在の制御周期、直前の制御周期、又はそれ以前の制御周期で得られたものである。なお、直前の制御周期とは、現在の制御周期の1つ前の制御周期である。古い座標データ及び角度データほど、Indexが表すサイクル数が小さくなる。
 なお、履歴保持部122は、少なくとも2つの制御周期における操作端末機130の座標データ及び角度データを保持すればよい。図11には、一例として、3つの制御周期における操作端末機130の座標データ及び角度データを示す。新たな制御周期における操作端末機130の座標データ及び角度データを取得すると、最も古い制御周期における操作端末機130の座標データ及び角度データを削除することにより、履歴データに3つの制御周期における操作端末機130の座標データ及び角度データが登録されるようになっている。
 次に、ベクトル算出部124Aによる端末ベクトルの算出、ベクトル算出部124Bによる視線ベクトルの算出、位置算出部125による移動目標点の座標の算出、操作端末機130を移動速度の算出方法、移動目標点における操作端末機130の姿勢の算出方法、及び、現在のポインタ130Aの座標データ及び角度データの算出について説明する。
 ここでは、端末履歴データに登録されている複数の制御周期における操作端末機130の座標データ及び角度データのうち、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データを用いる形態について説明する。
 ベクトル算出部124Aによる端末ベクトルの算出は、履歴保持部122によって保持されている端末履歴データの複数の制御周期における操作端末機130の座標データ及び角度データを用いて、次のように行われる。
 ベクトル算出部124Aは、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データとを用いて端末ベクトルを算出する。
 最も新しい制御周期における操作端末機130の座標データ及び角度データは、Indexの値が最も大きいものである。最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データは、Indexの値が2番目に大きいものである。
 最も新しい制御周期と、最も新しい制御周期の直前(1つ前)の制御周期と操作端末機130の座標データ及び角度データのX、Y、Z座標、回転角度θx、θy、θzの差を用いれば、X、Y、Z軸方向の変化量と、回転角度θx、θy、θzの変化量とを求めることができる。そして、最も新しい制御周期の直前(1つ前)の制御周期と操作端末機130の座標データ及び角度データを始点の座標及び角度として用いれば、端末ベクトルを算出することができる。
 なお、ここでは、一例として、端末履歴データの複数の制御周期における操作端末機130の座標データ及び角度データを用いて端末ベクトルを算出する形態について説明するが、他の方法で端末ベクトルを算出することもできる。
 例えば、図11に示す3つの制御周期における操作端末機130の座標データ及び角度データのX、Y、Z座標、回転角度θx、θy、θzの各々の値の変化分の近似値を最小二乗法で求めてもよい。この場合に、端末ベクトルの始点は、3つの制御周期のうちのいずれか1つの制御周期における操作端末機130の座標データ及び角度データのX、Y、Z座標、回転角度θx、θy、θzの値に設定すればよい。
 また、例えば、履歴保持部122によって保持されている複数の制御周期における操作端末機130の座標データ及び角度データのうち、最も新しい制御周期と、最も新しい制御周期の直前(1つ前)の制御周期との組み合わせ以外の制御周期の組み合わせを利用して、端末ベクトルを算出してもよい。
 次に、ベクトル算出部124Bによる視線ベクトルの算出方法について説明する。
 ベクトル算出部124Bは、視線検出部123から出力される利用者の位置データ及び角度データに基づいて視線ベクトルを算出する。ここで、視線検出部123から出力される位置データが(Xu,Yu,Zu)、角度データが(θxu,θyu,θzu)であるとする。
 ベクトル算出部124Bは、位置データ(Xu,Yu,Zu)を始点とし、角度データ(θxu,θyu,θzu)が表す方向を有するベクトルとして、視線ベクトルを算出する。ここでは、一例として、最も新しい制御周期において視線検出部123によって検出される、位置データ(Xu,Yu,Zu)と角度データ(θxu,θyu,θzu)に基づいて、視線ベクトルを算出することとする。
 以上のようにして、視線ベクトルを算出することができる
 次に、位置算出部125による移動目標点の座標を算出する方法について説明する。
 図12は、移動目標点の座標の算出方法を説明する図である。
 図12には、端末ベクトルm、視線ベクトルnを示す。端末ベクトルmは、操作端末機130の軌道を表し、視線ベクトルnは、視線の位置及び方向を表す。ここでは、端末ベクトルmと視線ベクトルnが、交点を有しない場合について説明する。
 また、図12において、点Aは、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ(X,Y,Z)で表される点である。また、点Bは、最も新しい制御周期の直前(1つ前)の制御周期における、スクリーン110Aに投影される画像の中の座標におけるマーカ110C1の位置である。点Bの座標は、ベクトル算出部124Bが算出する視線ベクトルの始点の位置データ(Xu,Yu,Zu)で特定される。
 また、図12に示す点Sは、端末ベクトルmの軌道上において、視線ベクトルnに最も近い点(最近点)であり、点Tは、視線ベクトルnの軌道上において、端末ベクトルmに最も近い点(最近点)である。また、点Aと最近点Sの距離をDm、点Bと最近点Tの距離をDnとする。また、点Gは、移動目標点である。なお、原点をOとする。
 ここでは、移動目標点Gは、最近点Sと、最近点Tとの中点として求める。操作端末機130の軌道を表す端末ベクトルmと、視線の位置及び方向を表す視線ベクトルnとの中点は、利用者がポインタ130Aを移動させたいと思っている目標点に近い点のうちの1つとして考えることができるからである。このように、利用者がポインタ130Aを移動させたいと思っている目標点を移動目標点Gとして近似的に求める。
 移動目標点Gは、端末ベクトルm、視線ベクトルn、点A、点B、最近点S、最近点T、距離Dm、距離Dnを用いて次のように求めることができる。
 まず、ベクトルSTは、原点Oを基準とするベクトルOTとベクトルOSを用いると、式(1)のように表すことができる。
Figure JPOXMLDOC01-appb-M000001
 ベクトルSTは、端末ベクトルm及び視線ベクトルnと直交するので、次式(2)、(3)が成立する。
Figure JPOXMLDOC01-appb-M000002
Figure JPOXMLDOC01-appb-M000003
 式(2)と式(3)の連立方程式より、距離Dm、距離Dnは、式(4)、(5)のように求まる。
Figure JPOXMLDOC01-appb-M000004
Figure JPOXMLDOC01-appb-M000005
 最近点Sと最近点Tは、式(4)、(5)から、次式(6)、(7)のように表すことができる。
Figure JPOXMLDOC01-appb-M000006
Figure JPOXMLDOC01-appb-M000007
 そして、式(8)により、最近点Sと最近点Tの中点として移動目標点Gを求めることができる。式(8)では移動目標点Gをベクトル表記で表すが、式(8)で移動目標点Gの座標(x,y,z)が得られる。
Figure JPOXMLDOC01-appb-M000008
 なお、ここでは、端末ベクトルmと視線ベクトルnが、交点を有しない場合において、最近点Sと、最近点Tとの中点として移動目標点Gを求める形態について説明した。
 しかしながら、移動目標点Gを最近点S又は最近点Tのいずれ一方にしてもよいし、最近点Sと最近点Tとの間にある点(中間点)にしてもよい。
 また、端末ベクトルmと視線ベクトルnが交点を有する場合には、端末ベクトルmと視線ベクトルnの交点を移動目標点Gにすればよい。
 次に、操作端末機130の移動速度の算出方法について説明する。
 操作端末機130の移動速度の算出は、履歴保持部122によって保持されている複数の制御周期における操作端末機130の座標データ及び角度データを用いて、次のように行われる。
 位置算出部125は、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データとを用いて操作端末機130の移動速度を算出する。
 最も新しい制御周期における操作端末機130の座標データ及び角度データを(x,y,z,θx0,θy0,θz0)、最も新しい制御周期における操作端末機130の座標データ及び角度データの取得時刻をTとする。
 また、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データを(x,y,z,θx1,θy1,θz1)、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データの取得時刻をTとする。
 操作端末機130の移動速度を(vx0,vy0,vz0)、角速度を(ωx0,ωy0,ωz0)とすると、操作端末機130の移動速度及び角速度は、それぞれ、次式(9)、(10)で表される。
Figure JPOXMLDOC01-appb-M000009
Figure JPOXMLDOC01-appb-M000010
 次に、移動目標点Gにおける操作端末機130の姿勢の算出方法について説明する。
 位置算出部125は、操作端末機130が移動目標点Gに到着するまでの所要時間Tと、移動目標点Gでの操作端末機130の姿勢(到着姿勢)とを求める。
 所要時間Tと到着姿勢(θxG,θyG,θzG)は、最近点S(x,y,z)、最も新しい制御周期における操作端末機130の座標データ及び角度データ(x,y,z,θx0,θy0,θz0)、移動速度(vx0,vy0,vz0)、角速度(ωx0,ωy0,ωz0)に基づいて、次式(11)、(12)のように算出される。
Figure JPOXMLDOC01-appb-M000011
Figure JPOXMLDOC01-appb-M000012
 なお、所要時間Tは、最も新しい制御周期の処理時刻から、操作端末機130が移動目標点Gに到着する到着時刻までの時間である。最も新しい制御周期の処理時刻は、最も新しい制御周期における操作端末機130の座標データ及び角度データの取得時刻Tである。
 次に、現在のポインタ130Aの座標データ及び角度データの算出方法について説明する。
 位置算出部125は、移動目標点Gの座標(x,y,z)と到着姿勢(θxG,θyG,θzG)、最も新しい制御周期における操作端末機130の座標データ及び角度データ(x,y,z,θx0,θy0,θz0)、所要時間T、取得時刻T、現在の時刻Tcに基づいて、現在のポインタ130Aの座標データ及び角度データを算出する。
 現在のポインタ130Aの座標データ(x,y,z)及び角度データ(θxc,θyc,θzc)は、次式(13)、(14)によって求められる。
Figure JPOXMLDOC01-appb-M000013
Figure JPOXMLDOC01-appb-M000014
 次に、図13を用いて、処理装置120が制御周期を繰り返し実行することにより、各制御周期で求められる現在のポインタ130Aの座標データ及び角度データを時系列的に登録したポインタ履歴データについて説明する。
 図13は、ポインタ履歴データの一例を示す図である。図13に示すポインタ履歴データは、各制御周期において位置算出部125がポインタ130Aの現在の位置データ及び角度データを算出する度に、ポインタ130Aの現在の位置を表す座標データを登録したものである。
 図13には、ポインタ履歴データに含まれるパラメータとして、ポインタID、Index、時間、X、Y、Z座標、回転角度θx、θy、θzを示す。各パラメータの単位は、図13に示す通りである。図13には、一例として、3つの制御周期におけるポインタ130Aの現在の位置データ及び角度データを示す。新たな制御周期におけるポインタ130Aの現在の位置データ及び角度データを取得すると、最も古い制御周期におけるポインタ130Aの現在の位置データ及び角度データを削除することにより、ポインタ履歴データに3つの制御周期におけるポインタ130Aの現在の位置データ及び角度データが登録されるようになっている。
 ポインタIDは、ポインタ130Aに割り当てられる識別子である。Indexと時間は、端末履歴データに含まれるIndexと時間と同様である。X、Y、Z座標、回転角度θx、θy、θzは、位置算出部125がポインタ130Aの現在の位置及び回転角度として求めるものである。
 なお、ポインタ履歴データは、少なくとも2つの制御周期におけるポインタ130Aの現在の位置データ及び角度データを保持すればよい。
 次に、実施の形態1の処理装置120が実行する処理について説明する。
 図14は、処理装置120が実行する処理を示すフローチャートである。ここでは、一例として、図1に示すように、スクリーン110Aに物品111及び112の画像を表示させる場合について説明する。
 処理装置120は、電源投入後に処理を開始する(スタート)。
 処理装置120は、データ格納部127から物品データと振動データを取得する(ステップS1)。
 処理装置120は、物品データを用いて映像信号を生成し、投影装置110Bに画像を投影させる(ステップS2)。これにより、スクリーン110Aに物品111及び112の立体視のモデルの画像が表示される。スクリーン110Aに表示される物品111及び112の画像は、仮想空間に存在する仮想物体を表す。
 なお、ステップS1及びS2の処理は、映像出力部126によって行われる。
 処理装置120は、位置計測装置140の赤外線カメラ140A、140B、及び140Cで得られた画像データに基づいて、操作端末機130の現実空間における位置と姿勢を検出する(ステップS3)。ステップS3の処理は、位置検出部121によって行われる。
 ここで、画像データにマーカ132の画像が含まれていない場合には、ステップS3では操作端末機130の現実空間における位置と姿勢は検出されない。画像データにマーカ132の画像が含まれている場合には、位置検出部121によって操作端末機130の位置データ及び角度データが算出される。
 処理装置120は、ステップS3において操作端末機130の位置と姿勢を検出されたかどうかを判定する(ステップS4)。ステップS3で操作端末機130の位置と姿勢が検出されていれば、操作端末機130の位置データ及び角度データが算出されている。
 処理装置120は、操作端末機130の位置と姿勢を検出された(S4:YES)と判定されると、操作端末機130の位置データ及び角度データを端末履歴データ(図11参照)に登録する(ステップS5)。
 処理装置120は、端末履歴データを読み出す(ステップS6)。ここでは、ベクトル算出部124A及び位置算出部125が、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データとを端末履歴データから読み出す。
 なお、処理装置120は、ステップS4において操作端末機130の位置と姿勢を検出されていない(S4:NO
)と判定した場合は、フローをステップS6に進行させる。
 処理装置120は、端末履歴データに登録された2つの制御周期における操作端末機130の座標データ及び角度データに基づいて、操作端末機130の移動速度を算出する(ステップS7A)。ここでは、一例として、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データとに基づいて、移動速度が算出される。
 なお、ステップS7Aの処理は、位置算出部125によって実行される。
 処理装置120は、端末履歴データに登録された2つの制御周期における操作端末機130の座標データ及び角度データに基づいて、端末ベクトルを算出する(ステップS7B)。ここでは、一例として、最も新しい制御周期における操作端末機130の座標データ及び角度データと、最も新しい制御周期の直前(1つ前)の制御周期における操作端末機130の座標データ及び角度データとに基づいて、端末ベクトルを算出される。
 なお、ステップS7Bの処理は、ベクトル算出部124Aによって実行される。また、ステップS7AとステップS7Bの処理は、平行して行われる。
 処理装置120は、位置計測装置140から入力される画像データに対してパターンマッチング等の画像処理を行い、マーカ110C1からの反射光に基づいてマーカ110C1の位置及び方向(姿勢)を検出する(ステップS8)。マーカ110C1の位置及び方向(姿勢)は、利用者の視線の位置及び方向(姿勢)を表す。ステップS8は、視線検出部123によって実行される処理である。
 また、ステップS8では、視線検出部123は、現実空間におけるマーカ110C1の位置及び方向(姿勢)をスクリーン110Aに投影される画像の中の座標及び角度に変換し、利用者の視線の位置及び方向(姿勢)を表す位置データ(Xu,Yu,Zu)及び角度データ(θxu,θyu,θzu)として出力する。
 処理装置120は、視線検出部123から出力される利用者の位置データ及び角度データに基づいて視線ベクトルを算出する(ステップS9)。視線ベクトルは、位置データ(Xu,Yu,Zu)を始点とし、角度データ(θxu,θyu,θzu)が表す方向を有するベクトルである。ステップS9の処理は、ベクトル算出部124Bによって実行される。なお、ステップS8及びS9の処理は、ステップS3、S4、S5、S6、S7A、及びS7Bの処理と平行して行われる。
 処理装置120は、ステップS7Bで算出された端末ベクトルと、ステップS9で算出された視線ベクトルとに基づき、ポインタ130Aの移動目標点Gの座標(位置)を求める(ステップS10)。ステップS10の処理は、位置算出部125によって実行される。
 処理装置120は、ステップS7Aで算出される操作端末機130の移動速度と、ステップS10で算出される移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する(ステップS11)。ステップS11の処理は、位置算出部125によって実行される。
 なお、ステップS11で算出されるポインタ130Aの現在の位置を表す座標データは、制御周期を繰り返す度に得られる。制御周期を繰り返す度に得られるポインタ130Aの現在の位置を表す座標データは、ポインタ履歴データとして処理装置120の内部メモリに保持しておけばよい。
 処理装置120は、ステップS11で算出されたポインタ130Aの現在の位置に基づき、投影装置110Bにポインタ130Aをスクリーン110Aに表示させる(ステップS12)。これにより、物品111及び112の立体視の画像が表示されているスクリーン110Aにポインタ130Aが表示される。
 処理装置120は、物品111又は112とポインタ130Aが接触したかどうかを判定する(ステップS13)。ステップS13の処理は、接触判定部128によって行われる。接触判定部128は、物品111及び112の物品データと、ステップS11で得られたポインタ130Aの座標データとに基づき、物品111又は112とポインタ130Aとが接触したかどうかを判定する。
 物品111又は112とポインタ130Aとが接触したかどうかは、物品111又は112の物品データが表す角、辺、又は面と、ポインタ130Aの座標データが表す位置との交点があるかどうかで判定すればよい。
 また、物品111又は112とポインタ130Aとが接触したかどうかは、ポインタ130Aの座標データと、座標データに最も近い物品データに含まれる座標との位置の差が所定値以下であるかどうかで判定してもよい。例えば、座標データに最も近い物品データに含まれる位置と、座標データが表す位置との差が所定値以下になった場合に接触したと判定する方が、シミュレーションシステム100における操作端末機130の操作性が良好である場合には、このような設定にすればよい。
 次に説明するステップS14では、一例として、物品111とポインタ130Aが接触したこととする。なお、物品112とポインタ130Aが接触した場合でも、同様の処理が行われる。
 処理装置120は、物品111とポインタ130Aが接触した(S13:YES)と判定すると、ポインタ履歴データに基づき、ポインタ130Aが物品111に接触した方向を算出する(ステップS14)。
 ポインタ履歴データは、ステップS11で得られる度に処理装置120の内部メモリに保持されている。
 接触した方向は、ポインタ履歴データに含まれる、接触の直前の座標が物品111に対して位置する方向に基づいて判定すればよい。なお、ステップS14の処理は、接触判定部128によって行われる。
 処理装置120は、物品111とポインタ130Aとが接触したときの交点の近傍領域内における物品111の部位を決定する(ステップS15)。
 ここで、近傍領域とは、例えば、物品111が一辺1mの長さを有する立方体である場合には、交点から±1cmの範囲の三次元領域を近傍領域とすればよい。
 また、部位の決定は、例えば、近傍領域内に、面、辺、又は角があるかどうかを判定し、角、辺、面の順に優先順位をつけて決定すればよい。すなわち、近傍領域内に、面、辺、及び角がある場合には、近傍領域内の部位は角であると決定すればよい。
 また、近傍領域内に、面と辺がある場合には、近傍領域内の部位は辺であると決定すればよい。また、近傍領域内に、面と角がある場合には、近傍領域内の部位は角であると決定すればよい。また、近傍領域内に、辺と角がある場合には、近傍領域内の部位は角であると決定すればよい。また、近傍領域内に、面、辺、又は角のいずれか1つがある場合には、存在する部位であると決定すればよい。
 処理装置120は、ポインタ130Aが接触した物品111の物品IDと、ステップS15で決定した部位とを用いて、振動データ(図8参照)から、接触点の近傍の物品の材質を読み出す(ステップS16)。
 例えば、物品IDが001で、部位が角である場合は、Steel(鉄)であると判定する。なお、図8には、物品IDが同一であれば、部位が異なっていても材質が等しい形態の振動データを示すが、部位によって材質が異なるように振動データが作成されていてもよい。
 処理装置120は、ポインタ130Aが接触した物品111の物品IDと、ステップS15で決定した部位とを用いて、振動データから振動強度と振動時間を読み出す(ステップS17)。
 処理装置120は、操作端末機130の振動素子133R又は133Lを駆動する駆動信号を生成し、通信部120Aを介して、操作端末機130に送信する(ステップS18)。この結果、操作端末機130の振動素子133R又は133Lが駆動される。
 駆動信号は、ステップS14で算出された接触の方向と、ステップS17で読み出した振動強度及び振動時間とに基づいて生成される。なお、ステップS15~S18の処理は、駆動制御部129が行う。
 以上で、一連の処理が終了する(エンド)。
 なお、ステップS13で物品111又は112とポインタ130Aが接触していない(S13:NO)と判定した場合は、フローをステップS1、S3、及びS8にリターンする。
 図15は、実施の形態1のシミュレーションシステム100の利用シーンを示す図である。
 図15に示すように、利用者は、マーカ110C1が取り付けられた3D眼鏡110Cを掛けて、手に持っている操作端末機130を移動させている。
 利用者が操作端末機130を実線で示す位置から破線で示す位置まで移動させると、ポインタ130Aは、実線で示す位置から破線で示す位置まで移動する。利用者は、操作端末機130を曲線L1に沿ってさらに移動させるようとしている。利用者がこのように操作端末機130を移動させているときに、処理装置120は、曲線L1に沿った端末ベクトルを算出する。
 また、利用者の視線は、直線L2で表されるように、スクリーン110Aに表示される物品111の頂点111αの方向を向いている。このように3D眼鏡110Cを掛けた利用者が頂点111αの方向を向いていると、処理装置120は、直線L2に沿った視線ベクトルを算出する。
 また、処理装置120は、端末履歴データに登録された2つの制御周期における操作端末機130の座標データ及び角度データを用いて、操作端末機130の移動速度と、端末ベクトルとを算出する。
 また、処理装置120は、端末ベクトルと視線ベクトルから移動目標点Gを算出する。移動目標点Gは、物品111の頂点111α又は頂点111αの近傍の座標を表す点として算出される。
 さらに、処理装置120は、操作端末機130の移動速度と、ポインタ130Aの移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する。ポインタ130Aの現在の位置が算出されると、スクリーン110Aにポインタ130Aが表示される。
 従って、図15に示すように、利用者が操作端末機130を移動させると、処理装置120が制御周期を繰り返し実行することにより、スクリーン110Aに表示されるポインタ130Aが移動する。
 そして、上述のように利用者が操作端末機130を操作しているときに、例えば、位置計測装置140から見てマーカ132が利用者の腕の陰になってマーカ132の画像を取得できない制御周期が生じたとする。
 このような場合でも、処理装置120は、端末履歴データ(図11参照)を用いて操作端末機130の移動速度と、端末ベクトルとを算出し、さらに操作端末機130の移動速度と、ポインタ130Aの移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する。
 このため、マーカ132の画像を取得できない制御周期が生じても、上述のようにポインタ130Aの現在の位置を算出することにより、常にスクリーン110Aにポインタ130Aを表示することができる。
 ここで、図16を用いて、物品111にポインタ130Aが接触した場合における振動素子133R又は133Lの駆動の仕方について説明する。
 図16は、物品111にポインタ130Aが接触した場合の触感の提供の仕方を示す図である。
 接触の方向が、ポインタ130Aが物品111の右側から接近してポインタ130Aの左側が物品111に接触したことを表す場合には、操作端末機130の左側に位置する振動素子133Lを駆動する。
 操作端末機130の振動素子133Lに振動を発生させて、ポインタ130Aの左側が物品111に接触したことを利用者に触感で認識させるためである。
 また、接触の方向が、ポインタ130Aが物品111の左側から接近してポインタ130Aの右側が物品111に接触したことを表す場合には、操作端末機130の右側に位置する振動素子133Rを駆動する。
 操作端末機130の振動素子133Rに振動を発生させて、ポインタ130Aの右側が物品111に接触したことを利用者に触感で認識させるためである。
 また、図17乃至図20を用いて、振動素子133R、133Lを駆動する駆動信号の振動強度及び振動時間について説明する。ここでは、特に断らない限り、物品111とポインタ130Aとが接触する場合について説明する。物品111は、シミュレーションシステム100でスクリーン110Aに表示する物品の一例である。このため、物品111以外の物品にポインタ130Aが接触する場合も同様である。
 図17及び図18は、ポインタ130Aで触れる物品111の部位と、振動パターンとの関係を表す図である。
 図17に示すように、物品111は、角111A、辺111B、及び面111Cを有する。角111A、辺111B、面111Cは、それぞれ、振動パターンのCorner(角)、Edge(辺)、及びSurface(面)に相当する。
 ポインタ130Aが角111Aに触れると、振動強度(振幅)を強く(大きく)する。ポインタ130Aが辺111Bに触れると、振動強度(振幅)を中くらいにする。また、ポインタ130Aが面111Cに触れると、振動強度(振幅)を弱く(小さく)する。なお、ここでは、振動を発生させる時間は、振動強度によらず一定である。
 このように、ポインタ130Aが物品111の角111A、辺111B、面111Cのうちのどの部位に触れるかによって振動強度を変える。また、角111Aは、接触面積が小さく、実際に手で触れると尖った触感を受けるので、振動強度を最も強くしてある。これとは逆に、面111Cは、接触面積が大きく、実際に手で触れると滑らかな触感を受けるので、振動強度を最も弱くしてある。そして、辺111Bは、接触面積が角111Aと面111Cの間くらい(中くらい)であるため、振動強度を中くらいにしてある。
 このように、例えば、接触する部位に応じて駆動信号の振動強度を変化させることにより、操作端末機130でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品111の部位に応じた触感を提供することができる。
 図18では、振動強度の代わりに振動を発生させる時間を変化させる。
 ポインタ130Aが角111Aに触れると、振動時間を短くする。ポインタ130Aが辺111Bに触れると、振動時間を中くらいにする。また、ポインタ130Aが面111Cに触れると、振動時間を長くする。なお、ここでは、振動強度は、振動時間によらず一定である。
 このように、ポインタ130Aが物品111の角111A、辺111B、面111Cのうちのどの部位に触れるかによって振動時間を変える。また、角111Aは、接触面積が小さく、実際に手で触れると尖った触感を受けるので、振動時間を最も短くしてある。これとは逆に、面111Cは、接触面積が大きく、実際に手で触れると滑らかな触感を受けるので、振動時間を最も長くしてある。そして、辺111Bは、接触面積が角111Aと面111Cの間くらい(中くらい)であるため、振動時間を中くらいにしてある。
 このように、例えば、接触する部位に応じて駆動信号の振動時間を変化させることにより、操作端末機130でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品111の部位に応じた触感を提供することができる。
 図19及び図20は、ポインタ130Aで触れる物品111の材質と、振動パターンとの関係を表す図である。
 図19では、物品111及び112等のような物品の材質に応じて、振動強度を変化させる。
 物品のヤング率に応じて、硬い材質、柔らかい材質、中くらいの材質に予め分けて振動データを作成しておく。例えば、ヤング率が10GPa以上の材質を硬い材質、1GPa~10GPaの材質を中程度の硬さの材質、1GPa以下の材質を柔らかい材質として定義しておくとする。
 ポインタ130Aが触れる物品の材質が硬い場合は、振動強度(振幅)を強く(大きく)する。ポインタ130Aが触れる物品の材質が中くらいの硬さである場合は、振動強度(振幅)を中くらいにする。また、ポインタ130Aが触れる物品の材質が柔らかい場合は、振動強度(振幅)を弱く(小さく)する。なお、ここでは、振動を発生させる時間は、振動強度によらず一定である。
 このように、ポインタ130Aが触れる物品の材質によって振動強度を変えれば、操作端末機130でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品の材質に応じた触感を提供することができる。
 図20では、物品111及び112等のような物品の材質に応じて、振動時間を変化させる。
 図19で説明したように、物品のヤング率に応じて、硬い材質、柔らかい材質、中くらいの材質に予め分けて振動データを作成しておく。例えば、ヤング率が10GPa以上の材質を硬い材質、1GPa~10GPaの材質を中程度の硬さの材質、1GPa以下の材質を柔らかい材質として定義しておくとする。
 ポインタ130Aが触れる物品の材質が硬い場合は、振動時間を短くする。ポインタ130Aが触れる物品の材質が中くらいの硬さである場合は、振動時間を中くらいにする。また、ポインタ130Aが触れる物品の材質が柔らかい場合は、振動時間を長くする。なお、ここでは、振動強度は、振動時間によらず一定である。
 このように、ポインタ130Aが触れる物品の材質によって振動時間を変えれば、操作端末機130でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品の材質に応じた触感を提供することができる。
 なお、図17で説明したように部位に応じて振動強度を変化させることと、図20で説明したように材質に応じて振動時間を変化させることとを組み合わせてもよい。このようにすれば、物品の部位と材質とに応じて、振動パターンを変化させることができる。
 また、図18で説明したように部位に応じて振動時間を変化させることと、図19で説明したように材質に応じて振動強度を変化させることとを組み合わせてもよい。このようにすれば、物品の部位と材質とに応じて、振動パターンを変化させることができる。
 以上のように、実施の形態1のシミュレーションシステム100によれば、操作端末機130で操作するポインタ130Aが、スクリーン110Aに投影される画像の中で、物品111又は112のような物品と接触した場合に、接触した物品の部位又は材質に応じて振動素子133R又は133Lを振動させる振動パターンを変える。
 このため、物品の部位又は材質に応じた触感を利用者に提供することができる。利用者は、触感だけで部位又は材質の違いを認識することができる。なお、この場合に、利用者が手で振動素子133R又は133Lに触れていることが望ましいが、振動素子133R又は133Lに触れていなくても、筐体部131R又は131Lが部位又は材質に応じた振動パターンで振動するため、触感だけで部位又は材質の違いを認識することができる。
 また、実施の形態1のシミュレーションシステム100によれば、操作端末機130で操作するポインタ130Aが、物品に接触する方向に応じて、振動素子133R又は133Lのいずれかを振動させる。
 このため、利用者は、触感だけでポインタ130Aが物品に触れた方向を認識することができる。
 以上のように、実施の形態1のシミュレーションシステム100によれば、利用者が操作端末機130を操作しているときに、処理装置120がマーカ132の位置及び姿勢を検出できない制御周期が生じても、端末履歴データを用いてポインタ130Aの現在の位置を算出することができる。処理装置120がマーカ132の位置及び姿勢を検出できないときとは、例えば、位置計測装置140から見てマーカ132が利用者の腕の陰になってマーカ132の画像を取得できないような状況である。
 このようなときでも、処理装置120は、端末履歴データ(図11参照)を用いて操作端末機130の移動速度と、端末ベクトルとを算出し、さらに操作端末機130の移動速度と、ポインタ130Aの移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する。
 このため、マーカ132の画像を取得できない制御周期が生じても、上述のようにポインタ130Aの現在の位置を算出することにより、常にスクリーン110Aにポインタ130Aを表示することができる。
 従って、実施の形態1によれば、制御性を改善したシミュレーションシステム100を提供することができる。
 また、実施の形態1のシミュレーションシステム100によれば、物品の部位又は材質に応じた触感を利用者に提供することができるとともに、物品に触れた方向に応じた触感を利用者に提供することができる。このような触感は、現実空間において手で物品を触っている触感を模擬的に表しており、リアリティに富んでいる。
 従って、実施の形態1によれば、リアリティのある触感を提供できるシミュレーションシステム100を提供することができる。
 なお、以上では、マーカ132及び110C1と位置計測装置140(赤外線カメラ140A、140B、及び140C)とを用いて操作端末機130及び利用者の視線の位置と姿勢を検出する形態について説明した。
 しかしながら、マーカ132が不要な赤外線深度センサ、磁気センサ、ステレオカメラ、加速度センサ、又は、角速度センサのうち、少なくとも1つ以上を用いて操作端末機130及び利用者の視線の位置と姿勢を検出してもよい。
 また、超音波帯の固有振動を発生させる駆動制御信号を用いて、振動素子133R及び133Lを駆動してもよい。この場合には、筐体部131R及び131Lの外表面に超音波帯の固有振動が発生する。
 超音波帯とは、例えば、約20kHz以上の周波数帯であり、人間が聴き取ることのできる可聴域よりも高い周波数をいう。筐体部131R及び131Lの外表面に超音波帯の固有振動が発生させると、スクイーズ効果によって凹凸感等のある触感を提供することができる。
 また、以上では、振動素子133R及び133Lとを有する操作端末機130を用いる形態について説明したが、操作端末機130は、1つの振動素子を有し、右側又は左側の接触を区別せずに振動するものであってもよい。この場合に、操作端末機130は、遮断部131Aを有しなくてよい。
 また、以上では、操作端末機130が振動素子133R及び133Lとを有する形態について説明したが、操作端末機130は振動素子133R及び133Lを有していなくてもよい。この場合に、処理装置120は、ポインタ130Aと物品111又は112の接触を判定するまでの処理(ステップS1からS13までの処理)を行う構成であってよい。
 また、以上では、振動データは、一例として、物品ID、物品名称、材質、部位名称、振動強度、及び振動時間を有する形態について説明した。しかしながら、振動の種類は、物品ID、物品名称、材質、部位名称によらずに1種類の振動強度、及び/又は、1種類の振動時間で規定されるものであってもよい。すなわち、処理装置120によって振動素子133R及び133Lが振動される振動パターンは1種類であってもよい。
 また、以上では、処理装置120は、端末ベクトルと視線ベクトルとが交差する点、又は、交差しない端末ベクトルと視線ベクトルとが最も接近する点同士の中点として、移動目標点Gを求める形態について説明した。
 しかしながら、処理装置120は、交差しない端末ベクトルと視線ベクトルについて、移動目標点Gを最近点S又は最近点Tのいずれ一方にしてもよいし、最近点Sと最近点Tとの間にある点(中間点)にしてもよい。
 また、以上では、3D眼鏡110Cに取り付けたマーカ110C1の画像から視線ベクトルを求める形態について説明した。しかしながら、マーカ110C1の画像からスクリーン110Aの座標系におけるマーカ110C1の位置及び姿勢を求め、マーカ110C1の位置及び姿勢の端末履歴データを作成し、端末履歴データから視線ベクトルを求めてもよい。
 また、以上では、3D眼鏡110Cにマーカ110C1を取り付ける形態について説明したが、3D眼鏡110Cの代わりに、3D対応ではない通常の眼鏡にマーカ110C1を取り付けて利用者が装着するようにしてもよい。
 また、以上では、位置計測装置140が3つの赤外線カメラ140A、140B、140Cを有する形態について説明した。位置計測装置140は、3台以上の赤外線カメラを有することが好ましいが、赤外線カメラは、2台以上あればよい。
 ここで、図21乃至図27を用いて、実施の形態1の第1変形例乃至第4変形例について説明する。
 図21は、実施の形態1の第1変形例の操作端末機130Bを示す図である。
 操作端末機130Bは、図5に示す操作端末機130の筐体131を4分割にして、4つの振動素子133R1、133R2、133L1、133L2を含むようにしたものである。その他の構成は、図5に示す操作端末機130と同様であるので、同様の構成要素には同一符号を付し、その説明を省略する。
 操作端末機130Bは、筐体131B、マーカ132、振動素子133R1、133R2、133L1、133L2、ボタン134、及びガイドバー135を有する。
 筐体131Bは、筐体部131R1、131R2、131L1、131L2と、遮断部131BAとを有する。筐体部131R1、131R2、131L1、131L2には、それぞれ、振動素子133R1、133R2、133L1、133L2が配設されている。
 また、遮断部131BAは、4つの筐体部131R1、131R2、131L1、131L2の間を分断するように平面視で十字型の壁状部材であり、筐体部131R1、131R2、131L1、131L2は、お互いの振動が伝達されないように遮断部131BAによって固定されている。
 すなわち、筐体部131R1、131R2、131L1、131L2は、互いに分断されており、互いの間は遮断部131BAによって接続されている。
 筐体部131R1、131R2、131L1、131L2は、図5に示す筐体部131R及び131Lのサイズを半分にした部材であり、例えば、樹脂製である。遮断部131BAは、例えば、防振構造を有するゴム部材であり、減衰比の高い防振ゴムを用いることができる。
 振動素子133R1、133R2、133L1、133L2は、駆動制御部129によって生成される駆動信号が表す物品111又は112の触感に応じた振動パターンによって駆動される。
 振動素子133R1、133R2、133L1、133L2は、図5に示す振動素子133R及び133Lと同様に、例えば、ピエゾ素子又はLRAのような圧電素子を含むものであればよい。振動素子133R1、133R2、133L1、133L2をそれぞれ駆動すると、筐体部131R1、131R2、131L1、131L2の表面に振動が発生する。
 このような操作端末機130Bを用いれば、ポインタ130Aが物品に接触した際の部位及び材質に応じて、さらに多い種類の触感を提供することができる。
 また、ポインタ130Aが物品に接触したときに、左右方向に加えて、前後方向の触感を提供することができる。
 例えば、ポインタ130Aが物品111の右側から接近してポインタ130Aの左前側が物品111に接触した場合には、操作端末機130の左前側に位置する振動素子133L1を駆動すればよい。
 また、ポインタ130Aの左後側が物品111に接触した場合には、操作端末機130の左後側に位置する振動素子133L2を駆動すればよい。
 また、ポインタ130Aが物品111の左側から接近してポインタ130Aの右前側が物品111に接触した場合には、操作端末機130の右前側に位置する振動素子133R1を駆動すればよい。
 また、ポインタ130Aの右後側が物品111に接触した場合には、操作端末機130の右後側に位置する振動素子133R2を駆動すればよい。
 図22は、実施の形態1の第2変形例の操作端末機130Cを示す図である。
 操作端末機130Cは、図21に示す操作端末機130Bを円筒型にしたものである。その他の構成は、図21に示す操作端末機130Bと同様であるので、同様の構成要素には同一符号を付し、その説明を省略する。
 操作端末機130Cは、筐体131C、マーカ132、振動素子133R1、133R2、133L1、133L2、ボタン134、及びガイドバー135Cを有する。
 筐体131Cは、筐体部131CR1、131CR2、131CL1、131CL2と、遮断部131CAとを有する。筐体部131CR1、131CR2、131CL1、131CL2は、円柱状の部材を前後(筐体部131CR1及び131CL1と、筐体部131CR2及び131CL2)に分け、さらに左右に分断したものである。
 筐体部131CR1、131CR2、131CL1、131CL2には、それぞれ、振動素子133R1、133R2、133L1、133L2が埋め込まれている。
 また、遮断部131CAは、4つの筐体部131CR1、131CR2、131CL1、131CL2の間を分断するように平面視で十字型の壁状部材であり、筐体部131CR1、131CR2、131CL1、131CL2は、お互いの振動が伝達されないように遮断部131CAによって固定されている。
 すなわち、筐体部131CR1、131CR2、131CL1、131CL2は、互いに分断されており、互いの間は遮断部131CAによって接続されている。遮断部131CAは、例えば、防振構造を有するゴム部材であり、減衰比の高い防振ゴムを用いることができる。
 このような操作端末機130Cを用いれば、ポインタ130Aが物品に接触した際の部位及び材質に応じて、さらに多い種類の触感を提供することができる。
 また、ポインタ130Aが物品に接触したときに、左右方向に加えて、前後方向の触感を提供することができる。
 円柱状の筐体131Cのサイズは、ペン、ドライバ、又はその他の様々な部材のサイズに設定することができる。
 なお、振動素子133R1、133R2、133L1、133L2の駆動方法は、図21に示す操作端末機130Bと同様である。
 図23乃至図25は、実施の形態1の第3変形例の操作端末機130Dを示す図である。
 操作端末機130Dは、図22に示す操作端末機130Cを指に装着できるような形状にしたものである。その他の構成は、図22に示す操作端末機130Cと同様であるので、同様の構成要素には同一符号を付し、その説明を省略する。
 図23は、平面図であり、図24は、図23のA-A矢視断面図であり、図25は、左後方から見た斜視図である。なお、図23及び図24では、マーカ132を省略する。
 操作端末機130Dは、筐体131D、マーカ132、振動素子133D1、133D2、133D3、133D4、133D5、及びボタン134を有する。なお、操作端末機130Dは、指を差し込んで装着する形態であり、ガイドバー135Cを含まない点において操作端末機130Cと異なる。
 筐体131Dは、筐体部131D1、131D2、131D3、131D4、131D5と、遮断部131DAとを有する。筐体部131D1、131D2、131D3、131D4は、内部に指を挿入できる穴部を有する円筒状の部材を周方向に4分割し、さらに指を挿入する方向における奥側(操作端末機130Dの前側)の円板状の部分を筐体部131D5として分断したものである。
 筐体部131D1、131D2、131D3、131D4、131D5は、互いに分割されている。
 筐体部131D1、131D2、131D3、131D4、131D5の外表面には、それぞれ、振動素子133D1、133D2、133D3、133D4、133D5が配設されている。
 また、遮断部131DAは、遮断部片131DA1、131DA2、131DA3、131DA4、131DA5を有する。
 遮断部片131DA1、131DA2、131DA3、131DA4は、筐体部131D1、131D2、131D3、131D4の間に配設される。遮断部片131DA1、131DA2、131DA3、131DA4と、筐体部131D1、131D2、131D3、131D4とは、指を挿入可能な孔部を有する円筒体を構築する。
 筐体部131D1は、遮断部片131DA5を介して、円筒体の前方を塞ぐように取り付けられている。
 4つの筐体部131D1、131D2、131D3、131D4の間を分断するように平面視で十字型の壁状部材であり、筐体部131D1、131D2、131D3、131D4は、お互いの振動が伝達されないように遮断部131DAによって固定されている。
 遮断部片131DA1、131DA2、131DA3、131DA4、131DA5は、例えば、防振構造を有するゴム部材であり、減衰比の高い防振ゴムを用いることができる。
 このような操作端末機130Dを指に装着すれば、ポインタ130Aが物品に接触した際の部位及び材質に応じて、左右、上下、及び前方から触感を提供することができる。
 図26は、第3変形例による操作端末機130Dの電気系の構成を示す図である。操作端末機130Dは、指に装着するため小型である。このため、電気系は、筐体131D側と、制御部130E側とに分かれている。なお、図7に示す操作端末機130の電気系と同様の構成要素には同一符号を付し、その説明を省略する。
 筐体131Dには、振動素子133D1~133D5と、ボタン134とが配設されている。また、制御部130Eには、通信部136、ボタン判定部137、及び信号生成部138が設けられている。
 ボタン134とボタン判定部137はケーブル131E1で接続されており、信号生成部138と振動素子133D1~133D5は、5本のケーブル131E2で接続されている。なお、説明の便宜上、図26にはケーブル131E2を1本示す。
 操作端末機130Dは、指に装着するため小型であるため、筐体131D側にすべての電気系を収納するのが困難な場合は、電気系を筐体131D側と、制御部130E側とに分ければよい。
 また、上述した操作端末機130、130B、130C、130Dにおいても、一部の電気系を筐体とは別に外部に配置してもよい。
 図27は、実施の形態1の第4変形例のヘルメット110Dを示す図である。実施の形態1では、図1に示すように3D眼鏡110Cにマーカ110C1を取り付ける形態について説明したが、マーカ110C1をヘルメット110Dに取り付けてもよい。利用者は、3D眼鏡110Cを装着する代わりに、ヘルメット110Dを被ればよい。なお、ヘルメット110Dを被った状態で、3D眼鏡を掛けてもよいし、掛けなくてもよい。一例として、ヘルメット110Dの頂部にマーカ110C1を取り付ければ、マーカ110C1の画像を確実に得ることができる。
 <実施の形態2>
 図28は、実施の形態2の操作端末機230を示す斜視図である。
 操作端末機230は、筐体231、マーカ132、振動素子233、ボタン134、及びガイドバー135を有する。ここでは、実施の形態1の操作端末機130と同様の構成要素には同一符号を付し、その説明を省略する。
 操作端末機230は、主に、振動素子233と筐体231の構成が実施の形態1の操作端末機130と異なる。
 筐体231は、上面に振動素子233とボタン134が配設される箱形の筐体である。筐体231は、例えば、樹脂製であり、利用者が手に持つのにちょうど良いサイズを有する。筐体231の前側にはマーカ132とガイドバー135が取り付けられている。
 振動素子233は、図28の右側に拡大して平面構成を示すように、5行×5列のマトリクス状に配置される25個のアクチュエータ233Aを有する。アクチュエータ233Aは、例えば、ピエゾ素子又はLRAのような圧電素子を含むものであればよい。25個のアクチュエータ233Aは、別々に駆動できるようになっている。
 25個のアクチュエータ233Aは、遮断部233Bによって区画されており、互いの振動が伝わらないようになっている。遮断部233Bは、例えば、防振構造を有するゴム部材であり、減衰比の高い防振ゴムを用いることができる。
 このような操作端末機230は、実施の形態1の操作端末機130と同様に、ポインタ130Aを操作するために用いられる。
 図29は、実施の形態2の振動データを示す図である。
 振動データは、振動データは、物品ID、物品名称、材質、部位名称、振動強度、及び振動時間を有する。物品ID、物品名称、材質、部位名称、及び振動時間については、図8に示す実施の形態2の振動データと同様である。
 振動強度は、25個のアクチュエータ233Aを別々に駆動する駆動信号の振幅(Vpp)を表す。振幅は、ピーク・トゥ・ピークの電圧値で示してある。振動強度は、一例として、Corner(角)が最も強く、Edge(辺)は中間的な強度であり、Surface(面)は最も弱い値に設定されている。
 また、25個のアクチュエータ233Aを別々に駆動するために、駆動信号は、5行×5列の行列式で表される。
 例えば、物品IDが001で、物品名称がPlateで、材質がSteel(鉄)で、部位名称がCorner(角)の場合には、5行×5列の25個のアクチュエータ233Aのうちの中央に位置する1つのアクチュエータ233Aを振動強度10で駆動し、振動時間は20msに設定されている。
 また、部位名称がEdge(辺)の場合には、25個のアクチュエータ233Aのうちの中央部の3行×3列の9個のアクチュエータ233Aを振動強度7で駆動し、振動時間は20msに設定されている。
 また、部位名称がEdge(辺)の場合には、25個のアクチュエータ233Aのすべてを振動強度3で駆動し、振動時間は20msに設定されている。
 このようにして、Corner(角)、Edge(辺)、Surface(面)の触感をアクチュエータ233Aの数と、振動強度10とで再現している。
 以上のような振動データは、現実世界で物品の表面を手で触った場合の触感を25個のアクチュエータ233Aの振動によって再現するために、部位に応じて振動強度と振動時間が設定されている。
 なお、振動データは、処理装置120のデータ格納部127に格納されている。
 図30は、実施の形態2の処理装置120が実行する処理を示すフローチャートである。ここでは、一例として、図1に示すように、スクリーン110Aに物品111及び112の画像を表示させる場合について説明する。
 処理装置120は、電源投入後に処理を開始する(スタート)。
 ステップS1~S13の処理は、それぞれ、図14に示すステップS1~S13と同様である。
 実施の形態2の操作端末機230は、ポインタ130Aと物品との接触した方向を触感で提供することを行わないため、図30に示すフローチャートは、図14に示すステップS14に対応するステップを含まない。
 このため、ステップS13が終了すると、ステップS24~S27の処理が実行される。ステップS24~S27の処理は、それぞれ、図14に示すステップS15~S18と同様である。主な違いは以下の通りである。
 ステップS26では、処理装置120は、ポインタ130Aが接触した物品111の物品IDと、ステップS24で判定した部位とを用いて、振動データ(図29参照)から振動強度と振動時間を読み出す。ここでは、25個のアクチュエータ233Aの駆動信号を読み出すことになる。
 ステップS27では、処理装置120は、25個のアクチュエータ233Aの駆動信号を生成し、通信部120Aを介して、操作端末機230に送信する。この結果、操作端末機230のアクチュエータ233Aが駆動される。
 以上のような処理により、物品の部位又は材質に応じて、25個のアクチュエータ233Aの振動強度と振動時間が決定され、操作端末機230を介して利用者に物品の部位又は材質に応じた触感が提供される。
 また、図31及び図32を用いて、アクチュエータ233Aを駆動する駆動信号の振動強度及び振動時間について説明する。ここでは、特に断らない限り、物品111とポインタ130Aとが接触する場合について説明する。物品111は、シミュレーションシステム100でスクリーン110Aに表示する物品の一例である。このため、物品111以外の物品にポインタ130Aが接触する場合も同様である。
 図31は、ポインタ130Aで触れる物品111の部位と、振動パターンとの関係を表す図である。
 図31の右側では、25個のアクチュエータ233Aのうち、駆動されるアクチュエータ233Aをグレーで示す。また、振動強度が大きいほど、濃いグレーで示す。ここでは、3段階の濃さのグレーで、振動強度の大、中、小を表す。なお、駆動されないアクチュエータ233Aを白で示す。
 ポインタ130Aが角111Aに触れると、25個のアクチュエータ233Aのうちの中央に位置する1つのアクチュエータ233Aを駆動し、振動強度(振幅)を大(強)にする。
 ポインタ130Aが辺111Bに触れると、25個のアクチュエータ233Aのうちの中央側に位置する9つのアクチュエータ233Aを駆動し、振動強度(振幅)を中くらいにする。
 また、25個のアクチュエータ233Aのすべてを駆動し、ポインタ130Aが面111Cに触れると、振動強度(振幅)を弱く(小さく)する。
 このように、ポインタ130Aが物品111の角111A、辺111B、面111Cのうちのどの部位に触れるかによって駆動するアクチュエータ233Aの数と振動強度を変える。
 このように、一例として、接触する部位に応じて駆動するアクチュエータ233Aの数と振動強度を変化させることにより、操作端末機230でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品111の部位に応じた触感を提供することができる。
 図32は、ポインタ130Aで触れる物品111の材質と、振動パターンとの関係を表す図である。
 図32では、物品111及び112等のような物品の材質に応じて、振動時間を変化させる。
 実施の形態1で説明したように、物品のヤング率に応じて、硬い材質、柔らかい材質、中くらいの材質に予め分けて振動データを作成しておく。例えば、ヤング率が10GPa以上の材質を硬い材質、1GPa~10GPaの材質を中程度の硬さの材質、1GPa以下の材質を柔らかい材質として定義しておくとする。
 ポインタ130Aが触れる物品の材質が硬い場合は、アクチュエータ233Aの振動時間を短くする。また、このとき、25個のアクチュエータ233Aのうちの中央に位置する1つのアクチュエータ233Aを駆動してもよい。
 ポインタ130Aが触れる物品の材質が中くらいの硬さである場合は、アクチュエータ233Aの振動時間を中くらいにする。また、このとき、25個のアクチュエータ233Aのうちの中央側に位置する9つのアクチュエータ233Aを駆動してもよい。
 また、ポインタ130Aが触れる物品の材質が柔らかい場合は、アクチュエータ233Aの振動時間を長くする。このときは、25個のアクチュエータ233Aのすべてを駆動すればよい。
 このように、ポインタ130Aが触れる物品の材質によって振動時間を変えれば、操作端末機230でポインタ130Aを操作する利用者の手に、ポインタ130Aで触れる物品の材質に応じた触感を提供することができる。
 なお、図31で説明したように部位に応じて振動強度を変化させることと、図32で説明したように材質に応じて振動時間を変化させることとを組み合わせてもよい。このようにすれば、物品の部位と材質とに応じて、振動パターンを変化させることができる。
 以上のように、実施の形態2のシミュレーションシステムによれば、利用者が操作端末機130を操作しているときに、処理装置120がマーカ132の位置及び姿勢を検出できない制御周期が生じても、端末履歴データを用いてポインタ130Aの現在の位置を算出することができる。
 このため、マーカ132の画像を取得できない制御周期が生じても、上述のようにポインタ130Aの現在の位置を算出することにより、常にスクリーン110Aにポインタ130Aを表示することができる。
 従って、実施の形態2によれば、制御性を改善したシミュレーションシステムを提供することができる。
 また、実施の形態2のシミュレーションシステムによれば、操作端末機230で操作するポインタ130Aが、スクリーン110Aに投影される画像の中で、物品111又は112のような物品と接触した場合に、接触した物品の部位又は材質に応じてアクチュエータ233Aを振動させる振動パターンを変える。
 このため、物品の部位又は材質に応じた触感を利用者に提供することができる。利用者は、触感だけで部位又は材質の違いを認識することができる。
 以上のように、実施の形態2のシミュレーションシステムによれば、物品の部位又は材質に応じた触感を利用者に提供することができる。このような触感は、現実空間において手で物品を触っている触感を模擬的に表しており、リアリティに富んでいる。
 従って、実施の形態2によれば、リアリティのある触感を提供できるシミュレーションシステムを提供することができる。
 ここで、図33乃至図38を用いて、実施の形態2の変形例について説明する。
 図33乃至図38は、実施の形態2の変形例を示す図である。
 図33に示す操作端末機230Aは、図28に示す操作端末機230の振動素子233を振動素子233Cに変更したものである。振動素子233Cは、3行×3列でマトリクス状に配置される9個のアクチュエータである。各アクチュエータは、図28に示すアクチュエータ233Aと同様である。
 振動素子233Cは、遮断部233Bを含まない点が図28に示す操作端末機230の振動素子233と異なる。
 このような操作端末機230Aを図28に示す操作端末機230の代わりに用いてもよい。
 図34に示す操作端末機230Bは、図28に示す操作端末機230の振動素子233を吸引素子250に変更したものである。吸引素子250は、5行×5列でマトリクス状に配置される25個の吸引口250Aを有する。吸引口250Aの奥側には、吸引を行うバキューム装置のような吸引機構が接続されている。
 吸引口250Aは、互いに離間して配置されており、吸引機構も互いに独立している。吸引を行う吸引口250Aの数を図28に示すアクチュエータ233Aを駆動する数と同様に制御すればよい。また、吸引の強さを図28に示すアクチュエータ233Aを駆動する振動強度と同様に制御すればよい。
 このような操作端末機230Bを図28に示す操作端末機230の代わりに用いてもよい。
 図35に示す操作端末機230Cは、図28に示す操作端末機230の振動素子233を可動素子260に変更したものである。可動素子260は、4行×4列でマトリクス状に配置される16個の可動ピン260Aを有する。可動ピン260Aの裏側には、可動ピン260Aを上下に移動させるアクチュエータが配置されている。
 可動ピン260Aは、互いに離間して配置されており、アクチュエータも互いに独立している。駆動する可動ピン260Aの数を図28に示すアクチュエータ233Aを駆動する数と同様に制御すればよい。また、可動ピン260Aを駆動する強さ又は高さを図28に示すアクチュエータ233Aを駆動する振動強度と同様に制御すればよい。
 このような操作端末機230Cを図28に示す操作端末機230の代わりに用いてもよい。
 図36乃至図38に示す操作端末機230Dは、図23乃至図25に示す操作端末機13Dと同様に指に装着できるようにしたものである。
 図36は、平面図であり、図37は、図36のB-B矢視断面図であり、図38は、左後方から見た斜視図である。なお、図36及び図37では、マーカ132を省略する。
 操作端末機230Dは、筐体231D、マーカ132、振動素子233D、及びボタン134を有する。
 筐体231Dは、内部に指を挿入できる穴部を有する円筒状の部材であり、指を挿入する方向における奥側は封止されている。
 振動素子233Dは、筐体231Dの内部で、指先のひらの部分に当接するように配置されている。振動素子233Dの駆動方法は、図28に示す振動素子233と同様である。
 このような操作端末機230Dを指に装着すれば、ポインタ130Aが物品に接触した際の部位及び材質に応じて、触感を提供することができる。
 <実施の形態3>
 図39は、実施の形態3のシミュレーションシステムの利用シーンを示す図である。
 実施の形態3のシミュレーションシステムは、実施の形態1のシミュレーションシステム100の処理装置120の代わりに、処理装置120の制御処理の一部を変更した処理装置320を含むものである。このため、図39には、処理装置320を示す。
 図39に示すように、利用者は、マーカ110C1が取り付けられた3D眼鏡110Cを掛けて、手に持っている操作端末機130を移動させている。
 処理装置320は、ポインタ130Aの移動目標点Gと物品とが接触する場合に、操作端末機130が移動目標点Gに到着するまでの所要時間Tが所定の時間Tα以下になると、操作端末機130の振動素子133R又は133Lを駆動する駆動信号を生成し、操作端末機130に送信する。
 所定の時間Tαは、処理装置320が駆動信号を操作端末機130に送信してから、振動素子133R又は133Lが駆動されるまでの所要時間に設定されている。
 すなわち、実施の形態3では、所要時間Tの経過後にポインタ130Aと物品との接触が予想される場合に、予め操作端末機130に送信する。
 このような処理を行うため、処理装置320の制御処理は、実施の形態1の処理装置120とは以下のように異なる。
 図40は、処理装置320が実行する処理を示すフローチャートである。ここでは、一例として、図1に示すように、スクリーン110Aに物品111及び112の画像を表示させる場合について説明する。
 処理装置320は、電源投入後に処理を開始する(スタート)。
 ステップS1からステップS9までの処理は、実施の形態1の処理装置120が実行するステップS1からステップS9までの処理と同様であるため、ここでは説明を省略し、ステップS10から説明する。
 処理装置320は、ステップS7Bで算出された端末ベクトルと、ステップS9で算出された視線ベクトルとに基づき、ポインタ130Aの移動目標点Gの座標(位置)を求める(ステップS10)。ステップS10の処理は、実施の形態1の処理装置120が実行するステップS10と同様であるが、移動目標点Gの座標は、続くステップS11に加えて、後述するステップS33においても用いられる。
 処理装置320は、ステップS7Aで算出される操作端末機130の移動速度と、ステップS10で算出される移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する(ステップS11)。ステップS11の処理は、位置算出部125によって実行される。
 処理装置320は、ステップS11で算出されたポインタ130Aの現在の位置に基づき、投影装置110Bにポインタ130Aをスクリーン110Aに表示させる(ステップS12)。これにより、物品111及び112の立体視の画像が表示されているスクリーン110Aにポインタ130Aが表示される。
 処理装置320は、物品111又は112と、ステップS10で求めた移動目標点Gとが接触したかどうかを判定する(ステップS33)。処理装置320は、物品111及び112の物品データと、ステップS10で求めた移動目標点Gの座標データとに基づき、物品111又は112と移動目標点Gとが接触したかどうかを判定する。
 物品111又は112と移動目標点Gとが接触したかどうかは、物品111又は112の物品データが表す角、辺、又は面と、移動目標点Gの座標データが表す位置との交点があるかどうかで判定すればよい。
 また、物品111又は112と移動目標点Gとが接触したかどうかは、移動目標点Gの座標データと、座標データに最も近い物品データに含まれる座標との位置の差が所定値以下であるかどうかで判定してもよい。例えば、座標データに最も近い物品データに含まれる位置と、座標データが表す位置との差が所定値以下になった場合に接触したと判定する方が、シミュレーションシステム100における操作端末機130の操作性が良好である場合には、このような設定にすればよい。
 処理装置320は、物品111と移動目標点Gが接触した(S33:YES)と判定すると、所要時間Tを算出する(ステップS34)。所要時間Tは、実施の形態1で説明したように、式(11)を用いて算出すればよい。
 処理装置320は、所要時間Tが所定の時間Tα以下であるかどうかを判定する(ステップS35)。所定の時間Tαは、処理装置320が駆動信号を操作端末機130に送信してから、振動素子133R又は133Lが駆動されるまでの所要時間であり、所定の時間Tαを表すデータは、処理装置320のデータ格納部に保持させておけばよい。なお、処理装置320のデータ格納部は、処理装置120のデータ格納部127と同様であり、処理装置120が保持するデータに加えて、所定の時間Tαを表すデータを保持するものである。
 ここで、以下では、一例として、物品111と移動目標点Gが接触したこととする。なお、物品112と移動目標点Gが接触した場合でも、同様の処理が行われる。
 処理装置320は、所要時間Tが所定の時間Tα以下である(S35:YES)と判定すると、目標履歴データに基づき、ポインタ130Aが物品111に接触した方向を算出する(ステップS36)。
 目標履歴データとは、実施の形態1のポインタ履歴データの代わりに、処理装置320が各制御周期のステップS10で算出する移動目標点Gの座標の履歴を登録したデータである。目標履歴データには、各制御周期において算出される移動目標点Gの座標を表すデータが時系列的に登録される。
 接触した方向は、目標履歴データに含まれる、接触の直前の座標が物品111に対して位置する方向に基づいて判定すればよい。
 処理装置320は、物品111と移動目標点Gとが接触したときの交点の近傍領域内における物品111の部位を決定する(ステップS37)。
 ここで、近傍領域とは、例えば、物品111が一辺1mの長さを有する立方体である場合には、交点から±1cmの範囲の三次元領域を近傍領域とすればよい。
 また、部位の決定は、例えば、近傍領域内に、面、辺、又は角があるかどうかを判定し、角、辺、面の順に優先順位をつけて決定すればよい。すなわち、近傍領域内に、面、辺、及び角がある場合には、近傍領域内の部位は角であると決定すればよい。
 また、近傍領域内に、面と辺がある場合には、近傍領域内の部位は辺であると決定すればよい。また、近傍領域内に、面と角がある場合には、近傍領域内の部位は角であると決定すればよい。また、近傍領域内に、辺と角がある場合には、近傍領域内の部位は角であると決定すればよい。また、近傍領域内に、面、辺、又は角のいずれか1つがある場合には、存在する部位であると決定すればよい。
 処理装置320は、移動目標点Gが接触した物品111の物品IDと、ステップS37で決定した部位とを用いて、振動データ(図8参照)から、接触点の近傍の物品の材質を読み出す(ステップS38)。
 例えば、物品IDが001で、部位が角である場合は、Steel(鉄)であると判定する。なお、図8には、物品IDが同一であれば、部位が異なっていても材質が等しい形態の振動データを示すが、部位によって材質が異なるように振動データが作成されていてもよい。
 処理装置320は、移動目標点Gが接触した物品111の物品IDと、ステップS37で決定した部位とを用いて、振動データから振動強度と振動時間を読み出す(ステップS39)。
 処理装置320は、操作端末機130の振動素子133R又は133Lを駆動する駆動信号を生成し、通信部120Aを介して、操作端末機130に送信する(ステップS40)。この結果、操作端末機130の振動素子133R又は133Lが駆動される。
 駆動信号は、ステップS36で算出された接触の方向と、ステップS39で読み出した振動強度及び振動時間とに基づいて生成される。
 以上で、一連の処理が終了する(エンド)。
 なお、ステップS33で物品111又は112と移動目標点Gが接触していない(S33:NO)と判定した場合は、フローをステップS1、S3、及びS8にリターンする。
 また、ステップS35で所要時間Tが所定の時間Tα以下ではない(S35:NO)と判定した場合は、フローをステップS1、S3、及びS8にリターンする。
 以上のように、実施の形態3のシミュレーションシステムによれば、利用者が操作端末機130を操作しているときに、処理装置120がマーカ132の位置及び姿勢を検出できない制御周期が生じても、端末履歴データを用いてポインタ130Aの現在の位置を算出することができる。処理装置120がマーカ132の位置及び姿勢を検出できないときとは、例えば、位置計測装置140から見てマーカ132が利用者の腕の陰になってマーカ132の画像を取得できないような状況である。
 このようなときでも、処理装置120は、端末履歴データ(図11参照)を用いて操作端末機130の移動速度と、端末ベクトルとを算出し、さらに操作端末機130の移動速度と、ポインタ130Aの移動目標点Gの座標とに基づいて、ポインタ130Aの現在の位置を算出する。
 このため、マーカ132の画像を取得できない制御周期が生じても、上述のようにポインタ130Aの現在の位置を算出することにより、常にスクリーン110Aにポインタ130Aを表示することができる。
 従って、実施の形態3によれば、制御性を改善したシミュレーションシステム100を提供することができる。
 また、処理装置320は、物品111と移動目標点Gが接触し、かつ、所要時間Tが所定の時間Tα以下になると、ポインタ130Aと物品111が衝突する前に、予め駆動信号を操作端末機130に送信する。所定の時間Tαは、処理装置320が駆動信号を操作端末機130に送信してから、振動素子133R又は133Lが駆動されるまでの所要時間である。
 このため、処理装置320が駆動信号を操作端末機130に送信してから、振動素子133R又は133Lが駆動されるまでに時間がかかり、ポインタ130Aと物品111が衝突する前に、予め駆動信号を操作端末機130に送信しておかないと振動素子133R又は133Lの駆動に遅れが生じるような場合には、振動素子133R又は133Lの駆動の遅れを抑制することができる。
 このことによっても、実施の形態3によれば、制御性を改善したシミュレーションシステム100を提供することができる。
 また、実施の形態3のシミュレーションシステムによれば、物品の部位又は材質に応じた触感を利用者に提供することができるとともに、物品に触れた方向に応じた触感を利用者に提供することができる。このような触感は、現実空間において手で物品を触っている触感を模擬的に表しており、リアリティに富んでいる。
 従って、実施の形態3によれば、リアリティのある触感を提供できるシミュレーションシステムを提供することができる。
 なお、以上では、所定の時間Tαは、処理装置320が駆動信号を操作端末機130に送信してから、振動素子133R又は133Lが駆動されるまでの所要時間である形態について説明した。しかしながら、所定の時間Tαは、処理装置320が駆動信号の生成を開始してから、駆動信号を操作端末機130に送信し、振動素子133R又は133Lが駆動されるまでの所要時間に設定してもよい。また、所定の時間Tαは、さらに他の時間を考慮した時間に設定してもよい。
 以上、本発明の例示的な実施の形態のシミュレーションシステムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
 100 シミュレーションシステム
 110A スクリーン
 110B 投影装置
 110C 3D眼鏡
 110C1 マーカ
 111、112 物品
 120 処理装置
 121 位置検出部
 122 履歴保持部
 123 視線検出部
 124A、124B ベクトル算出部
 125 位置算出部
 126 映像出力部
 127 データ格納部
 128 接触判定部
 129 駆動制御部
 120A 通信部
 130、130B、130C、130D 操作端末機
 130A ポインタ
 131 筐体
 132 マーカ
 133R、133L 振動素子
 134 ボタン
 135 ガイドバー
 140 位置計測装置
 140A、140B、140C 赤外線カメラ
 230、230A、230B、230C、230D 操作端末機
 231 筐体
 233 振動素子
 320 処理装置

Claims (14)

  1.  物品の形状と位置を表す物品データに基づいて前記物品の画像を表示する表示部と、
     利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、
     前記物品データを格納するデータ格納部と、
     前記操作端末機の位置及び姿勢を検出する第1検出部と、
     前記第1検出部によって検出される前記位置及び姿勢に基づき、前記表示部の座標系における操作端末機の位置を検出する第2検出部と、
     利用者の視線の位置及び方向を検出する第3検出部と、
     前記第3検出部によって検出される前記視線の位置及び方向に基づき、前記表示部の座標系における前記視線の位置及び方向を表す視線ベクトルを算出する第1ベクトル算出部と、
     前記第1検出部による検出時点の異なる複数の前記位置及び姿勢に基づく複数時点の前記操作端末機の位置をそれぞれ表す複数の位置データを保持する保持部と、
     前記保持部に保持される前記複数の位置データに基づき、前記操作端末機の位置及び移動方向を表す端末ベクトルを算出する第2ベクトル算出部と、
     前記視線ベクトルと前記端末ベクトルとの接近度合に基づき、前記ポインタの移動目標の位置と推定される移動目標点の位置を求める位置算出部と、
     前記移動目標点の位置に基づいて求まる現在の前記ポインタの位置に、前記表示部に前記ポインタを表示させる出力部と、
     前記現在の前記ポインタの位置と、前記物品データが表す前記物品の位置とに基づき、前記ポインタと前記物品とが接触しているかどうか、又は、前記移動目標点の位置と、前記物品データが表す前記物品の位置とに基づき、所定時間の経過後に前記ポインタと前記物品とが接触するかどうかを判定する判定部と
     を含む、シミュレーションシステム。
  2.  前記位置算出部は、前記視線ベクトルと前記端末ベクトルとが最接近する点に基づき、前記ポインタの前記移動目標点の位置を求める、請求項1記載のシミュレーションシステム。
  3.  前記位置算出部は、前記視線ベクトルが前記端末ベクトルに最接近する第1点と、前記端末ベクトルが前記視線ベクトルに最接近する第2点との中点の座標、又は、前記視線ベクトルと前記端末ベクトルとの交点の座標を前記移動目標点の位置として求める、請求項2記載のシミュレーションシステム。
  4.  前記操作端末機に取り付けられる、可動部と、
     前記判定部によって、前記ポインタと前記物品とが現在接触している、又は、前記所定時間の経過後に前記ポインタと前記物品とが接触すると判定されると、前記可動部を駆動する駆動制御部と
     をさらに含み、
     前記データ格納部は、さらに、前記可動部を振動させる振動パターンを表す振動データを格納し、
     前記駆動制御部は、前記振動データを用いて前記可動部を駆動する、請求項1乃至3のいずれか一項記載のシミュレーションシステム。
  5.  前記位置算出部は、前記移動目標点の位置と、前記保持部に保持される前記複数の位置データから求まる前記操作端末機の移動速度とに基づいて、前記現在の前記ポインタの位置を求め、
     前記出力部は、前記位置算出部によって算出される前記現在の前記ポインタの位置に、前記表示部に前記ポインタを表示させ、
     前記判定部は、前記位置算出部によって算出される前記現在の前記ポインタの位置と、前記物品データが表す前記物品の位置とに基づき、前記ポインタと前記物品とが接触しているかどうかを判定する、請求項1乃至4のいずれか一項記載のシミュレーションシステム。
  6.  前記判定部は、前記移動目標点と、前記物品データが表す前記物品とが接触し、かつ、前記操作端末機が前記移動目標点に到達するまでの所要時間が、前記駆動制御部が前記振動データを用いて前記可動部を駆動する際の制御遅れの遅れ時間以下である場合に、前記所定時間の経過後に前記ポインタと前記物品とが接触すると判定し、
     前記駆動制御部は、前記振動データを表す駆動指令を前記可動部に出力する、請求項4記載のシミュレーションシステム。
  7.  前記振動データが表す前記振動パターンは、前記物品の各部位又は材質の触感に応じた振動パターンであり、
     前記駆動制御部は、前記ポインタと接触する前記物品の部位又は材質に対応する前記振動パターンを表す前記振動データで前記複数の可動部を駆動する、請求項4又は6記載のシミュレーションシステム。
  8.  前記判定部は、前記表示部に表示される前記物品の位置と、前記ポインタの位置との差が所定値以下になると、前記物品に前記ポインタが接触したと判定する、請求項4、6、及び7のいずれか一項記載のシミュレーションシステム。
  9.  前記可動部は、複数の可動素子を有し、
     前記判定部は、前記物品に前記ポインタが接触した方向を判定し、
     前記駆動制御部は、前記複数の可動素子のうち、前記ポインタに対して前記物品が位置する方向にある可動素子を前記振動パターンで駆動する、請求項4、及び6乃至8のいずれか一項記載のシミュレーションシステム。
  10.  前記振動データは、前記物品の部位又は材質に応じて、可動素子を駆動する強度、前記可動素子を駆動する時間、又は、前記複数の可動素子のうちの前記振動パターンで駆動される可動素子の数を設定したデータである、請求項4、及び6乃至9のいずれか一項記載のシミュレーションシステム。
  11.  前記複数の可動素子のうちの前記振動パターンで駆動される可動素子の数によって、前記物品の各部位又は材質の触感を表す面積が設定される、請求項10記載のシミュレーションシステム。
  12.  前記駆動制御部に接続される第1通信部をさらに含み、
     前記操作端末機は、前記第1通信部と無線通信を行う第2通信部をさらに有し、
     前記操作端末機の前記複数の可動素子は、前記無線通信によって受信する、前記駆動制御部が出力する駆動指令によって駆動される、請求項4、及び6乃至11のいずれか一項記載のシミュレーションシステム。
  13.  前記複数の可動素子は、複数の振動素子であり、
     前記操作端末機は、
     前記複数の振動素子がそれぞれ搭載される複数の基板部と、
     前記複数の基板部の間に設けられ、振動を遮断する遮断部と
     をさらに有する、請求項4、及び6乃至12のいずれか一項記載のシミュレーションシステム。
  14.  前記複数の可動素子は、それぞれ、利用者が触れる面に対して入れ子式に突出する複数の駆動素子、又は、利用者が触れる面に形成される複数の孔部で吸引する複数の吸引機構である、請求項4、及び6乃至12のいずれか一項記載のシミュレーションシステム。
PCT/JP2015/081304 2015-11-06 2015-11-06 シミュレーションシステム WO2017077636A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/081304 WO2017077636A1 (ja) 2015-11-06 2015-11-06 シミュレーションシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/081304 WO2017077636A1 (ja) 2015-11-06 2015-11-06 シミュレーションシステム

Publications (1)

Publication Number Publication Date
WO2017077636A1 true WO2017077636A1 (ja) 2017-05-11

Family

ID=58662985

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/081304 WO2017077636A1 (ja) 2015-11-06 2015-11-06 シミュレーションシステム

Country Status (1)

Country Link
WO (1) WO2017077636A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050120A (ja) * 2003-07-28 2005-02-24 Matsushita Electric Works Ltd 仮想空間内位置指示装置
JP2008108054A (ja) * 2006-10-25 2008-05-08 Canon Inc 接触提示装置及び方法
JP2008134697A (ja) * 2006-11-27 2008-06-12 Canon Inc 接触提示装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005050120A (ja) * 2003-07-28 2005-02-24 Matsushita Electric Works Ltd 仮想空間内位置指示装置
JP2008108054A (ja) * 2006-10-25 2008-05-08 Canon Inc 接触提示装置及び方法
JP2008134697A (ja) * 2006-11-27 2008-06-12 Canon Inc 接触提示装置

Similar Documents

Publication Publication Date Title
CN112783328B (zh) 提供虚拟空间的方法、提供虚拟体验的方法、程序以及记录介质
Lee Hacking the nintendo wii remote
CN106774880B (zh) 用户控制装置的在空间中的三维跟踪
JP6514089B2 (ja) 情報処理装置、情報処理システム、および情報処理方法
US20210208700A1 (en) Trackability Enhancement of a Passive Stylus
WO2016181469A1 (ja) シミュレーションシステム
US10665014B2 (en) Tap event location with a selection apparatus
US20080100588A1 (en) Tactile-feedback device and method
US10509489B2 (en) Systems and related methods for facilitating pen input in a virtual reality environment
JP2020149584A (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
CN104714687A (zh) 用于触觉显示参数的光学传输的系统和方法
JP6021296B2 (ja) 表示制御プログラム、表示制御装置、表示制御システム、および、表示制御方法
JP2008500624A (ja) 仮想3次元空間内で動作するシステム及び方法と視覚化システムを介してオペレーションを選択するシステム
KR20070090730A (ko) 입체영상 기반 가상현실장치
US20130278494A1 (en) Three-dimensional interactive system
CN117348743A (zh) 计算机、渲染方法以及位置指示装置
JP2023174771A (ja) 拡張現実システムにおける電磁追跡のための指向性エミッタ/センサ
US20150042563A1 (en) Control method, control apparatus, and program
US10509488B2 (en) Simulation system for operating position of a pointer
WO2017077636A1 (ja) シミュレーションシステム
WO2018011929A1 (ja) 触感提供装置、及び、シミュレーションシステム
TWI635318B (zh) 頭戴式顯示器、控制方法,以及非暫時性電腦可讀取媒體
JP2020140618A (ja) 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法
JP2017107388A (ja) シミュレーションシステム
US20240036648A1 (en) Multiple-magnet hand-mounted position-tracking device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15907822

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15907822

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP