特許第6425408号(P6425408)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6425408ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体
<>
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000002
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000003
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000004
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000005
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000006
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000007
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000008
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000009
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000010
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000011
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000012
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000013
  • 特許6425408-ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6425408
(24)【登録日】2018年11月2日
(45)【発行日】2018年11月21日
(54)【発明の名称】ロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体
(51)【国際特許分類】
   B25J 13/00 20060101AFI20181112BHJP
   B25J 13/08 20060101ALI20181112BHJP
   B23P 19/04 20060101ALI20181112BHJP
【FI】
   B25J13/00 Z
   B25J13/08 Z
   B23P19/04 D
【請求項の数】11
【全頁数】23
(21)【出願番号】特願2014-87143(P2014-87143)
(22)【出願日】2014年4月21日
(65)【公開番号】特開2015-205368(P2015-205368A)
(43)【公開日】2015年11月19日
【審査請求日】2017年4月17日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100082337
【弁理士】
【氏名又は名称】近島 一夫
(74)【代理人】
【識別番号】100141508
【弁理士】
【氏名又は名称】大田 隆史
(72)【発明者】
【氏名】谷 紘太
【審査官】 臼井 卓巳
(56)【参考文献】
【文献】 特開2013−110268(JP,A)
【文献】 特開2002−141389(JP,A)
【文献】 特開2008−047650(JP,A)
【文献】 実開平07−017488(JP,U)
【文献】 特開平07−001373(JP,A)
【文献】 特開2001−334483(JP,A)
【文献】 特開2002−026583(JP,A)
【文献】 特開2013−255972(JP,A)
【文献】 特開昭59−059380(JP,A)
【文献】 特開2000−000656(JP,A)
【文献】 米国特許第08172292(US,B1)
【文献】 米国特許第05116094(US,A)
(58)【調査した分野】(Int.Cl.,DB名)
B23P 19/04
B25J 13/00−15/08
H06K 13/04
(57)【特許請求の範囲】
【請求項1】
可撓性のトレーに載置された対象物を把持するロボットハンドの制御方法であって、
前記ロボットハンドは、フィンガーと制御部とを有し、
前記トレーにおける前記対象物が載置された面に生じた撓みを小さくするように、前記ロボットハンドを前記トレーに押し付ける工程と、
前記押し付け工程により前記面の撓みを小さくした状態で、前記トレーに載置された前記対象物を前記フィンガーで把持する把持工程と、を有することを特徴とする制御方法。
【請求項2】
前記ロボットハンドは、前記ロボットハンドに加わる力を検出する力検出手段を有しており、
前記押工程では、前記制御部が、前記力検出手段により検出した値が予め設定された閾値に達するまで、前記ロボットハンド前記トレーに近接する方向に動作させることを特徴とする請求項1に記載の制御方法。
【請求項3】
前記トレーは、前記対象物が載置される載置部と、前記載置部に突出して形成された突出部と、を有しており、
前記押工程では、前記制御部が、前記ロボットハンドを前記突出部に突き当てて、前記面の撓み小さくするよう前記ロボットハンドを動作させることを特徴とする請求項1または請求項2に記載の制御方法。
【請求項4】
前記突出部は、前記載置部に載置された前記対象物よりも高く形成されていることを特徴とする請求項に記載の制御方法。
【請求項5】
前記突出部は、前記載置部に載置された前記対象物に接触して前記対象物の移動を規制することを特徴とする請求項3または請求項4に記載の制御方法。
【請求項6】
前記載置部に載置される前記対象物が環状に形成されており、
前記突出部は、前記載置部に載置された前記対象物の内周面に接触して前記対象物の移動を規制し、
前記把持工程では、前記制御部が、複数の前記フィンガーに前記載置部に載置された前記対象物の外周面を把持させることを特徴とする請求項乃至のいずれか1項に記載の制御方法。
【請求項7】
前記載置部に載置される前記対象物が環状に形成されており、
前記突出部は、前記載置部に載置された前記対象物の外周面に接触して前記対象物の移動を規制し、
前記把持工程では、前記制御部が、複数の前記フィンガーに前記載置部に載置された前記対象物の内周面を把持させることを特徴とする請求項乃至のいずれか1項に記載の制御方法。
【請求項8】
可撓性のトレーに載置された対象物を把持するロボットハンドであって、
前記ロボットハンドは、フィンガーと制御部とを有し、
前記制御部は、
前記トレーにおける前記対象物が載置された面に生じた撓みを小さくするように、前記ロボットハンドを前記トレーに押し付ける押し付け工程と、
前記押し付け工程により前記面の撓みを小さくした状態で、前記トレーに載置された前記対象物を前記フィンガーで把持する把持工程と、を有することを特徴とするロボットハンド
【請求項9】
前記ロボットハンドは、前記ロボットハンドに加わる力を検出する力検出手段を有しており、
前記押し付け工程では、前記制御部が、前記力検出手段により検出した値が予め設定された閾値に達するまで、前記ロボットハンドを前記トレーに近接する方向に動作させることを特徴とする請求項8に記載のロボットハンド。
【請求項10】
コンピュータに請求項1乃至のいずれか1項に記載の制御方法の各工程を実行させるためのプログラム。
【請求項11】
請求項10に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、対象物を把持するロボットハンドの制御方法、ロボットハンド、プログラム及び記録媒体に関する。
【背景技術】
【0002】
垂直多関節ロボット、水平多関節ロボット、直交ロボット、パラレルリンクロボット等のロボットのロボット本体に取り付けられたロボットハンドを用いて部品の組立や移載を行う際には、ロボットハンドが把持する部品の位置及び姿勢を一定に保つ必要がある。
【0003】
従来、撓みが発生し得るトレーに置かれた部品を再現性高くロボットハンドに把持させるためには、まず一度トレーの撓みにより位置や姿勢がずれた状態で部品をロボットハンドに把持させる。このとき、ロボットハンドのフィンガーを、部品の位置や姿勢がずれた状態でも把持できる設計としておく必要がある。そして、部品を撓みが無い平らな場所に仮置きさせ、その後、再度ロボットハンドに把持し直しさせていた。これにより、再現性高く部品を把持させていた。
【0004】
しかし、仮置きしてから持ち直す工程を行うと、装置が仮置き台を経由して移動する時間や、把持し直す時間が必要となり、また、仮置きを行うスペースやそこに移動するためのスペースなどが必要となる。それゆえ、装置のタクトやスペースが増加してしまう。
【0005】
このような仮置きをせずに、トレーから部品をロボットハンドに把持させる方法として、トレーの加工を撓みが発生しにくい方法で行うものが提案されている(特許文献1)。この方法では、レーザー加工やウォータージェット加工を用いてトレーの製作を行っている。レーザー加工は非接触であるために被加工物に加工力を及ぼさないので、歪みが発生し難い。また、ウォータージェット加工は、加工時に熱が発生しないため、歪みが発生しにくい。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−326126号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1記載の技術ではレーザー加工等の非接触加工により加工歪みの少ないトレー本体を作成することができるが、実際の製造現場においてトレーをこのような加工方法で個別に作成するのはコスト的に現実的ではなかった。
【0008】
そこで、本発明は、トレー上に載置された部品を把持して精密な移載や組立を行うときに、トレーに撓みが生じていたとしても、再現性高く部品を把持することを目的とする。
【課題を解決するための手段】
【0009】
本発明は可撓性のトレーに載置された対象物を把持するロボットハンドの制御方法であって、前記ロボットハンドは、フィンガーと制御部とを有し、前記トレーにおける前記対象物が載置された面に生じた撓みを小さくするように、前記ロボットハンドを前記トレーに押し付ける工程と、前記押し付け工程により前記面の撓みを小さくした状態で、前記トレーに載置された前記対象物を前記フィンガーで把持する把持工程と、を有することを特徴とする。
【発明の効果】
【0010】
本発明によれば、ロボットハンドによりトレーを架台に押し付けることにより、トレーの撓みが解消される。この状態でロボットハンドのフィンガーに部品を把持させているので、ロボットハンドのフィンガーにより部品を再現性高く把持することができる。
【図面の簡単な説明】
【0011】
図1】第1実施形態に係るロボット装置の概略構成を示す説明図である。
図2】第1実施形態に係るロボット装置の制御装置の概略構成を示すブロック図である。
図3】第1実施形態の教示動作を示すフローチャートである。
図4】第1実施形態の教示動作を説明するための図である。
図5】第1実施形態に係る部品ピッキング方法を示すフローチャートである。
図6】押付工程でロボットハンドをトレーに押し付ける前後を示す説明図である。
図7】第2実施形態に係るロボット装置の概略構成を示す説明図である。
図8】第2実施形態におけるトレーを示す斜視図である。
図9】第2実施形態に係るロボット装置の制御装置の概略構成を示すブロック図である。
図10】第2実施形態の教示動作を示すフローチャートである。
図11】第2実施形態の教示動作及び塗布作業を説明するための図である。
図12】第2実施形態に係る部品ピッキング方法を示すフローチャートである。
図13】押付工程でロボットハンドをトレーに押し付ける前後を示す説明図である。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【0013】
[第1実施形態]
図1は、本発明の第1実施形態に係るロボット装置の概略構成を示す説明図である。第1実施形態においては、真空成型などにより形成された合成樹脂などの撓みが発生し得る樹脂製のトレー600を用いる場合について説明する。
【0014】
ロボット装置100は、部品Wを部品Wに組み付ける組付作業を行うロボット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実施形態では、フィンガー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が載置可能となっている。部品Wは、環状(円環状)に形成されている。各突出部602は、部品Wの外周面を複数のフィンガー230に把持させるべく嵌め込まれた部品Wの外周面が露出するように、円柱形状に形成されている。各突出部602は、部品Wが遊嵌され載置部601に載置されたときに、部品Wの内周面に接触して部品Wの水平方向(X,Y方向)の移動を規制する。
【0022】
トレー600は、樹脂で形成されており、特に載置部601に撓み(歪み)が生じやすい。これにより、トレー600に載置された部品Wは、トレー600が架台501に対して水平方向(X,Y方向)に位置決めされていたとしても、トレー600の撓みにより架台501に対して垂直方向(Z方向)に浮いた(ずれた)状態となることがある。
【0023】
架台502上には、部品Wを組み付ける対象となる部品Wが載置される。部品Wは、図1に示すように、径の異なる円柱が中心を一致させた形状である。そして、部品Wにおいて径が小さい上部に部品Wが組み付けられることとなる。
【0024】
ここで、仮に、部品Wを部品Wに組付を行う際には、部品Wの把持姿勢が調整時より傾いていると組付かない。また、仮に、フィンガー230において部品Wを把持する高さ方向(Z方向)の位置が下すぎると、部品Wと部品Wとが干渉し、ロボットハンド202やロボット本体201の故障につながる。
【0025】
また、仮に、フィンガー230において部品Wを把持する高さ方向(Z方向)の位置が上すぎると、部品Wを落とす距離が大きくなる。部品Wが落下する距離が大きくなるほど衝撃が大きく、部品Wや部品Wに傷が付いてしまったり、落下した際に部品Wが跳ねてしまい組付け不良になってしまったりする恐れがある。
【0026】
それゆえ、組付を行う際には、ロボットハンド202は、初期設定時の把持状態と再現性高く、部品Wを把持する必要がある。
【0027】
ここで、ロボットハンド202の突き当て部222の厚みは、トレー600の突出部602の寸法および部品Wの厚みを考慮して、突出部602の上面(先端面)と突き当て部222とが接触した状態で部品Wの把持位置が所望の位置になるように設計する。
【0028】
例えば、筐体221において、フィンガー230が取り付けられる面と、突き当て部222が取り付けられる面が同一と仮定する。フィンガー230の長さをL、部品Wの下面からフィンガー230の先端までの長さをW、トレー600の突出部602の高さをPとすると、突き当て部222の厚みの設計値tは以下の式(1)で表わされる。
t=L+W−P・・・(1)
【0029】
このとき、長さWは、部品Wの把持したい位置より決定される。把持したい位置とは、その部品Wの機能を損なわないところや後工程の邪魔にならないことを考慮して決定する。
【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のZ方向の高さ(厚み)よりも高いものとする。これにより、ロボットハンド202の突き当て部222を、部品Wに干渉(衝突)することなく突出部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)に示す教示治具W11,W12,W14は、円柱状の治具であり、教示治具W11は部品W(入り側)の代替となる。教示治具W14は、部品W(受け側)の代替となる。教示治具W11,W12,W14は同じ径で設計されている。教示治具W11は部品Wの厚みと一致するように設計されている。教示治具W12の厚みは、教示治具W12の上面が、トレー600に撓みがなかった場合に部品Wの下面に一致するように設計されている。教示治具W14は部品Wの径が大きい部分の円柱の厚みと一致するように設計されている。教示治具による部品の代替を必要とするのは、実際の部品を用いると部品の公差などの誤差を含んだ教示となってしまうためである。なお、必要精度によっては、教示治具の代わりに実際の部品を用いて教示を行ってもよい。
【0049】
教示治具W13,W15は、円筒状の治具であり、教示治具W11,W12,W14の径と内径が一致するように設計されている。この際、設計の公差は教示の必要精度以下の隙間で、教示治具W11,W12と教示治具W13とが嵌合するように、また、教示治具W11,W14と教示治具W15とが嵌合するように設計されている。
【0050】
第1実施形態での教示は、教示治具W11と教示治具W12,W14との円中心と姿勢がほぼ一致するように、ロボット200の教示点を調整する。その調整が完了した確認は、予め教示治具W12,W14に通してあった円筒形状の教示治具W13,W15が教示治具W11にも通ることを確認することにより行う。
【0051】
なお、必要精度によっては、教示治具W13,W15を用いずに教示治具W11と教示治具W12,W14との中心のずれを目視や手感により確認してもよいし、教示治具W13と教示治具W15とは共通としてもよい。
【0052】
ロボットハンド202の教示点PH1,PH2の設定ついて図3(a)に示すフローチャートに沿って説明する。
【0053】
まず、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、ロボットハンド202のフィンガー230を動作させてフィンガー230に教示治具W11を把持させる(S1)。このとき、ロボットハンド202はCPU301からの指令によりフィンガー230を電流制御により閉方向(半径方向内側)に動かすことで教示治具W11の把持を行う。
【0054】
そして、CPU301は、把持を終えた(フィンガー230のエンコーダの変化が停止した)状態になったとき、そのときのロボットハンド202のフィンガー230の位置を、部品Wを把持する際の教示点PH2としてHDD304に保存する(S2)。
【0055】
次に、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、教示点PH2からフィンガー230をあるオフセット値の量だけ開方向(半径方向外側)に移動させる(S3)。CPU301は、その状態を教示点PH1としてHDD304に保存する(S4)。このオフセット値は、部品Wやトレー600の位置のバラつき、架台501のバラつき、ロボット本体201の位置再現性などを考慮し、部品Wの取得の際に、部品Wとフィンガー230の先端とが衝突するといった、干渉が発生しないように算出する。
【0056】
次に、部品Wを取得する際のロボット本体201の教示点PA1,PA2の設定について図3(b)に示すフローチャートに沿って説明する。部品Wの取得の教示は、代表的な1つについて教示を行って、残り5つをパレタイジング機能を用いて作成してもよいし、残り5つについても個別の同様の教示を行ってもよい。以下の説明では、部品Wの1つに対する教示について例示する。
【0057】
教示を行う初期状態としては、教示対象となる位置に教示治具W11〜W13が置かれた状態とする。このとき、教示治具W12は、架台501におけるトレー600を設置する位置決めピンなどを利用して、トレー600とピンとのガタやトレー600と部品Wとのガタなどにより部品Wの位置バラつきが発生する際のバラつき中心に設置するものとする。教示治具W13は教示治具W12に嵌合させておく。この際、教示治具W11は予めロボットハンド202に事前に把持させておいてもよい。
【0058】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボット本体201のアーム部212,213,214(3軸)を動作させる。これにより、CPU301は、ロボットハンド202のフィンガー230が教示治具W11を把持できる位置へロボットハンド202を大まかに移動させる。このとき、ロボットハンド202は教示点PH1の状態(開状態)にしておく。
【0059】
そして、ユーザが教示装置400を操作することで、CPU301は、アーム部212,213,214の位置を調整して、フィンガー230と教示治具W11とが接触する高さを所望の位置に調整する。所望の位置とは、フィンガー230を設計において、部品Wを把持したい位置と接するようにした部位が、教示治具W11の部品Wの把持したい位置と同等の位置と接する状態を示す。この把持したい位置とは、上記の長さWと、教示治具W11の寸法差から算出する。その後、CPU301は、ロボットハンド202のフィンガー230を教示点PH2へ移動させ、フィンガー230に教示治具W11を把持させる。把持を行うと、教示治具W11と教示治具W12とがずれるので、教示治具W13は教示治具W11に嵌合しなくなる。
【0060】
それゆえ、ユーザが教示装置400を操作することで、CPU301は、ロボット本体201のアーム部212,213を動作させて、教示治具W11と教示治具W13が嵌合するように調整する(S5)。
【0061】
CPU301は、その調整により得られた教示点PA2をHDD304に保存する(S6)。その後、CPU301は、ロボット本体201のアーム部214を動作させて、ロボットハンド202を、ロボットハンド202や把持している教示治具W11が他の物体と干渉しない位置まで上方にシフトさせる(S7)。
【0062】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具W11を移動させてからロボット本体201を動作させることで、近くに設置された治工具と教示治具W11とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点PA1としてHDD304に保存する(S8)。
【0063】
次に、部品Wを部品Wに組み付ける際のロボット本体201の教示点PA3,PA4の設定について図3(c)に示すフローチャートに沿って説明する。この教示を行う前に教示治具W14を、部品Wを取得する際の教示と同様に部品Wが置かれる位置に設置しておくこととする。まずは、ロボット本体201のアーム部214が教示点PA1の位置で、かつ、教示治具W11を把持した状態で、ロボット本体201のアーム部212,213を動作させて教示治具W14の上方へロボットハンド202を移動させる。そして、ロボット本体201のアーム部214を動作させて、教示治具W11と教示治具W14との隙間が所定値以下となるように隙間ゲージなどを用いて調整する。その隙間の所定値はロボット200や部品、治具の精度・公差を積み上げて計算を行い、組付を行う際に部品同士が干渉しない必要最小限の値に設定する。
【0064】
その後、CPU301は、ロボット本体201のアーム部212,213を動作させて、教示点PA2と同様に教示治具W11と教示治具W15とが嵌合するように、調整を行う(S9)。これらの調整を終えたら、CPU301は、ロボット本体201のアーム部212,213,214の位置を、教示点PA4としてHDD304に保存する(S10)。また、その位置からロボット本体201のアーム部214を動作させて、ロボットハンド202や教示治具W11がその他の物体と干渉しない位置まで上方にシフトさせ(S11)、その点を教示点PA3としてHDD304に保存する(S12)。
【0065】
以上、ステップS6にて教示点PA2を設定したので、ロボット本体201を教示点PA2に従って動作させることにより、ロボットハンド202によってトレー600が架台501に押し付けられることとなる。以下、この動作について詳細に説明する。
【0066】
図5は、本発明の第1実施形態に係る部品ピッキング方法(部品組み付け方法)を示すフローチャートである。制御装置300のCPU301は、プログラム330に従ってロボット本体201及びロボットハンド202の動作を制御する。
【0067】
まず、CPU301は、部品Wを部品Wに組み付けを行う際、教示点PH1のデータを用いて、ロボットハンド202のフィンガー230を把持前の状態に設定する(S13)。そして、CPU301は、教示点PA1を用いて、部品Wを取得する位置の上方へロボット本体201を移動させる(S14)。
【0068】
CPU301は、ロボット本体201の移動後、教示点PA2を用いて部品Wを取得する位置、即ちロボットハンド202をトレー600に突き当てて、架台501にトレー600を押し付ける位置へロボット本体201を動作させる(S15:押付工程)。具体的に説明すると、ステップS15では、CPU301は、ロボットハンド202の突き当て部222を突出部602の先端面に突き当てて、架台501にトレー600を押し付けるようロボット本体201を動作させる。
【0069】
これによって、ロボットハンド202のロボット本体201によりトレー600が架台501に押し付けられ、トレー600の撓みが解消される。したがって、部品WのZ方向の位置決めがなされる。
【0070】
ここで、突出部602は、載置部601に載置された部品Wの内周面に接触して該部品Wの移動を規制しているので、部品WのX,Y方向の位置決めもなされており、よって部品WのX,Y,Z方向の位置決めがなされたこととなる。
【0071】
第1実施形態では、ステップS15における押付工程では、CPU301が、予め設定された教示点PA2のデータに従ってロボット本体201を動作させているので、制御を簡略化できる。
【0072】
CPU301は、教示点PH2を用いてロボットハンド202を動作させ部品Wを把持させる(S16:把持工程)。
【0073】
具体的に説明すると、ステップS16では、CPU301は、ステップS15にてトレー600を架台501に押し付けた状態で、トレー600に載置された部品Wを複数のフィンガー230に把持させる。ここで、部品Wの内周面が突出部602に接触するよう部品Wを突出部602に嵌めているので、ステップS16では、載置部601に載置された部品Wの外周面を複数のフィンガー230に把持させる。
【0074】
CPU301は、複数のフィンガー230に部品Wを把持させたら、ロボット本体201を教示点PA1に従い動作させることで、再度部品を取得する位置の上方へ移動させる(S17)。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点PA1を再度使用することとする。
【0075】
そして、CPU301は、教示点PA3を用いて、ロボット本体201を、部品Wを組付ける位置の上方へ移動させる(S18)。
【0076】
次に、CPU301は、ロボット本体201を教示点PA3に移動させた後、教示点PA4を用いて、部品Wを部品Wへ組付ける位置へロボット本体201を移動させる(S19)。これにより、部品Wが部品Wへ組み付けられる。
【0077】
次に、CPU301は、教示点PH1を用いてロボットハンド202を動作させることで、複数のフィンガー230を、部品Wを離す解放位置(半径方向外側)へ移動させる(S20)。なお、ここでは簡単のために教示点PH1を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【0078】
これらステップS13〜S20により、供給された部品Wを取得して部品Wに組付を行うことができる。
【0079】
その後、CPU301は、教示点PA3を用いて、部品Wを組付ける位置の上方へロボット本体201を退避させる(S21)。ここでは簡単のために教示点PA3を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【0080】
そして、CPU301は、部品Wに組み付ける次の部品Wがあるか否かを判断する(S22)。CPU301は、次の部品Wがある場合は(S22:Yes)ステップS13へ戻り、次の部品Wの取得に向かい(S13)、無い場合は(S22:No)、組立てられた部品群を次の工程へ運び(S23)、組立を終了する。
【0081】
図6は、ステップS15(押付工程)でロボットハンド202をトレー600に押し付ける前後を示す説明図である。図6(a)は、ステップS15の前のトレー600の状態を示し、図6(b)は、ステップS15の後にステップS16で部品Wを複数のフィンガー230により把持した状態を示している。なお、図6(a)及び図6(b)において、トレー600は、断面を模式的に図示している。
【0082】
トレー600(載置部601)が、図6(a)に示すように、上に凸(又は下に凸)に撓むことで、架台501に対して部品Wの位置及び姿勢にずれが生じることがある。
【0083】
第1実施形態では、ステップS15においてロボットハンド202によりトレー600が架台501に押し付けられて、トレー600の撓み(歪み)が解消される。つまり、トレー600の突出部602の先端面にロボットハンド202の突き当て部222が突き当たることで、トレー600の平板状の載置部601の撓みがキャンセルされた状態となる。この状態で、図6(b)に示すように、複数のフィンガー230に部品Wを把持させることにより、複数のフィンガー230が部品Wを再現性高く(高精度に)把持することができる。
【0084】
複数のフィンガー230によって部品Wを再現性高く把持できているため、高精度な組付が可能となり、また、組付け後に把持を解いたときに部品Wが落下する量を最小限に抑えることが可能となる。
【0085】
また、トレー600の撓みを解消させる動作が、通常の把持の動作のみで行うことができるので、タクトの増加はない。更に、ロボットハンド202の手のひらの部分に突き当て部222を設けただけで済むので、スペースの増加は殆どなく、コストの増加も微小である。
【0086】
なお、第1実施形態では、ロボット200の動作は、部品Wの取得と組付のみに言及したが、これに限るものではなく、途中で他の構成要素などとの回避点を入れるなどして軌道を変更したり、間に部品に塗布剤を塗るなどの別工程を入れたりしてもよい。
【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が載置可能となっている。部品Wは、環状(円環状)に形成されている。各突出部602Aは、筒状(円筒状)に形成されており、内部に部品Wが遊嵌され載置部601Aに載置されたときに、突出部602Aの内周面が部品Wの外周面に接触して部品Wの水平方向(X,Y方向)の移動を規制する。これにより、突出部602Aは、載置部601Aに載置された部品Wに接触して該部品Wの水平方向の移動を規制する。
【0096】
第2実施形態では、円筒形状の突出部602Aの内部に部品Wが配置されるので、複数のフィンガー230Aは、円筒状の部品Wを、部品Wの内周面から把持する。つまり、複数のフィンガー230Aに部品Wの内周面を把持させるために、円筒形状の突出部602Aの内部に部品Wが配置される。
【0097】
トレー600Aは、樹脂で形成されており、特に載置部601Aに撓み(歪み)が生じやすい。つまり、トレー600Aは、上記第1実施形態と同様、撓みが発生しやすい材質および方法で成形されたものである。
【0098】
トレー600Aに載置された部品Wは、トレー600Aが架台501に対して水平方向(X,Y方向)に位置決めされていたとしても、トレー600Aの撓みにより架台501に対して垂直方向(Z方向)に浮いた(ずれた)状態となることがある。
【0099】
この円筒状の突出部602Aは、内部に設置された部品Wを粗く位置決めをすると共に、上面がハンド本体220Aに突き当たるよう、載置部601Aに載置された部品Wよりも突出する高さに形成されている。つまり、ハンド本体220Aにおいて複数のフィンガー230Aが設置される設置面において、複数のフィンガー230Aの設置領域の外側の領域が、突き当て部となる。換言すると、トレー600Aの突出部602Aの上面(先端面)が突き当て部であるともいえる。
【0100】
よって、突出部602Aの高さは、突き当たるロボットハンド202Aの位置、その位置に対するフィンガー230Aの位置や長さを考慮して、突出部602Aの上面と、ロボットハンド202Aの一部が接した状態で、部品の把持位置を所望の位置に設計する。
【0101】
例えばフィンガー230Aが取り付けられるハンド本体220Aの面と、トレー600Aの突出部602Aの上面とが同一高さにあると仮定する。フィンガー230Aの長さをL、部品Wの下面からフィンガー230Aの先端までの長さをWとすると、トレー600Aの突出部602Aの高さPは以下の式(2)で表わされる。
P=L+W・・・(2)
【0102】
第2実施形態では、部品Wを取得した後に行う工程は、塗布剤を部品Wの外周面に塗布する工程である。塗布剤の塗布を行う際には、部品Wの把持姿勢が調整時より傾いていたり、把持する高さが上下してしまったりすると、塗布剤が波打って塗布されるなどして品質が劣化する。それゆえ、塗布を行う際には、初期設定時の把持状態と再現性高く、部品Wを把持する必要がある。
【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)に示す教示治具W21,W23は円筒形状の治具であり、教示治具W22は円柱形状の治具である。
【0109】
図11(b)には塗布工程の教示を行う様子を示しており、シリンダ701内には、塗布剤が充填されている。シリンダ701内の塗布剤は、ニードル702から吐出される。シリンダ701には塗布制御部(不図示)が接続されており、エアーなどの動力により、塗布が制御される。図11(c)には実際に部品Wに塗布剤を塗布している様子を示している。
【0110】
次に、ロボットハンド202Aの教示点PH11,PH12の設定ついて図10(a)に示すフローチャートに沿って説明する。なお、把持の教示は、上記第1実施形態で説明した図3(a)のステップS1〜S4と略同様であるが、上記第1実施形態では治具W11の外周面を把持していたのに対し、第2実施形態では、治具W21の内周面を把持する。
【0111】
まず、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、ロボットハンド202Aのフィンガー230Aを動作させてフィンガー230Aに教示治具W21を把持させる(S31)。このとき、ロボットハンド202AはCPU301からの指令によりフィンガー230Aを電流制御により開方向(半径方向外側)に動かすことで教示治具W21の把持を行う。
【0112】
CPU301は、把持を終えた(フィンガー230Aのエンコーダの変化が停止した)状態になったとき、そのときのロボットハンド202Aのフィンガー230Aの位置を、部品Wを把持する際の教示点PH12としてHDD304に保存する(S32)。
【0113】
次に、ユーザが教示装置400を操作し、CPU301が教示装置400から入力した操作指令に基づき、教示点PH12からフィンガー230Aをあるオフセット値の量だけ閉方向(半径方向内側)に移動させる(S33)。CPU301は、その状態を教示点PH11としてHDD304に保存する(S34)。
【0114】
次に、部品Wを取得する際のロボットアーム201Aの教示点PA11,PA12の設定について図10(b)に示すフローチャートに沿って説明する。なお、部品取得の教示は、上記第1実施形態で説明した図3(b)のステップS5〜S8と略同様である。
【0115】
部品Wの取得の教示は、代表的な1つについて教示を行って、残り3つをパレタイジング機能を用いて作成してもよいし、残り3つについても個別の同様の教示を行ってもよい。以下の説明では、部品Wの1つに対する教示について例示する。
【0116】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボットアーム201Aを動作させて、教示治具W11と教示治具W13が嵌合するように調整する(S35)。
【0117】
CPU301は、その調整により得られた教示点PA12をHDD304に保存する(S36)。その後、CPU301は、ロボットアーム201Aを動作させて、ロボットハンド202Aを、ロボットハンド202Aや把持している教示治具W21が他の物体と干渉しない位置まで上方にシフトさせる(S37)。
【0118】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具W21を移動させてからロボットアーム201Aを動作させることで、近くに設置された治工具と教示治具W21とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点PA11としてHDD304に保存する(S38)。
【0119】
次に、部品Wに塗布剤を塗布する際のロボットアーム201Aの教示点PA13,PA14の設定について図10(c)に示すフローチャートに沿って説明する。
【0120】
塗布の教示は、ニードル702が教示治具W21に加工された理想塗布位置の穴に嵌合することにより行う。それゆえ、教示治具W21の厚みは、部品Wの厚みに対し、ニードル702と部品Wの隙間と、ニードル702と教示治具W21の嵌合の深さの分だけ厚みを増す必要がある。
【0121】
まず、ユーザが教示装置400を操作することで、CPU301は、ロボットアーム201Aを動作させて、教示治具W11にニードル702の先端が嵌合するように調整する(S39)。CPU301は、その調整により得られた教示点PA14をHDD304に保存する(S40)。
【0122】
その後、CPU301は、ロボットアーム201Aを動作させて、ロボットハンド202Aを、ロボットハンド202Aや把持している教示治具W21が他の物体と干渉しない位置まで下方にシフトさせる(S41)。CPU301は、この位置を教示点PA13としてHDD304に保存する(S42)。
【0123】
図12は、本発明の第2実施形態に係る部品ピッキング方法(塗布方法)を示すフローチャートである。制御装置300のCPU301は、プログラム330Aに従ってロボットアーム201A及びロボットハンド202Aの動作を制御する。
【0124】
第1実施形態では部品Wを把持する際には、ロボットハンド202を指令値まで動かして把持する位置制御による把持を行っていたが、第2実施形態では、把持直前まで位置制御で移動させ、その後は力制御により一定の把持力で部品Wを把持する。
【0125】
また、第1実施形態ではトレー600とロボットハンド202との突き当ては、ロボット本体201を教示点PA2に移動させることのみで行っていた。第2実施形態では、ロボットアーム201Aをインピーダンス制御(力制御)で動かし、トレー600Aからの反力を検知することにより突き当てを行う。それゆえ、ロボットハンド202Aのハンド本体220Aには、ロボットハンド202Aにかかる力を検出するための力覚センサ240が搭載されている。
【0126】
まず、CPU301は、教示点PH11のデータを用いて、ロボットハンド202Aのフィンガー230Aを把持前の状態に設定する(S51)。そして、CPU301は、教示点PA11を用いて、部品Wを取得する位置の上方へロボットアーム201Aを移動させる(S52)。
【0127】
CPU301は、ロボットアーム201Aの移動後、トレー600Aが撓んだ状態での突出部602Aの先端面にロボットハンド202Aのハンド本体220Aが接触する直前位置までロボットアーム201Aを移動させる(S53)。すなわち、CPU301は、ステップS36で教示した教示点PA12から、トレー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に接触する直前まで位置制御で動作させる(S55)。このときの指令値は、ステップS32で取得した教示点PH12から、部品Wにフィンガー230Aが接触しない程度にフィンガー230Aを内側にオフセット(把持オフセット値)した値とすればよい。
【0132】
次に、CPU301は、ステップS54の押付工程にてトレー600A(載置部601A)を架台501に押し付けた状態で、トレー600Aに載置された部品Wを複数のフィンガー230Aに把持させる(S56:把持工程)。具体的には、CPU301は、複数のフィンガー230Aに載置部601Aに載置された部品Wの内周面を把持させる。
【0133】
このステップS56では、CPU301は、フィンガー230Aを力制御(電流制御や速度制御)で動作させる。それゆえ、部品Wからの反力とフィンガー230Aに加える力が釣り合った状態で部品Wが把持されることになる。部品Wの径の公差が大きい場合や、歪み易い部品Wを把持するときには、このように力制御で把持したほうが適していることがある。
【0134】
CPU301は、複数のフィンガー230Aに部品Wを把持させたら、ロボットアーム201Aを教示点PA11に従い動作させることで、再度部品を取得する位置の上方へ移動させる(S57)。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点PA11を再度使用することとする。
【0135】
そして、CPU301は、教示点PA13を用いて、ロボットアーム201Aを、部品Wに塗布剤を塗布する位置の下方へ移動させる(S58)。次に、CPU301は、ロボットアーム201Aを教示点PA13に移動させた後、教示点PA14を用いて、塗布を行う位置へロボットアーム201Aを移動させる(S59)。第2実施形態では、部品Wの情報から塗布を行うので、教示点PA13は、教示点PA14の下方向になる。
【0136】
CPU301は、ロボットアーム201Aの移動が完了したら、塗布剤を部品Wに塗布し(S60)、塗布が完了したら教示点PA13を用いてニードル702の下方向へロボットアーム201Aを移動させる(S61)。CPU301は、部品Wに塗布を行い、ロボットアーム201Aを教示点PA13へ移動させた後は、次工程へ移行する(S62)。
【0137】
次工程としては、塗布された部品Wを第1実施形態のように別の部品に組み付けたり、トレーに排出して次工程に送られたりすることなどがある。また、部品Wを把持した際に、水平方向に部品Wがずれてしまう場合や、塗布剤を塗布する際に部品Wの位相だしが必要になる場合は、ステップS57とステップS58との間に、水平方向又は/及び位相方向の補正を行ってもよい。補正にためには、視覚センサを移動する際の起動付近に設置し、ロボットアーム201Aにその視覚センサの計測を経由させる。そして、視覚センサで補正したい値を計測し、その計測値に基づき、教示点PA14や教示点PA13を補正する方法などが考えられる。
【0138】
図13は、ステップS54(押付工程)でロボットハンド202Aをトレー600Aに押し付ける前後を示す説明図である。図13(a)は、ステップS54の前のトレー600Aの状態を示し、図13(b)は、ステップS54の後にステップS56で部品Wを複数のフィンガー230Aにより把持した状態を示している。なお、図13(a)及び図13(b)において、トレー600Aは、断面を模式的に図示している。
【0139】
トレー600A(載置部601A)が、図13(a)に示すように、上に凸(又は下に凸)に撓むことで、架台501に対して部品Wの位置及び姿勢にずれが生じることがある。
【0140】
第2実施形態では、ステップS54においてロボットハンド202Aによりトレー600Aが架台501に押し付けられて、トレー600Aの撓み(歪み)が解消される。つまり、トレー600Aの突出部602Aの先端面にロボットハンド202Aのハンド本体220A(突き当て部)が突き当たることで、トレー600Aの平板状の載置部601Aの撓みがキャンセルされた状態となる。この状態で、図13(b)に示すように、複数のフィンガー230Aに部品Wを把持させることにより、複数のフィンガー230Aが部品Wを再現性高く(高精度に)把持することができる。
【0141】
そのため、高精度な塗布が可能となる。また、通常の把持の動作に、短い移動範囲でのインピーダンス制御が加わっただけなので、タクトの増加は少ない。また、トレー600Aの部品Wを粗く位置決めする突出部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の頭字語である。
【符号の説明】
【0151】
100…ロボット装置、200…ロボット、201…ロボット本体、202…ロボットハンド、220…ハンド本体、230…フィンガー、300…制御装置(制御部)、330…プログラム、501…架台、600…トレー
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13