(57)【要約】【課題】制御用のソフトウェアが複数の制御コンポーネントで構成されている実時間制御システムについて、制御コンポーネントの独立性を高めることができるようにする。【解決手段】制御用のソフトウェアが複数の制御コンポーネントで構成されている実時間制御システムについて、各制御コンポーネント５１〜５７に締切時間付加部３４を設ける。そして制御に必要な情報を含むデータであるメッセージを１つの制御コンポーネントから他の制御コンポーネントに送信する際に、そのメッセージに関する処理の完了についての締切時間を当該メッセージの内容に応じて締切時間付加部が付加するようにし、その締切時間に基づいて各制御コンポーネントの実行を制御するようにしている。【選択図】  図３
2007323405.tif 000002
【特許請求の範囲】
【請求項１】
制御用のソフトウェアが複数の制御コンポーネントで構成されている実時間制御システムにおいて、
前記各制御コンポーネントは、締切時間付加部を有しており、制御に必要な情報を含むデータであるメッセージを１つの制御コンポーネントから他の制御コンポーネントに送信する際に、そのメッセージに関する処理の完了についての締切時間を当該メッセージの内容に応じて前記締切時間付加部が付加するようにされ、そして前記締切時間に基づいて前記各制御コンポーネントの実行を制御できるようにされていることを特徴とする実時間制御システム。
【請求項２】
前記締切時間として、前記メッセージ送信時刻から当該メッセージに関する処理を完了すべき時刻までの時間差である相対締切時間を用い、そしてメッセージに関する処理を完了すべき時刻である絶対締切時間を前記相対締切時間から求め、その絶対締切時間を前記各制御コンポーネントの実行制御のための締切時間として用いるようにされていることを特徴とする請求項１に記載の実時間制御システム。
【請求項３】
前記各制御コンポーネントの間での前記メッセージの送受信に介在する管理手段を備えていることを特徴とする請求項１または請求項２に記載の実時間制御システム。
【請求項４】
前記管理手段は、前記締切時間に基づく前記各制御コンポーネントの実行制御を行う機能を有していることを特徴とする請求項３に記載の実時間制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実時間制御システムに関し、特に、通信により連携して機能する複数の制御コンポーネントを備えた実時間制御システムに関する。
【背景技術】
【０００２】
ロボットなどのような複雑なメカトロニクス機器を制御する制御システムは、コンピュータとソフトウェアにより構成されるのが一般的である。そのような制御システムでは、モータなどの機械的な装置類を制御するについて、それらの制御対象装置類における制約などで規定される一定の締切時間内に計算処理を終了することが要求される。このような要求は、実時間性あるいはリアルタイム性と呼ばれ、これを満たすような制御を行うシステムは、実時間制御システムと呼ばれる。
【０００３】
実時間制御システムでは、コンピュータの演算能力や装置の実装配置上の要求を満たすために、複数の処理装置（ＣＰＵ）が使用されることが多い。また、ソフトウェアの開発を容易にしたり、ＣＰＵの演算能力を効率よく使用したりするためにタスクを複数に分割し、リアルタイムＯＳにより１のＣＰＵの中で複数のタスクを実行させるようにすることも多い。このような場合、リアルタイムＯＳは、複数のタスクに対して予め優先度を設定しておき、実行可能なタスクについてはその優先度に基づいて実行させるという固定優先度スケジューリング機能を持つのが一般的である。
【０００４】
さらに、制御システムでは、コンポーネントないし制御コンポーネントと呼ばれる複数のソフトウェア部品でそのソフトウェアを構成する手法が用いられる場合も多い。ソフトウェアのコンポーネント化は、ソフトウェアを汎用性のあるコンポーネントとして扱えるようにし、ソフトウェアの開発効率を高める。
【０００５】
コンポーネント方式の制御システムでは、複数の制御コンポーネントを連携動作させるために、統一された相互接続機能を備えるのが通常である。そのようなコンポーネント方式の制御システムとして、例えば特許文献１に開示の例がある。このコンポーネント化制御システムでは、制御対象となる装置のコントローラとの間で通信を行うコマンドインターフェイス、入力インターフェイス、及び、出力インターフェイスをそれぞれモジュール化し、これらのモジュールのうち、コマンドインターフェイス機能を有するモジュールは、制御対象となる装置のコントローラとの間でコマンド通信を行い、入力インターフェイス機能を有するモジュールならびに出力インターフェイス機能を有するモジュールは前記コントローラとの間でデータ通信を行うように構成されている。
【０００６】
【特許文献１】特開２００５−１９６４２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
コンポーネント方式には、上述のように、ソフトウェアの開発効率を高めるという利点がある。しかし、この開発効率については、さらに改善の余地がある。それは、各制御コンポーネントの独立性の問題に関係する。
【０００８】
上述のように従来の制御システムでは固定優先度スケジューリング機能を有するリアルタイムＯＳが用いられるが、固定優先度リアルタイムＯＳの下では制御コンポーネントの独立性が確保できない。すなわち固定優先度スケジューリングでは、優先度の相対的な高低によって実行順序が制御される。そのため、１つの制御コンポーネントの実行順序が他の制御コンポーネントの優先度設定によって変化することになる。したがって、制御コンポーネントの優先度を適切に定めるには、使用される全ての制御コンポーネントが予め分かっていなければならない。このことは、個々の制御コンポーネントを独立的に設計することの妨げとなり、制御コンポーネントの独立性を失わせる。制御コンポーネントに独立性がないと、制御ソフトウェアに後から機能の増強や変更のために制御コンポーネントを追加する場合に、再び全ての制御コンポーネントの優先度を再設定しなくてはならなくなり、ソフトウェアの開発効率が低下する。
【０００９】
本発明は、以上のような事情を背景になされたものであり、実時間制御システムにおける優先度スケジューリングに関して制御コンポーネントの独立性を高め、ソフトウェアの開発効率の向上というコンポーネント方式の利点をより有効的に活かせることができるようにすることを課題としている。
【課題を解決するための手段】
【００１０】
本発明では上記課題を解決するために、１つの制御コンポーネントから他の制御コンポーネントにメッセージを送信する際に、そのメッセージに応じた締切時間を当該メッセージに付加し、その締切時間に基づいて各制御コンポーネントの実行を制御できるように実時間制御システムを構成することを要旨としている。
【００１１】
具体的には、制御用のソフトウェアが複数の制御コンポーネントで構成されている実時間制御システムにおいて、前記各制御コンポーネントは、締切時間付加部を有しており、制御に必要な情報を含むデータであるメッセージを１つの制御コンポーネントから他の制御コンポーネントに送信する際に、そのメッセージに関する処理の完了についての締切時間を当該メッセージの内容に応じて前記締切時間付加部が付加するようにされ、そして前記締切時間に基づいて前記各制御コンポーネントの実行を制御できるようにされていることを特徴としている。
【００１２】
このように、制御コンポーネント自体が設定する締切時間に基づいて各制御コンポーネントの実行を制御できるようにしたことにより、コンポーネントに対して固定的な優先度の設定を行わなくても、最適な実行順序制御が可能となる。このため、本発明によれば、制御コンポーネントの独立性を高めることができ、ソフトウェアの開発効率の向上というコンポーネント方式の利点をより有効的に活かせることができるようになる。
【００１３】
また本発明では、上記のような実時間制御システムについて、前記締切時間として、前記メッセージ送信時刻から当該メッセージに関する処理を完了すべき時刻までの時間差である相対締切時間を用い、そしてメッセージに関する処理を完了すべき時刻である絶対締切時間を前記相対締切時間から求め、その絶対締切時間を前記各制御コンポーネントの実行制御のための締切時間として用いるようにしている。
【００１４】
このように、メッセージに付加する締切時間を相対締切時間とし、それから求めた絶対締切時間を各制御コンポーネントの実行制御に用いるようにすることにより、実時間制御システムが複数の処理装置を有し、その複数の処理装置それぞれの時計が正確に一致していない場合でも締切時間による実行制御を有効に行えるようになる。すなわち処理装置が汎用的なものであって締切時間による実行制御を有効に行えるようになる。
【００１５】
また本発明では、上記のような実時間制御システムについて、前記各制御コンポーネントの間での前記メッセージの送受信に介在する管理手段を設けるようにしている。
【００１６】
また本発明では、上記のような実時間制御システムについて、前記管理手段に、前記締切時間に基づく前記各制御コンポーネントの実行制御を行う機能を与えるようにしている。
【００１７】
以上のような管理手段を設ける構成は、処理装置におけるリアルタイムＯＳが汎用的なものであっても締切時間による実行制御を行うことを可能とする。
【発明の効果】
【００１８】
本発明によれば、実時間制御システムにおける制御コンポーネントの独立性を高め、ソフトウェアの開発効率の向上というコンポーネント方式の利点をより有効的に活かせることができるようになる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明を実施するための形態について説明する。図１に、一実施形態による実時間制御システムのハードウェア構成を示す。本実施形態の実時間制御システム１は、モータ駆動の車輪で自律移動する方式の移動型ロボット（図示せず）における自律移動に対して実時間制御を行う場合の例である。
【００２０】
そのために実時間制御システム１は、ハードウェア構成として、モータの駆動制御を行うモータ駆動装置（サーボ装置）２、モータの速度を検出する速度センサ３、ロボットの周囲の障害物を検出するレーダ４、およびロボットに移動や停止あるいは行先指示などを人が入力するための操作ボタン５を備えている。
【００２１】
また実時間制御システム１は、３つの制御装置１１、１２、１３を備えている。それぞれの制御装置は、図示を省略の処理装置（ＣＰＵ）、記憶装置（ＲＡＭ、ＲＯＭ）、入出力装置（Ｉ／Ｏ）などを備える制御用コンピュータで構成され、通信路６を通じて相互に接続されている。そして制御装置１２には、モータ駆動装置２と速度センサ３が接続され、制御装置１３にはレーダ４と操作ボタン５が接続されている。これらの制御装置１１〜１３は、それぞれに組み込まれている制御ソフトウェア（コンピュータプログラム）に従って動作し、ローカルエリアネットワーク（ＬＡＮ）などの物理的な通信路６を通じて相互に通信することで協調しながらロボットの車輪走行移動を制御する。
【００２２】
図２に、実時間制御システム１における制御ソフトウェアの論理的構成を示す。制御ソフトウェアは、サーボ制御５１、経路計画５２、障害物検出５３、速度入力５４、モータ出力５５、操作入力５６、レーダ入力５７の各制御コンポーネントを含んでいる。図中でこれらのコンポーネントを結ぶ矢印は、矢印の向きにメッセージが送信されることを示しており、各制御コンポーネントはメッセージを送受信することにより協調して制御処理を行う。
【００２３】
ここで、メッセージとは、制御に必要な情報、つまり速度センサの検出値やモータの電流出力指示値などの情報を含むデータのことである。メッセージの送受信は、メッセージを送受信するコンポーネントが同じ処理装置の上にある場合は、プロセス間通信などのソフトウェアによる仮想的な通信路を通じて行われる。一方、メッセージを送受信するコンポーネントが別々の処理装置の上にある場合は、通信路６を通じて行われる。
【００２４】
移動型ロボットは、操作ボタン５の押下を受けて移動経路を計画し、その移動経路計画に従って移動動作を開始し、移動動作中はレーダ４により周囲の障害物を検出し、その障害物検出に基づいた移動経路の変更などによる制御を受けつつ目的に向けた移動動作を続ける。以下では、こうしたロボットの移動における各コンポーネントの機能と動作について説明する。
【００２５】
操作入力コンポーネント５６は、操作ボタン５の状態を監視し、操作ボタンが押されたら、それについてのメッセージを経路計画コンポーネント５２に送信する。
【００２６】
レーダ入力コンポーネント５７は、一定時間間隔でレーダ４の検出データを取り込み、その検出データを含むメッセージを障害物検出コンポーネント５３に送信する。
【００２７】
障害物検出コンポーネント５３は、レーダ入力コンポーネント５７から受信したメッセージに基づいて周囲の障害物の有無を検出し、障害物を発見したら経路計画コンポーネント５２にメッセージを送信して障害物発見を通知する。
【００２８】
経路計画コンポーネント５２は、操作入力コンポーネント５６から受信したメッセージに基づいて移動経路を計画して経路情報を生成し、その経路情報を含むメッセージをサーボ制御コンポーネント５１に送信する。また、経路計画コンポーネント５２は、障害物検出コンポーネント５３から障害物発見のメッセージを受信した場合には、障害物を回避する移動経路を生成し、その障害物回避の経路情報を含むメッセージをサーボ制御コンポーネント５１に送信する。
【００２９】
速度入力コンポーネント５４は、一定時間間隔で速度センサ３の検出値としてモータの速度値を取り込み、その速度値を含むメッセージをサーボ制御コンポーネント５１に送信する。
【００３０】
サーボ制御コンポーネント５１は、経路計画コンポーネント５２からメッセージを受信した時、内部に記憶している経路情報を更新する。また、サーボ制御コンポーネント５１は、速度入力コンポーネント５４からメッセージを受信するたびに、そのメッセージに含まれる速度値からロボットの現在位置を計算する。そして、その計算結果を経路計画コンポーネント５２から受信の経路情報と比較してモータの目標速度を計算し、求められた目標速度を含むメッセージをモータ出力コンポーネント５５に送信する。
【００３１】
モータ出力コンポーネント５５は、サーボ制御コンポーネント５１からメッセージを受信するたびにモータ駆動装置２に目標速度を出力する。
【００３２】
図３に、制御ソフトウェアの実装構成を示す。サーボ制御コンポーネント５１、経路計画コンポーネント５２および障害物検出コンポーネント５３は、制御装置１１の処理装置（ＣＰＵ）２１に実装され、速度入力コンポーネント５４とモータ出力コンポーネント５５は、制御装置１２の処理装置２２に実装され、操作入力コンポーネント５６とレーダ入力コンポーネント５７は、制御装置１３の処理装置２３に実装される。
【００３３】
処理装置２１〜２３は、管理手段として管理モジュール３１をそれぞれ１個ずつ備えている。それぞれの処理装置上のコンポーネントと管理モジュール３１は、マルチタスクＯＳにより並行的に処理を実行するようにされており、その並行処理に関して、管理モジュール３１による処理は各コンポーネントによる処理よりも優先して実行されるように設定されている。なお、図３では３個の処理装置のうち処理装置２１についてだけその内部構成を詳しく図示しているが、この構成は他の処理装置についても同様である。
【００３４】
コンポーネント（コンポーネント５１〜５７）は、電文送信部３２と電文受信部３３を備えており、コンポーネントが実装されている処理装置（処理装置２１〜２３）の管理モジュール３１を介して電文の送受信を行う。ここで、電文とは、メッセージにその宛先に関するデータが付加された構造のデータのことである。
【００３５】
電文送信部３２は、締切時間付加部３４が設けられており、この締切時間付加部３４によりメッセージに締切時間を付加して管理モジュール３１に電文を送信する。締切時間付加部３４によりメッセージに付加される締切時間は、現在時刻からメッセージの処理、つまりメッセージに関するタスクの処理を完了すべき時刻までの時間差である。以下、この時間差を相対締切時間と称する。また、メッセージに関する処理を完了すべき時刻を絶対締切時間と称する。相対締切時間は後述のように、メッセージを送信するコンポーネントがその送信メッセージの機能に応じて定める。
【００３６】
管理モジュール３１は、その管理下の各コンポーネント間のメッセージ通信を実現するために、コンポーネントごとにそれぞれが設けられる電文キュー３５と実行中電文メモリ３６を備えている。そして管理モジュール３１は、当該管理モジュール３１が管理するコンポーネントに送信されて来る電文を宛先のコンポーネントに対応する電文キュー３５に受信順で格納し、また格納された順番で電文キュー３５から電文を取り出して宛先のコンポーネントの電文受信部３３に送信し、送信した電文を電文キュー３５から削除して実行中電文メモリ３６に保存する。
【００３７】
電文を受信したコンポーネントは、電文に含まれるメッセージに従って処理を行い、処理が完了したら処理完了通知３７を送信する。管理モジュール３１は、処理完了通知３７を受信したら、実行中電文メモリ３６から電文を削除する。
【００３８】
宛先のコンポーネントが他の処理装置に存在する場合、つまり異なる処理装置上のコンポーネント間のメッセージ通信では、電文を送信したコンポーネントを管理する管理モジュール３１が通信路６を通じて宛先のコンポーネントを管理する管理モジュール３１に電文を送信する。そして、電文を受信した管理モジュールがその電文を上記と同様にして宛先のコンポーネントに送信する。
【００３９】
また、管理モジュール３１は、電文に含まれている締切時間（相対締切時間）に基づいてコンポーネントの実行を制御する機能を有している。その機能の内容は以下の通りである。管理モジュール３１は、電文を受信した際に、処理装置内の時計３８を参照して受信時の時刻を取得し、その受信時刻に電文の相対締切時間を加えて絶対締切時間を求め、それを相対締切時間に替えて付加した電文を電文キュー３５に格納する。こうした絶対締切時間の算出に関して、管理モジュール３１は、締切時間補正部３９を備えており、当該管理モジュール３１の管理下外のコンポーネントから送られた電文である場合、つまり当該管理モジュール３１がある処理装置以外のコンポーネントから送られてきた電文である場合には、締切時間補正部３９により、電文に含まれる相対締切時間から処理装置の間の通信にかかる時間を差し引いて相対締切時間を補正し、その補正後の相対締切時間を用いて絶対締切時間を計算する。このようにすることにより、絶対締切時間が通信による遅れに影響されるのを有効に避けることができる。
【００４０】
以上のようにして絶対締切時間が付加された電文が電文キュー３５や実行中電文メモリ３６に保存されている状態で、管理モジュール３１は、その管理下の全てのコンポーネントの電文キュー３５と実行中電文メモリ３６に含まれている全ての電文の中から絶対締切時間が最も早いものを検出する。つまり管理下のコンポーネントから最も締切が近い電文を持つコンポーネントである最短締切コンポーネントを検出する。そして管理モジュール３１は、最短締切コンポーネントが他の全ての管理下コンポーネントに優先して処理を実行するように、コンポーネントの実行を制御する。
【００４１】
このように最も締切の近い処理を最優先させて実行する手法は、最短締切優先アルゴリズム（Eearliest Deadline First：略称ＥＤＦ）と呼ばれており、締切時間を守って処理を完了させるためには最善の方法であることが知られている。この最短締切優先アルゴリズムによれば、処理装置の能力を最大に活かし、最も効率よくコンポーネントの演算処理を実行することができる。
【００４２】
ここで、電文に添付する締切時間を相対締切時間とし、その相対締切時間から管理モジュール３１で絶対締切時間を求める手法は、複数の処理装置それぞれの時計が正確に一致していない場合でも締切時間による実行制御を有効に行えるようにする。すなわち、時計３８としてコンピュータの分野における一般的な時計を用いた場合には複数の処理装置それぞれの時計３８を正確に合わせることが困難であるのが通常であるが、そのような場合でも締切時間による実行制御を有効に行えるようにする。こうしたことから、それぞれの時計を正確に一致させられるような特別なハードウェアで処理装置が構成されている場合、又はソフトウエアが備えられている場合には、電文に添付する締切時間を絶対締切時間とするようにしてもよい。
【００４３】
電文に付加する締切時間は、メッセージを送信するコンポーネントの締切時間付加部３４がその送信メッセージに従って設定する。より具体的にいうと、締切時間付加部３４には送信するメッセージの宛先及び目的に応じて、メッセージを送信するコンポーネントによって、メッセージを送信する前に締切時間についてのデータが与えられており、そのデータから送信メッセージに対応したデータを選択して締切時間の設定を行うようにされている。このデータは具体的には「××ｍsec後」という相対締切時間の値である。例えば、１０ｍｓの周期で動作しているサーボ制御コンポーネント５１がモータ出力コンポーネント５５に速度指令値を送信する場合は、サーボ周期よりも十分に短い時間で速度指令が反映される必要があるため、締切を例えば「１ｍｓ後」として設定する。一方、レーダ入力コンポーネント５７が障害物検出コンポーネント５３にレーダ検出データを送信する場合は、処理にかかる時間と障害物検出に対する反応時間への要求を勘案して、例えば締切を「１００ｍｓ後」として設定する。
【００４４】
なお、複数のコンポーネント間で順にメッセージが伝達されることで一連の処理が行われ、最終的な処理の完了時間のみが重要である場合には、途中のメッセージを含めて、全てのメッセージの絶対締切時間が最終的な絶対締切時間に一致するように、締切時間を設定すればよい。すなわち、コンポーネントＡからコンポーネントＢにメッセージが送信され、それに従ってコンポーネントＢからコンポーネントＣにメッセージが送信されて一連の処理が行われるような場合は、コンポーネントＡからＢへのメッセージとコンポーネントＢからＣへのメッセージの絶対締切時間を等しく設定する。
【００４５】
次に、管理モジュール３１が最短締切コンポーネントを優先実行させる方法について説明する。現在一般に使われているリアルタイムＯＳは、固定優先度スケジューリングを前提にしており、締切時間に基づくスケジューリング機能を備えていない。そのようなリアルタイムＯＳを前提にして、実時間制御システム１、具体的にはその管理モジュール３１は、固定優先度によるタスクスケジューリング機能を有するリアルタイムＯＳ上で最短締切コンポーネントを優先実行させる、つまり最短締切優先アルゴリズムによる実行制御法を駆動する機構を有している。その機構について以下に説明する。
【００４６】
まず、リアルタイムＯＳの機能を用いて各コンポーネントと管理モジュールに１個のタスクを割り当てる。その場合、全てのコンポーネントのタスクの優先度を等しく設定する一方で、管理モジュールのタスクの優先度をコンポーネントの優先度よりも十分に高く設定する。このように優先度が設定された状態で、最初に各コンポーネントは、管理モジュールからの電文を受信するまで待ち状態に入り、以下のように動作する。
(1) 管理モジュールから電文を受信するまで待ち状態で待機する。
(2) 電文を受信したら、電文に応じた処理を行う。
(3) 処理が終了したら、管理モジュールに完了通知を送信する。
(4) 次の電文を受信するまで、待ち状態で待機する。以降、(2)〜(4)を繰り返す。
【００４７】
一方、管理モジュールは以下のように動作する。
(1) 電文か処理完了通知を受信するまで待ち状態で待機する。
(2) 電文か処理完了通知を受信したら待ち状態から復帰する。管理モジュールはコンポーネントよりも優先度が高いので、コンポーネントのタスクが実行中だった場合には、そのコンポーネントのタスクが停止して管理モジュールのタスクが動作開始する。
(3) 処理完了通知を受信した場合は、実行中電文メモリから電文を消去する。
(4) 電文キューと実行中電文メモリに記録されている絶対締切時間を比較して、最短締切コンポーネントを検出する。
(5) 最短締切コンポーネントがメッセージを実行する状態になっていない場合、すなわち実行中電文メモリが空の場合は(5-1)を行い、そうでない場合は(5-2)を行う。
(5-1) 管理モジュールは、電文を処理中の全てのコンポーネントの優先度を締切時間に基づいて調べて最高値を検出し、それから１段高い優先度に、最短締切コンポーネントの優先度を設定する。さらに、管理モジュールは、電文キューの先端にある電文を実行中電文メモリに移動し、電文を最短締切コンポーネントに送信する。
(5-2) 管理モジュールは、電文を処理中の全てのコンポーネントの優先度を調べて最高値を検出し、最短締切コンポーネントの優先度がそれよりも低い場合は、この最高値から１段高い優先度に最短締切コンポーネントの優先度を設定する。
(6) 管理モジュールのタスクは、電文か処理完了通知が到着するまで待ち状態に入る。これにより、最短締切コンポーネントが実行を開始する。以降、(2)〜(6)を繰り返す。
【００４８】
以上のような機構により、最短締切コンポーネントが必ず他のコンポーネントよりも優先して実行される。この方法は、リアルタイムＯＳの機能として、タスクの優先度を変更する機能があれば実現でき、一般的なリアルタイムＯＳ上で実現できる。すなわち管理モジュール３１を設けることにより、リアルタイムＯＳが汎用的なものであっても締切時間に基づく実行制御を行うことを可能となるということである。このことは、リアルタイムＯＳがメッセージに付加された締切時間に基づくスケジューリング機能を有するように設計される場合には、管理モジュール３１を省略できるということを意味する。
【００４９】
なお、締切時間までにメッセージの処理が終了しない場合にシステム全体の実行が遅れることを防ぐため、締切時間を越えた場合は処理を中断するのが望ましい。この処理は、各々のコンポーネントの中で行ってもよく、管理モジュールが行ってもよい。
【００５０】
図４に、実時間制御システム１における上述のような実行制御の一例を示す。この図は、左から右に向けて時間の経過を表している。楕円１１１〜１１５はサーボ制御コンポーネント５１にその時刻でメッセージが到着したことを示している。同様に、楕円１２１〜１２２は、経路計画コンポーネント５２に到着したメッセージを表し、楕円１３１は障害物検出コンポーネント５３に到着したメッセージを表している。
【００５１】
各メッセージに対応する楕円から右に伸びる矢印の右端２１１〜２１５、２２１〜２２２、２３１は、各メッセージの締切時間（絶対締切時間）を表している。直線６１の上に描かれた五角形３１１〜３１５は、サーボ制御コンポーネント５１上で処理が実行中であることを示しており、五角形３１１〜３１５はそれぞれメッセージ１１１〜１１５に対する処理に対応している。同様に直線６２の上に描かれた五角形３２１〜３２２は経路計画コンポーネント５２上の処理、直線６３の上に描かれた五角形３３１は障害物検出コンポーネント上の処理に対応している。
【００５２】
まず、サーボ制御コンポーネント５１に速度入力コンポーネント５４から速度情報を含むメッセージ１１１が到着し、サーボ制御コンポーネント５１がサーボ演算の処理３１１の実行を開始する。
【００５３】
ここで、処理３１１の実行途中に、経路計画コンポーネント５２に操作入力コンポーネント５６から操作情報を含むメッセージ１２１が到着したとする。人からの操作入力に対してはサーボ制御に比べて速い応答が要求されないので、メッセージ１２１の締切時間２２１は、メッセージ１１１の締切時間２１１よりも遅く設定されている。この時、サーボ制御コンポーネント５１はまだメッセージ１１１に対応する処理３１１を実行中であるが、メッセージ１１１の締切時間２１１は、メッセージ１２１の締切時間２２１よりも早いため、処理３１１が優先されて実行が継続し、処理３１１が終わると経路計画コンポーネント５２による経路計画の処理３２１の実行が開始される。
【００５４】
経路計画の処理３２１が終わると、経路計画コンポーネント５２はサーボ制御コンポーネント５１に経路情報を含むメッセージ１１２を送信し、サーボ制御コンポーネント５１が経路設定の処理３１２を開始する。ここで、経路計画と経路設定は一連の処理なので、メッセージ１１２の締切時間２１２は、メッセージ１２１の締切時間２２２と絶対時間が等しく設定されている。
【００５５】
ここで、処理３１２の実行途中に、レーダ入力コンポーネント５７から障害物検出コンポーネント５３にレーダ情報を含むメッセージ１３１が到着したとする。障害物検出・回避の処理は、操作入力よりも早い応答が要求されるため、レーダ入力コンポーネント５７からのメッセージ１３１の締切時間２３１は、サーボ制御コンポーネント５１が実行中の経路設定の処理３１２の締切時間２１２よりも早く設定されている。このため、経路設定の処理３１２が中断され、障害物検出コンポーネント５３の障害物検出の処理３３１が開始する。
【００５６】
ここで、処理３３１の実行中にサーボ制御コンポーネント５１に速度入力コンポーネント５４から速度情報を含むメッセージ１１３が到着したとする。このメッセージの締切時間は、障害物検出コンポーネント５３の処理３３１の締切時間２３１よりも早いため、処理３３１が中断され、サーボ制御コンポーネントが動作を開始する。この時、サーボ制御コンポーネント５１は前のメッセージ１１２による経路設定の処理３１２を実行中断中であるため、まず経路設定の処理３１２が再開され、それが終わると続いてメッセージ１１３に対応するサーボ制御の処理３１３が実行される。サーボ制御の処理３１３が終わると、障害物検出の処理３３１が再開される。
【００５７】
障害物検出の処理３３１が終わると、障害物検出コンポーネント５３は、障害物位置情報を含むメッセージ１２２を経路計画コンポーネント５２に送信し、経路計画コンポーネント５２は障害物回避の処理３２２を開始する。ここで、障害物検出と経路変更は一連の処理なので、メッセージ１２２の締切時間２２２は、メッセージ１３１の締切時間２３１と等しく設定している。
【００５８】
障害物回避の処理３２２が終わると、経路計画コンポーネント５２は、経路情報を含むメッセージ１１４をサーボ制御コンポーネント５１に送信し、経路変更の処理３１４が開始する。
【００５９】
ここで、経路変更の処理３１４の実行中に速度入力コンポーネント５４から速度情報を含むメッセージ１１５が到着したとする。この場合は、処理３１４が継続され、それが終了してからメッセージ１１５に対応するサーボ演算の処理３１５が実行される。
【００６０】
以上のように、本発明の実時間制御システムによれば、複数のコンポーネントで構成される制御ソフトウェアの下で、適切な順序で効率よく処理を実行でき、それほど高い計算処理能力を有しない処理装置でも高い実時間性による制御が可能となる。そして、各コンポーネントが発するメッセージに添付する締切時間に基づく優先度で実行順序を制御するようにしていることから、コンポーネントに対して固定的な優先度の設定を行わなくても、最適な実行順序制御が可能となる。このため、本発明によれば、制御コンポーネントの独立性を高めることができ、ソフトウェアの開発効率の向上というコンポーネント方式の利点をより有効的に活かせることができるようになる。
【００６１】
以上の実施形態は移動型ロボットにおける自律移動に対する実時間制御のための実時間制御システムについてであったが、本発明による実時間制御システムは、これに限られるものでなく、例えば自動生産機械、建設機械、自動車など様々な制御対象に適用することが可能である。
【図面の簡単な説明】
【００６２】
【図１】一実施形態による実時間制御システムのハードウェア構成を示す図である。
【図２】図１の実時間制御システムにおける制御ソフトウェアの論理的構成を示す図である。
【図３】図１の実時間制御システムにおける制御ソフトウェアの実装構成を示す図である。
【図４】図１の実時間制御システムでなされる実行制御におけるタイミング関係の一例を示す図である。
【符号の説明】
【００６３】
１    実時間制御システム
３１    管理モジュール（管理手段）
３２    電文送信部
３３    電文受信部
３４    締切時間付加部
５１〜５７    制御コンポーネント
１１１〜１１５、１２１〜１２２、１３１    メッセージ
２１１〜２１５、２２１〜２２２、２３１    締切時間
【図１】
2007323405.tif 000003
【図２】
2007323405.tif 000004
【図３】
2007323405.tif 000005
【図４】
2007323405.tif 000006