(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【0013】
[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。第1実施形態においては、真空成型などにより形成された合成樹脂などの撓みが発生し得る樹脂製のトレー600を用いる場合について説明する。
【0014】
ロボット装置100は、部品W
1を部品W
2に組み付ける組付作業を行うロボット200と、ロボット200に接続され、ロボット200の動作を制御する制御部としての制御装置300と、制御装置300に接続された教示装置400と、を備えている。
【0015】
ロボット200は、第1実施形態では、3軸直交ロボットである。ロボット200は、ロボット本体201と、ロボット本体201に取り付けられたロボットハンド(エンドエフェクタ)202とを有している。なお、ここでは3軸として説明したが、2軸や4軸などでもよく、この限りではない。
【0016】
ロボット本体201は、ベース部211と、ベース部211に対してX方向に移動可能なアーム部212と、アーム部212に対してX方向に直交(交差)するY方向に移動可能なアーム部213と、を有している。また、ロボット本体201は、アーム部213に対してX,Y方向に直交(交差)するZ方向に移動可能なアーム部214を有している。
【0017】
ロボットハンド202は、アーム部214に取り付けられたハンド本体(掌部ともいう)220と、ハンド本体220に開閉移動可能に設けられた複数のフィンガー230とを有している。ロボットハンド202は、ロボット本体201に取り付けられたことにより、X,Y,Z方向に移動可能となっている。
【0018】
ハンド本体220は、筐体221と、筐体221の内部に配置され、複数のフィンガーを開閉駆動する駆動部(不図示)と、筐体221の外部であって、複数のフィンガー230に囲まれる位置に配置された突き当て部222とを有する。各フィンガー230は、把持爪であり、互いに近接(半径方向内側に移動)又は離間(半径方向外側に移動)することで、部品W
1の把持又は把持解放が可能である。第1実施形態では、フィンガー230は関節がない把持爪であるが、関節を有するものであってもよい。
【0019】
第1実施形態では、フィンガー230の数は3本であり、これらフィンガー230が略正三角形の頂点に配置されている。即ち、複数のフィンガー230は、ハンド本体220の中心軸を中心に360°をフィンガー数で割った角度(第1実施形態では120°)で回転対称に配置されている。これらフィンガー230により円柱状や円環状の部品を把持する場合は、三角形の重心と円の中心が一致するように水平方向(X,Y方向)に再現性高く把持することができる。ただし、ロボットハンド202の構成は必要に応じたものとしてよく、この限りではない。
【0020】
トレー600は、板状に形成された載置部601と、載置部601に互いに間隔をあけて突出して形成された複数(第1実施形態では6個)の突出部602と、を有する。トレー600は、架台501上に載置される。架台501には、位置決め用のピンがあり、トレー600には位置決め用の穴が設けられている。位置決め用のピンを、位置決め用の穴に嵌合させることにより、架台上のトレー600のX,Y方向の設置再現性は、ピンと穴のガタにより制限される。
【0021】
トレー600の載置部601は、部品W
1が載置可能となっている。部品W
1は、環状(円環状)に形成されている。各突出部602は、部品W
1の外周面を複数のフィンガー230に把持させるべく嵌め込まれた部品W
1の外周面が露出するように、円柱形状に形成されている。各突出部602は、部品W
1が遊嵌され載置部601に載置されたときに、部品W
1の内周面に接触して部品W
1の水平方向(X,Y方向)の移動を規制する。
【0022】
トレー600は、樹脂で形成されており、特に載置部601に撓み(歪み)が生じやすい。これにより、トレー600に載置された部品W
1は、トレー600が架台501に対して水平方向(X,Y方向)に位置決めされていたとしても、トレー600の撓みにより架台501に対して垂直方向(Z方向)に浮いた(ずれた)状態となることがある。
【0023】
架台502上には、部品W
1を組み付ける対象となる部品W
2が載置される。部品W
2は、
図1に示すように、径の異なる円柱が中心を一致させた形状である。そして、部品W
2において径が小さい上部に部品W
1が組み付けられることとなる。
【0024】
ここで、仮に、部品W
1を部品W
2に組付を行う際には、部品W
1の把持姿勢が調整時より傾いていると組付かない。また、仮に、フィンガー230において部品W
1を把持する高さ方向(Z方向)の位置が下すぎると、部品W
1と部品W
2とが干渉し、ロボットハンド202やロボット本体201の故障につながる。
【0025】
また、仮に、フィンガー230において部品W
1を把持する高さ方向(Z方向)の位置が上すぎると、部品W
1を落とす距離が大きくなる。部品W
1が落下する距離が大きくなるほど衝撃が大きく、部品W
1や部品W
2に傷が付いてしまったり、落下した際に部品W
1が跳ねてしまい組付け不良になってしまったりする恐れがある。
【0026】
それゆえ、組付を行う際には、ロボットハンド202は、初期設定時の把持状態と再現性高く、部品W
1を把持する必要がある。
【0027】
ここで、ロボットハンド202の突き当て部222の厚みは、トレー600の突出部602の寸法および部品W
1の厚みを考慮して、突出部602の上面(先端面)と突き当て部222とが接触した状態で部品W
1の把持位置が所望の位置になるように設計する。
【0028】
例えば、筐体221において、フィンガー230が取り付けられる面と、突き当て部222が取り付けられる面が同一と仮定する。フィンガー230の長さをL、部品W
1の下面からフィンガー230の先端までの長さをW、トレー600の突出部602の高さをPとすると、突き当て部222の厚みの設計値tは以下の式(1)で表わされる。
t=L+W−P・・・(1)
【0029】
このとき、長さWは、部品W
1の把持したい位置より決定される。把持したい位置とは、その部品W
1の機能を損なわないところや後工程の邪魔にならないことを考慮して決定する。
【0030】
トレー600は、例えばPET樹脂の材料でできており、真空成型により1[mm]程度の厚みで成形されている。真空成型により樹脂で形成されたトレー600は、コストが安くて軽いというメリットがあるが、部分的な厚みの変化や材料が持つ性質によりトレー600が正確には水平にならず、撓みが発生しやすいデメリットがある。
【0031】
このようなトレー600の撓み(トレー600の設置面において、架台501との隙間が発生している所の最大値が目安となる)は、1[mm]程度発生することが多く、撓みを解消して0.2[mm]程度まで小さくすることが望まれる。
【0032】
なお、トレー600が、PET樹脂で真空成型により形成された場合としたが、PS樹脂などでもよく、より高精度の撓み補正が必要な場合(0.2[mm]の撓みを0.05[mm]まで抑えたいなど)は、射出成型により形成されたものであってもよい。
【0033】
ここで、トレー600が架台上に載置されているものとして、トレー600の突出部602の架台に対する垂直方向(Z方向)の高さは、突出部602に嵌め込まれた部品W
1のZ方向の高さ(厚み)よりも高いものとする。これにより、ロボットハンド202の突き当て部222を、部品W
1に干渉(衝突)することなく突出部602の先端面に突き当てることができる。
【0034】
図2は、本発明の第1実施形態に係るロボット装置100の制御装置300の概略構成を示すブロック図である。制御装置300は、コンピュータで構成され、演算部としてのCPU(Central Processing Unit)301を備えている。また、制御装置300は、記憶部として、ROM(Read Only Memory)302、RAM(Random Access Memory)303、HDD(Hard Disk Drive)304を備えている。また、制御装置300は、記録ディスクドライブ305及び各種のインタフェース321〜323を備えている。
【0035】
CPU301には、ROM302、RAM303、HDD304、記録ディスクドライブ305、及び各種のインタフェース321,322,323が、バス306を介して接続されている。
【0036】
ROM302には、BIOS等の基本プログラムが格納されている。RAM303は、CPU301の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【0037】
HDD304は、CPU301の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、CPU301に、後述する各種処理を実行させるためのプログラム330を記録するものである。CPU301は、HDD304に記録(格納)されたプログラム330に基づいて部品ピッキング方法の各工程を実行する。
【0038】
記録ディスクドライブ305は、記録ディスク340に記録された各種データやプログラム等を読み出すことができる。
【0039】
教示装置400は、可搬式のものであり、インタフェース321に接続されている。教示装置400は、ユーザの操作により、ロボット200を教示する教示点、即ちロボット本体201及びロボットハンド202を教示する教示点のパラメータ値を制御装置300に出力する。また、教示装置400は、ユーザが操作することにより、プログラム330の作成及び編集をすることができる。
【0040】
インタフェース322,323は、ロボット本体201及びロボットハンド202とCAN通信を行うCAN通信手段であり、ロボット本体201及びロボットハンド202に接続されている。なお、通信方式はCAN通信が好ましいが、これに限定するものではなく、RS232C通信などでもよい。
【0041】
プログラム330は、主にロボット制御プログラム331と、ハンド制御プログラム332とを有している。CPU301は、プログラム330を読み出して、不図示のソフトウェアを用いて各プログラム331,332を実行することにより、ロボット本体201,ロボットハンド202の動作を制御する。ここで、プログラム330において、ロボット制御プログラム331と、ハンド制御プログラム332とは独立したプログラムであるように説明したが、独立していなくてもよい。
【0042】
なお、バス306には、不図示のインタフェースを介して、書き換え可能な不揮発性メモリや外付けHDD等の不図示の外部記憶装置が接続されていてもよい。
【0043】
次に、ロボット本体201を教示する教示点、及びロボットハンド202を教示する教示点のパラメータ値を設定する教示動作について説明する。
【0044】
実際の組付作業では、制御装置300(CPU301)は、プログラム330(ロボット制御プログラム331及びハンド制御プログラム332)に従って、ロボット本体201及びロボットハンド202の動作を制御する。プログラム330は、例えばテキストファイルでユーザが読み書き可能なロボット言語で記述されている。なお、プログラム330は、例えばバイナリ形式で記述されていてもよい。制御装置300(CPU301)は、不図示のソフトウェアを用いてプログラム330を解釈し、ロボット本体201及びロボットハンド202の動作を制御する。
【0045】
ロボット制御プログラム331及びハンド制御プログラム332には、教示点が定義されている。各教示点のパラメータ値は、ロボット制御プログラム331及びハンド制御プログラム332とは別に、教示点のデータファイル(例えばテキストファイル)として設定する。その際、プログラム330は、該データファイルも含むものとする。なお、教示点のパラメータ値(教示点のデータ)は、ロボット制御プログラム331及びハンド制御プログラム332に組み込まれていてもよい。
【0046】
図3は、第1実施形態の教示動作を示すフローチャートである。具体的には、
図3(a)は、ロボットハンド202の教示動作を示すフローチャートである。
図3(b)及び
図3(c)は、ロボット本体201の教示動作を示すフローチャートである。
【0047】
図4は、第1実施形態の教示動作を説明するための図である。具体的には、
図4(a)は、
図3(a)及び
図3(b)に示すロボット本体201及びロボットハンド202の教示動作を説明するための図である。
図4(b)は、
図3(c)に示すロボット本体201の教示動作を説明するための図である。
【0048】
図4(a)及び
図4(b)に示す教示治具W
11,W
12,W
14は、円柱状の治具であり、教示治具W
11は部品W
1(入り側)の代替となる。教示治具W
14は、部品W
2(受け側)の代替となる。教示治具W
11,W
12,W
14は同じ径で設計されている。教示治具W
11は部品W
1の厚みと一致するように設計されている。教示治具W
12の厚みは、教示治具W
12の上面が、トレー600に撓みがなかった場合に部品W
1の下面に一致するように設計されている。教示治具W
14は部品W
2の径が大きい部分の円柱の厚みと一致するように設計されている。教示治具による部品の代替を必要とするのは、実際の部品を用いると部品の公差などの誤差を含んだ教示となってしまうためである。なお、必要精度によっては、教示治具の代わりに実際の部品を用いて教示を行ってもよい。
【0049】
教示治具W
13,W
15は、円筒状の治具であり、教示治具W
11,W
12,W
14の径と内径が一致するように設計されている。この際、設計の公差は教示の必要精度以下の隙間で、教示治具W
11,W
12と教示治具W
13とが嵌合するように、また、教示治具W
11,W
14と教示治具W
15とが嵌合するように設計されている。
【0050】
第1実施形態での教示は、教示治具W
11と教示治具W
12,W
14との円中心と姿勢がほぼ一致するように、ロボット200の教示点を調整する。その調整が完了した確認は、予め教示治具W
12,W
14に通してあった円筒形状の教示治具W
13,W
15が教示治具W
11にも通ることを確認することにより行う。
【0051】
なお、必要精度によっては、教示治具W
13,W
15を用いずに教示治具W
11と教示治具W
12,W
14との中心のずれを目視や手感により確認してもよいし、教示治具W
13と教示治具W
15とは共通としてもよい。
【0052】
ロボットハンド202の教示点P
H1,P
H2の設定ついて
図3(a)に示すフローチャートに沿って説明する。
【0053】
まず、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、ロボットハンド202のフィンガー230を動作させてフィンガー230に教示治具W
11を把持させる(S1)。このとき、ロボットハンド202はCPU301からの指令によりフィンガー230を電流制御により閉方向(半径方向内側)に動かすことで教示治具W
11の把持を行う。
【0054】
そして、CPU301は、把持を終えた(フィンガー230のエンコーダの変化が停止した)状態になったとき、そのときのロボットハンド202のフィンガー230の位置を、部品W
1を把持する際の教示点P
H2としてHDD304に保存する(S2)。
【0055】
次に、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、教示点P
H2からフィンガー230をあるオフセット値の量だけ開方向(半径方向外側)に移動させる(S3)。CPU301は、その状態を教示点P
H1としてHDD304に保存する(S4)。このオフセット値は、部品W
1やトレー600の位置のバラつき、架台501のバラつき、ロボット本体201の位置再現性などを考慮し、部品W
1の取得の際に、部品W
1とフィンガー230の先端とが衝突するといった、干渉が発生しないように算出する。
【0056】
次に、部品W
1を取得する際のロボット本体201の教示点P
A1,P
A2の設定について
図3(b)に示すフローチャートに沿って説明する。部品W
1の取得の教示は、代表的な1つについて教示を行って、残り5つをパレタイジング機能を用いて作成してもよいし、残り5つについても個別の同様の教示を行ってもよい。以下の説明では、部品W
1の1つに対する教示について例示する。
【0057】
教示を行う初期状態としては、教示対象となる位置に教示治具W
11〜W
13が置かれた状態とする。このとき、教示治具W
12は、架台501におけるトレー600を設置する位置決めピンなどを利用して、トレー600とピンとのガタやトレー600と部品W
1とのガタなどにより部品W
1の位置バラつきが発生する際のバラつき中心に設置するものとする。教示治具W
13は教示治具W
12に嵌合させておく。この際、教示治具W
11は予めロボットハンド202に事前に把持させておいてもよい。
【0058】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボット本体201のアーム部212,213,214(3軸)を動作させる。これにより、CPU301は、ロボットハンド202のフィンガー230が教示治具W
11を把持できる位置へロボットハンド202を大まかに移動させる。このとき、ロボットハンド202は教示点P
H1の状態(開状態)にしておく。
【0059】
そして、ユーザが教示装置400を操作することで、CPU301は、アーム部212,213,214の位置を調整して、フィンガー230と教示治具W
11とが接触する高さを所望の位置に調整する。所望の位置とは、フィンガー230を設計において、部品W
1を把持したい位置と接するようにした部位が、教示治具W
11の部品W
1の把持したい位置と同等の位置と接する状態を示す。この把持したい位置とは、上記の長さWと、教示治具W
11の寸法差から算出する。その後、CPU301は、ロボットハンド202のフィンガー230を教示点P
H2へ移動させ、フィンガー230に教示治具W
11を把持させる。把持を行うと、教示治具W
11と教示治具W
12とがずれるので、教示治具W
13は教示治具W
11に嵌合しなくなる。
【0060】
それゆえ、ユーザが教示装置400を操作することで、CPU301は、ロボット本体201のアーム部212,213を動作させて、教示治具W
11と教示治具W
13が嵌合するように調整する(S5)。
【0061】
CPU301は、その調整により得られた教示点P
A2をHDD304に保存する(S6)。その後、CPU301は、ロボット本体201のアーム部214を動作させて、ロボットハンド202を、ロボットハンド202や把持している教示治具W
11が他の物体と干渉しない位置まで上方にシフトさせる(S7)。
【0062】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具W
11を移動させてからロボット本体201を動作させることで、近くに設置された治工具と教示治具W
11とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点P
A1としてHDD304に保存する(S8)。
【0063】
次に、部品W
1を部品W
2に組み付ける際のロボット本体201の教示点P
A3,P
A4の設定について
図3(c)に示すフローチャートに沿って説明する。この教示を行う前に教示治具W
14を、部品W
1を取得する際の教示と同様に部品W
2が置かれる位置に設置しておくこととする。まずは、ロボット本体201のアーム部214が教示点P
A1の位置で、かつ、教示治具W
11を把持した状態で、ロボット本体201のアーム部212,213を動作させて教示治具W
14の上方へロボットハンド202を移動させる。そして、ロボット本体201のアーム部214を動作させて、教示治具W
11と教示治具W
14との隙間が所定値以下となるように隙間ゲージなどを用いて調整する。その隙間の所定値はロボット200や部品、治具の精度・公差を積み上げて計算を行い、組付を行う際に部品同士が干渉しない必要最小限の値に設定する。
【0064】
その後、CPU301は、ロボット本体201のアーム部212,213を動作させて、教示点P
A2と同様に教示治具W
11と教示治具W
15とが嵌合するように、調整を行う(S9)。これらの調整を終えたら、CPU301は、ロボット本体201のアーム部212,213,214の位置を、教示点P
A4としてHDD304に保存する(S10)。また、その位置からロボット本体201のアーム部214を動作させて、ロボットハンド202や教示治具W
11がその他の物体と干渉しない位置まで上方にシフトさせ(S11)、その点を教示点P
A3としてHDD304に保存する(S12)。
【0065】
以上、ステップS6にて教示点P
A2を設定したので、ロボット本体201を教示点P
A2に従って動作させることにより、ロボットハンド202によってトレー600が架台501に押し付けられることとなる。以下、この動作について詳細に説明する。
【0066】
図5は、本発明の第1実施形態に係る部品ピッキング方法(部品組み付け方法)を示すフローチャートである。制御装置300のCPU301は、プログラム330に従ってロボット本体201及びロボットハンド202の動作を制御する。
【0067】
まず、CPU301は、部品W
1を部品W
2に組み付けを行う際、教示点P
H1のデータを用いて、ロボットハンド202のフィンガー230を把持前の状態に設定する(S13)。そして、CPU301は、教示点P
A1を用いて、部品W
1を取得する位置の上方へロボット本体201を移動させる(S14)。
【0068】
CPU301は、ロボット本体201の移動後、教示点P
A2を用いて部品W
1を取得する位置、即ちロボットハンド202をトレー600に突き当てて、架台501にトレー600を押し付ける位置へロボット本体201を動作させる(S15:押付工程)。具体的に説明すると、ステップS15では、CPU301は、ロボットハンド202の突き当て部222を突出部602の先端面に突き当てて、架台501にトレー600を押し付けるようロボット本体201を動作させる。
【0069】
これによって、ロボットハンド202のロボット本体201によりトレー600が架台501に押し付けられ、トレー600の撓みが解消される。したがって、部品W
1のZ方向の位置決めがなされる。
【0070】
ここで、突出部602は、載置部601に載置された部品W
1の内周面に接触して該部品W
1の移動を規制しているので、部品W
1のX,Y方向の位置決めもなされており、よって部品W
1のX,Y,Z方向の位置決めがなされたこととなる。
【0071】
第1実施形態では、ステップS15における押付工程では、CPU301が、予め設定された教示点P
A2のデータに従ってロボット本体201を動作させているので、制御を簡略化できる。
【0072】
CPU301は、教示点P
H2を用いてロボットハンド202を動作させ部品W
1を把持させる(S16:把持工程)。
【0073】
具体的に説明すると、ステップS16では、CPU301は、ステップS15にてトレー600を架台501に押し付けた状態で、トレー600に載置された部品W
1を複数のフィンガー230に把持させる。ここで、部品W
1の内周面が突出部602に接触するよう部品W
1を突出部602に嵌めているので、ステップS16では、載置部601に載置された部品W
1の外周面を複数のフィンガー230に把持させる。
【0074】
CPU301は、複数のフィンガー230に部品W
1を把持させたら、ロボット本体201を教示点P
A1に従い動作させることで、再度部品を取得する位置の上方へ移動させる(S17)。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点P
A1を再度使用することとする。
【0075】
そして、CPU301は、教示点P
A3を用いて、ロボット本体201を、部品W
1を組付ける位置の上方へ移動させる(S18)。
【0076】
次に、CPU301は、ロボット本体201を教示点P
A3に移動させた後、教示点P
A4を用いて、部品W
1を部品W
2へ組付ける位置へロボット本体201を移動させる(S19)。これにより、部品W
1が部品W
2へ組み付けられる。
【0077】
次に、CPU301は、教示点P
H1を用いてロボットハンド202を動作させることで、複数のフィンガー230を、部品W
1を離す解放位置(半径方向外側)へ移動させる(S20)。なお、ここでは簡単のために教示点P
H1を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【0078】
これらステップS13〜S20により、供給された部品W
1を取得して部品W
2に組付を行うことができる。
【0079】
その後、CPU301は、教示点P
A3を用いて、部品W
1を組付ける位置の上方へロボット本体201を退避させる(S21)。ここでは簡単のために教示点P
A3を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【0080】
そして、CPU301は、部品W
2に組み付ける次の部品W
1があるか否かを判断する(S22)。CPU301は、次の部品W
1がある場合は(S22:Yes)ステップS13へ戻り、次の部品W
1の取得に向かい(S13)、無い場合は(S22:No)、組立てられた部品群を次の工程へ運び(S23)、組立を終了する。
【0081】
図6は、ステップS15(押付工程)でロボットハンド202をトレー600に押し付ける前後を示す説明図である。
図6(a)は、ステップS15の前のトレー600の状態を示し、
図6(b)は、ステップS15の後にステップS16で部品W
1を複数のフィンガー230により把持した状態を示している。なお、
図6(a)及び
図6(b)において、トレー600は、断面を模式的に図示している。
【0082】
トレー600(載置部601)が、
図6(a)に示すように、上に凸(又は下に凸)に撓むことで、架台501に対して部品W
1の位置及び姿勢にずれが生じることがある。
【0083】
第1実施形態では、ステップS15においてロボットハンド202によりトレー600が架台501に押し付けられて、トレー600の撓み(歪み)が解消される。つまり、トレー600の突出部602の先端面にロボットハンド202の突き当て部222が突き当たることで、トレー600の平板状の載置部601の撓みがキャンセルされた状態となる。この状態で、
図6(b)に示すように、複数のフィンガー230に部品W
1を把持させることにより、複数のフィンガー230が部品W
1を再現性高く(高精度に)把持することができる。
【0084】
複数のフィンガー230によって部品W
1を再現性高く把持できているため、高精度な組付が可能となり、また、組付け後に把持を解いたときに部品W
1が落下する量を最小限に抑えることが可能となる。
【0085】
また、トレー600の撓みを解消させる動作が、通常の把持の動作のみで行うことができるので、タクトの増加はない。更に、ロボットハンド202の手のひらの部分に突き当て部222を設けただけで済むので、スペースの増加は殆どなく、コストの増加も微小である。
【0086】
なお、第1実施形態では、ロボット200の動作は、部品W
1の取得と組付のみに言及したが、これに限るものではなく、途中で他の構成要素などとの回避点を入れるなどして軌道を変更したり、間に部品に塗布剤を塗るなどの別工程を入れたりしてもよい。
【0087】
また、突き当て部222を、複数のフィンガー230の間に配置したが、これに限定するものではなく、トレー600の形状に応じて、複数のフィンガー230による把持作業に支障がないところであってトレー600を押圧できればどこに設けてもよい。例えば、ハンド本体220の筐体221の外側面やフィンガー230等に突き当て部222を設けてもよい。
【0088】
[第2実施形態]
次に、本発明の第2実施形態に係る部品ピッキング方法について説明する。上記第1実施形態では、ロボットが3軸直交ロボットである場合について説明したが、ロボットの構成は、これに限定するものではなく、目的に応じて軸数や形態(例えば、垂直多関節、水平多関節、パラレルリンクなど)を変えてもよい。第2実施形態では、ロボットが垂直多関節型の6軸のロボットである場合を例に説明する。
図7は、本発明の第2実施形態に係るロボット装置の概略構成を示す説明図である。なお、上記第1実施形態と同様の構成については、同一符号を付して説明を省略する。
【0089】
図7に示すように、ロボット装置100Aは、ロボット200Aと、ロボット200Aに接続され、ロボット200Aの動作を制御する制御部としての制御装置300Aと、制御装置300Aに接続された教示装置400と、を備えている。
【0090】
ロボット200Aは、ロボット本体である多関節ロボットアーム(以下「ロボットアーム」という)201Aと、ロボットアーム201Aの先端に接続されたエンドエフェクタであるロボットハンド202Aと、を備えている。
【0091】
ロボットアーム201Aは、垂直多関節型のロボットアームであり、複数のリンクが関節J1〜J6で旋回又は回転可能に互いに連結されて構成されている。
【0092】
ロボットハンド202Aは、ロボットアーム201Aの先端に取り付けられたハンド本体(掌部ともいう)220Aと、ハンド本体220Aに設けられた複数(例えば2本)のフィンガー230Aとを有している。各フィンガー230Aは、把持爪であり、互いに近接又は離間することで、部品の把持又は把持解放が可能である。第2実施形態では、フィンガー230Aは関節がない把持爪であるが、関節を有するものであってもよい。
【0093】
第2実施形態では、ロボット200Aは、ロボットハンド202Aに加わる力(モーメントも含む)を検出する力覚センサ240を有している。力覚センサ240は、ロボットアーム201Aの先端とロボットハンド202Aのハンド本体220Aとの間に設けられている。つまり、ロボットハンド202Aは、ロボットアーム201Aに力覚センサ240を介して取り付けられている。
【0094】
図8は、本発明の第2実施形態におけるトレー600Aを示す斜視図である。トレー600Aは、板状に形成された載置部601Aと、載置部601Aに互いに間隔をあけて突出して形成された複数(第2実施形態では4個)の突出部602Aと、を有する。トレー600Aは、架台501上に載置されている。架台501には、位置決め用のピンがあり、トレー600Aには位置決め用の穴が設けられている。位置決め用のピンを、位置決め用の穴に嵌合させることにより、トレー600AのX,Y方向の設置再現性は、ピンと穴のガタにより制限される。
【0095】
トレー600Aの載置部601Aは、部品W
3が載置可能となっている。部品W
3は、環状(円環状)に形成されている。各突出部602Aは、筒状(円筒状)に形成されており、内部に部品W
3が遊嵌され載置部601Aに載置されたときに、突出部602Aの内周面が部品W
3の外周面に接触して部品W
3の水平方向(X,Y方向)の移動を規制する。これにより、突出部602Aは、載置部601Aに載置された部品W
3に接触して該部品W
3の水平方向の移動を規制する。
【0096】
第2実施形態では、円筒形状の突出部602Aの内部に部品W
3が配置されるので、複数のフィンガー230Aは、円筒状の部品W
3を、部品W
3の内周面から把持する。つまり、複数のフィンガー230Aに部品W
3の内周面を把持させるために、円筒形状の突出部602Aの内部に部品W
3が配置される。
【0097】
トレー600Aは、樹脂で形成されており、特に載置部601Aに撓み(歪み)が生じやすい。つまり、トレー600Aは、上記第1実施形態と同様、撓みが発生しやすい材質および方法で成形されたものである。
【0098】
トレー600Aに載置された部品W
3は、トレー600Aが架台501に対して水平方向(X,Y方向)に位置決めされていたとしても、トレー600Aの撓みにより架台501に対して垂直方向(Z方向)に浮いた(ずれた)状態となることがある。
【0099】
この円筒状の突出部602Aは、内部に設置された部品W
3を粗く位置決めをすると共に、上面がハンド本体220Aに突き当たるよう、載置部601Aに載置された部品W
3よりも突出する高さに形成されている。つまり、ハンド本体220Aにおいて複数のフィンガー230Aが設置される設置面において、複数のフィンガー230Aの設置領域の外側の領域が、突き当て部となる。換言すると、トレー600Aの突出部602Aの上面(先端面)が突き当て部であるともいえる。
【0100】
よって、突出部602Aの高さは、突き当たるロボットハンド202Aの位置、その位置に対するフィンガー230Aの位置や長さを考慮して、突出部602Aの上面と、ロボットハンド202Aの一部が接した状態で、部品の把持位置を所望の位置に設計する。
【0101】
例えばフィンガー230Aが取り付けられるハンド本体220Aの面と、トレー600Aの突出部602Aの上面とが同一高さにあると仮定する。フィンガー230Aの長さをL、部品W
3の下面からフィンガー230Aの先端までの長さをWとすると、トレー600Aの突出部602Aの高さPは以下の式(2)で表わされる。
P=L+W・・・(2)
【0102】
第2実施形態では、部品W
3を取得した後に行う工程は、塗布剤を部品W
3の外周面に塗布する工程である。塗布剤の塗布を行う際には、部品W
3の把持姿勢が調整時より傾いていたり、把持する高さが上下してしまったりすると、塗布剤が波打って塗布されるなどして品質が劣化する。それゆえ、塗布を行う際には、初期設定時の把持状態と再現性高く、部品W
3を把持する必要がある。
【0103】
図9は、本発明の第2実施形態に係るロボット装置100Aの制御装置300Aの概略構成を示すブロック図である。制御装置300Aは、コンピュータで構成され、上記第1実施形態と同様、演算部としてCPU301を備えている。また、制御装置300Aは、上記第1実施形態と同様、記憶部として、ROM302、RAM303、HDD304を備えている。また、制御装置300Aは、記録ディスクドライブ305及び各種のインタフェース321〜324を備えている。
【0104】
第2実施形態では、HDD304には、上記第1実施形態のプログラム330とは異なるプログラム330Aが記録されている。CPU301は、HDD304に記録(格納)されたプログラム330Aに基づいて部品ピッキング方法の各工程を実行する。
【0105】
インタフェース322,323は、ロボットアーム201A及びロボットハンド202AとCAN通信を行うCAN通信手段であり、ロボットアーム201A及びロボットハンド202Aに接続されている。なお、通信方式はCAN通信が好ましいが、これに限定するものではなく、RS232C通信などでもよい。インタフェース324には、力覚センサ240が接続されており、CPU301は、力覚センサ240からの力検出値のデータを取得することができる。
【0106】
プログラム330Aは、主にロボット制御プログラム331Aと、ハンド制御プログラム332Aとを有している。CPU301は、プログラム330Aを読み出して、不図示のソフトウェアを用いて各プログラム331A,332Aを実行することにより、ロボットアーム201A,ロボットハンド202Aの動作を制御する。ここで、プログラム330Aにおいて、ロボット制御プログラム331Aと、ハンド制御プログラム332Aとは独立したプログラムであるように説明したが、独立していなくてもよい。
【0107】
図10は、第2実施形態の教示動作を示すフローチャートである。具体的には、
図10(a)は、ロボットハンド202Aの教示動作を示すフローチャートである。
図10(b)及び
図10(c)は、ロボットアーム201Aの教示動作を示すフローチャートである。
【0108】
図11は、第2実施形態の教示動作及び塗布作業を説明するための図である。具体的には、
図11(a)は、
図10(a)及び
図10(b)に示すロボットアーム201A及びロボットハンド202Aの教示動作を説明するための図である。
図11(b)は、
図10(c)に示すロボットアーム201Aの教示動作を説明するための図である。
図11(c)は、塗布作業を説明するための図である。
図11(a)に示す教示治具W
21,W
23は円筒形状の治具であり、教示治具W
22は円柱形状の治具である。
【0109】
図11(b)には塗布工程の教示を行う様子を示しており、シリンダ701内には、塗布剤が充填されている。シリンダ701内の塗布剤は、ニードル702から吐出される。シリンダ701には塗布制御部(不図示)が接続されており、エアーなどの動力により、塗布が制御される。
図11(c)には実際に部品W
3に塗布剤を塗布している様子を示している。
【0110】
次に、ロボットハンド202Aの教示点P
H11,P
H12の設定ついて
図10(a)に示すフローチャートに沿って説明する。なお、把持の教示は、上記第1実施形態で説明した
図3(a)のステップS1〜S4と略同様であるが、上記第1実施形態では治具W
11の外周面を把持していたのに対し、第2実施形態では、治具W
21の内周面を把持する。
【0111】
まず、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、ロボットハンド202Aのフィンガー230Aを動作させてフィンガー230Aに教示治具W
21を把持させる(S31)。このとき、ロボットハンド202AはCPU301からの指令によりフィンガー230Aを電流制御により開方向(半径方向外側)に動かすことで教示治具W
21の把持を行う。
【0112】
CPU301は、把持を終えた(フィンガー230Aのエンコーダの変化が停止した)状態になったとき、そのときのロボットハンド202Aのフィンガー230Aの位置を、部品W
3を把持する際の教示点P
H12としてHDD304に保存する(S32)。
【0113】
次に、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、教示点P
H12からフィンガー230Aをあるオフセット値の量だけ閉方向(半径方向内側)に移動させる(S33)。CPU301は、その状態を教示点P
H11としてHDD304に保存する(S34)。
【0114】
次に、部品W
3を取得する際のロボットアーム201Aの教示点P
A11,P
A12の設定について
図10(b)に示すフローチャートに沿って説明する。なお、部品取得の教示は、上記第1実施形態で説明した
図3(b)のステップS5〜S8と略同様である。
【0115】
部品W
3の取得の教示は、代表的な1つについて教示を行って、残り3つをパレタイジング機能を用いて作成してもよいし、残り3つについても個別の同様の教示を行ってもよい。以下の説明では、部品W
3の1つに対する教示について例示する。
【0116】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボットアーム201Aを動作させて、教示治具W
11と教示治具W
13が嵌合するように調整する(S35)。
【0117】
CPU301は、その調整により得られた教示点P
A12をHDD304に保存する(S36)。その後、CPU301は、ロボットアーム201Aを動作させて、ロボットハンド202Aを、ロボットハンド202Aや把持している教示治具W
21が他の物体と干渉しない位置まで上方にシフトさせる(S37)。
【0118】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具W
21を移動させてからロボットアーム201Aを動作させることで、近くに設置された治工具と教示治具W
21とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点P
A11としてHDD304に保存する(S38)。
【0119】
次に、部品W
3に塗布剤を塗布する際のロボットアーム201Aの教示点P
A13,P
A14の設定について
図10(c)に示すフローチャートに沿って説明する。
【0120】
塗布の教示は、ニードル702が教示治具W
21に加工された理想塗布位置の穴に嵌合することにより行う。それゆえ、教示治具W
21の厚みは、部品W
3の厚みに対し、ニードル702と部品W
3の隙間と、ニードル702と教示治具W
21の嵌合の深さの分だけ厚みを増す必要がある。
【0121】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボットアーム201Aを動作させて、教示治具W
11にニードル702の先端が嵌合するように調整する(S39)。CPU301は、その調整により得られた教示点P
A14をHDD304に保存する(S40)。
【0122】
その後、CPU301は、ロボットアーム201Aを動作させて、ロボットハンド202Aを、ロボットハンド202Aや把持している教示治具W
21が他の物体と干渉しない位置まで下方にシフトさせる(S41)。CPU301は、この位置を教示点P
A13としてHDD304に保存する(S42)。
【0123】
図12は、本発明の第2実施形態に係る部品ピッキング方法(塗布方法)を示すフローチャートである。制御装置300のCPU301は、プログラム330Aに従ってロボットアーム201A及びロボットハンド202Aの動作を制御する。
【0124】
第1実施形態では部品W
1を把持する際には、ロボットハンド202を指令値まで動かして把持する位置制御による把持を行っていたが、第2実施形態では、把持直前まで位置制御で移動させ、その後は力制御により一定の把持力で部品W
3を把持する。
【0125】
また、第1実施形態ではトレー600とロボットハンド202との突き当ては、ロボット本体201を教示点P
A2に移動させることのみで行っていた。第2実施形態では、ロボットアーム201Aをインピーダンス制御(力制御)で動かし、トレー600Aからの反力を検知することにより突き当てを行う。それゆえ、ロボットハンド202Aのハンド本体220Aには、ロボットハンド202Aにかかる力を検出するための力覚センサ240が搭載されている。
【0126】
まず、CPU301は、教示点P
H11のデータを用いて、ロボットハンド202Aのフィンガー230Aを把持前の状態に設定する(S51)。そして、CPU301は、教示点P
A11を用いて、部品W
3を取得する位置の上方へロボットアーム201Aを移動させる(S52)。
【0127】
CPU301は、ロボットアーム201Aの移動後、トレー600Aが撓んだ状態での突出部602Aの先端面にロボットハンド202Aのハンド本体220Aが接触する直前位置までロボットアーム201Aを移動させる(S53)。すなわち、CPU301は、ステップS36で教示した教示点P
A12から、トレー600Aの撓み得る量だけオフセット(部品取得オフセット値)した位置へロボットアーム201Aを移動させる。
【0128】
次に、CPU301は、ロボットハンド202Aをトレー600Aに突き当てて、架台501にトレー600Aを押し付けるようロボットアーム201Aを動作させる(S54:押付工程)。詳述すると、CPU201は、力覚センサ240により検出した力検出値が予め設定された閾値に達するまで、ロボットハンド202Aがトレー600Aに近接する方向にロボットアーム201Aを動作させる。
【0129】
つまり、CPU301は、トレー600Aの撓みがキャンセルされる状態まで、力覚センサ240の力検出値を用いて、ロボットハンド202Aがトレー600Aに近接する方向にロボットアーム201Aをインピーダンス制御(力制御)で動作させる。このとき、トレー600Aの撓みがキャンセルされ、トレー600Aが架台501に突き当たった時の力覚センサ240が検出する反力を教示の際に取得しておくこととし、実際の押付工程では、その際の反力をインピーダンス制御完了判定の閾値とする。なお、力覚センサ240は、少なくともトレー600Aの反力の1/10以下の分解能で力を検出できるものを用いることとする。
【0130】
第2実施形態では、インピーダンス制御(力覚センサ240の力検出値を用いた力制御)を行うことにより、トレー600Aの個体差の誤差を吸収し、把持の再現性を向上することができる。
【0131】
次に、CPU301は、トレー600Aとロボットハンド202Aとが突き当たった状態で、フィンガー230Aを部品W
3に接触する直前まで位置制御で動作させる(S55)。このときの指令値は、ステップS32で取得した教示点P
H12から、部品W
3にフィンガー230Aが接触しない程度にフィンガー230Aを内側にオフセット(把持オフセット値)した値とすればよい。
【0132】
次に、CPU301は、ステップS54の押付工程にてトレー600A(載置部601A)を架台501に押し付けた状態で、トレー600Aに載置された部品W
3を複数のフィンガー230Aに把持させる(S56:把持工程)。具体的には、CPU301は、複数のフィンガー230Aに載置部601Aに載置された部品W
3の内周面を把持させる。
【0133】
このステップS56では、CPU301は、フィンガー230Aを力制御(電流制御や速度制御)で動作させる。それゆえ、部品W
3からの反力とフィンガー230Aに加える力が釣り合った状態で部品W
3が把持されることになる。部品W
3の径の公差が大きい場合や、歪み易い部品W
3を把持するときには、このように力制御で把持したほうが適していることがある。
【0134】
CPU301は、複数のフィンガー230Aに部品W
3を把持させたら、ロボットアーム201Aを教示点P
A11に従い動作させることで、再度部品を取得する位置の上方へ移動させる(S57)。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点P
A11を再度使用することとする。
【0135】
そして、CPU301は、教示点P
A13を用いて、ロボットアーム201Aを、部品W
3に塗布剤を塗布する位置の下方へ移動させる(S58)。次に、CPU301は、ロボットアーム201Aを教示点P
A13に移動させた後、教示点P
A14を用いて、塗布を行う位置へロボットアーム201Aを移動させる(S59)。第2実施形態では、部品W
3の情報から塗布を行うので、教示点P
A13は、教示点P
A14の下方向になる。
【0136】
CPU301は、ロボットアーム201Aの移動が完了したら、塗布剤を部品W
3に塗布し(S60)、塗布が完了したら教示点P
A13を用いてニードル702の下方向へロボットアーム201Aを移動させる(S61)。CPU301は、部品W
3に塗布を行い、ロボットアーム201Aを教示点PA13へ移動させた後は、次工程へ移行する(S62)。
【0137】
次工程としては、塗布された部品W
3を第1実施形態のように別の部品に組み付けたり、トレーに排出して次工程に送られたりすることなどがある。また、部品W
3を把持した際に、水平方向に部品W
3がずれてしまう場合や、塗布剤を塗布する際に部品W
3の位相だしが必要になる場合は、ステップS57とステップS58との間に、水平方向又は/及び位相方向の補正を行ってもよい。補正にためには、視覚センサを移動する際の起動付近に設置し、ロボットアーム201Aにその視覚センサの計測を経由させる。そして、視覚センサで補正したい値を計測し、その計測値に基づき、教示点P
A14や教示点P
A13を補正する方法などが考えられる。
【0138】
図13は、ステップS54(押付工程)でロボットハンド202Aをトレー600Aに押し付ける前後を示す説明図である。
図13(a)は、ステップS54の前のトレー600Aの状態を示し、
図13(b)は、ステップS54の後にステップS56で部品W
3を複数のフィンガー230Aにより把持した状態を示している。なお、
図13(a)及び
図13(b)において、トレー600Aは、断面を模式的に図示している。
【0139】
トレー600A(載置部601A)が、
図13(a)に示すように、上に凸(又は下に凸)に撓むことで、架台501に対して部品W
3の位置及び姿勢にずれが生じることがある。
【0140】
第2実施形態では、ステップS54においてロボットハンド202Aによりトレー600Aが架台501に押し付けられて、トレー600Aの撓み(歪み)が解消される。つまり、トレー600Aの突出部602Aの先端面にロボットハンド202Aのハンド本体220A(突き当て部)が突き当たることで、トレー600Aの平板状の載置部601Aの撓みがキャンセルされた状態となる。この状態で、
図13(b)に示すように、複数のフィンガー230Aに部品W
3を把持させることにより、複数のフィンガー230Aが部品W
3を再現性高く(高精度に)把持することができる。
【0141】
そのため、高精度な塗布が可能となる。また、通常の把持の動作に、短い移動範囲でのインピーダンス制御が加わっただけなので、タクトの増加は少ない。また、トレー600Aの部品W
3を粗く位置決めする突出部602Aが突き当て部を兼ねているので、スペースの増加は殆どなく、コストの増加も微小と考えられる。
【0142】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【0143】
上記実施形態では、ロボットハンドのハンド本体をトレーの突出部に突き当てる場合について説明したが、これに限定するものではなく、トレーの形状によっては、フィンガーをトレーに突き当てるようにしてもよい。例えば、トレーの部品載置面にフィンガー先端を突き当ててもよい。この場合、突出部がなくても本発明は適用可能である。
【0144】
また、上記実施形態では、突出部が部品を規制する場合について説明したが、これに限定するものではなく、ロボットハンドに突き当てさせるためだけに突出部が形成されている場合であってもよい。
【0145】
また、上記実施形態の各処理動作は具体的にはCPU301により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置300に供給し、制御装置300のコンピュータ(CPUやMPU)が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【0146】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がHDD304であり、HDD304にプログラム330(330A)が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、
図2及び
図9に示すROM302、記録ディスク340、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、書き換え可能な不揮発性のメモリ(例えばUSBメモリ)、ROM等を用いることができる。
【0147】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【0148】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【0149】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【0150】
また、上記実施形態では、コンピュータがHDD等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をASICやFPGA等の専用LSIで構成してもよい。なお、ASICはApplication Specific Integrated Circuit、FPGAはField-Programmable Gate Arrayの頭字語である。