(57)【要約】【課題】ホスト上でターゲット上のプロセッサの動作を厳密にシミュレートすることができる計算機シミュレータを用い、それを物理シミュレータに接続することにより、知的システム全体の厳密なシミュレーションを可能にした物理シミュレータと計算機シミュレータの両機能を持つシミュレータを提供すること。【解決手段】物理シミュレータ１と、計算機シミュレータ２と、物理シミュレータ１と計算機シミュレータ２との間で情報の授受を行う通信手段Ｃ１と、物理シミュレータ１と計算機シミュレータ２に接続され物理シミュレータ１と計算機シミュレータ２の内部時刻を同期させる内部時刻同期手段３とを備えることを特徴とするシミュレータである。【選択図】図１
2009115602.tif 000002
【特許請求の範囲】
【請求項１】
物理シミュレータと、計算機シミュレータと、前記物理シミュレータと前記計算機シミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記計算機シミュレータに接続され該物理シミュレータと該計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータ。
【請求項２】
前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻を同期させた上で、シミュレーションを行うことを特徴とする請求項１に記載のシミュレータ。
【請求項３】
内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置３は、前記物理シミュレータおよび前記計算機シミュレータから内部時刻の伝達がある度に両者を比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法。
【請求項４】
物理シミュレータと、複数の計算機シミュレータと、ネットワークシミュレータと、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータに接続され該物理シミュレータと該複数の計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータ。
【請求項５】
前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記複数の計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、ネットワークシミュレータは、ネットワークの持つ遅延の特性などのネットワークの仕様に関する情報を入力し、複数の計算機シミュレータとの間で情報の送受信をし、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻と前記ネットワークシミュレータ上の内部時刻とを同期させた上で、シミュレーションを行うことを特徴とする請求項４に記載のシミュレータ。
【請求項６】
内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、複数の計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、ネットワークシミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置３は、前記物理シミュレータ、前記複数の計算機シミュレータ、およびネットワークシミュレータから内部時刻の伝達がある度にそれらを比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレータに係わり、特に、シミュレーションを用いたシステム開発に適用可能な物理シミュレータと計算機シミュレータの両機能を持つシミュレータに関する。
【背景技術】
【０００２】
近年ロボットなど、実世界で動作する知的システムに対する需要が高まっている。それらの知的システムの開発においては、設計を行うとともに、設計を行ったシステムの動作を確認しながら開発を進める必要がある。システムの動作を確認するためにいちいち実システムを作っていたのでは時間・コストがかかりすぎるなどの理由から、実システムを作らないでもシステムの動作を確認することができるシミュレーション技術が幅広く利用されている。例えば、物理シミュレータを使うと、ロボットの構造をデータとして与え、それを元に力学計算を行い、さらにロボットの動作環境に関するデータを元に接触判定を行うことで、実システムを作らないでも動作を検証することができる。
【０００３】
従来の知的システム開発においては、主に上で例示したような物理シミュレータが利用されてきた。しかし、知的システム全体の開発について考えた場合、システムの物理的な動作を検証するとともに、それを駆動するソフトウェアの動作についても併せて検証する必要がある。そのような開発の場面においては、物理シミュレーションと併せてソフトウェアの動作もシミュレートすることが要求される。
【０００４】
これらの要求に対して従来技術では、物理シミュレータを制御回路シミュレータと接続できるようにしたものや、実時間動作する物理シミュレータをホスト上で動作する制御ソフトウェアと接続することで、任意のソフトウェアの動作を検証可能にしたものなどがある。
なお、特許文献１には、物理シミュレータにそれを制御する組み込みプロセッサを接続しシミュレート可能にする技術が開示されている。
【特許文献１】特開平１１−２９６４０４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、従来のシミュレーション技術には、以下のような制限があった。物理シミュレータを制御回路シミュレータに接続する技術を用いる場合、シミュレーションを行うことができるのは制御回路のみであり、複雑なソフトウェアの動作をシミュレートすることができなかった。物理シミュレータをホスト上で動作する制御ソフトウェアに接続する技術を用いる場合、ソフトウェアの動作シミュレーションを厳密に行うことができない。なぜなら、実際のシステム開発の場面においては、ホストで用いられるプロセッサとターゲットで用いられるプロセッサが異なる場合が多いためである。その場合、ホスト上でのソフトウェアの動作がターゲット上でのソフトウェアの動作と完全には一致しないため、ソフトウェアの動作の完全な模擬ができない。
【０００６】
本発明の目的は、上記の従来技術の問題点に鑑みて、ホスト上でターゲット上のプロセッサの動作を厳密にシミュレートすることができる計算機シミュレータを用い、それを物理シミュレータに接続することにより、知的システム全体の厳密なシミュレーションを可能にした物理シミュレータと計算機シミュレータの両機能を持つシミュレータを提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、次のような手段を採用した。
第１の手段は、物理シミュレータと、計算機シミュレータと、前記物理シミュレータと前記計算機シミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記計算機シミュレータに接続され該物理シミュレータと該計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータである。
第２の手段は、第１の手段において、前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻を同期させた上で、シミュレーションを行うことを特徴とするシミュレータである。
第３の手段は、内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置３は、前記物理シミュレータおよび前記計算機シミュレータから内部時刻の伝達がある度に両者を比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法である。
第４の手段は、物理シミュレータと、複数の計算機シミュレータと、ネットワークシミュレータと、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータとの間で情報の授受を行う通信手段と、前記物理シミュレータと前記複数の計算機シミュレータと前記ネットワークシミュレータに接続され該物理シミュレータと該複数の計算機シミュレータの内部時刻を同期させる内部時刻同期手段とを備えることを特徴とするシミュレータである。
第５の手段は、第４の手段において、前記物理シミュレータは、力学計算に用いる時間情報を内部時刻として持ち、構造に関する情報と環境に関する情報を入力し、力学計算および接触判定を行い、前記複数の計算機シミュレータは、模擬するプロセッサのクロック情報をクロック周期によって時間情報に変換して内部時刻として持ち、ソフトウェアに関する情報とプロセッサの仕様に関する情報を入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行し、ネットワークシミュレータは、ネットワークの持つ遅延の特性などのネットワークの仕様に関する情報を入力し、複数の計算機シミュレータとの間で情報の送受信をし、前記内部時刻同期手段により前記物理シミュレータ上の内部時刻と前記計算機シミュレータ上の内部時刻と前記ネットワークシミュレータ上の内部時刻とを同期させた上で、シミュレーションを行うことを特徴とするシミュレータである。
第６の手段は、内部時刻同期装置からの指令に従って、物理シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、複数の計算機シミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置の指令に従って、ネットワークシミュレータにおいてシミュレータ部のシミュレーションサイクルを１つ進め、内部時刻保持器において内部時刻を加算するステップと、該内部時刻を前記内部時刻同期装置に伝達するステップと、前記内部時刻同期装置３は、前記物理シミュレータ、前記複数の計算機シミュレータ、およびネットワークシミュレータから内部時刻の伝達がある度にそれらを比較し、時刻の少ない方のシミュレータに実行指令を出力するステップとからなることを特徴とするシミュレータ方法である。
【発明の効果】
【０００８】
本発明によれば、プロセッサ上での複雑なソフトウェアの動作をシミュレートでき、なおかつ、ホストとターゲットとで用いるプロセッサが異なる場合でも、ソフトウェアの厳密な動作をシミュレートできるようになる。その結果、システム開発の利便性が大幅に向上させることができる。
また、複数の計算機シミュレータを用いる構成においては、計算機間をつなぐネットワークの遅延などを模擬するネットワークシミュレータも併せて用い、それを物理シミュレータ、計算機シミュレータの内部時刻と同期させることにより、複数計算機の協調によって構成されるシステムのシミュレーションも行うことができる。
【発明を実施するための最良の形態】
【０００９】
本発明の第１の実施形態を図１および図２を用いて説明する。
図１は、本実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
同図に示すように、このシミュレータは、物理シミュレータ１と計算機シミュレータ２と内部時刻同期手段３とから構成され、物理シミュレータ１と計算機シミュレータ２の両者の間には、情報をやりとりするための通信手段としての接続C1が設けられ、計算機シミュレータ２から物理シミュレータ１への制御情報の伝達や、物理シミュレータ１から計算機シミュレータ２への物理情報の伝達などが行われる。
【００１０】
物理シミュレータ１は、ロボットの構造に関する情報（構造データ）４と環境に関する情報（環境データ）５をデータとして入力し、力学計算および接触判定を行う。計算機シミュレータ２は、ソフトウェアに関する情報（ソフトウェアデータ）６とプロセッサの仕様に関する情報（プロセッサ仕様データ）７をデータとして入力し、ソフトウェアを命令列として読み出しその命令列をプロセッサの仕様に従って模擬的に実行する。また、物理シミュレータ１は力学計算に用いる時間情報を内部時刻として持ち、計算機シミュレータ２はクロック情報をプロセッサの仕様のうちのクロック周期の情報を用いて時間情報に変換し内部時刻として持つ。内部時刻同期装置３は物理シミュレータ１と計算機シミュレータ２の両者に接続し、時刻の同期を行う。内部時刻同期装置３はその内部に全体実行制御部８を持ち、物理シミュレータ１はその内部に実行制御部９と内部時刻保持器１０を持ち、計算機シミュレータ２はその内部に実行制御部１１と内部時刻保持器１２を持つ。
【００１１】
図２は、図１に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
物理シミュレータ１と計算機シミュレータ２は各々のシミュレーションサイクルに従って動作する。物理シミュレータ１の実行制御部９は、内部時刻同期装置３の全体実行制御部８からの指令に従って、物理シミュレータ１のシミュレータ部１３のシミュレーションサイクルを１つ進め、物理シミュレータ１の内部時刻保持器１０において内部時刻を加算し、その内部時刻を内部時刻同期装置３の全体実行制御部８に伝達する。次に、計算機シミュレータ２の実行制御部１１は、内部時刻同期装置３の全体実行制御部８からの指令に従って、計算機シミュレータ２のシミュレータ部１４のシミュレーションサイクルを１つ進め、計算機シミュレータ２の内部時刻保持器１２において内部時刻を加算し、その内部時刻を内部時刻同期装置３の全体実行制御部８に伝達する。内部時刻同期装置３の全体実行制御部８においては、伝達された物理シミュレータ１の内部時刻と、伝達された計算機シミュレータ２の内部時刻を記憶し、物理シミュレータ１および計算機シミュレータ２から内部時刻の伝達がある度に両者を比較し、時刻の少ない方の物理シミュレータ１の実行制御部９または計算機シミュレータ２の実行制御部１１に実行の指令を出す。
【００１２】
次に、本発明の第２の実施形態を図３および図４を用いて説明する。
図３は、本実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
同図に示すように、このシミュレータは、物理シミュレータ１５と複数の計算機シミュレータ１６，１７とネットワークシミュレータ１８と内部時刻同期装置１９とから構成される。物理シミュレータ１５と複数の計算機シミュレータ１６，１７との間には、情報をやりとりするための通信手段としての接続Ｃ２，Ｃ３があり、計算機シミュレータ１６，１７から物理シミュレータ１５への制御情報の伝達や、物理シミュレータ１５から計算機シミュレータ１６，１７への物理情報の伝達などが行われる。
【００１３】
物理シミュレータ１５は、ロボットの構造に関する情報（構造データ）２０と、環境に関する情報（環境データ）２１をデータとして入力し、力学計算および接触判定を行う。計算機シミュレータ１６，１７は、ソフトウェアに関する情報（ソフトウェアデータ）Ａ２２，Ｂ２４と、プロセッサの仕様に関する情報（プロセッサ仕様データ）Ａ２３，Ｂ２２５をデータとして入力し、ソフトウェアを命令列として読み出し、その命令列をプロセッサの仕様に従って模擬的に実行する。ネットワークシミュレータ１８は、そのネットワークの持つ遅延の特性などのネットワークの仕様に関する情報（ネットワーク仕様データ）２４をデータとして入力し、複数の計算機シミュレータ１６，１７との間で情報のやりとりをするための通信手段としての接続Ｃ４，Ｃ５を持ち、計算機シミュレータ１６，１７上で模擬されるプロセッサ間の通信をネットワークの仕様に従って模擬する。
【００１４】
また、物理シミュレータ１５は力学計算に用いる時間情報を内部時刻として持ち、計算機シミュレータ１６，１７はクロック情報をプロセッサの仕様のうちのクロック周期の情報を用いて時間情報に変換し内部時刻として持ち、ネットワークシミュレータ１８は模擬するネットワークの時間情報を内部時刻として持ち、内部時刻同期装置１９は物理シミュレータ１５と計算機シミュレータ１６，１７とネットワークシミュレータ１８の全てと接続し、時刻の同期を行う。また、内部時刻同期装置１９はその内部に全体実行制御部２６を持ち、物理シミュレータ１５はその内部に実行制御部２７と内部時刻保持器２８を持ち、計算機シミュレータ１６，１７は各々の内部に実行制御部２９，３１と内部時刻保持器３０，３２を持ち、ネットワークシミュレータ１８はその内部に実行制御部３３と内部時刻保持器３４を持つ。
【００１５】
図４は、図３に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
物理シミュレータ１５と計算機シミュレータ１６，１７は各々のシミュレーションサイクルに従って動作する。物理シミュレータ１５の実行制御部２７は、内部時刻同期装置１９の全体実行制御部２６からの指令に従って、物理シミュレータ１５のシミュレータ部３５のシミュレーションサイクルを１つ進め、物理シミュレータ１５の内部時刻保持器２８の内部時刻を加算し、その内部時刻を内部時刻同期装置１９の全体実行制御部２６に伝達する。計算機シミュレータ１６，１７の実行制御部２９，３１は、内部時刻同期装置１９の全体実行制御部２６からの指令に従って、計算機シミュレータ１６，１７のシミュレータ部３６，３７のシミュレーションサイクルを１つ進め、計算機シミュレータ１６，１７の内部時刻保持器３０，３２の内部時刻を加算し、その内部時刻を内部時刻同期装置１９の全体実行制御部２６に伝達する。
【００１６】
ネットワークシミュレータ１８の実行制御部３３は、内部時刻同期装置１９の全体実行制御部２６からの指令に従って、ネットワークシミュレータ１８のシミュレータ部３８のシミュレーションサイクルを１つ進め、ネットワークシミュレータ１８の内部時刻保持器３４の内部時刻を加算し、その内部時刻を内部時刻同期装置１９の全体実行制御部２６に伝達する。内部時刻同期装置１９の全体実行制御部２６においては、伝達された物理シミュレータ１５の内部時刻と、伝達された計算機シミュレータ１６，１７の内部時刻と、伝達されたネットワークシミュレータ１８の内部時刻を記憶し、各々から伝達がある度に全ての時刻から最も少ない時刻を探しだし、最も時刻の少ない物理シミュレータ１５の実行制御部２７、計算機シミュレータ１６，１７の実行制御部２９，３１、またはネットワークシミュレータ１８の実行制御部３３に実行の指令を出す。
【図面の簡単な説明】
【００１７】
【図１】第１の実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
【図２】図１に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
【図３】第２の実施形態に係るに物理シミュレータと計算機シミュレータの両機能を持つシミュレータの構成を示す図である。
【図４】図３に示した物理シミュレータと計算機シミュレータの両機能を持つシミュレータにおける時刻の同期を行う際の手順を示す図である。
【符号の説明】
【００１８】
１  物理シミュレータ
２  計算機シミュレータ
３  内部時刻同期手段
４  構造データ
５  環境データ
６  ソフトウェアデータ
７  プロセッサ仕様データ
８  全体実行制御部
９  実行制御部
１０  内部時刻保持器
１１  実行制御部
１２  内部時刻保持器
１５  物理シミュレータ
１６，１７  計算機シミュレータ
１８  ネットワークシミュレータ
１９  内部時刻同期装置
２０  構造データ
２１  環境データ
Ａ２２，Ｂ２４  ソフトウェアデータ
Ａ２３、Ｂ２５  プロセッサ仕様データ
２４  ネットワーク仕様データ
２６  全体実行制御部
２７  実行制御部
２８  内部時刻保持器
２９，３１  実行制御部
３０，３２  内部時刻保持器
３３  実行制御部
３４  内部時刻保持器
３５  シミュレータ部
３６，３７  シミュレータ部
【図１】
2009115602.tif 000003
【図２】
2009115602.tif 000004
【図３】
2009115602.tif 000005
【図４】
2009115602.tif 000006