(57)【特許請求の範囲】
【請求項１】
ワークを把持可能な複数のフィンガーと、駆動力を発生する駆動源と、前記駆動源の駆動を前記複数のフィンガーに伝達し、前記複数のフィンガーを移動させる伝達機構と、を有するロボットハンドの制御方法において、
前記ロボットハンドは、
前記複数のフィンガーの位置を検出する位置検出手段と、
前記複数のフィンガーと前記ワークとの接触を検出する接触検出手段と、を備え、
制御部が、
前記複数のフィンガーにより前記ワークを把持する把持工程を所定の回数実行するごとに、
前記接触検出手段により接触を検知した際の前記複数のフィンガーの位置を、接触位置として前記位置検出手段により検出する接触位置検出工程と、
前記接触位置と基準位置とを比較し差分を検出する差分検出工程と、を実行し、
前記差分検出工程において検出された前記差分が所定の閾値を超えた場合に、前記ロボットハンドの状態を通知する通知工程と、を実行する、
ことを特徴とする制御方法。
【請求項２】
前記接触検出手段は、前記複数のフィンガーの移動速度を検出する速度検出手段であり、
前記制御部は、
前記接触位置検出工程において、前記速度検出手段が所定の値を検出した際の前記複数のフィンガーの位置を、前記接触位置として前記位置検出手段により検出する、
ことを特徴とする請求項１に記載の制御方法。
【請求項３】
前記接触検出手段は、前記複数のフィンガーに生じる力を検出する力検出手段であり、
前記制御部は、前記接触位置検出工程において、前記力検出手段が所定の値を検出した際の前記複数のフィンガーの位置を、前記接触位置として前記位置検出手段により検出する、
ことを特徴とする請求項１に記載の制御方法。
【請求項４】
前記制御部は、前記接触位置検出工程の初回実行時に検出した前記接触位置を前記基準位置に設定する初回設定工程を実行する、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の制御方法。
【請求項５】
ワークを把持する工程を含む作業工程を繰り返し実行するものであって、
前記制御部は、所定回数以内のうち複数回の前記接触位置検出工程で検出した複数の前記接触位置の平均値を前記基準位置に設定する平均設定工程を実行する、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の制御方法。
【請求項６】
前記基準位置は、前記複数のフィンガーの設計時の形状に基づき設定される、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の制御方法。
【請求項７】
ワークを把持可能な複数のフィンガーと、駆動力を発生する駆動源と、前記駆動源の駆動を前記複数のフィンガーに伝達し、前記複数のフィンガーを移動させる伝達機構と、を有するロボットハンドにおいて、
前記複数のフィンガーの位置を検出する位置検出手段と、
前記複数のフィンガーと前記ワークとの接触を検出する接触検出手段と、
前記ロボットハンドを制御する制御部と、を備え、
前記制御部は、
所定の回数、前記複数のフィンガーにより前記ワークを把持するごとに、
前記接触検出手段により接触を検出した際の前記複数のフィンガーの位置を接触位置とする前記位置検出手段による検出と、
前記接触位置と基準位置とを比較した差分の検出と、を実行し、
検出された前記差分が所定の閾値を超えた場合に、前記ロボットハンドの状態を通知する、
ことを特徴とするロボットハンド。
【請求項８】
請求項７に記載のロボットハンドと、
複数の関節を有し先端に前記ロボットハンドが設けられたロボットアームと、を備えた、
ことを特徴とするロボット装置。
【請求項９】
請求項８に記載のロボット装置を用いて物品の製造を行うことを特徴とする製造方法。
【請求項１０】
請求項１乃至請求項６のいずれか１項に記載の各工程をコンピュータに実行させるためのロボットハンド制御プログラム。
【請求項１１】
請求項１０に記載のロボットハンド制御プログラムを記録した、コンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットハンドを制御するロボットハンド装置の制御方法及びロボットハンド装置に関する。
【背景技術】
【０００２】
近年、産業用ロボットとしてロボットハンドを有するロボット装置を用いて従来人手によって行われた製品組立の自動化が進められている。ロボットハンドを用いてワークを操作し多様な製品を組立する場合、ワークの物性によらず、ワークを破損及び落下することなく、把持したワークが製品の組立中にずれないように安定して把持することが必要である。
【０００３】
また、近年、産業用ロボットを用いた製品の組立においては、数百万回繰り返し製品組立を実行する中で常に安定した把持を実現可能とすることが求められている。繰り返しワークを把持する中で都度ワークを安定して把持するためには、ロボットハンドが所望のワークを把持する力（把持力）によって毎回ワークを把持する必要がある。
【０００４】
そして、所望の把持力でワークを把持できなくなった場合には、ワークを把持できないために発生する誤作動を防止するために、所望の把持力でワークを把持できなくなったことをユーザに通知し、メンテナンス等を実行する必要がある。ユーザに通知する方法として、所望の把持力と実際の把持力との間に一定以上の差が生じたと判断した場合にユーザに通知する方法（特許文献１参照）が提案されている。特許文献１に開示されたロボットハンドでは、モータを一定速度で駆動させた場合における電流値を測定し、測定した電流値が閾値を超えた場合に、所望の把持力でワークを把持できなくなったと判断し、ユーザに通知する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２３３６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、近年、産業用ロボットによる組立の適用範囲が広がり、例えばカメラなどの精密部品の組立においても多く産業用ロボットが用いられている。精密部品の組立に用いられる場合には、先端が長く、かつ先細りした形状のフィンガーを備えたロボットハンドが用いられることが多い。このようなフィンガーにおいては、外力の弱い力や疲労の過度な積み重ねによってフィンガーが塑性変形を起こしやすい。また、フィンガーを含むロボットハンドの小型化によって、駆動力伝達機構にフィンガーの固定部を固定するネジ等も小型化され締結力が弱くなることで、外力によってフィンガーの固定部に緩みが生じやすくなっている。
【０００７】
フィンガーが塑性変形したりフィンガーの固定部が緩んだりしている場合、ワークを把持することができても、把持されたワークの姿勢が初期状態における姿勢から変化してしまう虞がある。産業用ロボットによる製品の組立においては、把持されたワークの姿勢が変化してしまうと、組立時にワークが他の部材に干渉し組立が実行できない虞がある。そのため、産業用ロボットによる製品の組立においては、安定したワークの把持を維持可能な許容範囲内の姿勢で、毎回ワークを把持する必要がある。
【０００８】
特許文献１に記載された発明の制御処理は、フィンガーの形状が初期状態から大きく変わらなければ、毎回目標の把持力によってワークを把持することができる。また、目標の把持力でワークを把持できなくなった場合には、ユーザに通知することができる。しかしながら、目標の把持力でワークを把持してはいるものの、フィンガーが塑性変形したりフィンガーの固定部が緩んでいることで、把持されたワークの姿勢が変化した虞があることをユーザに通知することはできない構成である。つまり、安定したワークの把持を実現できない虞がある場合に、ユーザに通知することができない。
【０００９】
そこで、本発明は、安定したワークの把持が実現できない虞がある場合に通知可能なロボットハンド装置の制御方法及びロボットハンド装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
本発明に係る制御方法は、ワークを把持可能な複数のフィンガーと、駆動力を発生する駆動源と、前記駆動源の駆動を前記複数のフィンガーに伝達し、前記複数のフィンガーを移動させる伝達機構と、を有するロボットハンドの制御方法において、前記ロボットハンドは、前記複数のフィンガーの位置を検出する位置検出手段と、前記複数のフィンガーと前記ワークとの接触を検出する接触検出手段と、を備え、制御部が、前記複数のフィンガーにより前記ワークを把持する把持工程を所定の回数実行するごとに、前記接触検出手段により接触を検知した際の前記複数のフィンガーの位置を、接触位置として前記位置検出手段により検出する接触位置検出工程と、前記接触位置と基準位置とを比較し差分を検出する差分検出工程と、を実行し、前記差分検出工程において検出された前記差分が所定の閾値を超えた場合に、前記ロボットハンドの状態を通知する通知工程と、を実行する、ことを特徴とする。
【００１１】
また、本発明に係るロボットハンドは、ワークを把持可能な複数のフィンガーと、駆動力を発生する駆動源と、前記駆動源の駆動を前記複数のフィンガーに伝達し、前記複数のフィンガーを移動させる伝達機構と、を有するロボットハンドにおいて、前記複数のフィンガーの位置を検出する位置検出手段と、前記複数のフィンガーと前記ワークとの接触を検出する接触検出手段と、前記ロボットハンドを制御する制御部と、を備え、前記制御部は、所定の回数、前記複数のフィンガーにより前記ワークを把持するごとに、前記接触検出手段により接触を検出した際の前記複数のフィンガーの位置を接触位置とする前記位置検出手段による検出と、前記接触位置と基準位置とを比較した差分の検出と、を実行し、検出された前記差分が所定の閾値を超えた場合に、前記ロボットハンドの状態を通知する、ことを特徴とする。
【発明の効果】
【００１２】
本発明によると、検出位置と基準位置との差分が予め設定された閾値を超えた場合に通知することで、安定したワークの把持が実現できない虞がある場合に通知可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態のロボット装置を示す概略図。
【図２】本発明の実施形態のロボットハンドの構成を示す斜視図。
【図３】本発明の実施形態のハンド制御部の構成を示すブロック図。
【図４】（ａ）は、本発明の実施の形態のロボットハンドの原点出し動作を示す正面図、（ｂ）は、フィンガーを開いた状態を示す正面図、（ｃ）は、把持中心でフィンガー同士を接触させた状態を示す正面図。
【図５】本発明の実施形態のフィンガーの移動速度の変化を示すグラフ。
【図６】（ａ）は、本発明の実施形態のフィンガーが通常の状態において、フィンガーの先端を示す模式図及びワークを把持した状態の拡大図、（ｂ）は、フィンガーが変形した状態において、フィンガーの先端を示す模式図及びワークを把持した状態の拡大図。
【図７】（ａ）は、本発明の実施形態のフィンガーがワークを把持した状態を示す模式図、（ｂ）は、フィンガーが変形した状態においてワークを把持した状態を示す模式図。
【図８】本発明の実施形態のロボットハンド制御プログラムを示すフローチャート。
【図９】（ａ）は、本発明の実施形態のフィンガーの位置の変化を示すグラフ、（ｂ）は、フィンガーの移動速度の変化を示すグラフ。
【図１０】（ａ）は、本発明の実施形態のフィンガーの減速開始位置の変化を示すグラフ、（ｂ）は、変化量の変化を示すグラフ。
【図１１】（ａ）は、本発明の実施形態のロボット装置の変形例において、フィンガーの位置の変化を示すグラフ、（ｂ）は、フィンガーに発生する応力の変化を示すグラフ。
【発明を実施するための形態】
【００１４】
以下、本発明に係る実施の形態を図１乃至図１０に沿って説明する。図１は、本発明の実施形態に係るロボット装置の概略構成を示す概略図である。
【００１５】
ロボット装置１は、ワークＷ（図２参照）を把持可能なロボットハンド装置としてのロボットハンド１０と、先端にロボットハンド１０が設けられ、ロボットハンド１０の位置を制御し複数の関節を有するロボットアーム２０と、を備えている。また、ロボット装置１は、ロボットハンド１０を制御する制御部としてのハンド制御部３０と、各種制御指令を送信可能な制御指令部４０と、を備えている。また、ロボット装置１は、ロボット装置１の外に設けられた外部電源と電源ケーブル５１を介して接続され、外部電源から供給された電力を調整し、ロボット装置１を構成する各要素に電源ケーブル５１を介して電力を供給する電力制御部５０を備えている。ロボット装置１は、ロボットハンド１０がワークＷを安定して把持できる条件の中で、できる限り高速な組立動作を実行することで生産装置としての生産性を最大限高めている。
【００１６】
図２は、ロボットハンド１０の構成を示す図である。図２に示すように、ロボットハンド１０は、ワークＷを把持可能な一対のフィンガー１１ａ，１１ｂと、駆動力を発生するアクチュエータとしてのモータ１２と、を備えている。また、ロボットハンド１０は、モータ１２の駆動量に応じた移動量でフィンガー１１ａ，１１ｂを移動させる駆動力伝達機構として、一対のリニアガイド１３ａ，１３ｂ、一対のラックギヤ１４ａ，１４ｂ及びピニオンギヤ１５を備えている。ロボットハンド１０は、フィンガー１１ａ，１１ｂを所定のモータ１２が駆動してフィンガー１１ａ，１１ｂを閉じ、フィンガー１１ａ，１１ｂとワークＷとの間の摩擦力によってワークＷを把持する。
【００１７】
フィンガー１１ａ，１１ｂは、先端が長く、かつ先細りしたいわゆるピンセット状の形状を有し、ワークＷを把持する場合にワークＷと接触する接触部１１１ａ，１１１ｂと、ラックギヤ１４ａ，１４ｂに固定される固定部１１２ａ，１１２ｂとを有する。フィンガー１１ａ，１１ｂは、不図示のネジによって固定部１１２ａ，１１２ｂがラックギヤ１４ａ，１４ｂに締結固定されている。フィンガー１１ａ，１１ｂは、ラックギヤ１４ａ，１４ｂの移動に伴いワークＷを把持する方向とワークＷから離隔する方向とに移動する。また、フィンガー１１ａ，１１ｂには、フィンガー１１ａ，１１ｂに応力が発生した場合に、発生した応力を検出する力センサとしてのひずみゲージ１１３ａ，１１３ｂが配設されている。なお、フィンガー１１ａ，１１ｂに配設される力センサは、ひずみゲージに限らず、圧力センサ等、フィンガー１１ａ，１１ｂにかかる力を検出可能なセンサであればよい。また、本実施形態においては、ひずみゲージ１１３ａ，１１３ｂが、応力検出手段を構成する。
【００１８】
モータ１２は、例えば３相のＡＣサーボモータであり、ベースプレート１６の下面に取り付けられており、モータ１２の出力トルクを増幅するための減速機１７と、モータ１２の回転数及び回転角度を検出するセンサとしてのエンコーダ回路１８とを有する。また、モータ１２は、ハンド制御部３０とハンドケーブル３１を介して接続されている。
【００１９】
ハンドケーブル３１は、エンコーダ回路１８から出力される出力信号をハンド制御部３０に送信するエンコーダ信号線３１ａと、モータ１２に駆動電流を供給するモータ動力線３１ｂと、を有している。エンコーダ信号線３１ａは、例えばエンコーダ回路１８の電源、ＧＮＤ、エンコーダの出力信号のＡ相、Ｂ相、Ｚ相の計５本の線から構成されている。また、モータ動力線３１ｂは、モータ１２の種類に対応した動力線であり、モータ１２が例えば３相のＡＣサーボモータである場合には、Ｕ相、Ｖ相、Ｗ相とつながる３本の動力線から構成される。また、ハンドケーブル３１は、ひずみゲージ１１３ａ，１１３ｂに接続される不図示の配線も有しており、ハンドケーブル３１を介してひずみゲージ１１３ａ，１１３ｂに検出された応力がハンド制御部３０に入力される。
【００２０】
一対のリニアガイド１３ａ，１３ｂは、それぞれベースプレート１６の上面に取り付けられ、互いに対向する面にガイド溝１９ａ，１９ｂを有している。一対のラックギヤ１４ａ，１４ｂは、ギヤの歯面と対向する面に、突起形状でリニアガイド１３ａ，１３ｂのガイド溝１９ａ，１９ｂに嵌合されるガイド突起１４１ａ，１４１ｂを有している。ガイド突起１４１ａ，１４１ｂがガイド溝１９ａ，１９ｂに嵌合されリニアガイド１３ａ，１３ｂに取り付けられることで、ラックギヤ１４ａ，１４ｂは、フィンガー１１ａ，１１ｂを接触及び離隔させる開閉方向に平行移動させることができる。
【００２１】
ピニオンギヤ１５は、モータ１２の駆動軸に取り付けられており、ラックギヤ１４ａ，１４ｂのギヤ歯面に噛合している。これにより、ロボットハンド１０は、モータ１２を駆動しピニオンギヤ１５を正転及び逆転することにより、ラックギヤ１４ａ，１４ｂを平行移動させ、フィンガー１１ａ，１１ｂを開閉動作させることができる。
【００２２】
次に、本実施形態の制御部を構成するハンド制御部３０及び制御指令部４０の構成を図３に沿って説明する。ハンド制御部３０は、プログラムを演算可能なＣＰＵ３０１と、記憶可能な記憶部として機能するメモリであるＲＯＭ３０２及びＲＡＭ３０３と、を備えている。また、ハンド制御部３０は、各種のインタフェース３０５〜３０８と、モータドライバ３０９と、を備えている。なお、ＣＰＵ３０１、ＲＯＭ３０２及びＲＡＭ３０３は、１つのワンチップマイコンに集約されたＭＰＵによって構成されていてもよい。
【００２３】
ＣＰＵ３０１には、ＲＯＭ３０２、ＲＡＭ３０３及び各種のインタフェース３０５〜３０８が、バス３１０を介して接続されている。例えば、ＲＯＭ３０２（或いは外部記憶装置３２２等であってもよい）には、ＣＰＵ３０１を動作させるための各種プログラムやフィルタのデータが格納されている。
【００２４】
この各種プログラムのうち、指令値変換プログラム３０２ａは、制御指令部４０から送信される制御指令をＣＰＵ３０１によってサーボ演算に必要なパラメータに変換するプログラムである。具体的には、制御指令部４０から送信される位置、速度、把持力、把持のレベルといった制御指令を、位置、速度、電流値といったパラメータに変換する。ここで、把持のレベルによる制御指令とは、例えばロボットハンド１０の最大の把持力の仕様が５０Ｎである場合に、レベル１〜１０までの１０段階で指定するような制御指令である。この場合、把持のレベル１の制御指令では、把持力として５Ｎの制御指令を送信し、把持のレベル１０の制御指令では、把持力として５０Ｎの制御指令を送信することができる。また、各種データのうち、サーボ演算パラメータ３０２ｂは、ＣＰＵ３０１がサーボ演算を実行する場合に必要に応じて使用されるパラメータであり、例えばモータ駆動電流を算出するために用いられるＰＩＤゲインのパラメータ等が含まれる。このような、制御指令部４０とハンド制御部３０の通信は、例えば１０ｍｓｅｃ毎のように周期的に常に行っても良いし、動作が必要なタイミングでのみ双方の通信が行われるようにしてもよい。通信では、制御指令部４０からハンド制御部３０への指令値の送信だけでなく、ハンド制御部３０から制御指令部４０への位置、速度、電流値等の現在値の応答も行われる。
【００２５】
インタフェース３０５には、ロボットハンド１０に内蔵されているモータ１２がハンドケーブル３１を介して接続され、インタフェース３０６には、モータドライバ３０９が接続されている。モータ１２からは、エンコーダ回路１８によってモータ１２の回転数と回転角度についての出力信号が送信される。ＣＰＵ３０１は、指令値変換プログラム３０２ａで変換したパラメータと、エンコーダ回路１８から受信した出力信号と、モータ駆動電流と、を用いてサーボ演算を実行してモータドライバ３０９にモータ駆動信号を出力する。ここで、モータドライバ３０９は、モータ駆動電流の検出回路として、Ｕ相、Ｖ相、Ｗ相のハーフブリッジ回路を内蔵している。また、モータ駆動信号は、モータドライバ３０９に内蔵されるハーフブリッジ回路を駆動するためのＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ）信号である。
【００２６】
モータドライバ３０９は、ドライバ駆動信号に従って内蔵されたハーフブリッジ回路を動作させ、モータ駆動電流をハンドケーブル３１を介してモータ１２に供給し、モータ１２を駆動する。このように、ロボット装置１は、制御指令部４０から送信される制御指令をハンド制御部３０で演算し、演算結果からモータドライバ３０９を介してモータ１２を駆動することで、フィンガー１１ａ，１１ｂに所望の把持力でワークＷを把持させることができる。
【００２７】
インタフェース３０７には、外部記憶装置（例えば外付けＨＤＤや不揮発性メモリなど）３２２が接続されている。そして、インタフェース３０８には、通信ケーブル４１を介して制御指令部４０のインタフェース４０６が接続されている。
【００２８】
制御指令部４０は、プログラムを演算可能なＣＰＵ４０１と、記憶可能な記憶部として機能するメモリであるＲＯＭ４０２、ＲＡＭ４０３及びＨＤＤ４０４と、を備えている。また、制御指令部４０は、各種のインタフェース４０５〜４１０を備えている。
【００２９】
ＣＰＵ４０１には、ＲＯＭ４０２、ＲＡＭ４０３、ＨＤＤ４０４及び各種のインタフェース４０５〜４１０が、バス４１０を介して接続されている。例えば、ＲＯＭ４０２やＨＤＤ４０４（或いは外部記憶装置４２２等であってもよい）には、ＣＰＵ４０１を動作させるための各種プログラムや各種制御パラメータ等のデータが格納されている。
【００３０】
制御指令部４０は、ロボットハンド１０のフィンガー１１ａ，１１ｂ（図２参照）を開閉する制御指令をインタフェース４０６に接続される通信ケーブル４１を介してハンド制御部３０に送信し、フィンガー１１ａ，１１ｂを開閉動作させる。ハンド制御部３０と制御指令部４０との通信は、例えばパラレルＩ／Ｏ又はノイズ耐性が高く高速な差動シリアル通信によって行われる。
【００３１】
また、制御指令部４０は、アームケーブル４２（図１参照）によってロボットアーム２０が有する不図示のアーム制御部と接続され、各関節を動作させる制御指令をアームケーブル４２を介してアーム制御部に送信し、ロボットアーム２０を動作させる。つまり、制御指令部４０は、ロボットハンド１０と、ロボットアーム２０と、を制御することで、ロボットシステムとして部品の把持や組み付けを実行し、製品組立を実現することができる。ここで、制御指令部４０が実行する制御内容や制御指令部４０がハンド制御部３０に送信する制御指令は、ロボットシステムの製品組立動作のＪＯＢプログラムとしてユーザーによって予め設計されており、制御指令部４０のメモリ内に記憶されてる。なお、ロボットアーム２０は、各関節の動作をそれぞれ制御する複数のアーム制御部を有する構成であってもよい。
【００３２】
次に、ロボットハンド１０の基本的な動作である、フィンガー１１ａ，１１ｂの位置を変更する制御と、フィンガー１１ａ，１１ｂがワークＷを把持する制御と、について説明する。フィンガー１１ａ，１１ｂの位置を変更する制御は、主にワークＷを把持する前段階でワークＷとフィンガー１１ａ，１１ｂが干渉しないよう、フィンガー１１ａ，１１ｂをワークＷの寸法交差以上に開く際や、把持したワークＷを離す動作の際に実行される。位置を変更する際の目標となる目標位置は、ロボットハンド１０の電源投入時に実行するフィンガー１１ａ，１１ｂの原点出し動作によって決定される指令値の基準となる位置から決定され、制御指令部４０からハンド制御部３０に送信される。
【００３３】
図４を参照して、フィンガー１１ａ，１１ｂの原点出し動作について説明する。図４（ａ）に示すように、ハンド制御部３０は、フィンガー１１ａ，１１ｂの間にワークＷがない状態で、モータ１２を駆動してフィンガー１１ａ，１１ｂを閉じる方向にフィンガー１１ａ，１１ｂを動作させる。そして、ハンド制御部３０は、フィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂが当接し、それ以上モータ１２が回転しなくなった場合におけるフィンガー１１ａ，１１ｂの位置を、エンコーダ回路１８の出力信号から読み取る。ハンド制御部３０は、エンコーダ回路１８から読み取った位置を位置制御の制御上の基準（位置制御原点）としてＲＡＭ３０３に記憶し、指令値の基準となる位置を設定する各種処理を実行する。
【００３４】
ハンド制御部３０は、位置制御原点を設定した後において、位置制御原点を基準にフィンガー１１ａ，１１ｂの位置を制御する。ハンド制御部３０は、モータ１２の１回転当たりのエンコーダ分解能と、ピニオンギヤ１５のギヤ径と、減速機１７の減速比と、から、フィンガー１１ａ，１１ｂを目標位置まで移動する際にエンコーダ回路１８の出力する出力信号が含むパルス数を算出する。そして、ハンド制御部３０は、算出したパルス数に到達するようにモータ１２を回転駆動させるモータ駆動信号を出力する。
【００３５】
ここで、エンコーダ回路１８が出力する１パルス当たりのフィンガー１１ａ，１１ｂの移動距離は、エンコーダ回路１８の分解能と、ロボットハンド１０を構成する各要素の寸法と、減速機１７の減速比と、によって様々な値を設定できる。例えば、モータ１回転当たり１０００パルスを発生するエンコーダ回路と、減速比５０対１の減速機と、ピニオンギヤ径φ１０ｍｍと、から構成された場合、フィンガー１１ａ，１１ｂは、１パルス当たり約０．６３μｍ移動する。この、エンコーダ回路１８が出力する１パルス当たりのフィンガー１１ａ，１１ｂの位置距離は、ハンド制御部３０がフィンガー１１ａ，１１ｂの位置を制御する際の位置制御の分解能（位置制御分解能）を構成する。
【００３６】
例えば、図４（ｂ）に示すように、フィンガー１１ａ，１１ｂを目標位置Ｐ＝１．０ｍｍに移動する場合、ハンド制御部３０は、フィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂがそれぞれ位置制御原点から１ｍｍ移動するようにモータ１２を駆動する。モータ１２を駆動することで、ロボットハンド１０は、固定部１１２ａ，１１２ｂ間の距離が０ｍｍから２ｍｍとなる。
【００３７】
本実施形態においては、フィンガー１１ａ，１１ｂが傾斜を有し弾性変形しながらワークＷを把持する構成のため、ハンド制御部３０が制御するフィンガー１１ａ，１１ｂの位置と、フィンガー１１ａ，１１ｂの先端の位置と、が一致しない構成となっている。本実施形態のフィンガー１１ａ，１１ｂは、図４（ｃ）に示すように先端を位置制御原点上で接触させた場合、固定部１１２ａ，１１２ｂ同士の当接面から片側でＰｓ＝０．６ｍｍ位置制御原点の方向に傾斜した構造となっている。
【００３８】
ハンド制御部３０は、制御指令部４０から送信される制御指令に基づき、フィンガー１１ａ，１１ｂの移動速度を演算し、演算した結果からモータドライバ３０９を介してモータ１２を駆動する。
【００３９】
次に、フィンガー１１ａ，１１ｂがワークＷを把持する制御について説明する。ワークＷを把持する制御は、ロボットアーム２０により把持対象となるワークＷとロボットハンド１０の相対位置が制御され、フィンガー１１ａ，１１ｂの間にワークＷが位置した状態で、フィンガー１１ａ，１１ｂを閉じてワークＷを把持する際に実行される。
【００４０】
ここで、把持する制御には、大きく２つの方法がある。１つ目の方法は、フィンガー１１ａ，１１ｂの位置を指令することで実行される把持制御（把持位置制御）で、制御指令部４０からフィンガー１１ａ，１１ｂの目標位置を指令することによって行われる。把持位置制御は、ワークＷの寸法公差が既知であり、かつ柔軟性が高い場合において適用されることが多い。また、把持位置制御におけるフィンガー１１ａ，１１ｂの移動速度は、ワークＷとフィンガー１１ａ，１１ｂとが接触した際に相対位置がずれないようユーザが事前に検討して設定することが好ましい。
【００４１】
そして、２つ目の方法は、本ロボットハンド１０において実行される把持制御であり、フィンガー１１ａ，１１ｂの把持力を指令することで実行される把持制御（把持力制御）である。把持力制御は、制御指令部４０からの把持力、把持のレベルといった制御指令をハンド制御部３０で指令値に応じた速度、電流値のパラメータに変換し、モータ１２を駆動することによって実行される。なお、以下の記載において、把持力制御においてハンド制御部３０で計算された速度を把持速度ｖｏ［ｍｍ／ｓｅｃ］、電流値を把持電流Ｉｏ［Ａ］と記載する。また、フィンガー１１ａ，１１ｂは、１つのピニオンギヤ１５を介して対称に動くため、各フィンガー１１ａ，１１ｂが同じ移動速度で移動する。つまり、フィンガー１１ａ，１１ｂの相対速度は、把持速度ｖｏの２倍となる。
【００４２】
把持力制御において、ハンド制御部３０は、把持速度ｖｏの一定速度でフィンガー１１ａ，１１ｂを閉じ、フィンガー１１ａ，１１ｂをワークＷに接触させる。フィンガー１１ａ，１１ｂがワークＷと接触し、ワークＷからの反力が発生すると、ハンド制御部３０は、モータ１２の駆動電流を増加させフィンガー１１ａ，１１ｂの移動速度を一定に保つように制御する。ここで、モータ電流が把持電流Ｉｏに達した場合、ハンド制御部３０は、駆動電流の増加を終了して駆動電流を把持電流Ｉｏに維持するように制御する。これにより、ロボットハンド１０では、ワークＷからの反力によってフィンガー１１ａ，１１ｂの移動速度が徐々に減速する。そして、フィンガー１１ａ，１１ｂを押し込む力とワークＷからの反力とが釣り合うことで、フィンガー１１ａ，１１ｂの移動速度は、最終的に０となって停止し、ワークＷを把持した状態で維持される。
【００４３】
図５は、把持力制御を実行した場合におけるフィンガー１１ａ，１１ｂの移動速度の変化を表すグラフである。図５に示すように、ハンド制御部３０は、モータ１２を速度０の停止した状態から約２０ｍｓｅｃ加速することで把持速度ｖｏ＝１０ｍｍ／ｓｅｃに達する。把持力制御を開始してから５０ｍｓｅｃまでは、把持速度ｖｏでフィンガー１１ａ，１１ｂを移動し、５０ｍｓｅｃ以降で減速が始まる。この把持制御を開始してから５０ｍｓｅｃ経過する前後において、フィンガー１１ａ，１１ｂは、ワークＷと接触し始めている。そして、減速を開始してから約６０ｍｓｅｃ経過した状態、つまり把持力制御を開始してから１１０ｍｓｅｃ経過した場合に、フィンガー１１ａ，１１ｂは、速度０になり停止する。この状態において、ワークＷは、制御指令部４０からハンド制御部３０に送信される制御指令に基づく把持力又は把持のレベルによって把持されている。
【００４４】
次に、本実施形態の特徴となるロボットハンド１０を備えたロボット装置１の制御方法について説明する。
【００４５】
本実施形態のロボット装置１は、ワークＷを制御指令部４０の把持力指令によって把持する際、フィンガー１１ａ，１１ｂの速度と位置を計測し、その計測値からフィンガー１１ａ，１１ｂとワークＷとが確実に接触したと確認できる位置を検出する。ロボット装置１は、繰り返しの組立動作によるロボットハンド１０の機構部品の径年劣化等の理由で接触したと確認できる位置が初期値から一定量以上変化した場合に、ユーザにロボットハンド１０の異常を通知する。
【００４６】
本ロボットハンド１０は、上述した通り、ピンセット形状のフィンガー１１ａ，１１ｂを備えているため、繰り返しの組立動作によってフィンガー１１ａ，１１ｂに塑性変形が生じやすい。また、ロボットハンド１０の小型化のために、フィンガー１１ａ，１１ｂも小型化されており、固定部１１２ａ，１１２ｂをラックギヤ１４ａ，１４ｂに締結固定するネジも小型化し、締結力が低下している。そのため、フィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂは、繰り返しの組立動作によってネジに緩みが生じ、ひいてはフィンガー１１ａ，１１ｂに緩みを生じやすくなっている。
【００４７】
フィンガー１１ａ，１１ｂに塑性変形や緩みが生じていない正常な状態においては、図６（ａ）に示すように、フィンガー１１ａ，１１ｂを接触させると接触部１１１ａ，１１１ｂの先端でフィンガー１１ａ，１１ｂは接触する。この状態でワークＷを把持させた場合、フィンガー１１ａ，１１ｂとワークＷとの接触面積は、接触面積Ｓａとなる。
【００４８】
一方、フィンガー１１ａ，１１ｂに塑性変形が生じた状態又は固定部１１２ａ，１１２ｂに緩みが生じた状態の少なくとも一方になった場合には、図６（ｂ）に示すように、フィンガー１１ａ，１１ｂを接触させると接触部１１１ａ，１１１ｂの先端が離隔する。この状態でワークＷを把持させた場合、フィンガー１１ａ，１１ｂとワークＷとの接触面積は、接触面積Ｓａよりも小さい接触面積Ｓｂとなる。このように接触状態が変化することは、初期状態で実現したフィンガー１１ａ、１１ｂによるワークＷの安定な把持が崩れ、把持失敗を起こす要因になりうる。
【００４９】
また、固定部１１２ａ，１１２ｂが緩みフィンガー１１ａ，１１ｂが傾いた状態でワークＷを把持した場合には、制御指令部４０からの制御指令に基づきモータ１２が駆動することによって生じる把持力がワークＷに正確に伝わらない虞がある。
【００５０】
フィンガー１１ａ，１１ｂに塑性変形や緩みが生じていない正常な状態においては、図７（ａ）に示すように、フィンガー１１ａ，１１ｂを平行に閉じてワークＷを把持することができる。この場合、ロボットハンド１０は、制御指令部４０から指令される把持力Ｆａ［Ｎ］によって、ワークＷを把持することができる。一方、固定部１１２ａ，１１２ｂが緩みフィンガー１１ａ，１１ｂがθ°傾いた状態でワークＷを把持した場合には、図７（ｂ）に示すように、ワークＷに伝わる把持力Ｆｂが、Ｆｂ＝Ｆ・ｓｉｎ（π／２−θ）［Ｎ］となる。つまり、フィンガー１１ａ，１１ｂが傾いた状態でワークＷを把持した場合、ロボットハンド１０は、把持力のロスを生じ、初期状態で実現したフィンガー１１ａ、１１ｂによるワークＷの安定な把持が崩れ、把持失敗を起こす要因になりうる。
【００５１】
ロボットハンド１０の把持力制御は、初期の理想的な把持状態をベースに把持力の指令値や、把持力の指令値を基に計算される把持速度及び把持電流のパラメータ換算式が設計されている。そのため、ロボットハンド１０の把持力制御においては、フィンガー１１ａ，１１ｂの経時変化によって設計の前提である初期の把持状態が崩れるとフィンガー１１ａ，１１ｂの間でワークＷのずれや落下といった把持の失敗が発生するリスクが高まる。
【００５２】
これらのフィンガー１１ａ、１１ｂによるワークＷの把持失敗を起こす要因の発生を防止するために、本ロボット装置１は、以下に示すユーザにロボットハンド１０が把持失敗する可能性が高まっていることを通知する制御処理を実行する。通知によってロボットハンド１０の交換やメンテナンスが実施されることで、ロボット装置１は、ロボットハンド１０の把持失敗による組立トラブルを未然に防止可能となる。
【００５３】
図８は、本実施形態のロボットハンド１０がワークＷを把持する場合にハンド制御部３０が実行する把持力制御と、ロボットハンド１０が安定して繰り返しワークＷを把持できるか否かを判定する把持判定制御と、を示すフローチャートである。本実施形態においては、図８に示すユーザが予め設定したロボットハンド制御プログラムをハンド制御部３０と制御指令部４０とに実行させることで、把持力制御と把持判定制御とが実行される。把持力制御と把持判定制御とは、それぞれユーザが予め設定したロボットハンド制御プログラムに従って実行される。把持力制御は、ロボットハンド１０のフィンガー１１ａ，１１ｂの間に、把持対象となるワークＷが位置するようにロボットハンド１０及びロボットアーム２０の位置が制御され、ワークＷを把持する以前と、ワークＷを把持した状態と、で実行される。また、把持判定制御は、把持力制御の実行中に記録するフィンガー１１ａ，１１ｂの位置と、フィンガー１１ａ，１１ｂの速度と、を用いて、把持力制御の実行後に実行される。なお、上述した通り、ハンド制御部３０は、位置制御原点からフィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂの一方までの距離を計算するように構成されている。以下の記載において、フィンガー１１ａ，１１ｂの位置とは、位置制御原点から固定部１１２ａ，１１２ｂの一方までの距離を意味する。
【００５４】
まず、ハンド制御部３０は、制御指令部４０からの制御指令を受信したタイミングで、フィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータの記録を開始する（Ｓ１１）。上述した通り、ハンド制御部３０は、制御指令部４０から制御指令を受信することで、モータドライバ３０９を介してモータ１２を駆動し、フィンガー１１ａ，１１ｂにワークＷを把持させる把持力制御を開始する。そして、ハンド制御部３０は、把持力制御の開始時から、ワークＷの把持を完了する把持力制御の終了時までの間、フィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータの記録を継続する。
【００５５】
フィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータは、ハンド制御部３０でエンコーダ回路１８からの出力信号を一定周期で読み込むことで取得される。ハンド制御部３０が読み込んだ位置Ｐと速度ｖとのデータは、ハンド制御部３０と制御指令部４０との通信周期Ｔ（例えばＴ＝１０ｍｓｅｃ周期）に同期させてハンド制御部３０から制御指令部４０へ送信する。そして、制御指令部４０は、記憶部としてのＲＯＭ４０２やＲＡＭ４０３に、ハンド制御部３０が記録したフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータを保存する。ここで、フィンガー１１ａ，１１ｂの位置Ｐは、エンコーダ回路１８の出力信号に含まれるパルス数から位置制御原点を基準に計算することができる。また、フィンガー１１ａ，１１ｂの速度ｖは、単位時間当たりのエンコーダ回路１８からの出力信号に含まれるパルス数から計算することができる。つまり、本実施形態においては、エンコーダ回路１８が速度検出手段を構成している。なお、ハンド制御部３０と制御指令部４０との通信周期Ｔの設定方法については、後述する。
【００５６】
次に、ハンド制御部３０は、制御指令部４０からの制御指令に基づく把持力でワークＷを把持し（Ｓ１２）、把持が完了したか否かを判定し（Ｓ１３）、把持が完了するまで（Ｓ１３でＮｏ）ステップＳ１２の処理を継続する。本実施形態において、ハンド制御部３０は、制御指令部４０から把持電流Ｉｏ＝５００［ｍＡ］、把持速度ｖｏ＝１０［ｍｍ／ｓｅｃ］でモータ１２を駆動させる制御指令（把持指令値）を受信する。また、本実施形態において、フィンガー１１ａ，１１ｂによって把持されるワークＷは、厚さ約５０μｍのフレキシブルケーブルとしている。
【００５７】
ステップＳ１２，Ｓ１３の処理の実行時において、ハンド制御部３０は、上述した通り、まず把持速度ｖｏでフィンガー１１ａ，１１ｂをワークＷと接触させる。そして、ハンド制御部３０は、フィンガー１１ａ，１１ｂの移動速度が減速し始めた場合に、把持電流Ｉｏでモータ１２を駆動して、フィンガー１１ａ，１１ｂをワークＷに押し込む。このように、複数のフィンガー１１ａ，１１ｂを閉じる方向に移動させるステップＳ１２の処理は、本実施形態における閉動作工程を構成する。また、把持速度ｖｏは、フィンガー１１ａ，１１ｂがワークＷと接触しフィンガー１１ａ，１１ｂの移動が妨げられることにより変動する変動値を構成する。
【００５８】
フィンガー１１ａ，１１ｂを押し込む力とワークＷからフィンガー１１ａ，１１ｂが受ける反力とが釣り合い、フィンガー１１ａ，１１ｂの移動速度が０ｍｍ／ｓｅｃになった場合、ハンド制御部３０は、把持が完了したと判定する（Ｓ１３でＹｅｓ）。ステップＳ１３の処理において、ハンド制御部３０は、例えば１０ｍｓｅｃ毎にフィンガー１１ａ，１１ｂの位置Ｐを記録している場合、３回連続して同じ位置Ｐを検出したことを条件に把持が完了したと判定する。そして、ハンド制御部３０は、把持が完了したと判定した場合に（Ｓ１３でＹｅｓ）、ワークＷを把持しているフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータを記録することを終了する（Ｓ１４）。
【００５９】
把持力制御におけるフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとの変化を図９に示す。図９（ａ）は、把持力制御の実行時におけるフィンガー１１ａ，１１ｂの位置Ｐの変化を示すグラフである。また、図９（ｂ）は、把持力制御の実行時におけるフィンガー１１ａ，１１ｂの速度ｖの変化を示すグラフである。図９（ａ）、図９（ｂ）の横軸は、ともに時間ｔ［ｍｓｅｃ］であり、それぞれの時間軸において同期して示されている。また、図９（ａ）の縦軸は、ロボットハンド１０の位置制御原点を基準にしたフィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂの片側の位置である。
【００６０】
図９における実線で示されたデータは、ロボットハンド１０の使用開始直後、つまり１回目の把持力制御の実行時におけるフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとの時間毎の変化を示している。また、点線で示されたデータは、ロボットハンド１０を長期使用し３５０万回目の把持力制御の実行時におけるフィンガー１１ａ，１１ｂの位置Ｐと速度ｖの時間毎の変化を示したものである。
【００６１】
図９（ａ）に示すように、本実施形態のハンド制御部３０は、位置制御原点から固定部１１２ａ，１１２ｂの片側が約１ｍｍの位置にある状態から把持力制御を開始する。そして、ハンド制御部３０は、位置制御原点から固定部１１２ａ，１１２ｂの片側が約０．２１ｍｍの位置にある状態でフィンガー１１ａ，１１ｂを停止している。このとき、固定部１１２ａ，１１２ｂ間の距離は、約０．４２ｍｍとなっている。また、フィンガー１１ａ，１１ｂは、接触部１１１ａ，１１１ｂがワークＷと接触し、フィンガー１１ａ，１１ｂの押しつけ力によってフィンガー１１ａ，１１ｂ自体が弾性変形した状態でワークＷから受ける反力と釣り合ってワークＷを把持している。
【００６２】
続いて、制御指令部４０が、把持判定制御を開始する。まず、制御指令部４０は、ＲＡＭ４０３に記録したフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータを用いて、フィンガー１１ａ，１１ｂとワークＷとが接触し、把持速度ｖｏから減速し始めた減速開始位置Ｐｃ［ｍｍ］を算出する（Ｓ１５）。なお、以下の記載において、ｎ回目の把持力制御の実行時における減速開始位置をＰｃ（ｎ）と記載する。例えば、Ｐｃ（１）は、１回目の把持力制御の実行時、つまりフィンガー１１ａ，１１ｂが初めてワークＷを把持した場合における減速開始位置を示す。また、減速開始位置Ｐｃ（ｎ）は、本実施形態における検出位置を構成する。
【００６３】
減速開始位置を判定するためには、把持速度ｖｏから減速を開始したと判定するための基準となる予め設定した値が必要である。本実施形態においては、予め設定した値としての減速判定速度ｖｌ［ｍｍ／ｓｅｃ］が、予めユーザに決定され制御指令部４０のＲＯＭ４０２に保存されている。
【００６４】
本実施形態において、ハンド制御部３０は、把持速度ｖｏになるようにモータ１２を制御するが、モータドライバ３０９の制御能力によって数パーセントの速度変動が現れることがある。図９（ｂ）に示すグラフにおいて、ｔ＝２０〜５０ｍｓｅｃの区間に現れている把持速度ｖｏの変化が、モータドライバ３０９の制御能力に由来する速度変動である。このため、減速判定速度ｖｌを設定する場合には、モータドライバ３０９の制御能力に由来する速度変動をワークＷに接触したことによる減速と誤検出しないような値に設定する必要がある。一方で、速度変動を誤検出しないように把持速度ｖｏから大きく減速した値を減速判定速度ｖｌに設定すると、フィンガー１１ａ，１１ｂがワークＷを把持し始めても把持が開始されたと判定することができなくなる。このため、減速判定速度ｖｌは、誤検出しない範囲で高めの値に設定することが好ましく、予めロボットハンド１０の性能評価を実行し速度変動を様子を確認して、誤検出しない範囲の高めの値に設定する。本実施形態においては、図９（ｂ）に示すように、速度変動によって把持速度ｖｏ＝９［ｍｍ／ｓｅｃ］となることはないことから、減速判定速度ｖｌ＝９［ｍｍ／ｓｅｃ］に設定した例を用いて、以下の説明を行う。
【００６５】
減速判定速度ｖｌ＝９．０［ｍｍ／ｓｅｃ］が設定されているとすると、１回目の把持力制御の実行時においては、図９（ｂ）のグラフ（実線）に示すように、ｔ＝６４ｍｓｅｃ時に把持速度ｖｏから減速判定速度ｖｌまで減速したと判定される。そして、図９（ａ）のグラフ（実線）に示すように、制御指令部４０は、ｔ＝６４ｍｓｅｃ時におけるフィンガー１１ａ，１１ｂの位置ＰであるＰ＝０．４３ｍｍの位置を、減速開始位置Ｐｃ（１）としてＲＯＭ４０２に記憶する。
【００６６】
また、３５０万回目の把持力制御の実行時においては、図９（ｂ）のグラフ（点線）に示すように、ｔ＝７０ｍｓｅｃ時に把持速度ｖｏから減速判定速度ｖｌまで減速したと判定される。そして、図９（ａ）のグラフ（点線）に示すように、制御指令部４０は、ｔ＝７０ｍｓｅｃ時におけるフィンガー１１ａ，１１ｂの位置ＰであるＰ＝０．３７ｍｍの位置を、減速開始位置Ｐｃ（３５０００００）としてＲＯＭ４０２に記憶する。このように、把持速度ｖｏが減速判定速度ｖｌとなった場合のフィンガー１１ａ，１１ｂの位置である減速開始位置Ｐｃは、本実施形態における検出位置を構成する。
【００６７】
ここで、３５０万回目の把持力制御の実行時においては、初期状態における減速開始位置Ｐｃ（１）よりフィンガー１１ａ，１１ｂが約０．０８ｍｍ位置制御原点に近づいていることがわかる。繰り返しワークＷを把持することで減速開始位置Ｐｃが位置制御原点に近づく原因は、フィンガー１１ａ，１１ｂの経時変化によるものがある。経時変化の具体的な内容としては、例えば、固定部１１２ａ，１１２ｂのラックギヤ１４ａ，１４ｂへの固定の緩みと、フィンガー１１ａ，１１ｂの塑性変形と、がある。固定部１１２ａ，１１２ｂの固定に緩みが生じた場合には、ワークＷと接触部１１１ａ，１１１ｂが接触した際にフィンガー１１ａ，１１ｂがワークＷから離隔する現象が発生する可能性がある。また、度重なるワークＷの把持によりフィンガー１１ａ，１１ｂがワークＷから離隔する方向に塑性変形を起こしている場合には、図７（ｂ）に示すようにフィンガー１１ａ，１１ｂの先端が外に広がる。塑性変形したフィンガー１１ａ，１１ｂによってワークＷを把持した場合、ハンド制御部３０は、フィンガー１１ａ，１１ｂの先端が外に広がっていることから、ワークＷを把持するためにフィンガー１１ａ，１１ｂを位置制御原点により近づけるようになる。このため、フィンガー１１ａ，１１ｂに塑性変形が生じた場合には、初期値より小さい値の減速開始位置Ｐｃが検出されるようになる。
【００６８】
なお、減速開始位置Ｐｃを検出する際において、把持対象のワークＷは、図４（ｃ）に示す位置制御原点上の把持中心に位置していることが好ましい。重量のあるワークＷを把持中心からずれた位置で把持する場合、ロボットハンド１０においては、フィンガー１１ａ，１１ｂとワークＷとの接触位置がずれ、減速開始位置Ｐｃに影響を与え測定値のばらつきの原因になることがある。なお、ワークＷが軽量の部品である場合には、フィンガー１１ａ，１１ｂとワークＷとの接触位置にずれを生じにくいため、ワークＷの位置を考慮する必要性が低減する。
【００６９】
把持力制御の実行時におけるワークＷの位置を管理できない場合、制御指令部４０は、ロボットハンド１０で把持したワークＷをロボットアーム２０で移動させてからフィンガー１１ａ，１１ｂを開きワークＷを離させる。ワークＷを把持した後に離すことにより、制御指令部４０は、ロボットハンド１０の把持中心にワークＷを位置させることができる。そして、制御指令部４０は、ワークＷを離した後にその位置で再度ワークＷを把持することで、ワークＷを把持中心で把持した状態で把持力制御をハンド制御部３０に実行させることができる。
【００７０】
このように、把持速度ｖｏが減速判定速度ｖｌとなった場合のフィンガー１１ａ，１１ｂの位置を減速開始位置Ｐｃとして検出するステップＳ１５の処理は、本実施形態における位置検出工程を構成する。
【００７１】
次に、制御指令部４０は、ロボットハンド１０の初期状態における減速開始位置Ｐｃｏと、今回の把持力制御の結果検出された減速開始位置Ｐｃ（ｎ）と、の差であるΔＰｃを計算する（Ｓ１６）。ここで、ロボットハンド１０の初期状態における減速開始位置Ｐｃｏは、１回目の把持力制御における減速開始位置Ｐｃ（１）と同じ値に設定されている。つまり、初期状態における減速開始位置Ｐｃｏは、位置検出工程であるステップＳ１５の処理の初回実行時に検出した減速開始位置に設定されている。この初期状態における減速開始位置Ｐｃｏが、本実施形態における基準となる基準位置を構成する。また、ステップＳ１５の処理の初回実行時に初期状態における減速開始位置Ｐｃｏを設定するステップＳ１６の処理は、本実施形態における初回設定工程を構成する。
【００７２】
ステップＳ１６の処理において、制御指令部４０は、ΔＰｃを求める計算式として、ΔＰｃ＝Ｐｃｏ−Ｐｃ（ｎ）に初期状態における減速開始位置Ｐｃｏの値と、今回の把持力制御の結果検出された減速開始位置Ｐｃ（ｎ）の値と、を代入し、ΔＰｃを算出する。このように、基準位置である初期状態おける減速開始位置Ｐｃｏと、検出位置である減速開始位置Ｐｃ（ｎ）と、を比較することで検出されるΔＰｃは、本実施形態における差分を構成する。また、減速開始位置Ｐｃ（ｎ）と初期状態における減速開始位置Ｐｃｏとを比較し差分であるΔＰｃを検出するステップＳ１６の処理は、本実施形態における差分検出工程を構成する。なお、以下の記載において、ΔＰｃを変化量ΔＰｃとも記載する。
【００７３】
ここで、上述した通り、減速開始位置Ｐｃ（ｎ）は、把持力制御の実行回数が多くなる程フィンガー１１ａ，１１ｂの経時変化により位置制御原点に近寄るようになっている。つまり、本実施形態のロボットハンド１０は、把持力制御の実行回数が多くなる程変化量ΔＰｃの値が大きくなる。変化量ΔＰｃが一定値以上に大きくなった場合、ロボットハンド１０では、フィンガー１１ａ，１１ｂとワークＷとの接触状態が初期状態から変わってしまっている。そのため、ロボット装置１では、変化量ΔＰｃを検出し、予め設定した閾値と比較することで、把持の失敗が発生するリスクが一定以上に高まったことをユーザに通知する。
【００７４】
ステップＳ１６の処理を実行した後、制御指令部４０は、予め設定した閾値と比較し、ユーザに報知するか否かを判定する処理を実行する。制御指令部４０は、ステップＳ１６で算出した変化量ΔＰｃと、ユーザへの通知を実施するか否かを判定する基準となる予め設定された閾値である通知判定値ΔＰｌと、を比較する（Ｓ１７）。この処理において、変化量ΔＰｃが通知判定値ΔＰｌよりも大きいと判定した場合には（Ｓ１７でＹｅｓ）、制御指令部４０は、ユーザにロボットハンド１０の交換やメンテナンスを行うことを通知する通知処理を行い（Ｓ１８）、把持判定制御を終了する。一方、変化量ΔＰｃが通知判定値ΔＰｌ以下である判定した場合には（Ｓ１７でＮｏ）、制御指令部４０は、通知処理を行うことなく把持判定制御を終了する。なお、本ロボット装置１は、ステップＳ１８に示す通知処理の実行の有無によらず、把持判定制御の実行後も製品組立を継続して実行する。
【００７５】
ここで、通知判定値ΔＰｌの値は、予めユーザが決定しておく必要がある。通知判定値ΔＰｌを決定する方法は、例えば実際にフィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂの緩みやフィンガー１１ａ，１１ｂの先端に変形が発生した状態で、把持の失敗が起こる条件を実験的に求めて決定する方法がある。また、図９（ｂ）に示すように、フィンガー１１ａ，１１ｂがθ°傾いた状態において計算される把持力の低下量と、フィンガー１１ａ，１１ｂがθ°傾いた状態における減速開始位置Ｐｃの変化量ΔＰｃと、をまず計算で求める。そして、許容される把持力低下の下限から通知判定値ΔＰｌを計算で求めてもよい。
【００７６】
なお、通知判定値ΔＰｌは、予め設定した後に、更新可能に構成されていてもよい。通知判定値ΔＰｌを更新する方法は、まず、変化量ΔＰｃのデータを繰り返される製品組立が終了した場合に消去せず、組立回数分のデータとして蓄積する。そして、ロボットハンド１０がワークＷを把持失敗した際の変化量ΔＰｃのデータを用い、組立回数と把持失敗した際の変化量ΔＰｃとの相関性から、より最適な通知判定値ΔＰｌに更新をかけるようにすればよい。
【００７７】
把持判定制御における減速開始位置Ｐｃと変化量ΔＰｃとの変化を図１０に示す。図１０（ａ）は、把持判定制御の実行時におけるフィンガー１１ａ，１１ｂの減速開始位置Ｐｃの変化を示すグラフである。また、図１０（ｂ）は、初期状態における減速開始位置Ｐｃｏと、各把持判定制御の実行時における減速開始位置Ｐｃと、の差分である変化量ΔＰｃの変化を示すグラフである。図１０（ａ）、図１０（ｂ）の横軸は、ともに把持回数ｘ［万回］であり、それぞれの把持判定制御の実行回数において同期して示されている。また、図１０（ｂ）に示すように、本実施形態においては、通知判定値ΔＰｌをΔＰｌ＝０．２ｍｍに設定している。
【００７８】
図１０（ｂ）に示すように、本ロボットハンド１０においては、約４２０万回把持力制御を実行しフィンガー１１ａ，１１ｂによってワークＷを把持した場合に、変化量ΔＰｃが通知判定値ΔＰｌを上回る。上述した通り、変化量ΔＰｃが通知判定値ΔＰｌを上回った場合、制御指令部４０は、通知処理を実行しユーザにロボットハンド１０のメンテナンス又は交換の実施を指示する通知を行う。ユーザに通知する手段としては、表示装置４２３又はネットワーク４２４を利用して行う。また、ユーザ自らが制御指令部４０の入力装置４２５から操作することでΔＰｃの値を定期的に確認し、変化量ΔＰｃが通知判定値ΔＰｌを上回ったことを把握できるようにしてもよい。
【００７９】
このように、変化量ΔＰｃが通知判定値ΔＰｌを超えた場合にユーザに通知するステップＳ１７，Ｓ１８の処理は、本実施形態における通知工程を構成する。
【００８０】
次に、ハンド制御部３０と制御指令部４０との通信周期Ｔの設定方法について説明する。本実施形態においては、通知判定値ΔＰｌとに対して変化量ΔＰｃを判定可能な精度で検出できる範囲に、通信周期Ｔを設定する必要がある。本実施形態においては、フィンガー１１ａ，１１ｂとワークＷの接触位置を高精度に検出する必要はなく、ある一定の検出方法、位置基準で検出された減速開始位置Ｐｃの、初期状態からの平均的かつ相対的な変化に着目している。そのため、ハンド制御部３０と制御指令部４０とを高速なサンプリング周期で通信させる必要なく。検出誤差が最低でも通知判定値ΔＰｌの半分以下になるようなサンプリング周期で通信するようにロボット装置１の通信システムを構築すればよい。
【００８１】
本実施形態では、ハンド制御部３０と制御指令部４０との通信周期ＴをＴ＝１０［ｍｓｅｃ］として設定している。この通信周期Ｔは、制御指令部４０からみた、フィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータのサンプリング周期といえる。減速判定速度ｖｌ＝９［ｍｍ／ｓｅｃ］である場合、サンプリング周期１０ｍｓｅｃ間にフィンガー１ａ，１１ｂが移動する距離は、０．０９ｍｍとなる。つまり、フィンガー１１ａ，１１ｂの移動速度が減速判定速度ｖｌを下回った場合におけるフィンガー１１ａ，１１ｂの位置Ｐを検出する場合に、サンプリングが実行されるタイミングによって最大で±０．０９ｍｍ内の検出誤差が発生することを意味する。本実施形態における通知判定値ΔＰｌは、ΔＰｌ＝０．２［ｍｍ］であることから、±０．０９ｍｍの検出誤差は許容範囲内となる。
【００８２】
なお、長期間にわたって減速開始位置Ｐｃの相対的な変化を同じ基準で比較するために設定される位置制御基準の変化は、通知判定値ΔＰｌに対して十分小さくなるように考慮されなければならない。位置制御原点は、ロボットハンド１０への電源オンの度にフィンガー１１ａ，１１ｂの原点出し動作が実施されて設定されるが、上述した通り、フィンガー１１ａ，１１ｂの支点となる固定部１１２ａ，１１２ｂを当接させることで実行される。フィンガー１１ａ，１１ｂの接触部１１１ａ，１１１ｂよりも形状変化し難い固定部１１２ａ，１１２ｂを接触させて設定されるため、原点出し動作毎に設定される位置制御原点のばらつきは、接触部１１１ａ，１１１ｂの形状変化に対して十分小さいといえる。
【００８３】
以上のように、本実施形態に係るロボットハンド１０の制御方法では、把持力制御の実行時において記録したフィンガー１１ａ，１１ｂの位置Ｐと速度ｖとのデータから、減速開始位置Ｐｃを検出する。次いで、ロボットハンド１０の制御方法では、把持判定制御を開始し、検出した減速開始位置Ｐｃと初期状態における減速開始位置Ｐｃｏとを比較し、差分である変化量ΔＰｃを検出する。そして、ロボットハンド１０の制御方法では、変化量ΔＰｃが予め設定された閾値である通知判定値ΔＰｌを超えた場合に、ユーザに通知を行うことで、把持判定制御を終了する。つまり、本実施形態に係るロボットハンド１０の制御方法を用いることで、ロボット装置１は、検出位置と基準位置との差分が予め設定された閾値を超えた場合に通知することで、安定したワークＷの把持が実現できない虞がある場合に通知可能となる。ロボット装置１は、ユーザに通知することでロボットハンド１０の交換やメンテナンスをユーザに実行させることができる。そのため、本実施形態に係るロボットハンド１０の制御方法を用いたロボット装置１は、ワークＷの把持失敗を未然に防止し、安定したワークＷの把持が実現可能となる。
【００８４】
なお、本実施形態において、制御指令部４０は、初期状態における減速開始位置Ｐｃｏから検出された減速開始位置Ｐｃ（ｎ）を減算することで差分である変化量ΔＰｃを検出しているが、変化量ΔＰｃの検出方法はこれに限定されない。制御指令部４０は、例えば、初期状態における減速開始位置Ｐｃｏと検出された減速開始位置Ｐｃ（ｎ）との比率から変化量ΔＰｃを決定してもよい。また、減速開始位置Ｐｃ（ｎ）が減速開始位置Ｐｃｏに対して何％の値となっているかに基づき変化量ΔＰｃを決定してもよい。
【００８５】
また、本ハンド制御部３０は、原点出し動作の実行時において、フィンガー１１ａ，１１ｂの固定部１１２ａ，１１２ｂを当接させる方向にフィンガー１１ａ，１１ｂを移動させるが、これに限定されない。ハンド制御部３０は、原点出し動作を実行する場合に、フィンガー１１ａ，１１ｂを開く方向に移動させて、フィンガー１１ａ，１１ｂを開く方向への移動を規制する規制部材と当接した位置を位置制御原点に設定してもよい。また、ロボットハンド１０は、アブソリュートエンコーダなどの回転角度に応じた位置を検出可能なセンサを用いて位置制御原点を設定してもよい。
【００８６】
また、本ハンド制御部３０は、制御指令部４０から送信される制御指令に基づきフィンガー１１ａ，１１ｂの移動速度を演算するように構成されているが、これに限定されない。ハンド制御部３０は、制御指令部４０からの速度指令がない場合に、ロボットハンド１０の性能から予め設定できる上限速度でフィンガー１１ａ，１１ｂを移動させるように制御してもよい。また、制御指令部４０とハンド制御部３０との通信が周期的に常に行われる通信仕様の場合、ハンド制御部３０は、通信周期毎のフィンガー１１ａ，１１ｂの移動量をフィンガー１１ａ，１１ｂの速度に規定してもよい。例えば、通信周期が１０ｍｓｅｃである場合、ハンド制御部３０は、次の目標位置を現在位置プラス１００μｍとするように制御し続けることで、フィンガー１１ａ，１１ｂを１ｍｍ／ｓｅｃで移動する制御を実行することとなる。
【００８７】
また、本実施形態においては、１回目の把持力制御における減速開始位置Ｐｃ（１）をロボットハンド１０の初期状態における減速開始位置Ｐｃｏに設定しているが、初期状態における減速開始位置Ｐｃｏの設定は、これに限定されない。初期状態における減速開始位置Ｐｃｏは、例えば、ロボットハンド１０の使用開始直後から所定回数以内のｍ回分のＰｃ（１）〜Ｐｃ（ｍ）の平均値に設定してもよい。このように構成した場合、ｍ回目のステップＳ１６の処理が減速開始位置Ｐｃｏを設定する平均設定工程を構成する。また、ロボットハンド１０の出荷前に初期状態における減速開始位置Ｐｃｏを設定するために把持力制御を実行し、該把持力制御における減速開始位置を初期状態における減速開始位置Ｐｃｏに設定してもよい。また、フィンガー１１ａ，１１ｂの設計時の形状に依存するフィンガー１１ａ，１１ｂが位置制御原点方向に移動可能な移動量の設計値と、ワークＷの寸法と、から計算して初期状態における減速開始位置Ｐｃｏを設定してもよい。
【００８８】
また、本実施形態において、制御指令部４０は、毎回の把持判定制御において変化量ΔＰｃと通知判定値ΔＰｌとを比較するように構成されているが、これに限定されない。制御指令部４０は、把持力制御及び把持判定制御を複数回（例えば１０回〜２０回）実行し、各把持判定制御において検出した各変化量ΔＰｃの平均値と通知判定値ΔＰｌとを比較するように構成されていてもよい。このように構成した場合、制御指令部４０は、ロボットハンド１０の把持動作毎の挙動のばらつきや、ワークＷの寸法公差のばらつきによる変化量ΔＰｃの変動による影響を低減できる。つまり、制御指令部４０は、変動によって変化量ΔＰｃが通知判定値ΔＰｌを超えたと誤検出する確率を低減することができる。
【００８９】
また、本実施形態においては、繰り返し実行する作業工程において１種類のワークＷを把持するように例を用いて説明したが、これに限定されない。ロボットハンド１０が複数種類のワークを把持する場合であっても、本発明のロボット装置の制御方法を適用することができる。ロボットハンド１０が複数種類のワークを把持する場合、制御指令部４０は、把持するワーク種類毎に個別の通知判定値ΔＰｌを設定し、ワークの種類毎に検出された変化量ΔＰｃと比較を行うように構成されていればよい。
【００９０】
また、本実施形態において、制御指令部４０は、１つの通知判定値ΔＰｌを設定しているが、これに限定されない。制御指令部４０は、通知判定値ΔＰｌを複数種類設定しておき、変化量ΔＰｃが上回った通知判定値ΔＰｌによって実行する制御処理を変えるように構成されていてもよい。例えば、通知判定値として第１通知判定値ΔＰｌ１と、第１通知判定値Ｐｌ１よりも大きい値である第２通知判定値ΔＰｌ２とを制御指令部４０に設定する。そして、制御指令部４０は、変化量ΔＰｃが第１通知判定値ΔＰｌ１を超えた場合には、ユーザに通知するだけでロボット装置１による製品の組立を継続する、いわゆるアラートを実行するにとどめる。また、制御指令部４０は、変化量ΔＰｃが第２通知判定値ΔＰｌ２を超えた場合には、エラーが発生した場合と同様に、ユーザに通知するとともに、ロボット装置１の組立を停止するようにしてもよい。
【００９１】
ここで、変化量ΔＰｃが第２通知判定値ΔＰｌ２を超える場合には、ロボットハンド１０がワークＷやロボット装置１の周囲の構造物等に衝突しロボットハンド１０に大きな負荷がかかり、フィンガー１１ａ，１１ｂ等に激しい変形が生じた場合がある。このような場合においては、即座にロボット装置１による製品の組立を停止しないと組立不良が発生してしまう程の深刻な把持状態の変化が発生し得る。通知判定値ΔＰｌを複数種類設定可能に構成することで、制御指令部４０は、フィンガー１１ａ，１１ｂが激しく変形した状態で把持力制御が実行された場合に、直ちにロボット装置１による製品の組立を停止することができる。
【００９２】
また、本実施形態の制御指令部４０は、変化量ΔＰｃが０以上である場合において、通知判定値ΔＰｌと比較しロボットハンド１０に異常が生じているか否かを判定できるように構成されているが、これに限定されない。制御指令部４０は、変化量ΔＰｃが０未満である場合に、ユーザにロボットハンド１０に異常が生じていることを通知するように構成されていてもよい。ここで、変化量ΔＰｃが０未満となる場合としては、例えば、ロボットハンド１０がワークＷやロボット装置１の周囲の構造物等に衝突することで、フィンガー１１ａ，１１ｂがワークＷを把持する方向（閉方向）に変形した場合がある。変化量ΔＰｃが０未満である場合にユーザに通知するように構成することで、制御指令部４０は、フィンガー１１ａ，１１ｂが閉方向に変形した状態でワークＷを把持し安定したワークＷの把持が崩れる可能性が高くなっていることをユーザに通知できる。
【００９３】
また、本実施形態において、制御指令部４０は、毎回の把持力制御の実行時に図８に示すステップＳ１５〜Ｓ１８の処理である把持判定制御を実行し、変化量ΔＰｃを測定するように構成されているが、これに限定されない。制御指令部４０は、何百万回繰り返し実行される把持動作の中で生じる経時変化を確認できれば十分であることから、繰り返し実行する把持力制御を一定の回数実行する毎に把持判定制御を実行するように構成されていてもよい。具体的には、制御指令部４０は、例えば１０回の把持力制御を実行する毎に１回の把持判定制御を実行するように構成してもよい。このように構成した場合、制御指令部４０は、フィンガー１１ａ，１１ｂが１０回ワークＷを把持する毎に変化量ΔＰｃの測定と、変化量ΔＰｃと通知判定値ΔＰｌとの比較と、を実行する。把持判定制御の実行回数を削減することで、制御指令部４０は、ワークＷの把持時における制御負荷を軽減することができる。また、制御指令部４０は、衝突等でロボット装置１に異常が生じ停止した後に復帰した際に、ワークＷを安定して把持しているかを確認するために、毎回の把持力制御の実行時にステップＳ１５，Ｓ１６の処理を実行し、変化量ΔＰｃを測定してもよい。
【００９４】
また、本実施形態において、制御指令部４０は、ワークＷの位置を管理できない場合に、一度ワークＷを把持した後にワークＷを離し、再度ワークＷを把持することでワークＷを把持中心に位置させたが、把持中心に位置させる方法は、これに限定されない。制御指令部４０は、例えばロボットハンド１０とロボットアーム２０との間に、ロボットハンド１０への外部応力を検出する力覚センサを配設し、該力覚センサを用いることでワークＷを把持中心に位置させてもよい。具体的には、ワークＷを把持し減速開始位置Ｐｃを検出する際にワークＷが把持中心から大きくずれている場合には、フィンガー１１ａ，１１ｂのいずれか一方とワークＷとが先に接触するため、ワークＷから受ける反力が力覚センサの検出値に現れる。そのため、力覚センサの検出値をモニタし、予め設定した位置ずれ判定値を超えた場合には、ワークＷが把持中心からずれた位置にあると判定することができる。この場合、ステップＳ１６以降の処理を中止するように構成することができ、検出誤差が大きいと推測される減速開始位置Ｐｃを判定データから除外できるため、ステップＳ１７で誤った判定をする可能性を低減できる。
【００９５】
また、本実施形態において、ロボットハンド１０は、２本のフィンガー１１ａ，１１ｂを備えているが、フィンガーの本数は２本に限定されず、２本以上であってもよい。
【００９６】
また、本実施形態においては、製品の組立の際に実行する把持力制御を利用して減速開始位置Ｐｃを検出し、把持判定制御を実行しているが、これに限定されない。制御指令部４０は、フィンガー１１ａ，１１ｂ間にワークＷがない状態で、フィンガー１１ａ，１１ｂ同士を接触させて減速開始位置Ｐｃを検出し、把持判定制御を実行するように構成されていてもよい。このように構成した場合、制御指令部４０は、ロボット装置１が本来の組立で実行しない不要な把持動作を実行させるというデメリットがある。しかしながら、制御指令部４０は、ワークＷの寸法のばらつきの影響を受けることなく減速開始位置Ｐｃを検出できる。また、ワークＷが不要であることから、制御指令部４０は、把持力制御の実行時におけるワークＷとフィンガー１１ａ，１１ｂとの相対位置のばらつきの影響も考慮する必要が無くなる。これらにより、制御指令部４０は、より高い精度で把持判定制御を実行することができる。また、このように構成した場合、フィンガー同士を接触させる処理が閉動作工程を構成する。また、このように構成した場合、フィンガー同士を接触させて減速開始位置Ｐｃを検出する処理は、把持力制御を一定の回数実行する毎に実行するようにしてもよい。
【００９７】
また、制御指令部４０は、フィンガー１１ａ，１１ｂ間に寸法が予め高い精度で分かっている検査用ワークを配置し、フィンガー１１ａ，１１ｂに検査用ワークを把持させて減速開始位置Ｐｃを検出し、把持判定制御を実行するように構成されていてもよい。このように構成した場合、制御指令部４０は、ロボット装置１が本来の組立で実行しない不要な把持動作を実行させるというデメリットがある。しかしながら、制御指令部４０は、ワークＷの寸法のばらつきの影響を受けることなく減速開始位置Ｐｃを検出できる。また、製品組立時に把持するワークＷの厚みを検査用ワークで再現できるため、制御指令部４０は、フィンガー１１ａ，１１ｂの形状とワークＷの形状とを実際の把持に合わせた条件で減速開始位置Ｐｃを検出できる。これらにより、制御指令部４０は、より高い精度で把持判定制御を実行することができる。
【００９８】
また、本実施形態においては、制御指令部４０がハンド制御部３０から通信周期毎に減速開始位置Ｐｃの検出に必要な情報を吸い上げ、図８のステップＳ１５〜Ｓ１９に示す把持判定制御を制御指令部４０内で行っているが、これに限定されない。ロボット装置１は、ハンド制御部３０に減速判定速度ｖｌ、初期状態における減速開始位置Ｐｃｏ及び通知判定値ΔＰｌを予め設定して、ステップＳ１１〜Ｓ１９の把持力制御及び把持判定制御の全てをハンド制御部３０で処理してもよい。このように構成した場合、ロボット装置１は、ステップＳ１９で変化量ΔＰｃが通知判定値ΔＰｌを超えた場合にのみエラーやアラートとして制御指令部４０に通知することも可能である。
【００９９】
また、把持するワークＷが複数種類ある場合には、ワークＷの種類毎の減速判定速度ｖｌ、初期状態における減速開始位置Ｐｃｏ及び通知判定値ΔＰｌをハンド制御部３０に設定すればよい。そして、ロボット装置１は、制御指令部４０からハンド制御部３０へ送信する制御指令のパラメータの中に、把持対象のワークＷの種別を追加して送信するように構成すればよい。
【０１００】
このように構成した場合、ロボット装置１は、ハンド制御部３０と制御指令部４０との間で常に通信するシステム構成でなくとも本実施形態のロボットハンド装置の制御方法を実現することも可能である。また、このように構成した場合、ハンド制御部３０のＣＰＵ３０１で、減速開始位置Ｐｃを検出することで、ハンド制御部３０と制御指令部４０との通信周期Ｔによらず、ＣＰＵ３０１の制御周期で高精度に減速開始位置Ｐｃ検出することも可能となる。
【０１０１】
また、本実施形態において、制御指令部４０は、接触状態変化量ΔＰｃを、エンコーダ回路１８から出力される出力信号を用いて、フィンガー１１ａ，１１ｂの移動速度の減速開始位置Ｐｃの変化から計算し求めているが、これに限定されない。制御指令部４０は、他のセンサをロボットハンド１０に追加し、追加したセンサによって検出できる値を用いて把持判定制御を実行してもよい。例えばフィンガー１１ａ，１１ｂにひずみゲージや圧力センサのようなフィンガー１１ａ，１１ｂにかかる力を検出した場合、制御指令部４０は、力センサによって検出されるフィンガー１１ａ，１１ｂに係る力に基づき把持判定制御を実行することができる。
【０１０２】
［変形例］
以下に、把持判定制御をフィンガー１１ａ，１１ｂに係る力に基づき実行する変形例の詳細について記載する。図１１は、把持力制御におけるフィンガー１１ａ，１１ｂの位置Ｐと、フィンガー１１ａ，１１ｂに配設したひずみゲージ１１３ａ，１１３ｂが検出するフィンガー１１ａ，１１ｂに発生する応力Ｆと、の変化を示したグラフである。図１１（ａ）は、把持力制御の実行時におけるフィンガー１１ａ，１１ｂの位置Ｐの変化を示すグラフである。また、図１１（ｂ）は、把持力制御の実行時においてワークＷからの反力を受けることでフィンガー１１ａ，１１ｂに発生する応力Ｆの変化を示すグラフである。図１１（ａ）、図１１（ｂ）の横軸は、ともに時間ｔ［ｍｓｅｃ］であり、それぞれの時間軸において同期して示されている。
【０１０３】
制御指令部４０は、フィンガー１１ａ，１１ｂの位置Ｐと、フィンガー１１ａ，１１ｂに発生した応力Ｆと、のデータを用いて、フィンガー１１ａ，１１ｂとワークＷとが接触し、ワークＷからの反力を受け始めた接触開始位置Ｐｐを算出する。なお、以下の記載において、ｎ回目の把持力制御の実行時における接触開始位置をＰｐ（ｎ）と記載する。例えば、Ｐｐ（１）は、１回目の把持力制御の実行時、つまりフィンガー１１ａ，１１ｂが初めてワークＷを把持した場合における接触開始位置を示す。また、接触開始位置Ｐｐ（ｎ）は、本実施形態における検出位置を構成する。
【０１０４】
接触開始位置を判定するためには、応力Ｆが発生したと判定するための基準となる予め設定した値が必要である。本変形例においては、予め設定した値としての接触判定値Ｆｌ［Ｎ］が、予めユーザに決定され制御指令部４０のＲＯＭ４０２に保存されている。ここで、接触判定値ＦＬは、フィンガー１１ａ，１１ｂの移動時に検出されることがある応力変動を誤検出しないような値に設定する必要があり、本変形例においては、接触判定値Ｆｌ＝２．０［Ｎ］に設定した場合を、図１１に示している。
【０１０５】
接触判定値Ｆｌ＝２．０［Ｎ］が設定されている場合、例えば、１回目の把持力制御の実行時においては、図１１（ｂ）のグラフ（実線）に示すように、ｔ＝６４ｍｓｅｃ時にフィンガー１１ａ，１１ｂに発生した応力Ｆが接触判定値Ｆｌになったと判定される。そして、図１１（ａ）のグラフ（実線）に示すように、制御指令部４０は、ｔ＝６４ｍｓｅｃ時におけるフィンガー１１ａ，１１ｂの位置ＰであるＰ＝０．４３ｍｍの位置を、接触開始位置Ｐｐ（１）としてＲＯＭ４０２に記憶する。
【０１０６】
接触開始位置Ｐｐ（ｎ）を算出した後に、制御指令部４０は、ロボットハンド１０の初期状態における接触開始位置Ｐｐｏと、今回算出した接触開始位置Ｐｐ（ｎ）と、を比較し、変化量ΔＰｐを計算する。ここで、初期状態における接触開始位置Ｐｐｏは、上述した初期状態における減速開始位置Ｐｃｏと同様の方法により設定される。制御指令部４０は、変化量ΔＰｃと同様に、ΔＰｐ＝Ｐｐｏ−Ｐｐ（ｎ）の計算式に、初期状態における接触開始位置Ｐｐｏの値と、今回の把持力制御の結果検出された接触開始位置Ｐｐ（ｎ）の値と、を代入し、ΔＰｐを算出する。このように、基準位置である初期状態おける接触開始位置Ｐｐｏと、検出位置である接触開始位置Ｐｐ（ｎ）と、を比較することで検出されるΔＰｐは、本実施形態における差分を構成する。
【０１０７】
変化量ΔＰｐを求めた以降の処理は、本実施例の把持判定処理と同様に、通知判定値ΔＰｌと変化量ΔＰｐとを比較し、ユーザに通知するか否かを決定する。このように、力センサを用いて変化量ΔＰｐを検出した場合、ロボット装置１は、フィンガー１１ａ，１１ｂの把持速度を一定にする必要がない。このため、把持力制御の実行時の他に、位置制御の実行によってワークＷを把持する場合にも、フィンガー１１ａ，１１ｂの経時変化を検出しユーザに通知することができるようになる。なお、接触判定値Ｆｌ［Ｎ］及び通知判定値ΔＰｌ［ｍｍ］は、力センサの種類や該力センサからの出力信号の仕様に基づいて設定する必要がある。
【０１０８】
また、本変形例においては、フィンガー１１ａ，１１ｂの位置Ｐの検出について、モータ１２のエンコーダ回路１８を利用してもよく、別途レーザ変位計等の位置検出センサをロボットハンド１０に配設し、該位置検出センサを用いてもよい。ただし、レーザ変位計は、エンコーダ回路１８を利用した場合に比べてロボットハンド１０のサイズが大きくなるとともにコストも増加する。
【０１０９】
また、本実施形態において、図８に示したロボットハンド制御プログラムは、ハンド制御部３０及び制御指令部４０によって実行されるが、これに限定されない。ロボットハンド制御プログラムは、例えば、コンピュータで読み取り可能な記録媒体に記録し、コンピュータに読み取らせることで、コンピュータによっても実行可能である。
【符号の説明】
【０１１０】
１…ロボット装置：１０…ロボットハンド（ロボットハンド装置）：１１ａ，１１ｂ…フィンガー：１２…モータ（アクチュエータ）：１４ａ，１４ｂ…ラックギヤ（駆動力伝達機構）：１５…ピニオンギヤ（駆動力伝達機構）：１８…エンコーダ回路（速度検出手段）：２０…ロボットアーム：３０…ハンド制御部（制御部）：４０…制御指令部（制御部）１１１ａ，１１１ｂ…接触部（フィンガー）：１１２ａ，１１２ｂ…固定部（フィンガー）：１１３ａ，１１３ｂ…ひずみゲージ（応力検出手段）：Ｗ…ワーク
【図１】
0006632214.tif 000002
【図２】
0006632214.tif 000003
【図３】
0006632214.tif 000004
【図４】
0006632214.tif 000005
【図５】
0006632214.tif 000006
【図６】
0006632214.tif 000007
【図７】
0006632214.tif 000008
【図８】
0006632214.tif 000009
【図９】
0006632214.tif 000010
【図１０】
0006632214.tif 000011
【図１１】
0006632214.tif 000012