(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025010692
(43)【公開日】2025-01-23
(54)【発明の名称】シミュレーション装置、シミュレーション方法、およびプログラム
(51)【国際特許分類】
G09B 9/00 20060101AFI20250116BHJP
G06F 21/32 20130101ALI20250116BHJP
G09B 9/08 20060101ALI20250116BHJP
【FI】
G09B9/00 Z
G06F21/32
G09B9/08
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023112819
(22)【出願日】2023-07-10
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】野澤 善明
(72)【発明者】
【氏名】嶋田 大祐
(72)【発明者】
【氏名】柳生 拓哉
(72)【発明者】
【氏名】山中 信一
(57)【要約】
【課題】 制御対象に対するアクセス制限を保持しつつ、制御対象の操縦訓練あるいは制御対象の遠隔操作を行うことを可能にする。
【解決手段】
取得部は、操縦者が行った操縦操作のデータを取得し、動作部は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させ、模擬部は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする。
【選択図】
図3
【特許請求の範囲】
【請求項1】
操縦者が行った操縦操作のデータを取得する取得手段と、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる動作手段と、
前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする模擬手段と
を備えたシミュレーション装置。
【請求項2】
前記操縦者が行った前記操縦操作のデータを取得している間、前記操縦者の本人確認を行う確認手段をさらに備えた
ことを特徴とする請求項1に記載のシミュレーション装置。
【請求項3】
前記操縦者が行った前記操縦操作のデータを取得している間、前記確認手段は、前記操縦者の生体情報を用いて、前記操縦者の本人確認を繰り返し行う
ことを特徴とする請求項2に記載のシミュレーション装置。
【請求項4】
前記確認手段は、前記操縦者の本人確認の結果を用いて、前記アバターの真正性を認証する
ことを特徴とする請求項2または3に記載のシミュレーション装置。
【請求項5】
前記制御対象の制御をシミュレーションした結果に基づいて、現実世界において、前記制御対象を制御する制御手段をさらに備えた
ことを特徴とする請求項1に記載のシミュレーション装置。
【請求項6】
前記制御対象の制御をシミュレーションした結果に基づいて、前記操縦者が行った前記操縦操作の異常を判定する判定手段をさらに備えた
ことを特徴とする請求項5に記載のシミュレーション装置。
【請求項7】
コンピュータが、
操縦者が行った操縦操作のデータを取得し、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させ、
前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする
シミュレーション方法。
【請求項8】
前記コンピュータは、
前記操縦者が行った前記操縦操作のデータを取得している間、前記操縦者の本人確認を行う
ことを特徴とする請求項7に記載のシミュレーション方法。
【請求項9】
操縦者が行った操縦操作のデータを取得する処理と、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる処理と、
前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする処理と
をコンピュータに実行させるためのプログラム。
【請求項10】
前記操縦者が行った操縦操作のデータを取得している間、前記操縦者の本人確認を行う処理
を前記コンピュータに実行させる、請求項9に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、シミュレーション装置、シミュレーション方法、およびプログラムに関し、特に、制御対象の制御をシミュレーションするシミュレーション装置、シミュレーション方法、およびプログラムに関する。
【背景技術】
【0002】
関連する技術では、人物や物品などのオブジェクトからセンシングデータを取得し、センシングデータから特徴量を抽出し、抽出した特徴量と、所定のパラメータ(例えば、オブジェクトの位置、オブジェクトの属性、時間、環境)から、アバターやアイコンを生成する。
【0003】
例えば、特許文献1には、仮想空間(仮想世界)において仮想カメラから見える画像を生成するシミュレーションシステムの具体例が説明されている。その一例は、仮想カメラから見える画像をHMD(Head Mount Display)に表示するバーチャルリアリティを実現する。他の一例は、ユーザが仮想空間でレースカーを操縦して楽しむレースゲームを提供する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
初心者が制御対象の訓練を行うことや、操縦者が制御対象を遠隔操作することが必要とされる場合は多い。しかしながら、制御対象によっては、機密上の要件等により、管理者権限を有する許可された人以外は、制御対象を直接的に制御することが認められていない場合がある。
【0006】
上記のような場合、関連する技術は、制御対象の操縦訓練あるいは制御対象の遠隔操作を行う機会を操縦者に提供することができない。
【0007】
本開示は、上記の課題に鑑みてなされたものであり、その目的は、制御対象に対するアクセス制限を保持しつつ、制御対象の操縦訓練あるいは制御対象の遠隔操作を行うことを可能にすることにある。
【課題を解決するための手段】
【0008】
本開示の一態様に係るシミュレーション装置は、操縦者が行った操縦操作のデータを取得する取得手段と、取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる動作手段と、前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする模擬手段とを備えている。
【0009】
本開示の一態様に係るシミュレーション方法では、コンピュータが、操縦者が行った操縦操作のデータを取得し、取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させ、前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする。
【0010】
本開示の一態様に係るプログラムは、操縦者が行った操縦操作のデータを取得する処理と、取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる処理と、前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする処理とをコンピュータに実行させる。
【発明の効果】
【0011】
本開示の一態様によれば、制御対象に対するアクセス制限を保持しつつ、操縦訓練あるいは制御対象の遠隔操作を行うことを可能にすることができる。
【図面の簡単な説明】
【0012】
【
図1】一実施形態に係るシミュレーション装置を備えたシステムの一例を概略的に示す図である。
【
図2】一実施形態に係るシミュレーション装置による制御対象の制御のシミュレーションの流れを説明する図である。
【
図3】一実施形態に係るシミュレーション装置の構成を示すブロック図である。
【
図4】一実施形態に係るシミュレーション装置の動作を示すフローチャートである。
【
図5】一実施形態に係るシミュレーション装置の構成を示すブロック図である。
【
図6】一実施形態に係るシミュレーション装置の動作を示すフローチャートである。
【
図7】一実施形態に係るシミュレーション装置の確認部が行う処理を示す図である。
【
図8】一実施形態に係るシミュレーション装置の構成を示すブロック図である。
【
図9】一実施形態に係るシミュレーション装置の動作を示すフローチャートである。
【
図10】一実施形態の一変形例に係るシミュレーション装置の構成を示すブロック図である。
【
図11】一実施形態の一変形例に係るシミュレーション装置の動作を示すフローチャートである。
【
図12】一実施形態に係るシミュレーション装置のハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0013】
(システム1の一例)
図1を参照して、後述する実施形態1~3に係るシミュレーション装置10,20,30,30Aのいずれかを備えたシステム1について説明する。
図1は、システム1の一例を概略的に示す図である。
【0014】
図1に示すように、システム1は、シミュレーション装置10(20,30、30A)、HMD(Head Mount Display)100、操縦装置200、および制御対象300を備えている。なお、HMD(Head Mount Display)100、操縦装置200、および制御対象300は、いずれも、1または複数あってよい。システム1には、操縦者が使用するアバター、および、操縦者の本人確認に用いられる情報(例えば、生体情報)が、操縦者の識別情報と紐付けられて、
図1に示すデータベース400に予め登録されている。
【0015】
ここでは、「シミュレーション装置10(20,30,30A)」は、「シミュレーション装置10,20,30,30Aのいずれか」を表す。
【0016】
HMD100は、操縦者の頭部に装着されて使用される表示デバイスである。一例では、HMD100は、モニタおよびセンサを装備している。HMD100のモニタには、シミュレーション装置10(20,30,30A)が生成したVR(Virtual Realty)映像が表示される。HMD100のセンサは、操縦者の生体情報や特徴量(例えば、虹彩画像、音声データ、加速度データ)を含むセンシングデータを検知する。
【0017】
HMD100は、任意の通信ネットワークNW(
図1)を介して、シミュレーション装置10(20,30,30A)へセンシングデータを送信する。通信ネットワークNWは、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、モバイルネットワーク、およびインターネットの任意の組み合わせである。
【0018】
操縦装置200は、操縦者がHMD100のモニタに表示されたVR映像を視認しつつ、操縦操作を行うために使用される。例えば、操縦装置200は、操縦桿、サイドスティック、操縦舵、およびペダルのうちの少なくとも1つである。操縦装置200は、操縦者の入力(操縦操作)を信号データに変換する。
【0019】
操縦装置200は、任意の通信ネットワークNW(
図1)を介して、シミュレーション装置10(20,30,30A)へ信号データを送信する。
【0020】
制御対象300は、例えば、操縦訓練を必要とする特殊機械または特殊モビリティや、産業用ロボットである。制御対象300は、任意の通信ネットワークNW(
図1)を介して、シミュレーション装置10(20,30,30A)から、制御信号を受信する。
【0021】
シミュレーション装置10(20,30,30A)は、操縦装置200から、操縦者が行った操縦操作のデータを取得する。シミュレーション装置10(20,30,30A)は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。シミュレーション装置10(20,30,30A)は、操縦者と対応付けられたアバターの動作を介して、制御対象300の制御をシミュレーションする。
【0022】
さらに、シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、現実世界において、制御対象300を実際に制御してもよい。この場合、シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、制御対象300を制御するための制御信号を生成する。そして、シミュレーション装置10(20,30,30A)は、任意の通信ネットワークNW(
図1)を介して、制御対象300へ制御信号を送信する。
【0023】
また、シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、操縦操作により制御対象300がどのように制御されるかを表現したVR映像データを生成して、任意の通信ネットワークNW(
図1)を介して、HMD100へVR映像データを送信してもよい。例えば、VR映像データは、仮想世界におけるバーチャルな制御対象300の動きを表現する。
【0024】
(制御対象の制御のシミュレーションの流れ)
図2を参照して、シミュレーション装置10(20,30,30A)による制御対象300の制御のシミュレーションの流れを説明する。ここで説明するシミュレーションの流れは単なる一例である。
【0025】
図2に示すように、まず、HMD100を装着した操縦者が、操縦桿やハンドルなどの操縦装置200を用いて、アバターを動かすための操縦操作を行う。操縦装置200は、操縦者による入力(操縦操作)データを、シミュレーション装置10(20,30,30A)へ送信する。なお、操縦者は、制御対象300を直接的に制御することを許可されていない。そのため、操縦装置200は、操縦者による入力(操縦操作)データを、制御対象300へ送信することはできない。
【0026】
シミュレーション装置10(20,30,30A)は、操縦装置200から受信した入力データに基づいて、操縦者と対応付けられたアバターを動かす。仮想世界において、操縦者と対応付けられたアバターは、操縦者の操縦操作を模倣する。アバターは、バーチャルな制御対象300に対して、操縦操作を行う。
【0027】
また、シミュレーション装置10(20,30,30A)は、操縦者による入力(操縦操作)データに基づいて、制御対象300の制御のシミュレーションを実行する。例えば、シミュレーション装置10(20,30,30A)は、物理シミュレーションにより、操縦者(あるいはアバター)の操縦操作により、制御対象300がどのように動作するかを、仮想世界において再現する。
【0028】
シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、HMD100のモニタに表示させるためのVR映像データを生成する。シミュレーション装置10(20,30,30A)は、任意の通信ネットワークNW(
図1)を介して、生成したVR映像データを、HMD100へ送信する。
【0029】
シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、現実世界において、制御対象300を実際に制御してもよい。この場合、シミュレーション装置10(20,30,30A)は、アバターの操縦操作に基づいて、制御対象300を制御するための制御信号を生成する。そして、シミュレーション装置10(20,30,30A)は、生成した制御信号を、任意の通信ネットワークNW(
図1)を介して、制御対象300へ送信する。
【0030】
あるいは、シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、操縦者が行った操縦操作の異常を判定してもよい。ここでの異常とは、予め定められた手順とは異なる操縦操作や、制御対象300の動作を不安定にする操縦操作を意味する。
【0031】
操縦者が行った操縦操作に異常があると判定された場合、シミュレーション装置10(20,30,30A)は、当該異常を矯正した上で、現実世界において、制御対象300を実際に制御してもよい。あるいは、シミュレーション装置10(20,30,30A)は、制御対象300の制御をシミュレーションした結果に基づいて、制御対象300を実際に制御することを中止してもよい。
【0032】
操縦者が制御対象300の操縦操作を訓練している場合、シミュレーション装置10(20,30,30A)は、操縦者が行った操縦操作に異常があったことを、操縦者あるいは指導教官に通知してもよい。一例では、シミュレーション装置10(20,30,30A)は、操縦者が行った操縦操作に異常があったことを表すアラートを、HMD100に表示する。さらに、シミュレーション装置10(20,30,30A)は、操縦操作が異常であると判定した理由の説明を、HMD100のモニタに表示してもよい。
【0033】
このようにして、システム1は、権限のない操縦者が、制御対象300に直接的にアクセスすることを制限したまま、操縦者が制御対象300の操縦訓練あるいは制御対象300の遠隔操作を行うことを可能にすることができる。
【0034】
シミュレーション装置10(20,30,30A)の構成および動作を、後述する実施形態1~3において説明する。
【0035】
〔実施形態1〕
図3から
図4を参照して、実施形態1を説明する。
【0036】
(シミュレーション装置10の構成)
図3は、本実施形態1に係るシミュレーション装置10の構成を示すブロック図である。
図3に示すように、シミュレーション装置10は、取得部11、動作部12、および模擬部13を備えている。
【0037】
取得部11は、操縦者が行った操縦操作のデータを取得する。取得部11は、取得手段の一例である。
【0038】
例えば、取得部11は、操縦装置200(
図1)から、操縦者による入力(操縦操作)データを受信する。取得部11は、操縦装置200から受信した入力データを、動作部12へ出力する。
【0039】
動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。動作部12は、動作手段の一例である。
【0040】
例えば、動作部12は、取得部11から、操縦者が行った操縦操作を示す入力データを受信する。動作部12は、操縦者の操縦操作と、アバターの動作とを対応付けたテーブル(図示せず)等を参照することによって、受信した入力データを、アバターの動きを表す情報に変換する。
【0041】
そして、動作部12は、得られた情報に基づいて、仮想世界において、アバターを動作させる。このときのアバターの動作は、操縦者が行った操縦操作と対応する。例えば、操縦者が操縦桿(操縦装置200の一例である)を動かす操縦操作を行った場合、アバターも、仮想世界において、操縦者と同じ操縦操作に相当する動作を行う。
【0042】
動作部12は、模擬部13へ、アバターの動作を示す情報を出力する。
【0043】
模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする。模擬部13は、模擬手段の一例である。
【0044】
例えば、模擬部13は、動作部12から、操縦者と対応付けられたアバターの動作を示す情報を出力する。模擬部13は、予め準備されたシミュレーションプログラムにしたがって、アバターがそのように動作したとき、制御対象300の制御がどのようになるかを計算する。そして、模擬部13は、その計算結果、すなわち、現実世界における制御対象300の制御をシミュレーションした結果を出力する。
【0045】
一例では、模擬部13は、制御対象300の制御をシミュレーションした結果に基づいて、操縦操作により制御対象300がどのように制御されるかを表現したVR映像データを生する。そして、模擬部13は、任意の通信ネットワークNW(
図1)を介して、HMD100へ、生成したVR映像データを送信する。
【0046】
(シミュレーション装置10の動作)
図4は、本実施形態1に係るシミュレーション装置10の動作を示すフローチャートである。
図4に示すように、取得部11は、操縦装置200(
図1)から、操縦者が行った操縦操作のデータを取得する(S101)。取得部11は、操縦装置200から受信した入力データを、動作部12へ出力する。
【0047】
次に、動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる(S102)。動作部12は、模擬部13へ、アバターの動作を示す情報を出力する。
【0048】
模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする(S103)。
【0049】
その後、模擬部13は、制御対象300の制御をシミュレーションした結果を、図示しない外部機器または記憶装置、あるいはその他の装置へ出力する。例えば、模擬部13は、制御対象300の制御をシミュレーションした結果に基づいて、制御対象300の動きを表す映像を、HMD100に表示する。
【0050】
以上で、本実施形態1に係るシミュレーション装置10の動作は終了する。
【0051】
(本実施形態の効果)
本実施形態の構成によれば、取得部11は、操縦者が行った操縦操作のデータを取得する。動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする。
【0052】
したがって、操縦者による操縦操作に基づいて、操縦者と対応付けられたアバターが動き、アバターがバーチャルの制御対象300を操縦操作する。バーチャルの制御対象300は、制御対象300の制御をシミュレーションした結果に基づいて制御される。操縦者は、現実世界の制御対象300に対して、直接的にアクセスする必要はない。
【0053】
これにより、制御対象300に対するアクセス制限を保持しつつ、制御対象300の操縦訓練あるいは制御対象300の遠隔操作を行うことを可能にすることができる。
【0054】
〔実施形態2〕
図5から
図7を参照して、実施形態2を説明する。本実施形態2では、操縦者が行った操縦操作のデータを取得している間、周期的に、または不定期に、操縦者の本人確認を行う構成について説明する。
【0055】
本実施形態2では、前記実施形態1と共通する構成要素に対して、前記実施形態1と同じ符号を付して、その説明を省略する。
【0056】
(シミュレーション装置20の構成)
図5は、本実施形態2に係るシミュレーション装置20の構成を示すブロック図である。
図5に示すように、シミュレーション装置20は、取得部11、動作部12、および模擬部13を備えている。シミュレーション装置20は、確認部24をさらに備えている。
【0057】
確認部24は、操縦者が行った操縦操作のデータ(入力データ)を取得部11が取得している間、操縦者の本人確認を行う。確認部24は、確認手段の一例である。さらに、確認部24は、取得部11が操縦操作のデータ(入力データ)を取得する前に、操縦者の本人確認を行ってもよい。
【0058】
例えば、確認部24は、HMD100(
図1)から、HMD100のインカメラで操縦者の虹彩を撮影することによって得られた虹彩画像を取得する。そして、確認部24は、操縦者の虹彩画像を用いて、操縦者の本人確認を行う。一例では、シミュレーション装置20が提供する操縦訓練シナリオにしたがって、操縦者が操縦操作を行っている間、確認部24は、操縦訓練シナリオの一部として、操縦者の生体情報を繰り返し取得して、生体情報を取得するたびに、操縦者の本人確認を行ってもよい。これにより、操縦訓練が実施されている間、操縦者の本人確認を何度も行うことで、操縦者以外が操縦訓練を行うことを防止でき、しかも、操縦の没入感が損なわれることがないという利点がある。
【0059】
なお、確認部24は、虹彩画像以外の生体情報(例えば、操縦者の顔、指紋、静脈、または耳音響の特徴量)を用いて、操縦者の本人確認を行うこともできる。例えば、確認部24は、操縦者のジェスチャを撮影して得られた映像(生体情報の一例である)を用いて、操縦者の本人確認を行ってもよい。上述のシステム1(
図1)は、操縦者のジェスチャを撮影するための空間把握装置(例えば、カメラ)を備えていてもよい。あるいは、確認部24は、操縦者の発声を録音して得られた声紋(生体情報の一例である)を用いて、操縦者の本人確認を行ってもよい。
【0060】
さらに、確認部24は、操縦者の本人確認の結果を用いて、アバターの真正性を認証する。具体的には、確認部24は、操縦者の本人確認に成功した場合、操縦者と対応付けられているアバターのトラスト認証の有効期限を更新する。
【0061】
一方、確認部24が操縦者の本人確認に失敗した場合、操縦者と対応付けられているアバターのトラスト認証を失効させる。アバターのトラスト認証の有効期限前に限り、操縦者とアバターとは対応付けられている。アバターのトラスト認証の有効期限が失効した場合、操縦者とアバターとの対応付は失われる。操縦者は、アバターを動かすことができなくなる。
【0062】
確認部24は、操縦者の本人確認をした結果を、動作部12へ出力する。
【0063】
動作部12は、取得部11から、操縦者が行った操縦操作を示す入力データを受信する。さらに、動作部12は、確認部24から、操縦者の本人確認をした結果を受信する。
【0064】
アバターのトラスト認証が更新された場合、動作部12は、取得部11から受信した操縦操作を示す入力データに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。
【0065】
一方、アバターのトラスト認証が失効された場合、動作部12は、仮想世界において、操縦者にアバターを動作させないようにする。この場合、確認部24は、操縦者の生体情報あるいはその他の情報を用いて、操縦者の本人確認を再試行してもよい。
【0066】
一例では、操縦者の虹彩画像に基づいて、本人確認に失敗した場合、確認部24は、操縦者に対して、大きく目を開くように依頼する。その後、確認部24は、操縦者の虹彩を撮影して得られた虹彩画像を、HMD100から再度取得する。そして、確認部24は、撮り直しされた虹彩画像を使って、操縦者の本人確認を再試行する。なお、操縦者の生体情報を再度取得するための操縦者に対する依頼も、シミュレーション装置20が提供する操縦訓練シナリオに実装されていてもよい。
【0067】
他の一例では、確認部24は、指差し動作などのジェスチャを操縦者に行わせることによって、動作の様態に関する特徴を取得し、取得した動作の様態に関する特徴を本人確認に用いてもよい。さらに他の一例では、操縦者の虹彩画像に基づいて、本人確認に失敗した場合、確認部24は、虹彩画像以外の生体情報(例えば、声紋)を用いて、本人確認を再試行してもよい。
【0068】
(シミュレーション装置20の動作)
図6~
図7を参照して、本実施形態2に係るシミュレーション装置20の動作を説明する。
図6は、本実施形態2に係るシミュレーション装置20の動作を示すフローチャートである。
【0069】
図6に示すように、取得部11は、操縦装置200(
図1)から、操縦者が行った操縦操作のデータを取得する(S201)。取得部11は、操縦装置200から受信した入力データを、動作部12へ出力する。
【0070】
次に、確認部24は、操縦者が行った操縦操作のデータを取得している間、操縦者の本人確認を行う(S202)。
【0071】
図7に示すように、ステップS204において、確認部24は、操縦者の生体情報を取得する(S2021)。
【0072】
次に、確認部24は、操縦者の生体情報と、データベース400(
図1)に登録された生体情報とを照合する(S2022)。
【0073】
確認部24は、操縦者の本人確認に成功したかどうかを判定する(S2023)。さらに、確認部24は、操縦者の本人確認の結果を用いて、アバターの真正性を認証する。
【0074】
確認部24が操縦者の本人確認に成功した場合(S2023でYes)、確認部24は、操縦者と対応付けられているアバターのトラスト認証の有効期限を更新する(S2024A)。
【0075】
一方、確認部24が操縦者の本人確認に失敗した場合(S2023でNo)、操縦者と対応付けられているアバターのトラスト認証を失効させる(S2024B)。アバターのトラスト認証が失効した場合、操縦者とアバターとの対応付は失われる。その結果、操縦者は、アバターを動かすことができなくなる。
【0076】
確認部24は、操縦者の本人確認の結果を、動作部12へ出力する。フローは、
図6のステップS203へ進む。
【0077】
ステップS202において、操縦者と対応付けられているアバターのトラスト認証が更新された場合(S203でYes)、動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる(S204)。動作部12は、模擬部13へ、アバターの動作を示す情報を出力する。
【0078】
模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする(S205)。
【0079】
その後、模擬部13は、制御対象300の制御をシミュレーションした結果を、図示しない外部機器または記憶装置、あるいはその他の装置へ出力する。
【0080】
一方、ステップS202において、操縦者と対応付けられているアバターのトラスト認証が失効された場合(S203でNo)、動作部12は、仮想世界において、操縦者にアバターを動作させないようにする。そして、フローは終了する。
【0081】
以上で、本実施形態2に係るシミュレーション装置20の動作は終了する。
【0082】
(本実施形態の効果)
本実施形態の構成によれば、取得部11は、操縦者が行った操縦操作のデータを取得する。動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする。
【0083】
したがって、操縦者による操縦操作に基づいて、操縦者と対応付けられたアバターが動き、アバターがバーチャルの制御対象300を操縦操作する。バーチャルの制御対象300は、制御対象300の制御をシミュレーションした結果に基づいて制御される。操縦者は、現実世界の制御対象300に対して、直接的にアクセスする必要はない。
【0084】
これにより、制御対象300に対するアクセス制限を保持しつつ、制御対象300の操縦訓練あるいは制御対象300の遠隔操作を行うことを可能にすることができる。
【0085】
さらに、本実施形態の構成によれば、確認部24は、操縦者が行った操縦操作のデータを取得している間、操縦者の本人確認を行う。確認部24が操縦者の本人確認に成功した場合、動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。これにより、悪意の第三者が、操縦者になりすまして、アバターを動かすことを防止することができる。さらに、本実施形態の構成によれば、操縦者が操縦操作を行っている間、操縦訓練シナリオの一部として、操縦者の本人確認を行うので、操縦者の本人確認のために、操縦操作の没入感が損なわれないという利点がある。
【0086】
〔実施形態3〕
図8から
図11を参照して、実施形態3を説明する。本実施形態3では、制御対象300(
図1)の制御をシミュレーションした結果に基づいて、制御対象300を制御する構成について説明する。
【0087】
本実施形態3では、前記実施形態1と共通する構成要素に対して、前記実施形態1と同じ符号を付して、その説明を省略する。
【0088】
(シミュレーション装置30の構成)
図8は、本実施形態3に係るシミュレーション装置30の構成を示すブロック図である。
図8に示すように、シミュレーション装置30は、取得部11、動作部12、および模擬部13を備えている。シミュレーション装置30は、制御部34をさらに備えている。
【0089】
制御部34は、制御対象300(
図1)の制御をシミュレーションした結果に基づいて、現実世界において、制御対象300を制御する。制御部34は、制御手段の一例である。
【0090】
例えば、制御部34は、模擬部13から、制御対象300の制御をシミュレーションした結果を受信する。制御部34は、模擬部13によるシミュレーションの結果に基づいて、制御対象300を実際に制御する。
【0091】
一例では、制御部34は、シミュレーションされた制御対象300の制御をトレースするように、現実世界において、制御対象300を制御する。ここでの制御とは、制御対象300に機能を発揮させたり、制御対象300が備えた駆動部を作動させたりすることである。
【0092】
制御部34は、制御対象300の制御をシミュレーションした結果に基づいて、制御対象300を制御するための制御信号を生成する。そして、制御部34は、任意の通信ネットワークNW(
図1)を介して、制御対象300へ制御信号を送信する。
【0093】
(シミュレーション装置30の動作)
図9は、本実施形態3に係るシミュレーション装置30の動作を示すフローチャートである。
図9に示すように、取得部11は、操縦装置200(
図1)から、操縦者が行った操縦操作のデータを取得する(S301)。取得部11は、操縦装置200から受信した入力データを、動作部12へ出力する。
【0094】
次に、動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる(S302)。動作部12は、模擬部13へ、アバターの動作を示す情報を出力する。
【0095】
模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする(S303)。
【0096】
その後、模擬部13は、制御対象300の制御をシミュレーションした結果を、図示しない外部機器または記憶装置、あるいはその他の装置へ出力する。
【0097】
また、模擬部13は、制御部34へ、制御対象300の制御をシミュレーションした結果を出力する。
【0098】
制御部34は、制御対象300の制御をシミュレーションした結果に基づいて、現実世界において、制御対象300を制御する(S304)。
【0099】
以上で、本実施形態3に係るシミュレーション装置30の動作は終了する。
【0100】
〔変形例〕
以下、本実施形態3の一変形例を説明する。
【0101】
(シミュレーション装置30Aの構成)
図10は、本実施形態3の一変形例に係るシミュレーション装置30Aの構成を示すブロック図である。
図10に示すように、シミュレーション装置30Aは、取得部11、動作部12、および模擬部13を備えている。シミュレーション装置30Aは、制御部34および判定部35をさらに備えている。
【0102】
判定部35は、制御対象300(
図1)の制御をシミュレーションした結果に基づいて、操縦者が行った操縦操作の異常を判定する。判定部35は、判定手段の一例である。ここでの異常とは、予め定められた手順とは異なる操縦操作や、制御対象300の動作を不安定にする操縦操作を意味する。
【0103】
例えば、判定部35は、模擬部13から、制御対象300の制御をシミュレーションした結果を受信する。判定部35は、シミュレーションの結果のとおりに、現実世界において、制御対象300を実際に制御させた場合、制御対象300の動作が不安定になるかどうかを判定する。例えば、制御対象300が航空機であり、制御対象300の高度が急降下する可能性があるならば、判定部35は、制御対象300の動作が不安定になるので、操縦者が行った操縦操作に異常があると判定する。
【0104】
操縦者が行った操縦操作に異常があると判定された場合、判定部35は、当該異常を訂正してもよい。あるいは、判定部35は、制御対象300の制御をシミュレーションした結果に基づいて、制御対象300を実際に制御することを中止してもよい。
【0105】
操縦者が制御対象300の操縦操作を訓練している場合、判定部35は、操縦者が行った操縦操作に異常があったことを、操縦者あるいは指導教官に通知してもよい。一例では、判定部35は、操縦者が行った操縦操作に異常があったことを表すアラートを、HMD100に表示する。さらに、判定部35は、操縦操作が異常であると判定した理由の説明を、HMD100に表示してもよい。
【0106】
(シミュレーション装置30Aの動作)
図10は、本実施形態3の一変形例に係るシミュレーション装置30Aの動作を示すフローチャートである。
図10に示すように、取得部11は、操縦装置200(
図1)から、操縦者が行った操縦操作のデータを取得する(S301‘)。取得部11は、操縦装置200から受信した入力データを、動作部12へ出力する。
【0107】
次に、動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる(S302‘)。動作部12は、模擬部13へ、アバターの動作を示す情報を出力する。
【0108】
模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする(S303‘)。
【0109】
判定部35は、制御対象300の制御をシミュレーションした結果に基づいて、操縦者が行った操縦操作の異常を検出する(S304‘)。
【0110】
操縦者が行った操縦操作に異常がある場合(S305‘でYes)、フローは終了する。
【0111】
一方、操縦者が行った操縦操作に異常がない場合(S305‘でNo)、模擬部13は、制御対象300の制御をシミュレーションした結果を、図示しない外部機器または記憶装置、あるいはその他の装置へ出力する。
【0112】
また、模擬部13は、制御部34へ、制御対象300の制御をシミュレーションした結果を出力する。
【0113】
制御部34は、制御対象300の制御をシミュレーションした結果に基づいて、現実世界において、制御対象300を制御する(S306‘)。
【0114】
以上で、本実施形態3の一変形例に係るシミュレーション装置30Aの動作は終了する。
【0115】
(本実施形態の効果)
本実施形態の構成によれば、取得部11は、操縦者が行った操縦操作のデータを取得する。動作部12は、取得した操縦操作のデータに基づいて、仮想世界において、操縦者と対応付けられたアバターを動作させる。模擬部13は、操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象300の制御をシミュレーションする。
【0116】
したがって、操縦者による操縦操作に基づいて、操縦者と対応付けられたアバターが動き、アバターがバーチャルの制御対象300を操縦操作する。バーチャルの制御対象300は、制御対象300の制御をシミュレーションした結果に基づいて制御される。操縦者は、現実世界の制御対象300に対して、直接的にアクセスする必要はない。
【0117】
これにより、制御対象300に対するアクセス制限を保持しつつ、制御対象300の操縦訓練あるいは制御対象300の遠隔操作を行うことを可能にすることができる。
【0118】
さらに、本実施形態の構成によれば、制御部34は、制御対象300の制御をシミュレーションした結果に基づいて、現実世界において、制御対象を制御する。、これにより、制御対象300に対するアクセス制限を保持しつつ、制御対象300の操縦訓練あるいは制御対象300の遠隔操作を行うことを可能にすることができる。
【0119】
(ハードウェア構成の一例)
前記実施形態1~3で説明したシミュレーション装置10,20,30,30Aの各構成要素は、機能単位のブロックを示している。これらの構成要素の一部又は全部は、例えば
図11に示すような情報処理装置により実現される。
図11は、情報処理装置のハードウェア構成の一例を示すブロック図である。
【0120】
図11に示すように、コンピュータ110は、CPU(Central Processing Unit)111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。なお、コンピュータ110は、CPU111に加えて、又はCPU111に代えて、GPU(Graphics Processing Unit)、又はFPGA(Field-Programmable Gate Array)を備えていてもよい。
【0121】
CPU111は、記憶装置113に格納された、本実施形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置である。また、本実施形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであってもよい。
【0122】
また、記憶装置113の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。
【0123】
データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
【0124】
また、記録媒体120の具体例としては、CF(Compact Flash(登録商標))及びSD(Secure Digital)などの汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)などの磁気記録媒体、又はCD-ROM(Compact Disk Read Only Memory)などの光学記録媒体があげられる。
【0125】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0126】
(付記1)
操縦者が行った操縦操作のデータを取得する取得手段と、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる動作手段と、
前記操縦者と対応付けられたアバターの動作を介して、現実世界における制御対象の制御をシミュレーションする模擬手段と
を備えたシミュレーション装置。
【0127】
(付記2)
前記操縦者が行った前記操縦操作のデータを取得している間、前記操縦者の本人確認を行う確認手段をさらに備えた
ことを特徴とする付記1に記載のシミュレーション装置。
【0128】
(付記3)
前記操縦者が行った前記操縦操作のデータを取得している間、前記確認手段は、前記操縦者の生体情報を用いて、前記操縦者の本人確認を繰り返し行う
ことを特徴とする付記2に記載のシミュレーション装置。
【0129】
(付記4)
前記確認手段は、前記操縦者の本人確認の結果を用いて、前記アバターの真正性を認証する
ことを特徴とする付記2または3に記載のシミュレーション装置。
【0130】
(付記5)
前記制御対象の制御をシミュレーションした結果に基づいて、現実世界において、前記制御対象を制御する制御手段をさらに備えた
ことを特徴とする付記1に記載のシミュレーション装置。
【0131】
(付記6)
前記制御対象の制御をシミュレーションした結果に基づいて、前記操縦者が行った前記操縦操作の異常を判定する判定手段をさらに備えた
ことを特徴とする付記5に記載のシミュレーション装置。
【0132】
(付記7)
コンピュータが、
操縦者が行った操縦操作のデータを取得し、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させ、
前記操縦者と対応付けられたアバターの動作を介して、制御対象の制御をシミュレーションする
シミュレーション方法。
【0133】
(付記8)
前記コンピュータは、
前記操縦者が行った操縦操作のデータを取得している間、前記操縦者の本人確認を行う
ことを特徴とする付記7に記載のシミュレーション方法。
【0134】
(付記9)
前記コンピュータが、前記操縦者が行った前記操縦操作のデータを取得している間、前記操縦者の生体情報を用いて、前記操縦者の本人確認を繰り返し行う
ことを特徴とする付記8に記載のシミュレーション方法。
【0135】
(付記10)
前記コンピュータが、前記操縦者の本人確認の結果を用いて、前記アバターの真正性を認証する
ことを特徴とする付記8または9に記載のシミュレーション方法。
【0136】
(付記11)
前記コンピュータが、前記制御対象の制御をシミュレーションした結果に基づいて、現実世界において、前記制御対象を制御する
ことを特徴とする付記7に記載のシミュレーション方法。
【0137】
(付記12)
前記コンピュータが、前記制御対象の制御をシミュレーションした結果に基づいて、前記操縦者が行った前記操縦操作の異常を判定する
ことを特徴とする付記11に記載のシミュレーション方法。
【0138】
(付記13)
操縦者が行った操縦操作のデータを取得する処理と、
取得した前記操縦操作のデータに基づいて、仮想世界において、前記操縦者と対応付けられたアバターを動作させる処理と、
前記操縦者と対応付けられたアバターの動作を介して、制御対象の制御をシミュレーションする処理と
をコンピュータに実行させるためのプログラム。
【0139】
(付記14)
前記操縦者が行った操縦操作のデータを取得している間、前記操縦者の本人確認を行い、前記操縦者の本人確認の結果を使うことにより、前記アバターのトラスト認証を行う
を前記コンピュータに実行させる、付記13に記載のプログラム。
【0140】
(付記15)
前記操縦者が行った前記操縦操作のデータを取得している間、前記操縦者の生体情報を用いて、前記操縦者の本人確認を繰り返し行う処理
を前記コンピュータに実行させる、付記14に記載のプログラム。
【0141】
(付記16)
前記操縦者の本人確認の結果を用いて、前記アバターの真正性を認証する処理
を前記コンピュータに実行させる、付記14または15に記載のプログラム。
【0142】
(付記17)
前記制御対象の制御をシミュレーションした結果に基づいて、現実世界において、前記制御対象を制御する処理
を前記コンピュータに実行させる、付記13に記載のプログラム。
【0143】
(付記18)
前記制御対象の制御をシミュレーションした結果に基づいて、前記操縦者が行った前記操縦操作の異常を判定する処理
を前記コンピュータに実行させる、付記17に記載のプログラム。
【0144】
以上、いくつかの実施の形態を参照して本開示を説明した。しかしながら、本開示は上記実施の形態に限定されない。各実施の形態は、適宜他の実施の形態と組み合わせることができる。また、上記実施形態の構成や詳細には、本開示のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【0145】
本開示は、例えば、制御対象の制御をシミュレーションすることに利用することができる。
【符号の説明】
【0146】
10 シミュレーション装置
11 取得部
12 動作部
13 模擬部
20 シミュレーション装置
24 確認部
30 シミュレーション装置
34 制御部
35 判定部
100 HMD
200 操縦装置
300 制御対象