(57)【要約】【課題】トレー上に載置された部品を把持して精密な移載や組立を行うときに、トレーに撓みが生じていたとしても、再現性高く部品を把持する。【解決手段】ロボット２００は、ロボット本体２０１と、ロボット本体２０１に取り付けられたロボットハンド２０２とを有している。制御装置３００は、ロボット２００の動作を制御して、架台５０１上の樹脂製のトレー６００に載置された部品Ｗ１を、ロボットハンド２０２の複数のフィンガー２３０に把持させるよう制御する。その際、制御装置３００は、ロボットハンド２０２をトレー６００に突き当てて、架台５０１にトレー６００を押し付けるようロボット本体２０１を動作させる。次に、制御装置３００は、トレー６００を架台５０１に押し付けた状態で、トレー６００に載置された部品Ｗ１を複数のフィンガー２３０に把持させる。【選択図】図１
2015205368.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが、ロボット本体と、前記ロボット本体に取り付けられたロボットハンドとを有しており、前記ロボットハンドが、ハンド本体と、前記ハンド本体に設けられた複数のフィンガーとを有しており、
制御部が、前記ロボットの動作を制御して、架台上の樹脂製のトレーに載置された部品を、前記複数のフィンガーに把持させる部品ピッキング方法において、
前記制御部が、前記ロボットハンドを前記トレーに突き当てて、前記架台に前記トレーを押し付けるよう前記ロボット本体を動作させる押付工程と、
前記制御部が、前記押付工程にて前記トレーを前記架台に押し付けた状態で、前記トレーに載置された部品を前記複数のフィンガーに把持させる把持工程と、を備えたことを特徴とする部品ピッキング方法。
【請求項２】
前記押付工程では、前記制御部が、予め設定された教示点のデータに従って前記ロボット本体を動作させることを特徴とする請求項１に記載の部品ピッキング方法。
【請求項３】
前記ロボットが、前記ロボットハンドに加わる力を検出する力覚センサを有しており、
前記押付工程では、前記制御部が、前記力覚センサにより検出した力検出値が予め設定された閾値に達するまで、前記ロボットハンドが前記トレーに近接する方向に前記ロボット本体を動作させることを特徴とする請求項１に記載の部品ピッキング方法。
【請求項４】
前記トレーは、部品が載置される載置部と、前記載置部に突出して形成された突出部と、を有しており、
前記押付工程では、前記制御部が、前記ハンド本体を前記突出部に突き当てて、前記架台にトレーを押し付けるよう前記ロボット本体を動作させることを特徴とする請求項１乃至３のいずれか１項に記載の部品ピッキング方法。
【請求項５】
前記突出部は、前記載置部に載置された部品よりも突出する高さに形成されていることを特徴とする請求項４に記載の部品ピッキング方法。
【請求項６】
前記突出部は、前記載置部に載置された部品に接触して該部品の移動を規制することを特徴とする請求項４又は５に記載の部品ピッキング方法。
【請求項７】
前記載置部に載置される部品が環状に形成されており、
前記突出部は、前記載置部に載置された部品の内周面に接触して該部品の移動を規制し、
前記把持工程では、前記制御部が、前記複数のフィンガーに前記載置部に載置された部品の外周面を把持させることを特徴とする請求項４乃至６のいずれか１項に記載の部品ピッキング方法。
【請求項８】
前記載置部に載置される部品が環状に形成されており、
前記突出部は、前記載置部に載置された部品の外周面に接触して該部品の移動を規制し、
前記把持工程では、前記制御部が、前記複数のフィンガーに前記載置部に載置された部品の内周面を把持させることを特徴とする請求項４乃至６のいずれか１項に記載の部品ピッキング方法。
【請求項９】
ロボット本体、及び前記ロボット本体に取り付けられたロボットハンドを有するロボットと、
前記ロボットの動作を制御する制御部と、を備え、
前記ロボットハンドが、ハンド本体と、前記ハンド本体に設けられた複数のフィンガーとを有し、
前記制御部が、請求項１乃至８のいずれか１項に記載の部品ピッキング方法の各工程を実行することを特徴とするロボット装置。
【請求項１０】
コンピュータに請求項１乃至８のいずれか１項に記載の部品ピッキング方法の各工程を実行させるためのプログラム。
【請求項１１】
請求項１０に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットハンドを用いて部品をピッキング（把持）する部品ピッキング方法、ロボット装置、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
垂直多関節ロボット、水平多関節ロボット、直交ロボット、パラレルリンクロボット等のロボットのロボット本体に取り付けられたロボットハンドを用いて部品の組立や移載を行う際には、ロボットハンドが把持する部品の位置及び姿勢を一定に保つ必要がある。
【０００３】
従来、撓みが発生し得るトレーに置かれた部品を再現性高くロボットハンドに把持させるためには、まず一度トレーの撓みにより位置や姿勢がずれた状態で部品をロボットハンドに把持させる。このとき、ロボットハンドのフィンガーを、部品の位置や姿勢がずれた状態でも把持できる設計としておく必要がある。そして、部品を撓みが無い平らな場所に仮置きさせ、その後、再度ロボットハンドに把持し直しさせていた。これにより、再現性高く部品を把持させていた。
【０００４】
しかし、仮置きしてから持ち直す工程を行うと、装置が仮置き台を経由して移動する時間や、把持し直す時間が必要となり、また、仮置きを行うスペースやそこに移動するためのスペースなどが必要となる。それゆえ、装置のタクトやスペースが増加してしまう。
【０００５】
このような仮置きをせずに、トレーから部品をロボットハンドに把持させる方法として、トレーの加工を撓みが発生しにくい方法で行うものが提案されている（特許文献１）。この方法では、レーザー加工やウォータージェット加工を用いてトレーの製作を行っている。レーザー加工は非接触であるために被加工物に加工力を及ぼさないので、歪みが発生し難い。また、ウォータージェット加工は、加工時に熱が発生しないため、歪みが発生しにくい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−３２６１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１記載の技術ではレーザー加工等の非接触加工により加工歪みの少ないトレー本体を作成することができるが、実際の製造現場においてトレーをこのような加工方法で個別に作成するのはコスト的に現実的ではなかった。
【０００８】
そこで、本発明は、トレー上に載置された部品を把持して精密な移載や組立を行うときに、トレーに撓みが生じていたとしても、再現性高く部品を把持することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の部品ピッキング方法は、ロボットが、ロボット本体と、前記ロボット本体に取り付けられたロボットハンドとを有しており、前記ロボットハンドが、ハンド本体と、前記ハンド本体に設けられた複数のフィンガーとを有しており、制御部が、前記ロボットの動作を制御して、架台上の樹脂製のトレーに載置された部品を、前記複数のフィンガーに把持させる部品ピッキング方法において、前記制御部が、前記ロボットハンドを前記トレーに突き当てて、前記架台に前記トレーを押し付けるよう前記ロボット本体を動作させる押付工程と、前記制御部が、前記押付工程にて前記トレーを前記架台に押し付けた状態で、前記トレーに載置された部品を前記複数のフィンガーに把持させる把持工程と、を備えたことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ロボットハンドによりトレーを架台に押し付けることにより、トレーの撓みが解消される。この状態でロボットハンドのフィンガーに部品を把持させているので、ロボットハンドのフィンガーにより部品を再現性高く把持することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態に係るロボット装置の概略構成を示す説明図である。
【図２】第１実施形態に係るロボット装置の制御装置の概略構成を示すブロック図である。
【図３】第１実施形態の教示動作を示すフローチャートである。
【図４】第１実施形態の教示動作を説明するための図である。
【図５】第１実施形態に係る部品ピッキング方法を示すフローチャートである。
【図６】押付工程でロボットハンドをトレーに押し付ける前後を示す説明図である。
【図７】第２実施形態に係るロボット装置の概略構成を示す説明図である。
【図８】第２実施形態におけるトレーを示す斜視図である。
【図９】第２実施形態に係るロボット装置の制御装置の概略構成を示すブロック図である。
【図１０】第２実施形態の教示動作を示すフローチャートである。
【図１１】第２実施形態の教示動作及び塗布作業を説明するための図である。
【図１２】第２実施形態に係る部品ピッキング方法を示すフローチャートである。
【図１３】押付工程でロボットハンドをトレーに押し付ける前後を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１３】
［第１実施形態］
図１は、本発明の第１実施形態に係るロボット装置の概略構成を示す説明図である。第１実施形態においては、真空成型などにより形成された合成樹脂などの撓みが発生し得る樹脂製のトレー６００を用いる場合について説明する。
【００１４】
ロボット装置１００は、部品Ｗ１を部品Ｗ２に組み付ける組付作業を行うロボット２００と、ロボット２００に接続され、ロボット２００の動作を制御する制御部としての制御装置３００と、制御装置３００に接続された教示装置４００と、を備えている。
【００１５】
ロボット２００は、第１実施形態では、３軸直交ロボットである。ロボット２００は、ロボット本体２０１と、ロボット本体２０１に取り付けられたロボットハンド（エンドエフェクタ）２０２とを有している。なお、ここでは３軸として説明したが、２軸や４軸などでもよく、この限りではない。
【００１６】
ロボット本体２０１は、ベース部２１１と、ベース部２１１に対してＸ方向に移動可能なアーム部２１２と、アーム部２１２に対してＸ方向に直交（交差）するＹ方向に移動可能なアーム部２１３と、を有している。また、ロボット本体２０１は、アーム部２１３に対してＸ，Ｙ方向に直交（交差）するＺ方向に移動可能なアーム部２１４を有している。
【００１７】
ロボットハンド２０２は、アーム部２１４に取り付けられたハンド本体（掌部ともいう）２２０と、ハンド本体２２０に開閉移動可能に設けられた複数のフィンガー２３０とを有している。ロボットハンド２０２は、ロボット本体２０１に取り付けられたことにより、Ｘ，Ｙ，Ｚ方向に移動可能となっている。
【００１８】
ハンド本体２２０は、筐体２２１と、筐体２２１の内部に配置され、複数のフィンガーを開閉駆動する駆動部（不図示）と、筐体２２１の外部であって、複数のフィンガー２３０に囲まれる位置に配置された突き当て部２２２とを有する。各フィンガー２３０は、把持爪であり、互いに近接（半径方向内側に移動）又は離間（半径方向外側に移動）することで、部品Ｗ１の把持又は把持解放が可能である。第１実施形態では、フィンガー２３０は関節がない把持爪であるが、関節を有するものであってもよい。
【００１９】
第１実施形態では、フィンガー２３０の数は３本であり、これらフィンガー２３０が略正三角形の頂点に配置されている。即ち、複数のフィンガー２３０は、ハンド本体２２０の中心軸を中心に３６０°をフィンガー数で割った角度（第１実施形態では１２０°）で回転対称に配置されている。これらフィンガー２３０により円柱状や円環状の部品を把持する場合は、三角形の重心と円の中心が一致するように水平方向（Ｘ，Ｙ方向）に再現性高く把持することができる。ただし、ロボットハンド２０２の構成は必要に応じたものとしてよく、この限りではない。
【００２０】
トレー６００は、板状に形成された載置部６０１と、載置部６０１に互いに間隔をあけて突出して形成された複数（第１実施形態では６個）の突出部６０２と、を有する。トレー６００は、架台５０１上に載置される。架台５０１には、位置決め用のピンがあり、トレー６００には位置決め用の穴が設けられている。位置決め用のピンを、位置決め用の穴に嵌合させることにより、架台上のトレー６００のＸ，Ｙ方向の設置再現性は、ピンと穴のガタにより制限される。
【００２１】
トレー６００の載置部６０１は、部品Ｗ１が載置可能となっている。部品Ｗ１は、環状（円環状）に形成されている。各突出部６０２は、部品Ｗ１の外周面を複数のフィンガー２３０に把持させるべく嵌め込まれた部品Ｗ１の外周面が露出するように、円柱形状に形成されている。各突出部６０２は、部品Ｗ１が遊嵌され載置部６０１に載置されたときに、部品Ｗ１の内周面に接触して部品Ｗ１の水平方向（Ｘ，Ｙ方向）の移動を規制する。
【００２２】
トレー６００は、樹脂で形成されており、特に載置部６０１に撓み（歪み）が生じやすい。これにより、トレー６００に載置された部品Ｗ１は、トレー６００が架台５０１に対して水平方向（Ｘ，Ｙ方向）に位置決めされていたとしても、トレー６００の撓みにより架台５０１に対して垂直方向（Ｚ方向）に浮いた（ずれた）状態となることがある。
【００２３】
架台５０２上には、部品Ｗ１を組み付ける対象となる部品Ｗ２が載置される。部品Ｗ２は、図１に示すように、径の異なる円柱が中心を一致させた形状である。そして、部品Ｗ２において径が小さい上部に部品Ｗ１が組み付けられることとなる。
【００２４】
ここで、仮に、部品Ｗ１を部品Ｗ２に組付を行う際には、部品Ｗ１の把持姿勢が調整時より傾いていると組付かない。また、仮に、フィンガー２３０において部品Ｗ１を把持する高さ方向（Ｚ方向）の位置が下すぎると、部品Ｗ１と部品Ｗ２とが干渉し、ロボットハンド２０２やロボット本体２０１の故障につながる。
【００２５】
また、仮に、フィンガー２３０において部品Ｗ１を把持する高さ方向（Ｚ方向）の位置が上すぎると、部品Ｗ１を落とす距離が大きくなる。部品Ｗ１が落下する距離が大きくなるほど衝撃が大きく、部品Ｗ１や部品Ｗ２に傷が付いてしまったり、落下した際に部品Ｗ１が跳ねてしまい組付け不良になってしまったりする恐れがある。
【００２６】
それゆえ、組付を行う際には、ロボットハンド２０２は、初期設定時の把持状態と再現性高く、部品Ｗ１を把持する必要がある。
【００２７】
ここで、ロボットハンド２０２の突き当て部２２２の厚みは、トレー６００の突出部６０２の寸法および部品Ｗ１の厚みを考慮して、突出部６０２の上面（先端面）と突き当て部２２２とが接触した状態で部品Ｗ１の把持位置が所望の位置になるように設計する。
【００２８】
例えば、筐体２２１において、フィンガー２３０が取り付けられる面と、突き当て部２２２が取り付けられる面が同一と仮定する。フィンガー２３０の長さをＬ、部品Ｗ１の下面からフィンガー２３０の先端までの長さをＷ、トレー６００の突出部６０２の高さをＰとすると、突き当て部２２２の厚みの設計値ｔは以下の式（１）で表わされる。
ｔ＝Ｌ＋Ｗ−Ｐ・・・（１）
【００２９】
このとき、長さＷは、部品Ｗ１の把持したい位置より決定される。把持したい位置とは、その部品Ｗ１の機能を損なわないところや後工程の邪魔にならないことを考慮して決定する。
【００３０】
トレー６００は、例えばＰＥＴ樹脂の材料でできており、真空成型により１［ｍｍ］程度の厚みで成形されている。真空成型により樹脂で形成されたトレー６００は、コストが安くて軽いというメリットがあるが、部分的な厚みの変化や材料が持つ性質によりトレー６００が正確には水平にならず、撓みが発生しやすいデメリットがある。
【００３１】
このようなトレー６００の撓み（トレー６００の設置面において、架台５０１との隙間が発生している所の最大値が目安となる）は、１［ｍｍ］程度発生することが多く、撓みを解消して０．２［ｍｍ］程度まで小さくすることが望まれる。
【００３２】
なお、トレー６００が、ＰＥＴ樹脂で真空成型により形成された場合としたが、ＰＳ樹脂などでもよく、より高精度の撓み補正が必要な場合（０．２［ｍｍ］の撓みを０．０５［ｍｍ］まで抑えたいなど）は、射出成型により形成されたものであってもよい。
【００３３】
ここで、トレー６００が架台上に載置されているものとして、トレー６００の突出部６０２の架台に対する垂直方向（Ｚ方向）の高さは、突出部６０２に嵌め込まれた部品Ｗ１のＺ方向の高さ（厚み）よりも高いものとする。これにより、ロボットハンド２０２の突き当て部２２２を、部品Ｗ１に干渉（衝突）することなく突出部６０２の先端面に突き当てることができる。
【００３４】
図２は、本発明の第１実施形態に係るロボット装置１００の制御装置３００の概略構成を示すブロック図である。制御装置３００は、コンピュータで構成され、演算部としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、制御装置３００は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、制御装置３００は、記録ディスクドライブ３０５及び各種のインタフェース３２１〜３２３を備えている。
【００３５】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５、及び各種のインタフェース３２１，３２２，３２３が、バス３０６を介して接続されている。
【００３６】
ＲＯＭ３０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００３７】
ＨＤＤ３０４は、ＣＰＵ３０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ３０１に、後述する各種処理を実行させるためのプログラム３３０を記録するものである。ＣＰＵ３０１は、ＨＤＤ３０４に記録（格納）されたプログラム３３０に基づいて部品ピッキング方法の各工程を実行する。
【００３８】
記録ディスクドライブ３０５は、記録ディスク３４０に記録された各種データやプログラム等を読み出すことができる。
【００３９】
教示装置４００は、可搬式のものであり、インタフェース３２１に接続されている。教示装置４００は、ユーザの操作により、ロボット２００を教示する教示点、即ちロボット本体２０１及びロボットハンド２０２を教示する教示点のパラメータ値を制御装置３００に出力する。また、教示装置４００は、ユーザが操作することにより、プログラム３３０の作成及び編集をすることができる。
【００４０】
インタフェース３２２，３２３は、ロボット本体２０１及びロボットハンド２０２とＣＡＮ通信を行うＣＡＮ通信手段であり、ロボット本体２０１及びロボットハンド２０２に接続されている。なお、通信方式はＣＡＮ通信が好ましいが、これに限定するものではなく、ＲＳ２３２Ｃ通信などでもよい。
【００４１】
プログラム３３０は、主にロボット制御プログラム３３１と、ハンド制御プログラム３３２とを有している。ＣＰＵ３０１は、プログラム３３０を読み出して、不図示のソフトウェアを用いて各プログラム３３１，３３２を実行することにより、ロボット本体２０１，ロボットハンド２０２の動作を制御する。ここで、プログラム３３０において、ロボット制御プログラム３３１と、ハンド制御プログラム３３２とは独立したプログラムであるように説明したが、独立していなくてもよい。
【００４２】
なお、バス３０６には、不図示のインタフェースを介して、書き換え可能な不揮発性メモリや外付けＨＤＤ等の不図示の外部記憶装置が接続されていてもよい。
【００４３】
次に、ロボット本体２０１を教示する教示点、及びロボットハンド２０２を教示する教示点のパラメータ値を設定する教示動作について説明する。
【００４４】
実際の組付作業では、制御装置３００（ＣＰＵ３０１）は、プログラム３３０（ロボット制御プログラム３３１及びハンド制御プログラム３３２）に従って、ロボット本体２０１及びロボットハンド２０２の動作を制御する。プログラム３３０は、例えばテキストファイルでユーザが読み書き可能なロボット言語で記述されている。なお、プログラム３３０は、例えばバイナリ形式で記述されていてもよい。制御装置３００（ＣＰＵ３０１）は、不図示のソフトウェアを用いてプログラム３３０を解釈し、ロボット本体２０１及びロボットハンド２０２の動作を制御する。
【００４５】
ロボット制御プログラム３３１及びハンド制御プログラム３３２には、教示点が定義されている。各教示点のパラメータ値は、ロボット制御プログラム３３１及びハンド制御プログラム３３２とは別に、教示点のデータファイル（例えばテキストファイル）として設定する。その際、プログラム３３０は、該データファイルも含むものとする。なお、教示点のパラメータ値（教示点のデータ）は、ロボット制御プログラム３３１及びハンド制御プログラム３３２に組み込まれていてもよい。
【００４６】
図３は、第１実施形態の教示動作を示すフローチャートである。具体的には、図３（ａ）は、ロボットハンド２０２の教示動作を示すフローチャートである。図３（ｂ）及び図３（ｃ）は、ロボット本体２０１の教示動作を示すフローチャートである。
【００４７】
図４は、第１実施形態の教示動作を説明するための図である。具体的には、図４（ａ）は、図３（ａ）及び図３（ｂ）に示すロボット本体２０１及びロボットハンド２０２の教示動作を説明するための図である。図４（ｂ）は、図３（ｃ）に示すロボット本体２０１の教示動作を説明するための図である。
【００４８】
図４（ａ）及び図４（ｂ）に示す教示治具Ｗ１１，Ｗ１２，Ｗ１４は、円柱状の治具であり、教示治具Ｗ１１は部品Ｗ１（入り側）の代替となる。教示治具Ｗ１４は、部品Ｗ２（受け側）の代替となる。教示治具Ｗ１１，Ｗ１２，Ｗ１４は同じ径で設計されている。教示治具Ｗ１１は部品Ｗ１の厚みと一致するように設計されている。教示治具Ｗ１２の厚みは、教示治具Ｗ１２の上面が、トレー６００に撓みがなかった場合に部品Ｗ１の下面に一致するように設計されている。教示治具Ｗ１４は部品Ｗ２の径が大きい部分の円柱の厚みと一致するように設計されている。教示治具による部品の代替を必要とするのは、実際の部品を用いると部品の公差などの誤差を含んだ教示となってしまうためである。なお、必要精度によっては、教示治具の代わりに実際の部品を用いて教示を行ってもよい。
【００４９】
教示治具Ｗ１３，Ｗ１５は、円筒状の治具であり、教示治具Ｗ１１，Ｗ１２，Ｗ１４の径と内径が一致するように設計されている。この際、設計の公差は教示の必要精度以下の隙間で、教示治具Ｗ１１，Ｗ１２と教示治具Ｗ１３とが嵌合するように、また、教示治具Ｗ１１，Ｗ１４と教示治具Ｗ１５とが嵌合するように設計されている。
【００５０】
第１実施形態での教示は、教示治具Ｗ１１と教示治具Ｗ１２，Ｗ１４との円中心と姿勢がほぼ一致するように、ロボット２００の教示点を調整する。その調整が完了した確認は、予め教示治具Ｗ１２，Ｗ１４に通してあった円筒形状の教示治具Ｗ１３，Ｗ１５が教示治具Ｗ１１にも通ることを確認することにより行う。
【００５１】
なお、必要精度によっては、教示治具Ｗ１３，Ｗ１５を用いずに教示治具Ｗ１１と教示治具Ｗ１２，Ｗ１４との中心のずれを目視や手感により確認してもよいし、教示治具Ｗ１３と教示治具Ｗ１５とは共通としてもよい。
【００５２】
ロボットハンド２０２の教示点ＰＨ１，ＰＨ２の設定ついて図３（ａ）に示すフローチャートに沿って説明する。
【００５３】
まず、ユーザが教示装置４００を操作し、ＣＰＵ３０１が教示装置４００から入力した操作指令に基づき、ロボットハンド２０２のフィンガー２３０を動作させてフィンガー２３０に教示治具Ｗ１１を把持させる（Ｓ１）。このとき、ロボットハンド２０２はＣＰＵ３０１からの指令によりフィンガー２３０を電流制御により閉方向（半径方向内側）に動かすことで教示治具Ｗ１１の把持を行う。
【００５４】
そして、ＣＰＵ３０１は、把持を終えた（フィンガー２３０のエンコーダの変化が停止した）状態になったとき、そのときのロボットハンド２０２のフィンガー２３０の位置を、部品Ｗ１を把持する際の教示点ＰＨ２としてＨＤＤ３０４に保存する（Ｓ２）。
【００５５】
次に、ユーザが教示装置４００を操作し、ＣＰＵ３０１が教示装置４００から入力した操作指令に基づき、教示点ＰＨ２からフィンガー２３０をあるオフセット値の量だけ開方向（半径方向外側）に移動させる（Ｓ３）。ＣＰＵ３０１は、その状態を教示点ＰＨ１としてＨＤＤ３０４に保存する（Ｓ４）。このオフセット値は、部品Ｗ１やトレー６００の位置のバラつき、架台５０１のバラつき、ロボット本体２０１の位置再現性などを考慮し、部品Ｗ１の取得の際に、部品Ｗ１とフィンガー２３０の先端とが衝突するといった、干渉が発生しないように算出する。
【００５６】
次に、部品Ｗ１を取得する際のロボット本体２０１の教示点ＰＡ１，ＰＡ２の設定について図３（ｂ）に示すフローチャートに沿って説明する。部品Ｗ１の取得の教示は、代表的な１つについて教示を行って、残り５つをパレタイジング機能を用いて作成してもよいし、残り５つについても個別の同様の教示を行ってもよい。以下の説明では、部品Ｗ１の１つに対する教示について例示する。
【００５７】
教示を行う初期状態としては、教示対象となる位置に教示治具Ｗ１１〜Ｗ１３が置かれた状態とする。このとき、教示治具Ｗ１２は、架台５０１におけるトレー６００を設置する位置決めピンなどを利用して、トレー６００とピンとのガタやトレー６００と部品Ｗ１とのガタなどにより部品Ｗ１の位置バラつきが発生する際のバラつき中心に設置するものとする。教示治具Ｗ１３は教示治具Ｗ１２に嵌合させておく。この際、教示治具Ｗ１１は予めロボットハンド２０２に事前に把持させておいてもよい。
【００５８】
まず、ユーザが教示装置４００を操作することで、ＣＰＵ３０１は、ロボット本体２０１のアーム部２１２，２１３，２１４（３軸）を動作させる。これにより、ＣＰＵ３０１は、ロボットハンド２０２のフィンガー２３０が教示治具Ｗ１１を把持できる位置へロボットハンド２０２を大まかに移動させる。このとき、ロボットハンド２０２は教示点ＰＨ１の状態（開状態）にしておく。
【００５９】
そして、ユーザが教示装置４００を操作することで、ＣＰＵ３０１は、アーム部２１２，２１３，２１４の位置を調整して、フィンガー２３０と教示治具Ｗ１１とが接触する高さを所望の位置に調整する。所望の位置とは、フィンガー２３０を設計において、部品Ｗ１を把持したい位置と接するようにした部位が、教示治具Ｗ１１の部品Ｗ１の把持したい位置と同等の位置と接する状態を示す。この把持したい位置とは、上記の長さＷと、教示治具Ｗ１１の寸法差から算出する。その後、ＣＰＵ３０１は、ロボットハンド２０２のフィンガー２３０を教示点ＰＨ２へ移動させ、フィンガー２３０に教示治具Ｗ１１を把持させる。把持を行うと、教示治具Ｗ１１と教示治具Ｗ１２とがずれるので、教示治具Ｗ１３は教示治具Ｗ１１に嵌合しなくなる。
【００６０】
それゆえ、ユーザが教示装置４００を操作することで、ＣＰＵ３０１は、ロボット本体２０１のアーム部２１２，２１３を動作させて、教示治具Ｗ１１と教示治具Ｗ１３が嵌合するように調整する（Ｓ５）。
【００６１】
ＣＰＵ３０１は、その調整により得られた教示点ＰＡ２をＨＤＤ３０４に保存する（Ｓ６）。その後、ＣＰＵ３０１は、ロボット本体２０１のアーム部２１４を動作させて、ロボットハンド２０２を、ロボットハンド２０２や把持している教示治具Ｗ１１が他の物体と干渉しない位置まで上方にシフトさせる（Ｓ７）。
【００６２】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具Ｗ１１を移動させてからロボット本体２０１を動作させることで、近くに設置された治工具と教示治具Ｗ１１とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点ＰＡ１としてＨＤＤ３０４に保存する（Ｓ８）。
【００６３】
次に、部品Ｗ１を部品Ｗ２に組み付ける際のロボット本体２０１の教示点ＰＡ３，ＰＡ４の設定について図３（ｃ）に示すフローチャートに沿って説明する。この教示を行う前に教示治具Ｗ１４を、部品Ｗ１を取得する際の教示と同様に部品Ｗ２が置かれる位置に設置しておくこととする。まずは、ロボット本体２０１のアーム部２１４が教示点ＰＡ１の位置で、かつ、教示治具Ｗ１１を把持した状態で、ロボット本体２０１のアーム部２１２，２１３を動作させて教示治具Ｗ１４の上方へロボットハンド２０２を移動させる。そして、ロボット本体２０１のアーム部２１４を動作させて、教示治具Ｗ１１と教示治具Ｗ１４との隙間が所定値以下となるように隙間ゲージなどを用いて調整する。その隙間の所定値はロボット２００や部品、治具の精度・公差を積み上げて計算を行い、組付を行う際に部品同士が干渉しない必要最小限の値に設定する。
【００６４】
その後、ＣＰＵ３０１は、ロボット本体２０１のアーム部２１２，２１３を動作させて、教示点ＰＡ２と同様に教示治具Ｗ１１と教示治具Ｗ１５とが嵌合するように、調整を行う（Ｓ９）。これらの調整を終えたら、ＣＰＵ３０１は、ロボット本体２０１のアーム部２１２，２１３，２１４の位置を、教示点ＰＡ４としてＨＤＤ３０４に保存する（Ｓ１０）。また、その位置からロボット本体２０１のアーム部２１４を動作させて、ロボットハンド２０２や教示治具Ｗ１１がその他の物体と干渉しない位置まで上方にシフトさせ（Ｓ１１）、その点を教示点ＰＡ３としてＨＤＤ３０４に保存する（Ｓ１２）。
【００６５】
以上、ステップＳ６にて教示点ＰＡ２を設定したので、ロボット本体２０１を教示点ＰＡ２に従って動作させることにより、ロボットハンド２０２によってトレー６００が架台５０１に押し付けられることとなる。以下、この動作について詳細に説明する。
【００６６】
図５は、本発明の第１実施形態に係る部品ピッキング方法（部品組み付け方法）を示すフローチャートである。制御装置３００のＣＰＵ３０１は、プログラム３３０に従ってロボット本体２０１及びロボットハンド２０２の動作を制御する。
【００６７】
まず、ＣＰＵ３０１は、部品Ｗ１を部品Ｗ２に組み付けを行う際、教示点ＰＨ１のデータを用いて、ロボットハンド２０２のフィンガー２３０を把持前の状態に設定する（Ｓ１３）。そして、ＣＰＵ３０１は、教示点ＰＡ１を用いて、部品Ｗ１を取得する位置の上方へロボット本体２０１を移動させる（Ｓ１４）。
【００６８】
ＣＰＵ３０１は、ロボット本体２０１の移動後、教示点ＰＡ２を用いて部品Ｗ１を取得する位置、即ちロボットハンド２０２をトレー６００に突き当てて、架台５０１にトレー６００を押し付ける位置へロボット本体２０１を動作させる（Ｓ１５：押付工程）。具体的に説明すると、ステップＳ１５では、ＣＰＵ３０１は、ロボットハンド２０２の突き当て部２２２を突出部６０２の先端面に突き当てて、架台５０１にトレー６００を押し付けるようロボット本体２０１を動作させる。
【００６９】
これによって、ロボットハンド２０２のロボット本体２０１によりトレー６００が架台５０１に押し付けられ、トレー６００の撓みが解消される。したがって、部品Ｗ１のＺ方向の位置決めがなされる。
【００７０】
ここで、突出部６０２は、載置部６０１に載置された部品Ｗ１の内周面に接触して該部品Ｗ１の移動を規制しているので、部品Ｗ１のＸ，Ｙ方向の位置決めもなされており、よって部品Ｗ１のＸ，Ｙ，Ｚ方向の位置決めがなされたこととなる。
【００７１】
第１実施形態では、ステップＳ１５における押付工程では、ＣＰＵ３０１が、予め設定された教示点ＰＡ２のデータに従ってロボット本体２０１を動作させているので、制御を簡略化できる。
【００７２】
ＣＰＵ３０１は、教示点ＰＨ２を用いてロボットハンド２０２を動作させ部品Ｗ１を把持させる（Ｓ１６：把持工程）。
【００７３】
具体的に説明すると、ステップＳ１６では、ＣＰＵ３０１は、ステップＳ１５にてトレー６００を架台５０１に押し付けた状態で、トレー６００に載置された部品Ｗ１を複数のフィンガー２３０に把持させる。ここで、部品Ｗ１の内周面が突出部６０２に接触するよう部品Ｗ１を突出部６０２に嵌めているので、ステップＳ１６では、載置部６０１に載置された部品Ｗ１の外周面を複数のフィンガー２３０に把持させる。
【００７４】
ＣＰＵ３０１は、複数のフィンガー２３０に部品Ｗ１を把持させたら、ロボット本体２０１を教示点ＰＡ１に従い動作させることで、再度部品を取得する位置の上方へ移動させる（Ｓ１７）。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点ＰＡ１を再度使用することとする。
【００７５】
そして、ＣＰＵ３０１は、教示点ＰＡ３を用いて、ロボット本体２０１を、部品Ｗ１を組付ける位置の上方へ移動させる（Ｓ１８）。
【００７６】
次に、ＣＰＵ３０１は、ロボット本体２０１を教示点ＰＡ３に移動させた後、教示点ＰＡ４を用いて、部品Ｗ１を部品Ｗ２へ組付ける位置へロボット本体２０１を移動させる（Ｓ１９）。これにより、部品Ｗ１が部品Ｗ２へ組み付けられる。
【００７７】
次に、ＣＰＵ３０１は、教示点ＰＨ１を用いてロボットハンド２０２を動作させることで、複数のフィンガー２３０を、部品Ｗ１を離す解放位置（半径方向外側）へ移動させる（Ｓ２０）。なお、ここでは簡単のために教示点ＰＨ１を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【００７８】
これらステップＳ１３〜Ｓ２０により、供給された部品Ｗ１を取得して部品Ｗ２に組付を行うことができる。
【００７９】
その後、ＣＰＵ３０１は、教示点ＰＡ３を用いて、部品Ｗ１を組付ける位置の上方へロボット本体２０１を退避させる（Ｓ２１）。ここでは簡単のために教示点ＰＡ３を再度使用したが、別の教示点を作成しておいて該別の教示点を用いてもよい。
【００８０】
そして、ＣＰＵ３０１は、部品Ｗ２に組み付ける次の部品Ｗ１があるか否かを判断する（Ｓ２２）。ＣＰＵ３０１は、次の部品Ｗ１がある場合は（Ｓ２２：Ｙｅｓ）ステップＳ１３へ戻り、次の部品Ｗ１の取得に向かい（Ｓ１３）、無い場合は（Ｓ２２：Ｎｏ）、組立てられた部品群を次の工程へ運び（Ｓ２３）、組立を終了する。
【００８１】
図６は、ステップＳ１５（押付工程）でロボットハンド２０２をトレー６００に押し付ける前後を示す説明図である。図６（ａ）は、ステップＳ１５の前のトレー６００の状態を示し、図６（ｂ）は、ステップＳ１５の後にステップＳ１６で部品Ｗ１を複数のフィンガー２３０により把持した状態を示している。なお、図６（ａ）及び図６（ｂ）において、トレー６００は、断面を模式的に図示している。
【００８２】
トレー６００（載置部６０１）が、図６（ａ）に示すように、上に凸（又は下に凸）に撓むことで、架台５０１に対して部品Ｗ１の位置及び姿勢にずれが生じることがある。
【００８３】
第１実施形態では、ステップＳ１５においてロボットハンド２０２によりトレー６００が架台５０１に押し付けられて、トレー６００の撓み（歪み）が解消される。つまり、トレー６００の突出部６０２の先端面にロボットハンド２０２の突き当て部２２２が突き当たることで、トレー６００の平板状の載置部６０１の撓みがキャンセルされた状態となる。この状態で、図６（ｂ）に示すように、複数のフィンガー２３０に部品Ｗ１を把持させることにより、複数のフィンガー２３０が部品Ｗ１を再現性高く（高精度に）把持することができる。
【００８４】
複数のフィンガー２３０によって部品Ｗ１を再現性高く把持できているため、高精度な組付が可能となり、また、組付け後に把持を解いたときに部品Ｗ１が落下する量を最小限に抑えることが可能となる。
【００８５】
また、トレー６００の撓みを解消させる動作が、通常の把持の動作のみで行うことができるので、タクトの増加はない。更に、ロボットハンド２０２の手のひらの部分に突き当て部２２２を設けただけで済むので、スペースの増加は殆どなく、コストの増加も微小である。
【００８６】
なお、第１実施形態では、ロボット２００の動作は、部品Ｗ１の取得と組付のみに言及したが、これに限るものではなく、途中で他の構成要素などとの回避点を入れるなどして軌道を変更したり、間に部品に塗布剤を塗るなどの別工程を入れたりしてもよい。
【００８７】
また、突き当て部２２２を、複数のフィンガー２３０の間に配置したが、これに限定するものではなく、トレー６００の形状に応じて、複数のフィンガー２３０による把持作業に支障がないところであってトレー６００を押圧できればどこに設けてもよい。例えば、ハンド本体２２０の筐体２２１の外側面やフィンガー２３０等に突き当て部２２２を設けてもよい。
【００８８】
［第２実施形態］
次に、本発明の第２実施形態に係る部品ピッキング方法について説明する。上記第１実施形態では、ロボットが３軸直交ロボットである場合について説明したが、ロボットの構成は、これに限定するものではなく、目的に応じて軸数や形態（例えば、垂直多関節、水平多関節、パラレルリンクなど）を変えてもよい。第２実施形態では、ロボットが垂直多関節型の６軸のロボットである場合を例に説明する。図７は、本発明の第２実施形態に係るロボット装置の概略構成を示す説明図である。なお、上記第１実施形態と同様の構成については、同一符号を付して説明を省略する。
【００８９】
図７に示すように、ロボット装置１００Ａは、ロボット２００Ａと、ロボット２００Ａに接続され、ロボット２００Ａの動作を制御する制御部としての制御装置３００Ａと、制御装置３００Ａに接続された教示装置４００と、を備えている。
【００９０】
ロボット２００Ａは、ロボット本体である多関節ロボットアーム（以下「ロボットアーム」という）２０１Ａと、ロボットアーム２０１Ａの先端に接続されたエンドエフェクタであるロボットハンド２０２Ａと、を備えている。
【００９１】
ロボットアーム２０１Ａは、垂直多関節型のロボットアームであり、複数のリンクが関節Ｊ１〜Ｊ６で旋回又は回転可能に互いに連結されて構成されている。
【００９２】
ロボットハンド２０２Ａは、ロボットアーム２０１Ａの先端に取り付けられたハンド本体（掌部ともいう）２２０Ａと、ハンド本体２２０Ａに設けられた複数（例えば２本）のフィンガー２３０Ａとを有している。各フィンガー２３０Ａは、把持爪であり、互いに近接又は離間することで、部品の把持又は把持解放が可能である。第２実施形態では、フィンガー２３０Ａは関節がない把持爪であるが、関節を有するものであってもよい。
【００９３】
第２実施形態では、ロボット２００Ａは、ロボットハンド２０２Ａに加わる力（モーメントも含む）を検出する力覚センサ２４０を有している。力覚センサ２４０は、ロボットアーム２０１Ａの先端とロボットハンド２０２Ａのハンド本体２２０Ａとの間に設けられている。つまり、ロボットハンド２０２Ａは、ロボットアーム２０１Ａに力覚センサ２４０を介して取り付けられている。
【００９４】
図８は、本発明の第２実施形態におけるトレー６００Ａを示す斜視図である。トレー６００Ａは、板状に形成された載置部６０１Ａと、載置部６０１Ａに互いに間隔をあけて突出して形成された複数（第２実施形態では４個）の突出部６０２Ａと、を有する。トレー６００Ａは、架台５０１上に載置されている。架台５０１には、位置決め用のピンがあり、トレー６００Ａには位置決め用の穴が設けられている。位置決め用のピンを、位置決め用の穴に嵌合させることにより、トレー６００ＡのＸ，Ｙ方向の設置再現性は、ピンと穴のガタにより制限される。
【００９５】
トレー６００Ａの載置部６０１Ａは、部品Ｗ３が載置可能となっている。部品Ｗ３は、環状（円環状）に形成されている。各突出部６０２Ａは、筒状（円筒状）に形成されており、内部に部品Ｗ３が遊嵌され載置部６０１Ａに載置されたときに、突出部６０２Ａの内周面が部品Ｗ３の外周面に接触して部品Ｗ３の水平方向（Ｘ，Ｙ方向）の移動を規制する。これにより、突出部６０２Ａは、載置部６０１Ａに載置された部品Ｗ３に接触して該部品Ｗ３の水平方向の移動を規制する。
【００９６】
第２実施形態では、円筒形状の突出部６０２Ａの内部に部品Ｗ３が配置されるので、複数のフィンガー２３０Ａは、円筒状の部品Ｗ３を、部品Ｗ３の内周面から把持する。つまり、複数のフィンガー２３０Ａに部品Ｗ３の内周面を把持させるために、円筒形状の突出部６０２Ａの内部に部品Ｗ３が配置される。
【００９７】
トレー６００Ａは、樹脂で形成されており、特に載置部６０１Ａに撓み（歪み）が生じやすい。つまり、トレー６００Ａは、上記第１実施形態と同様、撓みが発生しやすい材質および方法で成形されたものである。
【００９８】
トレー６００Ａに載置された部品Ｗ３は、トレー６００Ａが架台５０１に対して水平方向（Ｘ，Ｙ方向）に位置決めされていたとしても、トレー６００Ａの撓みにより架台５０１に対して垂直方向（Ｚ方向）に浮いた（ずれた）状態となることがある。
【００９９】
この円筒状の突出部６０２Ａは、内部に設置された部品Ｗ３を粗く位置決めをすると共に、上面がハンド本体２２０Ａに突き当たるよう、載置部６０１Ａに載置された部品Ｗ３よりも突出する高さに形成されている。つまり、ハンド本体２２０Ａにおいて複数のフィンガー２３０Ａが設置される設置面において、複数のフィンガー２３０Ａの設置領域の外側の領域が、突き当て部となる。換言すると、トレー６００Ａの突出部６０２Ａの上面（先端面）が突き当て部であるともいえる。
【０１００】
よって、突出部６０２Ａの高さは、突き当たるロボットハンド２０２Ａの位置、その位置に対するフィンガー２３０Ａの位置や長さを考慮して、突出部６０２Ａの上面と、ロボットハンド２０２Ａの一部が接した状態で、部品の把持位置を所望の位置に設計する。
【０１０１】
例えばフィンガー２３０Ａが取り付けられるハンド本体２２０Ａの面と、トレー６００Ａの突出部６０２Ａの上面とが同一高さにあると仮定する。フィンガー２３０Ａの長さをＬ、部品Ｗ３の下面からフィンガー２３０Ａの先端までの長さをＷとすると、トレー６００Ａの突出部６０２Ａの高さＰは以下の式（２）で表わされる。
Ｐ＝Ｌ＋Ｗ・・・（２）
【０１０２】
第２実施形態では、部品Ｗ３を取得した後に行う工程は、塗布剤を部品Ｗ３の外周面に塗布する工程である。塗布剤の塗布を行う際には、部品Ｗ３の把持姿勢が調整時より傾いていたり、把持する高さが上下してしまったりすると、塗布剤が波打って塗布されるなどして品質が劣化する。それゆえ、塗布を行う際には、初期設定時の把持状態と再現性高く、部品Ｗ３を把持する必要がある。
【０１０３】
図９は、本発明の第２実施形態に係るロボット装置１００Ａの制御装置３００Ａの概略構成を示すブロック図である。制御装置３００Ａは、コンピュータで構成され、上記第１実施形態と同様、演算部としてＣＰＵ３０１を備えている。また、制御装置３００Ａは、上記第１実施形態と同様、記憶部として、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４を備えている。また、制御装置３００Ａは、記録ディスクドライブ３０５及び各種のインタフェース３２１〜３２４を備えている。
【０１０４】
第２実施形態では、ＨＤＤ３０４には、上記第１実施形態のプログラム３３０とは異なるプログラム３３０Ａが記録されている。ＣＰＵ３０１は、ＨＤＤ３０４に記録（格納）されたプログラム３３０Ａに基づいて部品ピッキング方法の各工程を実行する。
【０１０５】
インタフェース３２２，３２３は、ロボットアーム２０１Ａ及びロボットハンド２０２ＡとＣＡＮ通信を行うＣＡＮ通信手段であり、ロボットアーム２０１Ａ及びロボットハンド２０２Ａに接続されている。なお、通信方式はＣＡＮ通信が好ましいが、これに限定するものではなく、ＲＳ２３２Ｃ通信などでもよい。インタフェース３２４には、力覚センサ２４０が接続されており、ＣＰＵ３０１は、力覚センサ２４０からの力検出値のデータを取得することができる。
【０１０６】
プログラム３３０Ａは、主にロボット制御プログラム３３１Ａと、ハンド制御プログラム３３２Ａとを有している。ＣＰＵ３０１は、プログラム３３０Ａを読み出して、不図示のソフトウェアを用いて各プログラム３３１Ａ，３３２Ａを実行することにより、ロボットアーム２０１Ａ，ロボットハンド２０２Ａの動作を制御する。ここで、プログラム３３０Ａにおいて、ロボット制御プログラム３３１Ａと、ハンド制御プログラム３３２Ａとは独立したプログラムであるように説明したが、独立していなくてもよい。
【０１０７】
図１０は、第２実施形態の教示動作を示すフローチャートである。具体的には、図１０（ａ）は、ロボットハンド２０２Ａの教示動作を示すフローチャートである。図１０（ｂ）及び図１０（ｃ）は、ロボットアーム２０１Ａの教示動作を示すフローチャートである。
【０１０８】
図１１は、第２実施形態の教示動作及び塗布作業を説明するための図である。具体的には、図１１（ａ）は、図１０（ａ）及び図１０（ｂ）に示すロボットアーム２０１Ａ及びロボットハンド２０２Ａの教示動作を説明するための図である。図１１（ｂ）は、図１０（ｃ）に示すロボットアーム２０１Ａの教示動作を説明するための図である。図１１（ｃ）は、塗布作業を説明するための図である。図１１（ａ）に示す教示治具Ｗ２１，Ｗ２３は円筒形状の治具であり、教示治具Ｗ２２は円柱形状の治具である。
【０１０９】
図１１（ｂ）には塗布工程の教示を行う様子を示しており、シリンダ７０１内には、塗布剤が充填されている。シリンダ７０１内の塗布剤は、ニードル７０２から吐出される。シリンダ７０１には塗布制御部（不図示）が接続されており、エアーなどの動力により、塗布が制御される。図１１（ｃ）には実際に部品Ｗ３に塗布剤を塗布している様子を示している。
【０１１０】
次に、ロボットハンド２０２Ａの教示点ＰＨ１１，ＰＨ１２の設定ついて図１０（ａ）に示すフローチャートに沿って説明する。なお、把持の教示は、上記第１実施形態で説明した図３（ａ）のステップＳ１〜Ｓ４と略同様であるが、上記第１実施形態では治具Ｗ１１の外周面を把持していたのに対し、第２実施形態では、治具Ｗ２１の内周面を把持する。
【０１１１】
まず、ユーザが教示装置４００を操作し、ＣＰＵ３０１が教示装置４００から入力した操作指令に基づき、ロボットハンド２０２Ａのフィンガー２３０Ａを動作させてフィンガー２３０Ａに教示治具Ｗ２１を把持させる（Ｓ３１）。このとき、ロボットハンド２０２ＡはＣＰＵ３０１からの指令によりフィンガー２３０Ａを電流制御により開方向（半径方向外側）に動かすことで教示治具Ｗ２１の把持を行う。
【０１１２】
ＣＰＵ３０１は、把持を終えた（フィンガー２３０Ａのエンコーダの変化が停止した）状態になったとき、そのときのロボットハンド２０２Ａのフィンガー２３０Ａの位置を、部品Ｗ３を把持する際の教示点ＰＨ１２としてＨＤＤ３０４に保存する（Ｓ３２）。
【０１１３】
次に、ユーザが教示装置４００を操作し、ＣＰＵ３０１が教示装置４００から入力した操作指令に基づき、教示点ＰＨ１２からフィンガー２３０Ａをあるオフセット値の量だけ閉方向（半径方向内側）に移動させる（Ｓ３３）。ＣＰＵ３０１は、その状態を教示点ＰＨ１１としてＨＤＤ３０４に保存する（Ｓ３４）。
【０１１４】
次に、部品Ｗ３を取得する際のロボットアーム２０１Ａの教示点ＰＡ１１，ＰＡ１２の設定について図１０（ｂ）に示すフローチャートに沿って説明する。なお、部品取得の教示は、上記第１実施形態で説明した図３（ｂ）のステップＳ５〜Ｓ８と略同様である。
【０１１５】
部品Ｗ３の取得の教示は、代表的な１つについて教示を行って、残り３つをパレタイジング機能を用いて作成してもよいし、残り３つについても個別の同様の教示を行ってもよい。以下の説明では、部品Ｗ３の１つに対する教示について例示する。
【０１１６】
まず、ユーザが教示装置４００を操作することで、ＣＰＵ３０１は、ロボットアーム２０１Ａを動作させて、教示治具Ｗ１１と教示治具Ｗ１３が嵌合するように調整する（Ｓ３５）。
【０１１７】
ＣＰＵ３０１は、その調整により得られた教示点ＰＡ１２をＨＤＤ３０４に保存する（Ｓ３６）。その後、ＣＰＵ３０１は、ロボットアーム２０１Ａを動作させて、ロボットハンド２０２Ａを、ロボットハンド２０２Ａや把持している教示治具Ｗ２１が他の物体と干渉しない位置まで上方にシフトさせる（Ｓ３７）。
【０１１８】
干渉しない位置とは、近くに設置された治工具などより高い位置である。この高さに教示治具Ｗ２１を移動させてからロボットアーム２０１Ａを動作させることで、近くに設置された治工具と教示治具Ｗ２１とが衝突するといった干渉問題を避けることができる。この上昇させた位置を教示点ＰＡ１１としてＨＤＤ３０４に保存する（Ｓ３８）。
【０１１９】
次に、部品Ｗ３に塗布剤を塗布する際のロボットアーム２０１Ａの教示点ＰＡ１３，ＰＡ１４の設定について図１０（ｃ）に示すフローチャートに沿って説明する。
【０１２０】
塗布の教示は、ニードル７０２が教示治具Ｗ２１に加工された理想塗布位置の穴に嵌合することにより行う。それゆえ、教示治具Ｗ２１の厚みは、部品Ｗ３の厚みに対し、ニードル７０２と部品Ｗ３の隙間と、ニードル７０２と教示治具Ｗ２１の嵌合の深さの分だけ厚みを増す必要がある。
【０１２１】
まず、ユーザが教示装置４００を操作することで、ＣＰＵ３０１は、ロボットアーム２０１Ａを動作させて、教示治具Ｗ１１にニードル７０２の先端が嵌合するように調整する（Ｓ３９）。ＣＰＵ３０１は、その調整により得られた教示点ＰＡ１４をＨＤＤ３０４に保存する（Ｓ４０）。
【０１２２】
その後、ＣＰＵ３０１は、ロボットアーム２０１Ａを動作させて、ロボットハンド２０２Ａを、ロボットハンド２０２Ａや把持している教示治具Ｗ２１が他の物体と干渉しない位置まで下方にシフトさせる（Ｓ４１）。ＣＰＵ３０１は、この位置を教示点ＰＡ１３としてＨＤＤ３０４に保存する（Ｓ４２）。
【０１２３】
図１２は、本発明の第２実施形態に係る部品ピッキング方法（塗布方法）を示すフローチャートである。制御装置３００のＣＰＵ３０１は、プログラム３３０Ａに従ってロボットアーム２０１Ａ及びロボットハンド２０２Ａの動作を制御する。
【０１２４】
第１実施形態では部品Ｗ１を把持する際には、ロボットハンド２０２を指令値まで動かして把持する位置制御による把持を行っていたが、第２実施形態では、把持直前まで位置制御で移動させ、その後は力制御により一定の把持力で部品Ｗ３を把持する。
【０１２５】
また、第１実施形態ではトレー６００とロボットハンド２０２との突き当ては、ロボット本体２０１を教示点ＰＡ２に移動させることのみで行っていた。第２実施形態では、ロボットアーム２０１Ａをインピーダンス制御（力制御）で動かし、トレー６００Ａからの反力を検知することにより突き当てを行う。それゆえ、ロボットハンド２０２Ａのハンド本体２２０Ａには、ロボットハンド２０２Ａにかかる力を検出するための力覚センサ２４０が搭載されている。
【０１２６】
まず、ＣＰＵ３０１は、教示点ＰＨ１１のデータを用いて、ロボットハンド２０２Ａのフィンガー２３０Ａを把持前の状態に設定する（Ｓ５１）。そして、ＣＰＵ３０１は、教示点ＰＡ１１を用いて、部品Ｗ３を取得する位置の上方へロボットアーム２０１Ａを移動させる（Ｓ５２）。
【０１２７】
ＣＰＵ３０１は、ロボットアーム２０１Ａの移動後、トレー６００Ａが撓んだ状態での突出部６０２Ａの先端面にロボットハンド２０２Ａのハンド本体２２０Ａが接触する直前位置までロボットアーム２０１Ａを移動させる（Ｓ５３）。すなわち、ＣＰＵ３０１は、ステップＳ３６で教示した教示点ＰＡ１２から、トレー６００Ａの撓み得る量だけオフセット（部品取得オフセット値）した位置へロボットアーム２０１Ａを移動させる。
【０１２８】
次に、ＣＰＵ３０１は、ロボットハンド２０２Ａをトレー６００Ａに突き当てて、架台５０１にトレー６００Ａを押し付けるようロボットアーム２０１Ａを動作させる（Ｓ５４：押付工程）。詳述すると、ＣＰＵ２０１は、力覚センサ２４０により検出した力検出値が予め設定された閾値に達するまで、ロボットハンド２０２Ａがトレー６００Ａに近接する方向にロボットアーム２０１Ａを動作させる。
【０１２９】
つまり、ＣＰＵ３０１は、トレー６００Ａの撓みがキャンセルされる状態まで、力覚センサ２４０の力検出値を用いて、ロボットハンド２０２Ａがトレー６００Ａに近接する方向にロボットアーム２０１Ａをインピーダンス制御（力制御）で動作させる。このとき、トレー６００Ａの撓みがキャンセルされ、トレー６００Ａが架台５０１に突き当たった時の力覚センサ２４０が検出する反力を教示の際に取得しておくこととし、実際の押付工程では、その際の反力をインピーダンス制御完了判定の閾値とする。なお、力覚センサ２４０は、少なくともトレー６００Ａの反力の１／１０以下の分解能で力を検出できるものを用いることとする。
【０１３０】
第２実施形態では、インピーダンス制御（力覚センサ２４０の力検出値を用いた力制御）を行うことにより、トレー６００Ａの個体差の誤差を吸収し、把持の再現性を向上することができる。
【０１３１】
次に、ＣＰＵ３０１は、トレー６００Ａとロボットハンド２０２Ａとが突き当たった状態で、フィンガー２３０Ａを部品Ｗ３に接触する直前まで位置制御で動作させる（Ｓ５５）。このときの指令値は、ステップＳ３２で取得した教示点ＰＨ１２から、部品Ｗ３にフィンガー２３０Ａが接触しない程度にフィンガー２３０Ａを内側にオフセット（把持オフセット値）した値とすればよい。
【０１３２】
次に、ＣＰＵ３０１は、ステップＳ５４の押付工程にてトレー６００Ａ（載置部６０１Ａ）を架台５０１に押し付けた状態で、トレー６００Ａに載置された部品Ｗ３を複数のフィンガー２３０Ａに把持させる（Ｓ５６：把持工程）。具体的には、ＣＰＵ３０１は、複数のフィンガー２３０Ａに載置部６０１Ａに載置された部品Ｗ３の内周面を把持させる。
【０１３３】
このステップＳ５６では、ＣＰＵ３０１は、フィンガー２３０Ａを力制御（電流制御や速度制御）で動作させる。それゆえ、部品Ｗ３からの反力とフィンガー２３０Ａに加える力が釣り合った状態で部品Ｗ３が把持されることになる。部品Ｗ３の径の公差が大きい場合や、歪み易い部品Ｗ３を把持するときには、このように力制御で把持したほうが適していることがある。
【０１３４】
ＣＰＵ３０１は、複数のフィンガー２３０Ａに部品Ｗ３を把持させたら、ロボットアーム２０１Ａを教示点ＰＡ１１に従い動作させることで、再度部品を取得する位置の上方へ移動させる（Ｓ５７）。この際、別の教示点を用いてもよいが、ここでは簡単のため、教示点ＰＡ１１を再度使用することとする。
【０１３５】
そして、ＣＰＵ３０１は、教示点ＰＡ１３を用いて、ロボットアーム２０１Ａを、部品Ｗ３に塗布剤を塗布する位置の下方へ移動させる（Ｓ５８）。次に、ＣＰＵ３０１は、ロボットアーム２０１Ａを教示点ＰＡ１３に移動させた後、教示点ＰＡ１４を用いて、塗布を行う位置へロボットアーム２０１Ａを移動させる（Ｓ５９）。第２実施形態では、部品Ｗ３の情報から塗布を行うので、教示点ＰＡ１３は、教示点ＰＡ１４の下方向になる。
【０１３６】
ＣＰＵ３０１は、ロボットアーム２０１Ａの移動が完了したら、塗布剤を部品Ｗ３に塗布し（Ｓ６０）、塗布が完了したら教示点ＰＡ１３を用いてニードル７０２の下方向へロボットアーム２０１Ａを移動させる（Ｓ６１）。ＣＰＵ３０１は、部品Ｗ３に塗布を行い、ロボットアーム２０１Ａを教示点ＰＡ１３へ移動させた後は、次工程へ移行する（Ｓ６２）。
【０１３７】
次工程としては、塗布された部品Ｗ３を第１実施形態のように別の部品に組み付けたり、トレーに排出して次工程に送られたりすることなどがある。また、部品Ｗ３を把持した際に、水平方向に部品Ｗ３がずれてしまう場合や、塗布剤を塗布する際に部品Ｗ３の位相だしが必要になる場合は、ステップＳ５７とステップＳ５８との間に、水平方向又は／及び位相方向の補正を行ってもよい。補正にためには、視覚センサを移動する際の起動付近に設置し、ロボットアーム２０１Ａにその視覚センサの計測を経由させる。そして、視覚センサで補正したい値を計測し、その計測値に基づき、教示点ＰＡ１４や教示点ＰＡ１３を補正する方法などが考えられる。
【０１３８】
図１３は、ステップＳ５４（押付工程）でロボットハンド２０２Ａをトレー６００Ａに押し付ける前後を示す説明図である。図１３（ａ）は、ステップＳ５４の前のトレー６００Ａの状態を示し、図１３（ｂ）は、ステップＳ５４の後にステップＳ５６で部品Ｗ３を複数のフィンガー２３０Ａにより把持した状態を示している。なお、図１３（ａ）及び図１３（ｂ）において、トレー６００Ａは、断面を模式的に図示している。
【０１３９】
トレー６００Ａ（載置部６０１Ａ）が、図１３（ａ）に示すように、上に凸（又は下に凸）に撓むことで、架台５０１に対して部品Ｗ３の位置及び姿勢にずれが生じることがある。
【０１４０】
第２実施形態では、ステップＳ５４においてロボットハンド２０２Ａによりトレー６００Ａが架台５０１に押し付けられて、トレー６００Ａの撓み（歪み）が解消される。つまり、トレー６００Ａの突出部６０２Ａの先端面にロボットハンド２０２Ａのハンド本体２２０Ａ（突き当て部）が突き当たることで、トレー６００Ａの平板状の載置部６０１Ａの撓みがキャンセルされた状態となる。この状態で、図１３（ｂ）に示すように、複数のフィンガー２３０Ａに部品Ｗ３を把持させることにより、複数のフィンガー２３０Ａが部品Ｗ３を再現性高く（高精度に）把持することができる。
【０１４１】
そのため、高精度な塗布が可能となる。また、通常の把持の動作に、短い移動範囲でのインピーダンス制御が加わっただけなので、タクトの増加は少ない。また、トレー６００Ａの部品Ｗ３を粗く位置決めする突出部６０２Ａが突き当て部を兼ねているので、スペースの増加は殆どなく、コストの増加も微小と考えられる。
【０１４２】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。
【０１４３】
上記実施形態では、ロボットハンドのハンド本体をトレーの突出部に突き当てる場合について説明したが、これに限定するものではなく、トレーの形状によっては、フィンガーをトレーに突き当てるようにしてもよい。例えば、トレーの部品載置面にフィンガー先端を突き当ててもよい。この場合、突出部がなくても本発明は適用可能である。
【０１４４】
また、上記実施形態では、突出部が部品を規制する場合について説明したが、これに限定するものではなく、ロボットハンドに突き当てさせるためだけに突出部が形成されている場合であってもよい。
【０１４５】
また、上記実施形態の各処理動作は具体的にはＣＰＵ３０１により実行されるものである。従って上述した機能を実現するプログラムを記録した記録媒体を制御装置３００に供給し、制御装置３００のコンピュータ（ＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムを読み出し実行することによって達成されるようにしてもよい。この場合、記録媒体から読み出されたプログラム自体が上述した実施形態の機能を実現することになり、プログラム自体及びそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１４６】
また、上記実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３３０（３３０Ａ）が格納される場合について説明したが、これに限定するものではない。プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、図２及び図９に示すＲＯＭ３０２、記録ディスク３４０、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。
【０１４７】
また、上記実施形態におけるプログラムを、ネットワークを介してダウンロードしてコンピュータにより実行するようにしてもよい。
【０１４８】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけに限定するものではない。そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【０１４９】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施形態の機能が実現される場合も含まれる。
【０１５０】
また、上記実施形態では、コンピュータがＨＤＤ等の記録媒体に記録されたプログラムを実行することにより、処理を行う場合について説明したが、これに限定するものではない。プログラムに基づいて動作する演算部の一部又は全部の機能をＡＳＩＣやＦＰＧＡ等の専用ＬＳＩで構成してもよい。なお、ＡＳＩＣはApplication  Specific  Integrated  Circuit、ＦＰＧＡはField-Programmable  Gate  Arrayの頭字語である。
【符号の説明】
【０１５１】
１００…ロボット装置、２００…ロボット、２０１…ロボット本体、２０２…ロボットハンド、２２０…ハンド本体、２３０…フィンガー、３００…制御装置（制御部）、３３０…プログラム、５０１…架台、６００…トレー
【図１】
2015205368.tif 000003
【図２】
2015205368.tif 000004
【図３】
2015205368.tif 000005
【図４】
2015205368.tif 000006
【図５】
2015205368.tif 000007
【図６】
2015205368.tif 000008
【図７】
2015205368.tif 000009
【図８】
2015205368.tif 000010
【図９】
2015205368.tif 000011
【図１０】
2015205368.tif 000012
【図１１】
2015205368.tif 000013
【図１２】
2015205368.tif 000014
【図１３】
2015205368.tif 000015