説明

ロボットの校正装置および校正方法

【課題】ロボットの位置決め精度と同等の精度で作業対象とロボットとの校正を実行することができるとともに、校正作業を効率化させることができるロボットの校正装置および校正方法を得る。
【解決手段】ロボットと作業対象20との校正を実行するロボットの校正装置であって、ロボットハンド15と作業対象20との接触を判定する力覚センサ14と、ロボットハンド15と作業対象20との接触時におけるロボットの位置姿勢を取得する位置取得部と、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象20の姿勢をロボット座標系で算出する姿勢算出部と、姿勢算出部で算出された作業対象20の姿勢にロボットを移動させる駆動部と、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象20の位置を算出する位置算出部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、例えば複数の可動軸を有し、位置姿勢を変更可能な垂直多関節型ロボットと作業対象との校正を実行するロボットの校正装置および校正方法に関する。
【背景技術】
【0002】
一般的に、産業用ロボット(以下、基本的に「ロボット」と略称する)は、10μmの精度で位置決めを実行可能であることが知られている。この位置決め精度は、ロボットの各関節に搭載されたサーボモータのエンコーダ値と、ロボットの内部パラメータ(例えば、リンク長等)とで定義される座標系(以下、「ロボット座標系」と称する)において実現される。
【0003】
ここで、ロボット座標系は、サーボモータのエンコーダ値の誤差やロボットの内部パラメータ(リンク長等)の誤差等により、ロボット外部の機器で計測した座標系(以下、「世界座標系」と称する)とは異なるものとなる。特に、垂直多関節型ロボットについて、ロボット座標系を直交系で捉えた場合、世界座標系の基から見たロボット座標系は、非線形な歪みをもって観測される。
【0004】
この歪みによる位置決め誤差は、ロボットの位置姿勢が大きく変化しないような限られた空間においては、減速機のバックラッシュ等による誤差と比較して十分に小さい。しかしながら、ロボットの位置姿勢が大きく変化する空間においては、減速機のバックラッシュ等による誤差と比較して無視できない大きさとなる。
【0005】
すなわち、世界座標系から見て、減速機のバックラッシュ等によって決まる位置決め精度と同等の精度でロボットを動作させるためには、ロボットの位置姿勢が変化する一定の空間毎に、ロボット座標系と世界座標系とを校正する必要がある。
【0006】
ところが、3次元計測器等は非常に高価であり、かつ作業空間内の世界座標系を計測することは困難なので、実際には、作業対象や外部センサ等が有する座標系に対して、ロボット座標系を校正するのが一般的である。このとき、この校正作業は、多くの場合、作業点毎の教示作業として実行されるので、座標系の違いが意識されることは少なく、座標系の校正は実施されてこなかった。
【0007】
ここで、作業点が少ない場合には、座標系の校正(作業対象毎の教示)と座標系を含まない作業点毎の校正(一点一点の教示)とでは、校正(教示)作業時間の差は小さい。しかしながら、作業点が多い場合には、校正作業時間の差が顕著となる。すなわち、複数の工程をこなすロボットで、作業点毎の校正を実行する場合には、校正作業時間が長くなり、座標系の校正を実行する場合と比較して、校正作業時間の差が顕著となる。
【0008】
さらに、部品の組み付けや挿入作業については、座標系の差が部品同士のこじれの原因となるので、作業品質に差が出るという問題があった。また、ビジュアルフィードバックを実行する場合には、視野内の全ての点が教示点であると言えるので、この場合も、作業品質に顕著な差が出るという問題があった。
【0009】
そこで、作業対象が設置された平面にロボットの手先を接触させることにより、ロボットと作業対象が設置された平面とを校正する方法が知られている。この方法では、まず、作業対象が設置された平面と同一平面上の3点にロボットの手先を接触させて接触点の位置を計測し、この位置に基づいて平面の傾きおよび高さ位置を測定する。続いて、ロボットの手先に設けられたカメラの光軸を平面と垂直にして平面内のマーカを撮像し、撮像されたマーカの画像を処理してマーカの位置および回転方向を計測する。次に、平面の傾きおよび高さ位置、並びに平面上におけるマーカの位置および回転方向に基づいて、ロボットと作業対象が設置された平面とを校正する(例えば、特許文献1参照)。
【0010】
また、作業点が多い場合の改善策として、ロボットと作業対象とを校正することにより、その他の教示点を補正する方法が知られている。この方法では、作業対象に固定された座標系(以下、「ワーク座標系」と称する)の基での相対位置関係を用いて、ワーク座標系の原点を校正することにより、作業対象上の教示点を補正する。ここで、原点位置の校正は、ロボット座標系における原点、ワーク座標系X軸上の点およびワーク座標系Y軸上の点の位置を得ることによって実行される(例えば、特許文献2参照)。
【0011】
また、接触点の計測を高精度化するために、力覚センサを用いて接触を検知する方法が知られている。この方法では、ロボットの手首部に取り付けられた力覚センサを用いることにより、作業対象との接触を高精度に検知している。また、作業対象とハンドとの傾きを修正することにより、作業対象を高精度に計測するものも知られている(例えば、特許文献3参照)。
【先行技術文献】
【特許文献】
【0012】
【特許文献1】特開2010−076054号公報
【特許文献2】特開昭63−184806号公報
【特許文献3】特開2010−23184号公報
【発明の概要】
【発明が解決しようとする課題】
【0013】
しかしながら、従来技術には、以下のような課題がある。
特許文献1に記載された技術では、カメラによる画像処理を通じてロボットと作業対象との校正を実行している。ここで、カメラ座標系とロボット座標系とを校正する方法は多く知られているものの、ロボットの位置姿勢が大きく変化する場合には、校正の精度がロボットの位置決め精度と比較して低下する。
【0014】
このことは、ロボットの位置姿勢が大きく変化する場合に、ロボット座標系と世界座標系とで歪みが生じることに起因する。そのため、カメラ座標系とロボット座標系との校正を実行した空間付近では、校正の精度がロボットの位置決め精度と比較して著しく低下しない可能性があるが、それ以外の空間では、原理的に校正の精度が低下する。
【0015】
したがって、特許文献1に記載された技術を用いて、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行するためには、ロボットの位置決め精度以上の精度でカメラとロボットとを校正するだけでなく、作業対象付近の空間毎にカメラとロボットとを校正する必要がある。
【0016】
しかしながら、この場合には、作業工数が増えるという問題がある。また、ロボットの位置決め精度と同等の精度でロボットと作業対象とを校正するためには、ロボットの位置決め精度以上の解像度で撮像を実行する必要があり、一般的に、校正専用のカメラ系(カメラやレンズ)を用意する必要があるという問題がある。
【0017】
また、特許文献2に記載された技術では、校正用のデータを取得する際に、ハンド手先位置が校正されていることが前提条件となる。すなわち、ハンド手先位置の校正の誤差がロボットと作業対象との校正の精度に影響を与えるが、ロボットの位置決め精度と同等の精度でハンド手先位置の校正を実行する方法が開示されていないという問題がある。
【0018】
また、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行するためには、各計測点におけるハンドの接触点の位置誤差が、ロボットの位置決め精度と比較して十分に小さいことが必要となる。しかしながら、通常は、ハンドの大きさがロボットの位置決め精度と比較して無視できないほど大きいので、姿勢を変更しながら、ロボットの位置決め精度よりも十分に小さい位置誤差でハンドを接触させることは、実現が困難である。
【0019】
また、校正に用いられる各点の位置を取得する場合には、空間内(X,Y,Z)の3自由度があるが、これら3自由度の全てを、ロボットの位置決め精度と比較して十分に小さい誤差で取得する方法も開示されていないという問題がある。
【0020】
また、特許文献3に記載された技術では、ワーク座標系を算出する方法や、作業対象とハンドとの傾きを修正する方法が開示されていないという問題がある。また、座標系の算出や作業対象とハンドとの傾きの修正は、同一の計測と算出とを繰り返すことによって精度を向上させているが、このことについても集束性について何等開示されていない。いずれにせよ、ロボットの位置決め精度と同等の精度を実現するためには、繰り返し作業が必要となり、校正作業に時間がかかるという問題がある。
【0021】
この発明は、上記のような課題を解決するためになされたものであり、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、校正作業におけるロボットの調整を1自由度に限定することにより、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、計測および算出を最小限にとどめることにより、校正作業を効率化させることができるロボットの校正装置および校正方法を得ることを目的とする。
【課題を解決するための手段】
【0022】
この発明に係るロボットの校正装置は、ロボットと作業対象との校正を実行するロボットの校正装置であって、ロボットと作業対象との接触を判定する接触判定部と、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得する位置取得部と、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出する姿勢算出部と、姿勢算出部で算出された作業対象の姿勢にロボットを移動させる駆動部と、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する位置算出部とを備えたものである。
【0023】
また、この発明に係るロボットの校正方法は、ロボットと作業対象との校正を実行するロボットの校正方法であって、ロボットと作業対象との接触を判定する接触判定ステップと、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得する位置取得ステップと、位置取得ステップで取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出する姿勢算出ステップと、姿勢算出ステップで算出された作業対象の姿勢にロボットを移動させる駆動ステップと、駆動ステップにより移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する位置算出ステップとを備えたものである。
【発明の効果】
【0024】
この発明に係るロボットの校正装置によれば、接触判定部は、ロボットと作業対象との接触を判定し、位置取得部は、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出部は、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動部は、姿勢算出部で算出された作業対象の姿勢にロボットを移動させ、位置算出部は、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
また、この発明に係るロボットの校正方法によれば、接触判定ステップは、ロボットと作業対象との接触を判定し、位置取得ステップは、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出ステップは、位置取得ステップで取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動ステップは、姿勢算出ステップで算出された作業対象の姿勢にロボットを移動させ、位置算出ステップは、駆動ステップにより移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
これにより、サーボモータのエンコーダ値やロボットの内部パラメータ(例えば、リンク長等)とで定義されるロボット座標系とロボット外部の機器で計測した世界座標系との歪みに起因する校正誤差や、想定している計測点にロボットを移動させる際の誤差に起因する校正誤差を排除することができる。
そのため、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、校正作業を効率化させることができる。
【図面の簡単な説明】
【0025】
【図1】この発明の実施の形態1に係るロボットの校正装置を含む産業用ロボットの全体構造を示す構成図である。
【図2】この発明の実施の形態1に係るロボットの校正装置の動作を示すフローチャートである。
【図3】この発明の実施の形態1に係るロボットの校正装置におけるツール座標系を説明するための模式図である。
【図4】この発明の実施の形態1に係るロボットの校正装置におけるツール座標系を説明するための別の模式図である。
【図5】この発明の実施の形態1に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す模式図である。
【図6】この発明の実施の形態3に係るロボットの校正装置のロボットハンドを示す模式図である。
【図7】この発明の実施の形態3に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す模式図である。
【図8】この発明の実施の形態3に係るロボットの校正装置におけるロボットハンドと作業対象との接触状態を示す別の模式図である。
【図9】この発明の実施の形態3に係るロボットの校正装置におけるツール座標系の算出処理を説明するための模式図である。
【図10】この発明の実施の形態8に係るロボットの校正装置におけるロボットとカメラとの関係を示す模式図である。
【図11】この発明の実施の形態12に係るロボットの校正装置におけるカメラと作業対象との関係を示す模式図である。
【発明を実施するための形態】
【0026】
以下、この発明に係るロボットの校正装置の好適な実施の形態につき図面を用いて説明するが、各図において同一、または相当する部分については、同一符号を付して説明する。なお、この発明は、図1に示されるような、手先の位置姿勢を空間的に変更できるロボットを対象とする。
【0027】
実施の形態1.
図1は、この発明の実施の形態1に係るロボットの校正装置を含む産業用ロボットの全体構造を示す構成図である。この産業用ロボットの全体構造は、従来から広く使用されているものである。図1において、この産業用ロボットは、ロボット本体11、ロボット制御部12、ティーチングボックス13、力覚センサ14およびロボットハンド15から構成されている。
【0028】
ロボット本体11は、一般に垂直多関節型ロボットと呼ばれるものである。ロボット制御部12は、ロボット本体11に所望の動作をさせるために、駆動部(図示せず)の制御を実行する。ロボット本体11を動作させるためには、一般的に、所望の動作を定義したロボットプログラムを、例えばパソコン(図示せず)からロボット制御部12に送信するか、または、ティーチングボックス13と呼ばれる手動操作盤を介して、作業者が移動命令をロボット制御部12に送信する。
【0029】
ロボット本体11の手首には、力覚センサ14が取り付けられている。力覚センサ14は、6軸成分(並進3成分および並進方向の軸回りモーメント3成分)を検知することができるもので、従来から使用されているものである。力覚センサ14は、この発明の実施の形態1では、ロボットとの校正対象である作業対象20との接触を判定する接触判定部として機能する。
【0030】
力覚センサ14の先には、ロボットハンド15が取り付けられている。ロボットハンド15は、ロボット本体11が実運転する際に利用されるもので、この発明の実施の形態1においては、物体との接触点と力覚センサ14との間に、接触判定を妨げるほどの弾性体が存在しないことが望ましい。また、ロボットハンド15の形状は、ハンドの根元から先端に向けて直線部分を有することが望ましい。
【0031】
作業対象20は、ロボットとの校正対象であり、その上にロボットの作業点(教示点)が定められるもので、2本の直交する直線部分(詳細については、後述する)を有するものである。また、作業対象20は、ロボットの作業の対象となるワーク自体、またはワークを固定する治具や部品供給部等である。
【0032】
続いて、図2を参照しながら、ロボットと作業対象20との校正、すなわちロボット座標系の基での作業対象20の位置姿勢の計測について説明する。図2に示された処理は、接触判定部として機能する力覚センサ14、ロボットと作業対象20との接触時におけるロボットの位置姿勢を取得する位置取得部、取得された複数のロボットの位置姿勢に基づいて、作業対象20の姿勢をロボット座標系で算出する姿勢算出部、算出された作業対象20の姿勢にロボットを移動させる駆動部、および移動された複数のロボットの位置姿勢に基づいて、作業対象20の位置を算出する位置算出部によって実現される。
【0033】
ここで、位置取得部、姿勢算出部および位置算出部は、ロボット制御部12内に実装されているものとする。なお、位置取得部、姿勢算出部および位置算出部は、1つにまとめられたハードウェアとして実装されてもよいし、それぞれが別々にハードウェアとして実装されてもよい。また、位置取得部、姿勢算出部および位置算出部は、外部の計算機にプログラムとして実装されてもよい。
【0034】
まず、ロボット制御部12は、ロボットハンド15を作業対象20の1つの平面内の3点に接触させる(ステップS21)。この3点は、ロボット座標系の基で同一直線上にはない任意の点とする。また、3点の接触では、ロボットハンド15の姿勢は全て同一とし、接触させる際には、一方向からアプローチするものとする。このとき、ロボットハンド15と作業対象20との接触は、力覚センサ14を用いて判定されるものとし、ロボットが実現可能な最小分解能での移動量、またはロボットが実現可能な位置決め精度よりも小さい移動量で最終的な接触位置を判定する。
【0035】
なお、接触位置の計測は、一度の移動の接触判定で実行される必要はなく、移動速度または移動量を徐々に小さくしながら、移動量で接触と非接触とが切り替わる接触位置を計測することが望ましい。また、最終的な接触位置を計測する際には、移動方向をそろえること、すなわち作業対象20に向かっていく方向で移動させるか、作業対象20から離れていく方向で移動させるかをそろえることが望ましい。
【0036】
力覚センサ14が、ロボットハンド15が接触位置に移動したことを判定すると、位置取得部は、ロボットの現在位置を取得する(ステップS22)。このとき、接触点の位置を取得する必要はなく、ロボットの手先位置姿勢に影響を与える全アクチュエータよりも先端側に固定された点の位置を取得すればよい。
【0037】
一般的には、取得する位置として、標準の制御点であるハンド等のエンドエフェクタが取り付けられるフランジ面や、ロボットハンド15の手先位置(通常は、正確な手先位置からずれている)が考えられる。この位置は、3点の接触位置計測において変更しないこととする。また、移動量で接触と非接触とが切り替わる接触位置ではなく、移動量で接触と非接触とが切り替わる非接触位置であってもよい。いずれにせよ、接触位置または非接触位置は、3点の位置計測において変更しないこととする。
【0038】
ここで、取得した3点のロボット座標系の基での位置(X,Y,Z)をそれぞれP1、P2およびP3とする。この発明の実施の形態1では、座標系にかかわらず、位置を3次元の直交座標系(X,Y,Z)で表すこととする。これ以降、位置姿勢といった座標値は、全てロボット座標系の基で固定された特定の座標系で表現される。この座標系は、一般的には、ロボットの据え付け位置に固定された座標系であり、ベース座標系と称される。
【0039】
複数位置におけるロボット座標系の基での位置姿勢から、ロボット座標系の基での作業対象20の姿勢を算出する姿勢算出部は、v1=P2−P1、v2=P3−P1、v3=v1×v2を算出する。なお、記号「×」は、ベクトルのクロス積を示し、v3は、v1およびv2と直交する方向を向くベクトルとなる。
【0040】
続いて、姿勢算出部は、事前に登録された作業対象20に接触させるロボットハンド15の向きとベクトルv3の方向とを一致させるロボットの姿勢M1を算出する(ステップS23)。このとき、ロボットハンド15の向きとは、ロボットハンド15上に固定された適当な座標系(以下、「ツール座標系」と称する)の基での方向を示している。なお、例えば、図3に示されるように、特殊な形状のロボットハンド15では、ロボットハンド取り付け位置(制御点)からロボットハンド15先端への方向と、ロボットハンド15の向きとは異なる。
【0041】
しかしながら、ここでは、座標軸の向きさえそろえばいいので、図4に示されるように、ツール座標系の原点位置を、ロボットハンド取り付け位置等の適当な位置としてもよい。また、ツール座標系の方向は、ロボットハンド15の設計図等からあらかじめ取得されているものとする。なお、実現される最終的な精度への影響は少ないので、ロボットの位置決め精度と同等の精度で、ツール座標系の方向を取得する必要はない。ただし、後述するように、ロボットの位置決め精度と同等の精度でツール座標系の方向を取得してもよい。
【0042】
次に、ロボット制御部12は、周りに干渉物がない位置で、ロボットの姿勢を姿勢M1に変更する(ステップS24)。これによって、ロボットハンド15の向きが、作業対象20の平面に対して垂直になる。
【0043】
続いて、ロボット制御部12は、図5に示されるように、作業対象20の平面に対して垂直になっているロボットハンド15の直線部分を、対象ワークの直線部分の2点に接触させる(ステップS25)。2点の接触では、ロボットハンド15の姿勢は互いに同一とし、接触させる際には、一方向からアプローチするものとする。接触判定については、3点の接触の場合と同様である。このとき、作業対象20の平面の垂直方向において、ロボットハンド15の位置を厳密に一致させる必要はない。
【0044】
力覚センサ14が、ロボットハンド15が作業対象20とぎりぎり接触する位置に移動したことを判定すると、位置取得部は、ロボットの現在位置を取得する(ステップS26)。この場合の現在位置も、3点の接触の場合と同様に、2点の接触位置計測中に、変更されていない制御点等の位置を取得すればよい。
【0045】
ここで、取得された3点のロボット座標系の基での位置(X,Y,Z)をそれぞれP4およびP5とする。また、位置P4およびP5は、ロボット座標系からツール座標系の位置P4tおよびP5tに変換される。ツール座標系は、ロボットハンド15に固定された座標系である。実際には、ロボットハンド15のロボットへの取り付け位置および方向は、既知のものとし、ロボット座標系でのロボットハンド取り付け位置の姿勢から算出される座標系である。なお、ツール座標系の座標軸方向が重要であり、ツール座標系の原点位置は、適当な位置であってよい。
【0046】
また、ここで、ツール座標系での位置P*tの位置を(X*t,Y*t,Z*t)とし、作業対象20の平面の垂直方向をツール座標系のZ軸方向とする。なお、説明を簡略化するために、|X5t−X4t|≧|Y5t−Y4t|、X5t≧X4tとする。このとき、姿勢算出部は、次式(1)で表されるαについて、−αだけツール座標系の基でZ軸周りにロボットハンド15を回転させた姿勢M2を算出する(ステップS27)。
【0047】
【数1】

【0048】
すると、ロボットの姿勢がM2のとき、ツール座標系の座標軸の方向が、作業対象20の座標系の座標軸の方向と一致する。なお、作業対象20の座標系とは、作業対象20に固定された座標系であり、作業対象20の平面に垂直な方向をZ軸方向とし、作業対象20の直線部分の直線方向がX軸方向となる座標系(以下、「ワーク座標系」と称する)とする。ただし、ツール座標系およびワーク座標系の各座標軸(X,Y,Z)の対応と正負とは、必ずしも一致しない。
【0049】
次に、ロボット制御部12は、周りに干渉物がない位置で、ロボットの姿勢を姿勢M2に変更する(ステップS28)。これによって、ツール座標系の座標軸の方向とワーク座標系の座標軸の方向とが一致する。
【0050】
続いて、ロボット制御部12は、ワーク座標系X−Y平面内に写像したときにワーク座標系の座標軸(X軸またはY軸)と平行で、かつ互いに平行でない(直交する)、作業対象20上の異なる2直線部分のそれぞれ1点に、作業対象20の平面に対して垂直になっているロボットハンド15の直線部分を接触させる。また、同時に、ロボット制御部12は、作業対象20のワーク座標系X−Y平面と平行な面に対して、ロボットハンド15を、ワーク座標系と方向が一致しているツール座標系の基でZ方向に移動させながら接触させる(ステップS29)。
【0051】
このとき、ロボットハンド15と作業対象20との接触は、力覚センサ14を用いて判定され、位置取得部によって、それぞれ位置P6、P7およびP8として取得される。この場合の現在位置の取得は、上述した場合と同様に、3点の接触位置計測中に、変更されていない制御点等の位置を取得すればよい。
【0052】
次に、位置算出部は、取得された位置P6、P7およびP8を、上述した場合と同様に、ワーク座標系と方向が一致しているツール座標系の位置P6t、P7tおよびP8tに変換し、位置P6がツール座標系X軸と平行な直線との接触位置である場合、(X7t,Y6t,Z8t)を作業対象20の原点位置として算出する(ステップS30)。一方、位置P6がツール座標系Y軸と平行な直線との接触位置である場合、(X6t,Y7t,Z8t)を作業対象20の原点位置として算出する。
【0053】
これにより、作業対象20の座標軸の方向および原点位置といったワーク座標系が、サーボモータのエンコーダ値およびロボットの内部パラメータ(リンク長等)で定義されるロボット座標系の基で、ロボットの位置決め精度と同等の精度で算出される。
【0054】
この方法によれば、位置P1、P2およびP3の計測では、ロボットハンド15の姿勢が同一であり、かつ作業対象20の同一平面内の接触なので、ロボットハンド15の接触位置は同一となる。また、力覚センサ14を接触判定部として用いることにより、接触位置の計測を、ロボットの位置決め精度と同等の精度で実行することができる。これにより、作業対象20の平面の垂線方向が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【0055】
また、位置P4およびP5の計測では、計測された平面の垂線方向と、ロボットハンド15の直線部の方向とを一致させた上で、ロボットハンド15の直線部が作業対象20の直線部に接触される。これにより、位置P4およびP5における作業対象20とロボットハンド15との接触位置が、作業対象20の垂線方向に多少ずれたとしても、作業対象20のワーク座標系の座標軸方向が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【0056】
さらに、位置P6、P7およびP8の計測では、作業対象20のワーク座標系とロボットハンド15の座標系とを一致させた上で、計測が実行される。これにより、作業対象20の位置姿勢が変更された場合であっても、位置P6、P7およびP8とロボットハンド15との接触位置関係が、ワーク座標系の原点位置を算出するのに必要な部分において常に一定となるので、作業対象20の原点位置が、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出される。
【0057】
ただし、作業対象20の原点位置は、ロボットハンド15の大きさに起因するオフセットを含むこととなる。
すなわち、最終的に、作業対象20のワーク座標系の座標軸の方向と原点位置とを、ロボット座標系の基で、ロボットの位置決め精度と同等の精度で算出することができる。
【0058】
以上のように、実施の形態1によれば、接触判定部は、ロボットと作業対象との接触を判定し、位置取得部は、ロボットと作業対象との接触時におけるロボットの位置姿勢を取得し、姿勢算出部は、位置取得部で取得された複数のロボットの位置姿勢に基づいて、作業対象の姿勢をロボット座標系で算出し、駆動部は、姿勢算出部で算出された作業対象の姿勢にロボットを移動させ、位置算出部は、駆動部により移動された複数のロボットの位置姿勢に基づいて、作業対象の位置を算出する。
これにより、サーボモータのエンコーダ値やロボットの内部パラメータ(例えば、リンク長等)とで定義されるロボット座標系とロボット外部の機器で計測した世界座標系との歪みに起因する校正誤差や、想定している計測点にロボットを移動させる際の誤差に起因する校正誤差を排除することができる。
そのため、ロボットと作業対象とを校正する際に、カメラやハンド手先位置といった外部機器の校正を必要とせず、ロボットの位置決め精度と同等の精度でロボットと作業対象との校正を実行することができるとともに、校正作業を効率化させることができるロボットの校正装置および校正方法を得ることができる。
【0059】
実施の形態2.
上記実施の形態1で示したロボットと作業対象20との校正を利用することにより、ロボットの位置決め精度と同等の精度で、教示点の補正を実行することができる。教示点の補正は、ロボットの修理や交換が行われた場合や、同等設備の立ち上げや設備レイアウトの変更時等に利用される。
【0060】
すなわち、ロボットのモータ等を修理したり交換したりすると、ロボット座標系にずれが発生するので、補正が必要になる。また、ロボットを交換した場合には、ロボットの個体差や据え付け位置のずれが発生するので、補正が必要になる。また、同様に、同等設備を立ち上げた場合にも補正が必要になる。また、当然ながら、設備内のレイアウトを変更した場合にも補正が必要になる。
【0061】
教示点の補正は、補正基の教示点座標、補正基の作業対象20の位置姿勢、および補正対象の作業対象20の位置姿勢を用いて実現される。なお、補正は、作業対象20毎に実行され、作業対象20の原点座標から教示点座標への変換行列を用いて実現される。また、教示点の補正は、図1に示されたロボット制御部12内に実装された変換行列算出部および座標変換部により実行される。
【0062】
以下、補正の手順について説明する。まず、正常に稼働しているロボット設備において、上述した実施の形態1の方法を用いて、補正基の作業対象20の原点座標を算出する。なお、原点座標とは、位置および姿勢で表され、位置は上記実施の形態1に示されたものであり、姿勢はロボット座標系の基でベース座標系から見たワーク座標系を示している。
【0063】
次に、変換行列算出部は、算出された原点座標から、補正基の作業対象20上の補正基の教示点座標への変換行列を算出する。続いて、補正対象の作業対象20に対して、上記実施の形態1の方法を用いて、原点座標を算出する。最後に、座標変換部は、補正対象の作業対象20の原点座標に対して、算出された変換行列により座標変換を実行し、補正された教示点を得る。
【0064】
以上のように、実施の形態2によれば、ロボット座標系の基でロボットの位置決め精度と同等の精度で計測した作業対象の位置姿勢を基に補正を実行するので、教示点の補正を、ロボット座標系の基でロボットの位置決め精度と同等の精度で実行することができる。また、補正は、作業対象毎に実行されるので、ロボットの修理や交換はもとより、同等設備の立ち上げ、ロボットの種類変更、設備レイアウトの変更、または同一作業対象を増やした場合等にも補正を実行することができる。
【0065】
実施の形態3.
上記実施の形態1、2において、校正の作業対象20をロボットハンド15としてもよい。この場合には、ロボットハンド15を単純な直方体として捉え、ロボットハンド15の先端中心の位置姿勢をロボット座標系で算出する。
【0066】
以下、ロボットとロボットハンド15との校正について説明する。図6は、ロボットハンド15を先端側からみた模式図である。ロボットハンド15の校正は、固定された直方体にロボットハンド15を接触させることにより実行される。すなわち、上記実施の形態1の作業対象20とロボットハンド15との関係が逆になっている。
【0067】
ロボットとロボットハンド15との校正は、まず、ロボット外部に固定された直方体の角に対して、ロボットハンド15の先端面(図6の斜線部)の3点を接触させ、接触する位置を計測する。接触位置の計測は、上記実施の形態1と同様である。3点の接触位置から、上記実施の形態1と同様にロボットハンド15の先端面の垂線方向を算出することができるので、算出された垂線方向がベース座標系の鉛直下向きになる姿勢を算出して移動する。
【0068】
次に、図7に示されるように、固定された直方体の直線部分にロボットハンド15側面の平面部の2点を接触させる。図7では、直方体の前面左側の直線を、ロボットハンド15の側面に接触させている。2点の接触位置から、上記実施の形態1と同様にロボットハンド15先端面の垂線方向回りの回転量が算出される。
以上より、ロボットハンド15の先端面に固定された座標軸の方向が、ロボット座標系の基で算出される。
【0069】
続いて、ロボットハンド15の先端面の中心位置を算出する。ここでは、説明のために、固定された直方体に対して、下記の計測が可能となる適当な姿勢をとり、そのときのロボットハンド15の先端面に固定された座標系を基本ツール座標系PTとする。基本ツール座標系PTは、ロボットハンド15の根元からロボットハンド15の先端に向かう方向をZ軸方向とし、基本ツール座標系PTの基での位置P*PTの位置を(X*PT,Y*PT,Z*PT)とする。基本ツール座標系PTの原点位置は一定であればよく、適当な位置であってよい。
【0070】
次に、基本ツール座標系PTの基でのX軸方向のロボットハンド15先端面の中心位置を算出する。図8に示されるように、ロボットハンド15を基本ツール座標系PTの基でのX軸方向に移動させ、ロボットハンド15側面の平面部を、固定された直方体の直線部に接触させる。このときの移動方向は、X軸方向+側および−側の何れであってもよい。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP9とする。
【0071】
続いて、基本ツール座標系PTのZ軸の軸周りにロボットハンド15を180°回転させ、下記の動作が可能な位置にロボットを移動させる。次に、ロボットハンド15を基本ツール座標系PTの基でのX軸方向に移動させ、上述した面とは対面となるロボットハンド15側面の平面部を、直方体の上記と同一の直線部に接触させる。このときの移動方向は、位置P9の計測時と同じ方向とする。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP10とする。
【0072】
このとき、現在の制御点から基本ツール座標系PTのX軸方向に(X10PT−X9PT)/2だけ移動した位置が、基本ツール座標系PTのX軸方向のロボットハンド15先端面の中心位置となる。
【0073】
同様にして、基本ツール座標系PTの基でのY軸方向のロボットハンド15先端面の中心位置を算出する。ロボットハンド15を基本ツール座標系PTの基でのY軸方向に移動させ、ロボットハンド15側面の平面部を、固定された直方体の直線部に接触させる。このときの移動方向は、Y軸方向+側および−側の何れであってもよい。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP11とする。
【0074】
続いて、基本ツール座標系PTのZ軸の軸周りにロボットハンド15を180°回転させ、下記の動作が可能な位置にロボットを移動させる。次に、ロボットハンド15を基本ツール座標系PTの基でのY軸方向に移動させ、上述した面とは対面となるロボットハンド15側面の平面部を、直方体の上記と同一の直線部に接触させる。このときの移動方向は、位置P11の計測時と同じ方向とする。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP12とする。
【0075】
このとき、現在の制御点から基本ツール座標系PTのY軸方向に(Y12PT−Y11PT)/2だけ移動した位置が、基本ツール座標系PTのY軸方向のロボットハンド15先端面の中心位置となる。
以上より、基本ツール座標系PTのZ軸方向以外のロボットハンド15先端面の中心位置が算出される。
【0076】
最後に、制御点からロボットハンド15先端面までの距離が算出される。まず、制御点を、基本ツール座標系PTのXPT−YPT平面に写像したとき、ロボットハンド15先端面の中心位置になる位置に設定する。次に、適当なロボット外部の平面とロボットハンド15先端面とが平行になり、かつ以下の計測が可能な位置姿勢にロボットを移動させる。このときのロボットハンド15に固定された座標系を基本ツール座標系PTとする。
【0077】
このとき、ロボットの設置面を用いるのであれば、算出されたロボットハンド15に固定された座標系から、姿勢を算出することができる。また、それ以外の面を用いる場合には、上記実施の形態1で示した方法でロボット外部の平面の座標系を算出して、ツール座標系と組み合わせて姿勢を算出してもよい。また、ロボットの接地面を用いる場合でも、同様に、上記実施の形態1に示した方法で、下記の計測で用いられる周辺の平面の座標系を算出してもよい。
【0078】
続いて、位置姿勢から、ロボットハンド15の姿勢を一定にしたまま、ロボットハンド15と平面とを接触させて、接触位置を取得する。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP13とする。
【0079】
次に、ロボットハンド15を、ロボットハンド15に固定された座標系の基でY軸の軸周りにθ1だけ回転させる。このとき、θ1は、0°よりも大きく90°よりも小さい角度であり、下記の計測が可能な、できるだけ大きい角度が望ましく、例えば30°である。このときのθ1の回転方向は、Y軸周り+側および−側の何れであってもよい。
【0080】
続いて、ロボットハンド15の姿勢を一定にしたまま、ロボット外部の平面にロボットハンド15を接触させて、接触位置を取得する。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP14とする。
【0081】
同様にして、ロボットハンド15を、ロボットハンド15に固定された座標系の基でY軸の軸周りにθ2だけ回転させる。このとき、θ2は、0°よりも大きく90°−θ1よりも小さい角度であり、θ1と同じ角度であることが望ましい。このときのθ2の回転方向は、θ1と同じ方向である。ただし、回転方向は、互いに異なってもよく、その場合には、θ1≠θ2、かつ2・θ1≠θ2となる必要があり、さらに、θ2は、0°よりも大きく90°+θ1よりも小さい角度であり、好ましくは、1.5・θ1=θ2または3・θ1=θ2である。
【0082】
続いて、ロボットハンド15の姿勢を一定にしたまま、ロボット外部の平面にロボットハンド15を接触させて、接触位置を取得する。接触位置は、上記実施の形態1と同様に判定および計測され、その位置をP15とする。
【0083】
次に、図9に示されるように、a=Z13PT−Z14PT、b=Z13PT−Z15PT、θ3=θ1+θ2として、位置取得点(通常は、制御点と一致する)からロボットハンド15先端面までの距離をTとし、ロボットハンド15先端面の中心点からツール座標系の基でX軸方向のロボットハンド15先端面の端までの距離をDとすると、次式(2)が成り立つ。
【0084】
T=Tcosθ1+Dsinθ1+a=Tcosθ3+Dsinθ3+b (2)
【0085】
ここで、式(2)の連立方程式をTについて解くことにより、制御点からロボットハンド15先端面までの距離を算出することができる。また、式(2)の連立方程式をDについて解くことにより、ロボットハンド15先端面の中心点からツール座標系の基でX軸方向のロボットハンド15先端面の端までの距離を算出することができる。
【0086】
なお、X軸周りでこの方法を実行することにより、ロボットハンド15先端面の中心点からツール座標系の基でY軸方向のロボットハンド15先端面の端までの距離を算出することができる。このとき、Tを既知とすれば、接触点の計測回数を低減することができる。
【0087】
以上のように、実施の形態3によれば、ロボットハンド先端面の中心位置を、ロボット座標系の基で算出することができる。これにより、ロボット座標系の基でロボットの位置決め精度と同等の精度でロボットハンド先端面の中心位置が得られるので、ロボットとロボットハンドとを、ロボット座標系の基でロボットの位置決め精度と同等の精度で校正することができる。また、ロボットハンド先端面の中心点からツール座標系の基でX軸方向およびY軸方向のロボットハンド先端面の端までの距離を、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができる。
【0088】
実施の形態4.
上述した実施の形態で示した方法を、複数のロボットの協調作業向けの校正に用いてもよい。1つの作業対象20に対して、複数のロボットが協調して作業する場合がある。例えば、ロボット単体の可搬重量に対して作業対象20が重い場合に、複数のロボットの協調作業で作業対象20を運搬する場面がある。このとき、各ロボットが作業対象20のワーク座標系を精確に把握していないと、作業対象20やロボットに過大な負荷がかかり、作業対象20やロボットの破損などを引き起こす。
【0089】
そこで、上記実施の形態1に示した方法を用いて、各ロボットが作業対象20のワーク座標系を個別に算出し、ワーク座標系の基で移動経路を設定する。例えば、作業対象20の把持位置について、各ロボットそれぞれで教示を実行し、それ以降の各ロボットは、各ロボット固有のロボット座標系の基でのワーク座標系に従って動作する。
【0090】
このとき、ロボットハンド15の形状により、ワーク座標系の原点位置がロボット間で異なることとなる。しかしながら、把持位置で現物あわせを実行しているので、問題にはならない。また、それ以降の各ロボットの動きは、各ロボット固有のロボット座標系の基でのワーク座標系に従っているので、作業対象20やロボットに過大な負荷はかからない。
【0091】
以上のように、実施の形態4によれば、各ロボットは、ワーク座標系をロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができ、ワーク座標系の基で動作を設定するので、運搬途中で作業対象やロボットに過大な負荷がかかることを防止することができる。
【0092】
実施の形態5.
上述した実施の形態で示した方法を用いて、複数のロボット同士の間で、協調作業向けの校正を実行してもよい。すなわち、一方のロボットが作業対象20を把持して位置姿勢を変更し、他方のロボットが作業対象20に対して作業を実行する協調作業において、把持側ロボットのロボットハンド15と作業側ロボットとの校正を実行する。校正の方法は、上記実施の形態1と同様である。
【0093】
以上のように、実施の形態5によれば、把持側ロボットが作業対象の位置姿勢を変更した場合であっても、作業側ロボットが把持側ロボットのロボットハンドのワーク座標系(ロボットハンド)を、把持側ロボットの移動量から追従することにより、作業対象の姿勢を追従することができる。
【0094】
実施の形態6.
上記実施の形態5では、ロボットハンド15に対してのみ校正を実行したが、これに限定されず、さらに作業対象20に対して校正を実行してもよい。上述したように、ロボットハンド15との校正のみで、姿勢変更を追従する(補正する)ことはできる。
【0095】
しかしながら、把持側ロボットのロボットハンド15に固定された座標系と、作業対象20に固定された座標系との間に大きな乖離がある場合、追従基(補正基)となる最初の姿勢を教示することが困難となる。そのため、上記実施の形態1に示した方法を用いて、作業側ロボットと把持された状態の作業対象20との校正を実行し、続いて、上記実施の形態5に示した方法を用いて、作業側ロボットと把持側ロボットのロボットハンド15との校正を実行する。
【0096】
以上のように、実施の形態6によれば、作業対象の座標系が、ロボット座標系の基でロボットの位置決め精度と同等の精度で分かるので、最初の姿勢における教示作業を簡略化することができる。また、作業対象の位置姿勢が変更された場合であっても、把持側ロボットのロボットハンドの姿勢が分かっているので、姿勢変更を追従する(補正する)ことができ、作業位置姿勢の教示作業において、姿勢あわせを省略することができる。
【0097】
実施の形態7.
上述した実施の形態で示した方法を用いて、作業側ロボットと把持側ロボットの制御点との校正を実行してもよい。すなわち、作業側ロボットと作業対象20との校正ができ、さらに作業側ロボットと把持側ロボットの制御点との校正ができると、把持側ロボットの制御点に対する作業対象20の原点の位置姿勢を、作業側ロボットのロボット座標系の基で算出することができる。そのため、把持側ロボットの位置姿勢が変更された場合であっても、変更後の作業対象20の位置姿勢を算出することができるので、上記実施の形態2と同様に、教示点の補正を実行することができる。
【0098】
具体的には、把持側ロボットが作業対象20を把持した状態で、作業側ロボットが、上記実施の形態1に示した方法を用いて、作業対象20の原点座標を求める。次に、把持側ロボットが作業対象20の位置姿勢を変更し、作業側ロボットが、上記実施の形態1に示した方法を用いて、作業対象20の原点座標を求める。
【0099】
さらに、把持側ロボットが作業対象20の位置姿勢を変更し、作業側ロボットが、上記実施の形態1に示した方法を用いて、作業対象20の原点座標を求めることにより、計3点で原点座標を求める。このとき、3点の変更において、把持側ロボットの制御点から見た制御点の位置と各作業対象20の原点の位置とが、同一平面上にはないものとする。
【0100】
この場合に、把持側ロボットの制御点の3次元座標上の位置に対して、独立である3本の連立方程式が成立する。そのため、この連立方程式を解くことにより、作業対象20の原点から見た把持側ロボットの制御位置を算出することができ、相対位置関係が求められる。また、同時に、作業側ロボットから見た把持側ロボットの座標軸の方向も算出することができる。
【0101】
以上のように、実施の形態7によれば、作業対象の原点から見た把持側ロボットの制御点の位置を算出することができ、相対位置関係が分かるので、把持側ロボットが位置姿勢を変更した場合であっても、作業対象の原点位置を追従する(補正する)ことができる。したがって、位置姿勢が変更された作業対象上の教示点の補正を実行することができる。
【0102】
実施の形態8.
上述した実施の形態で示した方法を、ロボット外部に固定された2Dカメラによるビジュアルフィードバックの校正に利用してもよい。
以下、図10を参照しながら、ロボット外部に固定されたカメラの校正について説明する。図10において、ロボット外部に固定されたカメラの光軸と、撮像対象が置かれた平面(以下、「撮像平面」と称する)の垂線とは、通常は一致していない。
【0103】
このとき、図10の光軸よりも右側は、画素あたりの撮像平面の距離が長くなり、光軸よりも左側は、画素あたりの撮像平面の距離が短くなる。また、通常、ロボットと2Dカメラとの校正では、画素数とロボット座標系での距離とが校正され、画像中心を境にした点対象の線型歪みは無視されるので、この歪みがビジュアルフィードバック時の誤差原因となる。ここで、この光軸と撮像平面の垂線との不一致に起因する歪みを補正するためには、光軸と撮像平面の垂線との傾きを計測する必要がある。
【0104】
そこで、カメラ座標系と撮像平面の垂線方向とを、ロボット座標系の基で計測することにより、2つの座標系の傾きを算出して補正する。補正は、カメラ座標系の基で画像に対して実行されるので、カメラ座標系の基での撮像平面の垂線方向が算出できれば十分である。
【0105】
具体的には、まず、カメラ座標系をロボット座標系の基で算出する。すなわち、カメラ本体の直方体部分に対して、上記実施の形態1に示した方法を用いて、カメラ座標系を算出する。このとき、原点位置は必要ないので、計測および算出は必要ない。なお、レンズに直方体部分がある場合には、そちらを利用してもよい。
【0106】
次に、撮像平面の垂線方向を、ロボット座標系の基で算出する。すなわち、撮像平面に対して、上記実施の形態1に示した方法を用いて、撮像平面の垂線を算出する。このとき、垂線方向の軸周りの回転方向や原点位置は必要ないので、計測および算出は必要ない。
これにより、カメラ座標系と撮像平面の垂線との傾きが算出されたので、これを用いて画像補正を実行することができる。なお、カメラ画像の傾き補正は既知なので、詳細な説明は省略する。
【0107】
以上のように、実施の形態8によれば、2Dカメラの光軸と撮像平面の垂線との傾きに起因する、画像中心を境にした点対象の線型歪みを補正することができるので、2Dカメラによるビジュアルフィードバックの高精度化を実現することができる。
【0108】
実施の形態9.
上記実施の形態8では、カメラ座標系を計測する際に、カメラ本体やレンズの直方体部分を用いていたが、これに限定されず、カメラ画像を併用してもよい。すなわち、校正に適した直方体部分がない場合には、上記実施の形態1に示した方法では、カメラの光軸周りの回転方向を計測することができない。そこで、カメラ画像内の特徴点を用いて代用する。なお、カメラの光軸方向をロボット座標系で算出するまでは、上記実施の形態7と同様である。
【0109】
次に、カメラの撮像範囲内に適当なマーカを設置してカメラで撮像する。マーカは、例えば2つの×印である。続いて、撮像された画像から、×印の中心点を繋ぐ方向を、カメラ座標系の基で算出する。一方で、ロボットハンド15の同一点を、マーカの×印の中心点に接触させて、2つの×印の中心位置を計測する。次に、×印の中心点を繋ぐ方向を、ロボット座標系の基で算出する。
【0110】
これにより、×印の中心点を繋ぐ方向がカメラ座標系の基と、ロボット座標系の基とで得られたので、2つの方向から、カメラ座標系をロボット座標系で算出する。これ以降の校正は、上記実施の形態8と同様である。
【0111】
なお、マーカは、2つの×印に限定されず、直線であってもよく、直線内の任意の2点から角度を求めればよい。また、マーカは、固定された立方体であってもよく、立方体の1つの直線を撮像して、直線の方向をカメラ座標系の基で計測する。一方、上記実施の形態1に示したように、ロボットハンド15の1直線を立方体の1つの直線に2回接触させて、立方体の直線の方向を、ロボット座標系の基で計測する。
【0112】
以上のように、実施の形態9によれば、カメラ本体やレンズに、校正に適した直方体部分がない場合にも、実施の形態7と同様の効果を得ることができる。
【0113】
実施の形態10.
上記実施の形態8では、2Dカメラの光軸と撮像平面の垂線との傾きに起因する、画像中心を境にした点対象の線型歪みを、画像補正によって解決した。しかしながら、これに限定されず、ビジュアルフィードバック時のロボットの移動量を用いて補正してもよい。
【0114】
すなわち、カメラによっては、画像補正を行えない場合や、別途計算機を必要とする場合がある。そこで、カメラ側の処理は、カメラの光軸と撮像平面の垂線との傾きが一致しているものとして処理を実行し、ロボットがカメラの画像処理部から移動位置を取得したときに、ロボット制御部12側で移動量の補正を実行する。
【0115】
具体的には、カメラ画像の中心位置が、ロボット座標系でどの位置に対応するかを、ロボット制御部12側であらかじめ取得しておく。続いて、上記実施の形態8に示した方法により求めたカメラ座標系と、カメラからロボット制御部12に送られる移動位置とから、補正後の移動位置をロボット制御部12で算出し、ロボットを移動させる。なお、移動量の補正は、ロボット制御部12以外のハードウェアや、計算機上のプログラムで実施してもよい。
【0116】
以上のように、実施の形態10によれば、カメラ側の処理内容は、補正を実行しない場合と変わらないので、画像補正に対応していないカメラを用いた場合であっても、2Dカメラの光軸と撮像平面の垂線との傾きによる歪みを補正した移動を実現することができる。また、画像補正に不精通な現場でも、2Dカメラの光軸と撮像平面の垂線との傾きによる歪みを補正した移動を実現することができる。
【0117】
実施の形態11.
上述した実施の形態で示した方法を用いて、ロボットハンド15にカメラを取付けたハンドアイ構成に対して校正を実行してもよい。すなわち、カメラの取付け治具の製作誤差や取付け誤差により、カメラ座標系とロボット座標系との関係は設計と異なる。そのため、ビジュアルフィードバック時に、上記実施の形態8で説明したように、2Dカメラの光軸と撮像平面の垂線との傾きに起因する歪みによる影響が起きる。
【0118】
そこで、カメラ座標系を計測することにより、カメラの光軸と撮像平面の垂線とが一致する姿勢で撮像することが可能になり、歪みによる影響を解消することができる。
ここで、カメラ座標系の計測は、上記実施の形態3と同様に、外部に固定された直方体を用いることによって実行される。なお、上記実施の形態8と同様に、原点位置は必要ないので、計測および算出は必要ない。また、光軸周りの回転は、上記実施の形態9と同様に実行してもよい。また、撮像平面の座標系の検出は、上記実施の形態1と同様である。
【0119】
以上のように、実施の形態11によれば、ハンドアイにおいて、カメラの光軸と撮像平面の垂線とが一致する姿勢で撮像が可能になり、2Dカメラの光軸と撮像平面の垂線との傾きに起因する歪みによる影響を解消することができ、2Dカメラによるビジュアルフィードバックの高精度化を実現することができる。
【0120】
実施の形態12.
上述した実施の形態で示した方法を、ロボットとカメラとの校正において、校正を行った平面と作業対象20の撮像面との高さの違いを補正することに用いてもよい。
以下、図11を参照しながら、校正を行った平面と作業対象20の撮像面との高さの違いの補正について説明する。
【0121】
図11において、一般的に、ロボットとカメラとの校正は、撮像平面上に置かれた平らなマーカを用いて実行される。ここで、作業対象20の高さが、カメラと撮像平面との距離と比較して高い場合には、作業対象20の位置が、カメラ光軸から実際よりも遠くに認識される。そこで、撮像平面からの高さにあわせて、画素あたりのロボット座標系の距離を補正する。
【0122】
まず、撮像平面上でマーカを用いてカメラとロボットとを校正し、画素あたりのロボット座標系の距離を算出する。これは、既知の技術である。続いて、適当な作業台を用意し、作業台上で、上記実施の形態9と同様にカメラとマーカとを用いてカメラとロボットとの校正を実行し、画素あたりのロボット座標系の距離を算出する。
【0123】
次に、上記実施の形態1と同様に、撮像平面の垂線に対してロボットハンド15の向きをそろえて、接触位置を算出する。また、作業台に対しても、同様の姿勢のまま、接触位置を算出する。続いて、ツール座標系の基で撮像平面の高さと作業台との高さを比較して、作業台の高さを、ロボット座標系の基で算出する。
これにより、撮像平面からの高さと、画素あたりのロボット座標系の距離の拡大率とが算出される。
【0124】
なお、実際に作業を行う際には、作業対象20の撮像面の高さを計測し、撮像平面からの高さと、画素あたりのロボット座標系の距離の拡大率とから、作業対象20の撮像面の高さでの画素あたりのロボット座標系の距離を算出する。また、上記の説明では、撮像平面に対してロボットの姿勢を整えたが、カメラ光軸に対してロボットの姿勢を整えてもよい。
【0125】
以上のように、実施の形態12によれば、ロボットとカメラとを校正した平面と、作業対象20の撮像面の高さとが異なる場合に、画素あたりのロボット座標系の距離が異なることを補正することにより、ビジュアルフィードバックの精度を向上させることができる。
【0126】
実施の形態13.
上記実施の形態3では、ロボットの設置平面に置かれた直方体を用いてロボットハンド15の校正を実行している。しかしながら、ロボットハンド15の校正を始める前に、上記実施の形態1で示した方法を用いて、直方体のワーク座標系を求めた上で校正を実行してもよい。
【0127】
この実施の形態13は、上記実施の形態3に示した方法において、ロボット設置面を直方体のワーク座標系に変えることによって実現される。
【0128】
以上のように、実施の形態13によれば、直方体のワーク座標系を基にロボットハンドの校正を実行することにより、ロボット設置面が歪んでいる場合や、直方体がロボット設置面と平行な面に固定されていない場合であっても、上記実施の形態3と同等の効果を得ることができる。
【0129】
実施の形態14.
上述した実施の形態では、作業対象20上のワーク座標系X−Y平面内に写像したときに、ワーク座標系の座標軸(X軸またはY軸)と平行で、かつ互いに平行でない(直交する)、作業対象20上の異なる2直線部分を利用して、作業対象20の原点位置を算出した。
【0130】
しかしながら、これに限定されず、作業対象20上のワーク座標系X−Y平面内に写像したときに、ワーク座標系の座標軸(X軸またはY軸)と平行になる作業対象20上の1直線部分と、この直線部分と平行でない作業対象20上の1直線部分との計2直線部分を利用して、作業対象20の原点位置を算出してもよい。
【0131】
まず、作業対象のZ軸周りの回転量を算出し、ワーク座標系を算出するまでは、上記実施の形態1と同様である。続いて、上記実施の形態1でZ軸周りの回転量を算出するために用いた作業対象20の直線部分の1点に対して、ロボットハンド15の直線部分を接触させることにより、上記実施の形態1と同様に位置を計測する。また、同様に、作業対象20のもう一方の直線部分の2点に対して、ロボットハンド15の直線部分を接触させることにより、作業対象20の直線部分のZ軸周りの回転量をワーク座標系の基で算出する。
【0132】
次に、この直線部分にロボットハンド15の直線部分が垂直に接触する姿勢にロボットを移動させ、接触させて位置を計測する。これにより、2つの直線の位置と方向とが算出される。これらより、2直線をワーク座標系X−Y平面内に写像した直線の位置と方向とが算出され、2直線の交点を作業対象20の原点とする。なお、Z方向に関しては、上記実施の形態1と同様である。
【0133】
以上のように、実施の形態14によれば、作業対象に直交する2直線部分がない場合であっても、上述した実施の形態と同様の効果を得ることができる。
【0134】
実施の形態15.
上述した実施の形態において、接触判定は、全てロボット本体11の手首に取り付けられた力覚センサ14の入力を用いて実行していたが、これに限定されず、他のセンサを用いて接触判定を実行してもよい。
【0135】
ここで、接触センサについては、既知のものが多数存在するので、詳細な説明は省略する。接触センサをロボット本体11の手首に取り付けることにより、上述した実施の形態と同様の効果を得ることができる。また、ロボットとは反対側の、ロボットに接触される側に力覚センサ14を含む接触センサを取り付けた場合も、上述した実施の形態と同様の効果を得ることができる。あるいは、接触を検知するのではなく、距離センサやラインセンサ等の非接触型センサで一定の位置にあることを検知しても、上述した実施の形態と同様の効果を得ることができる。
【0136】
なお、これら接触判定を実行するセンサは、ロボットが実現可能な最小移動量でも、接触を判断することができる精度を有することが望ましい。または、これらのセンサは、減速機のバックラッシュ等によって決まるロボットの位置決め精度よりも小さい移動量でも、接触を判断することができる精度を有することが望ましい。
【0137】
以上のように、実施の形態15によれば、力覚センサ14が搭載されていないロボットシステムにおいても、上述した実施の形態と同様の効果を得ることができる。
【0138】
実施の形態16.
上述した実施の形態では、実運転用のロボットハンド15を介して接触を判定してきたが、これに限定されず、校正専用のハンドや、校正専用の治具を把持または取付けすることにより、接触を判定してもよい。
【0139】
ここで、校正専用のハンドや治具を用いることにより、校正作業における位置姿勢の制限を解除することができる場合がある。また、校正専用のハンドや治具の側に接触判定用のセンサを取り付けることにより、接触判定用のセンサを、他の設備等と共有することができる。
【0140】
以上のように、実施の形態16によれば、校正専用のハンドや治具を用いることにより、これまで説明してきた各実施の形態を利用可能な場面を増やすことができる。また、接触判定用のセンサを、他の設備等と共有することができる。
【0141】
実施の形態17.
上記実施の形態8において、ロボットと、指矩やスコヤ等の安価で垂直が得られる治具との校正を用いて、ビジュアルフィードバック作業を補正してもよい。
【0142】
2Dビジョンセンサであるか3Dビジョンセンサであるかを問わず、ビジュアルフィードバックを利用する場合には、立上時に、作業対象20を撮像および認識し、撮像および認識した作業対象20に対して、ロボットが作業する位置姿勢を教示する。ここで、ビジョンセンサの交換や修理等を行い、カメラ座標系とロボット座標系との校正が変化した場合には、作業対象20の撮像および認識と、作業位置の教示とを再度行う必要がある。
【0143】
そこで、指矩やスコヤ等のL型治具を用意し、L型治具の垂直部分に作業対象20を押し付けた状態で、作業対象20に撮像および認識と、作業位置の教示とを実行する。このとき、上記実施の形態2に示した方法を用いて、L型治具と作業対象20との位置関係を算出しておく。
【0144】
その後、カメラ座標系とロボット座標系との校正が変化した場合には、上記実施の形態2に示した方法を用いて、作業対象20に対する教示位置を補正し、さらに治具に押し付けた作業対象20をビジョンセンサで撮像および認識する。なお、L型治具は、対象とする設備に固定されている必要はなく、補正が必要になったときに、設備内の適当な位置に設置されればよい。
【0145】
以上のように、実施の形態17によれば、カメラ座標系とロボット座標系の校正が変化した場合であっても、作業対象に対する教示を省くことができる。
【0146】
実施の形態18.
これまで説明してきた各実施の形態の全て、または一部を組み合わせてもよい。
例えば、上記実施の形態3で示した方法において、ロボットとロボットハンド15との校正を実行する。これにより、ロボットハンド15の先端面中心の位置姿勢が算出されるとともに、ロボットハンド15の大きさ(実施の形態3で示した距離D)を算出することができる。
【0147】
さらに、上記実施の形態1で示した方法において、ロボットと作業対象20との校正を実行する。これにより、ロボットハンド15の大きさが算出されているので、上記実施の形態1で説明した、作業対象20の原点位置のオフセット量を補正することができる。したがって、作業対象20の四隅等の特定の場所の位置姿勢を、ロボット座標系の基でロボットの位置決め精度と同等の精度で算出することができる。また、これにCADデータ等の設計データを組み込むことにより、作業対象20上の作業点を算出することができる。
【0148】
以上のように、実施の形態18によれば、ロボットと作業対象とを校正する手段を組み合わせることにより、世界座標系で得られている設計データ等をロボット座標系に変換することができ、ロボットの調整に流用することができる。また、これにより、例えば、作業対象上の各作業点への教示を省略することができる。
【0149】
実施の形態19.
上述した実施の形態で示した方法を、3Dビジョンセンサの校正に用いてもよい。
まず、ある直方体の位置姿勢を、上述した実施の形態1の方法を用いて、ロボット座標系の基で計測する。続いて、同じ直方体の位置姿勢を、3Dビジョンセンサで計測する。最後に、2つの計測結果から、座標変換行列を計算して校正が完了する。
【0150】
このとき、直方体の姿勢だけを用いて、ロボット座標系と3Dビジョンセンサの座標系との座標軸の方向だけを校正してもよい。
ここで、3Dビジョンセンサで直方体の姿勢を検出する際には、ロボットで計測したのと同様に、面を計測してその法線方向を、および直線から法線方向周りの回転量を計測することが望ましい。
【0151】
以上のように、実施の形態19によれば、面や線を用いるので、点を基準に校正する方法と比較して、校正の精度を向上させることができる。
【符号の説明】
【0152】
11 ロボット本体、12 ロボット制御部、13 ティーチングボックス、14 力覚センサ、15 ロボットハンド、20 作業対象。

【特許請求の範囲】
【請求項1】
ロボットと作業対象との校正を実行するロボットの校正装置であって、
前記ロボットと前記作業対象との接触を判定する接触判定部と、
前記ロボットと前記作業対象との接触時における前記ロボットの位置姿勢を取得する位置取得部と、
前記位置取得部で取得された複数の前記ロボットの位置姿勢に基づいて、前記作業対象の姿勢をロボット座標系で算出する姿勢算出部と、
前記姿勢算出部で算出された前記作業対象の姿勢に前記ロボットを移動させる駆動部と、
前記駆動部により移動された複数の前記ロボットの位置姿勢に基づいて、前記作業対象の位置を算出する位置算出部と、
を備えたことを特徴とするロボットの校正装置。
【請求項2】
前記ロボット座標系で算出された前記作業対象の原点の位置姿勢に基づいて、前記作業対象上の教示点への変換行列を算出する変換行列算出部と、
前記ロボット座標系で算出された前記作業対象の原点の位置姿勢に対して、前記変換行列により座標変換を実行する座標変換部と、
をさらに備えたことを特徴とする請求項1に記載のロボットの校正装置。
【請求項3】
前記接触判定部は、前記ロボットのロボットハンドに取り付けられた力覚センサであることを特徴とする請求項1または請求項2に記載のロボットの校正装置。
【請求項4】
前記作業対象が、ロボットハンドであることを特徴とする請求項1から請求項3までの何れか1項に記載のロボットの校正装置。
【請求項5】
前記作業対象が、他のロボットであることを特徴とする請求項1から請求項3までの何れか1項に記載のロボットの校正装置。
【請求項6】
前記作業対象が、カメラであることを特徴とする請求項1から請求項3までの何れか1項に記載のロボットの校正装置。
【請求項7】
ロボットと作業対象との校正を実行するロボットの校正方法であって、
前記ロボットと前記作業対象との接触を判定する接触判定ステップと、
前記ロボットと前記作業対象との接触時における前記ロボットの位置姿勢を取得する位置取得ステップと、
前記位置取得ステップで取得された複数の前記ロボットの位置姿勢に基づいて、前記作業対象の姿勢をロボット座標系で算出する姿勢算出ステップと、
前記姿勢算出ステップで算出された前記作業対象の姿勢に前記ロボットを移動させる駆動ステップと、
前記駆動ステップにより移動された複数の前記ロボットの位置姿勢に基づいて、前記作業対象の位置を算出する位置算出ステップと、
を備えたことを特徴とするロボットの校正方法。
【請求項8】
前記ロボット座標系で算出された前記作業対象の原点の位置姿勢に基づいて、前記作業対象上の教示点への変換行列を算出する変換行列算出ステップと、
前記ロボット座標系で算出された前記作業対象の原点の位置姿勢に対して、前記変換行列により座標変換を実行する座標変換ステップと、
をさらに備えたことを特徴とする請求項7に記載のロボットの校正方法。
【請求項9】
前記作業対象が、ロボットハンドであることを特徴とする請求項7または請求項8に記載のロボットの校正方法。
【請求項10】
前記作業対象が、他のロボットであることを特徴とする請求項7または請求項8に記載のロボットの校正方法。
【請求項11】
前記作業対象が、カメラであることを特徴とする請求項7または請求項8に記載のロボットの校正方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2012−101306(P2012−101306A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−250855(P2010−250855)
【出願日】平成22年11月9日(2010.11.9)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成22年度、独立行政法人新エネルギー・産業技術総合開発機構、「次世代ロボット知能化技術開発プロジェクト 作業知能(生産分野)の開発 作業知能(生産分野)の研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】