(57)【特許請求の範囲】
【請求項１】
少なくとも１方向に動作するアームを備えるロボットと、
少なくとも１方向にワークを搬送するワーク搬送装置と、を含み、
前記ロボットの前記アームの移動方向と速さとを定めた第１ベクトルデータを取得し、
前記ワーク搬送装置が前記ワークを搬送する搬送方向と速さとを定める第２ベクトルデータを取得し、
前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第１ベクトルデータと前記第２ベクトルデータとのどちらを基準ベクトルとするかを決定し、
前記第１ベクトルデータと前記第２ベクトルデータとを合成した合成ベクトルを演算し、
前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する干渉領域を演算し、
前記干渉領域から前記ロボットと前記ワーク搬送装置との干渉の有無を確認する、
ことを特徴とするロボットシステム。
【請求項２】
前記ロボットの回転方向と回転速さとを定めた第３ベクトルデータを取得し、
前記ワーク搬送装置の回転方向と回転速さとを定めた第４ベクトルデータを取得し、
前記第３ベクトルデータと前記第４ベクトルデータとを合成した回転合成ベクトルを演算し、
前記合成ベクトル及び前記回転合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する、
ことを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記第３ベクトルデータと前記第４ベクトルデータとのどちらか一方が、基準ベクトルである、
ことを特徴とする請求項２に記載のロボットシステム。
【請求項４】
前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第３ベクトルデータと前記第４ベクトルデータとのどちらを回転基準ベクトルとするかを決定する、
ことを特徴とする請求項２または請求項３に記載のロボットシステム。
【請求項５】
少なくとも１方向に動作するアームを含み、
前記アームの移動方向と速さとを定めた第１ベクトルデータを取得し、
少なくとも１方向にワークを搬送するワーク搬送装置が前記ワークを搬送する搬送方向と速さとを定める第２ベクトルデータを取得し、
前記アームの形状と前記ワーク搬送装置の形状とに応じて、前記第１ベクトルデータと前記第２ベクトルデータとのどちらを基準ベクトルとするかを決定し、
前記第１ベクトルデータと前記第２ベクトルデータとを合成した合成ベクトルを演算し、
前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する干渉領域を演算し、
前記干渉領域から前記ロボットと前記ワーク搬送装置との干渉の有無を確認する、
ことを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム及びロボットに関する。
【背景技術】
【０００２】
ロボットを予め決められた動作条件で逐次動作させるときに、ロボットの動作範囲内に存在するベルトコンベアに代表される搬送装置や、別に設置されるロボットとの干渉の有無を確認する。そして、干渉する場合にはロボット動作の停止や、干渉が発生しないロボット動作へと修正する。
従来、例えば、特許文献１及び特許文献２に記載されているように、ロボットと搬送装置のレイアウトをコンピューター上で仮想配置した上で、ロボット動作をコンピューター上で模擬し、ロボットと搬送装置及び他のロボットとが干渉するかどうかを確認するロボットの干渉チェック方法が知られていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２５４３７９号公報
【特許文献２】特開２００５−８１４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、干渉の有無を確認する対象ペアを選択し、一方の物体を線分と円弧の組み合わせからなる二次元形状で表現される一般形状柱で近似する。次に他方の物体を単一の直方体または複数の直方体の集合で近似する。続いて、それぞれ近似した物体同士で干渉の有無を確認している。
【０００５】
特許文献２では、ロボット及び搬送装置等の周辺機器のレイアウトを設定している。そして、総てのロボット動作に関して、ロボット動作時にロボットが存在する領域の集合和を計算する。そして、その集合和領域に関して、周辺物体と干渉するかどうか、あるいは規定の動作領域に対してはみ出しているかどうかを確認する。
【０００６】
しかしながら、特許文献１記載のロボットの干渉チェック方法ではロボット動作で干渉する可能性の有る対象を取り囲む領域である一般形状柱の線分と円弧の組み合わせからなる二次元形状は複雑となる。従って、その領域を表現するためのデータ容量が大きくなり、検証の有無を算出する計算処理量が大きくなる。その結果、干渉計算の計算に時間がかかる。
【０００７】
特許文献２記載のロボットの干渉領域確認装置においても、ロボットの動作が多くなればなるほど、ロボット動作範囲が大きくなればなるほど、ロボットが存在する領域の集合和も広範な領域となる。従って、広域にわたる干渉計算を行う必要があり、干渉計算の計算に時間がかかる。そこで、干渉計算の計算を簡単に行える干渉チェック方法が望まれていた。
【０００８】
加えて、特許文献１記載のロボットの干渉チェック方法及び特許文献２記載のロボットの干渉領域確認装置においては、搬送装置や別に設置されるロボットの動作速度が十分に考慮されていない。従って、時刻に関して離散的に計算される干渉計算において干渉しないとされた動作が実際のロボット動作では干渉するケースが発生する課題が存在する。そこで、移動速度を考慮した干渉チェック方法が望まれていた。
【課題を解決するための手段】
【０００９】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【００１０】
［適用例１］本適用例にかかる干渉チェック方法は、少なくとも１方向への動作が可能なロボットと、少なくとも１方向に動作するワーク搬送装置との干渉をチェックするための干渉チェック方法であって、前記ロボットの移動方向と速さとを定めたベクトルデータである第１ベクトルデータを取得する工程と、前記ワーク搬送装置の移動方向と速さとを定めるベクトルデータである第２ベクトルデータを取得する工程と、前記第１ベクトルデータと前記第２ベクトルデータとを合成した合成ベクトルを演算する工程と、前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、前記干渉領域から前記ロボットと前記ワーク搬送装置との干渉の有無を確認する工程と、を含むことを特徴とする。
【００１１】
本適用例によれば、ロボットの移動方向と速さとを定めたベクトルデータである第１ベクトルデータと、ワーク搬送装置の移動方向と速さとを定める第２ベクトルデータとから合成ベクトルが演算される。そして、合成ベクトルに従って、定められたデータテーブルを参照して干渉領域を演算している。ワーク搬送装置及びロボットの移動方向と速さの双方が含まれる合成ベクトル方向は相対的に移動する方向を示している。この方向は、干渉の可能性がある方向である。そして、合成ベクトルの大きさは速さと相関を有する為、合成ベクトルは相対移動速度と対応した干渉領域を算出できる。これにより、相対移動速度と対応する合成ベクトルの大きさの分だけ干渉領域に広がりを持たせて算出することができる。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【００１２】
さらに、ロボットが移動する場所とワーク搬送装置が移動する場所とから干渉領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて干渉領域を算出する方が、干渉計算の計算を簡単に行うことができる。
【００１３】
［適用例２］上記適用例に記載の干渉チェック方法において、前記合成ベクトルを演算する工程は、前記第１ベクトルデータと前記第２ベクトルデータとのどちらか一方が基準ベクトルである前記合成ベクトルを演算することが好ましい。
【００１４】
本適用例によれば、第１ベクトルデータと第２ベクトルデータとのどちらか一方を基準ベクトルとしている。合成ベクトルに応じた干渉領域を演算するときロボットを基準とする干渉領域とワーク搬送装置を基準とする干渉領域との二通りの干渉領域を算出できる。そして、ロボットを基準とする干渉領域の広がりとワーク搬送装置を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【００１５】
［適用例３］上記適用例に記載の干渉チェック方法において、前記合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第１ベクトルデータと前記第２ベクトルデータとのどちらを基準ベクトルとするかを決定することが望ましい。
【００１６】
本適用例によれば、第１ベクトルデータと第２ベクトルデータとのどちらか一方を基準ベクトルとして定めている。このときに、ロボット及びワーク搬送装置の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ干渉領域を演算するときに、ロボットを基準に干渉領域を演算する場合と、ワーク搬送装置を基準に干渉領域を演算する場合とで、より演算量が少なくなる方を選択することが可能である。従って、干渉領域の計算時間を短くすることができる。
【００１７】
［適用例４］上記適用例に記載の干渉チェック方法において、前記ロボットの回転方向と回転速さとを定めたベクトルデータである第３ベクトルデータを取得する工程と、前記ワーク搬送装置の回転方向と回転速さとを定めるベクトルデータである第４ベクトルデータを取得する工程と、前記第３ベクトルデータと前記第４ベクトルデータとを合成した回転合成ベクトルを演算する工程と、前記合成ベクトル及び前記回転合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、を含むことを特徴とする。
【００１８】
本適用例によれば、ロボットの移動方向と速さ及びワーク搬送装置の移動方向と速さのみならず、ロボットの回転方向と回転速さ及びワーク搬送装置の回転方向と回転速さが含まれる回転合成ベクトル方向にのみ回転合成ベクトルの大きさと対応する広さを持つ干渉領域を算出できる。これにより、計算時間を抑制しながら適切な干渉計算を実行することができる。さらに、ワーク搬送装置の回転方向と回転速さ及びロボットの回転方向と回転速さに関して離散的に計算するときにもロボット動作で干渉することを防止できる。
【００１９】
［適用例５］上記適用例に記載の干渉チェック方法において、前記回転合成ベクトルを演算する工程は、前記第３ベクトルデータと前記第４ベクトルデータとのどちらか一方が回転基準ベクトルである前記回転合成ベクトルを演算することを特徴とする。
【００２０】
本適用例によれば、第３ベクトルデータと第４ベクトルデータとのどちらか一方を基準ベクトルとしている。合成ベクトルに応じた干渉領域を演算するとき、ロボットを基準とする干渉領域とワーク搬送装置を基準とする干渉領域との二通りを算出できる。そして、ロボットを基準とする干渉領域の広がりとワーク搬送装置を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【００２１】
［適用例６］上記適用例に記載の干渉チェック方法において、前記回転合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第３ベクトルデータと前記第４ベクトルデータとのどちらを回転基準ベクトルとするかを決定することを特徴とする。
【００２２】
本適用例によれば、第３ベクトルデータと第４ベクトルデータとのどちらか一方を基準ベクトルとして定めている。このときに、ロボット及びワーク搬送装置の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動する領域を演算するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ干渉領域を演算するときに、ロボットを基準に干渉領域を演算する場合と、ワーク搬送装置を基準に干渉領域を演算する場合とで、より演算量が少なくなる場合を選択することが可能である。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【００２３】
［適用例７］本適用例にかかる干渉チェック方法は、少なくとも１方向への動作が可能な第１ロボットと、少なくとも１方向に動作が可能な第２ロボットとの干渉をチェックするための干渉チェック方法であって、前記第１ロボットの移動方向と速さとを定めるベクトルデータである第１ベクトルデータを取得する工程と、前記第２ロボットの移動方向と速さとを定めたベクトルデータである第２ベクトルデータを取得する工程と、前記第１ベクトルデータと前記第２ベクトルデータとを合成した合成ベクトルを演算する工程と、前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、前記干渉領域から、前記第１ロボットと前記第２ロボットとの干渉の有無を確認する工程と、を含むことを特徴とする。
【００２４】
本適用例によれば、第１ロボットの移動方向と速さとを定めるベクトルデータである第１ベクトルデータを取得している。さらに、第２ロボットの移動方向と速さとを定めたベクトルデータである第２ベクトルデータを取得している。そして、第１ベクトルデータと第２ベクトルデータとから合成ベクトルを演算している。従って、定められたデータテーブルを参照して干渉領域を演算することで、第１ロボット及び第２ロボットの移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさと対応する広さを持つ干渉領域を算出できる。これにより、相対移動速度と対応する合成ベクトルの大きさの分だけ干渉領域に広がりを持たせて算出することができる。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【００２５】
さらに、第１ロボットが移動する場所と第２ロボットが移動する場所とから干渉領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて干渉領域が算出する方が、干渉計算の計算を簡単に行うことができる。
【００２６】
［適用例８］本適用例にかかるロボット制御装置は、上記適用例に記載の干渉チェック方法の内容と順番を規定したプログラムを記憶したことを特徴とする。
【００２７】
本適用例によれば、ロボット及びワーク搬送装置の移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ干渉領域を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボット動作に先立って干渉領域を確認しこの干渉領域に応じたロボットの制御を行うことができる。これによって、ワーク搬送装置とロボットとの干渉を回避するロボット制御が可能になる。または、ロボット同士の干渉を回避するロボット制御が可能になる。従って、ワーク搬送の状態に左右されることの無い連続可動が可能なロボット制御を実現できる。または、複数のロボットの状態に左右されることの無い連続可動が可能なロボット制御を実現できる。
【図面の簡単な説明】
【００２８】
【図１】実施形態１にかかるロボットの構成を示す模式正面図。
【図２】ロボット制御部の構成を示すブロック図。
【図３】ロボット制御部が実現する機能を示す機能ブロック図。
【図４】ロボットの形状データ構造を示す図。
【図５】部品給材の形状データ構造を示す図。
【図６】干渉チェックペアリング情報のデータ構造を示す図。
【図７】ロボットの並進速度のデータ構造を示す図。
【図８】部品給材装置の並進速度のデータ構造を示す図。
【図９】ロボットの位置姿勢のデータ構造を示す図。
【図１０】部品給材装置の位置姿勢のデータ構造を示す図。
【図１１】相対速度のデータ構造を示す図。
【図１２】拡大済み干渉ボリュームのデータ構造を示す図。
【図１３】干渉有無のデータ構造を示す図。
【図１４】干渉チェック対象ペアリングブロックのフローチャート。
【図１５】相対速度計算ブロックのフローチャート。
【図１６】相対速度の演算を説明するための模式図。
【図１７】干渉ボリューム拡張ブロックのフローチャート。
【図１８】拡大済み干渉ボリュームを説明するための模式図。
【図１９】干渉チェックブロックのフローチャート。
【図２０】ロボットの干渉チェック手順を示すフローチャート。
【図２１】実施形態２にかかるロボット制御部が実現する機能を示す機能ブロック図。
【図２２】ロボットの回転速度のデータ構造を示す図。
【図２３】部品給材装置の回転速度のデータ構造を示す図。
【図２４】相対速度計算ブロックのフローチャート。
【図２５】相対回転速度データを説明するための模式図。
【図２６】ロボットの干渉チェック手順を示すフローチャート。
【発明を実施するための形態】
【００２９】
以下、本発明を具体化した実施形態について、図面を参照して説明する。尚、以下の各図においては、各構成要素を認識可能な程度の大きさにするため、各構成要素の尺度を実際とは異ならせしめている。
【００３０】
（実施形態１）
本実施形態では、ロボットアームとロボットアームが行う特徴的な干渉チェック方法とその例について、図１〜図２０に従って説明する。
【００３１】
（ロボット）
図１は、ロボットの構成を示す模式正面図である。まず、ロボットと部品給材装置の構成について説明する。図１に示すように、ロボットとしてのロボットアーム１００は台座部１１０を備えている。台座部１１０上に第１リンク１２０、第２リンク１２１、第３リンク１２２、第４リンク１２３、第５リンク１２４、第６リンク１２５がこの順に接続して設置されている。そして、各リンクの間には第１ジョイント１３０、第２ジョイント１３１、第３ジョイント１３２、第４ジョイント１３３、第５ジョイント１３４、第６ジョイント１３５が配置されている。そして、ロボットアーム１００の先端にはロボットハンド１４０が設置されている。これにより、ロボットアーム１００は少なくとも１方向への動作可能なロボットとして動作する。そして、ロボットアーム１００は第１ジョイント１３０から第６ジョイント１３５の６軸のジョイントを有する６軸ロボットアームとなっている。
【００３２】
台座部１１０は、ロボットアーム１００を設置するための架台である。第１リンク１２０から第６リンク１２５の隣り合うリンクは、それぞれ第１ジョイント１３０から第６ジョイント１３５を介して接続されている。第１リンク１２０から第６リンク１２５の各リンクにはモーターが内蔵されている。そのモーターを所定の角度に回転させることで、第１ジョイント１３０から第６ジョイント１３５が回転する。これにより、第１リンク１２０から第６リンク１２５は姿勢が変動する。これを適宜実行して、ロボットアーム１００は所望の姿勢を実現する。そして、ロボットハンド１４０はチャック部１４１，１４２を開閉させることで、部品の把持や解放を実現する。
【００３３】
ロボットアーム１００は、第１リンク１２０から第６リンク１２５の各リンクが並行して動作しロボットハンド１４０を直線に沿って移動させる並進動作が可能となっている。ロボットアーム１００が設置されている作業空間で直交座標系の基底方向が設定されている場合には、その各方向を例えばＸ軸方向、Ｙ軸方向、Ｚ軸方向とした上で、ロボットアーム１００の並進動作の方向をＸ軸方向、Ｙ軸方向、Ｚ軸方向の３成分に分解したうえでそれぞれの方向の並進動作の和としても良い。
【００３４】
ワーク搬送装置としての部品給材装置２００は、ワークとしての供給部品２１０，２１１，２１２、台座部２２０、コンベアベルト２３０、駆動部２４０，２４１等から構成されている。台座部２２０は、部品給材装置２００を設置するための架台である。台座部２２０上にはコンベアベルト２３０が設置され、コンベアベルト２３０の両端には駆動部２４０と駆動部２４１とが配置されている。駆動部２４０と２４１とはモーターや減速装置等の回転機構を備えている。駆動部２４０と２４１とが動作することで、コンベアベルト２３０が１方向に移動する。従って、部品給材装置２００は少なくとも１方向に動作するワーク搬送装置となっている。
【００３５】
供給部品２１０，２１１，２１２は部品給材装置２００によって所望の位置に搬送される。その後、供給部品２１０，２１１，２１２はロボットハンド１４０によって把持される。
【００３６】
コンベアベルト２３０の動作は並進動作である。従って、供給部品２１０，２１１，２１２はコンベアベルト２３０の動きに伴い直線に沿って移動する。部品給材装置２００が設置されている作業空間で直交座標系の基底方向が設定されている場合には、その各方向を例えばＸ軸方向、Ｙ軸方向、Ｚ軸方向とした上で、コンベアベルト２３０の並進動作の方向をＸ軸方向、Ｙ軸方向、Ｚ軸方向の３成分のベクトル和としても良い。
【００３７】
ロボットアーム１００の近くにはロボットアーム１００を制御するロボット制御部３００が設置されている。そして、部品給材装置２００の図中上側にはコンベアベルト２３０とロボットハンド１４０の移動範囲とを撮影するカメラ装置３５０が設置されている。
【００３８】
図２は、ロボット制御部の構成を示すブロック図である。図２に示すように、ロボットアーム１００を制御するためのロボット制御部３００は、ＣＰＵ３１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、主記憶装置３２０、補助記憶装置３３０、ロボット制御装置３４０、データバス３６０等から構成されている。データバス３６０はロボット制御部３００が内臓する各装置、カメラ装置３５０、ロボットアーム１００を接続する。
【００３９】
補助記憶装置３３０は、ロボットアーム１００の動作命令群を保持する装置である。そして、補助記憶装置３３０は、ロボットアーム１００の動作命令群を主記憶装置３２０に出力する。カメラ装置３５０は、作業領域の様子を撮影した画像情報を生成し主記憶装置３２０に出力する。主記憶装置３２０は、補助記憶装置３３０に保持されているロボットアーム１００の動作命令を入力し、ＣＰＵ３１０が行う処理の一時記憶場所を有する。他にも、主記憶装置３２０は、カメラ装置３５０が撮影する画像情報を入力する機能を有する。ロボット制御装置３４０は、ＣＰＵ３１０が生成するロボットアーム１００の動作指示情報を入力する。そして、動作指示情報に応じて第１ジョイント１３０から第６ジョイント１３５を稼動させて、ロボットアーム１００を駆動する。
【００４０】
ＣＰＵ３１０は、主記憶装置３２０からロボットアーム１００の動作命令を取得する。そして、ＣＰＵ３１０はカメラ装置３５０が撮影した画像情報を画像処理し、ロボットアーム１００や部品給材装置２００を検出する。次に、ＣＰＵ３１０は現在のロボットアーム１００の位置情報や姿勢情報、部品給材装置２００の位置情報を生成する。そして、ＣＰＵ３１０は各位置情報や姿勢情報は主記憶装置３２０に転送する。さらにＣＰＵ３１０は、ロボットアーム１００の現在の位置情報や姿勢情報、部品給材装置２００の位置情報等から、ロボットアーム１００と部品給材装置２００との干渉の有無を計算する。そして、干渉の有無に応じたロボットアーム１００の動作指示情報を生成し、ロボット制御装置３４０に転送する。
【００４１】
図３は、ロボット制御部が実現する機能を示す機能ブロック図である。次に、ロボット制御部３００が備える機能ブロックについて説明する。図３に示すように、ロボットの定められたデータテーブルとしてのロボットアーム形状データ４００が補助記憶装置３３０に保持されている。ロボットアーム形状データ４００はロボットアーム１００の形状を表すデータであり、ロボットアーム形状データ４００にはロボットアーム１００を構成する台座部、ロボットリンク、ロボットジョイント、ロボットハンド等の形状寸法が含まれている。
【００４２】
ロボットアーム形状データ４００はロボットアーム１００の構成要素の形状寸法等を表すデータである。ロボットアーム１００の構成要素の形状寸法を表すデータとしては、例えば、ロボットアームの設計データから生成された三角形ポリゴンデータを用いることができる。
【００４３】
データテーブルとしての部品給材装置形状データ４０１は部品給材装置２００の形状を表すデータである。詳しくは、部品給材装置形状データ４０１は部品給材装置２００を構成する台座部２２０、コンベアベルト２３０、駆動部２４０、駆動部２４１等の形状寸法が含まれている。部品給材装置形状データ４０１は補助記憶装置３３０に保持されている。
【００４４】
部品給材装置形状データ４０１は、部品給材装置２００の構成要素の形状寸法等を表すデータである。部品給材装置２００の構成要素の形状寸法を表すデータとしては、たとえば、部品給材装置の設計データから生成された三角形ポリゴンデータを用いることができる。
【００４５】
干渉チェック対象ペアリングデータ４０２は、ロボットアーム形状データ４００に含まれる構成要素と部品給材装置形状データ４０１に含まれる構成要素とを重複しないようペアリングしたデータである。干渉チェック対象ペアリングデータ４０２はロボットアーム形状データ４００と部品給材装置形状データ４０１から生成される。そして、干渉チェック対象ペアリングデータ４０２は定められたデータテーブルとして主記憶装置３２０または補助記憶装置３３０に保持される。
【００４６】
第１ベクトルデータとしてのロボットアーム並進速度データ４０３はロボットの移動方向と速さとを定めたベクトルデータである。ロボットアーム並進速度データ４０３はロボット制御装置３４０による動作命令から演算される。あるいは、ロボットアーム並進速度データ４０３は、カメラ装置３５０が撮影する画像から検出されたロボットアーム１００の構成要素の並進速度データである。ロボットアーム並進速度データ４０３はデータテーブルとして主記憶装置３２０に保持される。
【００４７】
第２ベクトルデータとしての部品給材装置の並進速度データ４０４はワーク搬送装置の移動方向と速さとを定めるベクトルデータである。部品給材装置の並進速度データ４０４は、カメラ装置３５０が検出する部品給材装置２００の構成要素の並進速度データである。部品給材装置の並進速度データ４０４は定められたデータテーブルとして主記憶装置３２０に保持される。
【００４８】
ロボットアームの位置姿勢データ４０５は、ロボットアーム１００の構成要素の位置と姿勢の情報である。ロボットアームの位置姿勢データ４０５は、ロボット制御装置３４０による動作命令から演算される。あるいは、カメラ装置３５０が撮影する画像から検出されたロボットアーム１００の構成要素の位置と姿勢の情報である。ロボットアームの位置姿勢データ４０５はデータテーブルとして主記憶装置３２０に保持される。
【００４９】
部品給材装置の位置姿勢データ４０６は、カメラ装置３５０が検出する部品給材装置２００の構成要素の位置と姿勢の情報である。部品給材装置の位置姿勢データ４０６はデータテーブルとして主記憶装置３２０に保持される。
【００５０】
相対速度データ４０７は第１ベクトルデータと第２ベクトルデータとを合成した合成ベクトルのデータである。相対速度データ４０７は、干渉チェック対象ペアリングデータ４０２でペアリングされているロボットアーム１００の構成要素の並進速度と部品給材装置２００の構成要素の並進速度の差を表すベクトル情報である。相対速度データ４０７は主記憶装置３２０に保持される。
【００５１】
干渉領域としての拡大済み干渉ボリュームデータ４０８は、相対速度データ４０７及びデータテーブルを参照して演算されるデータである。拡大済み干渉ボリュームデータ４０８は、ロボットアーム１００あるいは部品給材装置２００が占める空間情報に対して合成ベクトルを使用する演算によって膨張させたデータである。拡大済み干渉ボリュームデータ４０８は主記憶装置３２０に保持される。
【００５２】
干渉有無データ４０９は、ロボットアーム１００と部品給材装置２００との干渉の有無を表すデータである。干渉有無データ４０９は、拡大済み干渉ボリュームデータ４０８とロボットアーム１００あるいは部品給材装置２００の形状データと、ロボットアームの位置姿勢データ４０５と部品給材装置の位置姿勢データ４０６とから演算される。干渉有無データ４０９はロボットアーム１００と部品給材装置２００との干渉の有無を表し、主記憶装置３２０に保持される。
【００５３】
干渉チェック対象ペアリングブロック４２０は、ロボットアームの形状データ４００からロボットアーム１００の構成要素と、部品給材装置の形状データ４０１から部品給材装置２００の構成要素とを用いる。そして、干渉チェック対象ペアリングブロック４２０はロボットアーム１００の構成要素と部品給材装置２００の構成要素との重複を含まない組み合わせを生成する。そして、干渉チェック対象ペアリングブロック４２０は生成したデータを干渉チェック対象ペアリングデータ４０２として保持する。
【００５４】
ロボットアームの並進速度取得ブロック４３０は、カメラ装置３５０が撮影した画像データを用いてロボットアーム１００の構成要素の移動方向と速さを算出する。ロボットアームの並進速度取得ブロック４３０は、ロボットアーム１００の構成要素の移動方向と速さのデータをロボットアーム並進速度データ４０３として保持する。
【００５５】
部品給材装置の並進速度取得ブロック４３１は、カメラ装置３５０が撮影した画像データを用いて部品給材装置２００の構成要素の移動方向と速さを算出する。部品給材装置の並進速度取得ブロック４３１は部品給材装置２００の構成要素の移動方向と速さを部品給材装置の並進速度データ４０４として保持する。
【００５６】
相対速度計算ブロック４４０は、干渉チェック対象ペアリングデータ４０２、ロボットアーム並進速度データ４０３、部品給材装置の並進速度データ４０４を用いて相対速度データ４０７を算出する。このとき、相対速度計算ブロック４４０は、干渉チェック対象ペアリングデータ４０２でペアリングされているロボットアーム１００の構成要素の並進速度と部品給材装置２００の構成要素の並進速度との差を算出する。算出結果から相対速度データ４０７を生成する。
【００５７】
干渉ボリューム拡張ブロック４５０は、ロボットアーム形状データ４００と部品給材装置形状データ４０１と相対速度データ４０７とを用いる。そして、干渉ボリューム拡張ブロック４５０は、ロボットアームの構成要素が占める空間情報に関して合成ベクトルを使用する演算を行う。これにより、ロボットアーム１００の構成要素が占める空間情報を膨張させて、拡大済み干渉ボリュームデータ４０８を生成する。または、干渉ボリューム拡張ブロック４５０は、部品給材装置２００の構成要素が占める空間情報に関して合成ベクトルを使用する演算を行う。これにより、部品給材装置２００の構成要素が占める空間情報を膨張させて、拡大済み干渉ボリュームデータ４０８を生成する。つまり、干渉ボリューム拡張ブロック４５０は合成ベクトルの大きさと対応する広さの拡大済み干渉ボリュームデータ４０８を演算する。
【００５８】
ロボットアームの位置姿勢取得ブロック４６０は、カメラ装置３５０が撮影した画像データからロボットアーム１００の構成要素の位置と姿勢を算出する。そして、ロボットアームの位置姿勢取得ブロック４６０はロボットアームの位置姿勢データ４０５を主記憶装置３２０に保持する。
【００５９】
部品給材装置の位置姿勢取得ブロック４６１は、カメラ装置３５０が撮影した画像データから部品給材装置２００の構成要素の位置と姿勢を算出する。そして、部品給材装置の位置姿勢取得ブロック４６１は部品給材装置の位置姿勢データ４０６として主記憶装置３２０に保持する。
【００６０】
干渉チェックブロック４７０は、ロボットアーム形状データ４００、部品給材装置の形状データ４０１、ロボットアームの位置姿勢データ４０５、部品給材装置の位置姿勢データ４０６、干渉領域としての拡大済み干渉ボリュームデータ４０８を用いる。そして、干渉チェックブロック４７０は、ロボットアーム１００と部品給材装置２００との干渉の有無を算出する。そして、干渉チェックブロック４７０は算出結果である干渉有無データ４０９を生成する。
【００６１】
図４は、ロボットの形状データ構造を示す図である。図４に示すように、ロボットアーム形状データ４００はロボットアーム１００の構成要素のポリゴン頂点の座標をデータとして保持する。尚、ポリゴン頂点は、各構成要素の表面を三角形にて覆って表面を近似したときの三角形の頂点を示している。ロボットアーム１００の基準位置を原点としてポリゴン頂点のＸ座標、Ｙ座要、Ｚ座標にて記載される。従って、ロボットアーム形状データ４００は各構成要素の表面形状を表現するデータとなっている。
【００６２】
図５は、部品給材の形状データ構造を示す図である。図５に示すように、部品給材装置形状データ４０１は部品給材装置２００の構成要素のポリゴン頂点の座標をデータとして保持する。部品給材装置２００の基準位置を原点としてポリゴン頂点のＸ座標、Ｙ座要、Ｚ座標にて記載される。従って、部品給材装置形状データ４０１は各構成要素の表面形状を表現するデータとなっている。
【００６３】
図６は、干渉チェックペアリング情報のデータ構造を示す図である。図６に示すように、干渉チェック対象ペアリングデータ４０２にはロボットアーム１００の構成要素と部品給材装置２００の構成要素のペアリングが記載されている。尚、ペアリングは一対の組合せを示している。そして、各ペアリングは同じ組合せが重複しないように整理されている。そして、各ペアリングにはインデックスが付与されている。これにより、インデックス順にペアリングを選択することにより、ロボットアーム１００の構成要素と部品給材装置２００の構成要素の組合せを重複せずに選択することが可能になっている。
【００６４】
図７は、ロボットの並進速度のデータ構造を示す図である。図７に示すように、ロボットアーム並進速度データ４０３にはロボットアーム１００の各構成要素が進行する速度ベクトルをＸ方向、Ｙ方向、Ｚ方向に分解したデータが記載されている。従って、ロボットアーム並進速度データ４０３は各構成要素の速度ベクトルを表現するデータとなっている。
【００６５】
図８は、部品給材装置の並進速度のデータ構造を示す図である。図８に示すように、部品給材装置の並進速度データ４０４には部品給材装置２００の各構成要素が進行する速度ベクトルをＸ方向、Ｙ方向、Ｚ方向に分解したデータが記載されている。従って、部品給材装置の並進速度データ４０４は各構成要素の速度ベクトルを表現するデータとなっている。
【００６６】
図９は、ロボットの位置姿勢のデータ構造を示す図である。図９に示すように、ロボットアームの位置姿勢データ４０５にはロボットアーム１００の各構成要素の位置を、例えば、ロール角、ピッチ角、ヨー角に分解したデータが記載されている。さらに、ロボットアームの位置姿勢データ４０５にはロボットアーム１００の各構成要素の姿勢を表示する方向をＸ方向、Ｙ方向、Ｚ方向に分解したデータが記載されている。従って、ロボットアームの位置姿勢データ４０５は各構成要素の位置と姿勢とを表現するデータとなっている。
【００６７】
図１０は、部品給材装置の位置姿勢のデータ構造を示す図である。図１０に示すように、部品給材装置の位置姿勢データ４０６には部品給材装置２００の各構成要素の位置をＸ方向、Ｙ方向、Ｚ方向に分解したデータが記載されている。さらに、部品給材装置の位置姿勢データ４０６には部品給材装置２００の各構成要素の姿勢を、例えば、ロール角、ピッチ角、ヨー角に分解したデータが記載されている。従って、部品給材装置の位置姿勢データ４０６は各構成要素の位置と姿勢とを表現するデータとなっている。
【００６８】
図１１は、相対速度のデータ構造を示す図である。図１１に示すように、相対速度データ４０７にはロボットアームの構成要素と部品給材装置の構成要素とのペアリングが記載されている。さらに、各ペアリングにおける相対速度の算出結果が記載されている。従って、相対速度データ４０７は各ペアリングした構成要素の接近速度を表現するデータとなっている。
【００６９】
図１２は、拡大済み干渉ボリュームのデータ構造を示す図である。図１２に示すように、拡大済み干渉ボリュームデータ４０８には干渉チェック対象ペアリングデータ４０２と同じデータを用いている。さらに、各対となる構成要素のうちどちらを基準とするかを選択した結果が記載されている。そして、相対速度に対応させて拡張したポリゴン頂点の座標が記載されている。従って、拡大済み干渉ボリュームデータ４０８は相対速度に対応して設定した干渉領域を示すデータとなっている。
【００７０】
図１３は、干渉有無のデータ構造を示す図である。図１３に示すように、干渉有無データ４０９には干渉チェック対象ペアリングデータ４０２と同じデータを用いている。さらに、各対の構成要素における干渉の有無を演算した結果が記載されている。従って、干渉有無データ４０９は各対の構成要素における干渉の有無を示すデータとなっている。
【００７１】
（干渉の検出方法）
次に、ロボット制御部３００がロボットの干渉チェック方法を実現するときの各機能ブロックの処理の流れについて説明する。
【００７２】
図１４は、干渉チェック対象ペアリングブロックフローチャートである。まず、干渉チェック対象ペアリングデータ４０２を形成する手順を説明する。図１４に示すように、まず、ステップＳ５０１においてロボットアームの形状データ４００を取得する。次に、ステップＳ５０２において部品給材装置形状データ４０１を取得する。その後に、ステップＳ５０３においてロボットアームの構成要素と、部品給材装置形状データ４０１の構成要素とを重複しないペアリングをおこない、干渉チェック対象ペアリングデータ４０２として保持する。
【００７３】
図１５は、相対速度計算ブロックのフローチャートである。次に、相対速度計算ブロック４４０が相対速度データ４０７を形成する手順を説明する。図１５に示すように、まず、ステップＳ５１１においてロボットアーム形状データ４００を取得する。次に、ステップＳ５１２において部品給材装置形状データ４０１を取得する。そして、ステップＳ５１３において相対速度を演算するペアリングを設定するために、干渉チェック対象ペアリングデータ４０２を取得する。次に、ステップＳ５１４においてロボットの移動方向と速さとを定めたベクトルデータであるロボットアーム並進速度データ４０３を取得する。ステップＳ５１４は第１ベクトルデータを取得する工程に相当する。次に、ステップＳ５１５においてワーク搬送装置の移動方向と速さとを定めるベクトルデータである部品給材装置の並進速度データ４０４を取得する。ステップＳ５１５は第２ベクトルデータを取得する工程に相当する。その後に、ステップＳ５１６において干渉チェック対象ペアリングデータ４０２に基づいて、ロボットアーム１００の構成要素と部品給材装置２００の構成要素との相対速度を算出する。そして、算出した結果を相対速度データ４０７として保持する。ステップＳ５１６は合成ベクトルを演算する工程に相当する。
【００７４】
図１６は、相対速度の演算を説明するための模式図である。図１６に示すように、干渉チェック対象ペアリングデータ４０２から、チャック部１４１とコンベアベルト２３０を選択した場合の例にて説明をする。チャック部１４１が移動する速度ベクトルをチャック並進速度ベクトル６００とする。そして、コンベアベルト２３０の上部が移動する速度ベクトルをベルト並進速度ベクトル６１０とする。次に、チャック並進速度ベクトル６００とベルト並進速度ベクトル６１０とを用いて第１相対速度ベクトル６２０または第２相対速度ベクトル６２１を相対速度計算ブロック４４０が演算する。そして、演算した結果は相対速度データ４０７となる。
【００７５】
第１相対速度ベクトル６２０は、チャック部１４１を基準にとったコンベアベルト２３０の相対速度であり、チャック部１４１から観察したコンベアベルト２３０の並進運動である。第２相対速度ベクトル６２１は、コンベアベルト２３０を基準にとったチャック部１４１の相対速度になるため、コンベアベルト２３０から観察したチャック部１４１の並進運動である。
【００７６】
相対速度ベクトルを演算するときに、その基準をチャック部１４１とするか、コンベアベルト２３０とするかは、チャック部１４１の形状寸法データとコンベアベルト２３０の形状データとのポリゴン情報の容量を比較して選択する。このとき、ポリゴン情報の容量が大きい方を相対速度ベクトルの基準とする。これにより、干渉ボリューム拡張ブロック４５０が基準でない方の形状寸法データを拡大処理する計算量を削減することができる。つまり、ポリゴン情報の容量が小さい方の構成要素を処理することで、処理量を削減する。
【００７７】
図１７は、干渉ボリューム拡張ブロックのフローチャートである。次に、干渉ボリューム拡張ブロック４５０の処理の流れを説明する。図１７に示すように、まず、ステップＳ５２１において、ロボットアーム形状データ４００を取得する。次に、ステップＳ５２２において部品給材装置の形状データ４０１を取得する。続いて、ステップＳ５２３において、ロボットアーム並進速度データ４０３と部品給材装置の並進速度データ４０４とを合成した相対速度データ４０７を取得する。その後に、ステップＳ５２４において、拡大済み干渉ボリュームデータ４０８を生成し、保持する。ステップＳ５２４は干渉領域を演算する工程に相当する。以上で、干渉ボリューム拡張ブロック４５０が実施する工程を終了する。
【００７８】
ステップＳ５２４を詳細に説明する。ロボットアーム１００の構成要素と部品給材装置２００の構成要素のうち、相対速度データ４０７の基準でない方の形状データを相対速度データ４０７の方向と大きさに基づいて干渉ボリューム拡張ブロック４５０は拡大処理の演算を行なう。拡大処理は（数式１）を適用する。
【００７９】
【数１】
0005754138.tif 000002
【００８０】
（数式１）において、右辺のｘ、ｙ、ｚは形状データのポリゴン頂点のｘ方向位置、ｙ方向位置、ｚ方向位置、ｕ、ｖ、ｗは相対速度データ４０７のｘ方向成分、ｙ方向成分、ｚ方向成分、αは拡大率調整のパラメーター（αはゼロ以上、１．０以下とする）である。左辺のｘ、ｙ、ｚは拡大処理済み形状データのポリゴン頂点のｘ方向位置、ｙ方向位置、ｚ方向位置である。（数式１）により、相対速度データの速度成分が大きな方向は、より大きな拡大率になる。
【００８１】
拡大処理の演算は、数式を用いる方法に限らない。実験から干渉する確立を求めて拡大処理する係数を記載したデータテーブルを作成する。尚、データテーブルは数式を元にして作成してもよく、数式を元に算出した値を実験データを考慮して修正してもよい。そして、拡大処理の演算を行なうときにはデータテーブルの係数を用いて行う。
【００８２】
図１８は、拡大済み干渉ボリュームを説明するための模式図である。相対速度データ４０７から、チャック部１４１とコンベアベルト２３０が対象となる例を示す。図１８（ａ）では、チャック部１４１が基準となっている。このとき、干渉ボリューム拡張ブロック４５０はコンベアベルト２３０の第１相対速度ベクトル６２０を用いる。第１相対速度ベクトル６２０はｘ方向およびｚ方向に成分があるくベクトルとなっている。そして、干渉ボリューム拡張ブロック４５０はｚ方向と比較してｘ方向に大きく拡大したコンベアベルト２３０の干渉領域としての拡大済み干渉ボリュームデータ７００を算出する。
【００８３】
図１８（ｂ）では、コンベアベルト２３０が基準となっている。このとき、干渉ボリューム拡張ブロック４５０はチャック部１４１の第２相対速度ベクトル６２１を用いる。第２相対速度ベクトル６２１はｘ方向およびｚ方向に成分があるベクトルとなっている。そして、干渉ボリューム拡張ブロック４５０はｚ方向と比較してｘ方向に大きく拡大したチャック部１４１の干渉領域としての拡大済み干渉ボリュームデータ７０１を算出する。つまり、干渉ボリューム拡張ブロック４５０は合成ベクトルの大きさと対応する広さの拡大済み干渉ボリュームデータ７００及び拡大済み干渉ボリュームデータ７０１を演算する。
【００８４】
図１９は、干渉チェックブロックのフローチャートである。次に、干渉チェックブロック４７０の処理の流れを説明する。図１９に示すように、まず、ステップＳ５３１において、干渉チェックブロック４７０は干渉領域としての拡大済み干渉ボリュームデータ４０８を取得する。次に、ステップＳ５３２において、干渉チェックブロック４７０は拡大済み干渉ボリュームデータ４０８においてロボットアーム１００と部品給材装置２００とのうちどちらが基準であるかを参照する。基準がロボットアーム１００の場合は、ステップＳ５３３において干渉チェックブロック４７０はロボットアーム形状データ４００を取得する。基準が部品給材装置２００場合は、ステップＳ５３４において部品給材装置形状データ４０１を取得する。次に、ステップＳ５３５においてロボットアームの位置姿勢データ４０５を取得する。続いて、ステップＳ５３６において部品給材装置の位置姿勢データ４０６を取得する。次に、ステップＳ５３７において干渉の有無を計算する。ステップＳ５３７は干渉の有無を確認する工程に相当する。以上で、干渉ボリューム拡張ブロック４５０が実施する工程を終了する。
【００８５】
ステップＳ５３７を詳細に説明する。干渉ボリューム拡張ブロック４５０は、拡大済み干渉ボリュームデータ４０８とロボットアームの形状データ４００あるいは部品給材装置の形状データ４０１とをロボットアームの位置姿勢データ４０５及び部品給材装置の位置姿勢データ４０６に従って配置する。そして、干渉ボリューム拡張ブロック４５０はロボットアーム１００と部品給材装置２００との干渉の有無を確認するための交差判定計算を行う。その結果得られる干渉の有無を干渉ボリューム拡張ブロック４５０は干渉有無データ４０９として保持する。
【００８６】
交差判定計算において干渉ボリューム拡張ブロック４５０は、細分化された作業空間要素が木構造で連なるデータ構造により表現される作業空間を用意する。そして、拡大済み干渉ボリュームデータ４０８をロボットアームの位置姿勢データ４０５及び部品給材装置の位置姿勢データ４０６に従って配置する。拡大済み干渉ボリュームデータ４０８とロボットアーム形状データ４００あるいは部品給材装置形状データ４０１とに関して、隣接する細分化した作業空間要素にない形状データ同士の交差判定計算を省略する処理を行う。そして、省略されない作業空間要素に対して干渉の有無を演算する。
【００８７】
図２０は、ロボット制御部３００がロボットの干渉チェックを実現するときの処理の流れであり、ロボットの干渉チェック手順を示すフローチャートである。図２０に示すように、まず、ステップＳ８０１において干渉チェック対象ペアリングブロック４２０が干渉チェック対象ペアリングデータ４０２を生成する。次に、ステップＳ８０２においてロボット動作命令やロボット動作に基づいて相対速度計算ブロック４４０が相対速度データ４０７を生成する。続いて、ステップＳ８０３において干渉ボリューム拡張ブロック４５０が拡大済み干渉ボリュームデータ４０８を生成する。次に、ステップＳ８０４において干渉チェックブロック４７０が干渉有無データ４０９を生成する。続いて、ステップＳ８０５においてＣＰＵ３１０が干渉有無データ４０９を参照する。干渉が無い場合はステップＳ８０６においてロボットアーム１００は引き続いてロボット動作を実行する。干渉がある場合はステップＳ８０７においてロボットアーム１００を停止させてから、干渉有りを意味する警告表示を行う。以上で、ロボットの干渉をチェックする工程を終了する。
【００８８】
上述したように、本実施形態によれば、以下の効果を有する。
（１）本実施形態によれば、ロボットアーム並進速度データ４０３と部品給材装置の並進速度データ４０４とから相対速度データ４０７が演算される。そして、相対速度データ４０７に従って、定められたデータテーブルを参照して拡大済み干渉ボリュームデータ４０８を演算している。部品給材装置２００及びロボットアーム１００の移動方向と速さの双方が含まれる相対速度データ４０７が示す合成ベクトル方向は相対的に移動する方向を示している。この方向は、干渉の可能性がある方向である。そして、合成ベクトルの大きさは速さと相関を有する為、合成ベクトルは相対移動速度を考慮した拡大済み干渉ボリュームデータ４０８を算出できる。これにより、拡大済み干渉ボリュームデータ４０８は相対移動速度と対応する合成ベクトルの大きさの分だけに広がりを持たせて算出されている。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【００８９】
さらに、ロボットアーム１００が移動する場所と部品給材装置２００が移動する場所とから供給部品２１０が干渉する領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて供給部品２１０が干渉する領域を算出する方が、干渉計算の計算を簡単に行うことができる。
【００９０】
（２）本実施形態によれば、ロボットアーム並進速度データ４０３と部品給材装置の並進速度データ４０４とのどちらか一方を基準ベクトルデータとしている。合成ベクトルに応じた干渉領域を演算するときロボットアーム１００を基準とする干渉領域と部品給材装置２００を基準とする干渉領域との二通りの干渉領域を算出できる。そして、ロボットアーム１００を基準とする干渉領域の広がりと部品給材装置２００を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【００９１】
（３）本実施形態によれば、ロボットアーム並進速度データ４０３と部品給材装置の並進速度データ４０４とのどちらか一方を基準ベクトルデータとして定めている。このときに、ロボットアーム１００及び部品給材装置２００の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ４０８を演算するときに、ロボットアーム１００を基準に干渉領域を演算する場合と、部品給材装置２００を基準に干渉領域を演算する場合とで、より演算量が少なくなる方を選択することが可能である。従って、拡大済み干渉ボリュームデータ４０８の計算時間を短くすることができる。
【００９２】
（４）本実施形態によれば、ロボットアーム１００及び部品給材装置２００の移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ４０８を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボット動作に先立って干渉有無データ４０９を確認し、この干渉有無データ４０９に応じたロボットの制御を行うことができる。これによって、部品給材装置２００とロボットアーム１００との干渉を回避するロボット制御が可能になる。
【００９３】
（実施形態２）
次に、本発明のロボットアームとロボットアームが行う干渉チェック方法について図２１〜図２６を用いて説明する。本実施形態が実施形態１と異なるところは、ロボットアーム及び部品給材装置が相対移動する回転成分を考慮して干渉チェックを行う点にある。尚、本実施形態において、上記の実施形態１と同様の部材または部位については同じ符号を付し、詳細な説明は省略する。
【００９４】
図２１は、ロボット制御部が実現する機能を示す機能ブロック図である。すなわち、図２１に示すように、相対速度計算ブロック４４０は、ロボットアーム並進速度データ４０３及び部品給材装置の並進速度データ４０４から第１ベクトルデータと第２ベクトルデータとを合成した回転合成ベクトルとしての相対速度データ４０７を計算する。さらに、ロボット制御部３００は、ロボットの回転方向と回転速さとを定める第３ベクトルデータとしてのロボットアームの回転速度データ４１０を備える。さらに、部品給材装置２００の回転方向と回転速さとを定めたベクトルデータである第４ベクトルデータとしての部品給材装置の回転速度データ４１１を備える。さらに、ロボット制御部３００は第３ベクトルデータと第４ベクトルデータとを合成した回転合成ベクトルとしての相対回転速度データ４１２を演算する相対回転速度計算ブロック４９０を備えている。
【００９５】
ロボット制御部３００はロボットアームの回転速度取得ブロック４８０を備えている。ロボットアームの回転速度取得ブロック４８０は、カメラ装置３５０が作業空間を撮影して得られる画像データからロボットアーム１００の構成要素の回転方向と速さを検出する。そして、ロボットアームの回転速度取得ブロック４８０はロボットアームの回転速度データ４１０を保持する。
【００９６】
ロボット制御部３００は部品給材装置の回転速度取得ブロック４８１を備えている。部品給材装置の回転速度取得ブロック４８１は、カメラ装置３５０が作業空間を撮影して得られる画像データから部品給材装置２００の構成要素の回転方向と速さを検出する。そして、部品給材装置の回転速度取得ブロック４８１は部品給材装置の回転速度データ４１１を保持する。
【００９７】
ロボット制御部３００は相対回転速度計算ブロック４９０を備えている。相対回転速度計算ブロック４９０は、干渉チェック対象ペアリングデータ４０２と、ロボットアームの回転速度データ４１０と、部品給材装置の回転速度データ４１１とを参照する。そして、相対回転速度計算ブロック４９０は干渉チェック対象ペアリングデータ４０２でペアリングされているロボットアームの構成要素の回転速度と部品給材装置の構成要素の回転速度との差を算出する。これにより、相対回転速度計算ブロック４９０はロボットアームの回転速度データ４１０と部品給材装置の回転速度データ４１１とを合成した相対回転速度データ４１２を生成する。
【００９８】
干渉ボリューム拡張ブロック４５０は相対速度データ４０７及び相対回転速度データ４１２及び定められたデータテーブルを参照して拡大済み干渉ボリュームデータ４０８を演算する。このとき、干渉ボリューム拡張ブロック４５０は、さらに、ロボットアーム形状データ４００あるいは部品給材装置形状データ４０１と相対速度データ４０７と相対回転速度データ４１２とを参照する。そして、干渉ボリューム拡張ブロック４５０は、ロボットアーム１００の構成要素あるいは部品給材装置２００の構成要素が占める空間情報を合成ベクトルを演算によって膨張させた拡大済み干渉ボリュームデータ４０８を生成する。
【００９９】
ロボットアーム１００の移動方向と速さ及び部品給材装置２００の移動方向と速さに加えて、ロボットアーム１００の回転方向と回転速さ及びワーク搬送装置の回転方向と回転速さが含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ干渉領域を干渉ボリューム拡張ブロック４５０が算出する。これにより、部品給材装置２００の回転方向と回転速さ及びロボットアーム１００の回転方向と回転速さに関して離散的に計算される干渉計算において、干渉しないとされた動作が実際のロボット動作で干渉するといったケースを発見することができ、より確実な干渉の有無を取得できる。
【０１００】
ロボットの回転方向と回転速さとを定めたベクトルデータであるロボットアームの回転速度データ４１０は、ロボット制御装置３４０による動作命令から演算される。あるいは、ロボットアームの回転速度データ４１０はカメラ装置３５０が検出するロボットアーム１００の構成要素の回転速度データであり、定められたデータテーブルとして主記憶装置３２０に保持されている。
【０１０１】
部品給材装置の回転速度データ４１１は、部品給材装置２００の回転方向と回転速さとを定めるベクトルデータである。そして、部品給材装置の回転速度データ４１１はカメラ装置３５０が検出する部品給材装置２００の構成要素の回転速度データである。部品給材装置の回転速度データ４１１は定められたデータテーブルとして主記憶装置３２０に保持される。
【０１０２】
図２２は、ロボットの回転速度のデータ構造を示す図である。図２２に示すように、ロボットアームの回転速度データ４１０にはロボットアーム１００の各構成要素が回転する回転速度ベクトルをＸ軸周り、Ｙ軸周り、Ｚ軸周りに分解したデータが記載されている。従って、ロボットアームの回転速度データ４１０は各構成要素の回転速度ベクトルを表現するデータとなっている。
【０１０３】
図２３は、部品給材装置の回転速度のデータ構造を示す図である。図２３に示すように、部品給材装置の回転速度データ４１１には部品給材装置２００の各構成要素が回転する回転速度ベクトルをＸ軸周り、Ｙ軸周り、Ｚ軸周りに分解したデータが記載されている。従って、部品給材装置の回転速度データ４１１は各構成要素の回転速度ベクトルを表現するデータとなっている。
【０１０４】
図２４は、相対速度計算ブロックのフローチャートである。図２４に示すように、まず、ステップＳ５４１において相対回転速度計算ブロック４９０はロボットアームの形状データ４００を取得する。次に、ステップＳ５４２において相対回転速度計算ブロック４９０は部品給材装置形状データ４０１を取得する。続いて、ステップＳ５４３において相対速度を演算するペアリングを設定するために、相対回転速度計算ブロック４９０は干渉チェック対象ペアリングデータ４０２を取得する。
【０１０５】
次に、ステップＳ５４４において相対回転速度計算ブロック４９０はロボットアームの回転速度データ４１０を取得する。ステップＳ５４４は第３ベクトルデータを取得する工程に相当する。続いて、ステップＳ５４５において部品給材装置２００の回転方向と回転速さとを定めるベクトルデータである部品給材装置の回転速度データ４１１を取得する。ステップＳ５４５は第４ベクトルデータを取得する工程に相当する。
【０１０６】
その後、ステップＳ５４６において干渉チェック対象ペアリングデータ４０２に基づいて、ロボットアーム１００の構成要素と部品給材装置２００の構成要素との相対回転速度を計算する。そして、相対回転速度計算ブロック４９０はロボットアームの回転速度データ４１０と部品給材装置の回転速度データ４１１とを合成した相対回転速度データ４１２として保持する。ステップＳ５４６は回転合成ベクトルを演算する工程に相当する。以上で、相対回転速度計算ブロック４９０が実施する工程を終了する。
【０１０７】
ステップＳ５４６を詳細に説明する。図２５は、相対回転速度データを説明するための模式図である。干渉チェック対象ペアリングデータ４０２から、チャック部１４１とコンベアベルト２３０が対象となる場合の例を用いて説明する。相対回転速度計算ブロック４９０はチャック部１４１の回転速度ベクトル６３０とコンベアベルト２３０の上部の回転速度ベクトル６４０とから相対回転速度ベクトル６５０を演算する。相対回転速度ベクトル６５０のデータが相対回転速度データ４１２となる。相対回転速度ベクトル６５０は、コンベアベルト２３０を基準にとったチャック部１４１の相対回転速度になる。従って、相対回転速度ベクトル６５０はコンベアベルト２３０から観察したチャック部１４１の回転運動である。もちろん、チャック部１４１を基準とすることも可能である。
【０１０８】
相対回転速度ベクトルを演算するとき相対回転速度計算ブロック４９０は基準をチャック部１４１とするか、コンベアベルト２３０とするかを選択する。相対回転速度計算ブロック４９０はチャック部１４１の形状寸法データとコンベアベルト２３０の形状データとのポリゴン情報の大きさを比較する。そして、相対回転速度計算ブロック４９０はポリゴン情報の大きさが大きい方を相対回転速度ベクトルの基準とする。これにより、干渉ボリューム拡張ブロック４５０で基準でない方の形状寸法データを拡大処理するときにポリゴン情報の大きさが小さい方を処理することで計算量を削減することができる。
【０１０９】
図２６は、干渉チェックブロック４７０の処理の流れであり、ロボットの干渉チェック手順を示すフローチャートである。図２６に示すように、まず、ステップＳ５５１において干渉領域としての拡大済み干渉ボリュームデータ４０８を取得する。次に、ステップＳ５５２において拡大済み干渉ボリュームデータ４０８を参照して、干渉チェックブロック４７０はロボットアーム１００と部品給材装置２００のうち、どちらが基準であるかを判断する。基準がロボットアーム１００の場合は、ステップＳ５５３においてロボットアーム形状データ４００を取得する。基準が部品給材装置２００場合は、ステップＳ５５４において部品給材装置形状データ４０１を取得する。そして、ステップＳ５５５においてロボットアームの位置姿勢データ４０５を取得する。次に、ステップＳ５５６において部品給材装置の位置姿勢データ４０６を取得する。
【０１１０】
この後、ステップＳ５５７において相対回転速度データ４１２を拡大済み干渉ボリュームデータ４０８に反映させるための回転量θを０に初期設定する。つまり回転無しに初期設定する。ステップＳ５５８においてこの回転量θの絶対値と相対回転速度データ４１２の絶対値との比較を行う。回転量θの絶対値が相対回転速度データ４１２の絶対値よりも小さい場合には、ステップＳ５５９において回転量θ分だけ拡大済み干渉ボリュームデータ４０８を回転変換する処理を行う。ステップＳ５６０において回転量分だけ回転変換処理された拡大済み干渉ボリュームデータ４０８と、ロボットアーム形状データ４００あるいは部品給材装置形状データ４０１とを、ロボットアームの位置姿勢データ４０５及び部品給材装置の位置姿勢データ４０６に従って配置する。ステップＳ５６０は干渉領域を演算する工程に相当する。ロボットアーム１００と部品給材装置２００との干渉の有無を確認する交差判定計算を行う。その結果得られる干渉の有無を干渉有無データ４０９として保持する。そして、ステップＳ５６１において回転量θに対して相対回転速度データ４１２と同じ向きの回転増分ｄθを加算する。尚、ｄθの方向は相対回転速度と一致させる。
【０１１１】
ステップＳ５５９では、ステップＳ５２４と同様に数式を作成して、演算しても良い。他の方法を用いても良い。例えば、実験から干渉する確立を求めて拡大処理する係数を記載したデータテーブルを作成する。尚、データテーブルは数式を元にして作成してもよく、数式を元に算出した値を実験データを考慮して修正してもよい。そして、拡大処理の演算を行なうときにはデータテーブルの係数を用いて行う。
【０１１２】
ロボットアーム１００と部品給材装置２００が干渉の有無を確認するために交差判定計算を行う。このときに、細分化された作業空間要素が木構造で連なるデータ構造により表現される作業空間を用意する。そして、拡大済み干渉ボリュームデータ４０８はロボットアームの位置姿勢データ４０５及び部品給材装置の位置姿勢データ４０６に従って配置されるとともに、回転量分だけ回転変換処理が行なわれる。拡大済み干渉ボリュームデータ４０８、ロボットアーム形状データ４００あるいは部品給材装置形状データ４０１に関して、隣接する細分化した作業空間要素にない形状データ同士の交差判定計算を省略する処理を行う。そして、省略されない作業空間要素に対して干渉の有無を演算する。
【０１１３】
以上において、ロボットアーム１００とワーク搬送装置としての部品給材装置２００との干渉を確認する実施形態について示したが、ロボットとしてロボットアーム同士の干渉の確認についても上記実施形態と同様の方法を行うことが可能である。同様に、部品給材装置２００にある供給部品２１０，２１１，２１２や他のワークとロボットアーム１００との干渉の確認を行いたい場合も、上記実施形態と同様の方法が適用可能である。
【０１１４】
さらに、上述の干渉チェック方法は、実施形態１の内容も含めてプログラムとして提供することもできる。このようなプログラムは、コンピューターに付属するＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード等のコンピューター読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、ネットワークを介したダウンロードによって、プログラム製品を提供することもできる。提供されるプログラム製品は、ハードディスク等の補助記憶装置にインストールされて実行される。尚、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１１５】
上述したように、本実施形態によれば以下の効果を有する。
（１）本実施形態によれば、ロボットアーム１００の回転方向と回転速さ及び部品給材装置２００の回転方向と回転速さが含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ４０８を算出できる。これにより、計算時間を抑制しながら適切な干渉計算を実行することができる。さらに、部品給材装置２００の回転方向と回転速さ及びロボットアーム１００の回転方向と回転速さに関して離散的に計算するときにもロボットアーム１００と部品給材装置２００の干渉を防止できる。
【０１１６】
（２）本実施形態によれば、ロボットアームの回転速度データ４１０と部品給材装置の回転速度データ４１１とのどちらか一方を基準ベクトルとしている。相対回転速度データ４１２に応じた拡大済み干渉ボリュームデータ４０８を演算するとき、ロボットアーム１００を基準とする拡大済み干渉ボリュームデータ４０８と部品給材装置２００を基準とする拡大済み干渉ボリュームデータ４０８との二通りを算出できる。そして、ロボットアーム１００を基準とする拡大済み干渉ボリュームデータ４０８が示す干渉領域の広がりと部品給材装置２００を基準とする拡大済み干渉ボリュームデータ４０８が示す干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【０１１７】
（３）本実施形態によれば、ロボットアームの回転速度データ４１０と部品給材装置の回転速度データ４１１とのどちらか一方を基準ベクトルのデータとして定めている。このときに、ロボットアーム１００及び部品給材装置２００の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動する領域を演算するときに比べて演算時間がかかる。干渉ボリューム拡張ブロック４５０は相対回転速度データ４１２が示す合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ４０８を演算する。このときに、干渉ボリューム拡張ブロック４５０はロボットアーム１００を基準に拡大済み干渉ボリュームデータ４０８を演算する場合と、部品給材装置２００を基準に拡大済み干渉ボリュームデータ４０８を演算する場合とで、より演算量が少なくなる場合を選択することが可能である。従って、より計算時間が短い方を基準として干渉計算を実行することにより、ロボット制御部３００は計算時間を短くすることができる。
【０１１８】
（４）本実施形態によれば、ロボットアーム１００及び部品給材装置２００の移動方向と速さに加えて、ロボットアーム１００及び部品給材装置２００の回転方向と回転速度が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ４０８が示す干渉領域を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボットアーム１００の動作に先立って干渉領域を確認しこの干渉領域に応じたロボットアーム１００の制御を行うことができる。これによって、部品給材装置２００とロボットアーム１００との干渉を回避するロボット制御が可能になる。または、ロボットアーム１００同士の干渉を回避するロボットアーム１００の制御が可能になる。従って、供給部品２１０の搬送状態に左右されることの無い連続可動が可能なロボットアーム１００の制御を実現できる。または、複数のロボットの状態に左右されることの無い連続可動が可能なロボット制御を実現できる。
【０１１９】
今回開示された実施形態は総ての点で例示である。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での総ての変更が含まれることが意図される。
【０１２０】
尚、本発明は上述した実施形態に限定されるものではなく、種々の変更や改良を加えることも可能である。変形例を以下に述べる。
【０１２１】
（変形例１）
実施形態１において、ロボットアーム１００と部品給材装置２００との干渉を演算した。部品給材装置２００には供給部品２１０が含まれていてもよい。チャック部１４１が供給部品２１０を把持する前に供給部品２１０がロボットアーム１００と干渉することを防止することができる。
【０１２２】
（変形例２）
実施形態１において、ロボットアーム１００は６軸ロボットアームとしたが、ロボットアーム１００はこの形態のロボットアームに限らない。２軸〜５軸のロボットアームでも良く、７軸以上のロボットアームでも良い。さらに、水平多関節ロボット、直交ロボット、パラレルリンクロボット等の各種類の形態のロボットにも適用することができる。
【０１２３】
（変形例３）
実施形態１において、部品給材装置２００はコンベアベルト２３０を駆動して供給部品２１０を移動した。部品給材装置２００が供給部品２１０を移動する形態は他の形態でも良い。回転式ローラーを複数配置しても良く、直動機構を用いて供給部品２１０を移動させても良い。他にも運搬車に載せて供給部品２１０を移動させてもよい。いずれの方式においてもロボットアーム１００との干渉防止に適用することができる。尚、変形例１〜変形例３は実施形態２にも適用することができる。
【符号の説明】
【０１２４】
１００…ロボットとしてのロボットアーム、２００…ワーク搬送装置としての部品給材装置、２１０…ワークとしての供給部品、４００…データテーブルとしてのロボットアーム形状データ、４０１…データテーブルとしての部品給材装置形状データ、４０３…第１ベクトルデータとしてのロボットアーム並進速度データ、４０４…第２ベクトルデータとしての部品給材装置の並進速度データ、４０７…合成ベクトル及び回転合成ベクトルとしての相対速度データ、４０８，７００，７０１…干渉領域としての拡大済み干渉ボリュームデータ、４１０…第３ベクトルデータとしてのロボットアームの回転速度データ、４１１…第４ベクトルデータとしての部品給材装置の回転速度データ、４１２…合成回転ベクトルとしての相対回転速度データ。
【図１】
0005754138.tif 000003
【図２】
0005754138.tif 000004
【図３】
0005754138.tif 000005
【図４】
0005754138.tif 000006
【図５】
0005754138.tif 000007
【図６】
0005754138.tif 000008
【図７】
0005754138.tif 000009
【図８】
0005754138.tif 000010
【図９】
0005754138.tif 000011
【図１０】
0005754138.tif 000012
【図１１】
0005754138.tif 000013
【図１２】
0005754138.tif 000014
【図１３】
0005754138.tif 000015
【図１４】
0005754138.tif 000016
【図１５】
0005754138.tif 000017
【図１６】
0005754138.tif 000018
【図１７】
0005754138.tif 000019
【図１８】
0005754138.tif 000020
【図１９】
0005754138.tif 000021
【図２０】
0005754138.tif 000022
【図２１】
0005754138.tif 000023
【図２２】
0005754138.tif 000024
【図２３】
0005754138.tif 000025
【図２４】
0005754138.tif 000026
【図２５】
0005754138.tif 000027
【図２６】
0005754138.tif 000028