(57)【特許請求の範囲】
【請求項１】
ワークを加工するためのツールと、該ツールとワークとの接触を検出するセンサと、前記ツールとセンサが取付けられたロボット手先フランジ面を有しこれを３次元空間内で６自由度に数値制御可能なロボットと、前記センサの計測値やツール接触時のロボット位置姿勢を記憶しロボットを制御する制御装置と、前記ツールの作動範囲内に固定され互いに直交もしくは既知の角度で交差する３平面を有する治具もしくは作業台もしくはワークと、を備え、前記制御装置により、
前記ロボットを数値制御して、前記３平面にツールを接触させ各接触点の３次元座標を記憶するタッチセンシング工程（Ａ）と、
前記３次元座標から、前記３平面が交差する点を原点とする座標系を補正する座標系設定工程（Ｂ）と、
前記３次元座標から、前記ロボット手先フランジ面に対するツールの基準位置を算出するツールパラメータ設定工程（Ｃ）と、から構成されるシーケンスを実施し、
前記タッチセンシング工程（Ａ）において、ツールの姿勢を固定し、前記３平面のうち第１平面上の３点と、第２平面上の２点と、第３平面上の１点とにツールを接触させ、
前記座標系設定工程（Ｂ）において、前記３点、２点、及び１点の３次元座標から、前記３平面のうち１平面と座標系の２軸を含む平面とが平行で、２平面が交差する１つの稜線と座標系の１軸とが平行な座標系を設定する、ことを特徴とするロボットのキャリブレーション方法。
【請求項２】
前記３平面のうち１平面と座標系の２軸を含む平面とが平行で、２平面が交差する１つの稜線と座標系の１軸とが平行な座標系を設定した後に、ツールの姿勢を変えて、第１平面の１点と、第２平面の１点と、第３平面の１点とにツールを接触させ、ツールパラメータの設定値誤差を算出してツールパラメータを補正する、ことを特徴とする請求項１に記載のロボットのキャリブレーション方法。
【請求項３】
ワークを加工するためのツールと、該ツールとワークとの接触を検出するセンサと、前記ツールとセンサが取付けられたロボット手先フランジ面を有しこれを３次元空間内で６自由度に数値制御可能なロボットと、前記センサの計測値やツール接触時のロボット位置姿勢を記憶しロボットを制御する制御装置と、前記ツールの作動範囲内に固定され互いに直交もしくは既知の角度で交差する３平面を有する治具もしくは作業台もしくはワークと、を備え、前記制御装置により、
前記ロボットを数値制御して、前記３平面にツールを接触させ各接触点の３次元座標を記憶するタッチセンシング工程（Ａ）と、
前記３次元座標から、前記３平面が交差する点を原点とする座標系を補正する座標系設定工程（Ｂ）と、
前記３次元座標から、前記ロボット手先フランジ面に対するツールの基準位置を算出するツールパラメータ設定工程（Ｃ）と、から構成されるシーケンスを実施し、
前記制御装置により、
前記タッチセンシング工程（Ａ）において、ツールの姿勢を固定し、前記３平面のうち第１平面上の３点と、第２平面上の２点と、第３平面上の１点とにツールを接触させ、
前記座標系設定工程（Ｂ）において、前記３点、２点、及び１点の３次元座標から、前記３平面のうち１平面と座標系の２軸を含む平面とが平行で、２平面が交差する１つの稜線と座標系の１軸とが平行な座標系を設定する、ことを特徴とするロボットのキャリブレーション装置。
【請求項４】
前記制御装置により、前記３平面のうち１平面と座標系の２軸を含む平面とが平行で、２平面が交差する１つの稜線と座標系の１軸とが平行な座標系を設定した後に、ツールの姿勢を変えて、第１平面の１点と、第２平面の１点と、第３平面の１点とにツールを接触させ、ツールパラメータの設定値誤差を算出してツールパラメータを補正する、ことを特徴とする請求項３に記載のロボットのキャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを用いた自動生産システムにおけるロボットのキャリブレーション方法および装置に関する。
【背景技術】
【０００２】
図１は、従来の一般的な方法を示す説明図である。この図は、ツール位置をキャリブレーション（較正）する方法を示している。
この図において、１はツール、２はロボット手先フランジ面、３は位置決め治具である。また、点Ｆはロボット手先フランジ面２上の代表点、点Ｐはツールセンターポイント（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ：ＴＣＰ）でありツール座標系の原点である。
【０００３】
ロボット手先フランジ面２を有するロボット（図示せず）を数値制御して、ツール１のＴＣＰ（点Ｐ）を高精度に位置決めするためには、手先フランジ面３上の代表点Ｆに対するＴＣＰ（点Ｐ）の位置と姿勢を表わすデータを与える必要がある。以下このデータを「ツールパラメータ」と呼ぶ。
【０００４】
ツールパラメータは、ロボットの姿勢が変化しても変わらない。そのため、従来の一般的な方法では、図１に示すように、ＴＣＰとして設定を希望するツールの特定点（点Ｐ）を、空間上の同一点に一致するように３以上の姿勢でツール１を位置決めし、これに基づきＴＣＰのツール座標系における相対位置（ツールパラメータ）を求めていた。
【０００５】
なお、ロボットのツール位置較正手段に関連して、特許文献１，２が既に開示されている。
特許文献１、２は治具などを用いて較正するものである。またハンドの設計値などをベースに数値入力により設定することも知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開昭６１−１３３４０９号公報、「ロボット定数の自動補正方式」
【特許文献２】特開２００６−２９７５５９号公報、「キャリブレーションシステムおよびロボットのキャリブレーション方法」
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した従来技術には以下のような問題点があった。
一般的に空間上の同一点への一致を目視で確認するため、本質的に精度は目視に依存する。そのため、ツール上の特定点（ＴＣＰ）の判別が難しいツールの場合には、ツールの３姿勢におけるＴＣＰを空間上の同一点に一致させることが困難になる。
そのため、この方法による位置決め精度は、一般に低い（例えば、±０．５ｍｍ程度）問題点があり、高い精度（例えば、±０．２ｍｍ未満）を必要とするバリ取りロボットのような用途には適用できなかった。
【０００８】
また、空間上の同一点に合わせる操作は作業者の熟練度によって設定精度に差が出やすく、また目視で合わせるため、ツールに非常に近い場所で作業することになり、作業者がツールに接触する等のおそれが高かった。
【０００９】
さらに、特許文献１、２のように、特別な専用治具を用いて較正する場合も、目視で合わせるため、位置決め精度が低く、かつ作業者がツールに接触する等のおそれが高かった。
【００１０】
また、図面情報（設計値）などをベースに数値入力により設定する場合、ツールを構成する部品点数が多い場合には各部品の累積誤差などにより必要とする精度（例えば、±０．２ｍｍ未満）を確保できない。
さらにこの場合に、精度を高めるために、各部品の加工精度を高めるとコスト高になる。また現場合わせなどで製作されたツールでは図面寸法と実態寸法が異なることも多い。
また、ロボットの姿勢誤差がフランジ面において０．１度程度である場合、手先ツールの長さが２００ｍｍであれば、ＴＣＰは０．３ｍｍ程度ずれることになるため、フランジ面以降のツールを高精度にしたとしても、ロボット自身の姿勢誤差によって大きな誤差が生じる可能性がある。
【００１１】
本発明は上述した問題点を解決するために創案されたものである。すなわち、本発明の目的は、ツールに接触するおそれがない離れた場所から実施することができ、作業者の熟練度に依存することなく、安価かつ容易に、高い精度で、位置決め用の治具とロボットのＴＣＰの両方をキャリブレーションすることができるロボットのキャリブレーション方法および装置を提供することにある。
【課題を解決するための手段】
【００１２】
本発明によれば、ワークを加工するためのツールと、該ツールとワークとの接触を検出するセンサと、前記ツールとセンサが取付けられたロボット手先フランジ面を有しこれを３次元空間内で６自由度に数値制御可能なロボットと、前記センサ計測値やツール接触時のロボット位置姿勢を記憶しロボットを制御する制御装置と、前記ツールの作動範囲内に固定され互いに直交もしくは既知の角度で交差する３平面を有する治具もしくは作業台もしくはワークと、を備え、前記制御装置により、
前記ロボットを数値制御して、前記３平面にツールを接触させ各接触点の３次元座標を記憶するタッチセンシング工程（Ａ）と、
前記３次元座標から、前記３平面が交差する点を原点とする座標系を補正する座標系設定工程（Ｂ）と、
前記３次元座標から、前記ロボット手先フランジ面に対するツールの基準位置を算出するツールパラメータ設定工程（Ｃ）と、から構成されるシーケンスを実施することを特徴とするロボットのキャリブレーション方法が提供される。
【００１３】
本発明の実施形態によれば、前記タッチセンシング工程において、ツールの姿勢を固定し、前記３平面のうち第１平面上の３点と、第２平面上の２点と、第３平面上の１点とにツールを接触させ、
前記座標系設定工程において、前記３点、２点、及び１点の３次元座標から、前記３平面のうち１平面と座標系の２軸を含む平面とが平行で、２平面が交差する１つの稜線と座標系の１軸とが平行な座標系を設定し、
次にツールの姿勢を変えて、第１平面の１点と、第２平面の１点と、第３平面の１点とにツールを接触させ、ツールパラメータの設定値誤差を算出してツールパラメータを補正する。
【００１４】
また、本発明によれば、ワークを加工するためのツールと、該ツールとワークとの接触を検出するセンサと、前記ツールとセンサが取付けられたロボット手先フランジ面を有しこれを３次元空間内で６自由度に数値制御可能なロボットと、前記センサ計測値やツール接触時のロボット位置姿勢を記憶しロボットを制御する制御装置と、前記ツールの作動範囲内に固定され互いに直交もしくは既知の角度で交差する３平面を有する治具もしくは作業台もしくはワークと、を備え、前記制御装置により、
前記ロボットを数値制御して、前記３平面にツールを接触させ各接触点の３次元座標を記憶するタッチセンシング工程（Ａ）と、
前記３次元座標から、前記３平面が交差する点を原点とする座標系を補正する座標系設定工程（Ｂ）と、
前記３次元座標から、前記ロボット手先フランジ面に対するツールの基準位置を算出するツールパラメータ設定工程（Ｃ）と、から構成されるシーケンスを実施することを特徴とするロボットのキャリブレーション装置が提供される。
【発明の効果】
【００１５】
上記本発明の方法及び装置によれば、制御装置により、タッチセンシング工程（Ａ）、座標系設定工程（Ｂ）及びツールパラメータ設定工程（Ｃ）から構成されるシーケンスを実施するので、ツールに接触するおそれがない離れた場所から作業者が位置決め用の治具とロボットのＴＣＰの両方をキャリブレーションすることができる。
また、互いに直交する３平面を有する治具を用い、センサを用いて前記３平面にツールを接触させるので、作業者の熟練度に依存することなく、安価かつ容易に、高い精度で、位置決め用の治具とロボットのＴＣＰの両方をキャリブレーションすることができる。
【図面の簡単な説明】
【００１６】
【図１】従来の一般的な方法を示す説明図である。
【図２】本発明によるキャリブレーション装置の全体構成図である。
【図３】本発明によるキャリブレーション方法の全体フロー図である。
【図４】治具位置の教示の説明図である。
【図５】治具上面のタッチセンシング位置を示す図である。
【図６】治具上面のタッチセンシングのイメージ図である。
【図７】治具上面の傾き算出の説明図である。
【図８】Ｚ０の算出の説明図である。
【図９】座標系Σ１の説明図である。
【図１０】治具側面のタッチセンシング位置を示す図である。
【図１１】治具側面のタッチセンシングのイメージ図である。
【図１２】治具２２の座標系Σ１におけるＸＹ平面上での姿勢を示す図である。
【図１３】座標系Σ２の算出の説明図である。
【図１４】座標系Σ３の算出の説明図である。
【図１５】ツールの設定と実際との誤差の説明図である。
【図１６】ツールをＴＣＰ回りで回転させる説明図である。
【図１７】ツールを回転させて治具側面への押付けを示す図である。
【図１８】座標系Σ３とΣ３’との位置関係を示す図である。
【図１９】Ｚ方向のずれの説明図である。
【図２０】ツールを寝かせて治具上面をタッチセンシングする説明図である。
【発明を実施するための形態】
【００１７】
以下、本発明の好ましい実施例を図面を参照して説明する。なお、各図において共通する部分には同一の符号を付し、重複した説明を省略する。
【００１８】
図２は、本発明によるキャリブレーション装置の全体構成図である。
この図に示すように、本発明のキャリブレーション装置１０は、ツール１２、センサ１４、ロボット手先フランジ面１６、ロボット１８、制御装置２０、及び位置決め用の治具２２を備える。
ただし、ワークやワークを保持する作業台等に直交する３平面形状があり、この面をタッチセンシング可能である場合は冶具は不要である。
【００１９】
ツール１２は、ワーク（図示せず）を加工するためのエンドエフェクタである。この例において、ツール１２は円筒形であり、その対称軸上にツールセンターポイントＰ（ＴＣＰ）が設定されている。点Ｐはツール座標系の原点である。
なお、ツール１２の形状は円筒形に限定されず、その寸法が既知であるかぎり、その他の形状（例えば、球形）であってもよい。
また、ツールセンターポイントＰ（ＴＣＰ）は、ツール１２の対称軸上であるのが好ましいが、ワークに対するツールの正確な相対位置が既知であるかぎり、その他の位置であってもよい。
【００２０】
センサ１４は、例えば力覚センサ（ロードセル又は歪ゲージ）であり、ツール１２に作用する外力を検出する。検出する外力の方向は、６自由度（直交する３軸方向と、３軸回り）の力であるのが好ましいが、そのうちの一部（例えば３軸方向のみ）であってもよい。
なおセンサ１４は、接触を検出できる限りで、その他のセンサであってもよい。
【００２１】
ロボット手先フランジ面１６は、ロボット１８の手先部（ロボットアーム等の先端）に設けられている。また、点Ｆはロボット手先フランジ面１６上の代表点である。
なお、この例において、ロボット手先フランジ面１６上の代表点Ｆは、ロボットアームとツールの取合面中心であるが、中心以外でもよい。
【００２２】
ツール１２とセンサ１４は、ロボット手先フランジ面１６に取付けられ、ツール１２のＴＣＰ（点Ｐ）が、ロボット手先フランジ面１６上の代表点Ｆに対して一定の位置に位置するようになっている。
この相対位置を表すデータが上述した「ツールパラメータ」であり、ツールパラメータは未知であるが、概略値は設計データ等から既知である。
【００２３】
ロボット１８は、この例では産業用の多関節アームロボットであり、ロボット手先フランジ面１６を３次元空間内で６自由度（直交する３軸方向と、３軸回り）に数値制御できるようになっている。
なおこの図において、点Ｏはロボット座標系の原点である。
【００２４】
制御装置２０は、例えば記憶装置を備えたコンピュータであり、センサ１４で検出した外力を記憶し、かつロボット１８を制御する。
さらに、制御装置２０は、後述するタッチセンシング工程（Ａ）、座標系設定工程（Ｂ）、ツールパラメータ設定工程（Ｃ）を自動で実施するようになっている。
【００２５】
位置決め用の治具２２は、ツール１２の作動範囲内に固定され、互いに直交する３平面２２ａ，２２ｂ，２２ｃを有する。この３平面を、以下、第１平面２２ａ、第２平面２２ｂ、第３平面２２ｃと呼ぶ。
この例において、第１平面２２ａは上面、第２平面２２ｂと第３平面２２ｃは側面であるが、本発明はこれに限定されず、第２平面２２ｂ又は第３平面２２ｃを上面としてもよい。
【００２６】
図３は、本発明によるキャリブレーション方法の全体フロー図である。
この図において、本発明のキャリブレーション方法は、タッチセンシング工程（Ａ）、座標系設定工程（Ｂ）、ツールパラメータ設定工程（Ｃ）からなる。
【００２７】
ツールパラメータ設定工程（Ｃ０）では、ツールパラメータの初期値を手先工具の設計データ等を元に設定する。
【００２８】
座標系設定工程（Ｂ０）では、座標系の初期値を設計データや教示による座標設定等で設定する。なお、この工程では、位置決め治具の角を原点とする座標であり、初期値はおおまかである。
ＴＣＰの設定の従来技術同様に、ロボットの教示によって座標系を設定する方法が広く行われている。例えば次のような手順である。
（１）原点となる位置を教示、（２）Ｘ軸の正方向を教示、（３）ＸＹ平面（Ｙ軸正側）を教示。
これにより、作業テーブル座標などが簡単に設定できる。
【００２９】
タッチセンシング工程（Ａ１）では、ロボットを座標系Σ０からの相対量で数値制御して、ツールを位置決め冶具の上面３箇所に接触させ、各接触点の３次元座標（＝座標系Σ０におけるツール座標系の位置・姿勢）を記憶する。このとき、ロボットの姿勢は一定の姿勢に固定しておく。
【００３０】
座標系設定工程（Ｂ１）では、記憶した３次元座標から、新たな座標系Σ１を算出する。この座標系Σ１は、座標系Σ０のＸＹを位置決め冶具の上面に一致するように補正した座標系である。
実際はツールパラメータの誤差分だけシフトしているが、ここでは説明を簡略化するために、ツール誤差を０としている。
【００３１】
タッチセンシング工程（Ａ２）では、ロボットを座標系Σ１からの相対量で数値制御して、ツールを位置決め冶具の側面３箇所に接触させ、各接触点の３次元座標を記憶する。このとき、ロボットの姿勢は一定の姿勢に固定しておく。
タッチセンシングする点は、更新した座標系Σ１からの相対量である。
【００３２】
座標系設定工程（Ｂ２）では、記憶した３次元座標から、新たな座標系Σ２を算出する。この座標系Σ２は、座標系Σ１のＸ軸、Ｙ軸が位置決め冶具の稜線に平行になるように補正した座標系である。
実際はツールパラメータの誤差分だけシフトしているが、ここでは説明を簡略化するために、ツール誤差を０としている。
【００３３】
座標系設定工程（Ｂ３）では、ツールの半径の分だけシフトさせ、新たな座標系Σ３を算出する。
【００３４】
タッチセンシング工程（Ａ３）では、タッチセンシング工程（Ａ１、Ａ２）で固定していたツールの姿勢を、例えばツールのＺ軸回りに９０°回転させた姿勢にした上で、ロボットを座標系Σ３からの相対量で数値制御して、ツールを位置決め冶具の側面２箇所に接触させ、各接触点の３次元座標を記憶する。
【００３５】
ツールパラメータ設定工程（Ｃ１）では、記憶した３次元座標から、ツールパラメータ誤差を算出し、ツールパラメータを補正する。ここでは、ツールパラメータのＸ軸、Ｙ軸の誤差が補正される。
【００３６】
タッチセンシング工程（Ａ４）では、ロボットを座標系Σ３からの相対量で数値制御して、例えば円筒形ツールの側面を位置決め冶具の上面１箇所に接触させ、接触点の３次元座標を記憶する。
この工程では、更新したツールパラメータを使用する。
【００３７】
ツールパラメータ設定工程（Ｃ２）では、記憶した３次元座標から、ツールパラメータ誤差を算出し、ツールパラメータを補正する。ここでは、ツールパラメータのＺ軸の誤差が補正される。
【００３８】
座標系設定工程（Ｂ４）では、ツールパラメータ設定工程（Ｃ１、Ｃ２）で算出したツールパラメータの誤差を使用して、新たな座標系Σ４を算出する。ここで初めて位置決め冶具の稜線とＸ軸、Ｙ軸とが一致する。
Σ４はツールパラメータの誤差から算出してもよいが、再度タッチセンシング（Ａ１、Ａ２）で計測してもよい。
座標系Σ４で初めてベース座標系と実際の位置決め治具とが一致する。
【００３９】
以下、本発明の方法と装置を具体的に説明する。
【００４０】
１．  本発明では、産業用ロボットにおいて、上述したロボット１８、ツール１２、治具２２の相対位置をキャリブレーションする方法と装置について説明する。
この方法では、円筒形状のツール１２を対象とし、ロボット手先フランジ面１６におけるＴＣＰの並進位置と、ロボットベース座標における直方体の治具２２の位置と姿勢とをキャリブレーションする。
【００４１】
ロボットが、固定されたワークに対して、ツールの目標軌道に沿ってツールを動作させて加工するシステムにおいて、ワークに精度良く加工するためには、ロボット手先フランジ面〜ツールのＴＣＰの相対位置、ツール〜ワークの相対位置、のキャリブレーションが必要である。ただし、ワークの形状に直交する３平面が含まれている場合は、ツール〜ワークの相対位置を本発明によってキャリブレーション可能であるが、そうでない場合は、ツール〜ワークを設置する作業台の相対位置、ツール〜位置決め冶具の相対位置のキャリブレーションによっても、（作業台〜ワーク、位置決め冶具〜ワークの相対位置が既知であれば）十分な精度の加工を得ることができる。以下では、冶具を使用した場合について述べる。
【００４２】
本発明では、センサ１４と形状が既知の治具２２（直方体）を使用し、ツール１２を所定の反力が得られるまで治具２２に押付け、そのときのツール位置を計測するという手順を繰返してキャリブレーションする。
【００４３】
また本発明では、ツールの姿勢を固定して、直方体治具２２の上面２２ａの３箇所、側面２２ｂの２箇所、及び側面２２ｃの１箇所を計測する。これにより、治具２２の上面２２ａにＸＹ平面が平行で、Ｘ軸、Ｙ軸が稜線（エッジ）に平行な座標系Σ３が得られる。
このとき、ロボット手先フランジ面１６〜ツール１２のＴＣＰの相対位置が既知であれば、座標系Σ３の原点は治具２２の角と一致する。一方、ロボット手先フランジ面１６〜ツール１２のＴＣＰまでの相対位置のキャリブレーションが未実施で誤差を含んでいる場合は、座標系Σ３は、実際の治具２２からその誤差分だけ平行シフトした位置に算出される。
【００４４】
この誤差分は、ツールの姿勢を変えて再度冶具の側面２箇所、上面１箇所を計測することで算出することができ、算出した誤差分を使って手先フランジ面〜ツールＴＣＰの相対位置をキャリブレーションする。また同時に、座標系Σ３も補正して座標系Σ４を算出する。座標系Σ４の原点は治具２２の角と一致する。
【００４５】
２．  システム構成
図２において、産業用ロボットアームにセンサ１４を介してスピンドルモータを設置し、コレットチャックでツール１２（例えばカッター）をチャックしている。また、センサ１４の出力をロボットコントローラに接続している。上述の制御装置２０は、ロボットコントローラに相当する。
また、計算の簡略化のため、以下の説明では（１）〜（５）は仮想的にツール１２の寸法を０として計算し、（６）で改めてツール寸法を補正している。
また、ここではロボットの姿勢としてロール・ピッチ・ヨーを使用した場合について述べる。
なお３次元空間における姿勢の表現方法は、例えば、ロール・ピッチ・ヨー、オイラー角等、複数ある。
【００４６】
（１）治具位置の教示（図４）
初めに治具２２の位置を教示する。図４中、ＰｓｔａｒｔとＰｇｏａｌ，それぞれのアプローチ軌道を教示する。この教示は、上面２２ａからｏｆｆｓｅｔ値だけずらした点で教示する。この教示後、教示したＰｓｔａｒｔと原点とが一致し、Ｐｓｔａｒｔ→Ｐｇｏａｌの方向とＹ軸とが一致する座標系Σ０を設定する。
治具２２の設置位置が変わった場合は、この教示点を修正するだけで、以降のキャリブレーションが可能である。
【００４７】
（２）治具上面のタッチセンシング（図５、図６）
治具２２の上面２２ａの３点でタッチセンシングし、上面２２ａの傾きを算出する。タッチセンシングする点は、図５中Ｐｔｒｙ１〜Ｐｔｒｙ３であり、座標系Σ０上のＸＹ座標で位置を設定し、Σ０のＺ軸の負方向に押付けてタッチセンシングする。
このとき、点Ｐｔｒｙ１、点Ｐｔｒｙ２、及び座標系Σ０の原点が一直線上になるようにすることで、治具２２の上面２２ａを含む平面が座標系Σ０のＺ軸と交差する点を、相似計算（（３）にて後述）で算出することが座標系できる。
【００４８】
このように３点を選択する以外の方法として、３点が１直線状に並んでいなければ、３点の空間上の点から、その３点を通る平面を計算することは広く行われている。また、３点以上の点から、各点と平面との誤差の自乗和を最小にするような平面を算出することも広く行われている。
【００４９】
（３）治具上面の傾きの算出（図７〜図９）
実際に接触した点をＰｔｏｕｃｈｉ＝（ｘｐｔｉ，ｙｐｔｉ，ｚｐｔｉ）Ｔ  （ｉ＝１，２，３）とする。治具２２の上面２２ａを含む平面の式を数１の式（１）とする。ただしＺ０はこの平面が座標系Σ０のＺ軸と交差する切片であり、相似より式（２）のように算出される。
また、この平面の法線ベクトルＶ１は式（３）で表される。ここで×は外積である。
平面の式（１）から、式（４）と表される。ここで、｜｜は行列式、ｉ，ｊ，ｋはそれぞれＸ軸、Ｙ軸、Ｚ軸方向の単位ベクトルである。
この平面のロール角をφ１、ピッチ角をθ１とすると、式（５）、式（６）となる。
これらより、ロール角、ピッチ角は式（７）（８）で算出される。
【００５０】
【数１】
0005459486.tif 000002
【００５１】
（４）治具側面のタッチセンシング（図１０、図１１）
治具２２の側面２２ｂ，２２ｃの３点でタッチセンシングし、ＸＹ平面上の治具２２の姿勢を算出する。タッチセンシングする点は、図１０中、Ｐｔｒｙ４〜Ｐｔｒｙ６であり、座標系Σ１上のＸＹ座標で位置を設定し、座標系Σ１のＸ軸の負→正方向、Ｙ軸の負→正方向に押付けてタッチセンシングする。
【００５２】
（５）治具２２の座標系Σ１におけるＸＹ平面上での姿勢の算出（図１２、図１３）
実際に接触した点をＰｔｏｕｃｈｉ＝（ｘｐｔｉ，ｙｐｔｉ，ｚｐｔｉ）Ｔ  （ｉ＝４，５，６）とする。点Ｐｔｏｕｃｈ４と点Ｐｔｏｕｃｈ５とを通る直線と、点Ｐｔｏｕｃｈ６を通り、前述の直線と直交する直線とは、数２の式（９）〜（１２）で表せる。
これらより、２直線の交点（治具２２の角）は以下のように算出される。
【００５３】
【数２】
0005459486.tif 000003
【００５４】
（６）ツール寸法の補正（図１４）
以上の説明では、仮想的にツール寸法を０としていた。ここで、ツール寸法の分だけシフトすることで、治具２２の角と原点とが一致し、治具２２のエッジとＸ軸、Ｙ軸が一致する座標系Σ３が得られる。
【００５５】
３．  ステップ２：ロボット手先フランジ面１６〜ツールの相対位置のキャリブレーション（図１５）
上述した手順によって、ツール〜治具２２間の相対位置のキャリブレーションを実施した。しかし、ロボット手先フランジ面１６〜ツールの相対位置（＝ロボットベース座標〜ツール座標間の相対位置）に誤差があると、算出したΣ３（＝ロボットベース座標における治具２２座標）と実際の治具２２位置との間にずれΔＶＲ＝（ｘＶＲ，ｙＶＲ）Ｔ・・・（１３）が残る。以下ではこのずれをキャリブレーションする。
【００５６】
ツールを回転（図１６）
ツールをＴＣＰ回りで回転させる（図では、９０°回転）と、ロボットはＴＣＰ設定位置を中心に手先を回転させるため、実際のツールの位置は誤差を半径として回転する。
【００５７】
（２）ＸＹ平面（Σ３座標）上の並進ずれ（図１７、図１８）
ツールを回転させた状態で、治具２２側面をタッチセンシングして、再度Σ３’を算出すると、Σ３とΣ３’との間にはずれΔＯＯ’＝（ｘＯＯ’，ｙＯＯ’）Ｔ・・・（１４）が生じる。
ツールのＴＣＰ設定と実際の工具位置との誤差ΔＶＲは、以下の数３の式（１５）のように算出される。ただし、ΔＶＲは、Σ３座標でのずれであり、ロボットのＴＣＰ設定の補正には、ΔＶＲをロボット手先フランジ座標に座標変換する必要がある。
【００５８】
【数３】
0005459486.tif 000004
【００５９】
Ｚ方向（Σ３座標）の並進ずれ（図１９、図２０）
（２）において、ロボット手先フランジ座標のＸＹ平面上でのツール位置がキャリブレーションされ、Ｚ軸方向の並進誤差Δｚ＝（０，０，ｄｚ）Ｔ・・・（１６）が残っている。
（１）と同様に、ツールをＸ軸もしくはＹ軸回りに９０°回転させ、Ｚ軸正→負の向きにタッチセンシングすると、ツール寸法が既知であるため、ＸＹ平面が治具２２の上面に一致する座標系Σ３”が得られる。このときのΣ３とΣ３”のずれをΔＯＯ”＝（０，０，ｚＯＯ”）Ｔ・・・（１７）とすると、ツールのＴＣＰ設定と実際のＴＣＰとのずれは、式（１８）のように算出される。
Δｚ＝ΔＯＯ”  ・・・（１７）
【００６０】
なお、計算の単純化のため、以下のようにしてもよい。
（１）  円柱形又は球形のツール１２を用いる。
（２）  直方体の位置決めブロックを治具２２として用いる。
（３）  予めツールの軸線上（例えば、円柱形ならツールの端面中心、球形なら球の中心）にＴＣＰを仮設定して、姿勢を変えずに１回目のタッチセンシング、ツールの軸線を中心に９０°回転させた姿勢で２回目のタッチセンシングを実施してもよい。
【００６１】
また、センサ１４として、接触センサ（接触を感知してＯＮ／ＯＦＦを出力）や、レーザ距離計を使ってもよい。
【００６２】
上述した本発明の方法及び装置によれば、制御装置２０により、タッチセンシング工程（Ａ）、座標系設定工程（Ｂ）及びツールパラメータ設定工程（Ｃ）から構成されるシーケンスを実施するので、ツール１２に接触するおそれがない離れた場所から作業者が位置決め用の治具とロボットのＴＣＰの両方をキャリブレーションすることができる。
また、互いに直交する３平面２２ａ，２２ｂ，２２ｃを有する治具２２を用い、センサ１４を用いて前記３平面２２ａ，２２ｂ，２２ｃにツール１２を接触させるので、作業者の熟練度に依存することなく、安価かつ容易に、高い精度で、位置決め用の治具２２とロボット１８のＴＣＰの両方をキャリブレーションすることができる。
【００６３】
位置決め冶具の代わりに、ワークもしくは作業台の一部を使用した場合でも同様に扱うことが可能である。
【００６４】
また、直交する３平面の変わりに、既知の角度で交差している３平面を使用した場合でも、例えばツールの押付け方向を平面に垂直な方向にすることで同様に扱うことが可能である。
【００６５】
さらに、本発明は以下の効果を有する。
（１）  従来技術では、ＴＣＰの誤差は手先の設計誤差やロボット手先フランジ面１６の姿勢誤差に依存するが、この本発明によって手先の設計誤差とフランジ面の姿勢誤差に起因するＴＣＰの位置誤差を補償できる。
また、従来技術では、ロボット操作者の技量によって精度がばらつくおそれがあるが、この本発明ではキャリブレーション自体を自動化できるため、再現性が高い。
（２）  本発明は、外部に特殊な計測器や特殊な冶具を必要としない。位置決め冶具は直方体などの単純形状、普通の精度でよい。
（３）  ロボット手先のＴＣＰと外部の校正用冶具とが共に正確な位置がわからない状態から、ＴＣＰと冶具との双方をキャリブレーションすることができる。
（４）  ＣＰの姿勢誤差がアプリケーションに及ぼす影響が小さい場合には、ＴＣＰの位置誤差のみキャリブレーションすることができる。
【００６６】
なお、本発明は上述した実施形態に限定されず、特許請求の範囲の記載によって示され、さらに特許請求の範囲の記載と均等の意味および範囲内でのすべての変更を含むものである。
【符号の説明】
【００６７】
１０  キャリブレーション装置、１２  ツール、
１４  センサ、１６  ロボット手先フランジ面、
１８  ロボット、２０  制御装置、
２２  治具、２２ａ  第１平面、
２２ｂ  第２平面、２２ｃ  第３平面
【図１】
0005459486.tif 000005
【図２】
0005459486.tif 000006
【図３】
0005459486.tif 000007
【図４】
0005459486.tif 000008
【図５】
0005459486.tif 000009
【図６】
0005459486.tif 000010
【図７】
0005459486.tif 000011
【図８】
0005459486.tif 000012
【図９】
0005459486.tif 000013
【図１０】
0005459486.tif 000014
【図１１】
0005459486.tif 000015
【図１２】
0005459486.tif 000016
【図１３】
0005459486.tif 000017
【図１４】
0005459486.tif 000018
【図１５】
0005459486.tif 000019
【図１６】
0005459486.tif 000020
【図１７】
0005459486.tif 000021
【図１８】
0005459486.tif 000022
【図１９】
0005459486.tif 000023
【図２０】
0005459486.tif 000024