(57)【要約】【課題】  固定された受光デバイスを用いてツール取付面に対するツール先端点の位置を求めること。【解決手段】  ２つの初期位置から、カメラ（受光デバイス）４で捉えたツール先端点３１の画像を受光面中心にもってくる所定点移動処理を行ない、ロボット位置Ｑf1、Ｑf2を取得し、それらに基づいて視線４０の方向を求める。次に、位置Ｑf1を座標系Σv1のＺ軸周りで１８０度回転させた位置へロボットを移動させ、所定点移動処理を実行する。回転移動完了後にロボット位置Ｑf3を取得する。Ｑf1とＱf3の中点を座標系Σv2の原点位置として求める。視線４０の位置・姿勢を利用して、ツール先端点３１の位置を求める。ツール先端点からの相対位置が既知の２点の位置を追加計測することで、ツール先端点の位置だけでなくツールの姿勢を求めることもできる。【特許請求の範囲】
【請求項１】
アーム先端部にツールを取り付けたロボットと、受光デバイスとを含む計測装置であって、
前記ロボットを初期位置に位置決めする手段と、
前記ロボットのアーム先端部に取り付けられたツールの先端点を前記受光デバイスで捕らえ、前記受光デバイスの受光面上に結像したツールの先端点の前記受光面上での位置を求める手段と、
前記ツールの先端点の受光面上での位置を前記受光面上の所定箇所に移動させるような前記ロボットの移動量を求める手段と、
前記移動量に応じて前記ロボットを移動させる手段と、
前記移動後の前記ロボットの位置を取得し記憶する手段と、
前記初期位置が複数個与えられた場合に、前記受光デバイスの位置を固定した条件で、各々の初期位置毎に前記ロボットを移動させて記憶した前記ロボットの位置を用い、前記ロボットのツール取付面に対する前記ツールの先端点の位置を求める手段と、
を備えたことを特徴とする計測装置。
【請求項２】
前記移動後、前記ロボットの位置を取得し記憶する前に、前記受光デバイスの受光面上に結像したツールの先端点の位置と前記受光面上の所定箇所が所定の誤差内で一致したことを判定する一致判定手段を備えた、請求項１に記載の計測装置。
【請求項３】
前記一致判定手段により、前記所定の誤差内で一致したと判定できなかった場合、前記ロボットの位置を再度初期位置とする手段を備えた、請求項２に記載の計測装置。
【請求項４】
前記ツールの姿勢が一致し、且つ該ツールと受光デバイスとの距離のみが異なる少なくとも２つの前記ロボットの位置を用いて、前記ロボットの座標系に対する前記受光デバイスの視線の方向を求める手段を備える、請求項１乃至請求項３の内、何れか１項に記載の計測装置。
【請求項５】
前記求めた前記ロボットの座標系に対する前記受光デバイスの視線の方向に基づき、該視線の方向に平行な軸回りの回転を含む前記ツールの姿勢を変化させた少なくとも２つの前記ロボットの位置を用いて、前記ロボットの座標系に対する前記受光デバイスの視線の位置を求める手段を備える、請求項４に記載の計測装置。
【請求項６】
前記求めた前記ロボットの座標系に対する前記受光デバイスの視線の位置及び方向に基づき、該視線の方向に垂直な軸周りの回転を含む前記ツールの姿勢を変化させた少なくとも２つの前記ロボットの位置を用いて、前記ロボットのツール取付面に対する前記ツールの先端点の位置を求める手段を備える、請求項５に記載の計測装置。
【請求項７】
前記受光デバイスは、計測を行う時に該ロボットの周辺の任意の位置に設置され、前記計測の終了後に撤収されることを特徴とする、請求項１乃至請求項６の内、何れか１項に記載の計測装置。
【請求項８】
前記受光デバイスは２次元画像を撮像するカメラである請求項１乃至請求項７の内、何れか１項に記載の計測装置。
【請求項９】
前記受光デバイスは受光量分布の重心を求めるＰＳＤである請求項１乃至請求項７の内、何れか１項に記載の計測装置。
【請求項１０】
ツールの先端点から所定の位置関係にあるツール上の１点または２点を追加計測することで、前記ロボットのツール取付面に対する前記ツールの先端点の位置及び姿勢を求める手段を備える、請求項７乃至請求項８の内、何れか１項に記載の計測装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットのアーム先端部に取り付けられたツールについて、ツール取付面に対するツール先端点の位置を計測する計測装置に関し、特にロボットに、カメラあるいはＰＳＤ（位置検出型検出器；Position Sensing Detector ；以下、同じ）のような受光デバイスを組み合せてツール取付面に対するツール先端点の位置を計測する計測装置に関する。
【背景技術】
【０００２】
ロボットのツール取付面に対するのツール先端点（ＴＣＰ；Tool Center Pint）の位置を計測する方法として、３点タッチアップまたは６点タッチアップによる方法が知られている。図１はこの方式を適用するに用いられる典型的な配置を記したものである。同図に示したように、ロボット１は、同ロボット１を制御するロボット制御装置５に接続され、ロボット１のアーム先端にツール３０が取り付けられている。ロボット１には、ロボットベースに固定された座標系（以下、ロボット座標系という）Σb と、ツール取付面３２に固定された座標系（以下、メカニカルインターフェイス座標系という）Σf が設定されており、ロボット制御装置５内では、随時、メカニカルインターフェイス座標系の原点の位置・姿勢（現在位置）を知ることができるようになっている。また、周知の手動操作キーを持つ教示操作盤１８がロボット制御装置５に接続され、オペレータが手動操作キーを操作することで、ロボット１を操作できるようになっている。
【０００３】
タッチアップ方式でツール３０の先端点（ツール先端点）３１の位置を求める際には、例えば尖った頂点を持つタッチアップピン６を用意し、ロボット動作によりツール３０の先端が届く範囲の適所の固定する。これにより、タッチアップピン６の頂点が空間上の固定された１点に対応することになる。そして、例えば教示操作盤１８の手動操作キーを操作して、ジョグ送りで異なる姿勢（例えば３姿勢あるいは６姿勢）でツール先端点３１をタッチアップピン６にタッチアップし、各タッチアップ時のロボット位置（メカニカルインターフェイス座標系の位置・姿勢）に基づいて、ロボット１のツール取付面（メカニカルインターフェイス座標系で代表される）３２に対するツール先端点３１の位置が求められる。
【０００４】
しかし、この手法には、次のような問題点がある。  
（１）上記したように、タッチアップに際しては、ロボットをジョグ送りで移動させてタッチアップピンの先端にロボットのツール先端点を合致させるわけであるが、その際のロボットの姿勢の取り方の巧拙、作業者の熟練度による合致度の優劣等により、最終的に得られるツールの先端点位置の決定精度に差が出易い。
（２）また、この位置合わせは目視で行なうため、たとえ熟練者であっても出せる精度が低い。  
（３）更にツール先端点をタッチアップピンの先端に極限まで接近させるため、ツール先端点をタッチアップピンの先端に衝突させて、ツールやタッチアップピンの損傷事故を起こし易いという問題もある。  
そして、このような問題を簡便に解決できる技術について記載した公知文献は、目下のところ見当らない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
そこで、本発明の目的は、上記従来技術の問題点を解決することにある。即ち、本発明は、タッチアップピンを用いる必要がなく、安定して高い精度をもってツール取付面に対する先端点の位置を求めることができる計測装置を提供しようとするものである。
【課題を解決するための手段】
【０００６】
本発明の基本的な考え方は、ロボットの周辺に設置した受光デバイス（典型的にはカメラあるいはＰＳＤ；以下、同様）の受光面でツール先端点からの光を捕らえ、それが所定箇所（例えばカメラ画像中心あるいはＰＳＤの原点位置）に映るようにロボットを移動させた上でロボット位置を取得するという機能をベースにして、ツールを様々な姿勢にしてロボットを移動させることと組み合わせることで、ロボットのツール取付面に対するツール先端点（ＴＣＰ）の位置が計測可能にするというものである。
【０００７】
より具体的に言えば、請求項１に記載された発明では、アーム先端部にツールを取り付けたロボットと、受光デバイスを含む計測装置に、前記ロボットによって前記ツールを初期位置に位置決めする手段と、前記ロボットのアーム先端部に取り付けられたツールの先端点を前記受光デバイスで捕らえ、前記受光デバイスの受光面上に結像したツールの先端点の前記受光面上での位置を求める手段と、前記ツールの先端点の前記受光面上での位置を前記受光面上の所定箇所に移動させるような前記ロボットの移動量を求める手段と、前記移動量に応じて前記ロボットを移動させる手段と、前記移動後の前記ロボットの位置を取得し記憶する手段と、前記初期位置が複数個与えられた場合に、各々の初期位置毎に前記ロボットを移動させて記憶した前記ロボットの位置を用いて、前記ロボットのツール取付面に対する前記ツールの先端点の位置を求める手段を設けられる。
【０００８】
ここで、前記移動後、前記ロボットの位置を取得し記憶する前に、前記受光デバイスの受光面上に結像したツールの先端点の位置と前記受光面上の所定箇所が所定の誤差内で一致したことを判定する一致判定手段が設けることができる（請求項２の発明）。この場合、受光デバイスの受光面上に結像したツールの先端点の位置と受光面上の所定箇所の一致を確実にすることができる。
【０００９】
また、前記一致判定手段により、前記所定の誤差内で一致したと判定できなかった場合、前記ロボットの位置を再度初期位置とする手段を設けても良い（請求項３の発明）。この場合、ロボットの移動の繰り返しで受光デバイスの受光面上に結像したツールの先端点の位置と受光面上の所定箇所の一致を更に確実にすることが可能になる。
【００１０】
請求項４の発明では、前記ツールの姿勢が一致し、且つ該ツールと受光デバイスとの距離のみが異なる少なくとも２つの前記ロボットの位置を用いて、前記ロボットの座標系に対する前記受光デバイスの視線の方向を求める手段が設けられている。これにより、ロボットに対する受光デバイスの視線の方向を求める具体構成が提供される。  
ここで、前記求めた前記ロボットの座標系に対する前記受光デバイスの視線の方向に基づき、該視線の方向に平行な軸回りの回転を含む前記ツールの姿勢を変化させた少なくとも２つの前記ロボットの位置を用いて、前記ロボットの座標系に対する前記受光デバイスの視線の位置を求める手段を設けることができる（請求項５の発明）。この場合、ロボットに対する受光デバイスの視線の位置を求める具体構成が提供される。
【００１１】
更にここで、前記求めた前記ロボットの座標系に対する前記受光デバイスの視線の位置及び方向に基づき、該視線の方向に垂直な軸周りの回転を含む前記ツールの姿勢を変化させた少なくとも２つの前記ロボットの位置を用いて、前記ロボットのツール取付面に対する前記ツールの先端点の位置を求める手段を設けることができる（請求項６の発明）。この場合、前記ロボットのツール取付面に対するツールの先端点の位置を求める具体構成が提供される。
【００１２】
以上のいずれの発明形態においても、受光デバイスは計測を行う時に該ロボット周辺の任意の位置に設置し、前記計測の終了後に撤収するようにすることも可能である（請求項７の発明）。また、受光デバイスには２次元画像を撮像するカメラ（請求項８の発明）や、受光量分布の重心を求めるＰＳＤ（請求項９の発明）を用いることができる。そして、請求項１０の発明は、ツールの先端点から所定の位置関係にあるツール上の１点乃至２点を追加計測することで、前記ロボットのツール取付面に対する前記ツールの先端点の位置及び方向を求める手段を更に設けたものである。これにより、前記ロボットのツール取付面に対するツールの先端点の位置と姿勢を求める具体構成が提供される。
【発明の効果】
【００１３】
本発明によれば、ツール先端点をタッチアップピンに対してタッチアップする際のロボットの姿勢の取り方や作業者の熟練度に起因するＴＣＰ位置のばらつきをなくすことができる。また、位置合わせを目視で行なうことに起因するＴＣＰ位置の誤差をなくすことができる。更に、非接触で計測を行うことにより、タッチアップの際の接触事故をなくすことができる。これらの利点により、結果的に高精度で安定した計測を安全に遂行することが可能になる。
【００１４】
加えて、上記のように、簡便な方法でカメラの視線を求めることができるが故に、ロボットとカメラの相対関係を変えて一旦は計測ができない状態にしてしまったとしても、容易に計測ができる状態に戻すことができる。即ち、計測が必要な時のみカメラを設置し、計測が終了したらカメラを撤収してしまう計測装置が構成可能となる（請求項７の発明を参照）。このことは、アーム先端部に取り付けられたツールを使って実際にロボットが作業を行う場合に、カメラの存在を考慮する必要をなくすことができるという意味を持つ。
【発明を実施するための最良の形態】
【００１５】
以下、図２〜図１０を順次参照して本発明の実施形態について説明する。先ず図２は、本発明の一実施形態の全体構成の概略を示した図である。同図に示したように、ロボット１は、同ロボット１を制御するロボット制御装置５に接続され、ロボット１のアーム先端部（ツール取付面３２）にツール３０が取り付けられている。ロボット１には、ロボットベースに固定されたロボット座標系Σb と、ツール取付面３２に固定されたメカニカルインターフェイス座標系Σf が設定されており、ロボット制御装置５内では、随時、メカニカルインターフェイス座標系の原点の位置・姿勢（現在位置）を知ることができるようになっている。また、周知の手動操作キーを持つ教示操作盤１８がロボット制御装置５に接続され、オペレータが手動操作キーを操作することで、ロボット１を操作できるようになっている。
【００１６】
ロボット１は公知の典型的なロボットであり、ロボット制御装置５は図３中に示したような周知のブロック構成を有している。即ち、メインＣＰＵ（以下、単にＣＰＵと言う。）１１に接続されたバス１７に、ＲＡＭ、ＲＯＭ、不揮発性メモリ等からなるメモリ１２、教示操作盤用インターフェイス１３、外部装置用の入出力インターフェイス１６、サーボ制御部１５及び通信インターフェイス１４が並列に接続されている。
【００１７】
教示操作盤用インターフェイス１３に接続される教示操作盤１８は通常のディスプレイ機能付のもので、オペレータは、この教示操作盤１８のマニュアル操作を通して、ロボットの動作プログラムの作成、修正、登録、あるいは各種パラメータの設定の他、教示された動作プログラムの再生運転、ジョグ送り等を実行する。ロボット及びロボット制御装置の基本機能を支えるシステムプログラムは、メモリ１２のＲＯＭに格納される。また、アプリケーションに応じて教示されるロボットの動作プログラム（例えばスポット溶接のプログラム）並びに関連設定データは、メモリ１２の不揮発性メモリに格納される。
【００１８】
また、後述する諸処理（ＴＣＰを求めることに関連したロボット移動及びそのための画像処理装置との通信等のための処理）のためのプログラム、パラメータ等のデータもメモリ１２の不揮発性メモリに格納される。メモリ１２のＲＡＭは、メインＣＰＵ１１が行なう各種演算処理におけるデータの一時記憶の記憶領域に使用される。サーボ制御部１５はサーボ制御器＃１〜＃ｎ（ｎ：ロボットの総軸数で、ここではｎ＝６とする）を備え、ロボット制御のための演算処理（軌道計画作成とそれに基づく補間、逆変換など）を経て作成された移動指令を受け、各軸に付属したパルスコーダ（図示省略）から受け取るフィードバック信号と併せてサーボアンプＡ1 〜Ａn にトルク指令を出力する。各サーボアンプＡ1 〜Ａn は、各トルク指令に基づいて各軸のサーボモータＭ1 〜Ｍn に電流を供給してそれらを駆動する。通信インターフェイス１４は、画像処理装置２（図２参照）に接続されており、この通信インターフェイス１４を介して、後述する計測に関連する指令、計測結果データ等の授受がロボット制御装置との間で行なわれる。
【００１９】
さて、図２に戻ると、ツール３０のツール先端点３１を撮像できる位置に三脚等を用いてカメラ４が設置される。カメラ４は、例えばＣＣＤカメラであり、撮像により２次元画像を受光面（ＣＣＤアレイ面上）で検出する機能を持つ周知の受光デバイスである（なお、後述するように、受光デバイスとしてＰＳＤが用いられることもある）。カメラ４は、ＬＣＤ、ＣＲＴ等からなるモニタ３を持つ画像処理装置２に接続されている。
【００２０】
画像処理装置２は、図４に示した周知のブロック構成を有している。即ち、画像処理装置２はマイクロプロセッサからなるＣＰＵ２０を有しており、ＣＰＵ２０には、バスライン５０を介してＲＯＭ２１、画像処理プロセッサ２２、カメラインターフェイス２３、モニタインターフェイス２４、入出力機器（Ｉ／Ｏ）２５、フレームメモリ（画像メモリ）２６、不揮発性メモリ２７、ＲＡＭ２８及び通信インターフェイス２９が各々接続されている。
【００２１】
カメラインターフェイス２３には、撮像手段であるカメラ（ここではカメラ４；図２参照）が接続されており、カメラインターフェイス２３を介して撮影指令が送られると、カメラ４に設定された電子シャッタ機能により撮影が実行され、カメラインターフェイス２３を介して映像信号がグレイスケール信号の形でフレームメモリ２６に格納される。モニタインターフェイス２４にはモニタ（ここではモニタ３；図２参照）が接続されており、カメラが撮影中の画像、フレームメモリ２６に格納された過去の画像、画像処理プロセッサ２２による処理を受けた画像等が必要に応じて表示される。
【００２２】
再び図２に戻ると、本実施形態では、ロボット１のツール取付面３２とツール先端点３１との相対関係を計測する訳であるが、既述のように、ツール取付面３２の位置・姿勢は同面に固定されたメカニカルインターフェイス座標系Σf で代表させることができる。従って、ツール取付面３２に対するツール先端点３１の位置を求めることはメカニカルインターフェイス座標系Σf 上でのツール先端点３１の位置を求めることに帰着する。なお、ツール取付面３２に対するツール先端点３１の「位置及び姿勢」を求める場合には、同様に、メカニカルインターフェイス座標系Σf 上でのツール先端点３１の位置及び姿勢を求めれば良いことになる。
【００２３】
さて、ツール先端点３１に対応する実体は、ツール３０自体が備えた形状特徴点である場合もあるし、ツール３０の先端点３１に設けた位置計測のための基準マークである場合もある。いずれにしろ、詳細は後述するが、カメラ４でツール先端点３１を視野に収めて撮像を行い、その画像を画像処理装置２で解析する。フレームメモリ２６に格納されたツール先端点３１を収めた画像の映像信号は、画像処理プロセッサ２２を利用して解析され、その３次元位置が求められる（詳細は後述）。なお、そのためのプログラム、パラメータ等は不揮発性メモリ２７に格納されている。また、ＲＡＭ２８はＣＰＵ２０が実行する各種処理に必要なデータの一時記憶に利用される。通信インターフェイス２９は、前述したロボット制御装置側の通信インターフェイス１４を介してロボット制御装置に接続されている。
【００２４】
図２中には、カメラ４の視線が記されている。これはカメラ４の代表点（例えば受光面の中心）からツール先端点３１に向かう直線であり、ここでは符号４０で示されている。視線４０に関連して、座標系Σv が図２中に記されている。即ち、座標系Σv は、カメラ４の代表点（例えば受光面中心）からツール先端点３１に向かう視線４０を表わす座標系であり、原点が視線４０上にあり、１つの座標軸（例えばＺ軸）が視線４０に一致しているものとする。また既述の通り、座標系Σb はロボットのベースに固定されたロボット座標系、Σf はロボットのメカニカルインターフェイス座標系である。
【００２５】
なお、メカニカルインターフェイス座標系Σf は、既述の通り、ツール取付面３２の位置・姿勢を代表する座標系であるが、同時にここでは、「ロボット１の位置・姿勢を代表する座標系」として採用することにする。即ち、特に断わりの無い限り、「ロボット位置」とは「メカニカルインターフェイス座標系Σf の原点のロボット座標系Σb 上での位置」であり、姿勢を含めて考える時には、「ロボット座標系Σb 上でのメカニカルインターフェイス座標系Σf の原点位置及び姿勢」のことを指すものとする。
【００２６】
また、上記の構成では、受光デバイスは２次元画像を撮影するＣＣＤカメラであるとしたが、同等の機能を持つ別のデバイス（ＣＭＯＳカメラなど）であっても良いし、ツール先端点３１が点光源とみなせる場合には受光量の重心位置（２次元位置）を求めるＰＳＤなどであっても良い。但し、そのような変形構成を採用する場合には、画像処理装置２もそれに応じて、適合する装置に置き換えられることは言うまでもない。例えば、２次元ＰＳＤを採用する場合、その出力信号を処理して受光量の重心位置（２次元位置）を求める機能を持つ処理装置が用いられる。
【００２７】
以下、本発明の技術思想を適用して、ツール先端点３１の位置を求める手順の例について説明する。なお、受光デバイスは、画像処理装置２に接続されたカメラ（ＣＣＤカメラ）として説明するが、上記の通り、適宜、他の受光デバイスとそれに適合した信号処理装置に置き換えても良いことは言うまでもない。本実施形態で行なう処理全体の概要は図１０のフローチャートに示されている。以下、同フローチャートの流れに沿って説明を進める。なお、説明の中で、「ツール取付面３２（メカニカルインターフェイス座標系Σf で代表）に対するツール先端点３１の位置（場合によっては位置と姿勢）」を「ツール先端点３１の相対位置（場合によっては相対位置と相対姿勢）」などと適宜略称する。
【００２８】
［ステップＴ１，Ｔ２について］
上述した構成を用いてツール先端点３１の相対位置（場合によっては相対位置と相対姿勢）を求める場合、「視線４０を求めること」が基本となる。一般に、視線を求めるためにはいわゆるカメラキャリブレーションの手法が知られているが、本発明ではそのような従来手法は必要としない。即ち、従来のカメラキャリブレーションの手法に頼らずに視線４０に関する情報を得るために、ツール先端点３１の受光面上での位置を受光面上の所定箇所に向かわせる（到達させる）ようにロボットを移動させる処理が基本となる。ここで、「受光面上の所定箇所」は具体的には例えば「受光面上の中心点（幾何学的な重心位置）」の如く、「所定の点」として予め定義されるので、以下、この処理を「所定点移動処理」と呼ぶことにする。
【００２９】
先ずステップＴ１では、カメラ４がツール先端点３１を視野に収められる適当な初期位置へロボット１を移動させる（初期位置にロボットを位置決め）。次いで、下記の如く所定点移動処理（ステップＴ２）を実行する。即ち、受光デバイス（カメラ、ＰＳＤ等）で捉えられたツール先端点３１が「受光面上の所定点」に向かうような方向に、ツール３０を移動させ（ロボット移動を利用）、実際に、受光面上において所定の誤差内でツール先端点３１を所定点に一致させる処理を実行する。
【００３０】
「受光面上の所定点」として、ここでは「受光面（ＣＣＤアレイ）の中心点」を採用する。図５は、ツール先端点３１を受光面の中心点に移動させる様子をモニタ画面を用いて示した図である。同図において、モニタ３の画面は、点Ｍがカメラ４の受光面の中心に対応するように設定されている。今、ロボット１が適当な初期位置に位置決めされた状態で、ツール先端点３１の像３１ａが図示したような位置に写っているものとする。  
この場合、像３１ａが画面上で点Ｍに向かって斜め左下方向に移動する方向にロボット１を移動させれば良い訳であるが、一連の処理を開始する前はロボット１とカメラ４の相対関係は全く未知であるから、画面上での位置関係からロボット１の移動すべき方向を決めることはできない。そこで、ツール先端点の像３１ａを希望する方向（ここでは点Ｍに向かう方向）に移動させるためにロボット１を空間内でどう動かせばよいかを先ず求める必要がある。
【００３１】
これは比較的簡単である。具体的には、例えば図２におけるメカニカルインターフェイス座標系Σf のＸＹ平面内で任意のいくつかの方向（複数方向）にロボット１を動かしてみて、その都度ツール先端点の像３１ａが画像上でどの方向に移動したかを観察し、ロボット１の移動方向と画像上でのツール先端点の移動方向の関係、及びロボットの移動量と画像上でのツール先端点の移動量の関係を求める手順を実行すれば良い。
【００３２】
このような手法により移動方向及び移動量比を求めること自体は周知であるから、詳細説明は省略する。また、以下の説明ではここまでの準備は済んでいるものとする。カメラ４によって撮像されたツール先端点（像３１ａ）を画像上の所定点Ｍに一致させる処理の具体例を図９のフローチャートに示した。各ステップの要点は下記の通りである。
【００３３】
ステップＳ１；ツール先端点３１の撮像を行なう。これにより、例えば図５中に示したような像３１ａが得られる。  
ステップＳ２；画像上でのツール先端点３１の位置（例えば図５中に示したような像３１ａの画像上での位置）を画像処理装置２内で求める。  
ステップＳ３；ステップＳ２で求めた位置が、画像上での所定点（ここでは点Ｍ）に一致しているか判断する。例えば、画像上でのしきい距離δimageを予め設定しておく、点Ｍと像３１ａの間の距離がδimage以下であれば「一致」と判断し、処理を終了する。δimageを上回っていれば「不一致」と判断し、ステップＳ４へ進む。なお、画像上での距離は、例えば正方形の「画素」の何個分であるかで測ることができる。
【００３４】
ステップＳ４；ツール先端点（像３１ａ）を画像上で所定点Ｍに移動させるロボット並進指令を算出する。ここで、ロボット並進指令とは、ロボット姿勢、即ち、座標系Σf の姿勢をロボット座標系Σb （空間内で固定）上で一定に保つようなロボット移動のための移動指令のことである。  
ステップＳ５；ステップＳ４で算出したロボット並進指令に基づいてロボット１を移動させる。移動が完了したらステップＳ１へ戻る。以下、同様に、ステップＳ３で「一致」の判断が出されるまで、上述した処理サイクルを繰り返す。
［ステップＴ３について］
以上が「所定点移動処理」であり、この処理が完了した時点、即ち、図５中に符号３１ａで示したツール先端点像が写っているロボットの初期位置から、上記所定点移動処理により、画像中心Ｍに符号３１ｂで示したツール先端点像が得られるロボット位置に移動が完了したら、ロボット座標系Σb 上での座標系Σf の位置Ｑf1を取得し、記憶しておく。
【００３５】
［ステップＴ４について］
次に、視線４０の方向を求める処理に移る。視線４０は、画像中心にツール先端点像が写っている状態において、画像中心に相当するカメラ撮像面上の点Ｍとツール先端点３１を結ぶ直線である。ここでは、この直線がロボットのメカニカルインターフェイスを表わす座標系Σf に対して、どのような方向を向いているか求める。そのために先ずステップＴ４の処理によりロボット１を並進移動させる。図６はこの処理に関連する説明図で、同図において、座標系Σv1は視線４０の方向を求めるために考える座標系であり、次の条件を満たすものとする。  
（Ｉ）座標系Σf と座標系Σv1とは同一の原点を持つ。  
（ＩＩ）座標系Σv1 のＺ軸方向は視線４０の方向と一致する。
【００３６】
この座標系Σv1 のＺ軸が、所定点移動処理完了時に座標系Σf 上でどの方向を向いているかを求める。より具体的には、座標系Σf 上での座標系Σv1 の姿勢を表わすオイラー角（Ｗ，Ｐ，Ｒ）の内の（Ｗ，Ｐ）成分を求めることを考える。
【００３７】
そのために、先ず実行するのがこのステップＴ４の並進移動である。この移動では、ツールの姿勢を変えずにツール先端点３１とカメラの距離が異なる位置へロボットを並進移動させる（矢印Ａ参照）。図６中における符号３０ａ、３０ｂは移動前、移動後のツールを表わしている。
【００３８】
［ステップＴ５，Ｔ６について］
ステップＴ４による並進移動を行なうと、当然、一般にはツール先端点３１の像は再度画像中心（受光面の中心）Ｍから外れる。そこで、再度、所定点移動処理を実行する（ステップＴ５）。所定点移動処理についてはステップＴ２で説明した通りで、ツール先端点３１の像は再び画像中心（受光面の中心）Ｍから誤差範囲内の位置に戻る。ステップＴ５の完了後に、ロボット座標系Σb 上での座標系Σf の位置Ｑf2を取得し、記憶する（ステップＴ６）。
【００３９】
［ステップＴ７について］
上記ステップＴ３で得たＱf1と上記ステップＴ６で得たＱf2 とを結ぶ直線は、視線４０の方向を表わしている。ステップＴ４のロボット移動前のΣf 上で見たＱf1 からＱf2 への相対移動量をｄＸ，ｄＹ，ｄＺとすると、座標系Σf 上での座標系Σv1 の姿勢を表わすオイラー角（Ｗ，Ｐ，Ｒ）は下記の式で計算できる。これにより、座標系Σv1 が定められたことになり、そのＺ軸方向が視線４０の方向を表わしている。
【００４０】
【数１】
2005300230.tif 000002
［ステップＴ８、Ｔ９、Ｔ１０、Ｔ１１について］
ステップＴ７で視線４０の方向が求められたので、次に視線４０の位置を求める処理に進む。図７（ａ），（ｂ）はこの処理に関連する説明図で、図７（ｂ）中、座標系Σv2は視線４０の位置と方向を表わす座標系で、図２において座標系Σv として表記されたものに対応し、次の条件を満たすものとする。  
（ＩＩＩ）座標系Σv2は視線４０上に原点を持つ。  
（ＩＶ）座標系Σv2のＺ軸方向は視線４０の方向と一致する。
【００４１】
既に視線４０の方向が座標系Σv1（図７（ａ）参照）のＺ軸として求められており、座標系Σv2 のＺ軸方向は座標系Σv1 のＺ軸方向と同一である。原点位置を求めるために、Ｑf1 を座標系Σv1 のＺ軸周りで１８０度回転させた位置へロボットを移動させ（ステップＴ８）、次いで再び所定点移動処理を実行する（ステップＴ９）。図７（ａ）はこの回転移動（矢印Ｂ参照）と、所定点移動処理による移動が完了した状態を併記しており、図７（ｂ）には、座標系Σv2 の原点位置が示されている。座標系Σv2 の原点位置は、回転移動前後の座標系Σf の中点で与えられる。  
そこで、回転移動完了後にロボット位置Ｑf3 を取得し、記憶する（ステップＴ１０）。そして、このＱf1 とＱf3 の中点を座標系Σv2 の原点位置として求める。
【００４２】
そして、ステップＴ８によるロボット移動前の座標系Σf 上で見たＱf1 からＱf3への相対移動量をdX, dY, dZ として、座標系Σf 上で見た座標系Σv2の原点（Ｘ、Ｙ、Ｚ）を下記の式で求める。座標系Σv2の姿勢は座標系Σv1の姿勢と同一であるから、結局、ステップＴ８によるロボット移動前の座標系Σf 上で見た座標系Σv2の位置・姿勢が求められることになる（ステップＴ１１）。以後これを表わす行列をＶで表わすことにする。
【００４３】
【数２】
2005300230.tif 000003
［ステップＴ１２，Ｔ１３，Ｔ１４，Ｔ１５について］
最後に、視線４０の位置・姿勢を利用して、ツール先端点の位置を求める処理を実行する。図８はこれに関連する説明図である。Ｑf1を座標系Σv2 のＹ軸周りに傾けた位置にロボットを傾斜移動させる（ステップＴ１２）。そして再度所定点移動処理を実行する（ステップＴ１３）。図８は、この処理完了後の状態がツール３０ｂとともに示されている（座標系Σv2 は座標系Σv2' に移動）。なお、ツール３０ａは、傾斜移動前のツールを表わしている。ステップＴ１３完了後にロボット位置Ｑf4 を取得し（ステップＴ１４）、記憶する。
【００４４】
ここで、ロボットがＱf1 に位置決めされている時のΣf から見たΣv2 のＺ軸はＶであり、ロボットがＱf4 に位置決めされている時のΣv2' のＺ軸は、
Ｑf1−１・Ｑf4・Ｖ
である。両者のＺ軸の交点を求めれば、それがロボット位置Ｑf1 におけるツール先端点の位置である（ステップＴ１５）。
【００４５】
なお、以上説明した手順は一例であり、例えば下記のような変形も可能である。
（ａ）ステップＴ８（図７参照）では、Ｑf1 を座標系Σv1 のＺ軸周りで１８０度回転させた位置へロボットを移動させるとしたが、必ずしも１８０度である必要はなく、またＺ軸周りの回転が含まれていれば、他の姿勢変化が加わった複合的な移動であっても構わない。
（ｂ）ステップＴ１２（図８参照）では、Ｑf1 を座標系Σv2 のＹ軸周りに傾けた位置へロボットを移動させるとしたが、必ずしもＹ軸周りである必要はなく、Ｚ軸に垂直な方向周りの回転が含まれていれば、他の姿勢変化が加わった複合的な移動であっても構わない。
【００４６】
更に、ツール先端点からの相対位置が既知の２点の位置を追加計測することで、ツール先端点の位置だけでなくツールの姿勢を求めることも可能である。図１１はそのような追加計測によりツールの姿勢を求める手法について説明する図で、（ａ）は追加計測時の配置とモニタ画面上への画像表示の様子を示し、（ｂ）はモニタ画面に映される画像を用いて追加計測される点について説明する図である。図１１（ａ）に示したように、ツール３０の長手方向がカメラ４の視線にほぼ沿い、ツール先端点３１がカメラ４に向くようなロボット姿勢をとらせる。画像処理装置２から撮像指令を送り、カメラ４による撮像を行い、モニタ３の画面上に画像表示する。
【００４７】
本例では、予めツール３０の先端部に円形のマーク（小さな黒丸）Ｄが描かれるとともに、ツール３０の基部にはリング形状のマーク（大きな黒輪）Ｅが描かれ、その一部に「小さな白丸」が描かれいる。また、大きな黒輪の内周は「大きな白丸」を形成し、小さな黒丸はその中心がツール先端点３１となるように描かれている。そして、「大きな白丸」が存在する平面と、「小さな白丸」が存在する平面とは平行関係にあり、且つ、「大きな白丸」の中心を通り、「大きな白丸」が存在する平面と垂直な直線は「小さな白丸」の中心（ツール先端点３１）を通るものとする。なお、このような条件を満たすパターンはツール３０に描く代わりに、ツール３０にはめ込むキャップ状の部材（パターン描いた部材）を用意し、同部材をツール３０にはめ込んだ時に同様のパターンが提供されるようにしても良い。
【００４８】
さて、このようなパターンを用意した場合、追加計測される点として、「小さな白丸の中心」と「大きな白丸の中心」を選ぶことができる。これは、ツール先端点３１（小さな黒丸の中心）を原点とする座標系（ツール先端点の位置と姿勢を代表する座標系；以下、ツール座標系という）を考え、「小さな白丸の中心」をそのＸ軸上の点、「大きな白丸の中心」をそのＺ軸上の点に選んだケースに相当する。
【００４９】
従って、この場合、「小さな白丸の中心」と「大きな白丸の中心」の相対位置（メカニカルインターフェイス座標系上での位置）を求めれば、ツール先端点３１の相対位置は計測済みであるから、ツール座標系の相対姿勢を算出することができる。この計算方法については、公知であるものが多数存在しているので、ここでの説明は省略する。また、追加された２点を計測する方法についても、ツール先端点の位置を計測する方法（前述）と同様である。詳しい説明は繰り返しになるので省略するが、要するに、「小さな白丸の中心」を前述したツール先端点にみたてて前述の処理を行なえば「小さな白丸の中心」の相対位置（メカニカルインターフェイス座標系Σf 上での位置）が求められ、「大きな白丸の中心」を前述したツール先端点にみたてて前述の処理を行なえば「大きな白丸の中心」の相対位置（メカニカルインターフェイス座標系Σf 上での位置）が求められるということである。
【００５０】
これら「小さな白丸の中心」、「大きな白丸の中心」の相対位置のデータに既知のツール先端点３１の相対位置のデータを併せれば、メカニカルインターフェイス座標系に対するツール座標系の位置と姿勢を表わす行列が求められる。
【図面の簡単な説明】
【００５１】
【図１】ツール先端点を求める従来技術（タッチアップ方式）で用いられる典型的な配置を記した図である。
【図２】本発明の一実施形態の全体構成の概略を示した図である。
【図３】実施形態で用いるロボット制御装置のブロック構成を示した図である。
【図４】実施形態で用いる画像処理装置のブロック構成を示した図である。
【図５】ツール先端点を受光デバイスの受光面の中心点に移動させる様子をモニタ画面を用いて示した図である。
【図６】ステップＴ４の処理に関連する説明図である。
【図７】ステップＴ８の処理に関連する説明図で、（ａ）は回転移動による座標系Σv1 の移動の様子を表わし、（ｂ）は回転移動と座標系Σv2 の位置の関係を表わしている。
【図８】ツール先端点の位置を求める処理に関連する説明図である。
【図９】所定点移動処理の概略を記したフローチャートである。
【図１０】本実施形態で実行される処理全体の概略を記したフローチャートである。
【図１１】追加計測によりツールの姿勢を求める手法について説明する図で、（ａ）は追加計測時の配置とモニタ画面上への画像表示の様子を示し、（ｂ）はモニタ画面に映される画像を用いて追加計測される点について説明する図である。
【符号の説明】
【００５２】
１  ロボット
２  画像処理装置
３  モニタ
４  カメラ
５  ロボット制御装置
６  タッチアップピン
１１  メインＣＰＵ
１２  メモリ
１３  教示操作盤用インターフェイス
１４  通信インターフェイス（ロボット制御装置側）
１５  サーボ制御部
１６  外部装置用インターフェイス
１７，５０  バス
１８  教示操作盤
２０  ＣＰＵ
２１  ＲＯＭ
２２  画像処理プロセッサ
２３  カメラインターフェイス
２４  モニタインターフェイス
２５  入力機器
２６  フレームメモリ
２７  不揮発性メモリ
２８  ＲＡＭ
２９  通信インターフェイス（画像処理装置側）
３０  ツール
３１  ツール先端点
３１ａ，３１ｂ  ツール先端点の像
３２  ツール取付面
４０，４０ａ，４０ｂ  視線
Ｍ1 〜Ｍn  サーボモータ
【図１】
2005300230.tif 000004
【図２】
2005300230.tif 000005
【図３】
2005300230.tif 000006
【図４】
2005300230.tif 000007
【図５】
2005300230.tif 000008
【図６】
2005300230.tif 000009
【図７】
2005300230.tif 000010
【図８】
2005300230.tif 000011
【図９】
2005300230.tif 000012
【図１０】
2005300230.tif 000013
【図１１】
2005300230.tif 000014