(57)【要約】【課題】ロボットとワーク間の相対位置姿勢のキャリブレーション方法において、目視で位置合わせを行う手間や、ロボットのツール先端をワークにタッチする際の位置を予め設定しておくこと無く、キャリブレーションする手段を提供する。【解決手段】ロボット１を力制御状態にして位置合わせを簡易化し、ロボット１のタッチした実際の位置から理想のタッチ位置を求める処理を繰り返すことで、実際のワーク座標系の位置姿勢を求めることによりロボット１とワーク６間のキャリブレーションを行う。【選択図】図１
2010149267.tif 000002
【特許請求の範囲】
【請求項１】
ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、
前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、
前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、
前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、
前記第１および第２の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、
前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション方法。
【請求項２】
ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、
前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、
前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、
前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、
前記第１の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、
前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション方法。
【請求項３】
前記第１乃至第４の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とする請求項１または２に記載のロボットのキャリブレーション方法。
【請求項４】
前記ロボットを力制御状態にして、前記プローブを前記ワークへタッチさせることを特徴とする請求項３記載のロボットのキャリブレーション方法。
【請求項５】
ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、
ロボット座標系に対する理想ワーク座標への同次変換行列ＲＴＷ’を定め、
前記第１の平面上に存在する前記ロボット座標系上の第５の点の位置を計測し、前記計測した第５の点の位置から、該第５の点の前記理想ワーク座標系上の位置を求め、
前記第２の平面上に存在する前記ロボット座標系上の第６の点の位置を計測し、前記計測した第６の点の位置から、該第６の点の前記理想ワーク座標系上の位置を求め、
前記第３の平面上に存在する前記ロボット座標系上の第７の点の位置を計測し、前記計測した第７の点の位置から、該第７の点の前記理想ワーク座標系上の位置を求め、
ワーク据付位置姿勢の誤差を表す連立方程式を解くことにより、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション方法。
【請求項６】
前記ロボット座標系上の第５乃至７の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とする請求項５記載のロボットのキャリブレーション方法。
【請求項７】
前記ロボットを力制御状態にして、前記プローブを前記ワークへタッチさせることを特徴とする請求項６記載のロボットのキャリブレーション方法。
【請求項８】
前記ワーク据付位置姿勢の誤差を表す連立方程式は、次式
【数１】
2010149267.tif 000013
（ただし、ＲＰＣ：ロボット座標系におけるタッチ位置、Ｗ’ＴＷ：ワーク座標系から理想ワーク座標系への同次変換行列、Ｗ’ＰＣ：理想ワーク座標系上におけるタッチ位置）
であることを特徴とする請求項７記載のロボットのキャリブレーション方法。
【請求項９】
前記ロボット座標系上の第５乃至７の点の位置は、オフライン教示ソフト上で設定されることを特徴とする請求項８記載のロボットのキャリブレーション方法。
【請求項１０】
ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、
前記制御装置は、
前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、
前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、
前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、
前記第１および第２の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、
前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション装置。
【請求項１１】
ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、
前記制御装置は、
前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、
前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、
前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、
前記第１の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、
前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション装置。
【請求項１２】
前記第１乃至第４の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とする請求項１０または１１に記載のロボットのキャリブレーション装置。
【請求項１３】
前記プローブを前記ワークへタッチさせるとき、前記制御装置は、ロボットを力制御状態にすることを特徴とする請求項１２記載のロボットのキャリブレーション装置。
【請求項１４】
ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、
前記制御装置は、
ロボット座標系に対する理想ワーク座標への同次変換行列ＲＴＷ’を定め、
前記第１の平面上に存在する前記ロボット座標系上の第５の点の位置を計測し、前記計測した第５の点の位置から、該第５の点の前記理想ワーク座標系上の位置を求め、
前記第２の平面上に存在する前記ロボット座標系上の第６の点の位置を計測し、前記計測した第６の点の位置から、該第６の点の前記理想ワーク座標系上の位置を求め、
前記第３の平面上に存在する前記ロボット座標系上の第７の点の位置を計測し、前記計測した第７の点の位置から、該第７の点の前記理想ワーク座標系上の位置を求め、
ワーク据付位置姿勢の誤差を表す連立方程式を解くことにより、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするロボットのキャリブレーション装置。
【請求項１５】
前記ロボット座標系上の第５乃至７の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とする請求項１４記載のロボットのキャリブレーション装置。
【請求項１６】
前記プローブを前記ワークへタッチさせるとき、前記制御装置は、ロボットを力制御状態にすることを特徴とする請求項１５記載のロボットのキャリブレーション装置。
【請求項１７】
前記ワーク据付位置姿勢の誤差を表す連立方程式は、次式
【数２】
2010149267.tif 000014
（ただし、ＲＰＣ：ロボット座標系におけるタッチ位置、Ｗ’ＴＷ：ワーク座標系から理想ワーク座標系への同次変換行列、Ｗ’ＰＣ：理想ワーク座標系上におけるタッチ位置）
であることを特徴とする請求項１６記載のロボットのキャリブレーション装置。
【請求項１８】
前記ロボット座標系上の第５乃至７の点の位置は、オフライン教示ソフト上で設定されることを特徴とする請求項１７記載のロボットとワーク間の相対位置姿勢のキャリブレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットとワークとの間の位置姿勢関係をキャリブレーションするロボットのキャリブレーション方法および装置に関する。
【背景技術】
【０００２】
産業用ロボットを使ってワークの組立・溶接ラインを構成するためには、事前にラインのレイアウトを検討する必要がある。この検討のために、オフラインティーチングシステムが利用されている。このオフラインティーチングシステムを使って作成したロボットの動作プログラムを実際のロボットに適用するためには、ロボットの幾何パラメータ誤差やワークの配置誤差を補正するため、ロボットとワークとの間の位置姿勢関係をキャリブレーションする必要がある。
【０００３】
このキャリブレーションをするためには、次の２つの方法が知られている。第１に、ツール先端をワークの角に目視で合わせて位置検出を行い、検出したワーク位置情報からワーク座標系を作成する方法である（特許文献１）。第２に、図７に示すようなオフラインティーチングシステムを用いて、予め設定した同一平面状に無い４点をタッチすることで、ワーク座標とロボット座標の位置関係を算出し、作成した動作プログラムに対して修正する方法である（特許文献２）。
【特許文献１】特開平６−２７４２１３号（第５−７頁、図１）
【特許文献２】特開平３−２５１３７８号（第３−１０頁、図４）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、第１の方法では、目視で位置合わせを行う手間や、作業者や試行数によるキャリブレーション結果のばらつきが発生する。また、第２の方法では、前記問題は解決されているが、タッチする４点を予め指定しておく必要がる。
【０００５】
本発明はこのような問題点に鑑みてなされたものであり、ツール先端をワークにタッチさせ、簡便にワーク座標とロボット座標の位置姿勢関係を算出することができる方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、前記第１および第２の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項２に記載の発明は、ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、前記第１の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項３に記載の発明は、前記第１乃至第４の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とするものである。
また、請求項４に記載の発明は、前記ロボットを力制御状態にして、前記プローブを前記ワークへタッチさせることを特徴とするものである。
また、請求項５に記載の発明は、ロボットと、互いに直交する第１から第３の平面を少なくとも有するワーク間と、の相対位置姿勢を求めるロボットのキャリブレーション方法において、ロボット座標系に対する理想ワーク座標への同次変換行列ＲＴＷ’を定め、前記第１の平面上に存在する前記ロボット座標系上の第５の点の位置を計測し、前記計測した第５の点の位置から、該第５の点の前記理想ワーク座標系上の位置を求め、前記第２の平面上に存在する前記ロボット座標系上の第６の点の位置を計測し、前記計測した第６の点の位置から、該第６の点の前記理想ワーク座標系上の位置を求め、前記第３の平面上に存在する前記ロボット座標系上の第７の点の位置を計測し、前記計測した第７の点の位置から、該第７の点の前記理想ワーク座標系上の位置を求め、ワーク据付位置姿勢の誤差を表す連立方程式を解くことにより、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項６に記載の発明は、前記ロボット座標系上の第５乃至７の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とするものである。
また、請求項７に記載の発明は、前記ロボットを力制御状態にして、前記プローブを前記ワークへタッチさせることを特徴とするものである。
また、請求項８に記載の発明は、ワーク据付位置姿勢の誤差を表す連立方程式は、次式
【数３】
2010149267.tif 000003
（ただし、ＲＰＣ：ロボット座標系におけるタッチ位置、Ｗ’ＴＷ：ワーク座標系から理想ワーク座標系への同次変換行列、Ｗ’ＰＣ：理想ワーク座標系上におけるタッチ位置）であることを特徴とするものである。
また、請求項９に記載の発明は、前記ロボット座標系上の第５乃至７の点の位置は、オフライン教示ソフト上で設定されることを特徴とするものである。
また、請求項１０に記載の発明は、ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、前記制御装置は、前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、前記第１および第２の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項１１に記載の発明は、ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、前記制御装置は、前記第１の平面上に存在する第１および第２の点の位置から、該点を通る第１の直線を求め、前記第２の平面上に存在する第３および第４の点の位置とから、該点を通る第２の直線を求め、前記第１および第２の直線の第３の平面における交点から、ワーク座標系の位置を算出し、前記第１の直線の第３の平面における傾きから、前記ワーク座標系の姿勢を算出し、前記算出したワーク座標系の位置および姿勢から、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項１２に記載の発明は、前記第１乃至第４の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とするものである。
また、請求項１３に記載の発明は、前記プローブを前記ワークへタッチさせるとき、前記制御装置は、ロボットを力制御状態にすることを特徴とするものである。
また、請求項１４に記載の発明は、ロボットの手先に設けられた力センサと、前記力センサに設けられたプローブと、前記力センサが出力する信号が入力され、前記ロボットを制御するための制御装置と、を備え、前記ロボットと互いに直交する第１から第３の平面を少なくとも有するワーク間との相対位置姿勢を求めるためのロボットのキャリブレーション装置において、前記制御装置は、ロボット座標系に対する理想ワーク座標への同次変換行列ＲＴＷ’を定め、前記第１の平面上に存在する前記ロボット座標系上の第５の点の位置を計測し、前記計測した第５の点の位置から、該第５の点の前記理想ワーク座標系上の位置を求め、前記第２の平面上に存在する前記ロボット座標系上の第６の点の位置を計測し、前記計測した第６の点の位置から、該第６の点の前記理想ワーク座標系上の位置を求め、前記第３の平面上に存在する前記ロボット座標系上の第７の点の位置を計測し、前記計測した第７の点の位置から、該第７の点の前記理想ワーク座標系上の位置を求め、ワーク据付位置姿勢の誤差を表す連立方程式を解くことにより、ロボット座標系からみた前記ワーク座標系の位置姿勢を示す同次変換行列を求めることを特徴とするものである。
また、請求項１５に記載の発明は、前記ロボット座標系上の第５乃至７の点の位置は、前記ロボットの手先に設けられたプローブでワークをタッチしたときのタッチ位置であることを特徴とするものである。
また、請求項１６に記載の発明は、前記プローブを前記ワークへタッチさせるとき、前記制御装置は、ロボットを力制御状態にすることを特徴とするものである。
また、請求項１７に記載の発明は、ワーク据付位置姿勢の誤差を表す連立方程式は、次式
【数４】
2010149267.tif 000004
（ただし、ＲＰＣ：ロボット座標系におけるタッチ位置、Ｗ’ＴＷ：ワーク座標系から理想ワーク座標系への同次変換行列、Ｗ’ＰＣ：理想ワーク座標系上におけるタッチ位置）であることを特徴とするものである。
また、請求項１８に記載の発明は、前記ロボット座標系上の第５乃至７の点の位置は、オフライン教示ソフト上で設定されることを特徴とするものである。
【発明の効果】
【０００７】
請求項１、２、３、１０、１１、１２に記載の発明によると、ワークを構成する２平面につき、それぞれ２点にプローブでタッチさせ、簡便にロボット座標系に対するワーク座標系の位置姿勢を計算することができる。
また、請求項４、７、１３、１６に記載の発明によると、プローブをワークへタッチさせる際、ロボットを力制御状態にしてタッチさせることで、位置合わせを簡易化することができる。また、作業者や試行回数によるキャリブレーション結果のばらつきを抑えることができる。
また、請求項５、６、８、１４、１５、１７に記載の発明によると、合計３点にプローブでタッチさせ、簡便にロボット座標系に対するワーク座標系の位置姿勢を計算することができる。
また、請求項９、１８に記載の発明によると、ロボット座標系に対するワーク座標系の位置姿勢を求める処理において、理想ワーク座標系上のタッチ位置をオフライン教示ソフト上で設定し、ワークタッチ操作からワーク据付位置姿勢の誤差の計算までを自動化することができる。
【発明を実施するための最良の形態】
【０００８】
まず、以下の説明で使用する座標系等について図３を参照して説明する。
「ロボット座標系」とは、ロボット本体に固定された直交座標系であり、ロボットを動作させる際の基準として使う座標系である。このロボット座標系は、図においてΣＲで表している。ロボット座標系は、通常ロボットの前後方向にＸ軸、左右方向にＹ軸、上下方向にＺ軸をとる。また、Ｐ１  Ｒ [ｘ１  ｙ１]は、点Ｐ１のロボット座標系のｘ、ｙ座標値を意味し、同様にＰ２  Ｒ[ｘ２  ｙ２] は点Ｐ２のロボット座標系のｘ、ｙ座標値を意味する。なお、括弧の左肩の”Ｒ”は、ロボット座標系を示している。
「ワーク座標系」とは、対象ワークの特定部に固定した直交座標系である。このワーク座標系は、図においてΣｗで表している。ワーク座標系の軸方向は任意に決定できるが、図３においては直方体ワークの頂点を原点にとり、直方体ワークの辺に沿ってＸＹＺ軸を取っている。また、「ロボット座標系」から「ワーク座標系」への同次変換行列は、ＲＴｗで表している。
【０００９】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
キャリブレーションするためには、ロボット座標系に対するワーク座標系の位置姿勢を求めること、すなわち、ロボット座標系からみたワーク座標系の位置姿勢を表す同次変換行列ＲＴＷを求めることが必要である。この同次変換行列ＲＴＷを求める際、ワークが３次元物体である場合には、ロボット座標系に対するワーク座標系の位置３変数（ＸＹＺの各位置）および姿勢３変数（ＸＹＺの各軸周りの回転）を考慮する必要がある。
しかし、説明の簡略化のため、まずは位置２変数（ＸＹの各位置）および姿勢１変数（Ｚ軸周りの姿勢）のみを考慮した同次変換行列ＲＴＷの導出ついて説明する。
【実施例１】
【００１０】
図１は、本発明の方法を実施するキャリブレーション装置の構成図である。本発明の装置は、パーソナルコンピュータ１、多関節ロボット２、制御装置３、プローブ４、力センサ５を備えている。
パーソナルコンピュータ１は、オフライン教示ソフトを動作させるための計算機である。
多関節ロボット２は、６軸又は７軸の関節を有する一般的な産業用ロボットである。この多関節ロボット２は、所定の場所に載置された直方体のワーク６に対して、所定の組立作業や、溶接作業等をする。なお、ワーク６は互いに直交する第１から第３の平面を少なくとも有するものであれば良く、必ずしも直方体でなくとも良いが、以下の説明においては、このようなワークも便宜上、直方体のワークとして扱う。
制御装置３は、ロボット２を制御して、本発明のキャリブレーションを行うための制御装置である。このロボット制御装置３には、多関節ロボットと２パーソナルコンピュータ１および力センサ５が接続されている。制御装置は、ロボット２を力制御することができる。また、後述する各ステップの計算等を行う。
プローブ４は、ワークとの接触を検出するためのものであり、球状の部材である。このプローブ４は、力センサ５に設けられている。
力センサ５は、プローブ４がワーク６にタッチすることにより発生する力を計測するためのセンサである。この力センサ５は、６軸方向（並進３軸、回転３軸）の力の検出が可能である。この力センサ５は、多関節ロボット２の手先に設けられている。力センサ５によって計測された力信号は、制御装置３に入力される。
【００１１】
図２は、キャリブレーションの処理手順を示すフローチャートである。また、図３（Ｂ）は、ワーク６とロボット手先部分の拡大図である。以下、これらの図を用いて本発明のキャリブレーション方法を説明する。
【００１２】
（ステップ１）
ロボットの制御を力制御状態にする。オペレータがマニュアルでロボットを動作させ、プローブ４を、ワーク６を構成するＹＺ平面上の任意の点へアプローチさせる（図３（Ｂ））。このとき、プローブ４のプローブ姿勢に制約は無いが、アプローチ方向はロボット座標系の座標軸に沿う必要がある。アプローチ方向に応じて（式１）のように場合分けする処理を施すためである。プローブ姿勢に制約がない理由は、プローブ先端が一定半径の球形だからである。
【００１３】
（ステップ２）
力制御の状態で、制御装置３が、プローブ４がワーク６にタッチしたことを検出する。このタッチは、力センサ５が、所定のしきい値を超えたことで検出される。制御装置３は、タッチした時のロボットの手先位置とプローブの球の半径ｒに基づいて、ロボット座標系上のタッチ位置Ｐ１  Ｒ [ｘ１  ｙ１]を求める。ここで、タッチ位置とはプローブの球の中心位置ＰＴＣＰ Ｒ [ｘｔｃｐ  ｙｔｃｐ]にプローブ半径ｒを加算した位置であり、（式１）に示すようにプローブ４のアプローチ方向（４方向）に応じて求める。なお、タッチ位置を求めるために、ロボット座標系におけるプローブ位置ＰＴＣＰ Ｒ [ｘｔｃｐ  ｙｔｃｐ] は予め正確にキャリブレーションされている必要がある。
次に、ＹＺ平面上において、Ｐ１とは異なるタッチ位置Ｐ２を同様の手法で求める。
【００１４】
【数５】
2010149267.tif 000005
【００１５】
（ステップ３）
（式２）を用いて２点Ｐ１  Ｒ [ｘ１  ｙ１]、Ｐ２  Ｒ[ｘ２  ｙ２]を通る直線１の式（ｙ＝ａ１ｘ＋ｂ１）を計算する。
【００１６】
【数６】
2010149267.tif 000006
【００１７】
（ステップ４）
また、ＹＺ平面と直交するＸＺ平面において、同様に異なる２点Ｐ３、Ｐ４の位置検出を行う。このＰ３、Ｐ４を通る直線２の式（ｙ＝ａ２ｘ＋ｂ２）を計算する。
なお、直線１、２の計算に当たり、最小二乗法などを用いて、Ｐ１、Ｐ２までの距離が最小となるようなＹＺ平面上の直線を直線１、そして、Ｐ３、Ｐ４までの距離が最小となるようなＸＺ平面上の直線を直線２としても良い。
【００１８】
（ステップ５）
（式３）により、求めるワーク座標系の位置を算出する。すなわち、直線１、２の交点Ｐｍ  Ｒ[ｘ０  ｙ０]を求める。
【００１９】
【数７】
2010149267.tif 000007
【００２０】
（ステップ６）                   
次に、直線１、２の傾きを用いて、ワーク座標系の姿勢を算出する。「直線の傾き」とは、ｘとｙ座標値の変動量の比である。直線１の場合、ｘ方向に位置が１変動した場合にｙの位置はａ１変化する。故に、傾きａ１を用いて直線１の方向余弦ベクトルを作ると[１  ａ１]となる。これを正規化して、求める同次変換行列ＲＴＷの第１列に格納する。同様に、傾きａ２を用いて直線２の方向余弦ベクトル[１  ａ２]を作成し、同次変換行列の第２列に格納する。
本発明では、両直線は、ＸＹ平面においては原則として直交している。しかし、ワークの加工精度（厳密に直方体になるのは考えにくい）、およびインピーダンス制御の接触安定性（タッチ状態の検出にはばらつきがあり、結果的に検出した位置は繰返し誤差が生じる）の２つの要因により直交しない場合がある。このような場合は、 (式４)を用いて直線１の傾きａ１から直線２の傾きａ２を決定し、直線２の方向余弦ベクトル[１  ａ２]を作成する。このようにＲＴＷに格納された部分は、ワーク座標系の姿勢を表している。
【００２１】
【数８】
2010149267.tif 000008
【００２２】
次に、算出したワーク座標系の位置及び姿勢から（式５）により、ロボット座標系からみたワーク座標系の位置姿勢を示す同次変換行列ＲＴＷを計算する。
【００２３】
【数９】
2010149267.tif 000009
【００２４】
このように、作業ワークへのタッチを繰り返すことで、予めタッチする位置を指定することなくロボット座標系に対するワーク座標系の位置姿勢を計算することができる。また、目視でワーク角とツール先端を微調整し位置合わせをすることなく、簡易に位置合わせが可能となる。
【実施例２】
【００２５】
実施例１においては、タッチ位置がＰ１〜Ｐ４の４点必要であった。本実施例は、後述する「理想ワーク座標系」を予め定義しておくことにより、タッチ位置を４点から３点に削減するものである。ここで、「理想ワーク座標系」とはワークの据付誤差が無いときのワーク座標系を指す。
図４は第２実施例における、キャリブレーションの処理手順を示すフローチャートである。また、図５は、本実施例の説明図である。図５において、ロボット座標系はΣＲ、ワーク座標系はΣｗ、理想ワーク座標系はΣｗ’として記載している。また、以降で、「  ’  」を付与する値は、理想ワーク座標系上での座標値である。
以下、これらの図を用いて本発明の方法を順を追って説明する。
【００２６】
（ステップ１）
ロボット座標系に対する理想ワーク座標系の位置姿勢を定めておく。具体的には、ロボット座標系から、理想ワーク座標系への同次変換行列を定める。
【００２７】
（ステップ２）
ロボットを力制御状態にして、ロボットの手先のプローブを、ワークを構成する第１の平面上の任意の点へアプローチさせる（図５）。ステップ３でプローブ半径を加算する方向を知っておく必要があるので、プローブのアプローチ方向はロボット座標系の座標軸に沿う必要がある。しかし、実施例１で説明したようにプローブの半径は一定なので、プローブ姿勢に制約は無い。
【００２８】
（ステップ３）
力制御によりワークへのタッチを検出し、タッチした時のロボットの手先位置とプローブの寸法から、実際のロボット座標系上の実際のタッチ位置  ＲＰＣ＝Ｒ[ｘ３  ｙ３]を計測する。具体的な計算方法は、実施例１のステップ２と同様であるので、その説明は省略する。
【００２９】
（ステップ４）
計測した実際のタッチ位置  ＲＰＣ＝Ｒ[ｘ３  ｙ３]から（式６）のようにして理想ワーク座標系上のタッチ位置  Ｗ’ＰＣ＝Ｗ’[ｘ３’  ｙ３’]を計算する。
【００３０】
【数１０】
2010149267.tif 000010
【００３１】
ここで、ＲＴＷ’は、ステップ１で予め定めたロボット座標系から、理想ワーク座標系への同次変換行列を用いる。
（ステップ５）
実際のタッチ位置  ＲＰＣ＝Ｒ[ｘ３  ｙ３]、理想のタッチ位置 Ｗ’ＰＣ＝Ｗ’[ｘ３’  ｙ３’]、およびロボット座標系から理想ワーク座標系へのｘ、ｙ方向移動量とｚ軸周りの回転量を表す３変数[ｐｘＷ’  ｐｙＷ’  θＷ’]を用いて、（式７）に示すワーク据付位置姿勢の誤差  [ΔｘＷ  ΔｙＷ  ΔθＷ]（理想ワーク座標系とワーク座標系の誤差）の方程式を導く。
【００３２】
【数１１】
2010149267.tif 000011
【００３３】
ここで、Ｗ’ＴＷは、ワーク座標系から、理想ワーク座標系への同次変換行列であり、ワーク据付位置姿勢の誤差を表している。Ｗ’ＴＷは、一次近似により、sin(Δθw)＝Δθw、cos(Δθw)＝１とする。また、ワーク据付誤差が微小であるとして、理想ワーク座標系上から見たタッチ位置  Ｗ’ＰＣと、実際のワークから見たワーク位置  ＷＰＣは等しいとしている。ＣＷ’、ＳＷ’は、それぞれｃｏｓ（θＷ’）、ｓｉｎ（θＷ’）を表している。
（ステップ６）
この（式７）で示される関係を少なくとも３点得る（３点タッチする）ことにより３つの連立方程式を導き、これらを解くことでワーク据付位置姿勢の誤差  [ΔｘＷ  ΔｙＷ  ΔθＷ]を計算することが出来る。この際、キャリブレーション精度を得るために各点のタッチ面を変える必要がある。つまり、第１の平面に加え、第２と第３の平面でそれぞれタッチさせる（タッチする順番に制約は無い）。このワーク据付位置姿勢の誤差  [ΔｘＷ  ΔｙＷ  ΔθＷ]と計測した位置姿勢の３変数[ｐｘＷ’  ｐｙＷ’  θＷ’]を（式８）へ代入することにより、ロボット座標系に対するワーク座標系の位置姿勢を示す同次変換行列ＲＴＷを求めることが出来る。
【００３４】
【数１２】
2010149267.tif 000012
【００３５】
ここで、ＲＴＷ’はロボット座標系から、理想ワーク座標系への同次変換行列であり、ステップ１で得られた値を用いる。
このように、実際にプローブがタッチした位置に基づいてワークの据付誤差が無い理想とするタッチ位置を計算することにより、予めタッチする位置を指定することなくロボットとワーク間のキャリブレーションを行うことができる。また、キャリブレーションに必要なタッチ位置の数は、実施例１の４点に対して３点に削減できる。
【実施例３】
【００３６】
次に、オフライン教示ソフトを使用して上述のキャリブレーションを行う方法について説明する。
図６は本方法の処理手順を示すフローチャートである。この図を用いて本発明の方法を順を追って説明する。
（ステップ１）
オフライン教示ソフト上でロボット座標系に対する理想のワーク座標の位置姿勢および理想ワーク座標系上のタッチ位置を与えておく。
（ステップ２）
ロボット制御装置３が、実施例２のステップ２と同様にして、オフライン教示ソフト上で与えられたタッチ位置へプローブ４をアプローチさせる。
（ステップ３）
ロボット制御装置３が、実施例１のステップ２あるいは、実施例２のステップ３と同様にして、ロボット座標系上の実際のタッチ位置を検出する。
（ステップ４）
ロボット制御装置３が、実施例２のステップ５と同様にして、理想ワーク座標系上タッチ位置と実際のタッチ位置の誤差の範囲から理想のワーク位置姿勢と実際のワーク位置姿勢の誤差（ワーク据付位置姿勢の誤差）を計算する。
このように、オフライン教示ソフトにより理想とするタッチ位置を設定することで、実施例１、２において手動で行っていたタッチングを自動化することができる。その結果、タッチングから実際のワーク座標系の位置姿勢の計算までの処理を簡便に行うことが出来る。
【００３７】
なお、ワークをプローブ４でタッチしているが、ワークの平面上の点の位置が計測できれば、任意の方法でよい。例えば、反射型の位置センサで当該点の位置を計測しても良い。
また、ロボット軸数は、任意のものでよい。
【図面の簡単な説明】
【００３８】
【図１】図１は本発明におけるシステムの全体構成図である。
【図２】図２は本発明の第１実施例の処理手順を示すフローチャートである。
【図３】図３は本発明の第１実施例の説明図である。
【図４】図４は本発明の第２実施例の処理手順を示すフローチャートである。
【図５】図５は本発明の第２実施例の説明図である。
【図６】図６は本発明の第３実施例の処理手順を示すフローチャートである。
【図７】図７は従来の方法の処理手順を示すブロック図である。
【符号の説明】
【００３９】
１  パーソナルコンピュータ
２  多関節ロボット
３  制御装置
４  プローブ
５  力センサ
６  ワーク
【図１】
2010149267.tif 000015
【図２】
2010149267.tif 000016
【図３】
2010149267.tif 000017
【図４】
2010149267.tif 000018
【図５】
2010149267.tif 000019
【図６】
2010149267.tif 000020
【図７】
2010149267.tif 000021