(57)【要約】【課題】  プログラムモジュール間の同期を自動的に設定して制御することを可能としたデータ処理装置を提供する。【解決手段】  ＰＵ（プログラムモジュール、Processing Unit）１〜ＰＵ４、９間でデータ１１〜１３、３１、３２の授受を行うデータ処理装置であって、統合用ＰＵ８は、各ＰＵ１〜４間のデータ授受の接続関係に基づいてデータ同期が必要なＰＵを同期グループ（グループ０＝ＰＵ１、２、３、グループ１＝ＰＵ１、３、４）としてまとめて統合し、まとめられた同期グループ中のＰＵを同期させて処理を実行する。【選択図】  図１
2010231556.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムモジュール間でデータの授受を行うデータ処理装置において、
各モジュールにおけるデータ授受の接続関係に基づいてデータ同期が必要なモジュールを同期グループとしてまとめて統合する統合用プログラムモジュールを備えており、
まとめられた同期グループ中のプログラムモジュールを同期させて処理を行うことを特徴とするデータ処理装置。
【請求項２】
各プログラムモジュールは、個々に識別符号を有しており、前記統合用プログラムモジュールは、各プログラムモジュールが起動する際に、自己の識別符号とデータ同期を要する他のプログラムモジュールの識別符号を通知させることにより、前記統合を行うことを特徴とする請求項１記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムモジュールを同期させてデータ処理を行うデータ処理装置に関する。
【背景技術】
【０００２】
複雑なデータ処理を行う場合に、複数の装置やプログラムモジュールを組み合わせることでその処理を行うシステムが知られている。こうしたシステムで周期的なデータ処理を行う場合には、各装置やプログラムモジュールを同期させて、適切なタイミングで処理を行う必要がある。特許文献１に記載されている技術では、第１、第２のＥＣＵからは出力結果に時間データを付して第３のＥＣＵへと送信し、第３のＥＣＵは、第１のＥＣＵと第２のＥＣＵの出力結果中の時間データの差が所定時間内の場合に、それらを利用した処理を行うというものである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２０１１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この特許文献１の技術では、所定時間内に出力されたデータを用いて処理を行うことは可能となるものの、例えば、各ＥＣＵの処理を確実に同期させるものではない。システムの設計段階でこれらの同期を設定する手法もあるが、システム更新や統合の度に同期設定を見直す必要があり、煩雑になる。また、システム内に同期周期の異なるプロセスが存在するような場合や同期周期が可変のプロセスが存在するような場合には対応が困難である。
【０００５】
そこで、本発明は、プログラムモジュール間の同期を自動的に設定して制御することを可能としたデータ処理装置を提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係るデータ処理装置は、複数のプログラムモジュール間でデータの授受を行うデータ処理装置において、各モジュールにおけるデータ授受の接続関係に基づいてデータ同期が必要なモジュールを同期グループとしてまとめて統合する統合用プログラムモジュールを備えており、まとめられた同期グループ中のプログラムモジュールを同期させて処理を行うことを特徴とする。
【０００７】
各プログラムモジュールは、個々に識別符号を有しており、統合用プログラムモジュールは、各プログラムモジュールが起動する際に、自己の識別符号とデータ同期を要する他のプログラムモジュールの識別符号を通知させることにより、この統合を行うとよい。
【発明の効果】
【０００８】
本発明によれば、統合用プログラムモジュールが、各モジュールのデータ授受の接続関係に基づいてデータ同期が必要なモジュールを区分けし、同期グループとしてまとめて統合するので、自動的に同期グループの統合を行うことができるので、同期周期の異なるプロセスが含まれている場合もそれぞれを最適な同期周期で動作させることができる。また、同期周期が可変のプロセスが存在する場合にも、周期の変化に対応した動作が可能である。そのため、システム更新や統合も容易になる。識別符号を用いてこの同期処理の統合を行うことで統合処理が容易になり、利便性が向上する。
【図面の簡単な説明】
【０００９】
【図１】本発明に係るデータ処理装置の第１の実施形態の構成を示すブロック図である。
【図２】データ構造を説明する図である。
【図３】本発明に係るデータ処理装置における同期処理の課題を説明する図である。
【図４】本発明に係るデータ処理装置における同期グループを説明する図である。
【図５】統合用プログラムモジュールによる統合処理を説明する図である。
【図６】本発明に係るデータ処理装置による緊急停止通知機能を説明する図である。
【図７】本発明に係るデータ処理装置による自動停止伝播機能を説明する図である。
【図８】本発明に係るデータ処理装置による動作周期検証機能について説明する図である。
【図９】本発明に係るデータ処理装置による保守機能の階層処理を説明する図である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施の形態について詳細に説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては可能な限り同一の参照番号を附し、重複する説明は省略する。
【００１１】
図１は、本発明に係るデータ処理装置の第１の実施形態の構成を示すブロック図である。このデータ処理装置は、車両用のデータ処理装置であり、図示していないカメラからの入力画像（動画像）を基に、特徴点抽出を用いて、歩行者検出、姿勢推定等を行うものである。各プログラムモジュール（ＰＵ：Processing Unit）１〜４、７、９は、任意のユーザーアルゴリズムを実行するアルゴリズム実行部を中心に構成され、必要に応じてその入出力のため、任意のデータ（１１〜１３、３１、３２）を指定した別のＰＵに要求するデータ要求部と、別のＰＵの要求に応じてデータ（１１〜１３、３１、３２）を送信するデータ出力部とを備えている。
【００１２】
このうちＰＵ７は、他のＰＵ（１〜４、９）を自動的に接続して、そのデータ授受に基づいて前後のＰＵ間の接続関係をたどり、同期テーブルを自動生成する統合機能を有している。ＰＵ１は、入力画像を受けて前処理等を行うものであり、その動作周期は３０ｍｓである。ＰＵ３は、画像中の特徴点を抽出するものであり、その動作周期は５０ｍｓである。ＰＵ２は、特徴点抽出結果を基にして歩行者を検出するものであり、その動作周期は１５０ｍｓである。ＰＵ４は、特徴点抽出結果を基にして自車両の姿勢を推定するものであり、その動作周期は５００ｍｓである。ＰＵ９は、ＰＵ１で処理した画像データの任意のデータを表示するものである。
【００１３】
このＰＵ７が自動生成した同期テーブルに基づき、上記実施形態においては、ＰＵ１〜３がGroup０として１つの同期グループ５を形成する一方、ＰＵ１、３、４がGroup１として１つの同期グループ６を形成する。同期グループ５は、周期１５０ｍｓで同期する一方、グループ６は、周期５００ｍｓで同期する。ＰＵ９は、これらに対して独立して別個の周期で稼働する。
【００１４】
次に、具体的な統合手法について説明する。図２は、各データ１１〜１３、３１、３２のデータ構造を説明する図である。各データはヘッダ部Ｈ、グループＩＤ記述部Ｇとデータ部Ｄからなる。ヘッダ部Ｈには、出力元のＰＵを識別する情報が記載されているほか、他のＰＵと同期する必要の有無が記載されている。以下、図３に示されるようなデータ処理装置を例に説明する。このデータ処理装置は、カメラ９０で取得した画像を基にして自動運転を行うシステムである。本システムは、画像からＰＵ２０が特徴点を抽出し、その特徴点データを利用して、ＰＵ１０による障害物検出、ＰＵ３０による自己位置推定を実施する。ＰＵ４０は、障害物との衝突回避動作を行う必要性を判断して、非常停止等の衝突回避動作を実行する。ＰＵ５０は、現在位置や設定された目的地情報にもとづいて経路案内のための経路計画を作成する。
【００１５】
このシステムにおいては、障害物判定で判定した障害物位置と自己位置推定とで推定した現在位置とが同時刻のものでないと、衝突回避判定や経路計画において正しい判定を行うことができない。そこで、障害物検出を行うＰＵ１０と自己位置推定を行うＰＵ３０とは同期している必要がある。一方、ＰＵ４０による非常停止処理はこれより短い周期で実行することが可能である。このシステム全体を同期させると、最も処理速度の遅いＰＵ３０の自己位置推定の周期である５Ｈｚで動作させることになるが、緊急回避を行うには同期速度が遅すぎる。
【００１６】
本発明によれば、図示していない統合ＰＵにより、各ＰＵの接続関係に基づき、図４に示されるように、ＰＵ１０、ＰＵ４０を同期グループとして、周期１５Ｈｚで同期させる一方、ＰＵ３０、５０は、別の同期グループとして周期５Ｈｚで同期させる。具体的には、カメラ９０からのデータにタイムスタンプを割り当て、これに対応するデータについては、同じタイムスタンプを継承させる。同じタイムスタンプのデータ同士を用いることで同期をとることができる。例えば、カメラからの出力データを画像（１）、画像（２）、画像（３）、…、画像（ｎ）とすると、ＰＵ２０による特徴点抽出処理は、カメラ９０に対して動作周期が半分なので、入力データは、画像（１）、画像（３）、画像（５）、…、画像（２ｍ−１）となり、出力データは、特徴点（１）、特徴点（３）、特徴点（５）、…、特徴点（２ｍ−１）となる。
【００１７】
同様に、ＰＵ１０における障害物検出処理の入力データは、画像（１）、画像（３）、画像（５）、…、画像（２ｍ＋１）と、特徴点（１）、特徴点（３）、特徴点（５）、…、特徴点（２ｍ＋１）であり、出力データは、障害物（１）、障害物（３）、障害物（５）、…、障害物（２ｍ＋１）となる。一方、ＰＵ３０における自己位置推定の動作周期は、カメラ９０の１／６なので、その入力データは、特徴点（１）、特徴点（７）、特徴点（１３）、…、特徴点（６ｊ＋１）であり、出力データは、現在位置（１）、現在位置（７）、現在位置（１３）、…、現在位置（６ｊ＋１）となる。
【００１８】
ＰＵ４０、ＰＵ５０の各処理は、ＰＵ１０やＰＵ３０より速い動作周期で行うことができる。この場合、所望のタイムスタンプの入力データが得られない場合があるが、受信した入力データから所定の補間処理や予測処理により所望のタイムスタンプの入力データに相当するデータを求めて、使用するとよい。これにより、各ＰＵを効率よく同期させることができる。
【００１９】
統合用ＰＵによる統合処理を図５（ａ）、（ｂ）を参照して説明する。ここで、各ＰＵ（１５、２５、３５）には識別符号が付されている。図５（ａ）に示されるように、各ＰＵ（１５、２５、３５）は、初回起動時に、統合用ＰＵ５５に対して、自身の起動と自身が接続を希望するＰＵ（そのＰＵがデータ要求を行うＰＵ）を、この識別符号を用いて通知する。なお、同期が不要な場合には、他のＰＵの識別符号は通知しなくともよいし、同期が不要な旨を明示して通知する形式をとってもよい。統合用ＰＵ５５は、こうして各ＰＵから寄せられた接続を希望するＰＵの情報に基づいて各ＰＵの接続関係をたどり、同期テーブルを生成する。各ＰＵの接続関係をたどる手法は、前処理側から後処理側へと処理の方向にたどっていってもよいし、後処理側から前処理側へと処理の方向とは逆方向にたどっていってもよい。
【００２０】
そして、統合用ＰＵ５５は、接続を希望されたＰＵがすでに起動済みである場合には、その旨を識別符号により、ＰＵ（２５、３５）に対して通知する。これにより、ＰＵ間でネットワークが形成される。次回以降のサイクルにおいては、生成された同期テーブルに基づいて統合用ＰＵ５５が各ＰＵの起動タイミングを制御することで、各ＰＵを同期させる。
【００２１】
各ＰＵのいずれかが処理速度を変更可能な場合には、統合用ＰＵ５５は、同期テーブルに基づいて当該ＰＵの変更に合わせた同期処理の変更を行うことができる。例えば、こうした処理速度の変更としては、車線認識処理において、高速道路では、移動速度が高速になるので、白線の認識を簡易に行うことで、周期を高速化させる一方、一般道路では、周期を下げて認識処理に避ける時間を長くとることで、少し剥げた白線でも認識できるようにする。このように一部のＰＵの処理周期が変更された場合でも、本発明によれば各ＰＵを自動的に同期させて動作させることができる。さらに、本発明によれば、図１に示されるＰＵ９のように他のＰＵと同期を行う必要のないＰＵについては独立して動作させるので、効率よく動作させることができる。
【００２２】
以下、本発明に係るデータ処理装置における別の機能のいくつかを例示する。図６は、本発明に係るデータ処理装置による緊急停止通知機能を説明する図である。このデータ処理装置は、例えば、サーバ１５０とクライアント１００とが協働して処理をおこなうものであり、統合用ＰＵ１５１は、サーバ１５０上で稼働している。データ処理用のＰＵは、サーバ１５０上で稼働するＰＵ１５２と、クライアント１００上で稼働するＰＵ１１０で構成される。そして、サーバ１５０、ＰＵ１００のそれぞれで、診断用アプリケーション１５３、１１３が作動している。クライアント用の診断用アプリケーション１１３は、周期的にサーバ１５０の診断用アプリケーション１５３と通信するが、診断用アプリケーション１５３はタイムアウト監視を行う。
【００２３】
タイムアウトが発生しない場合には、通常の処理を継続するが、タイムアウトが発生した場合には、診断用アプリケーション１５３、１１３はそれぞれ動作中のＰＵ１５２、１１０に対してシグナルを送信する。図６に示される例では、診断用アプリケーション１１３からＰＵ１１０に対してシグナルＳ２が送信される。受診したＰＵ１１０では、異常時処理として登録された処理を実行する。図６に示される例では、メイン関数１１１が異常時処理ハンドラ１１２を呼び出して所定の異常時処理を実行する。
【００２４】
このように、診断用アプリケーションをＰＵとは別のプログラムとして構成することで、ＰＵが応答不能となった場合でもその動作異常を検地することができる。また、各ＰＵに診断機能を持たせるのではなく、クライアント、サーバごとに診断アプリケーションを動作させることで、無駄な通信を防ぎ、通信オーバーフローも防ぐことができる。
【００２５】
図７は、本発明に係るデータ処理装置による自動停止伝播機能を説明する図である。複数のモジュールが連動して動作している場合に、例えば、下流側のＰＵ−Ｈ２０８が何らかの事情で停止してしまった場合、このＰＵ−Ｈ２０８につながる系列のみにデータを送っているＰＵ（本例では、ＰＵ−Ｄ２０４、ＰＵ−Ｆ２０６、ＰＵ−Ｇ２０７が該当する。）は不要となる。これらのＰＵが駆動し続けるとネットワークリソース、ＣＰＵリソース等を消費することになり、好ましくない。そこで、各ＰＵは、データ出力に際して、送信先ＰＵのステータスを確認し、送信先の全てのＰＵが停止か、異常状態にある場合には、当該ＰＵも作動を停止させる。この結果、本鈴では、ＰＵ−Ｄ２０４、ＰＵ−Ｇ２０７は、ＰＵ−Ｈ２０８のステータス２１０を確認してＰＵ−Ｈ２０８の停止を確認し、自己のステータス２１１、２１２にその旨を記述し、作動を停止させる。ＰＵ−Ｆ２０６は、ＰＵ−Ｇ２０７のステータス２１２を確認し、ＰＵ−Ｇ２０７の停止を確認して、自己のステータス２１３にその旨を記述し、作動を停止させる。一方、ＰＵ−Ｂ２０２は、ＰＵ−Ｃ２０３、ＰＵ−Ｅ２０５側が動作しているので、作動を停止することはない。このように、接続関係に基づいて不要なＰＵの作動を停止させることで、ネットワークリソースやＣＰＵリソースの消費を防止することができる。
【００２６】
図８は、本発明に係るデータ処理装置による動作周期検証機能について説明する図である。このデータ処理装置３００では、統合用ＰＵ３０１のもと、ＰＵ３０２〜３０４が稼働している。統合用ＰＵ３０１は、ＰＵヘルスチェック機能３０６を有しており、各ＰＵの処理遅延、出力データのタイムスタンプ、待ちＰＵ数等のデータ（ＰＵステータスデータと呼ぶ。）をチェックする。具体的には、統合用ＰＵ３０１は、収集したＰＵステータスデータを解析することで、各ＰＵの動作周期等をモニタリングし、遅延が大きい場合には、任意のＰＵを停止するなどのエラー処理を実行する。なお、統合用ＰＵ３０１や各ＰＵ３０２〜３０４とは独立して緊急停止機能３０５を提供するとよい。統合用ＰＵ３０１により、処理周期や処理の健全性を評価することで設計者が期待した動作効率が得られているか確認が容易になり、設計効率を向上させることができる。また、設計者が期待したとおりの動作周期を達成することが容易になり、システムの破綻を効果的に防止できる。
【００２７】
図９は、本発明に係るデータ処理装置による保守機能の階層処理を説明する図である。本発明に係るデータ処理装置は、ネットワークによって構成することも可能である。そして、データ処理装置のシステムが大規模なものとなった場合、統合用ＰＵによるヘルスチェック機能の通信が、ネットワークを圧迫してしまうおそれがある。そこで、各ＰＵ３１１〜３１７のＰＵステータスデータを直接集約するのではなく、集約モジュール（aggregator）３２１〜３２４を設けてネットワークの通信を分散させることで、ヘルスチェック機能等の通信付加を軽減し、大規模システムにも適用することが可能となる。
【産業上の利用可能性】
【００２８】
本発明に係るデータ処理装置は、単一のコンピュータ、制御装置で実行されるプログラムによるデータ処理装置だけでなく、複数のコンピュータ、制御装置を組み合わせて動作するデータ処理装置においても好適である。
【符号の説明】
【００２９】
１〜４、９、１０、１５、２０、２５、３０、３５、４０、５０、１１０、１５２、２０１〜２０８、３０２〜３０４、３１１〜３１７…ＰＵ（プログラムモジュール、Processing Unit）、５、６…同期グループ、７、５５、３０１…統合用ＰＵ、１１〜１３、３１、３２…データ、９０…カメラ、１００…クライアント、１１１…メイン関数、１１２…異常時処理ハンドラ、１１３、１５３…診断用アプリケーション、１５０…サーバ、２１０〜２１３…ステータス、３００…データ処理装置、３０５…緊急停止機能、３０６…ＰＵヘルスチェック機能、３２１〜３２４…集約モジュール。
【図１】
2010231556.tif 000003
【図２】
2010231556.tif 000004
【図３】
2010231556.tif 000005
【図４】
2010231556.tif 000006
【図５】
2010231556.tif 000007
【図６】
2010231556.tif 000008
【図７】
2010231556.tif 000009
【図８】
2010231556.tif 000010
【図９】
2010231556.tif 000011