(57)【要約】  操作性が良好なシミュレーションシステムを提供する。  シミュレーションシステムは、物品の形状と座標を表す物品データに基づいて前記物品の画像を表示する表示部と、利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、前記物品データを格納するデータ格納部と、前記操作端末機の位置及び姿勢を検出する第１検出部と、前記第１検出部によって検出される前記位置及び姿勢に基づき、前記表示部に表示される前記ポインタの第１座標を検出する第２検出部と、前記第１座標をオフセットした第２座標を取得するオフセット部と、前記物品データに含まれる座標と、前記第１座標及び前記第２座標を結ぶ第１線を表す線データとに基づき、前記表示部に表示される前記物品に、前記第１線が接触したかどうかを判定する第１判定部とを含む。
2016181473.tif 000002
【特許請求の範囲】
【請求項１】
物品の形状と座標を表す物品データに基づいて前記物品の画像を表示する表示部と、
利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、
前記物品データを格納するデータ格納部と、
前記操作端末機の位置及び姿勢を検出する第１検出部と、
前記第１検出部によって検出される前記位置及び姿勢に基づき、前記表示部に表示される前記ポインタの第１座標を検出する第２検出部と、
前記第１座標をオフセットした第２座標を取得するオフセット部と、
前記物品データに含まれる座標と、前記第１座標及び前記第２座標を結ぶ第１線を表す線データとに基づき、前記表示部に表示される前記物品に、前記第１線が接触したかどうかを判定する第１判定部と
を含む、シミュレーションシステム。
【請求項２】
前記操作端末機は、前記第１座標を３軸方向に移動させる入力を受け付ける操作部をさらに有し、
前記オフセット部は、前記操作部への入力に応じて前記第１座標をオフセットする、請求項１記載のシミュレーションシステム。
【請求項３】
前記操作端末機は、前記操作部に配設される可動素子をさらに有し、
前記第１判定部によって前記第１線が前記物品に接触したと判定されると、前記可動素子を駆動する駆動制御部をさらに含む、請求項２記載のシミュレーションシステム。
【請求項４】
物品の形状と座標を表す物品データに基づいて前記物品の画像を表示する表示部と、
操作部を有し、利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、
前記物品データを格納するデータ格納部と、
前記操作端末機の位置及び姿勢を検出する第１検出部と、
前記第１検出部によって検出される前記位置及び姿勢に基づき、前記表示部に表示される前記ポインタの第１座標を検出する第２検出部と、
前記第１座標に所定のオフセット量を加えた第２座標を取得するオフセット部と、
前記操作部を１回目に操作したときに前記オフセット部によって取得される前記第２座標と、前記１回目の操作を行った後に前記操作端末機を移動させてから前記操作部を２回目に操作したときに前記オフセット部によって取得される前記第２座標とを両端とする軌跡によって表される第１線を作成する軌跡作成部と、
前記物品データに含まれる座標と、前記第１線を表す線データとに基づき、前記表示部に表示される前記物品に、前記第１線が接触したかどうかを判定する第１判定部と
を含む、シミュレーションシステム。
【請求項５】
前記第２検出部と、第１通信部とを有する演算処理装置をさらに含み、
前記操作端末機は、
前記操作部が前記１回目に操作された第１時刻と、前記２回目に操作された第２時刻とを表す時刻データを記録する時刻記録部と、
前記第１通信部と無線通信を行う第２通信部と
をさらに有し、
前記演算処理装置は、前記無線通信によって前記時刻データを前記操作端末機から受信し、
前記軌跡作成部は、前記第１時刻における前記第１座標と、前記第２時刻における前記第２座標とを両端とする軌跡を作成する、請求項４記載のシミュレーションシステム。
【請求項６】
前記操作端末機は、可動素子をさらに有し、
前記第１判定部によって前記第１線が前記物品に接触したと判定されると、前記可動素子を駆動する駆動制御部をさらに含む、請求項１、４、及び５のいずれか一項記載のシミュレーションシステム。
【請求項７】
前記第２検出部及び前記駆動制御部と、第１通信部とを有する演算処理装置をさらに含み、
前記操作端末機は、前記第１通信部と無線通信を行う第２通信部をさらに有し、
前記操作端末機の前記可動素子は、前記無線通信によって前記演算処理装置から受信する、前記駆動制御部が出力する駆動指令によって駆動される、請求項３又は６記載のシミュレーションシステム。
【請求項８】
前記オフセット部は、前記第１線と前記物品が交点を有する場合に、前記第２座標を前記交点に移動させる、請求項１乃至７のいずれか一項記載のシミュレーションシステム。
【請求項９】
前記オフセット部は、前記交点が複数ある場合に、前記複数の交点のうちの前記第１座標に最も近い交点に、前記第２座標を前記交点に移動させる、請求項８記載のシミュレーションシステム。
【請求項１０】
利用者の頭部の位置及び姿勢を検出する第３検出部と、
前記第３検出部によって検出される前記位置及び姿勢に基づき、前記表示部に表示される画像の座標系における前記頭部の位置を表す第３座標を検出する第４検出部と、
前記第２座標及び前記第３座標を結ぶ第２線上に、前記第１座標が存在するかどうかを判定する第２判定部と
をさらに含み、
前記オフセット部は、前記第２判定部によって前記第２線上に前記第１座標が存在すると判定されると、前記第２線上に前記第１座標が存在しなくなる位置まで前記第１座標をオフセットした前記第２座標を取得する、請求項１乃至９のいずれか一項記載のシミュレーションシステム。
【請求項１１】
前記第２判定部は、前記第２線を含む空間内に、前記第１座標が存在するかどうかを判定し、
前記オフセット部は、前記第２判定部によって前記空間内に前記第１座標が存在すると判定されると、前記空間内に前記第１座標が存在しなくなる位置まで前記第１座標をオフセットした前記第２座標を取得する、請求項１０記載のシミュレーションシステム。
【請求項１２】
前記第２座標と、前記第１座標とを結ぶ直線上に前記物品が存在する場合に、前記物品を透過的に表示させる、表示調整部をさらに含む、請求項１乃至１１のいずれか一項記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステムに関する。
【背景技術】
【０００２】
従来より、コンピュータにより規定された仮想三次元空間に関して仮想空間表示手段が表示する三次元画像に向かって実空間内で所望の向きに向けることができる指示デバイスと、前記指示デバイスの実空間での位置および向きを検出する指示デバイス位置・方向検出部と備えることを特徴とする仮想空間内位置指示装置がある。前記指示デバイスを向けた向きに長さを有する指標を前記三次元画像の中に表示するための指標データを生成する指標データ生成部と、前記指示デバイス位置・方向検出部により検出された前記指示デバイスの実空間での位置および向きとともに指標の長さを指標データ生成部に与える指示デバイス長さ数値設定部とをさらに備える（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−５０１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来の仮想空間内位置指示装置は、指示デバイスを向ける方向によっては、指標が指示デバイスの陰になって見えなくなる場合がある。すなわち、従来の仮想空間内位置指示装置は、視認性が良好ではないため、操作性が良好ではない。【０００５】
そこで、操作性が良好なシミュレーションシステムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の実施の形態のシミュレーションシステムは、物品の形状と座標を表す物品データに基づいて前記物品の画像を表示する表示部と、利用者が手に持ちながら移動させることによって前記表示部に表示されるポインタの位置を操作する操作端末機と、前記物品データを格納するデータ格納部と、前記操作端末機の位置及び姿勢を検出する第１検出部と、前記第１検出部によって検出される前記位置及び姿勢に基づき、前記表示部に表示される前記ポインタの第１座標を検出する第２検出部と、前記第１座標をオフセットした第２座標を取得するオフセット部と、前記物品データに含まれる座標と、前記第１座標及び前記第２座標を結ぶ第１線を表す線データとに基づき、前記表示部に表示される前記物品に、前記第１線が接触したかどうかを判定する第１判定部とを含む。
【発明の効果】
【０００７】
操作性が良好なシミュレーションシステムを提供することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１のシミュレーションシステムを示す図である。
【図２】実施の形態１の処理装置が適用されるコンピュータシステムの斜視図である。
【図３】コンピュータシステムの本体部内の要部の構成を説明するブロック図である。
【図４】実施の形態１の操作端末機を示す斜視図である。
【図５】振動モータを示す図である。
【図６】実施の形態１の操作端末機の電気系の構成を示す図である。
【図７】振動データを示す図である。
【図８】形状データを示す図である。
【図９】物品の画像の一例を示す図である。
【図１０】実施の形態１で用いるオフセット量を表すデータを示す図である。
【図１１】実施の形態１で用いる線データによって表される線を示す図である。
【図１２】実施の形態１で用いる線と物品との交点を示す図である。
【図１３】実施の形態１の処理装置が実行する処理を示すフローチャートである。
【図１４】実施の形態２の操作端末機を示す図である。
【図１５】実施の形態２の操作端末機の電気系の構成を示す図である。
【図１６】実施の形態２の処理装置が実行する処理を示すフローチャートである。
【図１７】実施の形態２の変形例を示す図である。
【図１８】実施の形態２の変形例を示す図である。
【図１９】実施の形態３のシミュレーションシステムを示す図である。
【図２０】実施の形態３の操作端末機を示す斜視図である。
【図２１】実施の形態３の操作端末機の電気系の構成を示す図である。
【図２２】実施の形態３で用いる線データによって表される線を示す図である。
【図２３】図２２の構成の変形例を示す図である。
【図２４】実施の形態３で用いる線を示す図である。
【図２５】実施の形態３で用いる線のデータを示す図である。
【図２６】実施の形態３で用いる円筒領域のデータを示す図である。
【図２７】実施の形態３で用いる線を示す図である。
【図２８】実施の形態３で用いる線のデータを示す図である。
【図２９】実施の形態３の処理装置が実行する処理を示すフローチャートである。
【図３０】実施の形態４のシミュレーションシステムを示す図である。
【図３１】３Ｄ眼鏡のマーカと点との位置関係を示す図である。
【図３２】実施の形態４の処理を示すフローチャートである。
【図３３】実施の形態４の変形例を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明のシミュレーションシステムを適用した実施の形態について説明する。
【００１０】
＜実施の形態１＞
図１は、実施の形態１のシミュレーションシステム１００を示す図である。
【００１１】
シミュレーションシステム１００は、スクリーン１１０Ａ、投影装置１１０Ｂ、３Ｄ(3 Dimension)眼鏡１１０Ｃ、処理装置１２０、操作端末機１３０、及び位置計測装置１４０を含む。
【００１２】
実施の形態１シミュレーションシステム１００は、例えば、組み立て作業性を仮想空間において把握するため組立支援システムに適用することができる。組立支援システムでは、例えば、ＣＰＵ(Central Processing Unit：中央演算処理装置)モジュール、メモリモジュール、通信モジュール、又はコネクタ等の電子部品をマザーボード等に組み付ける作業を仮想空間で模擬的に行うことができる。
【００１３】
しかしながら、実施の形態１シミュレーションシステム１００は、組立支援システムに限らず、三次元空間での作業性を確認する様々なシステムに適用することができる。
【００１４】
スクリーン１１０Ａは、例えば、プロジェクタ用スクリーンを用いることができる。スクリーン１１０Ａのサイズは、用途に応じて適宜設定すればよい。スクリーン１１０Ａには、投影装置１１０Ｂによって投影される画像が表示される。ここでは、物品１１１及び１１２の画像がスクリーン１１０Ａに表示されていることとする。
【００１５】
投影装置１１０Ｂは、スクリーン１１０Ａに画像を投影できる装置であればよく、例えば、プロジェクタを用いることができる。投影装置１１０Ｂは、ケーブル１１０Ｂ１によって処理装置１２０に接続されており、処理装置１２０から入力される画像をスクリーン１１０Ａに投影する。ここでは、投影装置１１０Ｂは、３Ｄ画像（立体視の画像）をスクリーン１１０Ａに投影できるタイプのものである。
【００１６】
なお、スクリーン１１０Ａと投影装置１１０Ｂは、表示部の一例である。
【００１７】
３Ｄ眼鏡１１０Ｃは、シミュレーションシステム１００を利用する利用者が装着する。３Ｄ眼鏡１１０Ｃは、投影装置１１０Ｂによってスクリーン１１０Ａに投影される画像を３Ｄ画像に変換できる眼鏡であればよく、例えば、入射光を偏光する偏光眼鏡、又は、液晶シャッターを有する液晶シャッター眼鏡を用いることができる。
【００１８】
なお、スクリーン１１０Ａ及び投影装置１１０Ｂの代わりに、例えば、液晶ディスプレイパネルを用いてもよい。また、３Ｄ眼鏡１１０Ｃが不要な場合は、３Ｄ眼鏡１１０Ｃを用いなくてもよい。また、スクリーン１１０Ａ及び投影装置１１０Ｂの代わりに、ヘッドマウントディスプレイを用いてもよい。
【００１９】
処理装置１２０は、位置検出部１２１、接触判定部１２２、映像出力部１２３、データ保持部１２４、駆動制御部１２５、通信部１２６、及びポインタ導出部１２７を有する。処理装置１２０は、例えば、メモリを有するコンピュータのような演算処理装置によって実現される。
【００２０】
位置検出部１２１は、位置計測装置１４０から入力される画像データに対してパターンマッチング等の画像処理を行い、操作端末機１３０の位置と姿勢を検出する。操作端末機１３０の位置は、３次元座標における座標値で表され、姿勢は、３次元座標の３軸方向に対する角度で表される。
【００２１】
なお、操作端末機１３０の位置と姿勢の検出は、位置計測装置１４０で行ってもよい。
【００２２】
ポインタ導出部１２７は、操作端末機１３０の位置を表す座標値と、姿勢を表す角度とのデータに基づいて、スクリーン１１０Ａに投影される画像の中におけるポインタ１３０Ａの座標を導出する。
【００２３】
また、ポインタ導出部１２７は、ポインタ１３０Ａの座標をオフセットさせたオフセット座標を導出する。ポインタ導出部１２７がオフセット座標を求めると、ポインタ１３０Ａは、オフセット座標に表示される。すなわち、ポインタ１３０Ａの位置がオフセットされる。
【００２４】
ポインタ導出部１２７は、オフセット前の座標と、オフセット座標とを両端とする線を表す線データを接触判定部１２２と映像出力部１２３に出力する。
【００２５】
ここで、オフセット前の座標は、操作端末機１３０の位置を表す座標値と、姿勢を表す角度とのデータに基づいて、スクリーン１１０Ａに投影される画像の中におけるポインタ１３０Ａの座標である。
【００２６】
オフセット前の座標は、第１座標の一例である。また、オフセット座標は、第２座標の一例である。なお、ポインタ導出部１２７は、第２検出部の一例である。
【００２７】
また、線データは、オフセット前の座標と、オフセット座標とを結ぶ直線のうち、オフセット前の座標と、オフセット座標との間の線分を表すデータである。以下では、線データが表す線とは、オフセット前の座標と、オフセット座標とを結ぶ直線のうち、オフセット前の座標と、オフセット座標との間の線分を表すこととする。
【００２８】
接触判定部１２２は、スクリーン１１０Ａに投影される物品１１１又は１１２の画像と、線データが表す線とが接触したかどうかを判定する。
【００２９】
接触判定部１２２は、スクリーン１１０Ａに投影される物品１１１又は１１２の形状及び位置を表すデータと、線データとを用いて、物品１１１又は１１２の画像と、線データが表す線とが接触したかどうかを判定する。接触判定部１２２は、判定部の一例である。
【００３０】
映像出力部１２３の出力端子は、ケーブル１１０Ｂ１によって投影装置１１０Ｂに接続されている。映像出力部１２３は、データ保持部１２４に保持される物品１１１及び１１２の物品データによって特定される画像を投影装置１１０Ｂに出力し、スクリーン１１０Ａに表示させる。
【００３１】
また、映像出力部１２３は、投影装置１１０Ｂにポインタ１３０Ａを表示させる。スクリーン１１０Ａに表示される画像内におけるオフセット前の座標は、位置検出部１２１で検出される操作端末機１３０の位置と姿勢によって決まる。ポインタ１３０Ａは、オフセット座標に表示される。
【００３２】
データ保持部１２４は、物品１１１及び１１２の座標と形状を表す物品データ、物品１１１及び１１２の振動パターンを表す振動データ、ポインタ１３０Ａの画像データ、オフセット量を表すデータ等のデータを保持する。データ保持部１２４は、メモリによって実現され、データ格納部の一例である。
【００３３】
駆動制御部１２５は、接触判定部１２２によって物品１１１又は１１２の画像と、線データが表す線とが接触したと判定されると、線データが表す線が接触した物品１１１又は１１２の部位の触感に応じた振動パターンの駆動信号を出力する。この駆動信号は、操作端末機１３０の振動素子を駆動する信号である。
【００３４】
通信部１２６は、操作端末機１３０と無線通信を行う通信部であり、例えば、Bluetooth（登録商標）又はWiFi(Wireless Fidelity)等の規格で無線通信を行うことができる。通信部１２６は、駆動制御部１２５によって生成される駆動信号を操作端末機１３０に送信する。なお、通信部１２６は、操作端末機１３０と有線通信を行う通信部であってもよい。
【００３５】
操作端末機１３０は、シミュレーションシステム１００を利用する利用者が手に保持し、スクリーン１１０Ａに表示されるポインタ１３０Ａの位置をコントロールする端末機である。操作端末機１３０は、マーカ１３２と振動素子１３３Ｒ及び１３３Ｌとを有する。
【００３６】
マーカ１３２は、複数の球体を有し、位置計測装置１４０から照射される赤外線を様々な方向に反射させる。マーカ１３２は、位置計測装置１４０による操作端末機１３０の位置検出に用いられる。
【００３７】
振動素子１３３Ｒ及び１３３Ｌは、それぞれ、操作端末機１３０の右側及び左側に振動を発生させるために設けられている。また、振動素子１３３Ｒ及び１３３Ｌは、駆動制御部１２５によって生成される駆動信号によって駆動される。振動素子１３３Ｒ及び１３３Ｌは、可動素子の一例である。
【００３８】
なお、操作端末機１３０の詳細については後述する。
【００３９】
位置計測装置１４０は、赤外線カメラ１４０Ａ及び１４０Ｂを有し、それぞれ、ケーブル１４１Ａ及び１４１Ｂによって位置検出部１２１に接続されている。赤外線カメラ１４０Ａ及び１４０Ｂは、赤外線を操作端末機１３０に照射し、マーカ１３２で反射された反射光を撮影する。位置計測装置１４０は、赤外線カメラ１４０Ａ及び１４０Ｂが出力する画像データを位置検出部１２１に転送する。位置計測装置１４０は、第１検出部の一例である。
【００４０】
図２は、実施の形態１の処理装置１２０が適用されるコンピュータシステムの斜視図である。図２に示すコンピュータシステム１０は、本体部１１、ディスプレイ１２、キーボード１３、マウス１４、及びモデム１５を含む。
【００４１】
本体部１１は、ＣＰＵ（Central Processing Unit：中央演算装置）、ＨＤＤ（Hard Disk Drive：ハードディスクドライブ）、及びディスクドライブ等を内蔵する。ディスプレイ１２は、本体部１１からの指示により画面１２Ａ上に解析結果等を表示する。ディスプレイ１２は、例えば、液晶モニタであればよい。キーボード１３は、コンピュータシステム１０に種々の情報を入力するための入力部である。マウス１４は、ディスプレイ１２の画面１２Ａ上の任意の位置を指定する入力部である。モデム１５は、外部のデータベース等にアクセスして他のコンピュータシステムに記憶されているプログラム等をダウンロードする。
【００４２】
コンピュータシステム１０に処理装置１２０としての機能を持たせるプログラムは、ディスク１７等の可搬型記録媒体に格納されるか、モデム１５等の通信装置を使って他のコンピュータシステムの記録媒体１６からダウンロードされ、コンピュータシステム１０に入力されてコンパイルされる。
【００４３】
コンピュータシステム１０に処理装置１２０としての機能を持たせるプログラムは、コンピュータシステム１０を処理装置１２０として動作させる。このプログラムは、例えばディスク１７等のコンピュータ読み取り可能な記録媒体に格納されていてもよい。コンピュータ読み取り可能な記録媒体は、ディスク１７、ＩＣカードメモリ、フロッピー（登録商標）ディスク等の磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＵＳＢ(Universal Serial Bus)メモリ等の可搬型記録媒体に限定されるものではない。コンピュータ読み取り可能な記録媒体は、モデム１５又はＬＡＮ等の通信装置を介して接続されるコンピュータシステムでアクセス可能な各種記録媒体を含む。
【００４４】
図３は、コンピュータシステム１０の本体部１１内の要部の構成を説明するブロック図である。本体部１１は、バス２０によって接続されたＣＰＵ２１、ＲＡＭ又はＲＯＭ等を含むメモリ部２２、ディスク１７用のディスクドライブ２３、及びハードディスクドライブ（ＨＤＤ）２４を含む。実施の形態１では、ディスプレイ１２、キーボード１３、及びマウス１４は、バス２０を介してＣＰＵ２１に接続されているが、これらはＣＰＵ２１に直接的に接続されていてもよい。また、ディスプレイ１２は、入出力画像データの処理を行う周知のグラフィックインタフェース（図示せず）を介してＣＰＵ２１に接続されていてもよい。
【００４５】
コンピュータシステム１０において、キーボード１３及びマウス１４は、処理装置１２０の入力部である。ディスプレイ１２は、処理装置１２０に対する入力内容等を画面１２Ａ上に表示する表示部である。
【００４６】
なお、コンピュータシステム１０は、図２及び図３に示す構成のものに限定されず、各種周知の要素を付加してもよく、又は代替的に用いてもよい。
【００４７】
図４は、操作端末機１３０を示す斜視図である。
【００４８】
操作端末機１３０は、筐体１３１、マーカ１３２、振動素子１３３Ｒ、１３３Ｌ、ボタン１３４Ａ、１３４Ｂ、及びガイドバー１３５を有する。
【００４９】
操作端末機１３０は、ポインタ１３０Ａの位置（オフセット前の座標が示す位置）の指標となるガイドバー１３５をスクリーン１１０Ａに向けて利用者が手で持つため、スクリーン１１０Ａに向いた利用者にとって右側に振動素子１３３Ｒが位置し、左側に振動素子１３３Ｌが位置する。
【００５０】
また、以下では、左右を表す場合には、ガイドバー１３５をスクリーン１１０Ａに向けて操作端末機１３０を保持し、スクリーン１１０Ａを向く利用者を基準に左右の位置関係を表すこととする。
【００５１】
また、以下では、前後を表す場合には、ガイドバー１３５をスクリーン１１０Ａに向けて操作端末機１３０を保持し、スクリーン１１０Ａを向く利用者を基準に前後の位置関係を表すこととする。
【００５２】
また、筐体１３１の振動素子１３３Ｒ、１３３Ｌが設けられる面を上面と称し、ガイドバー１３５が取り付けられる側を前側と称す。
【００５３】
筐体１３１は、例えば、樹脂製であり、利用者が手に持つのにちょうど良いサイズを有する。筐体１３１の上面には、振動素子１３３Ｒ及び１３３Ｌが配設されている。
【００５４】
マーカ１３２は、複数の球体１３２Ａとワイヤ１３２Ｂとを有する。複数の球体１３２Ａは、ワイヤ１３２Ｂによって筐体１３１に取り付けられている。
【００５５】
マーカ１３２は、位置計測装置１４０による操作端末機１３０の位置と姿勢の検出に用いられるため、位置計測装置１４０から照射される赤外線を様々な方向に反射させる。マーカ１３２が反射する赤外線は、赤外線カメラ１４０Ａ及び１４０Ｂによって撮像され、位置検出部１２１が画像処理を行うことによってマーカ１３２の位置と姿勢が検出される。マーカ１３２の位置と姿勢は、操作端末機１３０の位置と姿勢を表す。
【００５６】
マーカ１３２は、規則性がない様々な方向に赤外線を反射できれば、球体の個数は幾つであってもよく、球体の位置についても特に限定はない。また、球体ではなくてもよいし、マーカ１３２の検出は、赤外線を用いる手法に限られない。操作端末機１３０の位置検出を行うことができるのであれば、マーカ１３２はどのようなものであってもよい。
【００５７】
振動素子１３３Ｒ及び１３３Ｌは、筐体１３１の上面に設けられている。振動素子１３３Ｒ及び１３３Ｌは、駆動制御部１２５によって生成される駆動信号によって駆動される。
【００５８】
振動素子１３３Ｒ及び１３３Ｌは、例えば、ピエゾ素子又はＬＲＡ(Linear Resonant Actuator)のような振動を発生する素子であればよい。振動素子１３３Ｒ及び１３３Ｌを駆動すると振動が発生する。
【００５９】
ボタン１３４Ａ、１３４Ｂは、操作端末機１３０の機能が割り当てられており、複数あってもよい。機能としては、例えば、処理装置１２０との無線通信のオン／オフを切り替える機能、ポインタ１３０Ａの表示の明るさを調整する機能等の様々な機能である。
【００６０】
ガイドバー１３５は、筐体１３１の前側に取り付けられている。ガイドバー１３５は、ポインタ１３０Ａの位置の指標となる部材であり、スクリーン１１０Ａにポインタ１３０Ａが表示される位置を認識しやすくするために設けられている。ガイドバー１３５は、ここでは、一例として、細長い三角形状の板状部材である。
【００６１】
ガイドバー１３５は、操作端末機１３０を手に持つ利用者が、スクリーン１１０Ａに表示されるポインタ１３０Ａの位置を移動させる際の指標又は基準点になるのであれば、どのような形状のものであってもよい。
【００６２】
なお、ガイドバー１３５がなくても、利用者がポインタ１３０Ａの位置を把握しやすいような場合には、操作端末機１３０は、ガイドバー１３５を含まなくてもよい。
【００６３】
図５は、振動モータ１３３Ａを示す図である。振動モータ１３３Ａは、ベース１３３Ａ１と、回転部１３３Ａ２とを有する。ベース１３３Ａ１の内部には、巻線コイルが設けられている。回転部１３３Ａ２は、偏心構造を有し、回転するとベース１３３Ａ１に振動が伝達する。このような振動モータ１３３Ａを図４に示す振動素子１３３Ｒ及び１３３Ｌの代わりに用いてもよい。
【００６４】
図６は、操作端末機１３０の電気系の構成を示す図である。ここでは、筐体１３１とガイドバー１３５を簡略化して示し、マーカ１３２を省略する。
【００６５】
操作端末機１３０は、振動素子１３３Ｒ、１３３Ｌ、ボタン１３４Ａ、１３４Ｂ、通信部１３６、ボタン判定部１３７、及び信号生成部１３８を有する。なお、ボタン判定部１３７と信号生成部１３８は、例えば、マイクロコンピュータのような演算処理装置によって実現される。
【００６６】
通信部１３６には、ボタン判定部１３７及び信号生成部１３８が接続されている。通信部１３６は、処理装置１２０の通信部１２６と無線通信を行う通信部であり、例えば、Bluetooth, WiFi, Xbee, zigbee等の規格で無線通信を行う。
【００６７】
通信部１３６は、ボタン判定部１３７から入力される信号を処理装置１２０に送信する。また、通信部１３６は、処理装置１２０の駆動制御部１２５によって生成される駆動信号を受信し、信号生成部１３８に出力する。
【００６８】
ボタン判定部１３７は、ボタン１３４Ａ、１３４Ｂの操作の有無を判定する判定部であり、例えば、処理装置１２０との無線通信のオン／オフ、ポインタ１３０Ａの表示の明るさの調整、後述する交点の選択等の操作内容を判定する。ボタン判定部１３７は、操作内容を表す信号を通信部１３６に出力する。
【００６９】
信号生成部１３８は、通信部１３６が受信する駆動信号を増幅して振動素子１３３Ｒ又は１３３Ｌを駆動する。なお、信号生成部１３８を駆動制御部として捉えてもよい。
【００７０】
図７は、振動データを示す図である。
【００７１】
振動データは、振動素子１３３Ｒ又は１３３Ｌの振動パターンを表すデータである。振動データは、一例として、物品ＩＤ、物品名称、振動強度、及び振動時間を有する。
【００７２】
物品ＩＤは、物品毎に割り当てられる識別子である。すべての物品は、互いに異なる物品ＩＤを有する。図７には、例示的な物品ＩＤとして、001,002,003,・・・を示す。
【００７３】
物品名称は、物品の名称である。図７には、例示的な物品名称として、Plate, Connector, Cable,・・・を示す。
【００７４】
振動強度は、振動素子１３３Ｒ又は１３３Ｌを駆動する駆動信号の振幅(Vpp)を表す。振幅は、ピーク・トゥ・ピークの電圧値で示してある。
【００７５】
振動時間は、振動素子１３３Ｒ又は１３３Ｌを駆動する時間(ms)を表す。
【００７６】
なお、振動データは、処理装置１２０のデータ保持部１２４に格納されている。
【００７７】
図８は、形状データを示す図である。
【００７８】
物品データは、スクリーン１１０Ａに表示する物品の座標と形状を表すデータである。物品データは、物品ＩＤ、形状タイプ、基準座標、サイズ、及び回転角度を有する。
【００７９】
形状タイプは、物品の外形を表す。図８では、一例として、形状タイプがCuboid(直方体)とCylinder(円柱体)を示す。
【００８０】
基準座標は、物品の全体を表す座標の基準になる点の座標値を示す。座標値の単位はメートル（ｍ）である。なお、座標系としては、ＸＹＺ座標系を用いる。
【００８１】
サイズは、物品のＸ軸方向の長さ、Ｙ軸方向の長さ、Ｚ軸方向の長さを表す。単位はメートル（ｍ）である。一例として、Ｘ軸方向の長さは縦の長さを表し、Ｙ軸方向の長さは高さを表し、Ｚ軸方向の長さは奥行き（横方向の長さ）を表す。
【００８２】
回転角度は、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向に対する回転角度θｘ、θｙ、θｚで表される。単位は度(deg.)である。回転角度θｘは、Ｘ軸を回転軸として物品を回転させる角度である。同様に、回転角度θｙ及びθｚは、それぞれ、Ｙ軸及びＺ軸を回転軸として物品を回転させる角度である。回転角度θｘ、θｙ、θｚの正方向は、予め決めておけばよい。
【００８３】
このような物品データを用いれば、ＣＡＤデータによって表示される物品の画像と同様に、物品データによって特定される画像を表すことができる。
【００８４】
なお、物品データは、処理装置１２０のデータ保持部１２４に格納されている。
【００８５】
図９は、物品の画像の一例を示す図である。
【００８６】
図９には、図８の物品データによって表される３つの物品を示す。
【００８７】
物品ＩＤが001の物品は、形状タイプがCuboid(直方体)で、基準座標（Ｘ，Ｙ，Ｚ）が（０．０，０．０，０．０）であり、サイズが（０．８，０．２，０．４）であり、回転角度θｘ、θｙ、θｚが（０．０，０．０，０．０）である。
【００８８】
基準座標（Ｘ，Ｙ，Ｚ）が（０．０，０．０，０．０）であるため、物品ＩＤが001の物品の１つの頂点は、ＸＹＺ座標系の原点Ｏと一致している。
【００８９】
物品ＩＤが002の物品は、形状タイプがCuboid(直方体)で、基準座標（Ｘ，Ｙ，Ｚ）が（０．６，０．２，０．０）であり、サイズが（０．２，０．２，０．１）であり、回転角度θｘ、θｙ、θｚが（０．０，０．０，０．０）である。
【００９０】
このため、物品ＩＤが002の物品は、物品ＩＤが001の物品の上に配置されている。
【００９１】
物品ＩＤが003の物品は、形状タイプがCylinder(円柱体)で、基準座標（Ｘ，Ｙ，Ｚ）が（０．８，０．３，０．１）であり、サイズが（０．２，１．０，０．３）であり、回転角度θｘ、θｙ、θｚが（０．０，０．０，９０．０）である。
【００９２】
このため、物品ＩＤが003の物品は、Ｚ軸を回転軸として９０度回転させた状態で、物品ＩＤが002の物品のＸ軸正方向側に接続されている。
【００９３】
なお、上述のように、実施の形態１では、図８に示す物品ＩＤ、形状タイプ、基準座標、サイズ、及び回転角度を有する物品データを用いて、スクリーン１１０Ａに投影される画像の中における物品の座標と形状を規定する。
【００９４】
例えば、形状タイプがCuboid(直方体)の場合に、８つの頂点の座標は、基準座標に対して、サイズで表される物品のＸ軸方向の長さ、Ｙ軸方向の長さ、Ｚ軸方向の長さを加算又は減算することによって求めることができる。８つの頂点の座標は、形状タイプがCuboid(直方体)の物品のCorner(角)の座標を表す。
【００９５】
８つの頂点の座標を求めれば、１２本の辺を表す式を求めることができる。１２本の辺を表す式は、形状タイプがCuboid(直方体)の物品のEdge(辺)の座標を表す式である。
【００９６】
また、８つの頂点の座標、及び／又は、１２本の辺を表す式を求めれば、形状タイプがCuboid(直方体)の物品の６つの表面を表す式が求まり、Surface(面)の座標を求めることができる。
【００９７】
また、形状タイプがCylinder(円柱体)の場合には、サイズで表される物品のＸ軸方向の長さ、Ｙ軸方向の長さ、Ｚ軸方向の長さに基づいて、円柱の両端にある円（又は楕円）を表す式を求めることができる。また、両端の円（又は楕円）を表す式と基準座標とを用いれば、両端の円（又は楕円）の座標を表す式を求めることができる。円柱体の側面の座標は、両端の円（又は楕円）の座標を表す式を用いることよって求めることができる。
【００９８】
ここでは、形状タイプがCuboid(直方体)とCylinder(円柱体)の物品について説明したが、球体、三角錐、凹部を有する直方体等の様々な形状の物品についても、同様にスクリーン１１０Ａに投影される画像の中における座標と形状を求めることができる。
【００９９】
図１０は、オフセット量を表すデータを示す図である。
【０１００】
オフセット量は、ポインタＩＤと関連付けられている。ポインタＩＤは、操作端末機１３０毎に割り当てられる識別子である。オフセット量は、Ｘ軸方向、Ｙ軸方向、及びＺ軸方向について設定することができる。
【０１０１】
図１０では、一例として、ポインタＩＤが001の操作端末機１３０について、Ｘ軸方向に３００ｍｍ、Ｙ軸方向に０ｍｍ、Ｚ軸方向に０ｍｍのオフセット量が設定されている。
【０１０２】
オフセット量を表すデータは、データ保持部１２４に格納されており、シミュレーションシステム１００におけるデフォルトの値、又は、利用者によって設定される任意の値である。
【０１０３】
図１１は、線データによって表される線を示す図である。ここでは、スクリーン１１０Ａに投影される画像によって表示される仮想空間に存在する線と、現実空間に存在する操作端末機１３０との両方を示す。
【０１０４】
仮想空間に存在する線Ｌ１は、点Ｃ１と点Ｃ２との間を結ぶ直線である。点Ｃ１は、オフセット前の座標が表す仮想空間における位置を表し、点Ｃ２は、オフセット座標が表す仮想空間における位置を表す。すなわち、ポインタ１３０Ａは、点Ｃ１から点Ｃ２にオフセットされている。
【０１０５】
図１１では、説明の便宜上、線Ｌ１を破線で示すが、線Ｌ１はスクリーン１１０Ａには表示されない。スクリーン１１０Ａには、オフセット座標（点Ｃ２の位置）にあるポインタ１３０Ａが表示される。
【０１０６】
実施の形態１のシミュレーションシステム１００では、線Ｌ１が物品と接触したかどうかを判定し、接触した場合には、操作端末機１３０の振動素子１３３Ｒ又は１３３Ｌを振動させる。
【０１０７】
ここで、点Ｃ１の座標を（Ｘ１，Ｙ１，Ｚ１）、点Ｃ２の座標を（Ｘ２，Ｙ２，Ｚ２）とすると、線Ｌ１は、次式（１）によって表される。
【０１０８】
【数１】
2016181473.tif 000003
ただし、線Ｌ１は、点Ｃ１と点Ｃ２の間に存在し、点Ｃ１と点Ｃ２とのを結ぶ区間よりも外側には存在しない。線データは、オフセット前の座標（点Ｃ１）と、オフセット座標（点Ｃ２）とを結ぶ直線のうち、オフセット前の座標（点Ｃ１）と、オフセット座標（点Ｃ２）との間の線分を表すデータだからである。
【０１０９】
従って、接触判定部１２２は、式（１）によって表される線Ｌ１と、物品の座標データとに交点があれば、線Ｌ１と物品とが接触したと判定し、線Ｌ１と、物品の座標データとに交点がなければ、線Ｌ１と物品とが接触していないと判定する。
【０１１０】
なお、図１１に示すように、線Ｌ１を中心軸とする円筒領域Ｅ１を設定し、円筒領域Ｅ１と物品とが接触したかどうかを判定するようにしてもよい。円筒領域Ｅ１の半径は、用途に応じて適宜設定すればよい。例えば、線Ｌ１が３０ｃｍの場合には、半径を１．５ｃｍに設定すればよい。円筒領域Ｅ１は、線Ｌ１と同様に、スクリーン１１０Ａには表示されない。
【０１１１】
図１２は、線Ｌ１と物品との交点を示す図である。
【０１１２】
図１２には、２つの物品１１１Ａ、１１１Ｂを示す。物品１１１Ａ、１１１Ｂは、ともに立方体の物品である。
【０１１３】
例えば、線Ｌ１と物品１１１Ａ、１１１Ｂとに４つの交点Ｐ１、Ｐ２、Ｐ３、Ｐ４があり、スクリーン１１０Ａには、ポインタ１３０Ａと、４つの交点Ｐ１、Ｐ２、Ｐ３、Ｐ４と、２つの物品１１１Ａ、１１１Ｂとが表示されている。
【０１１４】
このような場合には、接触判定部１２２はポインタ導出部１２７に、ポインタ１３０Ａをオフセット前の座標に対応する点Ｃ１に最も近い交点Ｐ１に移動させる。
【０１１５】
また、操作端末機１３０から交点を選択する指令が無線通信によって処理装置１２０に送信された場合には、ポインタ導出部１２７は、選択された交点にポインタ１３０Ａを移動させる。交点の選択は、ボタン１３４Ａ又は１３４Ｂで行えばよい。
【０１１６】
図１３は、実施の形態１の処理装置１２０が実行する処理を示すフローチャートである。ここでは、一例として、図１に示すように、スクリーン１１０Ａに物品１１１及び１１２の画像を表示させる場合について説明する。
【０１１７】
処理装置１２０は、電源が投入されると、処理をスタートする前に、データ保持部１２４から物品データと振動データを取得する。処理装置１２０は、物品データを用いて映像信号を生成し、投影装置１１０Ｂに画像を投影させる。これにより、スクリーン１１０Ａに物品１１１及び１１２の立体視のモデルの画像が表示される。スクリーン１１０Ａに表示される物品１１１及び１１２の画像は、仮想空間に存在する仮想物体を表す。これらの処理は、映像出力部１２３によって行われる。
【０１１８】
処理装置１２０は、処理を開始する（スタート）。
【０１１９】
処理装置１２０は、操作端末機１３０の現実空間における位置と姿勢を検出する（ステップＳ１）。ステップＳ１の処理は、位置検出部１２１によって行われる。
【０１２０】
処理装置１２０は、仮想空間における点Ｃ１の座標を検出する（ステップＳ２）。点Ｃ１の座標は、オフセット前の座標であり、ポインタ導出部１２７によって検出される。
【０１２１】
処理装置１２０は、データ保持部１２４からオフセット量を読み出す（ステップＳ３）。オフセット量を表すデータは、予めデータ保持部１２４に格納されている。
【０１２２】
処理装置１２０は、点Ｃ１の座標にオフセット量を加算することにより、仮想空間における点Ｃ２の座標を検出する（ステップＳ４）。点Ｃ２の座標は、オフセット座標であり、ポインタ導出部１２７によって検出される。
【０１２３】
点Ｃ２の座標を表すデータは、接触判定部１２２及び映像出力部１２３に入力される。
【０１２４】
処理装置１２０は、ステップＳ４で得られたポインタ１３０Ａの座標に基づき、投影装置１１０Ｂにポインタ１３０Ａをスクリーン１１０Ａに表示させる（ステップＳ５）。ポインタ１３０Ａは、例えば、点Ｃ２の座標で表される位置に表示される。
【０１２５】
これにより、物品１１１及び１１２の立体視の画像が表示されているスクリーン１１０Ａにポインタ１３０Ａがオフセットされて表示される。
【０１２６】
また、ステップＳ５では、ポインタ１３０Ａを表す画像データを用いてポインタ１３０Ａを表示すればよい。ポインタ１３０Ａについても、物品１１１及び１１２の物品データに相当するデータを用意しておき、ポインタ１３０Ａの立体視のモデルの画像を表示すればよい。ただし、特にポインタ１３０Ａの画像データを用いなくてもポインタ１３０Ａを表示できる場合は、ポインタ１３０Ａの画像データをデータ保持部１２４に保持しておかなくてもよい。
【０１２７】
なお、ステップＳ５の処理は、映像出力部１２３によって行われる。
【０１２８】
処理装置１２０は、線Ｌ１を表す式を取得する(ステップＳ６)。線Ｌ１のデータは、接触判定部１２２が点Ｃ１と点Ｃ２の座標データを用いて計算する。なお、線Ｌ１のデータは、ポインタ導出部１２７が計算して接触判定部１２２に出力してもよい。
【０１２９】
処理装置１２０は、物品１１１又は１１２と線Ｌ１が接触したかどうかを判定する（ステップＳ７）。ステップＳ７の処理は、接触判定部１２２によって行われる。接触判定部１２２は、物品１１１及び１１２の物品データと、ステップＳ６で得られた線Ｌ１のデータとに基づき、物品１１１又は１１２と線Ｌ１とが接触したかどうかを判定する。
【０１３０】
物品１１１又は１１２と線Ｌ１が接触したかどうかは、物品１１１又は１１２と、線Ｌ１との交点があるかどうかで判定すればよい。
【０１３１】
また、物品１１１又は１１２と線Ｌ１とが接触したかどうかは、線Ｌ１のデータと、線Ｌ１のデータに最も近い物品データに含まれる座標との位置の差が所定値以下であるかどうかで判定してもよい。例えば、座標データに最も近い物品データに含まれる位置と、座標データが表す位置との差が所定値以下になった場合に接触したと判定する方が、シミュレーションシステム１００における操作端末機１３０の操作性が良好である場合には、このような設定にすればよい。
【０１３２】
次に説明するステップＳ８では、一例として、物品１１１と線Ｌ１が接触したこととする。なお、物品１１２と線Ｌ１が接触した場合でも、同様の処理が行われる。
【０１３３】
処理装置１２０は、物品１１１と線Ｌ１が接触した（Ｓ７：ＹＥＳ）と判定すると、振動データから振動強度と振動時間を読み出し、操作端末機１３０の振動素子１３３Ｒ及び１３３Ｌを駆動する駆動信号を生成し、通信部１２６を介して、操作端末機１３０に送信する（ステップＳ８）。この結果、操作端末機１３０の振動素子１３３Ｒ及び１３３Ｌが駆動される。なお、ステップＳ８の処理は、駆動制御部１２５が行う。
【０１３４】
この場合に、処理装置１２０は、物品１１１と線Ｌ１が接触したと判定した場合に、線Ｌ１の座標の時間変化を表すデータに基づき、線Ｌ１が物品１１１に接触した方向を算出してもよい。そして、接触した方向は、接触の直前の線Ｌ１の座標が物品１１１に対して位置する方向に基づいて判定すればよい。
【０１３５】
そして、線Ｌ１が物品１１１の右側から接近して線Ｌ１の左側が物品１１１に接触したことを表す場合には、操作端末機１３０の左側に位置する振動素子１３３Ｌを駆動すればよい。
【０１３６】
また、線Ｌ１が物品１１１の左側から接近して線Ｌ１の右側が物品１１１に接触したことを表す場合には、操作端末機１３０の右側に位置する振動素子１３３Ｒを駆動すればよい。
【０１３７】
処理装置１２０は、線Ｌ１が物品１１１との交点の座標を取得し、交点をスクリーン１１０Ａに表示する（ステップＳ９）。線Ｌ１が物品の角又は辺に接触しているような場合を除いて、線Ｌ１は物品を貫通しているため、少なくとも２つの交点が存在するからである。
【０１３８】
なお、交点としては、立体視のモデルの点を表す画像を表示すればよい。このような交点の画像は、データ保持部１２４に保持しておけばよい。
【０１３９】
処理装置１２０は、ステップＳ９で求めた交点のうち、点Ｃ１に最も近い交点の座標を抽出する（ステップＳ１０）。
【０１４０】
処理装置１２０は、点Ｃ２の座標をステップＳ１０で抽出した交点に変更し、変更した点Ｃ２にポインタ１３０Ａを表示する。（ステップＳ１１）。このとき、スクリーン１１０Ａの表示は、交点Ｐ１の位置にポインタ１３０Ａが表示され、交点Ｐ２〜Ｐ４は表示されなくなる。
【０１４１】
ステップＳ１１の処理が終了すると、再びスタートからリピートする（リピート）。
【０１４２】
なお、ステップＳ７で物品１１１又は１１２と線Ｌ１が接触していない（Ｓ７：ＮＯ）と判定した場合は、フローをステップＳ１にリターンする。
【０１４３】
以上のように、実施の形態１のシミュレーションシステム１００によれば、利用者は、位置がオフセットされたポインタ１３０Ａを操作端末機１３０で操作することができる。このため、ポインタ１３０Ａが操作端末機１３０の陰になって見えなくなるようなことが抑制され、ポインタ１３０Ａの視認性が良好である。
【０１４４】
従って、操作性が良好なシミュレーションシステム１００を提供することができる。
【０１４５】
また、操作端末機１３０で操作するポインタ１３０Ａから延びる線Ｌ１が、スクリーン１１０Ａに投影される画像の中で、物品１１１又は１１２のような物品と接触した場合に、振動素子１３３Ｒ又は１３３Ｌを振動させる。
【０１４６】
このため、利用者は、触感だけで接触があったことを認識することができる。
【０１４７】
また、実施の形態１のシミュレーションシステム１００によれば、操作端末機１３０で操作するポインタ１３０Ａから延びる線Ｌ１が物品に接触する方向に応じて、振動素子１３３Ｒ又は１３３Ｌのいずれかを振動させる。
【０１４８】
このため、利用者は、触感だけでポインタ１３０Ａから延びる線Ｌ１が物品に触れた方向を認識することができる。
【０１４９】
なお、以上では、マーカ１３２と位置計測装置１４０（赤外線カメラ１４０Ａ及び１４０Ｂ）とを用いて操作端末機１３０の位置と姿勢を検出する形態について説明した。しかしながら、
マーカ１３２が不要な赤外線深度センサ、磁気センサ、ステレオカメラ、加速度センサ、又は、角速度センサのうち、少なくとも１つ以上を用いて操作端末機１３０の位置と姿勢を検出してもよい。
【０１５０】
＜実施の形態２＞
図１４は、実施の形態２の操作端末機２３０を示す図である。実施の形態２のシミュレーションシステムは、実施の形態１のシミュレーションシステム１００の操作端末機１３０を操作端末機２３０に置き換えたものである。
【０１５１】
以下では、実施の形態１の操作端末機１３０と同様の構成要素には同一符号を付し、その説明を省略する。
【０１５２】
図１４には、説明の便宜上、現実空間に存在する操作端末機１３０と、スクリーン１１０Ａに表示される仮想空間に存在するポインタ１３０Ａとを示す。点Ｃ１と点Ｃ２は、スクリーン１１０Ａには表示されない。
【０１５３】
操作端末機２３０は、筐体２３１、マーカ１３２、振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂ、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂ、及びガイドバー１３５を有する。
【０１５４】
また、操作端末機２３０は、実施の形態１の操作端末機１３０と同様の電気系の構成(図６参照)を有し、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂが操作されると、無線通信によって、処理装置１２０に操作内容を表す指令信号を送信する。
【０１５５】
筐体２３１には、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂが配設されている。
【０１５６】
ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂは、それぞれ、ポインタ１３０Ａの位置を点Ｃ１から点Ｃ２にオフセットさせる際に操作するボタンである。ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂは、すべて押し下げることによって操作するボタンである。
【０１５７】
ボタン２３４Ｒは、点Ｃ１の座標をスクリーン１１０Ａに投影される画像の中で右側に移動させる際に操作するボタンである。ボタン２３４Ｌは、点Ｃ１の座標をスクリーン１１０Ａに投影される画像の中で左側に移動させる際に操作するボタンである。
【０１５８】
ボタン２３４Ｆは、点Ｃ１の座標をスクリーン１１０Ａに投影される画像の中で前側に移動させる際に操作するボタンである。ボタン２３４Ｂは、点Ｃ１の座標をスクリーン１１０Ａに投影される画像の中で後側に移動させる際に操作するボタンである。
【０１５９】
なお、左右の方向は、例えば、現実空間のマーカ１３２と仮想空間のポインタ１３０Ａとを結ぶ直線を基準に、利用者から見たスクリーン１１０Ａに投影される画像の中で左右を決めればよい。また、前後の方向は、例えば、現実空間のマーカ１３２と仮想空間のポインタ１３０Ａとを結ぶ直線を基準に、利用者から見たスクリーン１１０Ａに投影される画像の中で奥側（利用者から遠い側）を前側とし、手前側（利用者に近い側）を後側とすればよい。
【０１６０】
なお、現実空間のマーカ１３２と仮想空間のポインタ１３０Ａとを結ぶ直線とは、現実空間のマーカ１３２の位置に仮想空間で対応する位置と、ポインタ１３０Ａとを結ぶ直線として求めればよい。
【０１６１】
利用者が上述のようなボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂを操作することにより、ポインタ１３０Ａの位置を点Ｃ１から点Ｃ２にオフセットさせることができる。
【０１６２】
また、振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂは、それぞれ、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂの上の中央に配置されている。振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂは、駆動制御部１２５によって生成される駆動信号によって駆動される。
【０１６３】
振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂは、図４に示す振動素子１３３Ｒ及び１３３Ｌと同様に、例えば、ピエゾ素子又はＬＲＡのような圧電素子を含むものであればよい。振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂをそれぞれ駆動すると、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂの表面に振動が発生する。
【０１６４】
例えば、ポインタ１３０Ａが物品１１１の後側から接近して線Ｌ１の前側が物品１１１に接触した場合には、操作端末機２３０の前側に位置する振動素子２３３Ｆを駆動すればよい。
【０１６５】
また、ポインタ１３０Ａが物品１１１の前側から接近して線Ｌ１の後側が物品１１１に接触した場合には、操作端末機２３０の後側に位置する振動素子２３３Ｂを駆動すればよい。
【０１６６】
また、ポインタ１３０Ａが物品１１１の左側から接近して線Ｌ１の右側が物品１１１に接触した場合には、操作端末機２３０の右側に位置する振動素子２３３Ｒを駆動すればよい。
【０１６７】
また、ポインタ１３０Ａが物品１１１の右側から接近して線Ｌ１の左側が物品１１１に接触した場合には、操作端末機２３０の左側に位置する振動素子２３３Ｌを駆動すればよい。
【０１６８】
なお、処理装置１２０は、物品１１１と線Ｌ１が接触したと判定した場合に、線Ｌ１の座標の時間変化を表すデータに基づき、線Ｌ１が物品１１１に接触した方向を算出し、接触した方向によって、上述のように振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂのいずれかを駆動すればよい。
【０１６９】
図１５は、操作端末機２３０の電気系の構成を示す図である。ここでは、筐体２３１とガイドバー１３５を簡略化して示し、マーカ１３２を省略する。
【０１７０】
操作端末機２３０は、振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂ、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂ、通信部１３６、ボタン判定部２３７、及び信号生成部２３８を有する。なお、ボタン判定部２３７と信号生成部２３８は、例えば、マイクロコンピュータのような演算処理装置によって実現される。
【０１７１】
通信部１３６には、ボタン判定部２３７及び信号生成部２３８が接続されている。通信部１３６は、処理装置１２０の通信部１２６と無線通信を行う通信部であり、例えば、Bluetooth又はWiFi、Xbee, zigbee等の規格で無線通信を行う。
【０１７２】
通信部１３６は、ボタン判定部２３７から入力される信号を処理装置１２０に送信する。また、通信部１３６は、処理装置１２０の駆動制御部１２５によって生成される駆動信号を受信し、信号生成部２３８に出力する。
【０１７３】
ボタン判定部２３７は、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂの操作の有無を独立的に判定する判定部である。ボタン判定部２３７は、操作内容を表す信号を通信部１３６に出力する。
【０１７４】
信号生成部２３８は、通信部１３６が受信する駆動信号を増幅して振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂを駆動する。なお、信号生成部２３８を駆動制御部として捉えてもよい。
【０１７５】
図１６は、実施の形態２の処理装置１２０が実行する処理を示すフローチャートである。ここでは、一例として、図１に示すように、スクリーン１１０Ａに物品１１１及び１１２の画像を表示させる場合について説明する。
【０１７６】
処理装置１２０は、電源が投入されると、処理をスタートする前に、データ保持部１２４から物品データと振動データを取得する。処理装置１２０は、物品データを用いて映像信号を生成し、投影装置１１０Ｂに画像を投影させる。これにより、スクリーン１１０Ａに物品１１１及び１１２の立体視のモデルの画像が表示される。スクリーン１１０Ａに表示される物品１１１及び１１２の画像は、仮想空間に存在する仮想物体を表す。これらの処理は、映像出力部１２３によって行われる。
【０１７７】
処理装置１２０は、処理を開始する（スタート）。
【０１７８】
処理装置１２０は、操作端末機２３０の現実空間における位置と姿勢を検出する（ステップＳ２１）。ステップＳ２１の処理は、位置検出部１２１によって行われる。
【０１７９】
処理装置１２０は、仮想空間における点Ｃ１の座標を検出する（ステップＳ２２）。点Ｃ１の座標は、オフセット前の座標であり、ポインタ導出部１２７によって検出される。
【０１８０】
処理装置１２０は、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂが押されているかを判定する（ステップＳ２３）。ステップＳ２３の処理は、ボタン判定部２３７による判定結果を受信した処理装置１２０のポインタ導出部１２７が実行する。
【０１８１】
処理装置１２０は、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂが押されている（Ｓ２３：ＹＥＳ）と判定すると、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂのうちのどれが何秒押されたかを表す操作内容を操作端末機２３０から無線通信で取得する（ステップＳ２４）。
【０１８２】
処理装置１２０は、データ保持部１２４から単位長さを表すデータを読み込む（ステップＳ２５）。単位長さを表すデータは、ボタン２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂの各々を押す時間に対して、ポインタ１３０Ａの座標を移動させる量を表す。例えば、押す時間１秒あたり１０ｍｍに設定される。
【０１８３】
処理装置１２０は、ステップＳ２４で取得した操作内容と、ステップＳ２５で読み込んだ単位長さを表すデータとに基づいてオフセット量を算出し、点Ｃ１の座標にオフセット量を加算することにより、仮想空間における点Ｃ２の座標を検出する（ステップＳ２６）。点Ｃ２の座標は、オフセット座標であり、ポインタ導出部１２７によって検出される。
【０１８４】
例えば、ボタン２３４Ｒが１秒間押された場合は、オフセット量は、右方向に１０ｍｍである。
【０１８５】
点Ｃ２の座標を表すデータは、接触判定部１２２及び映像出力部１２３に入力される。
【０１８６】
処理装置１２０は、ステップＳ２６で得られたポインタ１３０Ａの座標に基づき、投影装置１１０Ｂにポインタ１３０Ａをスクリーン１１０Ａに表示させる（ステップＳ２７）。ポインタ１３０Ａは、例えば、点Ｃ２の座標で表される位置に表示される。
【０１８７】
これにより、物品１１１及び１１２の立体視の画像が表示されているスクリーン１１０Ａにポインタ１３０Ａがオフセットされて表示される。
【０１８８】
また、ステップＳ２７では、ポインタ１３０Ａを表す画像データを用いてポインタ１３０Ａを表示すればよい。ポインタ１３０Ａについても、物品１１１及び１１２の物品データに相当するデータを用意しておき、ポインタ１３０Ａの立体視のモデルの画像を表示すればよい。ただし、特にポインタ１３０Ａの画像データを用いなくてもポインタ１３０Ａを表示できる場合は、ポインタ１３０Ａの画像データをデータ保持部１２４に保持しておかなくてもよい。
【０１８９】
なお、ステップＳ２７の処理は、映像出力部１２３によって行われる。
【０１９０】
処理装置１２０は、線Ｌ１を表す式を取得する(ステップＳ２８)。線Ｌ１のデータは、接触判定部１２２が点Ｃ１と点Ｃ２の座標データを用いて計算する。なお、線Ｌ１のデータは、ポインタ導出部１２７が計算して接触判定部１２２に出力してもよい。
【０１９１】
処理装置１２０は、物品１１１又は１１２と線Ｌ１が接触したかどうかを判定する（ステップＳ２９）。ステップＳ２９の処理は、接触判定部１２２によって行われる。接触判定部１２２は、物品１１１及び１１２の物品データと、ステップＳ２８で得られた線Ｌ１のデータとに基づき、物品１１１又は１１２と線Ｌ１とが接触したかどうかを判定する。
【０１９２】
物品１１１又は１１２と線Ｌ１が接触したかどうかは、物品１１１又は１１２と、線Ｌ１との交点があるかどうかで判定すればよい。
【０１９３】
また、物品１１１又は１１２と線Ｌ１とが接触したかどうかは、線Ｌ１のデータと、線Ｌ１のデータに最も近い物品データに含まれる座標との位置の差が所定値以下であるかどうかで判定してもよい。例えば、座標データに最も近い物品データに含まれる位置と、座標データが表す位置との差が所定値以下になった場合に接触したと判定する方が、実施の形態２のシミュレーションシステムにおける操作端末機２３０の操作性が良好である場合には、このような設定にすればよい。
【０１９４】
次に説明するステップＳ３０では、一例として、物品１１１と線Ｌ１が接触したこととする。なお、物品１１２と線Ｌ１が接触した場合でも、同様の処理が行われる。
【０１９５】
処理装置１２０は、物品１１１と線Ｌ１が接触した（Ｓ２９：ＹＥＳ）と判定すると、振動データから振動強度と振動時間を読み出し、操作端末機２３０の振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂを駆動する駆動信号を生成し、通信部１２６を介して、操作端末機２３０に送信する（ステップＳ３０）。この結果、操作端末機２３０の振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂが駆動される。なお、ステップＳ３０の処理は、駆動制御部１２５が行う。
【０１９６】
ポインタ１３０Ａが物品１１１の後側から接近して線Ｌ１の前側が物品１１１に接触した場合には、操作端末機２３０の前側に位置する振動素子２３３Ｆを駆動すればよい。
【０１９７】
また、ポインタ１３０Ａが物品１１１の前側から接近して線Ｌ１の後側が物品１１１に接触した場合には、操作端末機２３０の後側に位置する振動素子２３３Ｂを駆動すればよい。
【０１９８】
また、ポインタ１３０Ａが物品１１１の左側から接近して線Ｌ１の右側が物品１１１に接触した場合には、操作端末機２３０の右側に位置する振動素子２３３Ｒを駆動すればよい。
【０１９９】
また、ポインタ１３０Ａが物品１１１の右側から接近して線Ｌ１の左側が物品１１１に接触した場合には、操作端末機２３０の左側に位置する振動素子２３３Ｌを駆動すればよい。
【０２００】
ステップＳ３０の処理が終了すると、再びスタートからリピートする（リピート）。
【０２０１】
なお、ステップＳ２９で物品１１１又は１１２と線Ｌ１が接触していない（Ｓ２９：ＮＯ）と判定した場合は、フローをステップＳ２１にリターンする。
【０２０２】
以上のように、実施の形態２のシミュレーションシステムによれば、利用者は、位置がオフセットされたポインタ１３０Ａを操作端末機２３０で操作することができる。このため、ポインタ１３０Ａが操作端末機２３０の陰になって見えなくなるようなことが抑制され、ポインタ１３０Ａの視認性が良好である。
【０２０３】
従って、操作性が良好なシミュレーションシステムを提供することができる。
【０２０４】
また、操作端末機２３０で操作するポインタ１３０Ａから延びる線Ｌ１が、スクリーン１１０Ａに投影される画像の中で、物品１１１又は１１２のような物品と接触した場合に、振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂを振動させる。
【０２０５】
このため、利用者は、触感だけで接触があったことを認識することができる。
【０２０６】
また、実施の形態２のシミュレーションシステムによれば、操作端末機２３０で操作するポインタ１３０Ａから延びる線Ｌ１が物品に接触する方向に応じて、振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂのいずれかを振動させる。
【０２０７】
このため、利用者は、触感だけでポインタ１３０Ａから延びる線Ｌ１が物品に触れた方向を認識することができる。
【０２０８】
図１７及び図１８は、実施の形態２の変形例を示す図である。
【０２０９】
図１７に示す操作端末機２３０Ａは、図１４に示す操作端末機２３０の振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂを吸引素子２３３Ｒ１、２３３Ｌ１、２３３Ｆ１、２３３Ｂ１に変更したものである。吸引素子２３３Ｒ１、２３３Ｌ１、２３３Ｆ１、２３３Ｂ１は、吸引口であり、２３３Ｒ１、２３３Ｌ１、２３３Ｆ１、２３３Ｂ１の奥側には、吸引を行うバキューム装置のような吸引機構が接続されている。
【０２１０】
吸引素子２３３Ｒ１、２３３Ｌ１、２３３Ｆ１、２３３Ｂ１の吸引機構も互いに独立している。吸引素子２３３Ｒ１、２３３Ｌ１、２３３Ｆ１、２３３Ｂ１を振動素子２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂと同様に制御すればよい。
【０２１１】
このような操作端末機２３０Ａを図１４に示す操作端末機２３０の代わりに用いてもよい。
【０２１２】
＜実施の形態３＞
図１９は、実施の形態３のシミュレーションシステム３００を示す図である。
【０２１３】
シミュレーションシステム３００は、スクリーン１１０Ａ、投影装置１１０Ｂ、３Ｄ(3 Dimension)眼鏡１１０Ｃ、処理装置３２０、操作端末機３３０、及び位置計測装置１４０を含む。
【０２１４】
処理装置３２０は、位置検出部１２１、接触判定部１２２、映像出力部１２３、データ保持部１２４、駆動制御部１２５、通信部１２６、ポインタ導出部１２７、及び座標記録部３２８を有する。処理装置３２０は、例えば、メモリを有するコンピュータによって実現される。
【０２１５】
座標記録部３２８は、位置検出部１２１の検出結果に基づき、所定時間毎に現実空間におけるマーカ１３２の位置に対応する仮想空間での座標を記録する。座標記録部３２８は、記録した座標を表すデータをポインタ導出部１２７に出力する。
【０２１６】
図２０は、操作端末機３３０を示す斜視図である。
【０２１７】
操作端末機３３０は、筐体３３１、マーカ１３２、振動素子１３３Ｒ、１３３Ｌ、ボタン３３４、ガイドバー１３５、時刻記録部３３６、及びアンテナ３３８を有する。ここでは、図４に示す実施の形態１の操作端末機１３０と同様の構成要素には同一符号を付し、その説明を省略する。
【０２１８】
筐体３３１は、例えば、樹脂製であり、利用者が手に持つのにちょうど良いサイズを有する。筐体３３１の上面には、振動素子１３３Ｒ及び１３３Ｌ、ボタン３３４、時刻記録部３３６、及びアンテナ３３８が配設されている。なお、時刻記録部３３６は、筐体３３１の内部に配設されていてもよい。
【０２１９】
ボタン３３４は、操作端末機３３０の機能が割り当てられており、複数あってもよい。機能としては、例えば、時刻記録部３３６に時刻を記録させる機能と、時刻記録部３３６に記録したデータを処理装置３２０に送信する処理を実行する機能である。
【０２２０】
時刻記録部３３６は、ボタン３３４が押されたときの時刻を記録する。時刻記録部３３６は、例えば、メモリを内蔵するＣＰＵチップで実現される。
【０２２１】
アンテナ３３８は、Bluetooth, WiFi, Xbee, zigbee等の無線通信に用いる。実施の形態３では、操作端末機３３０と処理装置３２０は、通信状態を保っており、無線通信によって常にデータ通信が可能な状態になっている。
【０２２２】
図２１は、操作端末機３３０の電気系の構成を示す図である。ここでは、筐体１３１とガイドバー１３５を簡略化して示し、マーカ１３２を省略する。
【０２２３】
操作端末機３３０は、振動素子１３３Ｒ、１３３Ｌ、ボタン３３４、通信部１３６、ボタン判定部３３７、信号生成部１３８、時刻記録部３３６、及びアンテナ３３８を有する。なお、ボタン判定部３３７と信号生成部１３８は、例えば、マイクロコンピュータのような演算処理装置によって実現される。
【０２２４】
通信部１３６には、ボタン判定部３３７及び信号生成部１３８に加えて、時刻記録部３３６が接続されている。通信部１３６は、処理装置３２０の通信部１２６と無線通信を行う通信部であり、例えば、Bluetooth, WiFi, Xbee, zigbee等の規格で常に無線通信を行う。
【０２２５】
通信部１３６は、ボタン判定部３３７から入力される信号を処理装置３２０に送信する。また、通信部１３６は、処理装置３２０の駆動制御部１２５によって生成される駆動信号を受信し、信号生成部１３８に出力する。また、通信部１３６は、時刻記録部３３６に記録されたデータを処理装置３２０に送信する。
【０２２６】
時刻記録部３３６は、ボタン３３４によって操作が行われると、操作が行われた時点の時刻を記録する。より具体的には、時刻を記録するために１回目のボタン３３４の操作が行われると、時刻記録部３３６は、軌跡のデータを作成し始める開始時刻Ｔｓを記録する。また、時刻を記録するために２回目のボタン３３４の操作が行われると、時刻記録部３３６は、軌跡のデータ作成を終了する終了時刻Ｔｅを記録する。
【０２２７】
ボタン判定部３３７は、ボタン３３４の操作の有無を判定する判定部であり、例えば、時刻記録部３３６に時刻Ｔｓ又は時刻Ｔｅを記録させる操作と、時刻記録部３３６に記録されたデータを処理装置３２０に送信する操作等の操作内容を判定する。ボタン判定部３３７は、操作内容を表す信号を通信部１３６に出力する。
【０２２８】
信号生成部１３８は、通信部１３６が受信する駆動信号を増幅して振動素子１３３Ｒ又は１３３Ｌを駆動する。なお、信号生成部１３８を駆動制御部として捉えてもよい。
【０２２９】
図２２は、線データによって表される線を示す図である。ここでは、スクリーン１１０Ａに投影される画像によって表示される仮想空間に存在する線Ｌ３１及びポインタ１３０Ａと、現実空間に存在する操作端末機３３０との両方を示す。
【０２３０】
仮想空間に存在する線Ｌ３１は、点Ｃ３１と点Ｃ３２との間を結ぶ曲線である。点Ｃ３１は、実施の形態１と同様の点Ｃ１（オフセット前の座標の位置）をオフセットした座標（オフセット座標）が表す位置であり、利用者にとって操作端末機３３０の陰にならないようにオフセットされている。
【０２３１】
また、点Ｃ３２は、図２２の右側に示す操作端末機３３０の点Ｃ１をオフセットした位置であるとともに、点Ｃ３１をさらにオフセットした位置として捉えることができる。
【０２３２】
図２２では、ポインタ３３０Ａは、点Ｃ３２に表示されている。
【０２３３】
また、線Ｌ３１は、点Ｃ３１から点Ｃ３２までの軌跡を表している。点Ｃ３１から点Ｃ３２までの軌跡（線Ｌ３１）は、利用者が図２２に示す操作端末機３３０を自己の手前に逆Ｓ字を描くように移動させることによって取得することができる。
【０２３４】
線Ｌ３１が表す軌跡は、操作端末機３３０を操作し、所定時間が経過する度に、現実空間におけるマーカ１３２の位置に対応する仮想空間での座標を記録することによって求められる。
【０２３５】
実施の形態１のシミュレーションシステム１００では、ポインタ１３０Ａに加えて、点Ｃ１をオフセットした２つの点Ｃ３１と点Ｃ３２とを結ぶ線Ｌ３１をスクリーン１１０Ａに表示し、線Ｌ３１が物品と接触したかどうかを判定する。そして、接触した場合には、操作端末機３３０の振動素子１３３Ｒ又は１３３Ｌを振動させる。
【０２３６】
ここで、点Ｃ３１の座標を（Ｘ３１，Ｙ３１，Ｚ３１）、点Ｃ３２の座標を（Ｘ３２，Ｙ３２，Ｚ３２）とする。
【０２３７】
軌跡の求め方については後述する。
【０２３８】
図２３は、図２２の変形例を示す図である。
【０２３９】
図２３に示すように、線Ｌ３１を中心軸とする円筒型の領域Ｅ３１を設定し、円筒領域Ｅ３１と物品とが接触したかどうかを判定するようにしてもよい。円筒領域Ｅ３１の半径は、用途に応じて適宜設定すればよい。例えば、線Ｌ３１が３０ｃｍの場合には、半径を１．５ｃｍに設定すればよい。
【０２４０】
図２４は、線Ｌ３１を示す図である。図２５は、線Ｌ３１のデータを示す図である。
【０２４１】
図２４に示すように、操作端末機３３０を点Ｃ３１から点Ｃ３２まで曲線的に移動させる際に、（１）〜（８）で示す点において時刻を時刻記録部３３６に記録する。なお、点（１）は点Ｃ３１と等しく、点（８）は点Ｃ３２と等しい。
【０２４２】
そして、時刻記録部３３６に記録された時刻を表す時刻データを処理装置３２０に送信する。また、処理装置３２０は、現実空間におけるマーカ１３２の位置に対応する仮想空間での座標データを取得時刻と関連付けてデータ保持部１２４に格納しておく。そして、データ保持部１２４に格納した座標データから、時刻データに含まれる時刻に対応する座標データを抽出すれば、図２５のデータを得る。
【０２４３】
図２５に示すように、点（１）〜点（８）における時刻と、点（１）〜点（８）の座標を関連付けたデータを取得することができる。図２５には、一例として、１秒ごとに取得した座標を示す。
【０２４４】
図２５に示すデータは、図２４に示す点（１）〜点（８）を含む軌跡を表す。
【０２４５】
図２６は、円筒領域Ｅ３１のデータを示す図である。
【０２４６】
円筒領域Ｅ３１の場合は、太さを表す範囲がＸ、Ｙ、Ｚ座標値に含まれる。
【０２４７】
図２４に示す線Ｌ３１と、図２６に示す円筒領域Ｅ３１とは、例えば、Ｓ字型の工具の領域として用いることができる。例えば、線Ｌ３１は、図２２に示すように、点Ｃ３２の位置に表示されるポインタ１３０ＡからＳ字状に点Ｃ３１まで延びる仮想的な工具であり、操作端末機３３０を移動に合わせて、スクリーン１１０Ａの表示の中で移動する。これは、円筒領域Ｅ３１による工具でも同様である。
【０２４８】
このような線Ｌ３１又は円筒領域Ｅ３１を操作端末機３３０で移動させれば、利用者は、仮想空間において、物品１１１又は１１２にＳ字型の工具が接触するかどうかを模擬的に把握することができる。
【０２４９】
図２７は、線Ｌ３２を示す図である。図２８は、線Ｌ３２のデータを示す図である。
【０２５０】
図２７に示すように、操作端末機３３０を点Ｃ３３を点Ｃ３４まで折れ線的に移動させる際に、（１）〜（８）で示す点において時刻を時刻記録部３３６に記録する。なお、点（１）は点Ｃ３３と等しく、点（８）は点Ｃ３４と等しい。
【０２５１】
そして、時刻記録部３３６に記録された時刻を表す時刻データを処理装置３２０に送信する。また、処理装置３２０は、現実空間におけるマーカ１３２の位置に対応する仮想空間での座標データを取得時刻と関連付けてデータ保持部１２４に格納しておく。そして、データ保持部１２４に格納した座標データから、時刻データに含まれる時刻に対応する座標データを抽出すれば、図２８のデータを得る。
【０２５２】
図２８に示すように、点（１）〜点（８）における時刻と、点（１）〜点（８）の座標を関連付けたデータを取得することができる。図２８には、一例として、１秒ごとに取得した座標を示す。
【０２５３】
図２８に示すデータは、図２７に示す点（１）〜点（８）を含む折れ線型の軌跡を表す。
【０２５４】
図２７に示す線Ｌ３２は、例えば、Ｌ字型の工具の領域として用いることができる。このような線Ｌ３２を操作端末機３３０で移動させれば、利用者は、仮想空間において、物品１１１又は１１２にＬ字型の工具が接触するかどうかを模擬的に把握することができる。
【０２５５】
図２９は、実施の形態３の処理装置３２０が実行する処理を示すフローチャートである。ここでは、一例として、図１９に示すように、スクリーン１１０Ａに物品１１１及び１１２の画像を表示させる場合について説明する。
【０２５６】
処理装置３２０は、電源が投入されると、処理をスタートする前に、データ保持部１２４から物品データと振動データを取得する。処理装置３２０は、物品データを用いて映像信号を生成し、投影装置１１０Ｂに画像を投影させる。これにより、スクリーン１１０Ａに物品１１１及び１１２の立体視のモデルの画像が表示される。スクリーン１１０Ａに表示される物品１１１及び１１２の画像は、仮想空間に存在する仮想物体を表す。これらの処理は、映像出力部１２３によって行われる。
【０２５７】
処理装置３２０は、操作端末機３３０の現実空間における位置と姿勢を検出する（ステップＳ３１）。ステップＳ３１の処理は、位置検出部１２１によって行われる。
【０２５８】
処理装置３２０は、仮想空間における点Ｃ１の座標を検出する（ステップＳ３２）。点Ｃ１の座標は、ポインタ導出部１２７によって検出される。
【０２５９】
処理装置３２０は、データ保持部１２４からオフセット量を読み出す（ステップＳ３３）。オフセット量を表すデータは、予めデータ保持部１２４に格納されている。
【０２６０】
処理装置３２０は、点Ｃ１の座標にオフセット量を加算することにより、仮想空間における点Ｃ３１の座標を検出する（ステップＳ３４）。点Ｃ１と点Ｃ３１との位置関係は、図２２に示す通りである。点Ｃ３１の座標は、オフセット座標であり、ポインタ導出部１２７によって検出される。
【０２６１】
点Ｃ３１の座標を表すデータは、接触判定部１２２及び映像出力部１２３に入力される。
【０２６２】
処理装置３２０は、ステップＳ３４で得られたポインタ１３０Ａの座標に基づき、投影装置１１０Ｂにポインタ１３０Ａをスクリーン１１０Ａに表示させる（ステップＳ３５）。ポインタ１３０Ａは、例えば、点Ｃ３１の座標で表される位置に表示される。
【０２６３】
これにより、物品１１１及び１１２の立体視の画像が表示されているスクリーン１１０Ａにポインタ１３０Ａがオフセットされて表示される。
【０２６４】
また、ステップＳ３５では、ポインタ１３０Ａを表す画像データを用いてポインタ１３０Ａを表示すればよい。ポインタ１３０Ａについても、物品１１１及び１１２の物品データに相当するデータを用意しておき、ポインタ１３０Ａの立体視のモデルの画像を表示すればよい。なお、ステップＳ３５の処理は、映像出力部１２３によって行われる。
【０２６５】
処理装置３２０は、ボタン３２４が押されたかどうかを判定する（ステップＳ３６）。処理装置３２０と操作端末機３３０は無線通信を行っているので、処理装置３２０は、ボタン判定部３３７の判定結果に基づいて、ステップＳ３６の判定を行う。
【０２６６】
処理装置３２０は、ボタン３２４が押された（Ｓ３６：ＹＥＳ）と判定すると、操作端末機３３０に時刻Ｔｓを取得させる（ステップＳ３７）。時刻Ｔｓは、軌跡のデータを作成し始める開始時刻である。ここでは、ポインタ１３０Ａが点Ｃ３１にあるときにボタン３２４が押されたこととする。点Ｃ３１は、図２４では点（１）に相当する。
【０２６７】
処理装置３２０は、操作端末機３３０の時刻記録部３３６に時刻Ｔｓを記録させる（ステップＳ３８）。
【０２６８】
処理装置３２０は、ボタン３２４が押されたかどうかを判定する（ステップＳ３９）。軌跡のデータ作成を終了するためにボタン３２４が押されたかどうかを判定する。
【０２６９】
処理装置３２０は、ボタン３２４が押されていない（Ｓ３９：ＮＯ）と判定すると、フローをステップＳ４０に進行させる。
【０２７０】
処理装置３２０は、操作端末機３３０の現実空間における位置と姿勢を検出する（ステップＳ４０）。ステップＳ４０の処理は、位置検出部１２１によって行われる。
【０２７１】
処理装置３２０は、ステップＳ４０で検出された点の仮想空間における座標を検出する（ステップＳ４１）。座標は、ポインタ導出部１２７によって検出される。
【０２７２】
処理装置３２０は、ステップＳ４１で検出された座標を座標記録部３２８に保存する（ステップＳ４２）。ステップＳ４１で検出された座標は、位置検出部１２１によって検出された時刻を表すデータとともに保存される。
【０２７３】
処理装置３２０は、ステップＳ４２で得られた座標にポインタ１３０Ａをスクリーン１１０Ａに表示させる（ステップＳ４３）。例えば、図２４に示す点（１）から点（２）に移った場合には、点（２）にポインタ１３０Ａを表示する。なお、ステップＳ４３の処理は、映像出力部１２３によって行われる。
【０２７４】
処理装置３２０は、ステップＳ４３の処理が終了すると、フローをステップＳ３９にリターンする。
【０２７５】
そして、処理装置３２０は、ボタン３２４が押された（Ｓ３９：ＹＥＳ）と判定するまで、ステップＳ４０〜Ｓ４３の処理を繰り返し実行する。これにより、例えば、図２４に示す点（１）〜点（７）までの座標を含むデータが座標記録部３２８に保存される。
【０２７６】
処理装置３２０は、ステップＳ３９でボタン３２４が押された（Ｓ３９：ＹＥＳ）と判定すると、操作端末機３３０に時刻Ｔｅを取得させる（ステップＳ４４）。時刻Ｔｅは、軌跡のデータ作成を終了する時刻である。ここでは、ポインタ１３０Ａが点Ｃ３２にあるときにボタン３２４が押されたこととする。点Ｃ３２は、図２４では点（８）に相当する。
【０２７７】
処理装置３２０は、操作端末機３３０の時刻記録部３３６に時刻Ｔｅを記録させる（ステップＳ４５）。
【０２７８】
処理装置３２０は、時刻Ｔｓ、Ｔｅを操作端末機３３０に送信させる（ステップＳ４６）。
【０２７９】
処理装置３２０は、操作端末機３３０から受信した時刻Ｔｓ、Ｔｅに対応する座標をデータが座標記録部３２８から抽出する（ステップＳ４７）。これにより、図２５に示すようなデータが得られる。
【０２８０】
処理装置３２０は、ステップＳ４７で取得した座標を表すデータを用いて、スクリーン１１０Ａに軌跡を表示する。ここでは、図２２及び図２４に示す線Ｌ３１によって表される軌跡がスクリーン１１０Ａに表示される。
【０２８１】
このため、利用者は、線Ｌ３１と物品１１１及び１１２が接触するかどうかを操作端末機３３０を移動させながら仮想空間で試すことができる。
【０２８２】
以上のように、実施の形態３のシミュレーションシステム３００によれば、利用者は、位置がオフセットされたポインタ１３０Ａを操作端末機３３０で操作することができる。このため、ポインタ１３０Ａが操作端末機３３０の陰になって見えなくなるようなことが抑制され、ポインタ１３０Ａの視認性が良好である。
【０２８３】
従って、操作性が良好なシミュレーションシステム３００を提供することができる。
【０２８４】
また、操作端末機３３０を移動させることにより、利用者の好みの形状の軌跡を表すデータを作成することができる。軌跡の両端は、ともにオフセット座標に位置するため、操作端末機３３０の陰になって見えなくなるようなことが抑制され、ポインタ１３０Ａの視認性が良好である。
【０２８５】
このため、利用者の好みの形状の軌跡を操作端末機３３０で移動させながら仮想空間で試すことができる。
【０２８６】
なお、オフセット量をゼロに設定することも可能である。操作端末機３３０の陰にならない場合には、オフセット量はゼロで構わないからである。この場合は、図２２に示す点Ｃ１と点Ｃ３１が一致する。
【０２８７】
＜実施の形態４＞
図３０は、実施の形態４のシミュレーションシステム４００を示す図である。
【０２８８】
シミュレーションシステム４００は、スクリーン１１０Ａ、投影装置１１０Ｂ、３Ｄ眼鏡４４０Ｃ、処理装置４２０、操作端末機１３０、及び位置計測装置１４０を含む。３Ｄ眼鏡４４０Ｃは、実施の形態１の３Ｄ眼鏡１１０Ｃに、マーカ４４１を取り付けたものである。
【０２８９】
処理装置４２０は、位置検出部４２１、接触判定部１２２、映像出力部１２３、データ保持部１２４、駆動制御部１２５、通信部１２６、及びポインタ導出部１２７を有する。処理装置４２０は、例えば、メモリを有するコンピュータによって実現される。
【０２９０】
位置検出部４２１は、位置計測装置１４０から入力される画像データに対してパターンマッチング等の画像処理を行い、操作端末機１３０の位置と姿勢を検出する。操作端末機１３０の位置は、３次元座標における座標値で表され、姿勢は、３次元座標の３軸方向に対する角度で表される。
【０２９１】
また、位置検出部４２１は、操作端末機１３０のマーカ１３２の位置と姿勢を検出する手法と同様の手法により、３Ｄ眼鏡４４０Ｃのマーカ４４１の位置と姿勢を検出する。
【０２９２】
図３１は、３Ｄ眼鏡４４０Ｃのマーカ４４１と点Ｃ２との位置関係を示す図である。
【０２９３】
点Ｃ２は、実施の形態１の点Ｃ２と同様であり、操作端末機１３０のマーカ１３２の位置に対応する点Ｃ１をオフセットした座標である。
【０２９４】
処理装置４２０は、３Ｄ眼鏡４４０Ｃのマーカ４４１の仮想空間における位置を表す点Ｃ３と、点Ｃ２とを結ぶ線Ｌ４１を導出する。
【０２９５】
ここで、点Ｃ３の座標を（Ｘ４１，Ｙ４１，Ｚ４１）、点Ｃ２の座標を（Ｘ４２，Ｙ４２，Ｚ４２）とすると、線Ｌ４１は、次式（２）によって表される。
【０２９６】
【数２】
2016181473.tif 000004
そして、線Ｌ４１上に点Ｃ１が存在するかどうかを判定し、線Ｌ４１上に点Ｃ１が存在する場合には、線Ｌ４１上に点Ｃ１が存在しなくなるように、点Ｃ２をさらにオフセットする。
【０２９７】
すなわち、利用者の頭部とオフセット座標に表示されるポインタ１３０Ａとの間に、操作端末機１３０が位置している場合には、ポインタ１３０Ａが操作端末機１３０の陰になるため、点Ｃ２にあるポインタ１３０Ａをさらにオフセットする。
【０２９８】
図３２は、実施の形態４の処理を示すフローチャートである。
【０２９９】
処理装置４２０は、処理を開始する（スタート）。
【０３００】
処理装置４２０は、操作端末機１３０の現実空間における位置と姿勢を検出する（ステップＳ５１）。ステップＳ５１の処理は、位置検出部１２１によって行われる。
【０３０１】
処理装置４２０は、仮想空間における点Ｃ１の座標を検出する（ステップＳ５２）。点Ｃ１の座標は、オフセット前の座標であり、ポインタ導出部１２７によって検出される。
【０３０２】
処理装置４２０は、データ保持部１２４からオフセット量を読み出す（ステップＳ５３）。オフセット量を表すデータは、予めデータ保持部１２４に格納されている。
【０３０３】
処理装置４２０は、点Ｃ１の座標にオフセット量を加算することにより、仮想空間における点Ｃ２の座標を検出する（ステップＳ５４）。点Ｃ２の座標は、オフセット座標であり、ポインタ導出部１２７によって検出される。
【０３０４】
処理装置４２０は、３Ｄ眼鏡４４０Ｃのマーカ４４１の現実空間における位置と姿勢を検出する（ステップＳ５５）。ステップＳ５５の処理は、位置検出部１２１によって行われる。
【０３０５】
処理装置４２０は、仮想空間における点Ｃ３の座標を検出する（ステップＳ５６）。点Ｃ３の座標は、マーカ４４１の現実空間における位置に対応する仮想空間の位置であり、ポインタ導出部１２７によって検出される。
【０３０６】
処理装置４２０は、線Ｌ４１を計算する（ステップＳ５７）。線Ｌ４１は、点Ｃ２とＣ３を両端とする直線である。
【０３０７】
処理装置４２０は、操作端末機１３０の現実空間における位置と姿勢を検出する（ステップＳ５８）。ステップＳ５８の処理は、位置検出部１２１によって行われる。
【０３０８】
処理装置４２０は、仮想空間における点Ｃ１の座標を検出する（ステップＳ５９）。点Ｃ１の座標は、オフセット前の座標であり、ポインタ導出部１２７によって検出される。
【０３０９】
ここでステップＳ５１及びＳ５２と同様のステップＳ５８及びＳ５９を実行するのは、ステップＳ５３〜Ｓ５７を実行している間に操作端末機１３０が移動している可能性があるため、最新の操作端末機１３０の位置を取得するためである。
【０３１０】
処理装置４２０は、線Ｌ４１上に点Ｃ１があるかどうかを判定する（ステップＳ６０）。利用者の頭部とオフセット座標に表示されるポインタ１３０Ａ（点Ｃ２）との間に、操作端末機１３０が位置しているかどうかを判定するためである。
【０３１１】
処理装置４２０は、線Ｌ４１上に点Ｃ１があると判定すると（Ｓ６０：ＹＥＳ）、振動データから振動強度と振動時間を読み出し、操作端末機１３０の振動素子１３３Ｒ及び１３３Ｌを駆動する駆動信号を生成し、通信部１２６を介して、操作端末機１３０に送信する（ステップＳ６１）。この結果、操作端末機１３０の振動素子１３３Ｒ及び１３３Ｌが駆動される。
【０３１２】
処理装置４２０は、データ保持部１２４からオフセット量を読み出す（ステップＳ６２）。オフセット量を表すデータは、予めデータ保持部１２４に格納されている。
【０３１３】
処理装置４２０は、点Ｃ２の座標にオフセット量を加算することにより、オフセットした点Ｃ２の座標を検出する（ステップＳ６３）。
【０３１４】
処理装置４２０は、ステップＳ６３で得られたポインタ１３０Ａの座標に基づき、投影装置１１０Ｂにポインタ１３０Ａをスクリーン１１０Ａに表示させる（ステップＳ６４）。
【０３１５】
処理装置４２０は、ステップＳ６４の処理が終了すると、フローをステップＳ５１にリターンする（リピート）。
【０３１６】
このような処理を繰り返すことにより、線Ｌ４１上に点Ｃ１が存在しない（Ｓ６０：ＮＯ）と判定されると、利用者の頭部とオフセット座標に表示されるポインタ１３０Ａ（点Ｃ２）との間に、操作端末機１３０が位置しなくなる。
【０３１７】
処理装置４２０は、線Ｌ４１上に点Ｃ１が存在しない（Ｓ６０：ＮＯ）と判定した場合も、操作端末機１３０の移動に備えて、フローをステップＳ５１にリターンする（リピート）。
【０３１８】
以上により、利用者の頭部とオフセット座標に表示されるポインタ１３０Ａ（点Ｃ２）との間に、操作端末機１３０が位置しなくなる。
【０３１９】
以上のように、実施の形態４のシミュレーションシステム４００によれば、利用者の頭部とオフセット座標に表示されるポインタ１３０Ａ（点Ｃ２）との間に、操作端末機１３０が位置しなくなるようにポインタ１３０Ａが移動される。
【０３２０】
このため、ポインタ１３０Ａが操作端末機１３０の陰になって見えなくなるようなことが抑制され、ポインタ１３０Ａの視認性が良好である。
【０３２１】
従って、操作性が良好なシミュレーションシステム４００を提供することができる。
【０３２２】
なお、利用者の頭部とオフセット座標に表示されるポインタ１３０Ａ（点Ｃ２）との間に、物品１１１が存在する場合には、物品１１１の表示を薄くしてもよい。
【０３２３】
図３３は、実施の形態４の変形例を示す図である。
【０３２４】
例えば、図３３の左側に示すように、点Ｃ２と点Ｃ３を結ぶ線Ｌ４１上に物品１１１が存在しない場合は、物品１１１が利用者によく見えるように、通常の濃度で表示する。
【０３２５】
一方、図３３の右側に示すように、点Ｃ２と点Ｃ３を結ぶ線Ｌ４１上に物品１１１が存在する場合は、物品１１１の陰にある点Ｃ２及び／又は線Ｌ４１が利用者によく見えるように、通常の濃度よりも薄い濃度で物品１１１を表示する。
【０３２６】
このようにすれば、点Ｃ２及び／又は線Ｌ４１が物品１１１の陰にあるような場合でも、利用者が点Ｃ２及び／又は線Ｌ４１を見ることができる。
【０３２７】
以上、本発明の例示的な実施の形態のシミュレーションシステムについて説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０３２８】
１００、３００、４００  シミュレーションシステム
１１０Ａ  スクリーン
１１０Ｂ  投影装置
１１０Ｃ  ３Ｄ眼鏡
１１１、１１２  物品
１２０  処理装置
１２１  位置検出部
１２２  接触判定部
１２３  映像出力部
１２４  データ保持部
１２５  駆動制御部
１２６  通信部
１３０  操作端末機
１３０Ａ  ポインタ
１３１  筐体
１３２  マーカ
１３３Ｒ、１３３Ｌ  振動素子
１３４、１３４Ａ、１３４Ｂ  ボタン
１３５  ガイドバー
１４０  位置計測装置
１４０Ａ、１４０Ｂ  赤外線カメラ
２３０  操作端末機
２３１  筐体
２３３Ｒ、２３３Ｌ、２３３Ｆ、２３３Ｂ  振動素子
２３４Ｒ、２３４Ｌ、２３４Ｆ、２３４Ｂ  ボタン
３２０  処理装置
３２８  座標記録部
３３０  操作端末機
４００  シミュレーションシステム
４２０  処理装置
４４０Ｃ  ３Ｄ眼鏡
４４１  マーカ
【図１】
2016181473.tif 000005
【図２】
2016181473.tif 000006
【図３】
2016181473.tif 000007
【図４】
2016181473.tif 000008
【図５】
2016181473.tif 000009
【図６】
2016181473.tif 000010
【図７】
2016181473.tif 000011
【図８】
2016181473.tif 000012
【図９】
2016181473.tif 000013
【図１０】
2016181473.tif 000014
【図１１】
2016181473.tif 000015
【図１２】
2016181473.tif 000016
【図１３】
2016181473.tif 000017
【図１４】
2016181473.tif 000018
【図１５】
2016181473.tif 000019
【図１６】
2016181473.tif 000020
【図１７】
2016181473.tif 000021
【図１８】
2016181473.tif 000022
【図１９】
2016181473.tif 000023
【図２０】
2016181473.tif 000024
【図２１】
2016181473.tif 000025
【図２２】
2016181473.tif 000026
【図２３】
2016181473.tif 000027
【図２４】
2016181473.tif 000028
【図２５】
2016181473.tif 000029
【図２６】
2016181473.tif 000030
【図２７】
2016181473.tif 000031
【図２８】
2016181473.tif 000032
【図２９】
2016181473.tif 000033
【図３０】
2016181473.tif 000034
【図３１】
2016181473.tif 000035
【図３２】
2016181473.tif 000036
【図３３】
2016181473.tif 000037
【国際調査報告】
2016181473.tif 000038
2016181473.tif 000039