(57)【要約】【課題】ユーザーの作業負担を大きくすることなく、ロボットアームにおける効率のよい行動を計画できるようにする。【解決手段】目標到達位置へ到達するまでのロボットアーム１１の行動過程において、状態観測部２１２により観測される、ある時刻におけるロボットアーム１１の状態と、当該状態からのロボットアーム１１の行動と、当該行動後のロボットアーム１１の状態とを関連付けて、ロボットアーム１１の行動を学習する学習部２１３と、を備え、更に、学習部２１３は、ロボットアーム１１の動いた軌跡、及びアーム駆動部１６の駆動に応じて報酬を計算する報酬計算部２１３Ａと、報酬計算部２１３Ａにより計算された報酬に基づいて、ロボットアーム１１のある状態からある行動を選択する価値を示す行動価値関数を更新する関数更新部２１３Ｂと、を備える。【選択図】図２
2020082314.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節を有し、三次元空間を自在に移動可能なロボットアームと、
前記複数の関節それぞれに設けられた、前記関節を駆動する関節駆動部と、
前記ロボットアームの位置を含む、当該ロボットアームの状態を検出する状態検出部と、を備えるロボットの行動を学習する学習装置であって、
前記状態検出部による検出結果に基づいて、前記ロボットアームの状態を観測する状態観測部と、
予め設定された目標到達位置へ到達するまでの前記ロボットアームの行動過程において、前記状態観測部により観測される、ある時刻における前記ロボットアームの状態と、当該状態からの前記ロボットアームの行動と、当該行動後の前記ロボットアームの状態とを関連付けて、前記ロボットアームの行動を学習する学習部と、を備え、
前記学習部は、
前記ロボットアームの動いた軌跡、及び前記関節駆動部の駆動に応じて報酬を計算する報酬計算部と、
前記報酬計算部により計算された前記報酬に基づいて、前記ロボットアームのある状態からある行動を選択する価値を示す行動価値関数を更新する関数更新部と、を備える学習装置。
【請求項２】
前記状態観測部は、前記状態検出部による検出結果に基づいて、前記ロボットアームの先端部の位置を観測し、
前記報酬計算部は、前記ロボットアームの前記先端部と前記目標到達位置との距離が短くなるにつれて、前記報酬を高くして前記計算を行う請求項１に記載の学習装置。
【請求項３】
前記状態検出部は、前記関節駆動部それぞれのトルクを検出し、
前記状態観測部は、前記状態検出部による検出結果に基づいて、前記関節駆動部それぞれのトルクを観測し、
前記報酬計算部は、前記関節駆動部それぞれのトルクの総和が大きくなるにつれて、前記報酬を小さくして前記計算を行う請求項１又は請求項２に記載の学習装置。
【請求項４】
前記報酬計算部は、前記関節駆動部の駆動時間が長くなるにつれて、前記報酬を小さくして前記計算を行う請求項１又は請求項２に記載の学習装置。
【請求項５】
前記ロボットアームの動いた軌跡及び前記関節駆動部の駆動それぞれに対する前記報酬の重みのユーザー設定を受け付ける設定受付部を更に備え、
前記報酬計算部は、前記設定受付部が受け付けたユーザー設定の重みに従って、前記報酬を計算する請求項１乃至請求項４のいずれかに記載の学習装置。
【請求項６】
請求項１乃至請求項５のいずれかに記載の学習装置と、
前記学習装置による学習結果に基づいて、前記ロボットアームに行わせる行動を選択する意思決定部と、を備え、
前記意思決定部による意思決定に基づいて、前記ロボットアームの行動を制御するロボット制御装置。
【請求項７】
請求項６に記載のロボット制御装置と、
前記ロボットと、を備えるロボット制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの行動を学習する学習装置、ロボット制御装置、及びロボット制御システムに関する。
【背景技術】
【０００２】
ロボットアームを構成する各関節の駆動を制御するロボット制御装置は、ロボットアームの先端部の現在位置と、目標到達位置（例えば、ロボットアームの作業対象となるワークの存在位置）とからロボットアームの目標軌跡を生成し、当該目標軌跡に基づいて、各時刻における各関節の回転角を計算し、計算した結果に従って、各関節を駆動する駆動モーターを制御するのが一般的である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６２４０６８９号公報
【特許文献２】特許第５５２８２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ロボットアームの目標軌跡は、ロボットアームの先端部の現在位置と、目標到達位置とから、コンピューターが計算することによって生成することができるが、効率のよい目標軌跡が生成されるとは限らない。
【０００５】
また、ロボットは人間がプログラミングしたプログラムに従って、その通りに行動するが、人間が行うのと同じ作業手順となるように、ロボットの行動をプログラミングしてしまうと、効率が悪い場合がある。それは、ロボットにはロボットアームの可動域などの制約事項があるからである。
【０００６】
また、効率のよいプログラミングができたとしても、目標到達位置が変更されるなど、何かしらの変更があれば、プログラミングし直さなければならず、ユーザーの作業負担が大きくなる。また、ロボットの機種が変わり、機械の仕様が変わった場合にも、やはり再プログラミングが必要になる。
【０００７】
ところで、目標到達位置へ到達するまでのロボットアームにおける効率のよい行動（例えば、移動距離が短い、電力消費量が少ない）を計画するには、ロボットの動作を学習させるという方法が考えられる。
【０００８】
上記特許文献１に、ロボットと人が協働するが、人の行動パターンが多いのでそれに最適なロボットの制御方法の設定が難しいという課題から、ロボットの行動時間と人の負担（ロボットの加速度）を基に、予め定められた移動点におけるロボットの行動価値を更新する強化学習方法により最適な制御方法を設定するという内容が記載されている。
【０００９】
上記特許文献２に、ロボットなどの制御に採用されている、現状の強化学習では、教示された内容を試行錯誤しながら、自己の状況に合わせて効率的に学習することができないという課題から、一連の状態・行動の集合であるイベントリストをデータベース管理し、効率的に行動価値を探索するという内容が記載されている。
【００１０】
上記特許文献１，２のいずれにも、ロボットの動作を学習することについての記載はあるが、目標到達位置へ到達するまでのロボットアームにおける効率のよい行動を計画することについての記載はない。
【００１１】
本発明は、上記の事情に鑑みなされたものであり、ユーザーの作業負担を大きくすることなく、ロボットアームにおける効率のよい行動を計画できるようにすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一局面に係る学習装置は、複数の関節を有し、三次元空間を自在に移動可能なロボットアームと、前記複数の関節それぞれに設けられた、前記関節を駆動する関節駆動部と、前記ロボットアームの位置を含む、当該ロボットアームの状態を検出する状態検出部と、を備えるロボットの行動を学習する学習装置であって、前記状態検出部による検出結果に基づいて、前記ロボットアームの状態を観測する状態観測部と、予め設定された目標到達位置へ到達するまでの前記ロボットアームの行動過程において、前記状態観測部により観測される、ある時刻における前記ロボットアームの状態と、当該状態からの前記ロボットアームの行動と、当該行動後の前記ロボットアームの状態とを関連付けて、前記ロボットアームの行動を学習する学習部と、を備え、更に、前記学習部は、前記ロボットアームの動いた軌跡、及び前記関節駆動部の駆動に応じて報酬を計算する報酬計算部と、前記報酬計算部により計算された前記報酬に基づいて、前記ロボットアームのある状態からある行動を選択する価値を示す行動価値関数を更新する関数更新部と、を備える。
【００１３】
また、本発明の一局面に係るロボット制御装置は、上記学習装置と、前記学習装置による学習結果に基づいて、前記ロボットアームに行わせる行動を選択する意思決定部と、を備え、前記意思決定部による意思決定に基づいて、前記ロボットアームの行動を制御する。
【００１４】
また、本発明の一局面に係るロボット制御システムは、上記ロボット制御装置と、前記ロボットと、を備える。
【発明の効果】
【００１５】
本発明によれば、実際の学習結果から、ロボットアームのある状態から価値の高い行動を自動的に選択することができるので、ユーザーの作業負担を大きくすることなく、ロボットアームの先端部が目標到達位置へ到達するまでの効率のよい行動を計画することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１実施形態に係る学習装置を有するロボット制御装置を含んで構成されるロボット制御システムの主要内部構成を概略的に示した機能ブロック図である。
【図２】ロボット制御システムを構成する各構成間でのデータ等の流れを説明するための説明図である。
【図３】制御の対象となるロボットを模式的に示した外観図である。
【図４】ロボット制御装置の制御ユニットで行われる処理動作の一例を示したフローチャートである。
【図５】第２実施形態に係る学習装置を有するロボット制御装置を含んで構成されるロボット制御システムの主要内部構成を概略的に示した機能ブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の一実施形態に係る学習装置、ロボット制御装置、及びロボット制御システムについて図面を参照して説明する。図１は、第１実施形態に係る学習装置を有するロボット制御装置を含んで構成されるロボット制御システムの主要内部構成を概略的に示した機能ブロック図である。図２は、ロボット制御システムを構成する各構成間でのデータ等の流れを説明するための説明図である。図３は、制御の対象となるロボットを模式的に示した外観図である。
【００１８】
ロボット制御システム１は、ロボット１０と、ロボット１０の動作を制御するロボット制御装置２０と、を含んで構成されている。
【００１９】
ロボット１０は、図３に示すように、人間の腕と同様の運動機能を持つマニピュレーターで、三次元空間を自在に移動可能なロボットアーム１１を備え、ロボットアーム１１の根元は台座１４に固定されている。ロボットアーム１１は、複数の関節１２Ａ乃至１２Ｃ（以降、まとめて「関節１２」とも称す）と、関節１２どうしをつなぐリンク１３Ａ，１３Ｂとを有する。
【００２０】
また、ロボットアーム１１は、その先端部１５にエンドエフェクターが着脱交換可能に構成されている。図３中では、エンドエフェクターとして、平行に配置された２つの爪部４１Ａ，４１Ｂを有するグリッパー４１が取り付けられている。グリッパー４１は、例えば、箱４３に入れられたワーク４２を把持して、ワーク４２を別の場所へ運ぶことに使用される。また、グリッパー４１には、空気圧により爪部４１Ａ，４１Ｂを駆動するグリッパー駆動部４１Ｃ（例えば、シリンダー）が内蔵されている。
【００２１】
ロボット１０は、関節１２それぞれに設けられた、関節１２（すなわち、ロボットアーム１１）を駆動するアーム駆動部１６Ａ乃至１６Ｃ（以降、まとめて「アーム駆動部１６」とも称す）と、関節１２それぞれに設けられた、関節１２の回転角を検出する回転角検出部１７Ａ乃至１７Ｃ（以降、まとめて「回転角検出部１７」とも称す）と、アーム駆動部１６それぞれのトルクを検出するトルクセンサー１８Ａ乃至１８Ｃ（以降、まとめて「トルクセンサー１８」とも称す）と、ロボット１０の上方に設けられ、当該ロボット１０の作業環境を検出する作業環境検出部１９と、を備える。なお、アーム駆動部１６、回転角検出部１７、及び作業環境検出部１９としてはそれぞれ、例えば、モーター、エンコーダー、カメラが挙げられる。
【００２２】
また、アーム駆動部１６は、特許請求の範囲における関節駆動部の一例で、回転角検出部１７及びトルクセンサー１８は、特許請求の範囲における状態検出部の一例である。ロボットアーム１１の先端部１５の位置は、関節１２Ａ乃至１２Ｃそれぞれの角度から割り出すことができる。なお、上記状態検出部としては、作業環境検出部１９を利用することも可能である。
【００２３】
ロボット制御装置２０は、制御ユニット２１と、操作部２２と、表示部２３と、記憶部２４と、外部インターフェイス部（外部Ｉ／Ｆ）２５と、通信インターフェイス部（通信Ｉ／Ｆ）２６と、を備える。
【００２４】
操作部２２は、キーボードやマウス等から構成され、制御ユニット２１にコマンドや文字を入力したり、表示部２３における画面上のポインターを操作したりする。表示部２３は、制御ユニット２１からの応答やデータ結果を表示する。操作部２２は、例えば、ロボットアーム１１の先端部１５の目標到達位置の指示入力に用いられる。なお、目標到達位置については、ユーザーからの指示ではなく、作業環境検出部１９が撮影して得られた画像から読み取ったワーク４２の位置から設定することも可能である。
【００２５】
記憶部２４は、ＨＤＤ（Hard Disk Drive）などの記憶装置であり、ロボット制御装置２０の動作に必要なプログラムやデータを記憶し、後述する報酬テーブルを記憶する報酬テーブル記憶部２４１を含む。
【００２６】
外部インターフェイス部２５は、外部装置と接続するためのもので、ロボット制御装置２０は、外部インターフェイス部２５を介して、ロボット１０を構成するアーム駆動部１６、回転角検出部１７、トルクセンサー１８、作業環境検出部１９、及びグリッパー駆動部４１Ｃと接続されている。
【００２７】
通信インターフェイス部２６は、不図示のＬＡＮ（Local Area Network）チップなどの通信モジュールを備えるインターフェイスで、外部装置３０との間で通信を行う。ロボット制御装置２０は、通信インターフェイス部２６を介して、例えば、他のロボット制御装置との間でデータの送受信を行う。
【００２８】
制御ユニット２１は、プロセッサー、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、及び専用のハードウェア回路を含んで構成される。プロセッサーは、例えばＣＰＵ（Central Processing Unit）、ＡＳＩＣ（Application Specific Integrated Circuit）、又はＭＰＵ（Micro Processing Unit）等である。制御ユニット２１は、制御部２１１と、状態観測部２１２と、学習部２１３と、意思決定部２１４と、行動計画部２１５と、アーム指示部２１６と、グリッパー指示部２１７と、を備えている。なお、本発明に係る学習装置は、状態観測部２１２及び学習部２１３を含んで構成される。
【００２９】
制御ユニット２１は、記憶部２４に記憶されている制御プログラムに従った上記プロセッサーによる動作により、制御部２１１、状態観測部２１２、学習部２１３、意思決定部２１４、行動計画部２１５、アーム指示部２１６、及びグリッパー指示部２１７として機能する。但し、制御ユニット２１等の上記の各構成は、制御ユニット２１による制御プログラムに基づく動作によらず、それぞれハードウェア回路により構成することも可能である。以下、特に触れない限り、各実施形態について同様である。
【００３０】
制御部２１１は、ロボット制御装置２０の全体的な動作制御を司る。制御部２１１は、操作部２２、表示部２３、記憶部２４、外部インターフェイス部２５、及び通信インターフェイス部２６と接続されており、接続されている上記各構成の動作制御や、各構成との間での信号またはデータの送受信を行う。
【００３１】
状態観測部２１２は、状態検出部としての回転角検出部１７、トルクセンサー１８、及び作業環境検出部１９による検出結果に基づいて、ロボットアーム１１の状態を観測するもので、図２に示すように、物理量処理部２１２Ａと、画像処理部２１２Ｂと、を備える。
【００３２】
物理量処理部２１２Ａは、回転角検出部１７により検出された関節１２それぞれの回転角を示す物理量を処理して、関節１２の回転角の大きさを算出すると共に、トルクセンサー１８により検出されたアーム駆動部１６（駆動モーター）それぞれのトルクを示す物理量を処理して、アーム駆動部１６のトルクを算出し、算出した結果を学習部２１３へ出力する。画像処理部２１２Ｂは、作業環境検出部１９が撮影した画像を処理し、ロボットアーム１１の行動に必要な情報を抽出し、抽出した結果を学習部２１３へ出力する。なお、アーム駆動部１６（駆動モーター）のトルクについては、トルクセンサー１８ではなく、モーター電流から換算して検出するようにしてもよい。
【００３３】
学習部２１３は、目標到達位置へ到達するまでのロボットアーム１１の行動過程において、状態観測部２１２により観測される、ある時刻におけるロボットアーム１１の状態と、当該状態からのロボットアーム１１の行動と、当該行動後のロボットアーム１１の状態とを関連付けて、ロボットアーム１１の行動を学習する。
【００３４】
学習部２１３が実行する学習アルゴリズムとしては、例えば、強化学習などの機械学習としての公知のアルゴリズムを採用することができ、学習部２１３は、図２に示すように、報酬計算部２１３Ａと、関数更新部２１３Ｂと、を備える。
【００３５】
強化学習のアルゴリズムとしては、例えば、Ｑ学習が挙げられる。Ｑ学習は、ある状態ｓの下で、行動ａを選択した場合の行動の価値を示す関数Ｑ（ｓ，ａ）を学習する方法である。ある状態ｓのときに、関数Ｑが最も高くなる行動ａが最適な行動となるが、学習を開始した時点では、状態ｓと行動ａとの相関性が分からないので、試行錯誤で、ある状態ｓの下で種々の行動ａを選択し、その時に与えられる報酬ｒを使って、関数Ｑを反復して更新し、関数Ｑを最適なものに近付ける。
【００３６】
報酬計算部２１３Ａは、状態ｓで行動ａを選択した結果として環境（つまり、状態ｓ）が変化したときに、その環境の変化によって与えられる報酬ｒを計算するもので、ロボットアーム１１の動いた軌跡、及びアーム駆動部１６の駆動に応じて報酬を計算する。
【００３７】
以下の数式１は報酬を与えるための計算式の一例で、２以上の項の和で表現される。
【００３８】
報酬ｒ＝ｗ１×ｒ１＋ｗ２×ｒ２  …  数式１
【００３９】
ｒ１はロボットアーム１１が動いた軌跡による報酬を示し、ｒ２はアーム駆動部１６（駆動モーター）それぞれの駆動による報酬を示している。ｗ１，ｗ２は各項それぞれの重みを示している。報酬ｒ１，ｒ２は、以下の数式３乃至５が示すように−１〜＋１の間で正規化した値で、その計算結果に重みとしてｗ１、ｗ２を掛け算した値の和が報酬ｒである。
【００４０】
ｒ１＝（−２×距離ｄ）／ｋ１＋１  （０＜ｄ≦ｋ１）    …  数式２
【００４１】
ｒ１＝−１                        （ｋ１＜ｄ）        …  数式３
【００４２】
ｒ２＝（−２×トルクｔ）／ｋ２＋１  （０＜ｔ≦ｋ２）  …  数式４
【００４３】
ｒ２＝−１                          （ｋ２＜ｔ）      …  数式５
【００４４】
ｋ１，ｋ２は定数で、定数ｋ１としては、例えば、ロボットアーム１１の行動開始位置から目標到達位置までを直線で結んだ最短経路の距離が挙げられる。
【００４５】
距離ｄは、ロボットアーム１１の先端部１５の位置と目標到達位置との距離を示し、距離ｄが短くなるにつれて、報酬ｒ１は大きくなる。ロボットアーム１１が動いた軌跡については、回転角検出部１７で検出される関節１２それぞれの回転角から求めてもよいし、作業環境検出部１９で検出される画像から求めてもよい。
【００４６】
トルクｔは、アーム駆動部１６それぞれのトルクの総和を示し、トルクｔが大きくなるにつれて、報酬ｒ２は小さくなる。つまり、報酬ｒ２は、アーム駆動部１６の駆動電力に応じて計算される報酬である。
【００４７】
また、ここではアーム駆動部１６の駆動に応じた報酬ｒ２として、アーム駆動部１６のトルクを用いて説明しているが、アーム駆動部１６の駆動時間をカウントし、駆動時間の長さを用いて、駆動時間が長くなるにつれて、報酬ｒ２が小さくなるように、報酬ｒ２を計算するようにしてもよい。
【００４８】
関数更新部２１３Ｂは、より高い報酬ｒが得られる行動ａを選択しやすくなるように関数Ｑを更新するもので、報酬計算部２１３Ａにより計算された報酬ｒに基づいて、ロボットアーム１１のある状態からある行動を選択する価値を示す行動価値関数を更新する。そして、ロボットアーム１１の行動を繰り返す中で、行動価値関数を更新していくことで、学習部２１３は、ある状態に対する最適な行動を学習し、行動価値関数は収束する。
【００４９】
学習部２１３による学習結果としての行動価値関数については、すべての状態と行動との組に対して、その価値を報酬テーブル（行動価値テーブル）として、保持しておくことが可能で、学習部２１３は、上記報酬テーブルを報酬テーブル記憶部２４１に保存する。
【００５０】
ロボット制御装置２０の制御ユニット２１における処理動作の一例について、図４に示したフローチャートに基づいて説明する。なお、この処理動作は、ロボットアーム１１の動作過程においてわれる処理動作である。
【００５１】
状態観測部２１２が、回転角検出部１７、トルクセンサー１８、及び作業環境検出部１９による検出結果に基づいて、ロボットアーム１１の状態を観測し（Ｓ１）、報酬計算部２１３Ａが、状態観測部２１２により観測される、ロボットアーム１１の状態に基づいて、ロボットアーム１１の動いた軌跡、及びアーム駆動部１６の駆動に応じて報酬を計算する（Ｓ２）。
【００５２】
続いて、関数更新部２１３Ｂが、報酬計算部２１３Ａにより計算された報酬に基づいて、行動価値関数を更新し（Ｓ３）、その後、処理はＳ１へ戻る。すなわち、Ｓ１乃至Ｓ３を繰り返すことにより、ロボット制御装置２０は、行動価値関数（報酬テーブル）の更新を継続して行う。
【００５３】
意思決定部２１４は、学習部２１３による学習結果（行動価値関数）に基づいて、ロボットアーム１１に行わせる行動を選択する。例えば、意思決定部２１４は、ある状態から最も価値のある行動を選択し、選択した内容を行動計画部２１５に出力する。
【００５４】
行動計画部２１５は、意思決定部２１４から入力した内容に基づいて、ロボット１０の行動計画を生成し、生成した行動計画を示す情報を、その情報の内容に応じて、アーム行動指示部２１６と、グリッパー行動指示部２１７とに出力する。例えば、行動計画部２１５は、ロボットアーム１１の先端部１５の軌跡を生成する。
【００５５】
アーム行動指示部２１６は、行動計画部２１５から入力した行動計画を示す情報に応じて、ロボットアーム１１の関節１２を駆動するアーム駆動部１６の動作を制御する駆動信号を生成し、アーム駆動部１６の駆動を制御する。
【００５６】
グリッパー行動指示部２１７は、行動計画部２１５から入力した行動計画を示す情報に応じて、グリッパー駆動部４１Ｃの動作を制御する駆動信号を生成し、グリッパー駆動部４１Ｃの駆動を制御する。
【００５７】
上記実施形態によれば、実際の学習結果から、ロボットアーム１１のある状態から価値の高い行動を自動的に選択することができるので、ユーザーの作業負担を大きくすることなく、ロボットアーム１１の先端部１５が目標到達位置へ到達するまでの効率のよい行動を計画することが可能となる。また、ロボットアーム１１の行動を学習するので、機器ごとのバラツキや、機種ごとの構成の違いにも柔軟に対応することが可能となるので、ユーザーの作業負担が大きくなるのを防ぐこともできる。
【００５８】
また、報酬テーブル記憶部２４１で保存されている報酬テーブルを、通信インターフェイス部２６を介して、他のロボット制御装置へ送信し、当該他のロボット制御装置での初期テーブルとして用いるようにすれば、学習効率を高めることができる。また、報酬テーブルについては、ネットワーク上で保存して、他のロボット制御装置との間で共有することも可能である。
【００５９】
図５は、第２実施形態に係る学習装置を有するロボット制御装置を含んで構成されるロボット制御システムの主要内部構成を概略的に示した機能ブロック図である。図１に示したロボット制御装置１とは、制御ユニット２１が設定受付部２１８を備える点で相違する。
【００６０】
設定受付部２１８は、ロボットアームの動いた軌跡及び前記関節駆動部の駆動それぞれに対する上記報酬の重みのユーザー設定を、ユーザーによる操作部２２の操作に応じて受け付ける。制御ユニット２１は、記憶部２４に記憶されている制御プログラムに従った上記プロセッサーによる動作により、更に設定受付部２１８としても機能する。但し、設定受付部２１８は、制御ユニット２１による制御プログラムに基づく動作によらず、ハードウェア回路により構成することも可能である。
【００６１】
報酬計算部２１３Ａは、設定受付部２１８が受け付けたユーザー設定の重みに従って、報酬ｒを計算する。例えば、アーム駆動部１６（駆動モーター）による消費電力量の削減よりも、ロボットアーム１１の動く距離を短くすること（つまり、作業時間を短くすること）をユーザーが優先したい場合は、重みｗ１を大きく設定すれば、数式１の１項目の変化量を捉えやすくなり、ユーザーの希望する行動価値関数を得ることが可能となる。
【００６２】
従って、上記第２実施形態によれば、個別の重み付け設定により、ユーザー好みの行動価値関数を得て、ロボットアーム１１をユーザー好みに行動させることが可能となる。
【００６３】
ところで、学習部２１３による学習を継続すると、最新の行動価値関数（報酬テーブル）よりも、過去の報酬テーブルの方が、より適切なものであったとか、ユーザーの好みに合っていた、といったことが生じることが考えられる。
【００６４】
そこで、別の実施形態では、複数の報酬テーブルを報酬テーブル記憶部２４１で保存できるようにし、例えば、学習部２１３は、操作部２２を介して報酬テーブルの保存のユーザー指示を受け付けると、その時に使用している報酬テーブルを、報酬テーブル記憶部２４１に保存させ、操作部２２を介して過去の報酬テーブルの使用のユーザー指示を受け付けると、当該過去の報酬テーブルを使用するようにする。
【００６５】
学習部２１３によって十分な学習が行われ、行動価値関数（報酬テーブル）が収束していれば、それ以上、学習を行う必要はないが、ロボット１０の作業環境が大きく変化した場合には、再学習を行うのが好ましい。例えば、温度や湿度が大きく変化すると、ロボット１０を構成するハードウェアの特性が変わる場合があり、それまでの報酬テーブルではロボットアーム１１の最適な行動が得られないおそれがある。
【００６６】
そこで、更なる別の実施形態では、作業環境検出部１９として、温度センサーや湿度センサーを設け、ロボット１０の電源をオフする時の温度や湿度を測定して保持しておき、ロボット１０の電源をオンした時の温度や湿度と比較して、予め定められた閾値以上の差が生じている場合には、学習部２１３が再学習を行うようにする。
【００６７】
また、作業環境に応じた報酬テーブルを獲得し、作業環境それぞれに応じた報酬テーブルを報酬テーブル２４１に保存させておき、意思決定部２１４は、作業環境に応じた報酬テーブルを報酬テーブル記憶部２４１から読み出して、ロボットアーム１１に行わせる行動を選択するようにしてもよい。
【００６８】
なお、上記実施形態では、ロボット制御装置２０が本発明に係る学習装置を有する場合について説明しているが、学習装置を構成する各機能については、ロボット制御装置２０に外付けされていてもよい。その場合には、ロボット制御装置２０と学習装置とは、ＬＡＮチップなどの通信モジュールを備えるインターフェイスを備え、互いにデータの送受信が可能となるように接続されるものとする。
【００６９】
本発明は上記実施の形態の構成に限られず種々の変形が可能である。また、上記実施形態では、図１乃至図５を用いて上記実施形態により示した構成及び処理は、本発明の一実施形態に過ぎず、本発明を当該構成及び処理に限定する趣旨ではない。
【符号の説明】
【００７０】
１        ロボット制御システム
１０      ロボット
１１      ロボットアーム
１２      関節
１５      先端部
１６      アーム駆動部
１７      回転角検出部
２０      ロボット制御装置
４１      グリッパー
２１１    制御部
２１２    状態観測部
２１３    学習部
２１３Ａ  報酬計算部
２１３Ｂ  関数更新部
２１５    行動計画部
２１８    設定受付部
【図１】
2020082314.tif 000003
【図２】
2020082314.tif 000004
【図３】
2020082314.tif 000005
【図４】
2020082314.tif 000006
【図５】
2020082314.tif 000007