(57)【要約】【課題】修正されたロボットの動作プログラムを得ることができる機械学習装置，ロボットシステムおよび機械学習方法の提供を図る。【解決手段】ロボット１の動作プログラムを学習する機械学習装置２であって、前記ロボットのアームの揺れ、および、前記ロボットのアームの動作軌跡の長さの少なくとも一方を、状態変数として観測する状態観測部２１と、前記ロボットが処理を行うサイクルタイムを、判定データとして受け取る判定データ取得部２２と、前記状態観測部の出力および前記判定データ取得部の出力に基づいて、前記ロボットの動作プログラムを学習する学習部２３と、を備える。【選択図】図３
2018043338.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作プログラムを学習する機械学習装置であって、
前記ロボットのアームの揺れ、および、前記ロボットのアームの動作軌跡の長さの少なくとも一方を、状態変数として観測する状態観測部と、
前記ロボットが処理を行うサイクルタイムを、判定データとして受け取る判定データ取得部と、
前記状態観測部の出力および前記判定データ取得部の出力に基づいて、前記ロボットの動作プログラムを学習する学習部と、を備える、
ことを特徴とする機械学習装置。
【請求項２】
前記アームの揺れ、および、前記アームの動作軌跡の長さのデータは、カメラにより撮影された画像、または、ロボット制御装置からのデータに基づいて観測され、
前記サイクルタイムは、前記ロボット制御装置からのデータ、或いは、前記カメラにより撮影された画像を解析して取得される、
ことを特徴とする請求項１に記載の機械学習装置。
【請求項３】
前記状態観測部は、さらに、
前記アームの位置，速度および加速度の少なくとも１つを、状態変数として観測する、
ことを特徴とする請求項１または請求項２に記載の機械学習装置。
【請求項４】
さらに、
前記学習部が学習した前記ロボットの動作プログラムに基づいて、前記ロボットの動作を決定する意思決定部を備える、
ことを特徴とする請求項１乃至請求項３のいずれか１項に記載の機械学習装置。
【請求項５】
前記学習部は、
前記状態観測部の出力および前記判定データ取得部の出力に基づいて、報酬を計算する報酬計算部と、
前記状態観測部の出力，前記判定データ取得部の出力および前記報酬計算部の出力に基づいて、前記ロボットの動作プログラムの価値を定める価値関数を更新する価値関数更新部と、を備える、
ことを特徴とする請求項１乃至請求項４のいずれか１項に記載の機械学習装置。
【請求項６】
前記報酬計算部は、
前記サイクルタイムが長いときにマイナスの報酬を設定し、前記サイクルタイムが短いときにプラスの報酬を設定する、
ことを特徴とする請求項５に記載の機械学習装置。
【請求項７】
前記報酬計算部は、
前記アームの揺れが大きいときにマイナスの報酬を設定し、前記アームの揺れが小さいときにプラスの報酬を設定し、
前記アームの動作軌跡が長いときにマイナスの報酬を設定し、前記アームの動作軌跡が短いときにプラスの報酬を設定する、
ことを特徴とする請求項５または請求項６に記載の機械学習装置。
【請求項８】
前記機械学習装置は、ニューラルネットワークを備える、
ことを特徴とする請求項１乃至請求項７のいずれか１項に記載の機械学習装置。
【請求項９】
前記機械学習装置は、それぞれの前記ロボットに対して設けられ、少なくとも１つの他の機械学習装置と接続可能であり、少なくとも１つの前記他の機械学習装置との間で機械学習の結果を相互に交換または共有する、
ことを特徴とする請求項１乃至請求項８のいずれか１項に記載の機械学習装置。
【請求項１０】
前記機械学習装置は、クラウドサーバまたはフォグサーバ上に存在する、
ことを特徴とする請求項１乃至請求項８のいずれか１項に記載の機械学習装置。
【請求項１１】
ロボット制御装置と、前記ロボット制御装置により制御される前記ロボットと、請求項１乃至請求項９のいずれか１項に記載の機械学習装置と、を備える、
ことを特徴とするロボットシステム。
【請求項１２】
さらに、
前記アームの揺れ、および、前記アームの動作軌跡の長さのデータを観測可能なカメラを備え、
前記カメラは、
前記ロボットの前記アームに取り付けられた第１カメラ、
前記ロボットの周辺に配置された周辺ロボットのアームに取り付けられた第２カメラ、および、
前記ロボットの周辺に設けられた第３カメラの少なくとも１つを含む、
ことを特徴とする請求項１１に記載のロボットシステム。
【請求項１３】
前記ロボットは、スポット溶接ロボットである、
ことを特徴とする請求項１１または請求項１２に記載のロボットシステム。
【請求項１４】
ロボットの動作プログラムを学習する機械学習方法であって、
前記ロボットのアームの揺れ、および、前記ロボットのアームの動作軌跡の長さの少なくとも一方を、状態変数として観測し、
前記ロボットが処理を行うサイクルタイムを、判定データとして受け取り、
前記状態変数および前記判定データに基づいて、前記ロボットの動作プログラムを学習する、
ことを特徴とする機械学習方法。
【請求項１５】
前記ロボットの動作プログラムの学習は、
前記状態変数および前記判定データに基づいて報酬を計算し、
前記状態変数，前記判定データおよび前記報酬に基づいて、前記ロボットの動作プログラムの価値を定める価値関数を更新する、
ことを特徴とする請求項１４に記載の機械学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの動作プログラムを学習する機械学習装置，ロボットシステムおよび機械学習方法に関する。
【背景技術】
【０００２】
従来、例えば、自動車の車体のスポット溶接を行うスポット溶接ロボット等において、教示者(人)により、複数のスポット溶接ポイントを順番に通過するような教示プログラムが作成されている。すなわち、教示者は、スポット溶接ロボットに対して、各溶接ポイントをどのような順番で溶接するのが効率的であるかを考えて、複数のスポット溶接ポイントの教示を行っている。
【０００３】
ここで、教示者は、例えば、各溶接ポイントと次の溶接ポイントの間にロボットアームが通過する教示ポイントを何箇所か設定し、また、その間の動作についての速度や加速度の設定も行っている。すなわち、教示者は、スポット溶接ロボットによる処理時間(サイクルタイム)を短縮するために、例えば、ロボットアームの軌跡が最短になるように教示ポイントを設定し、さらに、各教示ポイント間の加減速や速度の設定を変更している。
【０００４】
ところで、従来、実際にワークが配置されている位置に応じた経路に沿ってロボットハンドを移動させ、ロボットハンドの動作のサイクルタイムを低減させるために、特定の目標位置を選定し、その選定された特定の目標位置に対するロボットハンドの接近経路と離隔経路として異なる複数の経路パターンを記憶する。そして、視覚センサによって検出されたワークの位置に基づいて、記憶された複数の経路パターンから１つの経路パターンを選択し、ロボットハンドが向かうべき目標位置と実際のワークの位置が一致するように、選択された経路パターンを修正してロボットハンドを移動させるロボット制御装置が提案されている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４０８７８４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、従来、視覚センサで検出されたワークの位置に基づいて、複数の経路パターンから１つの経路パターンを選択し、さらに、ロボットハンド(ロボットアーム)の目標位置と実際のワークの位置が一致するように経路パターンを修正して、ロボットアームの移動を制御するロボット制御装置が提案されている。
【０００７】
しかしながら、例えば、自動車の車体に対して、多数の溶接ポイントのスポット溶接を行うスポット溶接ロボットにおいて、ロボットアームがその多数の溶接ポイントを通る軌跡が最短距離となるように、教示者(人)が設定(教示)するのは難しい。さらに、各教示ポイント間の加減速や速度の設定、或いは、ロボットアームの揺れに起因したスポット溶接の精度やロボットアームの揺れが収まるのを待ってから溶接しなければならないこと等を考慮すると、教示者がサイクルタイムの短い最適なロボットアームの軌跡や速度、加速度を教示するのは困難なものとなっている。
【０００８】
なお、本明細書では、本発明が適用されるロボットの一例として、スポット溶接ロボットを説明するが、本発明の適用は、スポット溶接ロボットに限定されず、様々な産業用ロボットやサービス用ロボットに対して幅広く適用することができる。
【０００９】
本発明の目的は、上述した従来技術の課題に鑑み、修正されたロボットの動作プログラムを得ることができる機械学習装置，ロボットシステムおよび機械学習方法の提供にある。
【課題を解決するための手段】
【００１０】
本発明に係る第１実施形態によれば、ロボットの動作プログラムを学習する機械学習装置であって、前記ロボットのアームの揺れ、および、前記ロボットのアームの動作軌跡の長さの少なくとも一方を、状態変数として観測する状態観測部と、前記ロボットが処理を行うサイクルタイムを、判定データとして受け取る判定データ取得部と、前記状態観測部の出力および前記判定データ取得部の出力に基づいて、前記ロボットの動作プログラムを学習する学習部と、を備える、機械学習装置が提供される。
【００１１】
前記アームの揺れ、および、前記アームの動作軌跡の長さのデータは、カメラにより撮影された画像、または、ロボット制御装置からのデータに基づいて観測されてもよく、前記サイクルタイムは、前記ロボット制御装置からのデータ、或いは、前記カメラにより撮影された画像を解析して取得されてもよい。前記状態観測部は、さらに、前記アームの位置，速度および加速度の少なくとも１つを、状態変数として観測することもできる。前記機械学習装置は、さらに、前記学習部が学習した前記ロボットの動作プログラムに基づいて、前記ロボットの動作を決定する意思決定部を備えてもよい。前記学習部は、前記状態観測部の出力および前記判定データ取得部の出力に基づいて、報酬を計算する報酬計算部と、前記状態観測部の出力，前記判定データ取得部の出力および前記報酬計算部の出力に基づいて、前記ロボットの動作プログラムの価値を定める価値関数を更新する価値関数更新部と、を備えることができる。
【００１２】
前記報酬計算部は、前記サイクルタイムが長いときにマイナスの報酬を設定し、前記サイクルタイムが短いときにプラスの報酬を設定するのが好ましい。前記報酬計算部は、前記アームの揺れが大きいときにマイナスの報酬を設定し、前記アームの揺れが小さいときにプラスの報酬を設定し、前記アームの動作軌跡が長いときにマイナスの報酬を設定し、前記アームの動作軌跡が短いときにプラスの報酬を設定することができる。前記機械学習装置は、ニューラルネットワークを備えてもよい。前記機械学習装置は、それぞれの前記ロボットに対して設けられ、少なくとも１つの他の機械学習装置と接続可能であり、少なくとも１つの前記他の機械学習装置との間で機械学習の結果を相互に交換または共有することができる。前記機械学習装置は、クラウドサーバまたはフォグサーバ上に存在してもよい。
【００１３】
本発明に係る第２実施形態によれば、ロボット制御装置と、前記ロボット制御装置により制御される前記ロボットと、上述した第１実施形態の機械学習装置を備えるロボットシステムが提供される。前記ロボットシステムは、さらに、前記アームの揺れ、および、前記アームの動作軌跡の長さのデータを観測可能なカメラを備え、前記カメラは、前記ロボットの前記アームに取り付けられた第１カメラ、前記ロボットの周辺に配置された周辺ロボットのアームに取り付けられた第２カメラ、および、前記ロボットの周辺に設けられた第３カメラの少なくとも１つを含むことができる。前記ロボットは、スポット溶接ロボットであってもよい。
【００１４】
本発明に係る第３実施形態によれば、ロボットの動作プログラムを学習する機械学習方法であって、前記ロボットのアームの揺れ、および、前記ロボットのアームの動作軌跡の長さの少なくとも一方を、状態変数として観測し、前記ロボットが処理を行うサイクルタイムを、判定データとして受け取り、前記状態変数および前記判定データに基づいて、前記ロボットの動作プログラムを学習する機械学習方法が提供される。前記ロボットの動作プログラムの学習は、前記状態変数および前記判定データに基づいて報酬を計算し、前記状態変数，前記判定データおよび前記報酬に基づいて、前記ロボットの動作プログラムの価値を定める価値関数を更新することができる。
【発明の効果】
【００１５】
本発明に係る機械学習装置，ロボットシステムおよび機械学習方法によれば、修正されたロボットの動作プログラムを得ることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、本発明に係る機械学習装置の一実施形態を模式的に示すブロック図である。
【図２】図２は、本発明に係るロボットシステムの一実施形態を示すブロック図である。
【図３】図３は、本発明に係る機械学習装置の一実施例を示すブロック図である。
【図４】図４は、ニューロンのモデルを模式的に示す図である。
【図５】図５は、図４に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。
【図６】図６は、図３に示す機械学習装置における処理の一例を示すフローチャートである。
【図７】図７は、図３に示す機械学習装置における処理の他の例を示すフローチャートである。
【図８】図８は、ロボットシステムにおけるロボットのアームの軌跡を説明するための図である。
【発明を実施するための形態】
【００１７】
以下、本発明に係る機械学習装置，ロボットシステムおよび機械学習方法の実施形態を、添付図面を参照して詳述する。図１は、本発明に係る機械学習装置の一実施形態を模式的に示すブロック図である。
【００１８】
図１に示されるように、本実施形態の機械学習装置は、例えば、強化学習によりロボットの動作プログラムの学習を行って修正された動作プログラムを出力するもので、人工知能２０を含む。この機械学習装置は、例えば、各ロボット(１)のロボット制御装置(エッジ)に設けてもよいが、複数のロボット(ロボットシステム)を有する工場ごと(例えば、フォグサーバ)、或いは、複数の工場とインターネット等の通信回線を介して接続されたクラウドサーバに設けることもできる。また、それぞれのロボットに対して設けられた機械学習装置は、例えば、少なくとも１つの他の機械学習装置と接続可能とし、その少なくとも１つの他の機械学習装置との間で機械学習の結果を相互に交換または共有するようにしてもよい。
【００１９】
人工知能(ＡＩ：Artificial Intelligence)２０は、例えば、後述するように、多層構造のニューラルネットワーク等により実現され、カメラ１２，１２'，１２ａからの情報(画像情報)、ロボットが処理を行うサイクルタイム、ロボットのアームの揺れ、および、ロボットのアームの動作軌跡の長さといったデータを受け取って学習(強化学習)を行い、修正(学習)された動作プログラムを出力する。すなわち、この学習された動作プログラムにより、例えば、サイクルタイムの長さ等を抑えつつ、ロボットアームやアームに取り付けられた機器等が作業対象や周辺機材に当たらないように、教示を修正することが可能になる。
【００２０】
図２は、本発明に係るロボットシステムの一実施形態を示すブロック図である。図２に示されるように、本実施形態のロボットシステムは、ロボット１および機械学習装置２を含む。なお、機械学習装置２は、例えば、ロボット１の動作を制御するロボット制御装置に設けることができるのは、前述した通りである。
【００２１】
図２に示されるように、機械学習装置２(ロボット制御装置)は、状態観測部２１、判定データ取得部２２、学習部２３および意思決定部２４を含み、学習部２３は、報酬計算部２３１および価値関数更新部２３２を含む。なお、機械学習装置２に関しては、後に詳述する。ロボット１のアーム１１には、カメラ１２が設けられ、また、ロボット１の上方にも、カメラ１２ａが設けられている。また、カメラとしては、後に図８を参照して詳述するように、例えば、隣のロボット(１')のアーム(１１')に取り付けられたカメラ(１２')を使用することもできる。これらカメラ１２(１２')，１２ａにより撮影された画像情報により、例えば、アーム１１の揺れやアーム１１の動作軌跡といったデータが観測され、機械学習装置２に出力される。また、ロボット１が処理を行うサイクルタイムも、カメラ１２，１２ａにより撮影された画像情報から求めることもできるが、例えば、ロボット制御装置に設けられたタイマの出力を利用することもできる。
【００２２】
図３は、本発明に係る機械学習装置の一実施例を示すブロック図である。図３に示されるように、機械学習装置２は、状態観測部２１、判定データ取得部２２、学習部２３および意思決定部２４を備える。状態観測部２１は、ロボット１のアーム１１の揺れ、および、アーム１１の動作軌跡の少なくとも一方を状態変数として観測する。ここで、アーム１１の揺れ、および、アーム１１の動作軌跡のデータは、後述するように、カメラ(１２，１２ａ)により撮影された画像、或いは、ロボット制御装置からのデータに基づいて観測される。なお、ロボット制御装置からのデータとしては、例えば、ロボット１の各軸に設けられたエンコーダ(ロータリーエンコーダ)からの信号に基づいて得られる、アーム１１の動作軌跡のデータである。また、状態観測部２１は、さらに、ロボット１のアーム１１の位置，速度および加速度の少なくとも１つを状態変数として観測することもできる。
【００２３】
判定データ取得部２２は、ロボット１が処理を行うサイクルタイムを判定データとして受け取る。学習部２３は、状態観測部２１の出力および判定データ取得部２２の出力に基づいて、ロボット１の動作プログラムを学習する。学習部２３は、報酬計算部２３１および価値関数更新部２３２を含む。報酬計算部２３１は、状態観測部２１の出力および判定データ取得部２２の出力に基づいて報酬を計算し、価値関数更新部２３２は、状態観測部２１の出力，判定データ取得部２２の出力および報酬計算部２３１の出力に基づいて、ロボット１の動作プログラムの価値を定める価値関数を更新する。なお、意思決定部２４は、学習部２３が学習したロボット１の動作プログラムに基づいて、ロボット１の動作を決定する。
【００２４】
ところで、機械学習装置２は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準等を解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング：Deep Learning)」と呼ばれる手法がある。
【００２５】
なお、図３に示す機械学習装置２は、「強化学習(Ｑ学習)」を適用したものである。この機械学習装置２は、汎用の計算機若しくはプロセッサを用いることもできるが、例えば、ＧＰＧＰＵ(General-Purpose computing on Graphics Processing Units)や大規模ＰＣクラスター等を適用すると、より高速に処理することが可能になる。ここで、機械学習の全般に関して、概略を説明する。
【００２６】
まず、教師あり学習とは、教師データ、すなわち、ある入力と結果(ラベル)のデータの組を大量に機械学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル(誤差モデル)、すなわち、その関係性を帰納的に獲得するものである。例えば、後述のニューラルネットワーク等のアルゴリズムを用いて実現することが可能である。
【００２７】
また、教師なし学習とは、入力データのみを大量に機械学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形等を行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすること等ができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することできる。
【００２８】
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。
【００２９】
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・ロボットシステム(すなわち、ロボット１およびロボット制御装置(例えば、機械学習装置２を含む))は、環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、ロボット制御装置は、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００３０】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法を学ぶものである。以下に、例として、Ｑ学習の場合で説明を続けるが、Ｑ学習に限定されるものではない。
【００３１】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ(ｓ，ａ)を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ(ｓ，ａ)の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は、状態ｓと行動ａとの組合せについて、価値Ｑ(ｓ，ａ)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Ｑ(ｓ，ａ)を学習していく。
【００３２】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ(ｓ，ａ)＝Ｅ［Σ(γt)ｒt］となるようにすることを目指す。ここで、期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Ｑ(ｓ，ａ)の更新式は、例えば、次の式(１)により表すことができる。
【００３３】
【数１】
2018043338.tif 000003
上記の式(１)において、ｓtは、時刻ｔにおける環境の状態を表し、ａtは、時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００３４】
上述した式(１)は、試行ａtの結果、帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ(ｓt，ａt)を更新する方法を表している。すなわち、状態ｓにおける行動ａの評価値Ｑ(ｓt，ａt)よりも、報酬ｒt+1 ＋ 行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ(ｓt+1，ｍａｘ ａt+1)の方が大きければ、Ｑ(ｓt，ａt)を大きくし、反対に小さければ、Ｑ(ｓt，ａt)を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００３５】
ここで、Ｑ(ｓ，ａ)の計算機上での表現方法は、すべての状態行動ペア(ｓ，ａ)に対して、その値をテーブルとして保持しておく方法と、Ｑ(ｓ，ａ)を近似するような関数を用意する方法がある。後者の方法では、前述の式(１)は、確率勾配降下法等の手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、後述のニューラルネットワークを用いることができる。
【００３６】
また、強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。図４は、ニューロンのモデルを模式的に示す図であり、図５は、図４に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、図４に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
【００３７】
図４に示されるように、ニューロンは、複数の入力ｘ(図４では、一例として入力ｘ1〜ｘ3)に対する出力(結果)ｙを出力するものである。各入力ｘ(ｘ1，ｘ2，ｘ3)には、この入力ｘに対応する重みｗ(ｗ1，ｗ2，ｗ3)が乗算される。これにより、ニューロンは、次の式(２)により表現される結果ｙを出力する。なお、入力ｘ、結果ｙおよび重みｗは、すべてベクトルである。また、下記の式(２)において、θは、バイアスであり、ｆkは、活性化関数である。
【数２】
2018043338.tif 000004
【００３８】
図５を参照して、図４に示すニューロンを組み合わせて構成した三層のニューラルネットワークを説明する。図５に示されるように、ニューラルネットワークの左側から複数の入力ｘ(ここでは、一例として、入力ｘ1〜入力ｘ3)が入力され、右側から結果ｙ(ここでは、一例として、結果ｙ1〜入力ｙ3)が出力される。具体的に、入力ｘ1，ｘ2， ｘ3は、３つのニューロンＮ11〜Ｎ13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてＷ１と標記されている。
【００３９】
ニューロンＮ11〜Ｎ13は、それぞれ、ｚ11〜ｚ13を出力する。図５において、これらｚ11〜ｚ13は、まとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。ｚ11〜ｚ13は、２つのニューロンＮ21およびＮ22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００４０】
ニューロンＮ21，Ｎ22は、それぞれｚ21，ｚ22を出力する。図５において、これらｚ21，ｚ22は、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。ｚ21，ｚ22は、３つのニューロンＮ31〜Ｎ33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００４１】
最後に、ニューロンＮ31〜Ｎ33は、それぞれ、結果ｙ１〜結果ｙ３を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいて、ロボット制御装置の行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論等多様なタスクが可能なのはいうまでもない。
【００４２】
ここで、予測モードで実際にロボット制御装置を動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。或いは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００４３】
また、重みＷ１〜Ｗ３は、誤差逆伝搬法(誤差逆転伝播法：バックプロパゲーション：Backpropagation)により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。このようなニューラルネットワークは、三層以上に、さらに層を増やすことも可能である(深層学習と称される)。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。
【００４４】
ここで、図３を参照して説明したように、本実施例の機械学習装置２は、例えば、Ｑ学習を実施すべく、状態観測部２１、判定データ取得部２２，学習部２３、および、意思決定部２４を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではなく、また、機械学習装置２は、例えば、ＧＰＧＰＵや大規模ＰＣクラスター等を適用することで実現可能なのは、前述した通りである。
【００４５】
図６は、図３に示す機械学習装置における処理の一例を示すフローチャートである。図６に示されるように、機械学習が開始(学習スタート)すると、ステップＳＴ１１において、カメラ１２，１２ａからの情報に基づいてロボット１(アーム１１)の軌跡，速度および加速度を変更する。次に、ステップＳＴ１２においてアーム１１の揺れを判定し、ステップＳＴ１７においてアーム１１の軌跡の長さを判定し、また、ステップＳＴ２２においてサイクルタイムを判定する。ここで、ステップＳＴ１２におけるアーム１１の揺れの判定、ステップＳＴ１７におけるアーム１１の軌跡の長さの判定、並びに、ステップＳＴ２２におけるサイクルタイムの判定は、それら全ての判定を行わずに、一部の判定のみ(例えば、ステップＳＴ１２のアーム１１の揺れの判定、および、ステップＳＴ２２のサイクルタイムの判定のみ)を行ってもよい。或いは、さらに、他の判定項目を追加することも可能である。
【００４６】
図６に示す処理の一例では、ステップＳＴ１２において、アーム１１の揺れが多い(大きい)と判定すると、ステップＳＴ１３に進んで『−２０』(報酬値)を設定し、アーム１１の揺れが変わらないと判定すると、ステップＳＴ１４に進んで『０』を設定し、アーム１１の揺れが少ない(小さい)と判定すると、ステップＳＴ１５に進んで『＋２０』を設定し、そして、ステップＳＴ１６に進んで、報酬の積算を行う。
【００４７】
また、ステップＳＴ１７において、アーム１１の軌跡の長さが長いと判定すると、ステップＳＴ１８に進んで『−１０』(報酬値)を設定し、アーム１１の軌跡の長さが変わらないと判定すると、ステップＳＴ１９に進んで『０』を設定し、アーム１１の軌跡の長さが短いと判定すると、ステップＳＴ２０に進んで『＋１０』を設定し、そして、ステップＳＴ２１に進んで、報酬の積算を行う。
【００４８】
さらに、ステップＳＴ２２において、サイクルタイムが長いと判定すると、ステップＳＴ２３に進んで『−３０』(報酬値)を設定し、サイクルタイムが変わらないと判定すると、ステップＳＴ２４に進んで『０』を設定し、サイクルタイムが短いと判定すると、ステップＳＴ２５に進んで『＋３０』を設定し、さらに、ステップＳＴ２６に進んで、報酬の積算を行う。
【００４９】
上述したように、報酬値は、それぞれの判定項目により重み付けがなされていて、図６に示す処理の一例では、例えば、ステップＳＴ２２におけるサイクルタイムの判定は、大きな重み付け(『−３０，０，＋３０』)がなされ、ステップＳＴ１７におけるアーム１１の軌跡の長さの判定は、小さな重み付け(『−１０，０，＋１０』)がなされている。なお、判定項目による重み付けは、正側と負側で変更させることもでき、或いは、全ての項目に対して同じ重み付けをすることも可能である。
【００５０】
次に、ステップＳＴ２７に進み、上述したステップＳＴ１６，ＳＴ２１およびＳＴ２６で積算されたそれぞれの判定項目に対する報酬値をまとめて積算し、さらに、ステップＳＴ２８に進んで、ステップＳＴ２７で積算された報酬値に基づいて、教示プログラム(ロボットの動作プログラム)を修正する。なお、ステップＳＴ２８の処理が終了すると、例えば、ステップＳＴ１１に戻って同様の処理を繰り返す。
【００５１】
ここで、上述した各ステップの処理は、前述した図３における各ブロックにより実行することができる。すなわち、ステップＳＴ１２〜ＳＴ２７における報酬値の積算は、例えば、図３における報酬計算部２３１による報酬の計算処理として行うことができる。また、ステップＳＴ２８における教示プログラムの修正は、例えば、図３における価値関数更新部２３２による価値関数(行動価値テーブル)の更新処理、並びに、意思決定部２４による更新された価値関数に基づいたロボットの動作プログラム(教示プログラム)の決定処理により行うことができる。このように、本実施形態によれば、修正されたロボットの動作プログラムを得ることが可能になる。
【００５２】
図７は、図３に示す機械学習装置における処理の他の例を示すフローチャートである。図７に示されるように、機械学習が開始(学習スタート)すると、ステップＳＴ３１において、カメラ１２，１２ａからの情報に基づいてロボット１(アーム１１)の軌跡，速度および加速度を変更する。さらに、ステップＳＴ３２に進んで、アーム１１の軌跡の長さを判定し、アーム１１の軌跡の長さが長いと判定すると、ステップＳＴ３３に進んで『−１０』(報酬値)を設定し、アーム１１の軌跡の長さが変わらないと判定すると、ステップＳＴ３４に進んで『０』を設定し、アーム１１の軌跡の長さが短いと判定すると、ステップＳＴ３５に進んで『＋１０』を設定し、そして、ステップＳＴ３６に進んで、報酬の積算を行う。
【００５３】
次に、ステップＳＴ３７に進んで、アーム１１の揺れを判定し、アーム１１の揺れが多いと判定すると、ステップＳＴ３８に進んで『−２０』を設定し、アーム１１の揺れが変わらないと判定すると、ステップＳＴ３９に進んで『０』を設定し、アーム１１の揺れが少ないと判定すると、ステップＳＴ４０に進んで『＋２０』を設定し、そして、ステップＳＴ４１に進んで、報酬の積算を行う。また、ステップＳＴ４２に進んで、サイクルタイムを判定し、サイクルタイムが長いと判定すると、ステップＳＴ４３に進んで『−３０』を設定し、サイクルタイムが変わらないと判定すると、ステップＳＴ４４に進んで『０』を設定し、サイクルタイムが短いと判定すると、ステップＳＴ４５に進んで『＋３０』を設定し、そして、ステップＳＴ４６に進んで、報酬の積算を行う。さらに、ステップＳＴ４７に進み、積算された報酬値に基づいて、教示プログラムを修正する。なお、ステップＳＴ４７の処理が終了すると、例えば、ステップＳＴ３１に戻って同様の処理を繰り返す。
【００５４】
ここで、図６を参照して説明したのと同様に、ステップＳＴ３２〜ＳＴ３６に示すアーム１１の軌跡の長さの判定、ステップＳＴ３７〜ＳＴ４１に示すアーム１１の揺れの判定、並びに、ステップＳＴ４２〜ＳＴ４６に示すサイクルタイムの判定は、それら全ての判定を行わずに、一部の判定のみを行ってもよく、また、さらなる判定項目を追加してもよい。さらに、各判定項目による重み付けは、適宜変更することができ、また、各ステップの処理は、例えば、図３に示す各ブロックで実行することができるのは、前述した通りである。
【００５５】
図８は、ロボットシステムにおけるロボットのアームの軌跡を説明するための図であり、例えば、スポット溶接を行うロボット１のアーム１１を、図中、左から右方向へ移動させてスポット溶接処理を行わせる場合のアームの軌跡を概略的に示すものである。図８において、参照符号ＷＰ１〜ＷＰ５は、ロボット１のアーム１１(溶接ヘッド)が必ず通らなくてはならない位置(スポット溶接を行う溶接ポイント)を示し、ＴＰ１１〜ＴＰ１９は、教示者によりロボット１に教示するポイント(教示ポイント)を示す。
【００５６】
さらに、図８において、曲線ＴＬ１は、人(教示者)により教示されたアーム１１の軌跡(動作軌跡)を示し、ＴＬ２は、上述した本実施形態の機械学習装置により得られた修正されたロボットの動作プログラムに基づくアーム１１の軌跡を示し、そして、ＴＬ３は、周辺機材やワーク(作業対象)との距離が最短な経路を通るアーム１１の軌跡を示す。なお、図８に示されるように、ロボット１のアーム１１には、カメラ１２が設けられていて、例えば、作業対象との距離や作業位置(溶接ポイント)の確認、並びに、アーム１１の揺れ等の情報が取得できるようになっている。
【００５７】
また、ロボット１の上方で、ロボット１(アーム１１)により作業が行われる作業領域の全体が見渡せる位置には、カメラ１２ａが設けられていて、例えば、アーム１１若しくはアーム１１に取り付けられた機器と作業対象や周辺機材との距離や位置関係、並びに、アーム１１の揺れやアーム１１の軌跡等の情報を取得できるようになっている。なお、カメラは、例えば、周辺のロボット(１')のアーム(１１')に取り付けられたもの(１２')を使用してもよい。
【００５８】
図８において、参照符号１'は、ロボット１の周辺(例えば、隣り)に設置された周辺ロボットを示し、この周辺ロボット１'のアーム１１'にもカメラ１２'が設けられている。ここで、周辺ロボット１'のアーム１１'に設けられたカメラ１２'は、ロボット１のアーム１１を撮影し、その撮影データに基づいて、ロボット１のアーム１１の揺れや軌跡を求めることができる。すなわち、あるロボット１のアーム１１の揺れや軌跡は、他の周辺ロボット１'のアーム１１'に設けられたカメラ１２'により撮影されたデータから求めることが可能である。なお、周辺ロボット１'としては、例えば、隣接する１台のロボットに限定されず、周囲の複数のロボットのカメラで撮影されたデータを適宜切り替えて利用することも可能である。
【００５９】
ここで、カメラ１２ａにより、または、カメラ１２と共にアーム１１に設けられた加速度センサ等の各種センサにより、或いは、周辺ロボット１'のカメラ１２'およびロボット１，１'の各種センサにより、ロボット１のアーム１１の速度や加速度等の情報を取得することができる。また、ロボット１による処理のサイクルタイムは、ロボット１を制御するロボット制御装置のタイマ等の出力データから取得することができるが、例えば、カメラ１２ａ等により取得された画像を解析して取得することも可能である。さらに、カメラの設置場所は、ロボット１の上方に限定されず、側方や下方等のロボット１の周辺であってもよいのはいうまでもない。
【００６０】
図８に示されるように、例えば、本実施形態の機械学習装置２により学習が行われて修正されたロボットの動作プログラムに基づく軌跡ＴＬ２は、例えば、教示者により教示された軌跡ＴＬ１とは異なり、また、周辺機材やワークとの距離が最短な経路を通る軌跡ＴＬ３とも異なることが分かる。
【００６１】
すなわち、教示者(人)がロボット１のアーム１１の揺れや動作軌跡の長さ、或いは、ロボットが処理を行うサイクルタイム等の条件を考慮して求めた軌跡ＴＬ１は、様々な条件に対して好ましいと考えられる軌跡(機械学習により得られた軌跡)ＴＬ２からは大きくずれたものとなっているのが分かる。また、機械学習により得られた軌跡ＴＬ２は、単に、周辺機材やワークとの距離が最短な経路を通る軌跡ＴＬ３とも異なることが分かる。すなわち、最短経路を通る軌跡ＴＬ３では、アーム１１の速度や加速度を低下させることが要求され、或いは、アーム１１の揺れが大きくなるため、スポット溶接に要する時間が長くなるためとも考えられる。
【００６２】
以上、詳述したように、本実施形態に係る機械学習装置，ロボットシステムおよび機械学習方法によれば、修正されたロボットの動作プログラムを得ることができる。これにより、例えば、ロボットアームやアームに取り付けられた機器等がワークや周辺機材等に当たらないように、教示を修正することが可能になる。なお、本実施形態の適用は、スポット溶接を行うロボットに限定されず、様々な産業用ロボットやサービス用ロボットに対して幅広く適用することができるのはいうまでもない。
【００６３】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００６４】
１，１'    ロボット
２    機械学習装置
２１    状態観測部
２２    判定データ取得部
２３    学習部
２３１    報酬計算部
２３２    価値関数更新部
２４    意思決定部
【図１】
2018043338.tif 000005
【図２】
2018043338.tif 000006
【図３】
2018043338.tif 000007
【図４】
2018043338.tif 000008
【図５】
2018043338.tif 000009
【図６】
2018043338.tif 000010
【図７】
2018043338.tif 000011
【図８】
2018043338.tif 000012