(57)【要約】  開発支援装置を複数接続した協調シミュレーションにおいて、ネットワークモデルや送受信するメッセージなどを自動設定する開発支援装置を提供し、効率的な開発が行えるようにする。開発支援装置１が読み込みと実行できる形式の通信定義ファイル１１を開発支援装置２が生成し、開発支援装置１が通信定義ファイル１１を読み込むことで、開発支援装置１が送受信するべきメッセージを自動的に設定することを特徴とする。
2019021898.tif 000002
【特許請求の範囲】
【請求項１】
異なる種類の検証装置を含む開発支援装置であって、
一方の前記検証装置は、他方の前記検証装置で読み取れるモデル設定データを生成する生成部を有し、
一方の前記検証装置は、前記生成部で前記モデル設定データを生成した場合、他方の前記検証装置に起動タイミングを指令する、
ことを特徴とする開発支援装置。
【請求項２】
他方の前記検証装置は、一方の前記検証装置から送信される前記モデル設定データを読み取る読み取り部を有する、ことを特徴とする、請求項１記載の開発支援装置。
【請求項３】
一方の前記検証装置と他方の前記検証装置とが接続した場合、他方の前記検証装置が前記モデル設定データに基づくモデルを起動する、ことを特徴とする、請求項１記載の開発支援装置。
【請求項４】
請求項１において、
一方の前記検証装置は、検証が完了した場合、他方の前記検証装置に完了を通知する、
ことを特徴とする、請求項１記載の開発支援装置。
【請求項５】
請求項４において、
一方の前記検証装置と他方の前記検証装置とが接続した場合、他方の前記検証装置は、一方の前記検証装置からの完了通知に基づき、検証装置を終了する、ことを特徴とする、請求項１記載の開発支援装置。
【請求項６】
一方の前記検証装置と他方の前記検証装置との間の同期をとる時間情報を有する同期装置を備える、ことを特徴とする請求項１記載の開発支援装置。
【請求項７】
前記モデル設定データは、定義されたノードと、受信するメッセージと、送信するメッセージと、時間情報を含む、ことを特徴とする請求項１記載の開発支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる開発支援装置を連携して動作させるための処理に関する。
【背景技術】
【０００２】
先進運転支援や自動運転の先行開発において、制御アルゴリズムや信号処理開発などをするためのMATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））等や、ロボット開発分野で開発支援をするライブラリやツールを提供しているオープンソフトウェアのROS（Robot Operating System）を使用した開発が主流である。【０００３】
これらの異なる開発支援装置をネットワークで接続して、シミュレーションを行えることが求められている。【０００４】
これにより、各開発支援装置の得意分野、特徴を各々で吸収することができ、容易に混合した技術を連携したシミュレーションを行うことができる。【０００５】
特許文献１は、複数のシミュレータを連携させる情報処理装置およびその方法を記載する。この装置およびその方法においてシミュレータに必要な時間情報を有する動作シナリオをシナリオ実行部が各シミュレータに実行指示を与え、シミュレータを同期させる装置と方法が記載されている。【０００６】
特許文献２は、システムシミュレータとマイコンのＣＰＵシミュレータから構成された協調シミュレーション環境においてタイムスタンプ付データを両シミュレータ間で交換されＣＰＵシミュレータがタイムスタンプ付データに合わせて割り込みを発生させて同期するシミュレーション装置が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１４−２９６３９号公報
【特許文献２】特開２０１３−８４１６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１の技術においては、外部からの入力をシナリオとして生成し実行することでシミュレータを協調する。この時に各シミュレータが必要とする入出力は、予め設定しておく必要がある。【０００９】
特許文献２の技術において、同期信号に合わせてＣＰＵシミュレータが一方のシミュレータの同期をとり強調する。特許文献１と同様に各シミュレータが必要とする入出力は予め設定しておく必要がある。【００１０】
以上のように、異なるシミュレーション検証を行える開発支援装置を複数接続した協調シミュレーションにおいて、一方の開発支援装置と他方の開発支援装置のシミュレーションモデルやネットワークモデルが異なる場合、両者の接続の方法が課題となる。一方の開発支援装置が時間周期を起動要因とし、他方の開発支援装置が通信相手との送受信イベントを起動要因としている場合、両者の通信モデルと、接続先との送受信処理を各開発支援装置に適合させて設定する必要がある。【００１１】
このために一方の開発支援装置で送受信するメッセージの設定を行い、他方の開発支援装置では、一方の開発支援装置のネットワークモデルの適合や送受信するメッセージの仕様に合わせた設定を手作業で行う必要があり、開発工数を要する点が課題であった。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、通信相手のネットワークモデルや送受信するメッセージなどが異なる開発支援装置の協調シミュレーションにおいて、一方の開発支援装置が実行できる通信定義ファイルを他方の開発支援装置が生成し、一方の開発支援装置が通信定義ファイルを読み込むことで、他方の開発支援装置が送受信するべきメッセージを自動的に設定することを特徴とする。
【発明の効果】
【００１３】
ネットワークモデルや送受信するメッセージなどが異なる開発支援装置同士による協調シミュレーションにおいて、一方の開発支援装置が通信定義ファイルを生成することで、他方の開発支援装置が通信定義ファイルを読み込むことで、自動でネットワークの構築と送受信するメッセージの設定をすることができ、一方の開発支援装置のタイミングで他方の開発支援装置を起動することができる。上記により、他方の開発支援装置の実装をする必要がなくなり、開発効率が向上する。
【図面の簡単な説明】
【００１４】
【図１】開発支援装置の協調システムの構成図である。
【図２】通信定義ファイルの例である。
【図３】開発支援装置１と開発支援装置２の起動からシミュレーションを開始するまでのフローチャートである。
【図４】開発支援装置１の処理を示すフローチャートである。
【図５】開発支援装置２の処理を示すフローチャートである。
【図６】複数の開発支援装置が接続された協調シミュレーションの一例の概略図である。
【図７】Simulink１と、ROS１と、ROS３との構成を示す図である。
【図８】通信定義ファイルの例である。
【図９】通信定義ファイルの例である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面を参照して説明する。
【実施例１】
【００１６】
実施例１によるMATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））、ROS（Robot Operating System）を用いた協調シミュレーション環境において、ネットワーク環境の構築と連携先システムの起動と終了を行う機構について、図面に従って説明する。【００１７】
図１は、本実施例１における開発支援装置の協調システムの構成図である。開発支援装置１は、一定時間の周期を起動要因とするシミュレータを用いた例であり、車両制御、信号制御の開発においてモデルベース開発に用いられる定められたサンプリング周期で動作するシミュレーションモデル６がモデル記憶装置７に格納され、外部データ送受信装置９を備えたパーソナルコンピュータである。【００１８】
外部データ送受信装置９は、例えば、MATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））から提供されているROS（Robot Operating System）のネットワークモデルを構築することなどができるRobotics System Toolboxなどが挙げられる、この開発支援装置１には、他に、外部設定ファイル読込実行装置３と、同期装置８と、を備える。【００１９】
開発支援装置２は、通信イベントを起動要因とするシミュレータを用いた例であり、各機能を有したソフトウェアをノードとして複数同時実行してノードが互いにデータのやり取りをするような分散システムで、出版−購読型のネットワークモデルを有し、シミュレータ１５がシミュレータ実行部１６で実行されるように実装され、外部データ送受信装置１７を備えたパーソナルコンピュータである。【００２０】
例えば、ロボット開発用のライブラリやドライバを多く提供しているオープンソースソフトウェアのロボット用ソフトウェアフレームワークのROS（Robot Operating System）などが挙げられる。本実施例では、シミュレータ１５には、検証するシミュレータの他に、開発者が開発した演算機能群やＲＯＳが提供するライブラリ群を含んだ構成とする。この開発支援装置２には、他に、通信定義生成装置１０と、開発支援装置管理装置１２と、を備える。【００２１】
図１では、２つの開発支援装置から構成されるように記載しているが、構成数を限定するものではなく、本実施例以上の構成数であってもよい。本実施例では、開発支援装置１は、MATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））、開発支援装置２は、ＲＯＳであるとして説明する。【００２２】
通信定義生成装置１０は、シミュレーションの検証前に、あらかじめ、通信定義ファイル１１を生成する装置である。通信定義ファイル１１は、簡易的なプログラム言語であるスクリプト言語で生成されたファイルである。ここで、スクリプト言語からなるファイルと定義しているが、言語、ファイル、を限定するものではない。この実施例では、MATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））が読み込みと実行をすることができるMATLABソースコードであるとして説明する。【００２３】
図２は、通信定義生成装置１０が生成した通信定義ファイル１１の一例である。図２において、２行目は、開発支援装置１のノード種別の定義を指す。４行目は、開発支援装置１が外部から受信するための定義を指す。メッセージ名、メッセージのデータ型などを定義する。６行目は、開発支援装置１が外部へ送信するための定義を指す。送信するメッセージ名、このメッセージのデータ型などを定義する。８行目は、送信するメッセージの送信周期の定義を指す。図２の例では、１０［Ｈｚ］と定義している。送信周期は、周波数の他に、時間などを定義してもよい。【００２４】
通信定義読込部５は、通信定義ファイル１１を読み込み、実行することで、開発支援装置１は、定義されたノードと、受信するメッセージと、送信するメッセージと、を自動で読み込み、実行することで、自動設定を行うものである。実施例では、プログラムに限定するものはなく、グラフィカルユーザーインターフェースやそのほかの手法を用いてもよい。【００２５】
開発支援装置１と開発支援装置２間で通信する場合、開発支援装置間で送受信するメッセージの実装を手作業で行う必要であり、開発工数が多くなる。しかし、通信定義ファイルを開発支援装置２上で生成することで、開発支援装置１での実装がなくなるため、開発工数が少なくなる。また、開発支援装置１が自動的に定義ファイルを読み込むことで、開発効率も向上することになる。【００２６】
開発支援装置管理装置１２は、外部開発支援装置管理部１３と開発支援装置起動部１４で構成されており、主にシステムの管理をする装置であり、プログラムもしくは、グラフィカルユーザーインターフェース（ＧＵＩ）で構成される。【００２７】
開発支援装置起動部１４は、シミュレータ１５と、外部開発支援装置管理部１３と、を管理するものである。【００２８】
外部開発支援装置管理部１３は、協調対象の開発支援装置に起動と、実行と、を指示する装置である。外部開発支援装置管理部１３の起動指示により、開発支援装置実行部４は、要求に応じて開発支援装置１、と、シミュレーションモデル６を起動する。【００２９】
図３は、開発支援装置１と、開発支援装置２が、起動からシミュレーションを開始するまでのフローチャートである。初めに、開発支援装置管理装置１２を起動（Ｓ１０１）する。次に、開発支援装置起動部１４を実行（Ｓ１０２）して開発支援装置２のシミュレータ１５を起動（Ｓ１０３）後、外部開発支援装置管理部１３を実行する（Ｓ１０４）。外部開発支援装置管理部１３の実行後、開発支援装置１の開発支援装置実行部４が実行（Ｓ１０６）され、通信定義読込部５による通信定義ファイル読み込み（Ｓ１０７）が行われる。開発支援装置１が外部データ送受信装置９を経由して受信するデータと、送信するデータと、送受信周期と、を自動的に設定される。最後に、シミュレーションモデル６の起動（Ｓ１０８）が行われ、双方で情報を送受信しながら協調シミュレーションが開始される。上記により、各開発支援装置を開発者が個別に起動する必要がなく、操作性が向上する。【００３０】
同期装置８は、開発支援装置２から送受信するメッセージに時間情報を付加して開発支援装置１の実行周期に合わせた情報を送受信させる装置である。例えば、開発支援装置２が送信したメッセージを開発支援装置１が受信したメッセージは、１［ｓ］前の演算結果であるなど不確定な遅延を有する可能性がある。このため、開発支援装置１、開発支援装置２がそれぞれシミュレートしている時刻の差異が最小となるよう制御することでシミュレーション結果の信頼性を向上することができる。【００３１】
開発支援装置１のシミュレーション開始から終了までのフローチャートを図４に示す。図４に示すように、開発支援装置１の起動指示を開発支援装置実行部４が受信し、シミュレーションモデル６に起動指示を行う（Ｓ１１０）。シミュレーションモデル６は、起動指示を受信後、シミュレーションモデルを起動する（Ｓ１１１）。シミュレーションモデル６の起動後、外部データ送受信装置９の通信設定を自動で行い（Ｓ１１２）、受信処理を開始する（Ｓ１１３）。【００３２】
上記、開発支援装置１の起動処理後、シミュレーションモデル６は、サンプリング周期に伴い、実行され（Ｓ１１４）、シミュレーションモデルの処理結果等をモデル記憶装置に格納する（Ｓ１１５）。シミュレーションモデル６が送信する情報は、同期装置８に格納される（Ｓ１１６）。同期装置８に格納された送信する情報は、時間情報を付加して（Ｓ１１７）、通信定義ファイルに設定された送信周期に従い、開発支援装置２へ送信する（Ｓ１１８）。上記は、開発支援装置２の終了信号を受信するまで繰り返し行われる。【００３３】
図５は、開発支援装置２のシミュレーション開始から終了までのフローチャートである。開発者は、開発支援装置管理装置１２を起動させ（Ｓ１２０）、開発支援装置起動部１４を実行する（Ｓ１２１）。次に、外部開発支援装置管理部１３を実行し、開発支援装置１に起動指示を送信（Ｓ１２２）後、シミュレータ１５を起動する（Ｓ１２３）。【００３４】
上記、開発支援装置２内の起動処理後は、外部データ送受信装置１７が情報を受信し、シミュレータ実行部に受信情報を送信する（Ｓ１２４）。シミュレータ実行部１６は、受信情報からシミュレータ１５に実行指示与える（Ｓ１２５）。シミュレータ１５は、シミュレータ実行部１６からの実行指示に従い、処理が実行され（Ｓ１２６）、シミュレータの実行結果を外部へ送信する（Ｓ１２７）。上記は、シミュレータ１５が終了するまで繰り返し行われ、シミュレータ１５が終了した場合（Ｓ１２８）は、開発支援装置１に終了信号を送信し（Ｓ１２９）、協調シミュレータが終了となる。【００３５】
本実施例１によれば、一方の開発支援装置が他方の開発支援装置の通信モデルを定義した通信定義ファイルを作成することで、他方の開発支援装置は、この通信定義ファイルを自動的に取り込むことで相互に通信する環境を容易に構築することができる。また、ＲＯＳのような出版−購読型の通信モデルから受信する開発支援装置の場合、同期装置８により、開発支援装置間の制御周期に同期して入出力が行われるため、精度の高い協調シミュレーションを実現することができる。
【実施例２】
【００３６】
実施例２では、複数の開発支援装置が接続された協調シミュレーションにおいて、協調シミュレーションするための通信定義の一例について説明する。【００３７】
図６は、複数の開発支援装置、例えば、MATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））とＲＯＳをネットワークで接続した概要図である。例えば、Simulink1は、車両に搭載されているエンジンと、ブレーキと、ステアリングと、などを模擬したプラントモデルと呼ばれる車両シミュレータであり、Simulink2は、周辺の環境と車両の状態からどのように走行するかを判断、制御と、する統合制御をシミュレーションであり、ROS1は、自動車が走行する環境を模擬するシミュレーションであり、ROS2は、車両に取り付けられたセンサの情報を統合して認知するシミュレーションであり、ROS3は、センサや地図から自車両の位置を推定するシミュレーションであり、ＴＣＰ／ＵＤＰネットワーク（各開発支援装置を接続しているネットワーク１９）で接続されている。Simulink1と、Simulink2と、は、実施例１の開発支援装置１と同様の構成とする。また、ROS1と、ROS2と、ROS3と、は、実施例１の開発支援装置２と同様の構成とする。実施例では、ＴＣＰ／ＵＤＰネットワークに限定するものではなく、その他の方法を用いてもよい。【００３８】
上記の構成で、例えば、Simulink1と協調する開発支援装置がROS1と、ROS3であり、Simulink2と協調する開発支援装置がROS2である場合の通信定義ファイル生成について説明する。【００３９】
Simulink2とROS2の協調シミュレーションに関しては、実施例１と同様のため詳細の説明を省略する。ROS1と、RO3が同じSimulink1と協調する場合は、ROS1と、ROS3が個々に通信定義ファイルを生成する。【００４０】
図７にSimulink1と、ROS1と、ROS3と、の構成を示す。Simulink1は、外部設定ファイル読込実行装置２１を有し、ROS1は、通信定義生成装置２３を有し、ROS2は、通信定義生成装置２５を有している。また、Simulink1は、図１の開発支援装置１、ROS1と、ROS3と、は、図１の開発支援装置２と同様な構成であるが、図７では、省略する。協調シミュレーションのために、ROS1は、通信定義生成装置２３から通信定義ファイルa（２４）を生成し、ROS3は、通信定義生成装置２５から通信定義ファイルｂ（２６）を生成し、事前に準備する。Simulink1は、起動時に通信定義ファイルａ（２４）と、通信定義ファイルｂ（２６）と、を通信定義読込部２２から読み込むことで、自動的に２つの開発支援装置との通信設定を行うことができる。図８、９に通信定義ファイル１１の例を示す。図８は、ROS1が、図９は、ROS3が生成した通信定義ファイルである。【００４１】
各行の処理内容については、図２で説明しているため詳細は省略する。図８と図９では、ノード名と送受信するメッセージと送信周期を定義する。しかし、同名のノード名と、送受信メッセージを定義してしまうとSimulink1内、もしくは、ネットワーク内で、エラーが発生してしまうため、別名で定義する。また、Simulink1に送信させるメッセージがROS1とROS3で同じ場合は、一方の開発支援装置のみが生成することで、通信が可能となる。【００４２】
上記実施例は、組み合わせを限定するものではなく、それぞれ組み合わせてもよい。【００４３】
上記のように異なる機能を有した開発支援装置が複数構成された協調シミュレーション環境の場合は、ROS1と、ROS2と、ROS3と、が、Simulink1もしくは、Simulink2に送受信させたい情報を通信定義ファイルに任意に定義し、対象のMATLAB/Simulink（MATLAB（登録商標）、Simulink（登録商標））がこれを自動設定することで、容易に通信が確立され、複数の協調シミュレーションが実現できる。また、実装に多くの工数が必要とされる並列分散処理を、通信定義ファイルの生成と読み込める装置によって簡易に実現できるため、開発者は、並行開発が可能になり開発工数を減らすことができる。【００４４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理装置等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD（Solid State Drive）等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くこともできる。
【符号の説明】
【００４５】
１：開発支援装置
２：開発支援装置
３：外部設定ファイル読込実行装置
４：開発支援装置実行部
５：通信定義読込部
６：シミュレーションモデル
７：モデル記憶装置
８：同期装置
９：外部データ送受信装置
１０：通信定義生成装置
１１：通信定義ファイル
１２：開発支援装置管理装置
１３：外部開発支援装置管理部
１４：開発支援装置起動部
１５：シミュレータ
１６：シミュレータ実行部
１７：外部データ送受信装置
１９：各開発支援装置を接続しているネットワーク
２１：外部設定ファイル読込実行装置
２２：通信定義読込部
２３：通信定義生成装置
２４：通信定義ファイルａ
２５：通信定義生成装置
２６：通信定義ファイルｂ
【図１】
2019021898.tif 000003
【図２】
2019021898.tif 000004
【図３】
2019021898.tif 000005
【図４】
2019021898.tif 000006
【図５】
2019021898.tif 000007
【図６】
2019021898.tif 000008
【図７】
2019021898.tif 000009
【図８】
2019021898.tif 000010
【図９】
2019021898.tif 000011
【国際調査報告】
2019021898.tif 000012
2019021898.tif 000013
2019021898.tif 000014