説明

干渉チェック方法及びロボット制御装置

【課題】ロボットアームと部品給材装置との干渉の有無を確実に発見する手段を提供する。
【解決手段】1方向に動作するロボットアーム100の移動方向と速さとを定めたベクトルデータであるロボットアーム並進速度データと、1方向に動作するワーク搬送装置の移動方向と速さとを定めるベクトルデータである部品給材装置200の並進速度データとから計算される相対速度データに基づく拡大処理から得られる拡大済み干渉ボリュームデータを生成する。拡大済み干渉ボリュームデータと、ロボットアーム100の形状データあるいは部品給材装置200の形状データとを、ロボットアームの位置姿勢データ及び部品給材装置200の位置姿勢データに従って、ロボットアーム100と部品給材装置が干渉の有無を確認する交差判定計算を行い、干渉の有無を判断する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、干渉チェック方法、及びロボット制御装置にかかわり特に、ロボットの干渉に関する。
【背景技術】
【0002】
ロボットを予め決められた動作条件で逐次動作させるときに、ロボットの動作範囲内に存在するベルトコンベアに代表される搬送装置や、別に設置されるロボットとの干渉の有無を確認する。そして、干渉する場合にはロボット動作の停止や、干渉が発生しないロボット動作へと修正する。
従来、例えば、特許文献1及び特許文献2に記載されているように、ロボットと搬送装置のレイアウトをコンピューター上で仮想配置した上で、ロボット動作をコンピューター上で模擬し、ロボットと搬送装置及び他のロボットとが干渉するかどうかを確認するロボットの干渉チェック方法が知られていた。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平11−254379号公報
【特許文献2】特開2005−81445号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、干渉の有無を確認する対象ペアを選択し、一方の物体を線分と円弧の組み合わせからなる二次元形状で表現される一般形状柱で近似する。次に他方の物体を単一の直方体または複数の直方体の集合で近似する。続いて、それぞれ近似した物体同士で干渉の有無を確認している。
【0005】
特許文献2では、ロボット及び搬送装置等の周辺機器のレイアウトを設定している。そして、総てのロボット動作に関して、ロボット動作時にロボットが存在する領域の集合和を計算する。そして、その集合和領域に関して、周辺物体と干渉するかどうか、あるいは規定の動作領域に対してはみ出しているかどうかを確認する。
【0006】
しかしながら、特許文献1記載のロボットの干渉チェック方法ではロボット動作で干渉する可能性の有る対象を取り囲む領域である一般形状柱の線分と円弧の組み合わせからなる二次元形状は複雑となる。従って、その領域を表現するためのデータ容量が大きくなり、検証の有無を算出する計算処理量が大きくなる。その結果、干渉計算の計算に時間がかかる。
【0007】
特許文献2記載のロボットの干渉領域確認装置においても、ロボットの動作が多くなればなるほど、ロボット動作範囲が大きくなればなるほど、ロボットが存在する領域の集合和も広範な領域となる。従って、広域にわたる干渉計算を行う必要があり、干渉計算の計算に時間がかかる。そこで、干渉計算の計算を簡単に行える干渉チェック方法が望まれていた。
【0008】
加えて、特許文献1記載のロボットの干渉チェック方法及び特許文献2記載のロボットの干渉領域確認装置においては、搬送装置や別に設置されるロボットの動作速度が十分に考慮されていない。従って、時刻に関して離散的に計算される干渉計算において干渉しないとされた動作が実際のロボット動作では干渉するケースが発生する課題が存在する。そこで、移動速度を考慮した干渉チェック方法が望まれていた。
【課題を解決するための手段】
【0009】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態または適用例として実現することが可能である。
【0010】
[適用例1]本適用例にかかる干渉チェック方法は、少なくとも1方向への動作が可能なロボットと、少なくとも1方向に動作するワーク搬送装置との干渉をチェックするための干渉チェック方法であって、前記ロボットの移動方向と速さとを定めたベクトルデータである第1ベクトルデータを取得する工程と、前記ワーク搬送装置の移動方向と速さとを定めるベクトルデータである第2ベクトルデータを取得する工程と、前記第1ベクトルデータと前記第2ベクトルデータとを合成した合成ベクトルを演算する工程と、前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、前記干渉領域から前記ロボットと前記ワーク搬送装置との干渉の有無を確認する工程と、を含むことを特徴とする。
【0011】
本適用例によれば、ロボットの移動方向と速さとを定めたベクトルデータである第1ベクトルデータと、ワーク搬送装置の移動方向と速さとを定める第2ベクトルデータとから合成ベクトルが演算される。そして、合成ベクトルに従って、定められたデータテーブルを参照して干渉領域を演算している。ワーク搬送装置及びロボットの移動方向と速さの双方が含まれる合成ベクトル方向は相対的に移動する方向を示している。この方向は、干渉の可能性がある方向である。そして、合成ベクトルの大きさは速さと相関を有する為、合成ベクトルは相対移動速度と対応した干渉領域を算出できる。これにより、相対移動速度と対応する合成ベクトルの大きさの分だけ干渉領域に広がりを持たせて算出することができる。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【0012】
さらに、ロボットが移動する場所とワーク搬送装置が移動する場所とから干渉領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて干渉領域を算出する方が、干渉計算の計算を簡単に行うことができる。
【0013】
[適用例2]上記適用例に記載の干渉チェック方法において、前記合成ベクトルを演算する工程は、前記第1ベクトルデータと前記第2ベクトルデータとのどちらか一方が基準ベクトルである前記合成ベクトルを演算することが好ましい。
【0014】
本適用例によれば、第1ベクトルデータと第2ベクトルデータとのどちらか一方を基準ベクトルとしている。合成ベクトルに応じた干渉領域を演算するときロボットを基準とする干渉領域とワーク搬送装置を基準とする干渉領域との二通りの干渉領域を算出できる。そして、ロボットを基準とする干渉領域の広がりとワーク搬送装置を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【0015】
[適用例3]上記適用例に記載の干渉チェック方法において、前記合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第1ベクトルデータと前記第2ベクトルデータとのどちらを基準ベクトルとするかを決定することが望ましい。
【0016】
本適用例によれば、第1ベクトルデータと第2ベクトルデータとのどちらか一方を基準ベクトルとして定めている。このときに、ロボット及びワーク搬送装置の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ干渉領域を演算するときに、ロボットを基準に干渉領域を演算する場合と、ワーク搬送装置を基準に干渉領域を演算する場合とで、より演算量が少なくなる方を選択することが可能である。従って、干渉領域の計算時間を短くすることができる。
【0017】
[適用例4]上記適用例に記載の干渉チェック方法において、前記ロボットの回転方向と回転速さとを定めたベクトルデータである第3ベクトルデータを取得する工程と、前記ワーク搬送装置の回転方向と回転速さとを定めるベクトルデータである第4ベクトルデータを取得する工程と、前記第3ベクトルデータと前記第4ベクトルデータとを合成した回転合成ベクトルを演算する工程と、前記合成ベクトル及び前記回転合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、を含むことを特徴とする。
【0018】
本適用例によれば、ロボットの移動方向と速さ及びワーク搬送装置の移動方向と速さのみならず、ロボットの回転方向と回転速さ及びワーク搬送装置の回転方向と回転速さが含まれる回転合成ベクトル方向にのみ回転合成ベクトルの大きさと対応する広さを持つ干渉領域を算出できる。これにより、計算時間を抑制しながら適切な干渉計算を実行することができる。さらに、ワーク搬送装置の回転方向と回転速さ及びロボットの回転方向と回転速さに関して離散的に計算するときにもロボット動作で干渉することを防止できる。
【0019】
[適用例5]上記適用例に記載の干渉チェック方法において、前記回転合成ベクトルを演算する工程は、前記第3ベクトルデータと前記第4ベクトルデータとのどちらか一方が回転基準ベクトルである前記回転合成ベクトルを演算することを特徴とする。
【0020】
本適用例によれば、第3ベクトルデータと第4ベクトルデータとのどちらか一方を基準ベクトルとしている。合成ベクトルに応じた干渉領域を演算するとき、ロボットを基準とする干渉領域とワーク搬送装置を基準とする干渉領域との二通りを算出できる。そして、ロボットを基準とする干渉領域の広がりとワーク搬送装置を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【0021】
[適用例6]上記適用例に記載の干渉チェック方法において、前記回転合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第3ベクトルデータと前記第4ベクトルデータとのどちらを回転基準ベクトルとするかを決定することを特徴とする。
【0022】
本適用例によれば、第3ベクトルデータと第4ベクトルデータとのどちらか一方を基準ベクトルとして定めている。このときに、ロボット及びワーク搬送装置の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動する領域を演算するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ干渉領域を演算するときに、ロボットを基準に干渉領域を演算する場合と、ワーク搬送装置を基準に干渉領域を演算する場合とで、より演算量が少なくなる場合を選択することが可能である。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【0023】
[適用例7]本適用例にかかる干渉チェック方法は、少なくとも1方向への動作が可能な第1ロボットと、少なくとも1方向に動作が可能な第2ロボットとの干渉をチェックするための干渉チェック方法であって、前記第1ロボットの移動方向と速さとを定めるベクトルデータである第1ベクトルデータを取得する工程と、前記第2ロボットの移動方向と速さとを定めたベクトルデータである第2ベクトルデータを取得する工程と、前記第1ベクトルデータと前記第2ベクトルデータとを合成した合成ベクトルを演算する工程と、前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、前記干渉領域から、前記第1ロボットと前記第2ロボットとの干渉の有無を確認する工程と、を含むことを特徴とする。
【0024】
本適用例によれば、第1ロボットの移動方向と速さとを定めるベクトルデータである第1ベクトルデータを取得している。さらに、第2ロボットの移動方向と速さとを定めたベクトルデータである第2ベクトルデータを取得している。そして、第1ベクトルデータと第2ベクトルデータとから合成ベクトルを演算している。従って、定められたデータテーブルを参照して干渉領域を演算することで、第1ロボット及び第2ロボットの移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさと対応する広さを持つ干渉領域を算出できる。これにより、相対移動速度と対応する合成ベクトルの大きさの分だけ干渉領域に広がりを持たせて算出することができる。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【0025】
さらに、第1ロボットが移動する場所と第2ロボットが移動する場所とから干渉領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて干渉領域が算出する方が、干渉計算の計算を簡単に行うことができる。
【0026】
[適用例8]本適用例にかかるロボット制御装置は、上記適用例に記載の干渉チェック方法の内容と順番を規定したプログラムを記憶したことを特徴とする。
【0027】
本適用例によれば、ロボット及びワーク搬送装置の移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ干渉領域を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボット動作に先立って干渉領域を確認しこの干渉領域に応じたロボットの制御を行うことができる。これによって、ワーク搬送装置とロボットとの干渉を回避するロボット制御が可能になる。または、ロボット同士の干渉を回避するロボット制御が可能になる。従って、ワーク搬送の状態に左右されることの無い連続可動が可能なロボット制御を実現できる。または、複数のロボットの状態に左右されることの無い連続可動が可能なロボット制御を実現できる。
【図面の簡単な説明】
【0028】
【図1】実施形態1にかかるロボットの構成を示す模式正面図。
【図2】ロボット制御部の構成を示すブロック図。
【図3】ロボット制御部が実現する機能を示す機能ブロック図。
【図4】ロボットの形状データ構造を示す図。
【図5】部品給材の形状データ構造を示す図。
【図6】干渉チェックペアリング情報のデータ構造を示す図。
【図7】ロボットの並進速度のデータ構造を示す図。
【図8】部品給材装置の並進速度のデータ構造を示す図。
【図9】ロボットの位置姿勢のデータ構造を示す図。
【図10】部品給材装置の位置姿勢のデータ構造を示す図。
【図11】相対速度のデータ構造を示す図。
【図12】拡大済み干渉ボリュームのデータ構造を示す図。
【図13】干渉有無のデータ構造を示す図。
【図14】干渉チェック対象ペアリングブロックのフローチャート。
【図15】相対速度計算ブロックのフローチャート。
【図16】相対速度の演算を説明するための模式図。
【図17】干渉ボリューム拡張ブロックのフローチャート。
【図18】拡大済み干渉ボリュームを説明するための模式図。
【図19】干渉チェックブロックのフローチャート。
【図20】ロボットの干渉チェック手順を示すフローチャート。
【図21】実施形態2にかかるロボット制御部が実現する機能を示す機能ブロック図。
【図22】ロボットの回転速度のデータ構造を示す図。
【図23】部品給材装置の回転速度のデータ構造を示す図。
【図24】相対速度計算ブロックのフローチャート。
【図25】相対回転速度データを説明するための模式図。
【図26】ロボットの干渉チェック手順を示すフローチャート。
【発明を実施するための形態】
【0029】
以下、本発明を具体化した実施形態について、図面を参照して説明する。尚、以下の各図においては、各構成要素を認識可能な程度の大きさにするため、各構成要素の尺度を実際とは異ならせしめている。
【0030】
(実施形態1)
本実施形態では、ロボットアームとロボットアームが行う特徴的な干渉チェック方法とその例について、図1〜図20に従って説明する。
【0031】
(ロボット)
図1は、ロボットの構成を示す模式正面図である。まず、ロボットと部品給材装置の構成について説明する。図1に示すように、ロボットとしてのロボットアーム100は台座部110を備えている。台座部110上に第1リンク120、第2リンク121、第3リンク122、第4リンク123、第5リンク124、第6リンク125がこの順に接続して設置されている。そして、各リンクの間には第1ジョイント130、第2ジョイント131、第3ジョイント132、第4ジョイント133、第5ジョイント134、第6ジョイント135が配置されている。そして、ロボットアーム100の先端にはロボットハンド140が設置されている。これにより、ロボットアーム100は少なくとも1方向への動作可能なロボットとして動作する。そして、ロボットアーム100は第1ジョイント130から第6ジョイント135の6軸のジョイントを有する6軸ロボットアームとなっている。
【0032】
台座部110は、ロボットアーム100を設置するための架台である。第1リンク120から第6リンク125の隣り合うリンクは、それぞれ第1ジョイント130から第6ジョイント135を介して接続されている。第1リンク120から第6リンク125の各リンクにはモーターが内蔵されている。そのモーターを所定の角度に回転させることで、第1ジョイント130から第6ジョイント135が回転する。これにより、第1リンク120から第6リンク125は姿勢が変動する。これを適宜実行して、ロボットアーム100は所望の姿勢を実現する。そして、ロボットハンド140はチャック部141,142を開閉させることで、部品の把持や解放を実現する。
【0033】
ロボットアーム100は、第1リンク120から第6リンク125の各リンクが並行して動作しロボットハンド140を直線に沿って移動させる並進動作が可能となっている。ロボットアーム100が設置されている作業空間で直交座標系の基底方向が設定されている場合には、その各方向を例えばX軸方向、Y軸方向、Z軸方向とした上で、ロボットアーム100の並進動作の方向をX軸方向、Y軸方向、Z軸方向の3成分に分解したうえでそれぞれの方向の並進動作の和としても良い。
【0034】
ワーク搬送装置としての部品給材装置200は、ワークとしての供給部品210,211,212、台座部220、コンベアベルト230、駆動部240,241等から構成されている。台座部220は、部品給材装置200を設置するための架台である。台座部220上にはコンベアベルト230が設置され、コンベアベルト230の両端には駆動部240と駆動部241とが配置されている。駆動部240と241とはモーターや減速装置等の回転機構を備えている。駆動部240と241とが動作することで、コンベアベルト230が1方向に移動する。従って、部品給材装置200は少なくとも1方向に動作するワーク搬送装置となっている。
【0035】
供給部品210,211,212は部品給材装置200によって所望の位置に搬送される。その後、供給部品210,211,212はロボットハンド140によって把持される。
【0036】
コンベアベルト230の動作は並進動作である。従って、供給部品210,211,212はコンベアベルト230の動きに伴い直線に沿って移動する。部品給材装置200が設置されている作業空間で直交座標系の基底方向が設定されている場合には、その各方向を例えばX軸方向、Y軸方向、Z軸方向とした上で、コンベアベルト230の並進動作の方向をX軸方向、Y軸方向、Z軸方向の3成分のベクトル和としても良い。
【0037】
ロボットアーム100の近くにはロボットアーム100を制御するロボット制御部300が設置されている。そして、部品給材装置200の図中上側にはコンベアベルト230とロボットハンド140の移動範囲とを撮影するカメラ装置350が設置されている。
【0038】
図2は、ロボット制御部の構成を示すブロック図である。図2に示すように、ロボットアーム100を制御するためのロボット制御部300は、CPU310(Central Processing Unit)、主記憶装置320、補助記憶装置330、ロボット制御装置340、データバス360等から構成されている。データバス360はロボット制御部300が内臓する各装置、カメラ装置350、ロボットアーム100を接続する。
【0039】
補助記憶装置330は、ロボットアーム100の動作命令群を保持する装置である。そして、補助記憶装置330は、ロボットアーム100の動作命令群を主記憶装置320に出力する。カメラ装置350は、作業領域の様子を撮影した画像情報を生成し主記憶装置320に出力する。主記憶装置320は、補助記憶装置330に保持されているロボットアーム100の動作命令を入力し、CPU310が行う処理の一時記憶場所を有する。他にも、主記憶装置320は、カメラ装置350が撮影する画像情報を入力する機能を有する。ロボット制御装置340は、CPU310が生成するロボットアーム100の動作指示情報を入力する。そして、動作指示情報に応じて第1ジョイント130から第6ジョイント135を稼動させて、ロボットアーム100を駆動する。
【0040】
CPU310は、主記憶装置320からロボットアーム100の動作命令を取得する。そして、CPU310はカメラ装置350が撮影した画像情報を画像処理し、ロボットアーム100や部品給材装置200を検出する。次に、CPU310は現在のロボットアーム100の位置情報や姿勢情報、部品給材装置200の位置情報を生成する。そして、CPU310は各位置情報や姿勢情報は主記憶装置320に転送する。さらにCPU310は、ロボットアーム100の現在の位置情報や姿勢情報、部品給材装置200の位置情報等から、ロボットアーム100と部品給材装置200との干渉の有無を計算する。そして、干渉の有無に応じたロボットアーム100の動作指示情報を生成し、ロボット制御装置340に転送する。
【0041】
図3は、ロボット制御部が実現する機能を示す機能ブロック図である。次に、ロボット制御部300が備える機能ブロックについて説明する。図3に示すように、ロボットの定められたデータテーブルとしてのロボットアーム形状データ400が補助記憶装置330に保持されている。ロボットアーム形状データ400はロボットアーム100の形状を表すデータであり、ロボットアーム形状データ400にはロボットアーム100を構成する台座部、ロボットリンク、ロボットジョイント、ロボットハンド等の形状寸法が含まれている。
【0042】
ロボットアーム形状データ400はロボットアーム100の構成要素の形状寸法等を表すデータである。ロボットアーム100の構成要素の形状寸法を表すデータとしては、例えば、ロボットアームの設計データから生成された三角形ポリゴンデータを用いることができる。
【0043】
データテーブルとしての部品給材装置形状データ401は部品給材装置200の形状を表すデータである。詳しくは、部品給材装置形状データ401は部品給材装置200を構成する台座部220、コンベアベルト230、駆動部240、駆動部241等の形状寸法が含まれている。部品給材装置形状データ401は補助記憶装置330に保持されている。
【0044】
部品給材装置形状データ401は、部品給材装置200の構成要素の形状寸法等を表すデータである。部品給材装置200の構成要素の形状寸法を表すデータとしては、たとえば、部品給材装置の設計データから生成された三角形ポリゴンデータを用いることができる。
【0045】
干渉チェック対象ペアリングデータ402は、ロボットアーム形状データ400に含まれる構成要素と部品給材装置形状データ401に含まれる構成要素とを重複しないようペアリングしたデータである。干渉チェック対象ペアリングデータ402はロボットアーム形状データ400と部品給材装置形状データ401から生成される。そして、干渉チェック対象ペアリングデータ402は定められたデータテーブルとして主記憶装置320または補助記憶装置330に保持される。
【0046】
第1ベクトルデータとしてのロボットアーム並進速度データ403はロボットの移動方向と速さとを定めたベクトルデータである。ロボットアーム並進速度データ403はロボット制御装置340による動作命令から演算される。あるいは、ロボットアーム並進速度データ403は、カメラ装置350が撮影する画像から検出されたロボットアーム100の構成要素の並進速度データである。ロボットアーム並進速度データ403はデータテーブルとして主記憶装置320に保持される。
【0047】
第2ベクトルデータとしての部品給材装置の並進速度データ404はワーク搬送装置の移動方向と速さとを定めるベクトルデータである。部品給材装置の並進速度データ404は、カメラ装置350が検出する部品給材装置200の構成要素の並進速度データである。部品給材装置の並進速度データ404は定められたデータテーブルとして主記憶装置320に保持される。
【0048】
ロボットアームの位置姿勢データ405は、ロボットアーム100の構成要素の位置と姿勢の情報である。ロボットアームの位置姿勢データ405は、ロボット制御装置340による動作命令から演算される。あるいは、カメラ装置350が撮影する画像から検出されたロボットアーム100の構成要素の位置と姿勢の情報である。ロボットアームの位置姿勢データ405はデータテーブルとして主記憶装置320に保持される。
【0049】
部品給材装置の位置姿勢データ406は、カメラ装置350が検出する部品給材装置200の構成要素の位置と姿勢の情報である。部品給材装置の位置姿勢データ406はデータテーブルとして主記憶装置320に保持される。
【0050】
相対速度データ407は第1ベクトルデータと第2ベクトルデータとを合成した合成ベクトルのデータである。相対速度データ407は、干渉チェック対象ペアリングデータ402でペアリングされているロボットアーム100の構成要素の並進速度と部品給材装置200の構成要素の並進速度の差を表すベクトル情報である。相対速度データ407は主記憶装置320に保持される。
【0051】
干渉領域としての拡大済み干渉ボリュームデータ408は、相対速度データ407及びデータテーブルを参照して演算されるデータである。拡大済み干渉ボリュームデータ408は、ロボットアーム100あるいは部品給材装置200が占める空間情報に対して合成ベクトルを使用する演算によって膨張させたデータである。拡大済み干渉ボリュームデータ408は主記憶装置320に保持される。
【0052】
干渉有無データ409は、ロボットアーム100と部品給材装置200との干渉の有無を表すデータである。干渉有無データ409は、拡大済み干渉ボリュームデータ408とロボットアーム100あるいは部品給材装置200の形状データと、ロボットアームの位置姿勢データ405と部品給材装置の位置姿勢データ406とから演算される。干渉有無データ409はロボットアーム100と部品給材装置200との干渉の有無を表し、主記憶装置320に保持される。
【0053】
干渉チェック対象ペアリングブロック420は、ロボットアームの形状データ400からロボットアーム100の構成要素と、部品給材装置の形状データ401から部品給材装置200の構成要素とを用いる。そして、干渉チェック対象ペアリングブロック420はロボットアーム100の構成要素と部品給材装置200の構成要素との重複を含まない組み合わせを生成する。そして、干渉チェック対象ペアリングブロック420は生成したデータを干渉チェック対象ペアリングデータ402として保持する。
【0054】
ロボットアームの並進速度取得ブロック430は、カメラ装置350が撮影した画像データを用いてロボットアーム100の構成要素の移動方向と速さを算出する。ロボットアームの並進速度取得ブロック430は、ロボットアーム100の構成要素の移動方向と速さのデータをロボットアーム並進速度データ403として保持する。
【0055】
部品給材装置の並進速度取得ブロック431は、カメラ装置350が撮影した画像データを用いて部品給材装置200の構成要素の移動方向と速さを算出する。部品給材装置の並進速度取得ブロック431は部品給材装置200の構成要素の移動方向と速さを部品給材装置の並進速度データ404として保持する。
【0056】
相対速度計算ブロック440は、干渉チェック対象ペアリングデータ402、ロボットアーム並進速度データ403、部品給材装置の並進速度データ404を用いて相対速度データ407を算出する。このとき、相対速度計算ブロック440は、干渉チェック対象ペアリングデータ402でペアリングされているロボットアーム100の構成要素の並進速度と部品給材装置200の構成要素の並進速度との差を算出する。算出結果から相対速度データ407を生成する。
【0057】
干渉ボリューム拡張ブロック450は、ロボットアーム形状データ400と部品給材装置形状データ401と相対速度データ407とを用いる。そして、干渉ボリューム拡張ブロック450は、ロボットアームの構成要素が占める空間情報に関して合成ベクトルを使用する演算を行う。これにより、ロボットアーム100の構成要素が占める空間情報を膨張させて、拡大済み干渉ボリュームデータ408を生成する。または、干渉ボリューム拡張ブロック450は、部品給材装置200の構成要素が占める空間情報に関して合成ベクトルを使用する演算を行う。これにより、部品給材装置200の構成要素が占める空間情報を膨張させて、拡大済み干渉ボリュームデータ408を生成する。つまり、干渉ボリューム拡張ブロック450は合成ベクトルの大きさと対応する広さの拡大済み干渉ボリュームデータ408を演算する。
【0058】
ロボットアームの位置姿勢取得ブロック460は、カメラ装置350が撮影した画像データからロボットアーム100の構成要素の位置と姿勢を算出する。そして、ロボットアームの位置姿勢取得ブロック460はロボットアームの位置姿勢データ405を主記憶装置320に保持する。
【0059】
部品給材装置の位置姿勢取得ブロック461は、カメラ装置350が撮影した画像データから部品給材装置200の構成要素の位置と姿勢を算出する。そして、部品給材装置の位置姿勢取得ブロック461は部品給材装置の位置姿勢データ406として主記憶装置320に保持する。
【0060】
干渉チェックブロック470は、ロボットアーム形状データ400、部品給材装置の形状データ401、ロボットアームの位置姿勢データ405、部品給材装置の位置姿勢データ406、干渉領域としての拡大済み干渉ボリュームデータ408を用いる。そして、干渉チェックブロック470は、ロボットアーム100と部品給材装置200との干渉の有無を算出する。そして、干渉チェックブロック470は算出結果である干渉有無データ409を生成する。
【0061】
図4は、ロボットの形状データ構造を示す図である。図4に示すように、ロボットアーム形状データ400はロボットアーム100の構成要素のポリゴン頂点の座標をデータとして保持する。尚、ポリゴン頂点は、各構成要素の表面を三角形にて覆って表面を近似したときの三角形の頂点を示している。ロボットアーム100の基準位置を原点としてポリゴン頂点のX座標、Y座要、Z座標にて記載される。従って、ロボットアーム形状データ400は各構成要素の表面形状を表現するデータとなっている。
【0062】
図5は、部品給材の形状データ構造を示す図である。図5に示すように、部品給材装置形状データ401は部品給材装置200の構成要素のポリゴン頂点の座標をデータとして保持する。部品給材装置200の基準位置を原点としてポリゴン頂点のX座標、Y座要、Z座標にて記載される。従って、部品給材装置形状データ401は各構成要素の表面形状を表現するデータとなっている。
【0063】
図6は、干渉チェックペアリング情報のデータ構造を示す図である。図6に示すように、干渉チェック対象ペアリングデータ402にはロボットアーム100の構成要素と部品給材装置200の構成要素のペアリングが記載されている。尚、ペアリングは一対の組合せを示している。そして、各ペアリングは同じ組合せが重複しないように整理されている。そして、各ペアリングにはインデックスが付与されている。これにより、インデックス順にペアリングを選択することにより、ロボットアーム100の構成要素と部品給材装置200の構成要素の組合せを重複せずに選択することが可能になっている。
【0064】
図7は、ロボットの並進速度のデータ構造を示す図である。図7に示すように、ロボットアーム並進速度データ403にはロボットアーム100の各構成要素が進行する速度ベクトルをX方向、Y方向、Z方向に分解したデータが記載されている。従って、ロボットアーム並進速度データ403は各構成要素の速度ベクトルを表現するデータとなっている。
【0065】
図8は、部品給材装置の並進速度のデータ構造を示す図である。図8に示すように、部品給材装置の並進速度データ404には部品給材装置200の各構成要素が進行する速度ベクトルをX方向、Y方向、Z方向に分解したデータが記載されている。従って、部品給材装置の並進速度データ404は各構成要素の速度ベクトルを表現するデータとなっている。
【0066】
図9は、ロボットの位置姿勢のデータ構造を示す図である。図9に示すように、ロボットアームの位置姿勢データ405にはロボットアーム100の各構成要素の位置を、例えば、ロール角、ピッチ角、ヨー角に分解したデータが記載されている。さらに、ロボットアームの位置姿勢データ405にはロボットアーム100の各構成要素の姿勢を表示する方向をX方向、Y方向、Z方向に分解したデータが記載されている。従って、ロボットアームの位置姿勢データ405は各構成要素の位置と姿勢とを表現するデータとなっている。
【0067】
図10は、部品給材装置の位置姿勢のデータ構造を示す図である。図10に示すように、部品給材装置の位置姿勢データ406には部品給材装置200の各構成要素の位置をX方向、Y方向、Z方向に分解したデータが記載されている。さらに、部品給材装置の位置姿勢データ406には部品給材装置200の各構成要素の姿勢を、例えば、ロール角、ピッチ角、ヨー角に分解したデータが記載されている。従って、部品給材装置の位置姿勢データ406は各構成要素の位置と姿勢とを表現するデータとなっている。
【0068】
図11は、相対速度のデータ構造を示す図である。図11に示すように、相対速度データ407にはロボットアームの構成要素と部品給材装置の構成要素とのペアリングが記載されている。さらに、各ペアリングにおける相対速度の算出結果が記載されている。従って、相対速度データ407は各ペアリングした構成要素の接近速度を表現するデータとなっている。
【0069】
図12は、拡大済み干渉ボリュームのデータ構造を示す図である。図12に示すように、拡大済み干渉ボリュームデータ408には干渉チェック対象ペアリングデータ402と同じデータを用いている。さらに、各対となる構成要素のうちどちらを基準とするかを選択した結果が記載されている。そして、相対速度に対応させて拡張したポリゴン頂点の座標が記載されている。従って、拡大済み干渉ボリュームデータ408は相対速度に対応して設定した干渉領域を示すデータとなっている。
【0070】
図13は、干渉有無のデータ構造を示す図である。図13に示すように、干渉有無データ409には干渉チェック対象ペアリングデータ402と同じデータを用いている。さらに、各対の構成要素における干渉の有無を演算した結果が記載されている。従って、干渉有無データ409は各対の構成要素における干渉の有無を示すデータとなっている。
【0071】
(干渉の検出方法)
次に、ロボット制御部300がロボットの干渉チェック方法を実現するときの各機能ブロックの処理の流れについて説明する。
【0072】
図14は、干渉チェック対象ペアリングブロックフローチャートである。まず、干渉チェック対象ペアリングデータ402を形成する手順を説明する。図14に示すように、まず、ステップS501においてロボットアームの形状データ400を取得する。次に、ステップS502において部品給材装置形状データ401を取得する。その後に、ステップS503においてロボットアームの構成要素と、部品給材装置形状データ401の構成要素とを重複しないペアリングをおこない、干渉チェック対象ペアリングデータ402として保持する。
【0073】
図15は、相対速度計算ブロックのフローチャートである。次に、相対速度計算ブロック440が相対速度データ407を形成する手順を説明する。図15に示すように、まず、ステップS511においてロボットアーム形状データ400を取得する。次に、ステップS512において部品給材装置形状データ401を取得する。そして、ステップS513において相対速度を演算するペアリングを設定するために、干渉チェック対象ペアリングデータ402を取得する。次に、ステップS514においてロボットの移動方向と速さとを定めたベクトルデータであるロボットアーム並進速度データ403を取得する。ステップS514は第1ベクトルデータを取得する工程に相当する。次に、ステップS515においてワーク搬送装置の移動方向と速さとを定めるベクトルデータである部品給材装置の並進速度データ404を取得する。ステップS515は第2ベクトルデータを取得する工程に相当する。その後に、ステップS516において干渉チェック対象ペアリングデータ402に基づいて、ロボットアーム100の構成要素と部品給材装置200の構成要素との相対速度を算出する。そして、算出した結果を相対速度データ407として保持する。ステップS516は合成ベクトルを演算する工程に相当する。
【0074】
図16は、相対速度の演算を説明するための模式図である。図16に示すように、干渉チェック対象ペアリングデータ402から、チャック部141とコンベアベルト230を選択した場合の例にて説明をする。チャック部141が移動する速度ベクトルをチャック並進速度ベクトル600とする。そして、コンベアベルト230の上部が移動する速度ベクトルをベルト並進速度ベクトル610とする。次に、チャック並進速度ベクトル600とベルト並進速度ベクトル610とを用いて第1相対速度ベクトル620または第2相対速度ベクトル621を相対速度計算ブロック440が演算する。そして、演算した結果は相対速度データ407となる。
【0075】
第1相対速度ベクトル620は、チャック部141を基準にとったコンベアベルト230の相対速度であり、チャック部141から観察したコンベアベルト230の並進運動である。第2相対速度ベクトル621は、コンベアベルト230を基準にとったチャック部141の相対速度になるため、コンベアベルト230から観察したチャック部141の並進運動である。
【0076】
相対速度ベクトルを演算するときに、その基準をチャック部141とするか、コンベアベルト230とするかは、チャック部141の形状寸法データとコンベアベルト230の形状データとのポリゴン情報の容量を比較して選択する。このとき、ポリゴン情報の容量が大きい方を相対速度ベクトルの基準とする。これにより、干渉ボリューム拡張ブロック450が基準でない方の形状寸法データを拡大処理する計算量を削減することができる。つまり、ポリゴン情報の容量が小さい方の構成要素を処理することで、処理量を削減する。
【0077】
図17は、干渉ボリューム拡張ブロックのフローチャートである。次に、干渉ボリューム拡張ブロック450の処理の流れを説明する。図17に示すように、まず、ステップS521において、ロボットアーム形状データ400を取得する。次に、ステップS522において部品給材装置の形状データ401を取得する。続いて、ステップS523において、ロボットアーム並進速度データ403と部品給材装置の並進速度データ404とを合成した相対速度データ407を取得する。その後に、ステップS524において、拡大済み干渉ボリュームデータ408を生成し、保持する。ステップS524は干渉領域を演算する工程に相当する。以上で、干渉ボリューム拡張ブロック450が実施する工程を終了する。
【0078】
ステップS524を詳細に説明する。ロボットアーム100の構成要素と部品給材装置200の構成要素のうち、相対速度データ407の基準でない方の形状データを相対速度データ407の方向と大きさに基づいて干渉ボリューム拡張ブロック450は拡大処理の演算を行なう。拡大処理は(数式1)を適用する。
【0079】
【数1】

【0080】
(数式1)において、右辺のx、y、zは形状データのポリゴン頂点のx方向位置、y方向位置、z方向位置、u、v、wは相対速度データ407のx方向成分、y方向成分、z方向成分、αは拡大率調整のパラメーター(αはゼロ以上、1.0以下とする)である。左辺のx、y、zは拡大処理済み形状データのポリゴン頂点のx方向位置、y方向位置、z方向位置である。(数式1)により、相対速度データの速度成分が大きな方向は、より大きな拡大率になる。
【0081】
拡大処理の演算は、数式を用いる方法に限らない。実験から干渉する確立を求めて拡大処理する係数を記載したデータテーブルを作成する。尚、データテーブルは数式を元にして作成してもよく、数式を元に算出した値を実験データを考慮して修正してもよい。そして、拡大処理の演算を行なうときにはデータテーブルの係数を用いて行う。
【0082】
図18は、拡大済み干渉ボリュームを説明するための模式図である。相対速度データ407から、チャック部141とコンベアベルト230が対象となる例を示す。図18(a)では、チャック部141が基準となっている。このとき、干渉ボリューム拡張ブロック450はコンベアベルト230の第1相対速度ベクトル620を用いる。第1相対速度ベクトル620はx方向およびz方向に成分があるくベクトルとなっている。そして、干渉ボリューム拡張ブロック450はz方向と比較してx方向に大きく拡大したコンベアベルト230の干渉領域としての拡大済み干渉ボリュームデータ700を算出する。
【0083】
図18(b)では、コンベアベルト230が基準となっている。このとき、干渉ボリューム拡張ブロック450はチャック部141の第2相対速度ベクトル621を用いる。第2相対速度ベクトル621はx方向およびz方向に成分があるベクトルとなっている。そして、干渉ボリューム拡張ブロック450はz方向と比較してx方向に大きく拡大したチャック部141の干渉領域としての拡大済み干渉ボリュームデータ701を算出する。つまり、干渉ボリューム拡張ブロック450は合成ベクトルの大きさと対応する広さの拡大済み干渉ボリュームデータ700及び拡大済み干渉ボリュームデータ701を演算する。
【0084】
図19は、干渉チェックブロックのフローチャートである。次に、干渉チェックブロック470の処理の流れを説明する。図19に示すように、まず、ステップS531において、干渉チェックブロック470は干渉領域としての拡大済み干渉ボリュームデータ408を取得する。次に、ステップS532において、干渉チェックブロック470は拡大済み干渉ボリュームデータ408においてロボットアーム100と部品給材装置200とのうちどちらが基準であるかを参照する。基準がロボットアーム100の場合は、ステップS533において干渉チェックブロック470はロボットアーム形状データ400を取得する。基準が部品給材装置200場合は、ステップS534において部品給材装置形状データ401を取得する。次に、ステップS535においてロボットアームの位置姿勢データ405を取得する。続いて、ステップS536において部品給材装置の位置姿勢データ406を取得する。次に、ステップS537において干渉の有無を計算する。ステップS537は干渉の有無を確認する工程に相当する。以上で、干渉ボリューム拡張ブロック450が実施する工程を終了する。
【0085】
ステップS537を詳細に説明する。干渉ボリューム拡張ブロック450は、拡大済み干渉ボリュームデータ408とロボットアームの形状データ400あるいは部品給材装置の形状データ401とをロボットアームの位置姿勢データ405及び部品給材装置の位置姿勢データ406に従って配置する。そして、干渉ボリューム拡張ブロック450はロボットアーム100と部品給材装置200との干渉の有無を確認するための交差判定計算を行う。その結果得られる干渉の有無を干渉ボリューム拡張ブロック450は干渉有無データ409として保持する。
【0086】
交差判定計算において干渉ボリューム拡張ブロック450は、細分化された作業空間要素が木構造で連なるデータ構造により表現される作業空間を用意する。そして、拡大済み干渉ボリュームデータ408をロボットアームの位置姿勢データ405及び部品給材装置の位置姿勢データ406に従って配置する。拡大済み干渉ボリュームデータ408とロボットアーム形状データ400あるいは部品給材装置形状データ401とに関して、隣接する細分化した作業空間要素にない形状データ同士の交差判定計算を省略する処理を行う。そして、省略されない作業空間要素に対して干渉の有無を演算する。
【0087】
図20は、ロボット制御部300がロボットの干渉チェックを実現するときの処理の流れであり、ロボットの干渉チェック手順を示すフローチャートである。図20に示すように、まず、ステップS801において干渉チェック対象ペアリングブロック420が干渉チェック対象ペアリングデータ402を生成する。次に、ステップS802においてロボット動作命令やロボット動作に基づいて相対速度計算ブロック440が相対速度データ407を生成する。続いて、ステップS803において干渉ボリューム拡張ブロック450が拡大済み干渉ボリュームデータ408を生成する。次に、ステップS804において干渉チェックブロック470が干渉有無データ409を生成する。続いて、ステップS805においてCPU310が干渉有無データ409を参照する。干渉が無い場合はステップS806においてロボットアーム100は引き続いてロボット動作を実行する。干渉がある場合はステップS807においてロボットアーム100を停止させてから、干渉有りを意味する警告表示を行う。以上で、ロボットの干渉をチェックする工程を終了する。
【0088】
上述したように、本実施形態によれば、以下の効果を有する。
(1)本実施形態によれば、ロボットアーム並進速度データ403と部品給材装置の並進速度データ404とから相対速度データ407が演算される。そして、相対速度データ407に従って、定められたデータテーブルを参照して拡大済み干渉ボリュームデータ408を演算している。部品給材装置200及びロボットアーム100の移動方向と速さの双方が含まれる相対速度データ407が示す合成ベクトル方向は相対的に移動する方向を示している。この方向は、干渉の可能性がある方向である。そして、合成ベクトルの大きさは速さと相関を有する為、合成ベクトルは相対移動速度を考慮した拡大済み干渉ボリュームデータ408を算出できる。これにより、拡大済み干渉ボリュームデータ408は相対移動速度と対応する合成ベクトルの大きさの分だけに広がりを持たせて算出されている。従って、干渉計算が離散的に計算されるときにおいても干渉を防止可能な演算を行うことができる。
【0089】
さらに、ロボットアーム100が移動する場所と部品給材装置200が移動する場所とから供給部品210が干渉する領域を算出する方法がある。この方法に比べて、合成ベクトルを用いて供給部品210が干渉する領域を算出する方が、干渉計算の計算を簡単に行うことができる。
【0090】
(2)本実施形態によれば、ロボットアーム並進速度データ403と部品給材装置の並進速度データ404とのどちらか一方を基準ベクトルデータとしている。合成ベクトルに応じた干渉領域を演算するときロボットアーム100を基準とする干渉領域と部品給材装置200を基準とする干渉領域との二通りの干渉領域を算出できる。そして、ロボットアーム100を基準とする干渉領域の広がりと部品給材装置200を基準とする干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【0091】
(3)本実施形態によれば、ロボットアーム並進速度データ403と部品給材装置の並進速度データ404とのどちらか一方を基準ベクトルデータとして定めている。このときに、ロボットアーム100及び部品給材装置200の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動するときに比べて演算時間がかかる。合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ408を演算するときに、ロボットアーム100を基準に干渉領域を演算する場合と、部品給材装置200を基準に干渉領域を演算する場合とで、より演算量が少なくなる方を選択することが可能である。従って、拡大済み干渉ボリュームデータ408の計算時間を短くすることができる。
【0092】
(4)本実施形態によれば、ロボットアーム100及び部品給材装置200の移動方向と速さの双方が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ408を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボット動作に先立って干渉有無データ409を確認し、この干渉有無データ409に応じたロボットの制御を行うことができる。これによって、部品給材装置200とロボットアーム100との干渉を回避するロボット制御が可能になる。
【0093】
(実施形態2)
次に、本発明のロボットアームとロボットアームが行う干渉チェック方法について図21〜図26を用いて説明する。本実施形態が実施形態1と異なるところは、ロボットアーム及び部品給材装置が相対移動する回転成分を考慮して干渉チェックを行う点にある。尚、本実施形態において、上記の実施形態1と同様の部材または部位については同じ符号を付し、詳細な説明は省略する。
【0094】
図21は、ロボット制御部が実現する機能を示す機能ブロック図である。すなわち、図21に示すように、相対速度計算ブロック440は、ロボットアーム並進速度データ403及び部品給材装置の並進速度データ404から第1ベクトルデータと第2ベクトルデータとを合成した回転合成ベクトルとしての相対速度データ407を計算する。さらに、ロボット制御部300は、ロボットの回転方向と回転速さとを定める第3ベクトルデータとしてのロボットアームの回転速度データ410を備える。さらに、部品給材装置200の回転方向と回転速さとを定めたベクトルデータである第4ベクトルデータとしての部品給材装置の回転速度データ411を備える。さらに、ロボット制御部300は第3ベクトルデータと第4ベクトルデータとを合成した回転合成ベクトルとしての相対回転速度データ412を演算する相対回転速度計算ブロック490を備えている。
【0095】
ロボット制御部300はロボットアームの回転速度取得ブロック480を備えている。ロボットアームの回転速度取得ブロック480は、カメラ装置350が作業空間を撮影して得られる画像データからロボットアーム100の構成要素の回転方向と速さを検出する。そして、ロボットアームの回転速度取得ブロック480はロボットアームの回転速度データ410を保持する。
【0096】
ロボット制御部300は部品給材装置の回転速度取得ブロック481を備えている。部品給材装置の回転速度取得ブロック481は、カメラ装置350が作業空間を撮影して得られる画像データから部品給材装置200の構成要素の回転方向と速さを検出する。そして、部品給材装置の回転速度取得ブロック481は部品給材装置の回転速度データ411を保持する。
【0097】
ロボット制御部300は相対回転速度計算ブロック490を備えている。相対回転速度計算ブロック490は、干渉チェック対象ペアリングデータ402と、ロボットアームの回転速度データ410と、部品給材装置の回転速度データ411とを参照する。そして、相対回転速度計算ブロック490は干渉チェック対象ペアリングデータ402でペアリングされているロボットアームの構成要素の回転速度と部品給材装置の構成要素の回転速度との差を算出する。これにより、相対回転速度計算ブロック490はロボットアームの回転速度データ410と部品給材装置の回転速度データ411とを合成した相対回転速度データ412を生成する。
【0098】
干渉ボリューム拡張ブロック450は相対速度データ407及び相対回転速度データ412及び定められたデータテーブルを参照して拡大済み干渉ボリュームデータ408を演算する。このとき、干渉ボリューム拡張ブロック450は、さらに、ロボットアーム形状データ400あるいは部品給材装置形状データ401と相対速度データ407と相対回転速度データ412とを参照する。そして、干渉ボリューム拡張ブロック450は、ロボットアーム100の構成要素あるいは部品給材装置200の構成要素が占める空間情報を合成ベクトルを演算によって膨張させた拡大済み干渉ボリュームデータ408を生成する。
【0099】
ロボットアーム100の移動方向と速さ及び部品給材装置200の移動方向と速さに加えて、ロボットアーム100の回転方向と回転速さ及びワーク搬送装置の回転方向と回転速さが含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ干渉領域を干渉ボリューム拡張ブロック450が算出する。これにより、部品給材装置200の回転方向と回転速さ及びロボットアーム100の回転方向と回転速さに関して離散的に計算される干渉計算において、干渉しないとされた動作が実際のロボット動作で干渉するといったケースを発見することができ、より確実な干渉の有無を取得できる。
【0100】
ロボットの回転方向と回転速さとを定めたベクトルデータであるロボットアームの回転速度データ410は、ロボット制御装置340による動作命令から演算される。あるいは、ロボットアームの回転速度データ410はカメラ装置350が検出するロボットアーム100の構成要素の回転速度データであり、定められたデータテーブルとして主記憶装置320に保持されている。
【0101】
部品給材装置の回転速度データ411は、部品給材装置200の回転方向と回転速さとを定めるベクトルデータである。そして、部品給材装置の回転速度データ411はカメラ装置350が検出する部品給材装置200の構成要素の回転速度データである。部品給材装置の回転速度データ411は定められたデータテーブルとして主記憶装置320に保持される。
【0102】
図22は、ロボットの回転速度のデータ構造を示す図である。図22に示すように、ロボットアームの回転速度データ410にはロボットアーム100の各構成要素が回転する回転速度ベクトルをX軸周り、Y軸周り、Z軸周りに分解したデータが記載されている。従って、ロボットアームの回転速度データ410は各構成要素の回転速度ベクトルを表現するデータとなっている。
【0103】
図23は、部品給材装置の回転速度のデータ構造を示す図である。図23に示すように、部品給材装置の回転速度データ411には部品給材装置200の各構成要素が回転する回転速度ベクトルをX軸周り、Y軸周り、Z軸周りに分解したデータが記載されている。従って、部品給材装置の回転速度データ411は各構成要素の回転速度ベクトルを表現するデータとなっている。
【0104】
図24は、相対速度計算ブロックのフローチャートである。図24に示すように、まず、ステップS541において相対回転速度計算ブロック490はロボットアームの形状データ400を取得する。次に、ステップS542において相対回転速度計算ブロック490は部品給材装置形状データ401を取得する。続いて、ステップS543において相対速度を演算するペアリングを設定するために、相対回転速度計算ブロック490は干渉チェック対象ペアリングデータ402を取得する。
【0105】
次に、ステップS544において相対回転速度計算ブロック490はロボットアームの回転速度データ410を取得する。ステップS544は第3ベクトルデータを取得する工程に相当する。続いて、ステップS545において部品給材装置200の回転方向と回転速さとを定めるベクトルデータである部品給材装置の回転速度データ411を取得する。ステップS545は第4ベクトルデータを取得する工程に相当する。
【0106】
その後、ステップS546において干渉チェック対象ペアリングデータ402に基づいて、ロボットアーム100の構成要素と部品給材装置200の構成要素との相対回転速度を計算する。そして、相対回転速度計算ブロック490はロボットアームの回転速度データ410と部品給材装置の回転速度データ411とを合成した相対回転速度データ412として保持する。ステップS546は回転合成ベクトルを演算する工程に相当する。以上で、相対回転速度計算ブロック490が実施する工程を終了する。
【0107】
ステップS546を詳細に説明する。図25は、相対回転速度データを説明するための模式図である。干渉チェック対象ペアリングデータ402から、チャック部141とコンベアベルト230が対象となる場合の例を用いて説明する。相対回転速度計算ブロック490はチャック部141の回転速度ベクトル630とコンベアベルト230の上部の回転速度ベクトル640とから相対回転速度ベクトル650を演算する。相対回転速度ベクトル650のデータが相対回転速度データ412となる。相対回転速度ベクトル650は、コンベアベルト230を基準にとったチャック部141の相対回転速度になる。従って、相対回転速度ベクトル650はコンベアベルト230から観察したチャック部141の回転運動である。もちろん、チャック部141を基準とすることも可能である。
【0108】
相対回転速度ベクトルを演算するとき相対回転速度計算ブロック490は基準をチャック部141とするか、コンベアベルト230とするかを選択する。相対回転速度計算ブロック490はチャック部141の形状寸法データとコンベアベルト230の形状データとのポリゴン情報の大きさを比較する。そして、相対回転速度計算ブロック490はポリゴン情報の大きさが大きい方を相対回転速度ベクトルの基準とする。これにより、干渉ボリューム拡張ブロック450で基準でない方の形状寸法データを拡大処理するときにポリゴン情報の大きさが小さい方を処理することで計算量を削減することができる。
【0109】
図26は、干渉チェックブロック470の処理の流れであり、ロボットの干渉チェック手順を示すフローチャートである。図26に示すように、まず、ステップS551において干渉領域としての拡大済み干渉ボリュームデータ408を取得する。次に、ステップS552において拡大済み干渉ボリュームデータ408を参照して、干渉チェックブロック470はロボットアーム100と部品給材装置200のうち、どちらが基準であるかを判断する。基準がロボットアーム100の場合は、ステップS553においてロボットアーム形状データ400を取得する。基準が部品給材装置200場合は、ステップS554において部品給材装置形状データ401を取得する。そして、ステップS555においてロボットアームの位置姿勢データ405を取得する。次に、ステップS556において部品給材装置の位置姿勢データ406を取得する。
【0110】
この後、ステップS557において相対回転速度データ412を拡大済み干渉ボリュームデータ408に反映させるための回転量θを0に初期設定する。つまり回転無しに初期設定する。ステップS558においてこの回転量θの絶対値と相対回転速度データ412の絶対値との比較を行う。回転量θの絶対値が相対回転速度データ412の絶対値よりも小さい場合には、ステップS559において回転量θ分だけ拡大済み干渉ボリュームデータ408を回転変換する処理を行う。ステップS560において回転量分だけ回転変換処理された拡大済み干渉ボリュームデータ408と、ロボットアーム形状データ400あるいは部品給材装置形状データ401とを、ロボットアームの位置姿勢データ405及び部品給材装置の位置姿勢データ406に従って配置する。ステップS560は干渉領域を演算する工程に相当する。ロボットアーム100と部品給材装置200との干渉の有無を確認する交差判定計算を行う。その結果得られる干渉の有無を干渉有無データ409として保持する。そして、ステップS561において回転量θに対して相対回転速度データ412と同じ向きの回転増分dθを加算する。尚、dθの方向は相対回転速度と一致させる。
【0111】
ステップS559では、ステップS524と同様に数式を作成して、演算しても良い。他の方法を用いても良い。例えば、実験から干渉する確立を求めて拡大処理する係数を記載したデータテーブルを作成する。尚、データテーブルは数式を元にして作成してもよく、数式を元に算出した値を実験データを考慮して修正してもよい。そして、拡大処理の演算を行なうときにはデータテーブルの係数を用いて行う。
【0112】
ロボットアーム100と部品給材装置200が干渉の有無を確認するために交差判定計算を行う。このときに、細分化された作業空間要素が木構造で連なるデータ構造により表現される作業空間を用意する。そして、拡大済み干渉ボリュームデータ408はロボットアームの位置姿勢データ405及び部品給材装置の位置姿勢データ406に従って配置されるとともに、回転量分だけ回転変換処理が行なわれる。拡大済み干渉ボリュームデータ408、ロボットアーム形状データ400あるいは部品給材装置形状データ401に関して、隣接する細分化した作業空間要素にない形状データ同士の交差判定計算を省略する処理を行う。そして、省略されない作業空間要素に対して干渉の有無を演算する。
【0113】
以上において、ロボットアーム100とワーク搬送装置としての部品給材装置200との干渉を確認する実施形態について示したが、ロボットとしてロボットアーム同士の干渉の確認についても上記実施形態と同様の方法を行うことが可能である。同様に、部品給材装置200にある供給部品210,211,212や他のワークとロボットアーム100との干渉の確認を行いたい場合も、上記実施形態と同様の方法が適用可能である。
【0114】
さらに、上述の干渉チェック方法は、実施形態1の内容も含めてプログラムとして提供することもできる。このようなプログラムは、コンピューターに付属するCD−ROM、DVD−ROM、メモリカード等のコンピューター読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、ネットワークを介したダウンロードによって、プログラム製品を提供することもできる。提供されるプログラム製品は、ハードディスク等の補助記憶装置にインストールされて実行される。尚、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【0115】
上述したように、本実施形態によれば以下の効果を有する。
(1)本実施形態によれば、ロボットアーム100の回転方向と回転速さ及び部品給材装置200の回転方向と回転速さが含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ408を算出できる。これにより、計算時間を抑制しながら適切な干渉計算を実行することができる。さらに、部品給材装置200の回転方向と回転速さ及びロボットアーム100の回転方向と回転速さに関して離散的に計算するときにもロボットアーム100と部品給材装置200の干渉を防止できる。
【0116】
(2)本実施形態によれば、ロボットアームの回転速度データ410と部品給材装置の回転速度データ411とのどちらか一方を基準ベクトルとしている。相対回転速度データ412に応じた拡大済み干渉ボリュームデータ408を演算するとき、ロボットアーム100を基準とする拡大済み干渉ボリュームデータ408と部品給材装置200を基準とする拡大済み干渉ボリュームデータ408との二通りを算出できる。そして、ロボットアーム100を基準とする拡大済み干渉ボリュームデータ408が示す干渉領域の広がりと部品給材装置200を基準とする拡大済み干渉ボリュームデータ408が示す干渉領域の広がりのいずれかを選択できる。従って、より計算時間が短い方を基準として干渉計算を実行することにより、計算時間を短くすることができる。
【0117】
(3)本実施形態によれば、ロボットアームの回転速度データ410と部品給材装置の回転速度データ411とのどちらか一方を基準ベクトルのデータとして定めている。このときに、ロボットアーム100及び部品給材装置200の形状に応じてどちらか一方を選択している。例えば複雑な形状である場合、形状に関するデータ数が多くなる。従って、複雑な形状が移動する領域を演算する方が単純な形状が移動する領域を演算するときに比べて演算時間がかかる。干渉ボリューム拡張ブロック450は相対回転速度データ412が示す合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ408を演算する。このときに、干渉ボリューム拡張ブロック450はロボットアーム100を基準に拡大済み干渉ボリュームデータ408を演算する場合と、部品給材装置200を基準に拡大済み干渉ボリュームデータ408を演算する場合とで、より演算量が少なくなる場合を選択することが可能である。従って、より計算時間が短い方を基準として干渉計算を実行することにより、ロボット制御部300は計算時間を短くすることができる。
【0118】
(4)本実施形態によれば、ロボットアーム100及び部品給材装置200の移動方向と速さに加えて、ロボットアーム100及び部品給材装置200の回転方向と回転速度が含まれる合成ベクトル方向にのみ合成ベクトルの大きさの分だけ広がりを持つ拡大済み干渉ボリュームデータ408が示す干渉領域を算出している。そして、計算時間を抑制しながら適切な干渉計算を実行している。これにより、実際のロボットアーム100の動作に先立って干渉領域を確認しこの干渉領域に応じたロボットアーム100の制御を行うことができる。これによって、部品給材装置200とロボットアーム100との干渉を回避するロボット制御が可能になる。または、ロボットアーム100同士の干渉を回避するロボットアーム100の制御が可能になる。従って、供給部品210の搬送状態に左右されることの無い連続可動が可能なロボットアーム100の制御を実現できる。または、複数のロボットの状態に左右されることの無い連続可動が可能なロボット制御を実現できる。
【0119】
今回開示された実施形態は総ての点で例示である。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での総ての変更が含まれることが意図される。
【0120】
尚、本発明は上述した実施形態に限定されるものではなく、種々の変更や改良を加えることも可能である。変形例を以下に述べる。
【0121】
(変形例1)
実施形態1において、ロボットアーム100と部品給材装置200との干渉を演算した。部品給材装置200には供給部品210が含まれていてもよい。チャック部141が供給部品210を把持する前に供給部品210がロボットアーム100と干渉することを防止することができる。
【0122】
(変形例2)
実施形態1において、ロボットアーム100は6軸ロボットアームとしたが、ロボットアーム100はこの形態のロボットアームに限らない。2軸〜5軸のロボットアームでも良く、7軸以上のロボットアームでも良い。さらに、水平多関節ロボット、直交ロボット、パラレルリンクロボット等の各種類の形態のロボットにも適用することができる。
【0123】
(変形例3)
実施形態1において、部品給材装置200はコンベアベルト230を駆動して供給部品210を移動した。部品給材装置200が供給部品210を移動する形態は他の形態でも良い。回転式ローラーを複数配置しても良く、直動機構を用いて供給部品210を移動させても良い。他にも運搬車に載せて供給部品210を移動させてもよい。いずれの方式においてもロボットアーム100との干渉防止に適用することができる。尚、変形例1〜変形例3は実施形態2にも適用することができる。
【符号の説明】
【0124】
100…ロボットとしてのロボットアーム、200…ワーク搬送装置としての部品給材装置、210…ワークとしての供給部品、400…データテーブルとしてのロボットアーム形状データ、401…データテーブルとしての部品給材装置形状データ、403…第1ベクトルデータとしてのロボットアーム並進速度データ、404…第2ベクトルデータとしての部品給材装置の並進速度データ、407…合成ベクトル及び回転合成ベクトルとしての相対速度データ、408,700,701…干渉領域としての拡大済み干渉ボリュームデータ、410…第3ベクトルデータとしてのロボットアームの回転速度データ、411…第4ベクトルデータとしての部品給材装置の回転速度データ、412…合成回転ベクトルとしての相対回転速度データ。

【特許請求の範囲】
【請求項1】
少なくとも1方向への動作が可能なロボットと、少なくとも1方向に動作するワーク搬送装置との干渉をチェックするための干渉チェック方法であって、
前記ロボットの移動方向と速さとを定めたベクトルデータである第1ベクトルデータを取得する工程と、前記ワーク搬送装置の移動方向と速さとを定めるベクトルデータである第2ベクトルデータを取得する工程と、
前記第1ベクトルデータと前記第2ベクトルデータとを合成した合成ベクトルを演算する工程と、
前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、
前記干渉領域から前記ロボットと前記ワーク搬送装置との干渉の有無を確認する工程と、を含むことを特徴とする干渉チェック方法。
【請求項2】
前記合成ベクトルを演算する工程は、前記第1ベクトルデータと前記第2ベクトルデータとのどちらか一方が基準ベクトルである前記合成ベクトルを演算することを特徴とする請求項1記載の干渉チェック方法。
【請求項3】
前記合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第1ベクトルデータと前記第2ベクトルデータとのどちらを基準ベクトルとするかを決定することを特徴とする請求項1または請求項2記載の干渉チェック方法。
【請求項4】
前記ロボットの回転方向と回転速さとを定めたベクトルデータである第3ベクトルデータを取得する工程と、
前記ワーク搬送装置の回転方向と回転速さとを定めるベクトルデータである第4ベクトルデータを取得する工程と、
前記第3ベクトルデータと前記第4ベクトルデータとを合成した回転合成ベクトルを演算する工程と、
前記合成ベクトル及び前記回転合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、を含むことを特徴とする請求項1乃至請求項3のいずれか一項に記載の干渉チェック方法。
【請求項5】
前記回転合成ベクトルを演算する工程は、前記第3ベクトルデータと前記第4ベクトルデータとのどちらか一方が回転基準ベクトルである前記回転合成ベクトルを演算することを特徴とする請求項4記載の干渉チェック方法。
【請求項6】
前記回転合成ベクトルを演算する工程は、前記ロボットの形状と前記ワーク搬送装置の形状とに応じて、前記第3ベクトルデータと前記第4ベクトルデータとのどちらを回転基準ベクトルとするかを決定することを特徴とする請求項4または請求項5記載の干渉チェック方法。
【請求項7】
少なくとも1方向への動作が可能な第1ロボットと、少なくとも1方向に動作が可能な第2ロボットとの干渉をチェックするための干渉チェック方法であって、
前記第1ロボットの移動方向と速さとを定めるベクトルデータである第1ベクトルデータを取得する工程と、
前記第2ロボットの移動方向と速さとを定めたベクトルデータである第2ベクトルデータを取得する工程と、
前記第1ベクトルデータと前記第2ベクトルデータとを合成した合成ベクトルを演算する工程と、
前記合成ベクトル及び所定のデータテーブルを参照して前記合成ベクトルの大きさと対応する広さの干渉領域を演算する工程と、
前記干渉領域から、前記第1ロボットと前記第2ロボットとの干渉の有無を確認する工程と、を含むことを特徴とする干渉チェック方法。
【請求項8】
請求項1乃至請求項7のいずれか一項に記載の干渉チェック方法の内容と順番を規定したプログラムを記憶したことを特徴とするロボット制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2012−139806(P2012−139806A)
【公開日】平成24年7月26日(2012.7.26)
【国際特許分類】
【出願番号】特願2011−978(P2011−978)
【出願日】平成23年1月6日(2011.1.6)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】