IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立システムズの特許一覧

特開2024-106543仮想環境提供装置、方法、およびプログラム
<>
  • 特開-仮想環境提供装置、方法、およびプログラム 図1
  • 特開-仮想環境提供装置、方法、およびプログラム 図2
  • 特開-仮想環境提供装置、方法、およびプログラム 図3
  • 特開-仮想環境提供装置、方法、およびプログラム 図4
  • 特開-仮想環境提供装置、方法、およびプログラム 図5
  • 特開-仮想環境提供装置、方法、およびプログラム 図6
  • 特開-仮想環境提供装置、方法、およびプログラム 図7
  • 特開-仮想環境提供装置、方法、およびプログラム 図8
  • 特開-仮想環境提供装置、方法、およびプログラム 図9
  • 特開-仮想環境提供装置、方法、およびプログラム 図10
  • 特開-仮想環境提供装置、方法、およびプログラム 図11
  • 特開-仮想環境提供装置、方法、およびプログラム 図12
  • 特開-仮想環境提供装置、方法、およびプログラム 図13
  • 特開-仮想環境提供装置、方法、およびプログラム 図14
  • 特開-仮想環境提供装置、方法、およびプログラム 図15
  • 特開-仮想環境提供装置、方法、およびプログラム 図16
  • 特開-仮想環境提供装置、方法、およびプログラム 図17
  • 特開-仮想環境提供装置、方法、およびプログラム 図18
  • 特開-仮想環境提供装置、方法、およびプログラム 図19
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024106543
(43)【公開日】2024-08-08
(54)【発明の名称】仮想環境提供装置、方法、およびプログラム
(51)【国際特許分類】
   G06F 3/04815 20220101AFI20240801BHJP
   G09B 9/00 20060101ALI20240801BHJP
   G09B 19/00 20060101ALI20240801BHJP
   G06T 19/00 20110101ALI20240801BHJP
【FI】
G06F3/04815
G09B9/00 Z
G09B19/00 Z
G06T19/00 A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023010849
(22)【出願日】2023-01-27
(71)【出願人】
【識別番号】000233491
【氏名又は名称】株式会社日立システムズ
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】ロハスフェレール,セサル・ダニエル
(72)【発明者】
【氏名】藤原 貴之
(72)【発明者】
【氏名】加畑 亮一
(72)【発明者】
【氏名】勝又 大介
(72)【発明者】
【氏名】成田 賀仁
(72)【発明者】
【氏名】菊地 克朗
【テーマコード(参考)】
5B050
5E555
【Fターム(参考)】
5B050BA13
5B050CA07
5B050EA07
5B050EA13
5B050FA02
5E555AA27
5E555BA02
5E555BB02
5E555BC04
5E555BE17
5E555CA42
5E555CB31
5E555CB66
5E555CC03
5E555DA08
5E555DB31
5E555DC21
5E555EA07
5E555FA00
(57)【要約】
【課題】仮想環境においてユーザが移動させるオブジェクトと移動しないオブジェクトとがある状況においてユーザが操作するオブジェクトの適切な配置を可能にする。
【解決手段】三次元の仮想環境における仮想的なオブジェクトの配置を制御する仮想環境提供装置において、制御部は、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置する。
【選択図】図1
【特許請求の範囲】
【請求項1】
三次元の仮想環境における仮想的なオブジェクトの配置を制御する仮想環境提供装置であって、
記憶部と制御部とセンサ部と表示部とを有し、
前記記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、前記インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、前記ターゲットオブジェクト上の前記インタラクティブオブジェクトが配置される保管場所と、前記インタラクティブオブジェクトおよび前記ターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、前記ターゲットオブジェクトに対して前記インタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶し、
前記センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得し、
前記制御部は、前記操作情報に基づいて、前記ユーザが前記インタラクティブオブジェクトを前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、前記仮想環境において、当該インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、当該インタラクティブオブジェクトを当該ターゲットオブジェクトの保管場所に配置し、
前記表示部は、前記仮想環境における前記ターゲットオブジェクトと前記インタラクティブオブジェクトとを表示する、
仮想環境提供装置。
【請求項2】
前記保管場所は、前記ターゲットオブジェクト上に複数定義され、
前記制御部は、前記インタラクティブオブジェクトが前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放されると、当該インタラクティブオブジェクトを、当該ターゲットオブジェクトにおける他のインタラクティブオブジェクトが配置されていない保管場所に配置する、
請求項1に記載の仮想環境提供装置。
【請求項3】
前記インタラクティブオブジェクトにはタイプが定義されており、
前記保管場所には、インタラクティブオブジェクトを配置できる範囲を表す制限エリアが定義されており、
前記制御部は、前記インタラクティブオブジェクトが前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放されると、当該インタラクティブオブジェクトを、当該インタラクティブオブジェクトと同じタイプのインタラクティブオブジェクトが配置されている保管場所の制限エリア内に互いの排他バウンディングボックスが重複しないように配置する、
請求項1に記載の仮想環境提供装置。
【請求項4】
前記制御部は、前記インタラクティブオブジェクトが前記ターゲットオブジェクトの近接判定バウンディングボックス内に入ったことを前記ユーザに通知する通知情報を、前記表示部に表示させる、
請求項1に記載の仮想環境提供装置。
【請求項5】
前記インタラクティブオブジェクトには、ネジの仮想オブジェクトとネジまわしの仮想オブジェクトとが含まれ、
前記ターゲットオブジェクトには、前記ネジおよび前記ネジまわしを配置可能なテーブルの仮想オブジェクトが含まれる、
請求項1に記載の仮想環境提供装置。
【請求項6】
前記制御部は、前記操作情報に基づいて、前記ユーザが、前記制限エリア内に複数のインタラクティブオブジェクトが配置されている配置位置に対して所定の把持の操作をしたことを検出すると、前記仮想環境において、前記複数のインタラクティブオブジェクトをグループにまとめて移動可能な状態とする、
請求項3に記載の仮想環境提供装置。
【請求項7】
前記制御部は、前記操作情報に基づいて、前記ユーザが前記複数のインタラクティブオブジェクトのグループを前記ターゲットオブジェクトの前記近接判定バウンディングボックス内で解放する操作をしたことを検出すると、前記複数のインタラクティブオブジェクトを最も近い保管場所の制限エリア内に配置する、
請求項6に記載の仮想環境提供装置。
【請求項8】
前記制御部は、前記操作情報に基づいて、前記ユーザが、前記制限エリア内に複数のインタラクティブオブジェクトが配置されている配置位置に対して所定の把持の操作をしたことを検出すると、前記仮想環境において、前記複数のインタラクティブオブジェクトをグループにまとめて移動可能であることを通知する通知情報を、前記表示部に表示させる、
請求項6に記載の仮想環境提供装置。
【請求項9】
前記制御部は、前記ユーザが前記インタラクティブオブジェクトを前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出したときに前記インタラクティブオブジェクトの前記排他バウンディングボックスと前記ターゲットオブジェクトの排他バウンディングボックスとが重複している場合に、当該重複が解消されるまで前記ターゲットオブジェクトに対する前記インタラクティブオブジェクトの高さを高くする、
請求項1に記載の仮想環境提供装置。
【請求項10】
記憶部と制御部とセンサ部と表示部とを有する仮想環境提供装置により実行される、三次元の仮想環境における仮想的なオブジェクトの配置を制御する方法であって、
前記記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、前記インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、前記ターゲットオブジェクト上の前記インタラクティブオブジェクトが配置される保管場所と、前記インタラクティブオブジェクトおよび前記ターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、前記ターゲットオブジェクトに対して前記インタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶しており、
前記センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得するように構成され、
前記表示部は、前記仮想環境における前記ターゲットオブジェクトと前記インタラクティブオブジェクトとを表示するように構成されており、
前記方法は、
前記制御部が、前記操作情報に基づいて、前記ユーザが前記インタラクティブオブジェクトを前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、前記仮想環境において、当該インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、当該インタラクティブオブジェクトを当該ターゲットオブジェクトの保管場所に配置すること、
を含む、方法。
【請求項11】
(請求項1相当のプログラムクレーム)
記憶部と制御部とセンサ部と表示部とを有するコンピュータに、三次元の仮想環境における仮想的なオブジェクトの配置制御を実行させるプログラムであって、
前記記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、前記インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、前記ターゲットオブジェクト上の前記インタラクティブオブジェクトが配置される保管場所と、前記インタラクティブオブジェクトおよび前記ターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、前記ターゲットオブジェクトに対して前記インタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶しており、
前記センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得するように構成され、
前記表示部は、前記仮想環境における前記ターゲットオブジェクトと前記インタラクティブオブジェクトとを表示するように構成されており、
前記プログラムは、前記制御部に、
前記操作情報に基づいて、前記ユーザが前記インタラクティブオブジェクトを前記ターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、前記仮想環境において、当該インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、当該インタラクティブオブジェクトを当該ターゲットオブジェクトの保管場所に配置すること、
を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ユーザがオブジェクトを操作可能な仮想環境を提供する技術に関する。
【背景技術】
【0002】
ユーザがオブジェクトを操作可能な仮想環境を実現するには、ユーザが操作したオブジェクトを適切な位置に配置することが重要である。
【0003】
特許文献1には、仮想3D空間において、ユーザの要求に応じて、第1オブジェクトを第1位置から第2位置に移動させると、第1オブジェクトの第1バウンディングボックスの第1平面と第2オブジェクトの第2バウンディングボックスの第2平面との間のスクリーン空間におけるピクセル距離を計算し、ピクセル距離がエラー値以下であると、第1のバウンディングボックスの第1平面を第2平面に位置合わせするように、第1オブジェクトを移動させて配置する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許公報US11204679B1号
【発明の概要】
【発明が解決しようとする課題】
【0005】
仮想環境による没入型の産業訓練シミュレーションには、ユーザが3Dオブジェクトである各種道具を操作して作業等の訓練を行うものがある。ユーザは、テーブルに置かれている各種の道具の中からある道具を取り上げ、それを使用して作業を行い、またテーブルに戻すといったことを仮想的環境上で行う。ユーザの没入感を維持するには、例えば、ユーザが道具をテーブルに戻したときに、道具が違和感なく適切な位置に戻されたり、ユーザが再び容易に取り上げたりできることが重要である。
【0006】
特許文献1に開示された処理は、あるオブジェクトの配置を他のオブジェクトとの位置関係から自動的に調整する処理であり、双方のオブジェクトに対する扱いに差異がない。そのため、特許文献1の処理は、道具のように持ち運び可能な物品とテーブルのように固定的な物品とがある状況を模擬するには適しない。
【0007】
本発明の目的は、仮想環境においてユーザが移動させるオブジェクトと移動しないオブジェクトとがある状況においてユーザが操作するオブジェクトの適切な配置を可能にする技術を提供することである。
【課題を解決するための手段】
【0008】
本開示のひとつの態様による仮想環境提供装置は、三次元の仮想環境における仮想的なオブジェクトの配置を制御する仮想環境提供装置であって、記憶部と制御部とセンサ部と表示部とを有し、記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、ターゲットオブジェクト上のインタラクティブオブジェクトが配置される保管場所と、インタラクティブオブジェクトおよびターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶し、センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得し、制御部は、操作情報に基づいて、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置し、表示部は、仮想環境におけるターゲットオブジェクトとインタラクティブオブジェクトとを表示する、仮想環境提供装置である。
【発明の効果】
【0009】
本開示のひとつの態様によれば、仮想環境においてユーザが移動させるオブジェクトと移動しないオブジェクトとがある状況においてユーザが操作するオブジェクトの適切な配置が可能となる。
【図面の簡単な説明】
【0010】
図1】実施形態における仮想環境提供装置の一例を示すブロック構成図である。
図2】実施形態に係る仮想環境提供装置による動作の一例を説明するためのフローチャートである。
図3】ユーザが表示部に表示された仮想環境内のインタラクティブオブジェクトを掴んだ状態を示す概念図である。
図4】インタラクティブオブジェクトであるドライバの排他BBがターゲットオブジェクトであるテーブルの近接判定BB内に進入した状態を示す図である。
図5】ユーザの手から解放されたドライバがテーブル上の保管場所Aに配置された状態を示す図である。
図6】インタラクティブオブジェクトであるネジに関する定義情報において、ターゲットオブジェクトであるテーブル上の保管場所Bがネジの保管場所として定義付けられている場合を示す図である。
図7図6に示したように1つ目のネジが配置された保管場所Bの制限領域のマスの隣に2つ目のネジが配置された状態を示す図である。
図8】インタラクティブオブジェクトであるレンチに関する定義情報において、ターゲットオブジェクトであるテーブル上の保管場所Cがレンチの保管場所として定義付けられている場合を示す図である。
図9】ターゲットオブジェクトであるテーブルの上の保管場所にインタラクティブオブジェクトであるドライバを配置する様子を示す図である。
図10】テーブルの保管場所Bに設定された制限エリア内に合計15個のインタラクティブオブジェクト(ネジ)が配置されている状態を示す図である。
図11】グループが掴まれたことをユーザに知らせるために、制限エリアの周囲のグループハイライトの表示とテキストメッセージの表示とが行われた状態を示す図である。
図12】仮想環境内において、インタラクティブオブジェクトとしてのラベルがテーブルの上に置かれ、目標機器であるラックの各シェルフにラベル目標位置が設定されていることを示す図である。
図13】各シェルフのラベル目標位置にラベルがそれぞれ配置された状態を示す図である。
図14】ユーザがラックからあるシェルフを引き出してテーブルの上に置く動作を行った状態を示す図である。
図15】実施形態に係る仮想環境提供装置による動作の他の例を説明するためのフローチャートである。
図16】表示部に表示される仮想環境を示す概念図である。
図17】表示部に警告メッセージが表示された状態を示す図である。
図18】警告メッセージを受けて、ユーザが掴んでいるインタラクティブオブジェクトを掴む前の位置に戻す動作を行った状態を示す図である。
図19】表示部に確認メッセージが表示された状態を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図面を参照して説明する。
【0012】
図1は、実施形態における仮想環境提供装置の一例を示すブロック構成図である。図1に示すように、本実施形態における仮想環境提供装置100は、操作部10、通信部20、センサ部30、表示部40、制御部50、出力部60、メモリ70及びストレージ80を有している。それらの各部はバス90を介して互いに接続されている。
【0013】
操作部10は、ユーザが仮想環境提供装置100を操作する入力を受け付ける入力インターフェースであり、例えば、キーボード、マウスやジョイスティック等のポインティングデバイス、タッチパネル、音声マイク、あるいは、それらの任意の組合せで構成することができる。
【0014】
通信部20は、インターネット、イントラネット、無線LAN(Local Area Network)やWAN(Wide Area Network)等の通信ネットワークを介して外部装置やクラウドサーバ等(不図示)と通信を行うための通信インターフェースである。
【0015】
センサ部30は、主に、ユーザの手の位置及び手指の動作を検出するセンサであり、例えば、二次元画像(一例でRGB画像)を撮像するカメラ、深度画像を生成する深度センサ、あるいはその組み合わせによって構成することができる。センサ部30が検出する手指の動作としては、例えば、「手が開いている」、「2本の指でオブジェクトを掴む動作」、「5本の指でオブジェクトを掴む動作」等が含まれる。センサ部30は、一例として、後述する表示部40としてのヘッドマウントディスプレイ(HMD)に設置され、頭部にHMDを装着したユーザの前方に位置する当該ユーザの手の位置及び手指の動作を検出する。このように、センサ部30は、ユーザによるオブジェクトに対する操作に関する操作情報を取得する。
【0016】
表示部40は、制御部50によって生成される画像を表示して視覚情報をユーザに提供するディスプレイ装置であり、例えば、ヘッドマウントディスプレイ(HMD)により構成される。HMDは、仮想環境提供装置100の制御部50が生成する三次元の仮想環境を、ユーザの左右の眼に視差を持たせてそれぞれ提示する左目用及び右目用の二次元画像の形態で表示するように構成されている。
【0017】
制御部50は、仮想環境提供装置100全体の制御を司る1又は2以上の中央演算処理装置(CPU:Central Processing Unit)や、画像処理を行う1又は2以上のグラフィックス処理装置(GPU:Graphics Processing Unit)等のプロセッサにより構成される。制御部50は、後述するメモリ70に格納および展開されている種々のプログラムを実行することで、プログラムに記述された様々な機能を実現することができる。
【0018】
出力部60は、例えば、音を発するスピーカ等によって構成される。出力部60は、制御部50によって生成された音を発することにより音声情報をユーザに提供する。
【0019】
メモリ70は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)等の一時的又は非一時的な記憶媒体を含み、プロセッサにより構成される制御部50が各種機能を実現するためのプログラムを格納する。また、メモリ70は、操作部10、通信部20及びセンサ部30によって取得された情報と、制御部50による処理動作によって生成される各種データ(中間生成データを含む)を少なくとも一時的に記憶する。
【0020】
メモリ70は、図1に示されているように、本実施形態に係る機能を実現するためのプログラムの一例として、音声識別プログラム71、行動認識プログラム72、画像表示プログラム73、および支援コンテンツ制御プログラム74を格納している。これらの各プログラムには仮想環境提供装置100で実行される処理が予め記述されている。制御部50は、各プログラムをメモリ70から読み出して実行することにより、特に、図2及び図15を参照して説明するような仮想環境提供装置100が行う処理やその機能を実現するように動作する。
【0021】
音声識別プログラム71は、操作部10を構成する音声マイクを介してユーザが入力した音声を識別して、その音声による入力情報を特定する処理を制御部50に実行させるプログラムである。音声識別プログラム71により、ユーザは仮想環境提供装置100を操作するための入力を音声によって行うことも可能である。
【0022】
行動認識プログラム72は、センサ部30によって検出された実空間内のユーザの手の位置及び手指の動作を認識する処理を制御部50に実行させるプログラムである。行動認識プログラム72により、センサ部30で取得されたRGB画像及び/又は深度画像内のユーザの手の位置及び手指の動作が、例えば手指の特徴点に基づく任意の画像認識技術や、手の位置及び向き並びに手指の動作に関する多数の学習画像データを用いて機械学習によって学習した学習済みモデルを用いて認識される。
【0023】
画像表示プログラム73は、ユーザに提供する視覚情報を表示部40に表示するための画像を生成して表示部40に表示させる処理を制御部50に実行させるプログラムである。ユーザに提供する視覚情報は、例えば、仮想環境においてユーザが移動可能な仮想オブジェクトであるインタラクティブオブジェクト(一例として、移動可能な各種工具や部品を表す仮想オブジェクト)と、仮想環境においてインタラクティブオブジェクトの配置先となる仮想オブジェクトであるターゲットオブジェクト(一例として、移動不可能なテーブルを表す仮想オブジェクト)とを含む三次元の仮想環境を再現する視覚情報であり、それを表示部40に表示するための画像は、上述したように、表示部40であるHMDを頭部に装着したユーザの左右の眼に視差を持たせてそれぞれ提示する左目用及び右目用の二次元画像の形態で生成され、表示部40に表示される。
【0024】
支援コンテンツ制御プログラム74は、図2及び図15を参照して説明するような仮想環境提供装置100によって提供される各種作業の支援コンテンツを制御する処理を制御部50に実行させるプログラムである。支援コンテンツ制御プログラム74は、後述するストレージ80の支援コンテンツ管理データベース82に格納された各支援コンテンツにおいて定められた各種作業トレーニングのシナリオに従って支援コンテンツを実行する。作業シナリオは、例えば、各種工具あるいは部品をテーブルの上に定められた配置位置に定められた順序で配置する作業トレーニングや、複数の引出しを有するラックの各引出しにラベルを貼付し、所定のラベルを貼付した引出しをラックから取り出してテーブルの上に配置する作業トレーニング等を含む。
【0025】
支援コンテンツ制御プログラム74はさらに、行動認識プログラム72によって認識されたユーザの手の位置及び手指の動作に応じて、仮想環境内に表示されたインタラクティブオブジェクトを把持して移動させたり、インタラクティブオブジェクトを解放してターゲットオブジェクトに配置したりする処理も含む。また、支援コンテンツ制御プログラム74は、各支援コンテンツのシナリオを進行する処理として、仮想環境内でのインタラクティブオブジェクト同士の干渉及びインタラクティブオブジェクトとターゲットオブジェクトとの干渉の判定や、ユーザによる仮想環境内でのインタラクティブオブジェクトの操作が支援コンテンツのシナリオに沿って行われている場合、あるいはシナリオから逸脱した場合に、ユーザに対してメッセージを提示する処理を行う。メッセージの提示は、表示部40にテキストや画像を表示したり、出力部60のスピーカから音声を発したりすることで実行される。
【0026】
ストレージ80は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の磁気記憶装置、光記憶装置、光磁気記憶装置等の、記憶した情報を無給電状態においても非一時的に保持することができる記憶装置で構成される。ストレージ80は、図1に示されているように、本実施形態で用いられるデータを格納するデータベースとして、空間情報管理データベース81、支援コンテンツ管理データベース82、ユーザ情報管理データベース83を記憶している。
【0027】
空間情報管理データベース81は、仮想環境内に提示される各種インタラクティブオブジェクト及びターゲットオブジェクトに関する定義情報を格納する。インタラクティブオブジェクトに関する定義情報には、仮想環境においてユーザが移動可能なインタラクティブオブジェクトの属性を示すインタラクティブオブジェクトタイプと、他のインタラクティブオブジェクト及びターゲットオブジェクトと互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクト上にインタラクティブオブジェクトが配置されたときの保管姿勢とが含まれる。また、ターゲットオブジェクトに関する定義情報には、インタラクティブオブジェクトの配置先となるターゲットオブジェクトの属性を示すターゲットオブジェクトタイプと、ターゲットオブジェクト上のインタラクティブオブジェクトが配置される保管場所と、インタラクティブオブジェクト及び他のターゲットオブジェクトと互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスとが含まれる。これらの定義情報の詳細な例については、後述する仮想環境提供装置100による動作の説明において説明する。
【0028】
支援コンテンツ管理データベース82は、支援コンテンツ制御プログラム74によって実行される各種作業の支援コンテンツを格納する。ユーザは、仮想環境提供装置100の操作部10を介して、支援コンテンツ制御プログラム74で実行する支援コンテンツを支援コンテンツ管理データベース82に格納された複数の支援コンテンツの中から選択することが可能である。支援コンテンツ管理データベース82に格納された各支援コンテンツは、それらの支援コンテンツのそれぞれの作業トレーニングシナリオを進行するために必要な支援コンテンツ管理情報を含む。支援コンテンツ管理情報は、一例として、作業トレーニングシナリオに応じて仮想環境内に表示させるインタラクティブオブジェクト及びターゲットオブジェクトの種類、仮想環境内におけるそれらの初期表示位置、複数のインタラクティブオブジェクトを移動させる順番、各々のインタラクティブオブジェクトを移動させる配置先の位置及び配置姿勢、インタラクティブオブジェクトに対するユーザ操作入力に応じてユーザに提示するメッセージ、等に関する情報を含む。
【0029】
ユーザ情報管理データベース83は、仮想環境提供装置100を使用する各ユーザに関する情報を格納する。ユーザに関する情報は、ユーザの識別情報、実行した支援コンテンツ、当該支援コンテンツの実行日時、当該支援コンテンツのトレーニング結果、等に関する情報を含む。
【0030】
次に、本実施形態の仮想環境提供装置100による動作について、いくつかの支援コンテンツの作業トレーニングを例示して説明する。
【0031】
(第1の作業トレーニングシナリオ)
第1の作業トレーニングシナリオは、インタラクティブオブジェクトとしての各種工具および部品をターゲットオブジェクトとしてのテーブルの上に配置する作業のトレーニング(以下、「第1の作業トレーニング」とも称する)に関するシナリオである。ユーザが仮想環境提供装置100の操作部10を操作し、支援コンテンツ管理データベース82に格納された複数の支援コンテンツの中から実行する支援コンテンツとして第1の作業トレーニングを選択することにより、仮想環境提供装置100で第1の作業トレーニングに関する支援コンテンツが開始される。
【0032】
図2は、本実施形態に係る仮想環境提供装置100による動作の一例を説明するためのフローチャートである。
【0033】
仮想環境提供装置100で第1の作業トレーニングに関する支援コンテンツが開始されると、制御部50は、第1の作業トレーニングの支援コンテンツに関連するインタラクティブオブジェクト及びターゲットオブジェクトに関する定義情報を空間情報管理データベース81から読み込む(ステップS11)。
【0034】
空間情報管理データベース81から読み込むべき定義情報は、選択した支援コンテンツによって指定される。ステップS11において、制御部50は一例として、第1の作業トレーニングの支援コンテンツにおいて用いられるインタラクティブオブジェクトとしてドライバ(ネジまわし)、ネジ及びレンチに関する定義情報を空間情報管理データベース81から読み込み、第1の作業トレーニングの支援コンテンツにおいて用いられるターゲットオブジェクトとしてテーブルに関する定義情報を空間情報管理データベース81から読み込む。
【0035】
制御部50は、空間情報管理データベース81から読み込んだそれらのインタラクティブオブジェクト及びターゲットオブジェクトを三次元の仮想環境内に配置し、表示部40にその仮想環境を表示する。仮想環境内におけるそれらのオブジェクトの初期配置位置は、例えば支援コンテンツ制御プログラム74によって定められる。ユーザの実空間内のユーザの手の位置及び手指の動作がセンサ部30によって検出され、さらに制御部50が実行する行動認識プログラム72によって認識される。ユーザが表示部40に表示された仮想環境内のインタラクティブオブジェクトを掴んで移動させる動作を行うと、ユーザの手の動作に応じて、制御部50が実行する支援コンテンツ制御プログラム74によってそのインタラクティブオブジェクトが仮想環境内で移動する。
【0036】
図3は、ユーザが表示部40に表示された仮想環境内のインタラクティブオブジェクトを掴んだ状態を示す概念図である。図には、仮想環境内のインタラクティブオブジェクトとしてドライバ2を掴んだユーザ1と、ドライバ2を保管配置するテーブル5とが示されているが、表示部40に表示される仮想環境にはユーザ1は表示されない。仮想環境には、ユーザ1の手を表す仮想オブジェクトが、行動認識プログラム72によって認識された実空間のユーザの手の動作に応じて表示されてもよい。
【0037】
インタラクティブオブジェクトとしてのドライバ2の周囲には、そのインタラクティブオブジェクトに関して定義されて空間情報管理データベース81に格納された定義情報に従って、仮想的な境界を表す排他バウンディングボックス(以下、「排他BB」とも称する。)2aが設定されている。
【0038】
また、ターゲットオブジェクトとしてのテーブル3の上面の上方には、そのターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックス(以下、「近接判定BB」とも称する。)3aが設定されている。図3では図示されていないが、テーブル3の周囲には、他のインタラクティブオブジェクト及びターゲットオブジェクトと互いに重複できない仮想的な境界を表す排他バウンディングボックスも設定されている。さらに、ターゲットオブジェクトとしてのテーブル3の上面には、インタラクティブオブジェクトが配置される保管場所A,B,C,…,nが設定されている。
【0039】
次にステップS12において、制御部50は、仮想環境内のインタラクティブオブジェクトの排他バウンディングボックスとターゲットオブジェクトの近接判定バウンディングボックスとの位置関係を測定する。それらの位置関係の測定は、連続的に行ってもよいし、あるいは、所定の時間間隔(例えば1秒間隔)で間欠的に行ってもよい。図3に示した例では、ドライバ2の位置とテーブル3上面の上方に設定された近接判定BB3aとの位置関係が測定される。
【0040】
次にステップS13において、制御部50は、ステップS12において測定した位置関係に基づき、仮想環境内のインタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に進入したかどうかを判定する。なお、ここではバウンディングボックス同士の位置関係を基に、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に進入したかどうかを判定するものとしたが、判定方法は特に限定されない。他の方法として、インタラクティブオブジェクトの代表的な部分の位置とターゲットオブジェクトの近接判定バウンディングボックスとの位置関係を基に、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に進入したかどうかを判定することにしてもよい。その場合、インタラクティブオブジェクトの代表的な部分の位置としてインタラクティブオブジェクトの重心位置を用いてもよい。
【0041】
ステップS13において、制御部50が、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に進入した(Y)と判定した場合は、処理がステップS14に進む。一方、制御部50が、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に進入していない(N)と判定した場合は、インタラクティブオブジェクトの排他バウンディングボックスがターゲットオブジェクトの近接判定バウンディングボックス内に進入したことが判定されるまでステップS13の判定処理を繰り返し実行する。
【0042】
図4に示すようにインタラクティブオブジェクトであるドライバ2の排他BB2aがターゲットオブジェクトであるテーブル3の近接判定BB3a内に進入すると、ステップS14において、制御部50は、表示部40に通知メッセージM1を表示する。図4に示す例では、通知メッセージM1は、ユーザが仮想環境内で把持してテーブル3の上方に移動させてきたドライバ2をテーブル3の上に置くことを促す、「テーブルの上に置きましょう」を記述したテキストメッセージである。制御部50は、このような通知メッセージM1の表示に加えて、そのテキストを読み上げた音声を出力部60のスピーカから出力させてもよい。これにより、インタラクティブオブジェクトをターゲットオブジェクトに配置できる状態であることをユーザに通知し、ユーザが行う操作を支援することができる。
【0043】
次にステップS15において、制御部50は、センサ部30によって検出された実空間内のユーザの手の位置及び手指の動作に関する情報を、制御部50が実行する行動認識プログラム72によって取得する。ステップS15においては、特に、ユーザの手のジェスチャに関する情報(例えば、5本の指が閉じた状態、2本の指が閉じた状態、5本の指が「パー」の形に開いた状態等)を取得する。
【0044】
次にステップS16において、制御部50は、ステップS15で取得されたユーザの手のジェスチャが、ユーザの手で掴んでいたインタラクティブオブジェクトの解放を意味するジェスチャであるか否かを判定する。ユーザの手で掴んでいたインタラクティブオブジェクトの解放を意味するジェスチャは、例えば、5本の指が「パー」の形に開いた状態である。
【0045】
ステップS15において、制御部50が、ステップS15で取得されたユーザの手のジェスチャがユーザの手で掴んでいたインタラクティブオブジェクトの解放を意味するジェスチャである(Y)と判定した場合は、処理がステップS17に進む。一方、制御部50が、ユーザの手のジェスチャがユーザの手で掴んでいたインタラクティブオブジェクトの解放を意味するジェスチャでない(N)と判定した場合は、インタラクティブオブジェクトの解放を意味するジェスチャが判定されるまでステップS16の判定処理を繰り返し実行する。
【0046】
次にステップS17において、制御部50は、ユーザの手から解放されたインタラクティブオブジェクトと同じオブジェクトタイプのインタラクティブオブジェクトが配置されるターゲットオブジェクト上の保管場所に空きがあるか否かを判定する。
【0047】
インタラクティブオブジェクトであるドライバ2に関する定義情報において、ターゲットオブジェクトであるテーブル2上の保管場所Aがドライバ2の保管場所として定義付けられている場合、図4に示す状態では保管場所Aには他のドライバ2が未だ保管されておらず空きがあるので、空きがある(Y)と判定される。
【0048】
ステップS17において、ターゲットオブジェクト上の保管場所に空きがある(Y)と判定された場合は、処理がステップS19に進み、ターゲットオブジェクト上の保管場所に空きが無い(N)と判定された場合は、処理がステップS18に進む。
【0049】
ターゲットオブジェクト上の定義付けられた保管場所に空きがある(Y)と判定された場合は、ステップS19において、そのインタラクティブオブジェクトについて定義付けられた保管場所にインタラクティブオブジェクトを配置する。図4に示す例では、インタラクティブオブジェクトであるドライバ2に関連付けられた保管場所Aには他のドライバ2が未だ保管されておらず空きがあるので、ユーザの手から解放されたドライバ2は図5に示すように保管場所Aに配置される。これにより、インタラクティブオブジェクトの位置をターゲットオブジェクトの適切な位置に自動的に調整することができる。
【0050】
図6は、インタラクティブオブジェクトであるネジ4に関する定義情報において、ターゲットオブジェクトであるテーブル2上の保管場所Bがネジ4の保管場所として定義付けられている場合を示している。保管場所Bには、同じタイプのインタラクティブオブジェクトを配置できる範囲を表す制限エリアが定義されており、その制限エリアに所定数の同じタイプのインタラクティブオブジェクトが互いの排他バウンディングボックスが重複しないように配置される。図6に示す例では、保管場所Bは、図示x方向に5つ、図示z方向に5つで最大で合計25個のインタラクティブオブジェクト(ネジ4)が保管可能なマスGが設定されている。図6に示す例では、ネジ4に関連付けられた保管場所Bのいずれのマスにも他のネジ4が未だ保管されておらず空きがあるので、ユーザの手から解放されたネジ4は図6に示すように解放された時点のネジ4に最も近いマスに配置される。
【0051】
一方、ターゲットオブジェクト上の定義付けられた保管場所に空きが無い(N)と判定された場合は、ステップS18において、その定義付けられた保管場所の次の保管場所にインタラクティブオブジェクトを配置する。
【0052】
図7は、図6に示したように1つ目のネジ4が配置された保管場所Bのマスの隣に2つ目のネジ4が配置された状態を示している。1つ目のネジ4が配置されたマスに2つ目のネジ4を配置しようとした場合、そのマスには既にネジ4が保管されており空きが無いので、ユーザの手から解放された2つ目のネジ4は図7に示すようにその次の保管場所のマスに配置される。これにより、ネジのような小さい物品のように1つ1つ分散して配置することが不自然な物品を模した同じタイプのオブジェクトをひとまとめにして配置することができる。
【0053】
図8は、インタラクティブオブジェクトであるレンチ5に関する定義情報において、ターゲットオブジェクトであるテーブル2上の保管場所Cがレンチ5の保管場所として定義付けられている場合を示している。図8に示す例では、インタラクティブオブジェクトであるレンチ5に関連付けられた保管場所Cには他のレンチ5が未だ保管されておらず空きがあるので、ユーザの手から解放されたレンチ5は図8に示すように保管場所Cに配置される。
【0054】
次にステップS20において、制御部50は、ステップS18,S19でターゲットオブジェクト上のそれぞれの保管場所に配置された各インタラクティブオブジェクトを、それぞれの定義情報において定義付けられた保管姿勢に従った姿勢(向き)にする。
【0055】
図5に示す例では、インタラクティブオブジェクトであるドライバ2はその定義情報において先端側がマイナスx方向(図示左方向)に向くように保管姿勢が定義付けられており、保管場所Aに配置されたドライバ2は、その保管姿勢に関する定義情報に従って先端がマイナスx方向に向けられている。また、図7に示す例では、インタラクティブオブジェクトであるネジ4はその定義情報において先端側がマイナスy方向(図示下方向)に向くように保管姿勢が定義付けられており、保管場所Bに配置された各ネジ4は、その保管姿勢に関する定義情報に従って先端が-y方向に向けられている。さらに、図8に示す例では、インタラクティブオブジェクトであるレンチ5はその定義情報において取っ手側がマイナスx方向(図示左方向)に向くように保管姿勢が定義付けられており、保管場所Cに配置されたレンチ5は、その保管姿勢に関する定義情報に従って取っ手側がマイナスx方向に向けられている。
【0056】
次にステップS21において、制御部50は、ターゲットオブジェクトの排他バウンディングボックスとその上に配置されたインタラクティブオブジェクトの排他バウンディングボックスとが互いに重なっているか否かを判定する。両者の排他BB同士が重なっている場合は、仮想環境内に表示されているインタラクティブオブジェクトの少なくとも一部がターゲットオブジェクトの中に埋没した状態となっている。そのような状態を表示部40上の表示画面を介して見たユーザは違和感を覚えるので、仮想環境内への没入感が損なわれる。そのため、インタラクティブオブジェクトは、その一部がターゲットオブジェクト内に埋没した状態ではなく、ターゲットオブジェクト上に接触もしくは近接した状態でターゲットオブジェクト上に配置されることが好ましい。
【0057】
図9の(a)には、ターゲットオブジェクトであるテーブル3の上の保管場所にインタラクティブオブジェクトであるドライバ2が配置された状態が示されている。(a)に示す状態では、ドライバ2の下側部分がテーブル3上面よりも下に進入した状態でユーザによる把持が開放されたことに伴い、ドライバ2がテーブル3の上面に埋没したように位置している。
【0058】
ステップS21において、ターゲットオブジェクトの排他BBとその上に配置されたインタラクティブオブジェクトの排他BBとが互いに重なっていると判定された場合は、処理がステップS22に進み、両者の排他BBが互いに重なっていないと判定された場合は、処理が終了する。
【0059】
次にステップS22において、制御部50は、ターゲットオブジェクトの排他バウンディングボックスに排他バウンディングボックスが互いに重なっていると判定されたインタラクティブオブジェクトの高さを所定の高さだけ高くする。
【0060】
図9の(b)には、ターゲットオブジェクトであるテーブル3の上の保管場所に配置されたインタラクティブオブジェクトであるドライバ2の高さを高くする様子が示されている。ステップS22において、インタラクティブオブジェクトであるドライバ2の高さがy方向(図示上方向)に所定の高さだけ高くされる。所定の高さは、例えば、表示部40の1画素分の高さとしてもよい。なお、図9では、図示の明瞭のため各バウンディングボックスの境界面がインタラクティブオブジェクトやターゲットオブジェクトの外周面から離れた状態で示されているが、インタラクティブオブジェクトやターゲットオブジェクトのバウンディングボックスは境界面がそれらの外周面と接するように設定されていてもよい。
【0061】
ステップS22においてインタラクティブオブジェクトが所定高さだけ高くされると、処理はステップS21に戻り、排他BB同士の重なりの有無が再び判定される。ステップS21及びS22の処理は、ターゲットオブジェクトの排他BBとその上に配置されたインタラクティブオブジェクトの排他BBとが互いに重なっていない(ステップS21の「N」)と判定されるまで繰り返され、その後に処理が終了する。ターゲットオブジェクトの排他BBとその上に配置されたインタラクティブオブジェクトの排他BBとが互いに重なっていないと判定されたとき、インタラクティブオブジェクト(図示例ではドライバ2)がターゲットオブジェクト(図示例ではテーブル3)の上面に載置されているように表示される。換言すれば、インタラクティブオブジェクトの一部がターゲットオブジェクト内に進入した状態ではなく、また、インタラクティブオブジェクトがターゲットオブジェクトの上に浮いた状態でもない。これにより、インタラクティブオブジェクトがインタラクティブオブジェクトに埋没したように干渉する位置で解放された場合であっても、インタラクティブオブジェクトがターゲットオブジェクトの上に置かれたように見える高さまでインタラクティブオブジェクトの高さを補正することができる。
【0062】
このように、上述した本実施形態の仮想環境提供装置100によれば、仮想環境提供装置100により実行される上述した第1の作業トレーニングシナリオに従って、テーブルの上にドライバ等の各種工具や部品を所定の保管場所に所定の順序で配置するトレーニングをユーザに提供することができる。
【0063】
特に、制御部50は、操作情報に基づいて、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置する。インタラクティブオブジェクトの排他バウンディングボックスがターゲットオブジェクトの近接判定バウンディングボックス内に進入するまでユーザが仮想環境内でインタラクティブオブジェクトを移動させると、インタラクティブオブジェクトの把持を解放してインタラクティブオブジェクトをターゲットオブジェクトの上に配置することを促すメッセージが表示部40に表示されるため、ユーザはそのメッセージに従って種々のインタラクティブオブジェクトをターゲットオブジェクトの上に配置することで、それらのインタラクティブオブジェクトをターゲットオブジェクトの上に配置する一連の手順に関するトレーニングを行うことができる。
【0064】
さらに、インタラクティブオブジェクトをターゲットオブジェクトの上に置く動作をユーザが実行すると、インタラクティブオブジェクトが定義情報に従う保管場所及び保管姿勢(向き)に自動的に配置されるので、ユーザが仮想環境内でインタラクティブオブジェクトの位置及び向きを調整する操作を行う必要を省くことができる。インタラクティブオブジェクトをターゲットオブジェクトの上に配置するトレーニングにおいては、どの順序でインタラクティブオブジェクトをターゲットオブジェクトの上に配置していくかをトレーニングすることが目的であるとすると、個々のインタラクティブオブジェクトの保管場所及び保管姿勢を自動的に定めるようにすることで、トレーニング目的に対して本質ではない位置決め動作等をユーザに行わせることを無くし、トレーニングへのユーザの集中力や没入感を高めることができる。
【0065】
なお、上記ではインタラクティブオブジェクトの保管場所が定義情報で予め定義された例について説明したが、これに代えて、インタラクティブオブジェクトの保管場所は定義情報において定義せず、制御部50はユーザによるインタラクティブオブジェクトの把持が開放されたときのインタラクティブオブジェクトの位置から最も近い保管場所にインタラクティブオブジェクトを配置するようにしてもよい。
【0066】
また、同じオブジェクトタイプのインタラクティブオブジェクトが配置される保管場所に空きがあるか否かに応じて、空きがある場合にはその保管場所にインタラクティブオブジェクトを配置し、空きがない場合にはその次の保管場所にインタラクティブオブジェクトを配置するように構成されているため、インタラクティブオブジェクトをターゲットオブジェクトの適切な位置に自動的に調整することができる。
【0067】
上記ではインタラクティブオブジェクトの各種工具・部品として、ドライバ、レンチ、ネジを例示的に示したが、その他にも、ナット等の他の各種工具・部品を追加することができる。
【0068】
なお、上述した例では、制御部50は、ターゲットオブジェクトの排他バウンディングボックスとその上に配置されたインタラクティブオブジェクトの排他バウンディングボックスとが互いに重なっている場合に、両者のBBの重なりが解消されるまでインタラクティブオブジェクトの高さを上げる処理(ステップS21,S22)を含むことを説明した。この処理によれば、インタラクティブオブジェクトが配置されたときにインタラクティブオブジェクトとターゲットオブジェクトとの重なりが生じていた場合に、そのような重なりを解消して、ターゲットオブジェクトの中にインタラクティブオブジェクトの一部が埋没して見えるような不自然さを無くすことが可能となる。
【0069】
本実施形態では、制御部50は、ターゲットオブジェクトの排他バウンディングボックスとその上に配置されたインタラクティブオブジェクトの排他バウンディングボックスとが互いに重なっていない場合に、インタラクティブオブジェクトを解放できない状態としてもよい。また、制御部50は、インタラクティブオブジェクトを解放できなる状態とし、その状態でインタラクティブが解放されると、両者のBBが近接するまでインタラクティブオブジェクトの高さを下げる処理を行ってもよい。これにより、インタラクティブオブジェクトが配置されたときにインタラクティブオブジェクトがターゲットオブジェクトの上方に宙に浮いた状態となっていた場合に、インタラクティブオブジェクトがターゲットオブジェクトの上に置かれたように見えるまでターゲットオブジェクトに対するインタラクティブオブジェクトの高さを自動的に調整することが可能となる。
[変形例]
【0070】
上述した実施形態では各々のインタラクティブオブジェクトを個別に把持して移動と配置の操作を行うことを例示的に説明したが、複数のインタラクティブオブジェクトの移動及び配置をグループ単位で行うようにしてもよい。この場合は、ユーザによるインタラクティブオブジェクトの把持動作として、例えば、2つの指でインタラクティブオブジェクトを摘まむように2つの指を閉じたことが認識された場合は個々のインタラクティブオブジェクトを移動させ、5つの指でインタラクティブオブジェクトを掴むように5つの指を閉じたことが認識された場合は複数のインタラクティブオブジェクトをグループ単位で移動させるように、行動認識プログラム72が制御部50を制御するよう構成してもよい。
【0071】
図10は、テーブル3の保管場所Bに設定された制限エリア内に合計15個のインタラクティブオブジェクト(ネジ4)が配置されている状態を示している。本変形例では、図11に示すように、制御部50が保管場所Bの制限エリアを5つの指で掴むように5つの指を閉じたことを認識すると、グループが掴まれたことをユーザに知らせるために、制限エリアの周囲にグループハイライトGHの表示が行われるか、テキストメッセージM2の表示が行われるか、それら両方の表示が行われ、複数のインタラクティブオブジェクトをまとめて移動できる状態であることをユーザが通知される。
【0072】
これにより、保管場所Bの制限エリアに配置された15個のネジ4がグループとして一括してユーザに把持された状態となり、その把持状態を維持することで、それらのネジ4を他の保管場所(たとえば、隣の保管場所A)にひとまとめに移動させることができる。
(第2の作業トレーニングシナリオ)
【0073】
第2の作業トレーニングシナリオは、インタラクティブオブジェクトとしてのラベルをターゲットオブジェクトとしてのラックの各々のシェルフの前面上に貼り付け、ラベルを貼り付けたシェルフをテーブルの上に移動させる作業のトレーニングに関する。ユーザが仮想環境提供装置100の操作部10を操作し、支援コンテンツ管理データベース82に格納された複数の支援コンテンツの中から実行する支援コンテンツとして第2の作業トレーニングを選択することにより、仮想環境提供装置100で第2の作業トレーニングに関する支援コンテンツが開始される。第2の作業トレーニングはインタラクティブオブジェクト及びターゲットオブジェクトが第1のトレーニングと異なるものの、仮想環境提供装置100により実行される一連の処理は図2を参照して上記に説明した処理と概ね同様であるので、各処理についての詳しい説明は省略する。
【0074】
図12は、仮想環境内において、インタラクティブオブジェクトとしてのラベル1~3がテーブルの上に置かれ、ターゲットオブジェクトとしての目標機器TEであるラックの各シェルフにラベル目標位置A~Cが設定されていることを示している。
【0075】
第2の作業トレーニングにおいては、仮想環境内においてそれらのラベル1~3を把持して各シェルフにラベル目標位置A~Cに移動させ、ラベルの把持を解放することで、各シェルフに設定されたラベル目標位置A~Cにラベル1~3が貼り付けられる。ラベルを各シェルフに貼り付けるための動作は各ラベルについて行われる。各ラベルを貼り付ける先のシェルフおよび各ラベルを貼り付ける順序は予め定められていてもよい。
【0076】
各ラベル1~3には排他バウンディングボックス(不図示)が設定され、目標機器(ラック)TEの前面には近接判定バウンディングボックスBBが設定されている。これにより、第2のトレーニングにおいても、図2のステップS12及びS13を参照して上述したように、ラベル1~3が排他BBが目標機器(ラック)TEの近接判定BB内に進入したかどうかが判定され、進入したと判定されると、把持しているラベルの解放を促すメッセージが表示部40に表示され(図2のステップS13)、ラベルの把持が解放されると、図13に示すように各シェルフのラベル目標位置にラベルがそれぞれ配置される(図2のステップS16~S20)。
【0077】
その後、各ラベル1~3の排他BBとラックTEの各シェルフの排他BBとの重なりの有無の判定が成され(図2のステップS21)、重なりがある場合には重なりが解消されるまでシェルフに対するラベルの高さ(図12に示すz軸方向)を上げる処理が実行される(図2のステップS22)。
【0078】
これにより、制御部50は、各ラベルとそれらが貼り付けられた各シェルフとの関連付けを確立し、図14に示すように、ユーザがラックTEからあるシェルフを引き出してテーブルの上に置く動作を行ったときに、そのシェルフに貼り付けられたラベルも、そのシェルフのラベル目標位置に貼り付けられた状態を維持しながらシェルフと共に移動させる。
【0079】
なお、第2の作業トレーニングシナリオでは、上記のようにインタラクティブオブジェクトとしてのラベルをターゲットオブジェクトとしてのラックの各々のシェルフの前面上に貼り付け、ラベルを貼り付けたシェルフをテーブルの上に移動させる作業を例示して説明したが、作業対象のオブジェクトはこれに限られない。例えば、ターゲットオブジェクトとしての交換対象のバッテリにインタラクティブオブジェクトとしてのラベルを貼り付け、ラベルを貼り付けたバッテリを移動させるような作業内容としてもよい。
(第3の作業トレーニングシナリオ)
【0080】
第3の作業トレーニングシナリオは、ターゲットオブジェクトとしてのテーブルの上に配置されたインタラクティブオブジェクトとしての各種工具・部品を所定の順序で取り、ターゲットオブジェクトの所定の配置位置に移動させる作業のトレーニングに関する。ユーザが仮想環境提供装置100の操作部10を操作し、支援コンテンツ管理データベース82に格納された複数の支援コンテンツの中から実行する支援コンテンツとして第3の作業トレーニングを選択することにより、仮想環境提供装置100で第3の作業トレーニングに関する支援コンテンツが開始される。
【0081】
図15は、本実施形態に係る仮想環境提供装置100による動作の他の例を説明するためのフローチャートである。図16は、表示部40に表示される仮想環境を示す概念図である。
【0082】
仮想環境提供装置100で第3の作業トレーニングに関する支援コンテンツが開始されると、制御部50は、第3の作業トレーニングの支援コンテンツに関連するインタラクティブオブジェクト及びターゲットオブジェクトに関する定義情報を空間情報管理データベース81から読み込む(ステップS31)。このステップS31における処理は、図2を参照して説明したステップS11における処理と同様であるので、ここではその詳細な説明は省略する。
【0083】
制御部50は、空間情報管理データベース81から読み込んだそれらのインタラクティブオブジェクト及びターゲットオブジェクトを三次元の仮想環境内に配置し、表示部40にその仮想環境を表示する。仮想環境内におけるそれらのオブジェクトの初期配置位置は、例えば支援コンテンツ制御プログラム74によって定められる。ユーザの実空間内のユーザの手の位置及び手指の動作がセンサ部30によって検出され、さらに制御部50が実行する行動認識プログラム72によって認識される。ユーザが表示部40に表示された仮想環境内のインタラクティブオブジェクトを掴んで移動させる動作を行うと、ユーザの手の動作に応じて、制御部50が実行する支援コンテンツ制御プログラム74によってそのインタラクティブオブジェクトが仮想環境内で移動する。
【0084】
次にステップS32において、制御部50は、仮想環境内のインタラクティブオブジェクトの排他バウンディングボックスとターゲットオブジェクトの近接判定バウンディングボックスとの距離を測定する。
【0085】
次にステップS33において、制御部50は、センサ部30によって検出された実空間内のユーザの手の位置及び手指の動作に関する情報を、制御部50が実行する行動認識プログラム72によって取得する。ステップS15においては、特に、ユーザの手のジェスチャに関する情報(例えば、5本の指が閉じた状態、2本の指が閉じた状態、5本の指が「パー」の形に開いた状態等)を取得する。制御部50は、例えば、5本の指が閉じた状態、あるいは2本の指が閉じた状態を示すジェスチャに関する情報を取得したときは、仮想環境内のユーザの手の位置に近接するインタラクティブオブジェクトを把持したものと判定する。
【0086】
次にステップS34において、制御部50は、ユーザによって仮想環境内で把持されたインタラクティブオブジェクトが支援コンテンツにおいて定められた所定の順序で把持されたかどうかを判定する。
【0087】
ステップS34において、インタラクティブオブジェクトが所定の順序で把持されていない(N)と制御部50が判定した場合は、処理はステップS35に進む。一方、インタラクティブオブジェクトが所定の順序で把持された(Y)と制御部50が判定した場合は、処理はステップS36に進む。
【0088】
ステップS34においてインタラクティブオブジェクトが所定の順序で把持されていない(N)と制御部50が判定した場合は、ステップS35において、制御部50は、把持されたインタラクティブオブジェクトが所定の順序に従って把持されるべき正しいインタラクティブオブジェクトではない旨の警告メッセージを表示部40に表示させる。
【0089】
図17は表示部40に警告メッセージM3が表示された状態を示している。図17に示す例では、仮想環境内のインタラクティブオブジェクトであるネジ4a,4bのうち、把持順序として最初にネジ4aを掴み、次にネジ4bを掴むことが支援コンテンツにおいて定められているところ、最初にネジ4bが掴まれている。そのため、正しいインタラクティブオブジェクトではない旨の警告メッセージM3として、「掴んだネジは正しくありません。取付順序を守ってください。」のテキストメッセージが表示部40の画面に表示されている。
【0090】
ユーザは、警告メッセージを受けて、掴んでいるインタラクティブオブジェクトを掴む前の位置に戻す動作を行い(図18参照)、続いて、正しい順序で掴むべきインタラクティブオブジェクト(上記の例では、ネジ4a)を掴む動作を行う。その後、処理はステップS34に戻り、正しい順序で把持すべきインタラクティブオブジェクトが把持されるまでステップS34,S35の処理が繰り返される。
【0091】
インタラクティブオブジェクトが所定の順序で把持された(Y)と制御部50が判定した場合は、ステップS36において、制御部50は、把持されたインタラクティブオブジェクトが所定の順序に従って把持されるべき正しいインタラクティブオブジェクトである旨の確認メッセージを表示部40に表示させる。
【0092】
図19は表示部40に確認メッセージM4が表示された状態を示している。図19に示す例では、4a,4bのうち最初につかむべきネジ4aが掴まれている。そのため、正しいインタラクティブオブジェクトである旨の確認メッセージM4として、「正しいネジを掴みました。作業を進めてください。」のテキストメッセージが表示部40の画面に表示されている。
【0093】
ユーザは、確認メッセージを受けて、掴んでいるインタラクティブオブジェクトをターゲットオブジェクトの所定の保管場所に移動させ、その保管場所でインタラクティブオブジェクトの把持を解放する動作を行う。
【0094】
次にステップS37において、制御部50は、ステップS36において行われたインタラクティブオブジェクトの把持を解放する動作が、そのインタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内で行われたか否かを判定する。
【0095】
制御部50は、インタラクティブオブジェクトがターゲットオブジェクトの近接判定BB内に位置しており、かつ、ユーザの手のジェスチャに関する情報として、例えば、5本の指が「パー」の形に開いた状態を取得したときは、ターゲットオブジェクトの近接判定BB内でそのインタラクティブオブジェクトの解放が行われた(Y)と判定し、処理はステップS38に進む。
【0096】
一方、制御部50は、上記条件を満たしていない場合は、ターゲットオブジェクトの近接判定BB内でそのインタラクティブオブジェクトの解放が行われていない(N)と判定し、処理はステップS36に戻り、ターゲットオブジェクトの近接判定BB内でそのインタラクティブオブジェクトの解放が行われた(Y)と判定するまでステップS36,S37の処理を繰り返す。
【0097】
ステップS37においてターゲットオブジェクトの近接判定BB内でインタラクティブオブジェクトの解放が行われた(Y)と判定されると、次に制御部50は、把持が開放されたインタラクティブオブジェクトを、例えば、ターゲットオブジェクトの保管場所のうち、開放動作が行われた時のインタラクティブオブジェクトの位置から最も近い保管場所に配置する処理を行い(ステップS38)、次に、ターゲットオブジェクトの保管場所のうち、ステップS38でインタラクティブオブジェクトが配置された保管場所の次の保管場所を、次に把持されて移動されるインタラクティブオブジェクトの保管場所として割り当て(ステップS39)、処理が終了する。
【0098】
本例では、図19等に示すように、ネジ4A,4bの保管場所Bには、同じタイプのインタラクティブオブジェクトを配置できる範囲を表す制限エリアが定義されており、その制限エリアに所定数の同じタイプのインタラクティブオブジェクトが互いの排他バウンディングボックスが重複しないように配置される。ステップS39では、配置動作が行われたインタラクティブオブジェクト(ネジ)の次のインタラクティブオブジェクト(ネジ)の保管場所として、保管場所Bの制限エリアにおける他の場所が割り当てられる。
【0099】
なお、第2の作業トレーニングシナリオでは、上記のようにターゲットオブジェクトとしてのテーブルの上に配置されたインタラクティブオブジェクトとしての各種工具・部品を所定の順序で取り、ターゲットオブジェクトの所定の配置位置に移動させる作業を例示して説明したが、作業対象のオブジェクトはこれに限られない。例えば、ターゲットオブジェクトとしてのバッテリに取り付けられているインタラクティブオブジェクトとしてのネジを一度取り外し、元の位置に再度ネジを取り付けるような作業内容としてもよい。
【0100】
本実施形態においていくつかのトレーニングシナリオを参照して上記に説明したように、本開示の一態様によれば、三次元の仮想環境における仮想的なオブジェクトの配置を制御する仮想環境提供装置であって、記憶部と制御部とセンサ部と表示部とを有し、記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、ターゲットオブジェクト上のインタラクティブオブジェクトが配置される保管場所と、インタラクティブオブジェクトおよびターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶し、センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得し、制御部は、操作情報に基づいて、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置し、表示部は、仮想環境におけるターゲットオブジェクトとインタラクティブオブジェクトとを表示する、仮想環境提供装置が提供される。
【0101】
このように構成された本開示の仮想環境提供装置によれば、インタラクティブオブジェクトとターゲットオブジェクトとを定義し、それらの相互の位置関係に基づいてインタラクティブオブジェクトのターゲットオブジェクトに対する相対的な配置を調整するので、ユーザが移動させるオブジェクトと移動しないオブジェクトとがある仮想環境においてユーザが操作するオブジェクトの適切な配置が可能になる。
【0102】
本開示の仮想環境提供装置はさらに、保管場所は、ターゲットオブジェクト上に複数定義され、制御部は、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内で解放されると、インタラクティブオブジェクトを、ターゲットオブジェクトにおける他のインタラクティブオブジェクトが配置されていない保管場所に配置するように構成されていてもよい。これにより、インタラクティブオブジェクトの位置をターゲットオブジェクトの適切な位置に自動的に調整することができる。
【0103】
本開示の仮想環境提供装置はさらに、インタラクティブオブジェクトにはタイプが定義されており、保管場所には、インタラクティブオブジェクトを配置できる範囲を表す制限エリアが定義されており、制御部は、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内で解放されると、インタラクティブオブジェクトを、インタラクティブオブジェクトと同じタイプのインタラクティブオブジェクトが配置されている保管場所の制限エリア内に互いの排他バウンディングボックスが重複しないように配置するように構成されていてもよい。これにより、小さい物品のように1つ1つ分散して配置することが不自然な物品を模したオブジェクトをひとまとめにして配置することが可能になる。
【0104】
本開示の仮想環境提供装置はさらに、制御部は、インタラクティブオブジェクトがターゲットオブジェクトの近接判定バウンディングボックス内に入ったことをユーザに通知する通知情報を、表示部に表示させるように構成されていてもよい。これにより、インタラクティブオブジェクトをターゲットオブジェクトに配置できる状態であることをユーザに通知し、操作を支援することができる。
【0105】
本開示の仮想環境提供装置はさらに、インタラクティブオブジェクトには、ネジの仮想オブジェクトとネジまわしの仮想オブジェクトとが含まれ、ターゲットオブジェクトには、ネジおよびネジまわしを配置可能なテーブルの仮想オブジェクトが含まれるように構成されていてもよい。
【0106】
本開示の仮想環境提供装置はさらに、制御部は、操作情報に基づいて、ユーザが、制限エリア内に複数のインタラクティブオブジェクトが配置されている配置位置に対して所定の把持の操作をしたことを検出すると、仮想環境において、複数のインタラクティブオブジェクトをグループにまとめて移動可能な状態とするように構成されていてもよく、さらには、制御部は、操作情報に基づいて、ユーザが複数のインタラクティブオブジェクトのグループをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、複数のインタラクティブオブジェクトを最も近い保管場所の制限エリア内に配置するように構成されていてもよい。これにより、ひとまとめに配置されている複数のインタラクティブオブジェクトをまとめて操作することが可能となる。
【0107】
本開示の仮想環境提供装置はさらに、制御部は、操作情報に基づいて、ユーザが、制限エリア内に複数のインタラクティブオブジェクトが配置されている配置位置に対して所定の把持の操作をしたことを検出すると、仮想環境において、複数のインタラクティブオブジェクトをグループにまとめて移動可能であることを通知する通知情報を、表示部に表示させるように構成されていてもよい。これにより、複数のインタラクティブオブジェクトをまとめて移動できる状態であることをユーザに通知し、操作を支援することができる。
【0108】
本開示の仮想環境提供装置はさらに、制御部は、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出したときにインタラクティブオブジェクトの排他バウンディングボックスとターゲットオブジェクトの排他バウンディングボックスとが重複している場合に、重複が解消されるまでターゲットオブジェクトに対するインタラクティブオブジェクトの高さを高くするように構成されていてもよい。これにより、インタラクティブオブジェクトがインタラクティブオブジェクトに埋没したように干渉する位置で解放された場合であっても、インタラクティブオブジェクトがターゲットオブジェクトの上に置かれたように見える高さまでインタラクティブオブジェクトの高さを補正することができる。
【0109】
本開示の他の態様によれば、記憶部と制御部とセンサ部と表示部とを有する仮想環境提供装置により実行される、三次元の仮想環境における仮想的なオブジェクトの配置を制御する方法であって、記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、ターゲットオブジェクト上のインタラクティブオブジェクトが配置される保管場所と、インタラクティブオブジェクトおよびターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶しており、センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得するように構成され、表示部は、仮想環境におけるターゲットオブジェクトとインタラクティブオブジェクトとを表示するように構成されており、方法は、制御部が、操作情報に基づいて、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置すること、を含む、方法が提供される。
【0110】
本開示のさらに他の態様によれば、記憶部と制御部とセンサ部と表示部とを有するコンピュータに、三次元の仮想環境における仮想的なオブジェクトの配置制御を実行させるプログラムであって、記憶部は、仮想環境においてユーザが移動可能なインタラクティブオブジェクトと、インタラクティブオブジェクトの配置先となるターゲットオブジェクトと、ターゲットオブジェクト上のインタラクティブオブジェクトが配置される保管場所と、インタラクティブオブジェクトおよびターゲットオブジェクトのそれぞれの互いに重複できない仮想的な境界を表す排他バウンディングボックスと、ターゲットオブジェクトに対してインタラクティブオブジェクトが近接したことを判定するための近接判定バウンディングボックスと、を定義したデータベースを記憶しており、センサ部は、ユーザによるオブジェクトに対する操作に関する操作情報を取得するように構成され、表示部は、仮想環境におけるターゲットオブジェクトとインタラクティブオブジェクトとを表示するように構成されており、プログラムは、制御部に、操作情報に基づいて、ユーザがインタラクティブオブジェクトをターゲットオブジェクトの近接判定バウンディングボックス内で解放する操作をしたことを検出すると、仮想環境において、インタラクティブオブジェクトの排他バウンディングボックスと他のオブジェクトの排他バウンディングボックスとが重複しないように、インタラクティブオブジェクトをターゲットオブジェクトの保管場所に配置すること、を実行させる、プログラムが提供される。
【0111】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【0112】
100…仮想環境提供装置、10…操作部、20…通信部、30…センサ部、40…表示部、50…制御部、60…出力部、70…メモリ、80…ストレージ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19