(57)【特許請求の範囲】
【請求項１】
ロボットのロボットハンドと作業対象との位置関係の誤差を修正するロボットの校正装置であって、前記作業対象の基準面が、ワーク座標系のＸＹ平面に平行な面であり、前記ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、
前記ロボットハンドと前記作業対象との接触を判定する接触判定部と、
前記ロボットハンドと前記作業対象の同一面に対する接触時における前記ロボットハンドの制御点の位置姿勢を取得する位置取得部と、
前記位置取得部で取得された複数の前記制御点の位置姿勢に基づいて、前記作業対象の姿勢をロボット座標系で算出する姿勢算出部と、
前記姿勢算出部で算出された前記作業対象の、前記ロボットハンドが接触する面である基準面に対して、前記ロボットハンドの基準となる部分の方向を合わせる駆動部と、
前記ロボットハンドの直線部分を、前記作業対象の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、前記ロボットハンドの直線部分を、前記作業対象の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、ワーク座標系の原点を求める位置算出部と、
を備えたことを特徴とするロボットの校正装置。
【請求項２】
前記ロボット座標系で算出された前記作業対象の原点の座標に基づいて、ワーク座標系から前記ロボット座標系への変換行列を作成する変換行列算出部と、
前記変換行列を用いて、前記ワーク座標系で表された前記作業対象上の教示点の座標を前記ロボット座標系の座標に座標変換する座標変換部と、
をさらに備えたことを特徴とする請求項１に記載のロボットの校正装置。
【請求項３】
前記接触判定部は、前記ロボットハンドに取り付けられた力覚センサであることを特徴とする請求項１または請求項２に記載のロボットの校正装置。
【請求項４】
ロボットと前記ロボットが備えるロボットハンドとの位置関係の誤差を修正するロボットの校正装置であって、固定治具の基準面が、ワーク座標系のＸＹ平面に平行な面であり、前記ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、
前記ロボットハンドと前記固定治具との接触を判定する接触判定部と、
前記ロボットハンドと前記固定治具との接触時における前記ロボットハンドの制御点の位置姿勢を取得する位置取得部と、
前記位置取得部で取得された複数の前記制御点の位置姿勢に基づいて、前記ロボットハンドの姿勢をロボット座標系で算出する姿勢算出部と、
前記姿勢算出部で算出された前記ロボットハンドの姿勢に基づいて、前記ロボットハンドを前記固定治具に接触させる面である、前記固定治具の基準面に対して、前記制御点の位置姿勢を変更することで、前記ロボットハンドに固定されたツール座標系の方向を合わせる駆動部と、
前記ロボットハンドの直線部分を、前記固定治具の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、前記ロボットハンドの直線部分を、前記固定治具の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、前記制御点から前記ロボットハンドの先端面までの距離を算出する位置算出部と、
を備えたことを特徴とするロボットの校正装置。
【請求項５】
前記ロボットが、前記作業対象である他のロボットとの位置関係の誤差を修正することを特徴とする請求項１から請求項３までの何れか１項に記載のロボットの校正装置。
【請求項６】
前記ロボットが、前記作業対象であるロボット外部に固定されたカメラとの位置関係の誤差を修正することを特徴とする請求項１から請求項３までの何れか１項に記載のロボットの校正装置。
【請求項７】
ロボットのロボットハンドと作業対象との位置関係の誤差を修正するロボットの校正方法であって、前記作業対象の基準面が、ワーク座標系のＸＹ平面に平行な面であり、前記ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、
前記ロボットハンドと前記作業対象との接触を判定する接触判定ステップと、
前記ロボットハンドと前記作業対象の同一面に対する接触時における前記ロボットハンドの制御点の位置姿勢を取得する位置取得ステップと、
前記位置取得ステップで取得された複数の前記制御点の位置姿勢に基づいて、前記作業対象の姿勢をロボット座標系で算出する姿勢算出ステップと、
前記姿勢算出ステップで算出された前記作業対象の、前記ロボットハンドが接触する面である基準面に対して、前記ロボットハンドの基準となる部分の方向を合わせる駆動ステップと、
前記ロボットハンドの直線部分を、前記作業対象の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、前記ロボットハンドの直線部分を、前記作業対象の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、ワーク座標系の原点を求める位置算出ステップと、
を備えたことを特徴とするロボットの校正方法。
【請求項８】
前記ロボット座標系で算出された前記作業対象の原点の座標に基づいて、ワーク座標系から前記ロボット座標系への変換行列を作成する変換行列算出ステップと、
前記変換行列を用いて、前記ワーク座標系で表された前記作業対象上の教示点の座標を前記ロボット座標系の座標に座標変換する座標変換ステップと、
をさらに備えたことを特徴とする請求項７に記載のロボットの校正方法。
【請求項９】
ロボットと前記ロボットが備えるロボットハンドとの位置関係の誤差を修正するロボットの校正方法であって、固定治具の基準面が、ワーク座標系のＸＹ平面に平行な面であり、前記ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、
前記ロボットハンドと固定治具との接触を判定する接触判定ステップと、
前記ロボットハンドと前記固定治具との接触時における前記ロボットハンドの制御点の位置姿勢を取得する位置取得ステップと、
前記位置取得ステップで取得された複数の前記制御点の位置姿勢に基づいて、前記ロボットハンドの姿勢をロボット座標系で算出する姿勢算出ステップと、
前記姿勢算出ステップで算出された前記ロボットハンドの姿勢に基づいて、前記ロボットハンドを前記固定治具に接触させる面である、前記固定治具の基準面に対して、前記制御点の位置姿勢を変更することで、前記ロボットハンドに固定されたツール座標系の方向を合わせる駆動ステップと、
前記ロボットハンドの直線部分を、前記固定治具の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、前記ロボットハンドの直線部分を、前記固定治具の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、前記制御点から前記ロボットハンドの先端面までの距離を算出する位置算出ステップと、
を備えたことを特徴とするロボットの校正方法。
【請求項１０】
前記ロボットが、前記作業対象である他のロボットとの位置関係の誤差を修正することを特徴とする請求項７または請求項８に記載のロボットの校正方法。
【請求項１１】
前記ロボットが、前記作業対象であるロボット外部に固定されたカメラとの位置関係の誤差を修正することを特徴とする請求項７または請求項８に記載のロボットの校正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば複数の可動軸を有し、位置姿勢を変更可能な垂直多関節型ロボットと作業対象との校正を実行するロボットの校正装置および校正方法に関する。
【背景技術】
【０００２】
一般的に、産業用ロボット（以下、基本的に「ロボット」と略称する）は、１０μｍの精度で位置決めを実行可能であることが知られている。この位置決め精度は、ロボットの各関節に搭載されたサーボモータのエンコーダ値と、ロボットの内部パラメータ（例えば、リンク長等）とで定義される座標系（以下、「ロボット座標系」と称する）において実現される。
【０００３】
ここで、ロボット座標系は、サーボモータのエンコーダ値の誤差やロボットの内部パラメータ（リンク長等）の誤差等により、ロボット外部の機器で計測した座標系（以下、「世界座標系」と称する）とは異なるものとなる。特に、垂直多関節型ロボットについて、ロボット座標系を直交系で捉えた場合、世界座標系の基から見たロボット座標系は、非線形な歪みをもって観測される。
【０００４】
この歪みによる位置決め誤差は、ロボットの位置姿勢が大きく変化しないような限られた空間においては、減速機のバックラッシュ等による誤差と比較して十分に小さい。しかしながら、ロボットの位置姿勢が大きく変化する空間においては、減速機のバックラッシュ等による誤差と比較して無視できない大きさとなる。
【０００５】
すなわち、世界座標系から見て、減速機のバックラッシュ等によって決まる位置決め精度と同等の精度でロボットを動作させるためには、ロボットの位置姿勢が変化する一定の空間毎に、ロボット座標系と世界座標系とを校正する必要がある。
【０００６】
ところが、３次元計測器等は非常に高価であり、かつ作業空間内の世界座標系を計測することは困難なので、実際には、作業対象や外部センサ等が有する座標系に対して、ロボット座標系を校正するのが一般的である。このとき、この校正作業は、多くの場合、作業点毎の教示作業として実行されるので、座標系の違いが意識されることは少なく、座標系の校正は実施されてこなかった。
【０００７】
ここで、作業点が少ない場合には、座標系の校正（作業対象毎の教示）と座標系を含まない作業点毎の校正（一点一点の教示）とでは、校正（教示）作業時間の差は小さい。しかしながら、作業点が多い場合には、校正作業時間の差が顕著となる。すなわち、複数の工程をこなすロボットで、作業点毎の校正を実行する場合には、校正作業時間が長くなり、座標系の校正を実行する場合と比較して、校正作業時間の差が顕著となる。
【０００８】
さらに、部品の組み付けや挿入作業については、座標系の差が部品同士のこじれの原因となるので、作業品質に差が出るという問題があった。また、ビジュアルフィードバックを実行する場合には、視野内の全ての点が教示点であると言えるので、この場合も、作業品質に顕著な差が出るという問題があった。
【０００９】
そこで、作業対象が設置された平面にロボットの手先を接触させることにより、ロボットと作業対象が設置された平面とを校正する方法が知られている。この方法では、まず、作業対象が設置された平面と同一平面上の３点にロボットの手先を接触させて接触点の位置を計測し、この位置に基づいて平面の傾きおよび高さ位置を測定する。続いて、ロボットの手先に設けられたカメラの光軸を平面と垂直にして平面内のマーカを撮像し、撮像されたマーカの画像を処理してマーカの位置および回転方向を計測する。次に、平面の傾きおよび高さ位置、並びに平面上におけるマーカの位置および回転方向に基づいて、ロボットと作業対象が設置された平面とを校正する（例えば、特許文献１参照）。
【００１０】
また、作業点が多い場合の改善策として、ロボットと作業対象とを校正することにより、その他の教示点を補正する方法が知られている。この方法では、作業対象に固定された座標系（以下、「ワーク座標系」と称する）の基での相対位置関係を用いて、ワーク座標系の原点を校正することにより、作業対象上の教示点を補正する。ここで、原点位置の校正は、ロボット座標系における原点、ワーク座標系Ｘ軸上の点およびワーク座標系Ｙ軸上の点の位置を得ることによって実行される（例えば、特許文献２参照）。
【００１１】
また、接触点の計測を高精度化するために、力覚センサを用いて接触を検知する方法が知られている。この方法では、ロボットの手首部に取り付けられた力覚センサを用いることにより、作業対象との接触を高精度に検知している。また、作業対象とハンドとの傾きを修正することにより、作業対象を高精度に計測するものも知られている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−０７６０５４号公報
【特許文献２】特開昭６３−１８４８０６号公報
【特許文献３】特開２０１０−２３１８４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、従来技術には、以下のような課題がある。
特許文献１に記載された技術では、カメラによる画像処理を通じてロボットと作業対象との校正を実行している。ここで、カメラ座標系とロボット座標系とを校正する方法は多く知られているものの、ロボットの位置姿勢が大きく変化する場合には、校正の精度がロボットの位置決め精度と比較して低下する。
【００１４】
このことは、ロボットの位置姿勢が大きく変化する場合に、ロボット座標系と世界座標系とで歪みが生じることに起因する。そのため、カメラ座標系とロボット座標系との校正を実行した空間付近では、校正の精度がロボットの位置決め精度と比較して著しく低下しない可能性があるが、それ以外の空間では、原理的に校正の精度が低下する。
【００１５】
したがって、特許文献１に記載された技術を用いて、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行するためには、ロボットの位置決め精度以上の精度でカメラとロボットとを校正するだけでなく、作業対象付近の空間毎にカメラとロボットとを校正する必要がある。
【００１６】
しかしながら、この場合には、作業工数が増えるという問題がある。また、ロボットの位置決め精度と同等の精度でロボットと作業対象とを校正するためには、ロボットの位置決め精度以上の解像度で撮像を実行する必要があり、一般的に、校正専用のカメラ系（カメラやレンズ）を用意する必要があるという問題がある。
【００１７】
また、特許文献２に記載された技術では、校正用のデータを取得する際に、ハンド手先位置が校正されていることが前提条件となる。すなわち、ハンド手先位置の校正の誤差がロボットと作業対象との校正の精度に影響を与えるが、ロボットの位置決め精度と同等の精度でハンド手先位置の校正を実行する方法が開示されていないという問題がある。
【００１８】
また、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行するためには、各計測点におけるハンドの接触点の位置誤差が、ロボットの位置決め精度と比較して十分に小さいことが必要となる。しかしながら、通常は、ハンドの大きさがロボットの位置決め精度と比較して無視できないほど大きいので、姿勢を変更しながら、ロボットの位置決め精度よりも十分に小さい位置誤差でハンドを接触させることは、実現が困難である。
【００１９】
また、校正に用いられる各点の位置を取得する場合には、空間内（Ｘ，Ｙ，Ｚ）の３自由度があるが、これら３自由度の全てを、ロボットの位置決め精度と比較して十分に小さい誤差で取得する方法も開示されていないという問題がある。
【００２０】
また、特許文献３に記載された技術では、ワーク座標系を算出する方法や、作業対象とハンドとの傾きを修正する方法が開示されていないという問題がある。また、座標系の算出や作業対象とハンドとの傾きの修正は、同一の計測と算出とを繰り返すことによって精度を向上させているが、このことについても集束性について何等開示されていない。いずれにせよ、ロボットの位置決め精度と同等の精度を実現するためには、繰り返し作業が必要となり、校正作業に時間がかかるという問題がある。
【００２１】
この発明は、上記のような課題を解決するためになされたものであり、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、校正作業におけるロボットの調整を１自由度に限定することにより、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、計測および算出を最小限にとどめることにより、校正作業を効率化させることができるロボットの校正装置および校正方法を得ることを目的とする。
【課題を解決するための手段】
【００２２】
この発明に係るロボットの校正装置は、ロボットのロボットハンドと作業対象との位置関係の誤差を修正するロボットの校正装置であって、作業対象の基準面が、ワーク座標系のＸＹ平面に平行な面であり、ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、ロボットハンドと作業対象との接触を判定する接触判定部と、ロボットハンドと作業対象の同一面に対する接触時におけるロボットハンドの制御点の位置姿勢を取得する位置取得部と、位置取得部で取得された複数の制御点の位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出する姿勢算出部と、姿勢算出部で算出された作業対象の、ロボットハンドが接触する面である基準面に対して、ロボットハンドの基準となる部分の方向を合わせる駆動部と、ロボットハンドの直線部分を、作業対象の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、ロボットハンドの直線部分を、作業対象の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、ワーク座標系の原点を求める位置算出部とを備えたものである。
【００２３】
また、この発明に係るロボットの校正方法は、ロボットのロボットハンドと作業対象との位置関係の誤差を修正するロボットの校正方法であって、作業対象の基準面が、ワーク座標系のＸＹ平面に平行な面であり、ロボットハンドの直線部分が、ツール座標系のＸ軸またはＹ軸に平行であり、ロボットハンドと作業対象との接触を判定する接触判定ステップと、ロボットハンドと作業対象の同一面に対する接触時におけるロボットハンドの制御点の位置姿勢を取得する位置取得ステップと、位置取得ステップで取得された複数の制御点の位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出する姿勢算出ステップと、姿勢算出ステップで算出された作業対象の、ロボットハンドが接触する面である基準面に対して、ロボットハンドの基準となる部分の方向を合わせる駆動ステップと、ロボットハンドの直線部分を、作業対象の、ワーク座標系のＸ軸またはＹ軸の一方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸またはＹ軸を、ワーク座標系のＸ軸またはＹ軸の一方と合わせるとともに、ロボットハンドの直線部分を、作業対象の、ワーク座標系のＸ軸またはＹ軸の他方に平行な直線部分である端面に接触させて、ツール座標系のＸ軸およびＹ軸の位置を取得し、ワーク座標系の原点を求める位置算出ステップとを備えたものである。
【発明の効果】
【００２４】
この発明に係るロボットの校正装置によれば、接触判定部は、ロボットと作業対象との接触を判定し、位置取得部は、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出部は、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動部は、姿勢算出部で算出された作業対象の姿勢にロボットを移動させ、位置算出部は、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
また、この発明に係るロボットの校正方法によれば、接触判定ステップは、ロボットと作業対象との接触を判定し、位置取得ステップは、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出ステップは、位置取得ステップで取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動ステップは、姿勢算出ステップで算出された作業対象の姿勢にロボットを移動させ、位置算出ステップは、駆動ステップにより移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
これにより、サーボモータのエンコーダ値やロボットの内部パラメータ（例えば、リンク長等）とで定義されるロボット座標系とロボット外部の機器で計測した世界座標系との歪みに起因する校正誤差や、想定している計測点にロボットを移動させる際の誤差に起因する校正誤差を排除することができる。
そのため、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、校正作業を効率化させることができる。
【図面の簡単な説明】
【００２５】
【図１】この発明の実施の形態１に係るロボットの校正装置を含む産業用ロボットの全体構造を示す構成図である。
【図２】この発明の実施の形態１に係るロボットの校正装置の動作を示すフローチャートである。
【図３】この発明の実施の形態１に係るロボットの校正装置におけるツール座標系を説明するための模式図である。
【図４】この発明の実施の形態１に係るロボットの校正装置におけるツール座標系を説明するための別の模式図である。
【図５】この発明の実施の形態１に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す模式図である。
【図６】この発明の実施の形態３に係るロボットの校正装置のロボットハンドを示す模式図である。
【図７】この発明の実施の形態３に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す模式図である。
【図８】この発明の実施の形態３に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す別の模式図である。
【図９】この発明の実施の形態３に係るロボットの校正装置におけるツール座標系の算出処理を説明するための模式図である。
【図１０】この発明の実施の形態８に係るロボットの校正装置におけるロボットとカメラとの関係を示す模式図である。
【図１１】この発明の実施の形態１２に係るロボットの校正装置におけるカメラと作業対象との関係を示す模式図である。
【発明を実施するための形態】
【００２６】
以下、この発明に係るロボットの校正装置の好適な実施の形態につき図面を用いて説明するが、各図において同一、または相当する部分については、同一符号を付して説明する。なお、この発明は、図１に示されるような、手先の位置姿勢を空間的に変更できるロボットを対象とする。
【００２７】
実施の形態１．
図１は、この発明の実施の形態１に係るロボットの校正装置を含む産業用ロボットの全体構造を示す構成図である。この産業用ロボットの全体構造は、従来から広く使用されているものである。図１において、この産業用ロボットは、ロボット本体１１、ロボット制御部１２、ティーチングボックス１３、力覚センサ１４およびロボットハンド１５から構成されている。
【００２８】
ロボット本体１１は、一般に垂直多関節型ロボットと呼ばれるものである。ロボット制御部１２は、ロボット本体１１に所望の動作をさせるために、駆動部（図示せず）の制御を実行する。ロボット本体１１を動作させるためには、一般的に、所望の動作を定義したロボットプログラムを、例えばパソコン（図示せず）からロボット制御部１２に送信するか、または、ティーチングボックス１３と呼ばれる手動操作盤を介して、作業者が移動命令をロボット制御部１２に送信する。
【００２９】
ロボット本体１１の手首には、力覚センサ１４が取り付けられている。力覚センサ１４は、６軸成分（並進３成分および並進方向の軸回りモーメント３成分）を検知することができるもので、従来から使用されているものである。力覚センサ１４は、この発明の実施の形態１では、ロボットとの校正対象である作業対象２０との接触を判定する接触判定部として機能する。
【００３０】
力覚センサ１４の先には、ロボットハンド１５が取り付けられている。ロボットハンド１５は、ロボット本体１１が実運転する際に利用されるもので、この発明の実施の形態１においては、物体との接触点と力覚センサ１４との間に、接触判定を妨げるほどの弾性体が存在しないことが望ましい。また、ロボットハンド１５の形状は、ハンドの根元から先端に向けて直線部分を有することが望ましい。
【００３１】
作業対象２０は、ロボットとの校正対象であり、その上にロボットの作業点（教示点）が定められるもので、２本の直交する直線部分（詳細については、後述する）を有するものである。また、作業対象２０は、ロボットの作業の対象となるワーク自体、またはワークを固定する治具や部品供給部等である。
【００３２】
続いて、図２を参照しながら、ロボットと作業対象２０との校正、すなわちロボット座標系の基での作業対象２０の位置姿勢の計測について説明する。図２に示された処理は、接触判定部として機能する力覚センサ１４、ロボットと作業対象２０との接触時におけるロボットの位置姿勢を取得する位置取得部、取得された複数のロボットの位置姿勢に基づいて、作業対象２０の姿勢をロボット座標系で算出する姿勢算出部、算出された作業対象２０の姿勢にロボットを移動させる駆動部、および移動された複数のロボットの位置姿勢に基づいて、作業対象２０の位置を算出する位置算出部によって実現される。
【００３３】
ここで、位置取得部、姿勢算出部および位置算出部は、ロボット制御部１２内に実装されているものとする。なお、位置取得部、姿勢算出部および位置算出部は、１つにまとめられたハードウェアとして実装されてもよいし、それぞれが別々にハードウェアとして実装されてもよい。また、位置取得部、姿勢算出部および位置算出部は、外部の計算機にプログラムとして実装されてもよい。
【００３４】
まず、ロボット制御部１２は、ロボットハンド１５を作業対象２０の１つの平面内の３点に接触させる（ステップＳ２１）。この３点は、ロボット座標系の基で同一直線上にはない任意の点とする。また、３点の接触では、ロボットハンド１５の姿勢は全て同一とし、接触させる際には、一方向からアプローチするものとする。このとき、ロボットハンド１５と作業対象２０との接触は、力覚センサ１４を用いて判定されるものとし、ロボットが実現可能な最小分解能での移動量、またはロボットが実現可能な位置決め精度よりも小さい移動量で最終的な接触位置を判定する。
【００３５】
なお、接触位置の計測は、一度の移動の接触判定で実行される必要はなく、移動速度または移動量を徐々に小さくしながら、移動量で接触と非接触とが切り替わる接触位置を計測することが望ましい。また、最終的な接触位置を計測する際には、移動方向をそろえること、すなわち作業対象２０に向かっていく方向で移動させるか、作業対象２０から離れていく方向で移動させるかをそろえることが望ましい。
【００３６】
力覚センサ１４が、ロボットハンド１５が接触位置に移動したことを判定すると、位置取得部は、ロボットの現在位置を取得する（ステップＳ２２）。このとき、接触点の位置を取得する必要はなく、ロボットの手先位置姿勢に影響を与える全アクチュエータよりも先端側に固定された点の位置を取得すればよい。
【００３７】
一般的には、取得する位置として、標準の制御点であるハンド等のエンドエフェクタが取り付けられるフランジ面や、ロボットハンド１５の手先位置（通常は、正確な手先位置からずれている）が考えられる。この位置は、３点の接触位置計測において変更しないこととする。また、移動量で接触と非接触とが切り替わる接触位置ではなく、移動量で接触と非接触とが切り替わる非接触位置であってもよい。いずれにせよ、接触位置または非接触位置は、３点の位置計測において変更しないこととする。
【００３８】
ここで、取得した３点のロボット座標系の基での位置（Ｘ，Ｙ，Ｚ）をそれぞれＰ１、Ｐ２およびＰ３とする。この発明の実施の形態１では、座標系にかかわらず、位置を３次元の直交座標系（Ｘ，Ｙ，Ｚ）で表すこととする。これ以降、位置姿勢といった座標値は、全てロボット座標系の基で固定された特定の座標系で表現される。この座標系は、一般的には、ロボットの据え付け位置に固定された座標系であり、ベース座標系と称される。
【００３９】
複数位置におけるロボット座標系の基での位置姿勢から、ロボット座標系の基での作業対象２０の姿勢を算出する姿勢算出部は、ｖ１＝Ｐ２−Ｐ１、ｖ２＝Ｐ３−Ｐ１、ｖ３＝ｖ１×ｖ２を算出する。なお、記号「×」は、ベクトルのクロス積を示し、ｖ３は、ｖ１およびｖ２と直交する方向を向くベクトルとなる。
【００４０】
続いて、姿勢算出部は、事前に登録された作業対象２０に接触させるロボットハンド１５の向きとベクトルｖ３の方向とを一致させるロボットの姿勢Ｍ１を算出する（ステップＳ２３）。このとき、ロボットハンド１５の向きとは、ロボットハンド１５上に固定された適当な座標系（以下、「ツール座標系」と称する）の基での方向を示している。なお、例えば、図３に示されるように、特殊な形状のロボットハンド１５では、ロボットハンド取り付け位置（制御点）からロボットハンド１５先端への方向と、ロボットハンド１５の向きとは異なる。
【００４１】
しかしながら、ここでは、座標軸の向きさえそろえばいいので、図４に示されるように、ツール座標系の原点位置を、ロボットハンド取り付け位置等の適当な位置としてもよい。また、ツール座標系の方向は、ロボットハンド１５の設計図等からあらかじめ取得されているものとする。なお、実現される最終的な精度への影響は少ないので、ロボットの位置決め精度と同等の精度で、ツール座標系の方向を取得する必要はない。ただし、後述するように、ロボットの位置決め精度と同等の精度でツール座標系の方向を取得してもよい。
【００４２】
次に、ロボット制御部１２は、周りに干渉物がない位置で、ロボットの姿勢を姿勢Ｍ１に変更する（ステップＳ２４）。これによって、ロボットハンド１５の向きが、作業対象２０の平面に対して垂直になる。
【００４３】
続いて、ロボット制御部１２は、図５に示されるように、作業対象２０の平面に対して垂直になっているロボットハンド１５の直線部分を、対象ワークの直線部分の２点に接触させる（ステップＳ２５）。２点の接触では、ロボットハンド１５の姿勢は互いに同一とし、接触させる際には、一方向からアプローチするものとする。接触判定については、３点の接触の場合と同様である。このとき、作業対象２０の平面の垂直方向において、ロボットハンド１５の位置を厳密に一致させる必要はない。
【００４４】
力覚センサ１４が、ロボットハンド１５が作業対象２０とぎりぎり接触する位置に移動したことを判定すると、位置取得部は、ロボットの現在位置を取得する（ステップＳ２６）。この場合の現在位置も、３点の接触の場合と同様に、２点の接触位置計測中に、変更されていない制御点等の位置を取得すればよい。
【００４５】
ここで、取得された３点のロボット座標系の基での位置（Ｘ，Ｙ，Ｚ）をそれぞれＰ４およびＰ５とする。また、位置Ｐ４およびＰ５は、ロボット座標系からツール座標系の位置Ｐ４ｔおよびＰ５ｔに変換される。ツール座標系は、ロボットハンド１５に固定された座標系である。実際には、ロボットハンド１５のロボットへの取り付け位置および方向は、既知のものとし、ロボット座標系でのロボットハンド取り付け位置の姿勢から算出される座標系である。なお、ツール座標系の座標軸方向が重要であり、ツール座標系の原点位置は、適当な位置であってよい。
【００４６】
また、ここで、ツール座標系での位置Ｐ＊ｔの位置を（Ｘ＊ｔ，Ｙ＊ｔ，Ｚ＊ｔ）とし、作業対象２０の平面の垂直方向をツール座標系のＺ軸方向とする。なお、説明を簡略化するために、｜Ｘ５ｔ−Ｘ４ｔ｜≧｜Ｙ５ｔ−Ｙ４ｔ｜、Ｘ５ｔ≧Ｘ４ｔとする。このとき、姿勢算出部は、次式（１）で表されるαについて、−αだけツール座標系の基でＺ軸周りにロボットハンド１５を回転させた姿勢Ｍ２を算出する（ステップＳ２７）。
【００４７】
【数１】
0005618770.tif 000002
【００４８】
すると、ロボットの姿勢がＭ２のとき、ツール座標系の座標軸の方向が、作業対象２０の座標系の座標軸の方向と一致する。なお、作業対象２０の座標系とは、作業対象２０に固定された座標系であり、作業対象２０の平面に垂直な方向をＺ軸方向とし、作業対象２０の直線部分の直線方向がＸ軸方向となる座標系（以下、「ワーク座標系」と称する）とする。ただし、ツール座標系およびワーク座標系の各座標軸（Ｘ，Ｙ，Ｚ）の対応と正負とは、必ずしも一致しない。
【００４９】
次に、ロボット制御部１２は、周りに干渉物がない位置で、ロボットの姿勢を姿勢Ｍ２に変更する（ステップＳ２８）。これによって、ツール座標系の座標軸の方向とワーク座標系の座標軸の方向とが一致する。
【００５０】
続いて、ロボット制御部１２は、ワーク座標系Ｘ−Ｙ平面内に写像したときにワーク座標系の座標軸（Ｘ軸またはＹ軸）と平行で、かつ互いに平行でない（直交する）、作業対象２０上の異なる２直線部分のそれぞれ１点に、作業対象２０の平面に対して垂直になっているロボットハンド１５の直線部分を接触させる。また、同時に、ロボット制御部１２は、作業対象２０のワーク座標系Ｘ−Ｙ平面と平行な面に対して、ロボットハンド１５を、ワーク座標系と方向が一致しているツール座標系の基でＺ方向に移動させながら接触させる（ステップＳ２９）。
【００５１】
このとき、ロボットハンド１５と作業対象２０との接触は、力覚センサ１４を用いて判定され、位置取得部によって、それぞれ位置Ｐ６、Ｐ７およびＰ８として取得される。この場合の現在位置の取得は、上述した場合と同様に、３点の接触位置計測中に、変更されていない制御点等の位置を取得すればよい。
【００５２】
次に、位置算出部は、取得された位置Ｐ６、Ｐ７およびＰ８を、上述した場合と同様に、ワーク座標系と方向が一致しているツール座標系の位置Ｐ６ｔ、Ｐ７ｔおよびＰ８ｔに変換し、位置Ｐ６がツール座標系Ｘ軸と平行な直線との接触位置である場合、（Ｘ７ｔ，Ｙ６ｔ，Ｚ８ｔ）を作業対象２０の原点位置として算出する（ステップＳ３０）。一方、位置Ｐ６がツール座標系Ｙ軸と平行な直線との接触位置である場合、（Ｘ６ｔ，Ｙ７ｔ，Ｚ８ｔ）を作業対象２０の原点位置として算出する。
【００５３】
これにより、作業対象２０の座標軸の方向および原点位置といったワーク座標系が、サーボモータのエンコーダ値およびロボットの内部パラメータ（リンク長等）で定義されるロボット座標系の基で、ロボットの位置決め精度と同等の精度で算出される。
【００５４】
この方法によれば、位置Ｐ１、Ｐ２およびＰ３の計測では、ロボットハンド１５の姿勢が同一であり、かつ作業対象２０の同一平面内の接触なので、ロボットハンド１５の接触位置は同一となる。また、力覚センサ１４を接触判定部として用いることにより、接触位置の計測を、ロボットの位置決め精度と同等の精度で実行することができる。これにより、作業対象２０の平面の垂線方向が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【００５５】
また、位置Ｐ４およびＰ５の計測では、計測された平面の垂線方向と、ロボットハンド１５の直線部の方向とを一致させた上で、ロボットハンド１５の直線部が作業対象２０の直線部に接触される。これにより、位置Ｐ４およびＰ５における作業対象２０とロボットハンド１５との接触位置が、作業対象２０の垂線方向に多少ずれたとしても、作業対象２０のワーク座標系の座標軸方向が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【００５６】
さらに、位置Ｐ６、Ｐ７およびＰ８の計測では、作業対象２０のワーク座標系とロボットハンド１５の座標系とを一致させた上で、計測が実行される。これにより、作業対象２０の位置姿勢が変更された場合であっても、位置Ｐ６、Ｐ７およびＰ８とロボットハンド１５との接触位置関係が、ワーク座標系の原点位置を算出するのに必要な部分において常に一定となるので、作業対象２０の原点位置が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【００５７】
ただし、作業対象２０の原点位置は、ロボットハンド１５の大きさに起因するオフセットを含むこととなる。
すなわち、最終的に、作業対象２０のワーク座標系の座標軸の方向と原点位置とを、ロボット座標系の基で、ロボットの位置決め精度と同等の精度で算出することができる。
【００５８】
以上のように、実施の形態１によれば、接触判定部は、ロボットと作業対象との接触を判定し、位置取得部は、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出部は、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動部は、姿勢算出部で算出された作業対象の姿勢にロボットを移動させ、位置算出部は、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
これにより、サーボモータのエンコーダ値やロボットの内部パラメータ（例えば、リンク長等）とで定義されるロボット座標系とロボット外部の機器で計測した世界座標系との歪みに起因する校正誤差や、想定している計測点にロボットを移動させる際の誤差に起因する校正誤差を排除することができる。
そのため、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、校正作業を効率化させることができるロボットの校正装置および校正方法を得ることができる。
【００５９】
実施の形態２．
上記実施の形態１で示したロボットと作業対象２０との校正を利用することにより、ロボットの位置決め精度と同等の精度で、教示点の補正を実行することができる。教示点の補正は、ロボットの修理や交換が行われた場合や、同等設備の立ち上げや設備レイアウトの変更時等に利用される。
【００６０】
すなわち、ロボットのモータ等を修理したり交換したりすると、ロボット座標系にずれが発生するので、補正が必要になる。また、ロボットを交換した場合には、ロボットの個体差や据え付け位置のずれが発生するので、補正が必要になる。また、同様に、同等設備を立ち上げた場合にも補正が必要になる。また、当然ながら、設備内のレイアウトを変更した場合にも補正が必要になる。
【００６１】
教示点の補正は、補正基の教示点座標、補正基の作業対象２０の位置姿勢、および補正対象の作業対象２０の位置姿勢を用いて実現される。なお、補正は、作業対象２０毎に実行され、作業対象２０の原点座標から教示点座標への変換行列を用いて実現される。また、教示点の補正は、図１に示されたロボット制御部１２内に実装された変換行列算出部および座標変換部により実行される。
【００６２】
以下、補正の手順について説明する。まず、正常に稼働しているロボット設備において、上述した実施の形態１の方法を用いて、補正基の作業対象２０の原点座標を算出する。なお、原点座標とは、位置および姿勢で表され、位置は上記実施の形態１に示されたものであり、姿勢はロボット座標系の基でベース座標系から見たワーク座標系を示している。
【００６３】
次に、変換行列算出部は、算出された原点座標から、補正基の作業対象２０上の補正基の教示点座標への変換行列を算出する。続いて、補正対象の作業対象２０に対して、上記実施の形態１の方法を用いて、原点座標を算出する。最後に、座標変換部は、補正対象の作業対象２０の原点座標に対して、算出された変換行列により座標変換を実行し、補正された教示点を得る。
【００６４】
以上のように、実施の形態２によれば、ロボット座標系の基でロボットの位置決め精度と同等の精度で計測した作業対象の位置姿勢を基に補正を実行するので、教示点の補正を、ロボット座標系の基でロボットの位置決め精度と同等の精度で実行することができる。また、補正は、作業対象毎に実行されるので、ロボットの修理や交換はもとより、同等設備の立ち上げ、ロボットの種類変更、設備レイアウトの変更、または同一作業対象を増やした場合等にも補正を実行することができる。
【００６５】
実施の形態３．
上記実施の形態１、２において、校正の作業対象２０をロボットハンド１５としてもよい。この場合には、ロボットハンド１５を単純な直方体として捉え、ロボットハンド１５の先端中心の位置姿勢をロボット座標系で算出する。
【００６６】
以下、ロボットとロボットハンド１５との校正について説明する。図６は、ロボットハンド１５を先端側からみた模式図である。ロボットハンド１５の校正は、固定された直方体にロボットハンド１５を接触させることにより実行される。すなわち、上記実施の形態１の作業対象２０とロボットハンド１５との関係が逆になっている。
【００６７】
ロボットとロボットハンド１５との校正は、まず、ロボット外部に固定された直方体の角に対して、ロボットハンド１５の先端面（図６の斜線部）の３点を接触させ、接触する位置を計測する。接触位置の計測は、上記実施の形態１と同様である。３点の接触位置から、上記実施の形態１と同様にロボットハンド１５の先端面の垂線方向を算出することができるので、算出された垂線方向がベース座標系の鉛直下向きになる姿勢を算出して移動する。
【００６８】
次に、図７に示されるように、固定された直方体の直線部分にロボットハンド１５側面の平面部の２点を接触させる。図７では、直方体の前面左側の直線を、ロボットハンド１５の側面に接触させている。２点の接触位置から、上記実施の形態１と同様にロボットハンド１５先端面の垂線方向回りの回転量が算出される。
以上より、ロボットハンド１５の先端面に固定された座標軸の方向が、ロボット座標系の基で算出される。
【００６９】
続いて、ロボットハンド１５の先端面の中心位置を算出する。ここでは、説明のために、固定された直方体に対して、下記の計測が可能となる適当な姿勢をとり、そのときのロボットハンド１５の先端面に固定された座標系を基本ツール座標系ＰＴとする。基本ツール座標系ＰＴは、ロボットハンド１５の根元からロボットハンド１５の先端に向かう方向をＺ軸方向とし、基本ツール座標系ＰＴの基での位置Ｐ＊ＰＴの位置を（Ｘ＊ＰＴ，Ｙ＊ＰＴ，Ｚ＊ＰＴ）とする。基本ツール座標系ＰＴの原点位置は一定であればよく、適当な位置であってよい。
【００７０】
次に、基本ツール座標系ＰＴの基でのＸ軸方向のロボットハンド１５先端面の中心位置を算出する。図８に示されるように、ロボットハンド１５を基本ツール座標系ＰＴの基でのＸ軸方向に移動させ、ロボットハンド１５側面の平面部を、固定された直方体の直線部に接触させる。このときの移動方向は、Ｘ軸方向＋側および−側の何れであってもよい。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ９とする。
【００７１】
続いて、基本ツール座標系ＰＴのＺ軸の軸周りにロボットハンド１５を１８０°回転させ、下記の動作が可能な位置にロボットを移動させる。次に、ロボットハンド１５を基本ツール座標系ＰＴの基でのＸ軸方向に移動させ、上述した面とは対面となるロボットハンド１５側面の平面部を、直方体の上記と同一の直線部に接触させる。このときの移動方向は、位置Ｐ９の計測時と同じ方向とする。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１０とする。
【００７２】
このとき、現在の制御点から基本ツール座標系ＰＴのＸ軸方向に（Ｘ１０ＰＴ−Ｘ９ＰＴ）／２だけ移動した位置が、基本ツール座標系ＰＴのＸ軸方向のロボットハンド１５先端面の中心位置となる。
【００７３】
同様にして、基本ツール座標系ＰＴの基でのＹ軸方向のロボットハンド１５先端面の中心位置を算出する。ロボットハンド１５を基本ツール座標系ＰＴの基でのＹ軸方向に移動させ、ロボットハンド１５側面の平面部を、固定された直方体の直線部に接触させる。このときの移動方向は、Ｙ軸方向＋側および−側の何れであってもよい。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１１とする。
【００７４】
続いて、基本ツール座標系ＰＴのＺ軸の軸周りにロボットハンド１５を１８０°回転させ、下記の動作が可能な位置にロボットを移動させる。次に、ロボットハンド１５を基本ツール座標系ＰＴの基でのＹ軸方向に移動させ、上述した面とは対面となるロボットハンド１５側面の平面部を、直方体の上記と同一の直線部に接触させる。このときの移動方向は、位置Ｐ１１の計測時と同じ方向とする。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１２とする。
【００７５】
このとき、現在の制御点から基本ツール座標系ＰＴのＹ軸方向に（Ｙ１２ＰＴ−Ｙ１１ＰＴ）／２だけ移動した位置が、基本ツール座標系ＰＴのＹ軸方向のロボットハンド１５先端面の中心位置となる。
以上より、基本ツール座標系ＰＴのＺ軸方向以外のロボットハンド１５先端面の中心位置が算出される。
【００７６】
最後に、制御点からロボットハンド１５先端面までの距離が算出される。まず、制御点を、基本ツール座標系ＰＴのＸＰＴ−ＹＰＴ平面に写像したとき、ロボットハンド１５先端面の中心位置になる位置に設定する。次に、適当なロボット外部の平面とロボットハンド１５先端面とが平行になり、かつ以下の計測が可能な位置姿勢にロボットを移動させる。このときのロボットハンド１５に固定された座標系を基本ツール座標系ＰＴとする。
【００７７】
このとき、ロボットの設置面を用いるのであれば、算出されたロボットハンド１５に固定された座標系から、姿勢を算出することができる。また、それ以外の面を用いる場合には、上記実施の形態１で示した方法でロボット外部の平面の座標系を算出して、ツール座標系と組み合わせて姿勢を算出してもよい。また、ロボットの接地面を用いる場合でも、同様に、上記実施の形態１に示した方法で、下記の計測で用いられる周辺の平面の座標系を算出してもよい。
【００７８】
続いて、位置姿勢から、ロボットハンド１５の姿勢を一定にしたまま、ロボットハンド１５と平面とを接触させて、接触位置を取得する。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１３とする。
【００７９】
次に、ロボットハンド１５を、ロボットハンド１５に固定された座標系の基でＹ軸の軸周りにθ１だけ回転させる。このとき、θ１は、０°よりも大きく９０°よりも小さい角度であり、下記の計測が可能な、できるだけ大きい角度が望ましく、例えば３０°である。このときのθ１の回転方向は、Ｙ軸周り＋側および−側の何れであってもよい。
【００８０】
続いて、ロボットハンド１５の姿勢を一定にしたまま、ロボット外部の平面にロボットハンド１５を接触させて、接触位置を取得する。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１４とする。
【００８１】
同様にして、ロボットハンド１５を、ロボットハンド１５に固定された座標系の基でＹ軸の軸周りにθ２だけ回転させる。このとき、θ２は、０°よりも大きく９０°−θ１よりも小さい角度であり、θ１と同じ角度であることが望ましい。このときのθ２の回転方向は、θ１と同じ方向である。ただし、回転方向は、互いに異なってもよく、その場合には、θ１≠θ２、かつ２・θ１≠θ２となる必要があり、さらに、θ２は、０°よりも大きく９０°＋θ１よりも小さい角度であり、好ましくは、１．５・θ１＝θ２または３・θ１＝θ２である。
【００８２】
続いて、ロボットハンド１５の姿勢を一定にしたまま、ロボット外部の平面にロボットハンド１５を接触させて、接触位置を取得する。接触位置は、上記実施の形態１と同様に判定および計測され、その位置をＰ１５とする。
【００８３】
次に、図９に示されるように、ａ＝Ｚ１３ＰＴ−Ｚ１４ＰＴ、ｂ＝Ｚ１３ＰＴ−Ｚ１５ＰＴ、θ３＝θ１＋θ２として、位置取得点（通常は、制御点と一致する）からロボットハンド１５先端面までの距離をＴとし、ロボットハンド１５先端面の中心点からツール座標系の基でＸ軸方向のロボットハンド１５先端面の端までの距離をＤとすると、次式（２）が成り立つ。
【００８４】
Ｔ＝Ｔｃｏｓθ１＋Ｄｓｉｎθ１＋ａ＝Ｔｃｏｓθ３＋Ｄｓｉｎθ３＋ｂ  （２）
【００８５】
ここで、式（２）の連立方程式をＴについて解くことにより、制御点からロボットハンド１５先端面までの距離を算出することができる。また、式（２）の連立方程式をＤについて解くことにより、ロボットハンド１５先端面の中心点からツール座標系の基でＸ軸方向のロボットハンド１５先端面の端までの距離を算出することができる。
【００８６】
なお、Ｘ軸周りでこの方法を実行することにより、ロボットハンド１５先端面の中心点からツール座標系の基でＹ軸方向のロボットハンド１５先端面の端までの距離を算出することができる。このとき、Ｔを既知とすれば、接触点の計測回数を低減することができる。
【００８７】
以上のように、実施の形態３によれば、ロボットハンド先端面の中心位置を、ロボット座標系の基で算出することができる。これにより、ロボット座標系の基でロボットの位置決め精度と同等の精度でロボットハンド先端面の中心位置が得られるので、ロボットとロボットハンドとを、ロボット座標系の基でロボットの位置決め精度と同等の精度で校正することができる。また、ロボットハンド先端面の中心点からツール座標系の基でＸ軸方向およびＹ軸方向のロボットハンド先端面の端までの距離を、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができる。
【００８８】
実施の形態４．
上述した実施の形態で示した方法を、複数のロボットの協調作業向けの校正に用いてもよい。１つの作業対象２０に対して、複数のロボットが協調して作業する場合がある。例えば、ロボット単体の可搬重量に対して作業対象２０が重い場合に、複数のロボットの協調作業で作業対象２０を運搬する場面がある。このとき、各ロボットが作業対象２０のワーク座標系を精確に把握していないと、作業対象２０やロボットに過大な負荷がかかり、作業対象２０やロボットの破損などを引き起こす。
【００８９】
そこで、上記実施の形態１に示した方法を用いて、各ロボットが作業対象２０のワーク座標系を個別に算出し、ワーク座標系の基で移動経路を設定する。例えば、作業対象２０の把持位置について、各ロボットそれぞれで教示を実行し、それ以降の各ロボットは、各ロボット固有のロボット座標系の基でのワーク座標系に従って動作する。
【００９０】
このとき、ロボットハンド１５の形状により、ワーク座標系の原点位置がロボット間で異なることとなる。しかしながら、把持位置で現物あわせを実行しているので、問題にはならない。また、それ以降の各ロボットの動きは、各ロボット固有のロボット座標系の基でのワーク座標系に従っているので、作業対象２０やロボットに過大な負荷はかからない。
【００９１】
以上のように、実施の形態４によれば、各ロボットは、ワーク座標系をロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができ、ワーク座標系の基で動作を設定するので、運搬途中で作業対象やロボットに過大な負荷がかかることを防止することができる。
【００９２】
実施の形態５．
上述した実施の形態で示した方法を用いて、複数のロボット同士の間で、協調作業向けの校正を実行してもよい。すなわち、一方のロボットが作業対象２０を把持して位置姿勢を変更し、他方のロボットが作業対象２０に対して作業を実行する協調作業において、把持側ロボットのロボットハンド１５と作業側ロボットとの校正を実行する。校正の方法は、上記実施の形態１と同様である。
【００９３】
以上のように、実施の形態５によれば、把持側ロボットが作業対象の位置姿勢を変更した場合であっても、作業側ロボットが把持側ロボットのロボットハンドのワーク座標系（ロボットハンド）を、把持側ロボットの移動量から追従することにより、作業対象の姿勢を追従することができる。
【００９４】
実施の形態６．
上記実施の形態５では、ロボットハンド１５に対してのみ校正を実行したが、これに限定されず、さらに作業対象２０に対して校正を実行してもよい。上述したように、ロボットハンド１５との校正のみで、姿勢変更を追従する（補正する）ことはできる。
【００９５】
しかしながら、把持側ロボットのロボットハンド１５に固定された座標系と、作業対象２０に固定された座標系との間に大きな乖離がある場合、追従基（補正基）となる最初の姿勢を教示することが困難となる。そのため、上記実施の形態１に示した方法を用いて、作業側ロボットと把持された状態の作業対象２０との校正を実行し、続いて、上記実施の形態５に示した方法を用いて、作業側ロボットと把持側ロボットのロボットハンド１５との校正を実行する。
【００９６】
以上のように、実施の形態６によれば、作業対象の座標系が、ロボット座標系の基でロボットの位置決め精度と同等の精度で分かるので、最初の姿勢における教示作業を簡略化することができる。また、作業対象の位置姿勢が変更された場合であっても、把持側ロボットのロボットハンドの姿勢が分かっているので、姿勢変更を追従する（補正する）ことができ、作業位置姿勢の教示作業において、姿勢あわせを省略することができる。
【００９７】
実施の形態７．
上述した実施の形態で示した方法を用いて、作業側ロボットと把持側ロボットの制御点との校正を実行してもよい。すなわち、作業側ロボットと作業対象２０との校正ができ、さらに作業側ロボットと把持側ロボットの制御点との校正ができると、把持側ロボットの制御点に対する作業対象２０の原点の位置姿勢を、作業側ロボットのロボット座標系の基で算出することができる。そのため、把持側ロボットの位置姿勢が変更された場合であっても、変更後の作業対象２０の位置姿勢を算出することができるので、上記実施の形態２と同様に、教示点の補正を実行することができる。
【００９８】
具体的には、把持側ロボットが作業対象２０を把持した状態で、作業側ロボットが、上記実施の形態１に示した方法を用いて、作業対象２０の原点座標を求める。次に、把持側ロボットが作業対象２０の位置姿勢を変更し、作業側ロボットが、上記実施の形態１に示した方法を用いて、作業対象２０の原点座標を求める。
【００９９】
さらに、把持側ロボットが作業対象２０の位置姿勢を変更し、作業側ロボットが、上記実施の形態１に示した方法を用いて、作業対象２０の原点座標を求めることにより、計３点で原点座標を求める。このとき、３点の変更において、把持側ロボットの制御点から見た制御点の位置と各作業対象２０の原点の位置とが、同一平面上にはないものとする。
【０１００】
この場合に、把持側ロボットの制御点の３次元座標上の位置に対して、独立である３本の連立方程式が成立する。そのため、この連立方程式を解くことにより、作業対象２０の原点から見た把持側ロボットの制御位置を算出することができ、相対位置関係が求められる。また、同時に、作業側ロボットから見た把持側ロボットの座標軸の方向も算出することができる。
【０１０１】
以上のように、実施の形態７によれば、作業対象の原点から見た把持側ロボットの制御点の位置を算出することができ、相対位置関係が分かるので、把持側ロボットが位置姿勢を変更した場合であっても、作業対象の原点位置を追従する（補正する）ことができる。したがって、位置姿勢が変更された作業対象上の教示点の補正を実行することができる。
【０１０２】
実施の形態８．
上述した実施の形態で示した方法を、ロボット外部に固定された２Ｄカメラによるビジュアルフィードバックの校正に利用してもよい。
以下、図１０を参照しながら、ロボット外部に固定されたカメラの校正について説明する。図１０において、ロボット外部に固定されたカメラの光軸と、撮像対象が置かれた平面（以下、「撮像平面」と称する）の垂線とは、通常は一致していない。
【０１０３】
このとき、図１０の光軸よりも右側は、画素あたりの撮像平面の距離が長くなり、光軸よりも左側は、画素あたりの撮像平面の距離が短くなる。また、通常、ロボットと２Ｄカメラとの校正では、画素数とロボット座標系での距離とが校正され、画像中心を境にした点対象の線型歪みは無視されるので、この歪みがビジュアルフィードバック時の誤差原因となる。ここで、この光軸と撮像平面の垂線との不一致に起因する歪みを補正するためには、光軸と撮像平面の垂線との傾きを計測する必要がある。
【０１０４】
そこで、カメラ座標系と撮像平面の垂線方向とを、ロボット座標系の基で計測することにより、２つの座標系の傾きを算出して補正する。補正は、カメラ座標系の基で画像に対して実行されるので、カメラ座標系の基での撮像平面の垂線方向が算出できれば十分である。
【０１０５】
具体的には、まず、カメラ座標系をロボット座標系の基で算出する。すなわち、カメラ本体の直方体部分に対して、上記実施の形態１に示した方法を用いて、カメラ座標系を算出する。このとき、原点位置は必要ないので、計測および算出は必要ない。なお、レンズに直方体部分がある場合には、そちらを利用してもよい。
【０１０６】
次に、撮像平面の垂線方向を、ロボット座標系の基で算出する。すなわち、撮像平面に対して、上記実施の形態１に示した方法を用いて、撮像平面の垂線を算出する。このとき、垂線方向の軸周りの回転方向や原点位置は必要ないので、計測および算出は必要ない。
これにより、カメラ座標系と撮像平面の垂線との傾きが算出されたので、これを用いて画像補正を実行することができる。なお、カメラ画像の傾き補正は既知なので、詳細な説明は省略する。
【０１０７】
以上のように、実施の形態８によれば、２Ｄカメラの光軸と撮像平面の垂線との傾きに起因する、画像中心を境にした点対象の線型歪みを補正することができるので、２Ｄカメラによるビジュアルフィードバックの高精度化を実現することができる。
【０１０８】
実施の形態９．
上記実施の形態８では、カメラ座標系を計測する際に、カメラ本体やレンズの直方体部分を用いていたが、これに限定されず、カメラ画像を併用してもよい。すなわち、校正に適した直方体部分がない場合には、上記実施の形態１に示した方法では、カメラの光軸周りの回転方向を計測することができない。そこで、カメラ画像内の特徴点を用いて代用する。なお、カメラの光軸方向をロボット座標系で算出するまでは、上記実施の形態７と同様である。
【０１０９】
次に、カメラの撮像範囲内に適当なマーカを設置してカメラで撮像する。マーカは、例えば２つの×印である。続いて、撮像された画像から、×印の中心点を繋ぐ方向を、カメラ座標系の基で算出する。一方で、ロボットハンド１５の同一点を、マーカの×印の中心点に接触させて、２つの×印の中心位置を計測する。次に、×印の中心点を繋ぐ方向を、ロボット座標系の基で算出する。
【０１１０】
これにより、×印の中心点を繋ぐ方向がカメラ座標系の基と、ロボット座標系の基とで得られたので、２つの方向から、カメラ座標系をロボット座標系で算出する。これ以降の校正は、上記実施の形態８と同様である。
【０１１１】
なお、マーカは、２つの×印に限定されず、直線であってもよく、直線内の任意の２点から角度を求めればよい。また、マーカは、固定された立方体であってもよく、立方体の１つの直線を撮像して、直線の方向をカメラ座標系の基で計測する。一方、上記実施の形態１に示したように、ロボットハンド１５の１直線を立方体の１つの直線に２回接触させて、立方体の直線の方向を、ロボット座標系の基で計測する。
【０１１２】
以上のように、実施の形態９によれば、カメラ本体やレンズに、校正に適した直方体部分がない場合にも、実施の形態７と同様の効果を得ることができる。
【０１１３】
実施の形態１０．
上記実施の形態８では、２Ｄカメラの光軸と撮像平面の垂線との傾きに起因する、画像中心を境にした点対象の線型歪みを、画像補正によって解決した。しかしながら、これに限定されず、ビジュアルフィードバック時のロボットの移動量を用いて補正してもよい。
【０１１４】
すなわち、カメラによっては、画像補正を行えない場合や、別途計算機を必要とする場合がある。そこで、カメラ側の処理は、カメラの光軸と撮像平面の垂線との傾きが一致しているものとして処理を実行し、ロボットがカメラの画像処理部から移動位置を取得したときに、ロボット制御部１２側で移動量の補正を実行する。
【０１１５】
具体的には、カメラ画像の中心位置が、ロボット座標系でどの位置に対応するかを、ロボット制御部１２側であらかじめ取得しておく。続いて、上記実施の形態８に示した方法により求めたカメラ座標系と、カメラからロボット制御部１２に送られる移動位置とから、補正後の移動位置をロボット制御部１２で算出し、ロボットを移動させる。なお、移動量の補正は、ロボット制御部１２以外のハードウェアや、計算機上のプログラムで実施してもよい。
【０１１６】
以上のように、実施の形態１０によれば、カメラ側の処理内容は、補正を実行しない場合と変わらないので、画像補正に対応していないカメラを用いた場合であっても、２Ｄカメラの光軸と撮像平面の垂線との傾きによる歪みを補正した移動を実現することができる。また、画像補正に不精通な現場でも、２Ｄカメラの光軸と撮像平面の垂線との傾きによる歪みを補正した移動を実現することができる。
【０１１７】
実施の形態１１．
上述した実施の形態で示した方法を用いて、ロボットハンド１５にカメラを取付けたハンドアイ構成に対して校正を実行してもよい。すなわち、カメラの取付け治具の製作誤差や取付け誤差により、カメラ座標系とロボット座標系との関係は設計と異なる。そのため、ビジュアルフィードバック時に、上記実施の形態８で説明したように、２Ｄカメラの光軸と撮像平面の垂線との傾きに起因する歪みによる影響が起きる。
【０１１８】
そこで、カメラ座標系を計測することにより、カメラの光軸と撮像平面の垂線とが一致する姿勢で撮像することが可能になり、歪みによる影響を解消することができる。
ここで、カメラ座標系の計測は、上記実施の形態３と同様に、外部に固定された直方体を用いることによって実行される。なお、上記実施の形態８と同様に、原点位置は必要ないので、計測および算出は必要ない。また、光軸周りの回転は、上記実施の形態９と同様に実行してもよい。また、撮像平面の座標系の検出は、上記実施の形態１と同様である。
【０１１９】
以上のように、実施の形態１１によれば、ハンドアイにおいて、カメラの光軸と撮像平面の垂線とが一致する姿勢で撮像が可能になり、２Ｄカメラの光軸と撮像平面の垂線との傾きに起因する歪みによる影響を解消することができ、２Ｄカメラによるビジュアルフィードバックの高精度化を実現することができる。
【０１２０】
実施の形態１２．
上述した実施の形態で示した方法を、ロボットとカメラとの校正において、校正を行った平面と作業対象２０の撮像面との高さの違いを補正することに用いてもよい。
以下、図１１を参照しながら、校正を行った平面と作業対象２０の撮像面との高さの違いの補正について説明する。
【０１２１】
図１１において、一般的に、ロボットとカメラとの校正は、撮像平面上に置かれた平らなマーカを用いて実行される。ここで、作業対象２０の高さが、カメラと撮像平面との距離と比較して高い場合には、作業対象２０の位置が、カメラ光軸から実際よりも遠くに認識される。そこで、撮像平面からの高さにあわせて、画素あたりのロボット座標系の距離を補正する。
【０１２２】
まず、撮像平面上でマーカを用いてカメラとロボットとを校正し、画素あたりのロボット座標系の距離を算出する。これは、既知の技術である。続いて、適当な作業台を用意し、作業台上で、上記実施の形態９と同様にカメラとマーカとを用いてカメラとロボットとの校正を実行し、画素あたりのロボット座標系の距離を算出する。
【０１２３】
次に、上記実施の形態１と同様に、撮像平面の垂線に対してロボットハンド１５の向きをそろえて、接触位置を算出する。また、作業台に対しても、同様の姿勢のまま、接触位置を算出する。続いて、ツール座標系の基で撮像平面の高さと作業台との高さを比較して、作業台の高さを、ロボット座標系の基で算出する。
これにより、撮像平面からの高さと、画素あたりのロボット座標系の距離の拡大率とが算出される。
【０１２４】
なお、実際に作業を行う際には、作業対象２０の撮像面の高さを計測し、撮像平面からの高さと、画素あたりのロボット座標系の距離の拡大率とから、作業対象２０の撮像面の高さでの画素あたりのロボット座標系の距離を算出する。また、上記の説明では、撮像平面に対してロボットの姿勢を整えたが、カメラ光軸に対してロボットの姿勢を整えてもよい。
【０１２５】
以上のように、実施の形態１２によれば、ロボットとカメラとを校正した平面と、作業対象２０の撮像面の高さとが異なる場合に、画素あたりのロボット座標系の距離が異なることを補正することにより、ビジュアルフィードバックの精度を向上させることができる。
【０１２６】
実施の形態１３．
上記実施の形態３では、ロボットの設置平面に置かれた直方体を用いてロボットハンド１５の校正を実行している。しかしながら、ロボットハンド１５の校正を始める前に、上記実施の形態１で示した方法を用いて、直方体のワーク座標系を求めた上で校正を実行してもよい。
【０１２７】
この実施の形態１３は、上記実施の形態３に示した方法において、ロボット設置面を直方体のワーク座標系に変えることによって実現される。
【０１２８】
以上のように、実施の形態１３によれば、直方体のワーク座標系を基にロボットハンドの校正を実行することにより、ロボット設置面が歪んでいる場合や、直方体がロボット設置面と平行な面に固定されていない場合であっても、上記実施の形態３と同等の効果を得ることができる。
【０１２９】
実施の形態１４．
上述した実施の形態では、作業対象２０上のワーク座標系Ｘ−Ｙ平面内に写像したときに、ワーク座標系の座標軸（Ｘ軸またはＹ軸）と平行で、かつ互いに平行でない（直交する）、作業対象２０上の異なる２直線部分を利用して、作業対象２０の原点位置を算出した。
【０１３０】
しかしながら、これに限定されず、作業対象２０上のワーク座標系Ｘ−Ｙ平面内に写像したときに、ワーク座標系の座標軸（Ｘ軸またはＹ軸）と平行になる作業対象２０上の１直線部分と、この直線部分と平行でない作業対象２０上の１直線部分との計２直線部分を利用して、作業対象２０の原点位置を算出してもよい。
【０１３１】
まず、作業対象のＺ軸周りの回転量を算出し、ワーク座標系を算出するまでは、上記実施の形態１と同様である。続いて、上記実施の形態１でＺ軸周りの回転量を算出するために用いた作業対象２０の直線部分の１点に対して、ロボットハンド１５の直線部分を接触させることにより、上記実施の形態１と同様に位置を計測する。また、同様に、作業対象２０のもう一方の直線部分の２点に対して、ロボットハンド１５の直線部分を接触させることにより、作業対象２０の直線部分のＺ軸周りの回転量をワーク座標系の基で算出する。
【０１３２】
次に、この直線部分にロボットハンド１５の直線部分が垂直に接触する姿勢にロボットを移動させ、接触させて位置を計測する。これにより、２つの直線の位置と方向とが算出される。これらより、２直線をワーク座標系Ｘ−Ｙ平面内に写像した直線の位置と方向とが算出され、２直線の交点を作業対象２０の原点とする。なお、Ｚ方向に関しては、上記実施の形態１と同様である。
【０１３３】
以上のように、実施の形態１４によれば、作業対象に直交する２直線部分がない場合であっても、上述した実施の形態と同様の効果を得ることができる。
【０１３４】
実施の形態１５．
上述した実施の形態において、接触判定は、全てロボット本体１１の手首に取り付けられた力覚センサ１４の入力を用いて実行していたが、これに限定されず、他のセンサを用いて接触判定を実行してもよい。
【０１３５】
ここで、接触センサについては、既知のものが多数存在するので、詳細な説明は省略する。接触センサをロボット本体１１の手首に取り付けることにより、上述した実施の形態と同様の効果を得ることができる。また、ロボットとは反対側の、ロボットに接触される側に力覚センサ１４を含む接触センサを取り付けた場合も、上述した実施の形態と同様の効果を得ることができる。あるいは、接触を検知するのではなく、距離センサやラインセンサ等の非接触型センサで一定の位置にあることを検知しても、上述した実施の形態と同様の効果を得ることができる。
【０１３６】
なお、これら接触判定を実行するセンサは、ロボットが実現可能な最小移動量でも、接触を判断することができる精度を有することが望ましい。または、これらのセンサは、減速機のバックラッシュ等によって決まるロボットの位置決め精度よりも小さい移動量でも、接触を判断することができる精度を有することが望ましい。
【０１３７】
以上のように、実施の形態１５によれば、力覚センサ１４が搭載されていないロボットシステムにおいても、上述した実施の形態と同様の効果を得ることができる。
【０１３８】
実施の形態１６．
上述した実施の形態では、実運転用のロボットハンド１５を介して接触を判定してきたが、これに限定されず、校正専用のハンドや、校正専用の治具を把持または取付けすることにより、接触を判定してもよい。
【０１３９】
ここで、校正専用のハンドや治具を用いることにより、校正作業における位置姿勢の制限を解除することができる場合がある。また、校正専用のハンドや治具の側に接触判定用のセンサを取り付けることにより、接触判定用のセンサを、他の設備等と共有することができる。
【０１４０】
以上のように、実施の形態１６によれば、校正専用のハンドや治具を用いることにより、これまで説明してきた各実施の形態を利用可能な場面を増やすことができる。また、接触判定用のセンサを、他の設備等と共有することができる。
【０１４１】
実施の形態１７．
上記実施の形態８において、ロボットと、指矩やスコヤ等の安価で垂直が得られる治具との校正を用いて、ビジュアルフィードバック作業を補正してもよい。
【０１４２】
２Ｄビジョンセンサであるか３Ｄビジョンセンサであるかを問わず、ビジュアルフィードバックを利用する場合には、立上時に、作業対象２０を撮像および認識し、撮像および認識した作業対象２０に対して、ロボットが作業する位置姿勢を教示する。ここで、ビジョンセンサの交換や修理等を行い、カメラ座標系とロボット座標系との校正が変化した場合には、作業対象２０の撮像および認識と、作業位置の教示とを再度行う必要がある。
【０１４３】
そこで、指矩やスコヤ等のＬ型治具を用意し、Ｌ型治具の垂直部分に作業対象２０を押し付けた状態で、作業対象２０に撮像および認識と、作業位置の教示とを実行する。このとき、上記実施の形態２に示した方法を用いて、Ｌ型治具と作業対象２０との位置関係を算出しておく。
【０１４４】
その後、カメラ座標系とロボット座標系との校正が変化した場合には、上記実施の形態２に示した方法を用いて、作業対象２０に対する教示位置を補正し、さらに治具に押し付けた作業対象２０をビジョンセンサで撮像および認識する。なお、Ｌ型治具は、対象とする設備に固定されている必要はなく、補正が必要になったときに、設備内の適当な位置に設置されればよい。
【０１４５】
以上のように、実施の形態１７によれば、カメラ座標系とロボット座標系の校正が変化した場合であっても、作業対象に対する教示を省くことができる。
【０１４６】
実施の形態１８．
これまで説明してきた各実施の形態の全て、または一部を組み合わせてもよい。
例えば、上記実施の形態３で示した方法において、ロボットとロボットハンド１５との校正を実行する。これにより、ロボットハンド１５の先端面中心の位置姿勢が算出されるとともに、ロボットハンド１５の大きさ（実施の形態３で示した距離Ｄ）を算出することができる。
【０１４７】
さらに、上記実施の形態１で示した方法において、ロボットと作業対象２０との校正を実行する。これにより、ロボットハンド１５の大きさが算出されているので、上記実施の形態１で説明した、作業対象２０の原点位置のオフセット量を補正することができる。したがって、作業対象２０の四隅等の特定の場所の位置姿勢を、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができる。また、これにＣＡＤデータ等の設計データを組み込むことにより、作業対象２０上の作業点を算出することができる。
【０１４８】
以上のように、実施の形態１８によれば、ロボットと作業対象とを校正する手段を組み合わせることにより、世界座標系で得られている設計データ等をロボット座標系に変換することができ、ロボットの調整に流用することができる。また、これにより、例えば、作業対象上の各作業点への教示を省略することができる。
【０１４９】
実施の形態１９．
上述した実施の形態で示した方法を、３Ｄビジョンセンサの校正に用いてもよい。
まず、ある直方体の位置姿勢を、上述した実施の形態１の方法を用いて、ロボット座標系の基で計測する。続いて、同じ直方体の位置姿勢を、３Ｄビジョンセンサで計測する。最後に、２つの計測結果から、座標変換行列を計算して校正が完了する。
【０１５０】
このとき、直方体の姿勢だけを用いて、ロボット座標系と３Ｄビジョンセンサの座標系との座標軸の方向だけを校正してもよい。
ここで、３Ｄビジョンセンサで直方体の姿勢を検出する際には、ロボットで計測したのと同様に、面を計測してその法線方向を、および直線から法線方向周りの回転量を計測することが望ましい。
【０１５１】
以上のように、実施の形態１９によれば、面や線を用いるので、点を基準に校正する方法と比較して、校正の精度を向上させることができる。
【符号の説明】
【０１５２】
１１  ロボット本体、１２  ロボット制御部、１３  ティーチングボックス、１４  力覚センサ、１５  ロボットハンド、２０  作業対象。
【図１】
0005618770.tif 000003
【図２】
0005618770.tif 000004
【図３】
0005618770.tif 000005
【図４】
0005618770.tif 000006
【図５】
0005618770.tif 000007
【図６】
0005618770.tif 000008
【図７】
0005618770.tif 000009
【図８】
0005618770.tif 000010
【図９】
0005618770.tif 000011
【図１０】
0005618770.tif 000012
【図１１】
0005618770.tif 000013