(57)【要約】【課題】物品の生産性を向上させる。【解決手段】ロボット制御装置４００によりフィンガ、及びフィンガを駆動する駆動部を有するロボット１００を制御して物品を製造する。ロボット制御装置４００は、駆動部の駆動に応じた計測値と、目標値との差に基づいて、駆動部をフィードバック制御して、フィンガにワークＷ１を把持させる動作を開始する。ロボット制御装置４００は、フィンガにワークＷ１を把持させる動作を開始した後であって、計測値が目標値を含む第１範囲内となって以降、ロボット１００に所定の動作を開始させる。ロボット制御装置４００は、ロボット１００に所定の動作を開始させて以降、計測値が第１範囲とは異なる第２範囲を外れなければ、所定の動作が終了するまで、ロボット１００に所定の動作を行わせる。【選択図】図１
2020059105.tif 000002
【特許請求の範囲】
【請求項１】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットを制御するロボット制御方法であって、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記ロボットに所定の動作を開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲とは異なる第２範囲を外れなければ、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とするロボット制御方法。
【請求項２】
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第２範囲を外れる場合、前記ロボットに前記所定の動作を停止させることを特徴とする請求項１に記載のロボット制御方法。
【請求項３】
前記第２範囲は、前記第１範囲を包含する、前記第１範囲よりも広い範囲であることを特徴とする請求項１又は２に記載のロボット制御方法。
【請求項４】
前記計測値は、前記フィンガの位置に対応した値であることを特徴とする請求項１乃至３のいずれか１項に記載のロボット制御方法。
【請求項５】
前記計測値は、前記フィンガに作用した力に対応した値であることを特徴とする請求項１乃至３のいずれか１項に記載のロボット制御方法。
【請求項６】
前記第２範囲は、予め設定される範囲であることを特徴とする請求項１乃至５のいずれか１項に記載のロボット制御方法。
【請求項７】
前記駆動部は、モータを含み、
前記第２範囲は、前記計測値が前記第１範囲となった時の、前記モータに供給された電流に対応した値に応じて設定されることを特徴とする請求項１乃至５のいずれか１項に記載のロボット制御方法。
【請求項８】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットを制御するロボット制御方法であって、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記ロボットに所定の動作を開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲から外れるか否かにかかわらず、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とするロボット制御方法。
【請求項９】
前記所定の動作は、前記ワークを組み付け対象に組み付ける動作であることを特徴とする請求項１乃至８のいずれか１項に記載のロボット制御方法。
【請求項１０】
前記所定の動作は、前記フィンガが前記駆動部に駆動される方向と平行な方向に前記ワークを移動させる動作であることを特徴とする請求項１乃至９のいずれか１項に記載のロボット制御方法。
【請求項１１】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットを用いて物品を製造する方法であって、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記フィンガに把持させた前記ワークを対象物に組み付ける所定の動作を前記ロボットに開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲とは異なる第２範囲を外れなければ、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とする物品の製造方法。
【請求項１２】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットを用いて物品を製造する方法であって、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記フィンガに把持させた前記ワークを対象物に組み付ける所定の動作を前記ロボットに開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲から外れるか否かにかかわらず、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とする物品の製造方法。
【請求項１３】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記ロボットに所定の動作を開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲とは異なる第２範囲を外れなければ、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とするロボット装置。
【請求項１４】
フィンガ、及び前記フィンガを駆動する駆動部を有するロボットと、
前記ロボットを制御する制御部と、を備え、
前記制御部は、
前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、
前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記ロボットに所定の動作を開始させ、
前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲から外れるか否かにかかわらず、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とするロボット装置。
【請求項１５】
請求項１乃至１０のいずれか１項に記載のロボット制御方法をコンピュータに実行させるためのプログラム。
【請求項１６】
請求項１５に記載のプログラムを記録した、コンピュータによって読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御に関する。
【背景技術】
【０００２】
カメラやプリンタなどの製品の組み立て動作を、ロボットで自動化する要求が高まっている。物品を組み立てる際、ワークを安定して把持するように、ロボットのフィンガを目標位置に位置決めする必要がある。特許文献１には、関節のモータに設けられたロータリエンコーダから得られるエンコーダ値を許容誤差の範囲内に収束させることで、把持動作を完了する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４６４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１には、フィンガにワークを高精度に把持させるときの動作については記載されているが、その後のロボットの動作、例えばフィンガに把持させたワークを対象物に組み付ける動作時のフィンガの制御については、具体的には記載されていない。近年、ロボットを用いて製造される物品を構成する部品は、小型の精密部品となってきており、形状や材質なども、多岐に渡ってきている。ロボットには多能工化が要求されており、フィンガには、さまざまな形状や大きさのワークを把持することが要求されている。このような状況の中、ロボットには組み付け動作などの物品の生産に関わる動作を高速かつ高精度に行うことが求められている。
【０００５】
本発明は、物品の生産性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
本発明のロボット制御方法は、フィンガ、及び前記フィンガを駆動する駆動部を有するロボットを制御するロボット制御方法であって、前記駆動部の駆動に応じた計測値と、目標値との差に基づいて、前記駆動部をフィードバック制御して、前記フィンガにワークを把持させる動作を開始し、前記フィンガに前記ワークを把持させる動作を開始した後であって、前記計測値が前記目標値を含む第１範囲内となって以降、前記ロボットに所定の動作を開始させ、前記ロボットに前記所定の動作を開始させて以降、前記計測値が前記第１範囲とは異なる第２範囲を外れなければ、前記所定の動作が終了するまで、前記ロボットに前記所定の動作を行わせることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、物品の生産性が向上する。
【図面の簡単な説明】
【０００８】
【図１】第１実施形態に係るロボット装置の説明図である。
【図２】第１実施形態に係るロボットハンドの斜視図である。
【図３】第１実施形態に係るロボット装置の制御系を示すブロック図である。
【図４】第１実施形態に係るハンド制御装置の機能ブロック図である。
【図５】第１実施形態に係るテーブルの一例を示す説明図である。
【図６】第１実施形態に係るモータ制御部の処理を説明するための図である。
【図７】第１実施形態に係るロボット制御方法を示すフローチャートである。
【図８】（ａ）及び（ｂ）は、第１実施形態に係るロボット制御方法を説明するための図である。
【図９】第２実施形態に係るテーブルの一例を示す説明図である。
【図１０】第３実施形態に係るロボットハンドの斜視図である。
【図１１】第３実施形態に係るテーブルの一例を示す説明図である。
【図１２】第４実施形態に係るロボット制御方法を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るロボット装置の説明図である。図１に示すロボット装置１０００は、ロボット１００と、ロボット１００を制御する制御部の一例であるロボット制御装置４００とを備える。ロボット１００は、産業用ロボットである。ロボット１００は、基台９００上に配置されている。ロボット１００は、ロボットアーム２００と、ロボットハンド３００とを有する。ロボットハンド３００は、ロボットアーム２００に取り付けられる。ロボット制御装置４００には、ロボット１００の動作を教示するための教示装置の一例であるティーチングペンダント７００が接続可能である。基台９００上には、例えば部品などのワークＷ１が載置されるワーク載置台Ｓ１、ワークＷ１の組み付け対象物であるワークＷ２を固定するワーク固定台Ｓ２が配置されている。本実施形態では、ワークＷ１は、凸部を有し、ワークＷ２は、ワークＷ１の凸部が嵌合する凹部を有する。
【００１０】
ロボット制御装置４００は、ロボット１００を制御することにより、ロボット１００のロボットハンド３００にワーク載置台Ｓ１上に載置されたワークＷ１を把持させる。ロボット制御装置４００は、ロボット１００を制御することにより、ロボットハンド３００がワークＷ１を把持完了後、所定の動作としてワークＷ１をワークＷ２に組み付ける動作をロボット１００に行わせ、物品を製造する。ロボット制御装置４００は、ロボットアーム２００を制御するアーム制御装置６００と、ロボットハンド３００を制御するハンド制御装置５００とを備えている。アーム制御装置６００とハンド制御装置５００とが互いに通信を行い、ロボット１００全体を制御する。
【００１１】
ロボットアーム２００は、垂直多関節のロボットアームであり、複数の関節で連結された複数のリンクを備える。根元側のリンクは基台９００に固定される。先端側のリンクには、ロボットハンド３００が装着される。各関節には、駆動源である不図示のモータと、モータの回転軸の回転量に応じた信号を、アーム制御装置６００に出力する不図示のロータリエンコーダとが配置されている。アーム制御装置６００が、ロータリエンコーダの計測値に基づいてモータをフィードバック制御することにより、ロボットハンド３００が目標の位置に移動するように、ロボットアーム２００の姿勢を制御する。これにより、ロボットハンド３００を、ワークＷ１を把持する位置、又はワークＷ１をワークＷ２に組み付ける位置に移動させることができる。
【００１２】
図２は、第１実施形態に係るロボットハンド３００の斜視図である。ロボットハンド３００は、ハンド本体部３５０と、開閉可能にハンド本体部３５０に支持された複数、例えば２つのフィンガ３５１，３５２と、を有する。
【００１３】
ハンド本体部３５０は、フィンガ３５１を駆動する駆動部の一例である駆動機構Ｊ１と、フィンガ３５２を駆動する駆動部の一例である駆動機構Ｊ２とを有する。フィンガ３５１，３５２は、例えば図１のワークＷ１を把持するのに用いられる。駆動機構Ｊ１は、モータ３１１と、モータ３１１の回転軸に固定されたピニオンギヤ３２１とを有する。フィンガ３５１は、ピニオンギヤ３２１と噛合するラック３６１を有する。駆動機構Ｊ２は、モータ３１２と、モータ３１２の回転軸に固定されたピニオンギヤ３２２とを有する。フィンガ３５２は、ピニオンギヤ３２２と噛合するラック３６２を有する。
【００１４】
モータ３１１の回転軸が回転することによってピニオンギヤ３２１が回転し、ピニオンギヤ３２１と噛合するラック３６１、即ちフィンガ３５１が、Ｘ１方向に直動する。モータ３１２の回転軸が回転することによってピニオンギヤ３２２が回転し、ピニオンギヤ３２２と噛合するラック３６２、即ちフィンガ３５２が、Ｘ１方向と平行なＸ２方向に直動する。各フィンガ３５１，３５２が互いに近接又は離間することで、ワークを把持又は解放することができる。フィンガ３５１，３５２によってワークの外側を把持する場合には、各フィンガ３５１，３５２を互いに近接させればよく、把持したこのワークを解放する場合には、各フィンガ３５１，３５２を互いに離間させればよい。また、フィンガ３５１，３５２によって例えばリング状のワークの内側を把持する場合には、各フィンガ３５１，３５２を互いに離間させればよく、把持したこのワークを解放する場合には、各フィンガ３５１，３５２を互いに近接させればよい。このように、フィンガ３５１，３５２にワークの内側を把持させるか外側を把持させるかによってフィンガ３５１，３５２の駆動方向が異なる。
【００１５】
モータ３１１には、ロータリエンコーダ３３１が設けられ、モータ３１２にはロータリエンコーダ３３２が設けられている。ロータリエンコーダ３３１は、モータ３１１の回転軸の回転量に応じた信号をハンド制御装置５００に出力する。ロータリエンコーダ３３２は、モータ３１２の回転軸の回転量に応じた信号をハンド制御装置５００に出力する。ロータリエンコーダ３３１，３３２は、インクリメンタル方式又はアブソリュート方式のエンコーダである。
【００１６】
図３は、第１実施形態に係るロボット装置の制御系を示すブロック図である。ロボット制御装置４００は、コンピュータで構成されている。以下、ロボット制御装置４００の構造の一例について説明する。本実施形態では、ロボット制御装置４００は、それぞれ独立したコンピュータで構成されたアーム制御装置６００とハンド制御装置５００とを有する。
【００１７】
アーム制御装置６００は、プロセッサとしてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）６０１を備える。アーム制御装置６００は、記憶部の一例として、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）６０２、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）６０３を備える。アーム制御装置６００は、入出力インタフェースであるＩ／Ｏ６０４と、ドライバユニット６０５と、を備える。ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３、Ｉ／Ｏ６０４、及びドライバユニット６０５は、互いに通信可能にバスで接続されている。
【００１８】
ＲＯＭ６０２には、ＣＰＵ６０１に各種演算処理を実行させるためのプログラム６１０が格納されている。ＲＡＭ６０３は、ＣＰＵ６０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。Ｉ／Ｏ６０４には、ハンド制御装置５００、ティーチングペンダント７００、データ書き換え可能なストレージである記憶装置８１０、通知部として画像を表示する表示装置８１５が接続可能である。なお、記憶装置８１０は、アーム制御装置６００が内蔵していてもよい。ドライバユニット６０５は、フィードバックされた不図示のロータリエンコーダからの信号を受け、ＣＰＵ６０１の指令に従い、図１に示すロボットアーム２００の各関節のモータに供給する電流を調整し、ロボットアーム２００の動作を制御する。
【００１９】
記憶装置８１０には、教示により作成されたロボットプログラムが格納され、ＣＰＵ６０１がロボットプログラムを読み出して解釈することにより、ロボット１００の軌道を生成する。ＣＰＵ６０１は、生成した軌道データに従って、ドライバユニット６０５に、ロボットアーム２００の各関節のモータのフィードバック制御に用いる目標値を示す指令を出力する。軌道データにロボットハンド３００に対する指令が含まれる場合は、ハンド制御装置５００に把持指令を示す番号のデータを出力する。
【００２０】
ハンド制御装置５００は、プロセッサとしてのＣＰＵ５０１と、記憶部の一例である、ＲＯＭ５０２及びＲＡＭ５０３と、入出力インタフェースであるＩ／Ｏ５０４と、ドライバユニット５０５と、を備える。ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、Ｉ／Ｏ５０４、及びドライバユニット５０５は、互いに通信可能にバスで接続されている。
【００２１】
ＲＯＭ５０２には、ＣＰＵ５０１に各種演算処理を実行させるためのプログラム５１０が格納されている。ＲＡＭ５０３は、ＣＰＵ５０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。Ｉ／Ｏ５０４には、アーム制御装置６００、データ書き換え可能なストレージである記憶装置８２０、記録ディスクドライブ８３０等が接続可能である。なお、記憶装置８２０は、ハンド制御装置５００が内蔵していてもよい。ドライバユニット５０５は、モータ３１１を駆動制御するモータドライバ５５１、及びモータ３１２を駆動制御するモータドライバ５５２を含む。
【００２２】
モータドライバ５５１には、モータ３１１、ロータリエンコーダ３３１及び電流センサ３４１が電気的に接続されている。モータドライバ５５１は、ロータリエンコーダ３３１を用いてフィードバック制御の一例であるフィンガ３５１の位置制御を行うことができ、電流センサ３４１を用いてフィードバック制御の一例であるフィンガ３５１の力制御を行うことができる。ロータリエンコーダ３３１は、モータ３１１の回転軸の回転量に応じた信号をモータドライバ５５１に出力する。電流センサ３４１は、モータ３１１に供給される電流に応じた信号をモータドライバ５５１に出力する。モータドライバ５５１は、ロータリエンコーダ３３１から入力を受けた信号のパルス数などをカウントすることにより、計測値である計測エンコーダ値を求めることができる。計測エンコーダ値は、フィンガ３５１の位置に応じた値である。モータドライバ５５１は、電流センサ３４１から入力を受けた信号の電圧レベルなどにより、計測値の一例である計測電流値を求めることができる。計測電流値は、フィンガ３５１に作用した力に応じた値でもある。モータドライバ５５１は、計測値と目標値との差に基づいてモータ３１１に供給する電流を調整することで、モータ３１１をフィードバック制御し、計測値を目標値に近づけることができる。具体的には、モータドライバ５５１は、位置制御を行うようにＣＰＵ５０１から指示された場合は、計測エンコーダ値と、目標値としてＣＰＵ５０１から入力を受けた目標エンコーダ値との差に基づいて、モータ３１１をフィードバック制御する。また、モータドライバ５５１は、力制御を行うようにＣＰＵ５０１から指示された場合は、計測電流値と、目標値としてＣＰＵ５０１から入力を受けた目標電流値との差に基づいて、モータ３１１をフィードバック制御する。
【００２３】
モータドライバ５５２には、モータ３１２、ロータリエンコーダ３３２及び電流センサ３４２が電気的に接続されている。モータドライバ５５２は、ロータリエンコーダ３３２を用いてフィードバック制御の一例であるフィンガ３５２の位置制御を行うことができ、電流センサ３４２を用いてフィードバック制御の一例であるフィンガ３５２の力制御を行うことができる。モータドライバ５５２もモータドライバ５５１と同様の制御を行うため、詳しい説明は省略する。
【００２４】
記録ディスクドライブ８３０は、記録ディスク８４０に記録された各種データやプログラム等を読み出すことができる。なお、本実施形態では、コンピュータによって読み取り可能な記録媒体がＲＯＭ５０２，６０２であり、ＲＯＭ５０２，６０２にプログラム５１０，６１０が格納されるが、これに限定するものではない。プログラム５１０，６１０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム５１０，６１０を供給するための記録媒体としては、記録ディスク８４０等を用いてもよい。具体的に例示すると、記録媒体として、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。光ディスクは、例えばＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ＣＤ−Ｒである。不揮発性メモリは、例えばＵＳＢメモリ、メモリカード、ＲＯＭである。
【００２５】
図４は、第１実施形態に係るハンド制御装置５００の機能ブロック図である。図３に示すＣＰＵ５０１は、プログラム５１０を実行することにより、図４に示す指令部５３０、モータ制御部５４１及びモータ制御部５４２として機能する。
【００２６】
ＲＡＭ５０３には、図３の記憶装置８２０から読み出されたテーブル５１１が記憶される。テーブル５１１は、例えばロボット１００の教示時に作業者によって作成され、予め記憶装置８２０に格納されている。なお、テーブル５１１は、外部コンピュータなどから取得するようにしてもよい。指令部５３０は、ＲＡＭ５０３に記憶されたテーブル５１１を参照し、図３のアーム制御装置６００から入力を受けた把持指令に従って各フィンガ３５１，３５２を駆動するモータ３１１，３１２の制御に用いる各種パラメータを決定する。指令部５３０は、決定したパラメータを各モータ制御部５４１，５４２に出力する。モータ制御部５４１は、指令部５３０から入力を受けたパラメータに基づいて目標値を求め、目標値を示す制御信号をモータドライバ５５１に出力する。モータ制御部５４２は、指令部５３０から入力を受けたパラメータに基づいて目標値を求め、目標値を示す制御信号をモータドライバ５５２に出力する。モータドライバ５５１は、目標値とフィードバックされる計測値との差に基づき、計測値を目標値に近づけるように、モータ３１１をフィードバック制御する。モータドライバ５５２は、目標値とフィードバックされる計測値との差に基づき、計測値を目標値に近づけるように、モータ３１２をフィードバック制御する。
【００２７】
ロボット制御装置４００は、モータ３１１，３１２を位置制御又は力制御することが可能である。したがって、位置制御を行う場合、モータ制御部５４１，５４２は、目標値として目標エンコーダ値Ａｒｅｆ１，Ａｒｅｆ２をモータドライバ５５１，５５２へ出力する。モータドライバ５５１，５５２は、目標エンコーダ値Ａｒｅｆ１，Ａｒｅｆ２と、ロータリエンコーダ３３１，３３２からの信号に基づいて求めた計測エンコーダ値Ａ１，Ａ２との差に基づき、モータ３１１，３１２をフィードバック制御する。モータドライバ５５１，５５２は、計測エンコーダ値Ａ１，Ａ２をモータ制御部５４１，５４２へ出力する。力制御を行う場合、目標値として目標電流値Ｉｒｅｆ１，Ｉｒｅｆ２をモータドライバ５５１，５５２へ出力する。モータドライバ５５１，５５２は、目標電流値Ｉｒｅｆ１，Ｉｒｅｆ２と、電流センサ３４１，３４２からの信号に基づいて求めた計測電流値Ｉ１，Ｉ２との差に基づき、モータ３１１，３１２をフィードバック制御する。モータドライバ５５１，５５２は、計測電流値Ｉ１，Ｉ２をモータ制御部５４１，５４２へ出力する。
【００２８】
以下、モータ３１１，３１２を位置制御する場合を例にテーブル５１１について具体的に説明する。図５は、第１実施形態に係るテーブル５１１の一例を示す説明図である。テーブル５１１では、ロボットハンド３００の制御の全体的な設定として、把持指令の番号に対し、制御内容、把持パターン、及び切換条件が対応付けされている。また、テーブル５１１では、駆動機構Ｊ１の制御の設定として、把持指令の番号に対し、フィンガ３５１の目標位置Ｘｒｅｆ１、目標位置Ｘｒｅｆ１に対する幅Ｅａ１、及び目標位置Ｘｒｅｆ１に対する幅Ｅｂ１が対応付けされている。また、テーブル５１１では、駆動機構Ｊ２の制御の設定として、把持指令の番号に対し、フィンガ３５２の目標位置Ｘｒｅｆ２、目標位置Ｘｒｅｆ２に対する幅Ｅａ２、及び目標位置Ｘｒｅｆ２に対する幅Ｅｂ２が対応付けされている。
【００２９】
制御内容は、各駆動機構Ｊ１，Ｊ２のモータを位置制御するか力制御するかを示す情報である。位置制御は、フィンガの位置を目標位置に近づけるフィードバック制御のことである。力制御は、フィンガに作用する力を目標力に近づけるフィードバック制御のことである。図５において、位置制御を「Ｐ」、力制御を「Ｆ」とし、各駆動機構Ｊ１，Ｊ２のモータそれぞれに対して「Ｐ」又は「Ｆ」の制御が設定される。これら制御の組み合わせのパターンは、「ＰＰ」、「ＦＰ」の２種類であるのが好ましい。「ＰＰ」は、駆動機構Ｊ１，Ｊ２のモータ全てを位置制御することを示し、「ＦＰ」は、駆動機構Ｊ１のモータを力制御、駆動機構Ｊ２のモータを位置制御することを示す。
【００３０】
把持パターンには、フィンガ３５１，３５２にワークの外側を把持させるパターンＧ１と、フィンガ３５１，３５２にワークの内側を把持させるパターンＧ２の２パターンがある。
【００３１】
切換条件は、フィンガの位置制御に関して、幅Ｅａ１，Ｅａ２から幅Ｅｂ１，Ｅｂ２へ切り換える条件であり、本実施形態では、条件「Ａ」と条件「Ｂ」とがある。条件「Ａ」は、「フィンガの位置決めが完了した時点から所定時間（例えば０秒）が経過」である。条件「Ｂ」は、「アーム制御装置６００からの切換信号を受信」である。条件「Ｂ」の場合、アーム制御装置６００は、ロボットプログラムを解釈することにより、切換信号を送信するタイミングを決定することになる。アーム制御装置６００は、切換信号として、例えばワークの搬送、又は組立状態を信号として送信する。
【００３２】
フィンガの目標位置Ｘｒｅｆ１，Ｘｒｅｆ２は、フィンガを基準位置に対してストロークさせる移動量である。幅Ｅａ１，Ｅａ２は、目標位置Ｘｒｅｆ１，Ｘｒｅｆ２に対して位置決めが完了したとみなす幅である。よって、フィンガ３５１，３５２にワークＷ１を把持させる場合、Ｘｒｅｆ１±Ｅａ１がフィンガ３５１の位置決めが完了する範囲であり、Ｘｒｅｆ２±Ｅａ２がフィンガ３５２の位置決めが完了する範囲である。以下、Ｘｒｅｆ１±Ｅａ１，Ｘｒｅｆ２±Ｅａ２を「完了範囲」ともいう。完了範囲であるＸｒｅｆ１±Ｅａ１は、目標位置Ｘｒｅｆ１を含む範囲であり、完了範囲であるＸｒｅｆ２±Ｅａ２は、目標位置Ｘｒｅｆ２を含む範囲である。例えば、フィンガ３５１の目標位置Ｘｒｅｆ１を２０［ｍｍ］、幅Ｅａ１を５［μｍ］とした場合、２０±０．００５［ｍｍ］がフィンガ３５１の位置決めの完了範囲となる。即ち、モータ３１１の計測エンコーダ値から換算されるフィンガ３５１の位置が１９．９９５［ｍｍ］〜２０．００５［ｍｍ］の範囲にあるとき、フィンガ３５１の位置決めが完了する。また、完了範囲内にフィンガ３５１，３５２が所定の時間、位置すれば位置決め完了と判定させてもよい。
【００３３】
幅Ｅｂ１，Ｅｂ２は、フィンガの位置決めが完了した後、ロボット１００に行わせる所定の動作時、例えばワークＷ１をワークＷ２に組み付ける動作時に、どれだけフィンガの位置がずれてもよいかを決める幅である。よって、フィンガ３５１，３５２に把持させたワークＷ１をワークＷ２に組み付ける場合、Ｘｒｅｆ１±Ｅｂ１がフィンガ３５１に許容される範囲であり、Ｘｒｅｆ２±Ｅｂ２がフィンガ３５２に許容される範囲である。以下、Ｘｒｅｆ１±Ｅｂ１，Ｘｒｅｆ２±Ｅｂ２を「許容範囲」ともいう。許容範囲であるＸｒｅｆ１±Ｅｂ１は、目標位置Ｘｒｅｆ１を含む範囲であり、許容範囲であるＸｒｅｆ２±Ｅｂ２は、目標位置Ｘｒｅｆ２を含む範囲である。許容範囲であるＸｒｅｆ１±Ｅｂ１，Ｘｒｅｆ２±Ｅｂ２は、完了範囲であるＸｒｅｆ１±Ｅａ１，Ｘｒｅｆ２±Ｅａ２とは異なる範囲である。例えば、フィンガ３５１の目標位置Ｘｒｅｆ１を２０［ｍｍ］、幅Ｅｂ１を１００［μｍ］とした場合、２０［ｍｍ］±０．１［ｍｍ］がフィンガ３５１の許容範囲となる。即ち、モータ３１１のエンコーダ値から換算されるフィンガ３５１の位置が１９．９［ｍｍ］〜２０．１［ｍｍ］の許容範囲内にあるとき、ロボット１００による組み付け動作が続行される。フィンガ３５１の位置が１９．９［ｍｍ］〜２０．１［ｍｍ］の許容範囲を外れたとき、エラーとして、ロボット１００の動作を停止させる。
【００３４】
図４に示す指令部５３０は、テーブル５１１を参照し、アーム制御装置６００から入力を受けた把持指令の番号に対応する制御内容（「Ｐ」又は「Ｆ」）、目標位置Ｘｒｅｆ１、幅Ｅａ１、幅Ｅｂ１の情報を、モータ制御部５４１へ送る。同様に、指令部５３０は、テーブル５１１を参照し、アーム制御装置６００から入力を受けた把持指令の番号に対応する制御内容（「Ｐ」又は「Ｆ」）、目標位置Ｘｒｅｆ２、幅Ｅａ２、幅Ｅｂ２の情報を、モータ制御部５４２へ送る。
【００３５】
図６は、第１実施形態に係るモータ制御部５４１の処理を説明するための図である。モータ制御部５４１は、指令部５３０から受けた制御内容が「Ｐ」である場合には、フィンガ３５１の目標位置Ｘｒｅｆ１を、目標エンコーダ値Ａｒｅｆ１に換算する。この目標エンコーダ値Ａｒｅｆ１が、モータドライバ５５１に指令する目標値となる。モータ制御部５４１は、目標エンコーダ値Ａｒｅｆ１を、モータドライバ５５１に出力する。目標エンコーダ値Ａｒｅｆ１を受けたモータドライバ５５１は、計測エンコーダ値Ａ１と目標エンコーダ値Ａｒｅｆ１との差に基づいてモータ３１１をフィードバック制御する。モータ制御部５４１は、フィンガにワークＷ１を把持させる際には、計測エンコーダ値Ａ１を位置に換算した値がＸｒｅｆ１±Ｅａ１である完了範囲Ｒ１０内にあるか否かを判定する。モータ制御部５４１は、ワークＷ１をワークＷ２に組み付ける際には、計測エンコーダ値を位置に換算した値が、完了範囲Ｒ１０とは異なるＸｒｅｆ１±Ｅｂ１である許容範囲Ｒ２０内にあるか否かを判定する。本実施形態では、許容範囲Ｒ２０は、完了範囲Ｒ１０を包含する、完了範囲Ｒ１０よりも広い範囲である。モータ制御部５４２についても、モータ制御部５４１と同様の処理をするため、説明を省略する。
【００３６】
ここで、幅Ｅａ１をエンコーダ値に換算した値をＢａ１、幅Ｅｂ１をエンコーダ値に換算した値をＢｂ１とする。よって、Ｘｒｅｆ１±Ｅａ１である完了範囲Ｒ１０と、Ａｒｅｆ１±Ｂａ１である範囲（第１範囲）Ｒ１とは対応関係にある。Ｘｒｅｆ１±Ｅｂ１である許容範囲Ｒ２０と、Ａｒｅｆ１±Ｂｂ１である範囲（第２範囲）Ｒ２とは対応関係にある。したがって、計測エンコーダ値をフィンガ３５１の位置に換算した値が完了範囲Ｒ１０内にあるか否かを判定する処理は、計測エンコーダ値が範囲Ｒ１内にあるか否かを判定していることと等価である。同様に、計測エンコーダ値をフィンガ３５１の位置に換算した値が許容範囲Ｒ２０内にあるか否かを判定する処理は、計測エンコーダ値が範囲Ｒ２内にあるか否かを判定していることと等価である。本実施形態では、範囲Ｒ２は、範囲Ｒ１を包含する、範囲Ｒ１よりも広い範囲である。完了範囲Ｒ１０、即ち範囲Ｒ１は、教示などで予め設定される範囲であり、許容範囲Ｒ２０、即ち範囲Ｒ２は、教示などで予め設定される範囲である。
【００３７】
ロボット制御装置４００によるロボット１００の制御方法、即ちロボット１００を制御して物品を製造する製造方法について具体的に説明する。駆動機構Ｊ２の制御は、駆動機構Ｊ１の制御と同様であるため、説明を省略する。そして、アーム制御装置６００が出力する把持指令の番号が「２」である場合を例に説明する。図７は、第１実施形態に係るロボット制御方法を示すフローチャートである。図８（ａ）及び図８（ｂ）は、第１実施形態に係るロボット制御方法を説明するための図である。
【００３８】
アーム制御装置６００は、軌道データに従い、ロボットアーム２００の動作を制御して、ロボットハンド３００にワークＷ１を把持させることが可能な位置まで、ロボットハンド３００を移動させる。アーム制御装置６００は、把持指令を示す番号の情報を、ハンド制御装置５００に出力する。
【００３９】
ハンド制御装置５００は、把持指令の番号に対応したパラメータを、ＲＡＭ５０３に記憶されたテーブル５１１から読み出す（Ｓ１１）。パラメータは、把持指令の番号毎に対応した、制御内容、把持パターン、切換条件、各駆動機構Ｊ１，Ｊ２の目標位置Ｘｒｅｆ１，Ｘｒｅｆ２、幅Ｅａ１，Ｅａ２、幅Ｅｂ１，Ｅｂ２の情報である。
【００４０】
ハンド制御装置５００は、アーム制御装置６００からの把持指令を実行して、フィンガ３５１による把持動作を開始する（Ｓ１２）。即ち、ハンド制御装置５００は、読み出したパラメータに従って、フィンガ３５１にワークＷ１を把持させる動作を開始させる。具体的には、ハンド制御装置５００は、モータ３１１の駆動に応じた計測エンコーダ値Ａ１と、目標エンコーダ値Ａｒｅｆ１との差に基づいて、モータ３１１をフィードバック制御して、フィンガ３５１にワークＷ１を把持させる動作を開始させる。フィンガ３５１は、Ｘ１方向に駆動され、ワークＷ１に接触する。把持指令の番号が「２」であるので、目標位置Ｘｒｅｆ１は２０［ｍｍ］である。よって、フィンガ３５１の位置決めの完了範囲Ｒ１０は、Ｘｒｅｆ１±Ｅａ１＝２０［ｍｍ］±５［μｍ］である。
【００４１】
ハンド制御装置５００は、ロータリエンコーダ３３１の信号に基づく計測エンコーダ値からフィンガ３５１の位置を求め、求めた位置が、完了範囲Ｒ１０内にあるかどうかを判定する（Ｓ１３）。求めた位置が完了範囲Ｒ１０内に含まれていなければ（Ｓ１３：ＮＯ）、ステップＳ１３を繰り返し、求めた位置が完了範囲Ｒ１０内に含まれれば（Ｓ１３：ＹＥＳ）、次のステップＳ１４へ進む。図８（ａ）には、フィンガ３５１が目標位置Ｘｒｅｆ１に対して幅Ｅａ１内に収まった状態を図示している。これにより、ワークＷ１はフィンガによって所定の力で把持されることになる。
【００４２】
なお、このステップＳ１３における判定処理は、これに限定するものではなく、例えば、エンコーダ値をフィンガの位置に変換せずに、計測エンコーダ値Ａ１が、目標エンコーダ値Ａｒｅｆ１を含む範囲Ｒ１内にあるかどうかを判定してもよい。計測エンコーダ値Ａ１が範囲Ｒ１内となれば、フィンガ３５１の位置は完了範囲Ｒ１０内となり、計測エンコーダ値Ａ１が範囲Ｒ１から外れていれば、フィンガ３５１の位置は完了範囲Ｒ１０から外れていることになる。即ち、計測エンコーダ値Ａ１が目標エンコーダ値Ａｒｅｆ１を含む範囲Ｒ１内であれば、判定指標が何であれ、次のステップＳ１４へ進むことになる。またさらに精度を求めるならば、フィンガが完了範囲内に所定の時間、位置するという条件を判定条件に加えても良い。
【００４３】
以上の制御により、ワークＷ１は、フィンガ３５１，３５２に高精度に位置決めされた状態で把持される。ステップＳ１４において、ハンド制御装置５００は、把持動作が完了したことを示す情報を、アーム制御装置６００へ出力する。アーム制御装置６００は、この情報を受けて、フィンガに把持させたワークＷ１をワークＷ２に組み付ける所定の動作を開始する位置（図８（ｂ））へ、ロボットハンド３００を移動させる。
【００４４】
ワークＷ１をワークＷ２に組み付ける際、ワークＷ１を把持するフィンガ３５１には、図８（ｂ）に示すように、組み付けＸ３方向とは反対の方向に、ワークＷ２から組み付け力Ｆを受ける。これにより、フィンガ３５１は、Ｘ３方向とは反対の方向に移動しようとする。フィンガ３５１を駆動するモータ３１１は、フィンガ３５１が目標位置Ｘｒｅｆ１に移動するようにフィードバック制御されているが、組み付け力Ｆによってずれが生じる。このフィンガ３５１のずれは、組み付け精度に大きな影響を及ぼすものではなく、ワークＷ１をワークＷ２に組み付ける際に生じる必然的なものである。
【００４５】
そこで、本実施形態では、ハンド制御装置５００は、読み出した切換条件、把持指令の番号「２」では切換条件「Ｂ」に従って、幅Ｅａ１である５［μｍ］から幅Ｅｂ１である１００［μｍ］へ計測値の判定に用いる範囲を切り換える（Ｓ１５）。アーム制御装置６００は、組み付けを開始する位置へロボットハンド３００の移動が完了したとき、ハンド制御装置５００に信号を出力する。番号「２」の場合、切換条件「Ｂ」であるので、ハンド制御装置５００は、アーム制御装置６００から信号の入力を受けるまでの間、待機する。ハンド制御装置５００は、アーム制御装置６００からの信号の入力を受けて、判定に用いる範囲を、完了範囲Ｒ１０から許容範囲Ｒ２０に切り換える。
【００４６】
アーム制御装置６００は、ロボット１００、具体的にはロボットアーム２００に、ワークＷ１をワークＷ２に組み付ける所定の動作を開始させる（Ｓ１６）。即ち、アーム制御装置６００は、フィンガにワークＷ１を把持させる動作を開始した後であって、計測エンコーダ値Ａ１が目標エンコーダ値Ａｒｅｆ１を含む範囲Ｒ１内となって以降、組み付け動作をロボットアーム２００に開始させる。図８（ｂ）の例では、Ｘ１方向と平行なＸ３方向にワークＷ１を移動させてワークＷ１をワークＷ２に組み付ける。
【００４７】
ハンド制御装置５００は、計測エンコーダ値Ａ１をフィンガ３５１の位置に換算し、換算した値が許容範囲Ｒ２０内かどうかを判定する（Ｓ１７）。フィンガ３５１の位置が許容範囲Ｒ２０内であれば（Ｓ１７：ＹＥＳ）、エラーは無いので、ステップＳ１８へ進む。フィンガ３５１の位置が許容範囲Ｒ２０を外れた場合（Ｓ１７：ＮＯ）、ハンド制御装置５００は、アーム制御装置６００へエラー信号を出力し、アーム制御装置６００はロボット１００の動作、即ちロボットアーム２００の動作を停止する（Ｓ１９）。エラー信号を受信したアーム制御装置６００は、図３に示す表示装置８１５にその旨を示す画像を表示させて、ユーザにエラーが発生したことを通知するようにしてもよい。ステップＳ１８では、ハンド制御装置５００は、次の把持動作を示す把持指令を受信したかどうかを判定する。ハンド制御装置５００は、次の把持指令を受信した場合（Ｓ１８：ＹＥＳ）、次の把持指令を実行するため、今の把持指令を終了する。ハンド制御装置５００は、次の把持指令を受信していない場合（Ｓ１８：ＮＯ）、ステップＳ１７に戻る。
【００４８】
なお、このステップＳ１７における判定処理は、これに限定するものではなく、例えば、フィンガの位置をエンコーダ値に変換せずに、計測エンコーダ値Ａ１が、図６に示す目標エンコーダ値Ａｒｅｆ１を含む範囲Ｒ２内にあるかどうかを判定してもよい。計測エンコーダ値Ａ１が範囲Ｒ２内であれば、フィンガ３５１の位置は許容範囲Ｒ２０内となり、計測エンコーダ値Ａ１が範囲Ｒ２から外れた場合には、フィンガ３５１の位置は許容範囲Ｒ２０から外れていることになる。即ち、計測エンコーダ値Ａ１が目標エンコーダ値Ａｒｅｆ１を含む範囲Ｒ２を外れなければ、判定指標が何であれ、ステップＳ１８へ進み、計測エンコーダ値Ａ１が範囲Ｒ２を外れる場合、判定指標が何であれ、ステップＳ１９へ進むことになる。
【００４９】
以上、ロボット制御装置４００は、ロボット１００にワークＷ１をワークＷ２に組み付ける所定の動作を開始させて以降、計測エンコーダ値Ａ１が、範囲Ｒ２を外れなければ、組み付け動作が終了するまで、ロボット１００に組み付け動作を行わせる。また、ロボット制御装置４００は、ロボット１００に組み付け動作を開始させて以降、計測エンコーダ値が範囲Ｒ２を外れる場合、ロボット１００に組み付け動作を停止させる。
【００５０】
このように、ワークＷ１の組み付け時には、フィンガの位置判定を行う範囲を範囲Ｒ１から範囲Ｒ２へ変更することにより、ワークＷ１の組み付け時に不要なエラーでロボット１００による物品の生産を停止することが少なくなる。よって、物品の生産性が向上する。計測エンコーダ値が範囲Ｒ２を外れる場合、ロボット１００に動作を停止させるので、信頼性が向上する。
【００５１】
また、ワークＷ１の組み付け時にフィンガ３５１の位置の許容範囲が広がるので、ロボットハンド３００を軽量化することができ、高精度にワークＷ１をワークＷ２に組み付けることができる。
【００５２】
［第２実施形態］
第２実施形態に係るロボット制御について説明する。図９は、第２実施形態に係るテーブルの一例を示す説明図である。なお、第２実施形態におけるロボット装置の構成は、第１実施形態で説明した図１〜図４と同様であるため、説明を省略する。上述の第１実施形態では、幅Ｅｂ１、即ち許容範囲Ｒ２０（範囲Ｒ２）を、教示などにより予め作業者等が設定する場合について説明した。本第２実施形態では、フィンガ３５１に把持動作を行わせるときに幅Ｅｂ１、即ち許容範囲Ｒ２０（範囲Ｒ２）を自動で設定する場合について説明する。
【００５３】
第２実施形態では、図５に示すテーブル５１１の代わりに図９に示すテーブル５１１Ａを用いる。テーブル５１１Ａについて具体的に説明する。テーブル５１１Ａは、図５に示すテーブル５１１と異なり、幅Ｅｂ１（Ｅｂ２）を設定する項目がない。なお、切換条件として、条件「Ｃ」が追加されていてもよい。条件「Ｃ」は、「幅Ｅａ１で位置制御し続ける」である。
【００５４】
ロボット制御装置４００の制御方法について具体的に説明する。駆動機構Ｊ２の制御は、駆動機構Ｊ１の制御と同様であるため、説明を省略する。そして、アーム制御装置６００が出力する把持指令の番号が「４」である場合を例に説明する。第２実施形態では、図７に示すフローチャートのうち、ステップＳ１５における切換の処理が第１実施形態と異なる。以下、このステップＳ１５の処理について説明する。
【００５５】
第２実施形態では、ハンド制御装置５００は、幅Ｅｂ１を求め、読み出した切換条件、把持指令の番号「４」では切換条件「Ｂ」に従って、幅Ｅａ１である５［μｍ］から求めた幅Ｅｂ１へ計測値の判定に用いる範囲を切り換える。アーム制御装置６００は、組み付けを開始する位置へロボットハンド３００の移動が完了したとき、ハンド制御装置５００に信号を出力する。番号「２」の場合、切換条件「Ｂ」であるので、ハンド制御装置５００は、アーム制御装置６００から信号の入力を受けるまでの間、待機する。ハンド制御装置５００は、アーム制御装置６００からの信号の入力を受けて、判定に用いる範囲を、完了範囲Ｒ１０から許容範囲Ｒ２０に切り換える。
【００５６】
以下、幅Ｅｂ１を求める処理について具体的に説明する。各駆動機構Ｊ１，Ｊ２の減速比をＮ、各モータ３１１，３１２のトルク定数をＫｔ、ピニオンギヤ３２１，３２２のギヤ半径をＲとする。フィンガ３５１に把持動作を行わせたときのプロファイルから、ワークＷ１及びフィンガ３５１の剛性を計算し、幅Ｅｂ１を計算することができる。プロファイルは、モータ３１１の計測電流値Ｉ１と計測エンコーダ値Ａ１の時刻歴応答である。このプロファイルのうち、フィンガ３５１がワークＷ１に接触するときの計測エンコーダ値Ａ１をＡ１Ｏとする。エンコーダ値Ａ１Ｏは、計測電流値Ｉ１の変化から求めることができる。例えば、予めフィンガ３５１がワークＷ１に接触したと判定する計測電流値Ｉ１の値を閾値として設定しておき、計測電流値Ｉ１がその閾値を超えたときに接触したと判定し、そのときの計測エンコーダ値Ａ１をＡ１Ｏとすればよい。フィンガ３５１の位置決めが完了するときの計測電流値Ｉ１をＩ１１、計測エンコーダ値Ａ１をＡ１１とする。ワークＷ１及びフィンガ３５１の剛性係数をＫとすると、剛性係数Ｋは、式（１）で示される。
Ｋ＝Ｎ×Ｋｔ×Ｉ１１／（Ｒ×Δｘ）    （１）
【００５７】
ただし、Δｘは、エンコーダ値Ａ１１から換算されるフィンガ３５１の位置ｘ１とエンコーダ値Ａ１Ｏから換算されるフィンガ３５１の位置ｘＯと差である。つまり、把持力によるフィンガ３５１の変位量である。
【００５８】
最大電流値をＩｍａｘとし、幅Ｅｂ１は、式（２）で示される。
Ｅｂ１＝Ｎ×Ｋｔ×Ｉｍａｘ／（Ｒ×Ｋ）    （２）
【００５９】
式（１）と式（２）により、幅Ｅｂ１は、式（３）で示される。
Ｅｂ１＝Δｘ×Ｉｍａｘ／Ｉ１１    （３）
【００６０】
最大電流値Ｉｍａｘは、予め設定される定数であり、例えば教示者がモータ３１１の性能に応じて決めておけばよい。なお、フィンガ３５１の変位量Δｘは、計測電流値Ｉ１と計測エンコーダ値Ａ１のプロファイルからハンド制御装置５００が求めるようにしてもよいが、予め実験などを行って求めておき、定数として設定してもよい。
【００６１】
本実施形態では、ハンド制御装置５００は、幅Ｅｂ１を、計測エンコーダ値Ａ１が範囲Ｒ１となった時、即ちフィンガ３５１の位置決めが完了したときの電流値Ｉ１１に応じて設定する。そして、ハンド制御装置５００は、第１実施形態と同様、幅Ｅｂ１から、範囲Ｒ２に対応する許容範囲Ｒ２０を求める。このように、教示者が幅Ｅｂ１を直接設定する必要がないので、教示者の手間を省くことができる。
【００６２】
以上、第２実施形態においても、ワークＷ１の組み付け時には、フィンガの位置判定を行う範囲を範囲Ｒ１から範囲Ｒ２へ変更することにより、ワークＷ１の組み付け時に不要なエラーでロボット１００による物品の生産を停止することが少なくなる。よって、物品の生産性が向上する。計測エンコーダ値が範囲Ｒ２を外れる場合、ロボット１００に動作を停止させるので、信頼性が向上する。
【００６３】
また、ワークＷ１の組み付け時にフィンガ３５１の位置の許容範囲が広がるので、ロボットハンド３００を軽量化することができ、高精度にワークＷ１をワークＷ２に組み付けることができる。
【００６４】
［第３実施形態］
第３実施形態に係るロボット制御について説明する。第１及び第２実施形態では、フィンガの位置に関して判定処理を行う場合について説明したが、第３実施形態では、フィンガに作用する力に関して判定処理を行う。第３実施形態では、ロボットアーム及びロボット制御装置は、第１実施形態と同様であるため、説明を省略する。第３実施形態では、ロボットハンドの構成、及びテーブルが第１実施形態と異なる。図１０は、第３実施形態に係るロボットハンドの斜視図である。図１１は、第３実施形態に係るテーブルの一例を示す説明図である。
【００６５】
図１０に示すように、第３実施形態のロボットハンド３００Ｂは、第１実施形態と同様、ハンド本体部３５０と、２つのフィンガ３５１，３５２とを有する。更に、第３実施形態のロボットハンド３００Ｂは、フィンガ３５１に設けられた力センサ３９１を有する。フィンガ３５１に力センサ３９１を設けたことにより、フィンガ３５１に作用する把持方向であるＸ１方向の力を計測することができる。力センサ３９１は、歪ゲージ、又は圧電素子等である。
【００６６】
本実施形態では、図３に示すハンド制御装置５００のモータドライバ５５１は、力センサから入力を受けた信号により得られる計測力と目標値である目標把持力との差に基づき、モータ３１１をフィードバック制御する。計測値は、フィンガ３５１に作用した力に応じた値である。
【００６７】
第３実施形態では、図５に示すテーブル５１１の代わりに、図１１に示すテーブル５１１Ｂを用いる。テーブル５１１Ｂについて具体的に説明する。テーブル５１１Ｂは、図５に示すテーブル５１１と異なり、目標把持力であるＦｒｅｆ１、目標把持力Ｆｒｅｆ１に対する幅Ｅｃ１、及び目標把持力Ｆｒｅｆ１に対する幅Ｅｄ１が追加されている。以下、把持指令の番号が「６」である場合について、フィンガ３５１を駆動する駆動機構Ｊ１を例に説明する。
【００６８】
目標把持力Ｆｒｅｆ１は、フィンガ３５１に作用する力の目標値である。幅Ｅｃは、目標把持力Ｆｒｅｆ１に対して位置決めが完了したとみなす幅である。よって、フィンガ３５１，３５２にワークＷ１を把持させる場合、Ｆｒｅｆ１±Ｅｃ１がフィンガ３５１の位置決めが完了する第１範囲である。Ｆｒｅｆ１±Ｅｃ１を「完了範囲」ともいう。完了範囲であるＦｒｅｆ１±Ｅｃ１は、目標把持力Ｆｒｅｆ１を含む範囲である。例えば、フィンガ３５１の目標把持力Ｆｒｅｆ１を１０［Ｎ］、幅Ｅｃ１を２［Ｎ］とした場合、１０±２［Ｎ］がフィンガ３５１の位置決めの完了範囲となる。即ち、力センサ３９１が出力する信号から、力の値である計測力が求まる。計測力が８［Ｎ］〜１２［Ｎ］の範囲にあるとき、フィンガ３５１の位置決めが完了する。
【００６９】
幅Ｅｄ１は、フィンガ３５１の位置決めが完了した後、ロボット１００に行わせる所定の動作時、例えばワークＷ１をワークＷ２に組み付ける動作時に、どれだけフィンガに作用する力がずれてもよいかを決める幅である。よって、フィンガ３５１，３５２に把持させたワークＷ１をワークＷ２に組み付ける場合、Ｆｒｅｆ１±Ｅｄ１がフィンガ３５１に許容される第２範囲である。以下、Ｆｒｅｆ１±Ｅｄ１を「許容範囲」ともいう。
【００７０】
許容範囲であるＦｒｅｆ１±Ｅｄ１は、目標把持力Ｆｒｅｆ１を含む範囲である。許容範囲であるＦｒｅｆ１±Ｅｄ１は、完了範囲であるＦｒｅｆ１±Ｅｃ１とは異なる範囲である。例えば、フィンガ３５１の目標把持力Ｆｒｅｆ１を１０［Ｎ］、幅Ｅｄ１を５［Ｎ］とした場合、１０［Ｎ］±５［Ｎ］がフィンガ３５１の許容範囲となる。即ち、フィンガ３５１に作用する力が５［Ｎ］〜１５［Ｎ］の許容範囲内にあるとき、ロボットによる組み付け動作が続行される。フィンガ３５１に作用する力が５［Ｎ］〜１５［Ｎ］の許容範囲を外れたとき、エラーとして、ロボットの動作を停止させる。
【００７１】
即ち、本第３実施形態では、ロボット制御装置４００は、第１実施形態において説明した図７のフローチャートに従ってロボットを制御するが、ステップＳ１３及びステップＳ１７の判定処理が第１実施形態と異なる。以下、第３実施形態におけるステップＳ１３及びステップＳ１７の判定処理について説明する。
【００７２】
ステップＳ１３において、ハンド制御装置５００は、力センサ３９１の信号に基づく計測力が、１０［Ｎ］±２［Ｎ］である、フィンガ３５１の位置決めの完了範囲内にあるかどうかを判定する。計測力が完了範囲内に含まれていなければ（Ｓ１３：ＮＯ）、ステップＳ１３を繰り返し、計測力が完了範囲内に含まれれば（Ｓ１３：ＹＥＳ）、次のステップＳ１４へ進む。これにより、フィンガ３５１によるワークＷ１の把持が完了する。この制御により、ワークＷ１は、フィンガ３５１，３５２に高精度に位置決めされた状態で把持される。
【００７３】
ステップＳ１７において、ハンド制御装置５００は、力センサ３９１の信号に基づく計測力が、１０［Ｎ］±５［Ｎ］である許容範囲内かどうかを判定する。計測力が許容範囲内であれば（Ｓ１７：ＹＥＳ）、エラーは無いので、ステップＳ１８へ進む。計測力が許容範囲を外れた場合（Ｓ１７：ＮＯ）、ハンド制御装置５００は、アーム制御装置６００へエラー信号を出力し、アーム制御装置６００はロボットの動作、即ちロボットアーム２００の動作を停止する（Ｓ１９）。エラー信号を受信したアーム制御装置６００は、図３に示す表示装置８１５にその旨を示す画像を表示させて、ユーザにエラーが発生したことを通知するようにしてもよい。
【００７４】
以上、第３実施形態では、ロボット制御装置４００は、ロボット１００にワークＷ１をワークＷ２に組み付ける所定の動作を開始させて以降、計測力が、許容範囲を外れなければ、組み付け動作が終了するまで、ロボット１００に組み付け動作を行わせる。また、ロボット制御装置４００は、ロボット１００に組み付け動作を開始させて以降、計測力が許容範囲を外れる場合、ロボットに組み付け動作を停止させる。
【００７５】
このように、ワークＷ１の組み付け時には、フィンガの力判定を行う範囲を変更することにより、ワークＷ１の組み付け時に不要なエラーでロボットによる物品の生産を停止することが少なくなる。よって、物品の生産性が向上する。計測力が許容範囲を外れる場合、ロボットの動作を停止させるので、信頼性が向上する。
【００７６】
また、ワークＷ１の組み付け時にフィンガ３５１に作用する力の許容範囲が広がるので、ロボットハンド３００Ｂを軽量化することができ、高精度にワークＷ１をワークＷ２に組み付けることができる。
【００７７】
なお、本第３実施形態では、力センサ３９１の値を用いて力制御する場合について述べたが、第１実施形態と同様、モータ３１１の電流値を用いてもよい。
【００７８】
［第４実施形態］
第４実施形態に係るロボット制御について説明する。図１２は、第４実施形態に係るロボット制御方法を示すフローチャートである。なお、第４実施形態におけるロボット装置の構成は、第１実施形態で説明した図１〜図４と同様であるため、説明を省略する。また、テーブルは、第２実施形態で説明した図９に示すテーブル５１１Ａを用いるものとして説明する。更に、駆動機構Ｊ２の制御は、駆動機構Ｊ１の制御と同様であるため、説明を省略する。そして、アーム制御装置６００が出力する把持指令の番号が「４」である場合を例に説明する。
【００７９】
ステップＳ１１〜Ｓ１６は、第１実施形態で説明した図７のフローチャートと同様である。第４実施形態では、ステップＳ１６の処理の後、図７のステップＳ１７，Ｓ１９の処理がなく、ステップＳ１８の処理に移行する。
【００８０】
第４実施形態では、ロボット制御装置４００は、ロボット１００に組み付け動作を開始させて以降、計測エンコーダ値が図６の範囲Ｒ１から外れるか否かにかかわらず、組み付け動作が終了するまで、ロボット１００に組み付け動作を行わせる。即ち、ロボット制御装置４００は、ロボット１００に組み付け動作を開始させて以降、フィンガの位置が図６のフィンガの位置決めの完了範囲Ｒ１０から外れるか否かにかかわらず、組み付け動作が終了するまで、ロボット１００に組み付け動作を行わせる。換言すると、ロボット制御装置４００は、ロボット１００に組み付け動作を開始させて以降、計測値を監視しないため、エラーでロボット１００の動作を停止させることはない。このような制御を行うことにより、ロボットハンド３００を軽量化することができ、フィンガ３５１に組み付け力がかかっても、エラーとならずに高精度にワークＷ１をワークＷ２に組み付けることができる。
【００８１】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。また、各実施形態で取り上げた数値は、参考数値であって、本発明を限定するものではない。
【００８２】
第１〜第４実施形態では、ロボットアーム２００が垂直多関節のロボットアームの場合について説明したが、これに限定するものではない。ロボットアームが、例えば、水平多関節のロボットアーム、パラレルリンクのロボットアーム、直交ロボット等、種々のロボットアームであってもよい。
【００８３】
第１〜第４実施形態では、ロボットハンドが有する、モータに駆動されるフィンガが２つの場合について説明したが、これに限定するものではなく、１つであってもよいし、３つ以上であってもよい。
【００８４】
第１〜第４実施形態では、ロボットに行わせる所定の動作として、ワークＷ１をワークＷ２に組み付ける動作について説明したが、これに限定するものではなく、別の動作であってもよい。
【００８５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８６】
１００…ロボット、２００…ロボットアーム、３００…ロボットハンド、３５１…フィンガ、３５２…フィンガ、４００…ロボット制御装置（制御部）、１０００…ロボット装置、Ｊ１…駆動機構（駆動部）、Ｊ２…駆動機構（駆動部）
【図１】
2020059105.tif 000003
【図２】
2020059105.tif 000004
【図３】
2020059105.tif 000005
【図４】
2020059105.tif 000006
【図５】
2020059105.tif 000007
【図６】
2020059105.tif 000008
【図７】
2020059105.tif 000009
【図８】
2020059105.tif 000010
【図９】
2020059105.tif 000011
【図１０】
2020059105.tif 000012
【図１１】
2020059105.tif 000013
【図１２】
2020059105.tif 000014