(57)【特許請求の範囲】
【請求項１】
教示プログラム上で位置データが与えられている教示点の内の少なくとも１個の教示点に対応する作業対象物上の部位に３次元視覚センサ手段により識別が可能なマークを施す段階と；
該ロボットに搭載された３次元視覚センサ手段によって前記マークの位置を計測する段階と；
該マーク位置の計測結果に基づいて、前記少なくとも１個の教示点の位置データの３次元の要補正量を求める段階とを含むことを特徴とするロボットの教示位置データの３次元位置補正量取得方法。
【請求項２】
教示プログラム上で位置データが与えられている教示点の内の少なくとも１個の教示点に対応する作業対象物上の部位に３次元視覚センサ手段により識別が可能なマークが施された対象物に対し、該ロボットに搭載された３次元視覚センサ手段により前記マークの位置を計測する手段と；
該マーク位置の計測結果に基づいて、前記少なくとも１個の教示点の教示位置データに対する３次元の要補正量を求める手段とを含むことを特徴とするロボットの３次元位置補正量を取得するロボットシステム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本願発明は、ロボット教示プログラムで指定されているロボットの教示位置データについて、必要な３次元補正量を取得する方法、及び、同補正量を取得するロボットシステムに関し、更に詳しく言えば、教示プログラムで指定されている教示点位置と現実の作業対象物上の教示点対応位置のずれを解消させるに必要な、教示位置データの３次元補正量を３次元視覚センサを利用して取得する方法及びロボットシステムに関する。本願発明は産業用ロボット一般に適用可能であるが、代表的なアプリケーションとしては、アーク溶接あるいはスポット溶接を行なう溶接ロボットが考えられる。
【０００２】
【従来の技術】
ワーク等の作業対象物（以下、「ワーク」で代表させる。）に対してロボットを移動させながら、溶接等各種作業を行なう場合のロボット教示プログラムの作成プロセスを合理化する為に、オフラインプログラミングシステムを利用する方法が採用されている。オフラインで教示プログラムを作成する際に利用されるのは、作業対象物の設計データ、ロボットとワークの配置関係を表わすデータ、ロボットに設定された座標系の関係を表わすデータ（同次変換行列データ）等であるから、種々の誤差要因によって、再生運転時に実際に実現されるロボット位置（姿勢を含む。以下、同様。）が現実のワーク上で教示点として指定乃至予定された位置と一致しない現象が発生する。
【０００３】
即ち、再生運転時にプログラム上で教示点に対応して実現されるロボット位置が、現実のワーク上でｎ番目の教示点として指定された位置と正確には一致しないのが一般的である。このような教示点の位置ずれをもたらす誤差要因には、次のようなものが考えられる。
【０００４】
１．ロボットとワークの位置関係を表わすデータの誤差。換言すれば、デ  ータ通りのワーク・ロボット間位置関係が実現されないこと。
２．ロボットの加工・組み立て誤差（例えば、リンク長誤差）。
３．自重あるいはエンドエフェクタ重量によるロボットの撓みによる誤差。
【０００５】
４．エンドエフェクタの加工・組み立て誤差。
５．エンドエフェクタの撓みに起因する誤差。
６．ワークの形状誤差。
これら誤差を予め正確に評価してオフラインプログラムを作成することは困難であり、特に、上記４．〜６．の要因について事前に正しく評価することは不可能に近いと言っても過言ではない。
【０００６】
このように、プログラム再生時に教示点に対応して実現される位置と実際のワークに対して指定された教示点位置の不一致は、オフラインでプログラムを作成した場合に典型的に発生する現象であるが、必ずしもオフラインプログラムに限らず、上記誤差要因が入り込む余地があるケースにおいては、いかなる作成済みプログラムについても常に発生し得るものである。例えば、ワークの製造ロット番号が変わった場合には上記要因６．が作用し、エンドエフェクタを交換した場合等においては上記要因３．〜５．の要因が作用することによって、任意の方式に作成された教示プログラムについて、上記説明した教示点ずれの現象が発生する可能性がある。
【０００７】
従来、作成プログラムに上記事態が発生した場合、あるいは発生が予測される場合には、エンドエフェクタをロボットに装着してロボットを手動操作し、実際のワーク（代表ワーク）上の各教示点位置にツールポイントを合致させる補正作業を行なうことが通常であった。このようなオペレータの手作業によるプログラム補正作業は作業負担が大きく、特に、ワークが多品種化し、作成・使用するプログラム数が増えた場合などには、ロボット作業全体の生産性を低下させる大きな原因となっている。
【０００８】
【発明が解決しようとする課題】
本願発明の目的は、作成済みの教示プログラムに発生する上記教示点ずれ現象を解消させるようなプログラムデータ補正を効率的に実行出来るようなロボットの教示位置データの３次元補正量取得方法とシステムを提供することによって、上記従来技術の問題点を解決することにある。また、本願発明は上記補正方法とシステムを提供することを通して、オフラインプログラミングシステムで作成されたプログラムの有用性を向上させることを企図するものでもある。
【０００９】
【課題を解決するための手段】
本願発明は、上記技術課題の解決手段として、「教示プログラム上で位置データが与えられている教示点の内の少なくとも１個の教示点に対応する作業対象物上の部位に３次元視覚センサ手段により識別が可能なマークを施す段階と；該ロボットに搭載された３次元視覚センサ手段によって前記マークの位置を計測する段階と；該マーク位置の計測結果に基づいて、前記少なくとも１つの教示点の位置データの３次元の要補正量を求める段階とを含むことを特徴とするロボットの３次元位置補正量取得方法」、並びに、「教示プログラム上で位置データが与えられている教示点の内の少なくとも１個の教示点に対応する作業対象物上の部位に３次元視覚センサ手段により識別が可能なマークが施された対象物に対し、該ロボットに搭載された３次元視覚センサ手段により前記マークの位置を計測する手段と；該マーク位置の計測結果に基づいて、前記少なくとも１個の教示点に対する３次元の要補正量を求める手段とを含むことを特徴とするロボットの３次元位置補正量を取得するロボットシステム」を提案するものである。
【００１０】
【作用】
本願発明では、ワーク上の教示点対応部位に施されたマークの位置をロボットに搭載された３次元視覚センサ手段によって計測し、その計測結果に基づき、その計測された教示点について、教示位置データの３次元要補正量を取得する。以下、視覚センサ手段をロボットの手首フランジ（一般には、メカニカルインタフェース、以下同様。）にエンドエフェクタの代わりに装着した場合とエンドエフェクタを介して装着した場合について、教示プログラム中の教示点データの要補正量を求める原理について説明する。なお、説明の便宜上、視覚センサ手段が２次元視覚センサ手段である場合についても原理を述べておく。
【００１１】
［１］手首フランジに視覚センサ手段をエンドエフェクタ（溶接トーチ）に代えて装着した場合
先ず、適当なキャリブレーション操作によって、３次元または２次元の視覚センサのセンサ座標系とロボットの手首フランジの位置を表わす手首フランジ座標系（一般には、メカニカルインタフェース座標系、以下同様。）との位置関係を表わすデータを取得する。手首フランジ座標系に対するセンサ座標系の相対位置関係を表わす行列（同次変換行列、以下同様。）をＣとする。キャリブレーションの手法については、幾つかの方法が一般的に知られているのでここでは省略する。
【００１２】
また、手首フランジに対するツール先端点位置が設定済みであることを仮定する。手首フランジ座標系に対するツール座標系の相対位置関係を表わす行列をＴとする。更に、作業空間内に固定された１つワーク座標系上で見た手首フランジ位置を表わす行列を教示プログラムデータに基づいて計算したものをＲ、実際の（真の）手首フランジ位置を表わす行列をＲ’とし、教示点位置をＰで表わすことにする。
【００１３】
［１−１］視覚センサ手段が３次元視覚センサシステムである場合
視覚センサがワーク上に施された教示点マークの３次元位置を計測出来る場合のセンサ座標系上における実測位置をＶ’、プログラムデータから計算される教示点位置をＶとすると、
ＲＣＶ＝Ｐ                                ・・・（１）
Ｒ’ＣＶ’＝Ｐ                            ・・・（２）
と表わすことが出来る。
【００１４】
Ｒ’のＲに対する誤差が平行移動成分だけであると仮定すると、次式（３）が成立する。
Ｒ’＝Ｒ＋Ｅr                             ・・・（３）
但し、Ｅr は次式（４）で表わされる行列である。
【００１５】
【数１】
0003665353.tif 000002
上記（１）式〜（４）式から、次式（５）が成立する。
（Ｒ＋Ｅr ）ＣＶ’＝ＲＣＶ                ・・・（５）
これを整理すると、
Ｅr ＣＶ’＝ＲＣ（Ｖ−Ｖ’）              ・・・（６）
これより、Ｒ’のＲに対する誤差のワーク座標系上の各成分ｅx ，ｅy ，ｅz が次の形で求められる。
【００１６】
【数２】
0003665353.tif 000003
以上のことから、ロボットの手首フランジ座標系の誤差は、上記（７）式で示されるＲＣ（Ｖ−Ｖ’）であると推定されることになる。従って、各教示点毎に教示点データ（ワーク座標系上）を、−ＲＣ（Ｖ−Ｖ’）だけシフト補正することにより、手首フランジ座標系の誤差を補償した教示点データを含む教示プログラムを獲得することが出来る。
【００１７】
これにより、前記した誤差要因の内、エンドエフェクタに関連したものを除く相当部分を吸収して、プログラム再生時のロボット軌道とワーク上に予定された教示ラインとの一致度を向上させることが出来る。
【００１８】
［１−２］視覚センサ手段が２次元視覚センサシステムである場合
２次元位置計測型の視覚センサによってワーク上に施された教示点マークの実測位置をセンサ座標系上で表わしたものをＶ’、プログラムデータから計算される教示点位置をセンサ座標系上で表わしたものをＶとすると、３次元型視覚センサの場合と同様に、
ＲＣＶ＝Ｐ                                ・・・（８）
Ｒ’ＣＶ’＝Ｐ                            ・・・（９）
と表わすことが出来る。
但し、Ｖ’は、本質的には２次元情報なので、媒介変数ｔを含む下記（１０）式で表現される。
【００１９】
【数３】
0003665353.tif 000004
媒介変数ｔは、センサ座標系上の原点から教示点までの距離に相当する量を表わしているから、上記（８式）ＲＣＶ＝ＰからＶのＺ座標値を求め、ｔの値とする。ｕ'*及びｖ'*は、２次元視覚センサシステムから得られる数値である。これは、視覚センサシステムで得られる情報を表現するセンサ座標系として、視覚系の光軸方向と一致したＺ軸を有する３次元座標系を設定したことに相当する。これにより、Ｖ’を３次元データとして扱うことが可能になる。従って、以後は上記３次元視覚センサシステムの場合と同様の手続きによって、教示点データの要補正量を求めることが出来る。
【００２０】
［２］エンドエフェクタ（溶接トーチ）と共に視覚センサ手段を装着した場合
予め、手首フランジに対するツール先端点の位置（姿勢を含む）が設定済みであることを仮定する。プログラムが仮定しているデータに基づいて計算される手首フランジ座標系に対するツール座標系の相対位置関係を表わす行列をＴとし、実際に両者の相対位置関係を表わす行列をＴ’とする。
【００２１】
また、適当なキャリブレーション操作によって、３次元または２次元の視覚センサのセンサ座標系とツール座標系との位置関係を表わすデータを取得する。ツール座標系に対するセンサ座標系の相対位置関係を表わす行列をＫとする。キャリブレーションの手法については、幾つかの方法が一般的に知られているのでここでは省略する。
【００２２】
更に、作業空間内に固定された１つワーク座標系上で見た手首フランジ位置を表わす行列を教示プログラムデータに基づいて計算したものをＲ、実際の（真の）手首フランジ位置を表わす行列をＲ’とし、教示点位置をＰで表わすことにする。
【００２３】
［２−１］視覚センサ手段が３次元視覚センサシステムである場合
視覚センサがワーク上に施された教示点マークの３次元位置を計測出来る場合のセンサ座標系上における実測位置をＶ’、プログラムデータから計算される教示点位置をＶとすると、
ＲＴＫＶ＝Ｐ                              ・・・（１１）
Ｒ’Ｔ’ＫＶ’＝Ｐ                        ・・・（１２）
と表わすことが出来る。
【００２４】
上記式（１１），（１２）は、式（１），（２）において、Ｒ，Ｒ’の代わりにＲＴ，Ｒ’Ｔ’、Ｃの代わりにＫを各々入れたものに他ならないから、前記［１−１］のケースにおける要補正量の計算式ＲＣ（Ｖ−Ｖ’）の代えて、下記（１３）式を計算すれば、本ケースにおける要補正量が求められることになる。
ＲＴＫ（Ｖ−Ｖ’）                        ・・・（１３）
［２−２］視覚センサ手段が２次元視覚センサシステムである場合
上記［２−１］のケースと同じく、Ｒ，Ｒ’をＲＴ，Ｒ’Ｔ’、ＣをＫと各々入れ換えて計算を行なうことにすれば、上記［１−２］のケースに帰着させることが出来る。
［２−１］及び［２−２］のケースで、もし、視覚センサ手段がエンドエフェクタ自体の加工誤差や撓みを反映し得る位置に装着されているとみなすことが出来れば、これら誤差の補償効果をも期待することが出来る。また、視覚センサ手段がエンドエフェクタの加工・組み立て誤差や負荷による変形誤差を反映しない位置に装着された場合（並列的な同時装着）でも、エンドエフェクタの重量によるロボットアームの撓みはマーク位置の計測結果に反映されるから、このエンドエフェクタの重量によるロボットアームの撓みに起因した誤差の補償作用は確保される。
【００２５】
以上説明した各ケースに応じた補正計算の処理は、視覚センサ手段と結合された通常のロボットコントローラ内で実行することが出来るが、視覚センサ手段を用いて得られた計測結果をロボットコントローラの以外の外部装置（例えば、オフラインプログラミング装置）へ転送した上で実行することも可能である。
【００２６】
【実施例】
図１は、溶接作業用の教示プログラムに対して本願発明を適用する際の教示点位置計測の様子を例示した模式図である。また、図２は本願発明を実施する際に使用されるシステム構成の概略を例示した要部ブロック図である。
【００２７】
図１において、１は図示しない固定手段によって作業空間内に固定配置された教示点位置計測対象ワークで、溶接線６を有している。この教示点位置計測ワークには、通常、同種同寸で同位置に溶接線を有しているとみなすことが出来る多数のワークを代表するものが選ばれる。２はロボット本体で、手首フランジ部には溶接トーチ３と共に３次元視覚センサ手段を構成する２台のカメラ４，５が装着されている。
Ｐ0 〜Ｐ3 は、溶接線６に沿って設定された教示点で、オフラインで作成される教示プログラムには、これら教示点の位置を表わす教示点データ（一般には、誤差を含んでいる。）が与えられている。
【００２８】
本実施例においては教示点Ｐ1 を代表教示点として選択し、教示点Ｐ1 に対応するワーク上の部位に＋マークが施されている。このマークは、視覚センサによって視認可能であればいかなる形態のものであっても構わない。典型的には、インクによる書き込み、シールの貼付等が考えられるが、ワークが元来備えているいる特徴点をマークとして利用することも有り得る。図１では、教示プログラムで教示点Ｐ1 位置として指定されているロボット位置をロボットにとらせた状態で、このマークをカメラ４，５で撮像している様子が描かれている。もし、プログラムデータが補正不要な状態であれば、ロボットに設定されたツール先端点の位置はマーク位置と正確に一致する筈であるが、一般には種々の誤差要因によって両者は一致していない。即ち、プログラムデータが要補正の状態にある。
【００２９】
次に、図２を参照すると、システム全体はロボット本体２、カメラ４，５（２台）、画像処理装置１０、ロボットコントローラ２０、溶接トーチ制御器３０、オフラインプログラミング装置４０から構成されている。
【００３０】
画像処理装置１０は中央演算処理装置（以下、ＣＰＵという。）１１を有し、該ＣＰＵ１１には、フレームメモリ（画像メモリ）１２、ＲＯＭで構成されたコントロールソフト用メモリ１３、ＲＡＭ等で構成されたプログラムメモリ１４、不揮発性ＲＡＭで構成されたデータメモリ１５、カメラインタフェース１６、画像処理プロセッサ１７及び通信インタフェース１８がバス１９を介して接続されている。
【００３１】
カメラインタフェース１６には、カメラ４，５が接続されている。２台のカメラ４，５からの映像信号は、ＣＰＵ１１がカメラインタフェース１６内のコネクタ番号を指定することにより、順次取り込まれるようになっている。通信インタフェース１８は、ロボットコントローラ２０側の通信インタフェース２７に接続されており、両者を介して相互にデータや指令を表す信号が送受信される。
【００３２】
カメラ４，５の視野で捉えられた画像は、グレイスケールによる濃淡画像に変換されてフレームメモリ１２に格納される。画像処理プロセッサ１７はフレームメモリ１２に格納された画像をＣＰＵ１１の指令に従って処理する機能を有している。コントロールソフト用メモリ１３には、ＣＰＵ１１が視覚センサを制御する為のコントロールプログラム、治具を用いてセンサ座標系を設定する為のキャリブレーション用プログラム、画像処理プロセッサ１７を用いて溶接線位置を検出する為の画像解析プログラム、適正なタイミングでロボット側への計測データ送信を指令する為のプログラム等が格納される。
【００３３】
なお、カメラ３０の捉えた画像やフレームメモリ１２から呼び出された画像を視認する為のＴＶモニタを図示を省略したモニタインタフェースを介して接続することも出来る。
【００３４】
一方、ロボットコントローラ２０は、中央演算処理装置（ＣＰＵ）２１を有し、該ＣＰＵ２１には、制御プログラムを格納したＲＯＭ２２、計算データの一時記憶等の為に利用されるＲＡＭ２３、教示データやキャリブレーション用治具データ等各種設定値が格納される不揮発性ＲＡＭで構成されたメモリ２４、ロボット本体４０の各軸を制御する軸制御器２５（サーボ回路を含む）、ロボットの手動操作、座標系設定、位置教示、自動運転（再生動作）指令、センサ起動指令等の画像処理装置との交信を行う為の教示操作盤２６及び画像処理装置１０側の通信インタフェース１８に接続された通信インタフェース２７がバス２８を介して接続されている。
【００３５】
通信インタフェース２７は、溶接トーチ３（図１参照）をＯＮ／ＯＦＦし、溶接電圧、溶接電流を制御する溶接トーチ制御器３０及びオフラインプログラミング装置４０にも接続されており、これらに対する入出力装置を兼ねている。
【００３６】
以上のシステム構成及び機能は、従来の溶接ロボット―３次元視覚センサセンサシステムと基本的に変わるところはないが、本願発明を実施する為に次の特徴を有している。
＜１＞画像処理装置１０のコントロールソフト用メモリ１３に、図１に示した教示点マークの位置データ（センサ座標系上）を獲得する為のプログラム及び所要データが格納されていること。
【００３７】
＜２＞上記獲得された教示点マーク位置データを用い、前記作用の説明の欄で述べた方法に従って、教示プログラムに含まれている教示点データの要補正量を計算する為のプログラム、該計算結果に基づいて各教示点Ｐ0 〜Ｐ3 の位置データを補正する為のプログラム及び関連所要データがロボットコントローラ２０の不揮発性メモリ２４内に格納されていること。
【００３８】
以下、図２に示されたシステムを用いて、本願発明を図１に示された事例に適用する場合の手順と処理について説明する。
【００３９】
先ず、オフラインプログラミング装置４０で作成されたプログラムをロボットコントローラ２０へ通信インタフェース２７を介して転送し、不揮発性メモリ２４へ格納する（ステップＳ１）。次いで、ロボットを操作して、プログラム上で教示点Ｐ1 に指定されている位置へ移動させる（ステップＳ２）。
【００４０】
この状態で視覚センサ（カメラ４，５）を起動させ、教示点Ｐ1 に対応して設定されたマークの撮像を行い、センサ座標系上のマーク位置データＶ’を獲得する（ステップＳ３）。このデータは直ちに両通信インタフェース１８，２７を介してロボットコントローラ１０へ転送され、不揮発性メモリ２４に格納される（ステップＳ４）。
【００４１】
ロボットコントローラ２０側のＣＰＵ２１により、作用の説明の欄で述べた計算法に従ってプログラム上の教示点位置データの要補正量を計算する（ステップＳ５）。ここで想定している図１の事例は、ケース［２−１］に該当するから、前記（１３）式を計算することにより、要補正量を求めることが出来る。なお、Ｒ，Ｔ，Ｋ，及びＶの値は、現在データあるいは設定済みデータとしてロボットに既に与えられているから、（１３）式の計算に際してはこれらデータを用いれば良い。
【００４２】
要補正量の計算が終了したら、その要補正量を教示点Ｐ0 の位置データから差し引く形で補正を行なう。また、本実施形態では、教示点Ｐ1 〜Ｐ3 の各位置データについても、同じ補正量を各々差し引く形で補正を行なう（ステップＳ６）。
【００４３】
本実施例におけるプログラム補正により、前述した誤差要因１．〜６．の内の相当部分の除去が期待できる。即ち、ロボット手首位置の誤差には、１．ロボットとワークの位置関係を表わすデータの誤差、２．ロボットの加工・組み立て誤差、３．自重あるいはエンドエフェクタ重量によるロボットの撓みによる誤差、及び６．ワークの形状誤差の少なくとも一部が反映していると考えられるから、ロボット手首位置の誤差を補償することによって、これら誤差要因が相当程度補償されると期待される。もし、カメラ４，５が溶接トーチ（エンドエフェクタ）自体の加工誤差や撓みを包含し得る位置に装着されているとみなすことが出来れば、これら誤差の補償効果をも期待することが出来る。
【００４４】
上記の例においては、計測対象は１個の教示点であり、そこに付したマークの位置データに基づいて同教示点の位置データを補正した。また、他の残りの教示点のデータも併せて補正した。しかし、計測対象とする教示点の数に原理的な制限は無い。一般には、１個叉は複数の教示点に対応して付されたマークの位置を順次計測し、それら選択された教示点に対する要補正量を計算する。また、同要補正量を他の教示点に対する要補正量とすることも考えられる。なお、エアカット点などさほどの精度を必要としない教示点については、補正を省略して差し支えないことは勿論である。
【００４５】
【発明の効果】
本願発明によれば、３次元視覚センサ手段を利用して、オフラインプログラミング装置等で作成されたロボット教示プログラムの少なくとも１つの教示位置データについて、実際の作業対象物上での教示点対応位置とのずれを、従来のように、ロボットの手動操作でエンドエフェクタを作業対象物上の教示位置に一致させるという作業を要することなく減殺出来るようになる。その結果、煩雑で熟練を要する手作業に頼って行なわれていた教示プログラムデータ補正作業の少なくとも一部を省くことが可能になり、同時に、プログラムデータの精度の信頼性も向上することになる。
【００４６】
その結果、煩雑で熟練を要する手作業に頼って行なわれていた教示プログラムデータ補正作業を省くことが可能になり、同時に、プログラムデータの精度の信頼性も向上することになる。
【図面の簡単な説明】
【図１】溶接作業用の教示プログラムに対して本願発明を適用する際の教示点位置計測の様子を例示した模式図である。
【図２】本願発明を実施する際に採用されるシステム構成の概略を例示した要部ブロック図である。
【図３】図１に示された事例に関し、本願発明を図２に示したシステムを利用して実施する際の作業／処理プロセスの概要を記したフローチャートである。
【符号の説明】
１  ワーク
２  ロボット本体
３  溶接トーチ
４，５  カメラ
６  溶接線
１０  画像処理装置
１１  ＣＰＵ（画像処理装置）
１２  フレームメモリ
１３  コントロールソフトメモリ
１４  プログラムメモリ
１５  データメモリ
１６  カメラインターフェース
１７  画像処理プロセッサ
１８  通信インターフェース（画像処理装置）
１９  バス（画像処理装置）
２０  ロボットコントローラ
２１  ＣＰＵ（ロボットコントローラ）
２２  メモリ（ＲＯＭ）
２３  メモリ（ＲＡＭ）
２４  不揮発性メモリ
２５  軸制御器
２６  教示操作盤
２７  通信インターフェース（ロボットコントローラ）
２８  バス（ロボットコントローラ）
３０  溶接トーチ制御奇
４０  オフラインプログラミング装置
【図１】
0003665353.tif 000005
【図２】
0003665353.tif 000006
【図３】
0003665353.tif 000007