(57)【要約】【課題】インシリコによる数理モデル等のモデルのシミュレーションと、実世界のロボットまたは実験装置等の機器とをネットワーク経由で双方向に連携させるシミュレーション・フレームワークを提供することができるインタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラムを提供することを課題とする。【解決手段】モデルに基づいて、アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得し、シミュレーション結果に基づいて、アクチュエータの駆動制御を実行し、アクチュエータ搭載デバイスのセンサにて検出されたセンサ検出値を取得し、センサ検出値に基づいて、モデルを更新する。【選択図】図３
2020142341.tif 000002
【特許請求の範囲】
【請求項１】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、
を備え、
前記制御部は、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、
を備えたことを特徴とするインタラクティブシミュレーションシステム。
【請求項２】
前記シミュレーション実行手段は、
前記モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いて前記シミュレーションを実行し、前記シミュレーション結果を取得し、
前記制御部は、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成手段、
を更に備え、
前記駆動制御手段は、
前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行することを特徴とする請求項１に記載のインタラクティブシミュレーションシステム。
【請求項３】
前記記憶部は、
前記シミュレーションを実行するためのシミュレータＡＰＩと、前記アクチュエータを駆動するためのデバイスＡＰＩと、を紐付けた連携データを記憶する連携記憶手段、
を更に備え、
前記駆動制御指示生成手段は、
前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの前記駆動制御指示を生成することを特徴とする請求項２に記載のインタラクティブシミュレーションシステム。
【請求項４】
前記シミュレーション実行手段は、
更に、他のモデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、他のシミュレーション結果を取得し、
前記モデル更新手段は、
前記他のシミュレーション結果に基づいて、前記モデルを更新することを特徴とする請求項１から３のいずれか一つに記載のインタラクティブシミュレーションシステム。
【請求項５】
前記モデルは、
数理モデル、物理モデル、記号モデル、および／または、論理モデルであることを特徴とする請求項１から４のいずれか一つに記載のインタラクティブシミュレーションシステム。
【請求項６】
前記数理モデルは、
微分方程式モデルであり、
前記シミュレーション実行手段は、
前記微分方程式モデルに対する数値計算により、前記アクチュエータ搭載デバイスの挙動の前記シミュレーションを実行し、前記シミュレーション結果を取得することを特徴とする請求項５に記載のインタラクティブシミュレーションシステム。
【請求項７】
前記駆動制御指示生成手段は、
前記シミュレーション結果に基づいて、対象とする前記アクチュエータ搭載デバイスのデバイス識別子、当該アクチュエータ搭載デバイスの前記センサのセンサ識別子、設定時刻、および／または、前記アクチュエータにて変換される運動量を含む前記駆動制御指示を生成し、
前記センサ検出値取得手段は、
検出を実行した前記アクチュエータ搭載デバイスの前記デバイス識別子、検出を実行した前記センサの前記センサ識別子、および／または、検出時刻を含む前記センサ検出値を取得することを特徴とする請求項２または３に記載のインタラクティブシミュレーションシステム。
【請求項８】
前記駆動制御指示生成手段は、
前記シミュレーション結果に基づいて、駆動制御プログラムを含む前記駆動制御指示を生成することを特徴とする請求項２または３に記載のインタラクティブシミュレーションシステム。
【請求項９】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、
を備え、
前記制御部は、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、
を備えたことを特徴とするシミュレータ。
【請求項１０】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムに実行させるためのインタラクティブシミュレーション方法であって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、
を備え、
前記制御部で実行させる、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を含むことを特徴とするインタラクティブシミュレーション方法。
【請求項１１】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーション方法であって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、
を備え、
前記制御部で実行させる、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を含むことを特徴とするインタラクティブシミュレーション方法。
【請求項１２】
アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーションプログラムであって、
前記記憶部は、
前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、
を備え、
前記制御部において、
前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、
前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、
前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、
前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、
を実行させるためのインタラクティブシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラムに関する。
【背景技術】
【０００２】
特許文献１記載のシミュレーション環境においては、モータやセンサ等のリアル装置と、リアル装置に類似する実験室装置と、仮想のリアル装置または実験室装置であるバーチャル装置とからパフォーマンスデータを収集し、装置間の相互作用をシミュレーションすることで、リアルタイムに仮想モデルの更新を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】ＵＳ  ２０１６／２５９８７０  Ａ１
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の従来のシミュレーション環境においては、装置間の相互作用をシミュレーションするものであって、取替可能なモデルのシミュレーションを実行するとともに、シミュレーション結果をもとにデバイス制御を行うことができなかったという課題があった。
【０００５】
本発明は、上記問題点に鑑みてなされたものであって、インシリコによる数理モデル等のモデルのシミュレーションと、実世界のロボットまたは実験装置等の機器とをネットワーク経由で双方向に連携させるシミュレーション・フレームワークを提供することができるインタラクティブシミュレーションシステム、シミュレータ、インタラクティブシミュレーション方法、および、インタラクティブシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係るインタラクティブシミュレーションシステムは、アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部は、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、を備えたことを特徴とする。
【０００７】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記シミュレーション実行手段は、前記モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いて前記シミュレーションを実行し、前記シミュレーション結果を取得し、前記制御部は、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御指示を生成する駆動制御指示生成手段、を更に備え、前記駆動制御手段は、前記駆動制御指示を前記アクチュエータ搭載デバイスに送信し、前記アクチュエータの駆動制御を実行することを特徴とする。
【０００８】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記記憶部は、前記シミュレーションを実行するためのシミュレータＡＰＩと、前記アクチュエータを駆動するためのデバイスＡＰＩと、を紐付けた連携データを記憶する連携記憶手段、を更に備え、前記駆動制御指示生成手段は、前記シミュレーション結果、および、前記連携データに基づいて、前記アクチュエータの前記駆動制御指示を生成することを特徴とする。
【０００９】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記シミュレーション実行手段は、更に、他のモデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、他のシミュレーション結果を取得し、前記モデル更新手段は、前記他のシミュレーション結果に基づいて、前記モデルを更新することを特徴とする。
【００１０】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記モデルは、数理モデル、物理モデル、記号モデル、および／または、論理モデルであることを特徴とする。
【００１１】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記数理モデルは、微分方程式モデルであり、前記シミュレーション実行手段は、前記微分方程式モデルに対する数値計算により、前記アクチュエータ搭載デバイスの挙動の前記シミュレーションを実行し、前記シミュレーション結果を取得することを特徴とする。
【００１２】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記駆動制御指示生成手段は、前記シミュレーション結果に基づいて、対象とする前記アクチュエータ搭載デバイスのデバイス識別子、当該アクチュエータ搭載デバイスの前記センサのセンサ識別子、設定時刻、および／または、前記アクチュエータにて変換される運動量を含む前記駆動制御指示を生成し、前記センサ検出値取得手段は、検出を実行した前記アクチュエータ搭載デバイスの前記デバイス識別子、検出を実行した前記センサの前記センサ識別子、および／または、検出時刻を含む前記センサ検出値を取得することを特徴とする。
【００１３】
また、本発明に係るインタラクティブシミュレーションシステムにおいて、前記駆動制御指示生成手段は、前記シミュレーション結果に基づいて、駆動制御プログラムを含む前記駆動制御指示を生成することを特徴とする。
【００１４】
また、本発明に係るシミュレータにおいて、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部は、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行手段と、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御手段と、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得手段と、前記センサ検出値に基づいて、前記モデルを更新するモデル更新手段と、を備えたことを特徴とする。
【００１５】
また、本発明に係るインタラクティブシミュレーション方法は、アクチュエータとセンサとを備えたアクチュエータ搭載デバイス、および、記憶部と制御部とを備えたシミュレータを通信可能に接続したインタラクティブシミュレーションシステムに実行させるためのインタラクティブシミュレーション方法であって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部で実行させる、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を含むことを特徴とする。
【００１６】
また、本発明に係るインタラクティブシミュレーション方法は、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーション方法であって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部で実行させる、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を含むことを特徴とする。
【００１７】
また、本発明に係るインタラクティブシミュレーションプログラムは、アクチュエータとセンサとを備えたアクチュエータ搭載デバイスに通信可能に接続された、記憶部と制御部とを備えたシミュレータに実行させるためのインタラクティブシミュレーションプログラムであって、前記記憶部は、前記アクチュエータの駆動制御に関するモデルを記憶するモデル記憶手段、を備え、前記制御部において、前記モデルに基づいて、前記アクチュエータ搭載デバイスの挙動のシミュレーションを実行し、シミュレーション結果を取得するシミュレーション実行ステップと、前記シミュレーション結果に基づいて、前記アクチュエータの駆動制御を実行する駆動制御ステップと、前記アクチュエータ搭載デバイスの前記センサにて検出されたセンサ検出値を取得するセンサ検出値取得ステップと、前記センサ検出値に基づいて、前記モデルを更新するモデル更新ステップと、を実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、任意のダイナミカルモデルを用いた予測的機器制御が可能となるという効果を奏する。すなわち、本発明によれば、任意のモデルのシミュレーションと実世界の機器とを直接リアルタイムに連携させることができるため、モデルのシミュレーションの応用範囲が広がるという効果を奏する。また、本発明によれば、モデルベースの予測的ロボット制御、または、リアルタイム実験制御などへの応用が可能となるという効果を奏する。また、本発明によれば、シミュレーションを計算機上で単に実行するだけではなく、シミュレーションと、ロボットの制御プロセスまたは実験機器の制御プロセス等の外部プロセスとが相互に数値的に影響を与えることができる環境を提供できるという効果を奏する。また、本発明によれば、外部機器がシミュレータにネットワークを介してアクセスし、シミュレーション中のモデルに含まれる変数の値を時々刻々取得することができ、この値を使ってその外部プロセスの状態を更新制御することができるだけでなく、外部プロセスがシミュレーション中の変数に値をセットすることができるため、シミュレータにおいてシミュレーション中のモデルの状態に外部プロセスの状態を時々刻々反映させることができるという効果を奏する。また、本発明によれば、シミュレータと外部機器との間をネットワーク経由で連携させるためのＡＰＩの要件を定義することで、このＡＰＩを通じて、外部機器が値のｇｅｔ／ｓｅｔを行うだけではなく、シミュレータとの連携のＯｎ／Ｏｆｆを制御することができ、フレキシブル且つリアルタイムな連携動作を可能とすることができるという効果を奏する。また、本発明によれば、これまで蓄積された詳細な数理モデルを汎用的にデバイス制御へつなげることができるという効果を奏する。すなわち、本発明によれば、微分方程式等を用いたダイナミカルシステムモデルであればよいため、リアルタイム予測的フィードバックに基づく高精度な生理学的・生物学的実験を実施する際の制御システム、ロボットを環境に応じてリアルタイム制御する際の制御システム、中枢パターン生成器（ＣＰＧ）モデルによるロボット歩行制御システム、生理学的薬物速度論（ＰＢＰＫ）モデルに基づく特定臓器内の遊離薬物濃度シミュレーションと連携した投薬制御システム、詳細シグナル伝達モデルに基づく特定のタンパク質生合成過程のフィードバック制御システム、または、モデルニューロンと生体ニューロンとのハイブリッドニューラルネットワークの情報処理システム等に利用することができるという効果を奏する。また、本発明によれば、モデル化された対象の未来の状態を推定するための技術であり、且つ、計算機中でのみ実行する、すなわち、計算機中で閉じたものであったシミュレーションのデータを、直接機器制御信号とすることができることで、近未来を推定した推定結果に基づいて予測的に機器を制御することができるという効果を奏する。また、本発明によれば、汎用的なシミュレータでありながら、デバイス制御をできる仕組みを備えており、デバイスからのデータをリアルタイムに取得しつつシミュレーションを実行することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、従来の汎用シミュレータの一例を示す図である。
【図２】図２は、本実施形態におけるインタラクティブシミュレーションシステムの一例を示す図である。
【図３】図３は、本実施形態におけるインタラクティブシミュレーションシステムの構成の一例を示すブロック図である。
【図４】図４は、本実施形態におけるインタラクティブシミュレーションシステムの処理の一例を示すフローチャートである。
【図５】図５は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【図６】図６は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【図７】図７は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【図８】図８は、本実施形態におけるデバイス制御の一例を示す図である。
【図９】図９は、本実施形態におけるデバイス制御の一例を示す図である。
【図１０】図１０は、本実施形態におけるデバイス制御の一例を示す図である。
【図１１】図１１は、本実施形態におけるデバイス制御の一例を示す図である。
【図１２】図１２は、本実施形態におけるデバイス制御の一例を示す図である。
【図１３】図１３は、本実施形態におけるセンサの一例を示す図である。
【発明を実施するための形態】
【００２０】
本発明の実施形態を図面に基づいて詳細に説明する。なお、本発明は本実施形態により限定されるものではない。
【００２１】
［１．概要］
まず、図１および図２を参照して、本発明の概要を説明する。図１は、従来の汎用シミュレータの一例を示す図である。図２は、本実施形態におけるインタラクティブシミュレーションシステムの一例を示す図である。
【００２２】
図１に示すように、従来の汎用シミュレータにおいては、交換可能なモデルを取り替え、モデルを数値積分等することで様々な機能をシミュレーションすることが可能であったが、シミュレーションが計算機内で閉じていたため、シミュレーションに基づいて、デバイス制御等をすることができなかった。また、従来のデバイス制御には、埋め込み型の計算システム（例えば、歩行ロボット制御のための神経回路制御システム等）が使用され、埋め込まれた機能のみシミュレーション可能であった。
【００２３】
一方、図２に示すように、本実施形態のシミュレータにおいては、交換可能なモデルを取り替え、モデルを数値積分等することで様々な機能のシミュレーションを実行し、交換可能なデバイスとデータ通信を行い、デバイスからネットワークを介して送信されるデータをシミュレーション中にリアルタイムに受け付け、そのデータに基づいて、モデルのパラメータを変更しシミュレーションを継続し、シミュレーション中のモデルの状態をネットワークを介してデバイスに送信することができるようにしている。このように、本実施形態においては、デバイスを取り替えることができるため、各デバイスと各モデルによるシミュレーションとの間の通信をそれぞれ開発する必要がない。
【００２４】
［２．インタラクティブシミュレーションシステムの構成］
本実施形態に係るデバイス（アクチュエータ搭載デバイス）１００、および、シミュレータ２００を通信可能に接続したインタラクティブシミュレーションシステムの構成の一例について、図３を参照して説明する。図３は、本実施形態におけるインタラクティブシミュレーションシステムの構成の一例を示すブロック図である。
【００２５】
［デバイス１００の構成］
図３において、デバイス１００は、ロボット、または、実験装置等を含む、アクチュエータ１０８を介して様々な物理的な動作を行う機器等であってもよい。
【００２６】
デバイス１００は、制御部１０２と記憶部１０６とアクチュエータ１０８とセンサ１１０とを備えており、デバイス１００が備えている各部は、任意の通信路を介して通信可能に接続されている。
【００２７】
デバイス１００は、他の装置とネットワーク３００を介して通信可能に接続し、他の装置とデータを通信する機能を有する。ここで、ネットワーク３００は、デバイス１００と他の装置とを相互に通信可能に接続する機能を有し、例えば、インターネット、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線、および／または、Ｗｉ−Ｆｉ（登録商標）を含むＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。
【００２８】
アクチュエータ１０８は、入力エネルギーまたは入力電気信号を、物理的運動に変換する、機械および電気回路を備えた、ソレノイド、電動機、サーボモータもしくは動力シリンダ等の圧力装置、ならびに／または、往復駆動装置等の変換機等である。
【００２９】
センサ１１０は、距離、重量、時間、位置、変位、温度、湿度、熱、音、化学物質、温度、光、赤外線、紫外線、放射線、電場、電流、電圧、電力、ニオイ、濃度、色、圧力、荷重、硬度、流量、振動、磁気、速度、回転数、角速度、および／または、加速度等の物理量を収集し、収集したデータを、機械または人間が扱うことができる別媒体の信号に置き換える機能を有していてもよい。
【００３０】
記憶部１０６には、各種のデータベース、テーブル、および／または、ファイルなどが格納される。記憶部１０６には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）と協働してＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部１０６として、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、および／または、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等を用いることができる。記憶部１０６は、センサ１１０にて検出されたセンサ検出値、および／または、ネットワーク３００を介して受信されたデータ等を記憶していてもよい。
【００３１】
制御部１０２は、デバイス１００を統括的に制御するＣＰＵ等である。制御部１０２は、ＯＳ等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。例えば、制御部１０２は、アクチュエータ１０８の駆動（制御）、センサ１１０にて検出されたセンサ検出値の取得および格納、ならびに／または、ネットワーク３００を介したデータ送受信等の各処理を実行してもよい。
【００３２】
［シミュレータ２００の構成］
図３において、シミュレータ２００は、パーソナルコンピュータ、または、ワークステーション等の情報処理装置であってもよい。シミュレータ２００は、制御部２０２と記憶部２０６と入出力部２１２とを備えており、シミュレータ２００が備えている各部は、任意の通信路を介して通信可能に接続されている。シミュレータ２００は、ネットワーク３００を介して、他の装置と相互に通信可能に接続されている。
【００３３】
入出力部２１２は、データの入出力（Ｉ／Ｏ）を行う機能を有していてもよい。ここで、入出力部２１２は、例えば、キー入力部、タッチパネル、コントロールパッド（例えば、タッチパッド、および、ゲームパッド等）、マウス、キーボード、および／または、音声認証に利用可能なマイク等であってもよい。また、入出力部２１２は、アプリケーション等の（入出力）情報を表示する表示部（例えば、液晶または有機ＥＬ等から構成されるディスプレイ、モニタ、および／または、タッチパネル等）であってもよい。また、入出力部２１２は、音声情報を音声として出力する音声出力部（例えば、スピーカ等）であってもよい。また、入出力部２１２は、指紋センサ、および／または、静脈センサ等の生体センサであってもよい。
【００３４】
記憶部２０６には、各種のデータベース、テーブル、および／または、ファイルなどが格納される。記憶部２０６には、ＯＳと協働してＣＰＵに命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部２０６は、ＲＡＭ、ＲＯＭ、ＨＤＤ、および／または、ＳＳＤ等のストレージ手段であり、各種のデータベースやテーブルを格納する。記憶部２０６は、機能概念的に、モデルデータベース２０６ａと、連携データベース２０６ｂとを備えている。
【００３５】
モデルデータベース２０６ａは、モデルを記憶する。ここで、モデルデータベース２０６ａは、アクチュエータの駆動制御に関するモデルを記憶していてもよい。また、モデルは、数理モデル、物理モデル、記号モデル、および／または、論理モデルであってもよい。ここで、数理モデルは、決定論モデル、確率論モデル、または、ファジィモデル等であってもよい。すなわち、数理モデルは、微分方程式モデル、または、待ち行列モデル等であってもよい。また、物理モデルは、縮尺モデル、または、相似モデル等であってもよい。また、モデルは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ベースのマークアップ言語であるＰＨＭＬ（Ｐｈｙｓｉｏｌｏｇｉｃａｌ  Ｈｉｅｒａｒｃｈｙ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）言語仕様により記述された、デバイスとの接続を表現する構文を定義したものであってもよい。また、モデルデータベース２０６ａは、モデルに紐付けてシミュレーション結果を記憶していてもよい。
【００３６】
連携データベース２０６ｂは、シミュレーションを実行するためのシミュレータＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）と、アクチュエータを駆動するためのデバイスＡＰＩと、を紐付けた連携データを記憶する。ここで、連携データは、シミュレータ２００とデバイス１００との間をネットワーク３００経由で連携させるためのＡＰＩの要件が定義されていてもよい。また、連携データは、シミュレータ２００がデバイス１００と値の授受を行うためのプロトコルが設計・定義されていてもよい。ここで、このプロトコル設計タスクでは、ＴＣＰ／ＩＰをベースとして、その上に通信セッション管理、データ表現、および、データ内容等に関する規定が設計されていてもよい。ここで、データ内容としては、変数名および値のリスト、値を取得した時刻、ならびに、パケットを発信した時刻等のデータを含んでいてもよい。また、データ表現としては、転送データ量を圧縮し小型化するために、バイナリ形式等を用いてもよく、各データのフィールド長等が設計されていてもよい。
【００３７】
制御部２０２は、シミュレータ２００を統括的に制御するＣＰＵ等である。制御部２０２は、ＯＳ等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。制御部２０２は、機能概念的に、シミュレーション実行部２０２ａと、駆動制御指示生成部２０２ｂと、駆動制御部２０２ｃと、センサ検出値取得部２０２ｄと、モデル更新部２０２ｅとを備えている。
【００３８】
シミュレーション実行部２０２ａは、デバイス１００の挙動のシミュレーションを実行し、シミュレーション結果を取得する。ここで、シミュレーション実行部２０２ａは、モデルに基づいて、デバイス１００の挙動のシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部２０２ａは、モデルに基づいて、シミュレーションプログラムを生成し、当該シミュレーションプログラムを用いてシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部２０２ａは、他のモデルに基づいて、デバイス１００の挙動のシミュレーションを実行し、他のシミュレーション結果を取得してもよい。また、シミュレーション実行部２０２ａは、微分方程式モデルに対する数値計算により、デバイス１００の挙動のシミュレーションを実行し、シミュレーション結果を取得してもよい。また、シミュレーション実行部２０２ａは、シミュレーション結果をモデルデータベース２０６ａに格納してもよい。
【００３９】
駆動制御指示生成部２０２ｂは、アクチュエータ１０８の駆動制御指示を生成する。ここで、駆動制御指示生成部２０２ｂは、シミュレーション結果、および、連携データに基づいて、アクチュエータ１０８の駆動制御指示を生成してもよい。また、駆動制御指示生成部２０２ｂは、シミュレーション結果に基づいて、対象とするデバイス１００のデバイス識別子、当該デバイス１００のセンサ１１０のセンサ識別子、設定時刻、および／または、アクチュエータ１０８にて変換される運動量等を含む駆動制御指示を生成してもよい。また、駆動制御指示生成部２０２ｂは、シミュレーション結果に基づいて、アクチュエータ１０８の駆動制御プログラムを含む駆動制御指示を生成してもよい。
【００４０】
駆動制御部２０２ｃは、デバイス１００のアクチュエータ１０８の駆動制御を実行する。ここで、駆動制御部２０２ｃは、シミュレーション結果に基づいて、デバイス１００のアクチュエータ１０８の駆動制御を実行してもよい。また、駆動制御部２０２ｃは、駆動制御指示をデバイス１００に送信し、アクチュエータ１０８の駆動制御を実行してもよい。
【００４１】
センサ検出値取得部２０２ｄは、デバイス１００のセンサ１１０にて検出されたセンサ検出値を取得する。ここで、センサ検出値取得部２０２ｄは、検出を実行したデバイス１００のデバイス識別子、検出を実行したセンサ１１０のセンサ識別子、および／または、検出時刻等を含むセンサ検出値を取得してもよい。
【００４２】
モデル更新部２０２ｅは、モデルを更新する。ここで、モデル更新部２０２ｅは、センサ検出値に基づいて、モデルを更新してもよい。また、モデル更新部２０２ｅは、他のシミュレーション結果に基づいて、モデルを更新してもよい。
【００４３】
［３．インタラクティブシミュレーションシステムの処理］
本実施形態に係るインタラクティブシミュレーションシステムの処理の一例について、図４から図１３を参照して説明する。図４は、本実施形態におけるインタラクティブシミュレーションシステムの処理の一例を示すフローチャートである。
【００４４】
図４に示すように、シミュレータ２００のシミュレーション実行部２０２ａは、ユーザにより入出力部２１２を介して数理モデルが入力された場合、数理モデルをモデルデータベース２０６ａに格納する（ステップＳＡ−１）。
【００４５】
そして、シミュレータ２００のシミュレーション実行部２０２ａは、モデルデータベース２０６ａに記憶された数理モデルに対する数値計算により、デバイス１００の挙動のシミュレーションを実行し、シミュレーション結果を取得し、シミュレーション結果をモデルデータベース２０６ａに格納する（ステップＳＡ−２）。
【００４６】
そして、シミュレータ２００のシミュレーション実行部２０２ａは、ユーザにより入出力部２１２を介してシミュレーション終了指示が入力されたか否かを判定する（ステップＳＡ−３）。
【００４７】
そして、シミュレータ２００のシミュレーション実行部２０２ａは、シミュレーション終了指示が入力されたと判定した場合（ステップＳＡ−３：Ｙｅｓ）、処理を終了する。
【００４８】
一方、シミュレータ２００のシミュレーション実行部２０２ａは、シミュレーション終了指示が入力されていないと判定した場合（ステップＳＡ−３：Ｎｏ）、処理をステップＳＡ−４に移行させる。
【００４９】
そして、シミュレータ２００の駆動制御指示生成部２０２ｂは、シミュレーション結果、および、連携データベース２０６ｂに記憶された連携データに基づいて、アクチュエータ１０８の駆動制御指示を生成する（ステップＳＡ−４）。
【００５０】
そして、シミュレータ２００の駆動制御部２０２ｃは、駆動制御指示をデバイス１００に送信し、アクチュエータ１０８の駆動制御を実行する（ステップＳＡ−５）。
【００５１】
そして、シミュレータ２００のセンサ検出値取得部２０２ｄは、デバイス１００のセンサ１１０にて検出され、当該デバイス１００から送信された当該デバイス１００のデバイス識別子、当該センサ１１０のセンサ識別子、および、検出時刻を含むセンサ検出値を取得する（ステップＳＡ−６）。
【００５２】
そして、シミュレータ２００のモデル更新部２０２ｅは、センサ検出値に基づいて、数理モデルを更新し（ステップＳＡ−７）、処理をステップＳＡ−２に移行させる。
【００５３】
ここで、図５から図７を参照して、本実施形態におけるインタラクティブシミュレーション処理の具体例について説明する。図５から図７は、本実施形態におけるインタラクティブシミュレーション処理の一例を示す図である。
【００５４】
図５に示すように、本実施形態においては、デバイス１００に出力する変数およびデバイス１００からの値を取り入れる変数がＰＨＭＬで記述されたモデルが、シミュレータ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｌｉｎｔ）２００に入力された場合、シミュレータ２００にてモデルのＰＨＭＬが解読されて数値計算が実行され、シミュレータ２００とデバイス１００との相互作用のコネクションが形成される。そして、図５に示すように、本実施形態においては、シミュレータ２００にて計算された数値解を用いてデバイス１００のモータが駆動制御され、デバイス１００のセンサ１１０にて検出されたセンサ検出値がモデルの変数および／または係数に代入されることで、シミュレーションにリアルタイムに反映される。このように、本実施形態においては、シミュレーション中にモデルの変数の値が、外部からのアクセスによって変更される。
【００５５】
ここで、図６に示すように、本実施形態におけるシミュレータ２００においては、シミュレータ２００にて生成されたデータをデバイス１００上で作動するように変換するために、連携データベース２０６ｂに記憶されたＩｎｔｅｒａｃｔｉｖｅ  Ｆｌｉｎｔ  ＡＰＩとデバイスＡＰＩとを紐付けた連携データを呼び出すことで、アクチュエータを駆動するためのＡＰＩを有する、研究、教育またはエンターテイメント等の様々なデバイス１００との通信を可能としてもよい。なお、本実施形態におけるシミュレータ２００とデバイス１００との通信は、双方向であってもよく、どちらか一方向であってもよい。
【００５６】
更に、図７に示すように、本実施形態において、シミュレータ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｌｉｎｔ）２００−１は、他のシミュレータ（Ｉｎｔｅｒａｃｔｉｖｅ  Ｆｌｉｎｔ）２００−２と通信することができ、他のシミュレータ２００−２にて実行された異なるモデルのシミュレーションをリアルタイムに相互作用させながら、シミュレーションを実行することができる。なお、本実施形態においては、シミュレータ２００−１と他のシミュレータ２００−２とが、同一筐体に実装されていてもよく、他の筐体に実装されていてもよい。また、本実施形態におけるシミュレータ２００−１と他のシミュレータ２００−２との通信は、双方向であってもよく、どちらか一方向であってもよい。
【００５７】
また、図８から図１３を参照して、本実施形態におけるデバイス制御の一例について説明する。図８から図１２は、本実施形態におけるデバイス制御の一例を示す図である。図１３は、本実施形態におけるセンサ１１０の一例を示す図である。
【００５８】
図８に示すように、本実施形態における実験デバイス制御においては、生理機能プロセスまたは生化学プロセス等の数理モデルに基づいて、シミュレータ２００にて実験系の状態の近未来がシミュレーションされ、実験系が望ましくない状態に陥る前に、電動ピペットであるデバイス１００が操作制御される。例えば、本実施形態においては、シミュレーション結果に基づいて、幹細胞が特定の細胞に分化できるように、電動ピペットであるデバイス１００が操作制御されてもよい。
【００５９】
また、図９に示すように、本実施形態におけるロボット歩行制御においては、神経系および身体運動学の数理モデルに基づいて、シミュレータ２００にてロボットであるデバイス１００の歩行がシミュレーションされ、センサ１１０とモータを搭載したデバイス１００が駆動制御され、センサ１１０にて検出されたセンサ検出値がシミュレーションにフィードバックされる。
【００６０】
また、図１０に示すように、本実施形態におけるロボット制御においては、運動方程式の数理モデルに基づいて、シミュレータ２００にて腕ロボットであるデバイス１００−１および脚ロボットであるデバイス１００−２の挙動がシミュレーションされ、デバイス１００−１およびデバイス１００−２が駆動制御される。
【００６１】
また、図１１に示すように、本実施形態におけるロボット制御においては、グラフのモデルに基づいて、シミュレータ２００にてロボットであるデバイス１００−１〜ｎの自己組織化がシミュレーションされ、デバイス１００−１〜ｎが駆動制御される。
【００６２】
また、図１２に示すように、本実施形態におけるマウスロボット制御においては、シミュレータ２００にてＰＨＭＬで記述された数理モデルに対する数値計算により、マウスロボットであるデバイス１００の挙動のシミュレーションが実行され、シミュレーション結果に基づいて、デバイス１００のデバイス識別子、センサ１１０のセンサ識別子、設定時刻、および、アクチュエータ１０８にて変換される左右の車輪の角速度を含む、プログラム言語Ｃ＋＋で生成された駆動制御指示が、プログラム言語Ｃに変換されてデバイス１００に送信され、アクチュエータ１０８が駆動制御されることで、デバイス１００の車輪の速度が変化する。そして、図１２に示すように、本実施形態におけるマウスロボット制御においては、図１３に示すデバイス１００の四つの光学センサからなるセンサ１１０にて障害物との距離が検出された場合、障害物との距離、デバイス識別子、センサ識別子、および、検出時刻を含むセンサ検出値がデバイス１００（デバイスドライバ）からシミュレータ２００に任意の頻度で送信され、シミュレータ２００にて数理モデルが更新される。
【００６３】
このように、本実施形態においては、モデル共有が容易になるだけでなく、モデルの開発とシミュレーションの実行とがタスクとして完全に分離され、モデル開発者が数値計算アルゴリズムを実装する必要がなくなるため、モデル開発者がモデル開発に集中できるようになる。また、本実施形態においては、シミュレーション結果に基づいて、新薬の創出等の様々な実用的な利用へと繋げることを可能としている。
【００６４】
［４．他の実施形態］
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【００６５】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【００６６】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【００６７】
また、デバイス１００およびシミュレータ２００等に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【００６８】
例えば、デバイス１００およびシミュレータ２００等が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、ＣＰＵおよび当該ＣＰＵにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じてデバイス１００に機械的に読み取られる。すなわち、ＲＯＭまたはＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）などの記憶部などには、ＯＳと協働してＣＰＵに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、ＲＡＭにロードされることによって実行され、ＣＰＵと協働して制御部を構成する。
【００６９】
また、このコンピュータプログラムは、デバイス１００およびシミュレータ２００等に対して任意のネットワーク３００を介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【００７０】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（登録商標）（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｋ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、および、Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ等の任意の「可搬用の物理媒体」を含むものとする。
【００７１】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、ＯＳに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、本実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【００７２】
記憶部に格納される各種のデータベース等は、ＲＡＭ、ＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【００７３】
また、シミュレータ２００等は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、シミュレータ２００等は、当該装置に本実施形態で説明した処理を実現させるソフトウェア（プログラムまたはデータ等を含む）を実装することにより実現してもよい。
【００７４】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。
【産業上の利用可能性】
【００７５】
本発明は、ロボットおよび医薬品等の研究・開発、教育、ならびに、エンターテイメント等の様々な分野において有用である。
【符号の説明】
【００７６】
１００  デバイス
１０２  制御部
１０６  記憶部
１１０  センサ
２００  シミュレータ
２０２  制御部
２０２ａ  シミュレーション実行部
２０２ｂ  駆動制御指示生成部
２０２ｃ  駆動制御部
２０２ｄ  センサ検出値取得部
２０２ｅ  モデル更新部
２０６  記憶部
２０６ａ  モデルデータベース
２０６ｂ  連携データベース
２１２  入出力部
３００  ネットワーク
【図１】
2020142341.tif 000003
【図２】
2020142341.tif 000004
【図３】
2020142341.tif 000005
【図４】
2020142341.tif 000006
【図５】
2020142341.tif 000007
【図６】
2020142341.tif 000008
【図７】
2020142341.tif 000009
【図８】
2020142341.tif 000010
【図９】
2020142341.tif 000011
【図１０】
2020142341.tif 000012
【図１１】
2020142341.tif 000013
【図１２】
2020142341.tif 000014
【図１３】
2020142341.tif 000015