(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】インタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20231024BHJP
G05B 13/02 20060101ALI20231024BHJP
【FI】
B25J13/00 Z
G05B13/02 J
(21)【出願番号】P 2019042052
(22)【出願日】2019-03-07
【審査請求日】2022-03-03
(73)【特許権者】
【識別番号】512155478
【氏名又は名称】学校法人沖縄科学技術大学院大学学園
(73)【特許権者】
【識別番号】304020177
【氏名又は名称】国立大学法人山口大学
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】安部 武士
(72)【発明者】
【氏名】浅井 義之
【審査官】國武 史帆
(56)【参考文献】
【文献】特開2006-236035(JP,A)
【文献】特開平06-051811(JP,A)
【文献】特開2005-092640(JP,A)
【文献】国際公開第2018/197308(WO,A1)
【文献】国際公開第2017/138164(WO,A1)
【文献】特開2008-185029(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 1/00 - 7/04
11/00 - 13/04
17/00 - 17/02
19/04 - 19/05
21/00
(57)【特許請求の範囲】
【請求項1】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段
と、
シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段と、
を備え、
前記制御部は、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動の
前記シミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成手段と、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行する駆動制御手段と、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、
を備えたことを特徴とするインタラクティブシミュレーションシステム。
【請求項2】
前記シミュレーション実行手段は、
前記モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いて前記シミュレーションを実行し、前記シミュレーション結果を取
得することを特徴とする請求項1に記載のインタラクティブシミュレーションシステム。
【請求項3】
前記シミュレーション実行手段は、
更に、他のモデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、他のシミュレーション結果を取得し、
前記モデル更新手段は、
前記他のシミュレーション結果に基づいて、前記モデルを更新することを特徴とする請求項1
または2に記載のインタラクティブシミュレーションシステム。
【請求項4】
前記モデルは、
数理モデル、物理モデル、記号モデル、および/または、論理モデルであることを特徴とする請求項1から
3のいずれか一つに記載のインタラクティブシミュレーションシステム。
【請求項5】
前記数理モデルは、
微分方程式モデルであり、
前記シミュレーション実行手段は、
前記微分方程式モデルに対する数値計算により、前記アクチュエータ搭載デバイスの挙動の前記シミュレーションを実行し、前記シミュレーション結果を取得することを特徴とする請求項
4に記載のインタラクティブシミュレーションシステム。
【請求項6】
前記駆動制御指示生成手段は、
前記シミュレーション結果
、および、前記連携データに基づいて、対象とする前記アクチュエータ搭載デバイスのデバイス識別子、当該アクチュエータ搭載デバイスの前記センサのセンサ識別子、設定時刻、および/または、前記アクチュエータにて変換される運動量を含む前記駆動制御指示を生成し、
前記センサ検出値取得手段は、
検出を実行した前記アクチュエータ搭載デバイスの前記デバイス識別子、検出を実行した前記センサの前記センサ識別子、および/または、検出時刻を含む前記センサ検出値を取得することを特徴とする請求項
1から5のいずれか一つに記載のインタラクティブシミュレーションシステム。
【請求項7】
前記駆動制御指示生成手段は、
前記シミュレーション結果
、および、前記連携データに基づいて、駆動制御プログラムを含む前記駆動制御指示を生成することを特徴とする請求項
1から5のいずれか一つに記載のインタラクティブシミュレーションシステム。
【請求項8】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段
と、
シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段と、
を備え、
前記制御部は、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動の
前記シミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成手段と、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行する駆動制御手段と、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、
を備えたことを特徴とするシミュレータ。
【請求項9】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムに実行させるためのインタラクティブシミュレーション方法であって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段
と、
シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段と、
を備え、
前記制御部で実行させる、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動の
前記シミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成ステップと、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を含むことを特徴とするインタラクティブシミュレーション方法。
【請求項10】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーション方法であって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段
と、
シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段と、
を備え、
前記制御部で実行させる、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動の前記シミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成ステップと、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を含むことを特徴とするインタラクティブシミュレーション方法。
【請求項11】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーションプログラムであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段
と、
シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段と、
を備え、
前記制御部において、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動の
前記シミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成ステップと、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を実行させるためのインタラクティブシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、インタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラムに関する。
【背景技術】
【0002】
特許文献1記載のシミュレーション環境においては、モータやセンサ等のリアル装置と、リアル装置に類似する実験室装置と、仮想のリアル装置または実験室装置であるバーチャル装置とからパフォーマンスデータを収集し、装置間の相互作用をシミュレーションすることで、リアルタイムに仮想モデルの更新を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の従来のシミュレーション環境においては、装置間の相互作用をシミュレーションするものであって、取替可能なモデルのシミュレーションを実行するとともに、シミュレーション結果をもとにデバイス制御を行うことができなかったという課題があった。
【0005】
本発明は、上記問題点に鑑みてなされたものであって、インシリコによる数理モデル等のモデルのシミュレーションと、実世界のロボットまたは実験装置等の機器とをネットワーク経由で双方向に連携させるシミュレーション・フレームワークを提供することができるインタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明に係るインタラクティブシミュレーションシステムは、アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部は、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、を備えたことを特徴とする。
【0007】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記シミュレーション実行手段は、前記モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いて前記シミュレーションを実行し、前記シミュレーション結果を取得し、前記制御部は、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成手段、を更に備え、前記駆動制御手段は、前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行することを特徴とする。
【0008】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記記憶部は、前記シミュレーションを実行するためのシミュレータAPIと、前記アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する連携記憶手段、を更に備え、前記駆動制御指示生成手段は、前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの前記駆動制御指示を生成することを特徴とする。
【0009】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記シミュレーション実行手段は、更に、他のモデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、他のシミュレーション結果を取得し、前記モデル更新手段は、前記他のシミュレーション結果に基づいて、前記モデルを更新することを特徴とする。
【0010】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記モデルは、数理モデル、物理モデル、記号モデル、および/または、論理モデルであることを特徴とする。
【0011】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記数理モデルは、微分方程式モデルであり、前記シミュレーション実行手段は、前記微分方程式モデルに対する数値計算により、前記アクチュエータ搭載デバイスの挙動の前記シミュレーションを実行し、前記シミュレーション結果を取得することを特徴とする。
【0012】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記駆動制御指示生成手段は、前記シミュレーション結果に基づいて、対象とする前記アクチュエータ搭載デバイスのデバイス識別子、当該アクチュエータ搭載デバイスの前記センサのセンサ識別子、設定時刻、および/または、前記アクチュエータにて変換される運動量を含む前記駆動制御指示を生成し、前記センサ検出値取得手段は、検出を実行した前記アクチュエータ搭載デバイスの前記デバイス識別子、検出を実行した前記センサの前記センサ識別子、および/または、検出時刻を含む前記センサ検出値を取得することを特徴とする。
【0013】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記駆動制御指示生成手段は、前記シミュレーション結果に基づいて、駆動制御プログラムを含む前記駆動制御指示を生成することを特徴とする。
【0014】
また、本発明に係るシミュレータにおいて、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部は、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、を備えたことを特徴とする。
【0015】
また、本発明に係るインタラクティブシミュレーション方法は、アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムに実行させるためのインタラクティブシミュレーション方法であって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部で実行させる、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を含むことを特徴とする。
【0016】
また、本発明に係るインタラクティブシミュレーション方法は、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーション方法であって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部で実行させる、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を含むことを特徴とする。
【0017】
また、本発明に係るインタラクティブシミュレーションプログラムは、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーションプログラムであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部において、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を実行させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、任意のダイナミカルモデルを用いた予測的機器制御が可能となるという効果を奏する。すなわち、本発明によれば、任意のモデルのシミュレーションと実世界の機器とを直接リアルタイムに連携させることができるため、モデルのシミュレーションの応用範囲が広がるという効果を奏する。また、本発明によれば、モデルベースの予測的ロボット制御、または、リアルタイム実験制御などへの応用が可能となるという効果を奏する。また、本発明によれば、シミュレーションを計算機上で単に実行するだけではなく、シミュレーションと、ロボットの制御プロセスまたは実験機器の制御プロセス等の外部プロセスとが相互に数値的に影響を与えることができる環境を提供できるという効果を奏する。また、本発明によれば、外部機器がシミュレータにネットワークを介してアクセスし、シミュレーション中のモデルに含まれる変数の値を時々刻々取得することができ、この値を使ってその外部プロセスの状態を更新制御することができるだけでなく、外部プロセスがシミュレーション中の変数に値をセットすることができるため、シミュレータにおいてシミュレーション中のモデルの状態に外部プロセスの状態を時々刻々反映させることができるという効果を奏する。また、本発明によれば、シミュレータと外部機器との間をネットワーク経由で連携させるためのAPIの要件を定義することで、このAPIを通じて、外部機器が値のget/setを行うだけではなく、シミュレータとの連携のOn/Offを制御することができ、フレキシブル且つリアルタイムな連携動作を可能とすることができるという効果を奏する。また、本発明によれば、これまで蓄積された詳細な数理モデルを汎用的にデバイス制御へつなげることができるという効果を奏する。すなわち、本発明によれば、微分方程式等を用いたダイナミカルシステムモデルであればよいため、リアルタイム予測的フィードバックに基づく高精度な生理学的・生物学的実験を実施する際の制御システム、ロボットを環境に応じてリアルタイム制御する際の制御システム、中枢パターン生成器(CPG)モデルによるロボット歩行制御システム、生理学的薬物速度論(PBPK)モデルに基づく特定臓器内の遊離薬物濃度シミュレーションと連携した投薬制御システム、詳細シグナル伝達モデルに基づく特定のタンパク質生合成過程のフィードバック制御システム、または、モデルニューロンと生体ニューロンとのハイブリッドニューラルネットワークの情報処理システム等に利用することができるという効果を奏する。また、本発明によれば、モデル化された対象の未来の状態を推定するための技術であり、且つ、計算機中でのみ実行する、すなわち、計算機中で閉じたものであったシミュレーションのデータを、直接機器制御信号とすることができることで、近未来を推定した推定結果に基づいて予測的に機器を制御することができるという効果を奏する。また、本発明によれば、汎用的なシミュレータでありながら、デバイス制御をできる仕組みを備えており、デバイスからのデータをリアルタイムに取得しつつシミュレーションを実行することができるという効果を奏する。
【図面の簡単な説明】
【0019】
【
図1】
図1は、従来の汎用シミュレータの一例を示す図である。
【
図2】
図2は、本実施形態におけるインタラクティブシミュレーションシステムの一例を示す図である。
【
図3】
図3は、本実施形態におけるインタラクティブシミュレーションシステムの構成の一例を示すブロック図である。
【
図4】
図4は、本実施形態におけるインタラクティブシミュレーションシステムの処理の一例を示すフローチャートである。
【
図5】
図5は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【
図6】
図6は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【
図7】
図7は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【
図8】
図8は、本実施形態におけるデバイス制御の一例を示す図である。
【
図9】
図9は、本実施形態におけるデバイス制御の一例を示す図である。
【
図10】
図10は、本実施形態におけるデバイス制御の一例を示す図である。
【
図11】
図11は、本実施形態におけるデバイス制御の一例を示す図である。
【
図12】
図12は、本実施形態におけるデバイス制御の一例を示す図である。
【
図13】
図13は、本実施形態におけるセンサの一例を示す図である。
【発明を実施するための形態】
【0020】
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
【0021】
[1.概要]
まず、
図1および
図2を参照して、本発明の概要を説明する。
図1は、従来の汎用シミュレータの一例を示す図である。
図2は、本実施形態におけるインタラクティブシミュレーションシステムの一例を示す図である。
【0022】
図1に示すように、従来の汎用シミュレータにおいては、交換可能なモデルを取り替え、モデルを数値積分等することで様々な機能をシミュレーションすることが可能であったが、シミュレーションが計算機内で閉じていたため、シミュレーションに基づいて、デバイス制御等をすることができなかった。また、従来のデバイス制御には、埋め込み型の計算システム(例えば、歩行ロボット制御のための神経回路制御システム等)が使用され、埋め込まれた機能のみシミュレーション可能であった。
【0023】
一方、
図2に示すように、本実施形態のシミュレータにおいては、交換可能なモデルを取り替え、モデルを数値積分等することで様々な機能のシミュレーションを実行し、交換可能なデバイスとデータ通信を行い、デバイスからネットワークを介して送信されるデータをシミュレーション中にリアルタイムに受け付け、そのデータに基づいて、モデルのパラメータを変更しシミュレーションを継続し、シミュレーション中のモデルの状態をネットワークを介してデバイスに送信することができるようにしている。このように、本実施形態においては、デバイスを取り替えることができるため、各デバイスと各モデルによるシミュレーションとの間の通信をそれぞれ開発する必要がない。
【0024】
[2.インタラクティブシミュレーションシステムの構成]
本実施形態に係るデバイス(アクチュエータ搭載デバイス)100、および、シミュレータ200を通信可能に接続したインタラクティブシミュレーションシステムの構成の一例について、
図3を参照して説明する。
図3は、本実施形態におけるインタラクティブシミュレーションシステムの構成の一例を示すブロック図である。
【0025】
[デバイス100の構成]
図3において、デバイス100は、ロボット、または、実験装置等を含む、アクチュエータ108を介して様々な物理的な動作を行う機器等であってもよい。
【0026】
デバイス100は、制御部102と記憶部106とアクチュエータ108とセンサ110とを備えており、デバイス100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0027】
デバイス100は、他の装置とネットワーク300を介して通信可能に接続し、他の装置とデータを通信する機能を有する。ここで、ネットワーク300は、デバイス100と他の装置とを相互に通信可能に接続する機能を有し、例えば、インターネット、Bluetooth(登録商標)、赤外線、および/または、Wi-Fi(登録商標)を含むLAN(Local Area Network)等である。
【0028】
アクチュエータ108は、入力エネルギーまたは入力電気信号を、物理的運動に変換する、機械および電気回路を備えた、ソレノイド、電動機、サーボモータもしくは動力シリンダ等の圧力装置、ならびに/または、往復駆動装置等の変換機等である。
【0029】
センサ110は、距離、重量、時間、位置、変位、温度、湿度、熱、音、化学物質、温度、光、赤外線、紫外線、放射線、電場、電流、電圧、電力、ニオイ、濃度、色、圧力、荷重、硬度、流量、振動、磁気、速度、回転数、角速度、および/または、加速度等の物理量を収集し、収集したデータを、機械または人間が扱うことができる別媒体の信号に置き換える機能を有していてもよい。
【0030】
記憶部106には、各種のデータベース、テーブル、および/または、ファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、および/または、SSD(Solid State Drive)等を用いることができる。記憶部106は、センサ110にて検出されたセンサ検出値、および/または、ネットワーク300を介して受信されたデータ等を記憶していてもよい。
【0031】
制御部102は、デバイス100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。例えば、制御部102は、アクチュエータ108の駆動(制御)、センサ110にて検出されたセンサ検出値の取得および格納、ならびに/または、ネットワーク300を介したデータ送受信等の各処理を実行してもよい。
【0032】
[シミュレータ200の構成]
図3において、シミュレータ200は、パーソナルコンピュータ、または、ワークステーション等の情報処理装置であってもよい。シミュレータ200は、制御部202と記憶部206と入出力部212とを備えており、シミュレータ200が備えている各部は、任意の通信路を介して通信可能に接続されている。シミュレータ200は、ネットワーク300を介して、他の装置と相互に通信可能に接続されている。
【0033】
入出力部212は、データの入出力(I/O)を行う機能を有していてもよい。ここで、入出力部212は、例えば、キー入力部、タッチパネル、コントロールパッド(例えば、タッチパッド、および、ゲームパッド等)、マウス、キーボード、および/または、音声認証に利用可能なマイク等であってもよい。また、入出力部212は、アプリケーション等の(入出力)情報を表示する表示部(例えば、液晶または有機EL等から構成されるディスプレイ、モニタ、および/または、タッチパネル等)であってもよい。また、入出力部212は、音声情報を音声として出力する音声出力部(例えば、スピーカ等)であってもよい。また、入出力部212は、指紋センサ、および/または、静脈センサ等の生体センサであってもよい。
【0034】
記憶部206には、各種のデータベース、テーブル、および/または、ファイルなどが格納される。記憶部206には、OSと協働してCPUに命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部206は、RAM、ROM、HDD、および/または、SSD等のストレージ手段であり、各種のデータベースやテーブルを格納する。記憶部206は、機能概念的に、モデルデータベース206aと、連携データベース206bとを備えている。
【0035】
モデルデータベース206aは、モデルを記憶する。ここで、モデルデータベース206aは、アクチュエータの駆動制御に関するモデルを記憶していてもよい。また、モデルは、数理モデル、物理モデル、記号モデル、および/または、論理モデルであってもよい。ここで、数理モデルは、決定論モデル、確率論モデル、または、ファジィモデル等であってもよい。すなわち、数理モデルは、微分方程式モデル、または、待ち行列モデル等であってもよい。また、物理モデルは、縮尺モデル、または、相似モデル等であってもよい。また、モデルは、XML(Extensible Markup Language)ベースのマークアップ言語であるPHML(Physiological Hierarchy Markup Language)言語仕様により記述された、デバイスとの接続を表現する構文を定義したものであってもよい。また、モデルデータベース206aは、モデルに紐付けてシミュレーション結果を記憶していてもよい。
【0036】
連携データベース206bは、シミュレーションを実行するためのシミュレータAPI(Application Programming Interface)と、アクチュエータを駆動するためのデバイスAPIと、を紐付けた連携データを記憶する。ここで、連携データは、シミュレータ200とデバイス100との間をネットワーク300経由で連携させるためのAPIの要件が定義されていてもよい。また、連携データは、シミュレータ200がデバイス100と値の授受を行うためのプロトコルが設計・定義されていてもよい。ここで、このプロトコル設計タスクでは、TCP/IPをベースとして、その上に通信セッション管理、データ表現、および、データ内容等に関する規定が設計されていてもよい。ここで、データ内容としては、変数名および値のリスト、値を取得した時刻、ならびに、パケットを発信した時刻等のデータを含んでいてもよい。また、データ表現としては、転送データ量を圧縮し小型化するために、バイナリ形式等を用いてもよく、各データのフィールド長等が設計されていてもよい。
【0037】
制御部202は、シミュレータ200を統括的に制御するCPU等である。制御部202は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部202は、機能概念的に、シミュレーション実行部202aと、駆動制御指示生成部202bと、駆動制御部202cと、センサ検出値取得部202dと、モデル更新部202eとを備えている。
【0038】
シミュレーション実行部202aは、デバイス100の挙動のシミュレーションを実行し、シミュレーション結果を取得する。ここで、シミュレーション実行部202aは、モデルに基づいて、デバイス100の挙動のシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部202aは、モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いてシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部202aは、他のモデルに基づいて、デバイス100の挙動のシミュレーションを実行し、他のシミュレーション結果を取得してもよい。また、シミュレーション実行部202aは、微分方程式モデルに対する数値計算により、デバイス100の挙動のシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部202aは、シミュレーション結果をモデルデータベース206aに格納してもよい。
【0039】
駆動制御指示生成部202bは、アクチュエータ108の駆動制御指示を生成する。ここで、駆動制御指示生成部202bは、シミュレーション結果、および、連携データに基づいて、アクチュエータ108の駆動制御指示を生成してもよい。また、駆動制御指示生成部202bは、シミュレーション結果に基づいて、対象とするデバイス100のデバイス識別子、当該デバイス100のセンサ110のセンサ識別子、設定時刻、および/または、アクチュエータ108にて変換される運動量等を含む駆動制御指示を生成してもよい。また、駆動制御指示生成部202bは、シミュレーション結果に基づいて、アクチュエータ108の駆動制御プログラムを含む駆動制御指示を生成してもよい。
【0040】
駆動制御部202cは、デバイス100のアクチュエータ108の駆動制御を実行する。ここで、駆動制御部202cは、シミュレーション結果に基づいて、デバイス100のアクチュエータ108の駆動制御を実行してもよい。また、駆動制御部202cは、駆動制御指示をデバイス100に送信し、アクチュエータ108の駆動制御を実行してもよい。
【0041】
センサ検出値取得部202dは、デバイス100のセンサ110にて検出されたセンサ検出値を取得する。ここで、センサ検出値取得部202dは、検出を実行したデバイス100のデバイス識別子、検出を実行したセンサ110のセンサ識別子、および/または、検出時刻等を含むセンサ検出値を取得してもよい。
【0042】
モデル更新部202eは、モデルを更新する。ここで、モデル更新部202eは、センサ検出値に基づいて、モデルを更新してもよい。また、モデル更新部202eは、他のシミュレーション結果に基づいて、モデルを更新してもよい。
【0043】
[3.インタラクティブシミュレーションシステムの処理]
本実施形態に係るインタラクティブシミュレーションシステムの処理の一例について、
図4から
図13を参照して説明する。
図4は、本実施形態におけるインタラクティブシミュレーションシステムの処理の一例を示すフローチャートである。
【0044】
図4に示すように、シミュレータ200のシミュレーション実行部202aは、ユーザにより入出力部212を介して数理モデルが入力された場合、数理モデルをモデルデータベース206aに格納する(ステップSA-1)。
【0045】
そして、シミュレータ200のシミュレーション実行部202aは、モデルデータベース206aに記憶された数理モデルに対する数値計算により、デバイス100の挙動のシミュレーションを実行し、シミュレーション結果を取得し、シミュレーション結果をモデルデータベース206aに格納する(ステップSA-2)。
【0046】
そして、シミュレータ200のシミュレーション実行部202aは、ユーザにより入出力部212を介してシミュレーション終了指示が入力されたか否かを判定する(ステップSA-3)。
【0047】
そして、シミュレータ200のシミュレーション実行部202aは、シミュレーション終了指示が入力されたと判定した場合(ステップSA-3:Yes)、処理を終了する。
【0048】
一方、シミュレータ200のシミュレーション実行部202aは、シミュレーション終了指示が入力されていないと判定した場合(ステップSA-3:No)、処理をステップSA-4に移行させる。
【0049】
そして、シミュレータ200の駆動制御指示生成部202bは、シミュレーション結果、および、連携データベース206bに記憶された連携データに基づいて、アクチュエータ108の駆動制御指示を生成する(ステップSA-4)。
【0050】
そして、シミュレータ200の駆動制御部202cは、駆動制御指示をデバイス100に送信し、アクチュエータ108の駆動制御を実行する(ステップSA-5)。
【0051】
そして、シミュレータ200のセンサ検出値取得部202dは、デバイス100のセンサ110にて検出され、当該デバイス100から送信された当該デバイス100のデバイス識別子、当該センサ110のセンサ識別子、および、検出時刻を含むセンサ検出値を取得する(ステップSA-6)。
【0052】
そして、シミュレータ200のモデル更新部202eは、センサ検出値に基づいて、数理モデルを更新し(ステップSA-7)、処理をステップSA-2に移行させる。
【0053】
ここで、
図5から
図7を参照して、本実施形態におけるインタラクティブシミュレーション処理の具体例について説明する。
図5から
図7は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【0054】
図5に示すように、本実施形態においては、デバイス100に出力する変数およびデバイス100からの値を取り入れる変数がPHMLで記述されたモデルが、シミュレータ(Interactive Flint)200に入力された場合、シミュレータ200にてモデルのPHMLが解読されて数値計算が実行され、シミュレータ200とデバイス100との相互作用のコネクションが形成される。そして、
図5に示すように、本実施形態においては、シミュレータ200にて計算された数値解を用いてデバイス100のモータが駆動制御され、デバイス100のセンサ110にて検出されたセンサ検出値がモデルの変数および/または係数に代入されることで、シミュレーションにリアルタイムに反映される。このように、本実施形態においては、シミュレーション中にモデルの変数の値が、外部からのアクセスによって変更される。
【0055】
ここで、
図6に示すように、本実施形態におけるシミュレータ200においては、シミュレータ200にて生成されたデータをデバイス100上で作動するように変換するために、連携データベース206bに記憶されたInteractive Flint APIとデバイスAPIとを紐付けた連携データを呼び出すことで、アクチュエータを駆動するためのAPIを有する、研究、教育またはエンターテイメント等の様々なデバイス100との通信を可能としてもよい。なお、本実施形態におけるシミュレータ200とデバイス100との通信は、双方向であってもよく、どちらか一方向であってもよい。
【0056】
更に、
図7に示すように、本実施形態において、シミュレータ(Interactive Flint)200-1は、他のシミュレータ(Interactive Flint)200-2と通信することができ、他のシミュレータ200-2にて実行された異なるモデルのシミュレーションをリアルタイムに相互作用させながら、シミュレーションを実行することができる。なお、本実施形態においては、シミュレータ200-1と他のシミュレータ200-2とが、同一筐体に実装されていてもよく、他の筐体に実装されていてもよい。また、本実施形態におけるシミュレータ200-1と他のシミュレータ200-2との通信は、双方向であってもよく、どちらか一方向であってもよい。
【0057】
また、
図8から
図13を参照して、本実施形態におけるデバイス制御の一例について説明する。
図8から
図12は、本実施形態におけるデバイス制御の一例を示す図である。
図13は、本実施形態におけるセンサ110の一例を示す図である。
【0058】
図8に示すように、本実施形態における実験デバイス制御においては、生理機能プロセスまたは生化学プロセス等の数理モデルに基づいて、シミュレータ200にて実験系の状態の近未来がシミュレーションされ、実験系が望ましくない状態に陥る前に、電動ピペットであるデバイス100が操作制御される。例えば、本実施形態においては、シミュレーション結果に基づいて、幹細胞が特定の細胞に分化できるように、電動ピペットであるデバイス100が操作制御されてもよい。
【0059】
また、
図9に示すように、本実施形態におけるロボット歩行制御においては、神経系および身体運動学の数理モデルに基づいて、シミュレータ200にてロボットであるデバイス100の歩行がシミュレーションされ、センサ110とモータを搭載したデバイス100が駆動制御され、センサ110にて検出されたセンサ検出値がシミュレーションにフィードバックされる。
【0060】
また、
図10に示すように、本実施形態におけるロボット制御においては、運動方程式の数理モデルに基づいて、シミュレータ200にて腕ロボットであるデバイス100-1および脚ロボットであるデバイス100-2の挙動がシミュレーションされ、デバイス100-1およびデバイス100-2が駆動制御される。
【0061】
また、
図11に示すように、本実施形態におけるロボット制御においては、グラフのモデルに基づいて、シミュレータ200にてロボットであるデバイス100-1~nの自己組織化がシミュレーションされ、デバイス100-1~nが駆動制御される。
【0062】
また、
図12に示すように、本実施形態におけるマウスロボット制御においては、シミュレータ200にてPHMLで記述された数理モデルに対する数値計算により、マウスロボットであるデバイス100の挙動のシミュレーションが実行され、シミュレーション結果に基づいて、デバイス100のデバイス識別子、センサ110のセンサ識別子、設定時刻、および、アクチュエータ108にて変換される左右の車輪の角速度を含む、プログラム言語C++で生成された駆動制御指示が、プログラム言語Cに変換されてデバイス100に送信され、アクチュエータ108が駆動制御されることで、デバイス100の車輪の速度が変化する。そして、
図12に示すように、本実施形態におけるマウスロボット制御においては、
図13に示すデバイス100の四つの光学センサからなるセンサ110にて障害物との距離が検出された場合、障害物との距離、デバイス識別子、センサ識別子、および、検出時刻を含むセンサ検出値がデバイス100(デバイスドライバ)からシミュレータ200に任意の頻度で送信され、シミュレータ200にて数理モデルが更新される。
【0063】
このように、本実施形態においては、モデル共有が容易になるだけでなく、モデルの開発とシミュレーションの実行とがタスクとして完全に分離され、モデル開発者が数値計算アルゴリズムを実装する必要がなくなるため、モデル開発者がモデル開発に集中できるようになる。また、本実施形態においては、シミュレーション結果に基づいて、新薬の創出等の様々な実用的な利用へと繋げることを可能としている。
【0064】
[4.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0065】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0066】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0067】
また、デバイス100およびシミュレータ200等に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0068】
例えば、デバイス100およびシミュレータ200等が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてデバイス100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0069】
また、このコンピュータプログラムは、デバイス100およびシミュレータ200等に対して任意のネットワーク300を介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0070】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD-ROM(Compact Disk Read Only Memory)、MO(Magneto-Optical disk)、DVD(Digital Versatile Disk)、および、Blu-ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0071】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、本実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0072】
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0073】
また、シミュレータ200等は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、シミュレータ200等は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0074】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【0075】
本発明は、ロボットおよび医薬品等の研究・開発、教育、ならびに、エンターテイメント等の様々な分野において有用である。
【符号の説明】
【0076】
100 デバイス
102 制御部
106 記憶部
110 センサ
200 シミュレータ
202 制御部
202a シミュレーション実行部
202b 駆動制御指示生成部
202c 駆動制御部
202d センサ検出値取得部
202e モデル更新部
206 記憶部
206a モデルデータベース
206b 連携データベース
212 入出力部
300 ネットワーク