ロボットの制御装置
【課題】
作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができるロボットの制御装置を提供する。
【解決手段】
溶接ロボットの制御装置はワークの形状を認識するレーザセンサを備える。レーザセンサを利用する倣い有効区間では、センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行うロボット制御部RCを備える。ロボット制御部RCは、倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、倣い無効区間の教示点における教示データに含まれる教示姿勢となるようにロボットの姿勢制御を行うとともに、倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行う。
作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができるロボットの制御装置を提供する。
【解決手段】
溶接ロボットの制御装置はワークの形状を認識するレーザセンサを備える。レーザセンサを利用する倣い有効区間では、センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行うロボット制御部RCを備える。ロボット制御部RCは、倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、倣い無効区間の教示点における教示データに含まれる教示姿勢となるようにロボットの姿勢制御を行うとともに、倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットに設けられる作業ツールと、前記作業ツールに配置され作業対象物の形状を検出するセンサとを備え、予め設定された主軌道に沿って前記作業ツールを動作させるとともに、前記センサの出力により前記作業ツールの動作を補正するロボットの制御装置に関する。
【背景技術】
【0002】
ロボットに設けられる作業ツールと、前記作業ツールに配置され作業対象物の形状を検出するセンサとを有するとともに、予め設定された主軌道に沿って作業ツールを動作させて前記センサの出力により前記作業ツールの動作を補正するロボットとして、例えば、レーザセンサ倣い技術を実現するアーク溶接ロボットが公知である。
【0003】
前記アーク溶接ロボットのシステムでは、図16に示すように、マニピュレータMの自由端に溶接トーチ50とレーザセンサLSとが設けられている。そして、溶接トーチ50よりも先行するレーザセンサLSが取得した測距データに基づいて、センサ制御部LUは画像解析を行うことにより、開先の特徴点や物理量(開先に応じたギャップ量、開先角度、開先面積等)を含む開先情報を取得するとともに得られた特徴点をつなぎ合わせることにより溶接トーチ50の3次元軌道を生成するようにしている。
【0004】
ここで、求められた3次元軌道において、その接線ベクトルが進行方向ベクトルと定義される。センサ制御部LUは、開先情報(すなわち、前記特徴点と物理量)に対して、開先内にある特徴線を基準角度と定義して基準角度に対する目標相対角度を与えることにより、進行方向ベクトルとあわせて、開先に対する溶接トーチ50の目標姿勢を生成するようにしている。
【0005】
例えば、図17は、重ね継手に対してレーザセンサLSにてサンプリングした測距データに基づいて画像解析を行った場合の開先情報を示している。重ね継手の場合、図17に示すように上板(図示しない)の端角となるポイントが特徴点となる。この場合、特徴点の通過する開先法線を基準角度にし、該基準角度に対する目標相対角度を与えることにより、進行方向ベクトルとあわせて、開先に対する溶接トーチ50の目標姿勢を生成することができる。
【0006】
図18は、同じく重ね継手に対して得られた特徴点をつなぎ合わせることにより溶接トーチ50の3次元軌道を生成した例である。
ところで、レーザセンサLSより得られた測距データに基づく開先情報だけでは、開先座標系に対する特徴点の位置・姿勢しか計算できない。そこで、ロボット制御部RCは、ロボット座標系における溶接トーチ50の現在座標をセンサ制御部LUに送信している。
【0007】
センサ制御部LUは、受信した溶接トーチ50のロボット座標系の現在座標、画像解析により取得された特徴点座標、予め付与されている速度(速度データ)により、ロボット座標系での目標位置(すなわち、目標座標)を演算してロボット制御部RCに返信する。
【0008】
ロボット制御部RCでは、教示データから生成した補間点を、受信した前記目標位置(目標座標)と置き換えて、マニピュレータMを動作させることにより倣いを行う。
なお、特許文献1では、溶接中にスキャニング式レーザセンサを先行させて、前進・後進角θを保持するように姿勢制御を行うことが開示されている。
【0009】
又、特許文献2〜4では、プラズマ溶接の教示にあたり、距離検出型又はスキャニング型のレーザセンサを先行させ、前進・後進角を0度に自動設定するシステムが開示されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特許第2935600号公報
【特許文献2】特開昭64−37602号公報
【特許文献3】特開昭64−37605号公報
【特許文献4】特開昭64−37606号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
ところで、従来の技術においては、レーザセンサによる姿勢修正を行うことが可能である。
一方、図8に示すように、溶接区間の一部で溶接トーチ50がワークWの一部に極めて接近するようなケースでは、その区間は教示姿勢を保持しつつ位置修正のみを行い、その区間の前後では姿勢修正を行う、という運用を望む場合がある。
【0012】
しかし、従来の姿勢修正倣いでは、1つの倣い区間NR(図10参照)中では、姿勢修正を常に続ける、又は姿勢修正を行わない、という二者択一となっているため、このようなケースでは全区間姿勢修正を行わずに(位置修正のみで)運用する必要があった。図8の例では、干渉部Waがあり、この干渉部Waにおいて、溶接トーチ50と干渉する虞があるが、従来は、このような場合、倣い区間NR全体において、姿勢修正を行わず、位置修正のみを行うようにする。
【0013】
図10、図8を例にすると、倣い区間NRにおいて、Pa,Pbがそれぞれの教示点であり、Lは溶接線である。この図10の例の倣い区間NRで姿勢修正を行わない場合、教示点Paでは、位置、倣い開始指令、姿勢修正指令(オフ)等を含む教示データが、教示点Pbでは、位置、倣い終了指令等を含む教示データが設定される。
【0014】
ここで、倣い区間とは、最初の倣い開始指令が設定された教示点と、倣い終了指令が設定された教示点の間の区間である。
なお、特許文献1は、倣い区間中は常に姿勢制御を行うようにしており、特許文献1の技術では、上記問題は解決できない。
【0015】
又、特許文献2〜4では、ツールをワークに対して面に対して直角になるように教示するためのものであり、これらの技術においても、上記問題は解決できない。
又、レーザセンサが正しく計測できない溶接区間においては、倣い終了点の位置ずれは保持されることが望まれるが、姿勢ずれは保持しないで教示姿勢をとることが望まれる場合がある。ワークや冶具が複雑で、溶接トーチやレーザセンサのセンサヘッドが干渉してしまうことが想定される場合である。トーチ先端の少量の姿勢変化でもトーチ先端よりはなれたセンサヘッドは回転半径が大きくなるため大きく振られることがあり、ワークや冶具が複雑であると干渉する可能性がある。
【0016】
本発明の目的は、作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができるロボットの制御装置を提供することにある。
【課題を解決するための手段】
【0017】
上記問題点を解決するために、請求項1の発明は、作業ツールの作業に先行して作業対象物の形状を認識するセンサを備え、前記センサを利用する倣い有効区間では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行う制御手段を備えたロボットの制御装置において、前記制御手段は、前記倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、前記倣い無効区間の教示点における教示データに含まれる教示姿勢となるように前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行うことを特徴とするロボットの制御装置を要旨とするものである。
【0018】
なお、本明細書において、センサを利用するとは、センサの検出を利用することをいう。又、センサを利用しないとは、センサ自体が検出を行わない場合、及びセンサ自体は検出動作するが、その検出結果を利用しない場合を含む趣旨である。
【0019】
請求項2の発明は、請求項1において、前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、前記補間点演算手段は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、前記センサの検出結果に基づいて姿勢修正のための演算を行い、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行うことを特徴とする。
【0020】
請求項3の発明は、請求項2において、前記教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とすることを特徴とする。
【0021】
請求項4の発明は、請求項2又は請求項3において、前記補間点演算手段は、姿勢修正を行う場合、姿勢制限値の範囲内で姿勢修正が行われるように演算を行うことを特徴とする。
【0022】
請求項5の発明は、請求項2乃至請求項4のうちいずれか1項において、前記センサの検出結果に基づき、目標位置姿勢を算出する目標位置姿勢演算手段を備え、前記補間点演算手段は、前記倣い有効区間では前記センサの検出結果に基づく前記教示点間の補間点演算として、前記目標位置姿勢に基づいて前記教示点間の補間点演算を行い、又、前記補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置姿勢が得られない場合には、前記目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することを特徴とする。
【0023】
請求項6の発明は、請求項5において、前記補間点演算手段は、前記目標位置姿勢演算手段から前記目標位置姿勢が得られない回数を、前記補間点演算周期毎にカウントし、そのカウント値が所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行うようにすることを特徴とする。
【0024】
請求項7の発明は、請求項1において、前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、前記補間点演算手段は、前記倣い有効区間の終了点で、かつ前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、前記第1位置姿勢制御を行い、前記開始点の教示データに姿勢補正指令がある場合、前記倣い有効区間の終了点における実姿勢と、前記教示データに基づく教示姿勢との差に基づいて前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行うことを特徴とする。
【発明の効果】
【0025】
以上詳述したように、請求項1の発明によれば、作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができる効果がある。
【0026】
請求項2の発明によれば、姿勢修正指示の有無に応じて、倣い区間中の教示点間毎に姿勢修正のオンオフの切替えを行うことができる。
なお、特許文献1では、倣い区間中は常に姿勢制御を行う。それに対して、本件請求項2の発明では、倣い区間を、倣い有効区間と倣い無効区間とに区別して、教示プログラム又は自動で姿勢制御の有無を切替える点が異なる。又、特許文献2〜4では、ツールをワークに対して面に対して直角になるように教示するためのものである。それに対して、請求項2の発明では、自動倣い運転中に、リアルタイムに姿勢制御を行う点、さらに、倣い区間中に倣い有効区間と倣い無効区間とに区別してプログラムで姿勢制御の有無を切替える点が異なっている。
【0027】
請求項3の発明によれば、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを倣い区間とし、この倣い区間の中において、教示データで設定した倣い有効区間と倣い無効区間とを区別して姿勢修正のオンオフの切替えを行うことができる。
【0028】
請求項4の発明によれば、姿勢制限値の範囲内で姿勢修正が行われることから、急激な姿勢変化がなく、滑らかに姿勢修正を行うことができる。
請求項5の発明によれば、補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置及び目標姿勢が得られない場合には、前記目標位置及び目標姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することができる。
【0029】
請求項6の発明によれば、前記目標位置姿勢演算手段から前記目標位置及び目標姿勢が得られない回数のカウント値が、所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正が行われるため、ワークに対する作業ツールの干渉の可能性を抑制することができる。
【0030】
請求項7の発明によれば、倣い有効区間の終了点であって前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、第1位置姿勢制御を行うことができ、前記倣い無効区間の開始点の教示データに姿勢補正指令がある場合、第2位置姿勢制御を行うことができる。この結果、倣い無効区間の開始点の教示データに姿勢補正指令があるか否かに応じて、姿勢制御の切替えができる。
【図面の簡単な説明】
【0031】
【図1】本発明を具体化した第1実施形態の溶接ロボットの制御装置の構成を示すブロック図。
【図2】ロボット制御部及びセンサ制御部の機能ブロック図。
【図3】ロボット制御部とセンサ制御部間の送受信の説明図。
【図4】ロボット制御部とセンサ制御部間の送受信の説明図。
【図5】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図6】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図7】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図8】作用の説明図。
【図9】溶接トーチの動作の説明図。
【図10】倣い区間の説明図。
【図11】倣い区間の説明図。
【図12】第2実施形態のロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図13】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図14】第3実施形態のロボット制御部が実行する第1プログラムのフローチャート。
【図15】第3実施形態のロボット制御部が実行する第2プログラムのフローチャート。
【図16】溶接ロボットの制御装置の構成を示すブロック図。
【図17】レーザセンサが測定するワークの2次元データ。
【図18】ワークの特徴点から生成される3次元軌道を示す概略図。
【発明を実施するための形態】
【0032】
(第1実施形態)
以下、本発明のロボットの制御装置をアーク溶接ロボットの制御装置に具体化した一実施形態を図1〜11を参照して説明する。図1はアーク溶接ロボットの制御装置10(以下、溶接ロボットの制御装置10という)の構成を示すブロック図である。
【0033】
溶接ロボットの制御装置10は、ワーク(作業対象物)Wに対してアーク溶接を自動で行うように制御するものであり、溶接作業を行うマニピュレータMと、マニピュレータMを制御するロボット制御部RCと、ワークWの形状を検出するセンサとしてのレーザセンサLSと、レーザセンサLSを制御するセンサ制御部LUとを備える。又、ロボット制御部RCには、可搬式操作部としてのティーチペンダントTPが接続されている。ティーチペンダントTPは、図示しないキーボードを備え、キーボードにより各種の教示データがロボット制御部RCに入力される。
【0034】
マニピュレータMは、フロア等に固定されるベース部材12と、複数の軸を介して連結された複数のアーム13とを備える。最も先端側に位置するアーム13の先端部には、作業ツールとしての溶接トーチ14が設けられる。溶接トーチ14は、溶加材としてのワイヤ15を内装している。溶接トーチ14は図示しない送給装置によって送り出されたワイヤ15の先端とワークWとの間にアークを発生させ、その熱でワイヤ15を溶着させることによりワークWに対して溶接を施す。アーム13間には複数のモータ(図示しない)が配設されており、モータの駆動によって溶接トーチ14を前後左右に自在に移動できるように構成されている。
【0035】
ロボット制御部RCは、コンピュータから構成されており、前記モータを駆動制御することにより、予め設定された教示データの主軌道に沿って溶接トーチ14を動作させる。ロボット制御部RCは位置姿勢倣い制御を行う制御手段に相当する。
【0036】
又、ロボット制御部RCは、溶接電流及び溶接電圧といった溶接条件を溶接電源WPSに対して出力するとともに、溶接電源WPSからパワーケーブルPKを通じて供給される電力によって溶接作業を行わせる。
【0037】
レーザセンサLSは、レーザの発光及び受光によりワークWまでの距離を測定する走査型のレーザセンサであり、溶接トーチ14に搭載され、溶接トーチ14が溶接線に沿って進行する方向側における開先開放(すなわち、未溶接部位)部位の距離を測定する。レーザセンサはセンサに相当する。
【0038】
センサ制御部LUは、コンピュータから構成されている。センサ制御部LUは、レーザセンサLSを駆動制御して、測定される距離情報からワークWの開先形状を検出する。センサ制御部LUは、レーザセンサLSを制御して、所定の範囲を走査しながら各サンプリング点について距離を測定して、2次元データを取得する。センサ制御部LUは、複数のサンプリング点の2次元データからワークWの開先形状を作成して、該開先形状からワークWの特徴点を取得する。センサ制御部LUは、溶接トーチ14が溶接線に沿って移動した位置においても、同様の手法で距離を測定してワークWの特徴点Dを取得する(図18参照)。
【0039】
そして、センサ制御部LUは、取得された特徴点Dをつなぎ合わせることで特徴点の3次元軌道E(図18参照)を生成する。センサ制御部LUは、このように求めた3次元軌道Eから溶接トーチ14の目標位置及び目標姿勢を設定する。以下、目標位置及び目標姿勢を目標位置姿勢という。すなわち、センサ制御部LUは、3次元軌道Eの接線ベクトルを進行方向ベクトルvとして目標位置を設定するとともに、ワークWの法線に対して予め設定された所定の目標相対角度αを与えることで目標姿勢を設定する(図17参照)。
【0040】
なお、センサ制御部LUは、目標位置姿勢を設定する際に、レーザセンサLSにより検出される開先情報だけでは、レーザセンサLSを基準としたセンサ座標系に対する位置及び姿勢しか算出できない。このため、センサ制御部LUは、ロボット制御部RCから溶接トーチ14の現在位置及び姿勢(以下、現在位置姿勢という)を取得して、レーザセンサLSを基準としたセンサ座標系からマニピュレータMを基準としたロボットの基準座標系への変換を適宜行う。
【0041】
すなわち、センサ制御部LUは、ロボット制御部RCから取得した現在位置姿勢と、センサ制御部LUに予め記憶されているセンサ座標系から基準座標系への同次変換行列と、レーザセンサLSにより検出される開先情報とから、基準座標系における目標位置及び姿勢を算出する。
【0042】
次に、マニピュレータMにより溶接作業が行われるときに、ロボット制御部RC及びセンサ制御部LUが行う制御について説明する。なお、ロボット制御部RCには、溶接作業が行われる前に、溶接が行われる際のマニピュレータMの動作及び溶接条件等を示す教示データ、及び倣い区間を構成するための教示点が入力されている。図2にロボット制御部RC及びセンサ制御部LUの機能ブロック図を示す。
【0043】
ロボット制御部RCは、教示データから溶接トーチ14の主軌道補間点を算出するとともに、溶接トーチ14の目標位置及び姿勢に基づいて補正を行う補間点算出処理部23と、溶接トーチ14の現在位置姿勢を算出する現在位置算出処理部25と、センサ制御部LUと通信を行うための通信処理部27を備える。補間点算出処理部23は補間点演算手段に相当する。又、現在位置算出処理部25は現在位置算出手段に相当する。センサ制御部LUは目標位置設定手段に相当する。
【0044】
又、ロボット制御部RCは、ロボット制御部RCとセンサ制御部LU間の通信時の所定のコマンドを逐次カウントする。又、ロボット制御部RCは、そのカウント数を格納するカウント記憶手段としての第1メモリ28を備えている。さらに、ロボット制御部RCは、各種のプログラムを格納するメモリを備える。例えば、ロボット制御部RCは、補間点算出処理部23及び現在位置算出処理部25がそれぞれ行う処理を実行するプログラム、及び、教示データ、及び修正補間点算出処理プログラムをそれぞれ格納する第2メモリ29を備えている。第2メモリ29は、記憶手段に相当する。記憶手段は、読出し、書込み可能な不揮発性メモリからなり、例えばEEPROM等からなる。又、ロボット制御部RCは、RAMからなる作業用メモリ30を備えている。
【0045】
補間点算出処理部23は、溶接トーチ14の移動に先行して、溶接トーチ14の位置及び姿勢を示す複数の主軌道補間点を前記教示データから算出する。算出された主軌道補間点は、バッファ24に格納されるとともに、順次現在位置算出処理部25に送られる。
【0046】
現在位置算出処理部25は、マニピュレータMに内蔵されているとともにモータ(図示しない)の回転位置を検出するエンコーダ等から読み出した位置検出値に基づいて、溶接トーチ14の現在位置姿勢を算出する。前記算出された現在位置姿勢は、通信処理部27を介してセンサ制御部LUに送信される。
【0047】
なお、通信処理部27は、センサ制御部LUに対して制御情報を送信する際に、その種類を明示するためのコマンドを付して送信したり、或いは通信開始や、通信終了等を示す各種コマンドを送信する。前記算出された現在位置姿勢を制御情報として通信処理部27が送信する場合、例えば、前記制御情報の先頭にはコマンドとして「CG」が付される。
【0048】
センサ制御部LUは、通信処理部LUaを介して前記現在位置姿勢を受信する。そして、センサ制御部LUは、レーザセンサLSによるセンサ補正周期Scycle(秒)で得られ
るワークWの形状検出結果と受信した現在位置姿勢とを照らし合わせて、溶接トーチ14の目標位置及び姿勢を設定(算出)する。そして、センサ制御部LUは、設定(算出)された目標位置及び姿勢を、通信処理部LUaを介してロボット制御部RCの通信処理部27に送信する。なお、通信処理部LUaは、ロボット制御部RCに対して制御情報を送信する際に、その種類を明示するためのコマンドを付して送信したり、或いは通信開始や、通信終了等を示す各種コマンドを送信する。ここで、前記設定(算出)された目標位置及び姿勢を制御情報として通信処理部LUaが送信する場合、例えば、前記制御情報の先頭にはコマンドとして「cc」が付される。
【0049】
ロボット制御部RCの通信処理部27は受信した目標位置及び姿勢を補間点算出処理部23に入力する。そして、補間点算出処理部23は、前記主軌道補間点を、前記受信した目標位置及び姿勢に基づいて修正補間点算出処理を行う。この修正補間点算出処理については、後述する。
【0050】
なお、センサ制御部LUは、溶接トーチ14の目標位置及び姿勢を設定(算出)ができない場合がある。例えば、レーザセンサLSが被溶接物であるワークWの開先を認識できなかった場合に発生する。開先が認識できない場合としては、ワークWにおいて予め設定したプロファイルに、実際の形状が当てはまらない場合であって、ワークWにおいて倣い区間中にある仮付けにより開先がなくなる場合や、或いはワークWに大きな湾曲があり、開先上にレーザ光を照射できなくなった場合である。
【0051】
この場合は、センサ制御部LUは、溶接トーチ14の目標位置及び姿勢を設定(算出)ができなかった、すなわち、目標位置等計算不成功を意味するコマンド「cz」をロボット制御部RCに送信する。この場合、ロボット制御部RCはこのコマンド「cz」を通信処理部27を介して受信すると、これまでの補間点補正を保持する。
【0052】
ここで、センサ制御部LUとロボット制御部RCで行う通信例について説明する。
図3は、センサ制御部LUで目標位置等の計算が成功した事例であって、ロボット制御部RCとセンサ制御部LU間の通信において、倣い開始から倣い終了までの通信例が示されている。図3において、ロボット制御部RCから倣い開始コマンドMTが送信され、センサ制御部LUでこのコマンドを受信すると、センサ制御部LUから倣い開始レディコマンドmoが送信される。以後、ロボット制御部RCからコマンドCGが付された現在位置姿勢の送信がされ、センサ制御部LUでこれを受信すると、センサ制御部LUでは、前述したように目標位置姿勢の設定(算出)がされる。そして、センサ制御部LUは目標位置姿勢をロボット制御部RCにコマンドccを付して送信する。以後、同様に繰り返される。ここで、コマンドccは、目標位置等の計算に成功した場合に該目標位置等に付されるコマンドであるため、レーザセンサLSがワークWの形状を認識できた結果を示すことになる。
【0053】
そして、倣いが終了される際には、ロボット制御部RCから倣い終了指令コマンドMEがセンサ制御部LUに送信される。そして、センサ制御部LUはこのコマンドを受信すると、倣い終了コマンドとしてmoを送信する。ロボット制御部RCは、このコマンドを受信することにより、倣いを終了する。
【0054】
図4は、センサ制御部LUで、目標位置姿勢の計算が不成功の事例が示されている。なお、図4での図3との重複説明は省略する。ここでは、目標位置姿勢の設定(すなわち、計算)が不成功の場合は、コマンドczがロボット制御部RCに送信される。図4の例では、続けてコマンドczがロボット制御部RCに送信されていることが示されている。コマンドczは目標位置姿勢の計算に成功しなかった場合に送信されるコマンドであるため、レーザセンサLSがワークWの形状を認識できなかった結果を示すことになる。
【0055】
次に、センサ制御部LUから目標位置姿勢を取得したときの、ロボット制御部RCの補間点算出処理部23が行う修正補間点算出処理の詳細を説明する。
(修正補間点算出処理)
図5〜7は、補間点算出処理部23が修正補間点算出処理プログラムに従って実行する修正補間点算出処理のフローチャートであり、所定制御周期毎に実行する。本実施形態では、このプログラムは20msec毎に実行するが、制御周期は限定されるものではない。この制御周期は、補間点演算周期に相当する。
【0056】
S10では、補間点算出処理部23は、ロボットの現在位置姿勢をセンサ制御部LUに送信する。S20では、補間点算出処理部23はセンサ制御部LUから目標位置姿勢(POSt,POSEt)を読み込む。S30では、補間点算出処理部23は、目標位置姿勢を受信した時の現在位置姿勢(POSm,POSEm)を、作業用メモリ30に退避する。S40では、補間点算出処理部23は、姿勢修正有効か否か、すなわち、姿勢修正が有効に設定されているか否かを、教示データに基づいて判定する。
【0057】
ここで、各教示点において教示される教示データには、当該教示点から、次の教示点まで姿勢修正を行う場合、姿勢修正が有効で有る旨の教示データが設定されている。又、当該教示点から、次の教示点まで姿勢修正を行わない場合、姿勢修正が無効で有る旨の教示データが設定されている。この姿勢修正が有効である旨の教示データは、姿勢修正指示の有りのデータに相当する。又、姿勢修正が無効である旨の教示データは姿勢修正指示が無しのデータに相当する。
【0058】
姿勢修正が有効に設定されている場合には、補間点算出処理部23はS40の判定を「YES」として、S50に移行して、姿勢反映処理ルーチンを実行した後、S60の公知の目標位置反映処理ルーチンを実行して、このフローチャートを、一旦終了する。なお、S50の姿勢反映処理ルーチンについては後述する。又、姿勢修正が有効に設定されていない場合、すなわち、姿勢修正が無効に設定されている場合には、補間点算出処理部23は、S70に移行する。
【0059】
又、S70に移行した場合、補間点算出処理部23は、姿勢修正履歴が有るか否かを判定する。この姿勢修正履歴が有るか否かの判定は、姿勢修正の補間点があったか否かを見ているのである。S70において、姿勢修正履歴が無い場合には、補間点算出処理部23は、S60に移行して目標位置反映処理ルーチンを実行する。補間点算出処理部23は、姿勢修正履歴が有る場合には、S80で、目標姿勢を、目標位置姿勢を受信した時の現在姿勢POSEmに置き換えた後、S50の姿勢反映処理ルーチンを実行する。S80で、目標姿勢を、目標位置姿勢を受信した時の現在姿勢POSEmに置き換えることにより、急激な姿勢変化を起こさせないようにしている。この後、徐々にマニピュレータMを教示姿勢にもっていきたいためである。これは、マニピュレータMに無理な動作をさせないためである。
【0060】
(姿勢反映処理ルーチン)
次に、姿勢反映処理ルーチンを図6を参照して説明する。
S100では、補間点算出処理部23は、姿勢制限値としての姿勢リミッタRlを第2メモリ29から読み込む。姿勢リミッタRlは、マニピュレータMを作動させるときの最大動作範囲を限定するためのものである。S110では、補間点算出処理部23は、現在の処理がセンサ制御部LUから目標位置姿勢を受信した直後か否かを判定する。本実施形態では、センサ制御部LUからは、通常30〜50msec毎の周期で目標位置姿勢を受信しており、受信直後であれば、その旨を示すステータスフラグがセットされ、受信直後でなくなれば、図示しないタイマにより前記ステータスフラグがリセットされる。S110での判定が、受信直後であれば、S120に移行する。又、受信直後でなければ、S300の姿勢保持処理ルーチンを実行した後、S210に移行する。なお、S300の姿勢保持処理ルーチンは後述する。S120では、補間点算出処理部23は今回の処理が倣い開始直後、すなわち、倣い開始指令(ZT)があった直後か否かを判定する。倣い開始直後であれば、S130において、前補間点姿勢Mpとして、教示データに含まれる教示目標姿勢(すなわち、教示姿勢)を設定して、S150に移行する。
【0061】
一旦、S130を経た後は、倣い開始直後でなくなるため、補間点算出処理部23はS120の判定では「NO」と判定した後、S140において、前補間点姿勢Mpとして前回の制御周期で取得した前回補間点姿勢を設定する。
【0062】
S150では、補間点算出処理部23は、S130又はS140で設定された前補間点姿勢Mpから目標姿勢への回転中心軸ベクトルVcを求める。次のS160では、補間点算出処理部23は、回転中心軸ベクトルVcの周りの回転角Rtを求め、さらに残回転角Rrを、回転角Rtから姿勢リミッタRlを減算することにより求めて、求めた残回転角Rrを作業用メモリ30のRsaveに退避する。S170では、補間点算出処理部23は、残回転角RrがRr>0か否かを判定する。Rr>0でなければ、補間点算出処理部23はS240において、回転角Rfとして姿勢リミッタRlを設定した後、S250において、作業用メモリ30のRsaveを0に設定してS190に移行する。
【0063】
又、S170において、Rr>0であれば、S190において、回転角Rfとして回転角Rtを設定する。次のS190では、補間点算出処理部23は、回転中心軸ベクトルVc周りに回転角Rf分回転する同次変換行列Mfを求め、同次変換行列Mfを作業用メモリ30のMsaveに退避する。S200では、補間点算出処理部23は、目標姿勢MTpose(=MpMf)を求める。前述のようにして目標姿勢MTposeは、前補間点姿勢Mpと同次変換行列Mfに基づいて算出される。S210では、補間点算出処理部23は、目標姿勢MTposeの位置成分に、目標位置姿勢を受信した時の現在位置POSmを代入する。S220では、補間点算出処理部23は、S210で求めた目標姿勢MTposeを作業用メモリ30のMTsaveに退避する。S230では、補間点算出処理部23は、姿勢修正履歴フラグをONに設定して、このフローチャートを一旦終了する。
【0064】
(S300:姿勢保持処理ルーチン)
次に、姿勢保持処理ルーチンを図7を参照して説明する。
この姿勢保持処理ルーチンの実行は、マニピュレータMに大きな姿勢変化をさせる場合においても、できる限り姿勢リミッタRlの範囲で、マニピュレータMを動作させるようにするのである。
【0065】
S310では、補間点算出処理部23は、姿勢修正履歴フラグがONに設定され、かつ、Rsaveが0を越えた値となっているかを判定する。姿勢修正履歴フラグがONに設定され、かつ、Rsaveが0を越えた値となっている場合には、S320に移行するとともに、姿勢修正履歴フラグがONに設定されてない、または、Rsaveが0を越えた値となっていない場合には、S380に移行する。S380では、補間点算出処理部23は、目標姿勢MTposeとして、作業用メモリ30のMTsaveに退避した値を反映させてこのルーチンを終了する。
【0066】
S320では、補間点算出処理部23は、姿勢リミッタRlを第2メモリ29から読み込む。S330では、補間点算出処理部23は、残回転角Rrを、作業用メモリ30のRsaveの値から姿勢リミッタRlを減算することにより求める。S340では、補間点算出処理部23は、残回転角RrがRr>0か否かを判定する。S340において、Rr>0でなければ(判定が「NO」)、S390において、補間点算出処理部23は、回転角Rfとして作業用メモリ30のRsaveを設定した後、S400において、作業用メモリ30のRsaveを0に設定してS360に移行する。
【0067】
又、S340において、Rr>0であれば、S350において、回転角Rfとして姿勢リミッタRlを設定した後、S360に移行する。このように残回転角Rrが0を越える場合は、回転角Rfとして姿勢リミッタRlがセットされるのである。S360では、前回の制御周期で、作業用メモリ30にMsaveに格納した同次変換行列Mfの回転中心ベクトルの周りにさらに回転角Rfで回転する同次変換行列を求め、それを同次変換行列Mfとして更新する。S370では、補間点算出処理部23は、目標姿勢MTpose(=MTsaveMf)を求める。前述のようにして目標姿勢MTposeは、前回の制御周期において、S220で作業用メモリ30のMTsaveに退避された値とS360で更新された同次変換行列Mfに基づいて算出される。S370を処理すると、このルーチンを終了して、図6のS210に移行する。
【0068】
このようにして、姿勢保持処理ルーチンにおいては、受信直後でない場合であって、姿勢修正履歴があり、かつRsaveがある場合を除いては、マニピュレータMの姿勢保持がされる。又、姿勢保持処理ルーチンにおいては、受信直後でない場合あって、姿勢修正履歴があり、かつRsaveがある場合は、姿勢リミッタRlの範囲内で、目標姿勢MTposeが設定される。
【0069】
次に、上記の修正補間点算出処理プログラムに適した倣い区間を構成する複数の教示点の教示データの設定の例を表1を参照して説明する。この例では、教示点S1〜S4の区間を1つの倣い区間NRとしている。
【0070】
【表1】
教示点S1〜S4には、表1の教示データの欄に示されているように各種指令P,AS(アークスタート),ZT(倣い開始)、L(位置指令)、ZE(倣い終了)が設定される。ここで、本例では、教示点S1〜S3では、それぞれ倣い開始を表わすZTが教示データとして設定され、教示点S4では、ZEが倣い終了を表わす倣い終了指令として設定される。本例に示すように、最初の倣い開始指令のZTから倣い終了指令迄が、1つの倣い区間として構成される。そして、ZT指令のファイルに、図示はしないが、姿勢修正指示の有無を示す教示データが入力されて格納されている。
【0071】
そして、図8の例では、教示点S1及び教示点S3のZT指令のファイルには、姿勢修正有効の旨を表わす教示データがセットされている。又、教示点S2のZT指令のファイルには、姿勢修正無効の旨を表わす教示データがセットされている。S2において、教示点S2のZT指令のファイルに、姿勢修正無効の旨を表わす教示データがセットされるのは、教示点S2・S3間には、干渉部Waが存在するからであり、この区間で、溶接トーチ14の姿勢が変化すると干渉部Waに溶接トーチ14が干渉する虞があるからである。
【0072】
従って、図8の例では、図5〜7のフローチャートで示される処理が実行されると、図11に示すように、倣い有効区間としての第1区間(S1・S2間)及び第3区間(S3・S4間)では、目標位置反映処理(図11では、位置ONで示す)、及び姿勢反映処理(図11では、姿勢ONで示す)が行われる。又、倣い無効区間としての第2区間(S2・S3間)では、目標位置反映処理(図11では、位置ONで示す)が行われるが、姿勢反映処理(図11では、姿勢OFFで示す)は行われないことになる。
【0073】
又、前記教示点S2は、倣い有効区間である第1区間(S1・S2間)の終了点であり、この終了点の実位置と、目標位置姿勢の位置との差に基づいて位置制御が行われることになる。第2区間(S2・S3間)でのロボット制御部RCの制御は、第1位置姿勢制御に相当する。
【0074】
【表2】
表2は、図8の例を、従来の技術を使用して行う際、複数の教示点の教示データを設定する場合の参考例である。この参考例では、表2に示すように、教示点S2、S3、S4のそれぞれにおいて、倣い終了指令ZEが設定されるため、S1・S2間、S2・S3間、S3・S4間が、それぞれ第1倣い区間、第2倣い区間、第3倣い区間となる。そして、倣い区間を区切る教示点S2,S3において、それぞれ倣い終了指令ZE、倣い開始指令ZTが設定されるとともに、アーク溶接終了指令AE及びアークスタート指令ASも設定される。従って、本例の方が、姿勢反映処理を切替えても溶接および倣いを終了する必要がなく、かつ、教示点において、各種の指令を設定入力する場合には、入力が少なくすむ利点もある。
【0075】
さて、本実施形態によれば、以下のような特徴がある。
(1) 本実施形態の溶接ロボットの制御装置は、溶接トーチ14(作業ツール)の作業に先行してワークW(作業対象物)の形状を認識するレーザセンサLS(センサ)を備える。レーザセンサLSを利用する第1区間(S1,S2間)、及び第3区間(S3,S4間)(倣い有効区間)では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行うロボット制御部RC(制御手段)を備える。
【0076】
ロボット制御部RC(制御手段)は、倣い有効区間としての第1区間(S1・S2間)に隣接する前記センサを利用しない第2区間(S2・S3間)(倣い無効区間)では、倣い無効区間の教示点における教示データに含まれる教示姿勢となるようにロボットの姿勢制御を行うとともに、倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行う。この結果、本実施形態では、溶接トーチ14(作業ツール)が作業中にレーザセンサLSを利用する倣い有効区間としての第1区間(S1・S2間)、第3区間((S3,S4間))と溶接トーチ14(作業ツール)が作業中にレーザセンサLSを利用しない倣い無効区間としての第2区間(S2・S3間)において、倣い有効区間では位置姿勢制御を行うとともに、倣い無効区間では教示姿勢となるように姿勢制御の切替えができる効果がある。
【0077】
(2) 本実施形態の溶接ロボットの制御装置では、ロボット制御部RC(制御手段)は、前記教示点間の補間点演算を行う補間点算出処理部23(補間点演算手段)を備える。そして、補間点算出処理部23は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、レーザセンサLSの検出結果に基づいて姿勢修正のための演算を行う。又、補間点算出処理部23は、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行う。
【0078】
この結果、本実施形態では、制御周期(補間点演算周期)毎に、姿勢修正指示の有無を判定するため、教示データで設定した教示点間毎に、姿勢修正のオンオフの切替えを行うことができる。
【0079】
(3) 本実施形態の溶接ロボットの制御装置10は、教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とする。この結果、本実施形態によれば、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを倣い区間とし、この倣い区間の中において、教示データで設定した倣い有効区間と倣い無効区間とを区別して姿勢修正のオンオフの切替えを行うことができる。
【0080】
(4) 本実施形態の溶接ロボットの制御装置では、補間点算出処理部23は、姿勢修正を行う場合、姿勢リミッタRl(姿勢制限値)の範囲内で姿勢修正が行われるように演算を行うようにされている。この結果、本実施形態の溶接ロボットの制御装置では、姿勢リミッタRl(姿勢制限値)の範囲内で姿勢修正が行われることから、急激な姿勢変化がなく、滑らかに姿勢修正を行うことができる。
【0081】
すなわち、図9で示す14Aは、姿勢修正前の場合であれば教示姿勢の溶接トーチの姿勢、又は、姿勢修正中であれば、前回の制御周期で修正したときの溶接トーチの姿勢を示している。図9で示す14Bは、14Aで示される溶接トーチの姿勢の場合、姿勢リミッタRlで許容されている最大範囲の溶接トーチの姿勢である。又、図9で示す14Cは、レーザセンサLSから取得した目標姿勢である。同図に示すように、14Aの位置の位置する溶接トーチは、14Cで示す目標姿勢をセンサ制御部LUから通知があっても、14Bで示される位置までの姿勢の変化は許容されるが、目標姿勢までは変化しないことになる。なお、図9において、TCP(Tool Center Point)は、溶接トーチ14の姿勢の
基準となるポイントである。このように姿勢リミッタRlで制限することにより、急激に動作することがなくなり、滑らかな動作を実現することができる。
【0082】
(第2実施形態)
次に、第2実施形態を図12及び図13を参照して説明する。第2実施形態は第1実施形態の溶接ロボットの制御装置のハード構成と同一の制御装置であるため、同一構成については、同一符号を付す。第2実施形態では、修正補間点算出処理プログラムが一部異なっているため、異なるところを中心に説明する。又、フローチャートにおいて、第1実施形態のステップ番号と同一ステップについては同一ステップ番号を付す。なお、第2実施形態では、センサ制御部LUは、目標位置姿勢演算手段に相当する。
【0083】
図12に示すように、第2実施形態では、S40において、補間点算出処理部23の判定が「YES」の場合、すなわち、姿勢修正が有効に設定されている場合には、S42に移行する。
【0084】
S42では、補間点算出処理部23は、センサ制御部LUからコマンドとして「cc」が送られてきたか否か、すなわち、この今回の制御周期の処理に入った際に、センサ制御部LUからの目標位置姿勢を含む制御情報を受信した際にccメッセージがあったか否かを判定する。ccメッセージがあった場合には、補間点算出処理部23は、センサ制御部LUでの目標位置姿勢の計算が成功して、目標位置姿勢が送られてきているため、S44において、czカウンタを0にリセットした後、S50に移行する。なお、czカウンタは、第1メモリ28(カウント記憶手段)にて構成されている。
【0085】
S42において、ccメッセージがなかった場合には、補間点算出処理部23は図13に示すS500に移行する。S500では、補間点算出処理部23は、センサ制御部LUからコマンドとして「cz」が送られてきたか否か、すなわち、この今回の制御周期の処理に入った際に、センサ制御部LUからの目標位置姿勢を含む制御情報を受信した際にczメッセージがあったか否かを判定する。czメッセージがあった場合には、補間点算出処理部23は、センサ制御部LUでの目標位置姿勢の計算が成功していない場合であり、目標位置姿勢が送られてきていないため、S510に移行する。なお、czメッセージがない場合には、補間点算出処理部23は、S550に移行して異常であるとして異常の場合に対応した異常処理を行う。
【0086】
S510では、補間点算出処理部23は、czカウンタを1加算した後、S520に移行する。S520では、czカウンタがN以上か否かを判定する。Nは、所定閾値回数に相当する。所定閾値回数Nは、後述する姿勢修正量の累積回数である。本実施形態では、例えば、所定閾値回数Nは4〜6回に設定されているが、この数値に限定されるものではない。S520において、czカウンタがN以上であれば、S530において、補間点算出処理部23は、対応する教示姿勢を累積姿勢修正量分回転させた値に修正した後、S50に移行する。なお、補間点算出処理部23は、czカウンタがカウントする毎に、図示しない別ルーチンで姿勢修正量を累積して、累積した値を累積姿勢修正量としている。
【0087】
又、S520において、czカウンタがN未満であれば、S540において、補間点算出処理部23は、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持した後、S50に移行する。
【0088】
本実施形態では、レーザセンサLSが開先認識のため、予め認識パータンを設定しているが、干渉物が、レーザセンサLSの視野に入る等することにより、認識パータンが合致しない場合がある。このような場合、センサ制御部LUからロボット制御部RCにczメッセージがその区間連続してロボット制御部RCに送信される。
【0089】
そこで、本実施形態では、姿勢修正有効の区間において、czメッセージをセンサ制御部LUからロボット制御部RCが受信した場合、czメッセージの累積数がN未満のときは、czメッセージを受信する直前の目標姿勢を保持することになる。
【0090】
さらに、czメッセージが一定数(N回)連続して受信した場合、その時点で、補間点算出処理部23は、対応する教示姿勢を累積姿勢修正量分回転した姿勢に修正する(S530)。なお、姿勢リミッタRlによる処理は、第1実施形態と同様に行われる。この後、再度、ccメッセージをロボット制御部RCが受信し始めると、センサ制御部LUから通知された目標姿勢への修正を開始することになる。このように、本実施形態では、姿勢修正が有効時であっても、何らかの要因でレーザセンサLSが開先の形状を認識できず、認識ができない区間(すなわち、czメッセージが送られてくる間の区間)が発生した場合、ワークWに対する溶接トーチ14の干渉の可能性を抑制することができることになる。
【0091】
第2実施形態の溶接ロボットの制御装置では下記の特徴がある。
(1) 本実施形態の溶接ロボットの制御装置は、レーザセンサLS(センサ)の出力に基づき、目標位置姿勢を算出するセンサ制御部LU(目標位置姿勢演算手段)を備えている。センサ制御部LUは、レーザセンサLSの出力に基づく教示点間の補間点演算として、目標位置姿勢に基づいて前記教示点間の補間点演算を行う。又、補間点算出処理部23(補間点演算手段)は、センサ制御部LUからの目標位置姿勢が得られない場合には、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持する。この結果、本実施形態の制御装置によれば、補間点算出処理部23は、センサ制御部LUからの目標位置姿勢が得られない場合には、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することができる。
【0092】
(2) 本実施形態の溶接ロボットの制御装置は、補間点算出処理部23(補間点演算手段)は、センサ制御部LUから目標位置姿勢が得られない回数を、補間点演算周期毎にカウントするとともに、そのカウント値が所定閾値回数(N)を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行う。この結果、本実施形態の制御装置では、姿勢修正が有効時であっても、何らかの要因でレーザセンサLSが開先の形状を認識できず、認識ができない区間(すなわち、czメッセージが送られてくる間の区間)が発生した場合、ワークWに対する溶接トーチ14の干渉の可能性を抑制することができる。
【0093】
(第3実施形態)
次に、第3実施形態を図14、図15を参照して説明する。本実施形態は第1実施形態の溶接ロボットの制御装置のハード構成と同一の制御装置であるため、同一構成については、同一符号を付す。本実施形態では、補間点算出処理部23は制御手段に相当する。第3実施形態では、第1実施形態とプログラムが一部異なっているため、異なるところを中心に説明するが、説明の便宜上、フローチャートにおいて、第1実施形態のステップ番号と同一ステップについては同一ステップ番号を付す。
【0094】
本実施形態の修正補間点算出処理プログラムは、第1実施形態の修正補間点算出処理プログラムにおいて、図14に示すようにS70,S80が省略されているところが異なっている。そして、S40において、姿勢修正が無効に設定されている場合、補間点算出処理部23は、S60に移行するところが、第1実施形態と異なっている。S10〜S60は第1実施形態と同一のため、説明を省略する。
【0095】
本実施形態の修正補間点算出処理プログラムは、第1実施形態と同様に倣い区間を構成する最初の教示点において、教示データに最初の倣い開始指令ZTが含まれると起動され、倣い終了指令ZEを含む教示データが教示された倣い区間の教示点までの間、所定制御周期毎に実行される。
【0096】
又、本実施形態では、図15に示す姿勢量保持プログラムが補間点算出処理部23により実行されるところが第1実施形態と異なっている。姿勢量保持プログラムは、記憶手段としての第2メモリ29に記憶されている。
【0097】
前記姿勢量保持プログラムは、倣い区間中の倣い有効区間が終了した後に前記倣い有効区間に隣接する倣い無効区間において、開始点となる教示点(すなわち、倣い有効区間の終了点)に設定されている教示データにセンサ制御部LUからの目標位置姿勢を含む制御情報を利用しないアークスタートが含まれていると起動される。そして、前記プログラムは、アーク溶接終了指令を含む教示データが教示された教示点までの間に実行される。
【0098】
このプログラムが起動されると、S610では、補間点算出処理部23は、姿勢補正がオンとなっているか否かを教示点(すなわち、前記終了点)に設定された教示データに基づいて判断する。前記姿勢補正がオンとなっていることは、姿勢補正指令に相当する。すなわち、姿勢補正がオンとなっている場合、補間点算出処理部23は当該倣い無効区間が姿勢量保持区間であると判定して、S620〜S720に移行することにより第2位置姿勢制御を行う。
【0099】
又、S610において、姿勢補正がオンとなっていない場合には、補間点算出処理部23は、S730〜790に移行することにより第1位置姿勢制御を行う。
S620では、補間点算出処理部23は、前記倣い区間における教示時の終了点の位置(終了点位置)POSetと教示時の該終了点の姿勢POSEetを、当該教示点の教示データから取得する。
【0100】
S630では、補間点算出処理部23は、前記倣い区間の終了点における位置POSmと、該終了点の姿勢POSEmを、倣い時の現在位置算出処理部25が算出した実位置、実姿勢から取得する。
【0101】
S640では、補間点算出処理部23は、S620で取得した終了点の位置POSetと、S630で取得した終了点の位置POSmの差POSnを演算する。
S660では、補間点算出処理部23は、教示時の終了点の姿勢POSEetから、倣い時の終了点の姿勢POSEmへの回転中心軸ベクトルVcを求める。
【0102】
S670では、補間点算出処理部23は、回転中心軸ベクトルVc周りの回転角Rtを求める。
S680では、補間点算出処理部23は、回転中心軸ベクトルVc周りに回転角Rtで回転する同次変換行列Mfaを求める。
【0103】
上記のようにして、補間点算出処理部23は、同次変換行列Mfaを求めた後、補間点演算周期毎にS690〜S720を、溶接トーチ14が姿勢量保持区間の終了点に達する迄、各教示点で設定されている教示データに基づき行う。
【0104】
すなわち、S690においては、補間点算出処理部23は、姿勢量保持区間にある教示点毎に、各教示点毎に設定された教示姿勢と前記同次変換行列Mfaに基づいて当該教示点の目標姿勢を算出する。具体的には、補間点算出処理部23は、姿勢量保持区間の教示姿勢Mpt1,2…に対する目標姿勢MTpose1,2…nを下記演算式で求める。
【0105】
MTpose1,2…n=Mpt1,2…n・Mfa
又、S700では、補間点算出処理部23は、目標姿勢MTpose1,2…nの位置成分に前記差POSnを代入する。
【0106】
以上のS620〜S700迄が、姿勢反映処理となる。
S710では、補間点算出処理部23は、公知の目標位置反映処理を行う。
S710の処理が終了すると、S720では、補間点算出処理部23は、溶接トーチ14の現在の位置が姿勢量保持区間にあるか否かを判定し、溶接トーチ14の現在の位置が姿勢量保持区間にある場合には、S690にジャンプする。
【0107】
又、S720において、補間点算出処理部23は、溶接トーチ14の現在の位置が姿勢量保持区間の終了点の場合には、このフローチャートの処理を終了する。
次に、S610からS730に移行した場合について説明する。
【0108】
S730〜S750は、それぞれS620〜S640とそれぞれ同じであるため、説明を省略する。
S760では、補間点算出処理部23は、倣い無効区間にある教示点毎に、各教示点毎に設定された教示姿勢勢Mpt1,2…を目標姿勢MTpose1,2…nとする。
【0109】
S770では、補間点算出処理部23は、目標姿勢MTpose1,2…nの位置成分にS750で取得した差POSnを代入する。
S780では、補間点算出処理部23は、補間点算出処理部23は、公知の目標位置反映処理を行う。
【0110】
S790では、補間点算出処理部23は、溶接トーチ14の現在の位置が倣い無効区間にあるか否かを判定し、溶接トーチ14の現在の位置が倣い無効区間にある場合には、S690にジャンプする。
【0111】
又、S790において、補間点算出処理部23は、溶接トーチ14の現在の位置が倣い無効区間の終了点の場合には、このフローチャートの処理を終了する。
上記のように構成された溶接ロボットの制御装置では、下記の場合で使用することが可能である。レーザセンサLSにより倣い有効区間の後にも溶接を続け、倣い有効区間の終了点の位置ずれの保持と姿勢ずれの保持が必要な場合がある。例えば、ワークWの溶接強度を増加させたり、ワークW端まで確実に溶接する角巻き溶接などである。なお、従来の技術では、位置ずれの保持はされるが、姿勢ずれの保持はされていない。ここで位置ずれの保持とは、レーザセンサLSの機能を使用した区間(すなわち、倣い有効区間)の終了点の位置を基準とすることをいう。又、姿勢ずれの保持とは、レーザセンサLSの機能を使用した区間(倣い有効区間)の終了点の姿勢を基準とすることをいう。
【0112】
又、一方、倣い区間においてもレーザセンサLSによる倣い機能を使わずに、溶接を行いたい場面がある。例えば、溶接区間中にレーザセンサLSにより正しく計測ができないほどのワーク形状の変化、表面状態の変化が起こることが想定される場合は、レーザセンサLSによる倣い機能を無効にして溶接を行う必要がある。この正しく計測できない区間を倣い無効区間として、倣い有効区間の終了点の位置ずれの保持と従来技術ではできなかった姿勢ずれの保持を行うことが望まれる。
【0113】
さらに、前述したレーザセンサLSが正しく計測できない区間においては、倣い有効区間の終了点の位置ずれは保持されることが望まれるが、姿勢ずれの保持を行わないで教示姿勢をとることが望まれる場合がある。例えば、ワークWや冶具が複雑で、溶接トーチ14やレーザセンサLSのセンサヘッドが干渉してしまうことが想定される場合である。溶接トーチ14の先端の少量の姿勢変化でも前記先端より離れて位置するセンサヘッドは回転半径が大きくなるため大きく振られることがあり、ワークWや冶具が複雑であると干渉する可能性がある。そのため、本実施形態のS610で行うように、前記倣い有効区間の終了点の姿勢を保持する場合と教示姿勢をとる場合とで切替えることができると、このような場合に対処することができる。
【0114】
本実施形態の溶接ロボットの制御装置では下記の特徴がある。
(1) 本実施形態の溶接ロボットの制御装置10は、ロボット制御部RC(制御手段)は、教示点間の補間点演算を行う補間点算出処理部23(補間点演算手段)を有する。補間点算出処理部23は、倣い有効区間の終了点であって倣い無効区間の開始点の教示データに姿勢補正がオンとなっていない場合(姿勢補正指令がない場合)、第1位置姿勢制御を行う。又、補間点算出処理部23は、開始点の教示データに姿勢補正がオンとなっている場合(姿勢補正指令がある場合)、倣い有効区間の終了点における実姿勢と、教示データに基づく教示姿勢との差に基づいてロボットの姿勢制御を行う。合わせて補間点算出処理部23は、倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行う。
【0115】
この結果、本実施形態では、倣い無効区間の開始点の教示データに姿勢補正指令があるか否かに応じて、姿勢制御の切替えができる。
なお、本発明の実施形態は以下のように変更してもよい。
【0116】
○ 前記各実施形態では、溶接ロボットの制御装置に具体化したが、溶接ロボットの制御装置に限定されるものではなく、他の作業用ロボットの制御装置、例えば、塗装ロボットの制御装置に具体化するようにしてもよい。この場合、塗装ロボットのマニピュレータに搭載される塗装ガンが作業ツールに相当する。
【0117】
○ 前記実施形態では、センサとしてレーザセンサLSを使用したが、レーザセンサLSに限定されるものではない。ワークの表面までの測定距離が計測できるものであればよい。
【符号の説明】
【0118】
RC…ロボット制御部(制御手段)、
LU…センサ制御部(目標位置姿勢演算手段)、
LS…レーザセンサ(センサ)、M…マニピュレータ、
14…溶接トーチ(作業ツール)、
23…主軌道補間点算出処理部(補間点演算手段)、
29…第2メモリ(記憶手段)。
【技術分野】
【0001】
本発明は、ロボットに設けられる作業ツールと、前記作業ツールに配置され作業対象物の形状を検出するセンサとを備え、予め設定された主軌道に沿って前記作業ツールを動作させるとともに、前記センサの出力により前記作業ツールの動作を補正するロボットの制御装置に関する。
【背景技術】
【0002】
ロボットに設けられる作業ツールと、前記作業ツールに配置され作業対象物の形状を検出するセンサとを有するとともに、予め設定された主軌道に沿って作業ツールを動作させて前記センサの出力により前記作業ツールの動作を補正するロボットとして、例えば、レーザセンサ倣い技術を実現するアーク溶接ロボットが公知である。
【0003】
前記アーク溶接ロボットのシステムでは、図16に示すように、マニピュレータMの自由端に溶接トーチ50とレーザセンサLSとが設けられている。そして、溶接トーチ50よりも先行するレーザセンサLSが取得した測距データに基づいて、センサ制御部LUは画像解析を行うことにより、開先の特徴点や物理量(開先に応じたギャップ量、開先角度、開先面積等)を含む開先情報を取得するとともに得られた特徴点をつなぎ合わせることにより溶接トーチ50の3次元軌道を生成するようにしている。
【0004】
ここで、求められた3次元軌道において、その接線ベクトルが進行方向ベクトルと定義される。センサ制御部LUは、開先情報(すなわち、前記特徴点と物理量)に対して、開先内にある特徴線を基準角度と定義して基準角度に対する目標相対角度を与えることにより、進行方向ベクトルとあわせて、開先に対する溶接トーチ50の目標姿勢を生成するようにしている。
【0005】
例えば、図17は、重ね継手に対してレーザセンサLSにてサンプリングした測距データに基づいて画像解析を行った場合の開先情報を示している。重ね継手の場合、図17に示すように上板(図示しない)の端角となるポイントが特徴点となる。この場合、特徴点の通過する開先法線を基準角度にし、該基準角度に対する目標相対角度を与えることにより、進行方向ベクトルとあわせて、開先に対する溶接トーチ50の目標姿勢を生成することができる。
【0006】
図18は、同じく重ね継手に対して得られた特徴点をつなぎ合わせることにより溶接トーチ50の3次元軌道を生成した例である。
ところで、レーザセンサLSより得られた測距データに基づく開先情報だけでは、開先座標系に対する特徴点の位置・姿勢しか計算できない。そこで、ロボット制御部RCは、ロボット座標系における溶接トーチ50の現在座標をセンサ制御部LUに送信している。
【0007】
センサ制御部LUは、受信した溶接トーチ50のロボット座標系の現在座標、画像解析により取得された特徴点座標、予め付与されている速度(速度データ)により、ロボット座標系での目標位置(すなわち、目標座標)を演算してロボット制御部RCに返信する。
【0008】
ロボット制御部RCでは、教示データから生成した補間点を、受信した前記目標位置(目標座標)と置き換えて、マニピュレータMを動作させることにより倣いを行う。
なお、特許文献1では、溶接中にスキャニング式レーザセンサを先行させて、前進・後進角θを保持するように姿勢制御を行うことが開示されている。
【0009】
又、特許文献2〜4では、プラズマ溶接の教示にあたり、距離検出型又はスキャニング型のレーザセンサを先行させ、前進・後進角を0度に自動設定するシステムが開示されている。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特許第2935600号公報
【特許文献2】特開昭64−37602号公報
【特許文献3】特開昭64−37605号公報
【特許文献4】特開昭64−37606号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
ところで、従来の技術においては、レーザセンサによる姿勢修正を行うことが可能である。
一方、図8に示すように、溶接区間の一部で溶接トーチ50がワークWの一部に極めて接近するようなケースでは、その区間は教示姿勢を保持しつつ位置修正のみを行い、その区間の前後では姿勢修正を行う、という運用を望む場合がある。
【0012】
しかし、従来の姿勢修正倣いでは、1つの倣い区間NR(図10参照)中では、姿勢修正を常に続ける、又は姿勢修正を行わない、という二者択一となっているため、このようなケースでは全区間姿勢修正を行わずに(位置修正のみで)運用する必要があった。図8の例では、干渉部Waがあり、この干渉部Waにおいて、溶接トーチ50と干渉する虞があるが、従来は、このような場合、倣い区間NR全体において、姿勢修正を行わず、位置修正のみを行うようにする。
【0013】
図10、図8を例にすると、倣い区間NRにおいて、Pa,Pbがそれぞれの教示点であり、Lは溶接線である。この図10の例の倣い区間NRで姿勢修正を行わない場合、教示点Paでは、位置、倣い開始指令、姿勢修正指令(オフ)等を含む教示データが、教示点Pbでは、位置、倣い終了指令等を含む教示データが設定される。
【0014】
ここで、倣い区間とは、最初の倣い開始指令が設定された教示点と、倣い終了指令が設定された教示点の間の区間である。
なお、特許文献1は、倣い区間中は常に姿勢制御を行うようにしており、特許文献1の技術では、上記問題は解決できない。
【0015】
又、特許文献2〜4では、ツールをワークに対して面に対して直角になるように教示するためのものであり、これらの技術においても、上記問題は解決できない。
又、レーザセンサが正しく計測できない溶接区間においては、倣い終了点の位置ずれは保持されることが望まれるが、姿勢ずれは保持しないで教示姿勢をとることが望まれる場合がある。ワークや冶具が複雑で、溶接トーチやレーザセンサのセンサヘッドが干渉してしまうことが想定される場合である。トーチ先端の少量の姿勢変化でもトーチ先端よりはなれたセンサヘッドは回転半径が大きくなるため大きく振られることがあり、ワークや冶具が複雑であると干渉する可能性がある。
【0016】
本発明の目的は、作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができるロボットの制御装置を提供することにある。
【課題を解決するための手段】
【0017】
上記問題点を解決するために、請求項1の発明は、作業ツールの作業に先行して作業対象物の形状を認識するセンサを備え、前記センサを利用する倣い有効区間では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行う制御手段を備えたロボットの制御装置において、前記制御手段は、前記倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、前記倣い無効区間の教示点における教示データに含まれる教示姿勢となるように前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行うことを特徴とするロボットの制御装置を要旨とするものである。
【0018】
なお、本明細書において、センサを利用するとは、センサの検出を利用することをいう。又、センサを利用しないとは、センサ自体が検出を行わない場合、及びセンサ自体は検出動作するが、その検出結果を利用しない場合を含む趣旨である。
【0019】
請求項2の発明は、請求項1において、前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、前記補間点演算手段は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、前記センサの検出結果に基づいて姿勢修正のための演算を行い、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行うことを特徴とする。
【0020】
請求項3の発明は、請求項2において、前記教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とすることを特徴とする。
【0021】
請求項4の発明は、請求項2又は請求項3において、前記補間点演算手段は、姿勢修正を行う場合、姿勢制限値の範囲内で姿勢修正が行われるように演算を行うことを特徴とする。
【0022】
請求項5の発明は、請求項2乃至請求項4のうちいずれか1項において、前記センサの検出結果に基づき、目標位置姿勢を算出する目標位置姿勢演算手段を備え、前記補間点演算手段は、前記倣い有効区間では前記センサの検出結果に基づく前記教示点間の補間点演算として、前記目標位置姿勢に基づいて前記教示点間の補間点演算を行い、又、前記補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置姿勢が得られない場合には、前記目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することを特徴とする。
【0023】
請求項6の発明は、請求項5において、前記補間点演算手段は、前記目標位置姿勢演算手段から前記目標位置姿勢が得られない回数を、前記補間点演算周期毎にカウントし、そのカウント値が所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行うようにすることを特徴とする。
【0024】
請求項7の発明は、請求項1において、前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、前記補間点演算手段は、前記倣い有効区間の終了点で、かつ前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、前記第1位置姿勢制御を行い、前記開始点の教示データに姿勢補正指令がある場合、前記倣い有効区間の終了点における実姿勢と、前記教示データに基づく教示姿勢との差に基づいて前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行うことを特徴とする。
【発明の効果】
【0025】
以上詳述したように、請求項1の発明によれば、作業ツールが作業中にレーザセンサを利用する倣い有効区間と作業ツールが作業中にレーザセンサを利用しない倣い無効区間において、倣い有効区間では位置姿勢制御を行い、倣い無効区間では教示姿勢となるように姿勢制御の切替えができる効果がある。
【0026】
請求項2の発明によれば、姿勢修正指示の有無に応じて、倣い区間中の教示点間毎に姿勢修正のオンオフの切替えを行うことができる。
なお、特許文献1では、倣い区間中は常に姿勢制御を行う。それに対して、本件請求項2の発明では、倣い区間を、倣い有効区間と倣い無効区間とに区別して、教示プログラム又は自動で姿勢制御の有無を切替える点が異なる。又、特許文献2〜4では、ツールをワークに対して面に対して直角になるように教示するためのものである。それに対して、請求項2の発明では、自動倣い運転中に、リアルタイムに姿勢制御を行う点、さらに、倣い区間中に倣い有効区間と倣い無効区間とに区別してプログラムで姿勢制御の有無を切替える点が異なっている。
【0027】
請求項3の発明によれば、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを倣い区間とし、この倣い区間の中において、教示データで設定した倣い有効区間と倣い無効区間とを区別して姿勢修正のオンオフの切替えを行うことができる。
【0028】
請求項4の発明によれば、姿勢制限値の範囲内で姿勢修正が行われることから、急激な姿勢変化がなく、滑らかに姿勢修正を行うことができる。
請求項5の発明によれば、補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置及び目標姿勢が得られない場合には、前記目標位置及び目標姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することができる。
【0029】
請求項6の発明によれば、前記目標位置姿勢演算手段から前記目標位置及び目標姿勢が得られない回数のカウント値が、所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正が行われるため、ワークに対する作業ツールの干渉の可能性を抑制することができる。
【0030】
請求項7の発明によれば、倣い有効区間の終了点であって前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、第1位置姿勢制御を行うことができ、前記倣い無効区間の開始点の教示データに姿勢補正指令がある場合、第2位置姿勢制御を行うことができる。この結果、倣い無効区間の開始点の教示データに姿勢補正指令があるか否かに応じて、姿勢制御の切替えができる。
【図面の簡単な説明】
【0031】
【図1】本発明を具体化した第1実施形態の溶接ロボットの制御装置の構成を示すブロック図。
【図2】ロボット制御部及びセンサ制御部の機能ブロック図。
【図3】ロボット制御部とセンサ制御部間の送受信の説明図。
【図4】ロボット制御部とセンサ制御部間の送受信の説明図。
【図5】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図6】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図7】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図8】作用の説明図。
【図9】溶接トーチの動作の説明図。
【図10】倣い区間の説明図。
【図11】倣い区間の説明図。
【図12】第2実施形態のロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図13】ロボット制御部が実行する修正補間点算出処理プログラムのフローチャート。
【図14】第3実施形態のロボット制御部が実行する第1プログラムのフローチャート。
【図15】第3実施形態のロボット制御部が実行する第2プログラムのフローチャート。
【図16】溶接ロボットの制御装置の構成を示すブロック図。
【図17】レーザセンサが測定するワークの2次元データ。
【図18】ワークの特徴点から生成される3次元軌道を示す概略図。
【発明を実施するための形態】
【0032】
(第1実施形態)
以下、本発明のロボットの制御装置をアーク溶接ロボットの制御装置に具体化した一実施形態を図1〜11を参照して説明する。図1はアーク溶接ロボットの制御装置10(以下、溶接ロボットの制御装置10という)の構成を示すブロック図である。
【0033】
溶接ロボットの制御装置10は、ワーク(作業対象物)Wに対してアーク溶接を自動で行うように制御するものであり、溶接作業を行うマニピュレータMと、マニピュレータMを制御するロボット制御部RCと、ワークWの形状を検出するセンサとしてのレーザセンサLSと、レーザセンサLSを制御するセンサ制御部LUとを備える。又、ロボット制御部RCには、可搬式操作部としてのティーチペンダントTPが接続されている。ティーチペンダントTPは、図示しないキーボードを備え、キーボードにより各種の教示データがロボット制御部RCに入力される。
【0034】
マニピュレータMは、フロア等に固定されるベース部材12と、複数の軸を介して連結された複数のアーム13とを備える。最も先端側に位置するアーム13の先端部には、作業ツールとしての溶接トーチ14が設けられる。溶接トーチ14は、溶加材としてのワイヤ15を内装している。溶接トーチ14は図示しない送給装置によって送り出されたワイヤ15の先端とワークWとの間にアークを発生させ、その熱でワイヤ15を溶着させることによりワークWに対して溶接を施す。アーム13間には複数のモータ(図示しない)が配設されており、モータの駆動によって溶接トーチ14を前後左右に自在に移動できるように構成されている。
【0035】
ロボット制御部RCは、コンピュータから構成されており、前記モータを駆動制御することにより、予め設定された教示データの主軌道に沿って溶接トーチ14を動作させる。ロボット制御部RCは位置姿勢倣い制御を行う制御手段に相当する。
【0036】
又、ロボット制御部RCは、溶接電流及び溶接電圧といった溶接条件を溶接電源WPSに対して出力するとともに、溶接電源WPSからパワーケーブルPKを通じて供給される電力によって溶接作業を行わせる。
【0037】
レーザセンサLSは、レーザの発光及び受光によりワークWまでの距離を測定する走査型のレーザセンサであり、溶接トーチ14に搭載され、溶接トーチ14が溶接線に沿って進行する方向側における開先開放(すなわち、未溶接部位)部位の距離を測定する。レーザセンサはセンサに相当する。
【0038】
センサ制御部LUは、コンピュータから構成されている。センサ制御部LUは、レーザセンサLSを駆動制御して、測定される距離情報からワークWの開先形状を検出する。センサ制御部LUは、レーザセンサLSを制御して、所定の範囲を走査しながら各サンプリング点について距離を測定して、2次元データを取得する。センサ制御部LUは、複数のサンプリング点の2次元データからワークWの開先形状を作成して、該開先形状からワークWの特徴点を取得する。センサ制御部LUは、溶接トーチ14が溶接線に沿って移動した位置においても、同様の手法で距離を測定してワークWの特徴点Dを取得する(図18参照)。
【0039】
そして、センサ制御部LUは、取得された特徴点Dをつなぎ合わせることで特徴点の3次元軌道E(図18参照)を生成する。センサ制御部LUは、このように求めた3次元軌道Eから溶接トーチ14の目標位置及び目標姿勢を設定する。以下、目標位置及び目標姿勢を目標位置姿勢という。すなわち、センサ制御部LUは、3次元軌道Eの接線ベクトルを進行方向ベクトルvとして目標位置を設定するとともに、ワークWの法線に対して予め設定された所定の目標相対角度αを与えることで目標姿勢を設定する(図17参照)。
【0040】
なお、センサ制御部LUは、目標位置姿勢を設定する際に、レーザセンサLSにより検出される開先情報だけでは、レーザセンサLSを基準としたセンサ座標系に対する位置及び姿勢しか算出できない。このため、センサ制御部LUは、ロボット制御部RCから溶接トーチ14の現在位置及び姿勢(以下、現在位置姿勢という)を取得して、レーザセンサLSを基準としたセンサ座標系からマニピュレータMを基準としたロボットの基準座標系への変換を適宜行う。
【0041】
すなわち、センサ制御部LUは、ロボット制御部RCから取得した現在位置姿勢と、センサ制御部LUに予め記憶されているセンサ座標系から基準座標系への同次変換行列と、レーザセンサLSにより検出される開先情報とから、基準座標系における目標位置及び姿勢を算出する。
【0042】
次に、マニピュレータMにより溶接作業が行われるときに、ロボット制御部RC及びセンサ制御部LUが行う制御について説明する。なお、ロボット制御部RCには、溶接作業が行われる前に、溶接が行われる際のマニピュレータMの動作及び溶接条件等を示す教示データ、及び倣い区間を構成するための教示点が入力されている。図2にロボット制御部RC及びセンサ制御部LUの機能ブロック図を示す。
【0043】
ロボット制御部RCは、教示データから溶接トーチ14の主軌道補間点を算出するとともに、溶接トーチ14の目標位置及び姿勢に基づいて補正を行う補間点算出処理部23と、溶接トーチ14の現在位置姿勢を算出する現在位置算出処理部25と、センサ制御部LUと通信を行うための通信処理部27を備える。補間点算出処理部23は補間点演算手段に相当する。又、現在位置算出処理部25は現在位置算出手段に相当する。センサ制御部LUは目標位置設定手段に相当する。
【0044】
又、ロボット制御部RCは、ロボット制御部RCとセンサ制御部LU間の通信時の所定のコマンドを逐次カウントする。又、ロボット制御部RCは、そのカウント数を格納するカウント記憶手段としての第1メモリ28を備えている。さらに、ロボット制御部RCは、各種のプログラムを格納するメモリを備える。例えば、ロボット制御部RCは、補間点算出処理部23及び現在位置算出処理部25がそれぞれ行う処理を実行するプログラム、及び、教示データ、及び修正補間点算出処理プログラムをそれぞれ格納する第2メモリ29を備えている。第2メモリ29は、記憶手段に相当する。記憶手段は、読出し、書込み可能な不揮発性メモリからなり、例えばEEPROM等からなる。又、ロボット制御部RCは、RAMからなる作業用メモリ30を備えている。
【0045】
補間点算出処理部23は、溶接トーチ14の移動に先行して、溶接トーチ14の位置及び姿勢を示す複数の主軌道補間点を前記教示データから算出する。算出された主軌道補間点は、バッファ24に格納されるとともに、順次現在位置算出処理部25に送られる。
【0046】
現在位置算出処理部25は、マニピュレータMに内蔵されているとともにモータ(図示しない)の回転位置を検出するエンコーダ等から読み出した位置検出値に基づいて、溶接トーチ14の現在位置姿勢を算出する。前記算出された現在位置姿勢は、通信処理部27を介してセンサ制御部LUに送信される。
【0047】
なお、通信処理部27は、センサ制御部LUに対して制御情報を送信する際に、その種類を明示するためのコマンドを付して送信したり、或いは通信開始や、通信終了等を示す各種コマンドを送信する。前記算出された現在位置姿勢を制御情報として通信処理部27が送信する場合、例えば、前記制御情報の先頭にはコマンドとして「CG」が付される。
【0048】
センサ制御部LUは、通信処理部LUaを介して前記現在位置姿勢を受信する。そして、センサ制御部LUは、レーザセンサLSによるセンサ補正周期Scycle(秒)で得られ
るワークWの形状検出結果と受信した現在位置姿勢とを照らし合わせて、溶接トーチ14の目標位置及び姿勢を設定(算出)する。そして、センサ制御部LUは、設定(算出)された目標位置及び姿勢を、通信処理部LUaを介してロボット制御部RCの通信処理部27に送信する。なお、通信処理部LUaは、ロボット制御部RCに対して制御情報を送信する際に、その種類を明示するためのコマンドを付して送信したり、或いは通信開始や、通信終了等を示す各種コマンドを送信する。ここで、前記設定(算出)された目標位置及び姿勢を制御情報として通信処理部LUaが送信する場合、例えば、前記制御情報の先頭にはコマンドとして「cc」が付される。
【0049】
ロボット制御部RCの通信処理部27は受信した目標位置及び姿勢を補間点算出処理部23に入力する。そして、補間点算出処理部23は、前記主軌道補間点を、前記受信した目標位置及び姿勢に基づいて修正補間点算出処理を行う。この修正補間点算出処理については、後述する。
【0050】
なお、センサ制御部LUは、溶接トーチ14の目標位置及び姿勢を設定(算出)ができない場合がある。例えば、レーザセンサLSが被溶接物であるワークWの開先を認識できなかった場合に発生する。開先が認識できない場合としては、ワークWにおいて予め設定したプロファイルに、実際の形状が当てはまらない場合であって、ワークWにおいて倣い区間中にある仮付けにより開先がなくなる場合や、或いはワークWに大きな湾曲があり、開先上にレーザ光を照射できなくなった場合である。
【0051】
この場合は、センサ制御部LUは、溶接トーチ14の目標位置及び姿勢を設定(算出)ができなかった、すなわち、目標位置等計算不成功を意味するコマンド「cz」をロボット制御部RCに送信する。この場合、ロボット制御部RCはこのコマンド「cz」を通信処理部27を介して受信すると、これまでの補間点補正を保持する。
【0052】
ここで、センサ制御部LUとロボット制御部RCで行う通信例について説明する。
図3は、センサ制御部LUで目標位置等の計算が成功した事例であって、ロボット制御部RCとセンサ制御部LU間の通信において、倣い開始から倣い終了までの通信例が示されている。図3において、ロボット制御部RCから倣い開始コマンドMTが送信され、センサ制御部LUでこのコマンドを受信すると、センサ制御部LUから倣い開始レディコマンドmoが送信される。以後、ロボット制御部RCからコマンドCGが付された現在位置姿勢の送信がされ、センサ制御部LUでこれを受信すると、センサ制御部LUでは、前述したように目標位置姿勢の設定(算出)がされる。そして、センサ制御部LUは目標位置姿勢をロボット制御部RCにコマンドccを付して送信する。以後、同様に繰り返される。ここで、コマンドccは、目標位置等の計算に成功した場合に該目標位置等に付されるコマンドであるため、レーザセンサLSがワークWの形状を認識できた結果を示すことになる。
【0053】
そして、倣いが終了される際には、ロボット制御部RCから倣い終了指令コマンドMEがセンサ制御部LUに送信される。そして、センサ制御部LUはこのコマンドを受信すると、倣い終了コマンドとしてmoを送信する。ロボット制御部RCは、このコマンドを受信することにより、倣いを終了する。
【0054】
図4は、センサ制御部LUで、目標位置姿勢の計算が不成功の事例が示されている。なお、図4での図3との重複説明は省略する。ここでは、目標位置姿勢の設定(すなわち、計算)が不成功の場合は、コマンドczがロボット制御部RCに送信される。図4の例では、続けてコマンドczがロボット制御部RCに送信されていることが示されている。コマンドczは目標位置姿勢の計算に成功しなかった場合に送信されるコマンドであるため、レーザセンサLSがワークWの形状を認識できなかった結果を示すことになる。
【0055】
次に、センサ制御部LUから目標位置姿勢を取得したときの、ロボット制御部RCの補間点算出処理部23が行う修正補間点算出処理の詳細を説明する。
(修正補間点算出処理)
図5〜7は、補間点算出処理部23が修正補間点算出処理プログラムに従って実行する修正補間点算出処理のフローチャートであり、所定制御周期毎に実行する。本実施形態では、このプログラムは20msec毎に実行するが、制御周期は限定されるものではない。この制御周期は、補間点演算周期に相当する。
【0056】
S10では、補間点算出処理部23は、ロボットの現在位置姿勢をセンサ制御部LUに送信する。S20では、補間点算出処理部23はセンサ制御部LUから目標位置姿勢(POSt,POSEt)を読み込む。S30では、補間点算出処理部23は、目標位置姿勢を受信した時の現在位置姿勢(POSm,POSEm)を、作業用メモリ30に退避する。S40では、補間点算出処理部23は、姿勢修正有効か否か、すなわち、姿勢修正が有効に設定されているか否かを、教示データに基づいて判定する。
【0057】
ここで、各教示点において教示される教示データには、当該教示点から、次の教示点まで姿勢修正を行う場合、姿勢修正が有効で有る旨の教示データが設定されている。又、当該教示点から、次の教示点まで姿勢修正を行わない場合、姿勢修正が無効で有る旨の教示データが設定されている。この姿勢修正が有効である旨の教示データは、姿勢修正指示の有りのデータに相当する。又、姿勢修正が無効である旨の教示データは姿勢修正指示が無しのデータに相当する。
【0058】
姿勢修正が有効に設定されている場合には、補間点算出処理部23はS40の判定を「YES」として、S50に移行して、姿勢反映処理ルーチンを実行した後、S60の公知の目標位置反映処理ルーチンを実行して、このフローチャートを、一旦終了する。なお、S50の姿勢反映処理ルーチンについては後述する。又、姿勢修正が有効に設定されていない場合、すなわち、姿勢修正が無効に設定されている場合には、補間点算出処理部23は、S70に移行する。
【0059】
又、S70に移行した場合、補間点算出処理部23は、姿勢修正履歴が有るか否かを判定する。この姿勢修正履歴が有るか否かの判定は、姿勢修正の補間点があったか否かを見ているのである。S70において、姿勢修正履歴が無い場合には、補間点算出処理部23は、S60に移行して目標位置反映処理ルーチンを実行する。補間点算出処理部23は、姿勢修正履歴が有る場合には、S80で、目標姿勢を、目標位置姿勢を受信した時の現在姿勢POSEmに置き換えた後、S50の姿勢反映処理ルーチンを実行する。S80で、目標姿勢を、目標位置姿勢を受信した時の現在姿勢POSEmに置き換えることにより、急激な姿勢変化を起こさせないようにしている。この後、徐々にマニピュレータMを教示姿勢にもっていきたいためである。これは、マニピュレータMに無理な動作をさせないためである。
【0060】
(姿勢反映処理ルーチン)
次に、姿勢反映処理ルーチンを図6を参照して説明する。
S100では、補間点算出処理部23は、姿勢制限値としての姿勢リミッタRlを第2メモリ29から読み込む。姿勢リミッタRlは、マニピュレータMを作動させるときの最大動作範囲を限定するためのものである。S110では、補間点算出処理部23は、現在の処理がセンサ制御部LUから目標位置姿勢を受信した直後か否かを判定する。本実施形態では、センサ制御部LUからは、通常30〜50msec毎の周期で目標位置姿勢を受信しており、受信直後であれば、その旨を示すステータスフラグがセットされ、受信直後でなくなれば、図示しないタイマにより前記ステータスフラグがリセットされる。S110での判定が、受信直後であれば、S120に移行する。又、受信直後でなければ、S300の姿勢保持処理ルーチンを実行した後、S210に移行する。なお、S300の姿勢保持処理ルーチンは後述する。S120では、補間点算出処理部23は今回の処理が倣い開始直後、すなわち、倣い開始指令(ZT)があった直後か否かを判定する。倣い開始直後であれば、S130において、前補間点姿勢Mpとして、教示データに含まれる教示目標姿勢(すなわち、教示姿勢)を設定して、S150に移行する。
【0061】
一旦、S130を経た後は、倣い開始直後でなくなるため、補間点算出処理部23はS120の判定では「NO」と判定した後、S140において、前補間点姿勢Mpとして前回の制御周期で取得した前回補間点姿勢を設定する。
【0062】
S150では、補間点算出処理部23は、S130又はS140で設定された前補間点姿勢Mpから目標姿勢への回転中心軸ベクトルVcを求める。次のS160では、補間点算出処理部23は、回転中心軸ベクトルVcの周りの回転角Rtを求め、さらに残回転角Rrを、回転角Rtから姿勢リミッタRlを減算することにより求めて、求めた残回転角Rrを作業用メモリ30のRsaveに退避する。S170では、補間点算出処理部23は、残回転角RrがRr>0か否かを判定する。Rr>0でなければ、補間点算出処理部23はS240において、回転角Rfとして姿勢リミッタRlを設定した後、S250において、作業用メモリ30のRsaveを0に設定してS190に移行する。
【0063】
又、S170において、Rr>0であれば、S190において、回転角Rfとして回転角Rtを設定する。次のS190では、補間点算出処理部23は、回転中心軸ベクトルVc周りに回転角Rf分回転する同次変換行列Mfを求め、同次変換行列Mfを作業用メモリ30のMsaveに退避する。S200では、補間点算出処理部23は、目標姿勢MTpose(=MpMf)を求める。前述のようにして目標姿勢MTposeは、前補間点姿勢Mpと同次変換行列Mfに基づいて算出される。S210では、補間点算出処理部23は、目標姿勢MTposeの位置成分に、目標位置姿勢を受信した時の現在位置POSmを代入する。S220では、補間点算出処理部23は、S210で求めた目標姿勢MTposeを作業用メモリ30のMTsaveに退避する。S230では、補間点算出処理部23は、姿勢修正履歴フラグをONに設定して、このフローチャートを一旦終了する。
【0064】
(S300:姿勢保持処理ルーチン)
次に、姿勢保持処理ルーチンを図7を参照して説明する。
この姿勢保持処理ルーチンの実行は、マニピュレータMに大きな姿勢変化をさせる場合においても、できる限り姿勢リミッタRlの範囲で、マニピュレータMを動作させるようにするのである。
【0065】
S310では、補間点算出処理部23は、姿勢修正履歴フラグがONに設定され、かつ、Rsaveが0を越えた値となっているかを判定する。姿勢修正履歴フラグがONに設定され、かつ、Rsaveが0を越えた値となっている場合には、S320に移行するとともに、姿勢修正履歴フラグがONに設定されてない、または、Rsaveが0を越えた値となっていない場合には、S380に移行する。S380では、補間点算出処理部23は、目標姿勢MTposeとして、作業用メモリ30のMTsaveに退避した値を反映させてこのルーチンを終了する。
【0066】
S320では、補間点算出処理部23は、姿勢リミッタRlを第2メモリ29から読み込む。S330では、補間点算出処理部23は、残回転角Rrを、作業用メモリ30のRsaveの値から姿勢リミッタRlを減算することにより求める。S340では、補間点算出処理部23は、残回転角RrがRr>0か否かを判定する。S340において、Rr>0でなければ(判定が「NO」)、S390において、補間点算出処理部23は、回転角Rfとして作業用メモリ30のRsaveを設定した後、S400において、作業用メモリ30のRsaveを0に設定してS360に移行する。
【0067】
又、S340において、Rr>0であれば、S350において、回転角Rfとして姿勢リミッタRlを設定した後、S360に移行する。このように残回転角Rrが0を越える場合は、回転角Rfとして姿勢リミッタRlがセットされるのである。S360では、前回の制御周期で、作業用メモリ30にMsaveに格納した同次変換行列Mfの回転中心ベクトルの周りにさらに回転角Rfで回転する同次変換行列を求め、それを同次変換行列Mfとして更新する。S370では、補間点算出処理部23は、目標姿勢MTpose(=MTsaveMf)を求める。前述のようにして目標姿勢MTposeは、前回の制御周期において、S220で作業用メモリ30のMTsaveに退避された値とS360で更新された同次変換行列Mfに基づいて算出される。S370を処理すると、このルーチンを終了して、図6のS210に移行する。
【0068】
このようにして、姿勢保持処理ルーチンにおいては、受信直後でない場合であって、姿勢修正履歴があり、かつRsaveがある場合を除いては、マニピュレータMの姿勢保持がされる。又、姿勢保持処理ルーチンにおいては、受信直後でない場合あって、姿勢修正履歴があり、かつRsaveがある場合は、姿勢リミッタRlの範囲内で、目標姿勢MTposeが設定される。
【0069】
次に、上記の修正補間点算出処理プログラムに適した倣い区間を構成する複数の教示点の教示データの設定の例を表1を参照して説明する。この例では、教示点S1〜S4の区間を1つの倣い区間NRとしている。
【0070】
【表1】
教示点S1〜S4には、表1の教示データの欄に示されているように各種指令P,AS(アークスタート),ZT(倣い開始)、L(位置指令)、ZE(倣い終了)が設定される。ここで、本例では、教示点S1〜S3では、それぞれ倣い開始を表わすZTが教示データとして設定され、教示点S4では、ZEが倣い終了を表わす倣い終了指令として設定される。本例に示すように、最初の倣い開始指令のZTから倣い終了指令迄が、1つの倣い区間として構成される。そして、ZT指令のファイルに、図示はしないが、姿勢修正指示の有無を示す教示データが入力されて格納されている。
【0071】
そして、図8の例では、教示点S1及び教示点S3のZT指令のファイルには、姿勢修正有効の旨を表わす教示データがセットされている。又、教示点S2のZT指令のファイルには、姿勢修正無効の旨を表わす教示データがセットされている。S2において、教示点S2のZT指令のファイルに、姿勢修正無効の旨を表わす教示データがセットされるのは、教示点S2・S3間には、干渉部Waが存在するからであり、この区間で、溶接トーチ14の姿勢が変化すると干渉部Waに溶接トーチ14が干渉する虞があるからである。
【0072】
従って、図8の例では、図5〜7のフローチャートで示される処理が実行されると、図11に示すように、倣い有効区間としての第1区間(S1・S2間)及び第3区間(S3・S4間)では、目標位置反映処理(図11では、位置ONで示す)、及び姿勢反映処理(図11では、姿勢ONで示す)が行われる。又、倣い無効区間としての第2区間(S2・S3間)では、目標位置反映処理(図11では、位置ONで示す)が行われるが、姿勢反映処理(図11では、姿勢OFFで示す)は行われないことになる。
【0073】
又、前記教示点S2は、倣い有効区間である第1区間(S1・S2間)の終了点であり、この終了点の実位置と、目標位置姿勢の位置との差に基づいて位置制御が行われることになる。第2区間(S2・S3間)でのロボット制御部RCの制御は、第1位置姿勢制御に相当する。
【0074】
【表2】
表2は、図8の例を、従来の技術を使用して行う際、複数の教示点の教示データを設定する場合の参考例である。この参考例では、表2に示すように、教示点S2、S3、S4のそれぞれにおいて、倣い終了指令ZEが設定されるため、S1・S2間、S2・S3間、S3・S4間が、それぞれ第1倣い区間、第2倣い区間、第3倣い区間となる。そして、倣い区間を区切る教示点S2,S3において、それぞれ倣い終了指令ZE、倣い開始指令ZTが設定されるとともに、アーク溶接終了指令AE及びアークスタート指令ASも設定される。従って、本例の方が、姿勢反映処理を切替えても溶接および倣いを終了する必要がなく、かつ、教示点において、各種の指令を設定入力する場合には、入力が少なくすむ利点もある。
【0075】
さて、本実施形態によれば、以下のような特徴がある。
(1) 本実施形態の溶接ロボットの制御装置は、溶接トーチ14(作業ツール)の作業に先行してワークW(作業対象物)の形状を認識するレーザセンサLS(センサ)を備える。レーザセンサLSを利用する第1区間(S1,S2間)、及び第3区間(S3,S4間)(倣い有効区間)では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行うロボット制御部RC(制御手段)を備える。
【0076】
ロボット制御部RC(制御手段)は、倣い有効区間としての第1区間(S1・S2間)に隣接する前記センサを利用しない第2区間(S2・S3間)(倣い無効区間)では、倣い無効区間の教示点における教示データに含まれる教示姿勢となるようにロボットの姿勢制御を行うとともに、倣い有効区間の終了点の実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行う。この結果、本実施形態では、溶接トーチ14(作業ツール)が作業中にレーザセンサLSを利用する倣い有効区間としての第1区間(S1・S2間)、第3区間((S3,S4間))と溶接トーチ14(作業ツール)が作業中にレーザセンサLSを利用しない倣い無効区間としての第2区間(S2・S3間)において、倣い有効区間では位置姿勢制御を行うとともに、倣い無効区間では教示姿勢となるように姿勢制御の切替えができる効果がある。
【0077】
(2) 本実施形態の溶接ロボットの制御装置では、ロボット制御部RC(制御手段)は、前記教示点間の補間点演算を行う補間点算出処理部23(補間点演算手段)を備える。そして、補間点算出処理部23は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、レーザセンサLSの検出結果に基づいて姿勢修正のための演算を行う。又、補間点算出処理部23は、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行う。
【0078】
この結果、本実施形態では、制御周期(補間点演算周期)毎に、姿勢修正指示の有無を判定するため、教示データで設定した教示点間毎に、姿勢修正のオンオフの切替えを行うことができる。
【0079】
(3) 本実施形態の溶接ロボットの制御装置10は、教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とする。この結果、本実施形態によれば、最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを倣い区間とし、この倣い区間の中において、教示データで設定した倣い有効区間と倣い無効区間とを区別して姿勢修正のオンオフの切替えを行うことができる。
【0080】
(4) 本実施形態の溶接ロボットの制御装置では、補間点算出処理部23は、姿勢修正を行う場合、姿勢リミッタRl(姿勢制限値)の範囲内で姿勢修正が行われるように演算を行うようにされている。この結果、本実施形態の溶接ロボットの制御装置では、姿勢リミッタRl(姿勢制限値)の範囲内で姿勢修正が行われることから、急激な姿勢変化がなく、滑らかに姿勢修正を行うことができる。
【0081】
すなわち、図9で示す14Aは、姿勢修正前の場合であれば教示姿勢の溶接トーチの姿勢、又は、姿勢修正中であれば、前回の制御周期で修正したときの溶接トーチの姿勢を示している。図9で示す14Bは、14Aで示される溶接トーチの姿勢の場合、姿勢リミッタRlで許容されている最大範囲の溶接トーチの姿勢である。又、図9で示す14Cは、レーザセンサLSから取得した目標姿勢である。同図に示すように、14Aの位置の位置する溶接トーチは、14Cで示す目標姿勢をセンサ制御部LUから通知があっても、14Bで示される位置までの姿勢の変化は許容されるが、目標姿勢までは変化しないことになる。なお、図9において、TCP(Tool Center Point)は、溶接トーチ14の姿勢の
基準となるポイントである。このように姿勢リミッタRlで制限することにより、急激に動作することがなくなり、滑らかな動作を実現することができる。
【0082】
(第2実施形態)
次に、第2実施形態を図12及び図13を参照して説明する。第2実施形態は第1実施形態の溶接ロボットの制御装置のハード構成と同一の制御装置であるため、同一構成については、同一符号を付す。第2実施形態では、修正補間点算出処理プログラムが一部異なっているため、異なるところを中心に説明する。又、フローチャートにおいて、第1実施形態のステップ番号と同一ステップについては同一ステップ番号を付す。なお、第2実施形態では、センサ制御部LUは、目標位置姿勢演算手段に相当する。
【0083】
図12に示すように、第2実施形態では、S40において、補間点算出処理部23の判定が「YES」の場合、すなわち、姿勢修正が有効に設定されている場合には、S42に移行する。
【0084】
S42では、補間点算出処理部23は、センサ制御部LUからコマンドとして「cc」が送られてきたか否か、すなわち、この今回の制御周期の処理に入った際に、センサ制御部LUからの目標位置姿勢を含む制御情報を受信した際にccメッセージがあったか否かを判定する。ccメッセージがあった場合には、補間点算出処理部23は、センサ制御部LUでの目標位置姿勢の計算が成功して、目標位置姿勢が送られてきているため、S44において、czカウンタを0にリセットした後、S50に移行する。なお、czカウンタは、第1メモリ28(カウント記憶手段)にて構成されている。
【0085】
S42において、ccメッセージがなかった場合には、補間点算出処理部23は図13に示すS500に移行する。S500では、補間点算出処理部23は、センサ制御部LUからコマンドとして「cz」が送られてきたか否か、すなわち、この今回の制御周期の処理に入った際に、センサ制御部LUからの目標位置姿勢を含む制御情報を受信した際にczメッセージがあったか否かを判定する。czメッセージがあった場合には、補間点算出処理部23は、センサ制御部LUでの目標位置姿勢の計算が成功していない場合であり、目標位置姿勢が送られてきていないため、S510に移行する。なお、czメッセージがない場合には、補間点算出処理部23は、S550に移行して異常であるとして異常の場合に対応した異常処理を行う。
【0086】
S510では、補間点算出処理部23は、czカウンタを1加算した後、S520に移行する。S520では、czカウンタがN以上か否かを判定する。Nは、所定閾値回数に相当する。所定閾値回数Nは、後述する姿勢修正量の累積回数である。本実施形態では、例えば、所定閾値回数Nは4〜6回に設定されているが、この数値に限定されるものではない。S520において、czカウンタがN以上であれば、S530において、補間点算出処理部23は、対応する教示姿勢を累積姿勢修正量分回転させた値に修正した後、S50に移行する。なお、補間点算出処理部23は、czカウンタがカウントする毎に、図示しない別ルーチンで姿勢修正量を累積して、累積した値を累積姿勢修正量としている。
【0087】
又、S520において、czカウンタがN未満であれば、S540において、補間点算出処理部23は、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持した後、S50に移行する。
【0088】
本実施形態では、レーザセンサLSが開先認識のため、予め認識パータンを設定しているが、干渉物が、レーザセンサLSの視野に入る等することにより、認識パータンが合致しない場合がある。このような場合、センサ制御部LUからロボット制御部RCにczメッセージがその区間連続してロボット制御部RCに送信される。
【0089】
そこで、本実施形態では、姿勢修正有効の区間において、czメッセージをセンサ制御部LUからロボット制御部RCが受信した場合、czメッセージの累積数がN未満のときは、czメッセージを受信する直前の目標姿勢を保持することになる。
【0090】
さらに、czメッセージが一定数(N回)連続して受信した場合、その時点で、補間点算出処理部23は、対応する教示姿勢を累積姿勢修正量分回転した姿勢に修正する(S530)。なお、姿勢リミッタRlによる処理は、第1実施形態と同様に行われる。この後、再度、ccメッセージをロボット制御部RCが受信し始めると、センサ制御部LUから通知された目標姿勢への修正を開始することになる。このように、本実施形態では、姿勢修正が有効時であっても、何らかの要因でレーザセンサLSが開先の形状を認識できず、認識ができない区間(すなわち、czメッセージが送られてくる間の区間)が発生した場合、ワークWに対する溶接トーチ14の干渉の可能性を抑制することができることになる。
【0091】
第2実施形態の溶接ロボットの制御装置では下記の特徴がある。
(1) 本実施形態の溶接ロボットの制御装置は、レーザセンサLS(センサ)の出力に基づき、目標位置姿勢を算出するセンサ制御部LU(目標位置姿勢演算手段)を備えている。センサ制御部LUは、レーザセンサLSの出力に基づく教示点間の補間点演算として、目標位置姿勢に基づいて前記教示点間の補間点演算を行う。又、補間点算出処理部23(補間点演算手段)は、センサ制御部LUからの目標位置姿勢が得られない場合には、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持する。この結果、本実施形態の制御装置によれば、補間点算出処理部23は、センサ制御部LUからの目標位置姿勢が得られない場合には、目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することができる。
【0092】
(2) 本実施形態の溶接ロボットの制御装置は、補間点算出処理部23(補間点演算手段)は、センサ制御部LUから目標位置姿勢が得られない回数を、補間点演算周期毎にカウントするとともに、そのカウント値が所定閾値回数(N)を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行う。この結果、本実施形態の制御装置では、姿勢修正が有効時であっても、何らかの要因でレーザセンサLSが開先の形状を認識できず、認識ができない区間(すなわち、czメッセージが送られてくる間の区間)が発生した場合、ワークWに対する溶接トーチ14の干渉の可能性を抑制することができる。
【0093】
(第3実施形態)
次に、第3実施形態を図14、図15を参照して説明する。本実施形態は第1実施形態の溶接ロボットの制御装置のハード構成と同一の制御装置であるため、同一構成については、同一符号を付す。本実施形態では、補間点算出処理部23は制御手段に相当する。第3実施形態では、第1実施形態とプログラムが一部異なっているため、異なるところを中心に説明するが、説明の便宜上、フローチャートにおいて、第1実施形態のステップ番号と同一ステップについては同一ステップ番号を付す。
【0094】
本実施形態の修正補間点算出処理プログラムは、第1実施形態の修正補間点算出処理プログラムにおいて、図14に示すようにS70,S80が省略されているところが異なっている。そして、S40において、姿勢修正が無効に設定されている場合、補間点算出処理部23は、S60に移行するところが、第1実施形態と異なっている。S10〜S60は第1実施形態と同一のため、説明を省略する。
【0095】
本実施形態の修正補間点算出処理プログラムは、第1実施形態と同様に倣い区間を構成する最初の教示点において、教示データに最初の倣い開始指令ZTが含まれると起動され、倣い終了指令ZEを含む教示データが教示された倣い区間の教示点までの間、所定制御周期毎に実行される。
【0096】
又、本実施形態では、図15に示す姿勢量保持プログラムが補間点算出処理部23により実行されるところが第1実施形態と異なっている。姿勢量保持プログラムは、記憶手段としての第2メモリ29に記憶されている。
【0097】
前記姿勢量保持プログラムは、倣い区間中の倣い有効区間が終了した後に前記倣い有効区間に隣接する倣い無効区間において、開始点となる教示点(すなわち、倣い有効区間の終了点)に設定されている教示データにセンサ制御部LUからの目標位置姿勢を含む制御情報を利用しないアークスタートが含まれていると起動される。そして、前記プログラムは、アーク溶接終了指令を含む教示データが教示された教示点までの間に実行される。
【0098】
このプログラムが起動されると、S610では、補間点算出処理部23は、姿勢補正がオンとなっているか否かを教示点(すなわち、前記終了点)に設定された教示データに基づいて判断する。前記姿勢補正がオンとなっていることは、姿勢補正指令に相当する。すなわち、姿勢補正がオンとなっている場合、補間点算出処理部23は当該倣い無効区間が姿勢量保持区間であると判定して、S620〜S720に移行することにより第2位置姿勢制御を行う。
【0099】
又、S610において、姿勢補正がオンとなっていない場合には、補間点算出処理部23は、S730〜790に移行することにより第1位置姿勢制御を行う。
S620では、補間点算出処理部23は、前記倣い区間における教示時の終了点の位置(終了点位置)POSetと教示時の該終了点の姿勢POSEetを、当該教示点の教示データから取得する。
【0100】
S630では、補間点算出処理部23は、前記倣い区間の終了点における位置POSmと、該終了点の姿勢POSEmを、倣い時の現在位置算出処理部25が算出した実位置、実姿勢から取得する。
【0101】
S640では、補間点算出処理部23は、S620で取得した終了点の位置POSetと、S630で取得した終了点の位置POSmの差POSnを演算する。
S660では、補間点算出処理部23は、教示時の終了点の姿勢POSEetから、倣い時の終了点の姿勢POSEmへの回転中心軸ベクトルVcを求める。
【0102】
S670では、補間点算出処理部23は、回転中心軸ベクトルVc周りの回転角Rtを求める。
S680では、補間点算出処理部23は、回転中心軸ベクトルVc周りに回転角Rtで回転する同次変換行列Mfaを求める。
【0103】
上記のようにして、補間点算出処理部23は、同次変換行列Mfaを求めた後、補間点演算周期毎にS690〜S720を、溶接トーチ14が姿勢量保持区間の終了点に達する迄、各教示点で設定されている教示データに基づき行う。
【0104】
すなわち、S690においては、補間点算出処理部23は、姿勢量保持区間にある教示点毎に、各教示点毎に設定された教示姿勢と前記同次変換行列Mfaに基づいて当該教示点の目標姿勢を算出する。具体的には、補間点算出処理部23は、姿勢量保持区間の教示姿勢Mpt1,2…に対する目標姿勢MTpose1,2…nを下記演算式で求める。
【0105】
MTpose1,2…n=Mpt1,2…n・Mfa
又、S700では、補間点算出処理部23は、目標姿勢MTpose1,2…nの位置成分に前記差POSnを代入する。
【0106】
以上のS620〜S700迄が、姿勢反映処理となる。
S710では、補間点算出処理部23は、公知の目標位置反映処理を行う。
S710の処理が終了すると、S720では、補間点算出処理部23は、溶接トーチ14の現在の位置が姿勢量保持区間にあるか否かを判定し、溶接トーチ14の現在の位置が姿勢量保持区間にある場合には、S690にジャンプする。
【0107】
又、S720において、補間点算出処理部23は、溶接トーチ14の現在の位置が姿勢量保持区間の終了点の場合には、このフローチャートの処理を終了する。
次に、S610からS730に移行した場合について説明する。
【0108】
S730〜S750は、それぞれS620〜S640とそれぞれ同じであるため、説明を省略する。
S760では、補間点算出処理部23は、倣い無効区間にある教示点毎に、各教示点毎に設定された教示姿勢勢Mpt1,2…を目標姿勢MTpose1,2…nとする。
【0109】
S770では、補間点算出処理部23は、目標姿勢MTpose1,2…nの位置成分にS750で取得した差POSnを代入する。
S780では、補間点算出処理部23は、補間点算出処理部23は、公知の目標位置反映処理を行う。
【0110】
S790では、補間点算出処理部23は、溶接トーチ14の現在の位置が倣い無効区間にあるか否かを判定し、溶接トーチ14の現在の位置が倣い無効区間にある場合には、S690にジャンプする。
【0111】
又、S790において、補間点算出処理部23は、溶接トーチ14の現在の位置が倣い無効区間の終了点の場合には、このフローチャートの処理を終了する。
上記のように構成された溶接ロボットの制御装置では、下記の場合で使用することが可能である。レーザセンサLSにより倣い有効区間の後にも溶接を続け、倣い有効区間の終了点の位置ずれの保持と姿勢ずれの保持が必要な場合がある。例えば、ワークWの溶接強度を増加させたり、ワークW端まで確実に溶接する角巻き溶接などである。なお、従来の技術では、位置ずれの保持はされるが、姿勢ずれの保持はされていない。ここで位置ずれの保持とは、レーザセンサLSの機能を使用した区間(すなわち、倣い有効区間)の終了点の位置を基準とすることをいう。又、姿勢ずれの保持とは、レーザセンサLSの機能を使用した区間(倣い有効区間)の終了点の姿勢を基準とすることをいう。
【0112】
又、一方、倣い区間においてもレーザセンサLSによる倣い機能を使わずに、溶接を行いたい場面がある。例えば、溶接区間中にレーザセンサLSにより正しく計測ができないほどのワーク形状の変化、表面状態の変化が起こることが想定される場合は、レーザセンサLSによる倣い機能を無効にして溶接を行う必要がある。この正しく計測できない区間を倣い無効区間として、倣い有効区間の終了点の位置ずれの保持と従来技術ではできなかった姿勢ずれの保持を行うことが望まれる。
【0113】
さらに、前述したレーザセンサLSが正しく計測できない区間においては、倣い有効区間の終了点の位置ずれは保持されることが望まれるが、姿勢ずれの保持を行わないで教示姿勢をとることが望まれる場合がある。例えば、ワークWや冶具が複雑で、溶接トーチ14やレーザセンサLSのセンサヘッドが干渉してしまうことが想定される場合である。溶接トーチ14の先端の少量の姿勢変化でも前記先端より離れて位置するセンサヘッドは回転半径が大きくなるため大きく振られることがあり、ワークWや冶具が複雑であると干渉する可能性がある。そのため、本実施形態のS610で行うように、前記倣い有効区間の終了点の姿勢を保持する場合と教示姿勢をとる場合とで切替えることができると、このような場合に対処することができる。
【0114】
本実施形態の溶接ロボットの制御装置では下記の特徴がある。
(1) 本実施形態の溶接ロボットの制御装置10は、ロボット制御部RC(制御手段)は、教示点間の補間点演算を行う補間点算出処理部23(補間点演算手段)を有する。補間点算出処理部23は、倣い有効区間の終了点であって倣い無効区間の開始点の教示データに姿勢補正がオンとなっていない場合(姿勢補正指令がない場合)、第1位置姿勢制御を行う。又、補間点算出処理部23は、開始点の教示データに姿勢補正がオンとなっている場合(姿勢補正指令がある場合)、倣い有効区間の終了点における実姿勢と、教示データに基づく教示姿勢との差に基づいてロボットの姿勢制御を行う。合わせて補間点算出処理部23は、倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行う。
【0115】
この結果、本実施形態では、倣い無効区間の開始点の教示データに姿勢補正指令があるか否かに応じて、姿勢制御の切替えができる。
なお、本発明の実施形態は以下のように変更してもよい。
【0116】
○ 前記各実施形態では、溶接ロボットの制御装置に具体化したが、溶接ロボットの制御装置に限定されるものではなく、他の作業用ロボットの制御装置、例えば、塗装ロボットの制御装置に具体化するようにしてもよい。この場合、塗装ロボットのマニピュレータに搭載される塗装ガンが作業ツールに相当する。
【0117】
○ 前記実施形態では、センサとしてレーザセンサLSを使用したが、レーザセンサLSに限定されるものではない。ワークの表面までの測定距離が計測できるものであればよい。
【符号の説明】
【0118】
RC…ロボット制御部(制御手段)、
LU…センサ制御部(目標位置姿勢演算手段)、
LS…レーザセンサ(センサ)、M…マニピュレータ、
14…溶接トーチ(作業ツール)、
23…主軌道補間点算出処理部(補間点演算手段)、
29…第2メモリ(記憶手段)。
【特許請求の範囲】
【請求項1】
作業ツールの作業に先行して作業対象物の形状を認識するセンサを備え、前記センサを利用する倣い有効区間では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行う制御手段を備えたロボットの制御装置において、
前記制御手段は、前記倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、前記倣い無効区間の教示点における教示データに含まれる教示姿勢となるように前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点における実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行うことを特徴とするロボットの制御装置。
【請求項2】
前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、
前記補間点演算手段は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、前記センサの検出結果に基づいて姿勢修正のための演算を行い、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行うことを特徴とする請求項1に記載のロボットの制御装置。
【請求項3】
前記教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、
最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とすることを特徴とする請求項2に記載のロボットの制御装置。
【請求項4】
前記補間点演算手段は、姿勢修正を行う場合、姿勢制限値の範囲内で姿勢修正が行われるように演算を行うことを特徴とする請求項2又は請求項3に記載のロボットの制御装置。
【請求項5】
前記センサの検出結果に基づき、目標位置姿勢を算出する目標位置姿勢演算手段を備え、
前記補間点演算手段は、前記倣い有効区間では前記センサの検出結果に基づく前記教示点間の補間点演算として、前記目標位置姿勢に基づいて前記教示点間の補間点演算を行い、
又、前記補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置姿勢が得られない場合には、前記目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することを特徴とする請求項2乃至請求項4のうちいずれか1項に記載のロボットの制御装置。
【請求項6】
前記補間点演算手段は、前記目標位置姿勢演算手段から前記目標位置姿勢が得られない回数を、前記補間点演算周期毎にカウントし、そのカウント値が所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行うようにすることを特徴とする請求項5に記載のロボットの制御装置。
【請求項7】
前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、
前記補間点演算手段は、前記倣い有効区間の終了点であって、前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、前記第1位置姿勢制御を行い、
前記開始点の教示データに姿勢補正指令がある場合、前記倣い有効区間の終了点における実姿勢と、前記教示データに基づく教示姿勢との差に基づいて前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行うことを特徴とする請求項1に記載のロボットの制御装置。
【請求項1】
作業ツールの作業に先行して作業対象物の形状を認識するセンサを備え、前記センサを利用する倣い有効区間では、前記センサの検出結果に基づく目標位置姿勢に基づいて位置姿勢倣い制御を行う制御手段を備えたロボットの制御装置において、
前記制御手段は、前記倣い有効区間に隣接する前記センサを利用しない倣い無効区間では、前記倣い無効区間の教示点における教示データに含まれる教示姿勢となるように前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点における実位置と、前記目標位置姿勢の位置との差に基づいて位置制御を行う第1位置姿勢制御を行うことを特徴とするロボットの制御装置。
【請求項2】
前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、
前記補間点演算手段は、教示点でセットされている教示データに姿勢修正指示がある場合は、倣い区間中の倣い有効区間の補間点演算であるとして、前記センサの検出結果に基づいて姿勢修正のための演算を行い、教示点でセットされている教示データに前記姿勢修正指示がない場合には、倣い区間中の倣い無効区間の補間点演算であるとして、倣い無効区間の教示点における教示データに含まれる教示姿勢となるための演算を行うことを特徴とする請求項1に記載のロボットの制御装置。
【請求項3】
前記教示点の教示データには、倣い開始指令、又は倣い終了指令が含まれており、
最初の倣い開始指令を含む教示データがあった教示点から倣い終了指令を含む教示データがあった教示点までを前記倣い区間とすることを特徴とする請求項2に記載のロボットの制御装置。
【請求項4】
前記補間点演算手段は、姿勢修正を行う場合、姿勢制限値の範囲内で姿勢修正が行われるように演算を行うことを特徴とする請求項2又は請求項3に記載のロボットの制御装置。
【請求項5】
前記センサの検出結果に基づき、目標位置姿勢を算出する目標位置姿勢演算手段を備え、
前記補間点演算手段は、前記倣い有効区間では前記センサの検出結果に基づく前記教示点間の補間点演算として、前記目標位置姿勢に基づいて前記教示点間の補間点演算を行い、
又、前記補間点演算手段は、前記目標位置姿勢演算手段からの前記目標位置姿勢が得られない場合には、前記目標位置姿勢が得られない時の直前の補間点演算周期で得られた姿勢修正を保持することを特徴とする請求項2乃至請求項4のうちいずれか1項に記載のロボットの制御装置。
【請求項6】
前記補間点演算手段は、前記目標位置姿勢演算手段から前記目標位置姿勢が得られない回数を、前記補間点演算周期毎にカウントし、そのカウント値が所定閾値回数を超えたときには、そのカウント値に対応する累積姿勢修正分の姿勢修正を行うようにすることを特徴とする請求項5に記載のロボットの制御装置。
【請求項7】
前記制御手段は、教示点間の補間点演算を行う補間点演算手段を有し、
前記補間点演算手段は、前記倣い有効区間の終了点であって、前記倣い無効区間の開始点の教示データに姿勢補正指令がない場合、前記第1位置姿勢制御を行い、
前記開始点の教示データに姿勢補正指令がある場合、前記倣い有効区間の終了点における実姿勢と、前記教示データに基づく教示姿勢との差に基づいて前記ロボットの姿勢制御を行うとともに、前記倣い有効区間の終了点の実位置と、前記終了点の教示位置の差に基づいて位置制御を行う第2位置姿勢制御を行うことを特徴とする請求項1に記載のロボットの制御装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【公開番号】特開2010−253668(P2010−253668A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2010−11082(P2010−11082)
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000000262)株式会社ダイヘン (990)
【Fターム(参考)】
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願日】平成22年1月21日(2010.1.21)
【出願人】(000000262)株式会社ダイヘン (990)
【Fターム(参考)】
[ Back to top ]