説明

マニピュレータのキャリブレーション方法及びロボット制御システム

【課題】
マニピュレータのキャリブレーションをどこでも簡単に行うことができ、治具の準備などの作業工数を大幅に削減でき、特別な治具が準備できない環境でも即座にキャリブレーションを行うことが可能であり、マニピュレータに求められる本来の作業を行うための不必要な待ち時間や工数を削減する。
【解決手段】
複数の観測位置姿勢毎にレーザ変位センサLSにより治具Gの直線部上の点をそれぞれ検出する。検出した値から直線部上の検出点のロボット座標系の座標を、観測位置姿勢毎にそれぞれ求める。検出点の2つを一組として複数の組からロボット座標系を基準とした直線部の単位方向ベクトルを複数算出する。算出した直線部の単位方向ベクトルと、ロボット座標系のベクトル変数で表される直線部の単位方向ベクトルから連立方程式を作り、最小二乗法によりマニピュレータのキャリブレーションを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マニピュレータのキャリブレーション方法及びロボット制御システムに関するものである。
【背景技術】
【0002】
近年、手先カメラと呼ばれるセンサ装置をマニピュレータの先端に取り付け、センサから得られる情報により、マニピュレータの動作を制御する制御手法が開発されてきている。しかし、マニピュレータのモータ組み付け誤差やアーム加工誤差に加え、センサとマニピュレータの取り付け位置姿勢情報が正確に把握されていなければ、マニピュレータの正確な制御はできない。このため、マニピュレータの各リンク部の位置関係やマニピュレータの先端の座標系を基準としたセンサの位置姿勢情報を正確に導出する、つまりキャリブレーションを行うことが必要になる。
【0003】
ここで、手先カメラを持つマニピュレータのキャリブレーション方法としては、特許文献1がある。特許文献1では、マニピュレータの手先にCCDカメラを取り付け、所定位置に被写点を固定し、マニピュレータ及びカメラを様々に関節動作させ、撮像する。その後、実際のカメラの2次元画像上における被写点の位置と論理的に算出される被写点の位置のずれを複数個求め、マニピュレータのリンク要素のパラメータの補正値を変数として、ずれが最小になるように最小二乗法をすることにより補正値を演算する手法である。特許文献1では、各リンク長さを実際に測定することや、マニピュレータを実際にある一点に移動させる手間を省くことができ、作業工程が大幅に短縮できる利点がある。
【0004】
特許文献2では、手先カメラのキャリブレーションではないが、マニピュレータの先端に、特徴点を有する治具を取付けるとともに、マニピュレータを支持するロボット本体に固定した撮像用、照準用のセンサにより前記特徴点を持つ治具を観測して、三次元位置センサのキャリブレーションを行う方法が提案されている。特許文献2では、基準座標系における前記特徴点の三次元位置と、撮像用,照準用であるセンサ部の2つのカメラの撮像面における前記特徴点の位置との組み合せを複数求め、これらから三角測量の原理で2つのカメラ(センサ)の三次元位置をキャリブレーションするようにしている。この方法は、人手でセンサを動かさなくてもよいところから、作業者の目にレーザが当たる危険性を回避することができ、手間も少なくてすむ利点がある。
【0005】
又、特許文献3では、先端に視覚センサが取り付けられたロボットアームを姿勢変化させ、変化の前後それぞれにおいて、視覚センサにより取得されるワーク画像の変化と、カメラの取り付け位置姿勢の仮の値からワークの位置変化を求める。この際、仮の値を複数用意し、ワークの位置変化が最小となるものを選択することで、カメラの取り付け位置を決定することができる。
【0006】
特許文献3では、ワークの置き場所を自由に設定でき、実際の作業に近い状態でキャリブレーションができる利点がある。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第2682763号公報
【特許文献2】特開平11−33962号公報
【特許文献3】特開2007−61979号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ところで、特許文献1、特許文献3にみられるように、現在、手先カメラのキャリブレーション手法はいくつか提案されている。しかし、キャリブレーションの実行の際に特別な冶具が必要となっている。すなわち、特許文献1、特許文献3では専用のキャリブレーション用の装置、治具が必要となり、キャリブレーションのために多くの時間とコストが必要となる問題がある。特許文献2は、手先カメラではないが、マニピュレータ先端の位置を観測するためのカメラのキャリブレーションであるとともに、マニピュレータに取付する専用の治具が必要となる。
【0009】
本発明の目的は、直線部を有するだけの簡単な構成の治具により、センサのキャリブレーションのみならずマニピュレータのキャリブレーションをどこでも簡単に行うことができるとともに、前記治具の準備などの作業工数を大幅に削減できるばかりか、特別な治具が準備できない環境でも即座にキャリブレーションを行うことが可能であり、マニピュレータに求められる本来の作業を行うための不必要な待ち時間や工数が削減できるマニピュレータのキャリブレーション方法を提供することにある。
【0010】
又、本発明の他の目的は、上記のキャリブレーション方法を実行するロボット制御システムを提供することにある。
【課題を解決するための手段】
【0011】
上記問題点を解決するために、請求項1に記載の発明は、マニピュレータの周囲に配置された治具の直線部上の複数の点を、互いに異なる複数の観測位置姿勢をとらせた状態で、前記マニピュレータ先端に設けた視覚センサによりそれぞれ検出する第1ステップと、基準座標系を基準としたマニピュレータ先端座標系の原点位置姿勢と、前記マニピュレータ先端を基準とする前記視覚センサのセンサ座標系の原点位置姿勢を未知変数とした関数であるとともに、前記直線部上の点(以下、検出点という)の基準座標系座標を、前記観測位置姿勢毎にそれぞれ求める第2ステップと、前記観測位置姿勢毎に求めた前記直線部上の検出点の2つを一組としたとき、複数の組から前記関数を要素とするとともに、前記基準座標系を基準とした前記直線部の単位方向ベクトルを複数算出し、算出した前記直線部の単位方向ベクトルと、基準座標系のベクトル変数で表される前記直線部の単位方向ベクトルが等しいことを利用して連立方程式を作り、最小二乗法により、前記マニピュレータに関する第1較正値を求めるとともに、前記視覚センサのセンサ座標系の原点位置姿勢であって、前記マニピュレータ先端を基準とするセンサ座標系の原点位置姿勢を第2較正値として求める第3ステップを含むことを特徴とするマニピュレータのキャリブレーション方法を要旨としている。
【0012】
請求項2の発明は、請求項1において、前記連立方程式は、線形化して一次近似式にしたものであることを特徴とする。
請求項3の発明は、請求項2おいて、前記第1較正値及び第2較正値が、それぞれ仮の実数と誤差変数の和で成り立っているものとしたとき、前記第3ステップでは、第1較正値及び第2較正値がそれぞれ得られたとき、前記仮の実数を、該得られた第1較正値及び第2較正値に更新した後、前記誤差変数が予め定められた閾値以下になるまで前記第3ステップの処理を繰り返すことを特徴とする。
【0013】
請求項4の発明は、請求項1乃至請求項3のうちいずれか1項において、前記治具は、複数の面と面間に設けられた複数の稜線を有し、前記直線部は、複数の稜線のうち、1つの稜線であることを特徴とする。
【0014】
請求項5の発明は、マニピュレータの周囲に配置された治具の直線部上の複数の点を検出するために前記マニピュレータの互いに異なる複数の観測位置姿勢をとらせる制御手段と、前記マニピュレータの互いに異なる複数の観測位置姿勢毎に、マニピュレータ先端に設けられた視覚センサが前記治具の直線部上の異なる複数の点についてそれぞれ検出した値を記憶する記憶手段と、基準座標系を基準としたマニピュレータ先端座標系の原点位置姿勢と、前記マニピュレータ先端を基準とする前記視覚センサのセンサ座標系の原点位置姿勢を未知変数とした関数であるとともに、前記直線部上の点(以下、検出点という)の基準座標系座標を、前記観測位置姿勢毎にそれぞれ求める検出点座標算出手段と、前記観測位置姿勢毎に求めた前記直線部上の検出点の2つを一組としたとき、複数の組から前記関数を要素とするとともに、前記基準座標系を基準とした前記直線部の単位方向ベクトルを複数算出し、算出した前記直線部の単位方向ベクトルと、基準座標系のベクトル変数で表される前記直線部の単位方向ベクトルが等しいことを利用して連立方程式を作り、最小二乗法により、前記マニピュレータに関する第1較正値を求めるとともに、前記マニピュレータ先端を基準とするセンサ座標系の原点位置姿勢を第2較正値として求める処理を行う較正値算出手段を含むことを特徴とするロボット制御システムを要旨としている。
【0015】
請求項6の発明は、請求項5において、前記較正値算出手段は、前記連立方程式を、線形化して一次近似式にした上で前記較正値を算出するものであることを特徴とする。
請求項7の発明は、請求項6において、前記較正値算出手段は、前記第1較正値及び第2較正値が、それぞれ仮の実数と誤差変数の和で成り立っているものとし、第1較正値及び第2較正値がそれぞれ得られたとき、前記仮の実数を、該得られた第1較正値及び第2較正値に更新した後、前記誤差変数が予め定められた閾値以下になるまで、前記処理を繰り返すことを特徴とする。
【発明の効果】
【0016】
請求項1の発明によれば、直線部を有するだけの簡単な構成の治具により、センサのキャリブレーションのみならずマニピュレータのキャリブレーションをどこでも簡単に行うことができる。又、治具の準備などの作業工数を大幅に削減できるばかりか、特別な治具が準備できない環境でも即座にキャリブレーションを行うことが可能であり、マニピュレータに求められる本来の作業を行うための不必要な待ち時間や工数が削減できる。
【0017】
請求項2の発明によれば、連立方程式が線形化して一次近似式にされているため、第3ステップの処理で行う計算を簡便化でき、線形化して一次近似式にしない場合に比して、演算に係る時間を短くできる効果がある。
【0018】
請求項3の発明によれば、前記連立方程式を線形化すると誤差が生じるが、この誤差を閾値以下にすることができ、較正値の精度を保障することができる。
請求項4の発明によれば、治具の稜線を直線部としているため、特別な治具が必要でなくなり、直方体、立方体等の直線部を面間に有する既存の治具を使用することができ、或いは単純な形状の治具で良くなり、キャリブレーションのための特別な形状の治具を必要としない。
【0019】
請求項5の発明によれば、上記の請求項1のキャリブレーション方法を実行するロボット制御システムを提供できる。
請求項6の発明によれば、較正値算出手段は連立方程式が線形化して一次近似式にするため、第3ステップの処理で行う計算を簡便化でき、線形化して一次近似式にしない場合に比して、演算に係る時間を短くできるキャリブレーション方法を実行するロボット制御システムを提供できる。
【0020】
請求項7の発明によれば、前記連立方程式を線形化すると誤差が生じるが、この誤差を閾値以下にすることができ、較正値の精度を保障することができるキャリブレーション方法を実行するロボット制御システムを提供できる。
【図面の簡単な説明】
【0021】
【図1】一実施形態のロボット制御システムの構成を示すブロック図。
【図2】レーザ変位センサLSが治具に対して観測位置姿勢を変化させた状態を示す説明図。
【図3】実施形態で使用する座標系の説明図。
【発明を実施するための形態】
【0022】
以下、本発明を具体化した視覚センサを有するマニピュレータのキャリブレーション方法及びロボット制御システムを具体化した一実施形態を図1〜3を参照して説明する。
図1はロボット制御システム10の構成を示すブロック図である。ロボット制御システム10は、ワーク(作業対象物)に対して、特定の作業を行うように制御するものである。ロボット制御システム10は、前記作業を行うマニピュレータMと、マニピュレータMを制御するロボット制御装置RCと、ワークの形状を検出する視覚センサ及びレーザセンサとしてのレーザ変位センサLSとを備える。
【0023】
マニピュレータMは、フロア等に固定されるベース部材12と、複数の回転軸を介して連結された複数のアーム13とを備える。本実施形態のロボットは、6軸のロボットである。最も先端側に位置するアーム13先端(すなわち、マニピュレータM先端)には、前記特定の作業を行うためのツール(図示しない)、例えば、溶接トーチ、塗装ガン、ロボットハンド等が設けられる。
【0024】
ロボット制御装置RCは、コンピュータからなる。すなわち、ロボット制御装置RCはCPU(中央処理装置)20、マニピュレータMを制御するための各種プログラムを記憶する書き換え可能なROM21や、作業メモリとなるRAM22、各種データを記憶する書換可能な不揮発性メモリからなる記憶部23を備える。CPU20は、制御手段、検出点座標算出手段、及び較正値算出手段に相当する。又、記憶部23は記憶手段に相当する。
【0025】
前記ROM21には、マニピュレータのキャリブレーション、及び、前記ツールの特定の作業を行わせるための各種のロボット制御プログラムが記憶されている。そして、前記プログラムに従って前記CPU20が、各アーム13間に設けられた図示しないモータを制御駆動することにより、前記ツールの位置姿勢及びレーザ変位センサLSの観測位置姿勢が変化する。
【0026】
レーザ変位センサLSは、前記ツールと併設されるようにアーム13先端(すなわち、マニピュレータ先端)にブラケットBrを介して取付けされている(図3参照)。そして、本実施形態では、このマニピュレータM先端において、任意の一点を基準とするセンサ座標系の原点位置姿勢を後述する第2較正値Cとして求めるようにしている。なお、本実施形態では、マニピュレータM先端において、前記ブラケットの取付部位を前記任意の一点としているが、限定するものではなく、マニピュレータM先端の特定の位置を任意の一点とすればよい。
【0027】
レーザ変位センサLSは、二次元レーザセンサであって、レーザの発光及び受光によりワークWまでの距離を測定する走査型のレーザ変位センサであり、図2に示すようにレーザ照射部Lsaから扇形の検出範囲を有する。前記レーザ変位センサLSは、レーザを照射するレーザ照射部Lsaと、ワーク等の作業対象物で反射したレーザを受光する受光部(図示しない)等を備える。レーザ変位センサLSが検出した値は、図1に示すセンサインターフェイスユニット24を介してロボット制御装置RCに出力され、記憶部23に格納される。
【0028】
上記のように構成されたロボット制御システム10を使用して、マニピュレータM及びレーザ変位センサLSのキャリブレーションの方法を説明する。
(作業手順)
まず、本実施形態のキャリブレーションの作業手順について説明する。
【0029】
マニピュレータM先端に対して、レーザ変位センサLSをブラケットBrを介して取り付ける。このとき、マニピュレータM先端からレーザ照射部Lsaまでの、位置姿勢を測定し、あるいは、ブラケットBr及びレーザ変位センサLSのカタログ値に基づいて得ておき、この位置姿勢を第2較正値Cの仮の実数(すなわち、近似値)として、予め図示しないティーチペンダント、或いはパーソナルコンピュータ等の入力装置を介して、ロボット制御装置RCの記憶部23に格納しておく。
【0030】
又、テーブル30上に治具Gを配置する。なお、治具Gの配置はテーブル30上に限定するものではなく、床面に直接配置して、動かないようにしてもよい。治具Gは、本実施形態では、複数の面、及び互いに隣接する面間には直線を有する稜線を有する。又、本実施形態では、治具Gは図2に示すように平板、或いは直方体に形成され、上面の長手方向に延びる上面の稜線が直線部32とされている。すなわち、治具Gは複数の平面を有しているとともに複数の稜線を有しており、この複数の稜線のうち、上面の縁部に設けられた1つの稜線を直線部32としている。
【0031】
次に、前記ROM21に格納したキャリブレーションの算出プログラムをCPU20が実行することにより、CPU20は図示しないマニピュレータMの各回転軸のモータを駆動制御する。このCPU20のマニピュレータMの制御により、検出点の検出のための観測位置姿勢、すなわち、マニピュレータM先端の観測位置姿勢を異ならしめて、すなわち、これらの複数の観測位置姿勢(図2では、姿勢1、姿勢2、姿勢3で示す。)のもとで、レーザ変位センサLSにより治具Gに設けられた直線部32上の異なる複数の点を測定する。観測位置姿勢の数は、少なくとも6点以上が必要である。この処理は第1ステップに相当する。
【0032】
なお、観測位置姿勢の数(すなわち、検出点の数)は、ロボットの軸数に応じて、決定すればよい。
例えば、ロボットの軸数の増減に応じて、較正するマニピュレータのパラメータは増減するが、較正するパラメータの数をp個とすると、検出点の数qは、下式を満たす必要がある。
【0033】
p< ×3 (なお、は組み合わせを表す。)、
これを解くと、3q−3q−2p>0 となる。
従って、q>√(9+24p)/6
となる。このため、本実施形態の6軸ロボットの場合は、
p=45(=6×6+6+3)となるため、
q>5.5となり、検出点の数qは正の整数であるから、6以上となる。なお、「6×6+6+3」中、「6×6」はマニピュレータのパラメータ数であり、「6」は、センサのパラメータ数であり、「3」は直線部32のパラメータ数である。
【0034】
次に、ロボット制御装置RCは、レーザ変位センサLSでそれぞれ測定した点(以下、検出点という)における検出値をセンサインターフェイスユニット24を介して取り込み、記憶部23に記憶する。図2では、前記検出点は、姿勢1〜姿勢3において、それぞれ測定した検出点をK1〜K3で示している。
【0035】
この後、ロボット制御装置RCのCPU20は、前記検出値と、予め記憶部23に記憶されている、マニピュレータMのリンクパラメータの初期値を使用して、マニピュレータに関する第1較正値と、レーザ変位センサLSの取付誤差を求める。なお、リンクパラメータは、例えば、デナビット・ハーテンバーグ法(Denavit-Hartenberg method )により、マニピュレータMを構成している各アーム寸法と各回転軸の配置を定義したものであり、公知であるため、説明を省略する。前記リンクパラメータの初期値は記憶部23に格納されている。
【0036】
(較正値の算出)
次に、CPU20が実行する較正値の算出方法について説明する。
まず、本実施形態において、基本要素となる座標系、座標変換行列(同次変換行列)及びベクトルの定義を図3を参照して説明する。なお、本実施形態で説明する各座標系は右手直交系である。
【0037】
図3中、Tiは、姿勢i(i=1,2,3……)におけるロボット座標系を基準としたマニピュレータM先端のJ6基準座標系(すなわち、マニピュレータ先端座標系)の原点位置姿勢であって観測により求めることができる。Tiは、観測により求まるエンコーダ値と、求める第1較正値となる未知パラメータより成り立つ。なお、J6は、マニピュレータMの回転軸をベース部材12側から順に数えて第6番目を表している。従って、J6基準座標系とは、第6番目の回転軸を基準とした座標系のことである。
【0038】
又、ロボット座標系は、図3に示すようにベース部材12の特定点を原点とする座標系であり、基準座標系に相当する。前記特定点は、ベース部材12上の任意の点でよい。
Cは、マニピュレータM先端のJ6基準座標系を基準としたレーザ照射部Lsaの座標系の原点位置姿勢であって未知数であり、本実施形態において算出する較正値(すなわち、第2較正値)である。ここで、レーザ照射部Lsaの座標系は、センサ座標系に相当する。センサ座標系は、レーザの照射方向をx軸(+)方向とした右手直交系である。
【0039】
は、姿勢iにおけるレーザ照射部Lsaの座標系(センサ座標系)を基準とした検出点の位置であり、レーザ変位センサLSの出力(すなわち、検出値)により求めることができる。
【0040】
は、姿勢iにおけるロボット座標系(基準座標系)を基準とした検出点の位置であり、T、C、Fから求めることができる。
なお、P,Pは、リンクパラメータと、視覚センサが検出した値とから、第1較正値となる未知パラメータを含むTiと、第2較正値Cとを未知変数とした関数に相当する。
【0041】
前記リンクパラメータの初期値は、後述する繰り返し演算のときのTに関する第1較正値xaj,yaj,zaj,αaj,βaj,μaiを求める際の仮の実数A' の初期値となる。ここで、x,y,z,α,β,μのサフィックスaは、これらの値が仮の実数であることを意味している。
【0042】
Cについての初期値は、レーザ変位センサLSを取り付けるブラケットBrとレーザ変位センサLS自身の形から、較正値Cの併進とロール・ピッチ・ヨーのパラメータの近似値として得られる。これら初期値は、予め記憶部23に格納されている。
【0043】
Lは、ロボット座標系を基準とした直線部32の単位方向ベクトルであって、未知の値である。なお、T、Cは4×4の同次変換行列であり、F、P及びLは4次元ベクトルである。
【0044】
次に、前記各基本要素についてCPU20が行う算出について説明する。
マニピュレータMにおいて、姿勢iにおけるj−1軸先端の座標系を基準としたj軸先端の座標系の原点位置姿勢の同次変換行列をAijとする。Aijを併進とロール・ピッチ・ヨーのパラメータ(x,y,z,yaw,pitch,roll)=(xaj,yaj,zaj,αaj,βaj,γaij)で表すと式(1)となる。
【0045】
【数1】

ここで、xaj,yaj,zaj,αaj,βajはロボット毎に決定される値である。又、γaijは、マニピュレータMの各回転軸を駆動するモータに設けられたロータリーエンコーダのエンコーダ値εijとロボット毎に決定されるμaiの和で表される値である。xaj,yaj,zaj,αaj,βaj,μaiは本実施形態で求める前記Tiに関する第1較正値である。
【0046】
【数2】

又、本実施形態では、Tiはベース部材12から6つ目のアームであるAi6先端の座標なので式(3)で表される。
【0047】
【数3】

レーザ照射部Lsaの座標系(センサ座標系)を基準とした姿勢iにおける検出点の位置Fiは式(4)で表される。ここでyfi,zfi はレーザ変位センサLSにより取得される値である。なお、式(4)式及び式(5)中の「T」は転置行列を表している。
【0048】
【数4】

ロボット座標系(基準座標系)を基準とした直線部32の単位方向ベクトルLは式(5)で表される。ここでxl,yl,zlは未知の値であって、ベクトル変数である。
【0049】
【数5】

そして、CPU20は、ロボット座標系(基準座標系)を基準とした姿勢iにおける検出点の位置Pを式(6)で算出する。
【0050】
【数6】

この式(6)の計算処理は、第2ステップに相当する。
【0051】
(拘束条件、及び較正値のCPU20による算出)
上記のように互いに異なる検出点は全て直線部32上であるため、i番目の検出点からj番目の検出点に向かうベクトルは直線部32の方向ベクトルとなる。この方向ベクトルは正規化すると単位方向ベクトルとなり、ロボット座標系を基準とした直線部32の単位方向ベクトルLに等しくなる。式(7)中、左辺において、分子は方向ベクトルを示し、分母は正規化していることを示している。
【0052】
【数7】

なお、前記式(7)は四次元のベクトル式であるが、四次元目が全て0であるため、実質はCとLに含まれる未知数(すなわち、前記較正値)を変数とした関数を要素とする3次元ベクトルであり、要素ごとの3つの方程式が成り立つ。又、検出点の検出、すなわち、観測位置姿勢の組の総数を考慮すると、CとLに含まれる未知数を変数とした方程式は、取得した観測位置姿勢の数をnとすると、3×(n(n−1))/2個取得できる。例えば、観測位置姿勢nが6の場合、45個の方程式を取得できる。
【0053】
CPU20は、これらの方程式を生成して、すなわち連立方程式を生成して、最小二乗法を使用することにより、未知数を求める。すなわち、較正値xaj,yaj,zaj,αaj,βaj,μai、及び較正値Cを求める。なお、CPU20のここでの処理は第3ステップに相当する。
【0054】
(CPU20による線形化と繰り返し演算)
ここで、線形化について述べる。本実施形態では、簡単化のために変数の線形化を行う。又、未知数が多い理由から、説明を簡略化するとともに、誤差変数を微少値として扱うために、変数(すなわち、未知数)をAという一般形で表して説明する。ここでは、変数Aを仮の実数A' と、AとA' との差を表す誤差変数ΔAとに分割し、Aをそれらの和(A' +ΔA)で表す。すなわち、A=A' +ΔAで表す。ここで、未知数Aを、前記較正値(すなわち、第1較正値及び第2較正値を含む)として考えるものとする。
【0055】
そして、前項までで説明した前記較正値(すなわち、未知数A)に関する計算を行うものとする。式(7)において作成された方程式を解く前に誤差変数ΔAが微少値ということを利用し、前記方程式の解を得るために、CPU20により、各式を1次のマクローリン展開による線形化を行う。
【0056】
ここでマクローリン展開とは元関数をn次微分し、原点近傍の超平面の傾きを算出することで、原点周辺のn次の近似式を求める方法である。本実施形態では1次近似を行っているため、非常に簡単な式で記述できる。すなわち、式(7)を式(8)のように表すと、マクローリン展開の1次近似の式は式(9)にすることができる。
【0057】
【数8】

【0058】
【数9】

又、本実施形態では、CPU20は、様々な検出点i,jの組により、式(9)式から、最小二乗法により全ての未知数Aを求める、すなわち、初期値を除いた第1較正値xaj,yaj,zaj,αaj,βaj,μai、及び第2較正値Cを算出する。なお、算出した結果である第1較正値xaj,yaj,zaj,αaj,βaj,μai、及び第2較正値Cには線形化により誤差が生じるため、CPU20はA(=A' +ΔA)を新たな、A' として更新した後、始めから計算を行う。
【0059】
そして、誤差ΔAを構成している各変数、例えば、第2較正値Cの場合は、Δxc,Δy,Δz,Δα,Δβ,Δγの大きさが下記の式(12)、式(13)を満足する迄、この処理を繰り返す。
【0060】
このことにより、最終的に求められる第2較正値Cの精度を保障している。式(12)、式(13)は、CPU20が行う閾値S,及び閾値θとの比較処理の例である。閾値S、閾値θはそれぞれ、位置及び姿勢の閾値である。
【0061】
【数10】

【0062】
【数11】

なお、Tiに関する第1較正値xaj,yaj,zaj,αaj,βaj,μaiに関しても、Cと同様にそれぞれ設けられた閾値よりも小さな値となるまで、CPU20はA(=A' +ΔA)を新たなA' として更新した後、前記処理を繰り返す。このことにより、最終的に求められるTiに関する第1較正値xaj,yaj,zaj,αaj,βaj,μaiの精度を保障している。
【0063】
さて、本実施形態によれば、以下のような特徴がある。
(1) 本実施形態のキャリブレーション方法は、第1ステップとして、マニピュレータMの周囲に配置された治具Gの直線部32上の複数の点を、マニピュレータMの互いに異なる複数の観測位置姿勢とらせた状態で、レーザ変位センサLSによりそれぞれ検出する。また、第2ステップとして、ロボット座標系(基準座標系)を基準としたJ6基準座標系(マニピュレータ先端座標系)の原点位置姿勢Tiと、マニピュレータM先端を基準とするレーザ変位センサLSのレーザ照射部Lsaの座標系(センサ座標系)の原点位置姿勢Cを未知変数とした関数Pi,Pjであるとともに、直線部32上の検出点の基準座標系座標(ロボット座標系座標)を、観測位置姿勢毎にそれぞれ求める。
【0064】
また、第3ステップとして、観測位置姿勢毎に求めた直線部32上の検出点の2つを一組としたとき、複数の組から関数Pi,Pjを要素とするとともに、前記ロボット座標系(基準座標系)を基準とした直線部32の単位方向ベクトルを複数算出する。さらに、算出した直線部32の単位方向ベクトルと、ロボット座標系(基準座標系)のベクトル変数(xl,yl,zl)で表される直線部32の単位方向ベクトルLが等しいことを利用して連立方程式を作る。さらに、最小二乗法により、マニピュレータMに関する第1較正値を求めるとともに、マニピュレータM先端を基準とするレーザ照射部Lsaの座標系(センサ座標系)の原点位置姿勢Cを第2較正値として求める。
【0065】
この結果、直線部32を有するだけの簡単な構成の治具Gにより、センサのキャリブレーションのみならずマニピュレータMのキャリブレーションをどこでも簡単に行うことができる。又、治具の準備などの作業工数を大幅に削減できるばかりか、特別な治具が準備できない環境でも即座にマニピュレータMのキャリブレーションを行うことが可能であり、マニピュレータMに求められる本来の作業を行うための不必要な待ち時間や工数が削減できる。
【0066】
(2) 本実施形態のキャリブレーション方法では、連立方程式が線形化して一次近似式にされているため、第3ステップの処理で行う計算を簡便化でき、線形化して一次近似式にしない場合に比して、演算に係る時間を短くできる。
【0067】
(3)本実施形態のキャリブレーション方法は、第1較正値及び第2較正値Cが、それぞれ仮の実数(近似値)と誤差変数の和で成り立っているものとし、第3ステップでは、第1較正値及び第2較正値Cがそれぞれ得られたとき、仮の実数を、該得られた第1較正値及び第2較正値Cに更新した後、誤差変数が予め定められた閾値以下になるまで第3ステップの処理を繰り返すようにした。
【0068】
この結果、本実施形態によれば、連立方程式を線形化すると誤差が生じるが、この誤差を閾値以下にすることができ、較正値の精度を保障することができる。
(4) 本実施形態のキャリブレーション方法では、治具Gは、複数の面と面間に設けられた複数の稜線を有し、直線部32を複数の稜線のうち、1つの稜線で構成している。この結果、治具Gの稜線を直線部32としているため、特別な治具が必要でなくなり、直方体、平板等の直線部を面間に有する既存の治具を使用することができ、或いは単純な形状の治具で良くなり、キャリブレーションのための特別な形状の治具を必要としない。
【0069】
(5) 本実施形態のロボット制御システム10は、ロボット制御装置RCのCPU20が、制御手段として、マニピュレータMの周囲に配置された治具Gの直線部32上の複数の点を検出するためにマニピュレータMの互いに異なる複数の観測位置姿勢をとらせる。
【0070】
又、ロボット制御装置RCの記憶部23は記憶手段として、マニピュレータMの互いに異なる複数の観測位置姿勢毎に、レーザ変位センサLSが治具Gの直線部32上の異なる複数の点についてそれぞれ検出した値を記憶するようにした。又、CPU20は、検出点座標算出手段として、ロボット座標系(基準座標系)を基準としたJ6基準座標系(マニピュレータ先端座標系)の原点位置姿勢と、マニピュレータM先端を基準とするレーザ変位センサLSのレーザ照射部Lsaの座標系(センサ座標系)の原点位置姿勢を未知変数とした関数であるとともに、直線部32上の検出点のロボット座標系(基準座標系)座標を、観測位置姿勢毎にそれぞれ求めるようにした。さらに、CPU20は、較正値算出手段として、観測位置姿勢毎に求めた直線部32上の検出点の2つを一組としたとき、複数の組から関数Pi,Pjを要素とするとともに、前記ロボット座標系(基準座標系)を基準とした直線部32の単位方向ベクトルを複数算出する。さらに、CPU20は、較正値算出手段として、算出した直線部32の単位方向ベクトルと、ロボット座標系(基準座標系)のベクトル変数(xl,yl,zl)で表される直線部32の単位方向ベクトルLが等しいことを利用して連立方程式を作る。さらに、CPU20は、較正値算出手段として、最小二乗法により、マニピュレータMに関する第1較正値を求めるとともに、マニピュレータM先端を基準とするレーザ照射部Lsaの座標系(センサ座標系)の原点位置姿勢Cを第2較正値として求める。
【0071】
この結果、本実施形態のロボット制御システム10は、前記(1)のキャリブレーション方法を実行するロボット制御システムを提供することができる。
(6) 本実施形態のロボット制御システム10は、CPU20(較正値算出手段)は、前記連立方程式を、線形化して一次近似式にした上で較正値Cを算出するようにした。この結果、ロボット制御システム10は、第3ステップの処理で行う計算を簡便化でき、線形化して一次近似式にしない場合に比して、演算に係る時間を短くできるキャリブレーション方法を実行するロボット制御システムを提供することができる。
【0072】
(7) 本実施形態のロボット制御システム10では、CPU20(較正値算出手段)は、第1較正値及び第2較正値Cが、それぞれ仮の実数と誤差変数の和で成り立っているものとし、第1較正値及び第2較正値Cがそれぞれ得られたとき、仮の実数を、該得られた第1較正値及び第2較正値Cに更新した後、誤差変数が予め定められた閾値以下になるまで、処理を繰り返すようにした。
【0073】
この結果、本実施形態によれば、連立方程式を線形化すると誤差が生じるが、この誤差を閾値以下にすることができ、較正値の精度を保障することができる。
(8) なお、従来技術は、2次元画像情報や三次元センサなどを対象にしたものが多く2次元レーザセンサを対象にしたセンサキャリブレーションは提案されていない。前記特許文献1〜3は、CCDカメラを利用したキャリブレーションの方法であり、これらの方法では、センサ原点に対しY軸とそれに対応するZ軸の1点しか取得できないレーザセンサではキャリブレーションが実現できない。これに対して、本実施形態の方法及びロボット制御システム10は二次元レーザセンサのセンサキャリブレーションができる。
【0074】
なお、本発明は前記実施形態に限定されるものではなく、下記のように構成してもよい。
・ 前記実施形態では、視覚センサを二次元レーザセンサとしたが、二次元レーザセンサに限定されるものではなく、CCDカメラ等の撮像手段であってもよい。この場合、撮像手段が取得して得られた画像中において、任意の画素を基準として、例えば撮像した画像の中心位置を前記基準として、該中心位置に最も近位の直線部の画素の点を検出点とすれば、以下、前記実施形態と同様にキャリブレーションを行うことができる。
【0075】
・ 前記実施形態では、治具Gを平板、或いは直方体の稜線を直線部としたが、治具Gは、平板、或いは直方体に限定されるものではなく、立方体でもよい。或いは、稜線が直線となるものであれば、治具Gの形状は限定されるものではない。前記直線となった稜線を直線部とすることもできる。
【0076】
・ 又、直線部は、稜線に限定されるものではない、例えば、平面を有する一側面、例えば、上面、或いは上面に隣接する側面に対して凹設された直線上の溝を直線状に形成して直線部としてもよい。前記溝は、レーザ変位センサLSで検出できる深さを有している。さらに、直線部32は、溝に限定されるものではなく、前記上面に突出されるとともに直線上に上面に沿って位置方向に延出された突条であってもよい。この場合、突条は、レーザ変位センサLSにより、上面からの高さが検出できる高さを有するものとする。
【0077】
又、直線部32が設けられる治具Gの面は、上面に限定されるものではなく、上面に隣接する側面であってもよい。
・ 又、治具Gの上面の一部に対して、上方に高さを有する段部を設け、前記上面に沿って前記段部が一方向に直線状に延びるように形成して、その直線状の部分を直線部としてもよい。
【0078】
・ 前記実施形態では、6軸ロボットで説明したが、6軸ロボットに限定されるものではない。前記方法、及びロボット制御システムは、6軸よりも少ない5軸、4軸等の軸数が少ないロボット、或いは、7軸以上のロボットにも変更してもよい。
【0079】
この場合、前記実施形態の式(2)において、マニピュレータM先端の座標系を、変更後の軸数に応じて変更すればよい。例えば、7軸ロボットのときは、Tiはベース部材12から7つ目のアームであるAi7先端の座標となるように変更し、
T7=Ai1i2i3i4i5i6i7
とすればよい。又、この場合、CとLに含まれる未知数となる変数が増加するため、その分、6軸ロボットの観測位置姿勢の数よりも観測位置姿勢nを増加すればよい。
【0080】
検出点の数は、ロボットの軸数に応じて前述した、
q>√(9+24p)/6を満足する正の整数以上とすればよい。
・ 前記実施形態では、連立方程式をマクローリン展開により線形化を行い、計算を簡単にしたが、マクローリン展開せずに、非線形のままで前記連立方程式の解を求めても良い。
【符号の説明】
【0081】
M…マニピュレータ、G…治具、RC…ロボット制御装置、
LS…レーザ変位センサ(視覚センサ)、
10…ロボット制御システム、
20…CPU(制御手段、検出点座標算出手段、較正値算出手段)、
21…ROM、23…記憶部(記憶手段)、32…直線部。

【特許請求の範囲】
【請求項1】
マニピュレータの周囲に配置された治具の直線部上の複数の点を、互いに異なる複数の観測位置姿勢をとらせた状態で、前記マニピュレータ先端に設けた視覚センサによりそれぞれ検出する第1ステップと、
基準座標系を基準としたマニピュレータ先端座標系の原点位置姿勢と、前記マニピュレータ先端を基準とする前記視覚センサのセンサ座標系の原点位置姿勢を未知変数とした関数であるとともに、前記直線部上の点(以下、検出点という)の基準座標系座標を、前記観測位置姿勢毎にそれぞれ求める第2ステップと、
前記観測位置姿勢毎に求めた前記直線部上の検出点の2つを一組としたとき、複数の組から前記関数を要素とするとともに、前記基準座標系を基準とした前記直線部の単位方向ベクトルを複数算出し、算出した前記直線部の単位方向ベクトルと、基準座標系のベクトル変数で表される前記直線部の単位方向ベクトルが等しいことを利用して連立方程式を作り、最小二乗法により、前記マニピュレータに関する第1較正値を求めるとともに、前記視覚センサのセンサ座標系の原点位置姿勢であって、前記マニピュレータ先端を基準とするセンサ座標系の原点位置姿勢を第2較正値として求める第3ステップを含む
ことを特徴とするマニピュレータのキャリブレーション方法。
【請求項2】
前記連立方程式は、線形化して一次近似式にしたものであることを特徴とする請求項1に記載のマニピュレータのキャリブレーション方法。
【請求項3】
前記第1較正値及び第2較正値が、それぞれ仮の実数と誤差変数の和で成り立っているものとしたとき、
前記第3ステップでは、第1較正値及び第2較正値がそれぞれ得られたとき、前記仮の実数を、該得られた第1較正値及び第2較正値に更新した後、前記誤差変数が予め定められた閾値以下になるまで前記第3ステップの処理を繰り返すことを特徴とする請求項2に記載のマニピュレータのキャリブレーション方法。
【請求項4】
前記治具は、複数の面と面間に設けられた複数の稜線を有し、
前記直線部は、複数の稜線のうち、1つの稜線であることを特徴とする請求項1乃至請求項3のうちいずれか1項に記載のマニピュレータのキャリブレーション方法。
【請求項5】
マニピュレータの周囲に配置された治具の直線部上の複数の点を検出するために前記マニピュレータの互いに異なる複数の観測位置姿勢をとらせる制御手段と、
前記マニピュレータの互いに異なる複数の観測位置姿勢毎に、マニピュレータ先端に設けられた視覚センサが前記治具の直線部上の異なる複数の点についてそれぞれ検出した値を記憶する記憶手段と、基準座標系を基準としたマニピュレータ先端座標系の原点位置姿勢と、前記マニピュレータ先端を基準とする前記視覚センサのセンサ座標系の原点位置姿勢を未知変数とした関数であるとともに、前記直線部上の点(以下、検出点という)の基準座標系座標を、前記観測位置姿勢毎にそれぞれ求める検出点座標算出手段と、
前記観測位置姿勢毎に求めた前記直線部上の検出点の2つを一組としたとき、複数の組から前記関数を要素とするとともに、前記基準座標系を基準とした前記直線部の単位方向ベクトルを複数算出し、算出した前記直線部の単位方向ベクトルと、基準座標系のベクトル変数で表される前記直線部の単位方向ベクトルが等しいことを利用して連立方程式を作り、最小二乗法により、前記マニピュレータに関する第1較正値を求めるとともに、前記マニピュレータ先端を基準とするセンサ座標系の原点位置姿勢を第2較正値として求める処理を行う較正値算出手段を含む
ことを特徴とするロボット制御システム。
【請求項6】
前記較正値算出手段は、前記連立方程式を、線形化して一次近似式にした上で前記較正値を算出するものである請求項5に記載のロボット制御システム。
【請求項7】
前記較正値算出手段は、前記第1較正値及び第2較正値が、それぞれ仮の実数と誤差変数の和で成り立っているものとし、第1較正値及び第2較正値がそれぞれ得られたとき、前記仮の実数を、該得られた第1較正値及び第2較正値に更新した後、前記誤差変数が予め定められた閾値以下になるまで、前記処理を繰り返すことを特徴とする請求項6に記載のロボット制御システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−235400(P2011−235400A)
【公開日】平成23年11月24日(2011.11.24)
【国際特許分類】
【出願番号】特願2010−109369(P2010−109369)
【出願日】平成22年5月11日(2010.5.11)
【出願人】(000000262)株式会社ダイヘン (990)
【Fターム(参考)】