(57)【特許請求の範囲】
【請求項１】
アーム先端のフランジ面の回転中心にツールが取り付けられた多関節マニピュレータを予め設定されたベース座標系で動作させるロボットにおいて前記ツールの並進成分の寸法を導出するツールパラメータ導出装置であって，
前記ツールの可動範囲内に平面を有する平板治具と前記ツールの先端との接触を検出するツール接触検出手段と，
前記ツールの先端が前記平板治具から前記ベース座標系のＺ軸方向に離間した第１の測定点，前記ベース座標系のＸ軸方向及び／又はＹ軸方向の位置のみが前記第１の測定点と異なる第２の測定点，前記ベース座標系のＹ軸方向及び／又はＸ軸方向の位置のみが前記第２の測定点と異なる第３の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記平板治具に向けて前記ベース座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＺ軸方向の移動量を取得する移動量取得手段と，
前記移動量取得手段により取得された前記移動量に基づいて前記平板治具の前記ベース座標系に対する傾きを算出し，該傾きに基づいて前記平板治具と平行及び垂直な作業座標系を設定する作業座標系設定手段と，
前記作業座標系において前記フランジ面の回転中心を複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分の寸法を導出する並進成分導出手段と，
を備えてなることを特徴とするツールパラメータ導出装置。
【請求項２】
前記フランジ面の回転中心を原点，前記フランジ面において直交する軸をＸ軸及びＹ軸，前記フランジ面と垂直な軸をＺ軸とする座標空間をフランジ座標系としたとき，
前記並進成分導出手段が，
前記フランジ座標系のＺ軸と前記作業座標系におけるＺ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第１の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＸ軸方向の寸法を導出する第１の並進成分導出手段と，
前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸を回転中心に第２の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＹ軸方向の寸法を導出する第２の並進成分導出手段と，
前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第３の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量と前記第１の並進成分導出手段で導出された前記ツールのＸ軸方向の寸法とに基づいて前記ツールの並進成分のＺ軸方向の寸法を導出する第３の並進成分導出手段と，
を含んでなる請求項１に記載のツールパラメータ導出装置。
【請求項３】
アーム先端のフランジ面の回転中心にツールが取り付けられた多関節マニピュレータを予め設定されたベース座標系で動作させるロボットにおいて前記ツールの並進成分の寸法を導出するツールパラメータ導出装置であって，
前記ツールの可動範囲内に直交する二つの第１平面及び第２平面を有するＬ型治具と前記ツールの先端との接触を検出するツール接触検出手段と，
前記ツールの先端が前記Ｌ型治具の第１平面から前記ベース座標系のＺ軸方向に離間した第１の測定点，前記ベース座標系のＸ軸方向及び／又はＹ軸方向の位置のみが前記第１の測定点と異なる第２の測定点，前記ベース座標系のＹ軸方向及び／又はＸ軸方向の位置のみが前記第２の測定点と異なる第３の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記Ｌ型治具の第１平面に向けて前記ベース座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＺ軸方向の移動量を取得する第１の移動量取得手段と，
前記ツールの先端が前記Ｌ型治具の第２平面から前記ベース座標系のＸ軸方向に離間した第４の測定点，前記ベース座標系のＹ軸方向及び／又はＺ軸方向の位置のみが前記第４の測定点と異なる第５の測定点，前記ベース座標系のＺ軸方向及び／又はＹ軸方向の位置のみが前記第５の測定点と異なる第６の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記Ｌ型治具の第２平面に向けて前記ベース座標系のＸ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＸ軸方向の移動量を取得する第２の移動量取得手段と，
前記第１及び前記第２の移動量取得手段により取得された前記移動量に基づいて前記Ｌ型治具の前記ベース座標系に対する傾きを算出し，該傾きに基づいて前記Ｌ型治具と平行及び垂直な作業座標系を設定する作業座標系設定手段と，
前記作業座標系において前記フランジ面の回転中心を複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツールを前記Ｌ型治具の第１平面及び／又は第２平面に向けて前記作業座標系のＺ軸方向及び／又はＸ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向及び／又はＸ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分の寸法を導出する並進成分導出手段と，
を備えてなることを特徴とするツールパラメータ導出装置。
【請求項４】
前記フランジ面の回転中心を原点，前記フランジ面において直交する軸をＸ軸及びＹ軸，前記フランジ面と垂直な軸をＺ軸とする座標空間をフランジ座標系としたとき，
前記並進成分導出手段が，
前記フランジ座標系のＺ軸と前記作業座標系におけるＺ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第１の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記Ｌ型治具の第１平面に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＸ軸方向の寸法を導出する第１の並進成分導出手段と，
前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸を回転中心に第２の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記Ｌ型治具の第１平面に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＹ軸方向の寸法を導出する第２の並進成分導出手段と，
前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，該動作後の位置姿勢と前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第４の所定角度だけ回転させたときの位置姿勢とのそれぞれにおいて，該ツールを前記Ｌ型治具の第１平面及び第２平面に向けて前記作業座標系のＺ軸方向及びＸ軸方向各々に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向及びＸ軸方向各々の移動量を取得し，該移動量と前記第１の並進成分導出手段で導出された前記ツールのＸ軸方向の寸法とに基づいて前記ツールの並進成分のＺ軸方向の寸法を導出する第４の並進成分導出手段と，
を含んでなる請求項３に記載のツールパラメータ導出装置。
【請求項５】
前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第５の所定角度だけ回転させたときの位置姿勢において，前記ツールの長さを変化させた異なる二つの状態それぞれで前記ツールを前記平板治具又は前記Ｌ型治具の第１平面に向けて前記作業座標系におけるＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの移動量を取得し，該移動量と前記第５の所定角度とに基づいて前記ツールの前記フランジ座標系におけるＹ軸周りの回転成分を導出する回転成分導出手段を更に備えてなる請求項２又は４のいずれかに記載のツールパラメータ導出装置。
【請求項６】
請求項１〜５のいずれかに記載の前記ツールパラメータ導出装置及び前記多関節マニピュレータを備えてなることを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，工業用ロボットの多関節マニピュレータのアーム先端のフランジ面の回転中心に取り付けられたツールのツールパラメータを導出するための技術に関し，特に，ツールの並進成分の寸法を自動的に導出することのできるツールパラメータ導出装置及びロボットに関するものである。
【背景技術】
【０００２】
工業用ロボットは，多関節マニピュレータのアーム先端のフランジ面の回転中心に取り付けられたツール（加工具）の先端を所望の位置に移動させることにより加工作業を実現する。なお，前記ツールは，例えばアーク溶接に用いられる溶接トーチ，塗布に用いられる塗装ガン，ハンドリングに用いられるグリッパやハンド，バリ取りに用いられるグラインダなどである。また，多関節マニピュレータは，少なくとも３以上の関節を有しており，その先端の関節のフランジ面に取り付けられたツールを並進動作，回転動作させる。
このような工業用ロボットにおいて，マニピュレータのアーム先端を所望の位置姿勢に移動させる際には，その所望の位置姿勢を示す並進成分及び回転成分の座標（ｘ，ｙ，ｚ，α，β，γ）から逆運動学問題により各関節の角度を算出すればよい。なお，マニピュレータの各関節の角度から順運動学問題により現在のアーム先端の位置姿勢を算出することも可能である。
さらに，工業用ロボットにおいて，ツールの形状を示すツールパラメータが既知であれば，そのツールの先端を所望の位置姿勢に決めすることができる。なお，ツールパラメータには並進成分（Ｘｔ，Ｙｔ，Ｚｔ）及び回転成分（αｔ，βｔ，γｔ）が含まれる。
但し，予め設定されたツールパラメータに誤差が生じていると，ツールの先端の位置姿勢の制御精度が悪くなり，加工対象物の加工品質が劣化することとなる。ツールパラメータは，例えばツールを交換した場合やツールが加工対象物などに衝突した場合などに変化する。そのため，ツールパラメータの誤差を所定範囲内（例えば，アーク溶接であれば０．６ｍｍ以下）に維持するように，ツールパラメータを適時補正することが重要である。
そこで，従来から，ツールパラメータを導出する手法が提案されている（例えば，特許文献１，２参照）。特許文献１では，ツールをカメラで撮影することによりツールの形状を取得することが提案されている。また，特許文献２では，ユーザ操作によってツールの先端が任意の平面上の６つの異なる点に位置決めされたときに取得される位置座標に基づいてツールパラメータを導出することが提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−７０７８０号公報
【特許文献２】特開平８−７１９６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら，前記特許文献１に係る構成では，カメラが必要となるためコスト面に問題があり，そのカメラとロボットとの位置決めも精度良く行うことが必要であるという問題点がある。
また，前記特許文献２に係る構成では，ユーザがツールの先端を任意の平面上に所定の位置姿勢で位置決めする操作を行う必要があるため，その操作がユーザにとって手間であるばかりでなく，そのユーザの位置決め操作時に生じる人為的誤差がツールパラメータの誤差に直結し，加工品質が劣化するおそれがある。
従って，本発明は上記事情に鑑みてなされたものであり，その目的とするところは，ロボットの多関節マニピュレータのアーム先端のフランジ面の回転中心に取り付けられたツールの並進成分の寸法を高精度で自動的に導出することのできるツールパラメータ導出装置及びこれを備えたロボットを提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明は，アーム先端のフランジ面の回転中心にツールが取り付けられた多関節マニピュレータを予め設定されたベース座標系で動作させるロボットにおいて前記ツールの並進成分の寸法を導出するツールパラメータ導出装置に適用されるものであって，以下の（１）〜（４）を備えていることを特徴として構成される。
（１）前記ツールの可動範囲内に平面を有する平板治具と前記ツールの先端との接触を検出するツール接触検出手段。
（２）前記ツールの先端が前記平板治具から前記ベース座標系のＺ軸方向に離間した第１の測定点，前記ベース座標系のＸ軸方向及び／又はＹ軸方向の位置のみが前記第１の測定点と異なる第２の測定点，前記ベース座標系のＹ軸方向及び／又はＸ軸方向の位置のみが前記第２の測定点と異なる第３の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記平板治具に向けて前記ベース座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＺ軸方向の移動量を取得する移動量取得手段。
（３）前記移動量取得手段により取得された前記移動量に基づいて前記平板治具の前記ベース座標系に対する傾きを算出し，該傾きに基づいて前記平板治具と平行及び垂直な作業座標系を設定する作業座標系設定手段。
（４）前記作業座標系において前記フランジ面の回転中心を複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分の寸法を導出する並進成分導出手段。
このように構成された前記ツールパラメータ導出装置によれば，前記作業座標系が自動的に設定された上で，該作業座標系に従って前記ツールの並進成分の寸法が自動的に導出されるため，従来のようなユーザの位置決め操作時に生じる人為的誤差を排除して高い精度でツールパラメータを導出することができ，ユーザによる位置決め操作の手間も省略される。
【０００６】
ここで，前記フランジ面の回転中心を原点，前記フランジ面において直交する軸をＸ軸及びＹ軸，前記フランジ面と垂直な軸をＺ軸とする座標空間をフランジ座標系としたとき，前記並進成分導出手段は，以下の（１１）〜（１３）を含むものであることが考えられる。
（１１）前記フランジ座標系のＺ軸と前記作業座標系におけるＺ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第１の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＸ軸方向の寸法を導出する第１の並進成分導出手段。
（１２）前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸を回転中心に第２の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＹ軸方向の寸法を導出する第２の並進成分導出手段。
（１３）前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第３の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記平板治具に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量と前記第１の並進成分導出手段で導出された前記ツールのＸ軸方向の寸法とに基づいて前記ツールの並進成分のＺ軸方向の寸法を導出する第３の並進成分導出手段。
【０００７】
また，本発明は，アーム先端のフランジ面の回転中心にツールが取り付けられた多関節マニピュレータを予め設定されたベース座標系で動作させるロボットにおいて前記ツールの並進成分の寸法を導出するツールパラメータ導出装置に適用されるものであって，以下の（２１）〜（２５）を備えていることを特徴として構成される。
（２１）前記ツールの可動範囲内に直交する二つの第１平面及び第２平面を有するＬ型治具と前記ツールの先端との接触を検出するツール接触検出手段。
（２２）前記ツールの先端が前記Ｌ型治具の第１平面から前記ベース座標系のＺ軸方向に離間した第１の測定点，前記ベース座標系のＸ軸方向及び／又はＹ軸方向の位置のみが前記第１の測定点と異なる第２の測定点，前記ベース座標系のＹ軸方向及び／又はＸ軸方向の位置のみが前記第２の測定点と異なる第３の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記Ｌ型治具の第１平面に向けて前記ベース座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＺ軸方向の移動量を取得する第１の移動量取得手段。
（２３）前記ツールの先端が前記Ｌ型治具の第２平面から前記ベース座標系のＸ軸方向に離間した第４の測定点，前記ベース座標系のＹ軸方向及び／又はＺ軸方向の位置のみが前記第４の測定点と異なる第５の測定点，前記ベース座標系のＺ軸方向及び／又はＹ軸方向の位置のみが前記第５の測定点と異なる第６の測定点の少なくとも３箇所に前記フランジ面の回転中心を移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツールを前記Ｌ型治具の第２平面に向けて前記ベース座標系のＸ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記ベース座標系のＸ軸方向の移動量を取得する第２の移動量取得手段。
（２４）前記第１及び前記第２の移動量取得手段により取得された前記移動量に基づいて前記Ｌ型治具の前記ベース座標系に対する傾きを算出し，該傾きに基づいて前記Ｌ型治具と平行及び垂直な作業座標系を設定する作業座標系設定手段。
（２５）前記作業座標系において前記フランジ面の回転中心を複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツールを前記Ｌ型治具の第１平面及び／又は第２平面に向けて前記作業座標系のＺ軸方向及び／又はＸ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向及び／又はＸ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分の寸法を導出する並進成分導出手段。
前記ツールパラメータ導出装置のように前記Ｌ型治具を用いれば，ユーザによる位置決め操作の手間を省略して高い精度でツールパラメータを導出することができると共に，前記ツールの並進成分のＺ軸方向の寸法を導出する際に，前記ツールの先端よりも先に他の部位が治具に接触するおそれを回避することができる。
【０００８】
ここで，前記フランジ面の回転中心を原点，前記フランジ面において直交する軸をＸ軸及びＹ軸，前記フランジ面と垂直な軸をＺ軸とする座標空間をフランジ座標系としたとき，前記並進成分導出手段は，以下の（３１）〜（３３）を含むことが考えられる。
（３１）前記フランジ座標系のＺ軸と前記作業座標系におけるＺ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第１の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記Ｌ型治具の第１平面に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＸ軸方向の寸法を導出する第１の並進成分導出手段。
（３２）前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸を回転中心に第２の所定角度だけ正回転及び逆回転させたときの二つの位置姿勢それぞれにおいて，該ツールを前記Ｌ型治具の第１平面に向けて前記作業座標系のＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向の移動量を取得し，該移動量に基づいて前記ツールの並進成分のＹ軸方向の寸法を導出する第２の並進成分導出手段。
（３３）前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，該動作後の位置姿勢と前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第４の所定角度だけ回転させたときの位置姿勢とのそれぞれにおいて，該ツールを前記Ｌ型治具の第１平面及び第２平面に向けて前記作業座標系のＺ軸方向及びＸ軸方向各々に移動させたときに前記ツール接触検出手段により接触が検出されるまでの前記作業座標系のＺ軸方向及びＸ軸方向各々の移動量を取得し，該移動量と前記第１の並進成分導出手段で導出された前記ツールのＸ軸方向の寸法とに基づいて前記ツールの並進成分のＺ軸方向の寸法を導出する第４の並進成分導出手段。
【０００９】
さらに，前記ツールパラメータ導出装置は，前記フランジ座標系のＺ軸と前記作業座標系におけるＸ軸とが平行になるように前記多関節マニピュレータを動作させた後，前記ツールを前記フランジ座標系のＺ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第５の所定角度だけ回転させたときの位置姿勢において，前記ツールの先端の長さが異なる二つの状態それぞれで前記ツールを前記平板治具又は前記Ｌ型治具の第１平面に向けて前記作業座標系におけるＺ軸方向に移動させたときに前記ツール接触検出手段により接触が検出されるまでの移動量を取得し，該移動量と前記第５の所定角度とに基づいて前記ツールの前記フランジ座標系におけるＹ軸周りの回転成分を導出する回転成分導出手段を更に備えてなることが望ましい。これにより，前記ツールの並進成分の寸法のみならず，前記ツールの前記フランジ座標系におけるＹ軸周りの回転成分についても自動的且つ高い精度で導出することが可能となる。
もちろん，本願発明は，前記ツールパラメータ導出装置及び前記多関節マニピュレータを備えるロボットの発明として捉えることも可能である。
【発明の効果】
【００１０】
本発明によれば，前記作業座標系が自動的に設定された上で，該作業座標系に従って前記ツールの並進成分の寸法が自動的に導出されるため，従来のようなユーザの位置決め操作時に生じる人為的誤差を排除して高い精度でツールパラメータを導出することができ，ユーザによる位置決め操作の手間も省略される。また，前記Ｌ型治具を用いれば，前記ツールの並進成分のＺ軸方向の寸法を導出する際に，前記ツールの先端よりも先に他の部位が治具に接触するおそれを回避することも可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態に係るロボットの概略構成を示す模式図。
【図２】本発明の実施の形態に係るロボットにおいて実行されるツールパラメータ導出処理の手順の一例を示すフロー図。
【図３】ツールパラメータ導出処理における平板治具の傾き検出時の動作を説明するための図。
【図４】平板治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＸ軸方向の寸法を導出する際の動作を説明するための図。
【図５】平板治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＹ軸方向の寸法を導出する際の動作を説明するための図。
【図６】平板治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＺ軸方向の寸法を導出する際の動作を説明するための図。
【図７】平板治具を用いた場合のツールパラメータ導出処理の問題を説明するための図。
【図８】Ｌ型治具を用いた場合のツールパラメータ導出処理を説明するための図。
【図９】ツールパラメータ導出処理におけるＬ型治具の傾き検出時の動作を説明するための図。
【図１０】Ｌ型治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＸ軸方向の寸法を導出する際の動作を説明するための図。
【図１１】Ｌ型治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＹ軸方向の寸法を導出する際の動作を説明するための図。
【図１２】Ｌ型治具を用いた場合のツールパラメータ導出処理におけるツールの並進成分のＺ軸方向の寸法を導出する際の動作を説明するための図。
【図１３】ツールパラメータ導出処理においてツールの回転成分を導出する際の動作を説明するための図。
【発明を実施するための形態】
【００１２】
以下添付図面を参照しながら，本発明の実施の形態について説明し，本発明の理解に供する。尚，以下の実施の形態は，本発明を具体化した一例であって，本発明の技術的範囲を限定する性格のものではない。
まず，図１を参照しつつ，本発明の実施の形態に係るロボット１０の概略構成について説明する。
図１に示すように，本発明の実施の形態に係るロボット１０は，多関節マニピュレータ２０，コントローラ３０，ツール接触検出部４０（ツール接触検出手段の一例），平板治具５０などを備えて構成された工業用ロボットである。
前記多関節マニピュレータ２０は，回動可能な６つの関節２１〜２６によって構成されたアームを有しており，そのアーム先端の関節２６のフランジ面１２の回転中心Ｐにはツール１１が取り付けられる。ここで，前記ツール１１は，アーク溶接に用いられる溶接トーチである。その他，前記ツール１１は，塗布に用いられる塗装ガン，ハンドリングに用いられるグリッパやハンド，バリ取りに用いられるグラインダ等であってもよい。
前記多関節マニピュレータ２０は，前記コントローラ３０からの制御指令に従って前記関節２１〜２６各々を回転させることにより，前記ツール１１を並進動作させ，或いは回転動作させる。なお，前記関節２１〜２６各々はステッピングモータ等の駆動源によって駆動される。
ここでは，図１に示すように，前記フランジ面１２の回転中心Ｐを原点とし，前記フランジ面１２において直交する軸Ｘｆ，ＹｆをＸ軸，Ｙ軸，前記フランジ面１２に垂直な軸ＺｆをＺ軸とする座標空間をフランジ座標系Ｆとする。
【００１３】
前記コントローラ３０は，例えばパーソナルコンピュータ等であって，ＣＰＵ，ＲＡＭ，ＲＯＭなどの制御機器を有しており，前記ＲＯＭに予め格納されている所定の制御プログラムに従った各種の処理が前記ＣＰＵによって実行されることにより当該ロボット１０の動作を制御する。
具体的に，前記コントローラ３０は，ユーザによる操作入力に従って，或いは予め設定された作業プログラムに従って，前記多関節マニピュレータ２０の関節２１〜２６各々の角度を制御することにより，加工対象物の加工処理を実行する。ここで，前記多関節マニピュレータ２０のアームのパラメータは既知であり，前記コントローラ３０は，図１に示すように，予め設定されたベース座標系Ｂ（Ｘｂ，Ｙｂ，Ｚｂ）において前記フランジ面１２の回転中心Ｐの位置姿勢を制御し得るものとする。前記ベース座標系は，前記ロボット１０において基準となる座標系として予め定められた固定の座標系である。
ところで，前記ツール１１のツールパラメータについても既知であれば，前記コントローラ３０は，前記ツール１１の先端１１ａを前記ベース座標系Ｂで並進動作或いは回転動作させて，任意の位置姿勢に制御することが可能である。しかしながら，前記ツール１１のツールパラメータは，加工作業中に加工対象物に衝突した場合や，前記ツール１１が交換された場合などに変化する。そのため，前記ロボット１０において，前記ツール１１の先端１１ａの位置姿勢を正確に制御して高い加工品質を維持するためには，該ツール１１のツールパラメータを高い精度で導出して適時補正するキャリブレーションを実行する必要がある。
なお，前記ツール１１のツールパラメータは，前記フランジ座標系Ｆにおける前記ツール１１の先端１１ａの座標である並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ）と回転成分（αｔ，βｔ，γｔ）とにより表される。本発明の実施の形態に係る前記ロボット１０は，後述するように，前記ツール１１の並進成分の寸法を自動的に導出し得ることに特徴を有している。
【００１４】
前記平板治具５０は，前記コントローラ３０によって後述のツールパラメータ導出処理が実行されるに際して，ユーザによって予めその平面が前記ツール１１の可動範囲内に位置するように固定される鋼材などの導電性部材である。なお，前記ロボット１０の通常動作（加工動作）時に加工対象物が載置される載置台が前記平板治具５０であることも考えられる。
前記ツール接触検出部４０は，前記ツール１１に対して所定の電圧を印加しており，該ツール１１の先端１１ａが前記平板治具５０に接触した際の短絡電流などによって，前記ツール１１の先端１１ａと前記平板治具５０との接触を検出する。なお，前記ツール接触検出部４０は，前記ツール１１の先端１１ａと前記平板治具５０との接触を検出することができればその手法はこれに限らない。
そして，前記ツール接触検出部４０による検出結果は前記コントローラ３０に入力される。このとき，前記コントローラ３０は，前記ツール接触検出部４０によって前記ツール１１の先端１１ａと前記平板治具５０と接触が検出されたことを条件に，前記多関節マニピュレータ２０の動作を停止させる。なお，前記ツール接触検出部４０は，通常，前記ツール１１の先端１１ａと加工対象物との接触を検出するために従来から利用されているものである。
【００１５】
以下，図２のフローチャートに従って，前記コントローラ３０によって実行されるツールパラメータ導出処理の手順の一例について説明する。なお，前記ツールパラメータ導出処理における前記ロボット１０の動作例について図３〜図６を適宜参照する。ここに，図２中のＳ１，Ｓ２，…は処理手順（ステップ）の番号を表している。
前記コントローラ３０は，例えばユーザによる前記コントローラ３０に対する所定の操作入力に応じて，或いは前記ツール１１の交換後や所定期間経過ごと等に自動的に，当該ツールパラメータ導出処理を実行することにより，前記ツール接触検出部４０を利用して前記ツール１１の並進成分の寸法を導出する。ここに，当該ツールパラメータ導出処理を実行するときの前記コントローラ３０及び前記ツール接触検出部４０がツールパラメータ導出装置の一例である。
【００１６】
＜ステップＳ１〜Ｓ２＞
まず，ステップＳ１では，前記コントローラ３０は，該コントローラ３０内部にツールパラメータとして予め記憶されている前記ツール１１の並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ；図１参照）を０にリセット（初期化）する。これにより，前記コントローラ３０は，前記フランジ面１２の回転中心Ｐ（フランジ座標系Ｆの原点）を，前記ベース座標系Ｂにおける前記ツール１１の先端１１ａの位置座標として認識することになる。
次に，ステップＳ２では，前記コントローラ３０は，前記平板治具５０の前記基準座標系Ｂに対する傾きを検出し，該検出された傾きに基づいて前記平板治具５０に平行及び垂直な座標空間である作業座標系Ｗを設定する。以下，図３を参照しつつ前記作業座標系Ｗの具体的な設定手法について説明する。
【００１７】
前記コントローラ３０は，図３（ａ）に示すように，前記多関節マニピュレータ２０を動作させることにより，前記フランジ面１２の回転中心Ｐを第１の測定点Ｐ１〜第３の測定点Ｐ３の少なくとも３箇所に移動させると共に，その少なくとも３箇所の位置それぞれにおいて前記ツール１１を前記平板治具５０に向けて前記ベース座標系ＢのＺｂ軸方向に移動させたときに，該ツール１１の先端１１ａと前記平板治具５０とが接触する接触点Ｐｓ１〜Ｐｓ３までの移動量Ｚ１〜Ｚ３を測定する。
ここで，前記第１の測定点Ｐ１は，前記ツール１１の先端１１ａが前記平板治具５０から前記ベース座標系ＢのＺｂ軸方向に離間した位置である。ここに，前記ベース座標系Ｂにおける前記第１の測定点Ｐ１の座標を（ｘ，ｙ，ｚ）とする。また，前記第２の測定点Ｐ２は，前記ベース座標系ＢのＸｂ軸方向の位置が前記第１の測定点Ｐ１とΔｘだけ異なる位置（ｘ＋Δｘ，ｙ，ｚ）であり，前記第３の測定点Ｐ３は，前記ベース座標系ＢのＹｂ軸方向の位置が前記第２の測定点Ｐ２とΔｙだけ異なる位置（ｘ＋Δｘ，ｙ＋Δｙ，ｚ）である。なお，ここでは計算を簡単にするために，前記第１の測定点Ｐ１と前記第２の測定点Ｐ２とは前記ベース座標系ＢのＸｂ軸方向の位置のみが異なり，前記第２の測定点Ｐ２と前記第３の測定点Ｐ３とは前記ベース座標系ＢのＹｂ軸方向の位置のみが異なる場合を例に挙げて説明するが，前記第１の測定点Ｐ１，前記第２の測定点Ｐ２，前記第３の測定点Ｐ３は，該測定点Ｐ１〜Ｐ３により三角形が形成されるようにＸｂ軸方向及び／又はＹｂ軸方向の位置が異なり，Ｚｂ軸方向の位置が同一である点であればよい。
このとき，実際の前記ツール１１の先端１１ａの位置座標は不明であるが，図３（ｂ）に示すように，前記フランジ面１２の回転中心Ｐを，前記ベース座標系ＢのＺｂ軸の位置Ｐ０から前記平板治具５０よりも下方の位置Ｐｅを目標に移動させた場合，該ツール１１の先端１１ａと前記平板治具５０とが接触する位置Ｐｓ０までの前記回転中心Ｐの移動距離は，前記ツール１１の先端１１ａの移動距離と同じΔＺである。
そのため，前記コントローラ３０は，前記測定点Ｐ１〜Ｐ３それぞれにおいて，前記ツール１１の先端１１ａと前記平板治具５０とが接触する毎に前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ１〜Ｐｓ３における前記フランジ面１２の回転中心Ｐの前記ベース座標系Ｂにおける位置座標を取得する。そして，前記コントローラ３０は，前記測定点Ｐ１〜Ｐ３それぞれと前記接触点Ｐｓ１〜Ｐｓ３それぞれとの位置座標の差分を算出することにより，前記移動量Ｚ１〜Ｚ３を算出する。即ち，前記接触点Ｐｓ１〜Ｐｓ３の位置座標は，前記移動量Ｚ１〜Ｚ３を用いると，Ｐｓ１（ｘ，ｙ，ｚ−Ｚ１），Ｐｓ２（ｘ＋Δｘ，ｙ，ｚ−Ｚ２），Ｐｓ３（ｘ＋Δｘ，ｙ＋Δｙ，ｚ−Ｚ３）で表される。
ここに，前記移動量Ｚ１〜Ｚ３を取得するときの前記コントローラ３０が移動量取得手段に相当する。なお，前記第１の測定点Ｐ１は，前記先端１１ａが前記平板治具５０から離間していればその都度異なる任意の位置であってもよい。
【００１８】
そして，前記コントローラ３０は，前記ツール接触検出部４０により接触が検出された接触点Ｐｓ１〜Ｐｓ３の位置座標に基づいて，前記第１の測定点Ｐ１から前記第２の測定点Ｐ２のベクトルΔＰｓ１２，前記第２の測定点Ｐ２から前記第３の測定点Ｐ３のベクトルΔＰｓ２３を以下の式（１），（２）により算出する。
ΔＰｓ１２＝Ｐｓ２−Ｐｓ１＝（Δｘ，０，Ｚ１−Ｚ２）  …（１）
ΔＰｓ２３＝Ｐｓ３−Ｐｓ２＝（０，Δｙ，Ｚ２−Ｚ３）  …（２）
また，前記コントローラ３０は，前記ベクトルΔＰｓ１２，ΔＰｓ２３の単位ベクトルＬ，ｍを以下の式（３），（４）により算出する。
Ｌ＝ΔＰｓ１２／｜ΔＰｓ１２｜  …（３）
ｍ＝ΔＰｓ２３／｜ΔＰｓ２３｜  …（４）
さらに，前記コントローラ３０は，前記単位ベクトルＬ，ｍの外積を算出することにより，前記平板治具５０に垂直な単位ベクトルＮを算出する（Ｎ＝Ｌ×ｍ）。また，前記コントローラ３０は，前記単位ベクトルＬ×Ｎにより単位ベクトルＭを算出する。これにより，前記コントローラ３０は，前記平板治具５０の前記ベース座標系Ｂに対する傾きを算出することとなる。
続いて，前記コントローラ３０は，前記単位ベクトルＮの方向をＺ軸，前記単位ベクトルＬの方向を前記Ｘ軸，前記単位ベクトルＭの方向をＹ軸とする座標空間を作業座標系Ｗ（Ｘｗ，Ｙｗ，Ｚｗ）として設定する。このとき，前記作業座標系Ｗは，前記平板治具５０に平行及び垂直な座標空間であり，前記ベース座標系Ｂから見た前記作業座標系ＷのＸｗ，Ｙｗ，Ｚｗ軸の方向は，Ｌ（Ｌｘ，Ｌｙ，Ｌｚ），Ｍ（Ｍｘ，Ｍｙ，Ｍｚ），Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）となる。そして，前記コントローラ３０は，前記ベース座標系Ｂ上のベクトルを前記作業座標系Ｗ上のベクトルに変換するための回転行列Ｒを算出する。ここに，前記回転行列Ｒは以下の（５）式で表される。
【数１】
0005411810.tif 000002
これにより，前記コントローラ３０は，以後の処理において，前記回転行列Ｒに基づいて前記平板治具５０と平行及び垂直な作業座標系Ｗ（Ｘｗ，Ｙｗ，Ｚｗ）で前記多関節マニピュレータ２０を制御して前記ツール１１を直線動作させることができる。このように，前記作業座標系Ｗを設定するときの前記コントローラ３０が作業座標系設定手段に相当する。
【００１９】
＜ステップＳ３〜Ｓ５＞
そして，ステップＳ３〜Ｓ５において，前記コントローラ３０は，前記作業座標系Ｗにおいて前記フランジ面１２の回転中心Ｐを複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記作業座標系ＷのＺｗ軸方向の移動量を取得し，該移動量に基づいて前記ツール１１の並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ）を導出する。ここに，係る処理を実行するときの前記コントローラ３０が並進成分導出手段に相当する。以下，前記コントローラ３０が前記ツール１１の並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ）を導出する具体的手法について説明する。
【００２０】
＜ステップＳ３＞
まず，ステップＳ３において，前記コントローラ３０は，前記ツール１１の並進成分のうち前記フランジ座標系ＦにおけるＸｆ軸方向の寸法Ｘｔを導出する。
具体的に，前記コントローラ３０は，図４（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＺｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。このとき，前記コントローラ３０は，前記回転行列Ｒに基づいて前記多関節マニピュレータ２０を制御することにより，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＺｗ軸とが平行となるように前記フランジ面１２の位置姿勢を制御することが可能である。この点は，以下の動作についても同様である。
その後，前記コントローラ３０は，図４（ｂ）に示すように，前記多関節マニピュレータ２０の関節２５により，前記ツール１１を，前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第１の所定角度θ１だけ正回転（＋θ１）させて測定点Ｐ１１の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ１１（ｘ１１，ｙ１１，ｚ１１）とする。
また，前記コントローラ３０は，前記測定点Ｐ１１において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ１１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ１１（ｘ１１’，ｙ１１’，ｚ１１’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ１１と前記接触点Ｐｓ１１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ１１（ｚ１１−ｚ１１’）を算出する。
【００２１】
次に，前記コントローラ３０は，再度，図４（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＺｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。
その後，前記コントローラ３０は，図４（ｂ）に示すように，前記多関節マニピュレータ２０の関節２５により，前記ツール１１を前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第１の所定角度θ１だけ逆回転（−θ１）させて測定点Ｐ１２の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ１２（ｘ１２，ｙ１２，ｚ１２）とする。もちろん，前記測定点Ｐ１１から２×θ１の角度だけ逆回転させてもよい。
また，前記コントローラ３０は，前記測定点Ｐ１２において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ１２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ１２（ｘ１２’，ｙ１２’，ｚ１２’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ１２と前記接触点Ｐｓ１２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ１２（ｚ１２−ｚ１２’）を算出する。
【００２２】
このように，前記測定点Ｐ１１，Ｐ１２において，前記移動量Ｚ１１，Ｚ１２が取得されると，前記コントローラ３０は，該移動量Ｚ１１，Ｚ１２に基づいて前記ツール１１の並進成分のＸ軸方向の寸法を導出する。
具体的に，前記コントローラ３０は，前記ツール１１の並進成分の寸法Ｘｔを以下の式（６）により算出する。
Ｘｔ＝（｜Ｚ１２−Ｚ１１｜）／（２ｓｉｎΔθ１）  …（６）
以上より，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＺｗ軸とが平行になるように前記ツール１１を位置決めした後，前記測定点Ｐ１１，Ｐ１２の２箇所それぞれにおいて取得される移動量Ｚ１１，Ｚ１２に基づいて前記ツール１１の並進成分のＸ軸方向の寸法Ｘｔを導出することができる。ここに，係る処理を実行するときの前記コントローラ３０が第１の並進成分導出手段に相当する。
【００２３】
＜ステップＳ４＞
続いて，ステップＳ４において，前記コントローラ３０は，前記ツール１１の並進成分のうち前記フランジ座標系ＦにおけるＹｆ軸方向の寸法Ｙｔを導出する。
具体的に，前記コントローラ３０は，図５（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。
その後，前記コントローラ３０は，図５（ｂ）に示すように，前記多関節マニピュレータ２０の関節２６により，前記ツール１１を，前記フランジ座標系ＦのＺｆ軸を回転中心に第２の所定角度θ２だけ正回転（＋θ２）させて測定点Ｐ２１の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ２１（ｘ２１，ｙ２１，ｚ２１）とする。
また，前記コントローラ３０は，前記測定点Ｐ２１において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ２１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ２１（ｘ２１’，ｙ２１’，ｚ２１’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ２１と前記接触点Ｐｓ２１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ２１（ｚ２１−ｚ２１’）を算出する。
【００２４】
次に，前記コントローラ３０は，再度，図５（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。
その後，前記コントローラ３０は，図５（ｂ）に示すように，前記多関節マニピュレータ２０の関節２６により，前記ツール１１を前記フランジ座標系ＦのＺｆ軸を回転中心に第２の所定角度θ２だけ逆回転（−θ２）させて測定点Ｐ２２の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ２２（ｘ２２，ｙ２２，ｚ２２）とする。もちろん，前記測定点Ｐ２１から２×θ１の角度だけ逆回転させてもよい。
また，前記コントローラ３０は，前記測定点Ｐ２２において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ２２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ２２（ｘ２２’，ｙ２２’，ｚ２２’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ２２と前記接触点Ｐｓ２２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ２２（ｚ２２−ｚ２２’）を算出する。
【００２５】
このように，前記測定点Ｐ２１，Ｐ２２において，前記移動量Ｚ２１，Ｚ２２が取得されると，前記コントローラ３０は，該移動量Ｚ２１，Ｚ２２に基づいて前記ツール１１の並進成分のＹ軸方向の寸法を導出する。
具体的に，前記コントローラ３０は，前記ツール１１の並進成分の寸法Ｙｔを以下の式（７）により算出する。
Ｙｔ＝（｜Ｚ２２−Ｚ２１｜）／（２ｓｉｎΔθ２）  …（７）
以上より，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＸｗ軸とが平行になるように前記ツール１１を位置決めした後，前記測定点Ｐ２１，Ｐ２２の２箇所それぞれにおいて取得される移動量Ｚ２１，Ｚ２２に基づいて前記ツール１１の並進成分のＹ軸方向の寸法Ｙｔを導出することができる。ここに，係る処理を実行するときの前記コントローラ３０が第２の並進成分導出手段に相当する。
【００２６】
＜ステップＳ５＞
さらに，ステップＳ５において，前記コントローラ３０は，前記ツール１１の並進成分のうち前記フランジ座標系ＦにおけるＺｆ軸方向の寸法Ｚｔを導出する。
具体的に，前記コントローラ３０は，図６（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。なお，このとき，前記多関節マニピュレータ２０と前記平板治具５０とは，該多関節マニピュレータ２０のアームが下降しても前記ツール１１よりも先に前記平板治具５０に接触しない位置関係にある。
その後，前記コントローラ３０は，図６（ｂ）に示すように，前記多関節マニピュレータ２０の関節２５により，前記ツール１１を前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第３の所定角度θ３だけ正回転（＋θ３）させて測定点Ｐ３１の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ３１（ｘ３１，ｙ３１，ｚ３１）とする。
また，前記コントローラ３０は，前記測定点Ｐ３１において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ３１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ３１（ｘ３１’，ｙ３１’，ｚ３１’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ３１と前記接触点Ｐｓ３１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ３１（ｚ３１−ｚ３１’）を算出する。
【００２７】
次に，前記コントローラ３０は，再度，図６（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。
その後，前記コントローラ３０は，図６（ｂ）に示すように，前記多関節マニピュレータ２０の関節２５により，前記ツール１１を前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第３の所定角度θ３だけ逆回転（−θ３）させて測定点Ｐ３２の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ３２（ｘ３２，ｙ３２，ｚ３２）とする。もちろん，前記測定点Ｐ３１から２×θ１の角度だけ逆回転させてもよい。
また，前記コントローラ３０は，前記測定点Ｐ３２において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ３２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ３２（ｘ３２’，ｙ３２’，ｚ３２’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ３２と前記接触点Ｐｓ３２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ３２（ｚ３２−ｚ３２’）を算出する。
【００２８】
このように，前記測定点Ｐ３１，Ｐ３２において，前記移動量Ｚ３１，Ｚ３２が取得されると，前記コントローラ３０は，該移動量Ｚ３１，Ｚ３２と前記ステップＳ３で導出された前記ツール１１のＸ軸方向の寸法Ｘｔとに基づいて前記ツール１１の並進成分のＺ軸方向の寸法Ｚｔを導出する。
具体的に，前記コントローラ３０は，前記ツール１１の並進成分の寸法Ｚｔを以下の式（８）〜（１０）により算出する。
【数２】
0005411810.tif 000003
図６（ｂ）に示すように，Ｄ１は，前記関節２５の回転中心から前記関節２６のフランジ面１２までの距離である。また，Ｄ２は，前記測定点Ｐ３１における前記ツール１１の先端１１ａの前記平板治具５０に対する垂線と前記測定点Ｐ３１，Ｐ３２各々における前記フランジ座標系ＦのＺｆ軸との二つの交点の間の距離である。さらに，Ｄ３は，前記関節２５の回転中心から，前記測定点Ｐ３１における前記ツール１１の先端１１ａの前記平板治具５０に対する垂線と前記フランジ座標系ＦのＺｆ軸との交点までの距離である。
以上より，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＸｗ軸とが平行になるように前記ツール１１を位置決めした後，前記測定点Ｐ３１，Ｐ３２の２箇所それぞれにおいて取得される移動量Ｚ３１，Ｚ３２と前記ツール１１の寸法Ｘｔとに基づいて前記ツール１１の並進成分のＸ軸方向の寸法Ｚｔを導出することができる。ここに，係る処理を実行するときの前記コントローラ３０が第３の並進成分導出手段に相当する。
【００２９】
＜ステップＳ６＞
そして，前記コントローラ３０は，前記ステップＳ３〜Ｓ５で導出された前記ツール１１の並進成分である前記フランジ座標系ＦのＸｆ，Ｙｆ，Ｚｆ軸方向の寸法Ｘｔ，Ｙｔ，Ｚｔをツールパラメータとして設定（或いは補正）し，当該ツールパラメータ導出処理を終了させ，処理を通常の加工動作処理に移行させる。なお，前記ツールパラメータは，前記コントローラ３０の内部メモリなどに記憶される。
このように，前記ロボット１０では，前記コントローラ３０によって前記ツールパラメータ導出処理が実行されることにより，自動的に前記ツール１１の並進成分の寸法Ｘｔ，Ｙｔ，Ｚｔを導出することができる。従って，従来のようなユーザの位置決め操作時に生じる人為的誤差を排除して高い精度でツールパラメータを導出することができ，高い加工精度を得ることができる。また，ユーザによる位置決め操作の手間を省略することができる。
【実施例１】
【００３０】
ところで，前記実施の形態では，１つの平面を有する前記平板治具５０を用いて前記ツール１１の並進成分の寸法を導出する場合を例に挙げて説明した。
但し，図７に示すように，前記実施の形態に係る構成では，前記ツール１１の並進成分のＺ軸方向の寸法Ｚｔを導出する際，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行な状態で，前記第３の所定角度θ３だけ正回転（＋θ３）させることにより前記ツール１１が上方に回転移動した測定点Ｐ３１の位置姿勢に位置決めした後，前記ツール１１が前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動する。そのため，前記多関節マニピュレータ２０と前記平板治具５０との位置関係如何によっては，図７（ａ）に示すように，前記ツール１１の先端１１ａよりも先に前記多関節マニピュレータ２０のアームなどの構成要素が前記平板治具５０に接触するおそれがある。また，図７（ｂ）に示すように，前記ツール１１の先端１１ａではなく該先端１１ａを指示するソケット１１ｂなどが先に前記平板治具５０に接触するおそれもある。
そこで，本実施例１では，図８に示すように，前記平板治具５０に代えて，直交する二つの下板６１（第１平面）及び立板６２（第２平面）を有するＬ型治具６０を用いて，前記ツール１１の並進成分の寸法を導出する場合の前記ツールパラメータ導出処理について説明する。これにより，前記ツール１１を，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行な状態からさらに上方に回転移動させる必要がなくなり，該マニピュレータ２０のアームや前記ソケット１１ｂなどと前記Ｌ型治具６０との接触を回避しつつ，前記ツール１１の並進成分の寸法Ｘｔ，Ｙｔ，Ｚｔを算出することができる。
以下，前記Ｌ型治具６０を用いて実行されるパラメータ導出処理について説明する。なお，前記パラメータ導出処理の基本的な処理の流れは前記実施の形態（図２参照）と同様である。特に，前記ステップＳ１及び前記ステップＳ６の処理については特に変わりがないため，ここでは説明を省略し，前記実施の形態と異なるステップＳ２〜Ｓ５についてのみ説明する。なお，この場合，前記ツール接触検出部４０は，前記Ｌ型治具６０の下板６１又は立板６２と前記ツール１１の先端１１ａとの接触を検出することとなる。
【００３１】
＜ステップＳ２＞
前記ステップＳ２では，前記コントローラ３０は，前記Ｌ型治具６０の前記基準座標系Ｂに対する傾きを検出し，該検出された傾きに基づいて前記Ｌ型治具６０に平行及び垂直な座標空間である作業座標系Ｗを設定する。ここに，係る処理を実行するときの前記コントローラ３０が，移動量取得手段及び作業座標系設定手段に相当する。以下，図９，図１０を参照しつつ前記作業座標系Ｗの具体的な設定手法について説明する。
【００３２】
図９，図１０に示すように，前記コントローラ３０は，前記実施の形態におけるステップＳ２と同様の処理を前記下板６１及び前記立板６２について実行する。
具体的には，前記コントローラ３０は，前記ツール１１の先端１１ａが前記Ｌ型治具６０の下板６１から前記ベース座標系ＢのＺｂ軸方向に離間した第１の測定点，前記ベース座標系ＢのＸｂ軸方向の位置のみが前記第１の測定点と異なる第２の測定点，前記ベース座標系ＢのＹｂ軸方向の位置のみが前記第２の測定点と異なる第３の測定点の少なくとも３箇所に前記フランジ面１２の回転中心Ｐを移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツール１１を前記Ｌ型治具６０の下板６１に向けて前記ベース座標系ＢのＺｂ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記ベース座標系ＢのＺｂ軸方向の移動量Ｚ１〜Ｚ３を取得する。ここに，前記移動量Ｚ１〜Ｚ３を取得するときの前記コントローラ３０が第１の移動量取得手段に相当する。なお，ここでは計算を簡単にするために，前記第１の測定点と前記第２の測定点とは前記ベース座標系ＢのＸｂ軸方向の位置のみが異なり，前記第２の測定点と前記第３の測定点とは前記ベース座標系ＢのＹｂ軸方向の位置のみが異なる場合を例に挙げて説明するが，前記第１の測定点，前記第２の測定点，前記第３の測定点は，該測定点各々により三角形が形成されるようにＸｂ軸方向及び／又はＹｂ軸方向の位置が異なり，Ｚｂ軸方向の位置が同一である点であればよい。
また，前記コントローラ３０は，前記ツール１１の先端１１ａが前記Ｌ型治具６０の立板６２から前記ベース座標系ＢのＸｂ軸方向に離間した第４の測定点，前記ベース座標系ＢのＹｂ軸方向の位置のみが前記第４の測定点と異なる第５の測定点，前記ベース座標系ＢのＺｂ軸方向の位置のみが前記第５の測定点と異なる第６の測定点の少なくとも３箇所に前記フランジ面１２の回転中心Ｐを移動させると共に，該少なくとも３箇所の位置それぞれにおいて前記ツール１１を前記Ｌ型治具６０の立板６２に向けて前記ベース座標系ＢのＸｂ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記ベース座標系ＢのＸｂ軸方向の移動量Ｘ１〜Ｘ３を取得する。ここに，前記移動量Ｘ１〜Ｘ３を取得するときの前記コントローラ３０が第２の移動量取得手段に相当する。なお，ここでは計算を簡単にするために，前記第４の測定点と前記第５の測定点とは前記ベース座標系ＢのＹｂ軸方向の位置のみが異なり，前記第５の測定点と前記第６の測定点とは前記ベース座標系ＢのＺｂ軸方向の位置のみが異なる場合を例に挙げて説明するが，前記第４の測定点，前記第５の測定点，前記第６の測定点は，該測定点各々により三角形が形成されるようにＹｂ軸方向及び／又はＺｂ軸方向の位置が異なり，Ｘｂ軸方向の位置が同一である点であればよい。
【００３３】
続いて，前記コントローラ３０は，前記移動量Ｚ１〜Ｚ３及び前記移動量Ｘ１〜Ｘ３に基づいて前記下板６１に垂直な単位ベクトルＮｐと前記立板６２に垂直な単位ベクトルＮｖとを取得する。なお，係る手順は，前記実施の形態で説明した前記単位ベクトルＮを算出するときと略同様の処理であるため，ここでは説明を省略する。これにより，前記コントローラ３０は，前記Ｌ型治具６０の前記ベース座標系Ｂに対する傾きを算出することとなる。
そして，前記コントローラ３０は，前記単位ベクトルＮｐをＺ軸，Ｎｐ×Ｎｖで算出されるベクトルＭをＹ軸，Ｍ×Ｎｐで算出されるベクトルＬをＸ軸とする座標空間を作業座標系Ｗ（Ｘｗ，Ｙｗ，Ｚｗ）として設定する。このとき，前記作業座標系Ｗは，前記Ｌ型治具６０の下板６１及び立板６２に平行及び垂直な座標空間であり，前記ベース座標系Ｂから見た前記作業座標系ＷのＸｗ，Ｙｗ，Ｚｗ軸の方向は，Ｌ（Ｌｘ，Ｌｙ，Ｌｚ），Ｍ（Ｍｘ，Ｍｙ，Ｍｚ），Ｎ（Ｎｘ，Ｎｙ，Ｎｚ）となる。そして，前記コントローラ３０は，前記ベース座標系Ｂ上のベクトルを前記作業座標系Ｗ上のベクトルに変換するための回転行列Ｒを算出する。ここに，前記回転行列Ｒは前記式（５）式で表される。
これにより，前記コントローラ３０は，以後の処理において，前記回転行列Ｒとに基づいて，前記Ｌ型治具６０の下板６１及び立板６２に平行及び垂直な作業座標系Ｗ（Ｘｗ，Ｙｗ，Ｚｗ）で前記多関節マニピュレータ２０により前記ツール１１を直線動作させることができる。
例えば，前記ツール１１を前記下板６１と平行且つ前記立板６２と垂直に移動させたい場合，即ち前記作業座標系ＷにおけるＸｗ方向に移動させたい場合，以下の式（１１）で前記ベース座標系Ｂにおける方向ベクトルＶ（Ｖｘ，Ｖｙ，Ｖｚ）を算出し，該方向ベクトルＶに従って前記多関節マニピュレータ２０を制御する。
【数３】
0005411810.tif 000004
【００３４】
＜ステップＳ３〜Ｓ５＞
そして，ステップＳ３〜Ｓ５において，前記コントローラ３０は，前記作業座標系Ｗにおいて前記フランジ面１２の回転中心Ｐを複数の位置姿勢に位置決めすると共に，該位置姿勢それぞれにおいて前記ツール１１を前記Ｌ型治具６０の下板６１や立板６２に向けて前記作業座標系ＷのＺｗ軸方向やＸｗ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記作業座標系ＷのＺｗ軸方向やＸｗ軸方向の移動量を取得し，該移動量に基づいて前記ツール１１の並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ）を導出する。ここに，係る処理を実行するときの前記コントローラ３０が並進成分導出手段に相当する。
【００３５】
＜ステップＳ３〜Ｓ４＞
次に，前記コントローラ３０は，前記実施の形態で説明した前記ステップＳ３，Ｓ４と同様の処理（図４，図５参照）を，前記平板治具５０に代えて前記下板６１を対象に実行する。
即ち，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＺｗ軸とが平行になるように前記多関節マニピュレータ２０を動作させた後，前記ツール１１を前記フランジ座標系ＦのＺｆ軸と直交し前記フランジ座標系のＹ軸と平行な軸まわりに第１の所定角度θ１だけ正回転（＋θ１）及び逆回転（−θ１）させたときの二つの位置姿勢である測定点Ｐ１１，Ｐ１２それぞれにおいて，該ツール１１を前記Ｌ型治具６０の下板６１に向けて前記作業座標系ＷのＺｗ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記作業座標系ＷのＺｗ軸方向の移動量Ｚ１１を取得し，該移動量Ｚ１１に基づいて前記ツール１１の並進成分のＸ軸方向の寸法Ｘｔを導出する。ここに，係る処理を実行するときの前記コントローラ３０が第１の並進成分導出手段に相当する。
また，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＸｗ軸とが平行になるように前記多関節マニピュレータ２０を動作させた後，前記ツール１１を前記フランジ座標系ＦのＺｆ軸を回転中心に第２の所定角度θ２だけ正回転（＋θ２）及び逆回転（−θ２）させたときの二つの位置姿勢である測定点Ｐ２１，Ｐ２２それぞれにおいて，該ツール１１を前記Ｌ型治具６０の下板６１に向けて前記作業座標系ＷのＺｗ軸方向に移動させたときに前記ツール接触検出部４０により接触が検出されるまでの前記作業座標系ＷのＺｗ軸方向の移動量Ｚ２１を取得し，該移動量Ｚ２１に基づいて前記ツール１１の並進成分のＹ軸方向の寸法Ｙｔを導出する。ここに，係る処理を実行するときの前記コントローラ３０が第２の並進成分導出手段に相当する。
【００３６】
＜ステップＳ５＞
一方，ステップＳ５において，前記コントローラ３０は，前記実施の形態で説明したステップＳ５とは異なる処理を実行する。
具体的に，前記コントローラ３０は，図１１（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となるように前記多関節マニピュレータ２０を動作させる。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ４１（ｘ４１，ｙ４１，ｚ４１）とする。
そして，前記コントローラ３０は，前記測定点Ｐ４１において，前記ツール１１を前記Ｌ型治具６０の下板６１に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記Ｌ型治具６０の下板６１との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ４１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ４１（ｘ４１’，ｙ４１’，ｚ４１’）とする。
その後，前記コントローラ３０は，前記測定点Ｐ４１と前記接触点Ｐｓ４１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ４１（ｚ４１−ｚ４１’）を算出する。
【００３７】
さらに，前記コントローラ３０は，前記測定点Ｐ４１において，前記ツール１１を前記Ｌ型治具６０の立板６２に向けて前記作業座標系ＷのＸｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記Ｌ型治具６０の立板６２との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ５１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ５１（ｘ５１’，ｙ５１’，ｚ５１’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ４１と前記接触点Ｐｓ５１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＸｗ軸方向の移動量Ｘ４１（ｘ４１−ｘ５１’）を算出する。
【００３８】
次に，前記コントローラ３０は，再度，図１１（ａ）に示すように，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行となる前記測定点Ｐ４１の位置姿勢に前記多関節マニピュレータ２０を動作させる。
さらに，前記コントローラ３０は，図１１（ｂ）に示すように，前記多関節マニピュレータ２０の関節２５により，前記ツール１１を前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第４の所定角度θ４だけ逆回転（−θ４）させて測定点Ｐ４２の位置姿勢に位置決めする。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ４２（ｘ４２，ｙ４２，ｚ４２）とする。
そして，前記コントローラ３０は，前記測定点Ｐ４２において，前記ツール１１を前記Ｌ型治具６０の下板６１に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記Ｌ型治具６０の下板６１との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ４２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ４２１（ｘ４２’，ｙ４２’，ｚ４２’）とする。
その後，前記コントローラ３０は，前記測定点Ｐ３２と前記接触点Ｐｓ３２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ４２（ｚ４２−ｚ４２’）を算出する。
【００３９】
さらに，前記コントローラ３０は，前記測定点Ｐ４２において，前記ツール１１を前記Ｌ型治具６０の立板６２に向けて前記作業座標系ＷのＸｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記Ｌ型治具６０の立板６２との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ５２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ５２（ｘ５２’，ｙ５２’，ｚ５２’）とする。
そして，前記コントローラ３０は，前記測定点Ｐ４２と前記接触点Ｐｓ５２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＸｗ軸方向の移動量Ｘ４２（ｘ４２−ｘ５２’）を算出する。
【００４０】
このように，前記測定点Ｐ４１，Ｐ４２において，前記移動量Ｚ４１，Ｘ４１及び前記移動量Ｚ４２，Ｘ４２が取得されると，前記コントローラ３０は，前記移動量Ｚ４１，Ｘ４１及び前記移動量Ｚ４２，Ｘ４２と前記ステップＳ３で導出された前記ツール１１のＸ軸方向の寸法Ｘｔとに基づいて前記ツール１１の並進成分のＺ軸方向の寸法Ｚｔを導出する。
具体的に，前記コントローラ３０は，前記ツール１１の並進成分の寸法Ｚｔを以下の式（１２）〜（１４）により算出する。
【数４】
0005411810.tif 000005
図１１（ｂ）に示すように，Ｄ４は，前記関節２５の回転中心から前記関節２６のフランジ面１２までの距離である。また，Ｄ５は，前記測定点Ｐ４１及び前記測定点Ｐ４２各々における前記ツール１１の先端１１ａを結ぶ直線距離である。さらに，Ｄ６は，前記関節２５の回転中心及び前記ツール１１の先端１１ａを結ぶ直線距離である。
【００４１】
以上より，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＸｗ軸とが平行になるように前記ツール１１を位置決めした後，前記測定点Ｐ４１，Ｐ４２の２箇所それぞれにおいて取得される移動量Ｚ４１，Ｘ４１及び移動量Ｚ４２，Ｘ４２と前記ツール１１の寸法Ｘｔとに基づいて前記ツール１１の並進成分のＸ軸方向の寸法Ｚｔを導出することができる。ここに，係る処理を実行するときの前記コントローラ３０が第４の並進成分導出手段に相当する。
したがって，本実施例１に係る構成によれば，前記ツール１１を，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行な状態からさらに上方に回転移動させる必要がなくなり，該マニピュレータ２０のアームや前記ソケット１１ｂなどと前記Ｌ型治具６０との接触を回避しつつ，前記ツール１１の並進成分の寸法Ｘｔ，Ｙｔ，Ｚｔを算出することができる。
【実施例２】
【００４２】
また，前記実施の形態及び前記実施例１では，前記ツール１１のツールパラメータのうち並進成分の寸法（Ｘｔ，Ｙｔ，Ｚｔ）を自動的に導出する手法について説明した。
さらに，前記ロボット１０では，以下の手法により，前記ツール１１のツールパラメータのうち，図１２に示すように前記フランジ座標系ＦにおけるＹｆ軸周りの回転角の成分である回転角成分βｔについても自動的に導出することが可能である。なお，ここでは前記平板治具５０を用いる場合を例に挙げて説明するが，前記Ｌ型治具６０を用いる場合についても，前記平板治具５０を前記Ｌ型治具６０の下板６１に置き換えて同様の処理を実行すればよい。
ここで，前記マニピュレータ２０の関節２６のフランジ面１２に取り付けられた前記ツール１１は，そのソケット１１ｂから先端１１ａの長さが伸縮可能なものであるとする。
【００４３】
ここに，図１３は，図６の測定点Ｐ３２又は図１１（ｂ）の測定点Ｐ４２の位置姿勢と同様に，前記ツール１１を，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷのＸｗ軸とが平行な状態から，前記フランジ座標系ＦのＺｆ軸と直交し，該フランジ座標系ＦのＹｆ軸に平行な軸まわりに第５の所定角度θ５だけ逆回転（−θ５）させた測定点Ｐ６１の位置姿勢に位置決めした状態である。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を測定点Ｐ６１（ｘ６１，ｙ６１，ｚ６１）とする。
そして，前記コントローラ３０は，前記測定点Ｐ６１において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ６１の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ６１（ｘ６１’，ｙ６１’，ｚ６１’）とする。そして，前記コントローラ３０は，前記測定点Ｐ６１と前記接触点Ｐｓ６１との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ６１（ｚ６１−ｚ６１’）を算出する。
【００４４】
次に，前記コントローラ３０は，前記測定点Ｐ６１において，前記ツール１１の先端１１ａを現状の長さＥｘから所定量ΔＴだけ延長された状態で，再度，前記測定点Ｐ６１において，前記ツール１１を前記平板治具５０に向けて前記作業座標系ＷのＺｗ軸方向に直線移動させる。
このとき前記ツール１１の先端１１ａを延長する手法の一例を挙げると，前記ツール１１として前記フランジ面１２からの突き出し長さが変更可能な溶接ワイヤを用いる場合は，ユーザによるワイヤインチングでその溶接ワイヤを手動送給し，該ツール１１の先端１１ａの突き出し長さを変更することが考えられる。もちろん，前記溶接ワイヤが自動送給可能な場合には，前記コントローラ３０が自動送給により該溶接ワイヤの長さを変更すればよい。また，前記ツール１１の先端１１ａに針状プローブを用いる場合には，ユーザによって前記針状プローブが長さの異なるものに交換されることにより，該ツール１１の先端１１ａの突き出し長さが変更される。
その後，前記コントローラ３０は，前記ツール接触検出部４０により前記ツール１１の先端１１ａと前記平板治具５０との接触が検出されると，前記多関節マニピュレータ２０の動作を停止させ，その接触点Ｐｓ６２の前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を取得する。このときの前記作業座標系Ｗにおける前記フランジ面１２の回転中心Ｐの位置座標を接触点Ｐｓ６２（ｘ６２’，ｙ６２’，ｚ６２’）とする。そして，前記コントローラ３０は，前記測定点Ｐ６１と前記接触点Ｐｓ６２との差分を算出することにより，前記ツール１１の前記作業座標系ＷにおけるＺｗ軸方向の移動量Ｚ６２（ｚ６２−ｚ６２’）を算出する。
【００４５】
このように，前記測定点Ｐ６１において前記移動量Ｚ６１，Ｚ６２が取得されると，前記コントローラ３０は，該移動量Ｚ６１，Ｚ６２に基づいて前記ツール１１の回転成分βｔを導出する。
具体的に，前記コントローラ３０は，前記ツール１１の回転成分βｔを以下の式（１５）により算出する。
βｔ＝Ｓｉｎ-1（Ｚ６１−Ｚ６２）／ΔＴ）−θ５  …（１５）
以上より，前記コントローラ３０は，前記フランジ座標系ＦのＺｆ軸と前記作業座標系ＷにおけるＺｗ軸とが平行になるように前記ツール１１を位置決めした後，前記測定点Ｐ６１において前記ツール１１の先端１１ａの長さを変更した状態それぞれで取得される移動量Ｚ６１，Ｚ６２に基づいて前記ツール１１の回転成分βｔを導出することができる。ここに，係る処理を実行するときの前記コントローラ３０が回転成分導出手段に相当する。
【符号の説明】
【００４６】
１０：ロボット
１１：ツール
１１ａ：ツールの先端
１２：フランジ面
２０：多関節マニピュレータ
２１〜２６：関節
３０：コントローラ
４０：ツール接触検出部
５０：平板治具
６０：Ｌ型治具
６１：下板（第１平面）
６２：立板（第２平面）
Ｓ１，Ｓ２，…：処理手順（ステップ）番号
Ｘｔ，Ｙｔ，Ｚｔ：ツールの並進成分
Ｘｂ，Ｙｂ，Ｚｂ：ベース座標系ＢのＸ，Ｙ，Ｚ軸
Ｘｆ，Ｙｆ，Ｚｆ：フランジ座標系ＦのＸ，Ｙ，Ｚ軸
Ｘｗ，Ｙｗ，Ｚｗ：作業座標系ＷのＸ，Ｙ，Ｚ軸
【図１】
0005411810.tif 000006
【図２】
0005411810.tif 000007
【図３】
0005411810.tif 000008
【図４】
0005411810.tif 000009
【図５】
0005411810.tif 000010
【図６】
0005411810.tif 000011
【図７】
0005411810.tif 000012
【図８】
0005411810.tif 000013
【図９】
0005411810.tif 000014
【図１０】
0005411810.tif 000015
【図１１】
0005411810.tif 000016
【図１２】
0005411810.tif 000017
【図１３】
0005411810.tif 000018