(57)【要約】【課題】把持部の相対姿勢に対応して把持力に基づき把持部の撓みを補正し、把持対象物の把持位置の位置決め精度を向上できるようにする。【解決手段】ハンド３００の複数の指３４０１〜３４０３が把持対象物を把持する時、例えば力センサ３４１、３４２で検出した把持力と、指３４０１〜３４０３が取り得る相対姿勢に対応し、把持位置を補正するための補正係数（ａ、ｂ）に基づき、各指３４０１〜３４０３で把持対象物を把持する時の把持位置を補正する補正量（ΔＸｒｅｆ）を計算し、計算した補正量（ΔＸｒｅｆ）に基づいて、各指３４０１〜３４０３を相対変位させる駆動源であるモータ３１１〜３１３を制御する。【選択図】図２
2018075681.tif 000002
【特許請求の範囲】
【請求項１】
複数の把持部が把持対象物を把持する把持力に応じて、複数の前記把持部の相対変位量を制御し、前記把持対象物の把持位置を制御する把持装置の制御方法において、
前記把持力と、複数の前記把持部の相対姿勢に対応し前記把持力に応じて前記把持位置を補正するための補正係数と、に基づき、前記把持位置を補正する補正量を計算する補正量計算工程と、
前記補正量に基づいて、前記把持部を相対変位させる駆動源を制御する駆動制御工程と、
を含む把持装置の制御方法。
【請求項２】
請求項１に記載の把持装置の制御方法において、複数の前記把持部の相対姿勢を特定の相対姿勢に変更し、前記補正量計算工程において、記憶装置に格納された前記特定の相対姿勢に対応する補正係数を読み出して、前記把持力と、前記記憶装置から読み出した前記補正係数と、に基づき、前記把持位置を補正する補正量を計算する把持装置の制御方法。
【請求項３】
請求項２に記載の把持装置の制御方法において、前記把持装置が、前記把持部を旋回させる旋回機構を備え、前記把持対象物を把持させる際の複数の前記把持部の相対姿勢を特定の相対姿勢に変更し、前記補正量計算工程において、記憶装置に格納された前記特定の相対姿勢に対応する補正係数を読み出して、前記把持力と、前記記憶装置から読み出した前記補正係数と、に基づき、前記把持位置を補正する補正量を計算する把持装置の制御方法。
【請求項４】
請求項１から３のいずれか１項に記載の把持装置の制御方法において、前記把持装置に前記把持力を検出する力センサが設けられ、複数の前記把持部の１部を前記力センサにより検出された前記把持力に応じて力制御し、他の前記把持部を位置制御して前記把持対象物を把持する把持装置の制御方法。
【請求項５】
請求項１から４のいずれか１項に記載の把持装置の制御方法において、前記補正量計算工程において、前記把持力と、前記補正係数に加え、複数の前記把持部によって前記把持対象物を把持する把持力の方向情報と、に基づき前記補正量を計算する把持装置の制御方法。
【請求項６】
請求項５に記載の把持装置の制御方法において、前記把持力の方向情報が、前記把持部によって前記把持対象物を外形把持するか、または内形把持するかを区別する情報を含む把持装置の制御方法。
【請求項７】
請求項１から６のいずれか１項に記載の把持装置の制御方法において、前記補正量計算工程において、前記把持力と、前記補正係数に加え、前記把持対象物の剛性情報と、に基づき前記補正量を計算する把持装置の制御方法。
【請求項８】
請求項７に記載の把持装置の制御方法において、前記把持力、または前記駆動源の駆動量の変化を介して複数の前記把持部によって前記把持対象物を把持した把持状態を検出した後、前記補正量計算工程、および前記駆動制御工程を実行する把持装置の制御方法。
【請求項９】
請求項１から８のいずれか１項に記載の各工程を前記把持装置に実行させるための制御プログラム。
【請求項１０】
請求項９に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１１】
複数の把持部が把持対象物を把持する把持力に応じて、複数の前記把持部の相対変位量を制御し、複数の前記把持部によって把持している前記把持対象物の把持位置を制御する把持装置において、
前記把持力と、複数の前記把持部の相対姿勢に対応し前記把持力に応じて前記把持位置を補正するための補正係数と、に基づき、前記把持位置を補正する補正量を計算し、計算した前記補正量に基づいて、前記把持位置が目標把持位置となるよう、前記把持部を相対変位させる駆動源を制御する制御装置を備えた把持装置。
【請求項１２】
把持対象物を把持する複数の把持部と、前記複数の把持部を相対変位させる駆動源と、複数の前記把持部が把持対象物を把持する把持力を検出する力センサと、前記力センサが検出した前記把持力に応じて、前記駆動源を介して複数の前記把持部の相対変位量を制御する制御装置と、を備えた把持装置において、
前記制御装置は、前記力センサが検出した前記把持力と、複数の前記把持部の相対姿勢に対応し前記把持力に応じて前記把持対象物の把持位置を補正するための補正係数と、に基づき、前記把持位置を補正する補正量を計算し、計算した前記補正量に基づいて、前記駆動源を制御する把持装置。
【請求項１３】
請求項１２に記載の把持装置において、前記把持対象物を把持する際の複数の前記把持部の相対姿勢を変更する姿勢制御部と、前記把持部の特定の相対姿勢ごとに対応する補正係数を格納した記憶装置と、を備え、前記制御装置は、前記姿勢制御部を介して、複数の前記把持部の相対姿勢を特定の相対姿勢に変更し、当該の特定の相対姿勢に対応する補正係数を前記記憶装置から読み出して、前記把持力と、前記記憶装置から読み出した前記補正係数と、に基づき、前記把持位置を補正する補正量を計算する把持装置。
【請求項１４】
請求項１３に記載の把持装置において、前記姿勢制御部が、前記把持部を旋回させる旋回機構を備え、前記制御装置は、前記姿勢制御部の前記旋回機構を介して、複数の前記把持部で前記把持対象物を把持させる際の複数の前記把持部の相対姿勢を特定の相対姿勢に変更し、当該の特定の相対姿勢に対応する補正係数を前記記憶装置から読み出し、前記把持力と、前記記憶装置から読み出した前記補正係数と、に基づき、前記把持位置を補正する補正量を計算する把持装置。
【請求項１５】
請求項１２から１４のいずれか１項に記載の把持装置を備えたロボットアームを含むロボット装置。
【請求項１６】
請求項１５に記載のロボット装置において、前記制御装置が、前記ロボットアームの位置姿勢を制御するロボット装置。
【請求項１７】
請求項１５または１６に記載のロボット装置の前記ロボットアームが備える前記把持装置によって前記対象物を把持して部品を組み立てる部品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持装置の複数の把持部の相対変位を制御し、前記把持部によって対象物を把持する把持装置の制御方法、把持装置、ロボット装置、および部品の製造方法に関する。
【背景技術】
【０００２】
近年、従来人手で行われていたカメラやプリンタなどの工業製品の組立工程を、産業用ロボットで自動化する要求が高まっている。これらの製品を構成する部品は、小型の精密部品が多く、形状、材質など多岐に渡っている。この種の製品や部品の製造ラインでは多関節アームによるロボットアームとロボットハンドのような把持装置を組合せたシステムが利用されている。特に最近では、多能工化、多品種少量生産による段取替の要求から、これらのロボットアーム、ロボットハンドには、形状や大きさの異なるワークを扱える汎用性が要求されるようになってきた。また、ワークを組み立てる際には、把持装置としてのハンドは、把持対象物としてのワークを安定して目標把持位置に位置決めする必要がある。
【０００３】
ワークの特定部位をロボットハンドの基準位置、例えばハンドの中心軸などに対して位置決めするために、カメラなどの視覚系を用いる場合もある。また、ハンドに搭載された力センサの値によって、位置制御する指と力制御する指を設定可能とすることにより、ワーク形状などに応じて把持力と把持位置を制御する手法が提案されている（例えば下記の特許文献１）。
【０００４】
また、ハンドの指１本を１つのマニピュレータと見なすと、通常、この種のロボットハンドは２本以上のマニピュレータから構成される。一般に、この種のハンドの駆動機構では、マニピュレータの先端に力を発生させると各関節の減速機、リンクなどのバネ要素により撓みが発生し、マニピュレータ先端の位置決め精度に誤差が生じる。そこで、ハンドの把持力を検出する力センサの出力と、ワークやマニピュレータの剛性情報を用いて撓み補正を行う手法が提案されている（例えば下記の特許文献２）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−６９５８４号公報
【特許文献２】特開２０１３−２５５９８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された力制御および位置制御では、把持制御では、ワークやハンドの指の撓みに起因する把持位置誤差を考慮していない。特許文献２に記載された把持制御は、１本のマニピュレータを単位とした撓み補正であって、この構成を複数指のロボットハンドに適用する場合には全ての指に力センサを搭載することになる。このような構成では、コスト、小型化および軽量化が難しくなることが予想される。
【０００７】
また、ロボットハンドのような把持装置が把持部として開閉する複数の指を有している場合、把持対象物のワークの形状や寸法などの把持条件に応じて、各指が相対変位する相対姿勢が異なるハンドを用意することが考えられる。また、あるいはそのような姿勢の調整を可能にするロボットハンドの構成も考えられる他、動的に相対変位する姿勢を変更可能なロボットハンドの構成も考えられる。このような構成では、特許文献２のように各指の把持力を用いる構成では制御装置が動的に実行する制御負荷が増大する可能性がある。
【０００８】
本発明の課題は、把持部の相対姿勢に対応して把持力に基づき把持部の撓みを補正し、把持対象物の把持位置の位置決め精度を向上できるようにすることにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、例えば本発明の制御方法においては、複数の把持部が把持対象物を把持する把持力に応じて、複数の前記把持部の相対変位量を制御し、前記把持対象物の把持位置を制御する把持装置の制御方法において、前記把持力と、複数の前記把持部の相対姿勢に対応し前記把持力に応じて前記把持位置を補正するための補正係数と、に基づき、前記把持位置を補正する補正量を計算する補正量計算工程と、前記補正量に基づいて、前記把持部を相対変位させる駆動源を制御する駆動制御工程と、を含む構成を採用した。
【発明の効果】
【００１０】
上記構成によれば、把持部の相対姿勢に対応して把持力に基づき把持部の撓みを補正し、把持対象物の把持位置の位置決め精度を向上することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明を採用可能なロボットシステムの概略構成を示した説明図である。
【図２】本発明を採用可能な把持装置としてハンドの概略構成を示した説明図である。
【図３】図１の装置の制御系の概略を示したブロック図である。
【図４】図３の補正計算部の概略構成を示したブロック図である。
【図５】本発明の実施形態１に係るワーク種類の一例とその把持方法を示した説明図である。
【図６】本発明の実施形態１に係る把持指令テーブルの一例を示した説明図である。
【図７】本発明の実施形態１に係る補正係数テーブルの一例を示した説明図である。
【図８】本発明の実施形態１に係るハンド制御装置において、ハンドの指先位置の撓み補正する処理手順を示すフローチャート図である。
【図９】本発明の実施形態１に係る撓み補正を含む把持制御手順を示すフローチャート図である。
【図１０】本発明の実施形態１に係るモータ制御部のブロック線図である。
【図１１】本発明の実施形態２に係るワークの一例とその把持方法を示した説明図である。
【図１２】本発明の実施形態２に係る把持指令テーブルの一例を示した説明図である。
【図１３】本発明の実施形態２に係る撓み補正を含む把持制御手順を示すフローチャート図である。
【発明を実施するための形態】
【００１２】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１３】
＜実施形態１＞
本実施形態では、複数の把持部が把持対象物を把持する把持力に応じて、複数の前記把持部の相対変位量を制御し、前記把持対象物の把持位置を制御する把持装置の構成、および制御方法を示す。以下の実施形態では、把持装置および把持部は、ロボットハンド（以下ハンドという）およびその指に相当する。
【００１４】
ハンドの複数の指による把持力は、それらの相対変位を制御する駆動源の駆動力（例えば駆動電力、電流あるいはサーボ制御情報など）によって制御装置（例えば後述のＣＰＵ５０１）が計算によって求める構成でもよい。しかしながら、本実施形態では、ハンドの指に配置した力センサで実測する。これによって、より把持状況に即した制御が可能になる。力センサにはロードセル、歪ゲージや光学的に検出部の変形量を測定する方式の力検出デバイスを利用してよい。また、本実施形態では、上述の従来構成（特許文献２）のように全てのハンドの指に力センサを配置する必要はなく、対象物の把持に用いられる指の少なくとも１つに配置されていればよい。
【００１５】
本実施形態の把持装置の把持制御においては、把持力と、複数の把持部の相対姿勢に対応し、把持力に応じて対象物の把持位置を補正するための補正係数と、に基づき、把持対象物の把持位置を補正する補正量を計算する（補正量計算工程）。そして、計算した補正量に基づいて、把持部を相対変位させる駆動源を制御する（駆動制御工程）。上記の補正係数は、制御装置（例えば後述のＣＰＵ５０１）が把持パターン、特に各指の相対姿勢に対応して動的に演算により取得することも考えられる。しかし、本実施形態では、予め各指の相対姿勢に対応した値を予め記憶装置（ＲＯＭ５０２やＲＡＭ５０３など）に格納しておく。
【００１６】
上記のように、ハンドの各指の相対変位に関しては、把持対象物のワークの形状や寸法などの把持条件に応じて、ハンドの各指が相対変位する時の相対姿勢が異なるハンドを用意することが考えられる。あるいはそのような姿勢の調整を可能にするロボットハンドの構成も考えられる他、動的に相対変位する姿勢を変更可能なロボットハンドの構成も考えられる。いずれの場合でも、把持対象物の把持位置を補正するための補正係数を、実施する可能性のある把持パターン、特に各指の相対姿勢ごとに関連づけて予め記憶装置（ＲＯＭ５０２やＲＡＭ５０３など）に格納しておくことにより、把持位置の補正が可能となる。
【００１７】
以下では、把持パターン、特に各指の相対姿勢を変更する姿勢制御部、特に後述の関節Ｊ４、Ｊ５のような旋回機構をハンドに配置する構成を例示する。そして、制御装置（例えば後述のＣＰＵ５０１）は、姿勢制御装置、特に旋回機構によって各指の相対姿勢を変更している場合には、その相対姿勢に対応する補正係数を選択して把持対象物の把持位置を補正する制御を行う。
【００１８】
以下、添付図面を参照して、本実施形態１における構成および把持制御につき説明する。図１は、本発明のハンド制御装置を用いた本実施形態のロボットシステムの概略構成を示している。
【００１９】
[ロボットシステム]
本実施形態のロボットシステム１００は、アーム本体２００、ハンド３００、アーム制御装置４００、ハンド制御装置５００を備える。組立用部品であるワークＷ１は、ワーク載置台Ｓ１上に載置され、被組立対象物であるワークＷ２は、ワーク固定台Ｓ２上に固定されている。
【００２０】
ロボットシステム１００によってワークＷ１、ワークＷ２を操作し、組み立てることにより、工業製品、ないしはその部品を製造することができる。例えば、このワークＷ１、Ｗ２に対する組み立て操作は、アーム本体２００とハンド３００を用いて把持対象物としてのワークＷ１を把持し、移動させ、さらにワークＷ１をワークＷ２の組付部に嵌合させる、といった操作によって行われる。
【００２１】
アーム本体２００は、本実施形態では多関節のロボットアームであり、アーム本体２００の根元は基台６００に固定され、アーム本体２００の先端には、エンドエフェクタとして把持装置であるハンド３００が装着される。このハンド３００を介してワークＷ１に対して動作を行う。また、アーム本体２００の各関節には、これらの関節を各々駆動する駆動源としてモータ（不図示）、およびモータの回転角度を検知する検知器としてエンコーダ（不図示）がそれぞれ設けられる。
【００２２】
アーム制御装置４００は、組立で用いるハンド３００の移動先であるアーム先端の目標位置姿勢に対して、アーム本体２００の各関節の取るべき角度を計算し、各関節のモータ（不図示）を制御するサーボ回路（不図示）に対して指令値を出力する。アーム制御装置４００は、ハンド制御装置５００と接続され、ハンド３００に対して把持指令を出力する。この把持指令は例えば番号、即ち数値表現のデータで出力することができる。アーム制御装置４００の詳細は不図示であるが、後述のハンド制御装置５００の５００〜５０５で示す構成と同様、ＣＰＵ、ＲＯＭ、ＲＡＭ、汎用信号インターフェイス、モータドライバなどから構成することができる。このうち、汎用信号インターフェイスはアーム本体２００の各部のセンサなどと通信するために、また、モータドライバは、アーム本体２００の各関節を駆動するモータの制御に用いられる。
【００２３】
図２は、本実施形態１におけるハンド３００の概略構成を示している。ハンド３００は、把持部として、３本の指（フィンガ）指３４０１〜３４０３（第１指〜第３指）を有する。
【００２４】
これらの指３４０１〜３４０３は、リンク３５１、３５２、３５３と、回転駆動される関節Ｊ１〜Ｊ５によって互いに相対変位するよう制御され、これにより把持の対象物（後述の各ワーク）を把持、または把持開放するように動作する。この構成では、関節Ｊ１〜Ｊ５は５つあり、従って、このハンド３００の指（３４０１〜３４０３）は全体で５自由度のこれら関節Ｊ１〜Ｊ５によって駆動される。
【００２５】
ハンド３００の各指（３４０１〜３４０３）駆動伝達系の一部を構成するリンク３５１〜３５３は、例えば図示のような、いわゆる平行四節リンク機構である。この構成により、各指（３４０１〜３４０３）は互いに例えば平行姿勢を保持したまま開閉することができる。
【００２６】
各指（３４０１〜３４０３）の相対変位を制御するためのリンク３５１、３５２、３５３は、それぞれ関節Ｊ１、Ｊ２、Ｊ３によって駆動される。
【００２７】
また、本実施形態では、３本の指のうち、２本の指３４０２、３４０３（第２指と第３指）はそれぞれ１自由度の関節Ｊ４、Ｊ５によって旋回駆動できるよう構成されている。これにより、指３４０１（第１指）に対する、指３４０２、３４０３（第２指と第３指）の旋回姿勢を制御することができる。これにより、例えば後述の図５に示すように多様なワークの形状に応じて、指３４０１〜３４０３の把持形態を変更することができる。
【００２８】
上記の指３４０１〜３４０３の駆動機構は、アーム本体２００の先端に装着されるハンド３００の基部３６上に支持される。図２に示したｘｙｚ座標系は、基部３６の中心軸３６１が通る、例えば基部３６の上面上の１点などを原点としたハンド座標系である。
【００２９】
図２において、指３４０２、３４０３の関節Ｊ４、Ｊ５を結ぶよう、直線で簡略図示した支持部３６３は、例えばハンド座標系（ｘｙｚ）のｙ軸と平行に基部３６の中心軸３６１上に支持される。また、指３４０１の関節Ｊ１は、便宜上、Ｌ字型で図示した支持部３６２を介して、基部３６上で関節Ｊ４、Ｊ５と同じ高さに支持される。
【００３０】
関節Ｊ４、Ｊ５は互いに独立に動作させても良いが、本実施形態では関節Ｊ４、Ｊ５は互いに逆回転で同一の駆動量ずつ駆動される。これにより、本実施形態では、常時、指３４０１（第１指）に対して、指３４０２、３４０３（第２指と第３指）が対称的な旋回姿勢を取るよう制御される。本実施形態では、関節Ｊ４、Ｊ５による指３４０２、３４０３の旋回角度は、便宜上、上記ｙ軸と平行な関節Ｊ４、Ｊ５の支持部３６３に対する角度を用いて表現する。
【００３１】
例えば、図２の図示は、関節Ｊ４、Ｊ５が支持部３６３（ないしは上記ｙ軸）に対してそれぞれ９０°をなす時の３指対向配置を示している。また、関節Ｊ４、Ｊ５を図２の状態から、同図の矢印の方向にそれぞれ９０°だけ回転させた状態の角度は、以下では０°と表現する。また、関節Ｊ４、Ｊ５を図２の状態から、同図の矢印の方向にそれぞれ６０°だけ回転させた状態の角度は、以下では３０°と表現する。本実施形態では、例えば後述の図５などに関しては、関節Ｊ４、Ｊ５の回転角度について、上記のような数値表現を行うことがある。
【００３２】
また、図２において、ハンド３００の関節Ｊ１〜Ｊ５には、各関節を各々駆動する駆動手段としてモータ３１１〜３１５が設けられる。指のリンクは、モータ３１１〜３１５に直結した各々減速機３２１〜３２５を介して駆動される。減速機３２１〜３２５、力センサ３４１、３４２、各指のリンクは、把持方向に対してバネ性（弾性）を有しており、後述の撓み補正にて指先位置が補正される。また、モータ３１１〜３１５にはモータの各々の回転角度を検知するエンコーダ３３１〜３３５が設けられる。
【００３３】
制御装置、例えば後述のＣＰＵ５０１は、エンコーダ３３１〜３３５の出力値を用いて、上記の各関節Ｊ１〜Ｊ５の回転角度を計算することができる。その場合、制御装置、例えば後述のＣＰＵ５０１は、減速機３２１〜３２５の減速比を用いてエンコーダ３３１〜３３５の出力値を各関節Ｊ１〜Ｊ５の回転角度に変換することができる。
【００３４】
本実施形態では、指３４０１と３４０２（第１指、第２指）の先端にそれぞれ力センサ３４１、３４２を設けてあり、これらの指に加わる把持力を検出することができる。ただし、本実施形態では、力センサは少なくとも把持対象物の把持に用いられる１本の指に配置されていればよい。本実施形態で指３４０１と３４０２に力センサ３４１、３４２を設けているのは、後述の対象物を把持する時の各指の相対姿勢の異なる複数の把持パターンによって、複数指の１部、少なくとも１本の指の力センサで把持力を検出できるようにするためである。ただし、ワークの形態、ハンド３００の実行可能な把持態様（後述の把持パターン）の仕様に応じて、括弧書きで図２中に示したように指３４０３にも力センサ３４３を配置するような構成であってもよい。これにより、ワークの形態などに応じて、ハンド３００の実行可能な把持態様（後述の把持パターン）を拡張できる可能性がある。
【００３５】
ハンド制御装置５００は、図１に示すように、マイクロプロセッサなどから成るＣＰＵ５０１と、このＣＰＵ５０１にバス接続されたＲＯＭ５０２、ＲＡＭ５０３、汎用信号インターフェイス５０４、モータドライバ５０５などから構成される。ＲＯＭ５０２には、ハンド３００を制御するプログラム（後述の撓み補正を行なうためのプログラムを含む）が格納される。
【００３６】
後述の把持指令テーブル５１１、および、ハンド３００の各指の相対姿勢を変更した場合の、特定の相対姿勢ごとに補正係数を格納した補正係数テーブル５１２は、例えばＲＡＭ５０３の記憶領域に配置することができる。あるいは装置の実装仕様などによって、これらのテーブルメモリがＲＯＭ化可能である場合には、これらのテーブル（５１１、５１２）はＲＯＭ５０２の記憶領域に配置してもよい。
【００３７】
さらに、ＲＡＭ５０３はＣＰＵ５０１による演算実行時の一時記憶用のメモリや必要に応じて設定されるレジスタ領域としても使用される。汎用信号インターフェイス５０４は、アーム制御装置４００などに対する入出力装置として機能する。モータドライバ５０５は、ＣＰＵ５０１で計算されたモータ電流指令値に基づいて、ハンド３００の各指の開閉（相対変位）、旋回を制御する５軸のモータ３１１、３１２、３１３、３１４、３１５へそれぞれ電流制御した上で電流を供給する。
【００３８】
なお、本実施形態では、アーム制御装置４００と、ハンド制御装置５００を別体の制御装置として示しているが、これらの制御装置はロボット装置の実装によっては一体をなしていてもよい。即ち、アーム本体２００およびハンド３００を制御する共通の制御装置が１つ配置され、本実施形態においてアーム制御装置４００およびハンド制御装置５００がそれぞれ実行する制御として説明する制御をこの共通の制御装置で実行する構成であってもよい。この構成は、ハンドの制御装置がロボットアームの制御も行い、また逆にロボットアームの制御装置がハンドの制御も行う構成、と考えることができる。
【００３９】
図６は、本実施形態に係る把持指令テーブルの構成の一例を示している。同図の把持指令テーブル５１１は、主にハンド全体設定６００１、と、各関節の制御パラメータ６００２の各フィールドから成り、把持指令の番号毎に把持パターン、モード、および制御パラメータを格納したレコードが配列される（６００３）。ハンド全体設定６００１の部分には、把持指令の番号毎に把持パターン、把持モードが格納される。制御パラメータ６００２の部分には、ハンド３００の各関節Ｊ１、Ｊ２、Ｊ３、Ｊ４、Ｊ５の位置指令値、力指令値の項目を格納する。
【００４０】
なお、後述の数式などにおいてサフィックス表記となっている部分については、本明細書の数式を除く文中や、各図中においては、判読性を考慮し、錯誤の可能性の少ないものについては、必ずしもサフィックス表記を用いないものとする。
【００４１】
図６において、把持パターンは、ハンド３００の関節Ｊ１〜Ｊ５を位置制御（Ｐ）するか、力制御（Ｆ）するかを示す記述したデータである。本実施形態では、位置制御する関節をＰ、力制御する関節をＦとし、記号（Ｐ、Ｆ）の順番を各モータ番号に対応させるものとする。そして、本実施形態では、把持パターンは以下の３種類が設定される。つまり、［ＰＰＰＰＰ（すべての関節を位置制御）］、［ＦＰＰＰＰ（関節Ｊ１のみ力制御、残りの関節Ｊ２、Ｊ３、Ｊ４、Ｊ５は位置制御）］、［ＰＦＰＰＰ（関節Ｊ２のみ力制御、残りの関節Ｊ１、Ｊ３、Ｊ４、Ｊ５は位置制御））］の３種類である。特に、把持パターンが［ＦＰＰＰＰ］の場合は３指での把持に、また、［ＰＦＰＰＰ］の場合は２指での把持に適用される。
【００４２】
また、本実施形態では、把持モードのフィールドには外形把持と内形把持のいずれかを示すデータが設定される。外形把持とは、ハンド３００の複数の指によってワークを外側から把持する把持モード、内形把持とはワークを内側から把持する把持モードである（図５参照）。
【００４３】
なお、上記の把持パターンや、把持モード（外形把持／内形把持）は、ハンド３００の各指によって把持対象物たるワークを把持する把持力の方向情報と考えてもよい。
【００４４】
また、各関節Ｊ１、Ｊ２、Ｊ３、Ｊ４、Ｊ５の位置指令値、力指令値のフィールドには、把持パターンでＰが設定された関節では駆動源のモータの位置指令値が、把持パターンでＦが設定された関節ではモータは力指令値が設定される。各モータの位置指令値は、各指を開閉（相対変位）される関節Ｊ１、Ｊ２、Ｊ３の場合は、把持ストロークに対応した値が設定される（単位ｍｍ）。関節Ｊ４、Ｊ５の場合は把持するときの角度に対応した値が設定される（単位ｄｅｇ）。また、各関節の力指令値は、各指の先端に発生させる把持力に対応した値が設定される（単位Ｎ）。本実施形態では、関節Ｊ１、Ｊ２のみが力指令値を設定して力制御できるような仕様となっている。
【００４５】
図６において、位置制御される指、および力制御される指には、位置指令値および力指令値の補正前の初期値Ｘｒｅｆが格納される。ここで、図６において、指令番号（１）（［ＰＰＰＰＰ］）は、全ての関節をワークのサイズや細部の形状に応じて位置制御する場合に相当し、位置指令値の初期値Ｘｒｅｆは全て０になっている。また、例えば指令番号（２）（［ＦＰＰＰＰ］：関節Ｊ１のみ力制御）は、関節Ｊ４、Ｊ５を３０°（ｄｅｇ）設定とする（図５のワークＷ１ａの３指等配把持に対応）把持制御である。この指令番号（２）（［ＦＰＰＰＰ］：関節Ｊ１のみ力制御）の把持制御では、関節Ｊ１の力指令値の初期値Ｘｒｅｆが１０（Ｎ）、他の２指の関節の位置指令値の初期値Ｘｒｅｆが０（ｍｍ）になっている。
【００４６】
図６の把持指令テーブルには、ハンド３００の制御仕様に応じて、選択可能な把持指令に対応する制御パラメータを把持指令の番号に関連づけて種々配置しておくことができる。
【００４７】
図７は、本実施形態に係る補正係数テーブルの構成の一例を示している。補正係数テーブル５１２は、把持パターン（７００１）、把持モード（７００２）、関節Ｊ４、Ｊ５の位置指令値（７００３）各々の設定組合せに応じて補正係数ａ２、ｂ２、ａ３、ｂ３（７００４）を格納する。
【００４８】
本実施例では、１指を力制御し、他の２指または１指を位置制御するものとし、図７の補正係数テーブル５１２は、後述の式（例えば式（２）〜（４））によって補正量（ΔＸ）を算出するための補正係数ａ２、ｂ２、ａ３、ｂ３を格納する。この補正係数ａまたはｂの１つめのサフィックスは第１指〜第３指の番号に対応する。
【００４９】
また、図７の補正係数テーブル５１２に設定される補正係数ａ２、ｂ２、ａ３、ｂ３の数値ａ２１〜ａ２４、ｂ２１〜ｂ２４、ａ３１〜ａ３６、ｂ３１〜ｂ３６（実際は数値）は、校正（実験）によって予め求めておく。これらの補正係数ａまたはｂの２つめのサフィックスは、便宜上、表の配置順に応じで漸増するよう定めたデータ番号に相当する。
【００５０】
補正係数ａ２、ｂ２、ａ３、ｂ３の数値ａ２１〜ａ２４、ｂ２１〜ｂ２４、ａ３１〜ａ３６、ｂ３１〜ｂ３６（実際は数値）を取得する校正方法としては、把持パターン、把持モード、関節Ｊ４、Ｊ５の位置指令値の各場合に応じて補正係数を分けておく。そして、各場合分けに応じて、組立で使用する範囲の把持力内で何点か基準ワークを用いて撓み量を実測しておき、最小二乗法などでそのとき生じた撓み量を打消すような補正量となるように補正係数ａ２、ｂ２、ａ３、ｂ３を求めることにより算出する。
【００５１】
図３は、ハンド制御装置５００の制御機能（制御工程）の概略構成を擬似的なブロック図の形態で示したものである。ハンド制御装置５００の制御機能（制御工程）は補正量計算部５２０（補正量計算工程）を含む。また、補正量計算部５２０（補正量計算工程）で取得した補正量に応じて把持部（各指）を相対変位させる駆動源を制御する駆動制御機能（駆動制御工程）として、指令値生成部５３０、モータ制御部５４１〜５４５、モータドライバ５０５を含む。
【００５２】
補正量計算部５２０は、ハンド３００がワークＷ１を力制御で把持する場合、後述する撓み補正方法に従い、位置制御する指の補正量を計算する。指令値生成部５３０は、把持指令と把持指令テーブル５１１に基づいて、各モータ３１１〜３１５への制御モード（位置制御、あるいは、力制御）と各モータ３１１〜３１５への指令値を各モータ制御部５４１〜５４５に送信する。なお、各モータ３１１〜３１５への指令値は、各モータ３１１〜３１５への制御モードが位置制御の場合は位置指令値に、各モータ３１１〜３１５への制御モードが力制御の場合は力指令値になる。
【００５３】
なお、本実施形態では、便宜上、関節Ｊ１、Ｊ２のそれぞれのモータ３１１、３１２のみ位置制御と力制御のどちらかが選択でき、関節Ｊ３、Ｊ４、Ｊ５のそれぞれのモータ３１３〜３１５は位置制御のみ可能な仕様であるものとする。また、指令値生成部５３０は、ハンド３００がワークＷ１を力制御で把持する場合、補正量計算部５２０で計算された補正量に基づき、位置指令値を補正した上で各モータ制御部５４１〜５４５に送信する。
【００５４】
各モータのモータ制御部５４１〜５４５は、指令値生成部５３０から渡された制御モードに応じてモータドライバ５０５へ各モータ３１１〜３１５の電流指令値を渡す。モータ制御部５４１〜５４５の機能は、同一でありここではこれら各モータ制御部の構成を示すため、関節Ｊ１のモータ制御部５４１の構成を図１０に示す。
【００５５】
図１０において、モータ３１１への制御モードが位置制御の場合は、位置指令値とエンコーダ３３１からの値に基づき、位置制御部５４６でフィードバック制御を行い、電流指令値を出力する。モータ３１１への制御モードが力制御の場合は、力指令値と力センサ３４１からの値に基づき、力制御部５４７でフィードバック制御を行い、電流指令値を出力する。制御モード切替部５４８は、アナログスイッチやマルチプレクサから構成され、モータ３１１への制御モードに基づいて、位置制御部５４６、あるいは、力制御部５４７の電流指令値を選択してモータドライバ５０５へ出力する。
【００５６】
図４は、本実施形態に係る補正計算部（補正量計算工程）の機能構成を示している。図４において、補正量計算部５２０は、補正係数選択部５２１と補正量演算部５２２から構成される。補正係数選択部５２１は、アーム制御装置４００から送信された把持指令の番号と把持指令テーブル５１１（図６）に基づいて、把持指令の番号に対応する把持パターン、把持モード、関節Ｊ４、Ｊ５の位置指令値の初期値（Ｘｒｅｆ）を抽出する。
【００５７】
次に、抽出した把持パターン、把持モード、関節Ｊ４、Ｊ５の位置指令値と、補正係数テーブル５１２に基づいて、対応する補正係数を選択する。補正量演算部５２２は、補正係数選択部５２１で選択された補正係数と、把持指令テーブル５１１の力指令値と位置指令値に基づいて、位置制御する指の撓み補正量（ΔＸｒｅｆ）を演算する。
【００５８】
ここで、図１のワークＷ１は、ワークＷ２と嵌合するための組付部（凹部）を有するものとする。また、ワークＷ２はワークＷ１と嵌合するための組付部（凸部）を有する。そして、図１のロボット装置は、ハンド３００でワークＷ１を把持して、その状態でアーム本体２００によりワークＷ１をＷ２と両者の組付部が整合する位置まで搬送し、両者を嵌合（組付）させる。
【００５９】
ここで、図５は、本実施形態に係るワーク種類の一例を示した説明図である。本実施形態では、ハンド３００で把持するワークＷ１は、３種類の形状（５００１：ワークＷ１ａ、ワークＷ１ｂ、ワークＷ１ｃ）があるものとする。図５では、ワーク種類（５００１）ごとに、その把持形態（５００２）、把持パターン（５００３）、制御形態（５００４）を示している。
【００６０】
なお、制御形態（５００４）の簡略図示において、図中水平の１点鎖線が図２のｙ軸の方向に、垂直の１点鎖線が図２のＸ軸の方向に相当している。また、把持制御形態（５００４）の図示では、各ワーク種類に応じて、力制御される指（３４０１または３４０２）と位置制御される指（３４０２と３４０３）を破線の有無で区別している。
【００６１】
ここで、ワークＷ１ａは、円筒や球形の把持対象物で、円形断面を有する物体であり、ハンド３００の把持形態（５００２）は３指等配（関節Ｊ４、Ｊ５が共に３０°）で、ハンド３００の把持モードを外形把持として把持する。ワークＷ１ａは３指把持なので、把持パターン（５００３）は［ＦＰＰＰＰ］が選択される。ワークＷ１ｂは、矩形物体でハンド３００の把持形態を３指対向（関節Ｊ４、Ｊ５が共に９０°）で、把持モードを外形把持で把持する。ワークＷ１ｂは３指把持なので、把持パターンは［ＦＰＰＰＰ］が選択される。
【００６２】
また、ワークＷ１ｃは、矩形物体でハンド３００の把持形態を２指対向（関節Ｊ４、Ｊ５が共に０°）で、把持モードを内形把持で把持する。ワークＷ１ｃは２指把持なので、把持パターンは［ＰＦＰＰＰ］が選択される。
【００６３】
ここで、本実施形態において、例えばハンド制御装置５００によって行うワークＷ１を把持する際の指位置の撓み補正によって、把持位置を補正する制御について説明する。本実施形態では、位置の補正は把持方向のみに行うものとする。
【００６４】
本実施形態における把持制御は、概略、図８のフローチャートのような制御によって構成される。図８の把持制御は、例えばハンド制御装置５００のＣＰＵ５０１によって実行可能な制御プログラムとして記述することができる。その場合、この制御プログラムは、例えばＲＯＭ５０２（あるいはＨＤＤや各種フラッシュメモリのような外部記憶装置）に格納しておくことができる。
【００６５】
図８の把持制御において、ハンド制御装置５００は、まず補正量計算部５２０で把持力である力指令値から撓み補正量を計算する（ステップＳ１０）。位置補正する指（第ｉ指）の補正量ΔＸｒｅｆｉ（ｉ＝２，３）を下記の数式によって示すような補正演算によって計算する。
【００６６】
次に、指令値生成部５３０で補正量ΔＸｒｅｆｉ（ｉ＝２，３）に基づき補正した位置指令値Ｘ’ｒｅｆｉを例えば下記の式（１）のような演算によって算出され、各モータ制御部５４１〜５４５に渡される（ステップＳ２０）。
【００６７】
【数１】
2018075681.tif 000003
【００６８】
ただし、上式（１）において、Ｘｒｅｆｉは位置補正する指（ｉ）の補正前の位置指令値である。この位置指令値Ｘｒｅｆｉは図６中に図示した指令値（の初期値）に相当する。
【００６９】
続いて、各モータ制御部５４１〜５４５は、上記の指令値Ｘ’ｒｅｆｉに基づき、ハンド３００を動作させる（ステップＳ３０）。
【００７０】
ここで、ステップＳ１０について、図９を参照してより詳しく説明する。まず、補正係数選択部５２１が図７の補正係数テーブル５１２を参照して補正係数を選択する（ステップＳ１１）。例えば、図７の補正係数テーブル５１２の場合、ワークＷ１ａを把持する時は、補正係数ａ２、ｂ２、ａ３、ｂ３として、それぞれａ２１、ｂ２１、ａ３１、ｂ３１（実際は数値）が選択される。
【００７１】
同様に、ワークＷ１ｂを把持する場合、補正係数ａ２、ｂ２、ａ３、ｂ３として、それぞれａ２２、ｂ２２、ａ３２、ｂ３２（実際は数値）が選択され、ワークＷ１ｃを把持する場合、補正係数ａ３、ｂ３として、ａ３６、ｂ３６（実際は数値）が選択される。
【００７２】
次に、補正量演算部５２２で補正係数と把持力から補正量が演算される（ステップＳ１２）。例えば、ワークＷ１ａを把持する場合、補正量ΔＸｒｅｆ２，ΔＸｒｅｆ３は例えば下式（２）で演算する。
【００７３】
【数２】
2018075681.tif 000004
【００７４】
ここで、指３４０１（第１指）に生じさせる把持力は、Ｆｒｅｆ１とする。なお、位置指令の初期値やその補正量であるＸｒｅｆ、ΔＸｒｅｆは、各指を把持（閉方向）に移動させる時のその移動方向に沿った変位量であるものとする。そしてこれらの位置指令値によって各指を相対変位させる時の相対変位量が決定されることになる。
【００７５】
また、ワークＷ１ｂを把持する場合、補正量ΔＸｒｅｆ２，ΔＸｒｅｆ３は例えば下式（３）で演算する。
【００７６】
【数３】
2018075681.tif 000005
【００７７】
同様に、ワークＷ１ｃを把持する場合は、補正量Ｘｒｅｆ３は数式４で演算する。
【００７８】
【数４】
2018075681.tif 000006
【００７９】
この時、指３４０２（第２指）に生じさせる把持力がＦｒｅｆ２である。
【００８０】
上記の把持制御において、ワークＷ１ａとワークＷ１ｂは同じ３指把持であるが、関節Ｊ４、Ｊ５の角度が異なる。そのため、同じ把持力でワークＷ１ａとワークＷ１ｂを持っても、指２、３に生じる撓みは異なる。このため、上記のように補正係数テーブル５１２から異なる補正係数（ａ２、ｂ２、ａ３、ｂ３）を読み出して用いる。これにより、各指（各把持部）の相対姿勢に応じて適切な把持位置補正を行うことができる。
【００８１】
本実施形態のハンド制御装置５００によれば、上記のような撓み補正を含む把持制御を行うことができる。このため、図５のように関節Ｊ４、Ｊ５が異なる把持形態に対しても高精度な把持位置補正を行うことができ、ワークの位置決め精度を大きく向上させることができる。また、力検出のための力センサは、実際に把持に作用する指の少なくとも１本に配置されていればよく、例えば全指に力センサを配置する必要がなく、ハードウェア構成が簡単安価で済む。また、例えば全指の力制御状態に応じて位置制御量を決定するような複雑な制御過程を必要とせず、高速かつ応答性の良いハンド制御が可能である。
【００８２】
なお、外形把持と内形把持については、一般的に減速機３２１〜３２５にはバックラッシュがあるので、同じ把持力を所持させても指先の撓み量に違いが生じる可能性がある。しかしながら、本実施形態のハンド制御装置５００によれば、外形把持と内形把持のような把持モードの違いに応じて異なる補正係数を補正係数テーブル５１２に格納するようにしている。このため、ハンド３００の関節Ｊ１〜Ｊ５にバックラッシュがあっても、高精度な把持位置補正を行うことができ、ワークの位置決め精度を向上させることができる。ここで、例えば、把持力１０Ｎにて把持する場合、指先先端換算の各指の駆動系の剛性係数を５０Ｎ/ｍｍとすると、指先の撓み量は１０Ｎ/(５０Ｎ/ｍｍ)＝０．２ｍｍ程度のオーダで生じる。本実施形態の撓み補正を用いることで、ワーク位置決め精度は０．２ｍｍ程度向上させることができる。
【００８３】
以上説明したように、本実施形態によれば、把持力による指位置の撓みをハンド３００で補正し、高精度な把持位置補正を行うことができ、ワークの位置決め精度を向上させることができる。本実施形態によれば、補正係数テーブル５１２を適宜作成しておくことにより、ハンドの機械的仕様に応じて高精度な把持位置補正を行うことができる。例えば、細かいワークに対応するため先端を細長くしてあるハンド、ワーク保護のためハンドの先端が大きな弾性を持つハンドの場合でも、構成に応じて適切かつ高精度な把持位置補正が可能である。このことは、トルクを付加すると軸が捩れやすい波動歯車を減速機に用いたハンドなどにおいても、構成に応じて適切かつ高精度な把持位置補正が可能であることを意味する。また、同様の作用効果は、指先の把持力を検知するためにセンサ自身がその力で撓む必要がある力センサが搭載されているハンドに対しても期待できる。
【００８４】
また、実際の製品ないし部品の製造ラインでは、組立工程のサイクルタイムを短縮するために組立時のハンドの把持力の指令初期値（各Ｘｒｅｆ）を変更するような事態も予想される。本実施形態によれば、このような変更が生じた場合でも、ワークの位置決め精度を劣化させずにワークを把持することができ、アームの位置調整なしに組立を行うことができる。
【００８５】
また、上記の実施形態で示したハンドをロボットアームに用いて、対象物であるワークを把持して、工業製品ないしはその部品を組み立てる製造ラインを構成することができる。その場合、本実施形態によれば、ワークの把持位置精度を大きく向上でき、高速かつ精度の高い製品ないし部品の組み立て作業を自動的に実行することができる。
【００８６】
＜実施形態２＞
上述の実施形態１では、ワーク（Ｗ１）の剛性（ないしは弾性）などの条件を考慮しておらず、ワーク（Ｗ１）が把持力によって変形せず、ワーク寸法についてばらつきがなく決まった寸法であることを前提としていた。しかしながら、本発明は、把持対象物たるワークが把持装置たるハンドの把持力によって変形し、ワーク寸法についてばらつきが生じる可能性がある場合において実施できるものである。
【００８７】
本実施形態２では、把持対象物たるワークの剛性係数を用いて、把持位置の補正を行う把持制御を例示する。本実施形態２は、例えばワークの剛性係数を既知であって、ワークの把持方向の寸法には公差の範囲でばらつきが含まれ、ワークを所定把持位置（例えばハンドの中心位置など）で位置決めしたい場合に、実施することができる。
【００８８】
図１１は、図５と同様の様式によって、本実施形態２に係るワークの一例を示している。以下では、実施形態２として、図１１に示すようなワークＷ１ｄの組立を行う場合の把持制御について説明する。以下では、ハードウェアや制御系の構成について、異なる部分について図示し、また説明するものとし、実施形態１と同様の部分については上述同様の構成ならびに作用が可能であるものとし、その詳細な説明は省略するものとする。
【００８９】
また、以下では、実施形態１と同一ないし同等の部材や制御機能については、同一ないし類似の参照符号表記を用いる。特にハンド３００の関節や力センサなどの配置に係るハードウェア構成は、実施形態１の図２に示したものと同等であるものとする。
【００９０】
ワークＷ１ｄは、実施形態１の図１のワークＷ１と同様に、ワークＷ２が組付くための組付部（凹部）を有するものとする。ワークＷ１ｄは、例えば、矩形断面の物体（ワーク種類：５００１）で、ハンド３００の把持形態（５００２）は２指対向（関節Ｊ４、Ｊ５が共に０°）、把持パターン（５００３）は外形把持とする。把持制御形態（５００４）に示すように、ワークＷ１ｄは２指把持であり、制御パターンは［ＰＦＰＰＰ］が選択される。また、ワークＷ１ｄは、２指および３指で把持する方向の寸法にばらつきがあるものとする。また、ワークＷ１ｄは、剛体ではなくバネ性を有し、本実施形態では１０Ｎ／ｍｍの剛性係数を有するものとする。
【００９１】
本実施形態では、実施形態１と同様に、ロボットシステム１００を用い、ロボットシステム１００は、アーム本体２００、ハンド３００、アーム制御装置４００、ハンド制御装置５００を備えるものとする。同様に、組立用部品であるワークＷ１ｄは、ワーク載置台Ｓ１上に載置され、被組立対象物であるワークＷ２は、ワーク固定台Ｓ２上に固定されている。同様に、ワークＷ１ｄとワークＷ２の組立は、アーム本体２００とハンド３００を用いてワークＷ１ｄを移動させることにより、ワークＷ１ｄをワークＷ２の組付部に嵌合させることで行う。
【００９２】
実施形態１と差異がある部分は、ハンド制御装置５００とワークＷ１ｄである。以下に、実施形態１と差異があるハンド制御装置５００とワークＷ１ｄについて説明する。ハンド制御装置５００は、実施形態１と同様に、図１に示すＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、汎用信号インターフェイス５０４、モータドライバ５０５などから構成される。実施形態１と差異がある部分は、ＲＯＭ５０２とＲＡＭ５０３に格納される情報である。ＲＯＭ５０２には、後述する第二の実施形態における撓み補正を実現するハンド３００の制御プログラムが格納される。また、ＲＡＭ５０３には、把持指令テーブル５１１’、補正係数テーブル５１２を格納する。
【００９３】
本実施形態では、把持指令テーブル５１１’は図１２に示すように例えば構成する。図１２は、実施形態１の図６（把持指令テーブル５１１）と同等の形式で、把持指令テーブル５１１’の内容を示している。ここでは把持指令テーブル５１１’の各関節の制御パラメータ６００２のフィールド、特に最右端のフィールドとして、図６の把持指令テーブル５１１の内容に加え、ワーク情報としてワークＷ１ｄの剛性係数のフィールド追加した構成となっている。上記の通り、図１２では、この剛性係数のフィールドには、把持指令番号（２）に相当する把持制御で把持されるワーク（Ｗ１ｄ）の剛性係数（単位Ｎ／ｍｍ）として、上記の１０（Ｎ／ｍｍ）が格納されている。特に、把持指令番号（２）の把持制御は、関節Ｊ１、Ｊ３〜Ｊ５をそれぞれ０ｍｍ，５０ｍｍ，０ｄｅｇ，０ｄｅｇに位置制御し、Ｊ２を１０Ｎにて外形把持するものとなっている。
【００９４】
ハンド制御装置５００の制御要素は、実施形態１の図３のものと同様に、補正量計算部５２０、指令値生成部５３０、モータ制御部５４１〜５４５、モータドライバ５０５からなる。実施形態１と差異がある部分は、補正量計算部５２０である。本実施形態２の補正量計算部５２０は、ハンド３００がワークＷ１ｄを力制御で把持する場合、後述の演算によって、位置制御する指の補正量を取得する。
【００９５】
補正量計算部５２０は、実施形態１の図４と同様に、補正係数選択部５２１と補正量演算部５２２から構成される。補正係数選択部５２１は、実施形態１と同様である。本実施形態において、実施形態１と差異がある部分は、補正量演算部５２２である。本実施形態の補正量演算部５２２は、補正係数選択部５２１で選択された補正係数と、把持指令テーブル５１１’の力指令値、位置指令値、および、ワークＷ１ｄの剛性係数と、力センサ３４１、３４２の力現在値に基づいて、位置制御する指の補正量を演算する。
【００９６】
ここで、本実施形態におけるハンド制御装置５００の、ワークＷ１ｄを把持する際の把持位置制御について説明する。前提条件として、位置の補正は、把持方向のみに行うものとし、ワークＷ１ｄの位置決めは、ワークの把持方向の中心位置で行うものとする。
【００９７】
上述したハンド制御装置５００により撓み補正を行う手順は、実施形態１の図８と同様である。ただし、図８のステップＳ１０の演算は、実施形態１の場合と異なっており、以下では、図１３を参照してこのステップＳ１０の演算につき説明する。
【００９８】
図１３において、まず、補正係数選択部５２１で補正係数テーブル５１２に基づいて補正係数が選択される（ステップＳ１３）。例えば、ワークＷ１ｄを把持する場合、補正係数ａ３、ｂ３として、それぞれａ３５、ｂ３５（実際は数値）が選択される。
【００９９】
ここで、図１２のようにハンド３００の指３４０２、３４０３でワークＷ１ｄ把持する場合、ワークの剛性の関与は各指３４０２、３４０３がワークＷ１ｄと接触してこれを把持した前と後で異なる。従って、本実施形態のようにワークの剛性を考慮した把持制御では、ステップＳ１４のように各指３４０２、３４０３がワークＷ１ｄと接触してこれを把持した把持状態か否かを判定する。そして、把持状態が成立する前は剛性情報を用いた補正制御（位置制御）を行い、把持状態が成立した後では、剛性情報を用いずワークの実寸法を用いた補正制御（位置制御）を行う。
【０１００】
ステップＳ１４のワークＷ１ｄの把持前か否かの判定は、例えば補正量演算部５２２で力センサ３４２の出力値、即ち把持力の変化を監視することによって行うことができる。例えば、把持前は力センサ３４２には外力が加わっていないが、各指３４０２、３４０３がワークＷ１ｄと接触した時点で力センサ３４２は外力に応じた検出値を出力し始める。ワークＷ１ｄの把持前か否かの判定はこのような力センサ３４２の出力変化を介して検出することができる。ただし、ワークＷ１ｄの把持前か否かの判定は、例えば指の駆動源である各モータ３１１〜３１５の駆動量（モータ３１２の駆動電流値など）の変化や、エンコーダを介して検出した各指３４０２、３４０３の（相対）変位量の変化を介して検出してもよい。
【０１０１】
ステップＳ１４において、力センサ３４２の出力変化を介してワークＷ１ｄの把持前か否かの判定を行う場合は、次のような演算を行う。例えば、力センサ３４２の現在の検出値をＦ２とすると、ステップＳ１４は式（５）の不等式に示すような判定を行うことにより実現される。
【０１０２】
【数５】
2018075681.tif 000007
【０１０３】
ただし、上式（５）中のεは力センサ３４２の最小力分解能に相当する。数式５を満たす場合は、把持前であると判定しステップＳ１５に進み、数式５を満たさない場合は把持状態が成立したと判定し、ステップＳ１６に進む。
【０１０４】
ステップＳ１４で式（５）の条件を満たし、ステップＳ１５に進んだ場合は、ハンド３００はワークＷ１ｄを把持する前の状態である。この場合、補正量演算部５２２で補正係数ａ３、ｂ３と、さらに把持指令テーブル５１１’のワーク剛性係数、把持力である力指令値（Ｆｒｅｆ）から補正量を演算する。この場合のワークＷ１ｄの把持では、補正量は例えば下式（６）で演算する。
【０１０５】
【数６】
2018075681.tif 000008
【０１０６】
ここで、位置補正する指３４０３（第３指）の補正量がΔＸｒｅｆ３、指３４０２（第２指）に生じさせる把持力がＦｒｅｆ２、指ワークの剛性係数がＫｗであるものとする。上式（６）により、ハンド制御装置５００はワークの撓みＦｒｅｆ２/(２Ｋｗ)を考慮した撓み補正を含む位置制御を行うことができる。これにより、ハンド３００はワークＷ１ｄ把持する直前の状態でワーク１ｄの把持方向の中心位置で位置決めすることができる。
【０１０７】
一方、ステップＳ１４で式（５）の条件を満たさず、把持後であると判定しステップＳ１６に進んだ場合は、補正量演算部５２２で補正係数ａ３、ｂ３と、力センサ３４２の現在の出力値（力覚値）から補正量を演算する。この場合のワークＷ１ｄの把持では、例えば補正量は下式（７）で演算する。
【０１０８】
【数７】
2018075681.tif 000009
【０１０９】
ここで、位置補正する指３４０３（第３指）の補正量がΔＸｒｅｆ３、力センサ３４２の出力値がＦ２、指３４０２（第２指）の位置情報の現在値がＸ２、指３４０３（第３指）の位置情報の現在値がＸ３であるものとする。なお、指３４０２、３４０３の位置情報の現在値（Ｘ２、Ｘ３）は、エンコーダ３３２、３３３の値と減速機３２２、３２３の減速比などから計算することができる。
【０１１０】
上式（７）により、エンコーダ３３２、３３３の値から実際のワークＷ１ｄの幅のずれ（Ｘ２−Ｘ３）/２を推定し、同ワークを把持すべき把持位置を補正することができる。これにより、ワークＷ１ｄの寸法について公差がある場合においても、ハンド３００はワークＷ１ｄを把持した状態でワークの把持方向の中心位置で位置決めすることができる。
【０１１１】
本実施形態によれば、例えば、把持力１０Ｎにて把持する場合、指先先端換算の指駆動部の剛性係数を５０Ｎ/ｍｍとすると、指先の撓み量は１０Ｎ/(５０Ｎ/ｍｍ)＝０．２ｍｍとなる。また、ワークＷ１ｄの把持方向のばらつきを±０．０６ｍｍとすると、本実施形態の撓み補正を用いることで、ワーク位置決め精度は０．２３ｍｍ（＝０．２ｍｍ＋０．０６/２）程度、向上させることができる。
【０１１２】
以上説明したように、本実施形態の把持制御によれば、ワークの剛性情報を用いて把持位置を補正するための補正演算を行うことができる。このため、ワークが把持力によって変形し、ワーク寸法にばらつきが生じる可能性がある場合でも、把持力による指の撓みをハンドの指先位置で補正することができ、高精度な把持位置制御が可能であり、ワーク位置決め精度を向上させることができる。
【０１１３】
なお、以上述べた実施形態１および実施形態２の撓み補正における制御手順は例えばハンド制御装置５００により実行される。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体をハンド制御装置５００に供給し、ハンド制御装置５００のＣＰＵ５０１が記録媒体に格納されたプログラムを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した各実施の形態の機能を実現することになり、プログラム自体およびそのプログラムを記録した記録媒体は本発明を構成することになる。ただし、アーム制御装置４００がハンド３００の制御も行うように構成されている場合には、上述の把持制御は、アーム制御装置４００側で実施してもよい。その場合には、上述の把持制御を行うための制御プログラムは、アーム制御装置４００の制御プログラムの一部として実装することも可能である。
【０１１４】
また、上述の各実施形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ５０２或いはＲＡＭ５０３であり、ＲＯＭ５０２或いはＲＡＭ５０３にプログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。本発明を実施するためのプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスクなどを用いることができる。
【０１１５】
本発明は、上述の実施例の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステムまたは装置に供給しそのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１１６】
１００…ロボットシステム、２００…アーム本体、３００…ハンド、３４０１〜３４０２…指（第１指〜第３指）、３１１〜３１５…モータ、３２１〜３２５…減速機、３３１〜３３５…エンコーダ、３４１、３４２…力センサ、３５１〜３５３…リンク、４００…アーム制御装置、５００…ハンド制御装置、５０１…ＣＰＵ、５０２…ＲＯＭ（記録媒体）、５０３…ＲＡＭ（記録媒体）、５０４…汎用信号インターフェイス、５０５…モータドライバ、５１１、５１１’…把持指令テーブル、５１２…補正係数テーブル、５２０…補正量計算部、５２１…補正係数選択部、５２２…補正量演算部、５３０…指令値生成部、５４１〜５４５…モータ制御部、５４６…位置制御部、５４７…力制御部、５４８…制御モード切替部、６００…基台、Ｊ１、Ｊ２、Ｊ３、Ｊ４、Ｊ５…関節、Ｓ１…ワーク載置台、Ｓ２…ワーク固定台、Ｗ１、Ｗ２…ワーク。
【図１】
2018075681.tif 000010
【図２】
2018075681.tif 000011
【図３】
2018075681.tif 000012
【図４】
2018075681.tif 000013
【図５】
2018075681.tif 000014
【図６】
2018075681.tif 000015
【図７】
2018075681.tif 000016
【図８】
2018075681.tif 000017
【図９】
2018075681.tif 000018
【図１０】
2018075681.tif 000019
【図１１】
2018075681.tif 000020
【図１２】
2018075681.tif 000021
【図１３】
2018075681.tif 000022