(57)【要約】【課題】比較的小型かつ安価な測定装置を使用し、高精度かつ自動的に機構パラメータの誤差を求めて機構パラメータを補正するための計測装置及びキャリブレーション方法を提供する。【解決手段】カメラ４の受光面上において、ターゲット６のマーク画像７ａを表す楕円とマーク７の形状を表す円との中心位置の差及び長軸長と直径との差が所定の誤差以内となるようにロボットを移動させる処理が、複数の計測位置について自動的に実行される。【選択図】図８
2008012604.tif 000002
【特許請求の範囲】
【請求項１】
受光デバイスと、計測すべきターゲット及び前記受光デバイスが相対移動可能となるように構成された多関節ロボットとを有する計測装置であって、
前記ターゲットが前記受光デバイスの視野内に含まれる、前記ロボットの複数の計測位置及び姿勢を規定する計測位置姿勢規定手段と、
前記ロボットを前記計測位置姿勢規定手段で規定された複数の計測位置姿勢に順次位置決めする手段と、
前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値を検出するターゲット検出手段と、
前記複数の計測位置姿勢の各々を起点として、前記ターゲットの形状の幾何学的特徴値が前記受光デバイスの受光面上で所定の条件を満足するように前記ロボットを移動するロボット移動手段と、
前記ロボット移動手段によって移動した前記ロボットの位置及び姿勢を、前記起点の各々に関連付けられた終点として記憶するロボット終点記憶手段と、
前記ロボット終点記憶手段に記憶された複数の前記終点での前記ロボットの位置及び姿勢に基づいて、前記ロボットの機構パラメータの誤差を求める計算手段と、を備えることを特徴とする計測装置。
【請求項２】
前記計測位置姿勢規定手段は、前記受光デバイスと前記ターゲットの所定点との距離が一定でかつ該所定点を通る前記受光デバイスの視線の傾きが異なる複数の計測位置姿勢を規定する、請求項１に記載の計測装置。
【請求項３】
前記計測位置姿勢規定手段は、前記ターゲットの所定点を通る前記受光デバイスの視線の姿勢が一定でかつ前記受光デバイスと前記ターゲットの該所定点との距離が異なる複数の計測位置姿勢を規定する、請求項１に記載の計測装置。
【請求項４】
前記計測位置姿勢規定手段は、前記複数の計測位置及び姿勢を自動的に生成する、請求項１に記載の計測装置。
【請求項５】
前記ターゲットが複数配置される、請求項１〜４のいずれか１項に記載の計測装置。
【請求項６】
前記受光デバイスを複数有する、請求項１〜５のいずれか１項に記載の計測装置。
【請求項７】
前記計算手段は、ニュートンラプソン法、遺伝的アルゴリズム及びニューラルネットワークを含む非線形問題の最適化法を用いて前記ロボットの機構パラメータの誤差を求める、請求項１〜６のいずれか１項に記載の計測装置。
【請求項８】
前記受光デバイスは２次元画像を撮像するＣＣＤカメラである、請求項１〜７のいずれか１項に記載の計測装置。
【請求項９】
前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値は、前記受光面上での前記形状の位置及び前記受光デバイスと前記ターゲットとの相対距離を表す情報を含む、請求項８に記載の計測装置。
【請求項１０】
前記ターゲットは円形形状を有し、前記情報は前記受光デバイスの受光面に結像した楕円の長軸長を含む、請求項９に記載の計測装置。
【請求項１１】
前記受光デバイスは受光量分布の重心を求めるＰＳＤである、請求項１〜７のいずれか１項に記載の計測装置。
【請求項１２】
前記ターゲットは発光体である、請求項１１に記載の計測装置。
【請求項１３】
受光デバイスと、計測すべきターゲット及び前記受光デバイスが相対移動可能となるように構成された多関節ロボットとを有する計測装置を用いた該多関節ロボットのキャリブレーション方法であって、
前記ターゲットが前記受光デバイスの視野内に含まれる、前記ロボットの複数の計測位置姿勢を規定するステップと、
前記ロボットを前記複数の計測姿勢に順次位置決めするステップと、
前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値を検出するステップと、
前記複数の計測姿勢の各々を起点として、前記ターゲットの形状の幾何学的特徴値が前記受光デバイスの受光面上で所定の条件を満足するように前記ロボットを移動するステップと、
移動した前記ロボットの位置及び姿勢を、前記起点の各々に関連付けられた終点として記憶するステップと、
記憶された複数の前記終点での前記ロボットの位置及び姿勢に基づいて、前記ロボットの機構パラメータの誤差を求めるステップと、を備えることを特徴とするキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用の多関節ロボットの機構パラメータのキャリブレーション方法及び該方法を自動的に行うための計測装置に関し、特には、被計測対象物すなわちターゲットを認識する受光デバイスを用いてロボットの先端位置と制御可能な駆動軸の変位との関係を自動的に測定し、さらに機構部の寸法誤差とその弾性変形量等の定式化可能な誤差を求める装置及び方法に関する。
【背景技術】
【０００２】
ロボットの先端を所望の位置に位置決めするためには、各ロボット軸の角変位とロボットの手先の位置及び姿勢（ハンド基準点、例えばフェイスプレートに設定されたフェイスプレート座標の位置及び姿勢）との関係を規定する諸パラメータの値を知る必要がある。しかし、加工時又は組立時に、これらのパラメータに誤差が生じることは避けられず、さらに組立てられたロボットにおけるこれらのパラメータを直接計測することも困難である。このため、産業界では、ロボットの入力変位と出力変位との関係を測定して、その測定結果に基づいてパラメータの最適値を推定しかつ補正する方法、すなわちいわゆるキャリブレーションがよく用いられる。
【０００３】
キャリブレーションに関しては種々の装置又は方法が知られている。例えば特許文献１には、３次元測定機を静止座標系に固定してロボット先端の位置を測定する校正方法が開示されている。また特許文献２には、ロボットのツール先端を３次元空間の任意の１点に教示する自動補正方法が開示されている。また特許文献３には、ロボットの先端に３次元測定装置を取付け、３次元空間での任意の１点との距離を測定する補正方法が開示されている。さらに特許文献４には、複数のカメラ位置・姿勢で、ある点をカメラの視野の中心で捕らえるように教示するロボットカメラのキャリブレーション方法が開示されている。またさらに特許文献５には、ロボットの先端に撮像装置を取付け、複数の異なる姿勢で、ある固定点を撮像し、画像上の撮像結果が理論値との差に基づいて、ロボット機構部すべてのリンク要素の誤差を求める自動測定方法が開示されている。
【０００４】
【特許文献１】特開２００１−３８６６２号公報
【特許文献２】特許第２６４０３３９号公報
【特許文献３】特開平４−２５９００７号公報
【特許文献４】特許第３２５２８７０号公報
【特許文献５】特許第２６８２７６３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のキャリブレーションにおいて高精度な結果を得るためには高い計測精度が必要とされるが、一方でキャリブレーション作業の容易性も要求される。特許文献１の測定装置は、一般的に大型であるために、狭い作業環境での適用が困難である。また特許文献２の場合は測定装置を使わず手動操作で教示を行うために、教示誤差が生じる虞がある。
【０００６】
一方特許文献３及び４の装置は小型ではあるが、計測時のロボット姿勢の教示は手動で行われる。さらに特許文献４の場合ではカメラの２次元の視線方向のみを合わせるため、１回の計測で得られるデータが３次元測定機を使用した場合より少なく、故により多い計測姿勢が必要となる。また特許文献２及び４では作業者による計測姿勢の教示が必要となるため、計測結果が作業者の技量に依存することになり、さらに教示誤差の影響を低減するためには、多く教示点が必要となってしまい、作業者の負担が重くなってしまう。
【０００７】
さらに、特許文献５の計測精度は、撮像装置の誤差、例えばレンズ歪等に依存する。また自動計測を実現するためには計測する固定点の位置は既知でなければならないが、そのための治具作成や取付け作業が必要となる。
【０００８】
そこで本発明は、上記課題を解決するために、比較的小型かつ安価な測定装置を使用し、高精度かつ自動的に機構パラメータの誤差を求めて機構パラメータを補正するための計測装置及びキャリブレーション方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、請求項１に記載の発明は、受光デバイスと、計測すべきターゲット及び前記受光デバイスが相対移動可能となるように構成された多関節ロボットとを有する計測装置であって、前記ターゲットが前記受光デバイスの視野内に含まれる、前記ロボットの複数の計測位置及び姿勢を規定する計測位置姿勢規定手段と、前記ロボットを前記計測位置姿勢規定手段で規定された複数の計測位置姿勢に順次位置決めする手段と、前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値を検出するターゲット検出手段と、前記複数の計測位置姿勢の各々を起点として、前記ターゲットの形状の幾何学的特徴値が前記受光デバイスの受光面上で所定の条件を満足するように前記ロボットを移動するロボット移動手段と、前記ロボット移動手段によって移動した前記ロボットの位置及び姿勢を、前記起点の各々に関連付けられた終点として記憶するロボット終点記憶手段と、前記ロボット終点記憶手段に記憶された複数の前記終点での前記ロボットの位置及び姿勢に基づいて、前記ロボットの機構パラメータの誤差を求める計算手段と、を備えることを特徴とする計測装置を提供する。
【００１０】
請求項２に記載の発明は、請求項１に記載の計測装置において、前記計測位置姿勢規定手段は、前記受光デバイスと前記ターゲットの所定点との距離が一定でかつ該所定点を通る前記受光デバイスの視線の傾きが異なる複数の計測位置姿勢を規定する、計測装置を提供する。
【００１１】
請求項３に記載の発明は、請求項１に記載の計測装置において、前記計測位置姿勢規定手段は、前記ターゲットの所定点を通る前記受光デバイスの視線の姿勢が一定でかつ前記受光デバイスと前記ターゲットの該所定点との距離が異なる複数の計測位置姿勢を規定する、計測装置を提供する。
【００１２】
請求項４に記載の発明は、請求項１に記載の計測装置において、前記計測位置姿勢規定手段は、前記複数の計測位置及び姿勢を自動的に生成する、計測装置を提供する。
【００１３】
請求項５に記載の発明は、請求項１〜４のいずれか１項に記載の計測装置において、前記ターゲットが複数配置される、計測装置を提供する。
【００１４】
請求項６に記載の発明は、請求項１〜５のいずれか１項に記載の計測装置において、前記受光デバイスを複数有する、計測装置を提供する。
【００１５】
請求項７に記載の発明は、請求項１〜６のいずれか１項に記載の計測装置において、前記計算手段は、ニュートンラプソン法、遺伝的アルゴリズム及びニューラルネットワークを含む非線形問題の最適化法を用いて前記ロボットの機構パラメータの誤差を求める、計測装置を提供する。
【００１６】
請求項８に記載の発明は、請求項１〜７のいずれか１項に記載の計測装置において、前記受光デバイスは２次元画像を撮像するＣＣＤカメラである、計測装置を提供する。
【００１７】
請求項９に記載の発明は、請求項８に記載の計測装置において、前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値は、前記受光面上での前記形状の位置及び前記受光デバイスと前記ターゲットとの相対距離を表す情報を含む、計測装置を提供する。
【００１８】
請求項１０に記載の発明は、請求項９に記載の計測装置において、前記ターゲットは円形形状を有し、前記情報は前記受光デバイスの受光面に結像した楕円の長軸長を含む、計測装置を提供する。
【００１９】
請求項１１に記載の発明は、請求項１〜７のいずれか１項に記載の計測装置において、前記受光デバイスは受光量分布の重心を求めるＰＳＤである、計測装置を提供する。
【００２０】
請求項１２に記載の発明は、請求項１１に記載の計測装置において、前記ターゲットは発光体である、計測装置を提供する。
【００２１】
請求項１３に記載の発明は、受光デバイスと、計測すべきターゲット及び前記受光デバイスが相対移動可能となるように構成された多関節ロボットとを有する計測装置を用いた該多関節ロボットのキャリブレーション方法であって、前記ターゲットが前記受光デバイスの視野内に含まれる、前記ロボットの複数の計測位置姿勢を規定するステップと、前記ロボットを前記複数の計測位置姿勢に順次位置決めするステップと、前記受光デバイスの受光面上に結像した前記ターゲットの形状の幾何学的特徴値を検出するステップと、前記複数の計測位置姿勢の各々を起点として、前記ターゲットの形状の幾何学的特徴値が前記受光デバイスの受光面上で所定の条件を満足するように前記ロボットを移動するステップと、移動した前記ロボットの位置及び姿勢を、前記起点の各々に関連付けられた終点として記憶するステップと、記憶された複数の前記終点での前記ロボットの位置及び姿勢に基づいて、前記ロボットの機構パラメータの誤差を求めるステップと、を備えることを特徴とするキャリブレーション方法を提供する。
【発明の効果】
【００２２】
本発明によれば、ロボットによるキャリブレーションを実行する際に、計測動作がカメラ等の非接触式の受光デバイスによって自動的に行われるので、より多い計測位置姿勢での高精度な計測が作業者の負担を減らしつつ可能になる。さらに、２次元の計測装置で３次元の計測を可能にし、１回の計測での計測情報がより多くなる。結果的に作業者の技量に依存せず広い作業領域で精度の高い計測ができるようになる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施形態について説明する。先ず図１は、本発明の一実施形態に係る計測装置の概略構成を示す図である。図１に示すように、ロボット１は、公知の典型的なロボットでよく、ロボット１を制御するロボット制御装置５に接続され、アーム部１ａ及びベース部１ｂを有する。アーム１ａの先端部すなわちツール取付面３２には、カメラ４が取り付けられる。ロボット１には、ロボットのベース部１ｂに固定されたロボット座標系Σｂと、ツール取付面３２に固定されたメカニカルインターフェイス座標系Σｆとが設定される。ロボット制御装置５は、随時、メカニカルインターフェイス座標系Σｆの原点の位置及び姿勢（現在位置）を知ることができる。また、周知の手動操作キーを備えた教示操作盤１８がロボット制御装置５に接続され、作業者はその手動操作キーを操作することにより、ロボット１を操作することができる。
【００２４】
カメラ４は例えばＣＣＤカメラであり、撮像により２次元画像を受光面（ＣＣＤアレイ面上）で検出する機能を持つ周知の受光デバイスである。カメラ４は、ＬＣＤ、ＣＲＴ等からなるモニタ３を備えた画像処理装置２に接続される。本実施形態では、カメラ４はロボット座標系Σｂで表わされる空間内に固定されているターゲット６上のマーク７を撮像する。
【００２５】
また他の好適な実施形態として、図２に示すように、ターゲット６をツール取付面３２すなわちメカニカルインターフェイス座標系Σｆに固定し、カメラ４をロボット座標系Σｂで表される空間内に固定することも可能である。このように受光デバイス及びターゲットの設置は自由度が高く、また両者の相対位置関係は後述するように自動的かつ高精度に修正されるので、受光デバイスやターゲットの設置に関する精度管理は不要である。図２の構成による計測手順は図１のものと同様に考えられるので、以降の説明は図１の形態について行う。
【００２６】
ロボット制御装置５は図３に示した周知のブロック構成を有する。すなわち、メインＣＰＵ（以下、単にＣＰＵと称する）１１に接続されたバス１７に、ＲＡＭ、ＲＯＭ、不揮発性メモリ等からなるメモリ１２、教示操作盤用インターフェイス１３、外部装置用の入出力インターフェイス１６、サーボ制御部１５及び通信インターフェイス１４が並列に接続されている。
【００２７】
教示操作盤用インターフェイス１３に接続される教示操作盤１８は、通常のディスプレイ機能付のものであり、作業者は、この教示操作盤１８のマニュアル操作を通して、ロボットの動作プログラムの作成、修正、登録、あるいは各種パラメータの設定の他、教示された動作プログラムの再生運転、ジョグ送り等を実行する。ロボット及びロボット制御装置の基本機能を支えるシステムプログラムは、メモリ１２のＲＯＭに格納される。また、アプリケーションに応じて教示されるロボットの動作プログラム及び関連する設定データは、メモリ１２の不揮発性メモリに格納される。また、後述する諸処理（機構パラメータを求めることに関連したロボット移動及びそのための画像処理装置との通信等のための処理）のためのプログラム、パラメータ等のデータもメモリ１２の不揮発性メモリに格納される。
【００２８】
メモリ１２のＲＡＭは、ＣＰＵ１１が行なう各種演算処理におけるデータの一時記憶の記憶領域に使用される。サーボ制御部１５はサーボ制御器＃１〜＃ｎ（ｎはロボットの総軸数であり、ここではｎ＝６とする）を備え、ロボット制御のための演算処理（軌道計画作成とそれに基づく補間、逆変換など）によって作成された移動指令を受け、各軸に付属したパルスコーダ（図示省略）から受け取るフィードバック信号と併せてサーボアンプＡ１〜Ａｎにトルク指令を出力する。各サーボアンプＡ１〜Ａｎは、各トルク指令に基づいて各軸のサーボモータに電流を供給してそれらを駆動する。通信インターフェイス１４は、画像処理装置２（図１参照）に接続されており、この通信インターフェイス１４を介して、後述する計測に関連する指令、計測結果データ等の授受がロボット制御装置との間で行なわれる。
【００２９】
画像処理装置２は、図４に示した周知のブロック構成を有する。すなわち、画像処理装置２はマイクロプロセッサからなるＣＰＵ２０を有し、ＣＰＵ２０には、バスライン３０を介してＲＯＭ２１、画像処理プロセッサ２２、カメラインターフェイス２３、モニタインターフェイス２４、入出力機器（Ｉ／Ｏ）２５、フレームメモリ（画像メモリ）２６、不揮発性メモリ２７、ＲＡＭ２８及び通信インターフェイス２９が各々接続される。
【００３０】
カメラインターフェイス２３には、撮像手段であるカメラ（ここではＣＣＤカメラ）が接続される。カメラインターフェイス２３を介して撮影指令が送られたときに、カメラに設定された電子シャッタ機能により撮影が実行され、カメラインターフェイス２３を介して映像信号がグレイスケール信号の形でフレームメモリ２６に格納される。モニタインターフェイス２４にはモニタ（図１参照）としてＣＲＴ、ＬＣＤ等のディスプレイが接続され、カメラが撮影中の画像、フレームメモリ２６に格納された過去の画像、画像処理プロセッサ２２による処理を受けた画像等が必要に応じて表示される。
【００３１】
図１に示すように、カメラ４はロボット座標系Σｂで表わされる空間内に固定されているターゲット６上のマーク７を撮像する。フレームメモリ２６に格納されたマーク７の映像信号は、画像処理プロセッサ２２を利用して解析され、その２次元位置及び大きさ等が求められる（詳細は後述）。なお、そのためのプログラム、パラメータ等は不揮発性メモリ２７に格納されている。また、ＲＡＭ２８はＣＰＵ２０が実行する各種処理に必要なデータの一時記憶に利用される。通信インターフェイス２９は、前述したロボット制御装置側の通信インターフェイス１４を介してロボット制御装置に接続される。
【００３２】
また図１に示すカメラ４の視線４０は、カメラ４の代表点（例えばカメラレンズの中心）からターゲット６に向かう直線である。視線４０に関連して、図１に示す座標系Σｖは、カメラ４の代表点（例えばカメラレンズの中心）からターゲット６に向かう視線４０を表わす座標系であり、その原点は視線４０上に位置し、１つの座標軸（例えばＺ軸）が視線４０に一致しているものとする。なおメカニカルインターフェイス座標系Σｆは、既述の通りツール取付面３２の位置及び姿勢を代表する座標系であるが、同時にここでは、「ロボット１の位置及び姿勢を代表する座標系」でもある。すなわち、特に断わりのない限り、「ロボット位置」とは「ロボット座標系Σｂ上での、メカニカルインターフェイス座標系Σｆの原点の位置」であり、姿勢を含めて考える時には、「ロボット座標系Σｂ上での、メカニカルインターフェイス座標系Σｆの原点の位置及び姿勢」を指すものとする。
【００３３】
次に、図１の構成による本発明のキャリブレーションの手順を、図５のフローチャートを参照しつつ説明する。但し通常、一連の処理を開始する前はロボット、ターゲット及びカメラ間の相対位置関係は未知であるので、画像上のターゲットを意図する方向に意図する距離だけ移動させるためにはロボットをどう動かせばよいかという、画像上の移動方向及び移動距離とロボットの移動方向及び移動距離との関係を事前に求めておく必要がある。例えば、図１におけるΣｆのＸＹＺの任意方向にロボットを複数回動かし、その都度、受光面上に結像したマーク７の図形の特徴値を検出し、ロボットの各軸の移動方向及び移動距離と前記特徴値の変化との関係を求める方法が可能である。このような手法により移動方向及び移動距離の関係を求めること自体は周知であるから、詳細な説明は省略する。ここまでの準備は、以下に述べるステップの前に済んでいるものとする。
【００３４】
ステップＴ１
本発明では、ターゲット及びカメラを正確な位置に設置する必要はなく、カメラ４の視野内にマーク７が入っていればよい。ステップＴ１では、カメラ４の視野内にマーク７が入る（具体的には例えば画像処理装置２のモニタ３にマーク７が映る）ように作業者がロボットを移動させる。
【００３５】
ステップＴ２
ステップＴ２では、カメラを使用して、メカニカルインターフェイス座標系Σｆでのカメラの注視点３１の位置、及びロボット座標系Σｂでのマーク７の所定点の位置を自動的に算出する。このための方法としては、例えば本願出願人による特開２００５−２０１８２４号公報に記載されているものが好適である。この方法では、カメラの注視点をロボット座標系Σｂでのマーク７の所定点に複数の方向から（複数のロボット姿勢で）計測を行い、Σｆでのカメラの注視点３１の位置と、ロボット座標系Σｂでのマーク７の所定点の位置とを算出する。これは従来、ロボットのメカニカルインターフェイス座標系Σｆに装着されたツールの先端点（ＴＣＰ；Tool Center Point）を、ロボット座標系Σｂの所定点に複数方向から機械的にタッチアップして、ＴＣＰ及び該所定点の位置を算出していた方法と類似であるので、詳細な説明は省略する。なおこの段階では、カメラ及びターゲットの位置は高精度に計算する必要はない。すなわち、注視点をターゲットの所定点に一致させた状態で注視点周りにロボットの姿勢を変化させたときに、ターゲットがカメラの視野から外れない程度であれば十分である。
【００３６】
ステップＴ３
ステップＴ３では、算出されたメカニカルインターフェイス座標系Σｆでのカメラの注視点３１の位置とロボット座標系Σｂでのマーク７の所定点の位置とに基づいて、ロボットの動作範囲内に含まれる複数の計測位置及び姿勢を規定すなわち自動算出してメモリ装置に記録する。複数の計測位置姿勢の具体例としては、カメラ４とマーク７上の所定点（例えば中心）との距離が一定でかつその所定点を通る視線の傾きが異なる複数の計測位置姿勢、或いは、マーク７上の所定点を通る視線の姿勢が一定でかつカメラ４とその所定点との距離が異なる複数の計測位置姿勢等がある。図６は、前者すなわちカメラ４とマーク７上の所定点との距離が一定かつ所定点を通る視線の傾きが異なる３つの計測位置姿勢を規定した例を示している。
【００３７】
ここで、計測位置姿勢の自動算出の具体的方法としては、先ずステップＴ２でカメラの注視点３１とマーク７上の所定点の位置とを合わせて得られたロボットの位置姿勢を基本位置姿勢とし、次にカメラの注視点の位置を一定とした上でカメラの姿勢角に規定値を加えて、ロボットの動作範囲内に含まれる複数の計測位置姿勢を自動的に生成する方法がある。或いは、カメラの注視点の位置を一定とした上でロボットの動作範囲内でとり得るカメラの姿勢角の範囲を算出し、その姿勢角の範囲に含まれるいくつかの角度について（例えば等角度間隔に分割して）、複数の計測位置姿勢を生成する方法も可能である。
【００３８】
ステップＴ４、Ｔ５
ステップＴ４では、Ｔ３で規定し記録された各計測位置姿勢を起点として以下に述べる「自動タッチアップ処理」を行い、受光面上に結像したマーク７の図形の幾何学的特徴値が所定条件を満足するようにロボットを移動させ、ロボットの移動が終了した時点のロボット位置をメモリに記憶させる（ステップＴ５）。つまり複数の計測位置姿勢の起点に対応した、複数のロボット位置及び姿勢が終点としてメモリに記憶される。
【００３９】
ここで図７〜図９を参照して、ステップＴ４の自動タッチアップ処理の詳細を説明する。本発明におけるキャリブレーションは、複数の異なるロボット位置について、受光面上に結像したマーク７の形状の幾何学的特徴を示す値又はパラメータが所定の条件を満足するように、ロボットを移動させることが基本となる。一般に、カメラによる計測を行うときは、カメラキャリブレーションと呼ばれる事前作業が行われ、カメラの計測精度はカメラキャリブレーションの精度に依存する。本発明では、マーク７を受光面上に比較的小さく結像させ、その受光面上でのマーク７の幾何学的特徴値が所定の状態を満足するようにロボットを移動させることによってカメラキャリブレーションを不要とする。後述する実施形態では、マーク７として中心を示す十字線を有する円形状を使用し、その場合の幾何学的特徴値は円の中心位置及び直径とする。
【００４０】
まず１つの計測位置姿勢について、カメラ４の受光面上に結像したマーク７の形状の幾何学的特徴値が所定の条件を満足するようにロボットを移動させる処理を説明する。ここでは、マーク７の形状は図１に示す円とその中心を指す十字線とから構成されたものとする。受光面上に結像されたマーク７の画像７ａの幾何学的特徴値は、図７及び図８に示すような楕円（一般にカメラ４の受光面とマーク７とは正対しないので、受光面上のマーク形状すなわち画像７ａは楕円形状となる）の中心位置及び長軸長とする。図７及び図８は、画像上の楕円の中心を所定点（ここでは受光面の中心Ｍ）に移動させ、さらに楕円の長軸長を所定値（ここではマーク７の直径）に一致させる作業を、カメラ４及びターゲット６の相対位置関係の変化と併せて示している。図７では、結像された画像すなわち楕円７ａが所定点Ｍからずれている上に、楕円の長軸長もマーク７の直径より短い。ここで図８に示すように、ロボット１を移動させることによってカメラ４とターゲット６との相対位置関係を変化させ、結果として楕円の中心が所定点Ｍと一致し、かつその長軸長がマーク７の直径と一致するようにする。具体的には、受光面上において楕円と円との中心位置の差及び長軸長と直径との差が所定の誤差以内となるような処理を自動的に実行する。受光面上では画像処理（周知の様々な方法が利用できるため、ここではその詳細は省略する）によって楕円の特徴値が検出でき、それと所定値との差が計算できる。
【００４１】
図９は、ステップＴ４すなわちカメラ４によって撮像されたマーク７の画像７ａを画像上の所定点Ｍに移動させかつ所定の大きさに合わせる処理の詳細を示すフローチャートである。各ステップの要点を以下に説明する。
ステップＳ１
マーク７の撮像を行なう。これにより、例えば図７に示すような像７ａが得られる。
ステップＳ２
画像上でのマーク７の図形の位置及び大きさ（例えば図７に示す画像７ａの中心の画面上での位置、及び像７ａの長軸長）を画像処理装置２によって検出する。
ステップＳ３
ステップＳ２で求めた位置及び大きさが、画像上での所定点（ここでは受光面の中心点Ｍ）及び所定長（ここではマーク７の直径）にそれぞれ一致しているか否かを判断する。具体的には、画像上での誤差すなわち閾距離δimageを予め設定しておき、点Ｍと像７ａの中心との距離、及び像７ａの長軸長とマーク７の直径との差がいずれもδimage以下であれば「一致」と判断し、処理を終了する。上記差が一方でもδimageを上回っていれば「不一致」と判断し、ステップＳ４へ進む。なお、画像上での距離は、例えばその距離が正方形の「画素」の何個分に相当するか等の基準により測ることができる。
ステップＳ４
マーク７の画像７ａを画像上で所定点Ｍに移動させ、さらに像７ａの長軸長が所定値に一致するようなロボット並進指令を作成する。ここで、ロボット並進指令とは、ロボットの姿勢、すなわち座標系Σｆの姿勢をロボット座標系Σｂ（空間内に固定）上で一定に保つような移動指令を意味する。
ステップＳ５
ステップＳ４で算出したロボット並進指令に基づいてロボット１を移動させる。移動が完了したらステップＳ１へ戻る。以下、同様に、ステップＳ２で「一致」の判断が出されるまで、上述の処理サイクルを繰り返す。
【００４２】
以上が、結像された像７ａの幾何学的特徴値が所定の条件を満足するようにロボットを移動させる処理である。図８に示すように、結像された図形の幾何学的特徴値が所定の条件を満足したときは、円の中心は必ず受光面中心を通過する視線４０上に位置し、またそのときの円の中心に対するカメラの相対位置は常に一定値となる。但し、ターゲットに対するカメラの異なる相対姿勢によって、結像された楕円の長短軸の方向及び比は異なる。この受光面中心と交わる視線４０上の点を注視点３１とする。
【００４３】
ここでカメラ４はメカニカルインターフェイスΣｆに固定されているので、注視点３１もメカニカルインターフェイスΣｆに固定されている。すなわち、結像された楕円の中心を受光面の中心に移動させ、さらに楕円の長軸長を所定値に合わせた結果と、注視点３１をマーク７の所定点に合わせた結果は等しくなる。この注視点を実際のピン等に置き換えれば、この位置合わせ処理は、従来、ロボットの先端にピンを取付けて人手でロボットの位置を合わせる作業（タッチアップ）と同等と言える。以下、この処理を「自動タッチアップ処理」を呼ぶことにする。本実施形態では、受光面上に結像したマーク７の図形の幾何学的特徴値は楕円の中心位置及び長軸長であるが、十字を構成する２本の直線の角度や円形の長短軸の比なども所定図形の幾何学的特徴値とすることができる。ただしこの場合、ステップＳ４で算出される移動指令には、並進だけでなく姿勢の変化も含まれることになる。また注視点は特定の一点ではなく、特定視線上の任意点とすることもできる。
【００４４】
ステップＴ６
ステップＴ５で記憶された「自動タッチアップ処理」終了時点の複数ロボット位置を用いて、ロボットの機構パラメータを同定計算する。本発明で補正しようとするロボットの機構パラメータとは、ロボット制御時に使用するロボットの各駆動軸の変位（入力）とロボットの先端位置（出力）との相関関係を定める関係式の中で用いられるパラメータを指す。このパラメータの代表例は、リンク長さや各駆動軸の原点位置である。また軸の回転方向によって生じるバックラッシや、リンクの弾性変形、減速機の弾性変形量等も挙げられる。本発明では、同定計算する機構パラメータの種類は特に限定されるものではなく、定式化が可能でかつ互いに従属でないものであればよい。
【００４５】
次に、全ての計測位置姿勢においてカメラ４の注視点３１とマーク７上の所定点とが一致していることを前提として、ロボットの機構パラメータを計算する方法について説明する。ここではｎp個の機構パラメータＰk,0＝［Ｐk,0,1，Ｐk,0,2，...，Ｐk,0,np］の誤差と、Σｆでの注視点３１の位置Ｐs＝［Ｘs，Ｙs，Ｚs］の誤差と、Σｂでのマーク７上の所定点の位置Ｐm＝［Ｘm，Ｙm，Ｚm］の誤差とを同定計算する機構パラメータの誤差をＰID＝［ΔＰk，ΔＰs，ΔＰm］とする。理想状態、すなわちＰIDの全ての成分がゼロの場合は、記録されたｉ番目の計測位置姿勢に対応する「自動タッチアップ処理」終了時のロボット位置及びΣｆでの注視点３１の位置Ｐsの双方を使用して算出するΣｂにおける注視点３１の位置Ｐiと、Σｂでのマーク７上の所定点の位置Ｐmとが完全に一致するはずである。しかし通常は、機構パラメータの誤差を含むＰIDの誤差によってＰiとＰmとの間に式（１）で表す位置誤差ｅiが生じる。
【数１】
2008012604.tif 000003
幾何学的関係から分かるように、ロボットの各駆動軸の値を一定値に固定して考えた場合は、ＰiはＰIDの関数となる。従ってｅiもＰIDの関数となる。
【００４６】
本実施例では、ニュートンラプソン法を用いて、ｎs個の計測位置姿勢におけるΣｂでの注視点３１の位置ＰiとΣｂでのマーク７上の所定点の位置Ｐmとの誤差Ｅ＝［ｅ1，ｅ2，...，ｅns］が最小になるようなＰIDを求める。この計算では、先ず次式のようにｅiのＪ番目の同定パラメータＰID,Jに対する微分値ｇi,jを求める。
【数２】
2008012604.tif 000004
ここでｅ'i,jは、ＰID,jに微小誤差量ΔＰID,jを加えたときの、ｉ番目の計測位置姿勢におけるΣｂでの注視点３１の位置Ｐ'iと、Σｂでのマーク７上の所定点の位置Ｐmとの誤差である。
【００４７】
上記の式（２）を使用して、求められたｇi,jを以下の式（３）のように行列［Ｇ］で表すことができる。
【数３】
2008012604.tif 000005
【００４８】
上記行列［Ｇ］を用いることにより、誤差関係は以下の線形式（４）で表すことができる。
【数４】
2008012604.tif 000006
【００４９】
従ってＰIDは、以下の式（５）から求めることができる。
【数５】
2008012604.tif 000007
ただし［Ｇ］+は［Ｇ］の擬似逆行列であり、以下の式（６）により求められる。
【数６】
2008012604.tif 000008
【００５０】
以上から、機構パラメータＰk,lは次の式（７）により求められる。
【数７】
2008012604.tif 000009
【００５１】
ＰIDとＰiとの関係には非線形性が存在しているため、式（７）で求めたＰk,lはまだ誤差を含む。そこでニュートンラプソン法に基づき、Ｐk,lをＰk,0の代わりに使用して、ＰIDの全ての成分が微小になるまで、式（１）から式（７）の計算を繰り返して行う。実際には、ＰIDの各成分が所定の閾値以下になるまで上記計算を繰り返して行う。キャリブレーションに使用される他の計算方法としては、遺伝的アルゴリズム、ニューラルネットワーク等の非線形問題の最適化法があるが、いずれも周知の方法であるので説明は省略する。
【００５２】
ステップＴ７
ステップＴ７では、ロボットの制御に反映させるため、求められたロボットの機構パラメータをロボットコントローラに記憶されている従来のものに上書きする。
【００５３】
なお本実施形態ではターゲットのマーク形状を円形としたが、他の文字や図形等も無論使用可能である。但し円形を利用した場合は、カメラによるマーク画像は視線の方向に関わらず楕円となるため、演算処理がいくらか単純にできるという利点がある。また本実施形態では受光デバイスは２次元画像を撮影するＣＣＤカメラであるが、同等の機能を持つ別のデバイス（ＣＭＯＳカメラなど）であってもよい。
【００５４】
またターゲット６は発光体等の点光源とみなせるものに置換してもよく、その場合には受光デバイスとして受光量の重心位置（２次元位置）を求める２次元ＰＳＤ（Position Sensitive Detector）を用いることができる。但し、ＰＳＤを使用する場合は、画像処理装置２もそれに応じて適合する装置に置き換えられることは言うまでもない。例えばＰＳＤを採用する場合、その出力信号を処理して受光量の重心位置（２次元位置）を求める機能を備えた処理装置が使用される。
【００５５】
本発明に係る上述のキャリブレーション手順は一例であり、計測システムの構成によっては手順の変形もあり得る。例えば、実際のロボットの誤差については、一様な定式化、すなわちロボットの全動作領域に対して有効な定式化を行うことは困難な場合もある。そこで、ロボットの全動作範囲での精度向上を実現するために、複数のターゲットを設置して複数回の計測を行うことが考えられる。一例として、図１０に示すような複数のターゲットについて計測を行うことが挙げられる。図１０では、ロボットの座標系内に２つのターゲット６ａ及び６ｂが配置されている。この場合の計測手順では、先ず図５のステップＴ１で作業者によってそれぞれのターゲットをカメラ視野に入れる教示を行い、次にステップＴ２からＴ５までの一連の作業を２回繰り返して、その後Ｔ６及びＴ７を実行することになる。また１つのターゲットに対し複数のカメラを設置することにより、１回の計測での精度を向上させることもできる。
【図面の簡単な説明】
【００５６】
【図１】本発明の一実施形態の全体構成の概略を示した図である。
【図２】本発明の他の実施形態の全体構成の概略を示した図である。
【図３】実施形態で用いるロボット制御装置のブロック構成を示した図である。
【図４】実施形態で用いる画像処理装置のブロック構成を示した図である。
【図５】本実施形態で実行される処理全体の概略を示すフローチャートである。
【図６】図５のフローチャートのステップＴ３の処理に関連する説明図である。
【図７】カメラ及びターゲットの相対位置関係並びにモニタ画面を示す図である。
【図８】図７の状態からターゲットを所定位置に合わせた状態を示す図である。
【図９】図５のフローチャートのステップＴ４に関する手順を示すフローチャートである。
【図１０】本発明の他の実施形態の全体構成の概略を示した図である。
【符号の説明】
【００５７】
１    ロボット
２    画像処理装置
３    モニタ
４    カメラ
５    ロボット制御装置
６    ターゲット
７    マーク
７ａ    マーク画像
１１    メインＣＰＵ
１２    メモリ
１３    教示操作盤用インターフェイス
１４    通信インターフェイス（ロボット制御装置側）
１５    サーボ制御部
１６    外部装置用インターフェイス
１７    バス
１８    教示操作盤
２０    ＣＰＵ
２１    ＲＯＭ
２２    画像処理プロセッサ
２３    カメラインターフェイス
２４    モニタインターフェイス
２５    入力機器
２６    フレームメモリ
２７    不揮発性メモリ
２８    ＲＡＭ
２９    通信インターフェイス（画像処理装置側）
３０    ツール
３１    カメラ注視点
３２    ツール取付面
４０    視線
【図１】
2008012604.tif 000010
【図２】
2008012604.tif 000011
【図３】
2008012604.tif 000012
【図４】
2008012604.tif 000013
【図５】
2008012604.tif 000014
【図６】
2008012604.tif 000015
【図７】
2008012604.tif 000016
【図８】
2008012604.tif 000017
【図９】
2008012604.tif 000018
【図１０】
2008012604.tif 000019