説明

作業装置及びその校正方法

【課題】作業装置が有する作業部と距離測定部との校正用パラメータを、非接触かつ自動的に取得する。
【解決手段】作業部を作業位置へ移動させる移動部と、移動部に設置されて作業部とともに移動する距離情報取得部と、移動部とは独立して固定された撮像装置とを有する作業装置は、撮像装置における画像平面上に仮想目標点を設定し、撮像装置によって撮影された画像において作業部の作業基準点と仮想目標点とを一致させるための移動部の座標を複数取得する。また、作業装置は、画像において、距離情報取得部の投光位置と仮想目標点を一致させる移動部の座標と、その座標位置において距離情報取得部から得られる距離情報とを複数取得する。そして、作業装置は、上記処理で取得された複数の座標及び距離情報に基づいて、移動部と距離情報取得部のための校正用パラメータを算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は作業を行うロボット等の作業装置に関し、特に、作業装置が有する距離測定部の光軸方向およびオフセット量を校正する校正方法に関するものである。
【背景技術】
【0002】
組立や加工の作業に利用される産業用ロボットの分野において、位置が不定である物体に対して操作を行う場合、作業対象となる物体の位置を計測する必要が生じる。平面的な位置検出に画像情報を用いることも多く、さらに作業対象物体の高さが不定の場合にはさまざまな3次元計測手段を用いる方法がある。
【0003】
画像情報と距離測定の組み合わせによってロボットに作業を行わせる場合、距離測定部(距離センサ)によって得られる測定結果が、ロボットが内部で持つロボット座標系とどのように対応するのか知る必要がある。そして、そのためにはロボット(の作業位置)と距離センサとの相対的な設置位置関係を校正データとして求める必要がある。
【0004】
特許文献1〜特許文献6には上記課題の解決策が提案されている。特許文献1では、溶接ロボットにおける溶接トーチ先端をワーク上の基準位置にティーチングでタッチアップさせ、距離測定用のレーザセンサのレーザ照射位置を同基準位置にティーチングで合わせこむことにより、距離センサの光軸方向とオフセット量を求める。また、特許文献2では、世界座標既知の平面冶具の複数点にティーチングによるタッチアップを行い、3次元計測結果とロボット座標系との対応をとることで校正を行っている。
【0005】
これら特許文献1および特許文献2は、ロボットを人手によるティーチングで動かし、基準位置にタッチアップさせることで校正を行う方法である。
【0006】
特許文献3では、距離センサの光軸をロボットハンドの中心軸に一致させるように設置することで校正することなくロボット座標系と距離センサ座標系の対応をとることが提案されている。これはセンサの設置位置によって課題を解決する方法である。
【0007】
特許文献4では、位置が既知のマーカが付いたプレートをロボットアームに取り付け、グローバルな位置に設置されたレーザスリット光をプレートに当ててカメラで撮影し、座標校正を行うことが記載されている。マーカの世界座標位置はロボット命令で決定されるため、レーザスリットの画像座標とロボット座標の対応が決まる。
【0008】
また、特許文献5では、角度を持った平板を距離センサレーザ光軸の設計位置と同じ位置に回転軸を持たせて回転させ、測定値の違いから設計値からの光軸の角度を計算している。この方法では高精度な動作と取り付け精度が保証される冶具が必要である。
【0009】
特許文献6では、アームに搭載されたカメラに対して、ビジュアルサーボを利用して作業領域におけるターゲットを画像中心に保持しつつアームを動かすことで、カメラ光軸の方向を求めている。この従来件ではカメラ光軸方向を求めるにとどまっており、ロボットハンドとのオフセット量算出までは言及していない。
【特許文献1】特開平11-123678号公報
【特許文献2】特開2005-271103号公報
【特許文献3】特許第03239277号公報
【特許文献4】特開平05-280927号公報
【特許文献5】特開平10-103937号公報
【特許文献6】特許第04021413号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
特許文献1および特許文献2のようなティーチングによるタッチアップで校正する方法では、ロボットの物理的な接触を伴うためロボットの破損の危険性を常に孕み、校正に精度を求める場合には作業者の熟練を必要とする。
【0011】
また、特許文献3のようなロボットハンドの中心軸と距離センサ光軸を一致させるような装置構成は、把持機構などに設計上の制限を強いることになる。さらにセンサ取り付け時の取り付け誤差が許容されないため、高い組立精度を必要とする。
【0012】
また、特許文献4はレーザスリット光の投光器をグローバルな位置としており、測定可能な領域が限定されている。また、ロボットアームに取り付けられるプレートのマーカ位置をロボット座標系において既知とするためにはプレート上のマーカ位置が高精度に決められている必要があり、かつプレートの取り付け精度も要求される。
【0013】
また、特許文献5は特殊な冶具を用いることによる校正方法であるが、高精度に作成され、且つ高精度な動作を伴う冶具を必要とし、かつ治具の装置への取り付け精度も要求される。このような冶具は、高価であるとともに設置に関する煩雑さも伴うこととなる。
【0014】
本発明は上記の課題に鑑みてなされたものであり、作業装置が有する作業部と距離測定部との校正用パラメータを、非接触かつ自動的に取得することを目的とする。
【課題を解決するための手段】
【0015】
上記の目的を達成するための本発明の一態様による作業装置の校正方法は、
作業部を作業位置へ移動させる移動手段と、前記移動手段に設置されて前記作業部とともに移動する距離情報取得手段と、前記移動手段とは独立して固定された撮像装置とを備える作業装置の校正方法であって、
前記撮像装置における画像平面上に仮想目標点を設定し、前記撮像装置によって撮影された画像において前記作業部の作業基準点と前記仮想目標点とを一致させるための前記移動手段の座標を複数取得する第1取得工程と、
前記画像において、前記距離情報取得手段の投光位置と前記仮想目標点を一致させる前記移動手段の座標と、その位置における前記距離情報取得手段から得られる距離情報とを複数取得する第2取得工程と、
前記第1取得工程及び前記第2取得工程で取得された座標及び距離情報に基づいて、前記移動手段と前記距離情報取得手段のための校正用パラメータを算出する算出工程とを有する。
【0016】
また、上記の目的を達成するための本発明の他の態様による作業装置は以下の校正を備える。すなわち、
作業部を作業位置へ移動させる移動手段と、前記移動手段に設置されて前記作業部とともに移動する距離情報取得手段と、前記移動手段とは独立して固定された撮像装置とを備える作業装置であって、
前記撮像装置における画像平面上に仮想目標点を設定し、前記撮像装置によって撮影された画像において前記作業部の作業基準点と前記仮想目標点とを一致させるための前記移動手段の座標を複数取得する第1取得手段と、
前記画像において、前記距離情報取得手段の投光位置と前記仮想目標点を一致させる前記移動手段の座標と、その位置における前記距離情報取得手段から得られる距離情報とを複数取得する第2取得手段と、
前記第1取得手段及び前記第2取得手段で取得された座標及び距離情報に基づいて、前記移動手段と前記距離情報取得手段のための校正用パラメータを算出する算出手段とを備える。
【発明の効果】
【0017】
本発明によれば、作業装置が有する作業部と距離測定部との校正用パラメータを、非接触かつ自動的に取得することが可能となる。
【発明を実施するための最良の形態】
【0018】
以下、添付の図面を参照して本発明の好適な実施形態を説明する。
【0019】
[第1の実施形態]
図1に、本発明を実施するために適した基本的な装置構成を示す。図1において、移動作業部1は作業を行うために移動を伴う動作機構を持つ装置であり、具体的には産業用ロボットアームや自動ステージ、またそれらに設置されたエンドエフェクタなどで実現されるものである。移動作業部1は、作業対象に対して実際に作業を行う作業部(ロボットハンド等)と、作業部を作業位置に移動する移動部(ロボットアーム)を具備する。距離情報取得部2は移動作業部1に物理的に接続されており、移動作業部1の移動に伴って位置が変化するものである。撮像部4は移動作業部1の作業領域を撮影するための装置であり、移動作業部1とは独立に固定されている。処理部3は移動作業部1、距離情報取得部2および撮像部4と接続され、各部を制御し、各部から得られた情報を元にした所望の計算を行うための装置である。処理部3は、具体的にはパーソナルコンピュータ或いはプログラマブルコントローラ(以下、PC)やロボットコントローラなどで構成される。
【0020】
図2に、本発明を実施するために適した第1の実施形態における具体的な装置構成を示す。図2は、第1実施形態による作業装置の構成例を示す図である。
【0021】
作業領域50に対して、可動式のロボットアーム10が固定されている。ロボットアーム10のエンドエフェクタ取り付け部分にハンドベースプレート31が設置され、ロボットハンド20はハンドベースプレート31に固定されている。これらは図1における移動作業部1に相当するものである。ハンドベースプレート31にはさらに距離センサ30が固定されており、ロボットアーム10のエンドエフェクタの移動時には、ハンドベースプレート31を介してロボットハンド20と距離センサ30の相対位置関係が変化しないように動作する。ここで距離センサ30は、レーザ光を下に向けて測定物に対して照射し、測定対象物表面でレーザが拡散反射して得られる輝点位置をPSDなどで検出することで距離に比例する電圧値を出力する既存技術によるセンサである。距離センサ30は、図1における距離情報取得部2に相当する。距離センサ30は、図示しないA/D変換ボードなどを介して図示しないPCに接続されており、PCでは距離センサの測定値をモニタできるようになっている。なお、図2のロボットアーム10はXYZ型ロボットとなっているが、本発明の作業装置はこの携帯に限られるものではなく、それ以外の形態のロボット、例えばスカラ型もしくは多関節型のロボットでもよい。
【0022】
ロボットハンド20には物体を把持するための指21および22が備え付けられている。ここではロボットハンド20は2指で描かれているが、3本以上の指から構成されるロボットハンドでもよい。また、ロボットの動作目的が物体の把持でないのであれば、指以外の形態の作業部、例えば溶接トーチなど、を先端に備え付けたロボットハンドでもよい。ロボットアーム10は図示しないロボットコントローラに接続され、ロボットコントローラからの動作信号に従って動作する。PCとロボットコントローラは、図1における処理部3に相当する。ロボットの上部の空間には、撮像装置4に相当するカメラ40が設置され、作業領域50を撮影するようになっている。カメラ40は前述のPCに接続され、カメラ40から獲得される画像に対してPC上で動作するプログラムによって所定の処理が行われる。また、上述したように、ロボットコントローラとPCは接続されており、PCからの指令に従ってロボットコントローラからロボットアーム10に対して命令を送ることができる。
【0023】
図3は、本実施形態の作業装置における作業基準点の例を説明する図である。物体把持などの実作業時には、ロボットハンド20の指21および22の間の中央位置を被把持対象物体に合わせこむ必要がある。この中央位置を作業基準点と定義する。図3では、参照番号100により作業基準点が示されている。被把持対象物体の高さが不定である場合には、距離センサ30によって得られた距離から作業基準点100を所定位置に移動させるための移動命令をロボットコントローラに与えなければならない。移動命令をロボット座標で与えるには、距離センサ30と作業基準点100との相対的な位置を求める必要がある。
【0024】
次に、前述した距離センサ30と作業基準点100との位置関係を校正するための作業の概要について図4のフローチャートに従って説明する。
【0025】
校正作業を開始するために、ユーザは、まずハンドベースプレート31に校正プレート110を設置する。図5の(a)に示すように、校正プレート110には、作業基準点100と一致する位置に中心を持つようなマーカ111が描かれている。また、校正プレート110には、設置時に距離センサ30から発光されるレーザ光が作業基準点に対して同じ高さに照射されるよう、作業基準面112が設定されている。なお、校正作業は、図5の(b)に示されるように、ハンドベースプレート31からロボットハンド20を取り外した状態で行われる。
【0026】
バイアス算出処理(S110)において、PCは、校正プレート110を設置した状態で距離センサ30の測定値を獲得し、これをバイアス電圧値として自身の記憶装置に記憶する。
仮想目標点設定処理(S120)において、PCは、カメラ40から得られる画像の画像平面上における仮想目標点を設定し、これを自身の記憶装置に記憶する。
【0027】
作業基準点目標位置算出処理(S130)において、PCは、校正プレート110におけるマーカ111の中心位置、すなわち作業基準点100、をカメラ40から得られる画像上で仮想目標点に近づけるようにロボットアーム10を動作させる。そして、PCは、作業基準点100と仮想目標点が画像上で一致するロボット座標を複数取得し、そのときのロボット座標値をPCの記憶装置に記憶させる。すなわち、PCは、カメラ40によって撮影された画像において作業部の作業基準点100と、S120で設定された仮想目標点とを一致させるための移動部(移動作業部1)の座標(ロボット座標)を複数取得する第1取得処理を行う。
【0028】
投光目標位置算出処理(S140)では、まずユーザが校正プレート110をハンドベースプレート31から取り外す。PCは、校正プレート110を取り外した状態で距離センサ30からレーザを発光させ、作業領域50上に照射されたレーザの拡散反射をカメラ40で撮影し、レーザの投光位置を画像上で検出する。そして、PCは、検出された投光位置が画像上で仮想目標点に近づくようにロボットアーム10を動作させる。PCは、投光位置と仮想目標点が画像上で一致するロボット座標を複数取得し、これを、各座標における距離センサ30の出力電圧値と共に自身の記憶装置に記憶する。すなわち、PCは、画像平面において、距離センサ30の投光位置と仮想目標点を一致させる移動部(移動作業部1)の座標(ロボット座標)と、その位置における距離センサ30からの距離情報とを複数取得する第2取得処理を行う。
【0029】
校正値算出処理(S150)において、PCは、先の各処理で得られた、
・バイアス電圧値、
・仮想目標点とマーカが一致するときのロボット座標値、
・仮想目標点とレーザ照射位置が一致するときのロボット座標値と距離センサ30の出力電圧値、
を元に、距離センサ30と作業基準点100の相対的な位置関係を校正値として算出し、自身の記憶装置に記憶する。
【0030】
以上、本実施形態による校正作業の概要を説明した。以下、校正作業に関する詳細な説明を述べる。
【0031】
バイアス算出処理(S110)において、PCは、校正プレート110を取り付けた状態で距離センサ30からレーザを発光させて、距離を測定する。PCは、このときに得られた出力電圧をバイアス電圧Vとして記憶装置に記憶する。また、仮想目標点設定処理(S120)では、PCは、カメラ40から得られる画像における画像座標上の任意の位置に仮想目標点を定義し、これを座標xとして記憶装置に記憶する。
【0032】
次に、作業基準点目標位置算出処理(S130)の詳細な説明を図6のフローチャートを参照して説明する。図6は、本実施形態による作業基準点目標位置算出処理の詳細を示すフローチャートである。
【0033】
まず、PCは、ロボット座標系のZ座標値をZに固定し、ロボット座標系の任意の座標(XおよびY座標値)の位置にロボットアーム10を移動させ(S1301)、カメラ40で撮影する(S1302)。そして、PCは、得られた画像から校正プレート上のマーカ111の中心位置を算出し、これを作業基準点100の検出位置とする(S1303)。PCは、撮影された結果に基づき、仮想目標点xに校正プレート110上の作業基準点100(マーカ111の中心)が一致するようにロボットアーム10を移動させる。作業基準点100を仮想目標点xに一致させるための移動には、例えば既存技術である特徴ベースのビジュアルサーボなどを用いることができる。例えば、PCは、前フレームにおけるロボットアーム10のロボット座標系における移動ベクトルに対して、カメラ40による撮影画像の画像座標系における作業基準点100の移動ベクトルを算出することで画像ヤコビアンを計算する(S1304)。そして、PCは、仮想目標点xと作業基準点100の画像上における差分ベクトルと得られた画像ヤコビアンから、差分ベクトルを小さくする方向にロボットアーム10を移動させる(S1305)。
【0034】
PCは、再びカメラ40により撮影を行い(S1306)、画像上の作業基準点100を検出する(S1307)。PCは、仮想目標点xと作業基準点100の画像上におけるユークリッド距離が閾値ε(例えば、ε=0.5[pixel])よりも大きければ再びS1304に処理を戻してビジュアルサーボによるロボットアーム10の移動を行う。また、閾値εよりも小さければ、PCは、仮想目標点xと作業基準点100が画像上で一致したものと判断し(S1308)、そのときのロボット座標をXH1として記憶装置に記憶する(S1309)。
【0035】
次に、PCは、ロボット座標系のZ座標値をZに固定して、上記と同様の処理により、仮想目標点xに作業基準点100が一致するようにロボットを移動させる(S1301〜S1308)。そして、PCは、Z座標値をZとして取得されたロボット座標をXH2として、記憶装置に記憶する(S1309)。以上のようにして、Z座標値を異ならせて所定回数の処理(本例では2回)を行ったならば、作業基準点目標位置算出処理(S130)を終了する(S1310)。
【0036】
次に、投光目標位置算出処理(S140)に関する詳細を図7のフローチャートを参照して説明する。図7は、第1実施形態による投光目標位置算出処理を説明するフローチャートである。
【0037】
まず、校正プレート110がハンドベースプレート31から取り外される。PCは、作業基準点目標位置算出処理(S130)と同様に、ロボット座標系のZ座標値をZに固定し、ロボット座標系における任意の座標(XおよびY座標値)の位置にロボットアーム10を移動させ(ステップS1401)る。そして、PCは、校正プレートを外した状態で距離センサ30によるレーザの照射と、カメラ40による撮影を実行し(S1402)、レーザが作業領域50の床面に照射された投光位置を検出する(S1403)。
【0038】
次に、PCは、検出された投光位置が仮想目標点xに写るようにロボットアーム10を移動させる。投光位置と仮想目標点xを一致させるためのロボットアーム10の移動方法は、作業基準点目標位置算出処理(S130)と同様であり、例えば特徴ベースのビジュアルサーボなどを用いることができる。前フレームにおけるロボットアーム10のロボット座標系における移動ベクトルに対して画像座標系における投光位置の移動ベクトルを算出することで画像ヤコビアンを計算する(S1404)。仮想目標点xと投光位置の画像上における差分ベクトルと得られた画像ヤコビアンから、差分ベクトルを小さくする方向にロボットアーム10を移動させる(S1405)。PCは、再び距離センサ30のレーザ照射をカメラ40で撮影し(S1406)、レーザの投光位置を検出する(S1407)。仮想目標点xと投光位置の画像上におけるユークリッド距離が閾値ε(例えば、ε=0.5[pixel])よりも大きければ、PCは、処理をS1404に戻し、ビジュアルサーボによるロボットアーム10の移動を行う。他方、閾値εよりも小さければ、PCは、仮想目標点xと投光位置が画像上で一致したものと判断する(S1408)。そして、PCは、投光位置と仮想目標点xが一致したときのロボット座標をXL1として記憶装置に記憶し(S1409)、そのロボット座標における距離センサ30の測定電圧値Vを記憶装置に記憶する(S1410)。
【0039】
次に、PCは、ロボット座標系のZ座標値をZに固定した状態で上記の処理を実行して、取得されたロボット座標と測定電圧値をそれぞれXL2およびVとしての記憶装置に記憶する(S1401〜S1410)。以上のようにして、Z座標値を異ならせて所定回数の処理(本例では2回)を行ったならば、投光目標位置算出処理(S140)を終了する(S1411)。
【0040】
最後に校正値算出処理(S150)では、各処理において得られた値に基づき校正値が算出される。校正値の算出方法について、図8、図9を参照して詳細に説明する。
【0041】
距離センサ30からの出力電圧の変位ΔV[V]に対して、ロボット座標系における光路差がΔl[mm]であるとすれば、ΔVとΔlの間には下記の関係がある。
【数1】

【0042】
ただし、ηは未知の定数である。作業基準点100のZ座標を通るX−Y平面に平行な作業基準面112を仮定し、この作業基準面112と距離センサ30の相対的な距離を測定したときの電圧Vをバイアスとして考える。すると、ロボットアーム10が任意の位置にあったときの測定電圧がVであったとき、図8で示したように作業基準面112から投光位置までの距離lは下記のような式で得られる。
【数2】

【0043】
ここで、lの値が得られたときに投光位置と作業基準点を一致させるために必要な校正用パラメータは、
・ロボット座標系における作業基準面112とレーザ光軸の交点と作業基準点とのオフセット量W、
・そして同じくロボット座標系における距離センサ30のレーザ照射方向を表す単位ベクトルであるレーザ光軸の正規化方向ベクトルL、
である。すなわち、ロボット座標Xのときに得られた測定距離がlであれば、この投光位置Xに作業基準点を移動させるための相対移動ベクトルは、図9に示されるように数式3で表される。
【数3】

【0044】
よって、投光位置に作業基準点100を一致させるためにロボットに与えるべき命令Xは次の数式4のように計算される。
【数4】

【0045】
これより、校正パラメータとしてバイアス電圧V、比例定数η、センサオフセット量W、レーザ光軸正規化方向ベクトルLを求めれば、変位センサ測定値から、投光位置とロボット座標の対応が取れることになる。これら求めるべき校正値の算出方法を、図10を参照して説明する。
【0046】
ロボット座標位置がXL1からXL2へと変位したときの移動経路長は||XL1−XL2||である。XL1とXL2の差分ベクトルはレーザ光軸方向と一致しているため、移動経路長||XL1−XL2||は位置XL1、XL2におけるレーザ光路長差と等しい。光路長の正負方向はロボットZ軸と逆であるため、距離センサ30の電圧値をロボット座標系スケールにおける距離へと変換する比例定数ηは下記のようにして求められる。
【数5】

【0047】
また、レーザ光軸方向を表す正規化ベクトルは下記のように求められる。
【数6】

【0048】
ここで画像上の投光位置を仮想目標点xに保ったまま作業基準面112を床面に一致するようロボットアーム10を下げた仮想的な位置をXL0とする。この仮想位置XL0は距離センサ30の計測結果と、ここまでに得られたパラメータV、ηおよびLから、下記のように推定される。
【0049】
【数7】

【0050】
次に、画像上の作業基準点100を仮想目標点xに保ったまま作業基準面112が床面に一致するようロボットアーム10を下げた仮想的な位置をXH0とする。事前に求めたロボット座標XH1、XH2の差分ベクトルは、作業基準点100を仮想目標点xに保ったままロボットアーム10が移動できる直線の方向ベクトルである。これをHとすると、
【数8】

が得られる。
【0051】
状態XH2からXH0への移動量をlH2→H1とすると、XH0は、
【数9】

として表される。
【0052】
ここでlH2→H1とXH2からXH0への移動量の比は、XL2からXL0への移動量とXL1からXL2への移動量の比に等しいため、
【0053】
【数10】

となる。
【0054】
よってXH0は、
【数11】

と算出される。
【0055】
オフセット量WはXH0とXL0の相対的な位置関係に等しいため、
【数12A】

となる。
【0056】
PCは、以上のようにして得られたバイアス電圧V、比例定数η、センサオフセット量W、レーザ光軸正規化方向ベクトルLを、記憶装置に記憶し、校正作業を終了する。なお、これらの得られた校正値を使ったロボット作業装置による実作業、例えば以下のようにして行われる。画像座標系において略既存位置に作業対象物体が置かれ、その詳細位置を測定するためにロボットに対してロボット座標Xへの移動命令を送り、ロボット座標Xにおける距離センサの測定電圧がVであったとする。このとき、距離センサの光路長lは、校正値ηおよびV、観測電圧値Vから、数式2を使って以下のように求められる。
【数12B】

【0057】
また、測定位置へとロボットの作業基準位置を移動させるためには以下のようにする。すなわち、測定時のロボット座標X、上記式で得られた距離センサ光路長l、校正値W及びLから、数式4を使って以下のようにして得られるロボット座標XaLへの移動命令をロボットに与えればよい。
【数12C】

【0058】
[第2の実施形態]
第1の実施形態では、投光目標位置算出処理(S140)においてビジュアルサーボを利用して撮像画像上の仮想目標点と距離センサ30の投光位置を一致させるロボット座標を求めた。しかしながら、投光目標位置算出処理はこのような手法に限られるものでは無い。第2の実施形態では、その一例として、投光目標位置算出処理(S140)において、以下のようにしてXL1およびXL2を求めて校正を行う。なお、第1の実施形態と同様の構成によるロボットシステムにおいて、距離センサ30によってレーザが照射される作業領域50には所定レベルの平面度があるものとする。ここで、所定レベルの平面度とは、例えば、500[mm]×500[mm]の作業領域50に対して、平面度交差0.1[mm]といったレベルが挙げられる。
【0059】
第2の実施形態における投光目標位置算出処理(S140)では、PCは、校正プレート110を取り外した状態で、ロボットアーム10をロボット座標系における同一平面にある3点以上の位置に移動させる。そして、PCは、それぞれの位置で距離センサ30から作業領域50へ照射された投光位置を検出し、対応するロボット座標値と投光位置を記憶装置に記憶する。更に、PCは、ロボット座標系における上記3点とは別の同一平面上にある3点以上の位置に関しても、同様にして投光位置を検出し、ロボット座標値と投光位置を記憶装置に記憶する。PCは、こうして得られた2平面におけるそれぞれの座標変換行列から両平面において投光位置と仮想目標点が一致するロボット座標値を推定する。そして、PCは、ロボットアーム10を推定されたロボット座標に移動させて距離センサ30によって測定を行い、その推定されたロボット座標とセンサ測定値を記憶装置に記憶する。
【0060】
すなわち、PCは、同一のZ座標において、距離センサ30による投光位置の撮影画像における座標とそのときの移動作業部1の座標(ロボット座標)との対を複数取得する。そして、取得された複数対の座標に基づいて画像上で投光位置を仮想目標点と一致させる、当該Z座標における移動作業部1の座標を推定する。更に、当該推定された座標へ移動作業部1を移動して、距離センサ30によって距離情報を取得する。この処理を、複数のZ座標(本例では2つ)について行い、得られた複数の推定された座標と距離情報を、投光目標位置算出処理(S140)の出力とする。
【0061】
以下に第2の実施形態における投光目標位置算出処理(S140)の詳細な説明を図11のフローチャートを参照して説明する。
【0062】
まず、PCは、校正プレート110を取り外した状態で、距離センサ30から作業領域50へ投光されたレーザの拡散反射が画像上に写るような任意のロボット座標位置へロボットアーム10を移動させる(S1421)。ここで、ロボット座標位置はX1,1=[X1,1,Y1,1,Z1]Tとする。そして、PCは、距離センサ30からレーザを照射した画像をカメラ40にて撮影し(S1422)、レーザの投光位置を画像上で検出する(S1423)。このとき、PCは、画像上で検出されたレーザの投光位置の画像座標値をx1,1とし、X1,1およびx1,1を記憶装置に記憶する(S1424)。
【0063】
同様にしてロボットのZ座標を変化させずにロボットアーム10をX1,2=[X1,2,Y1,2,Z1,2]T〜X1,N1=[X1,N1,Y1,N1,Z1,N1]Tへと順次移動させる。そして、PCは、それぞれの位置において画像上における投光位置の画像座標値x1,2〜x1,N1を検出し、X1,2〜X1,N1とx1,2〜x1,N1を記憶装置に記憶する(S1421〜S1425)。ここで、それぞれを状態座標群P1={X1,i|i=1…N1}、投光位置座標群S1={x1,i|i=1…N1}とする。なお、N1はロボットZ座標をZと固定したときにロボットを移動させる位置の数であり、N1≧3の任意の整数で設定される。ただし、X1,1からX1,N1までに設定されたロボット座標の位置ベクトル群のうち、3つ以上が線形独立である必要がある。例えばN1=3としたとき、X1,1=[100,100,100]T、X1,2=[100,200,100]TおよびX1,3=[300,100,100]Tのように設定すればよい。
【0064】
同様にして、PCは、ロボットZ座標をZと固定し、N2個のロボット座標X2,1〜X2,N2とそれらに対応する投光位置x2,1〜x2,N2を求める。そして、PCは、それらを状態座標群P2={X2,i|i=1…N2}および投光位置座標群S2={x2,i|i=1…N2}として記憶装置に記憶する(S1421〜S1426)。
【0065】
作業領域50の平面度が出ていれば、距離センサ30から投光されたレーザの投光位置は対応するロボット座標の作業領域50への正射影と考えてよい。このとき、作業領域50とロボット座標系における軸との平行度は問わない。ここで、高さZが等しいロボット座標群P={Xl,i|i=1…Ni}に対する投光位置の画像検出位置S={xl,i|i=1…Nl}を考えたる。このとき、投光位置を画像面に写す透視投影を含む変換Xi,i→xi,iは、同次座標系ではZの値を固定値とした線形変換となる。その逆変換xi,i→Xi,iも線形変換で表され、以下のように表現される。
【0066】
【数13】

【0067】
同次座標表現でXl,i=[Xl,i,Yl,i,Zl,1]、xl,i=[xl,i,yl,i,1]とする。ここで変換行列Aは下記のように表される。
【数14】

【0068】
数式13をXl,i、Yl,iに関して変形すると、
【数15】

と書くことができる。
【0069】
上記の観測値集合P、Sが得られたときXl,i、Yl,iそれぞれに関する誤差二乗和EXlおよびEYlを以下のように定義する。
【数16】

【0070】
これを最小二乗法で解けば線形変換行列Aを求めることができる。このようにしてそれぞれの観測値集合P1、S1およびP2、S2から算出された変換行列AおよびAから、投光位置とロボット座標の座標変換式が以下のようにして得られる(S1427)。
【0071】
【数17】

【0072】
この数式17それぞれの右辺に仮想目標点の画像座標値xを代入すると、ロボットZ座標をZおよびZとしたときに画像上で投光位置が仮想目標点と一致するロボット座標XL1、XL2の推定値が得られる(S1428)。PCは、このようにして取得したロボット座標XL1、XL2を記憶装置に記憶する(S1429)。そして、PCは、このようにして得られたロボット座標の推定値であるXL1をロボットアーム10に移動命令として与え(S1430)、距離センサ30を使って得られた測定電圧値をVとして記憶装置に記憶する(S1431)。同様にして、PCは、ロボットアームを座標XL2に移動させ、そのときの距離センサ30の測定電圧値をVとして記憶装置に記憶する(S1430〜S1431)。こうして、所定回数(本例では2回)だけ処理を繰り返した後、投光目標位置算出処理(S140)を終了する(ステップS1432)。
【0073】
以上により仮想目標点と投光位置が画像上で一致する2つのロボット位置を求めることができ、第1の実施形態と同様にして校正値算出処理(S150)において校正値を算出することができる。
【0074】
[第3の実施形態]
第2の実施形態では、図2に示すような第1の実施形態と同様の構成によるロボットシステムにおいて、作業領域50に所定レベル以上の平面度が出ていることを前提とした。しかしながら、作業領域50に凹凸などがあって平面度が出ていない場合であっても、図13に示すように作業領域50に平面度のある投光プレート200を置くことで、ビジュアルサーボを用いずに投光目標位置算出処理(S140)を実行できる。第3の実施形態では、投光プレート200を用いた投光目標位置算出処理(S140)により、XL1およびXL2を求めて校正を行う構成を説明する。ここで投光プレート200の設置角度は任意であって、ロボット座標の軸に対する平行度は問わない。
【0075】
第3の実施形態における投光目標位置算出処理(S140)では、PCは、校正プレート110を取り外した状態でロボットアーム10をロボット座標系における同一平面にある3点以上の位置に移動させる。そして、PCは、それぞれの位置で距離センサ30から投光プレート200へ照射された投光位置をカメラ40による撮影画像上で検出し、対応するロボット座標値と撮影画像における投光位置とを記憶装置に記憶する。PCは、ロボット座標系における別の同一平面上にある3点以上の位置でも同様にして投光位置を検出し、ロボット座標値と撮影画像における投光位置とを記憶装置に記憶する。そして、PCは、得られた2平面におけるそれぞれの座標変換行列から両平面において投光位置と仮想目標点が一致するロボット座標値を推定する。PCは、ロボットアーム10をその推定されたロボット座標に移動させて距離センサ30によって測定を行い、そのロボット座標とセンサ測定値を記憶装置に記憶する。
【0076】
以下に第3の実施形態における投光目標位置算出処理(S140)について図11のフローチャートを参照して詳細に説明する。
【0077】
まず、PCは、校正プレート110を取り外した状態で、距離センサ30から投光プレート200へ投光されたレーザの拡散反射が画像上に写るような任意のロボット座標位置へロボットアーム10を移動させる(S1421)。ここで、ロボット座標位置はX1,1=[X1,1,Y1,1,Z1]Tとする。そして、PCは、距離センサ30からレーザを照射した画像をカメラ40で撮影し(S1422)、距離センサ30のレーザ投光位置を画像上で検出する(S1423)。このとき、PCは、画像上で検出されたレーザの投光位置の画像座標値をx1,1とし、X1,1およびx1,1を記憶装置に記憶する(S1424)。
【0078】
同様にしてロボットのZ座標を変化させずにロボットアーム10をX1,2=[X1,2,Y1,2,Z1,2]T〜X1,N1=[X1,N1,Y1,N1,Z1,N1]Tへと順次移動させる。そして、PCは、それぞれの位置において画像上における投光位置の画像座標値x1,2〜x1,N1を検出し、X1,2〜X1,N1とx1,2〜x1,N1を記憶装置に記憶する(S1421〜S1425)。ここで、それぞれを状態座標群P1={X1,i|i=1…N1}、投光位置座標群S1={x1,i|i=1…N1}とする。なお、N1はロボットZ座標をZ1と固定したときにロボットを移動させる位置の数であり、N1≧3の任意の整数で設定される。ただし、X1,1からX1,N1までに設定されたロボット座標の位置ベクトル群のうち、3つ以上が線形独立である必要がある。例えばN1=3としたとき、X1,1=[100,100,100]T、X1,2=[100,200,100]TおよびX1,3=[300,100,100]Tのように設定すればよい。
【0079】
同様にして、PCは、ロボットZ座標をZと固定し、N2個のロボット座標X2,1〜X2,N2とそれらに対応する投光位置x2,1〜x2,N2を求める。そして、PCは、それらを状態座標群P2={X2,i|i=1…N2}および投光位置座標群S2={x2,i|i=1…N2}として記憶装置に記憶する(S1421〜S4126)。
【0080】
投光プレート200の平面度が出ていれば、距離センサ30から投光されたレーザの投光位置は対応するロボット座標の床面への正射影と考えてよい。よって、得られたロボット座標群と投光位置座標群を用いて第2の実施形態と同様の計算により以下の変換式が得られる(S1427)。
【0081】
【数18】

【0082】
数式18の右辺それぞれに仮想目標点の画像座標値xを代入すると、ロボットZ座標をZおよびZとしたときに画像上で投光位置と仮想目標点が一致するロボット座標XL1、XL2の推定値が得られる(S1428)。PCは、、このようにして取得したロボット座標XL1、XL2を記憶装置に記憶する(S1429)。そして、PCは、得られたロボット座標の推定値であるXL1をロボットアーム10に移動命令として与え(S1430)、距離センサ30を使って投光プレート200を測定して得られた測定電圧値をVとして記憶装置に記憶する(S1431)。同様にして、PCは、ロボットアーム10を座標XL2に移動させ、そのときの距離センサ30による測定電圧値をVとして記憶装置に記憶する(S1430〜S1431)。こうして、所定回数(本例では2回)だけ処理を繰り返した後、投光目標位置算出処理(S140)を終了する(ステップS1432)。
【0083】
以上により仮想目標点と投光位置が画像上で一致する2つのロボット位置を求めることができ、第1の実施形態と同様にして校正値算出処理(S150)において校正値を算出することができる。
【0084】
[第4の実施形態]
第2、第3の実施形態では、投光目標位置算出処理(S140)においてビジュアルサーボを用いない処理を説明した。第4の実施形態では、ビジュアルサーボを用いずに、作業基準点目標位置算出処理(S130)を実現する例を説明する。
【0085】
すなわち、PCは、カメラ40による撮影画像において、作業基準点の座標とそのときの移動作業部1の座標(ロボット座標)との対を複数取得する。そして、取得された複数対の座標に基づいて画像上で仮想目標点と作業基準点を一致させる、移動作業部1の座標(ロボット座標)を推定する。
【0086】
以下、図2に示すような第1の実施形態と同様の構成によるロボットシステムにおいて図5に示したような校正プレート110を使って行われる作業基準点目標位置算出処理(S140)により、XH1およびXH2を求めて校正を行う構成を説明する。
【0087】
第4の実施形態における作業基準点目標位置算出(処理S130)では、PCは、校正プレート110を取り付けた状態でロボットアーム10をロボット座標系における同一平面にある3点以上の位置に移動させる。そして、PCは、それぞれの位置における校正プレート上のマーカ111の位置をカメラ40による撮像画像上で検出し、得られた作業基準点100の撮影画像における位置と、それらに対応するロボット座標値を記憶装置に記憶する。PCは、ロボット座標系における別の同一平面上にある3点以上の位置についても上記と同様の処理を行う。すなわち、マーカ111を撮影画像上で検出して得られる作業基準点100の画像座標と、それらに対応するロボット座標値をPCの記憶装置に記憶する。PCは、こうして得られた2平面におけるそれぞれの座標変換行列から両平面において作業基準点100と仮想目標点が一致するロボット座標値を推定し、推定されたロボット座標値を記憶装置に記憶する。
【0088】
以下に第4の実施形態における作業基準点目標位置算出処理(S130)の詳細な説明を図12のフローチャートを参照して説明する。
【0089】
まず、PCは、校正プレート110を取り付けた状態で、マーカ111が画像上に写るような任意のロボット座標位置へロボットアーム10を移動させる(S1321)。ここで、ここで、ロボット座標位置はX1,1=[X1,1,Y1,1,Z1]Tとする。PCは、カメラ40により作業領域50を撮影し(S1322)、撮影画像からマーカ111の中心である作業基準点100を検出する(S1323)。このとき、PCは、画像上で検出された作業基準点100の画像座標をx1,1とし、X1,1およびx1,1を記憶装置に記憶する(S1324)。同様にしてロボットのZ座標を変化させずにロボットアーム10をX1,2=[X1,2,Y1,2,Z1,2]T〜X1,N1=[X1,N1,Y1,N1,Z1,N1]Tへと順次移動させる。そして、PCは、それぞれの位置における作業基準点100の画像座標値x1,2〜x1,N1を検出し、X1,2〜X1,N1とx1,2〜x1,N1を記憶装置に記憶する(S1321〜S1325)。ここで、それぞれを状態座標群群P1={X1,i|i=1…N1}、作業基準点座標群S1={x1,i|i=1…N1}とする。ここでN1はロボットZ座標をZと固定したときにロボットを移動させる位置の数であり、N1≧3の任意の整数で設定される。ただし、X1,1からX1,N1までに設定されたロボット座標の位置ベクトル群のうち、3つ以上が線形独立である必要がある。例えばN1=3としたとき、X1,1=[100,100,100]T、X1,2=[100,200,100]TおよびX1,3=[300,100,100]Tのように設定すればよい。
【0090】
同様にして、PCは、ロボットZ座標をZと固定し、N2個のロボット座標X2,1〜X2,N2とそれらに対応する作業基準点の画像座標値x2,1〜x2,N2を求める。そして、PCは、それらを状態座標群P2={X2,i|i=1…N2}および作業基準点座標群S2={x2,i|i=1…N2}として記憶装置に記憶する(S1321〜S1326)。
【0091】
それぞれの状態座標群P1およびP2に属するロボット座標点はそれぞれ同一平面上の点である。そのため、作業基準点100の画像平面上への正射影である作業基準点座標群S1およびS2は、それぞれが対応するロボット座標群と線形変換の関係にある。よって、得られたロボット座標群と作業基準点座標群を用いて、第2の実施形態における投光位置とロボット座標の変換式を求めるのと同様の計算により、以下の変換式が得られる(S1327)。
【0092】
【数19】

【0093】
数式19の右辺それぞれに仮想目標点の画像座標値xを代入すると、ロボットZ座標をZおよびZとしたときに作業基準点100が画像上で仮想目標点と一致するロボット座標XH1、XH2の推定値が得られる(S1328)。PCは、これら推定値を記憶装置に記憶する(S1329)。
【0094】
以上により仮想目標点と作業基準点100が画像上で一致する2つのロボット位置を求めることができる。よって、以降は第1の実施形態、第2の実施形態、あるいは第3の実施形態と同様にして、投光目標位置算出処理(S140)を実施し、第1の実施形態と同様の校正値算出処理(S150)により校正値を算出することができる。
【0095】
[第5の実施形態]
第1の実施形態乃至第4の実施形態における作業基準点目標位置算出処理(S130)および投光目標位置算出処理(S140)では、作業基準点100および投光位置が仮想目標点に一致するロボット座標をそれぞれ2点ずつ決定した。しかしながら、これらの処理において、作業基準点100および投光位置が仮想目標点に一致するロボット座標を3点以上求めることで、より誤差の少ない校正値が得られる。第5の実施形態では、そのような3点以上のロボット座標値を求めて、校正値を取得する処理を説明する。
【0096】
作業基準点目標位置算出処理(S130)において、異なるロボットZ座標Z〜Z(Z<Z<…<Z、K≧3)に対して、作業基準点100と仮想目標点が画像上で一致するロボット座標XH1〜XHKを求める。作業基準点目標位置算出処理(S130)には、第1実施形態で説明したビジュアルサーボを利用することができる。
【0097】
もしくは、第4の実施形態で説明した作業基準点目標位置算出処理を用いてもよい。すなわち、異なるロボットZ座標Z〜Z(Z<Z<…<Z、K≧3)に対して状態座標群PH1〜PHKおよび作業基準点座標群SH1〜SHKを収集する。そして、これらの観測値からロボットZ座標Z1〜ZKのときに作業基準点100と仮想目標点が画像上で一致するロボット座標XH1〜XHKの推定値を求める。
【0098】
また、投光目標位置算出処理(S140)において、上記作業基準点目標位置算出処理と共通のロボットZ座標Z1〜ZKに対してビジュアルサーボを用いて、投光位置と仮想目標点が画像上で一致するロボット座標XL1〜XLKを求める。
【0099】
もしくは、第2の実施形態あるいは第3の実施形態における投光目標位置算出処理(S140)を用いてもよい。すなわち、上述のロボットZ座標Z1〜ZKに対して状態座標群PL1〜PLKおよび投光位置座標群SL1〜SLKを収集する。そして、これらの観測値からロボットZ座標Z1〜ZKのときに投光位置と仮想目標点が画像上で一致するロボット座標XL1〜XLKの推定値を求める。
【0100】
上記いずれかの方法により得られたロボット座標点XH1〜XHKおよびXL1〜XLKを用いて、第1の実施形態における数式5〜数式11の代わりに以下のようにしてXH0およびXL0を求める。
【0101】
ロボット座標点XH1〜XHKを結ぶ直線は、画像上の作業基準点100を仮想目標点xに保ったままロボットが移動できるロボット座標集合をあらわす直線である。この直線lの方向ベクトルをHとすると、lのベクトル方程式は以下のように表現される。
【0102】
【数20】

【0103】
ここでXHは直線を通る任意の一点で、tは実数パラメータである。ただしXH1〜XHKは画像解像度による量子化誤差やマーカ111の検出誤差などを含み、通常は完全に一直線上に乗ることはないため、近似解として直線式を算出する。まず、XH1〜XHKの共分散行列C(3×3行列)を求める。
【0104】
【数21】

【0105】
共分散行列Cは対称行列であるため、これを固有値分解すると
【0106】
【数22】

【0107】
が得られる。ここでΛは固有値λ1、λ2およびλ3を対角成分に持つ行列、Ψは各固有値に対応する固有ベクトルψ1、ψ2およびψ3を成分に持つ行列である。
【0108】
【数23】

【数24】

【0109】
点集合XH1〜XHKの平均二乗誤差を最小化する軸は主成分分析によって得られる主軸と等しいため、直線の方向ベクトルHを最大固有値に対応する固有ベクトルとする。すなわち、
【数25A】

とすると、方向ベクトルHは以下のようになる。
【数25B】

【0110】
また直線を通る任意の点Xは、XH1〜XHKの平均ベクトルとする。
【数26】

これら数式25Bおよび数式26により、直線lの方程式が得られる。
【0111】
同様にしてロボット座標点XL1〜XLKを結ぶ直線は、画像上の投光位置を仮想目標点xに保ったままロボットが移動できるロボット座標集合をあらわす直線である。この直線lの方向ベクトルをLとすると、lのベクトル方程式は以下のように表現される。
【数27】

【0112】
ここでXは直線を通る任意の一点で、sは実数パラメータである。ただしXL1〜XLKは画像解像度による量子化誤差や投光位置検出誤差などを含み通常は完全に一直線上に乗ることはないため、近似解としてlの直線式を算出する。数式27の直線方程式は数式20の直線方程式を求めるときと同様、XL1〜XLKの共分散行列の固有値分解と平均ベクトルからLとXを求めて得ることができる。
【0113】
ここでZ=ZKのときに直線lが通る点をX^HK、直線lが通る点をX^LKとする。なお、以下において、

とする。
【0114】
X^HKおよびX^LKはいずれも、Z=ZKが既知であるため、それぞれの直線方程式におけるXのZ座標にZKを代入してZ座標に関して方程式を解けば実数パラメータtおよびsの値が求まる。そして、それによりX^HKおよびX^LKのXおよびY座標が得られる。同様にしてZ=Z1のときに直線lが通る点X^H1および直線lが通る点X^L1を求める。ロボットアーム10に移動命令X^L1およびX^LKを与えて移動させ、それぞれの位置で距離センサ30から得られた電圧値をV^およびV^とする。すると、距離センサ30の電圧値をロボット座標系スケールにおける距離へと変換する比例定数ηは下記のようにして求められる。
【0115】
【数28】

【0116】
また、画像上の投光位置を仮想目標点xに保ったまま作業基準面112を、レーザを投光した位置の高さに一致するようロボットアーム10を下げた仮想位置XL0は下記のように推定される。
【0117】
【数29】

【0118】
次に、直線lのベクトル方程式は以下のように書いても同値であることを考える。
【数30】

【0119】
ここで移動量lHK→H0はX^HKからXH0への移動量とする。移動量lHK→H0とX^H1からX^HKへの移動量の比は、X^LKからXL0への移動量とX^L1からX^LKへの移動量の比に等しいため、
【数31】

となる。よってXH0
【数32】

と算出される。
【0120】
オフセット量WはXH0とXL0の相対的な位置関係に等しいため、
【数33】

となる。
【0121】
PCは、以上のようにして得られたバイアス電圧V、比例定数η、センサオフセット量W、レーザ光軸正規化方向ベクトルLを、記憶装置に記憶し、校正作業を終了する。
【0122】
[第6の実施形態]
図14に、本発明を実施するために適した第6の実施形態のおける具体的な装置構成を示す。
【0123】
作業領域50に対して、可動式のロボットアーム10が固定されている。ロボットアーム10のエンドエフェクタ取り付け部分にハンドベースプレート31が設置され、ロボットハンド20はハンドベースプレート31に固定されている。これらは図1における移動作業部1に相当するものである。ハンドベースプレート31にはさらにパターン投光用のプロジェクタ33と投光パターン撮影用カメラ32が固定されている。ロボットアーム10のエンドエフェクタ移動時には、ハンドベースプレート31を介してロボットハンド20とプロジェクタ33および投光パターン撮影用カメラ32の相対位置関係が変化しないように動作する。ここでプロジェクタ33と投光パターン撮影用カメラ32は空間コード化手法によって距離情報を測定するためのものであり、図1における距離情報取得部2に相当する。空間コード化とは、プロジェクタから測定対象物へ複数フレームに渡って異なるパターンを投影することで空間上の各投影線を2進コードで符号化し、距離を求める方法である。
【0124】
プロジェクタ33と投光パターン撮影用カメラ32はPCに接続されている。PCではプロジェクタ33によって投影された複数のパターン光を投光パターン撮影用カメラ32で撮影した画像から画像上の各位置における2進コードを解析して距離測定値を得る。ロボットアーム10は図示しないロボットコントローラに接続され、ロボットコントローラからの動作信号に従って動作する。PCとロボットコントローラは、図1における処理装置3に相当する。ロボットの上部空間には図1の撮像装置4に相当するカメラ40が設置され、作業領域50を撮影するようになっている。カメラ40は前述のPCに接続され、カメラ40から獲得される画像に対してPC上で動作するプログラムによって所定の処理が行われる。ロボットコントローラとPCは接続されており、PCからの指令に従ってロボットコントローラからロボットアーム10に対して命令を送ることができる。
【0125】
この装置構成においては、以下のような方法で本発明が実施される。なお、校正作業の開始から作業基準点目標位置算出処理(S130)までは、上記実施形態と同様の方法によって実施される。以下、第6の実施形態において投光目標位置算出処理(S140)を、図15に示すフローチャートを参照して説明する。
【0126】
まず、PCは、ロボットアーム10を、ロボット座標系のZ座標をZ1に固定した任意の位置へ移動させ(S1441)、カメラ40とプロジェクタ33を同期させてコード化に必要なフレーム数撮影する(S1442)。PCは、カメラ40から得られる画像からプロジェクタ光軸中心に割り当てられた2値コードbを検出し(S1443)、検出結果を元に、2値コードbとなる投光位置が仮想目標点に一致するようにロボットアーム10を移動させる。2値コードbとなる投光位置を仮想目標点に一致させるための移動には、第1の実施形態と同様に特徴ベースのビジュアルサーボなどを用いる。
【0127】
続いて、PCは、前フレームにおけるロボットアーム10のロボット座標系における移動ベクトルに対して画像座標系における投光位置の移動ベクトルを算出することで画像ヤコビアンを計算する(S1444)。そして、PCは、仮想目標点xと、投光位置の画像上における差分ベクトルと、得られた画像ヤコビアンとから、差分ベクトルを小さくする方向にロボットアーム10を移動させる(S1445)。PCは、再びカメラ40とプロジェクタ33を同期させてコード化に必要なフレーム数撮影する(S1446)。そして、PCは、カメラ40から得られる画像からプロジェクタ光軸中心に割り当てられた2値コードbを検出する(S1447)。PCは、仮想目標点xと投光位置の画像上におけるユークリッド距離を閾値ε(例えば、ε=0.5[pixel])と比較し(S1448)、閾値εよりも大きければ処理を1444に戻す。
【0128】
上記ユークリッド距離が閾値εよりも小さければ、PCは、仮想目標点xと投光位置が画像上で一致したものと判断し、このときのロボット座標をXL1として記憶装置に記憶する(S1449)。また、PCは、2値コードbとなる投光位置における距離情報をVとして記憶装置に記憶する(S1450)。
【0129】
同様にして、PCは、ロボットアーム10の高さをロボット座標系のZ座標をZ2へと変えて移動させて、bと等しい2値コードを持つ投光位置を画像上で検出する。そして、PCは、検出結果を元に2値コードbとなる投光位置を仮想目標点に一致するようにロボットアーム10を移動させる。そして、PCは、投光位置と仮想目標点が一致したときのロボット座標をXL2、2値コードbとなる投光位置における距離情報をVとして記憶装置に記憶させる(S1441〜S1450)。以上の処理を所定回数(本例では2回)繰り返してならば、PCは、ロボット座標および距離測定が終了したものとして投光目標位置算出処理(S140)を終了する(S1451)。
【0130】
なお、第2の実施形態のように作業領域50の平面度がある場合、もしくは第3の実施形態のように作業領域50に平面度のある投光プレート200を置いた場合、下記のようにして投光目標位置算出処理(S140)を行うこともできる。
【0131】
図16のフローチャートに示されるように、まず、PCは、ロボットアーム10をロボット座標系のZ座標をZ1とした任意の位置へ移動させる(S1461)。続いて、PCは、カメラ40と距離センサ30のプロジェクタを同期させてコード化に必要なフレーム数撮影し(S1462)、プロジェクタ光軸中心を表す2値コードbを画像上から検出する(S1463)。PCは、同様の処理を、ロボット座標系のZ座標をZ1とした3つ以上のロボット座標に関して行い、これらのロボット座標を状態座標群P1とする。そして、これらのロボット座標に対応する2値コードbの検出された画像座標位置を投光位置座票群S1とする(S1461〜S1465)。
【0132】
同様にして、PCは、ロボットアーム10の高さをロボット座標系のZ座標をZ2とした任意の3つ以上のロボット座標点を状態座標群P2とする。そして、2値コードbの検出された画像座標位置を投光位置座票群S2とする(S1461〜S1466)。PCは、これら状態座標群P1およびP2、投光位置座標群S1およびS2から、第2の実施形態と同様の計算により数式17と同様の座標変換式を算出する(S1467)。そして、PCは、2値コードbの位置が仮想目標点と一致するときのロボット座標XL1およびXL2の推定値を算出し(S1468)、記憶装置に記憶する(S1469)。そして、PCは、算出されたロボット座標XL1にロボットアーム10を移動させ(S1470)、2値コードbに対応する位置の距離情報をVとして記憶装置に記憶する(S1471)。また、PCは、ロボット座標XL2においても同様にしてロボットアームを移動させて2値コードbに対応する位置の距離情報をVとして記憶装置に記憶させ(S1472)、投光目標位置算出処理(S140)を終了する。
【0133】
また投光目標位置算出処理(S140)において、第5の実施形態と同様にして投光位置と仮想目標点が一致するロボット座標を3点以上求めることで、より誤差の少ない校正値を得ることもできることは明らかである。その後、校正値算出処理(S150)では、PCは、第1の実施形態と同様にして校正値を算出し、校正作業を終了する。
【0134】
以上説明したように、各実施形態によれば、ロボットアームの任意の位置に任意の取り付け精度で設置された距離センサに関して、ロボット座標系における距離センサの光軸方向とオフセット量を非接触かつ自動的に校正値として算出することが可能である。
【0135】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0136】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【0137】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0138】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【0139】
コンピュータプログラムを供給するためのコンピュータ読み取り可能な記憶媒体としては以下が挙げられる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などである。
【0140】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムをハードディスク等の記録媒体にダウンロードすることが挙げられる。この場合、ダウンロードされるプログラムは、圧縮され自動インストール機能を含むファイルであってもよい。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0141】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布するという形態をとることもできる。この場合、所定の条件をクリアしたユーザに、インターネットを介してホームページから暗号を解く鍵情報をダウンロードさせ、その鍵情報を使用して暗号化されたプログラムを実行し、プログラムをコンピュータにインストールさせるようにもできる。
【0142】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行ない、その処理によって前述した実施形態の機能が実現される。
【0143】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれて前述の実施形態の機能の一部或いは全てが実現されてもよい。この場合、機能拡張ボードや機能拡張ユニットにプログラムが書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行なう。
【図面の簡単な説明】
【0144】
【図1】本発明の実施形態による作業装置の構成の概要を示したブロック図である。
【図2】本発明の実施形態に係る作業装置の構成例を示した図である。
【図3】作業基準点を説明した図である。
【図4】本発明の実施形態による校正処理を説明するフローチャートである。
【図5】実施形態による校正プレートを説明する図である。
【図6】第1の実施形態における作業基準点目標位置算出処理の詳細を示すフローチャートである。
【図7】第1の実施形態における投光目標位置算出処理の詳細を示すフローチャートである。
【図8】作業基準面とバイアスを説明した図である。
【図9】実施形態における校正値を説明した図である。
【図10】実施形態による校正原理を示した図である。
【図11】第2の実施形態および第3の実施形態における投光目標位置算出処理の詳細を示すフローチャートである。
【図12】第4の実施形態における作業基準点目標位置算出処理の詳細を示すフローチャートである。
【図13】第3の実施形態における、投光プレートを用いた校正に関して説明した図である。
【図14】第6の実施形態による作業装置の構成を示した図である。
【図15】第6の実施形態における投光目標位置算出処理の詳細を示すフローチャートである。
【図16】第6の実施形態における投光目標位置算出処理の他の手順を示すフローチャートである。

【特許請求の範囲】
【請求項1】
作業部を作業位置へ移動させる移動手段と、前記移動手段に設置されて前記作業部とともに移動する距離情報取得手段と、前記移動手段とは独立して固定された撮像装置とを備える作業装置の校正方法であって、
前記撮像装置における画像平面上に仮想目標点を設定し、前記撮像装置によって撮影された画像において前記作業部の作業基準点と前記仮想目標点とを一致させるための前記移動手段の座標を複数取得する第1取得工程と、
前記画像において、前記距離情報取得手段の投光位置と前記仮想目標点を一致させる前記移動手段の座標と、その位置における前記距離情報取得手段から得られる距離情報とを複数取得する第2取得工程と、
前記第1取得工程及び前記第2取得工程で取得された座標及び距離情報に基づいて、前記移動手段と前記距離情報取得手段のための校正用パラメータを算出する算出工程とを有することを特徴とする作業装置の校正方法。
【請求項2】
前記作業基準点は、前記作業部が作業を行う位置であり、前記移動手段が前記作業部を移動する際に前記距離情報取得手段と共に移動する点であることを特徴とする請求項1に記載の作業装置の校正方法。
【請求項3】
前記第1取得工程では、前記作業基準点が前記画像上で前記仮想目標点と一致する複数の状態へと前記移動手段により前記作業部を移動させることを特徴とする請求項1に記載の作業装置の校正方法。
【請求項4】
前記第2取得工程では、前記投光位置が前記画像上で前記仮想目標点と一致する複数の状態へと前記移動手段により前記作業部を移動させ、前記複数の状態において前記距離情報取得手段によって距離情報を取得することを特徴とする請求項1に記載の作業装置の校正方法。
【請求項5】
前記校正用パラメータとは、前記距離情報取得手段の光軸方向、及び、前記距離情報取得手段と前記作業基準点との相対位置であることを特徴とする請求項1に記載の作業装置の校正方法。
【請求項6】
前記第1取得工程では、
前記画像における作業基準点の座標とそのときの前記移動手段における座標との対を複数取得し、取得された複数対の座標に基づいて前記画像上で前記作業基準点を前記仮想目標点と一致させる、前記移動手段の複数の座標を推定することを特徴とする請求項1に記載の作業装置の校正方法。
【請求項7】
前記第1取得工程では、
前記複数対の座標に基づいて、前記作業基準点が画像上で前記仮想目標点と一致する前記移動手段の座標を最小二乗法によって推定することを特徴とする請求項6に記載の作業装置の校正方法。
【請求項8】
前記第2取得工程では、
前記画像における前記距離情報取得手段による投光位置の座標とそのときの前記移動手段の座標との対を複数取得し、取得された複数対の座標に基づいて前記画像上で前記投光位置を前記仮想目標点と一致させる、前記移動手段の複数の座標を推定し、
推定された複数の座標の各々へ前記移動手段を移動して、前記距離情報取得手段によって距離情報を取得することを特徴とする請求項1に記載の作業装置の校正方法。
【請求項9】
前記第2取得工程では、
前記複数対の座標から、前記投光位置が前記画像上で前記仮想目標点と一致する前記移動手段の座標を、最小二乗法によって推定することを特徴とする請求項8に記載の作業装置の校正方法。
【請求項10】
前記第1取得工程では、取得された複数の座標を結ぶ直線を主成分分析により近似して取得し、前記算出工程で用いる座標を前記直線に基づいて取得し、
前記第2取得工程では、取得された複数の座標を結ぶ直線を主成分分析により近似して取得し、前記算出工程で用いる座標を前記直線に基づいて取得し、前記算出工程で用いる距離情報を、前記算出工程で用いる座標へ前記移動手段を移動した時に前記距離情報取得手段から得られた距離情報とすることを特徴とする請求項1に記載の作業装置の校正方法。
【請求項11】
作業部を作業位置へ移動させる移動手段と、前記移動手段に設置されて前記作業部とともに移動する距離情報取得手段と、前記移動手段とは独立して固定された撮像装置とを備える作業装置であって、
前記撮像装置における画像平面上に仮想目標点を設定し、前記撮像装置によって撮影された画像において前記作業部の作業基準点と前記仮想目標点とを一致させるための前記移動手段の座標を複数取得する第1取得手段と、
前記画像において、前記距離情報取得手段の投光位置と前記仮想目標点を一致させる前記移動手段の座標と、その位置における前記距離情報取得手段から得られる距離情報とを複数取得する第2取得手段と、
前記第1取得手段及び前記第2取得手段で取得された座標及び距離情報に基づいて、前記移動手段と前記距離情報取得手段のための校正用パラメータを算出する算出手段とを備えることを特徴とする作業装置。
【請求項12】
請求項1乃至10のいずれか1項に記載された作業装置の校正方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項13】
請求項1乃至10のいずれか1項に記載された作業装置の校正方法をコンピュータに実行させるためのコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体。

【図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

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2010−152550(P2010−152550A)
【公開日】平成22年7月8日(2010.7.8)
【国際特許分類】
【出願番号】特願2008−328661(P2008−328661)
【出願日】平成20年12月24日(2008.12.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】