(57)【要約】【課題】対象物の把持動作を適切に実行する。【解決手段】ロボットハンドの制御部は、教示位置の取得の実施が必要である場合（Ｓ１００にてＹＥＳ）、教示制御を実行するステップ（Ｓ１０２）と、教示位置を取得するステップ（Ｓ１０４）と、姿勢制御を実行するステップ（Ｓ１０６）と、閉じ制御を実行するステップ（Ｓ１０８）と、反りの発生が判定される場合（Ｓ１１０にてＹＥＳ）、教示位置を更新するステップ（Ｓ１１２）とを含む、制御処理を実行する。【選択図】図８
2016203266.tif 000002
【特許請求の範囲】
【請求項１】
第１指部と、第２指部と、前記第１指部と前記第２指部とが接続されるベース部とを備えるロボットハンドであって、前記第１指部は、第１指先部と第１指元部とを含み、前記第１指部および前記第２指部は、複数のモータによって動作し、
前記複数のモータの各々の回転位置を検出する検出部と、
前記検出部によって取得された前記複数のモータの各々の前記回転位置に基づいて前記第１指部と前記第２指部の動作を制御する制御装置とを備え、
前記制御装置は、
前記第１指部と前記第２指部とを用いて対象物を把持して、前記対象物を把持した状態での前記複数のモータの各々の回転位置を教示位置として取得する教示制御を実行し、
前記複数のモータのうち前記第１指先部を前記第１指元部に対して可動させる第１モータ以外のモータの各々の回転位置が前記教示位置になるように前記第１モータ以外のモータを制御するとともに、前記第１モータの回転位置を前記第１指先部が前記対象物から離隔する位置になるように前記第１モータを制御する姿勢制御を実行し、
前記姿勢制御を実行した後に、前記第１指先部が前記第２指部に近づくように前記第１モータを制御する閉じ制御を実行し、
前記閉じ制御の実行中に、前記複数のモータのうち前記第１指元部を前記ベース部に対して可動させる第２モータの回転位置が、前記第１指元部を前記第２指部から離隔する方向に回転するように変化した場合に、変化が生じた時点の前記第１モータの回転位置に基づいて前記第１モータの前記教示位置を更新する、ロボットハンド。
【請求項２】
前記制御装置は、前記第１モータの前記教示位置が更新された後において前記対象物を把持する場合、前記教示位置に基づいて前記姿勢制御を実行し、前記第１モータの回転位置が更新後の前記教示位置になるまで前記閉じ制御を実行する、請求項１に記載のロボットハンド。
【請求項３】
前記制御装置は、前記閉じ制御の実行中に、前記第２モータの回転位置が、前記第１指元部を前記第２指部から離隔する方向に回転するように変化した場合に、前記対象物の把持が完了したと判定し、前記第２モータの回転位置が、前記第１指元部を前記第２指部から離隔する方向に回転するように変化しない場合、前記対象物が把持可能な位置にないことを判定する、請求項２に記載のロボットハンド。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットハンドの複数の指部の制御に関する。
【背景技術】
【０００２】
複数のアーム構成ユニットが関節部を介して連結されたアームを備えるロボットアームや複数の指構成ユニットが関節部を介して連結された指部を備えるロボットハンドにおいては、アームや指部の位置制御等によって対象物を把持する動作が行なわれる。このような従来のロボット装置として、たとえば、特開２０１２−２３６２３７号公報（特許文献１）には、接触検知指を用いたロボットハンドの把持動作について開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−２３６２３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
複数の指部を有するロボットハンドを利用して対象物の把持が行なわれる場合において、ロボットハンドの関節数が多いと、指部を用いて対象物を把持した場合に、指部による把持位置がずれる場合がある。把持位置がずれると、ロボットハンドが対象物を把持した姿勢が一定にならないため、対象物を特定の位置に移動させる移動動作や対象物を他の部品に組み合わせる組み立て動作を適切に実施できない場合がある。特許文献１に開示されているロボットハンドのように接触検知指を用いても対象物の把持位置がずれる場合には、やはり、上述の移動動作や組み立て動作を適切に実施できない場合がある。
【０００５】
本発明は、上述した課題を解決するためになされたものであって、その目的は、対象物の把持動作を適切に実行するロボットハンドを提供することである。
【課題を解決するための手段】
【０００６】
この発明のある局面に係るロボットハンドは、第１指部と、第２指部と、第１指部と第２指部とが接続されるベース部とを備える。第１指部は、第１指先部と第１指元部とを含む。第１指部および第２指部は、複数のモータによって動作する。このロボットハンドは、複数のモータの各々の回転位置を検出する検出部と、検出部によって取得された複数のモータの各々の回転位置に基づいて第１指部と第２指部の動作を制御する制御装置とを備える。制御装置は、第１指部と第２指部とを用いて対象物を把持して、対象物を把持した状態での複数のモータの各々の回転位置を教示位置として取得する教示制御を実行する。制御装置は、複数のモータのうち第１指先部を第１指元部に対して可動させる第１モータ以外のモータの各々の回転位置が教示位置になるように第１モータ以外のモータを制御するとともに、第１モータの回転位置を第１指先部が対象物から離隔する位置になるように第１モータを制御する姿勢制御を実行する。制御装置は、姿勢制御を実行した後に、第１指先部が第２指部に近づくように第１モータを制御する閉じ制御を実行する。制御装置は、閉じ制御の実行中に、複数のモータのうち第１指元部をベース部に対して可動させる第２モータの回転位置が、第１指元部を第２指部から離隔する方向に回転するように変化した場合に、変化が生じた時点の第１モータの回転位置に基づいて第１モータの教示位置を更新する。
【０００７】
好ましくは、制御装置は、第１モータの教示位置が更新された後において対象物を把持する場合、教示位置に基づいて姿勢制御を実行し、第１モータの回転位置が更新後の教示位置になるまで閉じ制御を実行する。
【０００８】
さらに好ましくは、制御装置は、閉じ制御の実行中に、第２モータの回転位置が、第１指元部を第２指部から離隔する方向に回転するように変化した場合に、対象物の把持が完了したと判定し、第２モータの回転位置が、第１指元部を第２指部から離隔する方向に回転するように変化しない場合、対象物が把持可能な位置にないことを判定する。
【発明の効果】
【０００９】
この発明によると、姿勢制御の後に閉じ制御を実行した場合において、第２モータの回転位置が、第１指元部を第２指部から離隔する方向に回転するように変化する状態になるときに第１モータの回転位置の教示位置を取得することができる。そのため、対象物を把持する動作を行なう場合、姿勢制御によって第１モータ以外のモータの各々の回転位置が教示位置になるため、閉じ制御の実行中に第１指先部が対象物に接触しても対象物の移動を抑制することができる。そのため、把持位置のずれを抑制することができる。さらに、第１モータの回転位置を更新後の教示位置になるまで移動させることにより第１指部と第２指部とにより対象物に対して一定の把持力を発生させることができる。そのため、把持位置のずれを抑制するとともに一定の把持力を発生させることによって対象物を把持した姿勢を毎回一定の姿勢にすることができる。したがって、対象物の把持動作を適切に実行するロボットハンドを提供することができる。
【図面の簡単な説明】
【００１０】
【図１】ロボットハンドの構成を模式的に示す図である。
【図２】ロボットハンドの制御系統の構成を示すブロック図である。
【図３】教示制御を説明するための図である。
【図４】姿勢制御を説明するための図である。
【図５】閉じ制御を説明するための図である。
【図６】反り判定を説明するための図である。
【図７】空振り判定を説明するための図である。
【図８】本実施の形態において、制御部で実行される制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号が付されている。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返されない。
【００１２】
図１は、本実施の形態に係るロボットハンド１の構成を模式的に示す図である。なお、図１に示すロボットハンド１の構成は例示であって、図１に示す構成に限定されるものではない。
【００１３】
ロボットハンド１は、対象物を把持するためのハンド部１０と、ハンド部１０の動きを制御する制御部１００とを含む。
【００１４】
制御部１００は、図示しないＣＰＵ（Central  Processing  Unit）および後述するメモリ等の記憶部１０２（図２参照）を備える。制御部１００は、各エンコーダからの検出結果および記憶部１０２に記憶された情報に基づいて所定の演算処理を実行し、演算結果に基づいて駆動部７０を介して各モータの動作を制御する。
【００１５】
ハンド部１０は、第１指部２０ａと、第２指部２０ｂと、第１指部２０ａと第２指部２０ｂとが所定距離を隔てて支持されるベース部３０とを含む。第１指部２０ａと第２指部２０ｂとは、回動可能にベース部３０に接続される。なお、本実施の形態では、ロボットハンド１の指部の本数を２本とする例を説明するが、指部の本数は２本に限定されるものではなく、対向配置された少なくとも２本の指部があればよく、たとえば、３本以上であってもよい。
【００１６】
第１指部２０ａは、第１指先部２１ａと、第１指先関節部２２ａと、第１指元部２３ａと、第１指元関節部２４ａとを含む。第１指元部２３ａの一端は第１指元関節部２４ａを介してベース部３０に接続され、第１指元部２３ａの他端は第１指先関節部２２ａを介して第１指先部２１ａに接続される。なお、本実施の形態では、指部の関節数を２つとしているが、指部の関節数は２つに限定されるものではなく、たとえば、３つ以上としてもよい。
【００１７】
第１指先関節部２２ａは、第１指先部２１ａと第１指元部２３ａとの間に設けられ、第１指先部２１ａを第１指元部２３ａに対して可動方向αに回動可能に支持する。なお、以下では、第１指先部２１ａが対象物を把持する方向（第２指部２０ｂに近づく方向）を「閉じ方向」ともいい、第１指先部２１ａが対象物を放す方向（第２指部２０ｂから離れる方向）を「開き方向」ともいう。
【００１８】
第１指先関節部２２ａは、第１指先部２１ａを可動方向αに回動させるための第１モータ（たとえば超音波モータ）５０ａと、第１モータ５０ａの回転状態を検出する第１エンコーダ４０ａとを含む。
【００１９】
第１指元関節部２４ａは、第１指元部２３ａとベース部３０との間に設けられ、第１指元部２３ａをベース部３０に対して可動方向βに回動可能に支持する。なお、以下では、第１指元部２３ａが対象物を把持する方向（第２指部２０ｂに近づく方向）を「閉じ方向」ともいい、第１指元部２３ａが対象物を放す方向（第２指部２０ｂから離れる方向）を「開き方向」ともいう。
【００２０】
第１指元関節部２４ａは、第１指元部２３ａを可動方向βに回動させるための第２モータ（たとえば、超音波モータ）６０ａと、第２モータ６０ａの回転状態を検出する第２エンコーダ４２ａとを含む。
【００２１】
同様に、第２指部２０ｂは、第２指先部２１ｂと、第２指先関節部２２ｂと、第２指元部２３ｂと、第２指元関節部２４ｂとを含む。第２指元部２３ｂの一端は第２指元関節部２４ｂを介してベース部３０に接続され、第２指元部２３ｂの他端は第２指先関節部２２ｂを介して第２指先部２１ｂに接続される。
【００２２】
第２指先関節部２２ｂは、第２指先部２１ｂと第２指元部２３ｂとの間に設けられ、第２指先部２１ｂを第２指元部２３ｂに対して可動方向α’に回動可能に支持する。なお、以下では、第２指先部２１ｂが対象物を把持する方向（第１指部２０ａに近づく方向）を「閉じ方向」ともいい、第２指先部２１ｂが対象物を放す方向（第１指部２０ａから離れる方向）を「開き方向」ともいう。
【００２３】
第２指先関節部２２ｂは、第２指先部２１ｂを可動方向αに回動させるための第３モータ（たとえば超音波モータ）５０ｂと、第３モータ５０ｂの回転状態を検出する第３エンコーダ４０ｂとを含む。
【００２４】
第２指元関節部２４ｂは、第２指元部２３ｂとベース部３０との間に設けられ、第２指元部２３ｂをベース部３０に対して可動方向β’に回動可能に支持する。なお、以下では、第２指元部２３ｂが対象物を把持する方向（第１指部２０ａに近づく方向）を「閉じ方向」ともいい、第２指元部２３ｂが対象物を放す方向（第１指部２０ａから離れる方向）を「開き方向」ともいう。
【００２５】
第２指元関節部２４ｂは、第２指元部２３ｂを可動方向β’に回動させるための第４モータ（たとえば、超音波モータ）６０ｂと、第４モータ６０ｂの回転状態を検出する第４エンコーダ４２ｂとを含む。
【００２６】
制御部１００は、第１指部２０ａおよび第２指部２０ｂを用いて対象物を把持する場合、第１指元部２３ａおよび第２指元部２３ｂの各々を閉じ方向に回動させるとともに、第１指先部２１ａおよび第２指先部２１ｂの各々を閉じ方向に回動させて対象物を把持するように第１指部２０ａの第１モータ５０ａおよび第２モータ６０ａと、第２指部２０ｂの第３モータ５０ｂおよび第４モータ６０ｂとを駆動部７０を介して制御する。
【００２７】
また、制御部１００は、第１指部２０ａおよび第２指部２０ｂが把持している対象物を解放する場合、たとえば、第１指先部２１ａおよび第２指先部２１ｂの各々を開き方向に回動させて対象物を放すように第１指部２０ａの第１モータ５０ａおよび第２モータ６０ａと、第２指部２０ｂの第３モータ５０ｂおよび第４モータ６０ｂとを駆動部７０を介して制御する。
【００２８】
なお、制御部１００は、第１指部２０ａおよび第２指部２０ｂが把持している対象物を解放する場合、第１指先部２１ａおよび第２指先部２１ｂに代えてまたは加えて第１指元部２３ａおよび第２指元部２３ｂを開き方向に回動させて対象物を放すように第１指部２０ａの第１モータ５０ａおよび第２モータ６０ａと、第２指部２０ｂの第３モータ５０ｂおよび第４モータ６０ｂとを制御するようにしてもよい。
【００２９】
制御部１００は、第１エンコーダ４０ａの検出結果に基づいて第１モータ５０ａの回転状態（たとえば、回転位置）を把握し、その把握結果を用いて第１モータ５０ａに対する駆動指令信号を生成する。さらに、制御部１００は、第２エンコーダ４２ａの検出結果に基づいて第２モータ６０ａの回転状態（たとえば、回転位置）を把握し、その把握結果を用いて第２モータ６０ａに対する駆動指令信号を生成する。さらに、制御部１００は、第３エンコーダ４０ｂの検出結果に基づいて第３モータ５０ｂの回転状態（たとえば、回転位置）を把握し、その把握結果を用いて第３モータ５０ｂに対する駆動指令信号を生成する。さらに、制御部１００は、第４エンコーダ４２ｂの検出結果に基づいて第４モータ６０ｂの回転状態（たとえば、回転位置）を把握し、その把握結果を用いて第４モータ６０ｂに対する駆動指令信号を生成する。
【００３０】
以上のような構成において、複数の指部を有するロボットハンドを利用して対象物の把持が行なわれる場合において、ロボットハンドの関節数が多いと、指部を用いて対象物を把持した場合に、指部が対象物に接触したときに対象物が移動し、指部による把持位置がずれる場合がある。把持位置がずれると、ロボットハンドが対象物を把持した姿勢が一定にならないため、対象物を特定の位置に移動させる移動動作や他の部品に組み合わせる組み立て動作を適切に実施できない場合がある。
【００３１】
そこで、本実施の形態に係るロボットハンド１においては、制御部１００が、以下のような動作を実施することを特徴とする。
【００３２】
すなわち、制御部１００は、第１指部２０ａおよび第２指部２０ｂを用いて対象物を把持して、対象物を把持した状態での第１指部２０ａおよび第２指部２０ｂに含まれる複数のモータ（すなわち、第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂ）の各々の回転位置を教示位置として取得する教示制御を実行する。
【００３３】
制御部１００は、複数のモータのうち第１指先部２１ａを第１指元部２３ａに対して可動させる第１モータ５０ａ以外のモータの各々の回転位置が教示位置になるように第１モータ５０ａ以外のモータを制御するとともに、第１モータ５０ａの回転位置を第１指先部２１ａが対象物から離隔する位置になるように第１モータ５０ａを制御する姿勢制御を実行する。
【００３４】
制御部１００は、姿勢制御を実行した後に、第１指先部２１ａが第２指部２０ｂに近づくように第１モータ５０ａを制御する閉じ制御を実行する。
【００３５】
制御部１００は、閉じ制御の実行中に、複数のモータのうち第１指元部２３ａをベース部３０に対して可動させる第２モータ６０ａの回転位置が、第１指元部２３ａを第２指部２０ｂから離隔する方向に回転するように変化した場合に、変化が生じた時点の第１モータ５０ａの回転位置に基づいて第１モータ５０ａの教示位置を更新する。
【００３６】
さらに、制御部１００は、第１モータ５０ａの教示位置が更新された後においては、対象物を把持する場合に教示位置に基づいて上述の姿勢制御を実行し、第１モータ５０ａの回転位置が教示位置になるように上述の閉じ制御を実行する。
【００３７】
このようにすると、対象物を把持する動作を行なう場合、姿勢制御によって第１モータ５０ａ以外のモータの各々の回転位置が教示位置になるため、閉じ制御の実行中に第１指先部２１ａが対象物に接触しても対象物の移動を抑制することができる。さらに、第１モータ５０ａの回転位置を教示位置になるまで移動させることにより第１指部２０ａと第２指部２０ｂとにより対象物に対して一定の把持力を発生させることができる。そのため、把持位置のずれを抑制するとともに一定の把持力を発生させることによって対象物を把持した姿勢を毎回一定の姿勢にすることができる。
【００３８】
図２は、本実施の形態に係るロボットハンド１の制御系統の構成を示すブロック図である。図２に示すように、ロボットハンド１は、制御部１００からの駆動指令信号に基づいて各モータを駆動させる駆動部７０をさらに含む。
【００３９】
制御部１００は、後述する教示位置を取得する場合や、操作者あるいは他の機器から把持動作指令を受けた場合に、駆動指令信号を駆動部７０に送信する。駆動部７０は、第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々に接続され、制御部１００からの駆動指令信号に基づいて第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂのうちの少なくともいずれかを駆動させる。
【００４０】
第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂが回転角度の変化は、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂによりそれぞれ検出され、それぞれの検出結果が制御部１００に出力される。制御部１００は、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの各々の検出結果に基づいて駆動部７０を介して第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの動作を制御する。
【００４１】
以上のような制御系統を有するロボットハンド１において、制御部１００は、未取得の教示位置を取得する場合や、把持動作指令を受けた場合に、以下のように動作をする。なお、以下の制御部１００の動作は、制御部１００に内蔵される記憶部１０２に記憶されたプログラム等のソフトウェアにより実現されてもよいし、ハードウェアにより実現されてもよい。
【００４２】
制御部１００は、対象物８０を把持するための教示位置の取得を実施する必要があるか否かを判定する。制御部１００は、たとえば、記憶部１０２の予め定められた記憶領域に対象物を把持するための教示位置が記憶されていない場合には、教示位置の取得を実施する必要があると判定する。一方、制御部１００は、たとえば、記憶部１０２の記憶領域に対象物８０を把持するための教示位置が記憶されている場合には、教示位置の取得を実施する必要がないと判定する。
【００４３】
制御部１００は、教示位置の取得を実施する必要がないと判定される場合には、把持動作指令があるか否かを判定する。制御部１００は、たとえば、操作者の要求操作に基づいて把持動作指令があると判定してもよいし、あるいは、予め定められた動作パターンに従ったロボットハンド１の作動中に、次の動作に把持動作が含まれる場合に、把持動作指令があると判定してもよいし、他の機器から把持動作指令を受ける場合に把持動作指令があると判定してもよい。
【００４４】
制御部１００は、教示位置の取得を実施する必要があると判定された場合に、教示制御を実行する。
【００４５】
具体的には、制御部１００は、図３に示すように、第１指部２０ａと第２指部２０ｂとを動作させて対象物８０を把持する。制御部１００は、対象物８０を把持した状態であって、かつ、第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂを停止させた状態における第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値を教示位置として取得し、記憶部１０２に記憶させる。
【００４６】
以下、教示制御によって教示位置を取得する動作の一例について説明する。たとえば、ロボットハンド１のベース部３０が対象物８０を把持することが可能な位置にベース部３０に連結されたアーム部等の動作によって移動させられる。
【００４７】
作業者の手動によりロボットハンド１の各モータが作動させられて第１指部２０ａおよび第２指部２０ｂが対象物８０を把持する位置（図３に示される第１指部２０ａおよび第２指部２０ｂの位置）に移動される。第１指部２０ａおよび第２指部２０ｂの移動が完了した後に、制御部１００は、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々を読み込んで、教示位置として記憶部１０２に記憶させる。
【００４８】
なお、制御部１００は、たとえば、暫定的な位置情報に基づいて第１指部２０ａおよび第２指部２０ｂを移動させて位置が固定された対象物８０を把持し、対象物８０を把持した状態で各モータへの駆動指令を停止し、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々を読み込んで、教示位置を取得してもよい。この場合、制御部１００は、たとえば、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値に基づいて第１指先部２１ａおよび第２指先部２１ｂを鉛直方向に向けた状態を維持するようにして第１指元部２３ａおよび第２指元部２３ｂを閉じ方向に移動させる。
【００４９】
制御部１００は、たとえば、第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々に対して駆動指令を出力しているにもかかわらず第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々に変化が生じない時点において第１指部２０ａおよび第２指部２０ｂによって対象物８０を把持したと判定してもよい。
【００５０】
制御部１００は、教示位置を記憶した後において、第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々に基づいて第１指部２０ａおよび第２指部２０ｂの各可動部の位置（第１モータ５０ａ、第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々の回転位置）を予め定められた初期位置に戻す。
【００５１】
制御部１００は、教示制御が実行されて後に、姿勢制御を実行する。具体的には、制御部１００は、図４に示すように、初期位置から第１指先部２１ａの回転させる第１モータ５０ａ以外の各可動部の位置（第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々の回転位置）が記憶部１０２に記憶された教示位置になるまで動作するように第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々を制御する。
【００５２】
制御部１００は、たとえば、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々が教示位置と一致するまで第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々を駆動させる。
【００５３】
一方、制御部１００は、図４に示すように、第１指先部２１ａを回転させる第１モータ５０ａの回転位置を教示位置よりも対象物８０から離隔した予め定められた位置とする。予め定められた位置は、第１指先部２１ａが対象物８０から離隔した位置であればよく、特に限定されるものではない。なお、予め定められた位置は、固定値であってもよいし、あるいは、教示制御によって取得された第１モータ５０ａの教示位置に対して予め定められた回転量を加算した値であってもよい。
【００５４】
また、制御部１００は、たとえば、把持動作指令があると判定する場合に上述の姿勢制御を実行する。
【００５５】
制御部１００は、姿勢制御を実行した後に、閉じ制御を実行する。制御部１００は、図５に示すように、第１指先部２１ａが閉じ方向に動作するように第１モータ５０ａを制御する。制御部１００は、後述するように第１指元部２３ａの反りが検出されるまで閉じ方向の動作を継続する。制御部１００は、第１指元部２３ａの反りが検出される場合に、第１モータ５０ａへの駆動指令の出力を停止する。
【００５６】
なお、制御部１００は、たとえば、把持動作指令に応じて姿勢制御が実行された場合、姿勢制御を実行した後に、第１モータ５０ａの回転位置が後述する更新後の教示位置になるまで閉じ制御を実行する。
【００５７】
制御部１００は、第１指元部２３ａに反りが発生したか否かを判定する。本実施の形態において、第１指元部２３ａの反りとは、図６に示すように、閉じ方向に回転する第１指先部２１ａの先端が対象物８０の側面に接触した状態（図６の実線参照）でさらに閉じ方向に回転することによって第１指元部２３ａが開き方向に回転する動作（図６の破線参照）をいう。なお、図６は、第１指元部２３ａの反りを説明する便宜上、大きく反りが発生した場合を一例として示している。
【００５８】
制御部１００は、第１指元部２３ａを回転させる第２モータ６０ａの回転位置を検出する第２エンコーダ４２ａの検出値の変化に基づいて第１指元部２３ａに反りが発生したか否かを判定する。制御部１００は、たとえば、第２エンコーダ４２ａの検出値が閉じ制御を開始する前の検出値と比較してしきい値以上開き方向に変化している場合には、第１指元部２３ａに反りが発生したと判定する。
【００５９】
制御部１００は、第１指元部２３ａに反りが発生したと判定される場合に、判定時点における第１エンコーダ４０ａの検出値を用いて記憶部１０２に記憶される教示位置を更新する。具体的には、制御部１００は、記憶部１０２に記憶される教示位置のうちの第１エンコーダ４０ａに対応する値を判定時点における第１エンコーダ４０ａの検出値になるように更新する。
【００６０】
制御部１００は、教示制御によって取得された教示位置を記憶部１０２の予め定められた記憶領域に記憶する。また、制御部１００は、第１指元部２３ａの反りの発生が判定された時点における第１エンコーダ４０ａの検出値を用いて記憶部１０２の予め定められた記憶領域に記憶された教示位置を更新する。
【００６１】
制御部１００は、把持動作指令に応じて、姿勢制御と、閉じ制御と、反り判定が実行された場合に、反りの発生が判定されたときに把持動作が完了したと判定する。一方、制御部１００は、たとえば、図７に示すように、閉じ制御によって第１エンコーダ４０ａの検出値が更新された教示位置に到達しているにもかかわらず、反りの発生が判定されなかった場合に、対象物８０が把持可能な位置に存在しないことを判定する（以下、このような判定を空振り判定と記載する場合がある）。
【００６２】
図８を参照して、本実施の形態に係るロボットハンド１の制御部１００で実行される制御処理について説明する。
【００６３】
ステップ（以下、ステップをＳと記載する）１００にて、制御部１００は、対象物８０を把持するための教示位置の取得を実施する必要があるか否かを判定する。教示位置の取得を実施する必要があると判定される場合（Ｓ１００にてＹＥＳ）、処理はＳ１０２に移される。もしそうでない場合（Ｓ１００にてＮＯ）、処理はＳ１１４に移される。
【００６４】
Ｓ１０２にて、制御部１００は、教示制御を実行する。教示制御の詳細については上述したとおりであるため、その詳細な説明は繰り返さない。Ｓ１０４にて、制御部１００は、教示制御によって取得された教示位置を記憶する。Ｓ１０６にて、制御部１００は、姿勢制御を実行する。Ｓ１０８にて、制御部１００は、閉じ制御を実行する。姿勢制御および閉じ制御の詳細については上述したとおりであるため、その詳細な説明は繰り返さない。
【００６５】
Ｓ１１０にて、制御部１００は、第１指元部２３ａに反りが発生したか否かを判定する。第１指元部２３ａに反りが発生したと判定される場合（Ｓ１１０にてＹＥＳ）、処理はＳ１１２に移される。もしそうでない場合（Ｓ１１０にてＮＯ）、処理はＳ１１０に戻される。
【００６６】
Ｓ１１２にて、制御部１００は、第１指元部２３ａに反りが発生したと判定された時点の第１エンコーダ４０ａの検出値を用いて記憶された教示位置を更新する。
【００６７】
Ｓ１１４にて、制御部１００は、把持動作の要求があるか否かを判定する。把持動作の要求があると判定される場合（Ｓ１１４にてＹＥＳ）、処理はＳ１１６に移される。もしそうでない場合（Ｓ１１４にてＮＯ）、処理はＳ１００に戻される。
【００６８】
Ｓ１１６にて、制御部１００は、姿勢制御を実行する。Ｓ１１８にて、制御部１００は、閉じ制御を実行する。Ｓ１２０にて、制御部１００は、第１指元部２３ａに反りが発生したか否かを判定する。第１指元部２３ａに反りが発生したと判定される場合（Ｓ１２０にてＹＥＳ）、処理はＳ１２２に移される。もしそうでない場合（Ｓ１２０にてＮＯ）、処理はＳ１２４に移される。
【００６９】
Ｓ１２２にて、制御部１００は、把持動作が完了したと判定する。Ｓ１２４にて、制御部１００は、第１モータ５０ａの回転位置が更新後の教示位置に到達したか否かを判定する。第１モータ５０ａの回転位置が更新後の教示位置に到達したと判定される場合（Ｓ１２４にてＹＥＳ）、処理はＳ１２６に移される。もしそうでない場合（Ｓ１２４にてＮＯ）、処理はＳ１２０に戻される。Ｓ１２６にて、制御部１００は、空振り判定をする。
【００７０】
以上のような構造およびフローチャートに基づく本実施の形態に係るロボットハンド１の制御部１００の動作について説明する。
【００７１】
たとえば、対象物８０を把持するための教示位置が未取得である場合には教示位置の取得の実施が必要であると判定され（Ｓ１００にてＹＥＳ）、教示制御が実行される（Ｓ１０２）。作業者が手動操作を行ない、第１指部２０ａおよび第２指部２０ｂによって対象物８０が把持される。第１指部２０ａおよび第２指部２０ｂによって対象物８０が把持された状態であって、かつ、各モータへの駆動指令が停止された状態における第１エンコーダ４０ａ、第２エンコーダ４２ａ、第３エンコーダ４０ｂおよび第４エンコーダ４２ｂの検出値の各々を教示位置として取得し、取得された教示位置が記憶される（Ｓ１０４）。
【００７２】
その後に、第１指部２０ａおよび第２指部２０ｂが初期位置に戻された後に、姿勢制御が実行される（Ｓ１０６）。姿勢制御が実行されることによって、第１指先部２１ａを回転させる第１モータ５０ａ以外の可動部の位置（第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々の回転位置）が記憶された教示位置になるまで動作するように第２モータ６０ａ、第３モータ５０ｂおよび第４モータ６０ｂの各々が制御される。一方、第１指先部２１ａについては、対象物８０から離隔した予め定められた位置に移動される。
【００７３】
この状態で閉じ制御が実行され（Ｓ１０８）、第１指先部２１ａが閉じ方向に回転する。第１指先部２１ａが閉じ方向に回転すると第１指先部２１ａの先端が対象物８０に接触し、さらに、第１指先部２１ａが閉じ方向に回転しようとすることにより、第１指元部２３ａが開き方向に回転することとなる。その結果、反りの発生が判定されるため（Ｓ１１０にてＹＥＳ）、反りの発生が判定された時点における第１エンコーダ４０ａの検出値が第１モータ５０ａの回転位置についての新たな教示位置として更新される（Ｓ１１２）。
【００７４】
教示位置が取得済の場合には、教示位置の取得の実施が必要でないと判定される（Ｓ１００にてＮＯ）。このとき、把持動作が要求される場合には（Ｓ１１４にてＹＥＳ）、姿勢制御が実行され（Ｓ１１６）、閉じ制御が実行される（Ｓ１１８）。そして、閉じ制御中に反りの発生が判定される場合には（Ｓ１２０にてＹＥＳ）、把持動作が完了したと判定される（Ｓ１２２）。一方、第１モータ５０ａの回転位置が更新された教示位置になるまでに、反りの発生が判定されない場合には（Ｓ１２０にてＮＯ，Ｓ１２４にてＹＥＳ）、空振り判定がされる（Ｓ１２６）。
【００７５】
以上のようにして、本実施の形態に係るロボットハンド１によると、姿勢制御の後に閉じ制御を実行した場合において、第２モータ６０ａの回転位置が、第１指元部２３ａを第２指部２０ｂから離隔する方向に回転するように変化する状態になるときに第１モータ５０ａの回転位置の教示位置を取得することができる。そのため、対象物８０を把持する動作を行なう場合、姿勢制御によって第１モータ５０ａ以外のモータの各々の回転位置が教示位置になるため、閉じ制御の実行中に第１指先部２１ａが対象物８０に接触しても対象物の移動を抑制することができる。さらに、第１モータ５０ａの回転位置を教示位置になるまで移動させることにより第１指部２０ａと第２指部２０ｂとにより対象物８０に対して一定の把持力を発生させることができる。そのため、把持位置のずれを抑制するとともに一定の把持力を発生させることによって対象物８０を把持した姿勢を毎回一定の姿勢にすることができる。したがって、対象物の把持動作を適切に実行するロボットハンドを提供することができる。
【００７６】
さらに、閉じ制御の実行中に、反りが発生しないと判定される場合には、対象物８０が把持可能な位置にないことが判定されるため、対象物が把持可能な位置に存在するか否かを精度高く判定することができる。
【００７７】
さらに、指先に接触検知センサ等のセンサ類を設ける必要がないため、指先の大きさが大きくなることを抑制することができるため、様々な大きさの対象物の把持が可能となる。
【００７８】
以下、変形例について記載する。
本実施の形態において、制御部１００は、閉じ制御の実行中に、第１モータ５０ａの回転位置が教示位置に到達するまでに反りの発生が判定されない場合に、空振り判定を行なうものとして説明したが、たとえば、教示位置からさらに予め定められた回転量だけ第１モータ５０ａを回転させた回転位置に到達するまでに反りの発生が判定されない場合に、空振り判定を行なうようにしてもよい。
【００７９】
さらに、本実施の形態において、制御部１００は、閉じ制御の実行中に第１指元部２３ａにおいて反りが発生したか否かを判定するものとして説明したが、第１モータ５０ａにおいては、少なくとも第１指先部２１ａの先端が対象物８０と接触した後に第１指元部２３ａにおいて反りが発生可能な程度の回転トルクが出力されることが望ましい。
【００８０】
さらに、本実施の形態においては、制御部１００は、閉じ制御の実行中に第１指元部２３ａにおいて反りが発生した場合に、発生した時点の第１エンコーダ４０ａの検出値を教示位置として教示制御において取得した教示位置を更新するものとして説明したが、たとえば、閉じ制御を複数回実行して、取得された複数の第１エンコーダ４０ａの検出値の平均値を最終的な教示位置として教示制御において取得した教示位置を更新するようにしてもよい。
【００８１】
さらに、本実施の形態において、制御部１００は、教示位置の未取得時の反り判定における第２モータ６０ａの回転変化量のしきい値と、教示位置の取得済時の反り判定における第２モータ６０ａの回転変化量のしきい値とを同じ値であるとして説明したが、たとえば、両者のしきい値を異なる値としてもよい。このようにすると、第１指部２０ａおよび第２指部２０ｂによる把持力の調整が可能になる。なお、上記した変形例は、その全部または一部を組み合わせて実施してもよい。
【００８２】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００８３】
１  ロボットハンド、１０  ハンド部、２０ａ，２０ｂ  指部、２１ａ，２１ｂ  指先部、２２ａ，２２ｂ  指先関節部、２３ａ，２３ｂ  指元部、２４ａ，２４ｂ  指元関節部、３０  ベース部、４０ａ，４０ｂ，４２ａ，４２ｂ  エンコーダ、５０ａ，５０ｂ，６０ａ，６０ｂ  モータ、７０  駆動部、８０  対象物、１００  制御部、１０２  記憶部。
【図１】
2016203266.tif 000003
【図２】
2016203266.tif 000004
【図３】
2016203266.tif 000005
【図４】
2016203266.tif 000006
【図５】
2016203266.tif 000007
【図６】
2016203266.tif 000008
【図７】
2016203266.tif 000009
【図８】
2016203266.tif 000010