以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
[第1実施形態]
図1及び図2に示すように、ロボットシステム1は、ロボット2と、ロボット2を制御する制御装置3と、センサとしてのカメラ7と、を備えている。
ロボット2は、6軸の垂直多関節アーム(以下、アームと呼ぶ)20と、エンドエフェクタとしてのハンド21とを有している。本実施形態では、アーム20として6軸の垂直多関節アームを適用しているが、軸数は用途や目的に応じて適宜変更してもよい。また、本実施形態では、エンドエフェクタとしてハンド21を適用しているが、これに限られず、例えば、磁力や負圧による吸着等、何らかの方法によりワークを保持及び解放できるものであればよい。
アーム20は、7つのリンク61〜67と、各リンク61〜67を揺動又は回動可能に連結する6つの関節71〜76とを備えている。各リンク61〜67としては、長さが固定されたものを採用している。但し、例えば、直動アクチュエータにより伸縮可能なリンクを採用してもよい。
各関節71〜76には、各関節71〜76を各々駆動するモータ、あるいは必要に応じて直動アクチュエータが、出力機器20bとして設けられている。各関節71〜76には、モータの回転角度を検知するエンコーダと、各モータに供給する電流を検知する電流センサと、各関節71〜76のトルクを検知するトルクセンサとが、入力機器20aとして設けられている。
ハンド21は、アーム20に支持され、アーム20の動作により位置及び姿勢が調整されると共に、保持部22と、保持部調整機構23とを備えている。保持部22は、保持部調整機構23を介して、アーム20の先端リンク67に取り付けられ、ワークを保持可能になっている。本実施形態では、エンドエフェクタとしてハンド21が採用されているので、保持部22は、ワークを把持可能な3本等の複数の指により構成されている。また、ハンド21には、保持部22を動作させるためのモータが出力機器22bとして内蔵されると共に、モータの回転角度を検知するエンコーダが入力機器22aとして内蔵されている。
図2に示すように、制御装置3は、コンピュータにより構成され、ロボット2を制御するようになっている。制御装置3を構成するコンピュータは、例えばCPU30と、各部を制御するためのプログラムを記憶するROM31と、データを一時的に記憶するRAM32と、入力インターフェース回路33と、出力インターフェース回路34とを備えている。
CPU30は、アーム制御部80と、保持部制御部81と、保持部調整機構制御部82と、動作データ取得部83と、再生部85と、画像処理部86と、座標校正部87と、を備えている。
アーム制御部80は、ROM31に記憶されたアーム制御ソフトウェアによりアーム20への指令値を算出し、アーム20との間でデータ通信を行うことにより、アーム20を制御するようになっている。
保持部制御部81は、アーム20の位置姿勢に基づき、ROM31に記憶された保持部制御ソフトウェアにより保持部22への指令値を算出し、保持部22との間でデータ通信を行うことにより、保持部22を制御するようになっている。
画像処理部86は、後述するカメラ7が撮影して取得したワークの画像(計測データ)を画像処理して、ワークの位置姿勢を算出するようになっている。
入力インターフェース回路33及び出力インターフェース回路34は、例えばCAN通信手段やRS−232C通信手段により構成されている。本実施形態では、アーム制御部80及び保持部制御部81は、CAN通信手段により通信を行うと共に、後述する保持部調整機構制御部82は、RS−232C通信手段により通信を行うようになっている。
カメラ7は、図6に示すように、適宜なワーク撮影位置15の上方に、適宜な支持手段により下方を向いて支持されている。これにより、ワーク撮影位置15にロボット2により位置されたワークは、カメラ7により撮影される。カメラ7は、入力インターフェース回路33及び出力インターフェース回路34に接続されると共に、画像処理部86からの指令により撮像を行い、撮像して得た撮像データを画像処理部86に送信するようになっている。また、保持部22が保持するワークをカメラ7により撮影可能な状態にした場合に、その時のアーム20及び保持部調整機構23の位置姿勢を第1の位置姿勢としての計測教示点とする。なお、ここでは便宜的に位置姿勢と表記しているが、算出するのは補正に必要な少なくとも一自由度のみでよい。
図2に示すように、制御装置3には、ロボット2を教示するためのティーチングペンダント4が接続可能になっている。ティーチングペンダント4が入力インターフェース回路33及び出力インターフェース回路34に接続されると共に、操作者がティーチングペンダント4を操作することで、ロボット2が動作されて教示されるようになっている。
次に、本実施形態に係るロボットシステム1の特徴的な部分について詳細に説明する。
図1に示すように、保持部調整機構23は、アーム20の最先端の関節としての第6関節76と保持部22との間に配置され、先端リンク67側に設けられたX軸並進機構90と、保持部22側に設けられたY軸並進機構91とを備えている。本実施形態では、保持部調整機構23は、ハンド21の一部として設けられている。
X軸並進機構90及びY軸並進機構91は、アーム20の先端リンク67のフランジ面67aと平行な面で互いに直交するX軸方向及びY軸方向に動作する並進移動機構となっている。X軸並進機構90及びY軸並進機構91は、精密なガイド及びボールねじを使用し、ボールねじをステッピングモータにより回転させることで駆動する並進2軸の構成とし、2軸の直交度は予め校正しておくようにする。尚、保持部調整機構23の座標軸は、X軸及びY軸の他に、先端リンク67のフランジ面67aと垂直なZ軸を設定している。
保持部調整機構23は、アーム20が目標の教示点に移動する際にワークの位置誤差の補正を行うものであることから、可動範囲は小さくて足り、例えば2〜3mm程度の位置誤差を10〜20μm程度の誤差に調整するための可動範囲にすることができる。また、保持部調整機構23の移動は、アーム20の移動と並行に行うことが可能となるので、速い速度は必要なく、更には耐荷重もワークとハンド21の重量に対応すればよい。このように、保持部調整機構23は機能的な制約が少なく、波動歯車減速機は必要ないため、ヒステリシスロス等が小さい機構を採用することができる。また、XY軸方向の2軸のみであることから、ほぼ原点が固定であり、線形の直交座標系で動作する機構とすることができる。
本実施形態では、保持部22が把持したワークに対してビス締めを行う工程を想定している(図9参照)。即ち、把持したワークにおけるビス穴位置をカメラ7及び画像処理部86により取得し、ビス穴位置のX軸方向及びY軸方向での位置誤差を補正することで、正確にビス締めを行うことを目的とする。従って、ビス穴中心の1点の位置を補正することが必要となるため、保持部調整機構23は並進の2軸が適当となる。
図2に示すように、CPU30の保持部調整機構制御部82は、アーム20の位置姿勢に基づき、ROM31に記憶された保持部調整機構制御ソフトウェアにより保持部調整機構23への指令値を算出するようになっている。そして、保持部調整機構制御部82は、保持部調整機構23との間でデータ通信を行うことにより、保持部調整機構23を制御するようになっている。
CPU30の動作データ取得部83は、アーム20及び保持部調整機構23が教示される際に各動作データを取得して、RAM32に記憶するようになっている。
アーム20及び保持部調整機構23は、操作者によるティーチングペンダント4の操作により、保持部22がワークをカメラ7により撮影させる第1の位置姿勢としての計測教示点から第2の位置姿勢としての目標教示点に移動するように移動されて教示される。この時、動作データ取得部83は、アーム20及び保持部調整機構23のエンコーダ値等を、動作データとして取得してRAM32に記憶する。
ここで、保持部22の計測教示点とは、把持したワークをワーク撮影位置に位置させる点としている。また、保持部22の目標教示点とは、目標位置姿勢であり、例えば、保持部22が保持したワークに組立や加工等の作業を施す点としたり、あるいは他の装置を回避するための通過点等に設定することができる。
CPU30の再生部85は、動作データに基づいてアーム20及び保持部調整機構23を再生するようになっている。アーム20及び保持部調整機構23の動作により、保持部22が計測教示点から目標教示点に移動するようになっている。
CPU30の座標校正部87は、カメラ7の計測座標系とアーム20の動作座標系とを校正し、計測座標系から動作座標系への座標変換式としての座標変換行列Hを得るようになっている。また、座標校正部87は、画像処理部86で得られたワークの位置姿勢誤差を座標変換行列Hを用いて計測座標系から動作座標系に変換し、保持部調整機構23の補正量を算出するようになっている。
上述したロボットシステム1によりロボット2に教示を行って指令値を得るまでの動作準備時の動作を、図3に示すフローチャートに沿って説明する。
まず、ティーチングペンダント4の操作によりアーム20及び保持部調整機構23を動作させ、保持部22をカメラ7の下方のワーク撮影位置15に位置させる。動作データ取得部83は、その時のアーム20及び保持部調整機構23の位置姿勢を計測教示点として取得し、RAM32に記憶する(ステップS1)。
ここで、カメラ7により計測を行うための事前準備として、座標校正部87が、カメラ7の撮像座標系(u,v)[pixel]と、計測座標系(Xv、Yv、Zv)[m]との座標校正を行う(ステップS2)。
この撮像座標系と計測座標系との校正方法を、図5及び図6を用いて説明する。図5に示すように、この座標校正では座標校正治具9を用いる。座標校正治具9は、平板状で、一方の面に、例えば等間隔に配列された7行7列の黒丸からなる校正パターン9aが表示されている。また、校正パターン9aのうちで、原点及び原点のX方向に隣接する校正パターン9bは黒丸の中心を白抜きにされており、座標校正治具9の向きを一意に決定可能にしている。尚、本実施形態では、校正パターン9aは7行7列としているが、これには限られずパターンの数は3点以上あればよい。また、ここでは平板物を用いたが、直方体に校正パターンが表示されたものなどを用いてもよく、この限りではない。
座標校正治具9の校正パターン9a,9b同士の間隔をLとすると、図5中、左上の校正パターン9aの校正治具座標系における座標は[−3L,−3L,0]となり、また、右下の校正パターン9aの座標は[3L,3L,0]となる。以下、校正治具座標系での座標を[Xc,Yc,Zc]と表す。
図6に示すように、校正作業では、ロボット2を計測教示点に位置させた状態において、保持部22を基準位置に設定し、カメラ7から撮像できるように保持部22に座標校正治具9を設置する。座標校正治具9を保持部22に設置する際は、保持部調整機構23が動作する面と、座標校正治具9の校正パターン9a,9bが表示されている面とが、略平行になるように調整しておいた方が好ましい。この調整方法としては、例えば、保持部22にダイヤルゲージを当て、そのまま保持部調整機構23を動作させ、ダイヤルゲージの変動に合わせて、保持部調整機構23と保持部22との間にスペーサを挟む等により行う。なお、ここでは作業空間上の上部に支持されたカメラ7を用いて説明を行うが、カメラはアーム20の端などに固定したカメラでもよく、この限りではない。
また、校正パターン9a,9bが表示されている面と、計測対象のワークの位相を計測するための特徴的形状の位置が変動する面とも、略平行になるように調整しておく。この調整方法としては、例えば、保持部22は3本の指でワークを把持するので、3本の指で把持するワークの特徴的形状を示す面が同じ高さで平行になるように、スペーサを挟む等により行う。更に、座標校正治具9を持たせる際に保持部22と座標校正治具9とが突き当たる面と、保持部22がワークを持つ際に保持部22とワークとが突き当たる面とが、同一になるようにする。これにより、校正パターン9a,9bが表示されている面と、ワークの特徴的形状の位置が変動しうる面とが、略平行になる。
ここでは、座標校正治具9を、校正パターン9a,9bを上に向けて保持部22の上部に載置している。座標校正治具9をカメラ7で撮像し、得られた画像を画像処理部86において処理することにより、校正パターン9a,9bの各中心を検出する。撮像座標系において校正パターン9a,9bを検出した結果を、(u_n,v_n)n=1〜49とする。カメラ7の予め求めておいたカメラ行列をA、校正治具座標系と撮像座標系の相対姿勢をR、相対位置をT、比例定数をsと置くと、以下の数式1が得られる。
この数式1より算出される撮像座標系(u_n’,v_n’)と、実際の画像より抽出した撮像座標系(u_n,v_n)との差(再投影誤差と呼ぶ)が最小になるように収束演算を施すことで、相対姿勢R及び相対位置Tを求めることができる。このように求められた撮像座標系と校正治具座標系(計測座標系)との相対位置を、計測平面の外部パラメータEと呼ぶ。
また、保持部22に把持されるワークの特徴的形状は、座標校正治具9の校正パターン9a,9bの表示面と平行な面、即ち外部パラメータEで規定される平面と平行な平面において移動され、カメラ7により撮影される。このため、校正パターン9a,9bの表示面と、ワークの特徴的形状の移動面とのオフセットを、相対位置TのZ軸成分に加えることにより、計測平面の外部パラメータE’を求めることができる。この外部パラメータE’と、画像処理部86により算出したワークの撮像座標系における位置(u,v)とにより、計測座標系におけるワークの位置(Xv、Yv、Zv)を算出することができる。
次に、座標校正部87が、計測座標系(Xv、Yv、Zv)と保持部調整機構23の動作座標系(Xt、Yt、Zt)との校正を行う(ステップS3)。ここでは、保持部22が計測教示点に位置した状態において、座標校正治具9を把持させ、保持部調整機構23を動作させながら、カメラ7により座標校正治具9の位置を計測する。そして、保持部調整機構23が基準位置にある状態における計測値を原点とし、その原点からの変位を用いて座標系間の座標変換式としての座標変換行列を算出する。
外部パラメータEより規定される計測平面と、保持部調整機構23の可動平面とは平行になるように調整してあるので、計測座標系におけるZtの変化による(Xv、Yv)の測定精度に及ぼす影響は無視できる。よって、計測座標系に対する動作座標系の位置姿勢は、外部パラメータEに対し、校正治具座標系におけるZ軸周りの回転Rtを考慮すればよい。このため、保持部調整機構23を動作させた際の動作座標系での変化を(ΔXtm, ΔYtm)とし、カメラ7が計測した計測座標系での変化を(ΔXvm、ΔYvm、ΔZvm)とすると、以下の数式2が成り立つ。尚、mは座標校正に用いた計測値の数であり、1以上であればいくつでもよい。
この数式2を最小二乗法等の数値計算を用いて解くことにより、Z軸周りの回転Rtを算出することができる。Z軸周りの回転Rtを算出することにより、計測座標系で得られたワークの位置位相誤差を、保持部調整機構23の動作座標系に変換することができ、ワークの位置位相誤差の補正が可能となる。
本実施形態では、ワークの可動平面と、カメラ7の撮影平面と、保持部調整機構23の可動平面と、が平行であるとして説明した。しかし、ハンド21の設計上の制約等により、平行であることを満たせない場合は、平面間の傾きを考慮して座標間校正を行う必要がある。
例えば、ワークの可動平面とカメラ7の撮影平面との間に傾きがある場合は、ワークの設計寸法や実測寸法と、保持部22の設計寸法や実測寸法から、外部パラメータEから規定した計測平面と、ワークの可動平面との傾きを算出し、座標間校正時に補正する。あるいは、保持部22の設計寸法や実測寸法を用いなくとも、ワーク自体に座標校正治具9を直接設置した状態で、座標校正治具9を計測し、その際の計測値とワークの設計寸法や実測寸法とを用いて、座標校正時に補正することもできる。
また、カメラ7の撮影平面と保持部調整機構23の可動平面との間に傾きがある場合は、数式2でZ軸回りの回転を考慮した場合と同様に、X軸及びY軸回りの回転も考慮して座標間の座標変換行列を算出すればよい。この算出を行うために、例えば、非特許文献1に示す手法を採用することができる。
次に、ティーチングペンダント4の操作によりアーム20及び保持部調整機構23を目標教示点に動作させ、動作データ取得部83は、アーム20及び保持部調整機構23の位置姿勢を目標教示点として取得し、RAM32に記憶する(ステップS4)。ここでは、教示治具105を利用して、以下のように教示を行っている。尚、ここでは教示治具105を用いて教示を行っているが、実際のワークを用いて教示を行ってもよい。
図7(a)に示すように、目標教示点には、ビス締め機8が設けられている。ビス締め機8は、本体部8aと、下方を向いて回転可能なドライバ8bと、その周囲を覆う円筒形状のスリーブ8cとを有している。スリーブ8cは、本体部8aに出没可能であり、ドライバ8bの先端よりも本体部8a側に引き込まれることでドライバ8bが使用可能になり、ドライバ8bの先端よりも突出することによりドライバ8bの周囲を保護するようになっている。
図7(a)及び図8に示すように、教示治具105は、ビス穴教示治具150と、ドライバ教示治具151とを備えている。ビス穴教示治具150は、円柱形状で一方の端面の一部にビス穴150aが形成されている。保持部22は、ビス穴150aが形成されている端面側を先端側にして、ビス締め教示治具150を把持する。ドライバ教示治具151は、ビス締め機8のスリーブ8cの先端に嵌合により設けられると共に、ドライバ8bと同径の棒状の突起151aを有している。
そして、ティーチングペンダント4の操作によりアーム20及び保持部調整機構23を目標教示点に動作させ、図7(a)に示すように、ビス穴教示治具150のビス穴150aがドライバ教示治具151の突起151aに嵌合するよう調整する。ここで、操作者は、アーム20の大きな動作により目標教示点の近傍に位置させ、その後、保持部調整機構23の細かい動作によりX軸方向及びY軸方向の調整をして目標教示点に位置させる。そして、動作データ取得部83は、アーム20及び保持部調整機構23の位置姿勢を目標教示点として取得し、RAM32に記憶する。
目標教示点の教示を行った後、図7(b)に示すように、保持部22がビス穴教示治具150を把持したまま、ステップS1において教示した計測教示点に移動し、カメラ7によりビス穴教示治具150の上面を撮影する(ステップS5)。カメラ7は撮像データを画像処理部86に送信し、画像処理部86は画像処理を行う。そして、画像処理部86は、図8に示す画像14のように、得られたビス穴150aのカメラ座標における座標を基準位置姿勢としての基準位置(Xvd,Yvd)として設定し、RAM32に記憶する(ステップS6)。
次に、上述したロボットシステム1によりロボット2を実際に動作させる際の動作を、図4に示すフローチャートに沿って説明する。
ここでは、図9に示すように、ロボット2がワーク10を目標教示点に移動させることにより、ビス締め機8を利用して第1のワーク10のビス穴にビス16を締める動作を行わせる場合について説明する。第1のワーク10は円柱形状で、上面にビス穴を有している。
まず、ロボット2は、保持部22により第1のワーク10を把持する(ステップS10)。そして、ロボット2は、把持した第1のワーク10を撮影するために、再生部85の指令に従いアーム20及び保持部調整機構23により、第1のワーク10を計測教示点に移動させる(ステップS11)。画像処理部86がカメラ7に対して把持対象となる第1のワーク10を撮影するように指令し、カメラ7は第1のワーク10を撮影する(ステップS12)。画像処理部86は、カメラ7から撮像データを取得し、画像処理を行って、画像14から第1のワーク10のカメラ座標における位置(Xv、Yv)を算出する(ステップS13)。そして、アーム20は、再生部85の指令に従って計測教示点から目標教示点に移動する(ステップS14、アーム移動工程)。
一方、アーム20が移動すると同時に、画像処理部86は、基準位置(Xvd、Yvd)と実際の第1のワーク10の位置(Xv、Yv)との差分を算出し、位置誤差(ΔXv、ΔYv)を取得する(ステップS15、誤差演算工程)。
そして、再生部85が、位置誤差から保持部調整機構23の補正量を算出する(ステップS16、補正計算工程)。ここでは、位置誤差(ΔXv、ΔYv)に、座標校正より求めた座標変換行列を積算することにより、保持部調整機構23への補正値(ΔXt、ΔYt)を算出する。再生部85は、得られた保持部調整機構23の補正量を、保持部調整機構23の目標教示点への動作データに反映させ、保持部調整機構23の指令値を算出し、保持部調整機構23を目標教示点に移動させる(ステップS17、補正動作工程)。即ち、保持部調整機構23は、位置誤差を補正しつつ、目標教示点に移動する。なお、ここでは計測座標系において位置誤差を算出し、それを用いて保持部調整機構23の補正値を算出したが、計算を保持部調整機構23の動作座標系に変換した上で位置誤差を算出してもよい。すなわち、計測座標系における基準位置(Xvd、Yvd)及び計測値(Xv、Yv)を保持部調整機構23の動作座標系に座標変換行列を用いて変換計算を実行し、(Xtd、Ytd)および(Xt、Yt)とする。そして、それの差分として、位置誤差かつ補正値である(ΔXt、ΔYt)を得る。
これにより、アーム20及び保持部調整機構23が目標教示点に移動すると共に、保持部調整機構23により第1のワーク10の位置誤差が補正されるので、第1のワーク10は所望の位置姿勢で目標教示点に移動する(ステップS18)。従って、図9に示すように、第1のワーク10のビス穴の位置誤差を補正した上で、ビス締め機8のドライバ8bによりビス16を締めることができる。
ここで、アーム20がワークを移動させる動作(ステップS14)と、位置誤差の算出から保持部調整機構23の補正動作まで(ステップS15〜S17、補正作業工程)とは、動作が独立しているため同時に実行可能である。このため、アーム20の移動と同時に、位置誤差の算出(ステップS15)、保持部調整機構23の補正量の算出(ステップS16)、保持部調整機構23の移動(ステップS17)を実行している。
上述したように、本実施形態のロボットシステム1によれば、カメラ7の計測座標系と保持部調整機構23の動作座標系とを校正して得られる座標変換行列を利用して、保持部調整機構23の補正量を算出し、第1のワーク10の位置位相誤差を補正できる。これにより、カメラ7による計測結果を用いて第1のワーク10の位置姿勢を補正する際に、アーム20が非線形に動作する場合であっても、線形性の高い保持部調整機構23によって座標校正誤差及び移動誤差のいずれも抑え、高精度に補正することができる。また、第1のワーク10の位置位相誤差を補正するためにアーム20を利用する必要が無いので、例えばアーム20を予め定められた教示点間の移動だけを行うようにでき、アーム20が非線形に動作してもその影響を最低限に抑えることができる。
即ち、保持部調整機構23を有しない従来のロボットにより補正を行った場合は、アーム20の非線形性等に伴う座標変化の誤差や、アーム20の移動誤差が大きくなってしまう。これに対し、保持部調整機構23は直交した線形座標で動作させることが可能であるため、これを用いて補正を行うことで、座標変換による誤差及び移動誤差を微小にすることが可能となる。従って、アーム20の非線形な動作に関わらず、補正の高精度化が可能となる。
また、本実施形態のロボットシステム1によれば、教示の際の微調整を保持部調整機構23で行うため、アーム20に用いる高減速比の減速機等に起因するヒステリシスロス等の誤差要因を小さくすることが可能になり、教示精度を向上することができる。
また、本実施形態のロボットシステム1によれば、アーム20が移動しているのと同時に、位相算出、誤差演算、補正計算、補正動作の少なくとも一部を実行することができる。これにより、アーム20の移動時間の他に必要な時間を抑えて、第1のワーク10の位置姿勢の補正による動作時間の増加を抑制できる。
また、本実施形態のロボットシステム1によれば、保持部調整機構23は2軸並進の2自由度を有しているので、例えば、本実施形態のように第1のワーク10にビス締めを行うために位置決めをする場合に有効である。あるいは、円柱形状のワークを保持部22に保持して円筒形状のワークに位相を決めずに挿入して組み付ける場合や、逆に円筒形状のワークを保持部22に保持して円柱形状のワークに位相を決めずに嵌合して組み付けたりする場合にも適用することができる。
また、本実施形態のロボットシステム1によれば、保持部調整機構23がハンド21の一部に設けられているので、エンドエフェクタの種類に応じて保持部調整機構23の構成を異ならせて設けたり、保持部調整機構23が不要であれば設けないようにもできる。例えば、エンドエフェクタが回転方向のみの調整で足りる場合は、保持部調整機構23はZ軸回転機構のみを有する構成にすることができる。従って、エンドエフェクタの種類に応じて保持部調整機構23を選択することができ、エンドエフェクタの最適な制御を実現することができる。
上述した本実施形態のロボットシステム1では、ワークの移動の例として、ビス締めを行うために第1のワーク10の位置決めをする工程を想定したため、保持部調整機構23は並進2軸の2自由度を有するものとした。しかしながら、本発明に係るロボットシステムでは、これに限られず、例えば、円筒を円柱に組み付けると共に位相合わせが必要な工程では、保持部調整機構23を並進2軸と回転1軸の3自由度を有するようにできる。あるいは、保持部調整機構23が4自由度以上の自由度を設定可能な機構にしてもよい。このように、保持部調整機構23に要求される自由度は、実際の作業工程に応じて適宜変更することができる。
[第2実施形態]
次に、本発明の第2実施形態に係るロボットシステム101について説明する。
第2実施形態は、第1実施形態と比較して、図10に示すように、ハード構成としてロボット102のハンド121の保持部調整機構123が、X軸並進機構90及びY軸並進機構91に加えて、Z軸回転機構92を有する点で構成を異にしている。それ以外の構成は、第1実施形態と同様であり、同一符号を付して説明を省略する。
Z軸回転機構92は、先端リンク67のフランジ面67aと垂直なZ軸を中心に回転する回転駆動機構となっている。Z軸回転機構92としては、精密なウォームギア(減速機)を使用し、ステッピングモータにより回転させることで駆動する回転1軸の構成としている。
Z軸回転機構92が回転を行った際に、保持部22の把持するワークの中心位置がX軸方向及びY軸方向に変動しないように、ワークを把持する保持部22の回転中心と、Z軸回転機構92の回転中心とが同心になるように調整しておく。Z軸回転機構92の回転中心と保持部22の回転中心とのずれは、許容組付け公差より小さいものとする。但し、このような調整をしなくとも、予め中心同士の位置のずれを同定しておくことで、回転補正に伴うX軸方向及びY軸方向のずれを考慮して、X軸方向及びY軸方向の補正量を算出するようにしてもよい。
本実施形態では、適用する作業工程の例として、図20(a)(b)に示すように、円筒形状の第2のワーク12を円柱形状の第3のワーク13に位相を決めて組み付ける工程を想定している。このため、保持部調整機構123は並進2軸,回転1軸の3自由度を有するようにしている。
カメラ7は、図13に示すように、テーブル6上に設けられたワーク供給位置6aの上方に、適宜な支持手段により下方を向いて支持されている。これにより、ワーク供給位置6aに載置されたワークは、カメラ7により撮影される。このワーク供給位置6aに載置されたワークを保持する際の保持部22の位置姿勢が、保持教示点(第1の位置姿勢)となるようにしている。
上述したロボットシステム101によりロボット102に教示を行って指令値を得るまでの動作準備時の動作を、図11に示すフローチャートに沿って説明する。
まず、ティーチングペンダント4の操作によりアーム20及び保持部調整機構123を動作させ、保持部22をワーク供給位置6aに位置させる。動作データ取得部83は、その時のアーム20及び保持部調整機構123の位置姿勢を保持教示点として取得し、RAM32に記憶する(ステップS20)。
ここで、カメラ7により計測を行うための事前準備として、座標校正部87が、カメラ7の撮像座標系(u,v)[pixel]と、計測座標系(Xv、Yv、Zv)[m]との座標校正を行う(ステップS21)。この撮像座標系と計測座標系との校正は、図13に示すように、ワーク供給位置6aに載置したワーク(例えば、固定側円柱状部材51))の可動な特徴的形状を示す面(例えば、上面)に座標校正治具9を載置して行う。具体的な処理手順については、第1実施形態のステップS2での処理手順と同様であるので、詳細な説明は省略する。
次に、座標校正部87が、計測座標系(Xv、Yv、Zv)と保持部調整機構123の動作座標系(Xt、Yt、Zt)との校正を行う(ステップS22)。この計測座標系と動作座標系との校正は、図14に示すように、補助校正治具11を用いて行う。この補助校正治具11は、保持部22により保持される摘み部11aと、座標校正治具9が載置されるプレート部11bとを備えている。プレート部11bに載置された座標校正治具9は、カメラ7の撮影視野に入っている。そして、保持部22が保持教示点に位置した状態において、保持部22に補助校正治具11を保持させ、保持部調整機構123を動作させながら、カメラ7により座標校正治具9の位置を計測する。座標校正部87は第1実施形態のステップS3と同様の処理手順により、計測座標系と動作座標系との間の座標変換行列を算出する。
次に、アーム20及び保持部調整機構123に対して、目標教示点の教示を行う。ここでは、教示治具5を利用して、以下のように教示を行っている。
図15(a)(b)に示すように、ロボット102の教示治具5として、例えば、筒状部材50と、固定側円柱状部材51と、移動側円柱状部材52とが利用される。筒状部材50は、Dカット面50aを有する断面略D字形状の透孔を備えている。固定側円柱状部材51は、外周にDカット面51aを備え、筒状部材50に回転不能で貫通可能な太さに形成されている。
移動側円柱状部材52は、Dカット面52aが形成された部位では筒状部材50に回転不能で挿入可能な太さに形成されている。また、図17に示すように、移動側円柱状部材52のDカット面52aの形成された端面の反対側の端面には、カメラ7により撮影されるためのマーク52bが付されている。マーク52bは移動側円柱状部材52の回転中心52cに対してDカット面52aの形成された方向を示している。
固定側円柱状部材51は、テーブル6の目標位置6bに載置される。筒状部材50は、固定側円柱状部材51の周囲に昇降可能に設けられている。固定側円柱状部材51の載置される位置及びその鉛直軸(図中、一点鎖線)での角度(位相)は、保持部22の目標教示点の位置姿勢により設定される。具体的には、図15(b)に示すように、筒状部材50が固定側円柱状部材51の周囲から移動側円柱状部材52の周囲に移動可能になった時に、移動側円柱状部材52を把持する保持部22が目標教示点に位置するように設定する。
即ち、移動側円柱状部材52を鉛直方向に一致させ、移動側円柱状部材52の先端面を固定側円柱状部材51の上面に中心を一致させて突き当てることで、保持部22のX軸方向座標及びY軸方向座標が、目標教示点のX軸方向座標及びY軸方向座標に一致する。更に、移動側円柱状部材52及び固定側円柱状部材51の各Dカット面52a,51aが同一平面上になるように、移動側円柱状部材52及び固定側円柱状部材51の位相を一致させことで、保持部22のZ軸回転方向座標が目標教示点のZ軸回転方向座標に一致する。この時、移動側円柱状部材52を把持する保持部22が目標教示点に位置するように、保持部22に対する移動側円柱状部材52の位相と、固定側円柱状部材51が載置される位置及び位相とを設定する。
教示の前に、ティーチングペンダント4の操作により、保持部22に移動側円柱状部材52を保持させる(ステップS23)。保持部22が移動側円柱状部材52を把持する際に、移動側円柱状部材52の回転軸と、Z軸回転機構92の回転軸とが平行になるように把持させる。ここで要求される平行度は、ワークを目標教示点に位置させる精度から設定される。このように平行に把持させることにより、Z軸回転機構92が保持部22を回転させた際に、移動側円柱状部材52のX軸方向及びY軸方向への回転、即ちZ軸に対する傾斜を抑えることができる。尚、保持部22が実際のワークを把持する際も、移動側円柱状部材52を把持する場合と同様に、ワークの回転軸と、Z軸回転機構92の回転軸とが平行になるように把持させるのは勿論である。
そして、図15(a)に示すように、目標位置6bに固定側円柱状部材51を設置すると共に、その周囲に筒状部材50を設ける。そして、教示時にはティーチングペンダント4を利用して、図15(b)に示すように、移動側円柱状部材52の下面を固定側円柱状部材51の上面に中心を一致させて突き当て、かつ位相を一致させ、保持部22を目標教示点に移動させる。操作者は、筒状部材50が固定側円柱状部材51の周囲から移動側円柱状部材52の周囲に移動可能になったと判断した時に、保持部22が目標教示点に到達したと判断する。
ここで、操作者は、アーム20の大きな動作によりX軸方向、Y軸方向、Z軸方向において目標教示点の近傍に位置させる。操作者は、その後、必要に応じて、保持部調整機構123の細かい動作によりX軸方向、Y軸方向、Z軸回転方向の調整をして移動側円柱状部材52及び固定側円柱状部材51の位相を一致させる。そして、動作データ取得部83は、アーム20及び保持部調整機構123の位置姿勢を目標教示点として取得し、RAM32に記憶する(ステップS24)。
次に、図16(a)に示すように、再生部85が、保持部22により保持した移動側円柱状部材52を、アーム20及び保持部調整機構123の動作により保持教示点に移動させる(ステップS25)。そして、ティーチングペンダント4の操作により、図16(b)に示すように、保持教示点において、保持部22が移動側円柱状部材52を解放してワーク供給位置6aに載置する(ステップS26)。
そして、画像処理部86がカメラ7に撮像指令を出し、カメラ7が移動側円柱状部材52を上方から撮影する(ステップS27)。カメラ7は撮像データを画像処理部86に送信し、画像処理部86は画像処理を行う。ここでは、図17に示すように、画像から移動側円柱状部材52の輪郭を抽出し、回転中心52cを算出する。そして、画像処理部86は、回転中心52cの座標を基準位置(Xd,Yd)として設定すると共に、回転中心52cとマーク52bとを結ぶ直線方向を基準位相θdとして設定し、これら基準位置位相をRAM32に記憶する(ステップS28)。基準位相θdは、Dカット面52aの向いた方向である。
ここでの基準位置位相とは、ワーク供給位置6aに載置されたワークが理想的な位置位相にあった場合の値である。このため、ワークを適正な位置姿勢で目標教示点に移動させるために、基準位置位相と、実際のワークを計測した位置位相との差分を演算し、保持部調整機構23により差分と同じ量をだけ打ち消す方向に移動させて補正する。
ここでは、移動側円柱状部材52の位相を計測するためのマーク52bは、実際に計測を行う際のワークの位相を特定する特徴的形状と同じ位置関係にあるものとする。即ち、移動側円柱状部材52と実際の組立対象となるワークとを同じ位置位相で置いた場合、カメラ7で計測した位置位相も同じ数値となる。これにより、基準位置位相と、計測した位置位相との差を取得するのみで、補正すべき位置位相を算出できる。但し、移動側円柱状部材52のマーク52bと、ワークの位相を特定する特徴的形状とを、同じ位置にしない場合でも、これらの位置位相の差に応じたオフセット値を予め取得しておくことで、位置位相の差分にオフセット値を加えて補正するようにしてもよい。
次に、上述したロボットシステム101によりロボット102を実際に動作させる際の動作を、図12に示すフローチャートに沿って説明する。
ここでは、図18〜図20に示すように、ロボット102により、円筒形状の第2のワーク12を円柱形状の第3のワーク13に嵌合させる動作を行わせる場合について説明する。第2のワーク12には内周側に突起部12aが設けられると共に、第3のワーク13の外周側には、これらのワーク12,13同士が嵌合した際に突起部12aが係合可能な溝部13aが設けられている。
まず、図18に示すように、第2のワーク12がワーク供給位置6aに載置されると共に、図20(a)に示すように、第3のワーク13が目標位置6bに載置されているものとする。そして、アーム20が、再生部85の指令により保持教示点に移動する(ステップS30)。
アーム20が保持教示点へ移動を開始すると同時に、画像処理部86がカメラ7に対して把持対象となる第2のワーク12を撮影するように指令し、カメラ7は第2のワーク12を撮影する(ステップS31)。画像処理部86は、カメラ7から撮像データを取得し、画像処理を行って、図19に示すように、第2のワーク12のカメラ座標における位置位相(Xv、Yv、θv)を算出する(ステップS32)。画像処理部86は、基準位置位相(Xd、Yd、θd)と実際の第2のワーク12の位置位相(Xv、Yv、θv)との差分を算出し、位置位相誤差(ΔXv、ΔYv、Δθv)を取得する(ステップS33、誤差演算工程)。
そして、再生部85が、位置位相誤差から保持部調整機構123の補正量を算出する(ステップS34、補正計算工程)。ここでは、位置位相誤差(ΔXv、ΔYv、Δθv)に、座標校正より求めた座標変換行列を積算することにより、保持部調整機構123への補正値(ΔXt、ΔYt、Δθt)を算出する。再生部85は、得られた保持部調整機構123の補正量を、保持部調整機構123の保持教示点への動作データに反映させ、保持部調整機構123の指令値を算出し、保持部調整機構123を保持教示点に移動させる(ステップS35、補正動作工程)。即ち、保持部調整機構123は、位置位相誤差を補正しつつ、保持教示点に移動する。
アーム20及び保持部調整機構23が保持教示点に移動すると共に、保持部調整機構23により位置位相誤差が補正される。この状態で、保持部22が第2のワーク12を保持する(ステップS36)。これにより、第2のワーク12は、保持部22に対して基準位置位相で保持されるようになる。そして、ロボット2は、再生部85の指令に従いアーム20及び保持部調整機構123により、第2のワーク12を目標教示点に移動させる(ステップS37)。従って、図20(a)に示すように、第2のワーク12は第3のワーク13に嵌合する。
ここで、アーム20及び保持部調整機構123が保持教示点に移動する動作(ステップS30)と、位置誤差の算出から保持部調整機構123の補正動作まで(ステップS33〜S35、補正作業工程)とは、動作が独立しているため同時に実行可能である。このため、アーム20及び保持部調整機構123の移動と同時に、位置誤差の算出(ステップS33)、保持部調整機構123の補正量の算出(ステップS34)、保持部調整機構123の補正動作(ステップS35)を実行している。
上述したように、本実施形態のロボットシステム101によれば、座標変換行列を利用して保持部調整機構123の補正量を算出しワークの位置位相誤差を補正できる。これにより、カメラ7による計測結果を用いてワークの位置姿勢を補正する際に、アーム20が非線形に動作する場合であっても、線形性の高い保持部調整機構123によって座標校正誤差及び移動誤差のいずれも抑え、高精度に補正することができる。
また、本実施形態のロボットシステム101によれば、保持部調整機構123にX軸並進機構90、Y軸並進機構91、Z軸回転機構92を有し、並進2軸及び回転1軸の3自由度を有する。このため、例えば、円筒形状の第2のワーク12を円柱形状の第3のワーク13に位相を決めて組み付ける場合等に適している。
[第3実施形態]
次に、本発明の第3実施形態に係るロボットシステム201について説明する。
第3実施形態は、ハード構成は第1実施形態と同様であり、同一符号を付して説明を省略する。また、適用する作業工程の例は、第2実施形態と同様であり、図20に示すように、円筒形状の第2のワーク12を円柱形状の第3のワーク13に位相を決めて組み付ける工程を想定している。このため、補正を行うのは、位置の2自由度と位相の1自由度の計3自由度であるため、保持部調整機構23は2自由度の並進機構と1自由度の回転機構の3自由度を有するのが好ましい。しかし、ロボット2の先端が重くなるとロボット2の動作が遅くなってしまうため、ここでは第1実施形態と同様に2自由度のみの並進機構としている。
位置姿勢誤差の補正のために必要な自由度数は3になる。これに対し、保持部調整機構23の自由度は2であるため、3自由度から2自由度を減算した1自由度については、その自由度と同数のアーム20の第6関節76を使用する。このため、第6関節76の減速機の設計や選別においては、ヒステリシスロス等が小さくなるものを選択することが好ましい。アーム20の先端に近い軸であれば、拘束性や耐荷重に対する制約が比較的少ないため、この選択が可能となる。
本実施形態においては、ロボット2が把持するワークの位相が変化する回転平面が、アーム20の第6関節76の回転面と平行となるように、ワークの保持時に調整する。この平行度は、カメラ7の計測精度や、ワークの目標教示点で要求される精度より設計可能である。これにより、ワークの位相を変化させる量と、第6関節76を回す量を同じ量にすることができ、その際のワークの姿勢変化も無くすことができる。尚、本実施形態では、第6関節76の回転中心と、ワークの中心の誤差は、許容組付け公差より小さいものとする。
上述したロボットシステム201によりロボット2に教示を行って指令値を得るまでの動作準備時の動作は、第2実施形態でのステップS20〜S27と同様の処理手順であるので、詳細な説明は省略する。
上述したロボットシステム201によりロボット2を実際に動作させる際の動作を、図21に示すフローチャートに沿って説明する。
ここでは、第2実施形態と同様に、図18〜図20に示すように、ロボット2により、円筒形状の第2のワーク12を円柱形状の第3のワーク13に嵌合させる動作を行わせる場合について説明する。
図18に示すように、第2のワーク12がワーク供給位置6aに載置されると共に、図20(a)に示すように、第3のワーク13が目標位置6bに載置されているものとする。
まず、画像処理部86がカメラ7に対して把持対象となる第2のワーク12を撮影するように指令し、カメラ7は第2のワーク12を撮影する(ステップS40)。画像処理部86は、カメラ7から撮像データを取得し、画像処理を行って、図19に示すように、第2のワーク12のカメラ座標における位置位相(Xv、Yv、θv)を算出する(ステップS41)。画像処理部86は、基準位置位相(Xd、Yd、θd)と実際の第2のワーク12の位置位相(Xv、Yv、θv)との差分を算出し、位置位相誤差(ΔXv、ΔYv、Δθv)を取得する(ステップS42、誤差演算工程)。
そして、再生部85が、位相誤差Δθvから第6関節76の補正量を算出する(ステップS43)。ここでは、位相誤差Δθvを第6関節76の補正量に設定している。再生部85は、得られた第6関節76の補正量を、第6関節76の動作データに反映させ、アーム20の指令値を補正し、アーム20及び保持部調整機構23を保持教示点に移動する(ステップS44、アーム移動工程)。即ち、アーム20は、位相誤差を補正しつつ、保持教示点に移動する。
一方、再生部85が第6関節76の補正量を算出するのと同時に、位置誤差(ΔXv、ΔYv)から保持部調整機構23の補正量を算出する(ステップS45、補正計算工程)。ここで、保持部調整機構23は第6関節76よりも先端側に設けられているので、第6関節76による位相の回転補正により、保持部調整機構23の動作座標系が回転する。このため、位置誤差(ΔXv、ΔYv)に、座標校正より求めた座標変換行列を回転方向の補正量Δθvだけ回転させて積算することにより、保持部調整機構23への補正値(ΔXt、ΔYt)を算出する。再生部85は、得られた保持部調整機構23の補正量に基づき、保持部調整機構23を補正動作させる(ステップS46、補正動作工程)。即ち、保持部調整機構23は、位置誤差を補正しつつ、保持教示点に移動する。
アーム20及び保持部調整機構23が保持教示点に移動すると共に、第6関節76により位相誤差が補正され、保持部調整機構23により位置誤差が補正される。この状態で、保持部22が第2のワーク12を保持する(ステップS47)。これにより、第2のワーク12は、保持部22に対して基準位置位相で保持されるようになる。そして、アーム20及び保持部調整機構23を、目標教示点に移動させる(ステップS48)。従って、図20(a)に示すように、第2のワーク12は所望の位置姿勢で目標教示点に移動し、第3のワーク13に嵌合する(ステップS49)。
ここで、アーム20及び保持部調整機構23が保持教示点に移動する動作(ステップS44)と、保持部調整機構23の補正量の算出から補正動作まで(ステップS45〜S46、補正作業工程)とは、動作が独立しているため同時に実行可能である。このため、アーム20及び保持部調整機構23の移動と同時に、保持部調整機構23の補正量の算出(ステップS45)及び補正動作(ステップS46)を実行している。
上述したように、本実施形態のロボットシステム201によれば、座標変換行列を利用して保持部調整機構23の補正量を算出しワークの位置位相誤差を補正できる。これにより、カメラ7による計測結果を用いてワークの位置姿勢を補正する際に、アーム20が非線形に動作する場合であっても、線形性の高い保持部調整機構23によって座標校正誤差及び移動誤差のいずれも抑え、高精度に補正することができる。
また、本実施形態のロボットシステム201によれば、ワークのX軸方向及びY軸方向の位置誤差は、第1実施形態及び第2実施形態と同様に、保持部調整機構23により行うことが可能となり、座標変換及び移動誤差の誤差を微小にすることが可能となる。ワークのZ軸回転方向の位相誤差は、アーム20の第6関節76を利用して補正を行うので、アーム20の座標系を考慮する必要が無く、アーム20の非線形性等に起因する座標変換誤差の発生を抑えることができる。また、先端リンク67のみの回転であるため、アーム20の各関節の誤差の蓄積の影響を受けないこと等により、移動誤差も微小とすることができる。従って、アーム20の非線形な動作に関わらず、補正の高精度化が可能となる。
また、本実施形態のロボットシステム201によれば、保持部調整機構23の軸数は2軸のみであるので、3軸の保持部調整機構を使用する場合に比べて軽量化やコスト低減を図ることができる。
上述した第1実施形態〜第3実施形態のロボットシステム1,101,201では、保持部調整機構23,123は、ハンド21,121の一部に設けられた構成としている。しかしながら、本発明に係るロボットシステムでは、これに限られず、保持部調整機構23,123は、アーム20の第6関節76と保持部22との間で、アーム20に対して保持部22の位置姿勢を調整可能なものであればよい。このため、保持部調整機構23,123としては、例えば、アーム20及びハンド21,121の間に介在される独立した別機構としたり、あるいはアーム20の先端リンク67の一部に設けられるようにしてもよい。
保持部調整機構23,123が、先端リンク67の一部に設けられている場合は、保持部調整機構23,123を共用化することでコスト増加を抑えることができると共に、従来からのエンドエフェクタをそのまま利用することができる。
また、上述した第1実施形態〜第3実施形態のロボットシステム1,101,201では、センサとしてカメラ7を使用した場合について説明した。しかしながら、本発明に係るロボットシステムでは、これに限られず、例えば、レーザ変位計など他のセンサを用いてもよい。
また、第1実施形態〜第3実施形態のロボットシステム1,101,201では、操作者によるティーチングペンダント4の操作及び教示治具5,105の利用により各教示を行う場合について説明した。しかしながら、本発明に係るロボットシステムでは、これに限られず、例えば、カメラ7及び画像処理部86を利用して、操作者の手動操作を行うことなく、ロボット2の教示を自動的に行うようにしてもよい。
また、第1実施形態〜第3実施形態のロボットシステム1,101,201では、動作データ取得部83は教示により動作データを取得する場合について説明した。しかしながら、本発明に係るロボットシステムでは、これに限られず、例えば、既存のデータベースから動作データをダウンロードにより取得したり、あるいは動作データを計算により取得するようにしてもよい。
また、第1実施形態〜第3実施形態のロボットシステム1,101,201では、アーム20及び保持部調整機構23,123への教示を特に分けることなく、同時あるいは連続して行う場合について説明した。しかしながら、本発明に係るロボットシステムでは、これに限られない。例えば、アーム20に実際の再生速度以下の速度で第1の教示を行い、アーム20を実際の再生速度で再生させ、その再生後の位置からアーム20よりヒステリシスロス等の少ない保持部調整機構23,123に第2の教示を行うようにしてもよい。
この場合、再生時には、アーム20を第1の教示データによって再生すると共に、保持部調整機構23,123を第2の教示データによって再生する。これにより、アーム20でヒステリシスロス等により位置誤差が発生しても、保持部調整機構23,123により補正されるようになり、ロボット2によるワークの移動の精度を向上できるので、例えば、ロボット2による部品組立の精度を向上することができる。
また、第1実施形態〜第3実施形態のロボットシステム1,101,201では、アーム20の軌道計算については特に触れていないが、動作準備時において目標教示点と計測教示点あるいは保持教示点とに基づいてアーム20の軌道計算を行うようにできる。この場合、ロボットシステム1,101,201が保持部調整機構23を備えることにより、アーム20の移動とは独立して保持部調整機構23により補正動作を実行することができる。これにより、アーム20の軌道計算を、誤差演算、補正計算、補正動作のいずれとも別個に実行しているので、補正の必要が生じてもアーム20の軌道計算を再度行う必要が無く、補正による動作時間の増加を抑制できる
また、その場合、ロボットシステム1,101,201によれば、アーム20の軌道計算は動作準備時に完了でき、実際の動作時にはアーム20の軌道計算を一切実行する必要が無い。これにより、アーム20の動作中に軌道計算を実行する場合に比べて、補正による動作時間の増加を抑制できる。
尚、以上述べた第1実施形態〜第3実施形態の各処理動作は具体的には制御装置3により実行されるものである。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体を制御装置3に供給し、制御装置3のCPU30が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
また、各実施の形態では、コンピュータ読み取り可能な記録媒体がROM31であり、ROM31にプログラムが格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、HDD、外部記憶装置、記録ディスク等を用いてもよい。