(57)【特許請求の範囲】
【請求項１】
作業空間を共有する２台のロボットを有するロボットシステムにおいて、各ロボットがその先端部に保持するツールの先端位置に、所定範囲の第１の仮想空間領域と、その第１の仮想空間領域より内側に所定範囲の第２の仮想空間領域を仮想し、各ロボットの第２の仮想空間領域同士が干渉すれば各ロボットを停止するとともに、各ロボットの第１の仮想空間領域同士が干渉すれば、その干渉から遠ざかる方のロボットではない方のロボットを停止させ、両方とも近づく方向に動いておれば優先度の低い方を停止させるようにすることを特徴とする複数ロボットの制御方法。
【請求項２】作業もしくはツールの種類、またはロボットの動作状態に応じて前記第１の仮想空間領域又は第２の仮想空間領域の大きさを変化させることを特徴とする請求項１記載の複数ロボットの制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ロボットの制御方法に関し、特に、複数のロボットの協調作業時にアームの干渉を生ずる場合の制御方法に関する。
【０００２】
【従来の技術】
産業用ロボットシステムにおいては、同一テーブルに置かれたワークに対して異なる作業を行う場合や、ワークを一方のロボットアームで支持しい他方のロボットのアームで加工・組立を行う場合のように、複数のロボットを協調動作させて作業を行うようにしたものがある。このように複数のロボットを用い、作業空間を共有するシステムにおいては、各ロボットアームが同時に同じ領域に存在すると、アーム同士が衝突するというアーム干渉の問題が生ずる。
そのため、従来では、一方のロボットの制御点（ロボットが保持しているツールの先端位置）を中心としてエンベロープ（球体や直方体等から定義される仮想空間領域）を仮想し、同様に仮想した他方のロボットのエンベロープが前記一方のロボットのエンベロープに干渉（仮想空間領域同士が一部重なること）したときに双方のロボットを停止させるようにしていた（本出願が提案した特開昭６３−２６１４０３号公報参照）。この停止判断処理は、各ロボット制御部から伝えられるロボットの位置データに基づいて、モニタ部でプレイバック時にロボットの実動作と並行して行われ、アーム同士の衝突の直前で、双方のロボットの動作が停止するということになる。
【０００３】
【発明が解決しようとする課題】
ところが、従来の方法では、双方のロボットが近づきながら作業する場合や、一方のロボットが他方のロボットを追いかけるような動作を行う場合にも双方のロボットが停止してしまうという問題点がある。
一方、特開平５−５３６３４号公報には、干渉領域をチェックし、干渉する場合は動作コマンドを自動修正する技術、併せて、干渉領域の内側から外側へ動作する動作コマンドは修正しないようにするものが開示されているが、ここでいう干渉領域とは固定的に設定される領域であって、上記エンベロープとは異なるものである。
そこで本発明は、双方のロボットが近づきながら作業する場合や、一方のロボットが他方のロボットを追いかけるような動作を行う場合にも、停止させずに動作を続行できる方法を提供することを目的とする。
【０００４】
【課題を解決するための手段】
この目的を達成するため、本発明は、各ロボットは外側と内側の二重のエンベロープを持つ。そして次のように動作する。
▲１▼各ロボットは自己の内側のエンベロープが干渉すれば自己のロボットを停止する。
▲２▼各ロボットの外側のエンベロープが同士が干渉すれば、その干渉から遠ざかる方のロボットではない方のロボットを停止させる。もし両方とも近づく方向に動いておれば優先度の低い方を停止させる。
【０００５】
【作用】
外側のエンベロープが同士が干渉しても直ちに衝突することはないので、その干渉から遠ざかる方のロボットではない方のロボットを停止させることにより、少なくとも１つのロボットの作業は続行できる。また、もし両方とも近づく方向に動いておれば優先度の低い方を停止させることにより、少なくとも１つのロボットの作業は続行できる。内側のエンベロープが干渉すれば、衝突の恐れがあるので、それぞれ自己のロボットを停止することで衝突を回避する。
【０００６】
【実施例】
以下、本発明の具体的実施例を図示して説明する。図２は本発明を実施する装置を示すブロック図であり、ロボット２台のシステムを示している。
ロボット１，２は、それぞれロボット制御部３，４から独自に制御されている。ロボット制御部３，４はバスまたはローカルエリアネットワーク５を介してモニタ部６から監視される。
モニタ部６は、ロボット制御部３，４から伝えられるロボットの位置データを基に、ロボット１，２の、手首に保持したツールの先端位置を中心に球状、立方体、または直方体状の仮想空間領域（以下エンベロープという）１ａ，２ａを仮想し、その動きロボット１，２の実動作時に並行してシュミレーションしている。エンベロープは、内側エンベロープと外側エンベロープの２重になっているが、図示しているのは外側エンベロープである。また、エンベロープの形状は特に限定されないが、図示した直方体の他、立方体または球が望ましい。エンベロープを２重にすることにより、以下に述べるように、衝突の危険生がまだ低い段階と、即時停止しないと衝突してしまう段階との２つの状態に分けて制御できるのである。
【０００７】
さて、図３に示すように、８の方向に動いているロボット２のエンベロープ２ａをロボット１のエンベロープ１ａが追いかけるように７の方向に動いているケースについて説明する。図示しているエンベロープは外側エンベロープであり、この外側エンベロープが干渉（接触）した場合、ロボット２は干渉しているロボットから遠ざかる方向に動作しているので、停止させず、そのまま動作させる。各制御部からはモニタ部にロボット動作位置・方向が逐次伝えられており、モニタ部ではそのデータからエンベロープの干渉と、ロボットの現在位置と動作方向しているロボットに近づく方向に動作しているので停。すなわち、モニタ部６からロボット制御部３に対して停止指令が発せられ、動作プログラムの実行が一時停止させる。エンベロープの干渉がなくなれば、一時停止は解除される。
【０００８】
次に、図４に示すように、８の方向に動いているロボット２のエンベロープ２ａと、７の方向に動いているロボット１のエンベロープ１ａが互いに近づくように動作するケースについて説明する。この場合、優先度の低いロボットの方を停止させる（前述と同様に、モニタ部６からの指令で動作プログラムの実行を一時停止させ、エンベロープの干渉がなくなれば、一時停止は解除する）。
【０００９】
上記の説明では、いずれも外側エンベロープの干渉による処置であり、これらの処置にも係わらず内側エンベロープの干渉が生じた場合は、内側エンベロープの干渉が生じた側のロボットを停止させる。以上の処理をまとめて示したのが図１のフローチャートである。
なお、内側又は外側エンベロープの大きさについては、作業の種類、ツールの種類、またはロボットの動作状態により自動的に変更できるようにすると作業効率はさらに上がる。そのためには作業の種類、ツールの種類、またはロボットの動作状態に対応するエンベロープの大きさを予め記憶させておけばよい。
【００１０】
【発明の効果】
以上述べたように、本発明によれば、衝突の危険度を２段階に分け、かつ又ロボット同士の動作方向を考慮して衝突を回避できるので、無駄な停止が発生せず作業時間の短縮に大きな効果がある。
【図面の簡単な説明】
【図１】本発明の実施例を示すフローチャート
【図２】本発明の実施に用いる装置例を示す図
【図３】本発明の作用説明図
【図４】本発明の作用説明図
【符号の説明】
１，２      ロボット
１ａ，２ａ  エンベロープ（仮想空間領域）
３，４      ボット制御部
５          バスまたはローカルエリアネットワーク
６          モニタ部
７          エンベロープ１ａの動作方向
８          エンベロープ２ａの動作方向
【図１】
0003551330.tif 000002
【図２】
0003551330.tif 000003
【図３】
0003551330.tif 000004
【図４】
0003551330.tif 000005