(57)【要約】【課題】干渉領域の検出精度を維持しつつシミュレーションにかかる時間と工数を削減する。【解決手段】まず、第１ロボット（２００）をその教示データによって始点から終点まで１経由点ごとに動かしてワークスペース（３００）を作成し、つぎに、第２ロボット（４００）をその教示データによって始点から終点まで連続して動かして、ワークスペースとの干渉領域を検出する。【選択図】            図７
2004160588.tif 000002
【特許請求の範囲】
【請求項１】
互いに干渉する作業領域をもつ複数のロボットを、それぞれの教示データに基づいて擬似的に動作させ、それぞれのロボットの干渉領域を検出する複数ロボットの干渉領域検出方法であって、
第１ロボットを当該第１ロボットの教示データに基づいて動作させ、当該第１ロボットの動作軌跡からワークスペースを作成するステップと、
第２ロボットを当該第２ロボットの教示データに基づいてその始点から終点まで動作させ、前記ワークスペースと干渉を起こした領域を検出するステップと、
を含むことを特徴とする複数ロボットの干渉領域検出方法。
【請求項２】
前記第１ロボットは、実機のロボットの形状を包含し、当該実機のロボットの形状よりもその形状が単純な簡易形状のロボットであることを特徴とする請求項１に記載の複数ロボットの干渉領域検出方法。
【請求項３】
前記ワークスペースを作成するステップは、
前記第１ロボットの形状データを入力するステップと、
前記第１ロボットの教示データを入力するステップと、
前記第１ロボットを前記教示データに基づいて１経由点間動作させ、前記形状データから得られる前記第１ロボットの動作軌跡からワークスペース要素を作成するステップと、
作成されたワークスペース要素を前記１経由点間の識別情報とともに記憶するステップと、
上記３つのステップを、前記教示データの指定された経由点間で繰り返し実行するステップと、
を含むことを特徴とする請求項１または２に記載の複数ロボットの干渉領域検出方法。
【請求項４】
前記ワークスペースと干渉を起こした領域を検出するステップは、
前記第２ロボットの形状データを入力するステップと、
前記第２ロボットの教示データを入力するステップと、
特定の経由点で前記第２ロボットが占める領域を前記形状データと前記教示データとに基づいて作成するステップと、
前記第１ロボットのワークスペースを入力し前記特定の経由点で前記第２ロボットの占める領域が当該ワークスペースと干渉するか否かを判断するステップと、
干渉していれば、干渉しているワークスペース要素の経由点間の識別情報と前記第２ロボットの経由点とを記憶するステップと、
上記５つのステップを、前記第２ロボットの教示データに基づいてその始点から終点までの複数の経由点で繰り返し実行するステップと、
記憶された第１ロボットの経由点間の識別情報と第２ロボットの経由点のそれぞれからそれぞれのロボットの干渉領域を検出するステップと、
を含むことを特徴とする請求項１または２に記載の複数ロボットの干渉領域検出方法。
【請求項５】
それぞれのロボットの干渉領域を検出するステップは、
前記それぞれのロボットが干渉領域に入る進入経由点と当該干渉領域から出る脱出経由点とをそれぞれのロボットに対して検出するステップを含むことを特徴とする請求項４に記載の複数ロボットの干渉領域検出方法。
【請求項６】
さらに、前記第１ロボットと前記第２ロボットとが干渉を起こした領域に対して、前記第１ロボットと前記第２ロボットの教示データおよび前記第１ロボットと前記第２ロボットの実機の形状データを入力し、干渉を起こした領域をさらに詳細に検出するステップを含むことを特徴とする請求項１または２に記載の複数ロボットの干渉領域検出方法。
【請求項７】
互いに干渉する作業領域をもつ複数のロボットを、それぞれの教示データに基づいて擬似的に動作させ、それぞれのロボットの干渉領域を検出する複数ロボットの干渉領域検出プログラムであって、コンピュータに、
第１ロボットを当該第１ロボットの教示データに基づいて動作させ、当該第１ロボットの動作軌跡からワークスペースを作成するステップと、
第２ロボットを当該第２ロボットの教示データに基づいてその始点から終点まで動作させ、前記ワークスペースと干渉を起こした領域を検出するステップと、
を実行させるための複数ロボットの干渉領域検出プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、シミュレーションによって複数ロボットの干渉領域を検出する、複数ロボットの干渉領域検出方法およびそのプログラムに関する。
【０００２】
【従来の技術】
従来、たとえば車体のスポット溶接ラインのように、溶接対象となる車体の周辺に複数のロボットが密集して設置されている場合には、同時に動作するロボット相互間の干渉を回避させる必要がある。
【０００３】
ロボット相互間の干渉状態を検出する技術としてはさまざまなものが提案されているが、その技術の１つには下記特許文献１に記載するものがある。
【０００４】
この技術は、各ロボット制御装置が持っている固有のプログラムを計算機に移植させることなく、各ロボットの動作がシミュレーションできるというものである。このシミュレーションによって各ロボットの干渉領域を検出する。
【０００５】
通常、ロボットの干渉領域を検出するためのシミュレーションは、作業領域を共有するロボットについて、画面上で１つのロボットをある一定の距離間隔で１ステップ動作させ、他のロボットはその１ステップの動作に対して作業の始点から終点まで連続して動作させて干渉をチェックするという方法で行われる。
【０００６】
【特許文献１】
特開２００１−１５０３７３号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、このような従来の方法では、干渉領域を検出するのに時間と工数がかかりすぎるという問題がある。たとえば、１のロボットがその作業の始点から終点まで１万ステップで動かさなければならないとすれば、他のロボットは前記１のロボットの各ステップに対してその作業の始点から終点まで一回連続して動かさなければならないため、他のロボットは１万回その作業の始点から終点までの動作を要することになる。
【０００８】
現在、シミュレーション装置の計算速度が速くなっているとはいうものの、上記のシミュレーションを完了し、そのシミュレーションの結果から干渉領域を検出することは短時間でできるものではない。このシミュレーションにかかる時間を短縮するためには干渉領域を検出するために動かすロボットのステップ数を減らす（経由点の間隔を広げる）ことが考えられるが、ステップ数を減らすと、干渉領域の検出精度がステップ数の減少に伴って低下してしまうため、ステップ数を減らすのはあまり好ましくない。
【０００９】
本発明は、以上のような従来のシミュレーションの問題点に鑑みてなされたものであり、干渉領域の検出精度が良好であり、シミュレーションにかかる時間と工数とが少なくて済む、複数ロボットの干渉領域検出方法およびそのプログラムの提供を目的とする。
【００１０】
【課題を解決するための手段】
上記した課題を解決し、目的を達成するため、発明にかかる複数ロボットの干渉領域検出方法は、互いに干渉する作業領域をもつ複数のロボットを、それぞれの教示データに基づいて擬似的に動作させ、それぞれのロボットの干渉領域を検出する複数ロボットの干渉領域検出方法であって、第１ロボットを当該第１ロボットの教示データに基づいて動作させ、当該第１ロボットの動作軌跡からワークスペースを作成するステップと、第２ロボットを当該第２ロボットの教示データに基づいてその始点から終点まで動作させ、前記ワークスペースと干渉を起こした領域を検出するステップと、を含むことを特徴とするものである。
【００１１】
【発明の効果】
本発明によれば、まず第１ロボットのワークスペースを作成し、このワークスペースに対して第２ロボットの干渉を検出するようにしたので、第２ロボットをその教示データの始点から終点まで一回だけ連続して動作させれば、両ロボットの干渉領域を検出することができる。したがって、従来と同一の検出精度で良ければ、シミュレーションにかかる時間と工数を大幅に短縮および削減できる。また、従来と同一の時間と工数をかけることができるのであれば、その検出精度を大幅に向上させることができる。
【００１２】
【発明の実施の形態】
以下に添付図面を参照して、本発明にかかる複数ロボットの干渉領域検出方法およびそのプログラムの好適な実施の形態を、実施の形態１と実施の形態２に分けて詳細に説明する。
【００１３】
［実施の形態１］
図１は、本発明にかかる複数ロボットの干渉領域検出方法を実施するシミュレーション装置のブロック図である。シミュレーション装置１００は、操作端末１０、表示部２０、干渉領域記憶部３０、教示データ記憶部４０、ロボット形状データ記憶部５０、ワークスペース記憶部６０およびロボット干渉領域検出部７０を備えている。それぞれの構成要素の概略の機能は、以下のとおりである。
【００１４】
操作端末１０は、操作者がシミュレーション動作させるロボットの選択指令を入力したり、選択したロボットの動作指令を入力したりするために用いる。表示部２０は、ロボットの動作状況の表示、ワークスペースの表示、干渉領域の確認のために用いる。
【００１５】
干渉領域記憶部３０は、シミュレーションの結果得られた干渉領域を記憶する。具体的には、１のロボットが他のロボットと干渉する１のロボットのワークエリア要素の経由点と、他のロボットが１のロボットと干渉する他のロボットの経由点を記憶する。
【００１６】
教示データ記憶部４０は、複数のロボットのそれぞれに対する教示データを個別に記憶する。具体的には、教示点の三次元座標や教示点間の通過速度を記憶する。
【００１７】
ロボット形状データ記憶部５０は、複数のロボットのそれぞれに対する実機の形状データを個別に記憶する。
【００１８】
ワークスペース記憶部６０は、ロボット形状データと教示データとに基づいて作成された、経由点間ごとのワークスペース要素を記憶する。すべての経由点に対するワークスペース要素の集合がワークスペースとなる。なお、各ワークスペース要素には経由点間の識別情報が対応付けられる。この識別情報によって、たとえば、ワークスペース要素１が経由点１−２間の動作領域であることがわかる。
【００１９】
ロボット干渉領域検出部７０は、操作端末１０からの指令に基づいて、特定のロボットの形状データと教示データとを入力し、経由点ごとにワークスペース要素を作成し、そのワークスペース要素をワークスペース記憶部６０に記憶させる。また、特定のロボットのワークスペースを取り出して、他のロボットをその教示データに基づいて動作させ、両ロボットが干渉する領域を検出し、干渉する領域を干渉領域記憶部３０に記憶させる。
【００２０】
以下に、本発明にかかる複数ロボットの干渉領域検出方法を、図２から図５のフローチャートにしたがって、図６から図１１のロボットの動作を示す図面を参照しつつ詳細に説明する。
【００２１】
図２は、図１のシミュレーション装置１００によって実施される、本発明にかかる複数ロボットの干渉領域検出方法の手順を示すフローチャートである。本発明にかかる複数ロボットの干渉領域検出方法は、図６に示すように、まず、干渉検出の対象となるロボット２００を、その教示データに基づいて１経由点ずつ動作させ、それぞれの経由点間におけるロボット２００の動作領域を記憶する。教示データに基づいてその始点から終点まで、すべての経由点間の動作領域を記憶すると、ロボット２００のワークスペースが作成される（Ｓ１）。
【００２２】
図６に描かれている、ロボット２００の動作軌跡２０４は、ロボット２００の教示データに基づいてその始点から終点まで動かしたときの作業端２０２の軌跡を示す。ロボット２００の教示データを入力し、教示データに基づく経由点ごとのロボット２００の三次元形状を記憶していくと、図６の右側の図のような段階的な三次元形状が得られる。この三次元形状を経由点間で教示データの始点から終点まで記憶させると、図７に示してあるようなワークスペース３００が得られる。なお、ある１経由点間で得られるロボット２００の占める領域をワークスペース要素、ロボット２００の教示データに基づいて作業端２０２をその始点から終点まで動かすことによって得られる動作軌跡領域をワークスペースという。したがって、ワークスペースは、ワークスペース要素の集合となる。
【００２３】
次に、図７に示すように、干渉チェックの対象となるロボット４００をその教示データにしたがってその始点から終点まで動かす（Ｓ２）。ロボット４００の教示データに基づいて作業端４０２をその始点から終点まで動かすと、作業端４０２は、図７に示すような動作軌跡を描く。
【００２４】
そして、ワークスペース３００とロボット４００が占める領域とが重なった領域を干渉領域として検出する（Ｓ３）。
【００２５】
本発明にかかる複数ロボットの干渉領域検出方法の概略は以上のとおりであるが、以下に、本発明にかかる複数ロボットの干渉領域検出方法の手順を詳細に説明する。
【００２６】
図３は、図２のフローチャートのＳ１のステップの詳細を示すフローチャート、図４は、そのＳ２のステップの詳細を示すフローチャート、図５は、そのＳ３のステップの詳細を示すフローチャートである。
【００２７】
まず、「対象ロボットのワークスペース作成」の処理においては次のような処理が行われる。操作者は、端末装置１０を操作して、ワークスペースを作成させるべきロボット、たとえばロボット２００を指定する。ロボット干渉領域検出部７０は、この指定に基づいて、例えば図８に示すロボット２００の形状データをロボット形状データ記憶部５０から入力する（Ｓ１１）。そして、経由点の数を積算するカウンタＮの値を１にセットする（Ｓ１２）。ロボット干渉領域検出部７０は、ロボット２００の教示データを教示データ記憶部４０から入力する（Ｓ１３）。操作者は、操作端末１０によって、経由点間隔を任意の間隔に設定できる。ロボット干渉領域検出部７０は、入力したロボット２００の形状データと教示データおよび経由点間隔から前述のようなワークスペース要素を作成し（Ｓ１４）、作成したワークスペース要素をワークスペース記憶部６０に記憶させる（Ｓ１５）。なお、作成されたワークスペース要素には経由点間の識別情報が付けられる。たとえば、カウンタＮの値が１のときに作成されたワークスペース要素は、経由点Ｎと経由点Ｎ＋１の間の経由点間に対応するので、そのワークスペース要素には「Ｎ−Ｎ＋１」という識別情報がつくことになる。
【００２８】
そして、カウンタＮの値を１だけインクリメントし（Ｓ１６）、教示データの始点から終点まですべての経由点に対して以上のＳ１３からＳ１６までの処理が終了していなければ（Ｓ１７：ＮＯ）、Ｓ１３からＳ１６までの処理を繰り返し行い、その始点から終点までのすべてのステップに対してその処理が終了したら（Ｓ１７：ＹＥＳ）、「対象ロボットのワークスペース作成」の処理を終了する。
【００２９】
この処理が終了したときに、ワークスペース記憶部６０には連続した経由点のワークスペース要素が記憶され、最終的には、図９に示すようなワークスペース３００が記憶されることになる。ワークスペース３００は、ロボット２００がその教示データに基づいて作業の始点から終点まで動いたときの、ロボット２００の構造体が通過した三次元領域となる。
【００３０】
次に、図４の「干渉チェック対象ロボットを動作」させる処理では、次のような処理が行われる。操作者は、端末装置１０を操作して、干渉チェックを行うロボット、たとえばロボット４００を指定する。ロボット干渉領域検出部７０は、この指定に基づいて、例えば図９に示すロボット４００の形状データをロボット形状データ記憶部５０から入力する（Ｓ２１）。そして、経由点の数を積算するカウンタＭの値を１にセットする（Ｓ２２）。ロボット干渉領域検出部７０は、ロボット４００の教示データを教示データ記憶部４０から入力する（Ｓ２３）。ロボット干渉領域検出部７０は、入力したロボット４００の形状データと教示データおよび操作者が端末装置１０から指定した経由点に基づいて、その経由点においてロボット４００が占める領域を作成する（Ｓ２４）。
【００３１】
ロボット干渉領域検出部７０は、ロボット４００の教示データの全ステップに対して干渉の検出が終了しているか否かを判断し（Ｓ２５）、検出が終了していれば（Ｓ２５：ＹＥＳ）、「干渉チェック対象ロボットを動作」させる処理を終了する。一方、検出が終了していなければ（Ｓ２５：ＮＯ）、ロボット干渉領域検出部７０は、図９に示すように、ロボット４００の経由点Ｍにおいてロボット４００が占める領域がロボット２００のワークスペース３００と重複しているか否かを判断する（Ｓ２６）。
【００３２】
図１０に示すように重複していれば（Ｓ２６：ＹＥＳ）、その重複しているロボット２００のワークスペース要素の識別情報からロボット２００のどの経由点間で干渉しているのかが抽出され、同時に、ロボット４００のどの経由点で干渉したのかも抽出される（Ｓ２７）。ロボット干渉領域検出部７０は、抽出したロボット２００の経由点間と、ロボット４００の経由点を干渉領域記憶部３０に記憶させる（Ｓ２８）。一方、Ｓ２６のステップで重複していなければ（Ｓ２６：ＮＯ）、カウンタＭの値を１だけインクリメントして、Ｓ２３からＳ２６のステップを繰り返す（Ｓ２９）。
【００３３】
次に、図５の「干渉領域の検出」では次のような処理が行われる。まず、ロボット干渉領域検出部７０は、干渉領域記憶部３０に記憶されているロボット２００の経由点間とロボット４００の経由点を入力する（Ｓ３１）。次に、これらの経由点の情報に基づいて、それぞれのロボットの干渉領域への進入経由点と、その干渉領域からの脱出経由点を検出する（Ｓ３２）。例えば、図１１に示すように、ロボット２００のワークスペース要素８２が７、８経由点間の姿勢、ワークスペース要素１４５が１１、１２経由点間の姿勢、ワークスペース要素２０２が１６、１７経由点間の姿勢、ワークスペース要素２９７が２４、２５の姿勢であるとし、また、ロボット４００が経由点８、９間および経由点１８、１９間でロボット２００のワークスペース３００と干渉したとする。この場合、干渉領域記憶部３０には、ロボット２００の経由点７から１２と、経由点１６から２５が、また、ロボット４００の経由点８、９、１８、１９が記憶される。このときのロボット２００の進入経由点は経由点７と経由点１６であり、脱出経由点は経由点１２と経由点２５である。また、ロボット４００の進入経由点は経由点８、脱出経由点は経由点１９である。
【００３４】
以上のようにして干渉の検出をする側のロボットを一サイクル動かすだけで、各ロボットの干渉領域が特定できる。したがって、その処理速度は、従来の方法とは比較にならないほど高速化できる。
【００３５】
ただ、本実施の形態の場合、ワークスペースは、実機のロボットの形状データに基づいて作成している。実機のロボットは、その形状が複雑であるからワークスペースの作成にある程度の時間を要することと、ワークスペース記憶部の記憶容量はかなり大きなものが必要である。
【００３６】
次に説明する実施の形態２は、実施の形態１のこれらの欠点を解消したものである。
【００３７】
［実施の形態２］
本実施の形態は、ワークスペースを作成するロボットとして、実機の形状を包含する簡易な形状のロボットを用い、ワークスペースの作成の時間短縮と、それを記憶するワークスペース記憶部の記憶容量の減少を図るものである。
【００３８】
図１２は、本発明にかかる他の複数ロボットの干渉領域検出方法を実施するシミュレーション装置のブロック図である。シミュレーション装置１５０は、図１に示したシミュレーション装置１００に簡易ロボット形状データ記憶部９０を付加したものである。簡易ロボット形状データ記憶部９０は、ロボット形状データ記憶部５０に記憶されているロボットの簡易な形状に関する形状データを記憶するものである。
【００３９】
以下に、本発明にかかる複数ロボットの干渉領域検出方法を、図１３のフローチャートにしたがって、図１４から図１７のロボットの動作を示す図面を参照しつつ詳細に説明する。
【００４０】
図１３は、図１２のシミュレーション装置１５０によって実施される、他の複数ロボットの干渉領域検出方法の手順を示すフローチャートである。この複数ロボットの干渉領域検出方法は、図１４に示すように、まず、干渉検出の対象となるロボットの簡易な形状を簡易ロボット形状データに基づいて作成し、その簡易形状のロボット５００を、図１５に示すようにその教示データに基づいて１経由点ずつ動作させ、それぞれの経由点におけるロボット５００の３次元形状を記憶する。教示データの始点から終点まで、すべての経由点に対する三次元形状を記憶すると、ロボット５００のワークスペースが作成される（Ｓ５１）。
【００４１】
次に、図１４に示すように、干渉チェックの対象となるロボット４００をその教示データにしたがってその始点から終点まで動かす（Ｓ５２）。なお、このステップの詳細な処理は、図４に示した処理と全く同一である。
【００４２】
そして、ロボット５００のワークスペースとロボット４００が占める領域とが重なった領域を干渉領域として検出する（Ｓ５３）。なおこのステップの詳細な処理は、図５に示した処理と全く同一である。
【００４３】
以上までの処理によって、図１６に示すように、簡易ロボット５００と実機のロボット４００との進入経由点および脱出経由点が検出できる。しかし、これらの経由点は簡易ロボット５００との間で検出されたものであるから、その検出精度はあまりよくない。このため、本実施の形態では、図１７に示すように、簡易ロボット５００の形状を、実機の形状データを用いてロボット２００として描きなおし、検出された干渉領域内で従来通りの詳細な干渉チェックを行う。例えば、ロボット２００とロボット４００を干渉する領域内だけで１経由点ずつ動かして、さらに細かい干渉点を検出し、干渉領域の検出精度を向上させる（Ｓ５４）。
【００４４】
以上のように、本実施の形態では、ワークスペースを簡易ロボットの形状に基づいて作成しているので、その作成は実機の形状データに基づいて作成する場合に比較して高速に行うことができる。また、簡易ロボットで作成したワークスペースはその形状が単純であるので、ワークスペース記憶部６０の記憶容量も少なくて済む。
【００４５】
以上、本発明にかかる複数ロボットの干渉領域検出方法によれば、使用するコンピュータの性能によって一概には言えないが、従来用いているコンピュータにおいて従来の方法と本発明の方法での干渉チェックの速度を比較すると、本発明の速度は従来の２時間から１５分程度と、大幅に高速化することができる。
【００４６】
本発明にかかる複数ロボットの干渉領域検出方法は、複数ロボットの干渉領域検出プログラムをコンピュータに実行させることによって実施される。上記のいずれの実施の形態も、干渉チェックは表示部２０に表示されるロボットの動きや、経由点に関する情報を見ながら、操作者が行う。
【図面の簡単な説明】
【図１】本発明にかかる複数ロボットの干渉領域検出方法を実施するシミュレーション装置のブロック図である。
【図２】本発明にかかる複数ロボットの干渉領域検出方法の手順を示すフローチャートである。
【図３】図２のフローチャートのＳ１のステップの詳細を示すフローチャートである。
【図４】図２のフローチャートのＳ２のステップの詳細を示すフローチャートである。
【図５】図２のフローチャートのＳ３のステップの詳細を示すフローチャートである。
【図６】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図７】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図８】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図９】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図１０】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図１１】本発明にかかる複数ロボットの干渉領域検出方法の説明に供する図である。
【図１２】本発明にかかる他の複数ロボットの干渉領域検出方法を実施するシミュレーション装置のブロック図である。
【図１３】本発明にかかる他の複数ロボットの干渉領域検出方法の手順を示すフローチャートである。
【図１４】本発明にかかる他の複数ロボットの干渉領域検出方法の説明に供する図である。
【図１５】本発明にかかる他の複数ロボットの干渉領域検出方法の説明に供する図である。
【図１６】本発明にかかる他の複数ロボットの干渉領域検出方法の説明に供する図である。
【図１７】本発明にかかる他の複数ロボットの干渉領域検出方法の説明に供する図である。
【符号の説明】
１０…操作端末、
２０…表示部、
３０…干渉領域記憶部、
４０…教示データ記憶部、
５０…ロボット形状データ記憶部、
６０…ワークスペース記憶部、
７０…ロボット干渉領域検出部、
９０…簡易ロボット形状データ記憶部、
１００…シミュレーション装置、
２００、４００…ロボット、
２０２、４０２…作業端、
２０４、４０４…動作軌跡、
３００…ワークスペース。
【図１】
2004160588.tif 000003
【図２】
2004160588.tif 000004
【図３】
2004160588.tif 000005
【図４】
2004160588.tif 000006
【図５】
2004160588.tif 000007
【図６】
2004160588.tif 000008
【図７】
2004160588.tif 000009
【図８】
2004160588.tif 000010
【図９】
2004160588.tif 000011
【図１０】
2004160588.tif 000012
【図１１】
2004160588.tif 000013
【図１２】
2004160588.tif 000014
【図１３】
2004160588.tif 000015
【図１４】
2004160588.tif 000016
【図１５】
2004160588.tif 000017
【図１６】
2004160588.tif 000018
【図１７】
2004160588.tif 000019