(57)【要約】【課題】複数のロボットの動作における干渉領域に対して、同時期にロボットを進入させ、作業効率の向上を図る。【解決手段】複数のロボットを制御するロボット制御方法であって、前記ロボットが動作する動作領域を演算する動作領域演算ステップと、前記動作領域に基づいて、前記ロボット間で前記動作領域が相互に干渉する干渉領域を演算する干渉領域演算ステップと、前記ロボットの動作から前記干渉領域に進入する進入動作を抽出し、前記進入動作を、前記干渉領域に進入する前の第１進入動作と、前記干渉領域に進入した後の動作を含む第２進入動作と、に区分けする動作区分けステップと、各前記ロボットの前記第２進入動作を比較し、前記第２進入動作が相互に干渉しないように、前記第２進入動作の順番を割り当てる進入動作割当てステップと、を含む。【選択図】図５
2010240772.tif 000002
【特許請求の範囲】
【請求項１】
複数のロボットを制御するロボット制御方法であって、
前記ロボットが動作する動作領域を演算する動作領域演算ステップと、
前記動作領域に基づいて、前記ロボット間で前記動作領域が相互に干渉する干渉領域を演算する干渉領域演算ステップと、
前記ロボットの動作から前記干渉領域に進入する進入動作を抽出し、前記進入動作を、前記干渉領域に進入する前の第１進入動作と、前記干渉領域に進入した後の動作を含む第２進入動作と、に区分けする動作区分けステップと、
各前記ロボットの前記第２進入動作同士を比較して、前記第２進入動作が相互に干渉しないように、前記第２進入動作の順番を割り当てる進入動作割当てステップと、を含むことを特徴とするロボット制御方法。
【請求項２】
請求項１に記載のロボット制御方法において、
前記動作区分けステップでは、
前記第１進入動作と前記第２進入動作の間に、前記ロボットの動作を切り替えるフラグを設定するフラグ設定ステップを有することを特徴とするロボット制御方法。
【請求項３】
請求項１または２に記載のロボット制御方法において、
前記動作区分けステップでは、
前記第２進入動作の手前の前記第１進入動作にインデックスを付与するインデックス付与ステップを有することを特徴とするロボット制御方法。
【請求項４】
請求項１〜３のいずれか一項に記載のロボット制御方法において、
前記動作区分けステップでは、
前記第２進入動作を、前記干渉領域に進入する前の動作と、前記干渉領域に進入した後の動作と、に分割する第２進入動作分割ステップを有することを特徴とするロボット制御方法。
【請求項５】
請求項４に記載のロボット制御方法において、
前記動作区分けステップでは、
前記第２進入動作の前記干渉領域に進入した後の動作を複数分割する進入後動作分割ステップを有することを特徴とするロボット制御方法。
【請求項６】
請求項１〜５のいずれか一項に記載のロボット制御方法において、
前記進入動作割当てステップでは、
各前記ロボットの前記第２進入動作の前記動作領域同士を比較して、前記動作領域が相互に干渉しないように、前記第２進入動作の順番を割り当てることを特徴とするロボット制御方法。
【請求項７】
複数のロボットを制御するロボット制御装置であって、
前記ロボットが動作する動作領域を演算する動作領域演算部と、
前記動作領域に基づいて、前記ロボット間で前記動作領域が相互に干渉する干渉領域を演算する干渉領域演算部と、
前記ロボットの動作から前記干渉領域に進入する進入動作を抽出し、前記進入動作を、前記干渉領域に進入する前の第１進入動作と、前記干渉領域に進入した後の動作を含む第２進入動作と、に区分けする動作区分け部と、
各前記ロボットの前記第２進入動作同士を比較して、前記第２進入動作が相互に干渉しないように、前記第２進入動作の順番を割り当てる進入動作割当て部と、を備えたことを特徴とするロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置、ロボット制御方法に関する。
【背景技術】
【０００２】
複数のロボットを協働して動作させるとき、一方のロボットの動作領域と他方のロボットの動作領域とが一部重複する干渉領域が発生する場合がある。そして、双方のロボットが干渉領域に侵入したときに、ロボット同士が衝突するおそれがある。このため、一方のロボットが干渉領域に侵入する際には、他方のロボットが干渉領域に侵入していないことを確認した後、当該ロボットを干渉領域に侵入させるとともに、他方のロボットを干渉領域以外の領域で待機させることにより、干渉領域におけるロボット同士の衝突を防止するロボット制御装置が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２２４１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のロボット制御装置では、一方のロボットが干渉領域に侵入した場合には、他方のロボットは、一方のロボットが干渉領域外に移動するまで、干渉領域以外の領域で待機する必要があるため、作業効率が低下してしまう、という課題があった。
【課題を解決するための手段】
【０００５】
本発明は、上記課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
【０００６】
［適用例１］本適用例にかかるロボット制御方法は、複数のロボットを制御するロボット制御方法であって、前記ロボットが動作する動作領域を演算する動作領域演算ステップと、前記動作領域に基づいて、前記ロボット間で前記動作領域が相互に干渉する干渉領域を演算する干渉領域演算ステップと、前記ロボットの動作から前記干渉領域に進入する進入動作を抽出し、前記進入動作を、前記干渉領域に進入する前の第１進入動作と、前記干渉領域に進入した後の動作を含む第２進入動作と、に区分けする動作区分けステップと、各前記ロボットの前記第２進入動作同士を比較して、前記第２進入動作が相互に干渉しないように、前記第２進入動作の順番を割り当てる進入動作割当てステップと、を含むことを特徴とする。
【０００７】
この構成によれば、干渉領域に進入する各ロボットの進入動作を特定し、ロボット間で干渉領域に進入する第２進入動作が相互に干渉しないように、第２進入動作の動作順番を割り当てる。従って、干渉領域においても、同時期に複数のロボットを安全に動作させ、作業効率を高めることができる。
【０００８】
［適用例２］上記適用例にかかるロボット制御方法の前記動作区分けステップでは、前記第１進入動作と前記第２進入動作の間に、前記ロボットの動作を切り替えるフラグを設定するフラグ設定ステップを有することを特徴とする。
【０００９】
この構成によれば、例えば、フラグを立てた場合に、進入動作は、干渉領域に進入する手前で停止させ、フラグが解除された場合には、干渉領域内に進入させることができる。これにより、干渉領域の境界でロボットの動作が規制される。従って、干渉領域に進入する動作の安全性を高めることができる。
【００１０】
［適用例３］上記適用例にかかるロボット制御方法の前記動作区分けステップでは、前記第２進入動作の手前の前記第１進入動作にインデックスを付与するインデックス付与ステップを有することを特徴とする。
【００１１】
この構成によれば、第１進入動作に付与されたインデックスを監視することにより、フラグの設定や第２進入動作を容易に特定することができる。
【００１２】
［適用例４］上記適用例にかかるロボット制御方法の前記動作区分けステップでは、前記第２進入動作を、前記干渉領域に進入する前の動作と、前記干渉領域に進入した後の動作と、に分割する第２進入動作分割ステップを有することを特徴とする。
【００１３】
この構成によれば、第２進入動作に含まれる干渉領域内の動作と干渉領域外の動作とを明確に分割することにより、ロボットの動作領域が広がり、ロボットの動作の自由度を高めることができる。
【００１４】
［適用例５］上記適用例にかかるロボット制御方法の前記動作区分けステップでは、前記第２進入動作の前記干渉領域に進入した後の動作を複数分割する進入後動作分割ステップを有することを特徴とする。
【００１５】
この構成によれば、干渉領域内における動作を分割することにより、干渉領域でロボット間の動作が干渉する領域が小さくなるので、さらに、ロボットの動作の自由度を高めることができる。
【００１６】
［適用例６］上記適用例にかかるロボット制御方法の前記進入動作割当てステップでは、各前記ロボットの前記第２進入動作の前記動作領域同士を比較して、前記動作領域が相互に干渉しないように、前記第２進入動作の順番を割り当てることを特徴とする。
【００１７】
この構成によれば、第２進入動作を動作領域に関連付けし、当該動作領域を比較対象とするので、第２進入動作の比較を容易に行うことができる。
【００１８】
［適用例７］本適用例にかかるロボット制御装置は、複数のロボットを制御するロボット制御装置であって、前記ロボットが動作する動作領域を演算する動作領域演算部と、前記動作領域に基づいて、前記ロボット間で前記動作領域が相互に干渉する干渉領域を演算する干渉領域演算部と、前記ロボットの動作から前記干渉領域に進入する進入動作を抽出し、前記進入動作を、前記干渉領域に進入する前の第１進入動作と、前記干渉領域に進入した後の動作を含む第２進入動作と、に区分けする動作区分け部と、各前記ロボットの前記第２進入動作同士を比較して、前記第２進入動作が相互に干渉しないように、前記第２進入動作の順番を割り当てる進入動作割当て部と、を備えたことを特徴とする。
【００１９】
この構成によれば、干渉領域に進入する各ロボットの進入動作を特定し、ロボット間で第２進入動作が相互に干渉しないように、干渉領域における第２進入動作の動作順番を割り当てる。従って、干渉領域においても、同時期に複数のロボットを安全に動作させ、作業効率を高めることができる。
【図面の簡単な説明】
【００２０】
【図１】ロボット制御装置の構成を示すブロック図。
【図２】ロボットの動作例を示す説明図。
【図３】ロボットの動作領域および干渉領域の演算方法を説明するための説明図。
【図４】ロボットの動作内容に対する動作領域の演算方法を説明するための説明図。
【図５】ロボットの動作内容に対する動作領域の演算方法を説明するための説明図。
【図６】ロボットの動作順番割当て方法を説明するための説明図。
【図７】ロボットの第２進入動作の干渉領域を説明するための説明図。
【図８】ロボット制御装置の前処理方法を示すフローチャート。
【図９】ロボット制御装置の動作方法を示すフローチャート。
【図１０】ロボット制御装置の動作順番割当て方法を示すフローチャート。
【発明を実施するための形態】
【００２１】
以下、本発明を具体化した実施形態について図面に従って説明する。
まず、ロボット制御装置の構成について説明する。図１は、ロボット制御装置の構成を示すブロック図である。ロボット制御装置１は、動作部を有するロボット１０と、ロボット１０の動作を制御する統括制御部２０を備えている。統括制御部２０は、動作プログラム等が格納された記憶部２１と、動作プログラムに基づいて、動作信号を生成し、当該動作信号をロボット１０に対して送信する動作指令部２２を備えている。さらに、ロボット１０が動作する動作領域を演算する動作領域演算部２３と、ロボット１０の動作領域に基づいて、ロボット１０間の干渉領域を演算する干渉領域演算部２４と、ロボット１０の動作を区分けする動作区分け部２５と、干渉領域におけるロボット１０の動作順番を割り当てる進入動作割当て部２６等を備えている。以下、これらの部材の機能について説明する。なお、本実施形態では、２台のロボット１０ａ，１０ｂを動作プログラムに従って動作させる構成例について説明する。
【００２２】
図２は、ロボットの構成および動作内容を示す説明図である。図２（ａ）は、ロボット１０ａの構成を示す平面図である。同図（ａ）に示すように、ロボット１０ａは、本体部１１ａと動作部としてのアーム部１２ａを備えている。そして、動作プログラムに基づいて、アーム部１２ａが、回転軸１３ａを中心として回転動作するように構成されている。また、図２（ｃ）に示すように、ロボット１０ｂも同様に、本体部１１ｂと動作部としてのアーム部１２ｂを備えている。そして、動作プログラムに基づいて、アーム部１２ｂが、回転軸１３ｂを中心として回転動作するように構成されている。なお、ロボット１０の構成は、上記説明したロボット１０の構成に限定されず、動作プログラムに従って動作するロボットであればどのような構成であってもよい。
【００２３】
次に、ロボット１０ａの動作内容について説明する。なお、本実施形態では、説明を容易にするため、ロボット１０ａに対して、例えば、動作プログラムＡに基づく動作内容について説明する。図２（ａ）は、動作プログラムＡに基づく、ロボット１０ａの動作内容を示している。ロボット１０ａは、動作ポイントＰ０ａから動作を開始し、動作ポイントＰ１ａに移動する。次いで、動作ポイントＰ２ａ，Ｐ３ａ，Ｐ４ａと順に移動する。その後、先の動作とは逆方向に、動作ポイントＰ４ａから動作ポイントＰ３ａに移動し、次いで、動作ポイントＰ２ａ，Ｐ１ａ，Ｐ０ａの順に移動する。同図（ｂ）は、これらの動作内容を表にまとめたものであり、ロボット１０ａが動作する動作順番と、各動作符号と、動作内容を示している。
【００２４】
次に、ロボット１０ｂの動作内容について説明する。本実施形態では、ロボット１０ｂに対して、例えば、動作プログラムＢに基づく動作内容について説明する。図２（ｂ）は、動作プログラムＢに基づく、ロボット１０ｂの動作内容を示している。ロボット１０ｂは、動作ポイントＰ０ｂから動作を開始し、動作ポイントＰ１ｂに移動する。次いで、動作ポイントＰ２ｂ，Ｐ３ｂ，Ｐ４ｂ，Ｐ５ｂと順に移動する。その後、先の動作とは逆方向に、動作ポイントＰ５ｂから動作ポイントＰ４ｂに移動し、次いで、動作ポイントＰ３ｂ，Ｐ２ｂ，Ｐ１ｂ，Ｐ０ｂの順に移動する。同図（ｄ）は、これらの動作内容を表にまとめたものであり、ロボット１０ｂが動作する動作順番と、各動作符号と、動作内容を示している。
【００２５】
次に、ロボット１０ａ，１０ｂの動作領域および干渉領域について説明する。図３は、ロボットの動作領域および干渉領域を示す説明図である。図３（ａ）は、ロボット１０ａが動作プログラムＡに基づいて動作する全体の動作領域を示すものである。同図（ａ）に示すように、ロボット１０ａのアーム部１２ａが動作ポイントＰ０ａ〜Ｐ４ａを往復移動する全体の領域は、動作領域ＲＡとして求められる。当該動作領域ＲＡは、動作領域演算部２３によって演算される。演算方法としては、例えば、図３（ａ）において、回転軸１３ａを基準点ＰＲａとして、アーム部１２ａの先端部となる動作ポイントＰ０ａからＰ４ａの座標点で取り囲まれる領域を演算することにより求めることができる。
【００２６】
図３（ｂ）は、ロボット１０ｂが動作プログラムＢに基づいて動作する全体の動作領域を示すものである。同図（ｂ）に示すように、ロボット１０ｂのアーム部１２ｂが動作ポイントＰ０ｂ〜Ｐ５ｂを往復移動する全体の領域は、動作領域ＲＢとして求められる。当該動作領域ＲＢは、上記同様に、動作領域演算部２３によって、図３（ｂ）において、回転軸１３ｂを基準点ＰＲｂとして、アーム部１２ｂの先端部となる動作ポイントＰ０ｂからＰ５ｂの座標点で取り囲まれる領域を演算することにより求めることができる。
【００２７】
図３（ｃ）は、ロボット１０ａとロボット１０ｂとの間における干渉領域を示している。同図（ｃ）に示すように、ロボット１０ａとロボット１０ｂを近接して配置し、双方のロボット１０ａ，１０ｂを動作させた場合に、ロボット１０ａの動作とロボット１０ｂの動作において互いに干渉する干渉領域ＲＸが発生する。当該干渉領域ＲＸは、干渉領域演算部２４によって演算される。例えば、動作領域演算部２３で演算した各ロボット１０ａ，１０ｂの動作領域ＲＡ，ＲＢに基づいて、座標上から動作領域ＲＡ，ＲＢが互いに重複する領域を干渉領域ＲＸとして演算して求められる。本実施形態では、座標上に表された点ｎ１，ｎ２，ｎ３，ｎ４で囲まれた領域が干渉領域ＲＸとなる。
【００２８】
ここで、ロボット１０ａ，１０ｂ間で干渉領域ＲＸを形成するため、動作プログラムＡに基づくロボット１０ａの動作と動作プログラムＢに基づくロボット１０ｂの動作は、共に干渉領域ＲＸに進入する進入動作に相当することになる。
【００２９】
次に、動作区分け部２５の機能について説明する。動作区分け部２５は、各ロボット１０ａ，１０ｂの進入動作を、干渉領域ＲＸに進入する前の第１進入動作と、干渉領域ＲＸに進入した後の動作を含む第２進入動作と、に区分けする機能を有する。以下、進入動作の区分け方法について説明する。
【００３０】
まず、ロボット１０ａの進入動作の区分け方法について説明する。図４は、進入動作の区分け方法示す説明図である。図４（ａ）では、ロボット１０ａの進入動作と干渉領域ＲＸとの関係を示している。まず、ロボット１０ａの動作内容毎の動作領域を演算する。具体的には、ロボット１０ａの動作を動作ポイントＰ０ａ〜Ｐ４ａ毎に動作領域を演算する。例えば、動作ポイントＰ０ａ〜Ｐ１ａに動作する動作領域は、回転軸１３ａを基準点ＰＲａとして、動作ポイントＰ０ｂ，Ｐ１ａの座標点で取り囲まれる領域を演算することにより、動作ポイントＰ０ａ〜Ｐ１ａにおける動作領域ＲＡ１が求められる。同様にして、動作ポイントＰ１ａ〜Ｐ２ａにおける動作領域ＲＡ２、動作ポイントＰ２ａ〜Ｐ３ａにおける動作領域ＲＡ３、動作ポイントＰ３ａ〜Ｐ４ａにおける動作領域ＲＡ４が、それぞれ演算される。なお、動作領域ＲＡ１〜ＲＡ４の合計は、ロボット１０ａの動作領域ＲＡとなる。
【００３１】
そして、各動作領域ＲＡ１〜ＲＡ４と干渉領域ＲＸとを比較して、干渉領域ＲＸに進入するロボット１０ａの動作を特定する。まず、各動作領域ＲＡ１〜ＲＡ４と干渉領域ＲＸとを比較して、干渉領域ＲＸに対して重複する動作領域を演算する。本実施形態では、動作領域ＲＡ３と動作領域ＲＡ４が干渉領域ＲＸと重複するとして演算される。次に、演算された動作領域ＲＡ３，ＲＡ４に対応するロボット１０ａの動作内容を演算する。本実施形態では、動作領域ＲＡ３に対応するロボット１０ａの動作内容は、動作ポイントＰ２ａ〜Ｐ３ａであり、動作領域ＲＡ４に対応するロボット１０ａの動作内容は、動作ポイントＰ３ａ〜Ｐ４ａであることが演算される。従って、干渉領域ＲＸに進入した後の動作、すなわち、第２進入動作は、動作ポイントＰ２ａ〜Ｐ３ａおよび動作ポイントＰ３ａ〜Ｐ４ａであることが特定される。また、干渉領域ＲＸに干渉しない動作、すなわち、干渉領域ＲＸに進入する前の第１進入動作は、動作ポイントＰ０ａ〜Ｐ１ａ，Ｐ１ａ〜Ｐ２ａであることが特定される。そして、図４（ｂ）に示すように、ロボット１０ａの動作順、動作符号、動作内容に対応する第１進入動作と第２進入動作が動作テーブル４０ａとして作成される。
【００３２】
また、第１進入動作と第２進入動作の間に、ロボット１０ａの動作を切り替えるフラグＦｇが設定される。本実施形態では、第１進入動作の動作ポイントＰ１ａ〜Ｐ２ａと第２進入動作の動作ポイントＰ２ａ〜Ｐ３ａとの間にフラグＦｇが設けられている。当ロボット１０ａの動作において、当該フラグＦｇを割り込ませ、ロボット１０ａの停止／解除を切り替えることができる。
【００３３】
さらに、第１進入動作にインデックスＩｄｘを付与する。本実施形態では、第２進入動作の動作ポイントＰ２ａ〜Ｐ３ａの手前の動作となる第１進入動作の動作ポイントＰ１ａ〜Ｐ２ａにインデックスＩｄｘを付与する。これにより、第２進入動作との区分けを明確にすることができる。
【００３４】
次に、ロボット１０ｂの進入動作の区分け方法について説明する。図５（ａ）では、ロボット１０ｂの進入動作と干渉領域ＲＸとの関係を示している。ここでも、上記同様に、ロボット１０ｂの動作内容毎の動作領域を演算する。
【００３５】
なお、本実施形態では、第２進入動作の動作領域の一部に第１進入動作領域を含む場合、すなわち、一の動作領域に第１進入動作と第２進入動作が含まれる場合、当該一の動作領域を、干渉領域に進入する前の動作と、干渉領域に進入した後の動作と、に分割する。例えば、ロボット１０ｂの動作ポイントＰ２ｂ〜Ｐ３ｂの動作は、干渉領域ＲＸに進入した後の動作を含む第２進入動作である。そこで、当該第２進入動作を下記のように、干渉領域に進入する前の動作と、干渉領域に進入した後の動作と、に分割する。
【００３６】
図５（ａ）に示すように、基準点ＰＲｂと干渉領域ＲＸの境界点ｎ２を結んだ直線延長上と、動作ポイントＰ２ｂ〜Ｐ３ｂとが交差する位置に中間動作ポイントＰ２ｂ’を追加する。これにより、当初のロボット１０ｂの動作ポイントＰ２ｂ〜Ｐ３ｂは、動作ポイントＰ２ｂ〜Ｐ２ｂ'と動作ポイントＰ２ｂ’〜動作ポイントＰ３ｂに区分けされる。このように、動作ポイントＰ２ｂ’を追加することにより、干渉領域ＲＸに進入するまでのロボット１０ｂの動作の自由度を高めることができる。
【００３７】
そして、ロボット１０ｂの動作の動作ポイントＰ０ｂ〜Ｐ５ｂ毎に動作領域を演算する。例えば、動作ポイントＰ０ｂ〜Ｐ１ｂに動作する動作領域は、回転軸１３ｂを基準点ＰＲｂとして、動作ポイントＰ０ｂ，Ｐ１ｂの座標点で取り囲まれる領域を演算し、動作ポイントＰ０ｂ〜Ｐ１ｂにおける動作領域ＲＢ１が求められる。同様にして、動作ポイントＰ１ｂ〜Ｐ２ｂにおける動作領域ＲＢ２、動作ポイントＰ２ｂ〜Ｐ２ｂ’における動作領域ＲＢ３、動作ポイントＰ２ｂ’〜Ｐ３ｂにおける動作領域ＲＢ４、動作ポイントＰ３ｂ〜Ｐ４ｂにおける動作領域ＲＢ５、動作ポイントＰ４ｂ〜Ｐ５ｂにおける動作領域ＲＢ６が、それぞれ演算される。なお、動作領域ＲＢ１〜ＲＢ６の合計は、ロボット１０ｂの動作領域ＲＢと等しい。
【００３８】
そして、干渉領域演算部２４において、各動作領域ＲＢ１〜ＲＢ６と干渉領域ＲＸとを比較して、干渉領域ＲＸに進入するロボット１０ｂの動作を特定する。まず、各動作領域ＲＢ１〜ＲＢ６と干渉領域ＲＸとを比較して、干渉領域ＲＸに対して重複する動作領域ＲＢ１〜ＲＢ６を演算する。本実施形態では、動作領域ＲＢ４と動作領域ＲＢ５と動作領域ＲＢ６が干渉領域ＲＸと重複するとして演算される。次に、演算された動作領域ＲＢ４，ＲＢ５，ＲＢ６に対応するロボット１０ｂの動作内容を演算する。本実施形態では、動作領域ＲＢ４に対応するロボット１０ｂの動作内容は、動作ポイントＰ２ｂ’〜Ｐ３ｂであり、動作領域ＲＢ５に対応するロボット１０ｂの動作内容は、動作ポイントＰ３ｂ〜Ｐ４ｂであり、動作領域ＲＢ６に対応するロボット１０ｂの動作内容は、動作ポイントＰ４ｂ〜Ｐ５ｂであることが演算される。従って、干渉領域ＲＸに進入した後の動作、すなわち、第２進入動作は、動作ポイントＰ２ｂ’〜Ｐ３ｂ、動作ポイントＰ３ｂ〜Ｐ４ｂ及び動作ポイントＰ４ｂ〜Ｐ５ｂであることが特定される。また、干渉領域ＲＸに干渉しない動作、すなわち、干渉領域ＲＸに進入する前の第１進入動作は、動作ポイントＰ０ｂ〜Ｐ１ｂ，Ｐ１ｂ〜Ｐ２ｂ，Ｐ２ｂ〜Ｐ２ｂ’であることが特定される。そして、図５（ｂ）に示すように、ロボット１０ｂの動作順、動作符号、動作内容に対応する第１進入動作と第２進入動作が動作テーブル４０ｂとして作成される。
【００３９】
また、ロボット１０ａの場合と同様に、第１進入動作と第２進入動作の間に、ロボット１０ｂの動作を切り替えるフラグＦｇが設定される。本実施形態では、第１進入動作の動作ポイントＰ２ｂ〜Ｐ２ｂ’と第２進入動作の動作ポイントＰ２ｂ’〜Ｐ３ｂとの間にフラグＦｇを設ける。さらに、本実施形態では、第２進入動作の動作ポイントＰ２ｂ’〜Ｐ３ｂの手前の動作となる第１進入動作の動作ポイントＰ２ｂ〜Ｐ２ｂ’にインデックスＩｄｘを付与する。
【００４０】
次に、進入動作割当て部２６の機能について説明する。進入動作割当て部２６では、各ロボット１０ａ，１０ｂの第２進入動作を比較し、第２進入動作が相互に干渉しないように、第２進入動作の順番を割り当てる機能を有する。本実施形態では、各ロボット１０ａ，１０ｂの干渉領域ＲＸにおける動作領域を比較して、当該動作領域が相互に干渉しないように、第２進入動作の順番を割り当てる。
【００４１】
まず、図６（ａ），（ｂ）に示すように、動作区分け部２５において作成された動作テーブル４０ａ，４０ｂからロボット１０ａ，１０ｂのそれぞれの第２進入動作を抽出し、第２進入動作テーブル５０ａ，５０ｂを作成する。第２進入動作テーブル５０ａ，５０ｂには、各ロボット１０ａ，１０ｂの動作順番、動作符号、動作内容、動作領域等が含まれる。
【００４２】
そして、ロボット１０ａの動作領域ＲＡ３，ＲＡ４と、ロボット１０ｂの動作領域ＲＢ４，ＲＢ５，ＲＢ６とをそれぞれ比較して、動作領域が重複する動作領域を特定する。例えば、図７に示すように、動作領域ＲＡ３は、動作領域ＲＢ５，ＲＢ６と重複し、動作領域ＲＡ４は、動作領域ＲＢ４，ＲＢ５，ＲＢ６と重複する。但し、ロボット１０ａの動作領域ＲＡ３とロボット１０ｂの動作領域ＲＢ４は、干渉領域ＲＸにおいて、ロボット１０ａ，１０ｂの動作プログラムの動作順番によっては、相互に干渉しない。そして、各ロボット１０ａ，１０ｂの動作順番に関連付けて比較が行われ、順次、動作順番が割り当てられる。図６（ｃ）では、動作順番が割り当てられた動作順番テーブル６０を示している。動作順番テーブル６０は、ロボット１０ａが先に干渉領域ＲＸに進入した場合に、まず、ロボット１０ａの動作順番が優先して設定される。そして、ロボット１０ａの動作領域ＲＡ３，ＲＡ４に対して、ロボット１０ｂの動作領域ＲＢ４，ＲＢ５，ＲＢ６を比較し、相互に干渉しない組み合わせを検索し、検索結果から、動作順番に従って、ロボット１０ｂの動作順番が設定される。
【００４３】
ここで、動作順番テーブル６０の動作順番４におけるロボット１０ａ，１０ｂの動作内容について説明する。図６に示すように、ロボット１０ａは、動作ポイントＰ３ａから動作ポイントＰ２ａに動作する状態である。また、ロボット１０ｂは、動作ポイントＰ２ｂ’から動作ポイントＰ３ｂに動作する状態である。このような場合には、相互の動作が干渉しないので、動作順番４に並行して設定される。
【００４４】
次に、ロボット制御方法について説明する。図８〜１０は、ロボット制御方法を示すフローチャートである。図８は、ロボット１０が動作する前の前処理方法を示し、図９は、ロボット１０の動作方法を示し、図１０は、ロボット１０の動作割当て方法を示している。
【００４５】
まず、ロボット１０が動作する前の前処理方法について説明する。
【００４６】
図８において、ステップＳ１では、ロボット１０ａ，１０ｂの動作領域ＲＡ，ＲＢを演算する。具体的には、図３（ａ），（ｂ）に示したように、例えば、各ロボット１０ａ，１０ｂの動作プログラムＡ，Ｂに基づく動作を座標上に展開し、ロボット１０ａ，１０ｂ毎の動作領域ＲＡ，ＲＢを演算する。
【００４７】
ステップＳ２では、ロボット１０ａ，１０ｂの干渉領域ＲＸを演算する。例えば、図３（ｃ）に示したように、ロボット１０ａ，１０ｂの配置を座標上に展開するとともに、配置されたロボット１０ａ，１０ｂの動作領域ＲＡ，ＲＢに基づいて、動作領域ＲＡ，ＲＢが互いに干渉する領域を干渉領域ＲＸとして演算する。
【００４８】
ステップＳ３では、干渉領域があるか否かを判断する。干渉領域ＲＸがある（ＹＥＳ）場合には、ステップＳ４に移行し、干渉領域ＲＸがない（ＮＯ）場合には、終了する。
【００４９】
ステップＳ４では、ロボット１０ａ，１０ｂの進入動作を区分けする。具体的には、図４に示したように、各ロボット１０ａ，１０ｂの動作から干渉領域ＲＸに進入する進入動作を抽出し、当該進入動作を、干渉領域ＲＸに進入する前の第１進入動作と、干渉領域ＲＸに進入した後の動作を含む第２進入動作とに区分けする。
【００５０】
ステップＳ５では、第２進入動作に対して分割可能か否かを判断する。具体的には、図５（ｂ）に示したように、第２進入動作の一部に干渉領域ＲＸに進入する前の動作が含まれている場合、干渉領域ＲＸに進入する前の動作と干渉領域ＲＸに進入した後の動作とに分割することができる。そして、分割可能である（ＹＥＳ）場合には、ステップＳ６に移行し、分割できない（ＮＯ）場合には、ステップＳ７に移行する。
【００５１】
ステップＳ６では、第２進入動作を分割する。具体的には、例えば、図５（ａ），（ｂ）で示したように、ロボット１０ｂの動作ポイントＰ２ｂ〜Ｐ３ｂに対して、干渉領域ＲＸに進入する前の動作を含む場合に、干渉領域ＲＸを形成する境界で分割し、ロボット１０ｂの動作ポイントＰ２ｂ〜Ｐ３ｂを動作ポイントＰ２ｂ〜Ｐ２ｂ’，Ｐ２ｂ’〜Ｐ３ｂに分割する。
【００５２】
ステップＳ７では、図４（ｂ）および図５（ｂ）で示したように、第１進入動作と第２進入動作の間に、ロボット１０ａ，１０ｂの実行／停止の切り替えを行うためのフラグを設定する。
【００５３】
ステップＳ８では、第１進入動作にインデックスを付与する。具体的には、図４（ｂ），図５（ｂ）で示したように、第２進入動作の手前の動作となる第１進入動作にインデックスを付与する。
【００５４】
次に、ロボット１０の動作方法について説明する。
【００５５】
図９において、ステップＳ１１では、動作プログラムを実行する。
【００５６】
ステップＳ１２では、干渉領域ＲＸに進入する動作か否かを判断する。干渉領域ＲＸに進入する動作（ＹＥＳ）の場合には、ステップＳ１３に移行し、干渉領域ＲＸに進入しない動作（ＮＯ）の場合には、ステップＳ１５に移行する。
【００５７】
ステップＳ１３では、動作順番の割当て処理を行う。具体的には、干渉領域ＲＸにおけるロボット１０ａ，１０ｂの動作が相互に干渉しないように、動作順番を割り当てる。
【００５８】
ステップＳ１４では、フラグを解除する。これにより、ロボット１０ａ，１０ｂの干渉領域ＲＸへの進入が許可される。
【００５９】
ステップＳ１５では、ロボット１０ａ，１０ｂの動作を実行する。
【００６０】
次に、上記ステップＳ１３の動作割当て処理方法について説明する。
【００６１】
図１０において、ステップＳ１３ａでは、第２進入動作の前の動作であるか否かを判断する。本実施形態では、第２進入動作の手前の第１進入動作には、インデックスが付与されているため、当該インデックスが付与された動作か否かを判断する。そして、第２進入動作の前の動作である（ＹＥＳ）場合には、ステップＳ１３ｂに移行し、第２進入動作の前の動作でない（ＮＯ）場合には、スタートに戻る。
【００６２】
ステップＳ１３ｂでは、優先動作の設定を行う。具体的には、干渉領域ＲＸに進入するロボット１０ａ，１０ｂの動作の優先付けを行う。例えば、ロボット１０ａ，１０ｂの動作プログラムＡ，Ｂに基づいて、干渉領域ＲＸに進入するタイミングの速い方の動作を優先して決定する。そして、動作プログラムＡに基づくロボット１０ａの進入動作を優先した場合には、図６（ｃ）の動作順番テーブル６０に示すように、まず、ロボット１０ａの第２進入動作を動作順番１から順に設定する。
【００６３】
ステップＳ１３ｃでは、各ロボット１０ａ，１０ｂの動作領域を比較する。具体的には、図７に示したように、動作プログラムＡ，Ｂの動作順に対応して、先に設定されたロボット１０ａの第２進入動作の動作領域ＲＡ３，ＲＡ４と、ロボット１０ｂの動作内容毎の動作領域ＲＢ４，ＲＢ５，ＲＢ６とを比較する。
【００６４】
ステップＳ１３ｄでは、重複領域があるか否かを判断する。そして、重複領域がない（ＮＯ）の場合には、ステップＳ１３ｅに移行し、重複領域がある（ＹＥＳ）の場合には、ステップＳ１３ｃに移行する。
【００６５】
ステップＳ１３ｅでは、図６に示すように、動作割り付けを設定し、干渉領域ＲＸにおけるロボット１０ａ，１０ｂの動作順番テーブル６０の作成が完了する。
【００６６】
従って、上記の実施形態によれば、以下に示す効果がある。
【００６７】
（１）干渉領域ＲＸに進入する各ロボット１０ａ，１０ｂの動作と、各ロボット１０ａ，１０ｂの動作毎の動作領域とを関連付けし、干渉領域ＲＸにおいて重複する領域を検索し、動作領域が重複しないように動作順番を割り付けた。そして、割り付けされた動作順番に従ってロボット１０ａ，１０ｂを動作させた。従って、干渉領域ＲＸに一方のロボット１０ａが進入したとしても、ロボット１０ａの動作に重複しないようにロボット１０ｂを干渉領域ＲＸで動作させることができる。すなわち、干渉領域ＲＸにおいて、同時期に複数のロボット１０ａ，１０ｂを動作させることができ、作業効率を向上させることができる。
【００６８】
なお、上記の実施形態に限定されるものではなく、以下のような変形例が挙げられる。
【００６９】
（変形例１）上記実施形態では、第２進入動作に干渉領域ＲＸに進入しない動作が含まれていた場合、当該第２進入動作を、干渉領域ＲＸに進入する前の動作と、干渉領域ＲＸに進入した後の動作と、に分割したが、これに限定されない。例えば、第２進入動作に干渉領域ＲＸに進入しない動作が含まれていない場合であっても、当該第２進入動作を複数に分割してもよい。このようにすれば、さらに、干渉領域ＲＸにおけるロボット１０ａ，１０ｂの重複する動作が減少するので、ロボット１０ａ，１０ｂの動作の自由度を高めることができる。
【００７０】
（変形例２）上記実施形態では、主に、産業用ロボットを例に説明したが、これに限定されない。例えば、他の運動体や玩具等にも適用することができる。このようにしても、上記同様の効果を得ることができる。
【符号の説明】
【００７１】
１…ロボット制御装置、１０，１０ａ，１０ｂ…ロボット、１１ａ，１１ｂ…本体部、１２ａ，１２ｂ…アーム部、１３ａ，１３ｂ…回転軸、２０…統括制御部、２１…記憶部、２２…動作指令部、２３…動作領域演算部、２４…干渉領域演算部、２５…動作区分け部、２６…進入動作割当て部、４０ａ，４０ｂ…動作テーブル、５０ａ，５０ｂ…第２進入動作テーブル、６０…動作順番テーブル、ＲＡ，ＲＢ，ＲＡ１〜ＲＡ４，ＲＢ１〜ＲＢ６…動作領域、ＲＸ…干渉領域。
【図１】
2010240772.tif 000003
【図２】
2010240772.tif 000004
【図３】
2010240772.tif 000005
【図４】
2010240772.tif 000006
【図５】
2010240772.tif 000007
【図６】
2010240772.tif 000008
【図７】
2010240772.tif 000009
【図８】
2010240772.tif 000010
【図９】
2010240772.tif 000011
【図１０】
2010240772.tif 000012