(57)【要約】【課題】  ロボットアームの先端に取り付けられた視覚センサの取り付け状態値を決定するロボットアームの視覚センサ補正方法およびコンピュータにロボットアームの先端での視覚センサの取り付け状態値を補正させるコンピュータプログラムを提供する。【解決手段】  ロボット１は、先端（手先）の位置／姿勢を変更可能なロボットアーム２と、ロボットアーム２の先端に取り付けられたロボットハンド３と、ロボットハンド３と同様にロボットアーム２の先端に取り付けられたカメラ４と、カメラ４の情報（カメラ４が取得した画像：カメラ画像）を処理して処理画像を求めるための画像処理部５と、ロボットアーム２の動作目的と画像処理部５の出力（処理画像に基づく信号情報）に応じてロボットアーム２およびロボットハンド３の各関節を駆動・制御するロボット制御部６とを主要構成として含む。【選択図】  図１
2007061979.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することにより前記ロボットアームの先端での前記視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、
前記ロボットアームの移動による前記ロボットアームの先端の移動量を基準座標で特定する移動量特定ステップと、
前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求める画像処理ステップと、
前記移動前後の処理画像に対して前記視覚センサの取り付け状態値の推定値としての仮パラメータを適用して前記移動前後での処理画像を基準座標に座標変換することにより前記移動前後に対するワークの位置変化量を前記仮パラメータに対応させて求める位置変化量抽出ステップと、
前記移動量と前記位置変化量との差を状態差として算出する状態差算出ステップと、
前記仮パラメータを変更して位置変化量抽出ステップを複数回繰り返すことにより複数の前記状態差を求め、複数の前記状態差の中で最小の状態差に対応する前記仮パラメータを視覚センサの取り付け状態値として抽出する状態値抽出ステップと
を備えることを特徴とするロボットアームの視覚センサ補正方法。
【請求項２】
前記画像処理は、ワークの表面の濃淡パターンを用いたパターンマッチングにより前記視覚センサが取得した画像のどの位置にワークの基準位置があるかを抽出するテンプレートマッチングを用いていることを特徴とする請求項１に記載のロボットアームの視覚センサ補正方法。
【請求項３】
前記画像処理は、ワークの表面と前記視覚センサとの間の距離を利用してワークの基準位置を抽出することを特徴とする請求項２に記載のロボットアームの視覚センサ補正方法。
【請求項４】
ワークの表面のデータを予め登録してあることを特徴とする請求項３に記載のロボットアームの視覚センサ補正方法。
【請求項５】
前記視覚センサの取り付け状態値は、前記ロボットアームの先端での前記視覚センサの取り付け角度であることを特徴とする請求項１ないし請求項４のいずれか一つに記載のロボットアームの視覚センサ補正方法。
【請求項６】
前記視覚センサの取り付け状態値は、前記ロボットアームの先端での前記視覚センサの取り付け位置を含むことを特徴とする請求項５に記載のロボットアームの視覚センサ補正方法。
【請求項７】
ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することによりロボットアームの先端での視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、
ロボットアームの移動により基準座標でのロボットアームの先端の移動量を特定する移動量特定ステップと、
前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求める画像処理ステップと、
前記処理画像から移動前後のワークの基準位置をそれぞれ求めて基準位置の変動を位置変動量として抽出する位置変動量抽出ステップと、
前記移動量と前記位置変動量とを比較して比較差を算出する比較差算出ステップと、
前記比較差が所定値の範囲内か否かを判定する判定ステップと
を備え、
前記比較差が所定値の範囲外である場合には請求項１ないし請求項６のいずれか一つに記載のロボットアームの視覚センサ補正方法を適用して前記視覚センサの取り付け状態値を補正すること
を特徴とするロボットアームの視覚センサ補正方法。
【請求項８】
コンピュータに、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することにより前記ロボットアームの先端での前記視覚センサの取り付け状態値を補正させるコンピュータプログラムにおいて、
コンピュータに、前記ロボットアームの移動による前記ロボットアームの先端の移動量を基準座標で特定させる移動量特定ステップと、
コンピュータに、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求めさせる画像処理ステップと、
コンピュータに、前記移動前後の処理画像に対して前記視覚センサの取り付け状態値の推定値としての仮パラメータを適用して前記移動前後での処理画像を基準座標に座標変換することにより前記移動前後に対するワークの位置変化量を前記仮パラメータに対応させて求めさせる位置変化量抽出ステップと、
コンピュータに、前記移動量と前記位置変化量との差を状態差として算出させる状態差算出ステップと、
コンピュータに、前記仮パラメータを変更して位置変化量抽出ステップを複数回繰り返すことにより複数の前記状態差を求め、複数の前記状態差の中で最小の状態差に対応する前記仮パラメータを視覚センサの取り付け状態値として抽出させる状態値抽出ステップと
を実行させることを特徴とするコンピュータプログラム。
【請求項９】
コンピュータに、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することによりロボットアームの先端での視覚センサの取り付け状態値を補正させるコンピュータプログラムにおいて、
コンピュータに、ロボットアームの移動により基準座標でのロボットアームの先端の移動量を特定させる移動量特定ステップと、
コンピュータに、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求めさせる画像処理ステップと、
コンピュータに、前記処理画像から移動前後のワークの基準位置をそれぞれ求めて基準位置の変動を位置変動量として抽出させる位置変動量抽出ステップと、
コンピュータに、前記移動量と前記位置変動量とを比較して比較差を算出させる比較差算出ステップと、
コンピュータに、前記比較差が所定値の範囲内か否かを判定させる判定ステップと
を実行させ、
コンピュータに、前記比較差が所定値の範囲外である場合には請求項８に記載のコンピュータプログラムを実行させて前記視覚センサの取り付け状態値を補正させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、作業対象物（ワーク）を認識するためにロボットアームの先端に取り付けられた視覚センサの取り付け状態値（例えば、取り付け位置、取り付け姿勢など）を補正するロボットアームの視覚センサ補正方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
位置決めされていないワークに対し、カメラを視覚センサとして用い推定したワークの位置あるいは姿勢に基づきワークに対し所定の作業を施すロボットアームは産業用、生活支援用などを中心に広く利用されつつある。
【０００３】
特に、エンドエフェクタ（先端効果器）としてグリッパを含むロボットハンドを搭載したロボットアームシステムで、エンドエフェクタの位置／姿勢をカメラ（視覚センサ）により撮像し、得られた画像を処理して求めたワークの位置／姿勢に対応させてエンドエフェクタの位置／姿勢を変更する技術は「ロボットハンドアイ（Ｈａｎｄ−Ｅｙｅ）」システムとして知られている。また、カメラにより取得した画像に基づいてロボットハンドの位置／姿勢を調整するような制御は、「ビジュアルフィードバック（Ｖｉｓｕａｌ−Ｆｅｅｄｂａｃｋ）」と呼ばれている。
【０００４】
「ロボットハンドアイ」の構成は、エンドエフェクタに対するカメラの取り付け方によって大きく２つに分類することができる。すなわち、カメラがロボットアームなどによって位置／姿勢を変更されるエンドエフェクタの周辺すなわちロボットアームの先端付近に配置されている場合と、カメラがロボットアームの基底付近に配置されておりエンドエフェクタの位置／姿勢とは連動しない場合である。
【０００５】
カメラがロボットアームの基底付近に設置されている場合には、エンドエフェクタの移動とは関係なくワークが配置されるエリア（作業領域）をカメラにより監視しておくことができるので、ロボットアームの動作を巨視的に監視しておくことができる。ただし、ロボットアームの誤差によって生じるエンドエフェクタの位置誤差を吸収するためには、ワークの位置認識だけでは不十分であるため別途エンドエフェクタの位置推定を行わなければならないという問題がある。
【０００６】
ロボットアームの基底付近にカメラが設置されている場合には、カメラによる位置推定結果をロボットアームの手先位置に変換するために用いるキャリブレーション（補正）は、ロボットアームの基底座標系（以下「基底座標系」という。）に対して行えばよい。
【０００７】
他方、カメラがエンドエフェクタの周辺に取り付けられている場合には、カメラはエンドエフェクタに生じる位置誤差要因の影響をエンドエフェクタと同様に受けると考えられるので、エンドエフェクタとワークの位置関係を直接推定することができるという利点がある。なお、エンドエフェクタに生じる位置誤差要因とは、ロボットアームの重力によるたわみ、ロボットアームの関節角度誤差、ロボットアームの組み付け誤差、比例制御のサーボ系を使った場合のサーボオフセット誤差などである。ただし、カメラがエンドエフェクタ付近に取り付けられていることから、ワークに対してエンドエフェクタが作業を行っているときや、作業直後においてはカメラの視野が狭くなる傾向を生じるという問題がある。
【０００８】
ロボットアームのエンドエフェクタ周辺にカメラが設置されている場合には、カメラのキャリブレーションはロボットアームの先端座標系（以下「先端座標系」という。）に対して行う必要がある。
【０００９】
ロボットアームのエンドエフェクタの周辺にカメラが設置されている場合、カメラ（視覚センサ）のキャリブレーション方法として、ロボットアームの先端に取り付けたカメラからジグによって固定され座標が既知の複数の基準点を観測し、ロボットアームとカメラのパラメータを変更してカメラの認識による座標と実際の座標が最小になるまで繰返し収束計算を行うことにより、ロボットアームとカメラのキャリブレーションを同時に行うものが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開平８−２７２４１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来の方法では位置が既知である複数の基準点を設け、基準点を複数のカメラ視点から観測することによりカメラのキャリブレーションを行う必要があったので、キャリブレーション作業はロボットアームの実際の作業とはまったく異なる状況設定においてなされる必要があり、例えばエンドエフェクタ周辺に設置されているカメラに何らかの外力が働くことによりカメラの取り付け状態値（取り付け位置・取り付け姿勢）が変化した場合には、再度キャリブレーション用の状況設定を行う必要があった。
【００１１】
すなわち、カメラのキャリブレーションを行うモードと、ロボットアームがカメラによってワークを撮像した画像を処理して行うビジュアルフィードバックなどの作業モードは、カメラにより撮像して処理する画像処理の対象が異なるものであったため、例えば作業中にカメラ状態の変化が生じることなどについては考慮されていなかった。
【００１２】
また、キャリブレーションに用いる視覚センサの認識対象は、実際の作業対象であるワークとはまったく異なる物体であるため、キャリブレーションでの画像処理の内容と、ビジュアルフィードバックなど実際の作業でのワークに対する画像処理の内容とは、まったく異なるものであった。
【００１３】
したがって、実際の作業対象であるワークの認識を行った場合、画像処理が正確にワークの位置を反映した結果を出力するように画像処理の内容をさらに調整する必要があった。また、この調整を行わない場合は、キャリブレーションが行われていてもワークの認識結果と実際の位置の誤差が吸収されないことから、ロボットアームの作業に支障をきたす恐れがあった。
【００１４】
本発明はこのような状況に鑑みてなされたものであり、ロボットアームの先端を所定の移動量で移動させ、移動の前後それぞれで視覚センサにより取得したワークの画像の処理画像に対して視覚センサの取り付け状態値を不定のパラメータ（複数の仮パラメータ）として各仮パラメータに対応させてワークの画像の位置変化量を求め、ロボットアームの移動量と位置変化量とを比較して求めた複数の状態差の中で最小の状態差に対応する仮パラメータを視覚センサの取り付け状態値として抽出することにより、ロボットアームの先端に取り付けられた視覚センサの取り付け状態値（取り付け位置／取り付け姿勢）を決定するロボットアームの視覚センサ補正方法（およびコンピュータにロボットアームの先端での視覚センサの取り付け状態値を補正させるコンピュータプログラム）を提供することを目的とする。
【００１５】
ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することによりロボットアームの先端での視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、ロボットアームの先端を所定の移動量で移動させ、移動の前後それぞれで視覚センサにより取得したワークの画像の処理画像から求めた基準位置の変動を位置変動量として抽出し、移動量と位置変動量とを比較して算出した比較差が所定値の範囲外である場合には上述したロボットアームの視覚センサ補正方法を適用して視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法（およびコンピュータにロボットアームの先端での視覚センサの取り付け状態値を補正させるコンピュータプログラム）を提供することを他の目的とする。
【課題を解決するための手段】
【００１６】
本発明に係るロボットアームの視覚センサ補正方法は、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することにより前記ロボットアームの先端での前記視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、前記ロボットアームの移動による前記ロボットアームの先端の移動量を基準座標で特定する移動量特定ステップと、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求める画像処理ステップと、前記移動前後の処理画像に対して前記視覚センサの取り付け状態値の推定値としての仮パラメータを適用して前記移動前後での処理画像を基準座標に座標変換することにより前記移動前後に対するワークの位置変化量を前記仮パラメータに対応させて求める位置変化量抽出ステップと、前記移動量と前記位置変化量との差を状態差として算出する状態差算出ステップと、前記仮パラメータを変更して位置変化量抽出ステップを複数回繰り返すことにより複数の前記状態差を求め、複数の前記状態差の中で最小の状態差に対応する前記仮パラメータを視覚センサの取り付け状態値として抽出する状態値抽出ステップとを備えることを特徴とする。
【００１７】
この構成により、実際の作業対象であるワークを用いて視覚センサのキャリブレーションを行うので、キャリブレーションのための画像処理の方法と、ビジュアルフィードバックなどに用いる作業用の画像処理の方法を一致させることができることから、ロボットハンドアイシステムによるロボットアームのカメラキャリブレーション（視覚センサ補正方法）のための労力を大幅に低減でき、ロボットアームの先端に対する視覚センサの位置関係に不確定性がある場合に、ロボットアームの先端に対する視覚センサの位置関係の補正を確実、迅速、容易に行うことが可能となる。
【００１８】
本発明に係るロボットアームの視覚センサ補正方法では、前記画像処理は、ワークの表面の濃淡パターンを用いたパターンマッチングにより前記視覚センサが取得した画像のどの位置にワークの基準位置があるかを抽出するテンプレートマッチングを用いていることを特徴とする。
【００１９】
本発明に係るロボットアームの視覚センサ補正方法では、前記画像処理は、ワークの表面と前記視覚センサとの間の距離を利用してワークの基準位置を抽出することを特徴とする。
【００２０】
本発明に係るロボットアームの視覚センサ補正方法では、ワークの表面のデータを予め登録してあることを特徴とする。
【００２１】
本発明に係るロボットアームの視覚センサ補正方法では、前記視覚センサの取り付け状態値は、前記ロボットアームの先端での前記視覚センサの取り付け角度であることを特徴とする。
【００２２】
本発明に係るロボットアームの視覚センサ補正方法では、前記視覚センサの取り付け状態値は、前記ロボットアームの先端での前記視覚センサの取り付け位置を含むことを特徴とする。
【００２３】
本発明に係るロボットアームの視覚センサ補正方法は、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することによりロボットアームの先端での視覚センサの取り付け状態値を補正するロボットアームの視覚センサ補正方法において、ロボットアームの移動により基準座標でのロボットアームの先端の移動量を特定する移動量特定ステップと、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求める画像処理ステップと、前記処理画像から移動前後のワークの基準位置をそれぞれ求めて基準位置の変動を位置変動量として抽出する位置変動量抽出ステップと、前記移動量と前記位置変動量とを比較して比較差を算出する比較差算出ステップと、前記比較差が所定値の範囲内か否かを判定する判定ステップとを備え、前記比較差が所定値の範囲外である場合には請求項１ないし請求項６のいずれか一つに記載のロボットアームの視覚センサ補正方法を適用して前記視覚センサの取り付け状態値を補正することを特徴とする。
【００２４】
この構成により、予期しない視覚センサの取り付け位置ズレが生じた場合でも速やかに再度視覚センサのキャリブレーションを実行できることから、ロボットアームの操作の安全性、信頼性を向上させることができる。また、視覚センサの取り付け状態の変化を検知し、異常があった場合に視覚センサのキャリブレーションを再度行うことにより、ロボットアームは作業を中断することなく通常の動作に復帰することができるようになる。つまり、ロボットアームはワーク自体を用いて継ぎ目なしに視覚センサのキャリブレーションと実際のビジュアルフィードバック処理の作業を行うことができるようになる。
【００２５】
本発明に係るコンピュータプログラムは、コンピュータに、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することにより前記ロボットアームの先端での前記視覚センサの取り付け状態値を補正させるコンピュータプログラムにおいて、コンピュータに、前記ロボットアームの移動による前記ロボットアームの先端の移動量を基準座標で特定させる移動量特定ステップと、コンピュータに、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求めさせる画像処理ステップと、コンピュータに、前記移動前後の処理画像に対して前記視覚センサの取り付け状態値の推定値としての仮パラメータを適用して前記移動前後での処理画像を基準座標に座標変換することにより前記移動前後に対するワークの位置変化量を前記仮パラメータに対応させて求めさせる位置変化量抽出ステップと、コンピュータに、前記移動量と前記位置変化量との差を状態差として算出させる状態差算出ステップと、コンピュータに、前記仮パラメータを変更して位置変化量抽出ステップを複数回繰り返すことにより複数の前記状態差を求め、複数の前記状態差の中で最小の状態差に対応する前記仮パラメータを視覚センサの取り付け状態値として抽出させる状態値抽出ステップとを実行させることを特徴とする。
【００２６】
本発明に係るコンピュータプログラムは、コンピュータに、ロボットアームの先端に取り付けられた視覚センサによってワークの位置を認識することによりロボットアームの先端での視覚センサの取り付け状態値を補正させるコンピュータプログラムにおいて、コンピュータに、ロボットアームの移動により基準座標でのロボットアームの先端の移動量を特定させる移動量特定ステップと、コンピュータに、前記移動の前後それぞれで前記視覚センサにより取得したワークの画像に対して画像処理を施すことにより移動前後での処理画像を求めさせる画像処理ステップと、コンピュータに、前記処理画像から移動前後のワークの基準位置をそれぞれ求めて基準位置の変動を位置変動量として抽出させる位置変動量抽出ステップと、コンピュータに、前記移動量と前記位置変動量とを比較して比較差を算出させる比較差算出ステップと、コンピュータに、前記比較差が所定値の範囲内か否かを判定させる判定ステップとを実行させ、コンピュータに、前記比較差が所定値の範囲外である場合には請求項８に記載のコンピュータプログラムを実行させて前記視覚センサの取り付け状態値を補正させることを特徴とする。
【発明の効果】
【００２７】
本発明に係るロボットアームの視覚センサ補正方法およびコンピュータプログラムによれば、視覚センサの取り付け状態値として推定値の仮パラメータを適用して演算処理し、実際の移動量と仮パラメータを適用して求めた位置変化量との差が最小となる仮パラメータを視覚センサの取り付け状態値として決定することから、ロボットハンドアイシステムによるロボットアームのカメラキャリブレーション（視覚センサ補正方法）のための労力を大幅に低減でき、ロボットアームの先端に対する視覚センサの位置関係に不確定性がある場合に、ロボットアームの先端に対する視覚センサの位置関係の補正を確実、迅速、容易に行うことが可能となる。
【００２８】
本発明に係るロボットアームの視覚センサ補正方法およびコンピュータプログラムによれば、予期しない視覚センサの取り付け位置ズレが生じた場合でも速やかに再度視覚センサのキャリブレーションを実行できることから、ロボットアームの操作の安全性、信頼性を向上させることができる。つまり、ロボットアームはワーク自体を用いて継ぎ目なしにカメラのキャリブレーションと実際のビジュアルフィードバック処理の作業を行うことができるようになるという効果を奏する。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施の形態を図面に基づいて説明する。
【００３０】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るロボットアームの視覚センサ補正方法を適用するロボットアームの概略ブロック構成を示す要部ブロック図である。
【００３１】
ロボット１は、例えば７関節により先端（手先）の位置／姿勢を変更可能なロボットアーム２と、ロボットアーム２の先端に取り付けられたロボットハンド３と、ロボットハンド３と同様にロボットアーム２の先端に取り付けられたカメラ４と、カメラ４の情報（カメラ４が取得した画像：カメラ画像）を処理して処理画像を求めるための画像処理部５と、ロボットアーム２の動作目的と画像処理部５の出力（処理画像に基づく信号情報）に応じてロボットアーム２およびロボットハンド３の各関節を駆動・制御するロボット制御部６とを主要構成として含む。
【００３２】
なお、ロボット１は、ロボット基底ＢＳに装着してあり、ロボット基底ＢＳは、基準座標としての基底座標系ＸＹＺを画定している。なお、矢符ＰＳは、ロボットアーム２の手先を平行移動（図３参照）する状態を示している。
【００３３】
画像処理部５およびロボット制御部６はカメラ画像入力装置、画像処理用中央演算装置（ＣＰＵ）、モータ制御用中央演算装置（ＣＰＵ）、プログラム格納用メモリ、演算結果一時保存用メモリ、モータサーボ用回路、モータドライバなどで構成される。
【００３４】
画像処理用中央演算装置（ＣＰＵ）、モータ制御用中央演算装置（ＣＰＵ）、プログラム格納用メモリ、演算結果一時保存用メモリなどは、いわゆるコンピュータを構成し、画像処理部５およびロボット制御部６は、コンピュータにより制御する構成としてある。
【００３５】
つまり、本実施の形態に係るロボットアームの視覚センサ補正方法は、プログラム格納用メモリに記録されたコンピュータプログラムをコンピュータ（ＣＰＵを中心部として構成される）に実行させること（いわゆるソフトウエア処理）によって実現することができる。
【００３６】
本実施の形態では、ロボットアーム２の作業として、作業対象物としてのワークＷをロボットハンド３で把持する場合の動作を考える。ワークＷは、例えば茶碗のようなすり鉢状の物体であり、内側の傾斜にはワークＷの識別を可能にするテクスチャＷｔａ、Ｗｔｂ（図２参照）が施されている。
【００３７】
カメラ４はワークＷを例えば矢符Ａの方向（正面視の方向）で撮像することになる。本実施の形態では、ロボットアーム２へのカメラ４の取り付け状態値（取り付け位置／取り付け姿勢）の内で取り付け姿勢（取り付け角度）が未確定な場合のカメラのキャリブレーション方法に関して説明を行うが、取り付け位置が未確定な場合に対しても同様に適用することが可能である。
【００３８】
図２は、ワークを図１の矢符Ａ方向から見た平面図である。
【００３９】
外側に２重実線で表してある外周円Ｗａが、ワークＷの上端部の縁であり、内側に実線で表してある内周円Ｗｂが、ワークＷの底面であり、内周円Ｗｂの中心が内側底面中心Ｗｃとなる。外周円Ｗａと内周円Ｗｂとの間には内側表面があり代表高さＷｈａで示される位置にはテクスチャＷｔａが施され、代表高さＷｈｂで示される位置にはテクスチャＷｔｂが施されている。
【００４０】
ロボット１はワークＷをカメラ４によって撮像し、撮像した内側表面のテクスチャＷｔａ、Ｗｔｂの濃淡値（ワークの表面の濃淡パターン）と、画像処理パラメータを変更しながらアフィン変換したリファレンス画像の濃淡値（ワークの表面の濃淡パターン）の差を画素ごとに加算し、加算値が最小になる画像処理パラメータを画像内のワークＷの位置（ワークＷの基準位置）を表す画像処理パラメータとして出力する画像処理を画像処理部５において行う。
【００４１】
画像処理部５におけるこのような画像処理は「テンプレートマッチング」（テンプレートマッチング法）と呼ばれ、ワークＷの種類（形状、材質など）によらず処理の内容を一律にすることができるため画像処理を簡便に行えるという利点がある。本実施の形態では、テンプレートマッチングによりリファレンス画像（処理画像の特徴として抽出した画像。例えばワークＷの画像）の基準位置がカメラ４によって撮像した画像内においてどの位置にあるかを認識して、どのように移動したかを利用するものとする。
【００４２】
なお、ワークＷの（ワークＷの画像の）基準位置（中心位置、代表位置）は、ワークＷについて任意に設定したものであり、例えばワークＷの外周円Ｗａの中心、内周円Ｗｂの中心（内側底面中心Ｗｃ）、代表高さＷｈａの中心、代表高さＷｈｂの中心など把握しやすい位置、レベルで設定することができる。
【００４３】
カメラ４によって取得した画像内のワークＷ（の位置）を認識する方法として種々の方法が可能であるが、本実施の形態では、画像内のワークＷの表面でのテクスチャＷｔａ、Ｗｔｂの濃淡を特徴（抽出要素）として利用できる、いわゆるテンプレートマッチングを用いる。
【００４４】
テンプレートマッチングによりワークＷの位置を推定することにより、ロボットアーム２はワークＷの特性（形状、模様、位置など）に対応させて画像処理内容を変更する必要がなくなり、処理を一律のアルゴリズムで行うことができるようになるので、ワークＷの種類が増加した場合であっても画像処理のためのアルゴリズム（プログラム）を個別に作成する必要がなくなり、ユーザの作業量を削減することができるようになる。
【００４５】
なお、ワークＷのテクスチャ（Ｗｔａ、Ｗｔｂ）に関する情報（表面の濃淡情報）を用いてカメラ４が取得した画像内のワークＷの位置を推定する場合、カメラ４の位置を移動させると、カメラ４の移動の並進方向成分については、カメラ４から対象テクスチャまでの距離が遠いほど、画像内における対象テクスチャの移動量が小さくなる性質がある。例えば、カメラ４から近いテクスチャＷｔａは画像内で大きく移動するが、カメラ４から遠いテクスチャＷｔｂは画像内での移動は小さくなる。
【００４６】
したがって、ワークＷの表面の模様を一律に扱ってテクスチャ全体をテンプレートとして利用する場合、カメラ４からの距離の遠近とテクスチャの特性によっては画像内のワークＷの位置を正しく推定できない場合がある。つまり、カメラ４からワークＷの表面の模様（対象テクスチャ）までの距離に応じてカメラ画像（以下、単に画像、ワークの画像などとも記載する。）内に映る模様の移動量が異なるためワークＷの中心位置（例えば、底面中心Ｗｃ）を正確に計算できないという問題が生じることがある。
【００４７】
このような問題に対しては、ワークＷの表面のテクスチャＷｔａ、Ｗｔｂそれぞれをある程度まとめて代表高さＷｈａ、代表高さＷｈｂと共にワークＷの表面のデータとして予め登録しておくことにより、画面内のワークＷの基準位置をより正確に推定する（精度良く求める）ことができるようになる。
【００４８】
つまり、テンプレートマッチングという一律の画像処理手法を用いる場合であっても、カメラ４からの距離を計算できるように、事前に例えばワークＷの表面形状などのデータを登録して、ワークＷの表面とカメラ４（視覚センサ）との間の距離（距離情報）を利用してワークＷの基準位置を抽出することにより、ロボットアーム２の先端付近（手先）に取り付けてあるカメラ４のキャリブレーションを高精度に行うことができるようになる。
【００４９】
図３は、本発明の実施の形態１に係るロボットアームの視覚センサ補正方法の処理フローを示すフローチャートである。
【００５０】
なお、ロボット１のロボットアーム２は、事前にキャリブレーションが行われており、ワークＷに対する作業に支障がない程度に手先位置精度が保証されているものとする。例えば、ロボット基底ＢＳからロボットアーム２の先端までの距離が最大５００ｍｍのロボット１で、ロボットアーム２が直径および高さ１００ｍｍ程度のワークＷに対して作業する場合、必要となる手先位置精度は±３ｍｍ程度であり、ロボットアーム２に保証される手先位置精度は±２ｍｍであるとする。このとき、カメラ４に要求されるワークＷの位置認識精度は±１ｍｍ以下である。
【００５１】
ステップＳ１００：
ロボットアーム２の手先（ロボットアーム２の先端）を設定位置（手先位置）に平行移動（図１参照）して、移動前後での移動量を基底座標系で特定する（移動量特定ステップ）。設定位置とはカメラ４のキャリブレーション（補正）を行うための未知の取り付け状態値を精度良く同定するのに必要なロボットアーム２の手先位置を表す。設定位置は、ワークＷがカメラ４の視野の中に入る範囲内で適宜設定することができる。
【００５２】
平行移動は例えば、設定位置Ａ、設定位置Ｂ、設定位置Ｃ、・・・とロボットアーム２の手先を順次移動することにより行う。このとき、移動量は、例えば、設定位置Ａと設定位置Ｂとの差が設定位置Ａから設定位置Ｂへの平行移動のときの移動量となり、設定位置Ｂと設定位置Ｃとの差が設定位置Ｂから設定位置Ｃへの平行移動のときの移動量（平行移動量）となる。つまり、移動量（平行移動量）は、基底座標系での移動前後の間の相対値（移動前後の間の差）で定義される。
【００５３】
キャリブレーションによって同定するロボットアーム２の先端に対するカメラ４の相対位置・相対姿勢を表すパラメータ（取り付け状態値）は最大６（並進方向３、回転方向３）であるが、並進方向に関する誤差（取り付け誤差を含む）は大きな誤差要因にならないとみなせば、同定すべきパラメータは回転方向の３方向の角度となる。これらのパラメータも機構上の設計値と大きく変わることはないという前提に立てば、パラメータを最適化、すなわちカメラ４のキャリブレーションを実行するための時間を大幅に軽減することが可能になる。
【００５４】
したがって、未知の取り付け状態値として、ロボットアーム２の先端に対するカメラ４の例えば取り付け姿勢（取り付け角度）を対象とすることとなり、直交座標系３軸方向に対する回転角度として取扱えば３つのパラメータ（取り付け状態値）を同定することが必要となる。なお、未知の取り付け状態値として取り付け姿勢の他に取り付け位置を対象として含ませることも可能であり、これによりさらに精密な制御が可能となる。
【００５５】
また、上述した３つのパラメータに加えてカメラ４の基準位置でのカメラ４からワークＷの表面の基準位置までの距離をパラメータとすれば、ロボットアーム２の先端の移動によるカメラ４の移動と、それにともなうカメラ４により取得した画像内でのワークＷの基準位置の移動をより正確に推定することができるようになる。
【００５６】
ロボットアーム２の先端を平行移動する場合、例えば２０ｍｍ程度の十分小さい平行移動量であれば、ロボットアーム２に保証される手先位置精度±２ｍｍ（上述）よりも十分小さい数値となる精度が期待できる。その理由は、ロボットアーム２を大きく動かす場合には組み付けやサーボ誤差が大きく影響するが、十分小さい動作（例えば平行移動）ではこの影響は相対的に小さなものとなり無視できる程度に小さくなるためである。
【００５７】
ロボットアーム２の先端の平行移動量が十分な精度で取得できる場合、基準座標としての基底座標系ＸＹＺを用いることから、一度の平行移動について２つの未知数を特定できるので、３つのパラメータを同定するために最小３点の手先位置が必要となる。
【００５８】
ただし、本実施の形態ではより高精度にパラメータの同定（キャリブレーション：補正）ができるように、基底座標系のＸＹＺ各方向に例えば５点ずつ平行移動して、合計１２５点からワークＷを撮像するものとする。
【００５９】
なお、ワークＷの表面高さ（例えば、代表高さＷｈａ、代表高さＷｈｂ、外周円Ｗａの内周円Ｗｂからの高さ）とカメラ４のレンズ面の高さは基底座標系において既知であるとする。基底座標系におけるワークＷの設置面の高さが既知であれば、ワークＷの形状データおよび設置面からカメラ４のレンズまでの高さを計測するだけで良いので比較的容易に求めることが可能である。
【００６０】
ステップＳ１０２：
平行移動（ステップＳ１００）に対応させて、移動前、移動後のそれぞれについてカメラ４を用いてワークＷを含む画像（ワークＷの画像）を取得する。したがって、ステップＳ１００とステップＳ１０２は実質的に並行して行われる。
【００６１】
ステップＳ１０４：
取得した移動前後の各画像に対してテンプレートマッチングによる画像処理を画像処理部５において施すことによりテンプレートマッチング処理済の画像（処理画像、ワークＷの処理画像）を求める（画像処理ステップ）。つまり、ワークＷの位置（基準位置）を認識する。
【００６２】
ステップＳ１０６：
未知の取り付け状態値を求めるために取り付け状態値の推定値としての仮パラメータ（パラメータを同定するために仮に推定したパラメータ。ステップＳ１００参照）を選択する。なお、仮パラメータの選択は、まだ選択されていないパラメータθｘ、θｙ、θｚの組み合わせをひとつ選択することにより行う。
【００６３】
パラメータとはロボットアームの設計上のカメラ取り付け角度などに想定される誤差を加味した範囲内での値である。具体的には、カメラ４の実際の取り付け角度をオイラー角ＸＹＺで記述したときの角度をθｘ、θｙ、θｚとし、設計上の取り付け角度を取り付け角度の初期値θｘ０、θｙ０、θｚ０（例えばそれぞれ１０度、２０度、３０度）とする。また、想定される取り付け誤差を±Δθｘ、±Δθｙ、±Δθｚ（例えば各±２度）と
する。
【００６４】
キャリブレーションの分解能を０．２度であるとすれば推定値（仮パラメータ）θｘ、θｙ、θｚの組み合わせは各方向について２１通り、全部で９２６１通り（=２１×２１×２１通り）存在することになる。
【００６５】
ステップＳ１０８：
選択した仮パラメータを用いて、テンプレートマッチング処理済みの移動前後の処理画像（ステップＳ１０４参照）に対して基準座標としての基底座標系への座標変換を行い、座標変換画像とする。つまり、ワークＷの位置（基準位置）を認識する。移動前後での座標変換画像を相互に比較してワークＷの基準位置の相対位置変化（位置変化量）を求める（位置変化量抽出ステップ）。
【００６６】
ステップＳ１１０：
仮パラメータに対応させて、ステップＳ１００で特定した移動量とステップＳ１０８で求めた位置変化量との差を状態差（比較結果）として算出する（状態差算出ステップ）。
【００６７】
ステップＳ１１２：
状態差をフラッシュメモリなどで構成した演算結果一時保存用メモリ（例えばロボット制御部６に配置）に適宜保存記憶しておく。
【００６８】
ステップＳ１１４：
すべての仮パラメータを選択したか否かを判定する。すべての仮パラメータを選択した場合（ステップＳ１１４：ＹＥＳ）にはステップＳ１１６へ進む。選択しない仮パラメータがある場合（ステップＳ１１４：ＮＯ）にはステップＳ１０６へ戻り、他の仮パラメータに対してステップＳ１０６からステップＳ１１２の処理フローを繰り返す。
【００６９】
なお、ステップＳ１０６からステップＳ１１２の処理フローは、ロボットアーム２の手先位置を移動しカメラ４により画像を取得するステップＳ１００〜Ｓ１０４と並行して行っても良い。ロボットアーム２を安全に移動させ、先端が静止した状態で振れのない画像を取得するためには例えば１秒程度の時間がかかるが、ロボットアーム２を移動するためのモータ回転制御などをハードウェア上に実装すれば、処理の負荷自体は大きくないので、推定値としての仮パラメータを変更（選択）しながら繰り返し行うステップＳ１０６〜Ｓ１１２の処理と同時に行うことによりキャリブレーションの時間を短縮することができる。
【００７０】
ステップＳ１１６：
すべての手先位置に対する処理（ステップＳ１００〜Ｓ１１４）を終了したか否かを判定する。すべての手先位置への平行移動が終了している場合（ステップＳ１１６：ＹＥＳ）はステップＳ１１８へ進む。終了していない場合（ステップＳ１１６：ＮＯ）はステップＳ１００へ戻り、ステップＳ１００からステップＳ１１４の処理フローを繰り返す。
【００７１】
ステップＳ１１８：
ロボット制御部６の演算結果一時保存用メモリに保存しておいた各仮パラメータの組み合わせにおける状態差をすべての手先位置について二乗和として計算し、最小になる仮パラメータの組み合わせを抽出し、最小の状態差に対応する仮パラメータを視覚センサとしてのカメラ４の取り付け状態値として採用し（状態値抽出ステップ）、視覚センサのキャリブレーション（補正）を行う。
【００７２】
上述したとおり本実施の形態では、実際のワークＷを用いてカメラ４のキャリブレーションを行うことから、ロボットアーム２の手先位置にある視覚センサのキャリブレーションを行う補正モードで利用する処理画像と、ビジュアルフィードバックなどの実際の作業を行う実働モードで利用する処理画像に大きな差がなくなり、ワークＷによる影響の生じない正確な補正が可能となる。
【００７３】
つまり、実際の作業対象であるワークＷを用いてカメラ４のキャリブレーションを行うので、キャリブレーションのための画像処理の方法と、ビジュアルフィードバックなどに用いる作業用の画像処理の方法を一致させることができるので、仮に画像処理で誤差が存在するとしても誤差を完全に吸収することが可能となる。
【００７４】
また、ロボットハンドアイシステムによるロボットアーム２のカメラキャリブレーション（視覚センサ補正方法）のための労力を大幅に低減でき、ロボットアーム２の先端に対するカメラ４の位置関係に不確定性がある場合に、ロボットアーム２の先端に対するカメラ４の位置関係の補正を確実、迅速、容易に行うことが可能となる。
【００７５】
ステップＳ１００〜Ｓ１１８の処理は、コンピュータプログラムを適用してコンピュータに実行させることにより、確実で迅速な処理を容易に行うことが可能となる。
【００７６】
＜実施の形態２＞
図４は、本発明の実施の形態２に係るロボットアームの視覚センサ補正方法の処理フローを示すフローチャートである。ロボット１の構成および画像処理のフローは実施の形態１と同様であるので詳細な説明は省略する。
【００７７】
本実施の形態では、ロボットアーム２がビジュアルフィードバックなどによる実働作業を行っている途中で、何らかの原因によりロボットアーム２に取り付けられたカメラ４の取り付け姿勢などの取り付け状態値が変わった場合に、異常を検出するフローおよび異常への対応策としての視覚センサの再度の補正を行うフローを示す。
【００７８】
ステップＳ１４０：
ロボットアーム２はワークＷのおおよその位置をカメラ４の視野内に入れるようにロボットアーム２を移動させた後、カメラ４によってワークＷの画像を取得する。
【００７９】
ステップＳ１４２：
取得した画像に対してワークＷの高さを考慮したテンプレートマッチングによる画像処理を施し、処理画像を求める（画像処理ステップ）。求めた処理画像を基準座標に座標変換することにより移動前のワークＷの基準位置（例えば中心位置）を求める（推定する）。つまり、ワークＷの位置（基準位置）を認識する。
【００８０】
なお、カメラ４は既に実施の形態１で示した視覚センサ補正方法により補正され、取り付け状態値は既に求まっているものとする。
【００８１】
ステップＳ１４４：
ロボットアーム２の手先（ロボットアーム２の先端）を平行移動し、基準座標での移動量を特定する（移動量特定ステップ）。
【００８２】
ステップＳ１４６：
平行移動後のカメラ４の位置からワークＷを含む画像（ワークＷの画像）を取得する。
【００８３】
ステップＳ１４８：
取得した画像に対してテンプレートマッチングによる画像処理を施して処理画像を求める（画像処理ステップ）。求めた処理画像を基準座標に座標変換することにより移動後のワークＷの基準位置を求める（推定する）。つまり、ワークＷの位置（基準位置）を認識する。
【００８４】
仮に処理画像（ステップＳ１４２）でのワークＷの基準位置が所定の範囲に収まっている場合でも、確認のために少なくとも一度はロボットアーム２を平行移動して画像を取得し、画像処理を施すものとする（ステップＳ１４４〜Ｓ１４８）。
【００８５】
なお、ステップＳ１４４〜Ｓ１４８で取得したワークＷの基準位置は、ロボットアーム２の先端を平行移動する前の処理画像（ステップＳ１４２で求めた処理画像）と比較して、平行移動分が反映されたものになるはずである。
【００８６】
ステップＳ１５０：
移動前後の処理画像からそれぞれ求めたワークＷの基準位置に基づいて、移動前後での基準位置の変動（位置変動量）を抽出（位置変動量抽出ステップ）し、ステップＳ１４４での手先の移動量と位置変動量とを比較して比較差を算出する（比較差算出ステップ）。
【００８７】
なお、ワークＷの位置変動量は、初回はステップＳ１４０で取得した画像によるワークＷの基準位置とステップＳ１４６で取得した画像によるワークＷの基準位置との差であり、２回目以降は直前回のステップＳ１４６で求めた画像によるワークＷの基準位置と当該回のステップＳ１４６で取得した画像によるワークＷの基準位置との差である（ステップＳ１４４ないしステップＳ１５８のルーティン参照）。
【００８８】
ステップＳ１５２：
ステップＳ１５０で求めた比較差が、所定値の範囲内か否かを判定する。比較差が許容範囲内である場合（ステップＳ１５２：ＹＥＳ）はステップＳ１５４へ進む。所定値の範囲外である場合（ステップＳ１５２：ＮＯ）はステップＳ１５６へ進む。
【００８９】
ステップＳ１５４：
カメラ４の取り付け状態値の変動はないものとみなしてビジュアルフィードバック（ビジュアルフィードバック処理）を続行する。すなわち、処理画像を確認して、ステップＳ１５８へ進む。
【００９０】
ステップＳ１５６：
カメラ４の取り付け状態値に何らかの変動があったものとみなして、実施の形態１で示した視覚センサ（カメラ４）の補正を再度行う。
【００９１】
実施の形態１のキャリブレーションでのカメラ４の視点変更（平行移動）は、１２５回行っている（ステップＳ１００参照）が、ロボットアーム２の認識精度がそれほど必要のない場合、ロボットアーム２の作業を短時間で続行したい場合などでは、視点変更の回数を例えば２７回（ＸＹＺ方向に各３点ずつ移動）にしても良い。また、カメラの取り付け角度の初期値値θｘ０、θｙ０、θｚ０は、ビジュアルフィードバック処理を行う前のカメラ４のキャリブレーションで求めている値を使用するものとする。
【００９２】
本実施の形態でのロボット１の構成（システム）（図１参照）のように、ロボットハンド３の周辺にカメラ４が取り付けてある場合は、ロボット１の作業中に何らかの外力がカメラ４に加わり、カメラ４の取り付け状態が変化することがある。カメラ４の取り付け位置が例えば数ｍｍ変化してもロボットアームの作業には大きな影響を与えないが、取り付け角度が数度変化すればカメラ４を用いたワークＷの認識結果は大きくずれるので作業に支障をきたすことになる。
【００９３】
カメラ４の取り付け状態の変化を検知し、異常があった場合に実施の形態１に係るカメラ４のキャリブレーションを再度行うことにより、ロボットアーム２は作業を中断することなく通常の動作に復帰することができるようになる。つまり、ロボットアーム２はワークＷ自体を用いて継ぎ目なしにカメラ４のキャリブレーションと実際のビジュアルフィードバック処理の作業を行うことができるようになるという効果を奏する。
【００９４】
ステップＳ１５８：
処理画像が、ビジュアルフィードバック終了条件を満たすか否かを判定する。終了条件を満たす場合（ステップＳ１５８：ＹＥＳ）、つまり、処理画像でのワークＷの基準位置が所定の範囲内に存在すればビジュアルフィードバック処理を終了する。終了条件を満たさない場合（ステップＳ１５８：ＮＯ）、つまり、ワークＷの基準位置が所定の範囲外に存在すればステップＳ１４４へ戻ってビジュアルフィードバック処理を続行する。
【００９５】
ワークＷに対する位置決め作業において、ロボットアーム２の移動量とカメラ４が取得した画像でのワークＷの位置とが、直近のキャリブレーション結果と相反するものであった場合にはロボットアーム２はキャリブレーションの再確認を行うための追加動作（ステップＳ１５２）を行い、必要であればキャリブレーション結果の再補正を行う（ステップＳ１５６）ようにすることができる。
【００９６】
また、ビジュアルフィードバック作業を実行中のロボットアーム２の移動量に対し、カメラ４の画像内で期待されるワークＷの移動量が確認できなかった場合には、直ちに再度キャリブレーションモード（補正モード：ステップＳ１５６）を実行することができるようになる。つまり、カメラ４の取り付け位置ズレが生じた場合でも速やかに再度視覚センサのキャリブレーションを実行できることから、ロボットアーム２の操作の安全性、信頼性を向上させることができる。
【００９７】
ステップＳ１４０〜Ｓ１５８の処理は、コンピュータプログラムを適用してコンピュータに実行させることにより、確実で迅速な処理を容易に行うことが可能となる。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施の形態１に係るロボットアームの視覚センサ補正方法を適用するロボットアームの概略ブロック構成を示す要部ブロック図である。
【図２】ワークを図１の矢符Ａ方向から見た平面図である。
【図３】本発明の実施の形態１に係るロボットアームの視覚センサ補正方法の処理フローを示すフローチャートである。
【図４】本発明の実施の形態２に係るロボットアームの視覚センサ補正方法の処理フローを示すフローチャートである。
【符号の説明】
【００９９】
１  ロボット
２  ロボットアーム
３  ロボットハンド
４  カメラ
５  画像処理部
６  ロボット制御部
Ｗ  ワーク
Ｗａ  外周円
Ｗｂ  内周円
Ｗｈａ  代表高さ
Ｗｈｂ  代表高さ
Ｗｔａ  テクスチャ
Ｗｔｂ  テクスチャ
【図１】
2007061979.tif 000003
【図２】
2007061979.tif 000004
【図３】
2007061979.tif 000005
【図４】
2007061979.tif 000006