(57)【要約】【課題】  制御ユニット間で直接障害情報を授受するとともに、制御ユニット間の協調度合いに応じて各制御ユニットの障害対応手段を決定することができ、しかもリアルタイムに制御ユニット間の協調度合いの変更を可能とし、柔軟性の高い協調制御が可能なロボット及びユニットコントローラ及び制御ユニット間協調制御方法を提供する。【解決手段】  ユニットコントローラ１３１に、他の制御ユニット１１０、１２０との協調度合いの程度を示す協調パラメータ１３６と、障害が発生した場合に、他の制御ユニット１１０，１２０へ障害発生通知を送信する通信処理部１３２と、他の制御ユニットからの障害発生通知を受信したとき、協調パラメータ１３６の値により自分の制御ユニット１３０の障害への対応を決め処理を実行する障害対応手段判定部１３７を備える。【選択図】図１
2009297848.tif 000002
【特許請求の範囲】
【請求項１】
アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットにおいて、
前記ユニットコントローラに、前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータと、
障害が発生した場合に、他の前記制御ユニットへ障害発生通知を送信する通信処理部と、
他の前記制御ユニットからの前記障害発生通知を受信したとき、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する障害対応手段判定部を備えることを特徴とするロボット。
【請求項２】
前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、
前記ホストコントローラに、前記制御ユニットへ与える制御動作指令に応じて前記制御ユニット間の協調パラメータを決定する協調パラメータ作成部と、
作成した前記協調パラメータを前記制御ユニットに送信する通信処理部を備え、
前記ユニットコントローラに協調パラメータの値を上位からの指令により更新する協調パラメータ更新部を更に備え、
前記ユニットコントローラが、受信した協調パラメータを使用し、障害への対応を決め処理を実行することを特徴とする請求項１記載のロボット。
【請求項３】
前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とする請求項２記載のロボット。
【請求項４】
アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットのユニットコントローラにおいて、
前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータと、
障害が発生した場合に、他の前記制御ユニットへ障害発生通知を送信する通信処理部と、
他の前記制御ユニットからの前記障害発生通知を受信したとき、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する障害対応手段判定部を備えることを特徴とするユニットコントローラ。
【請求項５】
前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、
前記ユニットコントローラに協調パラメータの値を上位からの指令により更新する協調パラメータ更新部を更に備え、
前記ホストコントローラが作成した協調パラメータを前記ユニットコントローラが受信したとき、
受信した協調パラメータを使用し、障害への対応を決め処理を実行することを特徴とする請求項４記載のユニットコントローラ。
【請求項６】
前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とする請求項５記載のユニットコントローラ。
【請求項７】
アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットの制御ユニット間協調制御方法において、
前記ユニットコントローラは、前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータを保持し、
前記制御ユニットで障害が発生した場合に、前記制御ユニットは他の前記制御ユニットへ障害発生通知を送信し、
前記障害発生通知を受信した前記ユニットコントローラは、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する、という手順で処理することを特徴とする制御ユニット間協調制御方法。
【請求項８】
前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、
前記ホストコントローラが、前記制御ユニットへ与える制御動作指令に応じて前記制御ユニット間の協調パラメータを決定し、前記制御ユニットの各々に前記協調パラメータを送信し、
前記制御ユニットの前記ユニットコントローラが受信した前記協調パラメータを使用し、障害への対応を決めることを特徴とする請求項７記載の制御ユニット間協調制御方法。
【請求項９】
前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とする請求項８に記載の制御ユニット間協調制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを構成する複数の制御ユニットを協調制御する方法に関する。  
【背景技術】
【０００２】
今日、ロボットはその制御の高度化、大規模化などの要因により、複数の制御ユニットへ分割され、各制御ユニットとそれらを統括制御するホストコントローラとが互いにネットワークで接続されたいわゆる分散システムへと構成が変化してきている。
例えば、移動手段を持った双腕ロボットの場合、移動手段を担う移動ユニットおよび右腕ユニット、左腕ユニットの合計３つの制御ユニットへと分割される。そしてそれぞれの制御ユニットには、制御ユニット内のアクチュエータやセンサ、各種ＩＯを制御するユニットコントローラが備えられている。これら３つのユニットコントローラと、各制御ユニットを統括制御するホストコントローラとが互いにネットワークで接続される。
このようなロボットにおいては、ロボット全体の動きはホストコントローラによって管理される。何かある作業を実施するために両腕を同期を取りながら同時に制御する必要がある場合、ホストコントローラは右腕ユニットコントローラと左腕ユニットコントローラへ同期を取りながら所望の動作を実現する移動指令を送信する。
ところで、分散型の制御装置に限らず、一般的に、制御装置で何らかの障害が発生した場合に、いかに迅速に障害への対応手段を決定し、いかにシステム全体の動作を停止させずに作業効率を向上させるかといった課題が存在する。
そして、特に上述したような分散型の制御装置においては、分散された制御ユニットにて障害が発生したことを他の制御ユニットに伝達し、各制御ユニット間で効果的に協調して障害に対応させる方法について検討する必要がある。
例えば、上述した移動手段を持った双腕ロボットで障害が発生した場合を考えてみる。右腕ユニットと左腕ユニットが同期を取りながら物体をつかみ、移動ユニットが前進している際に、右腕ユニットにて障害が発生した場合、つかんだ物体を落とさないように左腕ユニットは右腕ユニットと協調して、停止する必要がある。その一方で、移動ユニットは必ずしも停止する必要はなく、目標位置へ向かって前進し続けることが、双腕ロボット自身の作業効率を向上させることとなる。
【０００３】
このような課題に対して、従来では、障害の発生した制御ユニットからホストコントローラへ障害発生通知を送信して、ホストコントローラからの指令により制御ユニットの障害に対応させているものがある（例えば、特許文献１参照）。
図７は、特許文献１の方法をロボットに適用した場合のロボットの構成を示すブロック図である。図７において、７００はホストコントローラ、７０４はイーサネット（登録商標）、７１０は制御ユニットで、ロボットの右腕を制御する右腕ユニット、７１１は右腕ユニットのユニットコントローラ、７２０は制御ユニットで、ロボットの左腕を制御する左腕ユニット、７２１は左腕ユニットのユニットコントローラ、７３０は制御ユニットで、ロボット全体の移動制御を行なう移動ユニット、７３１は移動ユニットのユニットコントローラである。７０１はホストコントローラ７００の中にあり、モーション指令を作成するモーション指令作成部、７０２は通信制御を行なう通信処理部、７０３は障害時の復旧を処理する障害復旧処理部である。また、７３２はユニットコントローラ７３１の通信処理部、７３３はモーション制御を行なうモーション制御部、７３４は障害発生を監視し、障害が発生したときホストコンピュータに通知する障害発生監視部、７３５はサーボネットワーク、７３６はサーボモータである。なお、図７において、右腕ユニット７１０および左腕ユニット７２０の構成要素はすべて、移動ユニット７３０と同じであるので説明は省略する。
この構成において、例えば右腕ユニット７１０に障害が発生した場合、まず右腕ユニット７１０はホストコントローラ７００へ障害発生通知を送信する。ホストコントローラ７００は、右腕ユニット７１０からの障害発生通知を受信し、障害復旧処理部７０３にて各制御ユニットに対する障害復旧手段を選択し、各制御ユニットへ通知する。各制御ユニットはホストコントローラ７００からの障害復旧手段を受信し、モーション制御手段７３３にて実行する。
このように、特許文献１に係る従来の制御システムでは、制御ユニットで発生した障害をホストコントローラを介して他の制御ユニットへ通知して障害へ対応する、という手順がとられていた。
【０００４】
また、ユニットコントローラによって制御されている制御ユニット内のアクチュエータの駆動装置にて障害が発生した場合に、ユニットコントローラを介さずに、他の駆動装置へ直接障害発生を通知し、各駆動装置を非常停止させているものもある（例えば、特許文献２参照）。
図８は特許文献２の方法をロボットに適用した場合のロボットの構成を示すブロック図である。図８において、８００はホストコントローラ、８０３はイーサネット(登録商標）、８１０は制御ユニットの右腕ユニット、８１１は右腕ユニットのユニットコントローラ、８２０は制御ユニットの左腕ユニット、８２１は左腕ユニットのユニットコントローラ、８３０は制御ユニットの移動ユニット、８３１は移動ユニットのユニットコントローラである。８０１はホストコントローラ８００のモーション指令作成部、８０２は通信処理部である。また、８３２はユニットコントローラ８３１の通信処理部、８３３はモーション制御部、８３４は障害発生を監視し、障害が発生したとき他の制御ユニットに通知する障害発生監視部、８３５は他の制御ユニットの状態情報を処理する状態情報処理部、８３６は非常停止処理部、８３７はサーボネットワーク、８３８はサーボモータである。なお、この図において、右腕ユニット８１０および左腕ユニット８２０の構成要素はすべて、移動ユニット８３０と同じであるので説明は省略する。
この構成では、特許文献２のユニットコントローラはホストコントローラ８００に相当し、特許文献２の駆動ユニットは制御装置８１０〜８３０に相当する。
この構成において、例えば右腕ユニット８１０に障害が発生した場合、まず右腕ユニット８１０は他の制御ユニット、つまり、左腕ユニット８２０と移動ユニット８３０へ障害発生通知を送信する。各制御ユニット８２０および８３０は、右腕ユニット８１０からの障害発生通知を受信し、右腕ユニット８１０の状態情報処理部８３５にて非常停止することを選択し、非常停止処理部８３６を経由してモーション制御手段８３３にて非常停止を実行する。
このように、特許文献２に係る従来の制御システムでは、制御ユニットで発生した障害を直接他の制御ユニットへ送信し、各制御ユニットは障害が発生した制御ユニットの状態情報から非常停止手段を判定して、実行する、という手順がとられていた。
【特許文献１】特許第２８２０１９０号公報（請求項４、第７―８頁、図１２）
【特許文献２】特開２００５−１７６４９３号公報（請求項１、第４―５頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献１における従来の協調制御方法をロボットに適用すると、障害が発生した制御ユニットからホストコントローラへ障害発生が通知され、ホストコントローラで障害対応手段が決定され、制御ユニットへ伝達されるというという手順をとることになり、制御ユニットが障害対応作業を開始するまでの時間が、ホストコントローラにおける障害発生通知を受信してから障害対応手段の送信までの処理時間に影響を受けるという問題があった。特に近年、ホストコントローラには、豊富なユーザインタフェースを特徴とするMicrosoft社製Windows（登録商標）オペレーティングシステムを採用するものもあり、このようなリアルタイム処理には対応していないオペレーティングシステム上にて、前述した障害対応手段判定処理を実行しようとした場合、Windows（登録商標）オペレーティングシステム上の他のタスク処理が優先されて、障害対応手段を送信するまでの時間が延びてしまい、制御ユニットが迅速に障害に対応することができないという問題があった。この問題の影響を前述した双腕ロボットの例で考えると、右腕で発生した障害のゆえに右腕の姿勢が変化した場合、右腕ユニットに対する左腕ユニットの反応が遅くなることにより、両腕でつかんだ物体を落としてしまうといった問題がある。
一方、この問題の解決策として特許文献２における従来の協調制御方法を前述した双腕ロボットに適用するならば、制御ユニット間の協調度合いに無関係に非常停止動作を開始するため、右腕ユニットにて何らかの障害が発生した場合、左腕ユニットも移動ユニットも同様に非常停止動作を開始することとなる。しかしこの場合、左腕ユニットは右腕ユニットと協調して停止する必要があるが、移動ユニットは停止する必要があるかないか決定することなく停止動作をするため、両腕ユニットの協調とは無関係な移動ユニットの移動を継続させることができず、双腕ロボット全体として作業効率を低下させてしまうといった問題もあった。
本発明はこのような問題点に鑑みてなされたものであり、制御ユニット間で直接障害情報を授受するとともに、制御ユニット間の協調度合いに応じて各制御ユニットの障害対応手段を決定することができ、しかもリアルタイムに制御ユニット間の協調度合いの変更を可能とし、柔軟性の高い協調制御が可能なロボット及びユニットコントローラ及び制御ユニット間協調制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットにおいて、前記ユニットコントローラに、前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータと、障害が発生した場合に、他の前記制御ユニットへ障害発生通知を送信する通信処理部と、他の前記制御ユニットからの前記障害発生通知を受信したとき、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する障害対応手段判定部を備えることを特徴とするものである。
また、請求項２に記載の発明は、請求項１に記載のロボットにおいて、前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、前記ホストコントローラに、前記制御ユニットへ与える制御動作指令に応じて前記制御ユニット間の協調パラメータを決定する協調パラメータ作成部と、作成した前記協調パラメータを前記制御ユニットに送信する通信処理部を備え、前記ユニットコントローラに協調パラメータの値を上位からの指令により更新する協調パラメータ更新部を更に備え、前記ユニットコントローラが、受信した協調パラメータを使用し、障害への対応を行うことを特徴とするものである。
また、請求項３に記載の発明は、請求項２に記載のロボットにおいて、前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とするものである。
【０００７】
また、請求項４に記載の発明は、アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットのユニットコントローラにおいて、前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータと、障害が発生した場合に、他の前記制御ユニットへ障害発生通知を送信する通信処理部と、他の前記制御ユニットからの前記障害発生通知を受信したとき、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する障害対応手段判定部を備えることを特徴とするものである。
また、請求項５に記載の発明は、請求項５に記載のユニットコントローラにおいて、前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、前記ユニットコントローラに協調パラメータの値を上位からの指令により更新する協調パラメータ更新部を更に備え、前記ホストコントローラが作成した協調パラメータを前記ユニットコントローラが受信したとき、受信した協調パラメータを使用し、障害への対応を決め処理を実行することを特徴とするものである。
また、請求項６に記載の発明は、請求項５に記載のユニットコントローラにおいて、前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とするものである。
【０００８】
また、請求項７に記載の発明は、アクチュエータを制御するユニットコントローラを備える制御ユニットの複数が、互いにネットワークで接続されて構成されるロボットの制御ユニット間協調制御方法において、前記ユニットコントローラは、前記制御ユニットと他の前記制御ユニットとの協調度合いの程度を示す協調パラメータを保持し、前記制御ユニットで障害が発生した場合に、前記制御ユニットは他の前記制御ユニットへ障害発生通知を送信し、前記障害発生通知を受信した前記ユニットコントローラは、前記協調パラメータの値により自分の前記制御ユニットの障害への対応を決め処理を実行する、という手順で処理することを特徴とするものである。
また、請求項８に記載の発明は、請求項７に記載の制御ユニット間協調制御方法において、前記ロボットに前記制御ユニット全体を制御するホストコントローラを備え、前記ホストコントローラが、前記制御ユニットへ与える制御動作指令に応じて前記制御ユニット間の協調パラメータを決定し、前記制御ユニットの各々に前記協調パラメータを送信し、前記制御ユニットの前記ユニットコントローラが受信した前記協調パラメータを使用し、障害への対応を決めることを特徴とするものである。
また、請求項９に記載の発明は、請求項８に記載の制御ユニット間協調制御方法において、前記協調パラメータは、前記ホストコントローラから前記制御ユニットへ送信される制御指令に基づいて決められることを特徴とするものである。
【発明の効果】
【０００９】
請求項１、４、７に記載の発明によると、各制御ユニットはそれぞれ、他の制御ユニットにて発生した障害発生通知を受信したとき、障害が発生した制御ユニットとの間の協調パラメータの値により障害への対応を決め処理を実行するので、柔軟な協調制御が可能となる。
さらに、請求項２、５、８に記載の発明によると、ホストコントローラから各制御ユニットへ与えられる協調動作指令に応じて、各制御ユニットへ協調パラメータが送信されるため、時々刻々と協調制御の対象が変化するようなアプリケーションの場合でも、常に最も協調度合いの程度の高い制御ユニット間で障害への対応を決め処理を実行することができ、柔軟な協調制御が可能となる。
さらに、請求項３、６、９に記載の発明によると、ホストコントローラからの制御指令に基づいて協調パラメータの値を決定するので、協調パラメータの優先順位の高い制御ユニット間で協調しながら障害への対応を決め処理を実行することができるので、柔軟な協調制御が可能となる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【００１１】
図１は、本発明のロボットの構成を示すブロック図である。図１においてロボットはホストコントローラ１００と、制御ユニットで、ロボットの右腕を制御する右腕ユニット１１０と、制御ユニットで、ロボットの左腕を制御する左腕ユニット１２０と、制御ユニットで、ロボット全体の移動制御を行なう移動ユニット１３０と、それらを接続するイーサネット(登録商標）１０５から構成されている。ホストコントローラ１００は、モーション指令を作成するモーション指令作成部１０１と、通信制御を行なう通信処理部１０２と、協調パラメータを作成する協調パラメータ作成部１０３と、協調パラメータ１０４を備えている。右腕ユニット１１０、左腕ユニット１２０および移動ユニット１３０は、それぞれそのユニットコントローラ１１１、１２１、１３１を内蔵し、各ユニットコントローラは通信処理部１３２と、モーション制御を行なうモーション制御部１３３と、障害発生を監視し、障害が発生したとき他の制御ユニットに通知する障害発生監視部１３４と、協調パラメータを更新する協調パラメータ更新部１３５と、協調パラメータ１３６と、障害への対応手段を判定する障害対応手段判定部１３７とを備え、サーボネットワーク１３８に接続されている複数のサーボモータ１３９を制御している。また協調パラメータ１３６はいずれも各ユニットコントローラに保存されている。なお、この図において、右腕ユニット１１０および左腕ユニット１２０の構成要素はすべて、移動ユニット１３０と同じであるので説明は省略する。
この構成において、ホストコントローラ１００は制御する制御ユニットの協調度合いに応じて協調パラメータ１０４を作成し、それぞれの制御ユニットへ送信する。
それぞれの制御ユニットは、ホストコントローラ１００から受信した協調パラメータを受信した後、それを保存する。
このようなシステムにおいて、右腕ユニット１１０にて障害発生監視部が何らかの障害を検出した場合、通信処理部を通じて障害発生通知が送信される。
一方、左腕ユニット１２０や移動ユニット１３０の通信処理部１３２は、障害発生通知を受信した後、障害対応手段判定部１３７で実行される障害対応タスクを起動し、障害対応タスクは、保存しておいた協調パラメータ１３６を判定し、協調度合いに応じて障害への対応手段を決定し、モーション制御部１３３に所定の障害対応動作を指示することとなる。
【００１２】
図２は、各制御ユニットにおいて保存される協調パラメータを示す図である。ここでは右腕ユニット１１０と左腕ユニット１２０が同期して物を運ぶといった協調動作を実施している一方で、移動ユニット１３０は両腕ユニットと協調することなくゆっくりと前進している場合を想定している。
右腕ユニット１１０の協調パラメータでは、左腕ユニット１２０に対する協調度合いが「１」という数値で表されている。その一方で、移動ユニット１３０に対する協調度合いは「４」となっている。この数値が小さいほど協調度合いが高く、したがって、右腕ユニット１１０にとって、左腕ユニット１２０のほうが移動ユニット１３０よりも緊密に協調して動作していることを示している。
これに対応して、左腕ユニット１２０の協調パラメータも同様に、右腕ユニット１１０、移動ユニット１３０に対する協調度合いはそれぞれ「１」、「４」であり、移動ユニット１３０の協調パラメータも右腕ユニット１１０、左腕ユニット１２０に対する協調度合いはそれぞれ「４」「４」となり、それぞれの制御ユニット間の協調パラメータは整合性がある。
【００１３】
図３は、本発明のロボットにおけるホストコントローラの処理手順を示すフローチャートである。ホストコントローラ１００は、ロボットに対する指令をそれぞれの制御ユニットへの指令へ分割し、送信することが主な機能であるが、ここでは特に右腕ユニット１１０と左腕ユニット１２０を協調して動作させる指令を処理する手順を示す。
はじめに、ステップＳ３０で右腕ユニット１１０と左腕ユニット１２０を協調動作させる指令を作成する。次に、ステップＳ３１でその指令から右腕ユニット１１０、左腕ユニット１２０、移動ユニット１３０すべての協調パラメータを作成する。協調パラメータは、次のように、ホストコントローラから両腕ユニットに対する指令に応じて決定される。例えば、物体をつかんで運ぶといった同期もあれば、両腕ユニットがそれぞれ待ち合わせをしながら作業を遂行する待ち合わせ同期というものもある。これらの場合に対して、両腕ユニットの協調パラメータをそれぞれ「１」および「３」というように表現することで、制御指令の協調程度の度合いの違いを反映させることができる。
図４に両腕ユニットに対する指令と協調パラメータの関係を示す。
図３の説明に戻ると、ステップＳ３２でこれらの協調パラメータを各制御ユニットへ送信して更新させるべきか否かを判定する。制御ユニットごとに、今作成した協調パラメータを、現在の協調パラメータと比較し、更新が必要と判定されれば、ステップＳ３３で該当する制御ユニットへ協調パラメータを送信するが、更新が不要と判定されれば送信しない。例えば、各制御ユニットが何も協調動作していない場合に、それぞれの協調度合いは「３」であり、右腕ユニット１１０と左腕ユニット１２０のみが協調動作を開始するときには、右腕ユニット１１０と左腕ユニット１２０の協調度合いが「１」になったと仮定する。この場合、右腕ユニット１１０と左腕ユニット１２０との間の協調度合いのみが変化したので、右腕ユニット１１０と左腕ユニット１２０の協調パラメータのみ更新が必要と判定される。次にステップＳ３４で、ステップＳ３０にて作成した協調動作指令をそれぞれの制御ユニットに対する動作指令へ分配して送信する。
このように、協調動作指令を作成するたびに、協調パラメータを作成するので、指令のたびに動的に変化する協調度合いを協調パラメータに反映させることができる。また、協調パラメータの更新が必要な制御ユニットに対してのみ協調パラメータを送信するので、ネットワーク上のトラフィックを軽減することができる。
【００１４】
図５は、本発明のロボットにおけるユニットコントローラの通信処理部および障害対応手段判定部の処理手順を示すフローチャートである。
この図を用いて本発明の方法を順を追って説明する。
はじめにステップＳ５０でデータの受信待ちとなる。何かのデータを受信すると、ステップＳ５１で受信データの種別を判定する。もし、受信データが制御ユニットに対する動作指令であるならば、ステップＳ５２で受信データに含まれる動作指令を実行する動作指令実行タスクを起動し、タスクの完了を待つことなく再び受信データ待ちとなる。この動作指令実行タスクは図１のモーション制御部１３３で実行される。
ステップ５１で、もし受信データが協調パラメータの更新要求であるならば、ステップＳ５３で受信データに含まれる協調パラメータを更新する協調パラメータ更新タスクを起動し、やはり再び受信データ待ちとなる。この協調パラメータ更新タスクは図１の協調パラメータ更新部１３５で実行される。
ステップ５１で、もし受信データが障害発生通知であるならば、ステップＳ５４で受信データに含まれる障害発生データを処理する障害対応タスクを起動して、やはり再び受信データ待ちとなる。この障害対応タスクは図１の障害対応手段判定部１３７で実行される。
次に、この障害対応タスクの処理手順を説明する。この制御ユニットは右腕ユニット１１０であるとし、右腕ユニット１１０と左腕ユニット１２０とが協調動作している際に左腕ユニット１２０で障害が発生した場合を仮定する。また、各制御ユニットの協調パラメータは図２のようであると仮定する。
まず、右腕ユニット１１０の障害対応タスクは、ステップＳ５５で受信した障害発生データから障害発生源を確認する。ここでは、障害発生源は左腕ユニット１２０である。次に、ステップＳ５６で障害発生源に対する協調パラメータを確認する。ここでは、左腕ユニット１２０に対する協調度合いは「１」である。この協調度合いから、ステップＳ５７で右腕ユニット１１０が実施すべき対応手段を判定する。ここでは協調度合い「１」に対して、ステップＳ５８で障害対応動作１をモーション制御部１３３に指示する。
図６に、協調度合いに対する障害対応動作の例を示す。図６によれば、この障害対応動作１は、例えば、直ちに右腕ユニット１１０の動作を非常停止させるといったものとなる。障害対応動作の指示が終了すれば、障害対応タスクは終了する。
一方、この状況での移動ユニット１３０の障害対応タスクにおいては、左腕ユニット１２０に対する協調度合いが「４」なので、ステップＳ６０で障害対応動作４を指示する。この障害対応動作４は、例えば、減速せずに現在の動作を継続する、といったものになる。
他方、ステップＳ５９で実行される障害対応動作２は、例えば、右腕ユニット１１０の動作を減速停止させるといったものとなる。
このように、制御ユニットが、協調度合いに応じて障害対応動作を選択するので、動的に変化する協調度合いに応じて制御ユニットを制御することができるのである。
また、各制御ユニット間が直接障害発生通知を授受し、各制御ユニットが協調パラメータに応じた障害対応手段を判定し、処理を実行するので、障害発生時に迅速にかつ柔軟に対応することができる。
【００１５】
以上に述べたような機能を持つホストコントローラ１００や制御ユニット１１０〜１３０から構成されるロボットにおいては、ある制御ユニットに障害が発生しても、制御ユニット間の協調度合いに応じて、システム全体を停止させることなく、効果的に動作を継続させることが可能となり、作業効率を向上させることができる。
【産業上の利用可能性】
【００１６】
本発明は、ネットワークで接続されたホストコントローラと、ホストコントローラにより協調制御される制御ユニットという構成をとるため、適用対象はロボットに限らず、モーションコントローラとネットワークサーボから構成されるモーションコントロールシステム全般に適用できる。
【図面の簡単な説明】
【００１７】
【図１】本発明のロボットの構成を示すブロック図
【図２】各制御ユニットにおいて保存される協調パラメータを示す図
【図３】本発明のロボットにおけるホストコントローラの処理手順を示すフローチャート
【図４】両腕ユニットに対する指令と協調パラメータの関係を示す図
【図５】本発明のロボットにおけるユニットコントローラの通信処理部および障害対応手段判定部の処理手順を示すフローチャート
【図６】協調度合いに対する障害対応動作の例を示す図
【図７】従来の特許文献１の方法をロボットに適用した場合のロボットの構成を示すブロック図
【図８】従来の特許文献２の方法をロボットに適用した場合のロボットの構成を示すブロック図
【符号の説明】
【００１８】
１００、７００、８００  ホストコントローラ
１０１、７０１、８０１  モーション指令作成部
１０２、７３２、８０２、８３２  通信処理部
１０３  協調パラメータ作成部
１０４、１３６  協調パラメータ
１０５、７０４、８０３  イーサネット（登録商標）
１１０、７１０、８１０  制御ユニット（右腕ユニット）
１１１、７１１、８１１  ユニットコントローラ
１２０、７２０、８２０  制御ユニット（左腕ユニット）
１２１、７２１、８２１  ユニットコントローラ
１３０、７３０、８３０  制御ユニット（移動ユニット）
１３１、７３１、８３１  ユニットコントローラ
１３３、７３３、８３３  モーション制御部
１３４、７３４、８３４  障害発生監視部
１３５  協調パラメータ更新部
１３７、７０３  障害対応手段判定部
１３８、７３５、８３７  サーボネットワーク
１３９、７３６、８３８  サーボモータ
【図１】
2009297848.tif 000003
【図２】
2009297848.tif 000004
【図３】
2009297848.tif 000005
【図４】
2009297848.tif 000006
【図５】
2009297848.tif 000007
【図６】
2009297848.tif 000008
【図７】
2009297848.tif 000009
【図８】
2009297848.tif 000010