(57)【要約】【課題】ロボットのマニピュレータを制御する際の押付け力や進行速度、進行方向等のパラメータ調整を適切に行うことが可能な制御装置及び制御システムを提供すること。【解決手段】本発明の制御装置１は、産業用ロボット２を制御指令に基づいて制御する制御部３２と、マニピュレータに掛かる力及びモーメントの少なくともいずれかを取得データとして取得するデータ取得部３４と、マニピュレータに掛かる力に係る情報を含む力状態データ、及びマニピュレータに係る制御指令の調整行動を示す制御指令調整データを、状態データとして生成すると共に、調整行動を行った後のマニピュレータの動作状態の判定結果を示す判定データを生成する前処理部３６と、状態データ及び判定データを用いて、マニピュレータに掛かる力の状態に対する、マニピュレータに係る制御指令の調整行動を強化学習した学習モデルを生成する学習部１１０と、を備える。【選択図】図２
2020055095.tif 000002
【特許請求の範囲】
【請求項１】
マニピュレータに掛かる力とモーメントを検出する機能を備えた産業用ロボットを制御する制御装置であって、
前記産業用ロボットを制御指令に基づいて制御する制御部と、
前記産業用ロボットのマニピュレータに掛かる力及びモーメントの少なくともいずれかを取得データとして取得するデータ取得部と、
前記取得データに基づいて、前記マニピュレータに掛かる力に係る情報を含む力状態データ、及び前記マニピュレータに係る制御指令の調整行動を示す制御指令調整データを、状態データとして生成する前処理部と、
を備え、
前記状態データに基づいて、前記マニピュレータに係る制御指令の調整行動に係る機械学習の処理を実行する、
制御装置。
【請求項２】
前記前処理部は、前記取得データに基づいて、更に前記調整行動を行った後の前記マニピュレータの動作状態の判定結果を示す判定データを生成し、
前記制御装置は、
前記機械学習の処理として、前記状態データ及び前記判定データを用いて、前記マニピュレータに掛かる力の状態に対する、前記マニピュレータに係る制御指令の調整行動を強化学習した学習モデルを生成する学習部を更に備える、
請求項１に記載の制御装置。
【請求項３】
前記マニピュレータに掛かる力の状態に対する、前記マニピュレータに係る制御指令の調整行動を強化学習した学習モデルを記憶する学習モデル記憶部と、
前記機械学習の処理として、前記状態データに基づいて、前記学習モデル記憶部に記憶された学習モデルを用いた前記マニピュレータに係る制御指令の調整行動を推定する意志決定部と、を更に備える、
請求項１に記載の制御装置。
【請求項４】
前記前処理部は、前記判定データとして、前記調整行動を行った後のマニピュレータに掛かる負荷の程度を示す負荷判定データを生成する、
請求項２に記載の制御装置。
【請求項５】
前記前処理部は、前記判定データとして、前記調整行動を行った後のマニピュレータの作業時間の程度を示す作業時間データを生成する、
請求項２に記載の制御装置。
【請求項６】
複数の装置がネットワークを介して相互に接続されたシステムであって、
前記複数の装置は、少なくとも請求項２，４，５のいずれかに記載された制御装置である第１の制御装置を含む
制御システム。
【請求項７】
前記複数の装置は、機械学習装置を備えたコンピュータを含み、
前記コンピュータは、前記第１の制御装置の少なくとも１つの前記強化学習の結果としての学習モデルを取得し、
前記コンピュータが備える機械学習装置は、取得した前記学習モデルに基づく最適化乃至効率化を行う、
請求項６に記載の制御システム。
【請求項８】
前記複数の装置は、前記第１の制御装置とは異なる第２の制御装置を含み、
前記第１の制御装置による学習結果は、前記第２の制御装置と共有される、
請求項６に記載の制御システム。
【請求項９】
前記複数の装置は、前記第１の制御装置とは異なる第２の制御装置を含み、
前記第２の制御装置において観測されたデータは、前記ネットワークを介して前記第１の制御装置による強化学習に利用可能である、
請求項６に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置及び制御システムに関し、特にロボットのマニピュレータを力制御する際の押付け力や進行速度、進行方向等のパラメータ調整を適切に行うことが可能な制御装置及び制御システムに関する。
【背景技術】
【０００２】
部品同士を精密な嵌め合う場合やギヤの位相合わせ、バリ取りや研磨などの作業を力センサ付きロボットで行う場合がある。このような作業をロボットに行わせる場合には、ロボットに部品やツールを把持させて、所定の方向の力を所望の値に制御する（力制御）が、この様な力制御の方式として、インピーダンス制御やダンピング制御、ハイブリッド制御などが知られている。いずれの方式でも適切な制御ゲインを設定する必要がある。制御ゲインを自動調整する方法は公知である（例えば、特許文献１等）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２３７３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記したように、力制御における制御ゲインの設定方法については公知となっているが、その他のパラメータ、例えば適切な押付け力や進行速度、進行方向などは作業者による調整に頼っている。この様なパラメータ調整に慣れていない作業者にとって、実際の調整作業は難しく、時間がかかったり、人によって結果にばらつきがあったり、調整中に不適切な設定値によりワークやツールを破損させたりする問題がある。
【０００５】
そこで、ロボットのマニピュレータを制御する際の押付け力や進行速度、進行方向等のパラメータ調整を適切に行うことが可能な制御装置及び制御システムが望まれている。
【課題を解決するための手段】
【０００６】
本発明の一態様では、産業用ロボットのマニピュレータの制御に関する各パラメータの自動調整を機械学習で行う機能をロボットの制御装置に設けることにより、上記課題を解決する。
【０００７】
そして、本発明の一態様は、マニピュレータに掛かる力とモーメントを検出する機能を備えた産業用ロボットを制御する制御装置であって、前記産業用ロボットを制御指令に基づいて制御する制御部と、前記産業用ロボットのマニピュレータに掛かる力及びモーメントの少なくともいずれかを取得データとして取得するデータ取得部と、前記取得データに基づいて、前記マニピュレータに掛かる力に係る情報を含む力状態データ、及び前記マニピュレータに係る制御指令の調整行動を示す制御指令調整データを、状態データとして生成すると共に、前記調整行動を行った後の前記マニピュレータの動作状態の判定結果を示す判定データを生成する前処理部と、前記状態データ及び前記判定データを用いて、前記マニピュレータに掛かる力の状態に対する、前記マニピュレータに係る制御指令の調整行動を強化学習した学習モデルを生成する学習部と、を備える制御装置である。
【０００８】
そして、本発明の他の態様は、マニピュレータに掛かる力とモーメントを検出する機能を備えた産業用ロボットを制御する制御装置であって、前記産業用ロボットを制御指令に基づいて制御する制御部と、前記産業用ロボットのマニピュレータに掛かる力及びモーメントの少なくともいずれかを取得データとして取得するデータ取得部と、前記取得データに基づいて、前記マニピュレータに掛かる力に係る情報を含む力状態データ、及び前記マニピュレータに係る制御指令の調整行動を示す制御指令調整データを、状態データとして生成する前処理部と、前記マニピュレータに掛かる力の状態に対する、前記マニピュレータに係る制御指令の調整行動を強化学習した学習モデルを記憶する学習モデル記憶部と、前記状態データに基づいて、前記学習モデル記憶部に記憶された学習モデルを用いた前記マニピュレータに係る制御指令の調整行動を推定する意志決定部と、を備える制御装置である。
【０００９】
本発明の他の態様は、複数の装置がネットワークを介して相互に接続されたシステムであって、前記複数の装置は、少なくとも学習部を備えた制御装置を含む制御システムである。
【発明の効果】
【００１０】
本発明の一態様により、学習結果に基づいてロボットのマニピュレータを制御する際の押付け力や進行速度、進行方向等のパラメータ調整を適切に行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態による制御装置の概略的なハードウェア構成図である。
【図２】第１実施形態による制御装置の概略的な機能ブロック図である。
【図３】産業用ロボットによる部品の嵌合作業の例を示す図である。
【図４】産業用ロボットによるギヤの組立作業の例を示す図である。
【図５】産業用ロボットによるワークのバリ取り・研磨作業の例を示す図である。
【図６】クラウドサーバ、フォグコンピュータ、エッジコンピュータを含む３階層構造のシステムの例を示す図である。
【図７】コンピュータ上に実装した形態での制御装置の概略的なハードウェア構成図である。
【図８】第２実施形態による制御システムの概略的な構成図である。
【図９】第３実施形態による制御システムの概略的な構成図である。
【図１０】第４実施形態による制御システムの概略的な構成図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面と共に説明する。
図１は一実施形態による機械学習装置を備えた制御装置の要部を示す概略的なハードウェア構成図である。本実施形態の制御装置１は、例えば部品の嵌め込みや組付け、バリ取り等をする産業用ロボットを制御する制御装置として実装することができる。
【００１３】
本実施形態による制御装置１が備えるＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データ、教示操作盤６０や入力装置７１を介して作業者が入力した各種データ等が一時的に格納される。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされたメモリやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等で構成され、制御装置１の電源がオフされても記憶状態が保持される。不揮発性メモリ１４には、インタフェース１９を介して教示操作盤６０から入力された教示データや、入力装置７１から入力されたデータ、図示しないインタフェースを介して入力された産業用ロボット制御用のプログラム、産業用ロボットに取り付けられたセンサ３が検出したデータ（マニピュレータに掛かる力やモーメント等）、産業用ロボットの軸を駆動するサーボモータ５０から検出されたデータ（サーボモータ５０の電流値、位置、速度、加速度、トルク等）、図示しない外部記憶装置やネットワークを介して読み込まれたデータ等が記憶される。不揮発性メモリ１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＲＯＭ１２には、ロボットの制御や教示位置の教示に掛かる処理などを実行するための各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００１５】
表示装置７０には、メモリ上に読み込まれた各データ、プログラム等が実行された結果として得られたデータ、後述する機械学習装置１００から出力されたデータ等がインタフェース１７を介して出力されて表示される。また、キーボードやポインティングデバイス等から構成される入力装置７１は、作業者による操作に基づく指令，データ等をインタフェース１８を介してＣＰＵ１１に渡す。
【００１６】
教示操作盤６０はディスプレイやハンドル、ハードウェアキー等を備えた手動データ入力装置であり、インタフェース１９を介して制御装置１からの情報を受けて表示すると共に、ハンドルやハードウェアキー等から入力されたパルスや指令、各種データをＣＰＵ１１に渡す。
【００１７】
産業用ロボットが備える関節等の軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、ロボットが備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となるロボットに備えられた軸の数だけ用意される。例えば、６つの軸を備えたロボットの場合には、軸制御回路３０、サーボアンプ４０、サーボモータ５０は、それぞれの軸に対して用意される。
【００１８】
インタフェース２１は、制御装置１と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００は、機械学習装置１００全体を統御するプロセッサ１０１と、システム・プログラム等を記憶したＲＯＭ１０２、機械学習に係る各処理における一時的な記憶を行うためのＲＡＭ１０３、及び学習モデル等の記憶に用いられる不揮発性メモリ１０４を備える。機械学習装置１００は、インタフェース２１を介して制御装置１で取得可能な各情報（マニピュレータに掛かる力やモーメント、サーボモータ５０の電流値、位置、速度、加速度、トルク等）を観測することができる。また、制御装置１は、機械学習装置１００から出力される、力指令乃至トルク指令の変更指示を受けて、プログラムや教示データに基づくロボットの制御指令の修正等を行う。
【００１９】
図２は、第１実施形態による制御装置１と機械学習装置１００の概略的な機能ブロック図である。本実施形態の制御装置１は、機械学習装置１００が学習を行う場合に必要とされる構成を備えている（学習モード）。図２に示した各機能ブロックは、図１に示した制御装置１が備えるＣＰＵ１１、及び機械学習装置１００のプロセッサ１０１が、それぞれのシステム・プログラムを実行し、制御装置１及び機械学習装置１００の各部の動作を制御することにより実現される。
【００２０】
本実施形態の制御装置１は、制御部３２、データ取得部３４、前処理部３６を備え、制御装置１が備える機械学習装置１００は、学習部１１０、意志決定部１２０を備えている。また、不揮発性メモリ１４上には、産業用ロボット２，センサ３等から取得されたデータが記憶される取得データ記憶部５４が設けられており、機械学習装置１００の不揮発性メモリ１０４上には、学習部１１０による機械学習により構築された学習モデルを記憶する学習モデル記憶部１３０が設けられている。
【００２１】
制御部３２は、不揮発性メモリ１０４に記憶された制御用プログラム５２に基づいて、産業用ロボット２の動作を制御する機能手段である。
制御部３２は、作業者による図示しない操作盤の制御操作や、不揮発性メモリ１４等に記憶された制御用プログラムに基づいて産業用ロボット２を制御する機能手段である。制御部３２は、制御用プログラム５２により産業用ロボット２が備える各軸（関節）の移動が指令されている場合に当該軸を駆動するモータに対して制御周期毎に軸角度の変化量としての指令データを出力する、等といったように、産業用ロボット２の各部を制御するために必要とされる一般的な制御のための機能を備える。また、制御部３２は、産業用ロボット２が備える各モータのモータ状態量（モータの電流値、位置、速度、加速度、トルク等）を取得し、データ取得部３４へと出力する。
【００２２】
データ取得部３４は、産業用ロボット２、センサ３、及び入力装置７１等から入力された各種データを取得する機能手段である。データ取得部３４は、例えば、産業用ロボット制御用のプログラムによる指令や、産業用ロボット２のマニピュレータに掛かる力やモーメント、産業用ロボット２の軸を駆動するサーボモータ５０の電流値、位置、速度、加速度、トルク等を取得し、取得データ記憶部５４に記憶する。データ取得部３４は、センサ３から検出するデータや、サーボモータ５０に掛かるデータを時系列データとして取得するようにしても良い。データ取得部３４は、図示しない外部記憶装置や有線／無線のネットワークを介して他のコンピュータからデータを取得するようにしても良い。
【００２３】
前処理部３６は、データ取得部３４が取得したデータに基づいて、機械学習装置１００による学習に用いられる状態データを作成する。前処理部３６は、データ取得部３４が取得したデータを機械学習装置１００において扱われる統一的な形式へと変換（数値化、サンプリング等）した状態データを作成する。例えば、前処理部３６は、機械学習装置１００が強化学習をする場合において、該学習における所定の形式の状態データＳ及び判定データＤの組を作成する。
【００２４】
前処理部３６が作成する状態データＳは、産業用ロボット２のマニピュレータに掛かる力に係る情報を含む力状態データＳ１、前記力状態データＳ１の力の状態において行ったマニピュレータの制御指令（速度指令、力指令、トルク指令等）の調整行動を示す制御指令調整データＳ２を含む。
力状態データＳ１は、産業用ロボット２のマニピュレータに掛かる送り方向の力を少なくとも含み、また、送り方向以外の方向に掛かる力や、力のモーメントを含んでいても良い。力状態データＳ１は、産業用ロボット２のマニピュレータに設置されたセンサ３により検出してもよいし、産業用ロボット２のそれぞれの軸を駆動するサーボモータ５０に流れる電流等から総合的に求めるようにしても良い。
【００２５】
制御指令調整データＳ２は、前記力状態データＳ１の力の状態において行ったマニピュレータの送り方向の制御指令（速度指令、力指令、トルク指令等）の調整行動としてマニピュレータの送り方向の速度指令、力指令、トルク指令等の制御指令を少なくとも含み、また、更に送り方向以外の方向の制御指令を含んでいても良い。
【００２６】
前処理部３６が作成する判定データＤは、前記力状態データＳ１の力の状態において、前記制御指令調整データＳ２で示される制御指令の調整行動を行った場合における、該調整行動後のマニピュレータの動作状態を判定結果を示すデータである。判定データＤは、マニピュレータに掛かる負荷の程度を示す負荷判定データＤ１を少なくとも含み、また、マニピュレータの作業時間の程度を示す作業時間判定データＤ２を含んでも良い。
【００２７】
学習部１１０は、前処理部３６が作成したデータを用いた機械学習を行う。学習部１１０は、公知の強化学習の手法により、産業用ロボット２の動作状態に対する、マニピュレータの制御指令（速度指令、力指令、トルク指令等）の調整行動を学習した学習モデルを生成し、生成した学習モデルを学習モデル記憶部１３０に記憶する。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測すると共に現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置ではマニピュレータの速度指令、力指令、トルク指令等の制御指令の調整行動）を最適解として学習する手法である。学習部１１０が行う強化学習の手法としては、Ｑ学習等が挙げられる。
【００２８】
学習部１１０によるＱ学習において、報酬Ｒは、例えば、マニピュレータを送り方向へと移動させる際に加わる負荷の大きさが予め定めた所定の負荷の範囲内に収まる場合に「良」と判定して正（プラス）の報酬Ｒとし、予め定めた所定の負荷を超える場合に「否」と判定して負（マイナス）の報酬Ｒとすることができる。また、報酬Ｒは、例えば、マニピュレータを送り方向へと移動させる作業にかかる時間（１作業にかかる時間、所定の距離を移動するのに係る時間等）が予め定めた所定の閾値以内である場合に「良」と判定して正（プラス）の報酬Ｒとし、予め定めた所定の閾値を超える場合に「否」と判定して負（マイナス）の報酬Ｒとするようにしても良い。報酬Ｒの値は、負荷の大きさの度合いや、作業にかかる時間の長さに応じて変化するものであっても良い。また、判定の条件として、判定データＤに複数のデータが含まれている場合には、それら複数のデータを組み合わせて判定するようにしても良い。
【００２９】
学習部１１０は、ニューラルネットワークを価値観数Ｑ（学習モデル）をとして用い、状態データＳと行動ａとをニューラルネットワークの入力とし、当該状態における当該行動ａの価値（結果ｙ）を出力するように構成しても良い。この様に構成する場合、学習モデルとしては入力層、中間層、出力層の三層を備えたニューラルネットワークを用いても良いが、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることで、より効果的な学習及び推論を行うように構成することも可能である。学習部１１０が生成した学習モデルは、不揮発性メモリ１０４上に設けられた学習モデル記憶部１３０に記憶され、意志決定部１２０による産業用ロボット２のマニピュレータの制御指令の調整行動の推定処理に用いられる。
【００３０】
なお、学習部１１０は、学習の段階では必須の構成となるが、学習部１１０による産業用ロボット２のマニピュレータの制御指令の調整行動の学習が完了した後には必ずしも必須の構成ではない。例えば、学習が完了した機械学習装置１００を顧客に出荷する場合等には、学習部１１０を取り外して出荷するようにしても良い。
【００３１】
意志決定部１２０は、前処理部３６から入力された状態データＳに基づいて、学習モデル記憶部１３０に記憶された学習モデルを用いて産業用ロボット２のマニピュレータの送り方向に係る制御指令の調整行動の最適解を求め、求めた産業用ロボット２のマニピュレータの送り方向に係る制御指令の調整行動を出力する。本実施形態の意志決定部１２０では、学習部１１０による強化学習により生成された（パラメータが決定された）学習モデルに対して、前処理部３６から入力された状態データＳ（力状態データＳ１、制御指令調整データＳ２等）と、産業用ロボット２のマニピュレータの制御指令の調整行動（例えば、速度や力、トルクの指令値の調整）を入力データとして入力することで現在の状態において当該行動をとった場合の報酬を算出できるが、この報酬の算出を現在取り得る複数の産業用ロボット２のマニピュレータの制御指令の調整行動について行い、算出された複数の報酬を比較して、最も大きな報酬が算出される産業用ロボット２のマニピュレータの制御指令の調整行動を最適解として推定する。意志決定部１２０が推定した産業用ロボット２のマニピュレータの制御指令の調整行動の最適解は、制御部３２へと入力されて産業用ロボット２のマニピュレータの制御指令の調整に用いられる他、例えば表示装置７０に表示出力したり、図示しない有線／無線ネットワークを介してホストコンピュータやクラウドコンピュータ等に送信出力したりすることで利用しても良い。
【００３２】
上記した構成を備えた制御装置１では、産業用ロボット２を用いて行われる様々な作業において、マニピュレータの送り方向に掛かる力やモーメントを検出しながら、適切な速度加減、力加減でマニピュレータを送る制御を自動的に調整することが可能となる。
【００３３】
図３〜５は、本願の制御装置１により産業用ロボット２を制御して行う作業の例を示している。
図３は、制御装置１により産業用ロボット２を制御して、該産業用ロボット２に取り付けられたマニピュレータで部品を把持して、他の部品の所定位置に対して嵌合する作業の例を示している。この様な例において、データ取得部３４は、産業用ロボット２のマニピュレータに掛かる各軸方向（Ｘ軸方向、Ｙ軸方向、Ｚ軸方向）の力と各軸周りのモーメントを取得し、これら力及びモーメントに基づいて前処理部３６が力状態データＳ１を生成する。これに対して、マニピュレータの送り方向（部品の嵌合方向）に係る制御指令の調整行動として、送り方向の力指令及び速度指令の少なくともいずれかを調整し、その結果として、マニピュレータに掛かる各軸方向の負荷の合力が所定の閾値以下に収まっているか否かを負荷判定データＤ１、嵌合方向への移動に掛かる時間（所定距離の移動に掛かる時間）が予め定めた所定の閾値以下に収まっているか否かを作業時間判定データＤ２とする。なお、マニピュレータの制御指令の調整行動としては、更に送り方向以外の方向へのマニピュレータの調整行動（部品の傾きの微調整、部品の嵌合方向に対する垂直方向の位置の微調整等）を含んでも良い。このような調整行動を行いながら、学習部１１０は嵌合作業におけるマニピュレータに掛かる各軸方向の力と各軸周りのモーメント対する適切な調整行動の学習を行い、その学習結果に基づいた意志決定部１２０が決定した調整行動に従って、制御部３２は適切な産業用ロボット２の制御を行うことができるようになる。
【００３４】
図４は、制御装置１により産業用ロボット２を制御して、該産業用ロボット２に取り付けられたマニピュレータでギヤを把持して、他のギヤに対して歯車の位相を合わせながらギヤを組み立てる作業の例を示している。この様な例において、データ取得部３４は、産業用ロボット２のマニピュレータに掛かる送り方向の力とギヤの軸周りのモーメントを取得し、これら力及びモーメントに基づいて前処理部３６が力状態データＳ１を生成する。これに対して、マニピュレータの送り方向に係る制御指令の調整行動として、送り方向の力指令を調整し、その結果として、マニピュレータに掛かる送り方向の負荷が所定の閾値以下に収まっているか否か、及びギヤの軸周りの負荷が所定の閾値以下に収まっているか否か、を負荷判定データＤ１、マニピュレータの送り方向への移動に掛かる時間（所定距離の移動に掛かる時間）が予め定めた所定の閾値以下に収まっているか否かを作業時間判定データＤ２とする。なお、マニピュレータの制御指令の調整行動としては、更にギヤの軸周りの角速度指令や速度指令の調整行動を含んでも良い。このような調整行動を行いながら、学習部１１０はギヤ組立作業におけるマニピュレータに掛かる送り方向の力とギヤの軸周りのモーメントに対する適切な調整行動の学習を行い、その学習結果に基づいた意志決定部１２０が決定した調整行動に従って、制御部３２は適切な産業用ロボット２の制御を行うことができるようになる。
【００３５】
図５は、制御装置１により産業用ロボット２を制御して、該産業用ロボット２にマニピュレータの代わりに取り付けられた研磨工具でワークのバリ取りや研磨を行う作業の例を示している。この様な例において、データ取得部３４は、産業用ロボット２のマニピュレータに掛かる送り方向の力とワークに対する工具の押しつけ方向の力を取得し、これら力に基づいて前処理部３６が力状態データＳ１を生成する。これに対して、マニピュレータの送り方向に係る制御指令の調整行動として、送り方向の速度指令を調整し、その結果として、マニピュレータに掛かる送り方向の負荷が所定の閾値以下に収まっているか否か、及びワークに対する押しつけ方向の負荷が所定の範囲（第１閾値以上、第２閾値以下）であるか否か、を負荷判定データＤ１、マニピュレータの送り方向への移動に掛かる時間（所定距離の移動に掛かる時間）が予め定めた所定の閾値以下に収まっているか否かを作業時間判定データＤ２とする。なお、マニピュレータの制御指令の調整行動としては、更にワークへの押しつけ方向の力指令の調整行動を含んでも良い。このような調整行動を行いながら、学習部１１０はバリ取りや研磨の作業におけるマニピュレータに掛かる送り方向の力とワークへの押し付け方向の力に対する適切な調整行動の学習を行い、その学習結果に基づいた意志決定部１２０が決定した調整行動に従って、制御部３２は適切な産業用ロボット２の制御を行うことができるようになる。
【００３６】
以下の、第２〜４実施形態では、第１実施形態による制御装置１が、クラウドサーバやホストコンピュータ、フォグコンピュータ、エッジコンピュータ（ロボットコントローラ、制御装置等）を含む複数の装置と有線／無線のネットワークを介して相互に接続したシステムの一部として実装されている実施形態について説明する。図６に例示されるように、以下の第２〜４実施形態では、複数の装置のそれぞれがネットワークに接続された状態でクラウドサーバ６等を含む層、フォグコンピュータ７等を含む層、エッジコンピュータ８（セル９に含まれるロボットコントローラ、制御装置等）等を含む層の、３つの階層に論理的に分けて構成されているシステムを想定する。この様なシステムに於いて、本発明による一態様による制御装置１は、クラウドサーバ６、フォグコンピュータ７、エッジコンピュータ８のいずれの上にも実装することが可能であり、それぞれの複数の装置との間でネットワークを介して相互に機械学習に係る処理で用いるデータを共有して分散学習をしたり、生成した学習モデルをフォグコンピュータ７やクラウドサーバ６に収集して大規模な解析を行ったり、更に、生成した学習モデルの相互再利用等をしたりすることができる。図６に例示されるシステムにおいて、セル９は各地の工場にそれぞれ複数設けられ、それぞれのセル９を所定の単位（工場単位、同じ製造業者の複数の工場単位等）で上位層のフォグコンピュータ７が管理する。そして、これらフォグコンピュータ７が収集、解析したデータを、更に上位層のクラウドサーバ６で収集、解析等を行い、その結果として得られた情報を各々のエッジコンピュータ８における制御等に活用することができる。
【００３７】
図７はクラウドサーバ、フォグコンピュータ等のコンピュータ上に制御装置を実装した場合の概略的なハードウェア構成図である。
【００３８】
本実施形態によるコンピュータ上に実装された制御装置１’が備えるＣＰＵ３１１は、制御装置１’を全体的に制御するプロセッサである。ＣＰＵ３１１は、ＲＯＭ３１２に格納されたシステム・プログラムをバス３２０を介して読み出し、該システム・プログラムに従って制御装置１’の全体を制御する。ＲＡＭ３１３には一時的な計算データや表示データ、図示しない入力部を介してオペレータが入力した各種データ等が一時的に格納される。
【００３９】
不揮発性メモリ３１４は、例えば図示しないバッテリでバックアップされるなどして、制御装置１’の電源がオフされても記憶状態が保持されるメモリとして構成される。不揮発性メモリ３１４には、入力装置３７１を介して入力されたプログラム、制御装置１’の各部やネットワーク５を介して産業用ロボット２’等から取得された各種データが記憶されている。不揮発性メモリ３１４に記憶されたプログラムや各種データは、実行時／利用時にはＲＡＭ３１３に展開されても良い。また、ＲＯＭ３１２には、公知の解析プログラムなどの各種のシステム・プログラム（後述する機械学習装置１００とのやりとりを制御するためのシステム・プログラムを含む）があらかじめ書き込まれている。
【００４０】
制御装置１’は、インタフェース３１９を介して有線／無線のネットワーク５と接続されている。ネットワーク５には、少なくとも１つの産業用ロボット２’（制御装置を備えた産業用ロボット）や、他の制御装置１、エッジコンピュータ８、フォグコンピュータ７、クラウドサーバ６等が接続され、制御装置１’との間で相互にデータのやり取りを行っている。
【００４１】
表示装置３７０には、メモリ上に読み込まれた各データ、プログラム等が実行された結果として得られたデータ等がインタフェース３１７を介して出力されて表示される。また、キーボードやポインティングデバイス等から構成される入力装置３７１は、作業者による操作に基づく指令，データ等をインタフェース３１８を介してＣＰＵ３１１に渡す。
【００４２】
インタフェース３２１は、制御装置１’と機械学習装置１００とを接続するためのインタフェースである。機械学習装置１００については、図１で説明したものと同様の構成を備える。
【００４３】
この様に、クラウドサーバ、フォグコンピュータ等のコンピュータ上に制御装置１’を実装する場合、産業用ロボット２’からの情報の取得や、産業用ロボット２’に対するマニピュレータの制御指令の調整が、ネットワーク５を介してやり取りされる点を除けば、制御装置１’が備える機能については第１実施形態で説明したものと同様のものとなる。この時、産業用ロボット２’は制御装置を備えているため、制御装置１’が備える制御部３２は、産業用ロボット２’の制御は行わず、産業用ロボット２’が備える制御装置を介した該産業用ロボット２’の加工状態に係る情報の取得と制御を行う。
【００４４】
図８は、制御装置１’を備えた第２実施形態による制御システムの概略的な構成図である。制御システム５００は、複数の制御装置１，１’、複数の産業用ロボット２’、及びそれら制御装置１，１’、産業用ロボット２’を互いに接続するネットワーク５とを備える。
【００４５】
制御システム５００では、機械学習装置１００を備える制御装置１’は、学習部１１０の学習結果を用いて、産業用ロボット２’におけるマニピュレータの制御指令の調整を推定する。また、少なくとも１つの制御装置１’が、他の複数の制御装置１、１’のそれぞれが得た状態変数Ｓ及び判定データＤに基づき、全ての制御装置１、１’に共通する産業用ロボット２，２’におけるマニピュレータの制御指令の調整を学習し、その学習結果を全ての制御装置１、１’が共有するように構成できる。したがって制御システム５００によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、学習の速度や信頼性を向上させることができる。
【００４６】
図９は、機械学習装置と制御装置とを異なる装置上に実装した第３実施形態によるシステムの概略的な構成図である。制御システム５００’は、クラウドサーバ、ホストコンピュータ、フォグコンピュータ等のコンピュータの一部として実装された少なくとも１台の機械学習装置１００（図９では、フォグコンピュータ７の一部として実装された例を示している）と、複数の制御装置１”と、それら制御装置１”とコンピュータとを互いに接続するネットワーク５とを備える。なお、コンピュータのハードウェア構成は、図７に示した制御装置１’の概略的なハードウェア構成と同様に、ＣＰＵ３１１、ＲＡＭ３１３，不揮発性メモリ３１４等の一般的なコンピュータが備えるハードウェアがバス３２０を介して接続して構成される。
【００４７】
上記構成を有する制御システム５００’は、機械学習装置１００が、複数の制御装置１”のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての制御装置１”に共通する産業用ロボット２におけるマニピュレータの制御指令の調整を学習し、その学習結果を用いて、それぞれの産業用ロボット２におけるマニピュレータの制御指令の調整を行うことができるようになる。制御システム５００’の構成によれば、複数の制御装置１”のそれぞれが、存在する場所や時期に関わらず、必要なときに必要な数の制御装置１”を機械学習装置１００に接続することができる。
【００４８】
図１０は、機械学習装置１００’と制御装置１とを備えた第４実施形態による制御システム５００”の概略的な構成図である。制御システム５００”は、エッジコンピュータやフォグコンピュータ、ホストコンピュータ、クラウドサーバ等のコンピュータの上に実装された少なくとも１台の機械学習装置１００’（図１０では、フォグコンピュータ７の一部として実装された例を示している）と、複数の制御装置１と、それら制御装置１とコンピュータとを互いに接続する有線／無線のネットワーク５とを備える。
【００４９】
上記構成を有する制御システム５００”では、機械学習装置１００’を備えるフォグコンピュータ７が、各々の制御装置１から、該制御装置１が備える機械学習装置１００による機械学習の結果として得られた学習モデルを取得する。そして、フォグコンピュータ７が備える機械学習装置１００’は、これら複数の学習モデルに基づく知識の最適化や効率化の処理を行うことで、新たに最適化乃至効率化された学習モデルを生成し、生成した学習モデルを各々の制御装置１に対して配布する。
【００５０】
機械学習装置１００’が行う学習モデルの最適化乃至効率化の例としては、各制御装置１から取得した複数の学習モデルに基づいた蒸留モデルの生成が挙げられる。この場合、本実施例による機械学習装置１００’は、学習モデルに対して入力する入力データを作成し、該入力データを各々の学習モデルに対して入力した結果として得られる出力を用いて、１から学習を行うことで新たに学習モデル（蒸留モデル）を生成する。このようにして生成された蒸留モデルは、上記でも説明したように、外部記憶媒体やネットワーク５を介して制御装置１や他のコンピュータに対して配布して活用される。
【００５１】
機械学習装置１００’が行う学習モデルの最適化乃至効率化の他の例としては、各制御装置１から取得した複数の学習モデルに対して蒸留を行う過程において、入力データに対する各学習モデルの出力データの分布を一般的な統計的手法（例えば、外れ値検定等）で解析し、入力データと出力データの組の外れ値を抽出し、該外れ値を除外した入力データと出力データの組を用いて蒸留を行うことも考えられる。このような過程を経ることで、それぞれの学習モデルから得られる入力データと出力データの組から例外的な推定結果を除外し、例外的な推定結果を除外した入力データと出力データの組を用いて蒸留モデルを生成することができる。このようにして生成された蒸留モデルは、複数の制御装置１で生成された学習モデルと比べてより汎用的な学習モデルとして活用することが可能となる。
なお、他の一般的な学習モデルの最適化乃至効率化の手法（各学習モデルを解析し、その解析結果に基づいて学習モデルのハイパパラメータを最適化する等）も適宜導入することが可能である。
【００５２】
本実施例による制御システム５００”では、例えばエッジコンピュータとしての複数の制御装置１に対して設置されたフォグコンピュータ７の上に機械学習装置１００’を配置し、各々の制御装置１で生成された学習モデルをフォグコンピュータ７上に集約して記憶しておき、記憶した複数の学習モデルに基づいた最適化乃至効率化を行った上で、最適化乃至効率化された学習モデルを必要に応じて各制御装置１に対して再配布するという運用を行うことができる。
【００５３】
また、本実施例による制御システム５００”では、例えばフォグコンピュータ７の上に集約して記憶された学習モデルや、フォグコンピュータ７上で最適化乃至効率化された学習モデルを、更に上位のホストコンピュータやクラウドサーバ上に集め、これら学習モデルを用いて工場や制御装置１のメーカでの知的作業への応用（上位サーバでの更なる汎用的な学習モデルの構築及び再配布、学習モデルの解析結果に基づく保守作業の支援、各々の制御装置１の性能等の分析、新しい機械の開発への応用等）を行うことができる。
【００５４】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では制御装置１と機械学習装置１００が異なるＣＰＵ（プロセッサ）を有する装置として説明しているが、機械学習装置１００は制御装置１が備えるＣＰＵ１１と、ＲＯＭ１２に記憶されるシステム・プログラムにより実現するようにしても良い。
【符号の説明】
【００５５】
１，１’，１”  制御装置
２  産業用ロボット
３  センサ
５  ネットワーク
６  クラウドサーバ
７  フォグコンピュータ
８  エッジコンピュータ
９  セル
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１６，１７，１８，１９  インタフェース
２０  バス
２１  インタフェース
３０  軸制御回路
３２  制御部
３４  データ取得部
３６  前処理部
４０  サーボアンプ
５０  サーボモータ
５２  制御用プログラム
５４  取得データ記憶部
６０  教示操作盤
７０  表示装置
７１  入力装置
１００，１００’  機械学習装置
１０１  プロセッサ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  不揮発性メモリ
１１０  学習部
１２０  意志決定部
１３０  学習モデル記憶部
５００，５００’５００”  制御システム
【図１】
2020055095.tif 000003
【図２】
2020055095.tif 000004
【図３】
2020055095.tif 000005
【図４】
2020055095.tif 000006
【図５】
2020055095.tif 000007
【図６】
2020055095.tif 000008
【図７】
2020055095.tif 000009
【図８】
2020055095.tif 000010
【図９】
2020055095.tif 000011
【図１０】
2020055095.tif 000012