(57)【要約】【課題】エンドエフェクターの把持トルクを増加させることなく把持対象物（ワーク）が滑り落ちることを低減し、把持対象物の対象範囲を拡大することにより、ロバスト性を向上させる。【解決手段】制御装置２０は、グリッパー４１が把持するワーク４２の滑り方向を検出する滑り演算部２１４と、滑り演算部２１４にて検出された滑り方向と重力の逆方向とがなす角度を算出する算出部２１５と、滑り演算部２１４にて検出された滑り方向が重力の逆方向に向くように、ワーク４２を把持するグリッパー４１を、算出部２１５にて算出された角度だけ回動させる制御部２１１と、を備える。【選択図】図１
2020097073.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有し、三次元空間を自在に移動可能なアームと、
前記複数の関節それぞれに設けられた、前記関節を駆動する駆動部と、
前記アームの先端部に設けられ、把持対象物を把持するエンドエフェクターと、
前記エンドエフェクターの位置を検出する第１検出部と、
前記エンドエフェクターが把持対象物を把持するトルクを検出する第２検出部と、を備えるロボットの動作を制御する制御装置であって、
前記エンドエフェクターが把持する把持対象物の滑り方向を検出する第３検出部と、
前記第３検出部にて検出された滑り方向と重力の逆方向とがなす角度を算出する算出部と、
前記第３検出部にて検出された滑り方向が重力の逆方向に向くように、把持対象物を把持する前記エンドエフェクターを、前記算出部にて算出された角度だけ回動させる制御部と、を備える制御装置。
【請求項２】
前記制御部は、把持対象物を把持する前記エンドエフェクターの回動軸が当該把持対象物の中心に位置する状態で当該エンドエフェクターを回動させる請求項１に記載の制御装置。
【請求項３】
前記制御部は、把持対象物を把持する前記エンドエフェクターを、前記算出部にて算出された角度だけ回動させた状態において、前記第３検出部にて水平面よりも下向きの滑りが検出されると、前記エンドエフェクターの把持トルクを増加させ、当該把持対象物の滑り量がゼロとなったときの前記第２検出部にて検出されたトルクを、前記エンドエフェクターの把持トルクに設定する請求項１又は請求項２に記載の制御装置。
【請求項４】
前記制御部は、把持対象物を把持する前記エンドエフェクターを、前記算出部にて算出された角度だけ回動させた状態において、前記第３検出部にて水平面よりも上向きの滑りが検出されると、前記エンドエフェクターの把持トルクを減少させ、当該把持対象物の滑り量がゼロとなったときの前記第２検出部にて検出されたトルクを維持する請求項１乃至請求項３の何れか１つに記載の制御装置。
【請求項５】
前記制御部は、把持対象物を把持する前記エンドエフェクターを重力方向に加減速動作で駆動させる請求項１乃至請求項４の何れか１つに記載の制御装置。
【請求項６】
前記アームの先端部には、把持対象物を把持する前記エンドエフェクターを回動させる回動機構が更に備えられ、
前記回動機構の回動軸は、前記エンドエフェクターに把持された把持対象物の中心に位置しており、
前記制御部は、前記回動機構の回動軸を回動させることで、前記エンドエフェクターに把持されている把持対象物の中心に、当該エンドエフェクターを回動させる請求項１乃至請求項５の何れか１つに記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、把持対象物を把持するアームを制御する制御装置に関する。
【背景技術】
【０００２】
一般的なロボット制御システムは、把持対象物であるワークを把持するアームと、アームを制御する制御装置とを備えている。例えば、制御装置がアームを制御することにより、アームの先端部に取り付けられているエンドエフェクター（例えば、指部を有したハンドや、爪部を有したグリッパー）でワークを把持（ピッキング）し、当該ワークを目的位置まで移送して置く（プレース）というピッキングアンドプレース動作が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１７７９７７号公報
【特許文献２】特開２００３−１２７０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、アームの先端部のエンドエフェクターでワークを把持する場合、把持されていたワークが、ワークの形状、表面の状態などによって滑り落ちてしまうことがある。そこで、上記特許文献１、２には、把持しているワークの滑りを検出する滑りセンサーをエンドエフェクターに設け、滑りセンサーにてワークの滑りが検出されると、エンドエフェクターの把持トルク（把持力）を増加させて、ワークが滑り落ちるのを低減する制御装置が記載されている。
【０００５】
しかしながら、上記特許文献１、２に記載されている制御装置では、滑りセンサーにてワークの滑りが検出されると、エンドエフェクターの把持力を増加させるため、把持力の増加によりワークが破損するおそれがある。このため、ワークの対象範囲が制限されてしまう。また、把持力の増加により、消費電力が増加し、省電力化を図ることができない。
【０００６】
本発明は、上記の事情に鑑みなされたものであり、エンドエフェクターの把持トルクを増加させることなく把持対象物（ワーク）が滑り落ちることを低減し、把持対象物の対象範囲を拡大することにより、ロバスト性を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一局面に係る制御装置は、複数の関節を有し、三次元空間を自在に移動可能なアームと、前記複数の関節それぞれに設けられた、前記関節を駆動する駆動部と、前記アームの先端部に回転可能に設けられ、把持対象物を把持するエンドエフェクターと、前記エンドエフェクターの位置を検出する第１検出部と、前記エンドエフェクターが把持対象物を把持するトルクを検出する第２検出部と、を備えるロボットの動作を制御する制御装置であって、前記エンドエフェクターが把持する把持対象物の滑り方向を検出する第３検出部と、前記第３検出部にて検出された滑り方向と重力の逆方向とがなす角度を算出する算出部と、前記第３検出部にて検出された滑り方向が重力の逆方向に向くように、把持対象物を把持する前記エンドエフェクターを、前記算出部にて算出された角度だけ回動させる制御部と、を備える。
【発明の効果】
【０００８】
本発明によれば、制御部は、第３検出部にて検出された滑り方向が重力の逆方向に向くように、把持対象物を把持するエンドエフェクターを、算出部にて算出された角度だけ回動させるので、エンドエフェクターの回動後の状態では、エンドエフェクターが把持する把持対象物の滑り方向の力と重力とを対抗させることができ、把持対象物の滑りを解消した状態とすることができる。これにより、エンドエフェクターの把持トルクを増加させることなく、把持対象物が滑り落ちることを低減することができる。このため、把持対象物の対象範囲を拡大することができ、ロバスト性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態に係るロボット制御システムを構成する制御装置の主要内部構成を概略的に示した機能ブロック図である。
【図２】制御の対象となるロボットを模式的に示した外観図である。
【図３】制御装置の制御ユニットで行われる処理動作の一例を示したフローチャートである。
【図４】図３に続く処理動作の一例を示したフローチャートである。
【図５】（Ａ）は、滑り演算部によるワークの滑り方向の算出例を示す図、（Ｂ）は、各滑りベクトルと合成ベクトルの関係を示す図、（Ｃ）は、算出部にて算出された回動角度だけグリッパーを回動させた状態を示す図である。
【図６】変形例におけるロボットを模式的に示した外観図である。
【図７】（Ａ）は、滑り演算部によるワークの滑り方向の算出例を示す図、（Ｂ）は、各滑りベクトルと合成ベクトルの関係を示す図、（Ｃ）は、算出部にて算出された回動角度だけグリッパーを回動させた状態を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明の一実施形態に係る制御装置について図面を参照して説明する。図１は、一実施形態に係るロボット制御システムを構成する制御装置の主要内部構成を概略的に示した機能ブロック図である。図２は、制御の対象となるロボットを模式的に示した外観図である。
【００１１】
ロボット制御システム１は、ロボット１０と、ロボット１０の動作を制御する制御装置（ロボット制御装置）２０と、を含んで構成される。
【００１２】
ロボット１０は、図２に示すように、人間の腕と同様の運動機能を持つマニピュレーターで、三次元空間を自在に移動可能なアーム（ロボットアーム）１１を備え、アーム１１の根元は台座１４に固定されている。アーム１１は、複数の関節１２Ａ乃至１２Ｅ（以降、まとめて「関節１２」とも称す）と、関節１２どうしをつなぐリンク１３Ａ乃至１３Ｄとを有する。
【００１３】
また、アーム１１は、その先端部１５にエンドエフェクターが回動可能に設けられている。具体的には、アーム１１の先端部１５に設けられた回動機構１８（例えば、ステッピングモータ）に、エンドエフェクターが装着されている。
【００１４】
図２中では、エンドエフェクターとして、平行に配置された２つの爪部４１Ａ，４１Ｂを有するグリッパー４１が取り付けられている。グリッパー４１は、例えば、テーブル４３に載せられたワーク（把持対象物）４２を把持して、ワーク４２を任意の場所へ運ぶことに使用される。図２中では、回動機構１８は、Ｘ−Ｙ平面（水平面）内のＹ軸方向を回動軸１８Ａとし、この回転軸がワーク４２の中心に位置する状態でグリッパー４１が回動可能となっている。これにより、ワーク４２に働く遠心力で当該ワーク４２が滑って外れることを抑制することができる。なお、回動機構１８は、その回転軸が、ワーク４２の中心に位置する状態とすることがより好ましいが、回動機構１８の回転軸が、ワーク４２の中心からずれているものの当該ワーク４２に位置する状態としてもよい。
【００１５】
また、グリッパー４１には、空気圧により爪部４１Ａ，４１Ｂを駆動する爪部駆動部４１Ｃ（例えば、シリンダー）が内蔵されている。
【００１６】
また、グリッパー４１には、ワーク４２を把持する把持トルク（つまり、爪部４１Ａ，４１Ｂによる把持力）を検出する第２検出部（トルク検出部）４１Ｄが設けられている。第２検出部４１Ｄとしては、例えば、トルクセンサーが挙げられる。
【００１７】
また、グリッパー４１の爪部４１Ａ，４１Ｂにおけるワーク４２に向く面側には、既知の滑りセンサー４１Ｆがそれぞれ設けられている。この滑りセンサー４１Ｆにより、グリッパー４１の爪部４１Ａ，４１Ｂが把持するワーク４２の滑りを検出することが可能となっている。具体的には、爪部４１Ａの滑りセンサー４１Ｆ、及び、爪部４１Ｂの滑りセンサー４１Ｆはそれぞれ、滑り量とその滑り方向とが検出可能であり、各滑りセンサー４１Ｆの検出信号が、ロボット１０を介して制御装置２０に出力される。
【００１８】
また、グリッパー４１には、加速度センサー４１Ｇが設けられている。この加速度センサー４１Ｇにより、重力方向の検出が可能となっている。
【００１９】
ロボット１０は、関節１２それぞれに設けられた、関節１２を駆動する駆動部（関節駆動部）１６Ａ乃至１６Ｅ（以降、まとめて「駆動部１６」とも称す）と、関節１２それぞれに設けられた、関節１２の角度を検出する関節角検出部１７Ａ乃至１７Ｅ（以降、まとめて「関節角検出部１７」とも称す）と、ロボット１０の上方に設けられたカメラ１９と、を備える。なお、駆動部１６、及び関節角検出部１７としてはそれぞれ、例えば、モーター、エンコーダーが挙げられる。
【００２０】
また、関節角検出部１７は、特許請求の範囲における第１検出部（位置検出部）の一例である。アーム１１の先端部１５の位置は、関節１２Ａ乃至１２Ｅすべての角度から割り出すことができる。なお、ロボット１０の全体を撮影するカメラ１９を、上記第１検出部として利用することも可能である。
【００２１】
制御装置２０は、制御ユニット２１と、操作部２２と、表示部２３と、記憶部２４と、外部インターフェイス部（外部Ｉ／Ｆ）２５と、を備える。
【００２２】
操作部２２は、キーボード、マウス、タッチパネル等から構成され制御ユニット２１にコマンドや文字を入力したり、表示部２３における画面上のポインターを操作したりする。表示部２３は、制御ユニット２１からの応答やデータ結果を表示する。操作部２２は、例えば、アーム１１の先端部１５の目標到達位置（例えば、把持対象物であるワーク４２をプレースする位置）の指示入力に用いられる。
【００２３】
記憶部２４は、ＨＤＤ（Hard Disk Drive）などの記憶装置であり、制御装置２０の動作に必要なプログラムやデータを記憶し、制御パラメーター記憶部２４３を含む。
【００２４】
制御パラメーター記憶部２４３は、ピッキング動作、後述する回動動作、プレース動作で用いる制御パラメーターが記憶される。
【００２５】
外部インターフェイス部２５は、外部装置と接続するためのもので、制御装置２０は、外部インターフェイス部２５を介して、ロボット１０を構成する駆動部１６、関節角検出部１７、回動機構１８、及びカメラ１９と接続され、更に、ロボット１０を介して、爪部駆動部４１Ｃ、第２検出部４１Ｄ、滑りセンサー４１Ｆ、及び加速度センサー４１Ｇと接続されている。
【００２６】
制御ユニット２１は、プロセッサー、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及び専用のハードウェア回路を含んで構成される。プロセッサーは、例えばＣＰＵ（Central Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）等である。制御ユニット２１は、制御部（ロボット制御部）２１１と、物体認識部２１２と、軌道生成部２１３と、滑り演算部２１４と、算出部（角度算出部）２１５と、を備えている。
【００２７】
制御ユニット２１は、記憶部２４に記憶されている制御プログラムに従った上記プロセッサーによる動作により、制御部２１１、物体認識部２１２、軌道生成部２１３、滑り演算部２１４、及び算出部２１５として機能する。但し、制御ユニット２１等の上記の各構成は、制御ユニット２１による制御プログラムに基づく動作によらず、それぞれハードウェア回路により構成することも可能である。以下、特に触れない限り、各実施形態について同様である。
【００２８】
制御部２１１は、制御装置２０の全体的な動作制御を司る。制御部２１１は、操作部２２、表示部２３、記憶部２４、及び外部インターフェイス部２５と接続されており、接続されている上記各構成の動作制御や、各構成との間での信号またはデータの送受信を行う。
【００２９】
物体認識部２１２は、カメラ１９で撮影されることによって得られた画像データに基づいて、例えば、パターンマッチングや機械学習による物体認識を行うことで、把持対象物であるワーク４２を認識し、当該ワーク４２の位置を検出する。この位置は、ピッキング動作の終点となる。
【００３０】
軌道生成部２１３は、物体認識部２１２で検出されたワーク４２の位置（ピッキング動作の終点）に基づいて、現在位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。また、軌道生成部２１３は、操作部２２を介してユーザーから指示された、ワーク４２をプレースする位置（プレース動作の終点）に基づいて、ワーク４２を把持した位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。なお、軌道の生成には、ＲＲＴ（Rapidly exploring random tree）など、種々の生成アルゴリズムを適用することができる。
【００３１】
滑り演算部２１４は、爪部４１Ａの滑りセンサー４１Ｆの検出信号と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号とに基づいて、グリッパー４１が把持（ピッキング）しているワーク４２の滑り量とその滑り方向とを演算により算出する。
【００３２】
具体的には、滑り演算部２１４は、例えば、図５（Ａ）に示すように、爪部４１Ａの滑りセンサー４１Ｆの検出信号が示す滑りベクトルＳＡ１（滑り方向がＺ方向で第１滑り量ＳＬ１となっている）と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号が示す滑りベクトルＳＡ２（滑り方向がＺ方向で第１滑り量ＳＬ１よりも小さい第２滑り量ＳＬ２となっている）との合成ベクトルＣＶ（つまり、ワーク４２に働く滑り方向とその滑り量）を算出する。
【００３３】
図５（Ａ）に示すように、ワーク４２の爪部４１Ａ側の滑り量（第１滑り量ＳＬ１）と、ワーク４２の爪部４１Ｂ側の滑り量（第２滑り量ＳＬ２）とが異なっているため、ワーク４２に働く滑り方向は、重力方向と異なる下向き方向となる。具体的には、図５（Ｂ）に示すように、滑り演算部２１４は、ワーク４２に働く滑り方向が重力方向となす角度θ１を、次式（１）により算出する。
【００３４】
角度θ１＝Ａｒｃｔａｎ（Ｌ／（ＳＬ１−ＳＬ２））  ・・・  （１）
但し、Ｌ：爪部４１Ａと爪部４１Ｂとの間の距離（ワークの長さとも言える）、ＳＬ１：ワーク４２の爪部４１Ａ側の滑り量（第１滑り量ＳＬ１）、ＳＬ２：ワーク４２の爪部４１Ｂ側の滑り量（第２滑り量ＳＬ２）である。
【００３５】
図５（Ａ）、図５（Ｂ）中では、滑り演算部２１４は、ワーク４２に働く滑り方向が重力方向（Ｚ方向）となす角度θ１が例えば４０°であると算出している。なお、爪部４１Ａの滑りセンサー４１Ｆ、爪部４１Ｂの滑りセンサー４１Ｆ、及び、滑り演算部２１４は、特許請求の範囲における第３検出部（滑り方向検出部）の一例である。
【００３６】
なお、図５（Ａ）、図５（Ｃ）では、グリッパー４１の回動を分かりやすく説明するために、爪部４１Ａのみハッチングを付し、爪部４１Ｂにはハッチングを付していない。
【００３７】
算出部２１５は、滑り演算部２１４にて検出された滑り方向と重力の逆方向とがなす角度θ２を算出する。具体的には、算出部２１５は、滑り演算部２１４にて検出された滑り方向（図５（Ａ）中では重力方向（Ｚ方向）に対して例えば４０°の角度の方向）と、グリッパー４１の加速度センサー４１Ｇにより検出される重力方向（Ｚ方向のことであり、例えば０°の方向）の逆方向（Ｚ方向とは反対方向のことであり、例えば１８０°の方向）とがなす角度θ２（つまり、１８０°−４０°＝１４０°）を算出する。
【００３８】
なお、本実施形態では、加速度センサー４１Ｇにより検出される重力方向（Ｚ方向）を用いているが、記憶部２４に、ロボット１０の三次元空間（ＸＹＺ座標系空間）におけるＺ方向を示す座標データを予め記憶させておき、適宜に記憶部２４から重力方向（Ｚ方向）の座標データを読み出して使用する構成とし、加速度センサー４１Ｇを備えない構成としてもよい。
【００３９】
制御部２１１は、滑り演算部２１４にて検出された滑り方向が重力の逆方向に向くように、ワーク４２を把持するグリッパー４１を、ワーク４２の中心位置を回動軸１８Ａとして、算出部２１５にて算出された角度（図５（Ａ）中では、１４０°）だけ回動させ、図５（Ｃ）に示すように、グリッパー４１を算出部２１５にて算出された角度（例えば１４０°）だけ回動させた状態にする。この回動状態では、図５（Ａ）で示したワーク４２の滑り方向が重力の逆方向に向く状態となっている。この回動状態では、グリッパー４１が把持するワーク４２の滑り方向の力と重力とを対抗させることができ、ワーク４２の滑りを解消した状態とすることができる場合がある。すなわち、ワーク４２の滑りを解消した把持姿勢とすることができることがある。
【００４０】
また、回動機構１８の回転軸がワーク４２の中心に位置する状態でグリッパー４１が回動しているため、ワーク４２に働く遠心力で当該ワーク４２が滑って外れることを抑制することができる。
【００４１】
制御部２１１は、ワーク４２を把持するグリッパー４１を、算出部２１５にて算出された角度だけ回動させた状態において、滑り演算部２１４にて水平面よりも下向きの滑りが検出されると、グリッパー４１の把持トルクを増加させ、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを、グリッパー４１の把持トルクに設定する。
【００４２】
制御部２１１は、ワーク４２を把持するグリッパー４１を、前記算出部２１５にて算出された角度だけ回動させた状態において、上記とは逆に、滑り演算部２１４にて水平面よりも上向きの滑りが検出されると、グリッパー４１の把持トルクを減少させ、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを維持する。
【００４３】
制御部２１１は、ワーク４２を把持するグリッパー４１を重力方向（Ｚ方向）に加減速動作で駆動させる。
【００４４】
制御部２１１は、軌道生成部２１３により生成された目標軌道（例えば、目標位置や目標速度、目標加速度等）と、アーム１１の先端部１５の位置や速度、加速度等とに基づいて、当該先端部１５を目標軌道に追従させるように、その時のロボット１０の状態に適した制御パラメーターを用いて、駆動部１６の駆動を制御する。
【００４５】
また、制御部２１１は、ピッキング動作、後述する回動動作、プレース動作で使用したそれぞれの最新の制御パラメーターを、制御パラメーター記憶部２４３に記憶させる。
【００４６】
次に、制御装置２０における制御ユニット２１で行われる処理動作について、図３、図４に示したフローチャートに基づいて説明する。なお、この処理動作は、ロボット１０のピッキングアンドプレース動作で行われる処理動作である。
【００４７】
まず、物体認識部２１２が、カメラ１９で撮影されることによって得られた画像データに基づいて、把持対象物であるワーク４２を認識し、当該ワーク４２の位置（ピッキング動作の終点）を検出し（Ｓ１）、軌道生成部２１３が、物体認識部２１２で検出されたワーク４２の位置（ピッキング動作の終点）に基づいて、現在位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する（Ｓ２）。
【００４８】
続いて、制御部２１１が、軌道生成部２１３により生成された目標軌道が示す次の時刻での先端部１５の目標位置や目標速度、目標加速度と、ロボット１０の関節角検出部１７による検出結果から求められる先端部１５の位置や速度、加速度との偏差が小さくなるように、制御パラメーターを用いて、駆動部１６に対する制御量を決定し、そして駆動部１６の駆動を制御する（Ｓ３）。
【００４９】
制御部２１１は、Ｓ１において物体認識部２１２が認識したワーク４２をグリッパー４１の爪部４１Ａ，４１Ｂによってピッキング（把持）する（Ｓ４）。
【００５０】
制御部２１１は、爪部４１Ａの滑りセンサー４１Ｆの検出信号と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号とに基づいて、ワーク４２の滑りの発生の有無を判定する（Ｓ５）。
【００５１】
制御部２１１は、滑りの発生ありと判定した場合には（Ｓ５「Ｙｅｓ」）、ワーク４２を把持しているグリッパー４１が回動可能な高さに位置しているか否かを判定する（Ｓ６）。
【００５２】
制御部２１１は、グリッパー４１が回動可能な高さに位置していないと判定した場合には（Ｓ６「Ｎｏ」）、ワーク４２をプレースした後、グリッパー４１の把持トルクを直前の把持トルクよりも大きい値に変更して、再びワーク４２をグリッパー４１にて把持させる（Ｓ７）。
【００５３】
一方、滑り演算部２１４は、制御部２１１にてグリッパー４１が回動可能な高さに位置していると判定した場合には（Ｓ６「Ｙｅｓ」）、爪部４１Ａの滑りセンサー４１Ｆの検出信号と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号とに基づいて、グリッパー４１が把持（ピッキング）しているワーク４２の滑り量とその滑り方向とを演算により算出する（Ｓ８）。
【００５４】
具体的には、滑り演算部２１４は、例えば、図５（Ａ）に示すように、爪部４１Ａの滑りセンサー４１Ｆの検出信号が示す滑りベクトルＳＡ１（滑り方向がＺ方向で第１滑り量ＳＬ１となっている）と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号が示す滑りベクトルＳＡ２（滑り方向がＺ方向で第１滑り量ＳＬ１よりも小さい第２滑り量ＳＬ２となっている）との合成ベクトルＣＶ（つまり、ワーク４２に働く滑り方向とその滑り量）を算出する。図５（Ｂ）に示すように合成ベクトルＣＶの方向が、ワーク４２に働く滑り方向であり、合成ベクトルＣＶの大きさがワーク４２の合成滑り量である。図５（Ａ）に示すように、ワーク４２の爪部４１Ａ側の滑り量（第１滑り量ＳＬ１）と、ワーク４２の爪部４１Ｂ側の滑り量（第２滑り量ＳＬ２）とが異なっているため、ワーク４２に働く滑り方向は、重力方向と異なる下向き方向（図５（Ａ）中では重力方向（Ｚ方向）に対して例えば４０°の角度の方向）であることが算出される。
【００５５】
算出部２１５は、滑り演算部２１４にて検出された滑り方向と重力の逆方向とがなす角度θ２を算出する（Ｓ９）。具体的には、算出部２１５は、滑り演算部２１４にて検出された滑り方向（図５（Ａ）中では重力方向（Ｚ方向）に対して例えば４０°の角度の方向）と、グリッパー４１の加速度センサー４１Ｇにより検出される重力方向（Ｚ方向のことであり、例えば０°の方向）の逆方向（Ｚ方向とは反対方向のことであり、例えば１８０°の方向）とがなす角度θ２（つまり、θ２＝１８０°−４０°＝１４０°）を算出する。
【００５６】
制御部２１１は、滑り演算部２１４にて検出された滑り方向が重力の逆方向に向くように、ワーク４２を把持するグリッパー４１を、算出部２１５にて算出された角度（図５（Ａ）中では、１４０°）だけ回動させ、図５（Ｃ）に示すように、グリッパー４１を算出部２１５にて算出された角度（例えば１４０°）だけ回動させた状態にする（Ｓ１０）。この回動状態では、図５（Ａ）で示したワーク４２の滑り方向が重力の逆方向に向く状態となっている。グリッパー４１が把持するワーク４２の滑り方向の力と重力とを対抗させることができ、ワーク４２の滑りを解消した状態とすることができる場合がある。すなわち、ワーク４２の滑りを解消した把持姿勢とすることができることがある。
【００５７】
制御部２１１は、爪部４１Ａの滑りセンサー４１Ｆの検出信号と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号とに基づいて、回動されたグリッパー４１が把持するワーク４２の滑りの発生の有無を判定する（Ｓ１１）。
【００５８】
制御部２１１が、回動されたグリッパー４１が把持するワーク４２の滑りの発生なしと判定した場合には（Ｓ１１「Ｎｏ」）、ワーク４２の移動動作に進む（Ｓ１７）。
【００５９】
一方、制御部２１１が滑りの発生ありと判定した場合には（Ｓ１１「Ｙｅｓ」）、滑り演算部２１４は、爪部４１Ａの滑りセンサー４１Ｆの検出信号と、爪部４１Ｂの滑りセンサー４１Ｆの検出信号とに基づいて、回動されたグリッパー４１が把持（ピッキング）しているワーク４２の滑り量とその滑り方向とを演算により算出する。
【００６０】
そして、制御部２１１は、滑り演算部２１４にて検出された滑り方向が下向きであるか否かを判定する（Ｓ１２）。すなわち、制御部２１１は、回動されたグリッパー４１が把持しているワーク４２の滑り方向が下向きであるか否かを判定する。
【００６１】
制御部２１１は、滑り演算部２１４にて検出された滑り方向が下向きであると判定した場合には（Ｓ１２「Ｙｅｓ」）、グリッパー４１の把持トルクを増加させ（Ｓ１３）、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを、グリッパー４１の把持トルクに設定する（Ｓ１４）。
【００６２】
グリッパー４１を、滑り方向が重力の逆方向に向くように回動させた状態において、水平面よりも下向きの滑りが検出される場合は、グリッパー４１の回動前及び回動後において同じく下向きの滑りが生じていることから、そもそもグリッパー４１の把持トルクが足らなかったと推測できる。例えば、爪部４１Ａでの滑りベクトルＳＡ１と、爪部４１Ｂでの滑りベクトルＳＡ２とが同じ場合には、ワーク４２を１８０°回動させたとしても、当該１８０°回動後の状態においてワーク４２が重力方向（Ｚ方向）に滑るため、そもそもグリッパー４１の把持トルクが足らなかったといえる。このように、グリッパー４１の回動後において下向きの滑りが生じている場合には、グリッパー４１の把持トルクを増加させ、当該グリッパー４１の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを、グリッパー４１の把持トルクに設定する。これにより、グリッパー４１の把持トルクを最適な値に変更することができ、グリッパー４１を滑りなく適切に把持することができる。
【００６３】
一方、制御部２１１は、滑り演算部２１４にて検出された滑り方向が下向きでない、つまり、上向きであると判定した場合には（Ｓ１２「Ｎｏ」）、グリッパー４１の把持トルクを減少させ（Ｓ１５）、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを維持する（Ｓ１６）。
【００６４】
グリッパー４１を、滑り方向が重力の逆方向に向くように回動させた状態において、水平面よりも上向きの滑りが検出される場合は、グリッパー４１の把持トルクが過剰であると推測できる。このように、グリッパー４１の回動後において上向きの滑りが生じている場合には、グリッパー４１の把持トルクを減少させ、当該グリッパー４１の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを維持する。これにより、グリッパー４１を滑りなく適切に把持することができ、不必要な把持力相当分の電力を削減することができ、省電力化を図ることができる。
【００６５】
Ｓ１４のあと、Ｓ１６のあと、Ｓ５「Ｎｏ」の場合、又は、Ｓ１１「Ｎｏ」の場合には、制御部２１１は、ワーク４２を移動させる（Ｓ１７）。
【００６６】
制御部２１１は、アーム１１の先端部１５の位置が、ワーク４２をプレースする位置（つまり、目標位置）に到達したか否かを判定する（Ｓ１８）。アーム１１の先端部１５の位置が目標位置に到達していない場合には（Ｓ１８「Ｎｏ」）、Ｓ１７に戻る。
【００６７】
一方、アーム１１の先端部１５の位置が目標位置に到達している場合には（Ｓ１８「Ｙｅｓ」）、制御部２１１は、ワーク４２を目標位置にプレースさせる（Ｓ１８）。
【００６８】
具体的には、軌道生成部２１３は、操作部２２を介してユーザーから指示された、ワーク４２をプレースする位置（プレース動作の終点）に基づいて、ワーク４２を把持した位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。制御部２１１は、当該目標軌道に従ってワーク４２を目標位置にプレースさせる。例えば、制御部２１１は、回動された状態のグリッパー４１を水平姿勢に戻してから、ワーク４２を目標位置にプレースさせる。
【００６９】
そして、制御部２１１は、引き続きワーク４２がある場合には、上記Ｓ１〜Ｓ１９の処理を実行させ、ワーク４２がない場合には、本処理を終了させる。
【００７０】
上記実施形態によれば、滑り演算部２１４は、グリッパー４１が把持するワーク４２の滑り方向（重力方向（Ｚ方向）に対して角度θ１の方向）を検出する。算出部２１５は、滑り演算部２１４にて検出された滑り方向と重力の逆方向とがなす角度θ２を算出する。制御部２１１は、滑り演算部２１４にて検出された滑り方向が重力の逆方向に向くように、ワーク４２を把持するグリッパー４１を、算出部２１５にて算出された角度だけ回動させる。このようにグリッパー４１の回動後の状態では、グリッパー４１が把持するワーク４２の滑り方向の力と重力とを対抗させることができ、ワーク４２の滑りを解消した状態とすることができる場合がある。特に、グリッパー４１がワーク４２に対して複数点支持（例えば２点支持）で把持しているときに、各支持点の滑り量が異なることで当該ワーク４２が重力の方向とは異なる方向に滑るような場合には、グリッパー４１を、滑り方向が重力の逆方向に向くように回動させることで、滑りを解消した把持姿勢とすることができることがある。これによれば、グリッパー４１の把持トルクを増加させることなく、ワーク４２が滑り落ちることを低減することができる。このため、ワーク４２の対象範囲を拡大することができ、ロバスト性を向上させることができる。また、把持力を増加させないので、把持力の増加による消費電力の増加を抑制でき、省電力化を図ることができる。
【００７１】
アーム１１の先端部１５には、ワーク４２を把持するグリッパー４１を回動させる回動機構１８が設けられている。回動機構１８の回動軸１８Ａは、グリッパー４１に把持されたワーク４２の中心に位置している。制御部２１１は、回動機構１８の回動軸１８Ａを回動させることで、グリッパー４１に把持されているワーク４２の中心に、グリッパー４１を回動させる。すなわち、グリッパー４１の回動軸１８Ａが当該ワーク４２の中心に位置する状態で当該グリッパー４１を回動させる。これにより、ワーク４２に働く遠心力を抑えることができ、ワーク４２に働く遠心力で当該ワーク４２が滑って外れることを抑制することができる。要するに、グリッパー４１の回動によってワーク４２が滑って外れることを防止できる。
【００７２】
また、グリッパー４１を、滑り方向が重力の逆方向に向くように回動させた状態において、水平面よりも下向きの滑りが検出される場合は、グリッパー４１の回動前及び回動後において同じく下向きの滑りが生じていることから、そもそもグリッパー４１の把持トルクが足らなかったと推測できる。このように、グリッパー４１の回動後において下向きの滑りが生じている場合には、グリッパー４１の把持トルクを増加させ、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを、グリッパー４１の把持トルクに設定する。これにより、グリッパー４１の把持トルクを最適な値に変更することができ、ワーク４２を滑りなく適切に把持することができる。
【００７３】
また、グリッパー４１を、滑り方向が重力の逆方向に向くように回動させた状態において、水平面よりも上向きの滑りが検出される場合は、グリッパー４１の把持トルクが過剰であると推測できる。このように、グリッパー４１の回動後において上向きの滑りが生じている場合には、グリッパー４１の把持トルクを減少させ、当該ワーク４２の滑り量がゼロとなったときの第２検出部４１Ｄにて検出されたトルクを維持する。これにより、ワーク４２を滑りなく適切に把持することができ、不必要な把持力相当分の電力を削減することができ、省電力化を図ることができる。
【００７４】
なお、上記実施の形態では、アーム１１の先端部１５に設けられた回動機構１８（例えば、ステッピングモータ）に、エンドエフェクターが装着されているとしているが、これに限定されない。ロボット１０は、回動機構１８を設けない構成とし、制御部２１１が、ロボット１０の状態に適した制御パラメーターを用いて駆動部１６を制御し、関節１２を駆動することにより、図６に実線で示すように、グリッパー４１を算出部２１５にて算出された角度（例えば１４０°）だけ回動させた状態にする構成としてもよい。
【００７５】
例えば、上記実施の形態と同様に、滑り演算部２１４は、図７（Ｂ）に示すように、ワーク４２に働く滑り方向が重力方向となす角度θ１を、次式（１）により算出する。制御部２１１は、滑り演算部２１４にて検出された滑り方向が重力の逆方向に向くように、ワーク４２を把持するグリッパー４１を、ワーク４２の中心位置を回動軸１８Ａとして、算出部２１５にて算出された角度（図７（Ａ）中では、１４０°）だけ回動させ、図７（Ｃ）に示すように、グリッパー４１を算出部２１５にて算出された角度（例えば１４０°）だけ回動させた状態にする。この回動状態では、図７（Ａ）で示したワーク４２の滑り方向が重力の逆方向に向く状態となっている。この回動状態では、グリッパー４１が把持するワーク４２の滑り方向の力と重力とを対抗させることができ、ワーク４２の滑りを解消した状態とすることができる場合がある。すなわち、ワーク４２の滑りを解消した把持姿勢とすることができることがある。
【００７６】
なお、上記実施の形態及び変形例では、グリッパー４１の爪部４１Ａ，４１Ｂにおけるワーク４２に向く面側に、滑りセンサー４１Ｆをそれぞれ設けているが、これに限定されない。例えば分布式接触センサーを、滑りセンサー４１Ｆに替えて設けるようにしてもよい。分布式接触センサーはワーク４２と爪部４１Ａ，４１Ｂの接触領域がわかる。滑り演算部２１４は、分布式接触センサーからの検出信号（接触領域の時間的な変化を示す信号）に基づいてワーク４２の滑り量及び滑り方向を算出する。
【００７７】
本発明は上記実施の形態の構成に限られず種々の変形が可能である。また、上記実施形態では、図１乃至図７を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【００７８】
１        ロボット制御システム
１０      ロボット
１１      アーム
１２      関節
１５      先端部
１６      駆動部
１７      関節角検出部（第１検出部）
１８      回動機構
１８Ａ    回動軸
１９      カメラ
２０      制御装置
２４      記憶部
４１      グリッパー（エンドエフェクター）
４１Ａ、４１Ｂ  爪部
４１Ｃ    爪部駆動部
４１Ｄ    第２検出部
４１Ｆ    滑りセンサー
４１Ｇ    加速度センサー
４２      ワーク（把持対象物）
２１１    制御部
２１４    滑り演算部
２１５    算出部
【図１】
2020097073.tif 000003
【図２】
2020097073.tif 000004
【図３】
2020097073.tif 000005
【図４】
2020097073.tif 000006
【図５】
2020097073.tif 000007
【図６】
2020097073.tif 000008
【図７】
2020097073.tif 000009