説明

シミュレータ

【課題】ホスト上でターゲット上のプロセッサの動作を厳密にシミュレートすることができる計算機シミュレータを用い、それを物理シミュレータに接続することにより、知的システム全体の厳密なシミュレーションを可能にした物理シミュレータと計算機シミュレータの両機能を持つシミュレータを提供すること。
【解決手段】物理シミュレータ1と、計算機シミュレータ2と、物理シミュレータ1と計算機シミュレータ2との間で情報の授受を行う通信手段C1と、物理シミュレータ1と計算機シミュレータ2に接続され物理シミュレータ1と計算機シミュレータ2の内部時刻を同期させる内部時刻同期手段3とを備えることを特徴とするシミュレータである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、シミュレータに係わり、特に、シミュレーションを用いたシステム開発に適用可能な物理シミュレータと計算機シミュレータの両機能を持つシミュレータに関する。
【背景技術】
【0002】
近年ロボットなど、実世界で動作する知的システムに対する需要が高まっている。それらの知的システムの開発においては、設計を行うとともに、設計を行ったシステムの動作を確認しながら開発を進める必要がある。システムの動作を確認するためにいちいち実システムを作っていたのでは時間・コストがかかりすぎるなどの理由から、実システムを作らないでもシステムの動作を確認することができるシミュレーション技術が幅広く利用されている。例えば、物理シミュレータを使うと、ロボットの構造をデータとして与え、それを元に力学計算を行い、さらにロボットの動作環境に関するデータを元に接触判定を行うことで、実システムを作らないでも動作を検証することができる。
【0003】
従来の知的システム開発においては、主に上で例示したような物理シミュレータが利用されてきた。しかし、知的システム全体の開発について考えた場合、システムの物理的な動作を検証するとともに、それを駆動するソフトウェアの動作についても併せて検証する必要がある。そのような開発の場面においては、物理シミュレーションと併せてソフトウェアの動作もシミュレートすることが要求される。
【0004】
これらの要求に対して従来技術では、物理シミュレータを制御回路シミュレータと接続できるようにしたものや、実時間動作する物理シミュレータをホスト上で動作する制御ソフトウェアと接続することで、任意のソフトウェアの動作を検証可能にしたものなどがある。
なお、特許文献1には、物理シミュレータにそれを制御する組み込みプロセッサを接続しシミュレート可能にする技術が開示されている。
【特許文献1】特開平11−296404
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかし、従来のシミュレーション技術には、以下のような制限があった。物理シミュレータを制御回路シミュレータに接続する技術を用いる場合、シミュレーションを行うことができるのは制御回路のみであり、複雑なソフトウェアの動作をシミュレートすることができなかった。物理シミュレータをホスト上で動作する制御ソフトウェアに接続する技術を用いる場合、ソフトウェアの動作シミュレーションを厳密に行うことができない。なぜなら、実際のシステム開発の場面においては、ホストで用いられるプロセッサとターゲットで用いられるプロセッサが異なる場合が多いためである。その場合、ホスト上でのソフトウェアの動作がターゲット上でのソフトウェアの動作と完全には一致しないため、ソフトウェアの動作の完全な模擬ができない。
【0006】
本発明の目的は、上記の従来技術の問題点に鑑みて、ホスト上でターゲット上のプロセッサの動作を厳密にシミュレートすることができる計算機シミュレータを用い、それを物理シミュレータに接続することにより、知的システム全体の厳密なシミュレーションを可能にした物理シミュレータと計算機シミュレータの両機能を持つシミュレータを提供することにある。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、次のような手段を採用した。
第1の手段は、物理シミュレータと、計算機シミュレータと、前記物理シミュレータと前記計算機シミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記計算機シミュレータに接続され該物理シミュレータと該計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータである。
第2の手段は、第1の手段において、前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻を同期させた上で、シミュレーションを行うことを特徴とするシミュレータである。
第3の手段は、内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置3は、前記物理シミュレータおよび前記計算機シミュレータから内部時刻の伝達がある度に両者を比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法である。
第4の手段は、物理シミュレータと、複数の計算機シミュレータと、ネットワークシミュレータと、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータに接続され該物理シミュレータと該複数の計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータである。
第5の手段は、第4の手段において、前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記複数の計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、ネットワークシミュレータは、ネットワークの持つ遅延の特性などのネットワークの仕様に関する情報を入力し、複数の計算機シミュレータとの間で情報の送受信をし、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻と前記ネットワークシミュレータ上の内部時刻とを同期させた上で、シミュレーションを行うことを特徴とするシミュレータである。
第6の手段は、内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、複数の計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、ネットワークシミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置3は、前記物理シミュレータ、前記複数の計算機シミュレータ、およびネットワークシミュレータから内部時刻の伝達がある度にそれらを比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法である。
【発明の効果】
【0008】
本発明によれば、プロセッサ上での複雑なソフトウェアの動作をシミュレートでき、なおかつ、ホストとターゲットとで用いるプロセッサが異なる場合でも、ソフトウェアの厳密な動作をシミュレートできるようになる。その結果、システム開発の利便性が大幅に向上させることができる。
また、複数の計算機シミュレータを用いる構成においては、計算機間をつなぐネットワークの遅延などを模擬するネットワークシミュレータも併せて用い、それを物理シミュレータ、計算機シミュレータの内部時刻と同期させることにより、複数計算機の協調によって構成されるシステムのシミュレーションも行うことができる。
【発明を実施するための最良の形態】
【0009】
本発明の第1の実施形態を図1および図2を用いて説明する。
図1は、本実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
同図に示すように、このシミュレータは、物理シミュレータ1と計算機シミュレータ2と内部時刻同期手段3とから構成され、物理シミュレータ1と計算機シミュレータ2の両者の間には、情報をやりとりするための通信手段としての接続C1が設けられ、計算機シミュレータ2から物理シミュレータ1への制御情報の伝達や、物理シミュレータ1から計算機シミュレータ2への物理情報の伝達などが行われる。
【0010】
物理シミュレータ1は、ロボットの構造に関する情報(構造データ)4と環境に関する情報(環境データ)5をデータとして入力し、力学計算および接触判定を行う。計算機シミュレータ2は、ソフトウェアに関する情報(ソフトウェアデータ)6とプロセッサの仕様に関する情報(プロセッサ仕様データ)7をデータとして入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行する。また、物理シミュレータ1は力学計算に用いる時間情報を内部時刻として持ち、計算機シミュレータ2はクロック情報をプロセッサの仕様のうちのクロック周期の情報を用いて時間情報に変換し内部時刻として持つ。内部時刻同期装置3は物理シミュレータ1と計算機シミュレータ2の両者に接続し、時刻の同期を行う。内部時刻同期装置3はその内部に全体実行制御部8を持ち、物理シミュレータ1はその内部に実行制御部9と内部時刻保持器10を持ち、計算機シミュレータ2はその内部に実行制御部11と内部時刻保持器12を持つ。
【0011】
図2は、図1に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
物理シミュレータ1と計算機シミュレータ2は各々のシミュレーションサイクルに従って動作する。物理シミュレータ1の実行制御部9は、内部時刻同期装置3の全体実行制御部8からの指令に従って、物理シミュレータ1のシミュレータ部13のシミュレーションサイクルを1つ進め、物理シミュレータ1の内部時刻保持器10において内部時刻を加算し、その内部時刻を内部時刻同期装置3の全体実行制御部8に伝達する。次に、計算機シミュレータ2の実行制御部11は、内部時刻同期装置3の全体実行制御部8からの指令に従って、計算機シミュレータ2のシミュレータ部14のシミュレーションサイクルを1つ進め、計算機シミュレータ2の内部時刻保持器12において内部時刻を加算し、その内部時刻を内部時刻同期装置3の全体実行制御部8に伝達する。内部時刻同期装置3の全体実行制御部8においては、伝達された物理シミュレータ1の内部時刻と、伝達された計算機シミュレータ2の内部時刻を記憶し、物理シミュレータ1および計算機シミュレータ2から内部時刻の伝達がある度に両者を比較し、時刻の少ない方の物理シミュレータ1の実行制御部9または計算機シミュレータ2の実行制御部11に実行の指令を出す。
【0012】
次に、本発明の第2の実施形態を図3および図4を用いて説明する。
図3は、本実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
同図に示すように、このシミュレータは、物理シミュレータ15と複数の計算機シミュレータ16,17とネットワークシミュレータ18と内部時刻同期装置19とから構成される。物理シミュレータ15と複数の計算機シミュレータ16,17との間には、情報をやりとりするための通信手段としての接続C2,C3があり、計算機シミュレータ16,17から物理シミュレータ15への制御情報の伝達や、物理シミュレータ15から計算機シミュレータ16,17への物理情報の伝達などが行われる。
【0013】
物理シミュレータ15は、ロボットの構造に関する情報(構造データ)20と、環境に関する情報(環境データ)21をデータとして入力し、力学計算および接触判定を行う。計算機シミュレータ16,17は、ソフトウェアに関する情報(ソフトウェアデータ)A22,B24と、プロセッサの仕様に関する情報(プロセッサ仕様データ)A23,B225をデータとして入力し、ソフトウェアを命令列として読み出し、その命令列をプロセッサの仕様に従って模擬的に実行する。ネットワークシミュレータ18は、そのネットワークの持つ遅延の特性などのネットワークの仕様に関する情報(ネットワーク仕様データ)24をデータとして入力し、複数の計算機シミュレータ16,17との間で情報のやりとりをするための通信手段としての接続C4,C5を持ち、計算機シミュレータ16,17上で模擬されるプロセッサ間の通信をネットワークの仕様に従って模擬する。
【0014】
また、物理シミュレータ15は力学計算に用いる時間情報を内部時刻として持ち、計算機シミュレータ16,17はクロック情報をプロセッサの仕様のうちのクロック周期の情報を用いて時間情報に変換し内部時刻として持ち、ネットワークシミュレータ18は模擬するネットワークの時間情報を内部時刻として持ち、内部時刻同期装置19は物理シミュレータ15と計算機シミュレータ16,17とネットワークシミュレータ18の全てと接続し、時刻の同期を行う。また、内部時刻同期装置19はその内部に全体実行制御部26を持ち、物理シミュレータ15はその内部に実行制御部27と内部時刻保持器28を持ち、計算機シミュレータ16,17は各々の内部に実行制御部29,31と内部時刻保持器30,32を持ち、ネットワークシミュレータ18はその内部に実行制御部33と内部時刻保持器34を持つ。
【0015】
図4は、図3に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
物理シミュレータ15と計算機シミュレータ16,17は各々のシミュレーションサイクルに従って動作する。物理シミュレータ15の実行制御部27は、内部時刻同期装置19の全体実行制御部26からの指令に従って、物理シミュレータ15のシミュレータ部35のシミュレーションサイクルを1つ進め、物理シミュレータ15の内部時刻保持器28の内部時刻を加算し、その内部時刻を内部時刻同期装置19の全体実行制御部26に伝達する。計算機シミュレータ16,17の実行制御部29,31は、内部時刻同期装置19の全体実行制御部26からの指令に従って、計算機シミュレータ16,17のシミュレータ部36,37のシミュレーションサイクルを1つ進め、計算機シミュレータ16,17の内部時刻保持器30,32の内部時刻を加算し、その内部時刻を内部時刻同期装置19の全体実行制御部26に伝達する。
【0016】
ネットワークシミュレータ18の実行制御部33は、内部時刻同期装置19の全体実行制御部26からの指令に従って、ネットワークシミュレータ18のシミュレータ部38のシミュレーションサイクルを1つ進め、ネットワークシミュレータ18の内部時刻保持器34の内部時刻を加算し、その内部時刻を内部時刻同期装置19の全体実行制御部26に伝達する。内部時刻同期装置19の全体実行制御部26においては、伝達された物理シミュレータ15の内部時刻と、伝達された計算機シミュレータ16,17の内部時刻と、伝達されたネットワークシミュレータ18の内部時刻を記憶し、各々から伝達がある度に全ての時刻から最も少ない時刻を探しだし、最も時刻の少ない物理シミュレータ15の実行制御部27、計算機シミュレータ16,17の実行制御部29,31、またはネットワークシミュレータ18の実行制御部33に実行の指令を出す。
【図面の簡単な説明】
【0017】
【図1】第1の実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
【図2】図1に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
【図3】第2の実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
【図4】図3に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
【符号の説明】
【0018】
1 物理シミュレータ
2 計算機シミュレータ
3 内部時刻同期手段
4 構造データ
5 環境データ
6 ソフトウェアデータ
7 プロセッサ仕様データ
8 全体実行制御部
9 実行制御部
10 内部時刻保持器
11 実行制御部
12 内部時刻保持器
15 物理シミュレータ
16,17 計算機シミュレータ
18 ネットワークシミュレータ
19 内部時刻同期装置
20 構造データ
21 環境データ
A22,B24 ソフトウェアデータ
A23、B25 プロセッサ仕様データ
24 ネットワーク仕様データ
26 全体実行制御部
27 実行制御部
28 内部時刻保持器
29,31 実行制御部
30,32 内部時刻保持器
33 実行制御部
34 内部時刻保持器
35 シミュレータ部
36,37 シミュレータ部

【特許請求の範囲】
【請求項1】
物理シミュレータと、計算機シミュレータと、前記物理シミュレータと前記計算機シミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記計算機シミュレータに接続され該物理シミュレータと該計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータ。
【請求項2】
前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻を同期させた上で、シミュレーションを行うことを特徴とする請求項1に記載のシミュレータ。
【請求項3】
内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置3は、前記物理シミュレータおよび前記計算機シミュレータから内部時刻の伝達がある度に両者を比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法。
【請求項4】
物理シミュレータと、複数の計算機シミュレータと、ネットワークシミュレータと、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータに接続され該物理シミュレータと該複数の計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータ。
【請求項5】
前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記複数の計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、ネットワークシミュレータは、ネットワークの持つ遅延の特性などのネットワークの仕様に関する情報を入力し、複数の計算機シミュレータとの間で情報の送受信をし、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻と前記ネットワークシミュレータ上の内部時刻とを同期させた上で、シミュレーションを行うことを特徴とする請求項4に記載のシミュレータ。
【請求項6】
内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、複数の計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、ネットワークシミュレータにおいてシミュレータ部のシミュレーションサイクルを1つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置3は、前記物理シミュレータ、前記複数の計算機シミュレータ、およびネットワークシミュレータから内部時刻の伝達がある度にそれらを比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2009−115602(P2009−115602A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−288591(P2007−288591)
【出願日】平成19年11月6日(2007.11.6)
【出願人】(301021533)独立行政法人産業技術総合研究所 (6,529)
【Fターム(参考)】