(57)【要約】【課題】  ワークを位置決めしつつ一定の把持力で把持し、高速にワークの把持から搬送を行い、組付を行うロボットハンドを提供する。【解決手段】  ロボットハンドの把持処理において、力制御のみの把持制御から位置制御のみの把持制御に切換える際、力制御時に所望の把持力になったときに記憶した把持力制御値で把持部に力をかけながら、位置制御を実行する。【選択図】  図５
2018202497.tif 000002
【特許請求の範囲】
【請求項１】
複数の把持部により対象物を把持するロボットハンドにおいて、
前記把持部の前記対象物に対する把持力を制御する力制御部と、
前記把持部の前記対象物に対する把持位置を制御する位置制御部と、
前記力制御部の把持力制御値を記憶する記憶部と、
前記力制御部による力制御と、前記位置制御部による位置制御とを切り換え可能な制御切換部とを備え、
前記制御切換部は、前記力制御から前記位置制御への切り換えに際し、前記記憶部に記憶されている前記切り換え直前の前記把持力制御値を前記把持部に作用させた状態で、前記位置制御を行うことを特徴とするロボットハンド。
【請求項２】
請求項１に記載のロボットハンドにおいて、前記力制御部による前記対象物に対する把持力を検出する検出部を備え、
前記力制御部は目標把持力と前記検出部から検出された把持力との差が所定回数連続で所定の閾値内に収まっていた場合に力制御完了と判定し、
前記制御切換部は前記力制御から前記位置制御への切り換えに際し、前記記憶部に力制御完了と判定した時の前記把持力制御値を記憶し、前記把持部に該把持力制御値を作用させた状態で、前記位置制御を行うことを特徴とするロボットハンド。
【請求項３】
請求項２に記載のロボットハンドにおいて、
前記力制御部は、前記把持部が前記対象物に接触したら、前記目標把持力と前記検出部から検出された把持力との差の極値が前記閾値内に収まっているかを、前記検出部からの前記対象物に対する把持力の時刻歴応答の波形により判定することを特徴とするロボットハンド。
【請求項４】
請求項３に記載のロボットハンドにおいて、
前記力制御部は、
前記波形から振動の周波数を特定し、
前記極値の判定で前記閾値内と判定された場合は、判定までに要した検出回数を前記所定回数とし、
前記極値の判定で前記閾値外と判定された場合は、前記特定された周波数から求まる周期の１／２周期よりも大きく、３／４周期よりも小さい時間まで把持動作を継続し、前記極値が前記閾値内と判定されるまでに要した検出回数を前記所定回数とすることを特徴とするロボットハンド。
【請求項５】
請求項１から請求項３のいずれか１項に記載のロボットハンドをロボットアームに備えたロボット装置。
【請求項６】
対象物を把持する把持部の前記対象物に対する把持力を制御する力制御部と、前記把持部の前記対象物に対する把持位置を制御する位置制御部と、前記力制御部による力制御と前記位置制御部による位置制御とを切り換え可能な制御切換部とを備えたロボットハンドの制御方法であって、
前記力制御部による把持力制御値を記憶部に記憶し、
前記制御切換部による前記力制御から前記位置制御への切り換えに際し、前記記憶部に記憶されている前記切り換え直前の前記把持力制御値を把持部に作用させた状態で、前記位置制御を行うことを特徴とするロボットハンドの制御方法。
【請求項７】
請求項６に記載のロボットハンドの制御方法において、前記力制御部による前記対象物に対する把持力を検出する検出部を備え、
前記力制御部は目標把持力と前記検出部から検出された把持力との差が所定回数連続で所定の閾値内に収まっていた場合に力制御完了と判定することを特徴とするロボットハンドの制御方法。
【請求項８】
請求項７に記載のロボットハンドの制御方法において、
前記力制御部は、前記把持部が前記対象物に接触したら、前記目標把持力と前記検出部から検出された把持力との差の極値が前記閾値内に収まっているかを、前記検出部からの前記対象物に対する把持力の時刻歴応答の波形により判定することを特徴とするロボットハンドの制御方法。
【請求項９】
請求項６から請求項８のいずれか１項に記載のロボットハンドの制御方法を実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを一定の把持力で把持し、位置ずれ等を生じることなく、搬送動作へ高速に切り換えることの可能なロボットハンド、そのロボットハンドの制御方法に関する。
【背景技術】
【０００２】
近年、工場の生産ラインにおいて、作業の自動化・省人化・効率化を図るために、ロボットによる自動組立を行うケースが多くなっている。そこでは、多関節アームなどのロボット本体とハンドなどの把持機構を組合せたシステムが利用されている。組付では、組付位置までワークをずれなく把持し、搬送しなければならない。そのためには、ワークを位置決めしつつ一定の把持力で把持する必要がある。また、把持装置（ハンド）としては把持開始から組付までにかかる時間を短縮する必要がある。
【０００３】
ワークを位置決めしつつ一定の把持力で把持する例としては、ハンドに取り付けられた力センサの値によって、把持指の制御モードである位置制御と力制御を切り換えることで安定把持する方法が開示されている（特許文献１参照）。この方法では、位置制御でワークの位置決めを実現し、力制御で一定の把持力での把持を実現している。
【０００４】
特許文献２では、ハンド駆動用アクチュエータ等において速度制御からトルク制御へ切り換えている。異なる制御への切り換えをスムーズに実現する方法として、切換直前と直後のモータへの指令値がほぼ一致するようにトルク、速度の目標値を演算している。こうすることでモータ指令値に突変を生じることなく滑らかに切り換えることが可能となる。（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−６９５８４号公報
【特許文献２】特開平０９−０４４２５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された把持方法は、力制御から位置制御への切り換え時、力制御による制御値が０になるため、ワークの剛性により把持部が押し返されて発生する把持力変動が生じてしまう。ゆえに、位置制御で力制御と同等の把持力を発生させるためには、位置制御で生じる偏差が位置制御の積分器に積分値として溜るまで待たなければならず、移行時間がかかるという問題点があった。
【０００７】
また、特許文献２に記載された方法でも切り換え時にモータへの指令値を徐々に移行しなければならないため、特許文献１と同様に移行時間がかかるという問題点があった。
【０００８】
本発明の課題は、上述の事情に鑑み、ワークを位置決めしつつ一定の把持力で把持し、高速に把持から搬送動作へ切り換えることができるロボットハンド、そのロボットハンドの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明では、複数の把持部により対象物を把持するロボットハンドにおいて、前記把持部の前記対象物に対する把持力を制御する力制御部と、前記把持部の前記対象物に対する把持位置を制御する位置制御部と、前記力制御部の把持力制御値を記憶する記憶部と、前記力制御部による力制御と、前記位置制御部による位置制御とを切り換え可能な制御切換部とを備え、前記制御切換部は、前記力制御から前記位置制御への切り換えに際し、前記記憶部に記憶されている前記切り換え直前の前記把持力制御値を前記把持部に作用させた状態で、前記位置制御を行うことを特徴とするロボットハンドを採用した。
【発明の効果】
【００１０】
本発明によれば、ロボットハンドの把持処理において、力制御のみの把持制御から位置制御のみの把持制御に切り換える際、力制御時に所望のワーク把持力になったときに記憶した把持力制御値を把持部に与えながら、位置制御を行うことができる。このような制御を行うことにより、把持が位置制御に切り換わった際の把持力変動を小さくできる。そのため、移行時間を必要とせず、ワークの把持から搬送を素早く始めることができる。これにより、ワークを位置決めしつつ一定の把持力で把持し、高速に把持から搬送を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の全ての実施形態に係るロボットシステムの概略構成を示した説明図である。
【図２】本発明の第１の実施形態に係るロボットハンドの概略構成を示した説明図である。
【図３】本発明の第１の実施形態に係るハンド制御装置の制御概略を示した説明図である。
【図４】本発明の第１の実施形態に係る把持指令テーブルの一例を示した説明図である。
【図５】本発明の第１の実施形態、第２の実施形態に係るモータ制御部のブロック線図である。
【図６】本発明の第１の実施形態、第２の実施形態に係る把持処理手順を示すフローチャート図である。
【図７】本発明の第１の実施形態に係る実施形態と比較例との把持力の時刻歴応答を示す図である。
【図８】本発明の全ての実施形態に係る力制御完了カウント数の自動設定方法を示すフローチャート図である。
【図９】本発明の全ての実施形態に係る対象物を把持する際の把持力の時刻歴応答を経過時間ごとに表した図である。
【図１０】本発明の第２の実施形態に係るロボットハンドの概略構成を示した説明図である。
【図１１】本発明の第２の実施形態に係るハンド制御装置の制御概略を示した説明図である。
【図１２】本発明の第２の実施形態に係る把持指令テーブルの一例を示した説明図である。
【図１３】本発明の第３の実施形態に係るモータ制御部のブロック線図である。
【図１４】本発明の第３の実施形態に係る把持処理手順を示すフローチャート図である。
【図１５】本発明の第３の実施形態に係る実施形態と比較例との把持力の時刻歴応答を示す図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明を実施するに好適な実施形態につき詳細に説明する。なお、以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において変更することができる。また、各実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１３】
＜第１の実施形態＞
本発明の第１の実施形態について、図１〜９を用いて説明する。図１は、本発明のロボットハンドを用いた本実施形態のロボットシステムの概略構成である。
【００１４】
図１において、本実施形態のロボットシステム１００は、アーム本体２００、ハンド３００、ロボットシステム全体を制御するシステム制御装置４００で構成される。さらに、外部よりロボットシステムに移動位置、移動ルート等の教示を行うためのティーチングペンダント７００等がある。
【００１５】
システム制御装置４００内には、アーム本体２００を制御するアーム制御装置６００、ハンド３００を制御するハンド制御装置５００、各種制御プログラムやデータを記憶した記憶装置８００が含まれている。それらは、それぞれアーム本体２００、ハンド３００を駆動制御して、ワーク載置台Ｓ１上に載置されている組立用部品であるワークＷ１を把持し、ワーク固定台Ｓ２上に固定されている被組立対象物であるワークＷ２へと搬送する。本実施例は、例えばワークＷ１を把持し、搬送動作へ移行する際に適用である。
【００１６】
なお、システム制御装置４００、すなわちアーム制御装置６００、ハンド制御装置５００はマイクロプロセッサなどから成るＣＰＵによって構成されている。記憶装置８００はロボットの各種動作に応じて対応する駆動部を制御するためのプログラムや、それらの制御に必要なデータ等を記憶したＲＯＭと、ロボットシステムを制御する上で必要なデータ、設定値、プログラム等を展開する。また、ＣＰＵの作業領域として使用するＲＡＭを備えている。ティーチングペンダント７００をはじめとする外部機器は、不図示の汎用入出力インターフェイスＩ／Ｏなどによって接続されている。
【００１７】
アーム本体２００は、本実施形態では、多関節のロボットアームであり、アーム本体２００の根元は基台に固定され、アーム本体２００の先端には、エンドエフェクタとしてハンド３００が装着されている。このハンド３００を介してワークＷ１に対して把持動作を行う。また、アーム本体２００の各関節には、各関節を各々駆動する駆動源としてのモータ（不図示）と、モータの回転角度を検知する検知器としてのエンコーダ（不図示）が設けられている。
【００１８】
アーム制御装置６００は、ハンド３００の移動先であるアーム先端の目標位置及び姿勢に対して、アーム本体２００の各関節の取るべき角度を計算し、各関節のモータを制御するサーボ回路（不図示）へと指令値を出力し、アーム２００の各関節を駆動制御する。これによってハンド３００に把持されたワークＷ１を目標位置へと搬送し、組み付けを行うことができる。
【００１９】
図２は、ハンド３００の概略構成を示した説明図である。ハンド３００は、２本の把持指３４１、３４２によって構成され、開閉駆動機構Ｊ１、Ｊ２を有している。これらの把持指は対象物を把持する把持部として機能し、ワークＷ１を把持するのに用いられる。ハンド３００の開閉駆動機構Ｊ１、Ｊ２には、各々駆動する駆動手段としてのモータ３１１、３１２が設けられ、それぞれ回転軸には、把持指３４１、３４２に形成されたラック３４１ａ、３４２ａに常時噛合するギヤ３２１、３２２が直結されている。モータ３１１、３１２を回転することにより把持指３４１、３４２を開閉制御しワークを把持することができる。またモータ３１１、３１２には各々の回転角度を検知するエンコーダ３３１、３３２が設けられる。このエンコーダで検知されたモータの回転角度から把持指３４１、３４２の開閉位置を知ることができる。
【００２０】
また第１指３４１先端のワークと接触する把持面には力センサ３５１が設けられ、把持指に加わる把持方向の外力（ワークを把持した際に、ワークから受ける反力）を計測することができる。（把持力の検出部として作用する。）ハンド制御装置５００は、前述のように、システム制御装置４００内にＣＰＵによって構成されているが、その機能をブロック図で表すと図３のようになる。
【００２１】
図３は、ハンド制御装置５００の構成を示す概略図である。指令値生成部５３０と、開閉駆動機構Ｊ１、Ｊ２のモータ３１１、３１２を駆動制御するモータ制御部５４１、５４２、モータ制御部５４１、５４２より出力された制御値に基づいてモータ３１１、３１２を駆動するモータドライバ５５１、５５２からなる。
【００２２】
また把持指令値記憶部５１０内には把持指令テーブル５１１が記憶されており、把持指令値生成部５３０によって参照され、ハンド３００の各把持指に対する指令に基づいて、駆動制御に用いる各種パラメーターを決定するために用いられる。
【００２３】
ここで図４を用いて把持指令テーブル５１１の内容について説明する。同図は本実施形態に係る把持指令テーブルの一例を示した説明図である。把持指令テーブル５１１は、予め把持指令の番号毎に定義された把持パターン、把持モード、各開閉駆動機構Ｊ１、Ｊ２の目標把持位置、目標把持力、力制御完了幅、力制御完了カウント数の項目が設定される。開閉駆動機構Ｊ１は目標把持位置、目標把持力、力制御完了幅、力制御完了カウント数が設定される。開閉駆動機構Ｊ２は目標把持位置が設定される。
【００２４】
把持パターンは、どの開閉駆動機構のモータが位置制御するか、あるいは、力制御するかが設定される。位置制御する開閉駆動機構をＰ、力制御する開閉駆動機構をＦとし、記号（Ｐ、Ｆ）の順番を各開閉駆動機構の番号に対応させると、本実施形態では、把持パターンは以下の２種類が設定される。つまり、［ＰＰ（すべての開閉駆動機構を位置制御）］、［ＦＰ（開閉駆動機構Ｊ１のみ力制御で、残りの開閉駆動機構Ｊ２は位置制御）］の２種類である。把持モードは、外形把持と内形把持のいずれかが設定される。外形把持とはワークをワークの外側から把持する把持モードであり、内形把持とはワークをワークの内側から把持する把持モードである。
【００２５】
各開閉駆動機構の目標把持位置は、把持ストロークに対応した値が設定される。各開閉駆動機構の目標把持力は、各指の先端に発生させる把持力に対応した値が設定される。各開閉駆動機構の力制御完了幅および力制御完了カウント数は、後述する把持処理において、力制御完了を判定する際に用いる設定パラメーターである。力制御完了幅は、目標把持力に対して力制御完了とみなす幅である。例えば、目標把持力５Ｎ、力制御完了幅１Ｎとした場合、力センサ値が５±１Ｎ、すなわち、４Ｎ〜６Ｎの範囲にあるとき、力制御完了とみなす。力制御完了カウント数は、制御周期において、何回連続で力制御完了幅に入れば力制御完了とみなすカウント数である。力制御完了カウント数は３〜２０の範囲で設定すると、経験的に力が安定するので、好適である。なお、本実施形態では、開閉駆動機構Ｊ１のみが力制御の設定が可能である。
【００２６】
指令値生成部５３０は、把持指令と把持指令テーブル５１１に基づいて、各モータ３１１、３１２への制御モード（位置制御あるいは力制御）、目標把持位置、目標把持力、力制御完了幅、力制御完了カウント数を各モータ制御部５４１、５４２に渡す。
【００２７】
なお、各モータ３１１、３１２への制御モードが位置制御の場合は目標把持位置が、各モータ３１１、３１２への制御モードが力制御の場合は目標把持力、力制御完了幅、力制御完了カウント数が各モータ制御部５４１、５４２で用いられる。
【００２８】
なお、本実施形態では、開閉駆動機構Ｊ１のモータ３１１のみ位置制御と力制御のどちらかが選択でき、開閉駆動機構Ｊ２のモータ３１２は位置制御のみ可能である。これは開閉駆動機構Ｊ２によって駆動される把持指３４２に力センサが配されていないことによる。そしてモータ制御部５４１、５４２は、指令値生成部５３０から渡された制御モードに応じてモータドライバ５５１、５５２へ各モータ３１１、３１２の制御値を渡す。
【００２９】
図５はモータ制御部５４１、５４２の構成及び動作を説明するためのブロック図である。
【００３０】
モータ制御部５４１、５４２の機能は実質的に同一であるので、例として、開閉駆動機構Ｊ１のモータ制御部５４１について示している。
【００３１】
同図において、モータ３１１への制御モードが位置制御の場合は、目標把持位置とエンコーダ３３１からの値に基づき、位置制御部５４６でフィードバック制御を行い、把持位置制御値を出力する。モータ３１１への制御モードが力制御の場合は、目標把持力と力センサ３４１からの値に基づき、力制御部５４７でフィードバック制御を行い、把持力制御値を出力する。
【００３２】
記憶部５４９はＲＡＭによって構成され、後述する把持処理手順に基づき、力制御部５４７からの完了判定信号がＯＮになったとき、そのときの力制御部５４７から出力される把持力制御値を記憶する。
【００３３】
制御切換部５４８は、モータ３１１への制御モードと後述する把持処理手順に基づいて、位置制御部５４６からの接点３あるいは、力制御部５４７からの接点１、または、位置制御部５４６と記憶部５４９からの接点２のいずれかを選択する。制御切換部５４８の接点１に切り換えられた場合は、力制御部５４７の把持力制御値が制御切換部５４８から出力され、力制御が実行される。
【００３４】
制御切換部５４８の接点２に切り換えられた場合は、位置制御部５４６と記憶部５４９からの把持力制御値の和が制御切換部５４８から出力され、位置制御が実行される。
【００３５】
制御切換部５４８の接点３に切り換えられた場合は、位置制御部５４６の把持位置制御値が制御切換部５４８から出力され、把持指の位置制御が実行される。
【００３６】
このように制御することで、把持指に対して、目標とする把持力を制御する力制御から、把持指を目標位置へと制御する位置制御に切り換えた際、切換直前の把持力制御値、すなわち把持力を維持したまま、位置制御のみの把持制御に切り換えることができる。
【００３７】
実際のロボットアームの動作を説明すると、ワークＷ１は、ワークＷ２が組付く組付部（凹部）を有する。また、ワークＷ２は、ワークＷ１が組付くための組付部（凸部）を有する。ここで、本実施形態におけるハンド制御装置５００のワークＷ１の把持処理方法について説明する。前提条件として、アーム２００、ハンド３００をワークＷ１の把持直前位置まで移動した状態から開始するものとする。また力制御を行わない第２指は既に位置決めされ、後述する把持処理によって第１指が力制御でワークＷ１を把持するものとする。
【００３８】
ハンド制御装置５００により把持処理する手順を、図６に示すフローチャートにより説明する。例えばワークＷ１を図４の把持指令テーブル５１１の把持指令番号３で把持する場合について説明する。
【００３９】
まず、ハンド制御装置５００は、制御切換部５４８を接点１に切換、力制御を行う（ステップＳ１１）。把持指令番号３より、目標把持力は５Ｎとなる。制御切換部５４８から出力される制御値は力制御部５４７から出力された把持力制御値が用いられる。
【００４０】
次に、力制御部５４７において、目標把持力と力センサの計測値との差が所定回数連続で力制御完了幅に対応する範囲内（閾値内）か判断する（ステップＳ１２）。ここでは把持指令番号３より、力制御完了幅が１Ｎ、力制御完了カウント数３である。すなわち、目標把持力と力センサの計測値との差が、制御周期３回（力制御完了カウント数）連続で±１Ｎ（力制御完了幅）以内か判断する。前述の範囲内であれば力制御完了とみなし、力制御部５４７から完了判定信号をＯＮにして出力し、ステップＳ１３へ進む。前述の範囲外であれば、ステップＳ１１に戻る。ステップＳ１３では、記憶部５４９は、完了判定信号がＯＮに遷移したのを受けてから、力制御部５４７から出力された把持力制御値を記憶部５４９に保存する。
【００４１】
続いて、制御切換部５４８を接点２に切り換え位置制御を行う（ステップＳ１４）。なお、そのときの位置制御部５４６の目標把持位置は、完了判定信号がＯＮに遷移した時点で、そのときのエンコーダの現在位置に切り換えられる。これにより制御切換部５４８から出力される制御値は、接点２の入力、つまり記憶部５４９に保持された把持力制御値と、位置制御部５４６から出力された把持位置制御値との加算された値となる。また把持力の変動が所定の力完了幅内に収まるレベルまで減少しているため、ステップＳ１４に移行したタイミングを把持完了とみなすことができる。
【００４２】
本実施形態のハンド制御装置５００によれば、力制御のみの把持制御から位置制御のみの把持制御に切り換える際、力制御時に所望のワーク把持力になったときに記憶した把持力制御値でワークに把持力を作用させながら位置制御を行う。このような制御を行うことにより、ワーク把持制御において、力制御のみの把持制御から位置制御のみの把持制御に切り換わった際の把持力変動を小さく安定させることができる。そのため移行時間を必要とせず、ワークを把持から搬送へ素早く切り換えることができる。また搬送時にワークに加速度がかかっても位置制御されているので、ワークの位置がずれて把持が不安定になることがなく、正しい把持位置で組立を行うことができる。
【００４３】
図７は第１の実施形態と比較例とにおける、把持力の時刻歴応答を示す図である。ここで、第１の実施形態とは、上述のように把持処理を行った場合である。一方、比較例とは、図６のＳ１３の処理を飛ばし、Ｓ１４において接点２ではなく接点３に切り換えた場合、つまり単純に力制御のみの把持制御から位置制御のみの把持制御に切り換えた場合である。
【００４４】
図７より、第１の実施形態では、比較例に対して把持完了までの時間を短縮することができた。実験においては、約０．１秒程度短縮できることを確認している。比較例では、力制御のみの把持制御から直接位置制御のみの把持制御へ切り換えるため、力制御の把持力制御値がゼロとなり、ワークの剛性により指先が押し戻され、把持力変動が生じる。そのため元の位置と把持力に戻ろうと位置制御部５４６が働くが、偏差をゼロにし把持完了するまでは時間がかかる。
【００４５】
一方、第１の実施形態では記憶部５４９に記憶されている「力制御から位置制御へと切り換えた直前の把持力制御値」を、位置制御の初期値として設定するため、把持指に力をかけたまま位置制御へ移行できる。ゆえに把持力変動が小さく、短時間で把持完了することができる。
【００４６】
なお、把持指令テーブル５１１の力制御完了カウント数は、ユーザが設定しても良いが、以下の方法で自動化が可能である。
【００４７】
以下、力制御完了カウント数を自動設定する方法を図８に示すフローチャートと図９に示す力センサから検出された把持力の時刻歴応答を経過時間ごとに表した図により説明する。図９の黒点は実際に検出された波形を示し、白点は予想波形を示す。点の数が把持力の検出回数となる。前提条件として、アーム２００、ハンド３００をワークＷ１の把持直前位置まで移動した状態から開始するものとする。また、第２指は既に位置決めされ、後述する把持処理によって第１指が力制御でワークＷ１を把持するものとする。
【００４８】
まず図８に示すフローチャートを用いて説明する。ハンド制御装置５００は、力制御完了カウント数を自動設定するためのパラメーターを設定する（ステップＳ２１）。設定するパラメーターは、把持番号、力制御完了カウント数の取り得る範囲である。なお、前記パラメーターは、システム制御装置４００あるいはハンド制御装置５００の汎用信号インターフェイス（不図示）を介して外部のＰＣ（不図示）、ティーチングペンダント７００などで入力される。また、把持番号に紐付く把持動作は予め、力制御完了カウント数以外は把持指令テーブル５１１に入力済みとする。
【００４９】
次に、設定された把持番号に基づいて把持動作の実行が開始される（ステップＳ２２）。なお、この把持動作はステップＳ２７に入って停止するまで実行される。
【００５０】
続いて、力センサ３５１から計測された力センサ値から指がワークに接触したかをステップＳ２３で判定する。例えば、目標把持力の１０％以上の力センサ値が計測されたらワークに接触したとする。把持指がワークに接触していると判定したならば、そのときから力センサ値の時刻歴応答をログとして記憶部５４９に記録し始め、ステップＳ２４に進む。ワークに接触していないと判定したならば、ステップＳ２３の開始状態に戻り、把持動作を継続する。
【００５１】
さらに、目標把持力と力センサ値との差が力制御完了幅の範囲内（閾値内）かステップＳ２４で判断する。範囲内と判定したならば、ステップＳ２５に進む。範囲外（閾値外）と判定したならば、ステップＳ２４の開始状態に戻り、把持動作を継続する。
【００５２】
続いて、ステップＳ２３から記録している力センサ値の時刻歴応答から把持力波形の振動の周波数を特定する（ステップＳ２５）。本実施例では、以下の方法で把持力波形の振動の周波数を特定する。前提条件として、把持力波形は目標把持力に対して定常偏差を持たず、その応答は２次系で近似できるものとする。その時の把持のモデルは、次式のような単純なバネマスダンパ系の運動方程式で表される。
ｍａ＋ｃｖ＋ｋ（ｘ−ｘ０）＝ｆ      ・・・（数式１）
【００５３】
ただし、ｍは質量、ｃは粘性係数、ｋはバネ定数、ａは把持指の加速度、ｖは把持指の速度、ｘは把持指の変位、ｘ０はバネの釣合い点、ｆは把持力である。ここで、ｉサンプル目（カウント数）の速度ｖ（ｉ）、加速度ａ（ｉ）は、後退差分で離散化すると、次式で示される。
【００５４】
【数１】
2018202497.tif 000003
・・・（数式２）
【００５５】
【数２】
2018202497.tif 000004
・・・（数式３）
【００５６】
なお、Ｔｓはハンド制御装置５００の制御周期であり、ｘ（０）＝ｘ（−１）＝ｘ（１）とする。ｉサンプル目の運動方程式は、数式１より、次式で示される。
【００５７】
【数３】
2018202497.tif 000005
・・・（数式４）
【００５８】
１〜ｎサンプル目の応答が得られたとき、運動方程式は次式で示すことができる。
【００５９】
【数４】
2018202497.tif 000006
・・・（数式５）
【００６０】
ここで、
【００６１】
【数５】
2018202497.tif 000007
・・・（数式６）
とすると、数式５は次式となる。
Ａθ＝ｂ      ・・・（数式７）
【００６２】
Ａ、ｂは既知であり、θは独立な４要素からなるので、ｎが４以上あれば未知変数θを求めることができる。数式７にＡの逆行列を掛けることでθを求める。
【００６３】
θ＝Ａ−１ｂ      ・・・（数式８）
【００６４】
よって、θの要素であるｍ、ｋを求めることができるので、求める把持力波形の振動の周波数をｆｒｅとすると、次式で導出される。
【００６５】
【数６】
2018202497.tif 000008
・・・（数式９）
【００６６】
なお、周波数の特定には、上述以外のモデルを用いたパラメーター推定方法を用いても良い。また、ワーク接触と判断してからのカウント数ｎが４より小さい場合は、数式８でＡの逆行列が取れないので、周波数を特定せずに次の制御周期まで把持動作を延長する。
【００６７】
さらに、ステップＳ２５で特定した周波数から、力センサ値の時刻歴応答において、把持力波形の極値を検出できているか判定する（ステップＳ２６）。ここでいう把持力波形の極値とは、波形が正弦波と仮定したときの極大値または極小値のことである。つまり、ステップＳ２５で特定した周波数の把持力波形の極大値または極小値が力制御完了幅の範囲内か判定する。範囲内と判定したならば、ステップＳ２７に進む。範囲外と判定したならば、ステップＳ２８に進む。
【００６８】
続いて、力センサ値の時刻歴応答から力制御完了カウント数を登録する（ステップＳ２７）。力センサ値の時刻歴応答において、力制御完了幅に現時刻まで連続して入り続けた時間をｔｒ、ハンド制御装置５００の制御周期をＴｓとすると、力制御完了カウント数はｔｒ／Ｔｓで求められる。力制御完了カウント数の登録は、把持指令テーブル５１１（図４）の該当把持番号の力制御完了カウント数を更新することで行う。力制御完了カウント数を登録後、把持動作および力センサ値の時刻歴応答のログ記録を停止し、終了する。
【００６９】
なお、力制御完了カウント数が力制御完了カウント数の取り得る範囲を超えた場合は、把持指令テーブル５１１の更新は行わず、力制御完了カウント数が取り得る範囲から超えた旨をユーザに通知して終了する。
【００７０】
ステップＳ２８に進んだ場合は、ステップＳ２５で特定した振動の周波数の逆数をとり、把持力波形の振動の周期を求める。そしてその周期の１／２周期よりも長く、３／４周期よりも短い時間まで把持動作を継続する。極値は波形の周期の１／２周期から３／４周期までに出現するため、把持動作の継続時間を上記のように設定することで極値を検出する確実性を増すことができる。
【００７１】
ステップＳ２８で把持動作を継続したらステップＳ２５の開始状態に戻る。これはステップＳ２６で力制御完了幅の範囲内で把持力波形の極値を検出できなかったため、検出できる時間分だけ把持動作を進めることを図る。以上の方法により、力制御完了カウント数を自動設定することができる。
【００７２】
次に図９を用いて、実際の動作で説明する。同図において、ｔ＝３Ｔｓ［ｍｓ］のとき、検知した把持力が把持力指令値の１０％を越えており、ワークと接触したものと判断する（ステップＳ２３）。
【００７３】
ｔ＝５Ｔｓ［ｍｓ］のとき、検知した把持力が力制御完了幅の範囲内であると判断する（ステップＳ２４）。しかし、ワーク接触と判断してから４カウントより小さい（図９では３カウント）ので、周波数を特定せずに次の制御周期まで把持動作を延長する。
【００７４】
ｔ＝６Ｔｓ［ｍｓ］のとき、検知した把持力が力制御完了幅の範囲内であると判断し（ステップＳ２４）、ワーク接触と判断してから４カウント以上より、波形から周波数を求める（ステップＳ２５）。しかし、現時点まで検知している波形（黒点）では、まだ把持力波形の極値が検知できていないと判断するため（ステップＳ２６）、極値が取れるように白点まで把持動作を延長する（ステップＳ２８）。
【００７５】
ｔ＝７Ｔｓ［ｍｓ］のとき、検知した把持力が力制御完了幅の範囲外であると判断し（ステップＳ２４）、ステップＳ２４の前まで戻る。
【００７６】
ｔ＝９Ｔｓ［ｍｓ］のとき、検知した把持力が力制御完了幅の範囲内であると判断し（ステップＳ２４）、ワーク接触と判断してから４カウント以上より、波形から周波数を求める（ステップＳ２５）。しかし現時点まで検知している波形（黒点）では、把持力波形の極値が検知できているが、その極値が力制御完了幅の範囲外と判断するため（ステップＳ２６）、ピーク極値が力制御完了幅の範囲内で取れるように白点まで把持動作を延長する（ステップＳ２８）。
【００７７】
ｔ＝１２Ｔｓ［ｍｓ］のとき、検知した把持力が力制御完了幅の範囲内であると判断し（ステップＳ２４）、ワーク接触と判断してから４カウント以上より、波形から周波数を求める（ステップＳ２５）。現時点まで検知している波形（黒点）が、把持力波形の極値を検知し、その極値が力制御完了幅の範囲内と判断する（ステップＳ２６）。
【００７８】
力制御完了幅に現時刻まで連続して入り続けた時間をｔｒ、ハンド制御装置５００の制御周期をＴｓとすると、力制御完了カウント数をｔｒ／Ｔｓで求める（図９では４カウント）。その後、力制御完了カウント数を登録し、把持動作および力センサ値の時刻歴応答のログ記録を停止し、終了する（ステップＳ２７）。
【００７９】
以上の処理を行うことにより、把持力変動が任意で定めた力制御完了幅内であることを素早く判定でき、力制御完了カウント数を自動設定することができる。また、把持動作の延長を把持力波形の極値が確実に検出できる範囲の時間で設定しているため、力制御完了の判定の精度を向上させることができる。
【００８０】
また、把持が力制御のみの把持制御から位置制御のみの把持制御に切換った際の把持力変動を小さくできる。そのため、移行時間を必要とせず、ワークを素早く把持から搬送に切り換えることができる。これにより、ワークを位置決めしつつ一定の把持力で把持し、高速に把持から搬送に切り換え、組立を行うことができる。
【００８１】
＜第２の実施形態＞
上述の第１の実施形態では、２指を有するロボットハンドである場合について説明した。しかしながら、本発明は、３指を有するロボットハンドである場合においても実施できるものである。
【００８２】
ロボットシステムの構成自体は、図１で説明した第１の実施形態と同様であるため、第１の実施形態と同一ないし相当する構成については同一の参照符号を用い、それらの説明は省略ないし簡略化するものとし、第１の実施形態と異なる点を中心に説明する。
【００８３】
本実施形態では、図１に示す第１の実施形態と同様に、ロボットシステム１００を用い、ハンド３００の代わりに後述するハンド３００’を用いる。つまりロボットシステム１００は、アーム本体２００、ハンド３００’、アーム制御装置６００’、ハンド制御装置５００’を備える。同様に、組立用部品であるワークＷ１は、ワーク載置台Ｓ１上に載置され、被組立対象物であるワークＷ２は、ワーク固定台Ｓ２上に固定されている。本実施例は、例えばアーム本体２００とハンド３００’を用いてワークＷ１を把持し、搬送動作へ移行する際に適用である。
【００８４】
第１の実施形態と異なる部分は、ハンド３００’とハンド制御装置５００’であり、以下にハンド３００’とハンド制御装置５００’について説明する。
【００８５】
図１０は、ハンド３００’の概略構成を示した説明図である。ハンド３００’は、３本の指を有し、全体で３自由度の開閉駆動機構Ｊ１’、Ｊ２’、Ｊ３’を有している。各指はお互いに１２０度等配に配置され、一つの開閉駆動機構Ｊ１’、Ｊ２’、Ｊ３’を有し、ワークＷ１を把持するのに用いられる。ハンド３００’の開閉駆動機構Ｊ１’、Ｊ２’、Ｊ３’には、各開閉駆動機構を各々駆動する駆動手段としてモータ３１１’、３１２’、３１３’が設けられる。指は、モータ３１１’、３１２’、３１３’に直結した各々ギヤ３２１’、３２２’、３２３’を介して駆動される。また、モータ３１１’、３１２’、３１３’にはモータの各々の回転角度を検知するエンコーダ３３１’、３３２’、３３３’が設けられる。そして、各指の先端に力センサ３５１’、３５２’、３５３’が設けられ、指に加わる把持方向の外力を計測することができる。
【００８６】
またハンド制御装置５００’は、第１の実施形態と同様に、図１に示すシステム制御装置４００’内において、ＣＰＵ、ＲＯＭ、ＲＡＭ、汎用信号インターフェイスなどから構成されている。しかし、ＲＯＭに記憶されている制御プログラム及び把持指令テーブル５１１’の内容は異なる。
【００８７】
図１１は本実施形態の概略構成を示すもので、第１の実施形態と差異がある部分を簡単に言うと、開閉駆動機構Ｊ３’を制御する機能が追加になっている。ハンド制御装置５００’の制御構成は指令値生成部５３０’、モータ制御部５４１’、５４２’、モータドライバ５０５’からなる。指令値生成部５３０’は、把持指令と把持指令テーブル５１１’に基づいて、各モータ３１１’、３１２’、３１３’へ制御パラメーターを各モータ制御部５４１’、５４２’、５４３’に渡す。ここでいう制御パラメーターは、制御モード（位置制御あるいは力制御）、目標把持位置、目標把持力、力制御完了幅、力制御完了カウント数である。
【００８８】
なお各モータ３１１’、３１２’、３１３’への制御モードが位置制御の場合は目標把持位置が各モータ制御部５４１’、５４２’、５４３’で用いられる。また各モータ３１１’、３１２’、３１３’への制御モードが力制御の場合は目標把持力、力制御完了幅、力制御完了カウント数が各モータ制御部５４１’、５４２’、５４３’で用いられる。
【００８９】
なお本実施形態では、すべてのモータ３１１’、３１２’、３１３’が位置制御と力制御のどちらかを選択できる。各モータのモータ制御部５４１’、５４２’、５４３’は、指令値生成部５３０’から渡された制御モードに応じてモータドライバ５５１’、５５２’、５５３’へ各モータ３１１’、３１２’、３１３’の制御値を渡す。
【００９０】
モータ制御部５４１’、５４２’、５４３’の機能は同一であり、モータ制御部５４１’に着目すると、その構成及び動作は、図３に示す第１の実施形態と同様である。
【００９１】
把持指令テーブル５１１’（図１２）について説明する。把持指令テーブル５１１’は、第１の実施形態の把持指令テーブル５１１（図４）と異なり、すべての開閉駆動機構Ｊ１’、Ｊ２’、Ｊ３’において、位置制御または力制御の関連パラメーターが設定されるように構成されている。
【００９２】
すなわち、把持指令テーブル５１１’は、把持指令の番号毎に把持パターン、把持モード、各開閉駆動機構Ｊ１’、Ｊ２’、Ｊ３’の目標把持位置、目標把持力、力制御完了幅、力制御完了カウント数の項目が設定される。本実施形態では、把持パターンは以下の８種類の内いずれかが設定される。つまり、［ＰＰＰ］、［ＦＰＰ］、［ＰＦＰ］、［ＰＰＦ］、［ＦＦＰ］、［ＦＰＦ］、［ＰＦＦ］、［ＦＦＦ］の８種類であり、３本の把持指を用いてより多様な制御が可能となっている。
【００９３】
ここで、本実施形態におけるハンド制御装置５００’の、ワークＷ１の把持処理方法について説明する。前提条件として、アーム２００、ハンド３００’をワークＷ１の把持直前位置まで移動した状態から開始するものとする。また、開始後は、後述する把持処理によって３つすべての指を力制御してワークＷ１を把持するものとする。
【００９４】
上述したハンド制御装置５００’により把持処理する手順は、第１の実施形態と同様に、図５に示すブロック図と図６に示すフローチャートにより行う。ただし、各ステップにおいて、第１の実施形態と差異があるので、詳述する。
【００９５】
まず、ハンド制御装置５００’は、各指の制御切換部５４８を接点１に切換、力制御を行う（ステップＳ１１）。各指の制御切換部５４８から出力される制御値は各指の力制御部５４７から出力された把持力制御値が用いられる。
【００９６】
次に、各指の力制御部５４７において、把持力制御値と力センサの計測値との差が所定回数連続で範囲内か判断する（ステップＳ１２）。ここで、各指で目標把持力、力制御完了幅、力制御完了カウント数が異なるので、すべての指が前述の範囲内であれば力制御完了とみなし、各指の力制御部５４７から完了判定信号をＯＮにして出力し、ステップＳ１３へ進む。すべての指が前述の範囲内に入っていない場合は、ステップＳ１１に戻る。
【００９７】
ステップＳ１３では、各指の記憶部５４９は、完了判定信号がＯＮに遷移したのを受けてから、各指の力制御部５４７から出力された把持力制御値をＲＡＭ５０３に保存する。本実施形態では３指分の把持力制御値を保存することになる。
【００９８】
続いて、各指の制御切換部５４８を接点２に切換、位置制御を行う（ステップＳ１４）。なお、そのときの各指の位置制御部５４６の目標把持位置は、完了判定信号がＯＮに遷移した時点で、そのときの各指のエンコーダによって検出されている現在位置に切り換えられる。また、各指の制御切換部５４８から出力される制御値は、接点２の入力、つまり、各指の記憶部５４９で保持された把持力制御値と各指の位置制御部５４６から出力された把持位置制御値の和となる。また把持力の変動が所定の力完了幅内に収まるレベルまで減少しているため、ステップＳ１４に入った時を把持完了とみなすことができる。このように制御することで把持部に力をかけながら位置制御の把持制御に切り換えることができる。
【００９９】
なお、把持指令テーブル５１１‘の力制御完了カウント数は、第１の実施形態と同様に、ユーザが設定しても良いが、以下の方法で自動化が可能である。
【０１００】
力制御完了カウント数を自動設定する方法は、基本的には第１の実施形態と同様に、図８のフローチャートに従う。第１の実施形態と差分がある部分は、設定する力制御完了カウント数が各指にあることと、ステップＳ２３以降の処理を各指それぞれに対して行うことである。前記差分を考慮した上で図１１のフローチャートにより、力制御完了カウント数を自動設定することができる。
【０１０１】
以上説明したように、本実施形態のハンド制御装置５００’によれば、把持部が３指になっても把持が位置制御のみの把持制御に切換った際の把持力変動を小さくできる。そのため、移行時間を必要とせず、ワークを素早く把持から搬送に切り換えることができる。これにより、把持部の指の数が変動してもワークを位置決めしつつ一定の把持力で把持し、高速に把持から搬送を行い、組付を行うことができる。また、複数の把持指により安定してワークを把持、搬送し、組付を行うことができる。
【０１０２】
＜第３の実施形態＞
上述の第１および第２の実施形態では、把持完了時の力制御部からの把持力制御値を、ワークを把持する毎に記憶する場合について説明した。しかしながら、本発明は、一度記憶した把持力制御値を次のワークでも使用できるものである。
【０１０３】
なお、以下では、第１の実施形態と同一ないし相当する構成については同一の参照符号を用い、それらの説明は省略ないし簡略化するものとし、第１の実施形態と異なる点を中心に説明する。
【０１０４】
本実施形態では、第１の実施形態と同様に、ロボットシステム１００を用いる。つまり、ロボットシステム１００は、アーム本体２００、ハンド３００、システム制御装置４００’’ハンド制御装置５００’’、アーム制御装置６００’’を備える。
【０１０５】
同様に、組立用部品であるワークＷ１は、ワーク載置台Ｓ１上に載置され、被組立対象物であるワークＷ２は、ワーク固定台Ｓ２上に固定されている。本実施例は、例えばアーム本体２００とハンド３００を用いてワークＷ１を把持し、搬送動作へ移行する際に適用である。
【０１０６】
第１の実施形態と差異がある部分は、ハンド制御装置５００’’である。ハンド制御装置５００’’は、第１の実施形態と同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、汎用信号インターフェイスなどから構成される。第１の実施形態と差異がある部分は、ＲＯＭとＲＡＭに格納される情報である。ＲＯＭには、後述する第３の実施形態における把持処理を実現するハンド３００の制御プログラムが格納される。
【０１０７】
本実施形態のハンド制御装置５００’’の制御概略図は、第１の実施形態と同様に図３に示される。本実施形態ではモータ制御部５４１’’、５４２’’の機能が変更になっている。モータ制御部５４１’’、５４２’’の機能は同一であるので、例として開閉駆動機構Ｊ１のモータ制御部５４１’’のブロック線図を図１３に示す。
【０１０８】
同図において、第１の実施形態と異なる部分について述べる。記憶部５４９は、後述する把持処理手順に基づき、力制御部５４７からの完了判定信号がＯＮになったとき、そのときの力制御部５４７から出力される把持力制御値をそのときの把持指令番号と紐付けて記憶する。
【０１０９】
制御切換部５４８は、モータ３１１への制御モードと後述する把持処理手順に基づいて、位置制御部５４６からの接点３、あるいは、力制御部５４７からの接点１、または、位置制御部５４６と記憶部５４９からの接点２を選択する。
【０１１０】
制御切換部５４８の接点１に切り換えられた場合は、力制御部５４７からの把持力制御値が制御切換部５４８から出力され、力制御が実行される。
【０１１１】
制御切換部５４８の接点２に切り換えられた場合は、第１の実施形態と同様に、位置制御部５４６からの把持位置制御値と記憶部５４９からの把持力制御値の和が制御切換部５４８から出力され、位置制御が実行される。
【０１１２】
制御切換部５４８の接点３に切り換えられた場合は、第１の実施形態と同様に、位置制御部５４６の把持位置制御値が制御切換部５４８から出力され、把持指の位置制御が実行される。
【０１１３】
このように制御することで、把持指に対して、目標とする把持力に制御する力制御から、把持指を目標位置へと位置制御する位置制御に切り換えた際、切換直前の把持力制御値すなわち把持力を維持したまま、位置制御のみの把持制御に切り換えることができる。
【０１１４】
ここで、本実施形態におけるハンド制御装置５００’’の、ワークＷ１の把持処理方法について説明する。前提条件として、第１の実施形態と同様に、アーム２００、ハンド３００をワークＷ１の把持直前位置まで移動した状態から開始するものとする。また、第２指は既に位置決めされ、後述する把持処理によって第１指が力制御でワークＷ１を把持するものとする。
【０１１５】
上述したハンド制御装置５００’’により把持処理する手順を、図１４に示すフローチャート用いて説明する。例えば、ワークＷ１を把持指令テーブル５１１の把持指令番号３で２回把持する場合について説明する。
【０１１６】
まず、ハンド制御装置５００’’は、今までと異なる把持指令番号か、または把持力制御値を新たに記憶するか判断する（ステップＳ３１）。把持力制御値を新たに記憶するかは、把持指令テーブル５１１’’の記憶されている把持指令値記憶部５１０’’において、ハンド３００を制御する上で必要な関連設定値として書かれる。今までと異なる把持指令番号である場合、または、把持力制御値を新たに記憶する場合は、ステップＳ３２へ進む。それ以外の場合は、ステップＳ３６へ進む。
【０１１７】
次にハンド制御装置５００’’は、制御切換部５４８を接点１に切り換えて力制御を行う（ステップＳ３２）。把持指令番号３より目標把持力は５Ｎとなる。制御切換部５４８から出力される制御値は力制御部５４７から出力された把持力制御値と記憶部５４９からの把持力制御値の和が用いられる。
【０１１８】
ただし、このとき、記憶部５４９で記憶された把持力制御値は無いので、記憶部５４９からの把持力制御値はゼロとなる。結果として、制御切換部５４８から出力される制御値は力制御部５４７から出力された把持力制御値だけが用いられる。
【０１１９】
続いて、力制御部５４７において、目標把持力と力センサの計測値との差が所定回数連続で範囲内か判断する（ステップＳ３３）。把持指令番号３より、力制御完了幅が１Ｎ、力制御完了カウント数３である。すなわち、目標把持力と力センサの計測値との差が、制御周期３回（力制御完了カウント数）連続で±１Ｎ（力制御完了幅）以内か判断する。前述の範囲内であれば力制御完了とみなし、力制御部５４７から完了判定信号をＯＮにして出力し、ステップＳ３４へ進む。前述の範囲外であれば、ステップＳ３２に戻る。
【０１２０】
ステップＳ３４では、記憶部５４９は、完了判定信号がＯＮに遷移したのを受けてから、力制御部５４７から出力された把持力制御値をそのときの把持指令番号と紐付けて記憶部５４９に保存する。本実施形態の場合は、把持指令番号３と紐付けて把持力制御値が保存される。
【０１２１】
続いて、制御切換部５４８を接点２に切換、位置制御を行う（ステップＳ３５）。なお、そのときの位置制御部５４６の目標把持位置は、完了判定信号がＯＮに遷移した時点で、そのときのエンコーダの現在位置に切り換えられる。また、制御切換部５４８から出力される制御値は、接点２の入力、つまり、記憶部５４９に保持された把持指令番号３と紐付けられた把持力制御値と位置制御部５４６から出力された把持位置制御値の和となる。また、把持力の変動が小さいため、ステップＳ３５に入った時を把持完了とみなすことができる。
【０１２２】
また、ハンド制御装置５００’’は、制御切換部５４８を接点１に切換、力制御を行う（ステップＳ３６）。把持指令番号３より、目標把持力は５Ｎとなる。制御切換部５４８から出力される制御値は力制御部５４７から出力された把持力制御値と記憶部５４９からの把持力制御値の和が用いられる。
【０１２３】
ただし、このとき、記憶部５４９からの把持力制御値は、記憶部５４９には把持指令番号３と紐付けられた把持力制御値が出力される。
【０１２４】
そして、力制御部５４７において、把持力制御値と力センサの計測値との差が所定回数連続で範囲内か判断する（ステップＳ３７）。前述の範囲内であれば力制御完了とみなし、力制御部５４７から完了判定信号をＯＮにして出力し、ステップＳ３５へ進む。前述の範囲外であれば、ステップＳ３６に戻る。
【０１２５】
図１５は、本実施形態と比較例とにおける、把持力の時刻歴応答を示す図である。ここで、第１の実施形態とは、今まで把持指令番号３で動作させたことがない状態で、把持指令番号３の処理を実行した場合である。すなわち、ステップＳ３１の判断でステップＳ３２へ進んで把持処理をした場合である。第３の実施形態とは、既に把持指令番号３で動作させたことがある状態で、把持指令番号３の処理を実行した場合である。すなわち、ステップＳ３１の判断でステップＳ３６へ進んで把持処理をした場合である。
【０１２６】
一方、比較例とは、図１４のステップＳ３４の処理を飛ばし、ステップＳ３５において接点２ではなく接点３に切り換えた場合、つまり単純な力制御のみの把持制御から位置制御のみの把持制御に切換えた場合である。
【０１２７】
図１５から明らかなように、第１の実施形態、第３の実施形態では、比較例に対して把持完了までの時間を短縮することができた。比較例では、力制御から位置制御への切換直後は、位置制御の偏差がゼロのため把持位置制御値がゼロとなり、ワークの剛性により指先が押し戻され、把持力変動が生じる。元の位置に戻ろうと位置制御部５４６が働くが、偏差をゼロにし把持完了するまでは時間がかかる。
【０１２８】
一方、第１の実施形態では、力をかけたまま位置制御へ移行できるので把持力変動が小さく、短期間に把持完了することができた。さらに、第３の実施形態では、ステップ３６の力制御をする際に、把持指令番号３と紐付けられた把持力制御値がフィードフォワードとして加わる。そのため力制御の応答が速く収束することにより、第１の実施形態よりも早く把持完了することができた。ハンド３００の駆動部であるモータ３１１やギヤ３２１には摩擦があり、それが経年変化するため、フィードフォワード量を事前に計算から求めるのは困難だったが、図１４に示す把持処理により、それが可能となる。
【０１２９】
なお、把持指令テーブル５１１’’の力制御完了カウント数は、ユーザが設定しても良いが、第１の実施形態と同様の方法で自動化が可能である。
【０１３０】
さらに、種々のワークに対応した把持力制御値をあらかじめ記憶部５４９に紐付けて格納し、上記のように把持制御しても良い。
【０１３１】
以上説明したように、本実施形態のハンド制御装置５００’’によれば、把持が位置制御に切り換った際の把持力変動を小さくできる。そのため、移行時間を必要とせず、ワークを把持から搬送に素早く切り換えることができる。さらに、既に実施した把持指令番号と把持力制御値を紐付け記憶することにより、２回目以降の把持処理時間を短縮することができる。これらにより、ワークを位置決めしつつ一定の把持力で把持し、高速に把持から搬送を行い、組付を行うことができる。
【０１３２】
また、以上述べた第１の実施形態、第２の実施形態、第３の実施形態の把持処理手順は具体的にはハンド制御装置５００、５００’、５００’’により実行されるものである。従って上述した機能を実現するソフトウェアのプログラムを記録した記録媒体をハンド制御装置５００、５００’、５００’’に供給し、ＣＰＵ５０１が記録媒体に格納されたプログラムを読み出し実行することによって達成されるよう構成することができる。この場合、記録媒体から読み出されたプログラム自体が上述した各実施形態の機能を実現することになり、プログラム自体およびそのプログラムを記録した記録媒体は本発明を構成することになる。
【０１３３】
また、各実施形態では、コンピュータで読み取り可能な記録媒体がＲＯＭ５０２或いはＲＡＭ５０３であり、ＲＯＭ５０２或いはＲＡＭ５０３にプログラムが格納される場合について説明したが、本発明はこのような形態に限定されるものではない。本発明を実施するためのプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラムを供給するための記録媒体としては、ＨＤＤ、外部記憶装置、記録ディスク等を用いてもよい。
【符号の説明】
【０１３４】
１００  ロボットシステム
２００  アーム本体
３００、３００’  ハンド
３１１、３１２、３１１’、３１２’、３１３’  モータ
３２１、３２２、３２１’、３２２’、３２３’  ギヤ
３３１、３３２、３３１’、３３２’、３３３’  エンコーダ
３４１、３４１’、３４２’、３４３’  把持指
３５１、３５１’、３５２’、３５３’  力センサ
４００、４００’、４００’’  システム制御装置
５００、５００’、５００’’  ハンド制御装置
６００、６００’、６００’’  アーム制御装置
５０５、５０５’  モータドライバ
５１０、５１０’、５１０’’  把持指令値記憶部
５１１、５１１’、５１１’’  把持指令テーブル
５３０、５３０’  指令値生成部
５４１、５４２、５４１’、５４２’、５４３’、５４１’’、５４２’’  モータ制御部
５４６  位置制御部
５４７  力制御部
５４８  制御切換部
５４９  記憶部
７００  ティーチングペンダント
９００  基台
Ｊ１、Ｊ２、Ｊ１’、Ｊ２’、Ｊ３’  開閉駆動機構
Ｓ１  ワーク載置台
Ｓ２  ワーク固定台
Ｗ１、Ｗ２  ワーク
【図１】
2018202497.tif 000009
【図２】
2018202497.tif 000010
【図３】
2018202497.tif 000011
【図４】
2018202497.tif 000012
【図５】
2018202497.tif 000013
【図６】
2018202497.tif 000014
【図７】
2018202497.tif 000015
【図８】
2018202497.tif 000016
【図９】
2018202497.tif 000017
【図１０】
2018202497.tif 000018
【図１１】
2018202497.tif 000019
【図１２】
2018202497.tif 000020
【図１３】
2018202497.tif 000021
【図１４】
2018202497.tif 000022
【図１５】
2018202497.tif 000023