説明

キャリブレーション装置及びキャリブレーション方法

【課題】システム立ち上げ後におけるキャリブレーションの手間及び時間をシステム立ち上げ時より低減できるキャリブレーション装置を得ること。
【解決手段】キャリブレーション装置は、第2の記憶手段に記憶された3次元位置と3次元計測手段によりシステム立ち上げ後に取得された3次元位置とに基づいて、前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係のずれ量を推定する推定手段と、前記推定手段により推定されたずれ量を用いて、前記第2の記憶手段に記憶された2次元画像と前記2次元計測手段によりシステム立ち上げ後に取得された2次元画像との一致度を計算する計算手段と、前記計算手段により計算された一致度が閾値より小さい場合、前記推定手段により推定されたずれ量を用いて、前記第1の記憶手段に記憶された関連情報を補正する補正手段とを備えている。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャリブレーション装置及びキャリブレーション方法に関する。
【背景技術】
【0002】
ビジョンセンサの情報からロボットが作業するためには、ビジョンセンサの座標系をロボット座標系に変換する必要があり、この変換行列を求めることをキャリブレーションと呼ぶ。
【0003】
システムを立ち上げた時や、立ち上げ後に衝突などで位置ずれが発生した時には、キャリブレーションを実施する必要がある。ロボットによる作業に対して要求される精度が高くなるほど、キャリブレーションに対して要求される精度も高くなる。そのため、熟練作業者が時間をかけて作業を行っていたが、手間と時間とがかかり手戻りも多く、キャリブレーションが必要なビジョンセンサを用いたシステムの保全性が低下する傾向にある。
【0004】
それに対して、特許文献1には、ロボットアーム装置のアーム先端部に指し棒を把持させ、ステレオ画像計測装置の画像内にアーム先端部の指し棒が映し出された状態で指し棒が長方形を描くようにロボットアームを動作させ、このときの位置データを基に、ステレオ画像計測装置の座標系からロボットアーム装置の座標系への座標変換データを計算することが記載されている。これにより、特許文献1によれば、キャリブレーション作業を自動化できるとされている。
【0005】
また、特許文献2には、ロボットビジョンシステムにおいて、ロボットのアームの先端にチェッカーボードを固定し、機構的に既知な位置に固定された指示ピンがチェッカーボード上の交点と同一点となるようにアームを動かし、ロボット座標系におけるチェッカーボード上の各マーカーの3次元座標を求めることが記載されている。また、右カメラの撮影画像及び左カメラの撮影画像をそれぞれ画像解析して、ステレオカメラ座標系におけるチェッカーボード上の各マーカーの3次元座標を求め、ロボット座標系におけるマーカーの3次元座標とステレオカメラ座標系におけるマーカーの3次元座標とを対応付けることにより、ステレオカメラ座標系からロボット座標系への剛体変換行列を求めるとされている。これにより、特許文献2によれば、キャリブレーション作業を自動で行うことができるとされている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特許第3402021号公報
【特許文献2】特開2010−172986号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1、2に記載の技術は、いずれも、キャリブレーションを行う際にロボットのアーム先端にマーカーとなるものを把持又は固定させることが必要である。このため、システム立ち上げ後、ロボットへの所定の物体の衝突などにより既にキャリブレーション済みであるロボットの座標系とビジョンセンサの座標系との間に位置ずれが発生した際にも、システム立ち上げ時と同じキャリブレーション作業を行う必要がある。このため、システム立ち上げ後のキャリブレーションにおいて、システム立ち上げ時と同じ手間及び時間が必要になる。
【0008】
例えば、実際の生産ラインでロボットの座標系とビジョンセンサの座標系との相対的な位置関係にずれが生じた際、生産ラインの中へ人が立ち入り、ロボットのアーム先端に指し棒を把持させる必要がある。あるいは、ロボットのアーム先端から作業用のエンドエフェクタを取り外し、ロボットのアーム先端にチェッカーボードを取り付ける必要がある。
【0009】
本発明は、上記に鑑みてなされたものであって、システム立ち上げ後におけるキャリブレーションの手間及び時間をシステム立ち上げ時より低減できるキャリブレーション装置及びキャリブレーション方法を得ることを目的とする。
【課題を解決するための手段】
【0010】
上述した課題を解決し、目的を達成するために、本発明の1つの側面にかかるキャリブレーション装置は、ロボットを有するシステムのキャリブレーションを行うキャリブレーション装置であって、前記ロボットの手先により作業が行われる作業エリア周辺の2次元画像を取得する2次元計測手段と、前記作業エリア周辺の3次元位置を取得する3次元計測手段と、前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係を記述する関連情報を記憶する第1の記憶手段と、前記2次元計測手段によりシステム立ち上げ時に取得された2次元画像と前記3次元計測手段によりシステム立ち上げ時に取得された3次元位置とを記憶する第2の記憶手段と、前記第2の記憶手段に記憶された3次元位置と前記3次元計測手段によりシステム立ち上げ後に取得された3次元位置とに基づいて、前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係のずれ量を推定する推定手段と、前記推定手段により推定されたずれ量を用いて、前記第2の記憶手段に記憶された2次元画像と前記2次元計測手段によりシステム立ち上げ後に取得された2次元画像との一致度を計算する計算手段と、前記計算手段により計算された一致度が閾値より小さい場合、前記推定手段により推定されたずれ量を用いて、前記第1の記憶手段に記憶された関連情報を補正する補正手段とを備えたことを特徴とする。
【発明の効果】
【0011】
本発明によれば、システム運用時に3次元計測手段の座標系に対するロボットの座標系の相対的な位置関係のずれが発生した際、2次元計測手段及び3次元計測手段の計測データを用いてずれの補正を行うので、キャリブレーション用の専用の計測対象物の設置が必要なく、ロボットの作業エリアに作業者が入る必要がない。これにより、システム立ち上げ後におけるキャリブレーションの手間及び時間をシステム立ち上げ時より低減できる。
【図面の簡単な説明】
【0012】
【図1】図1は、実施の形態に係るキャリブレーション装置の構成を示す図である。
【図2】図2は、実施の形態に係るキャリブレーション装置の構成を示す図である。
【図3】図3は、システム立ち上げ時におけるキャリブレーション装置の動作を示すフローチャートである。
【図4】図4は、5箇所の観測位置の位置と姿勢を表す概念図である。
【図5】図5は、各観測位置におけるマーカーの観測画像である。
【図6】図6は、システム立ち上げ後におけるキャリブレーション装置の動作を示すフローチャートである。
【図7】図7は、実施の形態の変形例に係るキャリブレーション装置の構成を示す図である。
【発明を実施するための形態】
【0013】
以下に、本発明にかかるキャリブレーション装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【0014】
実施の形態.
実施の形態にかかるキャリブレーション装置100について説明する。
【0015】
キャリブレーション装置100は、図1に示すように、ロボットRB及び3Dセンサ21を有するロボットシステムRSのキャリブレーションを行う。キャリブレーションとは、例えば、3Dセンサ21の座標系(x,y,z)からロボットRBの座標系(X,Y,Z)への座標変換を行うための変換行列を求めることである。
【0016】
まず、キャリブレーション装置100がキャリブレーションを行う対象であるロボットシステムRSについて説明する。
【0017】
ロボットRBは、例えば、6自由度の多関節ロボットであり、ロボットアームの先端には、フランジRB2が設けられている。このフランジRB2には作業用のツールとして例えばロボットハンドRB1等が装着される。そして、このフランジRB2には、ロボットハンドRB1等のツールと並んで3Dセンサ21及び2Dセンサ11が取り付けられている。これにより、ロボットRBは、作業エリアWAの作業台WT上に配置された所定の対象物に対して組み付けや加工等の作業を行う。
【0018】
ロボット座標系(X,Y,Z)の原点は、例えばロボットRBの基部の底面にあり、Z軸を垂直方向にとって定義される。図1ではこのロボット座標系(X,Y,Z)を便宜上少しずらして描いている。フランジ座標系(X,Y,Z)は、ロボットRBの手先のフランジRB2に定義された座標系で、同様に図1では便宜上少しずらして描いている。フランジ座標系(X,Y,Z)の位置と姿勢はロボットコントローラRCが制御している。
【0019】
3Dセンサ21を用いて対象物の位置を計測し、それに基づいてロボットRBを動作させるために、3Dセンサ21によって得られる対象物の位置データをロボットRBが動作する座標系上のデータに変換する。つまり、3Dセンサ21の座標系(x,y,z)と、ロボット30が動作する座標系(X,Y,Z)の間の関係を予め求める。ロボットアーム先端のフランジRB2に定義されているフランジ座標系(X,Y,Z)をロボット座標系(X,Y,Z)に変換するパラメータが、ロボットコントローラRCの記憶部RC3にあらかじめ記憶されている。そして、このフランジRB2に3Dセンサ21が取付けられているので、センサ座標系(x,y,z)をフランジ座標系(X,Y,Z)に変換するパラメータ(回転行列と並進ベクトル)をキャリブレーションすればよい。これにより、3Dセンサ21で検出したセンサ座標系における対象物の座標をフランジ座標系における座標に変換し、さらにそれをロボット座標系における座標に変換することができる。
【0020】
ロボットコントローラRCは、マイクロプロセッサからなる中央演算処理装置(CPU)と、CPUにバス結合されたROMメモリ、RAMメモリ、不揮発性メモリ、ロボットの軸制御のためのディジタルサーボ回路と、サーボアンプ、外部信号の入出力装置、画像処理装置と結ばれた通信インターフェイス等を備えている。これら電子部品は、機能的に制御部RC1、演算部RC2、記憶部RC3を構成している。
【0021】
記憶部RC3を構成するメモリのうち、ROMメモリにはシステムを制御するシステムプログラムが格納され、RAMメモリはCPUが行なう処理のためのデータの一時記憶等に使用される。また、不揮発性メモリには、動作プログラムのデータや、システムの動作に必要な各種設定値が格納される。この各種設定値には、ロボットRBのフランジRB2に定義されているフランジ座標系(X,Y,Z)をロボット座標系(X,Y,Z)に変換するパラメータ、すなわち、フランジ座標系(X,Y,Z)とセンサ座標系(x,y,z)の相対的な関係を記述する関連情報(例えば、回転行列や並進ベクトルなどのパラメータ)も含まれている。ロボットコントローラRCは、フランジRB2の位置姿勢を制御すると同時にそのデータをリアルタイムでアップデートしており、出力することができる。なお、本実施の形態の記憶部RC3は、ロボットコントローラRCの内部に設けられているが、外部に設けられた記憶装置であってもよい。
【0022】
手動操作パネルPAは、ロボットRBの手動操作をするためのパネルであり、このパネル上に設けられたボタン、ジョイスティックなどを操作することにより、ロボットRBを手動操作できるようになっている。
【0023】
次に、キャリブレーション装置100の構成について図2を用いて説明する。図2は、キャリブレーション装置100の構成を示すブロック図である。
【0024】
キャリブレーション装置100は、制御部90、2次元計測部10、3次元計測部20、第1の記憶部30、第2の記憶部40、推定部50、計算部60、比較部65、補正部70、及び表示部80を備える。
【0025】
制御部90は、キャリブレーション装置100における各部を全体的に制御する。
【0026】
2次元計測部10は、作業エリアWA周辺の2次元画像を取得する。作業エリアWAは、ロボットRBのロボットハンドRB1等により作業が行われるためのエリアである。2次元計測部10は、例えば、作業エリアWA周辺における複数の計測位置のそれぞれで2次元画像を取得する。
【0027】
具体的には、2次元計測部10は、2Dセンサ11及び信号処理部12を有し、2Dセンサ11により複数の計測位置のそれぞれの2次元画像を撮像し、2Dセンサ11により撮像された複数の2次元画像の画像信号に対して信号処理部12により所定の信号処理(アナログ信号処理等)を行う。
【0028】
2次元計測部10は、システム立ち上げ時に、取得した例えば複数の計測位置の2次元画像を制御部90経由で第2の記憶部40へ供給する。2次元計測部10は、システム立ち上げ後に、取得した例えば複数の計測位置の2次元画像を制御部90経由で計算部60へ供給する。
【0029】
3次元計測部20は、作業エリアWA周辺の3次元位置を取得する。3次元計測部20は、例えば、作業エリアWA周辺における複数の計測位置のそれぞれで3次元位置を取得する。3次元計測部20は、取得した例えば複数の計測位置の3次元位置を制御部90経由で第2の記憶部40又は推定部50へ供給する。
【0030】
具体的には、3次元計測部20は、3Dセンサ21、信号処理部22、及び演算部23を有し、3Dセンサ21は、右センサ211及び左センサ212を有する。右センサ211により複数の計測位置のそれぞれの2次元画像を撮像し、左センサ212により複数の計測位置のそれぞれの2次元画像を撮像し、右センサ211及び左センサ212により撮像された複数の2次元画像の画像信号に対して信号処理部22により所定の信号処理(アナログ信号処理等)を行って3次元画像信号を生成し、生成された3次元画像信号から演算部23は複数の計測位置の3次元位置を求める。
【0031】
3次元計測部20は、システム立ち上げ時に、取得した例えば複数の計測位置の3次元位置を制御部90経由で第2の記憶部40へ供給する。3次元計測部20は、システム立ち上げ後に、取得した例えば複数の計測位置の3次元位置を制御部90経由で推定部50へ供給する。
【0032】
第1の記憶部30は、例えば、上述したロボットコントローラRCの記憶部RC3に含まれており、関連情報31を記憶している。関連情報31は、3次元計測部20の座標系すなわちセンサ座標系(x,y,z)に対するロボットの座標系(X,Y,Z)の相対的な位置関係を記述する情報である。関連情報31は、例えば、センサ座標系(x,y,z)をフランジ座標系(X,Y,Z)に変換するパラメータ(例えば、回転行列Rや並進ベクトルTなどのパラメータ)や、フランジ座標系(X,Y,Z)をロボット座標系(X,Y,Z)に変換するパラメータ(例えば、回転行列Rや並進ベクトルTなどのパラメータ)などを含む。
【0033】
例えば、センサ座標系(x,y,z)は、次の数式(1)でフランジ座標系(X,Y,Z)に変換される。
【数1】

【0034】
また、例えば、フランジ座標系(X,Y,Z)は、次の数式(2)でロボット座標系(X,Y,Z)に変換される。
【数2】

【0035】
数式(1)、数式(2)を結合すると、次の数式(3)になる。
【数3】

すなわち、この式がセンサ座標系(x,y,z)をロボット座標系(X,Y,Z)に変換する式である。
【0036】
第2の記憶部40は、システム立ち上げ時に取得された2次元画像を2次元計測部10から制御部90経由で受けて記憶する。例えば、第2の記憶部40は、複数の計測位置の2次元画像を2次元画像群41として記憶する。2次元画像群41では、計測位置と2次元画像とが複数の計測位置のそれぞれについて対応付けられている。
【0037】
また、第2の記憶部40は、システム立ち上げ時に取得された3次元位置を3次元計測部20から制御部90経由で受けて記憶する。例えば、第2の記憶部40は、複数の計測位置の3次元位置を3次元位置群42として記憶する。3次元位置群42では、計測位置と3次元位置とが複数の計測位置のそれぞれについて対応付けられている。
【0038】
推定部50は、システム立ち上げ後に取得された3次元位置を3次元計測部20から制御部90経由で受ける。これに応じて、推定部50は、制御部90経由で第2の記憶部40にアクセスし、システム立ち上げ時に取得された3次元位置を第2の記憶部40から制御部90経由で読み出す。そして、推定部50は、システム立ち上げ時に取得された3次元位置とシステム立ち上げ後に取得された3次元位置とに基づいて、3次元計測部20の座標系(x,y,z)に対するロボットRBの座標系(X,Y,Z)の相対的な位置関係のずれ量を推定する。推定部50は、推定されたずれ量を制御部90経由で計算部60へ供給する。
【0039】
計算部60は、推定されたずれ量を推定部50から制御部90経由で受ける。また、計算部60は、システム立ち上げ後に取得された2次元画像を2次元計測部10から制御部90経由で受ける。これに応じて、計算部60は、制御部90経由で第2の記憶部40にアクセスし、システム立ち上げ時に取得された2次元画像を第2の記憶部40から制御部90経由で読み出す。そして、計算部60は、推定部50により推定されたずれ量を用いて、システム立ち上げ時に取得された2次元画像とシステム立ち上げ後に取得された2次元画像との一致度を計算する。例えば、計算部60は、システム立ち上げ時に取得された2次元画像とシステム立ち上げ後に取得された2次元画像との個別の一致度を複数の計測位置のそれぞれについて計算し、複数の計測位置について計算された個別の一致度の総和を求め、その総和を上記の一致度として計算する。計算部60は、計算された一致度を制御部90経由で比較部65へ供給する。
【0040】
比較部65は、計算された一致度を計算部60から制御部90経由で受ける。比較部65は、計算された一致度を閾値と比較し、比較結果を制御部90経由で補正部70及び表示部80へ供給する。
【0041】
補正部70は、比較結果を比較部65から制御部90経由で受ける。補正部70は、計算部60により計算された一致度が閾値より小さいことが比較結果により示されていた場合、推定部50により推定されたずれ量を用いて、第1の記憶部30に記憶された関連情報31を補正する。
【0042】
表示部80は、比較結果を比較部65から制御部90経由で受ける。表示部80は、計算部60により計算された一致度が閾値以上であることが比較結果により示されていた場合、推定部50により推定されたずれ量に応じた補正すべき方向を示すオブジェクトをロボットRBに関する画像に重ねて表示する。具体的には、表示部80は、ディスプレイ81及び表示制御部82を有し、例えば2次元計測部10によりシステム立ち上げ後に取得された2次元画像に例えば、図1に示す補正すべき方向を示す矢印のオブジェクトを重ね合わせた表示データを表示制御部82により生成し、その表示データに応じた図1に示すような画像をディスプレイ81により表示する。
【0043】
次に、ロボットシステムRSのシステム立ち上げ時におけるキャリブレーション装置100の動作について図3を用いて説明する。図3は、システム立ち上げ時におけるキャリブレーション装置100の動作を示すフローチャートである。
【0044】
ステップS1では、キャリブレーション装置100が、図4に示すようなマーカーMKを用いたキャリブレーション(フルキャリブレーション)を実施する。
【0045】
具体的には、マーカーMKが作業台WT(図1参照)上に配置される。作業者は、ロボットRBの手動操作パネルPAを操作して、順次ロボットRBの手先の位置と姿勢を制御しながら、3次元計測部20によるマーカーMKの検出を例えば5回実行し、各回のロボットRBの姿勢データR、TとマーカーMKのセンサ座標系上の座標とを対応付けて記録する。このときに姿勢を変えずに位置だけ手先を移動させた第1から第3の観測箇所(例えば、図4に示す観測1、観測2、観測3)にてマーカーMKの(例えば、白、黒交互に塗り分けたパターンにおける対角線の交点の)観測を行い、次いで手先の位置も姿勢も変化させた第4および第5の観測箇所(例えば、図4に示す観測4、観測5)でマーカーMKの観測を実行する(図5参照)。
【0046】
各観測毎に、ロボットコントローラRCから出力されるフランジ座標系(X,Y,Z)の位置、姿勢を表す回転行列Rfと並進ベクトルTfとが、画像処理装置から出力される観測されたマーカーMKのセンサ座標系(x,y,z)と対応づけられて記録される。
【0047】
第1から第3の観測箇所から並進ベクトルを含まない方程式が得られて、回転行列が容易に求まり、第1、第4及び第5の観測箇所からは回転行列、並進ベクトルを含む一般形の方程式が得られるが、回転行列がわかっていると並進ベクトルだけの方程式となり、容易に並進ベクトルが求まる。
【0048】
例えば、フランジRB2の姿勢をRfcに固定して、つまり3Dセンサ21の姿勢を同じに保ったまま、2つの位置Tf1およびTf2に移動してマーカーMKを観測したときのマーカーMKのセンサ座標系上の座標値をそれぞれ(x,y,z)、(x,y,z)とすると、ロボット座標系におけるマーカーMKの座標は同じであるから次の数式(4)が成り立つ。
【数4】

【0049】
数式(4)を変形すると、次の数式(5)が得られる。
【数5】

【0050】
同様にして、3Dセンサ21の姿勢を同じに保ったまま第3の位置Tf3に移動して、同じマーカーMKを観測すると、次の数式(6)が得られる。
【数6】

【0051】
数式(5)、数式(6)において未知数はRである。Rは3×3の行列で9要素からなるが、回転行列であることから、各列(各行)の要素の2乗和が1になるという制約条件があり、(x,y,z)、(x,y,z)、(x,y,z)が互いに異なっていれば、数式(5)、数式(6)からなる連立方程式を解いてRをユニークに決定できる。
【0052】
このようにして、システム立ち上げ時のキャリブレーション(ステップS1)の実施後に、ステップS2〜ステップS7の処理を、システム立ち上げ後の再キャリブレーションの事前準備として行う。
【0053】
ステップS2では、作業者は、ロボットRBの手動操作パネルPAを操作して、作業エリアWA周辺で計測位置P(i)(i=1,2,…,N)をN個登録し、ロボットコントローラRC或いは計算機のメモリに保存する。そして、キャリブレーション装置100は、計測位置を識別するためのパラメータiに初期値0を設定する。
【0054】
ステップS3では、キャリブレーション装置100が、計測位置を識別するためのパラメータiをインクリメントする。例えば、初回であれば、キャリブレーション装置100は、i=1とする。
【0055】
ステップS4では、キャリブレーション装置100が、ロボットRBを計測位置P(i)へ移動させる。例えば、初回であれば、キャリブレーション装置100は、ロボットRBを計測位置P(1)へ移動させる。
【0056】
ステップS5では、キャリブレーション装置100が、計測位置P(i)の3次元位置として3D点群データbPnt(i)を取得する。例えば、初回であれば、キャリブレーション装置100は、計測位置P(1)の3D点群データbPnt(1)を取得して第2の記憶部40に保存する。
【0057】
ステップS6では、キャリブレーション装置100が、計測位置P(i)の2次元画像として2D画像bImg(i)を取得する。例えば、初回であれば、キャリブレーション装置100は、計測位置P(1)の2D画像bImg(1)を取得して第2の記憶部40に保存する。
【0058】
ステップS7では、キャリブレーション装置100が、計測位置を識別するためのパラメータiが上限値Nより小さいか否かを判断する。キャリブレーション装置100は、パラメータiが上限値Nより小さい場合(ステップS7でYes)、まだ未計測の計測位置があるものとして、処理をステップS3へ戻し、パラメータiが上限値N以上である場合(ステップS7でNo)、全ての計測位置の計測を完了したものとして、処理を終了する。
【0059】
このようにして、各計測位置P(i)(i=1,2,…,N)で、2D画像bImg(i)と3次元点群データbPnt(i)とをそれぞれ計測し、第2の記憶部40に保存しておく。
【0060】
次に、ロボットシステムRSのシステム立ち上げ後におけるキャリブレーション装置100の動作について図6を用いて説明する。図6は、システム立ち上げ後におけるキャリブレーション装置100の動作を示すフローチャートである。
【0061】
キャリブレーション装置100は、センサ座標系(x,y,z)に対するロボット座標系(X,Y,Z)の相対的な位置関係にずれが発生したことを所定のセンサ(図示せず)により検知すると、ステップS11以降の簡易キャリブレーション補正処理を開始する。
【0062】
ステップS11では、キャリブレーション装置100が、計測位置を識別するためのパラメータiに初期値0を設定する。
【0063】
ステップS12では、キャリブレーション装置100が、計測位置を識別するためのパラメータiをインクリメントする。例えば、初回であれば、キャリブレーション装置100は、i=1とする。
【0064】
ステップS13では、キャリブレーション装置100が、ロボットRBを計測位置P(i)へ移動させる。例えば、初回であれば、キャリブレーション装置100は、ロボットRBを計測位置P(1)へ移動させる。
【0065】
ステップS14では、キャリブレーション装置100が、計測位置P(i)の3次元位置として3D点群データaPnt(i)を取得する。例えば、初回であれば、キャリブレーション装置100は、計測位置P(1)の3D点群データaPnt(1)を取得する。
【0066】
ステップS15では、キャリブレーション装置100が、計測位置を識別するためのパラメータiが上限値Nより小さいか否かを判断する。キャリブレーション装置100は、パラメータiが上限値Nより小さい場合(ステップS15でYes)、まだ未計測の計測位置があるものとして、処理をステップS12へ戻し、パラメータiが上限値N以上である場合(ステップS15でNo)、全ての計測位置の計測を完了したものとして、処理をステップS16へ進める。
【0067】
このようにして、各計測位置P(i)(i=1,2,…,N)で、3D点群データaPnt(i)を計測する。
【0068】
ステップS16では、キャリブレーション装置100が、センサ座標系(x,y,z)に対するロボット座標系(X,Y,Z)の相対的な位置関係のずれ量を推定する。具体的には、キャリブレーション装置100は、次の数式(7)の値を最小にする回転行列(回転成分)R、並進ベクトル(並進成分)Tを推定する。
【0069】

Σ{bPnt(i)−(R・aPnt(i)+T)} ・・・(7)
i=1
推定方法は特定の方法に限定されず、どんな手法を使っても良い。例えば、ICP(Iterative Closest Point)法と呼ばれる手法で、回転行列R、並進ベクトルTを求めることができる。
【0070】
ステップS17では、キャリブレーション装置100が、計測位置を識別するためのパラメータiに初期値0を設定する。
【0071】
ステップS18では、キャリブレーション装置100が、計測位置を識別するためのパラメータiをインクリメントする。例えば、初回であれば、キャリブレーション装置100は、i=1とする。
【0072】
ステップS19では、キャリブレーション装置100が、ステップS16で推定されたずれ量(例えば、回転行列R、並進ベクトルT)を用いて計測位置を修正する。例えば、キャリブレーション装置100は、次の数式(8)を用いて修正後のP’(i)を計算する。
【0073】
P’(i)=R・P(i)+T ・・・(8)
【0074】
ステップS20では、キャリブレーション装置100が、ロボットRBを計測位置P’(i)へ移動させる。例えば、初回であれば、キャリブレーション装置100は、ロボットRBを計測位置P’(1)へ移動させる。
【0075】
ステップS21では、キャリブレーション装置100が、計測位置P’(i)の2次元画像として2D画像aImg(i)を取得する。例えば、初回であれば、キャリブレーション装置100は、計測位置P’(1)の2D画像aImg(1)を取得する。
【0076】
ステップS22では、キャリブレーション装置100が、システム立ち上げ時に取得された2D画像bImg(i)とシステム立ち上げ後に取得された2D画像aImg(i)との一致度である個別の一致度E(i)を計算する。例えば、初回であれば、キャリブレーション装置100は、システム立ち上げ時に取得された2D画像bImg(1)とシステム立ち上げ後に取得された2D画像aImg(1)との一致度である個別の一致度E(1)を計算する。一致度の定義は例えば、画像の背景差分を用いて評価することが考えられる。
【0077】
ステップS23では、キャリブレーション装置100が、計測位置を識別するためのパラメータiが上限値Nより小さいか否かを判断する。キャリブレーション装置100は、パラメータiが上限値Nより小さい場合(ステップS23でYes)、まだ未計測の計測位置があるものとして、処理をステップS18へ戻し、パラメータiが上限値N以上である場合(ステップS23でNo)、全ての計測位置の計測を完了したものとして、処理をステップS24へ進める。
【0078】
このようにして、各計測位置P’(i)(i=1,2,…,N)で2D画像aImg(i)を計測するとともに、対応する各計測位置P(i)及びP’(i)(i=1,2,…,N)について個別の一致度E(i)を計算する。
【0079】
ステップS24では、キャリブレーション装置100が、個別の一致度E(i)の総和が閾値Tより大きいか否かを判断する。すなわち、キャリブレーション装置100は、次の数式(9)が成り立つか否かを判断する。
【0080】

ΣE(i)>T ・・・(9)
i=1
【0081】
キャリブレーション装置100は、数式(9)が成り立たない場合(ステップS24でNo)、センサ座標系(x,y,z)に対するロボット座標系(X,Y,Z)の相対的な位置関係のずれ量が補正可能な範囲内にあるものとして、処理をステップS25へ進める。あるいは、キャリブレーション装置100は、数式(9)が成り立つ場合(ステップS24でYes)、センサ座標系(x,y,z)に対するロボット座標系(X,Y,Z)の相対的な位置関係のずれ量が補正可能な範囲を超えているものとして、処理をステップS26へ進める。
【0082】
ステップS25では、キャリブレーション装置100が、システム立ち上げ時に計算した変換行列に、ステップS16で推定されたずれ量(例えば、回転行列R、並進ベクトルT)を反映させて補正する。例えば、キャリブレーション装置100は、数式(1)における回転行列R、並進ベクトルTに対して、それぞれ、回転行列R、並進ベクトルTを加算したものを新たに回転行列R、並進ベクトルTとする補正を行う。
【0083】
ステップS26では、キャリブレーション装置100が、フルキャリブレーションを行う。
【0084】
ここで、最初からフルキャリブレーションを行う場合、ステップS1と全く同じ処理を行うのであれば、キャリブレーション用のマーカーMKや冶具の計測位置姿勢を2Dセンサ、3Dセンサのそれぞれで試行錯誤しながら変更しなくてはならない。
【0085】
それに対して、本実施の形態では、キャリブレーション装置100が、推定されたずれ量に応じた補正すべき方向を示すオブジェクトをロボットRBに関する画像に重ねて表示する。例えば2次元計測部10によりシステム立ち上げ後に取得された2次元画像に例えば、図1に示す補正すべき方向を示す矢印のオブジェクトを重ね合わせた表示データを表示制御部82により生成し、その表示データに応じた図1に示すような画像をディスプレイ81により表示する。これにより、どちらの方向に移動すればキャリブレーションの補正を行うために次に必要な情報が得られるかの方向性を示すことができる。すなわち、フルキャリブレーションをステップS1よりも簡易に行うことができる。
【0086】
例えば、位置ずれ前及び位置ずれ後の3次元点群データbPnt(i)及びaPnt(i)(i=1,2,…,N)を用いて、bPnt(i)をどう動かせばaPnt(i)との一致度が高くなるかについて、数式(7)を最小化するような回転行列R、並進ベクトルTを計算する。そして、回転行列R、並進ベクトルTでキャリブレーション用の各計測位置を変換後、作業者がライブ画像を見ながら矢印のオブジェクトに従って微修正する。微修正後にキャリブレーション用のプログラムを走らせて位置ずれ後の再立上げが完了する。
【0087】
以上のように、実施の形態では、キャリブレーション装置100が、システム立上げ完了時点で、事前に作業エリア周辺の2次元画像及び3次元位置を取得しておく。センサ座標系とロボット座標系との相対関係が衝突により変化したときや、3Dセンサをセンサ自体の調整や修理などの目的で取り外して再度取り付けたりして変化したときに、再度作業エリア周辺の2次元画像及び3次元位置を取得する。位置ずれ発生前後の3次元点群データ間の位置ずれ量を計算することでキャリブレーションデータの補正パラメータを計算するとともに、位置ずれ発生前後の2次元画像間の一致度を計算し閾値と比較することで位置ずれ量が補正可能な範囲内か否かを判断する。これにより、ロボットとビジョンセンサの相対関係が衝突や取り付け直しでずれが発生した際、ずれ量が補正可能な範囲内であれば自動で位置ずれ量を補正して復旧することができる。
【0088】
したがって、システム運用時に位置ずれが発生した際、ゼロベースのフルキャリブレーションを行う必要がなく、作業エリア周辺の環境を撮影した2次元及び3次元の計測データを用いるので2Dセンサや3Dセンサの固定さえできれば、キャリブレーション用の専用の計測対象物の設置が必要なく、ロボットの作業エリアに作業者が入る必要がない。このため、再キャリブレーションの手間と時間を短縮できる。すなわち、システム立ち上げ後におけるキャリブレーションの手間及び時間をシステム立ち上げ時より低減できる。
【0089】
また、実施の形態では、キャリブレーション装置100が、推定されたずれ量に応じた補正すべき方向を示すオブジェクトをロボットRBに関する画像に重ねて表示する。これにより、補正すべき方向性が示されるので、ずれ量が補正可能な範囲を超えても、その後やり直すキャリブレーションの教示作業を支援してシステムの迅速な復旧を行うことができる。
【0090】
なお、キャリブレーション装置100iの表示部80iは、ディスプレイ81に代えて、又は、ディスプレイ81に加えて、図7に示すようなAR(Augmented Reality)ツール81iを有していても良い。すなわち、作業者WPにARツール81iを持たせ、表示部80iの表示制御部82(図2参照)は、ARツール81iと例えば無線通信回線で通信を行い、表示すべきデータをARツール81iへ送信する。これにより、ARツール81iのディスプレイにロボットを動かすべき方向を示すことで、計測位置の修正を容易にするような支援を行ってもよい。
【産業上の利用可能性】
【0091】
以上のように、本発明にかかるキャリブレーション装置は、ロボットを有するシステムのキャリブレーションに有用である。
【符号の説明】
【0092】
10 2次元計測部
20 3次元計測部
30 第1の記憶部
40 第2の記憶部
50 推定部
60 計算部
80、80i 表示部
100、100i キャリブレーション装置

【特許請求の範囲】
【請求項1】
ロボットを有するシステムのキャリブレーションを行うキャリブレーション装置であって、
前記ロボットの手先により作業が行われる作業エリア周辺の2次元画像を取得する2次元計測手段と、
前記作業エリア周辺の3次元位置を取得する3次元計測手段と、
前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係を記述する関連情報を記憶する第1の記憶手段と、
前記2次元計測手段によりシステム立ち上げ時に取得された2次元画像と前記3次元計測手段によりシステム立ち上げ時に取得された3次元位置とを記憶する第2の記憶手段と、
前記第2の記憶手段に記憶された3次元位置と前記3次元計測手段によりシステム立ち上げ後に取得された3次元位置とに基づいて、前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係のずれ量を推定する推定手段と、
前記推定手段により推定されたずれ量を用いて、前記第2の記憶手段に記憶された2次元画像と前記2次元計測手段によりシステム立ち上げ後に取得された2次元画像との一致度を計算する計算手段と、
前記計算手段により計算された一致度が閾値より小さい場合、前記推定手段により推定されたずれ量を用いて、前記第1の記憶手段に記憶された関連情報を補正する補正手段と、
を備えたことを特徴とするキャリブレーション装置。
【請求項2】
前記計算手段により計算された一致度が前記閾値以上である場合、前記推定手段により推定されたずれ量に応じた補正すべき方向を示すオブジェクトを前記ロボットに関する画像に重ねて表示する表示手段をさらに備えた
ことを特徴とする請求項1に記載のキャリブレーション装置。
【請求項3】
ロボットを有するシステムのキャリブレーションを行うキャリブレーション方法であって、
システム立ち上げ時に、前記ロボットの手先により作業が行われる作業エリア周辺の2次元画像を取得する第1の2次元計測ステップと、
システム立ち上げ時に、3次元計測手段により前記作業エリア周辺の3次元位置を取得する第1の3次元計測ステップと、
前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係を記述する関連情報を記憶する第1の記憶ステップと、
前記第1の2次元計測手段で取得された2次元画像と前記第1の3次元計測ステップで取得された3次元位置とを記憶する第2の記憶ステップと、
システム立ち上げ後に、前記作業エリア周辺の2次元画像を取得する第2の2次元計測ステップと、
システム立ち上げ後に、前記作業エリア周辺の3次元位置を取得する第2の3次元計測ステップと、
前記第2の記憶ステップで記憶された3次元位置と前記第2の3次元計測ステップで取得された3次元位置とに基づいて、前記3次元計測手段の座標系に対する前記ロボットの座標系の相対的な位置関係のずれ量を推定する推定ステップと、
前記推定ステップで推定されたずれ量を用いて、前記第2の記憶ステップで記憶された2次元画像と前記第2の2次元計測ステップで取得された2次元画像との一致度を計算する計算ステップと、
前記計算ステップで計算された一致度が閾値より小さい場合、前記推定ステップで推定されたずれ量を用いて、前記第1の記憶ステップで記憶された関連情報を補正する補正ステップと、
を備えたことを特徴とするキャリブレーション方法。
【請求項4】
前記計算ステップで計算された一致度が前記閾値以上である場合、前記推定ステップで推定されたずれ量に応じた補正すべき方向を示すオブジェクトを前記ロボットに関する画像に重ねて表示する表示ステップをさらに備えた
ことを特徴とする請求項3に記載のキャリブレーション方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−240174(P2012−240174A)
【公開日】平成24年12月10日(2012.12.10)
【国際特許分類】
【出願番号】特願2011−114870(P2011−114870)
【出願日】平成23年5月23日(2011.5.23)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】