(57)【要約】【課題】低コストで訓練効率を向上させることができる訓練装置、訓練システム、訓練方法、及びプログラムを提供する。【解決手段】訓練装置１０は、訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得部１１０と、モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出部１１１と、前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得部１１２と、前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定部１１３と、前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成部１１４と、を備える。【選択図】図３
2020013035.tif 000002
【特許請求の範囲】
【請求項１】
訓練生がモックアップを用いて訓練を行うための訓練装置であって、
前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得部と、
前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出部と、
前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得部と、
前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定部と、
前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成部と、
を備える訓練装置。
【請求項２】
前記特徴データに基づいて仮想入力部に対する前記訓練生の操作を検出する操作検出部を更に備え、
前記表示データ作成部は、前記操作に応じた前記表示データを作成する、
請求項１に記載の訓練装置。
【請求項３】
前記モックアップを含む所定の検知領域における動作を検知するセンサから出力された信号に基づいて、仮想入力部に対する前記訓練生の操作を検出する操作検出部を更に備え、
前記表示データ作成部は、前記操作に応じた前記表示データを作成する、
請求項１に記載の訓練装置。
【請求項４】
前記操作検出部が検出した前記操作に基づいて、前記訓練生の操作が正しいか否かを判定する操作判定部を更に備え、
前記表示データ作成部は、前記操作判定部の判定結果に応じた前記表示データを作成する、
請求項２又は３に記載の訓練装置。
【請求項５】
訓練生がモックアップを用いて訓練を行うための訓練システムであって、
請求項１から４の何れか一項に記載の訓練装置と、
前記訓練生に装着され、前記視界画像を撮影するカメラと、
前記表示データを前記モックアップ上に重畳表示する表示装置と、
を備える訓練システム。
【請求項６】
前記特徴取得部は、前記視界画像に所定の画像処理を施すことにより、前記物体に関連する前記特徴データを取得する、
請求項５に記載の訓練システム。
【請求項７】
前記訓練生に装着され、前記視界に含まれる前記物体の座標の集合である点群データを取得する深度センサを更に備え、
前記特徴取得部は、前記点群データを前記特徴データとして取得する、
請求項５に記載の訓練システム。
【請求項８】
訓練生がモックアップを用いて訓練を行うための訓練方法であって、
前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得ステップと、
前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出ステップと、
前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得ステップと、
前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定ステップと、
前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成ステップと、
を有する訓練方法。
【請求項９】
訓練生がモックアップを用いて訓練を行うための訓練装置のコンピュータを機能させるプログラムであって、前記コンピュータに、
前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得ステップと、
前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出ステップと、
前記視界に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得ステップと、
前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定ステップと、
前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成ステップと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、訓練装置、訓練システム、訓練方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば航空機のように、組立・完成検査に複雑な操作手順が要求される装置又は設備では、操作者に対して事前に操作方法及び操作手順を訓練する必要がある。
この時、操作者（訓練生）を教育及び訓練する方法として、実際の装置又は設備（以下、「実機」とも記載する）を精緻に模擬するハードウェアシミュレータを用いる方法が考えられている。
【０００３】
また、他の訓練方法として、コンピュータ（ＰＣ、タブレット端末等）で実機を模擬するソフトウェアシミュレータ、又は、実機を仮想空間上で提示するＶＲ（Virtual Reality）を用いた仮想操作システムを用いて訓練生の教育及び訓練を行う方法が考えられる（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第６０４９７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ハードウェアシミュレータは、実機と同様の機能を有するハードウェアを製造する必要があるので、非常に高価である。また、ハードウェアシミュレータは、航空機のように大きな設備を模擬する場合、広大な設置スペースが必要となる。このため、多数のハードウェアシミュレータを導入することはコスト的及びスペース的に困難であるため、複数の訓練生を教育する場合、ハードウェアシミュレータを用いることは非効率である。
【０００６】
更に、ソフトウェアシミュレータでは、訓練生は機器等の配置及び操作を直感的に理解することは困難である。また、仮想操作システムでは、仮想的に提示された機器及び計器等を確認することは可能であるが、レバー操作等の入力操作を必要とする操作を学習するには不十分である。
【０００７】
本発明は、このような課題に鑑みてなされたものであって、低コストで訓練効率を向上させることができる訓練装置、訓練システム、訓練方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明は以下の手段を採用している。
本発明の第１の態様によれば、訓練生がモックアップを用いて訓練を行うための訓練装置（１０）は、前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得部（１１０）と、前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出部（１１１）と、前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得部（１１２）と、前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定部（１１３）と、前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成部（１１４）と、を備える。
このように、訓練装置は、訓練生の位置及び姿勢に応じてモックアップ上に重畳表示される表示データを作成するので、訓練生に対し、実機と同等の配置及び機能を仮想的に再現した訓練環境を提供することができる。これにより、訓練装置は、実機と同等の機能を有するハードウェアを用意する必要がないため、従来のハードウェアシミュレータを利用するよりもコストを低減させることができる。更に、訓練装置は、従来のソフトウェアシミュレータ又は仮想操作システムと比較して、モックアップ及び表示データにより機器配置及び操作手順を直感的理解させやすい訓練環境を提供できるので、訓練効率を大幅に向上させることができる。
また、訓練装置は、マーカに基づいて訓練生の位置及び姿勢を迅速かつ容易に検出可能であるとともに、訓練生の視界からマーカが外れた場合であっても、特徴データに基づいて訓練生の位置及び姿勢を推定することができる。このため、訓練装置は、訓練生がどのような位置又は姿勢で訓練を行ったとしても、適切な表示データを作成することができるので、訓練生に対し、より実機に近い違和感のない訓練環境を提供することが可能となる。
【０００９】
本発明の第２の態様によれば、第１の態様に記載の訓練装置（１０）は、前記特徴データに基づいて仮想入力部に対する前記訓練生の操作を検出する操作検出部（１１５）を更に備え、前記表示データ作成部（１１４）は、前記操作に応じた前記表示データを作成する。
このようにすることで、訓練装置は、訓練生の操作に応じたフィードバックを含む表示データを作成することができる。これにより、訓練装置は、訓練生に対しより実機に近い操作感覚を体感可能な訓練環境を提供することができる。
【００１０】
本発明の第３の態様によれば、第１の態様に記載の訓練装置（１０）は、前記モックアップを含む所定の検知領域における動作を検知するセンサ（３０）から出力された信号に基づいて、仮想入力部に対する前記訓練生の操作を検出する操作検出部（１１５）を更に備え、前記表示データ作成部（１１４）は、前記操作に応じた前記表示データを作成する。
このようにすることで、訓練装置は、訓練生が視線を移動させずに視界外で操作を行った場合であっても、センサから出力された検知信号に基づいて、訓練生が行った操作を検出することができる。これにより、訓練装置は、訓練生に対しより実機に近い操作感覚を体感可能な訓練環境を提供することができる。
【００１１】
本発明の第４の態様によれば、第２又は第３の態様に記載の訓練装置（１０）は、前記操作検出部（１１５）が検出した前記操作に基づいて、前記訓練生の操作が正しいか否かを判定する操作判定部（１１６）を更に備え、前記表示データ作成部（１１４）は、前記操作判定部（１１６）の判定結果に応じた前記表示データを作成する。
このようにすることで、訓練装置は、訓練生が適切な操作を行ったか否かを判定し、例えば操作間違いがあった場合は警告等を含む表示データを作成する等、判定に応じたフィードバックを訓練生に与えるができる。これにより、訓練装置は、教師を用意することなく訓練生に訓練を行わせることができる。
【００１２】
本発明の第５の態様によれば、訓練生がモックアップを用いて訓練を行うための訓練システム（１）は、第１から第４の何れか一の態様に記載の訓練装置（１０）と、前記訓練生に装着され、前記視界画像を撮影するカメラ（２０）と、前記表示データを前記モックアップ上に重畳表示する表示装置（２２）と、を備える。
このように、訓練システムは、訓練生の位置及び姿勢に応じた表示データをモックアップ上に重畳表示するので、訓練生に対し、実機と同等の配置及び機能を仮想的に再現した訓練環境を提供することができる。これにより、訓練システムは、実機と同等の機能を有するハードウェアを用意する必要がないため、従来のハードウェアシミュレータを利用するよりもコストを低減させることができる。更に、訓練システムは、従来のソフトウェアシミュレータ又は仮想操作システムと比較して、機器配置及び操作手順を直感的理解させやすい訓練環境を提供でるので、訓練効率を大幅に向上させることができる。
【００１３】
本発明の第６の態様によれば、第５の態様に記載の訓練システム（１）において、前記特徴取得部（１１２）は、前記視界画像に所定の画像処理を施すことにより、前記物体に関連する前記特徴データを取得する。
このようにすることで、訓練システムは、訓練生の視界からマーカが外れた場合であっても、視界画像内に含まれる物体（モックアップ等）の特徴データに基づいて、訓練生の位置及び姿勢を精度よく推定することができる。このため、訓練システムは、訓練生がどのような位置又は姿勢で訓練を行ったとしても、適切な表示データをモックアップ上に重畳表示することができるので、訓練生に対し、より実機に近い違和感のない訓練環境を提供することが可能となる。
【００１４】
本発明の第７の態様によれば、第５の態様に記載の訓練システム（１）は、前記訓練生に装着され、前記視界に含まれる前記物体の座標の集合である点群データを取得する深度センサ（２１）を更に備え、前記特徴取得部（１１２）は、前記点群データを前記特徴データとして取得する。
このようにすることで、訓練システムは、訓練生の視界からマーカが外れた場合であっても、点群データに含まれる物体（モックアップ等）の各部の座標に基づいて、訓練生の位置及び姿勢を精度よく推定することができる。このため、訓練システムは、訓練生がどのような位置又は姿勢で訓練を行ったとしても、適切な表示データをモックアップ上に重畳表示することができるので、訓練生に対し、より実機に近い違和感のない訓練環境を提供することが可能となる。
【００１５】
本発明の第８の態様によれば、訓練生がモックアップを用いて訓練を行うための訓練方法は、前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得ステップと、前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出ステップと、前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得ステップと、前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定ステップと、前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成ステップと、を有する。
【００１６】
本発明の第９の態様によれば、訓練生がモックアップを用いて訓練を行うための訓練装置のコンピュータを機能させるプログラムは、前記コンピュータに、前記訓練生の視界に含まれる景色を撮影した視界画像を取得する視界画像取得ステップと、前記モックアップ上に配置されたマーカの画像を前記視界画像から検出し、当該マーカの画像に基づいて前記訓練生の位置及び姿勢を検出する位置検出ステップと、前記視界画像に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得ステップと、前記特徴データの時間的変化を追跡して前記訓練生の相対的な位置及び姿勢の推移を推定する位置推定ステップと、前記訓練生の相対的な位置及び姿勢に基づいて、前記モックアップ上に重畳表示される表示データを作成する表示データ作成ステップと、を実行させる。
【発明の効果】
【００１７】
上述の態様に係る訓練装置、訓練システム、訓練方法、及びプログラムによれば、低コストで訓練効率を向上させることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の一実施形態に係る訓練システムの全体構成を示す図である。
【図２】本発明の一実施形態に係る仮想空間の一例を示す図である。
【図３】本発明の一実施形態に係る訓練システムの機能構成を示す図である。
【図４】本発明の一実施形態に係る訓練装置の位置決定処理の一例を示す第１の処理フローである。
【図５】本発明の一実施形態に係るマーカテーブルの一例を示す図である。
【図６】本発明の一実施形態に係る訓練装置の位置決定処理の一例を示す第２の処理フローである。
【図７】本発明の一実施形態に係る訓練装置の操作受付処理の一例を示す処理フローである。
【図８】本発明の一実施形態に係る状態テーブルの一例を示す図である。
【図９】本発明の一実施形態に係るオブジェクト状態テーブルの一例を示す図である。
【図１０】本発明の一実施形態に係る入力操作テーブルの一例を示す図である。
【図１１】本発明の一実施形態に係る状態遷移テーブルの一例を示す図である。
【図１２】本発明の一実施形態に係る状態遷移詳細テーブルの一例を示す図である。
【図１３】本発明の一実施形態に係る訓練装置の表示データ作成処理の一例を示す第１の処理フローである。
【図１４】本発明の一実施形態に係る状態遷移表現テーブルの一例を示す図である。
【図１５】本発明の一実施形態に係るオブジェクト描画状態テーブルの一例を示す図である。
【図１６】本発明の一実施形態に係る訓練装置の表示データ作成処理の一例を示す第２の処理フローである。
【図１７】本発明の一実施形態に係る訓練装置の操作判定処理の一例を示す処理フローである。
【図１８】本発明の一実施形態に係る手順テーブルの一例を示す図である。
【図１９】本発明の一実施形態に係る訓練装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の一実施形態に係る訓練システム１について、図１〜図１９を参照しながら説明する。
【００２０】
（全体構成）
図１は、本発明の一実施形態に係る訓練システムの全体構成を示す図である。
図１に示すように、本実施形態に係る訓練システム１は、訓練生Ｗがモックアップ３１を介して特定の製品又は設備（以下、「実機」とも記載する）の操作方法及び操作手順を訓練するためのシステムである。訓練システム１は、訓練装置１０と、表示装置２２と、カメラ２０と、深度センサ２１と、センサ３０と、モックアップ３１とを備えている。
【００２１】
訓練装置１０は、実機の計器及び入力機器（ボタン、スイッチ等）を模擬した表示データＤ１０（図２、後述）をモックアップ３１上に重畳表示させることにより、訓練生Ｗに対し実機を操作したときと同等の体験を得ることが可能な仮想空間（仮想の訓練環境）を提供する。訓練装置１０は、カメラ２０、深度センサ２１、表示装置２２、及びセンサ３０と通信可能となるように有線接続又は無線接続される。
なお、訓練装置１０の機能構成の詳細については後述する。
【００２２】
カメラ２０は、訓練生Ｗに装着され、訓練生Ｗの視界に含まれる景色を視界画像として撮影する。
カメラ２０は、訓練生Ｗの実際の視界に近い視界画像を撮影できるように、訓練生Ｗの視点に近い位置（例えば頭部）に、訓練生Ｗの視線方向とカメラ２０の光軸とが略同一となるように配置される。
また、カメラ２０は、訓練装置１０と通信可能に接続されており、撮影した視界画像を逐次、訓練装置１０に出力する。
【００２３】
深度センサ２１は、訓練生Ｗに装着され、訓練生Ｗの視界に含まれる物体の座標の集合である点群データを取得する。ここで、物体は、モックアップ３１及び訓練生Ｗの体の一部（例えば手指等）である。点群データに含まれる座標は、例えば訓練生Ｗを起点とした三次元座標である。なお、深度センサ２１は、カメラ２０と同様に、訓練生Ｗの視点に近い位置（例えば頭部）に配置される。
また、深度センサ２１は訓練装置１０と通信可能に接続されており、取得した点群データを逐次、訓練装置１０に出力する。
【００２４】
表示装置２２は、訓練装置１０と通信可能に接続され、訓練装置１０が作成した表示データＤ１０（図２）をモックアップ３１上に重畳表示する。
図２は、本発明の一実施形態に係る仮想空間の一例を示す図である。
図２に示すように、表示データＤ１０には、「仮想表示部３２」と「仮想入力部３３」とが含まれている。「仮想表示部３２」は、実機の計器等を模擬したコンピュータグラフィックであり、主に訓練生Ｗに対し視覚的なフィードバックを与える。「仮想入力部３３」は、実機の入力機器（ボタン、スイッチ等）を模擬したコンピュータグラフィックであり、訓練生Ｗの仮想的な操作を受け付ける入力部の一態様である。
表示装置２２は、このように、訓練生Ｗに対しモックアップ３１上に計器及び入力機器が設けられているように見える視覚効果を与えることにより、仮想空間内に実機と同等の計器、入力機器等を再現する。
また、本実施形態に係る表示装置２２は、例えば訓練生Ｗの頭部に装着される両眼シースルー型のヘッドマウントディスプレイである。なお、他の実施形態では、表示装置２２は小型のレーザプロジェクタであってもよい。
【００２５】
センサ３０は、モックアップ３１を含む所定の検知領域３１Ｄにおける動作を検知するカメラ、又は深度センサである。
検知領域３１Ｄは、例えばモックアップ３１上に表示データが重畳表示される領域（後述の表示領域３１Ｃ）を含むように設定される。センサ３０は、検知領域３１Ｄにおける動作（即ち、訓練生Ｗの操作）を検知可能であればどの位置に設置されていてもよいが、本実施形態では、例えば図１に示すように、センサ３０はモックアップ３１よりも上方の壁面又は天井に固定配置されているものとする。
センサ３０は訓練装置１０と通信可能に接続されており、信号を逐次、訓練装置１０に出力する。
【００２６】
モックアップ３１には、表示データが重畳表示される表示領域３１Ｃ内に少なくとも一つのマーカ３１Ａが配置される。
なお、図１には、モックアップ３１の上面が表示領域３１Ｃとして設定されているが、モックアップ３１の側面等、他の部位が含まれていてもよい。
また、マーカ３１Ａは、それぞれ固有のテクスチャを有する図形、又はＱＲコード（登録商標）等の二次元コードである。マーカ３１Ａは、予め定められた形状及びサイズを有している。マーカ３１Ａが複数ある場合、マーカ３１Ａ全てが同一の形状及びサイズを有していてもよいし、それぞれ異なる形状及びサイズを有していてもよい。なお、本実施形態では、図１に示すように、マーカ３１Ａの形状が矩形である態様を例として説明するが、これに限られることはない。他の実施形態では、マーカ３１Ａの形状は円形等の任意の形状であってもよい。
【００２７】
また、モックアップ３１には、操作部３１Ｂが設けられている。
操作部３１Ｂは、例えばレバー、操縦桿のような操作量（アナログ量）の入力を受け付ける入力機器の操作を体験するための可動部であり、本実施形態における仮想入力部３３の一態様である。即ち、本実施形態に係る仮想入力部３３は、物理的な操作体験が可能な操作部３１Ｂと、視覚効果による操作体験が可能な表示データＤ１０との双方を含む。
また、図１には操作部３１Ｂが一つのみ設けられている例が示されているが、これに限られることはない。他の実施形態では、モックアップ３１に複数の操作部３１Ｂが設けられていてもよい。
【００２８】
なお、以下の説明では、図１に示すように訓練生Ｗがモックアップ３１の正面に位置したときの左右方向（図１における±Ｘ方向）をモックアップ３１の又は「幅方向」とも記載する。同様に、前後方向（図１における±Ｙ方向）を「奥行方向」、上下方向（図１における±Ｚ方向）を「高さ方向」とも記載する。
また、奥行方向（±Ｙ方向）において、訓練生Ｗに近い方（−Ｙ側）を「手前側」、遠い方（＋Ｙ側）を「奥側」とも記載する。
【００２９】
（機能構成）
図３は、本発明の一実施形態に係る訓練システムの機能構成を示す図である。
図３に示すように、訓練システム１の訓練装置１０は、ＣＰＵ１１と、接続Ｉ／Ｆ１２と、記憶媒体１３とを備えている。
【００３０】
ＣＰＵ１１は、訓練装置１０の動作全体を司るプロセッサである。ＣＰＵ１１は、所定のプログラムに従って動作することにより、視界画像取得部１１０、位置検出部１１１、特徴取得部１１２、位置推定部１１３、表示データ作成部１１４、操作検出部１１５、操作判定部１１６として機能する。
【００３１】
視界画像取得部１１０は、カメラ２０により訓練生Ｗの視界に含まれる景色を撮影した視界画像を取得する。
【００３２】
位置検出部１１１は、モックアップ３１上に配置されたマーカ３１Ａの画像を視界画像から検出し、当該マーカ３１Ａの画像に基づいて訓練生Ｗの位置及び姿勢を検出する。
なお、訓練生Ｗの位置及び姿勢とは、厳密には訓練生Ｗの視点の位置（三次元座標系における位置）及び姿勢（三次元座標系の各軸周りの回転）を示す。
【００３３】
特徴取得部１１２は、訓練生Ｗの視界に含まれる物体（モックアップ３１及び訓練生Ｗの体の一部）の外観又は形状を検出可能な特徴データを取得する。
なお、本実施形態に係る特徴取得部１１２は、深度センサ２１から出力された点群データを特徴データとして取得する。
【００３４】
位置推定部１１３は、特徴データの時間的変化を追跡して訓練生Ｗの相対的な位置及び姿勢の推移を推定する。
【００３５】
表示データ作成部１１４は、訓練生Ｗの相対的な位置及び姿勢に基づいて、モックアップ３１上に重畳表示される表示データＤ１０（図２）を作成する。
また、表示データ作成部１１４は、作成した表示データを表示装置２２に出力する。
【００３６】
操作検出部１１５は、特徴データに基づいて、訓練生Ｗの操作を受け付ける仮想入力部に対する訓練生Ｗの操作を検出する。
本実施形態に係る操作検出部１１５は、訓練生Ｗが操作に使う体の一部（例えば手指）の位置及び動きを検出する。そして、操作検出部１１５は、例えば訓練生Ｗの手指の先端位置が、仮想入力部に相当する領域に位置する場合、訓練生Ｗが当該仮想入力部の操作を行ったことを検出する。
また、操作検出部１１５は、センサ３０から出力された信号に基づいて、仮想入力部に対する訓練生Ｗの操作を検出する。これにより、訓練生Ｗが視線を移動させずに視界外で操作を行った場合、又は、訓練生Ｗの視界内に手指を隠す物体（訓練生Ｗの衣服等）が存在している場合であっても、訓練生Ｗの操作の検出漏れを抑制することができる。
【００３７】
操作判定部１１６は、操作検出部１１５が検出した操作に基づいて、訓練生Ｗの操作が正しいか否かを判定する。
【００３８】
接続Ｉ／Ｆ１２は、カメラ２０、深度センサ２１、及びセンサ３０から各種信号（画像、検知信号）が入力されるとともに、表示装置２２に表示データを出力する。
【００３９】
記憶媒体１３には、ＣＰＵ１１の各部が処理を行う際に必要な各種情報が予め記憶されている。
【００４０】
（訓練装置の位置決定処理）
図４は、本発明の一実施形態に係る訓練装置の処理の一例を示す第１の処理フローである。
図５は、本発明の一実施形態に係るマーカテーブルの一例を示す図である。
図６は、本発明の一実施形態に係る訓練装置の処理の一例を示す第２の処理フローである。
以下、図４〜図６を参照しながら、訓練装置１０が実行する訓練生Ｗの位置決定処理の一例について説明する。
【００４１】
まず、図４〜図５を参照して、訓練装置１０マーカ３１Ａを用いて訓練生Ｗの位置を検出する処理の一例について説明する。なお、図４の処理フローでは、説明を簡易にするため、モックアップ３１に一つのマーカ３１Ａが配置されている例について説明する。
【００４２】
訓練生Ｗが訓練を開始すると、位置検出部１１１は、図４に示すようにマーカ３１Ａの検出ステータスを初期化する（ステップＳ１０）。
検出ステータス「Ｓ」は、マーカ３１Ａが訓練生Ｗの視界（視界画像）に含まれるか否かを示す情報である。本実施形態では、検出ステータス「Ｓ」は、“初期値（マーカ未検出）”を示す「０」と、“マーカ３１Ａが視界内に含まれている”ことを示す「１」と、“マーカ３１Ａが視界から外れた”ことを示す「−１」とのうち何れかの値が設定される。
ステップＳ１０では、検出ステータス「Ｓ」に初期値である「０」が設定される。
【００４３】
次に、視界画像取得部１１０は、カメラ２０から視界画像を取得する（ステップＳ１１）。
【００４４】
視界画像取得部１１０が視界画像を取得すると、位置検出部１１１は、視界画像に既知の画像処理を施し、当該視界画像からマーカ３１Ａを検出したか否かを判断する（ステップＳ１２）。
【００４５】
位置検出部１１１は、視界画像からマーカ３１Ａを検出した場合（ステップＳ１２：ＹＥＳ）、検出ステータスを更新する（ステップＳ１３）。具体的には、位置検出部１１１は、検出ステータス「Ｓ」に、“マーカ３１Ａが視界（視界画像）内に含まれている”ことを示す「１」を設定する。
【００４６】
次に、位置検出部１１１は、記憶媒体１３に予め記憶されているマーカテーブルＤ２０（図５）を参照し、検出したマーカ３１Ａのマーカ情報を取得する（ステップＳ１４）。
図５に示すように、マーカテーブルＤ２０には、マーカ３１Ａの「マーカＩＤ」と、「座標」と、「姿勢」と、「サイズ」とが関連付けられたマーカ情報が、マーカ別に予め登録されている。
「マーカＩＤ」は、マーカ３１Ａを特定可能な識別情報である。本実施形態では、マーカ３１Ａのテクスチャに符号化されたマーカＩＤが埋め込まれており、位置検出部１１１は、既知の画像処理により、マーカ３１Ａの画像からマーカＩＤを読み取る。なお、他の実施形態では、マーカＩＤはテクスチャに埋め込まれていなくてもよい。この場合、マーカ情報にはテクスチャが更に登録されており、位置検出部１１１はマーカ３１Ａの画像と一致するテクスチャを検索して、当該マーカ３１ＡのマーカＩＤを特定する。
「座標」は、マーカ３１Ａが配置された位置を表す三次元座標（Ｘ、Ｙ、Ｚ）である。例えば、表示領域３１Ｃのうち、幅方向の最も左側（図１の−Ｘ側）且つ奥行方向の最も手前側（図１の−Ｙ側）の位置を原点（「Ｘ、Ｙ、Ｚ」＝「０、０、０」）とし、この原点からの幅方向、奥行方向、高さ方向における距離（ｍｍ）で表される。
「姿勢」は、マーカ３１Ａの各軸（Ｘ軸、Ｙ軸、Ｚ軸）周りの回転角度（α、β、γ）を表す情報である。
「サイズ」は、マーカ３１Ａの横幅（Ｘ）及び縦幅（Ｙ）の大きさ（ｍｍ）を表す情報である。
【００４７】
図４に戻り、位置検出部１１１は、既知の位置検出処理を利用し、視界画像から検出したマーカ３１Ａの画像と、ステップＳ１４において取得したマーカ情報とに基づいて、訓練生Ｗの「位置及び姿勢Ｐ」を検出する（ステップＳ１５）。
【００４８】
次に、位置検出部１１１は、検出した訓練生Ｗの「位置及び姿勢Ｐ」を記憶媒体１３に記憶する（ステップＳ１６）。
【００４９】
また、位置検出部１１１は、視界画像からマーカ３１Ａを検出しなかった場合（ステップＳ１２：ＮＯ）、検出ステータス「Ｓ」に“マーカ３１Ａが視界内に含まれている”ことを示す「１」が設定されているか否かを判断する（ステップＳ１７）。
【００５０】
位置検出部１１１は、検出ステータス「Ｓ」に「１」が設定されている場合（ステップＳ１７：ＹＥＳ）、検出ステータスに“マーカ３１Ａが視界から外れた”ことを示す「−１」を設定して更新する（ステップＳ１８）。そして、位置検出部１１１は、ステップＳ１１に戻って上述の処理を繰り返し実行する。
一方、位置検出部１１１は、検出ステータス「Ｓ」に「１」が設定されていない場合（ステップＳ１７：ＮＯ）、検出ステータスの更新は行わず、ステップＳ１１に戻って上述の処理を繰り返し実行する。
【００５１】
訓練装置１０は、訓練生Ｗが訓練を開始してから終了するまでの間、上述の処理を繰り返し実行することにより、訓練生Ｗの「位置及び姿勢Ｐ」を常に更新し続ける。
【００５２】
次に、図６を参照しながら、訓練装置１０が訓練生Ｗの位置を推定する処理の一例について説明する。なお、訓練装置１０は、図４の処理と並行して、図６の以下の処理を行うものとする。
【００５３】
訓練生Ｗが訓練を開始すると、特徴取得部１１２は、特徴データを取得する（ステップＳ２０）。本実施形態では、特徴取得部１１２は、深度センサ２１から出力される点群データを特徴データとして取得する。
【００５４】
特徴取得部１１２が特徴データを取得すると、位置推定部１１３は、ＳＬＡＭ（Simultaneous Localization and Mapping）等の技術を利用し、特徴データ（点群データ）を仮想空間にマッピングしてモックアップ３１の形状を検出可能な「環境地図」を作成するとともに、訓練生Ｗの環境地図内における「相対位置及び姿勢Ｐｅ」を計算して推定する（ステップＳ２１）。
【００５５】
次に、位置推定部１１３は、前回推定した「相対位置及び姿勢Ｐｅ」のデータが記憶媒体１３に記憶されているか否かを判断する（ステップＳ２２）。
位置推定部１１３は、前回推定した「相対位置及び姿勢Ｐｅ」のデータが記憶媒体１３に記憶されている場合（ステップＳ２２：ＹＥＳ）、ステップＳ２３に進む。
一方、位置推定部１１３は、前回推定した「相対位置及び姿勢Ｐｅ」のデータが記憶媒体１３に記憶されていない場合（ステップＳ２２：ＮＯ）、ステップＳ２０において推定した「相対位置及び姿勢Ｐｅ」を記憶媒体１３に記憶し（ステップＳ２７）、ステップＳ２０に戻る。
【００５６】
次に、位置推定部１１３は、検出ステータス「Ｓ」に“マーカ３１Ａが視界から外れた”ことを示す「−１」を設定されているか否かを判断する（ステップＳ２３）。
位置推定部１１３は、検出ステータス「Ｓ」が「−１」である場合（ステップＳ２３：ＹＥＳ）、ステップＳ２４に進む。
一方、位置推定部１１３は、検出ステータス「Ｓ」が「−１」ではない場合（ステップＳ２３：ＮＯ）、ステップＳ２０において推定した「相対位置及び姿勢Ｐｅ」を記憶媒体１３に記憶し（ステップＳ２７）、ステップＳ２０に戻る。
【００５７】
次に、位置推定部１１３は、前回の「相対位置及び姿勢Ｐｅ」と、ステップＳ２１において推定した「相対位置及び姿勢Ｐｅ」との「相対変化量ΔＰ」を計算する（ステップＳ２４）。
【００５８】
次に、位置推定部１１３は、記憶媒体１３に記憶されている前回の訓練生Ｗの「位置及び姿勢Ｐ」と、「相対変化量ΔＰ」とに基づいて、現時点における訓練生Ｗの「位置及び姿勢Ｐ」を計算して推定する（ステップＳ２５）。
即ち、位置推定部１１３は、マーカ３１Ａが訓練生Ｗの視界から外れてしまった場合は、最後にマーカ３１Ａに基づいて検出した訓練生Ｗの「位置及び姿勢Ｐ」を基準として、相対変化量ΔＰ分の移動先である、現時点における訓練生Ｗの「位置及び姿勢Ｐ」を推定する。これにより、位置推定部１１３は、マーカ３１Ａが視界から外れていても、訓練生Ｗの「位置及び姿勢Ｐ」を精度よく推定することが可能となる。
【００５９】
次に、位置推定部１１３は、ステップＳ２５において推定した訓練生Ｗの「位置及び姿勢Ｐ」を記憶媒体１３に記憶する（ステップＳ２６）。
【００６０】
次に、位置推定部１１３は、ステップＳ２０において推定した「相対位置及び姿勢Ｐｅ」を記憶媒体１３に記憶し（ステップＳ２７）、ステップＳ２０に戻る。
【００６１】
訓練装置１０は、訓練生Ｗが訓練を開始してから終了するまでの間、上述の処理を繰り返し実行することにより、仮想空間の環境地図の作成（更新）と、訓練生Ｗの「相対位置及び姿勢Ｐｅ」の推定を常に行う。これにより、マーカ３１Ａが訓練生Ｗの視界から外れてしまった場合であっても、位置検出部１１１に代わって位置推定部１１３が「位置及び姿勢Ｐ」の推定を継続して行うことができる。
【００６２】
（訓練装置の操作受付処理）
図７は、本発明の一実施形態に係る訓練装置の操作受付処理の一例を示す処理フローである。
以下、図７を参照しながら、訓練装置１０が訓練生Ｗの操作を受け付ける処理の一例について説明する。
【００６３】
訓練生Ｗが訓練を開始すると、訓練装置１０の操作検出部１１５は、表示データＤ１０の初期状態を、記憶媒体１３に予め記憶されている状態テーブルＤ２１（図８）から取得する（ステップＳ３０）。
図８は、本発明の一実施形態に係る状態テーブルの一例を示す図である。
状態テーブルＤ２１は、表示データＤ１０の仮想表示部３２及び仮想入力部３３に含まれる、仮想の計器、入力機器それぞれの初期状態及び現在の状態を示すテーブルである。
図８に示すように、状態テーブルＤ２１には、「状態ＩＤ」と、「初期状態」と、「現在の状態」とが関連付けられて記憶されている。例えば、「状態ＩＤ：状態００１」は仮想入力部３３に含まれるあるスイッチが「ＯＦＦ」であることを示す状態であり、「状態ＩＤ：状態００２」は「ＯＮ」であることを示す状態であるとする。図８の例では、「状態ＩＤ：００１」の初期状態は「ＴＲＵＥ」であり、「状態ＩＤ：００２」の初期状態は「ＦＡＬＳＥ」であるので、操作検出部１１５は、当該スイッチの初期状態が「ＯＦＦ」であると認識することができる。
【００６４】
また、記憶媒体１３には、「状態ＩＤ」と、表示データＤ１０を構成する一つ又は複数のオブジェクト（仮想の計器及び入力機器の３Ｄモデル又は２Ｄ映像）とを関連付けたオブジェクト状態テーブルＤ２２（図９）が予め記憶されている。
図９は、本発明の一実施形態に係るオブジェクト状態テーブルの一例を示す図である。
図９に示すように、オブジェクト状態テーブルＤ２２には、「オブジェクトＩＤ」と、オブジェクトの初期の描画状態を示す「座標」、「姿勢」、「スケール」、「色」、「テクスチャ」等とが関連付けられて状態ＩＤ別に登録されている。
個々では、表示データ作成部１１４は、状態テーブルＤ２１の初期状態と、オブジェクト状態テーブルＤ２２とを参照して、初期状態の表示データを作成して、表示装置２２に出力しているものとする。
【００６５】
図７に戻り、特徴取得部１１２は、深度センサ２１及びセンサ３０それぞれから特徴データ（点群データ）を取得する（ステップＳ３１）。
【００６６】
次に、操作検出部１１５は、特徴データに基づいて訓練生Ｗの手指位置ｍを検出する（ステップＳ３２）。
このとき、操作検出部１１５は、深度センサ２１から取得した特徴データに基づいて、訓練生Ｗの視界内における手指位置ｍ１を検出するとともに、センサ３０から取得した特徴データに基づいて、検知領域３１Ｄにおける手指位置ｍ２を検出する。
【００６７】
次に、操作検出部１１５は、記憶媒体１３に予め記憶されている入力操作テーブルＤ２３（図１０）を参照して、状態遷移のトリガとなる仮想入力部３３への入力操作を示す座標Ｍを取得する（ステップＳ３３）。
図１０は、本発明の一実施形態に係る入力操作テーブルの一例を示す図である。
図１０に示すように、入力操作テーブルＤ２３には、「操作ＩＤ」と、「認識対象」と、「座標」とが関連付けられて記憶されている。図１０の例では、「認識対象」である訓練生Ｗの指が「座標Ｍ（２００、１５０、０）」で示される地点周辺に位置したときに「入力操作ＩＤ：操作００１」が行われたと認識される。また、入力操作が操作部３１Ｂに関する操作である場合は、操作部３１Ｂの操作量を示す情報（例えば操作部３１Ｂの操作前後の座標）が含まれていてもよい。
【００６８】
図７に戻り、操作検出部１１５は、訓練生Ｗによる入力操作が行われたか否かを判断する（ステップＳ３４）。
具体的には、操作検出部１１５は、ステップＳ３２で検出した手指位置ｍと、ステップＳ３３で取得した座標Ｍのうち何れかとの差の絶対値が所定の閾値Ｒ未満（「｜ｍ−Ｍ｜＜Ｒ」）となる場合、この座標Ｍと関連付けられた入力操作を行ったと判断し（ステップＳ３４：ＹＥＳ）、ステップＳ３５に進む。なお、閾値Ｒは、仮想入力部３３を構成するオブジェクトの配置、サイズ等に応じてオブジェクト別に異なる値が設定されていてもよいし、同じ値が設定されていてもよい。
一方、操作検出部１１５は、手指位置ｍと、座標Ｍそれぞれとの差の絶対値が閾値Ｒ以上である場合、入力操作は行われなかったと判断し（ステップＳ３４：ＮＯ）、ステップＳ３１に戻る。
なお、操作検出部１１５は、入力操作が行われたか否かを判断する際、手指位置ｍ１及び手指位置ｍ２の少なくとも一方を用いて判断を行う。例えば、操作検出部１１５は、手指位置ｍ１が検出できなかった場合、手指位置ｍ２を用いて判断を行う。また、手指位置ｍ１及び手指位置ｍ２の双方が検出できた場合、予め決められた優先順位に基づいて手指位置ｍ１及び手指位置ｍ２の何れかを用いるようにしてもよい。
また、操作検出部１１５は、訓練生Ｗが操作部３１Ｂを操作したことを検出した場合、その操作量を検出するようにしてもよい。例えば、操作検出部１１５は、訓練生Ｗの操作を検出する前の操作部３１Ｂの位置から、訓練生Ｗの操作を検出した後の操作部３１Ｂの位置までの移動量に基づいて、操作量を検出してもよい。
【００６９】
次に、操作検出部１１５は、記憶媒体１３に予め記憶された状態遷移テーブルＤ２４を参照して、ステップＳ３４で検出された入力操作に対応する状態遷移を取得する（ステップＳ３５）。
図１１は、本発明の一実施形態に係る状態遷移テーブルの一例を示す図である。
図１１に示すように、状態遷移テーブルＤ２４には、「入力操作ＩＤ」と、「状態遷移ＩＤ」とが関連付けられて記憶されている。
ステップＳ３５では、操作検出部１１５は、状態遷移テーブルＤ２４を参照して、ステップＳ３４で検出された入力操作に対応する「状態遷移ＩＤ」を特定する。
【００７０】
図７に戻り、操作検出部１１５は、状態テーブルＤ２１（図８）の「現在の状態」を更新する（ステップＳ３６）。
図１２は、本発明の一実施形態に係る状態遷移詳細テーブルの一例を示す図である。
図１２に示すように、状態遷移詳細テーブルＤ２５には、「状態遷移ＩＤ」と、「遷移内容」と、「遷移状況」と、「経過時間」とが関連付けられて記憶されている。
「遷移内容」は、状態遷移がどの状態からどの状態へ遷移するかを示す情報であり、「遷移前の状態」及び「遷移後の状態」を含む。
「遷移状況」は、状態遷移を実行中であるか否かを示す情報であり、「遷移中」又は「遷移完了」の何れかのステータスが設定される。
「経過時間」は、状態遷移が現在「ｔ秒」まで実行されたことを示す情報であり、遷移状況が「遷移中」に変更されたときに「０秒」に設定される。
図１２の例では、「状態遷移ＩＤ：状態遷移００１」は、「状態００１（スイッチ＝ＯＦＦを示す状態）」から「状態００２（スイッチ＝ＯＮを示す状態）」に切り替える状態遷移を行うことを示している。このとき、操作検出部１１５は、状態テーブルＤ２１（図８）の「状態ＩＤ：状態００１」の「現在の状態」を「ＦＡＬＳＥ」に更新するとともに、「状態ＩＤ：状態００２」の「現在の状態」を「ＴＲＵＥ」に更新する。これにより、スイッチＯＦＦを示す「状態００１」が解除され、代わりにスイッチＯＮを示す「状態００２」が有効となる。即ち、訓練生Ｗの仮想入力部３３に対する入力操作により、スイッチがＯＦＦからＯＮに仮想的に切り替えられる。
【００７１】
なお、状態遷移詳細テーブルＤ２５には、例えば遷移前の状態（「状態００１」）の「現在の状態」に応じて、同じ「状態遷移ＩＤ」に複数の「遷移内容」が関連付けられていてもよい。例えば、「状態遷移ＩＤ：００１」には、「遷移前の状態：状態００１」の現在の状態に応じて、「遷移内容１」及び「遷移内容２」の二つが関連付けられる。「状態００１」の現在の状態が「ＦＡＬＳＥ」である（即ち、スイッチＯＮ状態である）場合は、「遷移内容１」として、「状態００２（スイッチＯＮ）」から「状態００１（スイッチＯＦＦ）」に切り替える「遷移内容１」が設定される。また、「状態００１」の現在の状態が「ＴＲＵＥ」である（即ち、スイッチＯＦＦ状態である）場合、「遷移内容２」として、「状態００１（スイッチＯＦＦ）」から「状態００２（スイッチＯＮ）」に切り替える「遷移内容」が設定される。この場合、操作検出部１１５は、状態テーブルＤ２１の「現在の状態」に応じて、何れかの遷移内容を選択し、状態テーブルＤ２１を更新する。
【００７２】
再び図７に戻り、操作検出部１１５は、状態遷移詳細テーブルＤ２５（図１２）の「遷移状況」を「遷移中」に変更するとともに、「経過時間」を「０秒」に設定して更新する（ステップＳ３７）。
操作検出部１１５は、状態遷移詳細テーブルＤ２５を更新すると、ステップＳ３１に戻り、訓練生Ｗによる操作を受け付ける処理を繰り返し実行する。
【００７３】
（訓練装置の表示データ作成処理）
図１３は、本発明の一実施形態に係る訓練装置の表示データ作成処理の一例を示す第１の処理フローである。
訓練装置１０の表示データ作成部１１４は、図７の操作受付処理において更新された状態テーブルＤ２１（図８）及び状態遷移詳細テーブルＤ２５（図１２）に基づいて、表示データＤ１０に含まれるオブジェクトそれぞれの描画状態を逐次計算して更新する。
以下、図１３を参照しながら、表示データ作成部１１４がオブジェクトの描画状態を決定する処理の一例について説明する。
【００７４】
図１３に示すように、表示データ作成部１１４は、現在時刻Ｔを取得する（ステップＳ４０）。
【００７５】
表示データ作成部１１４は、現在時刻Ｔと、前回の処理時刻を示すＴｐｒｅｖとの時間差ΔＴを計算する（ステップＳ４１）。
【００７６】
表示データ作成部１１４は、状態遷移詳細テーブルＤ２５（図１２）を参照して、状態遷移それぞれの「遷移状況」を取得する（ステップＳ４２）。
【００７７】
表示データ作成部１１４は、ステップＳ４２で取得した「遷移状況」のうち、「遷移中」のものがあるか否かを判断する（ステップＳ４３）。
表示データ作成部１１４は、「遷移中」の状態遷移がある場合（ステップＳ４３：ＹＥＳ）、ステップＳ４４に進む。
一方、表示データ作成部１１４は、「遷移中」の状態遷移がない場合（ステップＳ４３：ＮＯ）、ステップＳ３０に戻る。
【００７８】
「遷移中」の状態遷移がある場合（ステップＳ４３：ＹＥＳ）、表示データ作成部１１４は、これら状態遷移それぞれに関連するオブジェクトの描画状態を更新する処理を行う。具体的には、表示データ作成部１１４は、まず、変数ｉに「１」をセットする（ステップＳ４４）。変数ｉは、遷移中の状態遷移のうち、何番目の状態遷移の処理を実行しているかを示す。
【００７９】
次に、表示データ作成部１１４は、変数ｉが、「遷移状況」が「遷移中」である状態遷移の総数Ｎ１以下であるか判断する（ステップＳ４５）。
表示データ作成部１１４は、変数ｉが総数Ｎ１以下である場合（ステップＳ４５：ＹＥＳ）、ステップＳ４６に進む。
一方、表示データ作成部１１４は、変数ｉが総数Ｎ１より大きい場合（ステップＳ４５：ＮＯ）、即ち、現在時刻Ｔにおける全ての状態遷移の処理が完了した場合、ステップＳ５４に進む。
【００８０】
変数ｉが総数Ｎ１以下である場合（ステップＳ４５：ＹＥＳ）、表示データ作成部１１４は、状態遷移詳細テーブルＤ２５からｉ番目の状態遷移の「経過時間ｔｉ」を取得する（ステップＳ４７）。
【００８１】
次に、表示データ作成部１１４は、ｉ番目の状態遷移の「経過時間ｔｉ」にΔＴを加算して、状態遷移詳細テーブルＤ２５を更新する（ステップＳ４７）。
【００８２】
また、表示データ作成部１１４は、変数ｊに「１」をセットする（ステップＳ４８）。変数ｊは、ｉ番目の状態遷移において描画更新されるオブジェクトのうち、何番目のオブジェクトの描画状態の計算処理を実行しているかを示す。
【００８３】
表示データ作成部１１４は、変数ｊが、ｉ番目の状態遷移において描画更新されるオブジェクトの総数Ｎ２以下であるか判断する（ステップＳ４９）。
表示データ作成部１１４は、変数ｊが総数Ｎ２以下である場合（ステップＳ４９：ＹＥＳ）、ステップＳ５０に進む。
一方、表示データ作成部１１４は、変数ｊが総数Ｎ２より大きい場合（ステップＳ４９：ＮＯ）、即ち、ｉ番目の状態遷移の経過時間ｔｉにおける全てのオブジェクトに対する描画状態の計算が完了した場合、ステップＳ５３に進む。
【００８４】
変数ｊがＮ２以下である場合、表示データ作成部１１４は、ｊ番目のオブジェクト（以下、「オブジェクトｊ」とも記載する）の現時点（ｉ番目の状態遷移の経過時間ｔｉ）における描画状態を計算する（ステップＳ５０）。このとき、表示データ作成部１１４は、記憶媒体１３に予め記憶されている状態遷移表現テーブルＤ２６（図１４）を参照して、描画状態の計算を行う。
【００８５】
図１４は、本発明の一実施形態に係る状態遷移表現テーブルの一例を示す図である。
状態遷移表現テーブルＤ２６は、状態遷移を開始してからの経過時間に応じたオブジェクトそれぞれの描画状態を設定したテーブルである。図１４に示すように、状態遷移表現テーブルＤ２６は、「状態遷移ＩＤ」と、「オブジェクトＩＤ」と、「シーケンス」と、シーケンスの「開始時間」及び「終了時間」と、「終了時間」時点における描画状態を示す「座標」、「姿勢」、「スケール」、「色」、「テクスチャ」等とが関連付けられている。
「シーケンス」は、オブジェクトの描画状態を経過時間毎に段階的に変更する際に、描画順を示す情報である。図１４の例では、表示データ作成部１１４は、「オブジェクト００１」について、状態遷移の経過時間０秒〜２秒まではシーケンス１に基づき描画状態を計算し、経過時間２秒〜４秒まではシーケンス２に基づき描画状態を計算する。
【００８６】
例えば、オブジェクトｊは図１３の「オブジェクト００１」であり、経過時間ｔｉが０秒〜２秒の間の値であったとする。この場合、表示データ作成部１１４は、オブジェクトｊの描画状態を「シーケンス：１」に基づいて計算する。具体的には、表示データ作成部１１４は、オブジェクトｊの初期の描画状態（図９のオブジェクト状態テーブルＤ２２に登録された描画状態）から、２秒後の描画状態（図１４の「シーケンス：１」と関連付けられた描画状態）までの中間となる描画状態を、経過時間ｔｉに応じて計算する。
【００８７】
図１３に戻り、表示データ作成部１１４は、ステップＳ５０において計算したオブジェクトｊの描画状態を、記憶媒体１３のオブジェクト描画状態テーブルＤ２７（図１５）に記憶して更新する。
図１５は、本発明の一実施形態に係るオブジェクト描画状態テーブルの一例を示す図である。
図１５に示すように、オブジェクト描画状態テーブルＤ２７には、状態遷移中のため描画更新が必要なオブジェクトの「オブジェクトＩＤ」と、現時点におけるオブジェクトの描画状態を示す「座標」、「姿勢」、「スケール」、「色」、「テクスチャ」等とが関連付けられて記憶されている。
【００８８】
再び図１３に戻り、表示データ作成部１１４は、変数ｊに「１」を加算して、ステップＳ４９に戻る。そして、表示データ作成部１１４は、ｉ番目の状態遷移において描画更新される他の全てのオブジェクトに対し、上述の処理を順に実行する。
【００８９】
また、表示データ作成部１１４は、変数ｊが総数Ｎ２より大きい場合（ステップＳ４９：ＮＯ）、即ち、ｉ番目の状態遷移の経過時間ｔｉにおける全てのオブジェクトに対する描画状態の計算が完了した場合、状態遷移詳細テーブルＤ２５（図１２）のｉ番目の状態遷移に関連付けられた「経過時間」に「経過時間ｔｉ」を上書きして記憶する（ステップＳ５３）。これにより、表示データ作成部１１４が次に当該状態遷移の描画状態を計算する際、経過時間ｔｉから再開することができる。
【００９０】
次に、表示データ作成部１１４は、変数ｉに「１」を加算し（ステップＳ５４）、現在時刻Ｔを前回の処理時刻を示すＴｐｒｅｖとして記憶し（ステップＳ５５）、ステップＳ４０に戻る。
【００９１】
表示データ作成部１１４は、上述の処理を繰り返すことにより、表示データＤ１０に含まれるオブジェクトそれぞれの描画状態を逐次更新する。
【００９２】
図１６は、本発明の一実施形態に係る訓練装置の表示データ作成処理の一例を示す第２の処理フローである。
訓練装置１０の表示データ作成部１１４は、図３及び図６において検出及び推定された訓練生Ｗの「位置及び姿勢Ｐ」と、図１３の処理において更新されたオブジェクト描画状態テーブルＤ２７（図１５）に基づいて、表示データＤ１０の作成処理を行う。
以下、図１６を参照しながら、表示データ作成部１１４による表示データＤ１０の作成処理の一例について説明する。
【００９３】
図１６に示すように、表示データ作成部１１４は、変数ｊに「１」をセットする（ステップＳ６０）。変数ｊは、現在時刻Ｔにおいて描画更新されるオブジェクトのうち、何番目のオブジェクトの描画処理を実行しているかを示す。
【００９４】
表示データ作成部１１４は、変数ｊが、描画更新が必要なオブジェクトの総数Ｎ３以下であるか判断する（ステップＳ６１）。
表示データ作成部１１４は、変数ｊが総数Ｎ３以下である場合（ステップＳ６１：ＹＥＳ）、即ち、描画更新が完了していないオブジェクトが存在している場合、ステップＳ６２に進む。
一方、表示データ作成部１１４は、変数ｊが総数Ｎ３より大きい場合（ステップＳ６１：ＮＯ）、即ち、全てのオブジェクトの描画更新が完了している場合、ステップＳ６０に戻る。
【００９５】
変数ｊが総数Ｎ３以下である場合（ステップＳ６１：ＹＥＳ）、表示データ作成部１１４は、オブジェクト描画状態テーブルＤ２７（図１５）を参照して、オブジェクトｊの描画状態を取得する（ステップＳ６２）。
【００９６】
次に、表示データ作成部１１４は、ステップＳ６２において取得した描画状態に基づいてオブジェクトｊを描画更新して、表示データＤ１０を作成（更新）する（ステップＳ６３）。
このとき、表示データ作成部１１４は、記憶媒体１３に記憶されている訓練生Ｗの「位置及び姿勢Ｐ」を読み出して、当該「位置及び姿勢Ｐ」に応じたオブジェクトの位置及び姿勢を計算して描画する。
【００９７】
オブジェクトｊの描画更新が完了すると、表示データ作成部１１４は、変数ｊに「１」を加算して（ステップＳ６４）、ステップＳ６１に戻る。そして、表示データ作成部１１４は、描画更新が必要な他の全てのオブジェクトに対し、上述の処理を順に実行する。
【００９８】
（訓練装置の操作判定処理）
図１７は、本発明の一実施形態に係る訓練装置の操作判定処理の一例を示す処理フローである。
図１８は、本発明の一実施形態に係る操作手順テーブルの一例を示す図である。
以下、図１７〜図１８を参照しながら、訓練装置１０が訓練生Ｗの操作が正しいか否かを判定する処理の一例について説明する。
【００９９】
図１７に示すように、訓練装置１０の操作判定部１１６は、まず、訓練生Ｗが訓練を行う作業の作業ＩＤを設定する（ステップＳ７０）。このとき、操作判定部１１６は、訓練生Ｗに、記憶媒体１３に予め記憶されている手順テーブルＤ２８から作業ＩＤを選択させる。
図１８は、本発明の一実施形態に係る手順テーブルの一例を示す図である。
図１８に示すように、手順テーブルには、「作業ＩＤ」と、「作業番号」と、「テキスト」と、「入力操作」とが関連付けられて記憶されている。
「作業番号」は、各作業で行われる一連の作業手順それぞれに付されて番号であり、作業の実行順を示す情報である。
「作業指示」は、各作業手順において訓練生Ｗが実行すべき作業内容を訓練生Ｗに伝達するための文字又は画像情報である。
「入力操作」は、各作業手順において訓練生Ｗが実行すべき操作内容を示す情報である。具体的には、「入力操作」として、入力操作テーブルＤ２３（図１０）の「入力操作ＩＤ」が登録されている。
【０１００】
図１７に戻り、操作判定部１１６は、変数ｋに「１」をセットする（ステップＳ７１）。変数ｋは、一連の作業手順のうち、どの作業番号の作業を実行しているかを示す。
【０１０１】
次に、操作判定部１１６は、変数ｋが、一連の作業手順の総数Ｎ４以下であるか判断する（ステップＳ７２）。
操作判定部１１６は、変数ｋが総数Ｎ４以下である場合（ステップＳ７２：ＹＥＳ）、ステップＳ７３に進む。
一方、操作判定部１１６は、変数ｋが総数Ｎ４より大きい場合（ステップＳ７２：ＮＯ）、即ち、一連の作業手順が完了した場合、処理を終了する。
【０１０２】
変数ｋが総数Ｎ４以下である場合（ステップＳ７２：ＹＥＳ）、表示データ作成部１１４は、ｋ番目の作業指示をオブジェクトとして描画した表示データＤ１０を作成する（ステップＳ７３）。当該オブジェクトは、表示データＤ１０のうち、仮想表示部３２に描画される。
なお、訓練生Ｗに対する作業指示が不要である場合は、当該ステップを省略してもよい。作業指示を表示するか否かは、設定により変更可能であってもよい。
【０１０３】
次に、操作判定部１１６は、訓練生Ｗの入力操作を取得する（ステップＳ７４）。ここでは、図７のステップＳ３４において操作検出部１１５により検出された入力操作を取得する。
【０１０４】
また、操作判定部１１６は、手順テーブルＤ２８（図１８）を参照して、ｋ番目の作業手順に関連付けられた入力操作を取得する（ステップＳ７５）。
【０１０５】
次に、操作判定部１１６は、ステップＳ７４において取得した訓練生Ｗの入力操作が、ステップＳ７５で取得した入力操作が一致するか否かを判定する（ステップＳ７６）。
操作判定部１１６は、訓練生Ｗの入力操作が作業手順と一致する場合（ステップＳ７６：ＮＯ）、訓練生Ｗは正しい手順で操作を行ったと判定し、ステップＳ７８に進む。
一方、操作判定部１１６は、訓練生Ｗの入力操作が作業手順と一致しない場合（ステップＳ７６：ＮＯ）、訓練生Ｗは誤った手順で操作を行ったと判定し、表示データ作成部１１４に警告メッセージを描画させる（ステップＳ７９）。なお、警告メッセージには、正しい手順を指示するメッセージが含まれていてもよい。また、操作判定部１１６は、ステップＳ７４に戻り、訓練生Ｗの入力操作を再度受け付ける。
【０１０６】
訓練生Ｗの入力操作が作業手順と一致する場合（ステップＳ７６：ＮＯ）、操作判定部１１６は、変数ｋに「１」を加入して（ステップＳ７８）、ステップＳ７２に戻る。そして、操作判定部１１６は、一連の作業手順が完了するまで上述の処理を繰り返し実行する。
【０１０７】
（訓練装置のハードウェア構成）
図１９は、本発明の一実施形態に係る訓練装置のハードウェア構成の一例を示す図である。
以下、図１９を参照して、訓練装置１０のハードウェア構成の一例について説明する。
図１９に示すように、コンピュータ９００は、ＣＰＵ９０１、主記憶装置９０２、補助記憶装置９０３、インタフェース９０４を備える。
上述の訓練装置１０は、コンピュータ９００に実装される。そして、上述した各処理部の動作は、プログラムの形式で補助記憶装置９０３に記憶されている。ＣＰＵ９０１は、プログラムを補助記憶装置９０３から読み出して主記憶装置９０２に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ９０１は、プログラムに従って、訓練装置１０が各種処理に用いる記憶領域を主記憶装置９０２に確保する。また、ＣＰＵ９０１は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置９０３に確保する。
【０１０８】
補助記憶装置９０３の例としては、ＨＤＤ（Hard Disk Drive）、ＳＳＤ（Solid State Drive）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）、半導体メモリ等が挙げられる。補助記憶装置９０３は、コンピュータ９００のバスに直接接続された内部メディアであってもよいし、インタフェース９０４又は通信回線を介してコンピュータ９００に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ９００に配信される場合、配信を受けたコンピュータ９００が当該プログラムを主記憶装置９０２に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、補助記憶装置９０３は、一時的でない有形の記録媒体である。
【０１０９】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。
更に、当該プログラムは、前述した機能を補助記憶装置９０３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１１０】
以上のように、本実施形態に係る訓練装置１０は、訓練生Ｗがモックアップ３１を用いて訓練を行うための訓練装置１０であって、訓練生Ｗの視界に含まれる景色を撮影した視界画像を取得する視界画像取得部１１０と、モックアップ３１上に配置されたマーカ３１Ａの画像を視界画像から検出し、当該画像に基づいて訓練生Ｗの「位置及び姿勢Ｐ」を検出する位置検出部１１１と、視界に含まれる物体の外観又は形状を検出可能な特徴データを取得する特徴取得部１１２と、特徴データの時間的変化を追跡して訓練生Ｗの「位置及び姿勢Ｐ」を推定する位置推定部１１３と、訓練生Ｗの「位置及び姿勢Ｐ」に基づいて、モックアップ３１上に重畳表示され、訓練生Ｗの操作を受け付ける仮想入力部３３を含む表示データＤ１０を作成する表示データ作成部１１４と、を備える。
このように、訓練装置１０は、訓練生Ｗの「位置及び姿勢Ｐ」に応じてモックアップ３１上に重畳表示される表示データＤ１０を作成するので、訓練生Ｗに対し、実機と同等の配置及び機能を仮想的に再現した訓練環境を提供することができる。これにより、訓練装置１０は、実機と同等の機能を有するハードウェアを用意する必要がないため、従来のハードウェアシミュレータを利用するよりもコストを低減させることができる。更に、訓練装置１０は、従来のソフトウェアシミュレータ又は仮想操作システムと比較して、機器配置及び操作手順を直感的理解させやすい訓練環境を提供できるので、訓練効率を大幅に向上させることができる。
また、訓練装置１０は、マーカ３１Ａに基づいて訓練生Ｗの「位置及び姿勢Ｐ」を迅速かつ容易に検出可能であるとともに、訓練生Ｗの視界からマーカ３１Ａが外れた場合であっても、特徴データに基づいて訓練生Ｗの「位置及び姿勢Ｐ」を推定することができる。このため、訓練装置１０は、訓練生Ｗがどのような位置又は姿勢で訓練を行ったとしても、適切な表示データＤ１０を作成することができるので、訓練生Ｗに対し、より実機に近い違和感のない訓練環境を提供することが可能となる。
【０１１１】
また、位置推定部１１３は、マーカ３１Ａが訓練生Ｗの視界から外れた場合、前回検出された訓練生Ｗの「位置及び姿勢Ｐ」に基づいて、現在の訓練生Ｗの「位置及び姿勢Ｐ」の推定を行う。
これにより、位置推定部１１３は、マーカ３１Ａが視界から外れた場合であっても、前回検出された「位置及び姿勢Ｐ」を基準とすることにより、訓練生Ｗの位置及び姿勢を推定する精度を向上させることができる。
【０１１２】
また、訓練装置１０は、特徴データに基づいて仮想入力部３３に対する訓練生Ｗの操作を検出する操作検出部１１５を更に備え、表示データ作成部１１４は、訓練生Ｗの操作に応じた表示データＤ１０を作成する。
このようにすることで、訓練装置１０は、訓練生Ｗの操作に応じたフィードバックを含む表示データＤ１０を作成することができる。これにより、訓練装置１０は、訓練生Ｗに対しより実機に近い操作感覚を体感可能な訓練環境を提供することができる。
【０１１３】
また、操作検出部１１５は、モックアップ３１を含む所定の検知領域３１Ｄにおける動作を検知するセンサ３０から出力された信号に基づいて、仮想入力部３３に対する訓練生Ｗの操作を検出する。
このようにすることで、訓練装置１０は、訓練生Ｗが視線を移動させずに視界外で操作を行った場合（例えば仮想の計器を確認しながら操作部３１Ｂを操作した場合）であっても、センサ３０から出力された検知信号に基づいて、訓練生Ｗが行った操作を検出することができる。これにより、訓練装置１０は、訓練生Ｗに対しより実機に近い操作感覚を体感可能な訓練環境を提供することができる。
【０１１４】
また、訓練装置１０は、操作検出部１１５が検出した訓練生Ｗの操作に基づいて、訓練生Ｗの操作が正しいか否かを判定する操作判定部１１６を更に備え、表示データ作成部１１４は、操作判定部１１６の判定結果に応じた表示データＤ１０を作成する。
このようにすることで、訓練装置１０は、訓練生Ｗが適切な操作を行ったか否かを判定し、例えば操作間違いがあった場合は警告等を含む表示データを作成する等、判定に応じたフィードバックを訓練生Ｗに与えるができる。これにより、訓練装置１０は、教師を用意することなく訓練生Ｗに訓練を行わせることができる。
【０１１５】
また、本実施形態に係る訓練システム１は、訓練生Ｗがモックアップ３１を用いて訓練を行うための訓練システム１であって、上述の訓練装置１０と、訓練生Ｗに装着され、視界画像を撮影するカメラ２０と、表示データＤ１０をモックアップ３１上に重畳表示する表示装置２２と、を備える。
このように、訓練システム１は、訓練生Ｗの「位置及び姿勢Ｐ」に応じた表示データＤ１０をモックアップ３１上に重畳表示するので、訓練生Ｗに対し、実機と同等の配置及び機能を仮想的に再現した訓練環境を提供することができる。これにより、訓練システム１は、実機と同等の機能を有するハードウェアを用意する必要がないため、従来のハードウェアシミュレータを利用するよりもコストを低減させることができる。更に、訓練システム１は、従来のソフトウェアシミュレータ又は仮想操作システムと比較して、機器配置及び操作手順を直感的理解させやすい訓練環境を提供でるので、訓練効率を大幅に向上させることができる。
【０１１６】
また、訓練システム１は、訓練生Ｗに装着され、視界に含まれる物体の座標の集合である点群データを取得する深度センサ２１を更に備え、特徴取得部１１２は、点群データを特徴データとして取得する。
このようにすることで、訓練システム１は、訓練生Ｗの視界からマーカ３１Ａが外れた場合であっても、点群データに含まれる物体（モックアップ３１等）の各部の座標に基づいて、訓練生Ｗの「位置及び姿勢Ｐ」を精度よく推定することができる。このため、訓練システム１は、訓練生Ｗがどのような位置又は姿勢で訓練を行ったとしても、適切な表示データＤ１０をモックアップ３１上に重畳表示することができるので、訓練生Ｗに対し、より実機に近い違和感のない訓練環境を提供することが可能となる。
【０１１７】
以上、本発明の実施形態について詳細に説明したが、本発明の技術的思想を逸脱しない限り、これらに限定されることはなく、多少の設計変更等も可能である。
例えば、上述の実施形態において、訓練装置１０の特徴取得部１１２が深度センサ２１から出力された点群データを特徴データとして取得する態様について説明したが、これに限られることはない。他の実施形態では、特徴取得部１１２は、カメラ２０により撮影された視界画像に所定の画像処理を施すことにより、視界画像に含まれる物体の特徴量（画像の色、輝度、濃度等）を特徴データとして取得してもよい。
この場合、訓練装置１０の位置推定部１１３は、例えばｖｉｓｕａｌ  ＳＬＡＭの技術を利用して、「環境地図」の作成及び「相対位置及び姿勢Ｐｅ」の推定を行う。
このような構成によっても、上述の実施形態と同様の効果を得ることが可能である。また、この場合、深度センサ２１を省略することができるので、訓練装置１０にかかるコストを更に低減させることができる。
【０１１８】
また、図１の例では、訓練システム１が一人の訓練生Ｗに対し訓練を行う態様が示されているが、これに限られることはない。他の実施形態では、訓練システム１は、複数の訓練生Ｗに対し、同時に訓練を行うようにしてもよい。
この場合、複数の訓練生Ｗは、それぞれカメラ２０、深度センサ２１、及び表示装置２２を装着する。また、訓練生Ｗは、同じ室内にいてもよいし、それぞれ遠隔地にいてもよい。複数の訓練生Ｗが同じ室内にいる場合は、一台のモックアップ３１を複数人で共用してもよいし、訓練生別に一台ずつモックアップ３１が用意されてもよい。複数の訓練生Ｗが同じ室内で訓練を行うか、また、モックアップ３１を共用するか否かは、訓練内容に応じて任意に決めてよい。
また、訓練装置１０は、一台を複数の訓練生Ｗで共用してもよいし、訓練生Ｗそれぞれに一台ずつ用意されてもよい。一台又は複数の訓練装置１０は、複数の訓練生Ｗそれぞれの「位置及び姿勢Ｐ」を個別に検出及び推定する。また、訓練装置１０は、訓練生Ｗそれぞれの「位置及び姿勢Ｐ」に応じた表示データＤ１０を個別に作成して、表示装置２２に表示させる。このとき、表示データＤ１０には、訓練生Ｗ全員に共通のオブジェクト（なお、訓練生それぞれの「位置及び姿勢Ｐ」に応じてオブジェクトの位置及び姿勢は異なる）が含まれていてもよいし、異なるオブジェクトが含まれていてもよい。例えば航空機の離着陸の操縦訓練するケースでは、一の訓練生Ｗに対する表示データＤ１０にはコックピットを模擬したオブジェクトが含まれ、他の訓練生Ｗに対する表示データＤ１０には、一の訓練生Ｗの操作に応じた航空機の車輪（降着装置）の動作を模擬したオブジェクトが含まれていてもよい。
このようにすることで、訓練システム１は、複数の訓練生Ｗを同時に訓練することができる。また、一つの作業に対し、複数の訓練生Ｗが異なる作業を並行して実行しなければならない場合も、訓練システム１は、訓練生Ｗそれぞれに割り当てられた作業を同時に訓練することができる。このため、訓練システム１は、訓練効率を大幅に向上させることができる。
【符号の説明】
【０１１９】
１  訓練システム
１０  訓練装置
１１  ＣＰＵ
１１０  視界画像取得部
１１１  位置検出部
１１２  特徴取得部
１１３  位置推定部
１１４  表示データ作成部
１１５  操作検出部
１１６  操作判定部
１３  記憶媒体
２０  カメラ
２１  深度センサ
２２  表示装置
３０  センサ
３１  モックアップ
３１Ａ  マーカ
３１Ｂ  操作部
３１Ｃ  表示領域
３１Ｄ  検知領域
３２  仮想表示部
３３  仮想入力部
【図１】
2020013035.tif 000003
【図２】
2020013035.tif 000004
【図３】
2020013035.tif 000005
【図４】
2020013035.tif 000006
【図５】
2020013035.tif 000007
【図６】
2020013035.tif 000008
【図７】
2020013035.tif 000009
【図８】
2020013035.tif 000010
【図９】
2020013035.tif 000011
【図１０】
2020013035.tif 000012
【図１１】
2020013035.tif 000013
【図１２】
2020013035.tif 000014
【図１３】
2020013035.tif 000015
【図１４】
2020013035.tif 000016
【図１５】
2020013035.tif 000017
【図１６】
2020013035.tif 000018
【図１７】
2020013035.tif 000019
【図１８】
2020013035.tif 000020
【図１９】
2020013035.tif 000021