(57)【要約】【課題】人が接近した場合にロボットの動作を最適化することができる制御装置及び学習装置を提供する。【解決手段】ロボットへの指令を出力する制御装置１は、ロボットへの指令を学習する機械学習装置１００を備え、機械学習装置１００は、ロボットの状態及び前記ロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数として観測する状態観測部１０６と、ロボットと人との干渉の状態を示す判定データを取得する判定データ取得部１０８と、状態変数と判定データとを用いて、ロボットの状態及びロボットの周辺領域に存在する人の状態と、ロボットへの指令とを関連付けて学習する学習部１１０と、を備えることを特徴とする。【選択図】図１
2019030941.tif 000002
【特許請求の範囲】
【請求項１】
ロボットへの指令を出力する制御装置であって、
前記ロボットへの指令を学習する機械学習装置を備え、
前記機械学習装置は、
前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数として観測する状態観測部と、
前記ロボットと前記人との干渉の状態を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態と、前記ロボットへの指令とを関連付けて学習する学習部と、を備えることを特徴とする
制御装置。
【請求項２】
前記状態変数は、前記ロボットの状態を示すデータとして、前記ロボットのマニピュレータの姿勢及び移動速度を含み、前記人の状態を示すデータとして、前記人の侵入方向及び動線を含むことを特徴とする
請求項１記載の制御装置。
【請求項３】
前記判定データは、ロボットと人との衝突の有無、ロボットと人との相対距離、衝突時の力の大きさ、スループットのうち少なくともいずれか１つを含むことを特徴とする
請求項１に記載の制御装置。
【請求項４】
前記学習部は、
前記ロボットと前記人との干渉の状態に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する前記人の状態に対する前記ロボットへの指令の価値を表す関数を更新する価値関数更新部とを備えることを特徴とする
請求項１記載の制御装置。
【請求項５】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算することを特徴とする
請求項１記載の制御装置。
【請求項６】
前記学習部による学習結果に基づいて、前記ロボットへの指令を示す指令値を出力する意思決定部を更に備えることを特徴とする
請求項１記載の制御装置。
【請求項７】
前記学習部は、複数のロボットから得られた前記状態変数及び前記判定データを用いて、前記ロボットへの指令を学習することを特徴とする
請求項１記載の制御装置。
【請求項８】
前記機械学習装置は、クラウドサーバに存在することを特徴とする
請求項１記載の制御装置。
【請求項９】
ロボットへの指令を学習する学習装置であって、
前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数として観測する状態観測部と、
前記ロボットと前記人との干渉の状態を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態と、前記ロボットへの指令とを関連付けて学習する学習部と、を備えることを特徴とする
学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置及び学習装置に関し、特に人が接近した場合にロボットの動作を最適化することができる制御装置及び学習装置に関する。
【背景技術】
【０００２】
従来の制御装置は、ロボットの作業エリアに人が立ち入ると、ロボットが人にぶつからないよう、ロボットの動作を停止するか、安全速度に移行して動作を続行する制御を行う。例えば特許文献１には、ロボットと人間が接触したことを力センサにより検出し、課題な力の発生を防止する制御を行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０４０６２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のような制御によれば、ロボットの作業エリアに人が立ち入った場合にロボットの生産性は低下してしまう。そのような場合においても、例えば人にぶつからないようにロボットの軌道を変更したり、人にぶつかる恐れがなければ速度を落とさないようにするなどして、安全かつ効率良くロボットが作業を続けることができれば、生産性の低下は抑制できるはずである。
【０００５】
本発明はこのような問題点を解決するためになされたものであって、人が接近した場合にロボットの動作を最適化することができる制御装置及び学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施の形態にかかる制御装置は、ロボットへの指令を出力する制御装置であって、前記ロボットへの指令を学習する機械学習装置を備え、前記機械学習装置は、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数として観測する状態観測部と、前記ロボットと前記人との干渉の状態を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態と、前記ロボットへの指令とを関連付けて学習する学習部と、を備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記状態変数は、前記ロボットの状態を示すデータとして、前記ロボットのマニピュレータの姿勢及び移動速度を含み、前記人の状態を示すデータとして、前記人の侵入方向及び動線を含むことを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記判定データは、ロボットと人との衝突の有無、ロボットと人との相対距離、衝突時の力の大きさ、スループットのうち少なくともいずれか１つを含むことを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、前記ロボットと前記人との干渉の状態に関連する報酬を求める報酬計算部と、前記報酬を用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する前記人の状態に対する前記ロボットへの指令の価値を表す関数を更新する価値関数更新部とを備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、前記状態変数と前記判定データとを多層構造で演算することを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部による学習結果に基づいて、前記ロボットへの指令を示す指令値を出力する意思決定部を更に備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、複数のロボットから得られた前記状態変数及び前記判定データを用いて、前記ロボットへの指令を学習することを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記機械学習装置は、クラウドサーバに存在することを特徴とする。
本発明の一実施の形態にかかる学習装置は、ロボットへの指令を学習する学習装置であって、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数として観測する状態観測部と、前記ロボットと前記人との干渉の状態を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記ロボットの状態及び前記ロボットの周辺領域に存在する人の状態と、前記ロボットへの指令とを関連付けて学習する学習部と、を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、人が接近した場合にロボットの動作を最適化することができる制御装置及び学習装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】制御装置１の一形態を示す概略的な機能ブロック図である。
【図２】制御装置１の一形態を示す概略的な機能ブロック図である。
【図３】機械学習方法の一形態を示すフローチャートである。
【図４Ａ】機械学習方法の一形態を示すフローチャートである。
【図４Ｂ】機械学習方法の一形態を示すフローチャートである。
【図５Ａ】ニューロンを説明する図である。
【図５Ｂ】ニューラルネットワークを説明する図である。
【図６】制御装置２の一形態を示す概略的な機能ブロック図である。
【図７】制御装置を組み込んだシステム１７０の一形態を示す概略的な機能ブロック図である。
【図８】制御装置を組み込んだシステム１７０’の一形態を示す概略的な機能ブロック図である。
【発明を実施するための形態】
【０００９】
＜実施の形態１＞
以下、本発明の実施の形態を図面を用いて説明する。本発明の実施の形態にかかる制御装置１は、作業を行っているロボットに人が接近した場合におけるロボットへの指令を最適化することを特徴とする。ロボットへの指令には、例えば速度の選択に関するもの（速度継続、減速、停止）及び軌道の選択に関するもの（目的地までの軌道、右回り又は左回りの別）が含まれる。本実施の形態の制御装置１は、ロボットへの指令を最適化する手段として機械学習を利用する。
【００１０】
なお本実施の形態にかかる制御装置１は、人がぶつかったり接近したりするときに、減速したり停止したりすることが可能なロボットを制御対象とするものとする。例えば、協働ロボット（人に危害を加えないように出力を絞ったロボット）が含まれる。ロボットは移動ロボットでも良く、自ら移動は行わないマニピュレータでも良い。
【００１１】
図１のブロック図を用いて、制御装置１の構成について説明する。制御装置１は、機械学習装置１００を含む。機械学習装置１００は、ロボットの状態及びロボットの周辺領域に存在する人の状態に対する、ロボットへの指令を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ等）を含む。この場合、制御装置１が備える機械学習装置１００が学習するものは、ロボットの状態及びロボットの周辺領域に存在する人の状態と、ロボットへの指令との、相関性を表すモデル構造に相当する。
【００１２】
図１に機能ブロックで示すように、制御装置１が備える機械学習装置１００は、ロボットの状態及びロボットの周辺領域に存在する人の状態を環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、ロボットと人との干渉の状態とを判定データＤとして取得する判定データ取得部１０８と、状態変数Ｓと判定データＤとを用いて、ロボットの状態及びロボットの周辺領域に存在する人の状態と、ロボットへの指令とを関連付けて学習する学習部１１０とを備える。
【００１３】
状態観測部１０６は、例えば制御装置１が備えるプロセッサの一機能として構成できる。或いは状態観測部１０６は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。
【００１４】
状態変数Ｓのうちロボットの状態とは、動作中のロボットの状態を示すデータであって、ロボットのマニピュレータの姿勢（間接の角度の組合せ）、移動速度が含まれる。加えて、ロボットの位置、搬送ワークの位置等が含まれ得る。これらはいずれも制御装置１がロボット内部のセンサ等より直接観測可能なデータである。制御装置１は例えば制御周期毎にこれらのデータを取得し、状態観測部１０６に入力することができる。あるいは、所定の時間にわたって一定時間毎にこれらのデータを取得し、その時系列データのセットを状態変数Ｓとして入力しても良い。
【００１５】
状態変数Ｓのうちロボットの周辺領域に存在する人の状態とは、ロボットの作業領域（又はロボットの作業領域を含む任意の領域）内に存在する人の状態を示すデータであって、例えば作業領域に侵入した人の侵入方向（どこから侵入したか）、動線（どのようなルートで移動したか）が含まれる。加えて、人の位置、速度、外観（着衣の種類（作業着か背広か等）、帽子の色、装具の種類、顔、ＩＤの記載事項等）、持ち物（工具の種類、運搬中のワークの種類等）等が含まれ得る。制御装置１は、例えば図示しないビジョンセンサを使って作業領域内を撮影し、撮影画像に基づいて人をトラッキングして侵入方向や導線を特定したり、外観、持ち物を認識したりすることができる。なお画像に基づく認識処理は公知技術であるのでここでは詳細な説明を省略する。又は制御装置１は、例えば図示しないエリアセンサや圧電マット等を使って、人の侵入方向（どこから侵入したか）、動線（どのようなルートで移動したか）、位置、速度を検出しても良い。制御装置１は例えば制御周期毎にこれらのデータを取得し、状態観測部１０６に入力することができる。あるいは、所定の時間にわたって一定時間毎にこれらのデータを取得し、その時系列データのセットを状態変数Ｓとして入力しても良い。
【００１６】
ここで、人の外観に関するデータを使用するのは、人の外観と、その人が特定の機械に近づく可能性との間に相関が存在する可能性があるからである。外観には、その人の役職、役割、作業内容などが反映されている場合が多い。例えばラインの担当者、管理者、部外者は外観により区別され得る。そして、人の役職とその人の動きとの間には関連があり、例えばライン担当者は特定の機械に近づく可能性が高い等の相関関係が成立することがある。
【００１７】
判定データ取得部１０８は、例えば制御装置１のプロセッサの一機能として構成できる。或いは判定データ取得部１０８は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。
【００１８】
判定データＤであるロボットと人との干渉の状態とは、例えばロボットと人とが衝突したか否か、衝突時の力の大きさ、ロボットと人との相対距離を示すデータである。衝突の有無及び衝突時の力の大きさは、制御装置１が力センサなどを用いて観測可能なデータである。ロボットと人との相対距離は、制御装置１が図示しないビジョンセンサを使って作業領域内を撮影し、撮影画像に基づいて特定することが可能である。なお画像自動解析による物体認識及び物体間の距離推定処理は公知技術であるのでここでは詳細な説明を省略する。制御装置１は制御周期毎にこれらのデータを取得し、判定データ取得部１０８に入力することができる。あるいは、所定の時間にわたって一定時間毎にこれらのデータを取得し、その時系列データのセットを判定データＤとして入力しても良い。
【００１９】
学習部１１０に対して入力される状態変数Ｓは、学習部１１０による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。すなわち、制御装置１が備える機械学習装置１００が学習を進める間、環境においては、状態変数Ｓの取得、状態変数Ｓに基づいて調整されたロボットへの指令（軌道、速度）の出力、判定データＤの取得が繰り返し実施される。
【００２０】
学習部１１０は、例えば制御装置１のプロセッサの一機能として構成できる。或いは学習部１１０は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、ロボットの状態及びロボットの周辺領域に存在する人の状態に対応する、ロボットへの指令を学習する。学習部１１０は、状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を、制御周期毎に、又は任意の時間毎に反復実行することができる。
【００２１】
このような学習サイクルを繰り返すことにより、ロボットの状態及びロボットの周辺領域に存在する人の状態を示す状態変数Ｓと、ロボットへの指令との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には状態変数Ｓとロボットへの指令との相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。状態変数Ｓとロボットへの指令との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態（つまりロボットの状態及びロボットの周辺領域に存在する人の状態）に対して、ロボットへの指令をどのような値とするべきかという行動の選択（つまり意思決定）を行うために使用できるものとなる。
【００２２】
上記したように、制御装置１が備える機械学習装置１００は、状態観測部１０６が観測した状態変数Ｓと判定データ取得部１０８が取得した判定データＤとを用いて、学習部１１０が機械学習アルゴリズムに従い、ロボットへの指令を学習するものである。状態変数Ｓは、ロボットの状態及びロボットの周辺領域に存在する人の状態といった、外乱の影響を受け難いデータで構成され、また判定データＤは、ロボットと人との干渉の状態を取得することにより一義的に求められる。したがって、制御装置１が備える機械学習装置１００によれば、ロボットの状態及びロボットの周辺領域に存在する人の状態に応じたロボットへの指令を、演算や目算によらずに自動的に、しかも正確に求めることができるようになる。
【００２３】
そして、ロボットへの指令を、演算や目算によらずに自動的に求めることができれば、ロボットの状態及びロボットの周辺領域に存在する人の状態を把握するだけで、ロボットへの指令の適切な値を迅速に決定することができる。したがって、ロボットへの指令を効率よく決定することができる。
【００２４】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図２は、図１に示す制御装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置ではロボットへの指令の決定）を最適解として学習する手法である。
【００２５】
図２に示す制御装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに基づいてロボットへの指令が決定された場合におけるロボットと人との干渉の状態（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１１２と、報酬Ｒを用いて、ロボットへの指令の価値を表す関数Ｑを更新する価値関数更新部１１４とを備える。学習部１１０は、価値関数更新部１１４が関数Ｑの更新を繰り返すことによってロボットへの指令の最適解を学習する。
【００２６】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００２７】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓｔ及びａｔはそれぞれ時刻ｔにおける状態及び行動であり、行動ａｔにより状態はｓｔ＋１に変化する。ｒｔ＋１は、状態がｓｔからｓｔ＋１に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００２８】
【数１】
2019030941.tif 000003
【００２９】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまりロボットの状態及びロボットの周辺領域に存在する人の状態に対するロボットへの指令をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対するロボットへの指令の出力の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００３０】
報酬計算部１１２が求める報酬Ｒは、例えば、ロボットへの指令の出力を決定した後に、決定した指令に基づくロボットの制御を行ったときに、ロボットと人とが干渉しないと判定される場合に正（プラス）の報酬Ｒとし、ロボットと人とが干渉した又は干渉する恐れがあったと判定される場合に負（マイナス）の報酬Ｒとすることができる。
【００３１】
例えば、ロボットと人とが衝突した場合には−１０、ロボットと人とが所定の距離よりも近づいた場合には−５、ロボットと人とが所定の距離以上離れていた場合は＋５などと報酬Ｒを設定できる。これにより、関数Ｑは、ロボットと人とが干渉しにくい指令ほど価値が大きいと評価するようになる。加えて、報酬計算部１１２は、衝突時の力の大きさが上昇するほど評価が低くなるような報酬Ｒを与えることとしても良い。これにより、関数Ｑは、衝突時の衝撃が小さい指令ほど価値が大きいと評価するようになる。加えて、報酬計算部１１２は、ロボットのスループットが上昇するほど大きくなるような報酬Ｒを与えることとしても良い。これにより、関数Ｑは、ロボットと人とが干渉しにくく、かつスループットの高い指令ほど価値が大きいと評価するようになる。（図４Ａ、図４Ｂ参照）
【００３２】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態とロボットへの指令との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１１２は、判定データＤが分かればこれに対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００３３】
ロボットと人との干渉の状態に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（ロボットの状態及びロボットの周辺領域に存在する人の状態）とそれに対する行動（ロボットへの指令）との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、ロボットの状態及びロボットの周辺領域に存在する人の状態と、ロボットへの指令との関係が最適解に徐々に近づけられる。
【００３４】
図３を参照して、学習部１１０が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動としてロボットへの指令を無作為（ランダム）に選択する。次に価値関数更新部１１４は、ステップＳＡ０２で、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１４は、ステップＳＡ０４で、判定データＤに基づき、ロボットへの指令が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、ロボットへの指令が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１１０は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、ロボットへの指令の最適解の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００３５】
強化学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることもできる。図５Ａは、ニューロンのモデルを模式的に示す。図５Ｂは、図５Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００３６】
図５Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）に対する結果ｙを出力するものである。各入力ｘ１〜ｘ３には、この入力ｘに対応する重みｗ（ｗ１〜ｗ３）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆｋは活性化関数である。
【００３７】
【数２】
2019030941.tif 000004
【００３８】
図５Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００３９】
図５Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００４０】
図５Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００４１】
制御装置１が備える機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、ロボットへの指令（結果ｙ）を出力することができる。また、制御装置１が備える機械学習装置１００においては、ニューラルネットワークを強化学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００４２】
上記した制御装置１の構成は、プロセッサ１０１が実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、ロボットへの指令を学習する機械学習方法であって、コンピュータのＣＰＵが、ロボットの状態及びロボットの周辺領域に存在する人の状態を、環境の現在状態を表す状態変数Ｓとして観測するステップと、調整されたロボットへの指令に応じて得られたロボットと人との干渉の状態を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、ロボットの状態及びロボットの周辺領域に存在する人の状態と、ロボットへの指令とを関連付けて学習するステップとを有する。
【００４３】
＜実施の形態２＞
図６は、実施の形態２による制御装置２を示す。制御装置２は、機械学習装置１２０と、状態観測部１０６が観測する状態変数Ｓであるロボットの状態及びロボットの周辺領域に存在する人の状態を、状態データＳ０として取得する状態データ取得部３とを備える。状態データ取得部３は、制御装置２から状態データＳ０を取得することができる。
【００４４】
制御装置２が有する機械学習装置１２０は、ロボットへの指令を機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ１０１等）に加えて、学習結果に基づいて求めたロボットへの指令を制御装置２に出力するためのソフトウェア（演算アルゴリズム等）及びハードウェア（プロセッサ１０１等）を含むものである。制御装置２が含む機械学習装置１２０は、１つの共通のプロセッサが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
【００４５】
意思決定部１２２は、例えば制御装置２が備えるプロセッサの一機能として構成できる。或いは意思決定部１２２は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。意思決定部１２２は、学習部１１０が学習した結果に基づいて、ロボットの状態及びロボットの周辺領域に存在する人の状態に対する、ロボットへの指令を含む指令値Ｃを生成し、出力する。意思決定部１２２が指令値Ｃを制御装置２に対して出力した場合、これに応じて、環境の状態が変化する。
【００４６】
状態観測部１０６は、意思決定部１２２による環境への指令値Ｃを出力した後に変化した状態変数Ｓを次の学習周期において観測する。学習部１１０は、変化した状態変数Ｓを用いて、例えば価値関数Ｑ（すなわち行動価値テーブル）を更新することで、ロボットへの指令を学習する。
【００４７】
意思決定部１２２は、学習結果に基づいて求めたロボットへの指令を示す指令値Ｃを制御装置２へと出力する。この学習周期を繰り返すことにより、機械学習装置１２０はロボットへの指令の学習を進め、自身が決定するロボットへの指令の信頼性を徐々に向上させる。
【００４８】
上記構成を有する制御装置２が備える機械学習装置１２０は、前述した機械学習装置１００と同等の効果を奏する。特に機械学習装置１２０は、意思決定部１２２の出力によって環境の状態を変化させることができる。他方、機械学習装置１００では、学習部１１０の学習結果を環境に反映させるための意思決定部に相当する機能を、外部装置に求めることができる。
【００４９】
＜その他の実施の形態＞
図７は、ロボット１６０を備えた一実施形態によるシステム１７０を示す。システム１７０は、同種の構成を有する複数のロボット１６０、１６０’と、それらロボット１６０、１６０’を互いに接続する有線／無線のネットワーク１７２とを備え、複数のロボット１６０のうち少なくとも１つが、上記した制御装置２を備えるロボット１６０として構成される。またシステム１７０は、制御装置２を備えないロボット１６０’を含むことができる。ロボット１６０、１６０’は、同じ目的の作業に必要とされる機構及び作業領域など周辺環境を有する。
【００５０】
上記構成を有するシステム１７０は、複数のロボット１６０、１６０’のうちで制御装置２を備えるロボット１６０が、学習部１１０の学習結果を用いて、ロボットの状態及びロボットの周辺領域に存在する人の状態に対する、ロボットへの指令を、演算や目算によらずに自動的に、しかも正確に求めることができる。また、少なくとも１つのロボット１６０の制御装置２が、他の複数のロボット１６０、１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全てのロボット１６０、１６０’に共通するロボットへの指令を学習し、その学習結果を全てのロボット１６０、１６０’が共有するように構成できる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、ロボットへの指令の学習の速度や信頼性を向上させることができる。
【００５１】
図８は、ロボット１６０’を備えた他の実施形態によるシステム１７０’を示す。システム１７０’は、機械学習装置１２０（又は１００）と、同種の構成を有する複数のロボット１６０’と、それらロボット１６０’と機械学習装置１２０（又は１００）とを互いに接続する有線／無線のネットワーク１７２とを備える。
【００５２】
上記構成を有するシステム１７０’は、機械学習装置１２０（又は１００）が、複数のロボット１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全てのロボット１６０’に共通するロボットの状態及びロボットの周辺領域に存在する人の状態に対するロボットへの指令を学習し、その学習結果を用いて、ロボットの状態及びロボットの周辺領域に存在する人の状態に対するロボットへの指令を、演算や目算によらずに自動的に、しかも正確に求めることができる。
【００５３】
システム１７０’は、機械学習装置１２０（又は１００）が、ネットワーク１７２に用意されたクラウドサーバ等に存在する構成を有することができる。この構成によれば、複数のロボット１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数のロボット１６０’を機械学習装置１２０（又は１００）に接続することができる。
【００５４】
システム１７０、１７０’に従事する作業者は、機械学習装置１２０（又は１００）による学習開始後の適当な時期に、機械学習装置１２０（又は１００）によるロボットへの指令の学習の到達度（すなわちロボットへの指令の信頼性）が要求レベルに達したか否かの判断を実行することができる。
【００５５】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００５６】
例えば、機械学習装置１００，１２０が実行する学習アルゴリズム、機械学習装置１２０が実行する演算アルゴリズム、制御装置１、２が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００５７】
また、上記した実施形態では制御装置１（又は２）と機械学習装置１００（又は１２０）が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００（又は１２０）は制御装置１（又は２）が備えるプロセッサと、記憶装置に記憶されるシステム・プログラムにより実現するようにしても良い。
【符号の説明】
【００５８】
１，２  制御装置
３  状態データ取得部
１００  機械学習装置
１０６  状態観測部
１０８  判定データ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２０  機械学習装置
１２２  意思決定部
１６０，１６０’  ロボット
１７０，１７０’  システム
１７２  ネットワーク
【図１】
2019030941.tif 000005
【図２】
2019030941.tif 000006
【図３】
2019030941.tif 000007
【図４Ａ】
2019030941.tif 000008
【図４Ｂ】
2019030941.tif 000009
【図５Ａ】
2019030941.tif 000010
【図５Ｂ】
2019030941.tif 000011
【図６】
2019030941.tif 000012
【図７】
2019030941.tif 000013
【図８】
2019030941.tif 000014