(57)【要約】【課題】様々なエンドエフェクターや把持対象物に対して最適な制御を実現することで、エンドエフェクター及び把持対象物の重量の制約を緩和し、エンドエフェクターと把持対象物との組み合わせを拡大する。【解決手段】制御装置２０は、アーム１１の先端部１５が垂直運動を行っている間に第２検出部１８Ｅにより検出される入力トルクＴに基づいて、第１推論モデルＭ１を用いて、グリッパー４１とワーク４２との総重量ＧＷを推定する第１推定部２１４と、第１推定部２１４により推定された総重量ＧＷから推定されるロボット１０の状態に基づいて、当該状態のロボット１０に適した制御パラメーターを設計する設計部と、アーム１１の先端部１５を目標軌道に追従させるように、設計部により設計された制御パラメーターを用いて駆動部１６の駆動を制御する第１制御部と、を備える。【選択図】図３
2020097072.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有し、三次元空間を自在に移動可能なアームと、
前記複数の関節それぞれに設けられた、前記関節を駆動する駆動部と、
前記アームの先端部の位置を検出する第１検出部と、
前記先端部に最も近い位置の前記駆動部に加わる入力トルクを検出する第２検出部と、を備えると共に、前記先端部にエンドエフェクターが着脱交換可能に構成されたロボットの動作を制御する制御装置であって、
前記先端部が予め定められた運動を行っている間に前記第２検出部により検出された前記入力トルクを入力とし、前記先端部に取り付けられている前記エンドエフェクターと当該エンドエフェクターに把持されている把持対象物との総重量を出力とする入出力の相関性を学習することによって得られた第１推論モデルを記憶する第１記憶部と、
前記第１記憶部に記憶されている前記第１推論モデルを用いて、前記先端部が前記予め定められた運動を行っている間に前記第２検出部により新たに検出された前記入力トルクに対応する前記総重量を推定する第１推定部と、
前記第１推定部により推定された前記総重量から推定される前記ロボットの状態に基づいて、当該状態の前記ロボットに適した制御パラメーターを設計する設計部と、
予め生成された目標軌道と、前記先端部の位置とに基づいて、前記アームの前記先端部を前記目標軌道に追従させるように、前記設計部により設計された前記制御パラメーターを用いて前記駆動部の駆動を制御する第１制御部と、を備える制御装置。
【請求項２】
前記第１記憶部に記憶されている前記第１推論モデルを、外部装置から受信した前記第１推論モデルに書き換える第１書換部を更に備え、
前記第１推定部は、前記第１記憶部に記憶されている前記第１推論モデルを用いて、前記入力トルクに対応する前記総重量を推定する請求項１に記載の制御装置。
【請求項３】
前記総重量を入力とし、前記ロボットの状態を出力とする入出力の相関性を学習することによって得られた第２推論モデルを記憶する第２記憶部と、
前記第２記憶部に記憶されている前記第２推論モデルを用いて、前記第１推定部により推定された前記総重量に対応する前記ロボットの状態を推定する第２推定部と、を更に備え、
前記設計部は、前記第２推定部により推定された前記ロボットの状態から、当該状態の前記ロボットに適した前記制御パラメーターを設計する請求項１又は請求項２に記載の制御装置。
【請求項４】
前記第２記憶部に記憶されている前記第２推論モデルを、外部装置から受信した前記第２推論モデルに書き換える第２書換部を更に備え、
前記第２推定部は、前記第２記憶部に記憶されている前記第２推論モデルを用いて、前記総重量に対応する前記ロボットの状態を推定する請求項３に記載の制御装置。
【請求項５】
前記エンドエフェクターによる前記把持対象物のピッキング、前記エンドエフェクターによる前記把持対象物のプレース、及び前記エンドエフェクターの交換のときだけに、前記第１推定部は、前記総重量を推定し、前記設計部は、前記制御パラメーターを設計する請求項１乃至請求項４のいずれかに記載の制御装置。
【請求項６】
今回行われるピッキングアンドプレース動作が前回のピッキングアンドプレース動作と同じである場合であって、前記把持対象物のピッキングのとき、及び前記把持対象物のプレースのときには、前記第１推定部は、前記総重量を推定せず、前記設計部も、前記制御パラメーターを設計せず、前記第１制御部は、今回行われるピッキング動作においては、前回のピッキング動作で用いた前記制御パラメーターを再度利用し、今回行われるプレース動作においては、前回のプレース動作で用いた前記制御パラメーターを再度利用する請求項５に記載の制御装置。
【請求項７】
今回行われるピッキングアンドプレース動作での前記把持対象物が前回のピッキングアンドプレース動作のときと同型である場合であって、前記把持対象物のピッキングのとき、及び前記把持対象物のプレースのときには、前記第１推定部は、前記総重量を推定せず、前記設計部も、前記制御パラメーターを設計せず、前記第１制御部は、今回行われるピッキング動作においては、前回のピッキング動作で用いた前記制御パラメーターを再度利用し、今回行われるプレース動作においては、前回のプレース動作で用いた前記制御パラメーターを再度利用する請求項５又は請求項６に記載の制御装置。
【請求項８】
請求項１乃至請求項４のいずれかに記載の制御装置において用いられる前記第１推論モデルを学習によって生成するための学習装置であって、
前記先端部が前記予め定められた運動を行っている間に前記第２検出部により検出された前記入力トルクと、その時の前記総重量とを、含む第１学習データを学習することで、前記第１推論モデルを生成する第１学習部を備える学習装置。
【請求項９】
前記予め定められた運動は、垂直運動であり、
前記入力トルクは、前記総重量がゼロである状態の前記ロボットに適するように予め設計された前記制御パラメーターを用いて、前記先端部が前記垂直運動を行っている間に検出されるものである請求項８に記載の学習装置。
【請求項１０】
請求項３又は請求項４に記載の第２推論モデルを学習によって生成するための学習装置であって、
前記総重量と、前記ロボットの状態との対応関係を示す第２学習データを学習することで、前記第２推論モデルを生成する第２学習部を備える学習装置。
【請求項１１】
外部装置との間でデータの送受信を行う通信部と、
前記第１学習部で生成された前記第１推論モデル、又は前記第２学習部で生成された前記第２推論モデルを、前記通信部を介して、前記制御装置へ送信する第２制御部と、を更に備える請求項８乃至請求項１０のいずれかに記載の学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アームを構成する各関節の駆動を制御する制御装置、及び適切なロボット駆動のための学習装置に関する。
【背景技術】
【０００２】
アームを有するロボットの駆動制御に、制御パラメーターが用いられることがある。制御パラメーターは、例えば、与えられた目標値（目標位置や目標速度）と、これらに対応するモーター（関節を駆動するモーター）の駆動角度や駆動速度との関係を定めた値であり、フィードバックゲインなどがこれに相当する。
【０００３】
また、制御パラメーターは、既知の制御理論に基づいて設計される。例えば、ロボットの基本的な状態を元に、上記制御理論を用いて、その状態のロボットに最適な制御パラメーターが設計される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１２６７９６号公報
【特許文献２】特開２０１８−０２７５８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
産業用又は協働用ロボットには、可搬重量が決められている。ロボットによるピッキングアンドプレース動作において、アームの先端部に取り付けられているエンドエフェクター（例えば、指部を有したハンドや、爪部を有したグリッパー）と、エンドエフェクターに把持されている把持対象物（ワーク）との総重量が可搬重量を超えると、ロボットの動作が不安定になり、アームが目標軌道に正しく追従できなくなる。
【０００６】
その理由の一つは、事前に用意された制御パラメーター（例えば、ロボットの基本的な状態に最適な制御パラメーター）では、上記総重量が可搬重量を超えると、ロボットの適切な制御が難しくなるからである。そのため、ロボットを選定する際には、把持対象物の重量を考慮する必要ある。一般には、把持対象物の重量の２倍程度の可搬重量をもつロボットが選定される。
【０００７】
アームの先端部に取り付けるエンドエフェクターは、その使用目的や、把持対象物の形状に合わせて取り換えられる。また、エンドエフェクターの重量も種類により異なる。
【０００８】
しかしながら、上記したように、エンドエフェクターと把持対象物との総重量が可搬重量を超えると、ロボットの動作は不安定になる。そのため、重量の大きい把持対象物のピッキングアンドプレース動作に、重量の大きいエンドエフェクターを採用することは難しくなる。つまり、エンドエフェクターと把持対象物との組み合わせは、限定される。また、総重量が可搬重量の範囲内であっても、事前に用意された制御パラメーターでは、ロボット制御は最適なものにならない。
【０００９】
上記特許文献１には、エンドエフェクターを取り付けた状態で、ロボットに予め定められた動作を行わせて、学習によって、その状態での適切な制御パラメーターを検出することが記載されている。
【００１０】
しかしながら、ロボットを実際に動作させて、制御パラメーターを検出するので、適切な制御パラメーターを検出するまでに時間を要する。また、上記特許文献１には、エンドエフェクターと把持対象物との総重量についての記載はなく、把持対象物は、可搬重量からエンドエフェクターの重量を差し引いた重量以下のものに制限される。
【００１１】
上記特許文献２には、把持対象物の形状と重量との関係を学習した第１推定部を備え、第１推定部で推定した把持対象物の重量に基づいて、ロボットのピッキング動作を制御することが記載されている。
【００１２】
しかしながら、上記特許文献２では、エンドエフェクターの重量が変化した場合について考慮されていない。また、上記特許文献２では、形状からの重量の推定が画像処理にて行われるため、演算処理が複雑となり、エンドエフェクターの重量の推定までに時間を要する。
【００１３】
本発明は、上記の事情に鑑みなされたものであり、様々なエンドエフェクターや把持対象物に対して最適な制御を実現することで、エンドエフェクター及び把持対象物の重量の制約を緩和し、エンドエフェクターと把持対象物との組み合わせを拡大することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一局面に係る制御装置は、複数の関節を有し、三次元空間を自在に移動可能なアームと、前記複数の関節それぞれに設けられた、前記関節を駆動する駆動部と、前記アームの先端部の位置を検出する第１検出部と、前記先端部に最も近い位置の前記駆動部に加わる入力トルクを検出する第２検出部と、を備えると共に、前記先端部にエンドエフェクターが着脱交換可能に構成されたロボットの動作を制御する制御装置であって、前記先端部が予め定められた運動を行っている間に前記第２検出部により検出された前記入力トルクを入力とし、前記先端部に取り付けられている前記エンドエフェクターと当該エンドエフェクターに把持されている把持対象物との総重量を出力とする入出力の相関性を学習することによって得られた第１推論モデルを記憶する第１記憶部と、前記第１記憶部に記憶されている前記第１推論モデルを用いて、前記先端部が前記予め定められた運動を行わっている間に前記第２検出部により新たに検出された前記入力トルクに対応する前記総重量を推定する第１推定部と、前記第１推定部により推定された前記総重量から推定される前記ロボットの状態に基づいて、当該状態の前記ロボットに適した制御パラメーターを設計する設計部と、予め生成された目標軌道と、前記先端部の位置とに基づいて、前記アームの前記先端部を前記目標軌道に追従させるように、前記設計部により設計された前記制御パラメーターを用いて前記駆動部の駆動を制御する第１制御部と、を備える。
【００１５】
また、本発明の一局面に係る学習装置は、上記制御装置において用いられる第１推論モデルを学習によって生成するための学習装置であって、前記先端部が前記予め定められた運動を行っている間に前記第２検出部により検出された前記入力トルクと、その時の前記総重量とを、含む第１学習データを学習することで、前記第１推論モデルを生成する第１学習部を備える。
【発明の効果】
【００１６】
本発明によれば、アームの先端部に取り付けられるエンドエフェクターと、当該エンドエフェクターに把持されている把持対象物との総重量によって制御パラメーターが変更されるので、当該総重量に対して最適なロボット制御を行うことが可能となる。従って、エンドエフェクター及び把持対象物の重量の制約を緩和し、エンドエフェクターと把持対象物との組み合わせを拡大することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係るロボット制御システムを構成する制御装置の主要内部構成を概略的に示した機能ブロック図である。
【図２】制御の対象となるロボットを模式的に示した外観図である。
【図３】第１推定部によってエンドエフェクターと把持対象物との総重量が推定されるまでの流れを説明するための説明図である。
【図４】第１制御部によってロボットの動作が制御されるまでの流れを説明するための説明図である。
【図５】制御装置の制御ユニットで行われる処理動作の一例を示したフローチャートである。
【図６】ロボット制御システムを構成する学習装置の主要内部構成を概略的に示した機能ブロック図である。
【発明を実施するための形態】
【００１８】
以下、本発明の一実施形態に係る制御装置、及び学習装置について図面を参照して説明する。図１は、一実施形態に係るロボット制御システムを構成する制御装置の主要内部構成を概略的に示した機能ブロック図である。図２は、制御の対象となるロボットを模式的に示した外観図である。
【００１９】
ロボット制御システム１は、ロボット１０と、ロボット１０の動作を制御する制御装置（ロボット制御装置）２０と、学習装置３０と、を含んで構成される。
【００２０】
ロボット１０は、図２に示すように、人間の腕と同様の運動機能を持つマニピュレーターで、三次元空間を自在に移動可能なアーム（ロボットアーム）１１を備え、アーム１１の根元は台座１４に固定されている。アーム１１は、複数の関節１２Ａ乃至１２Ｅ（以降、まとめて「関節１２」とも称す）と、関節１２どうしをつなぐリンク１３Ａ乃至１３Ｄとを有する。
【００２１】
また、アーム１１は、その先端部１５にエンドエフェクターが着脱交換可能に構成されている。図２中では、エンドエフェクターとして、平行に配置された２つの爪部４１Ａ，４１Ｂを有するグリッパー４１が取り付けられている。グリッパー４１は、例えば、テーブル４３に載せられたワーク（把持対象物）４２を把持して、ワーク４２を任意の場所へ運ぶことに使用される。また、グリッパー４１には、空気圧により爪部４１Ａ，４１Ｂを駆動するグリッパー駆動部４１Ｃ（例えば、シリンダー）が内蔵されている。
【００２２】
ロボット１０は、関節１２それぞれに設けられた、関節１２を駆動する駆動部１６Ａ乃至１６Ｅ（以降、まとめて「駆動部１６」とも称す）と、関節１２それぞれに設けられた、関節１２の角度を検出する関節角検出部１７Ａ乃至１７Ｅ（以降、まとめて「関節角検出部１７」とも称す）と、駆動部１６それぞれの入力トルクを検出する第２検出部（トルク検出部）１８Ａ乃至１８Ｅ（以降、まとめて「第２検出部１８」とも称す）と、ロボット１０の上方に設けられたカメラ１９と、を備える。なお、駆動部１６、関節角検出部１７、及び第２検出部１８としてはそれぞれ、例えば、モーター、エンコーダー、トルクセンサーが挙げられる。
【００２３】
また、関節角検出部１７は、特許請求の範囲における第１検出部（位置検出部）の一例である。アーム１１の先端部１５の位置は、関節１２Ａ乃至１２Ｅすべての角度から割り出すことができる。なお、ロボット１０の全体を撮影するカメラ１９を、上記第１検出部として利用することも可能である。
【００２４】
制御装置２０は、制御ユニット２１と、操作部２２と、表示部２３と、記憶部２４と、外部インターフェイス部（外部Ｉ／Ｆ）２５と、通信インターフェイス部（通信Ｉ／Ｆ）２６と、を備える。
【００２５】
操作部２２は、キーボードやマウス等から構成され、制御ユニット２１にコマンドや文字を入力したり、表示部２３における画面上のポインターを操作したりする。表示部２３は、制御ユニット２１からの応答やデータ結果を表示する。操作部２２は、例えば、アーム１１の先端部１５の目標到達位置（例えば、把持対象物であるワーク４２をプレースする位置）の指示入力に用いられる。
【００２６】
記憶部２４は、ＨＤＤ（Hard Disk Drive）などの記憶装置であり、制御装置２０の動作に必要なプログラムやデータを記憶し、第１記憶部（第１推論モデル記憶部）２４１、第２記憶部（第２推論モデル記憶部）２４２、及び制御パラメーター記憶部２４３を含む。
【００２７】
第１記憶部２４１に記憶されるのは、第２検出部１８Ｅにより検出される入力トルクＴ（すなわち、駆動部１６Ａ乃至１６Ｅの中で、先端部１５に最も近い位置の駆動部１６Ｅに加わる入力トルク）を入力とし、先端部１５に取り付けられているエンドエフェクター（例えば、グリッパー４１）と当該エンドエフェクターに把持されている把持対象物（例えば、ワーク４２）との総重量ＧＷを出力とする入出力の相関性を学習することによって得られる第１推論モデルＭ１（図３を参照）である。
【００２８】
そして、この第１推論モデルＭ１を用いることで、未知の「入力トルクＴ」から「総重量ＧＷ」を推定することが可能となる。なお、第１推論モデルＭ１は、外部サーバーである学習装置３０の学習によって生成されるが、それについては後述する。
【００２９】
第２記憶部２４２に記憶されるのは、総重量ＧＷを入力とし、ロボット１０の状態ＲＳ（伝達関数又は状態方程式）を出力とする入出力の相関性を学習することによって得られる第２推論モデルＭ２（図４を参照）である。
【００３０】
そして、この第２推論モデルＭ２を用いることで、未知の「総重量ＧＷ」から「ロボットの状態ＲＳ」を推定することが可能となる。なお、第２推論モデルＭ２は、学習装置３０の学習によって生成されるが、それについても後述する。
【００３１】
制御パラメーター記憶部２４３に記憶されるのは、ピッキング動作、プレース動作で使用されたそれぞれの最新の制御パラメーターである。
【００３２】
外部インターフェイス部２５は、外部装置と接続するためのもので、制御装置２０は、外部インターフェイス部２５を介して、ロボット１０を構成する駆動部１６、関節角検出部１７、第２検出部１８、及びカメラ１９と接続され、更に、ロボット１０を介して、グリッパー駆動部４１Ｃと接続されている。
【００３３】
通信インターフェイス部２６は、不図示のＬＡＮ（Local Area Network）チップなどの通信モジュールを備えるインターフェイスで、外部装置との間で通信を行う。制御装置２０は、通信インターフェイス部２６を介して、学習装置３０との間でデータの送受信を行う。
【００３４】
制御ユニット２１は、プロセッサー、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及び専用のハードウェア回路を含んで構成される。プロセッサーは、例えばＣＰＵ（Central Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）等である。制御ユニット２１は、第１制御部（ロボット制御部）２１１と、物体認識部２１２と、軌道生成部２１３と、第１推定部（重量推定部）２１４と、第１書換部２１６と、第２書換部２１７と、を備えている。
【００３５】
制御ユニット２１は、記憶部２４に記憶されている制御プログラムに従った上記プロセッサーによる動作により、第１制御部２１１、物体認識部２１２、軌道生成部２１３、第１推定部２１４、第１書換部２１６、及び第２書換部２１７として機能する。但し、制御ユニット２１等の上記の各構成は、制御ユニット２１による制御プログラムに基づく動作によらず、それぞれハードウェア回路により構成することも可能である。以下、特に触れない限り、各実施形態について同様である。
【００３６】
第１制御部２１１は、制御装置２０の全体的な動作制御を司る。第１制御部２１１は、操作部２２、表示部２３、記憶部２４、外部インターフェイス部２５、及び通信インターフェイス部２６と接続されており、接続されている上記各構成の動作制御や、各構成との間での信号またはデータの送受信を行う。
【００３７】
物体認識部２１２は、カメラ１９で撮影されることによって得られた画像データに基づいて、例えば、パターンマッチングや機械学習による物体認識を行うことで、把持対象物であるワーク４２を認識し、当該ワーク４２の位置を検出する。この位置は、ピッキング動作の終点となる。
【００３８】
軌道生成部２１３は、物体認識部２１２で検出されたワーク４２の位置（ピッキング動作の終点）に基づいて、現在位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。また、軌道生成部２１３は、操作部２２を介してユーザーから指示された、ワーク４２をプレースする位置（プレース動作の終点）に基づいて、ワーク４２を把持した位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。なお、軌道の生成には、ＲＲＴ（Rapidly exploring random tree）など、種々の生成アルゴリズムを適用することができる。
【００３９】
第１推定部２１４は、アーム１１の先端部１５が予め定められた運動（例えば、数十ミリ秒の垂直運動）を行っている間に、第２検出部１８Ｅにより検出される入力トルクＴ（トルクの波形）に基づいて、第１推論モデルＭ１（図３）を用いて、総重量ＧＷを推定する。すなわち、第１推定部２１４は、第１推論モデルＭ１を用いて、入力トルクＴに対応する総重量ＧＷを推定する。図３は、第１推定部２１４によって総重量ＧＷが推定されるまでの流れを説明するための説明図である。
【００４０】
なお、上記垂直運動は、第１制御部２１１が、駆動部１６の駆動を制御することで実現される。また、この駆動制御時に使用される制御パラメーターは、予め設計された初期値である。当該初期値は、アーム１１の先端部１５にエンドエフェクターが取り付けられていない状態（すなわち、総重量ＧＷがゼロである状態）のロボット１０に適するように設計されたものである。
【００４１】
第１制御部２１１は、軌道生成部２１３により生成された目標軌道（例えば、目標位置や目標速度、目標加速度等）と、アーム１１の先端部１５の位置や速度、加速度等とに基づいて、当該先端部１５を目標軌道に追従させるように、その時のロボット１０の状態に適した制御パラメーターを用いて、駆動部１６の駆動を制御する。
【００４２】
図４は、第１制御部２１１によってロボット１０の動作が制御されるまでの流れを説明するための説明図である。第１制御部２１１は、第２推定部（状態推定部）２１５１と、設計部２１５２と、サーボ制御部２１５３と、を備える。
【００４３】
第２推定部２１５１は、第１推定部２１４により推定された総重量ＧＷに基づいて、第２推論モデルＭ２を用いて、ロボットの状態ＲＳ（伝達関数又は状態方程式）を推定する。すなわち、第２推定部２１５１は、第２推論モデルＭ２を用いて総重量ＧＷに対応するロボットの状態ＲＳを推定する。例えば、第２推定部２１５１は、ロボットの状態ＲＳを示す状態方程式の係数を求める。
【００４４】
設計部２１５２は、第２推定部２１５１により推定されたロボットの状態ＲＳ（伝達関数又は状態方程式）から、既知の設計アルゴリズムに基づいて、当該状態ＲＳのロボット１０に最適な制御パラメーターを導出し、導出した制御パラメーターをサーボ制御部２１５３に出力する。例えば、設計部２１５２は、第２推定部２１５１により求められた係数を用いて、リカッチ方程式を解くことで、フィードバックゲインなどの制御パラメーターを求める。
【００４５】
サーボ制御部２１５３は、軌道生成部２１３により生成された目標軌道が示す次の時刻での先端部１５の目標位置や目標速度、目標加速度と、ロボット１０の関節角検出部１７による検出結果から求められる先端部１５の位置や速度、加速度との偏差が小さくなるように、設計部２１５２が導出した制御パラメーターを用いて、駆動部１６に対する制御量を決定し、そして駆動部１６の駆動を制御する。これにより、先端部１５に加わる重さ（総重量ＧＷ）に最適なロボット制御を実現することができる。
【００４６】
また、第１制御部２１１は、ピッキング動作、プレース動作で使用したそれぞれの最新の制御パラメーターを、制御パラメーター記憶部２４３に記憶させる。
【００４７】
第１書換部２１６は、第１記憶部２４１に記憶されている第１推論モデルＭ１を、外部装置である学習装置３０から送信され、通信インターフェイス部２６を介して受信した第１推論モデルＭ１に書き換える。これによれば、更新された第１推論モデルＭ１を用いて、総重量ＧＷを推定することができる。
【００４８】
第２書換部２１７は、第２記憶部２４２に記憶されている第２推論モデルＭ２を、外部装置である学習装置３０から送信され、通信インターフェイス部２６を介して受信した第２推論モデルＭ２に書き換える。これによれば、更新された第２推論モデルＭ２を用いてロボットの状態ＲＳを推定することができる。
【００４９】
次に、制御装置２０における制御ユニット２１で行われる処理動作について、図５に示したフローチャートに基づいて説明する。なお、この処理動作は、ロボット１０のピッキングアンドプレース動作で行われる処理動作である。
【００５０】
まず、第１制御部２１１が、総重量ＧＷを変更する変更イベントが発生したか否かを判断する（Ｓ１）。当該変更イベントは、エンドエフェクターであるグリッパー４１によるワーク４２のピッキング、ワーク４２のプレース、及びエンドエフェクターの交換である。当たり前ではあるが、ワーク４２がピッキングされると、総重量ＧＷは重くなり、ワーク４２がプレースされると、総重量ＧＷは軽くなる。
【００５１】
ワーク４２のピッキングやプレースが行われたか否かは、第１制御部２１１によるロボット１０に対する制御内容から判断できる。エンドエフェクターが交換されたか否かは、アーム１１の先端部１５にエンドエフェクターの着脱を検出する検出センサーを設け、当該検出センサーからのオン・オフ信号や、カメラ１９から得られる先端部１５付近を撮影した画像データから判断できる。
【００５２】
第１制御部２１１が、上記変更イベントが発生していないと判断した場合（Ｓ１でＮＯ）、総重量ＧＷは変化していないので、制御パラメーターを変更する必要はない。従って、処理はそのままＳ９へ移る。
【００５３】
一方、第１制御部２１１が、上記変更イベントが発生したと判断した場合（Ｓ１でＹＥＳ）、第１制御部２１１は、今回行われるピッキングアンドプレース動作が前回のピッキングアンドプレース動作と同じであるか否かを判断する（Ｓ２）。
【００５４】
第１制御部２１１が、今回行われるピッキングアンドプレース動作が前回のピッキングアンドプレース動作と同じであると判断した場合（Ｓ２でＹＥＳ）、第１制御部２１１は、次に行われる動作がピッキング動作（又はプレース動作）であれば、前回のピッキング動作（又はプレース動作）で用いた制御パラメーターを、制御パラメーター記憶部２４３から読み出し、使用する制御パラメーターを当該読み出した制御パラメーターに変更し（Ｓ３）、その後、処理はＳ９へ移る。第１制御部２１１は、前回のピッキング動作（又はプレース動作）で用いた制御パラメーターを有効活用することができる。
【００５５】
一方、第１制御部２１１が、今回行われるピッキングアンドプレース動作が前回のピッキングアンドプレース動作と同じでないと判断した場合（Ｓ２でＮＯ）、第１制御部２１１は、総重量ＧＷが「未知」であるか否かを判断する（Ｓ４）。具体的には、ワーク４２が前回の動作時と同型（すなわち、重量が同じ）であるか否かを判断する。
【００５６】
ワーク４２が前回の動作時と同型である場合、ワーク４２を把持するエンドエフェクターを交換する必要はないので、エンドエフェクターについても、前回の動作時と同じであると考えられる。従って、ワーク４２が前回の動作時と同型であれば、総重量ＧＷは「既知」と判断し、同型でなければ、総重量ＧＷは「未知」と判断する。なお、ワーク４２が前回の動作時と同型であるか否かは、例えば、カメラ１９から得られる先端部１５付近を撮影した画像データに基づいて、パターンマッチングを行うことによって判断できる。
【００５７】
第１制御部２１１が、総重量ＧＷが「未知」でなく、「既知」であると判断した場合（Ｓ４でＮＯ）、処理はＳ３へ移り、第１制御部２１１は、前回のピッキング動作（又はプレース動作）で用いた制御パラメーターを、制御パラメーター記憶部２４３から読み出し、使用する制御パラメーターを当該読み出した制御パラメーターに変更する。
【００５８】
一方、第１制御部２１１が、総重量ＧＷが「未知」であると判断した場合（Ｓ４でＹＥＳ）、第１制御部２１１が、予め設計された制御パラメーターの初期値を用いて、駆動部１６の駆動を制御することによって、アーム１１の先端部１５を数十ミリ秒間、垂直に運動させる（Ｓ５）。
【００５９】
続いて、第１推定部２１５が、アーム１１の先端部１５が上記垂直運動を行っている間に、第２検出部１８Ｅにより検出された入力トルクＴ（トルクの波形）に基づいて、第１推論モデルＭ１（図３）を用いて、総重量ＧＷを推定する（Ｓ６）。これにより、第１推定部２１５は、総重量ＧＷが「未知」である場合に、第１推論モデルＭ１を用いて、総重量ＧＷを推定することができる。
【００６０】
次に、第２推定部２１５１が、第１推定部２１４により推定された総重量ＧＷに基づいて、第２推論モデルＭ２（図４）を用いて、ロボットの状態ＲＳを推定し（Ｓ７）、設計部２１５２が、第２推定部２１５１により推定されたロボットの状態ＲＳから、当該状態ＲＳのロボット１０に最適な制御パラメーターを導出し、導出した制御パラメーターをサーボ制御部２１５３に出力し（Ｓ８）、その後、処理はＳ９へ移る。
【００６１】
Ｓ９において、物体認識部２１２が、カメラ１９で撮影されることによって得られた画像データに基づいて、把持対象物であるワーク４２を認識し、当該ワーク４２の位置（ピッキング動作の終点）を検出し（Ｓ９）、軌道生成部２１３が、物体認識部２１２で検出されたワーク４２の位置（ピッキング動作の終点）に基づいて、現在位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する（Ｓ１０）。
【００６２】
但し、次に行われる動作がピッキング動作ではなく、プレース動作の場合には、軌道生成部２１３は、操作部２２を介してユーザーから指示された、ワーク４２をプレースする位置（プレース動作の終点）に基づいて、ワーク４２を把持した位置から当該終点までの、アーム１１の先端部１５の目標軌道を生成する。
【００６３】
続いて、サーボ制御部２１５３が、軌道生成部２１３により生成された目標軌道が示す次の時刻での先端部１５の目標位置や目標速度、目標加速度と、ロボット１０の関節角検出部１７による検出結果から求められる先端部１５の位置や速度、加速度との偏差が小さくなるように、制御パラメーターを用いて、駆動部１６に対する制御量を決定し、そして駆動部１６の駆動を制御し（Ｓ１１）、この処理動作を終了する。
【００６４】
図６は、ロボット制御システムを構成する学習装置の主要内部構成を概略的に示した機能ブロック図である。
【００６５】
ロボット制御システム１は、エンドエフェクターとしてのグリッパー４１が取り付けられたロボット１０と、制御装置２０と、学習装置３０と、を含んで構成される。グリッパー４１は、グリッパー４１が把持しているワーク４２の重量を検出する重量センサー４１Ｄを備える点で、図１に示したグリッパーと相違する。
【００６６】
学習装置３０は、制御ユニット３１と、操作部３２と、表示部３３と、記憶部３４と、外部インターフェイス部（外部Ｉ／Ｆ）３５と、通信インターフェイス部（通信Ｉ／Ｆ）３６と、を備える。
【００６７】
操作部３２は、キーボードやマウス等から構成され、制御ユニット３１にコマンドや文字を入力したり、表示部３３における画面上のポインターを操作したりする。表示部３３は、制御ユニット３１からの応答やデータ結果を表示する。
【００６８】
記憶部３４は、ＨＤＤなどの記憶装置であり、制御装置２０の動作に必要なプログラムやデータを記憶し、第１学習データ記憶部３４１、第２学習データ記憶部３４２、第１記憶部３４３、及び第２記憶部３４４を含む。
【００６９】
第１学習データ記憶部３４１に記憶されるのは、アーム１１の先端部１５が垂直運動を行っている間に第２検出部１８Ｅにより検出された入力トルクＴと、その時の総重量ＧＷとを、含む第１学習データＤ１である。第１学習データＤ１は、後述する第１学習部３１３で学習される。また、入力トルクＴは、予め設計された制御パラメーターの初期値を用いて、先端部１５が上記垂直運動を行っている間に検出されるものである。
【００７０】
優れた学習結果（第１推論モデルＭ１）を獲得するには、第１学習部３１３に多様な第１学習データＤ１を学習させる必要がある。そこで、様々な重量のワーク４２を、重量が既知のグリッパー４１に把持させて、上記垂直運動を行い、多様な第１学習データＤ１を作成して収集し、第１学習データ記憶部３４１に蓄積する。グリッパー４１の重量は既知であるので、「教師データ」となる総重量ＧＷについては、グリッパー４１の重量に、重量センサー４１Ｄにより検出されるワーク４２の重量を加算することで求められる。従って、第１学習データＤ１を作成する際、作業者はワーク４２の重量を認識する必要はない。なお、「教師データ」は機械学習で用いられるデータである。
【００７１】
なお、ここでは実環境にて第１学習データＤ１を作成する場合について説明しているが、仮想環境で動作するロボット１０のモデルを構築して、当該モデルを使って、先端部１５に加わる総重量ＧＷを自由に変化させて第１学習データＤ１を作成してもよい。
【００７２】
第２学習データ記憶部３４２に記憶されるのは、総重量ＧＷと、ロボット１０の状態ＲＳとの対応関係を示す第２学習データＤ２である。第２学習データＤ２は、後述する第２学習部３１４で学習される。
【００７３】
第１記憶部３４３に記憶されるのは、第２検出部１８Ｅにより検出される入力トルクＴを入力とし、総重量ＧＷを出力とする入出力の相関性を学習することによって得られる第１推論モデルＭ１（図３）である。
【００７４】
第２記憶部３４４に記憶されるのは、総重量ＧＷを入力とし、ロボット１０の状態ＲＳを出力とする入出力の相関性を学習することによって得られる第２推論モデルＭ２（図４）である。
【００７５】
外部インターフェイス部３５は、外部装置と接続するためのもので、学習装置３０は、外部インターフェイス部３５を介して、ロボット１０を構成する駆動部１６、関節角検出部１７、第２検出部１８、及びカメラ１９と接続され、更に、ロボット１０を介して、グリッパー駆動部４１Ｃ、及び重量センサー４１Ｄと接続されている。
【００７６】
通信インターフェイス部３６は、不図示のＬＡＮチップなどの通信モジュールを備えるインターフェイスで、外部装置との間で通信を行う。学習装置３０は、通信インターフェイス部３６を介して、制御装置２０との間でデータの送受信を行う。
【００７７】
制御ユニット３１は、プロセッサー、ＲＡＭ、ＲＯＭ、及び専用のハードウェア回路を含んで構成される。プロセッサーは、例えばＣＰＵ、ＡＳＩＣ、ＭＰＵ、ＧＰＵ等である。制御ユニット３１は、第１制御部３１１と、第１学習部３１３と、第２学習部３１４と、第２制御部（送信制御部）３１５と、を備えている。
【００７８】
制御ユニット３１は、記憶部３４に記憶されている制御プログラムに従った上記プロセッサーによる動作により、第１制御部３１１、第１学習部３１３、第２学習部３１４、及び第２制御部３１５として機能する。但し、制御ユニット３１等の上記の各構成は、制御ユニット３１による制御プログラムに基づく動作によらず、それぞれハードウェア回路により構成することも可能である。以下、特に触れない限り、各実施形態について同様である。
【００７９】
第１制御部３１１は、学習装置３０の全体的な動作制御を司る。第１制御部３１１は、操作部３２、表示部３３、記憶部３４、外部インターフェイス部３５、及び通信インターフェイス部３６と接続されており、接続されている上記各構成の動作制御や、各構成との間での信号またはデータの送受信を行う。また、第１制御部３１１は、駆動部１６の駆動を制御することで、上記垂直運動を実行する。
【００８０】
第１学習部３１３は、第１学習データ記憶部３４１に記憶されている第１学習データＤ１を学習することで、第１推論モデルＭ１を生成する。例えば、第１学習部３１３は、第１学習データＤ１を用いて、機械学習を行い、第１学習データＤ１が有する特徴を学習し、入力トルクＴを入力とし、総重量ＧＷを出力とした、ある入力に対する適切な出力を推論するための入出力の相関性を学習する。この入出力の相関性を示した結果が第１推論モデルＭ１となる。
【００８１】
従って、第１学習データＤ１を大量に学習することで、未知の「入力」から適切な「出力」を推定する第１推論モデルＭ１を獲得することができる。なお、これはニューラルネットワークなどのアルゴリズムを用いて実現することが可能で、入力データとして、第２検出部１８Ｅにより検出される入力トルクＴを入力すると、総重量ＧＷを出力するように、ニューラルネットワークを構築する。
【００８２】
第２学習部３１４は、第２学習データ記憶部３４２に記憶されている第２学習データＤ２を学習することで、第２推論モデルＭ２を生成する。例えば、第２学習部３１４は、第１学習部３１３と同様に、第２学習データＤ２を用いて、機械学習を行って、第２推論モデルＭ２を生成する。
【００８３】
第２制御部３１５は、第１記憶部３４３に記憶されている第１推論モデルＭ１（すなわち、第１学習部３１３で生成された第１推論モデルＭ１）や、第２記憶部３４４に記憶されている第２推論モデルＭ２（すなわち、第２学習部３１４で生成された第２推論モデルＭ２）を、通信インターフェイス部３６を介して、制御装置２０へ送信する。
【００８４】
上記実施形態によれば、アーム１１の先端部１５に取り付けられるエンドエフェクター（グリッパー４１）と、当該エンドエフェクターに把持されている把持対象物（ワーク４２）との総重量ＧＷによって制御パラメーターが変更されるので、当該総重量ＧＷに対して最適なロボット制御を行うことが可能となる。従って、エンドエフェクター及び把持対象物の重量の制約を緩和し、エンドエフェクターと把持対象物との組み合わせを拡大することができる。
【００８５】
また、総重量ＧＷを推定するために用いる入力トルクＴは１次元のデータであるため、２次元の画像データを用いた重量推定よりも演算処理を簡易にすることが可能である（例えば、ニューラルネットワークを構築する層を少なくすることができる）。そのため、総重量ＧＷの推論に要する時間の短縮化が図られる。
【００８６】
更に、制御パラメーターを制御理論に基づいて導出するため、試行錯誤して制御パラメーターを算出する場合よりも、早期に最適な制御パラメーターを決定することができる。
【００８７】
また、第１推論モデルＭ１及び第２推論モデルＭ２は、外部装置（学習装置３０）からの変更が可能であるので、総重量ＧＷの推定、そして制御パラメーターの設計の精度を向上させることが可能となる。
【００８８】
本発明は上記実施の形態の構成に限られず種々の変形が可能である。また、上記実施形態では、図１乃至図６を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【００８９】
１        ロボット制御システム
１０      ロボット
１１      アーム
１２      関節
１５      先端部
１６      駆動部
１７      関節角検出部（第１検出部）
１８      第２検出部
１９      カメラ
２０      制御装置
３０      学習装置
３６      通信インターフェイス部
４１      グリッパー（エンドエフェクター）
４２      ワーク（把持対象物）
２１１    第１制御部
２１４    第１推定部
２１５１  第２推定部
２１５２  設計部
２１５３  サーボ制御部
２１６    第１書換部
２１７    第２書換部
２４１    第１記憶部
２４２    第２記憶部
３１３    第１学習部
３１４    第２学習部
３１５    第２制御部
【図１】
2020097072.tif 000003
【図２】
2020097072.tif 000004
【図３】
2020097072.tif 000005
【図４】
2020097072.tif 000006
【図５】
2020097072.tif 000007
【図６】
2020097072.tif 000008