(57)【要約】【課題】ロボットハンドに対するワークの位置決めを高精度に行い、組立動作を高速化する。【解決手段】フィンガー２２２をワークに接触させたときの反力を力覚センサ２４０により検知し、フィンガー２２２の把持方向の位置を位置検知部２３３により検知する。フィンガー２２２は、ワークを把持するストレート状の把持部２２５と、把持部２２５に対して所定角度で傾斜する傾斜部２２６と、を有する。制御部は、力覚センサ２４０により反力を検知したときのフィンガー２２２の把持方向の位置を把持検知位置として位置検知部２３３から取得する。制御部は、把持検知位置の値から、複数のフィンガー２２２の把持部２２５にワークを把持させるのに必要なロボットハンド２０２のハンド移動量を求める。制御部は、ハンド移動量の分、ロボットハンド２０２が移動するようにロボットアーム２０１を動作させ、フィンガー２２２の把持部２２５でワークを把持させる。【選択図】図２
2016209936.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームと、
ワークを把持する把持方向に移動可能な複数のフィンガーを有し、前記ロボットアームに取り付けられたロボットハンドと、
前記ロボットアーム及び前記ロボットハンドの動作を制御する制御部と、
前記複数のフィンガーを前記ワークに接触させたときの反力を検知する力検知部と、
前記フィンガーの前記把持方向の位置を検知する位置検知部と、を備え、
前記各フィンガーは、前記ワークを把持するストレート状の把持部と、前記把持部に対して所定角度で傾斜する傾斜部と、を有し、
前記制御部は、
前記複数のフィンガーを前記把持方向に移動させて前記ワークを前記複数のフィンガーの前記傾斜部に接触させる接触処理と、
前記力検知部により反力を検知したときの前記フィンガーの前記把持方向の位置を把持検知位置として前記位置検知部から取得する取得処理と、
前記把持検知位置から前記複数のフィンガーの前記把持部に前記ワークを把持させる把持方向の把持完了位置までの前記フィンガーの前記把持方向のフィンガー移動量に基づく、前記複数のフィンガーの前記把持部に前記ワークを把持させるのに必要な前記ロボットハンドのハンド移動量を求めるハンド移動量導出処理と、
該ハンド移動量の分、前記ロボットハンドが移動するように前記ロボットアームを動作させる動作処理と、
前記複数のフィンガーの前記把持部で前記ワークを把持させる把持処理と、を実行することを特徴とするロボット装置。
【請求項２】
前記ワークは、前記把持方向にスライド自在に支持されていることを特徴とする請求項１に記載のロボット装置。
【請求項３】
前記力検知部は、前記ロボットアームと前記ロボットハンドとの間に配置され、前記ロボットハンドから受ける、前記把持方向と交差する方向の力を検知するための力覚センサであることを特徴とする請求項１又は２に記載のロボット装置。
【請求項４】
前記力検知部は、前記ロボットハンドに設けられ、前記複数のフィンガーによる把持力を検知するためのトルクセンサであることを特徴とする請求項１又は２に記載のロボット装置。
【請求項５】
前記把持部は、前記傾斜部に対して前記フィンガーの先端の側に、前記傾斜部に連続して形成されていることを特徴とする請求項１乃至４のいずれか１項に記載のロボット装置。
【請求項６】
前記制御部は、
前記動作処理にて前記ロボットハンドが前記ハンド移動量の分、移動するように前記ロボットアームを動作させながら、前記把持処理にて前記複数のフィンガーを前記把持完了位置まで前記把持方向に移動させることを特徴とする請求項１又は２に記載のロボット装置。
【請求項７】
前記所定角度をθ、前記フィンガー移動量をＦ、前記ハンド移動量をＨとしたとき、
前記制御部は、前記ハンド移動量導出処理にて、
Ｈ＝１／ｔａｎθ×Ｆ
の関係式に従った前記ハンド移動量を求めることを特徴とする請求項１乃至６のいずれか１項に記載のロボット装置。
【請求項８】
前記傾斜部は、前記把持部よりも摩擦係数が小さく設定されていることを特徴とする請求項１乃至７のいずれか１項に記載のロボット装置。
【請求項９】
前記制御部は、
前記複数のフィンガーの前記把持部に把持させた前記ワークを別のワークに嵌合する際に、予め設定された軌道データに従って前記ロボットアームを動作させる嵌合作業処理を更に実行することを特徴とする請求項１乃至８のいずれか１項に記載のロボット装置。
【請求項１０】
ワークを把持する把持方向に移動可能な複数のフィンガーを有するロボットハンドが、ロボットアームに取り付けられており、前記複数のフィンガーを前記ワークに接触させたときの反力を、力検知部により検知し、前記フィンガーの前記把持方向の位置を、位置検知部により検知し、前記各フィンガーは、前記ワークを把持するストレート状の把持部と、前記把持部に対して所定角度で傾斜する傾斜部と、を有しており、制御部により、前記ロボットアーム及び前記ロボットハンドの動作を制御するロボット制御方法であって、
前記制御部が、前記複数のフィンガーを前記把持方向に移動させて前記ワークを前記複数のフィンガーの前記傾斜部に接触させる接触工程と、
前記制御部が、前記力検知部により反力を検知したときの前記フィンガーの前記把持方向の位置を把持検知位置として前記位置検知部から取得する取得工程と、
前記制御部が、前記把持検知位置から前記複数のフィンガーの前記把持部に前記ワークを把持させる把持方向の把持完了位置までの前記フィンガーの前記把持方向のフィンガー移動量に基づく、前記複数のフィンガーの前記把持部に前記ワークを把持させるのに必要な前記ロボットハンドのハンド移動量を求めるハンド移動量導出工程と、
前記制御部が、前記ハンド移動量の分、前記ロボットハンドが移動するように前記ロボットアームを動作させる動作工程と、
前記制御部が、前記複数のフィンガーの前記把持部で前記ワークを把持させる把持工程と、を備えたことを特徴とするロボット制御方法。
【請求項１１】
前記ワークは、前記把持方向にスライド自在に支持されていることを特徴とする請求項１０に記載のロボット制御方法。
【請求項１２】
前記制御部が、前記動作工程で前記ロボットハンドが前記ハンド移動量の分、移動するように前記ロボットアームを動作させながら、前記把持工程で前記複数のフィンガーを前記把持完了位置まで前記把持方向に移動させることを特徴とする請求項１０又は１１に記載のロボット制御方法。
【請求項１３】
前記所定角度をθ、前記フィンガー移動量をＦ、前記ハンド移動量をＨとしたとき、
前記ハンド移動量導出工程では、前記制御部が、
Ｈ＝１／ｔａｎθ×Ｆ
の関係式に従った前記ハンド移動量を求めることを特徴とする請求項１０乃至１２のいずれか１項に記載のロボット制御方法。
【請求項１４】
前記制御部が、前記複数のフィンガーの前記把持部に把持させた前記ワークを別のワークに嵌合する際に、予め設定された軌道データに従って前記ロボットアームを動作させる嵌合作業工程を更に備えたことを特徴とする請求項１０乃至１３のいずれか１項に記載のロボット制御方法。
【請求項１５】
コンピュータに、請求項１０乃至１４のいずれか１項に記載のロボット制御方法の各工程を実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットハンドを有するロボット装置、ロボット制御方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ロボット装置を用いて、部品同士の接触を伴う部品組立の作業、例えば嵌合部品を被嵌合部品に嵌合する嵌合作業を実施する場合がある。この場合、ロボットハンド（フィンガー）に嵌合部品を把持させて、嵌合部品を被嵌合部品に嵌合させる嵌合作業を開始する位置までは、予め設定された軌道データに従って、ロボットアームを動作させる（通常制御）。そして、嵌合作業を行う際には、ロボットハンドに対する嵌合部品の位置のずれがあっても嵌合できるように、力検出部の力検出結果を利用してインピーダンス制御を行うのが一般的である。
【０００３】
インピーダンス制御は、嵌合部品を把持したロボットハンドが受ける力（力及び力のモーメントを含む）に対し、ロボットアームに仮想的なばね性や粘性を持たせ、作業時に発生する反力に対して柔軟にロボットアームを動作させる制御である。インピーダンス制御によって、ロボットハンドに対する嵌合部品の位置誤差を補正した嵌合作業が実施できる。
【０００４】
一方、高さにばらつきがあるトレイをロボットハンドで把持する方法として、ロボットハンドに装着されたフィンガーのトレイとの接触面をテーパー面とし、フィンガーは上下動可能に構成したロボットハンドが提案されている（特許文献１）。この特許文献１には、トレイのチャック時にトレイの縁部がテーパー面に沿ってガイドされ、トレイをスムーズにチャックできることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−１１３８９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１では、フィンガーは微弱なバネなどで上下動可能な構成としているため、ワークを把持して組み立て作業を行おうとすると、フィンガーが上下動し、高さが不安定なため、精密な部品組立などの作業には使用できなかった。
【０００７】
また、ワークの把持位置がばらついた状態で把持すると、組み立て作業を行う際に把持位置のばらつきを吸収するためにインピーダンス制御などのフィードバック制御が必要となり、時間がかかっていた。
【０００８】
そこで、本発明は、ロボットハンドに対するワークの位置決めを高精度に行い、組立動作を高速化することを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明は、ロボットアームと、ワークを把持する把持方向に移動可能な複数のフィンガーを有し、前記ロボットアームに取り付けられたロボットハンドと、前記ロボットアーム及び前記ロボットハンドの動作を制御する制御部と、前記複数のフィンガーを前記ワークに接触させたときの反力を検知する力検知部と、前記フィンガーの前記把持方向の位置を検知する位置検知部と、を備え、前記各フィンガーは、前記ワークを把持するストレート状の把持部と、前記把持部に対して所定角度で傾斜する傾斜部と、を有し、前記制御部は、前記複数のフィンガーを前記把持方向に移動させて前記ワークを前記複数のフィンガーの前記傾斜部に接触させる接触処理と、前記力検知部により反力を検知したときの前記フィンガーの前記把持方向の位置を把持検知位置として前記位置検知部から取得する取得処理と、前記把持検知位置から前記複数のフィンガーの前記把持部に前記ワークを把持させる把持方向の把持完了位置までの前記フィンガーの前記把持方向のフィンガー移動量に基づく、前記複数のフィンガーの前記把持部に前記ワークを把持させるのに必要な前記ロボットハンドのハンド移動量を求めるハンド移動量導出処理と、該ハンド移動量の分、前記ロボットハンドが移動するように前記ロボットアームを動作させる動作処理と、前記複数のフィンガーの前記把持部で前記ワークを把持させる把持処理と、を実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、ロボットハンドに対するワークの位置決めを高精度に行い、組立動作を高速化することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係るロボット装置を示す斜視図である。
【図２】本発明の実施形態に係るロボットハンドの概略構成を示す説明図である。
【図３】本発明の実施形態に係るロボット装置の制御装置の構成を示すブロック図である。
【図４】本発明の実施形態に係るロボット制御方法を示すフローチャートである。
【図５】（ａ）は、本発明の実施形態に係るロボット制御方法のステップＳ３におけるロボットアームの動作を説明するための模式図である。（ｂ）は、本発明の実施形態に係るロボット制御方法のステップＳ４，Ｓ５におけるロボットハンドの動作を説明するための模式図である。（ｃ）は、本発明の実施形態に係るロボット制御方法のステップＳ９におけるロボットアーム及びロボットハンドの動作を説明するための模式図である。
【図６】（ａ）は、力覚センサにより検知された結果を示す模式図である。（ｂ）は、位置検知部により検知された結果を示す模式図である。（ｃ）は、トルクセンサにより検知された結果を示す模式図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図１は、本発明の実施形態に係るロボット装置を示す斜視図である。ロボット装置１００は、ロボット２００と、ロボット２００の動作を制御する制御装置３００と、ユーザの操作によりロボット２００の動作を教示する教示部としてのティーチングペンダント４００と、を備えている。
【００１３】
ロボット２００は、垂直多関節型のロボットアーム２０１と、力覚センサ２４０と、ロボットアーム２０１の先端に力覚センサ２４０を介して取り付けられたロボットハンド２０２と、を有している。
【００１４】
ロボットアーム２０１は、作業台に固定されるベース部（基端リンク）２１０と、変位や力を伝達する複数のリンク２１１〜２１６とが関節Ｊ１〜Ｊ６で屈曲（旋回）又は回転可能に連結されている。本実施形態では、ロボットアーム２０１は、屈曲する３軸と回転する３軸の６軸の関節Ｊ１〜Ｊ６で構成されている。ここで、屈曲とは２つのリンクの結合部のある点で折れ曲がること、回転とは２つのリンクの長手方向の回転軸でリンクが相対的に回ることをいい、それぞれを屈曲部、回転部と呼ぶ。ロボットアーム２０１は、６つの関節Ｊ１〜Ｊ６から構成され、関節Ｊ１，Ｊ４，Ｊ６が回転部、関節Ｊ２，Ｊ３，Ｊ５が屈曲部である。
【００１５】
ロボットアーム２０１は、各関節Ｊ１〜Ｊ６に対して設けられ、各関節Ｊ１〜Ｊ６をそれぞれ駆動するための複数（６つ）の関節駆動装置２３０を有している。関節駆動装置２３０は、不図示の電動モータ、減速機及び制御基板等を有して構成されている。
【００１６】
図２は、本発明の実施形態に係るロボットハンドの概略構成を示す説明図である。図２に示すように、ロボットハンド２０２は、ハンドベース２２１と、複数のフィンガー２２２とを有する。ハンドベース２２１は、ロボットアーム２０１の先端、即ちリンク２１６に、力検知部である力覚センサ２４０を介して取り付けられている。複数のフィンガー２２２は、ハンドベース２２１に、ワークＷ１を把持する把持方向及びワークＷ１の把持を解放する把持解放方向に移動可能に支持されている。力覚センサ２４０は、ロボットアーム２０１とロボットハンド２０２との間に配置され、ロボットハンド２０２から受ける、図２中互いに直交するＸＹＺ方向の力を検知する。つまり、力覚センサ２４０は、ロボットハンド２０２が受けた力を検知する。ここで、ＸＹ面内には、把持方向及び把持解放方向が含まれており、把持方向（及び把持解放方向）に交差（直交）する方向は、Ｚ方向である。
【００１７】
複数のフィンガー２２２を、Ｚ方向に延びる中心軸Ｃ０へ向かう把持方向へ閉動作させることにより、第１ワークであるワークＷ１を把持することができる。複数のフィンガー２２２を中心軸Ｃ０から離間する把持解放方向へ開動作させることにより、ワークＷ１を把持解放することができる。
【００１８】
ロボットハンド２０２は、複数のフィンガー２２２を用いてワークＷ１を把持することにより、第１ワークであるワーク（嵌合部品）Ｗ１を第２ワークであるワーク（被嵌合部品）Ｗ２に嵌合する嵌合作業を行うことができる。
【００１９】
ここで、力覚センサ２４０は、図１の制御装置３００に信号線で接続されている。ハンドベース２２１には、フィンガー２２２を駆動するための駆動装置２３１と、フィンガー２２２による把持力（トルク）を検知するトルクセンサ２３２と、フィンガー２２２の把持方向の位置を検知する位置検知部２３３と、が内蔵されている。
【００２０】
駆動装置２３１は、電力線と信号線で制御装置３００に接続されている。また、トルクセンサ２３２は、把持力検知部であり、信号線で制御装置３００に接続されている。駆動装置２３１は、不図示の電動モータ、減速機及び制御基板等を有して構成される。位置検知部２３３は、駆動装置２３１の電動モータの出力軸の回転角度又は減速機の出力軸の回転角度を検知するロータリーエンコーダや、フィンガー２２２の位置を直接検出するスケール等である。
【００２１】
各フィンガー２２２は、フィンガー２２２の先端に形成されたストレート状の把持部２２５と、把持部２２５に対して所定角度θで傾斜する傾斜部２２６とを有する。把持部２２５は、Ｚ方向に延びるストレート面であり、傾斜部２２６に対してフィンガー２２２の先端の側に、傾斜部２２６に連続して形成されている。即ち、傾斜部２２６は、把持部２２５に対してフィンガー２２２の基端側に、把持部２２５に連続して形成されている。傾斜部２２６は、把持部２２５からフィンガー２２２の基端側に向かって、中心軸Ｃ０の側に傾斜するテーパー面である。
【００２２】
各フィンガー２２２の傾斜部２２６にワークＷ１の縁部を接触させたとき、その反力がＺ方向に作用する。力覚センサ２４０は、このＺ方向の反力を検知することができる。また、傾斜部２２６は把持部２２５よりも摩擦係数が小さく設定されている。
【００２３】
図３は、ロボット装置１００の制御装置３００の構成を示すブロック図である。制御装置３００は、コンピュータで構成されており、制御部としてのＣＰＵ（Central  Processing  Unit）３０１を備えている。また、制御装置３００は、記憶部として、ＲＯＭ（Read  Only  Memory）３０２、ＲＡＭ（Random  Access  Memory）３０３、ＨＤＤ（Hard  Disk  Drive）３０４を備えている。また、制御装置３００は、記録ディスクドライブ３０５及び各種のインタフェース３１１〜３１６を備えている。
【００２４】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤＤ３０４、記録ディスクドライブ３０５及び各種のインタフェース３１１〜３１６が、バス３１０を介して接続されている。ＲＯＭ３０２には、ＢＩＯＳ等の基本プログラムが格納されている。ＲＡＭ３０３は、ＣＰＵ３０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。
【００２５】
ＨＤＤ３０４は、ＣＰＵ３０１の演算処理結果や外部から取得した各種データ等を記憶する記憶装置であると共に、ＣＰＵ３０１に、後述する演算処理を実行させるためのプログラム３４０を記録するものである。ＣＰＵ３０１は、ＨＤＤ３０４に記録（格納）されたプログラム３４０に基づいてロボット制御方法の各工程を実行する。
【００２６】
記録ディスクドライブ３０５は、記録ディスク３４１に記録された各種データやプログラム等を読み出すことができる。
【００２７】
教示部であるティーチングペンダント４００は、インタフェース３１１に接続されている。ティーチングペンダント４００は、ユーザの入力操作により、ロボット２００を教示する教示点を指定するものである。教示点のデータは、インタフェース３１１及びバスを通じてＨＤＤ３０４に出力される。
【００２８】
ＨＤＤ３０４は、ティーチングペンダント４００により指定された教示点のデータを格納することができる。ＣＰＵ３０１は、ＨＤＤ３０４に設定（格納）された教示点のデータを読み出すことができる。
【００２９】
インタフェース３１２には、ロボットアーム２０１が接続されている。インタフェース３１３には、ロボットハンド２０２が接続されている。ＣＰＵ３０１は、インタフェース３１２を介してロボットアーム２０１（関節駆動装置２３０）に駆動指令を出力して、ロボットアーム２０１の動作を制御する。また、ＣＰＵ３０１は、インタフェース３１３を介してロボットハンド２０２（駆動装置２３１）に駆動指令を出力してロボットハンド２０２の動作を制御する。インタフェース３１４には、力覚センサ２４０が接続されており、ＣＰＵ３０１は、力覚センサ２４０から力検知結果を取得することができる。インタフェース３１５には、位置検知部２３３が接続されており、ＣＰＵ３０１は、位置検知部２３３から位置検出結果を取得することができる。インタフェース３１６には、書き換え可能な不揮発性メモリや外付けＨＤＤ等の外部記憶装置３５０が接続されている。
【００３０】
なお、本実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ３０４であり、ＨＤＤ３０４にプログラム３４０が格納される場合について説明するが、これに限定するものではない。プログラム３４０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム３４０を供給するための記録媒体としては、図３に示す記録ディスク３４１、外部記憶装置３５０等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性メモリ、ＲＯＭ等を用いることができる。
【００３１】
次に、制御装置３００（具体的にはＣＰＵ３０１）によるロボットアーム２０１及びロボットハンド２０２の制御方法について説明する。図４は、本発明の実施形態に係るロボット制御方法を示すフローチャートである。図５は、本発明の実施形態に係るロボット制御方法の一部工程のロボットアーム２０１及びロボットハンド２０２の動作を説明するための模式図である。具体的には、図５（ａ）は、図４のステップＳ３におけるロボットアーム２０１の動作を説明するための模式図である。図５（ｂ）は、図４のステップＳ４，Ｓ５におけるロボットハンド２０２の動作を説明するための模式図である。図５（ｃ）は、図４のステップＳ９におけるロボットアーム２０１及びロボットハンド２０２の動作を説明するための模式図である。なお、図５（ａ）〜図５（ｃ）において、ワークＷ１は、凸レンズとし、トレイＴｒ上に載置されているものとする。また、ワークＷ１は、把持方向にスライド自在にトレイＴｒ上に載置（支持）されている。
【００３２】
制御装置３００のＣＰＵ３０１は、ロボットアーム２０１及びロボットハンド２０２の動作が記述されたロボットプログラムを入力する（Ｓ１）。ロボットプログラムには、ワーク把持、上昇、組み立てまでの教示点を移動することが記述されているものとする。ＣＰＵ３０１は、ロボットプログラムに基づいてロボットアーム２０１の軌道を計算する（Ｓ２）。
【００３３】
ここで、教示点は、関節空間又はタスク空間上の点として、作業者が操作するティーチングペンダント４００により設定される。ロボットアーム２０１の自由度を表すパラメータを関節角度として、ロボットアーム２０１の関節Ｊ１〜Ｊ６の関節角度をそれぞれθ１〜θ６とする。ロボットアーム２０１のコンフィグレーションは（θ１，θ２，θ３，θ４，θ５，θ６）で表され、関節空間上では、１つの点とみなすことができる。このように、ロボットアーム２０１の自由度を表すパラメータ（例えば、関節角度や伸縮長さ）を座標軸の値とした場合、ロボットアーム２０１のコンフィグレーションは関節空間上の点として表現することができる。つまり、関節空間は、ロボットアーム２０１の関節角度を座標軸とする空間である。
【００３４】
また、ロボットハンド２０２には、ツールセンターポイント（ＴＣＰ）が設定されている。ＴＣＰは、位置を表す３つのパラメータ（ｘ，ｙ，ｚ）と、姿勢（回転）を表す３つのパラメータ（α，β，γ）、即ち６つのパラメータ（ｘ，ｙ，ｚ，α，β，γ）で表され、タスク空間上では、１つの点としてみなすことができる。つまり、タスク空間は、これら６つの座標軸で規定された空間である。
【００３５】
ＣＰＵ３０１は、設定された複数の教示点を繋ぐロボットアーム２０１の経路を、ロボットプログラムに記述された所定の補間方法（例えば、直線補間や円弧補間、関節補間等）で生成する。そして、ＣＰＵ３０１は、生成したロボットアーム２０１の経路から、ロボットアーム２０１の軌道を生成する。
【００３６】
ここで、ロボットアーム２０１の経路とは、関節空間又はタスク空間の点の順序集合である。ロボットアーム２０１の軌道とは、時間をパラメータとして経路を表したものであり、本実施形態では、時刻毎の各関節Ｊ１〜Ｊ６の関節駆動装置２３０の駆動指令の集合である。
【００３７】
軌道データは、ロボットアーム２０１を動作させる前に予め計算して記憶部、例えばＨＤＤ３０４に記憶（設定）させておく。なお、軌道データの計算は、ＣＰＵ３０１が行う場合について説明するが、不図示の他のコンピュータに行わせ、記憶部、例えばＨＤＤ３０４に予め記憶（設定）させてもよい。
【００３８】
ＣＰＵ３０１は、ロボットアーム２０１（関節駆動装置２３０）に駆動指令を出力してロボットアーム２０１を動作させ、複数のフィンガー２２２でワークＷ１を把持する位置までロボットハンド２０２を移動させる（Ｓ３）。具体的には、図５（ａ）に示すように、フィンガー２２２の傾斜部２２６が把持方向でワークＷ１の側面上端部（縁部）に対向する位置にロボットハンド２０２を移動させる。このとき、複数のフィンガー２２２がＺ方向でワークＷ１に衝突しないように複数のフィンガー２２２をワークＷ１の外形よりも開いておく。このようにしてフィンガー２２２がワークＷ１に対してアプローチする。
【００３９】
ＣＰＵ３０１は、ロボットハンド２０２（駆動装置２３１）に駆動指令を出力して、例えば１［Ｎ］を閾値としてフィンガー２２２を力制御にて把持方向に駆動させる（Ｓ４）。閾値は、複数のフィンガー２２２の傾斜部２２６にワークＷ１が接触したと判定できる値に設定すればよい。複数のフィンガー２２２の傾斜部２２６にワークＷ１が接触したとき、その反力がＺ方向に伝達され、力覚センサ２４０により検知される。
【００４０】
このとき、図５（ｂ）に示すように、ワークＷ１はロボットハンド２０２に対してずれがあっても、ワークＷ１の縁部がいずれかのフィンガー２２２の傾斜部２２６により押圧されてワークＷ１はトレイＴｒ上でＸＹ方向にスライドする。そして、全てのフィンガー２２２の傾斜部２２６にワークＷ１の縁部が接触したときには、ロボットハンド２０２の中心軸Ｃ０とワークＷ１の中心軸Ｃ１が一致する。
【００４１】
ＣＰＵ３０１は、ステップＳ４によるフィンガー２２２の駆動中に力覚センサ２４０のＺ方向の反力を監視し、Ｚ方向の反力が閾値（例えば１［Ｎ］）になったか否かを判断する（Ｓ５）。ＣＰＵ３０１は、力覚センサ２４０により検出されたＺ方向の反力が閾値よりも低い場合（Ｓ５：Ｎｏ）、ステップＳ４の処理に戻る。
【００４２】
このように、ＣＰＵ３０１は、ステップＳ４，Ｓ５にて、複数のフィンガー２２２の傾斜部２２６がワークＷ１に接触するまで、複数のフィンガー２２２を把持方向に移動させる。即ち、ＣＰＵ３０１は、ステップＳ４，Ｓ５にて、複数のフィンガー２２２を把持方向に移動させてワークＷ１を複数のフィンガー２２２の傾斜部２２６に接触させる（接触工程，接触処理）。
【００４３】
ＣＰＵ３０１は、力覚センサ２４０により検知されたＺ方向の反力が閾値となったとき（Ｓ５：Ｙｅｓ）、即ち力覚センサ２４０により反力を検知したときのフィンガー２２２の把持方向の位置を、位置検知部２３３から取得する（Ｓ６：取得工程，取得処理）。以下、この位置を把持検知位置という。
【００４４】
次に、ＣＰＵ３０１は、把持検知位置から複数のフィンガー２２２の把持部２２５にワークＷ１を把持させる把持方向の把持完了位置までのフィンガー２２２の把持方向のフィンガー移動量を求める。把持完了位置とは、複数のフィンガー２２２の把持部２２５がワークＷ１に接触する位置であり、ワークＷ１の大きさにより決まる位置である。そして、ＣＰＵ３０１は、フィンガー移動量に基づく、複数のフィンガー２２２の把持部２２５にワークＷ１を把持させるのに必要なＺ方向のロボットハンド２０２のハンド移動量を求める（Ｓ７：ハンド移動量導出工程，ハンド移動量導出処理）。
【００４５】
ここで、所定角度をθ、把持方向のフィンガー移動量をＦ、Ｚ方向のハンド移動量をＨとする。ＣＰＵ３０１は、ステップＳ７では、
Ｈ＝１／ｔａｎθ×Ｆ・・・（１）
の関係式に従ったハンド移動量Ｈを求める。
【００４６】
具体的に説明すると、把持完了位置の値は、予め記憶部として例えばＨＤＤ３０４に記憶させておく。また、θの値、ｔａｎθの値又は１／ｔａｎθの値は、予め記憶部として例えばＨＤＤ３０４に記憶させておく。図５の例では、θは４５°である。
【００４７】
ＣＰＵ３０１は、まず把持検知位置の値と把持完了位置の値との差からフィンガー移動量Ｆを求め、θの値、ｔａｎθの値又は１／ｔａｎθの値をＨＤＤ３０４から読み出し、式（１）に従ってハンド移動量Ｈを計算により求める。
【００４８】
なお、式（１）に従っていれば、フィンガー移動量Ｆとハンド移動量Ｈとの対応関係を示すテーブルデータを、予め記憶部として例えばＨＤＤ３０４に記憶させておいてもよい。そして、ＣＰＵ３０１は、フィンガー移動量Ｆを求め、この値に対応するハンド移動量Ｈを読み出すようにしてもよい。また、式（１）に従っていれば、把持検知位置とハンド移動量Ｈとの対応関係を示すテーブルデータを、予め記憶部として例えばＨＤＤ３０４に記憶させておいてもよい。そして、ＣＰＵ３０１は、位置検知部２３３から取得した把持検知位置に対応するハンド移動量Ｈを読み出すようにしてもよい。これらテーブルデータは、予め実験により求めておけばよい。
【００４９】
ＣＰＵ３０１は、ハンド移動量Ｈの分、ロボットハンド２０２がＺ方向に移動するようにロボットアーム２０１を動作させる（Ｓ８：動作工程，動作処理）。即ち、ＣＰＵ３０１は、ロボットハンド２０２の上昇を開始させる。
【００５０】
更に、ＣＰＵ３０１は、フィンガー移動量Ｆの分、即ち把持完了位置まで複数のフィンガー２２２を把持方向に移動させる（Ｓ９：把持工程，把持処理）。これにより、複数のフィンガー２２２の把持部２２５でワークＷ１を把持させる。このとき図５（ｃ）に示すように傾斜部２２６と把持部２２５との境界点とワークＷ１の縁部（側面上端部）が一致する位置でワークＷ１を把持することができる。
【００５１】
本実施形態では、ＣＰＵ３０１は、ステップＳ８でロボットハンド２０２がハンド移動量Ｈの分、Ｚ方向に移動するようにロボットアーム２０１を動作させながら、ステップＳ９で複数のフィンガー２２２を把持完了位置まで移動させる。
【００５２】
傾斜部２２６は、把持部２２５よりも摩擦係数が小さく設定されているので、ワークＷ１の縁部が円滑に傾斜部２２６を摺動し、把持部２２５でワークＷ１を把持することができる。
【００５３】
なお、ロボットハンド２０２をＺ方向にハンド移動量Ｈの分、移動させた後に、フィンガー２２２をフィンガー移動量Ｆの分、移動させてもよい。
【００５４】
ＣＰＵ３０１は、更に駆動装置２３１に複数のフィンガー２２２を把持方向に駆動させる（Ｓ１０）。そして、ＣＰＵ３０１は、フィンガー２２２の把持力が目標把持力（例えば１５［Ｎ］）となったか否かを判断する（Ｓ１１）。フィンガー２２２の把持力は、トルクセンサ２３２により検知される。この目標把持力は、予め記憶部として例えばＨＤＤ３０４に記憶させておく。
【００５５】
ＣＰＵ３０１は、フィンガー２２２の把持力が目標把持力（例えば１５［Ｎ］）に達していない場合（Ｓ１１：Ｎｏ）は、ステップＳ１０に戻り、駆動装置２３１による駆動を続行する。ＣＰＵ３０１は、フィンガー２２２の把持力が目標把持力（例えば１５［Ｎ］）となったと判断した場合（Ｓ１１：Ｙｅｓ）、フィンガー２２２の駆動を停止する（Ｓ１２）。
【００５６】
ＣＰＵ３０１は、軌道データに従ってロボットアーム２０１を駆動し、ワーク（レンズ）Ｗ１を別のワークＷ２に組付ける組立位置に搬送する（Ｓ１３）。ＣＰＵ３０１は、軌道データに従ってロボットアーム２０１を駆動し、組み立て作業を行う（Ｓ１４）。即ち、ＣＰＵ３０１は、複数のフィンガー２２２の把持部２２５に把持させたワークＷ１を別のワークＷ２に嵌合する際に、予め設定された軌道データに従ってロボットアーム２０１を動作させる（嵌合作業工程，嵌合作業処理）。以上、ステップＳ１２では、ＣＰＵ３０１は、ワークＷ１を把持した状態でロボットアーム２０１に駆動指令を出力し、ワークＷ１をワークＷ２に組付ける。
【００５７】
ステップＳ６〜Ｓ１２の処理について具体的に説明する。図６は、力覚センサ２４０、位置検知部２３３及びトルクセンサ２３２により検知された結果を示す模式図である。具体的には、図６（ａ）は、力覚センサ２４０により検知された結果を示す模式図である。図６（ｂ）は、位置検知部２３３により検知された結果を示す模式図である。図６（ｃ）は、トルクセンサ２３２により検知された結果を示す模式図である。なお、図６（ｂ）には、ロボットハンド２０２のＺ方向の移動量も図示している。
【００５８】
図６（ａ）に示すように、閾値として１［Ｎ］が設定され、力覚センサ２４０により１［Ｎ］が検知されたとき、ＣＰＵ３０１は、図６（ｂ）に示すようにフィンガー２２２の把持方向の駆動位置を、把持検知位置Ｆａとして位置検知部２３３より取得する。ＣＰＵ３０１は、フィンガー移動量Ｆとして、把持完了位置Ｆｂと把持検知位置Ｆａとの差（Ｆｂ−Ｆａ）を算出する。そして、ＣＰＵ３０１は、式（１）に従ってハンド移動量Ｈを算出する。ＣＰＵ３０１は、ロボットハンド２０２がハンド移動量Ｈの分、Ｚ方向に移動するように、ロボットアーム２０１を動作させ、その間、フィンガー２２２も、把持完了位置Ｆｂまで把持方向へ移動させる。図６（ｃ）に示すように、目標把持力として１５［Ｎ］が設定され、ＣＰＵ３０１は、トルクセンサ２３２により検出された力が目標把持力１５［Ｎ］となるようにフィンガー２２２を動作させる。これにより、フィンガー２２２の把持部２２５の所定の位置でワークＷ１を目標把持力で把持することができる。
【００５９】
以上、本実施形態によれば、ロボットハンド２０２のフィンガー２２２に対するワークＷ１の位置決めを高精度に行うことができ、組み立て作業においてインピーダンス制御を行わずに組み立て動作を高速化することができる。
【００６０】
また、ワークＷ１を把持する際に、ロボットハンド２０２の中心軸Ｃ０とワークＷ１の中心軸Ｃ１が一致し、またロボットハンド２０２のフィンガー２２２に対するワークＷ１の高さ方向（Ｚ方向）の位置決めもできる。これにより、組み立て作業においてインピーダンス制御などのフィードバック制御を行うことなくワークＷ１の組み立て作業を高精度に行うことができる。
【００６１】
また、ワークＷ１の把持を検知したタイミングからフィンガー２２２の傾斜部２２６に沿ってロボットハンド２０２を上昇でき、傾斜部２２６と把持部２２５との境界点とワークＷ１の縁部とが一致した状態でワークＷ１を把持することができる。これにより、ロボットハンド２０２とワークＷ１の高さ方向の位置が高精度に位置決めできるため、インピーダンス制御などのフィードバック制御を行うことなくワークの組み立て作業を高速化することができる。
【００６２】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されない。
【００６３】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６４】
また、上記実施形態では、力覚センサ２４０で複数のフィンガー２２２をワークＷ１に接触させたときの反力を検知するようにしたが、これに限定するものではない。複数のフィンガー２２２の傾斜部２２６がワークＷ１の縁部に接触したときも、図６（ｃ）に示すように、トルクセンサ２３２は、接触による反力を検知することができる。したがって、トルクセンサ２３２で複数のフィンガー２２２をワークＷ１に接触させたときの反力を検知するようにしてもよい。この場合、力覚センサ２４０を省略することが可能となる。
【００６５】
また、上記実施形態では、ロボットアーム２０１が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアーム２０１が、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボットにおけるロボットアーム等、種々のロボットアームについて本発明は適用可能である。
【符号の説明】
【００６６】
１００…ロボット装置、２０１…ロボットアーム、２０２…ロボットハンド、２２１…ハンドベース、２２２…フィンガー、２２５…把持部、２２６…傾斜部、２３３…位置検知部、２４０…力覚センサ（力検知部）、３０１…ＣＰＵ（制御部）
【図１】
2016209936.tif 000003
【図２】
2016209936.tif 000004
【図３】
2016209936.tif 000005
【図４】
2016209936.tif 000006
【図５】
2016209936.tif 000007
【図６】
2016209936.tif 000008