IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日立金属株式会社の特許一覧

特開2023-175199学習装置、制御装置、ロボットシステム、学習方法、およびプログラム
<>
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図1
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図2
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図3
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図4
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図5
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図6
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図7
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図8
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図9
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図10
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図11
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図12
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図13
  • 特開-学習装置、制御装置、ロボットシステム、学習方法、およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175199
(43)【公開日】2023-12-12
(54)【発明の名称】学習装置、制御装置、ロボットシステム、学習方法、およびプログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20231205BHJP
【FI】
B25J13/00 Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022087530
(22)【出願日】2022-05-30
(71)【出願人】
【識別番号】000005083
【氏名又は名称】株式会社プロテリアル
(74)【代理人】
【識別番号】100096091
【弁理士】
【氏名又は名称】井上 誠一
(72)【発明者】
【氏名】石井 貴大
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS10
3C707LS15
3C707LS20
3C707LW08
3C707LW12
3C707MS08
(57)【要約】
【課題】様々な移動先に対する最適な軌道を容易に生成することが可能な学習装置等を提供する。
【解決手段】学習装置3は、アームおよび先端部を備えたロボット2の軌道を生成する数理モデル5であって、1以上のハイパーパラメータhが定義された数理モデル5を記憶し、ロボット2の可動範囲内においてロボット2の先端部の目標座標をランダムに設定する位置設定部241と、数理モデル5を用いて、先端部が目標座標まで移動するためのロボット2の軌道を生成する軌道生成部242と、仮想空間内または実空間内において軌道に従ってロボット2を動作させる動作部243と、ロボット2の動作結果に対する報酬を所定の基準により算出する報酬算出部22と、報酬に基づいて数理モデル5のハイパーパラメータhを更新する更新部23と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶する記憶部と、
前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定部と、
前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部と、
仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作部と、
前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出部と、
前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新部と、
を備えることを特徴とする学習装置。
【請求項2】
前記報酬算出部は、前記ロボットの先端部の移動距離に基づいて報酬を算出することを特徴とする請求項1に記載の学習装置。
【請求項3】
前記報酬算出部は、前記移動距離と、前記先端部の軌道の初期座標から目標座標までの直線距離に所定の係数を乗算した値とを比較し、報酬を算出することを特徴とする請求項2に記載の学習装置。
【請求項4】
前記報酬算出部は、前記ロボットの移動時間に基づいて報酬を算出することを特徴とする請求項1に記載の学習装置。
【請求項5】
前記報酬算出部は、前記移動時間と、前記ロボットの先端部が前記軌道の初期座標から目標座標までの直線距離を移動した場合の移動時間に所定の係数を乗算した値とを比較し、報酬を算出することを特徴とする請求項4に記載の学習装置。
【請求項6】
前記報酬算出部は、前記ロボットの先端部の移動距離に基づいて算出した報酬、および前記ロボットの移動時間に基づいて算出した報酬を合算することを特徴とする請求項1に記載の学習装置。
【請求項7】
前記ロボットの状態を示す状態変数を観測する状態観測部、を更に備え、
前記更新部は、
前記状態変数と前記報酬に基づいて、前記ハイパーパラメータの変化量の価値を表す価値関数を更新する価値関数更新部と、
前記価値関数の更新結果に基づいて前記ハイパーパラメータの変化量を決定し、前記ハイパーパラメータを更新するパラメータ更新部と、を備える
ことを特徴とする請求項1に記載の学習装置。
【請求項8】
アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶する記憶部と、
前記ロボットの可動範囲内においてロボットの先端部の初期座標および目標座標を設定する位置設定部と、
前記ハイパーパラメータを、請求項1に記載の学習装置により更新されたハイパーパラメータとしたうえで、前記数理モデルを用いて、前記先端部が前記初期座標から前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部と、
前記軌道に従って前記ロボットを動作させる動作部と、を備えることを特徴とする制御装置。
【請求項9】
ロボットと、請求項8に記載の制御装置と、を備えるロボットシステム。
【請求項10】
アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶するコンピュータが、
前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定ステップと、
前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成ステップと、
仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作ステップと、
前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出ステップと、
前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新ステップと、
を実行することを特徴とする学習方法。
【請求項11】
アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶するコンピュータを、
前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定部、
前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部、
仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作部、
前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出部、
前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新部、
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、制御装置、ロボットシステム、学習方法、およびプログラムに関し、特に、ロボットの軌道を生成する技術に関する。
【背景技術】
【0002】
多関節ロボット等のロボットの軌道を得る一般的な方法として、教示による方法がある。この方法では、ロボットの初期座標と目標座標を設定したうえで、初期座標から目標座標の間の中継座標をティーチングペンダント等を用いて操作者が教示する。教示した中継座標を通る軌道が適切でなかった場合や、ロボットの関節に大きな負荷がかかるような場合には、操作者が中継座標の教示をやり直し、より最適な軌道となるように調整を行う。
【0003】
しかしながら、上記した方法は、中継座標を人手で教示するため膨大な手間がかかる。また、教示した軌道しか辿ることができないため、汎化性能が低い。また、初期座標や目標座標を変更した場合、教示をはじめからやり直さなければならない。
【0004】
一方で近年、機械学習等を用いて、ロボットの軌道を自動で得る方法が開発されている。例えば、特許文献1では、ロボットの位置座標、移動速度、障害物に移動を遮られたか否か等のロボットの移動状態を入力とし、その状態からロボットが移動する移動方向、移動速度等を出力としたニューラルネットワークを学習することで、ロボットが目標座標に移動する軌道を自動で生成する方法が提案されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-006489号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1のようにロボットの軌道が自動で得られれば、中継座標を人手で教示する必要がなくなるため、手間が大幅に削減される。しかしながら、特許文献1の方法も、1つの目標座標に対して軌道を生成するものであるため、依然として汎化性能が低い。また汎化性能を上げるためには、目標座標ごとにニューラルネットワークを学習する必要があり、学習工数が膨大となり現実的でない。
【0007】
本発明は、前述した問題点に鑑みてなされたものであり、様々な移動先に対する最適な軌道を容易に生成することが可能な学習装置等を提供することを目的とする。
【課題を解決するための手段】
【0008】
前述した目的を達成するための第1の発明は、アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶する記憶部と、前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定部と、前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部と、仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作部と、前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出部と、前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新部と、を備えることを特徴とする学習装置である。
【0009】
第1の発明によれば、アームおよび先端部を備えたロボットの軌道を生成する数理モデル(軌道生成アルゴリズム)を用いて、ランダムに設定した目標座標までの軌道を生成し、当該軌道に従ってロボットを動作させ、ロボットの動作結果に対する報酬に基づいて数理モデルのハイパーパラメータを更新する。これにより、ロボットの軌道を生成する数理モデルのハイパーパラメータを最適化することができる。また、学習時に目標座標をランダムに設定することで、様々な移動先に対して軌道が生成できるようにハイパーパラメータが学習されるので、数理モデルの汎化性能を向上させることができる。また、移動距離や移動時間などの動作結果を考慮した最適な軌道が数理モデルによって生成可能となる。
【0010】
また第1の発明において、前記報酬算出部は、前記ロボットの先端部の移動距離に基づいて報酬を算出するようにしてもよい。例えば、前記報酬算出部は、前記移動距離と、前記先端部の軌道の初期座標から目標座標までの直線距離に所定の係数を乗算した値とを比較し、報酬を算出する。これにより、ロボットの移動距離の情報を、数理モデルのハイパーパラメータの学習に反映させることができる。
【0011】
また第1の発明において、前記報酬算出部は、前記ロボットの移動時間に基づいて報酬を算出するようにしてもよい。例えば、前記報酬算出部は、前記移動時間と、前記ロボットの先端部が前記軌道の初期座標から目標座標までの直線距離を移動した場合の移動時間に所定の係数を乗算した値とを比較し、報酬を算出することができる。これにより、ロボットの移動時間の情報を、数理モデルのハイパーパラメータの学習に反映させることができる。
【0012】
また第1の発明において、前記報酬算出部は、前記ロボットの先端部の移動距離に基づいて算出した報酬、および前記ロボットの移動時間に基づいて算出した報酬を合算してもよい。移動距離と移動時間のそれぞれの報酬を算出し、それを合算することで、移動距離と移動時間の情報を、数理モデルのハイパーパラメータの学習に反映することもできる。
【0013】
また第1の発明において、前記ロボットの状態を示す状態変数を観測する状態観測部、を更に備え、前記更新部は、前記状態変数と前記報酬に基づいて、前記ハイパーパラメータの変化量の価値を表す価値関数を更新する価値関数更新部と、前記価値関数の更新結果に基づいて前記ハイパーパラメータの変化量を決定し、前記ハイパーパラメータを更新するパラメータ更新部と、を備えるようにしてもよい。これにより、ロボットの状態とロボットの動作結果に対する報酬に基づいて、ハイパーパラメータの変化量の価値を表す価値関数(学習モデル)を更新しながら、ハイパーパラメータの適切な変化量を決定し、ハイパーパラメータを更新していくことができる。
【0014】
前述した目的を達成するための第2の発明は、アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶する記憶部と、前記ロボットの可動範囲内においてロボットの先端部の初期座標および目標座標を設定する位置設定部と、前記ハイパーパラメータを、第1の発明に係る学習装置により更新されたハイパーパラメータとしたうえで、前記数理モデルを用いて、前記先端部が前記初期座標から前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部と、前記軌道に従って前記ロボットを動作させる動作部と、を備えることを特徴とする制御装置である。
第2の発明によれば、第1の発明によりハイパーパラメータが最適化された数理モデルを用いてロボットの軌道を生成し、ロボットを動作させる制御装置が提供される。
【0015】
前述した目的を達成するための第3の発明は、ロボットと、第2の発明に係る制御装置と、を備えるロボットシステムである。
第3の発明によれば、第2の発明に係る制御装置と、ロボットから構成されるロボットシステムが提供される。
【0016】
前述した目的を達成するための第4の発明は、アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶するコンピュータが、前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定ステップと、前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成ステップと、仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作ステップと、前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出ステップと、前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新ステップと、を実行することを特徴とする学習方法である。
【0017】
第4の発明の学習方法によれば、アームおよび先端部を備えたロボットの軌道を生成する数理モデル(軌道生成アルゴリズム)を用いて、ランダムに設定した目標座標までの軌道を生成し、当該軌道に従ってロボットを動作させ、ロボットの動作結果に対する報酬に基づいて数理モデルのハイパーパラメータを更新する。これにより、ロボットの軌道を生成する数理モデルのハイパーパラメータを最適化することができる。また、学習時に目標座標をランダムに設定することで、様々な移動先に対して軌道が生成できるようにハイパーパラメータが学習されるので、数理モデルの汎化性能を向上させることができる。また、移動距離や移動時間などの動作結果を考慮した最適な軌道が数理モデルによって生成可能となる。
【0018】
前述した目的を達成するための第5の発明は、アームおよび先端部を備えたロボットの軌道を生成する数理モデルであって、1以上のハイパーパラメータが定義された数理モデルを記憶するコンピュータを、前記ロボットの可動範囲内において前記ロボットの先端部の目標座標をランダムに設定する位置設定部、前記数理モデルを用いて、前記先端部が前記目標座標まで移動するための前記ロボットの軌道を生成する軌道生成部、仮想空間内または実空間内において前記軌道に従って前記ロボットを動作させる動作部、前記ロボットの動作結果に対する報酬を所定の基準により算出する報酬算出部、前記報酬に基づいて前記数理モデルの前記ハイパーパラメータを更新する更新部、として機能させることを特徴とするプログラムである。
第5の発明によれば、コンピュータを第1の発明に係る学習装置として機能させることができる。
【発明の効果】
【0019】
本発明により、様々な移動先に対する最適な軌道を容易に生成することが可能な学習装置等が提供される。
【図面の簡単な説明】
【0020】
図1】ロボットシステム1の全体構成を示す図
図2】ロボット2の構成例と動作例の概要を示す図
図3】学習装置3の機能構成を示す図
図4】ロボットシミュレータの設定例を説明する図
図5】数理モデル5の処理の概要を示す図
図6】報酬ルール50の例を示す図
図7】ロボット2の状態データ(状態変数)の例を示す図
図8】DQN(Deep Q-Network)法の学習モデル70(深層ニューラルネットワーク)の概念図
図9】学習時におけるロボット2の先端部Eの初期座標Psと目標座標Pgの設定例を示す図
図10】制御装置4の機能構成を示す図
図11】学習装置3、制御装置4を実現するコンピュータのハードウェア構成の例を示す図
図12】学習装置3が実行する設定処理の流れを示すフローチャート
図13】学習装置3が実行する学習処理の流れを示すフローチャート
図14】制御装置4が実行する制御処理の流れを示すフローチャート
【発明を実施するための形態】
【0021】
以下、図面に基づいて本発明の好適な実施形態(以下、本実施形態という。)について詳細に説明する。
【0022】
(1.ロボットシステム1の全体構成)
図1は、本実施形態のロボットシステム1の全体構成を示す図である。
ロボットシステム1は、ロボット2、学習装置3、制御装置4から構成される。ロボット2は、本実施形態の制御対象であり、例えば多関節ロボットである。学習装置3は、ロボット2の軌道を生成する数理モデル(軌道生成アルゴリズム)のハイパーパラメータを学習し最適化するコンピュータである。制御装置4は、学習装置3によりハイパーパラメータが最適化された数理モデルを用いて、ロボット2の動作を制御するコンピュータである。なお、図1の例では、学習装置3と制御装置4を別々のコンピュータで構成しているが、1つのコンピュータで構成してもよい。
以下、ロボットシステム1の各構成について説明する。
【0023】
(2.ロボット2の構成)
図2は、本実施形態のロボット2(多関節ロボット)の構成例と動作例の概要を示す図である。ロボット2は、n本のリンク(L1、L2、・・・、Ln)とn個の関節(J1、J2、・・・、Jn)からなるアームと、アームの先端にエンドエフェクタ(ロボットハンド等)に相当する先端部Eを備える、3次元または2次元の多関節ロボットである。ロボット2は、制御装置4の制御命令を受け、各関節のアクチュエータを駆動させることで動作する。例えば図2のように、初期座標Ps(移動開始点における先端部Eの位置および姿勢)と目標座標Pg(移動終了点における先端部Eの位置および姿勢)が与えられると、ロボット2の先端部Eが、初期座標Psから目標座標Pgまでの軌道Obtを辿るように動作する。軌道Obtは後述する数理モデル5(軌道生成アルゴリズム)によって生成される。図2のように障害物Obsがある場合には、障害物Obsを避けるように軌道Obtが生成される。なお、ロボット2は、多関節ロボットに限定されず、例えば、スカラロボット、直交座標ロボット、円筒座標ロボット、極座標ロボット、パラレルリンクロボットなどであってもよい。
【0024】
(3.学習装置3の構成)
図3は、本実施形態の学習装置3の機能構成を示す図である。
学習装置3は、設定部10、学習部20を備える。
設定部10は、学習の事前設定を行う機能部であり、主に、シミュレータ設定部11、数理モデル設定部12、報酬ルール設定部13から構成される。
【0025】
シミュレータ設定部11は、ロボット2の動作シミュレーションをコンピュータ上で行うためのソフトウェアであるロボットシミュレータの各種設定を行う。ロボットシミュレータとしては、例えばGazeboが利用できる。Gazeboは、ROS(Robot Operating System)をサポートする3次元のマルチロボットシミュレータである。センサの反応やフィードバック、複数のロボットや物体の相互作用を3次元でシミュレーションすることができる。なおUnity、PyBullet、Mujocoなどの他のロボットシミュレータを利用してもよい。
【0026】
シミュレータ設定部11は、図4に示すように、実空間のロボット2(図2)の3次元モデルを仮想空間に作成し、ロボット2の各リンクL1、L2、・・・、Lnの長さの設定、各関節J1、J2、・・・、Jnの可動範囲の設定、先端部Eのサイズの設定、ロボット2の可動範囲Wの設定、ロボット2周辺に存在する障害物Obsの設定等を行う。
ロボット2の可動範囲Wとは、ロボット2のアームおよび先端部Eが稼働できる範囲である。具体的には、可動範囲Wは、ロボット2以外の物体が存在しないと仮定した場合におけるロボット2のアームおよび先端部Eが理論上稼働できる範囲から、ロボット2が設置される架台等の範囲(非可動領域)と障害物Obsの範囲(進入禁止領域)を除外した範囲となる。
なお、仮想空間におけるロボットは、実空間におけるロボットを再現したものであるため、実空間および仮想空間におけるロボットおよびロボットの各構成(各リンク、各関節、先端部など)には同一の符号を付すものとする。
【0027】
数理モデル設定部12は、ロボット2の軌道(先端部Eおよびアームの軌道)を生成する数理モデル5の設定を行う。なお本明細書および図面において、ロボット2の先端部Eの軌道を、特に軌道Obtと表している。
本実施形態において、数理モデル5とは、ロボット2の軌道を生成するアルゴリズム(軌道生成アルゴリズム)であって、1以上のハイパーパラメータhが定義されているものをいう。またハイパーパラメータとは、数理モデル5のアルゴリズムの挙動を制御するパラメータであり、数理モデル5のアルゴリズムの枠組みの中では決定されないパラメータ(アルゴリズムの実行中には一般的に定数として扱われるパラメータ)のことをいう。例えばコスト関数の正則化項の影響度を表す係数などが該当する。
【0028】
上記のような数理モデル5としては、軌道最適化法をベースとしたアルゴリズムを利用することが望ましい。例えばCHOMP(Co- variant Hamiltonian Optimization for Motion Planning)やSTOMP(Stochastic Trajectory Optimization for Motion Planning)やTrajOpt(Trajectory Optimization for Motion Planning)などの公知のアルゴリズムを利用できる。CHOMPはロボットの動作や障害物との距離を要素とするコスト関数を勾配計算により最適化することで軌道を生成する手法である。STOMPはCHOMPと似たアルゴリズムであるが、CHOMPのように勾配計算ではなく、確率的手法によってコスト関数を最適化し、軌道を生成するものである。TrajOptもCHOMP、STOMPと同じ軌道最適化法をベースとしたアルゴリズムである。CHOMP、STOMP、TrajOptには複数のハイパーパラメータhが定義されている。
【0029】
図5は、数理モデル5の処理の概要を表す。図5に示すように、数理モデル5には、外部から1以上のハイパーパラメータh(h1、h2、・・・、hm)を設定することができる。数理モデル5は、ハイパーパラメータhと、初期座標Psおよび目標座標Pgが設定されると、内部アルゴリズムに従って先端部Eが初期座標Psから目標座標Pgまで移動するための最適なロボット2の軌道を生成する。
数理モデル5は、ロボットシミュレータと連携しており、ロボット2周辺の環境(障害物Obs等)を考慮しながら最適なロボット2の軌道を生成する。
【0030】
数理モデル設定部12は、いずれの数理モデル5を使用するかの選択をユーザから受け付け、選択された数理モデル5のハイパーパラメータhの初期値を設定する。初期値はユーザが定めた値としてもよいし、アルゴリズム内部で規定されているデフォルト値(推奨値)としてもよい。
【0031】
報酬ルール設定部13は、ロボット2の動作結果に対する報酬(評価)を算出するための報酬ルール50を設定する。
ロボット2の動作結果とは、例えば、ロボット2の先端部Eの移動距離(軌道Obtの長さ)やロボット2の移動時間(初期座標Psから目標座標Pgまで移動するのにかかった時間)である。
報酬とは、あるハイパーパラメータhが設定された数理モデル5により生成された軌道に従ってロボット2を動作させた際の、ロボットの動作結果(移動距離や移動時間など)に対する評価を表すものであり、報酬が大きいほど良好なハイパーパラメータhであることを意味する。
【0032】
図6は、報酬ルール50の例を示す図である。
例えば、報酬の評価項目51が「移動距離」の場合、条件52、報酬53に示すように、D≦1.5d(移動距離が短い場合)であればプラスの報酬(+r1;r1は正値)とし、D>1.5d(移動距離が長い場合)であれば報酬を0とする。ここで、Dはロボット2の先端部Eの移動距離(軌道Obtの長さ)、dはロボット2の先端部Eの初期座標Psから目標座標Pgまでの直線距離である。図6の例では、直線距離dに係数1.5を乗じた距離を基準距離とし、基準距離と移動距離Dの大小を比較することで報酬が決定される。なお、直線距離dに乗じる係数は1.5である必要はなく、1.0以上の他の数値としてもよい。
【0033】
また、報酬の評価項目51が「移動時間」の場合、条件52、報酬53に示すように、T≦1.5t(移動時間が短い場合)であればプラスの報酬(+r2;;r2は正値)とし、T>1.5t(移動時間が長い場合)であれば報酬を0とする。ここで、Tはロボット2の実移動時間であり、tはロボット2が平均速度vで直線距離dを移動した場合の移動時間(t=d/v)である。図6の例では、移動時間tに係数1.5を乗じた距離を基準移動時間とし、基準移動時間と移動時間Tの大小を比較することで報酬が決定される。なお、移動時間tに乗じる係数は1.5である必要はなく、1.0以上の他の数値としてもよい。
【0034】
また、報酬の評価項目51が「軌道生成の可否」の場合であって、軌道の生成が「否」の場合(軌道が生成されなかった場合)には、マイナスの報酬(-r3;r3は正値)が適用される。
【0035】
なお、報酬ルール50は図6の例に限定されない。例えば、移動後のロボット2の先端部Eの角度が所定の範囲内の場合にはプラスの報酬、角度が範囲外となる場合にはマイナスの報酬を算出するようなルールを設定してもよい。また、各関節軸の負荷(モーター電流値)の最大値が所定の範囲内の場合にはプラスの報酬、負荷の最大値が範囲外となる場合にはマイナスの報酬を算出するようなルールを設定することもできる。
【0036】
学習部20は、報酬に基づいて数理モデル5のハイパーパラメータhを学習する機能部であり、主に、状態観測部21、報酬算出部22、更新部23(価値関数更新部231、パラメータ更新部232)、行動実行部24(位置設定部241、軌道生成部242、動作部243)から構成される。
【0037】
状態観測部21は、ロボット2が動作を開始してから終了するまでの間、ロボット2の状態を観測し、ロボット2の状態を示す状態データ60(状態変数)を取得する。状態観測部21は、ロボット2を動作させる度に、状態データ60を取得する。
【0038】
図7は、ロボット2の状態データ60(状態変数)のデータ項目例を示す。
図7に示すように、状態データ60には、例えば、動作後のロボット2の各関節の角度θ1、θ2、・・・θn、ロボット2の先端部Eの初期座標Ps、ロボット2の先端部Eの目標座標Pg、ロボット2の先端部Eの軌道Obt(軌道Obtの座標系列)、ロボット2の先端部Eの移動距離D、ロボット2の移動時間Tが含まれる。状態データ60のデータ項目は図の例に限定されず、他のデータが含まれてもよい。例えば、ロボット2周辺に位置する障害物Obsの位置座標、ロボット2の先端部Eの移動速度、ロボット2の各関節の負荷(モーター電流値)等が含まれてもよい。
なお図7の例では、初期座標Psおよび目標座標Pgにおける先端部Eの姿勢をオイラー座標系で表しているが、クォータニオン、回転行列、回転ベクトル等の他の座標系で表してもよい。
【0039】
報酬算出部22は、状態データ60等から得られるロボット2の動作結果(移動距離や移動時間など)に対する報酬を報酬ルール50(図6)に基づいて算出する。
例えば、報酬算出部22は、ロボット2の先端部Eの移動距離DがD≦1.5d(移動距離が短い場合)であればプラスの報酬(+r1)、D>1.5d(移動距離が長い場合)であれば報酬を0として算出する(図6参照)。
また、報酬算出部22は、ロボット2の移動時間TがT≦1.5t(移動時間が短い場合)であればプラスの報酬(+r2)、T>1.5t(移動時間が長い場合)であれば報酬を0として算出する(図6参照)。
【0040】
なお報酬算出部22は、移動距離と移動時間の報酬を合算してもよい。
例えば、D≦1.5d(移動距離が短い場合)およびT≦1.5t(移動時間が短い場合)であれば報酬を+(r1+r2)として算出する。
また、D≦1.5d(移動距離が短い場合)およびT>1.5t(移動時間が長い場合)であれば報酬を+r1として算出する。
また、D>1.5d(移動距離が長い場合)およびT≦1.5t(移動時間が短い場合)であれば報酬を+r2として算出する。
また、D>1.5d(移動距離が長い場合)およびT>1.5t(移動時間が長い場合)であれば報酬を0として算出する。
これにより、移動距離と移動時間の両方を考慮して報酬を算出することもできる。
【0041】
また、報酬算出部22は、軌道が生成されなかった場合、報酬ルール50(図6)に基づいてマイナスの報酬(-r3)を算出する(図6参照)。
なお、軌道が生成されなかった場合は、ロボット2の動作が実行されないため、マイナスの報酬(-r3)が単独で発生する。すなわち、r1やr2と合算されて報酬が算出されることはない。
【0042】
更新部23は、報酬算出部22により算出された報酬に基づいて数理モデル5のハイパーパラメータhを学習し更新する機能部である。本実施形態では、強化学習を用いてハイパーパラメータhを更新するものとする。
強化学習は、ある環境内の観測対象(本実施形態では「ロボット2」)の状態(本実施形態では「状態データ60(状態変数)」)を観測し、取るべき行動(本実施形態では「ハイパーパラメータhの変化量」)を決定する問題を扱う機械学習の一種である。強化学習では、行動を選択することで報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。
【0043】
具体的には、更新部23は、状態観測部21により観測されたロボット2の状態データ60(状態変数)の一部または全部と、報酬算出部22により算出された報酬に基づいて、行動(ハイパーパラメータhの変化量)の価値を表す行動価値関数Q(s,a)を更新するとともに、適切な行動(ハイパーパラメータhの変化量)を選択し、ハイパーパラメータhを更新する。行動価値関数Q(s,a)とは、ある状態sにおいてある行動aを選択した際に期待される価値(将来にわたっての報酬の合計)を表す関数のことである。
【0044】
更新部23は、更に、価値関数更新部231と、パラメータ更新部232から構成される。
価値関数更新部231は、DQN(Deep Q-Network)法を用いて、深層強化学習により行動価値関数Q(s,a)を更新する。DQN法では、行動価値関数Q(s,a)を深層ニューラルネットワーク(学習モデル70)で表現する。
図8は、DQN法の学習モデル70の概念図である。図8に示すように、学習モデル70は、ロボット2の状態s(状態データ60の一部または全部)を入力層に入力し、行動a1、a2、・・・、aK(ハイパーパラメータhの変化量の候補)と行動a1、a2、・・・、aKの価値を表す行動価値関数Q(s,a1)、Q(s,a2)、・・・、Q(s,aK)が出力層のノードとなるようなニューラルネットワークで構築される。
なお、学習モデル70の入力層に現在のハイパーパラメータhを入力してもよい。
【0045】
行動価値関数Q(s,a)(学習モデル70)を更新するためのアルゴリズムとしては、例えば、TD(Temporal Difference)誤差法等の既知の深層強化学習の手法を用いることができる。行動価値関数Q(s,a)(学習モデル70)が適切に収束した場合には、当該行動価値関数Q(s,a)を最大化する行動aを最適な行動(ハイパーパラメータhの変化量)と見做すことができる。
【0046】
パラメータ更新部232は、更新された行動価値関数Q(s,a)(学習モデル70の出力)を参照して、現在の状態sに対して、適切な行動a(ハイパーパラメータhの変化量)を選択する。パラメータ更新部132が行動a(ハイパーパラメータhの変化量)を選択するためのアルゴリズムとしては、例えば、ε-Greedy法等の既知の深層強化学習の手法を用いることができる。
またパラメータ更新部232は、選択したハイパーパラメータhの変化量に基づいて、数理モデル5のハイパーパラメータhを更新する。
【0047】
なお、本実施形態では、深層強化学習の手法として、DQN法を用いているが、これに限られず、例えば、PG(Policy Gradient)法やAC(Actor Critic)法等の公知の深層強化学習の手法を用いてもよい。
また、強化学習の手法は深層強化学習に限定されず、通常の強化学習を用いてもよい。例えば、ニューラルネットワークを用いないモンテカルロ法やQラーニング法などを用いることができる。
【0048】
行動実行部24は、数理モデル5によってロボット2の軌道を生成し、生成した軌道に従ってロボット2を動作させる機能部であり、主に、位置設定部241、軌道生成部242、動作部243から構成される。
【0049】
位置設定部241は、図9に示すように、可動範囲W内において、ロボット2の先端部Eの初期座標Ps(移動開始点における先端部Eの位置および姿勢)と目標座標Pg(移動終了点における先端部Eの位置および姿勢)を設定する。この際、位置設定部241は、ロボット2の先端部Eの目標座標Pgをランダムな値に設定する。ランダムな値は公知の乱数生成アルゴリズムを利用して生成される。目標座標Pgをランダムに設定することで、あらゆる目標座標(移動先)に対して適切な軌道が生成できるようにハイパーパラメータhが学習されるため、数理モデル5の汎化性能が向上する。
【0050】
また位置設定部241は、目標座標Pgだけでなく、ロボット2の先端部Eの初期座標Psもランダムな値に設定してもよい。これにより、あらゆる初期座標および目標座標に対して適切な軌道が生成できるようにハイパーパラメータhが学習されるため、数理モデル5の汎化性能が更に向上する。
なお、目標座標Pgや初期座標Psをランダムに設定する場合、少なくとも位置座標(x、y、z)をランダムに設定すればよい。加え、姿勢(roll、pitch、yaw)をランダムに設定してもよい。なお姿勢はオイラー座標系(roll、pitch、yaw)で設定される必要はなく、クォータニオン、回転行列、回転ベクトル等の他の座標系で設定されてもよい。
【0051】
軌道生成部242は、更新部23によって更新されたハイパーパラメータh(学習開始時は初期設定されたハイパーパラメータh)と、位置設定部241によって設定された初期座標Psおよび目標座標Pgを数理モデル5に入力し、数理モデル5の内部アルゴリズムに従って、先端部Eが初期座標Psから目標座標Pgまで移動するための最適なロボット2の軌道を生成する。
【0052】
動作部243は、軌道生成部242によって生成された軌道に従って、仮想空間内または実空間内においてロボット2を動作させる。
【0053】
学習部20は、上記した状態観測部21、報酬算出部22、更新部23、行動実行部24の処理を繰り返し実行しながら、数理モデル5のハイパーパラメータhを学習し更新していく。
そして学習部20は、所定の収束条件を満たすと学習を終了する。所定の収束条件とは、例えば、報酬が最大となった場合やハイパーパラメータhの変化量が0となった場合等である。
【0054】
(4.制御装置4の構成)
図10は、本実施形態の制御装置4の機能構成を示す図である。
制御装置4は、主に、位置設定部41、軌道生成部42、動作部43から構成される。
【0055】
位置設定部41は、ロボット2の先端部Eの初期座標Psと目標座標Pgをユーザ操作により設定する。
【0056】
軌道生成部42は、数理モデル5を用いて、先端部Eが位置設定部41により設定された初期座標Psから目標座標Pgまで移動するための最適なロボット2の軌道を生成する。この際、軌道生成部42は、学習装置3によって学習されたハイパーパラメータhを数理モデル5に設定したうえで、数理モデル5の内部アルゴリズムに従って軌道を生成する。
【0057】
動作部43は、ロボット2の各関節のアクチュエータ等に制御命令を送り、軌道生成部42により生成された軌道に従って実空間のロボット2を動作させる。
【0058】
(5.学習装置3、制御装置4のハードウェア構成)
図11は、本実施形態の学習装置3、制御装置4を実現するコンピュータのハードウェア構成例である。
【0059】
図11に示すように、コンピュータは、制御部401、記憶部402、通信部403、入力部404、表示部405、周辺機器I/F部406等が、バス409を介して接続される。但し、これに限ることなく、用途、目的に応じて様々な構成を採ることが可能である。
【0060】
制御部401は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等によって構成される。CPUは、記憶部402、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス409を介して接続された各装置を駆動制御し、学習装置3、制御装置4が行う後述する処理(図12図14参照)を実現する。
【0061】
ROMは、不揮発性メモリであり、コンピュータのブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。RAMは、揮発性メモリであり、記憶部402、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部401が各種処理を行う為に使用するワークエリアを備える。
【0062】
記憶部402は、HDD(Hard Disk Drive)等であり、制御部401が実行するプログラム、プログラム実行に必要なデータ、OS(Operating System)等が格納される。プログラムに関しては、OSに相当する制御プログラムや、後述する処理(図12図14参照)をコンピュータに実行させるためのアプリケーションプログラムが格納されている。これらの各プログラムコードは、制御部401により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種処理を実行する。
【0063】
本実施形態では、記憶部402には、ROS(Robot Operation
System)、Gazeboなどのロボットシミュレータ、数理モデル5、数理モデル5に設定するハイパーパラメータh、報酬ルール50、状態データ60、強化学習用の学習モデル70等が格納される。
【0064】
通信部403は、通信制御装置、通信ポート等を有し、コンピュータとネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他のコンピュータ間との通信制御を行う。ネットワークは、有線、無線を問わない。
【0065】
入力部404は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。入力部404を介して、コンピュータに対して、操作指示、動作指示、データ入力等を行うことができる。表示部405は、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携してコンピュータのビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。なお、入力部404及び表示部405は、タッチパネルディスプレイのように、一体となっていてもよい。
【0066】
周辺機器I/F(Interface)部406は、コンピュータに周辺機器を接続させるためのポートであり、周辺機器I/F部406を介してコンピュータは周辺機器とのデータの送受信を行う。周辺機器I/F部406は、USB(Universal Serial Bus)やLANやIEEE1394やRS-232C等によって構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。制御装置4は、周辺機器I/F(Interface)部406を介して、ロボット2の各関節や先端部Eを稼働させるアクチュエータや、エンコーダ、加速度センサ、トルクセンサ等の各種センサと接続される。
【0067】
バス409は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0068】
次に、図12図14のフローチャートを参照しながら、本実施形態の処理について説明する。
【0069】
(6.設定処理)
まず、図12のフローチャートを参照して、学習装置3が行う設定処理の流れを説明する。
【0070】
学習装置3の制御部401(シミュレータ設定部11)は、ロボット2のシミュレーションをコンピュータ上で行うためのソフトウェアであるロボットシミュレータの各種設定を行う(ステップS11)。ロボットシミュレータとしては、Gazebo等が利用できる。例えば、制御部401(シミュレータ設定部11)は、図4に示すように、実空間のロボット2(図2)の3次元モデルを仮想空間に作成し、ロボット2の各リンクL1、L2、・・・、Lnの長さの設定、各関節J1、J2、・・・、Jnの可動範囲の設定、先端部Eのサイズの設定、ロボット2の可動範囲Wの設定、ロボット2周辺に存在する障害物Obsの設定等を行う。
【0071】
また、学習装置3の制御部401(数理モデル設定部12)は、ロボット2の軌道を生成する数理モデル5(軌道生成アルゴリズム)の設定を行う(ステップS12)。具体的には、制御部401(数理モデル設定部12)は、いずれの数理モデル5を使用するかの選択をユーザから受け付け、選択された数理モデル5のハイパーパラメータhの初期値を設定する。初期値はユーザが設定してもよいし、アルゴリズム内部で規定されているデフォルト値(推奨値)を設定してもよい。
【0072】
また、学習装置3の制御部401(報酬ルール設定部13)は、ロボット2の動作結果に対する報酬を算出するための報酬ルール50を設定する(ステップS13)。例えば、制御部401(報酬ルール設定部13)は、図6に示すように、ロボット2の移動距離Dや移動時間Tが短い場合にはプラスの報酬、移動距離Dや移動時間Tが長い場合には報酬を0とするルールや、ロボット2の軌道が生成されなかった場合にはマイナスの報酬とするようなルールを設定する。
なお上記したステップS11~S13の処理の順序は任意であり、どのような順序で実行されてもよい。
【0073】
(7.学習処理)
次に、図13のフローチャートを参照して、学習装置3が実行する学習処理の流れを説明する。
まず、学習装置3の制御部401(学習部20)は、学習回数NmaxをNmax=N(例えばN=5万回)、現在の学習ステップnをn=1に設定する(ステップS20)。
次に、学習装置3の制御部401(位置設定部241)は、図12のステップS11において設定された可動範囲W内において、ロボット2の先端部Eの初期座標Psと目標座標Pgをランダムに設定する(ステップS21)。
【0074】
次に、学習装置3の制御部401(軌道生成部242)は、数理モデル5を用いて、先端部Eが初期座標Psから目標座標Pgまで移動するための最適なロボット2の軌道を生成する(ステップS22)。この際、本ステップが1回目の場合(n=1の場合)には、図12のステップS12において初期設定されたハイパーパラメータhを数理モデル5に設定し、本処理が2回目以降の場合(n>1の場合)には、後述するステップS27において更新されたハイパーパラメータhを数理モデル5に設定したうえで、軌道を生成する。
【0075】
次に、学習装置3の制御部401(動作部243)は、生成された軌道に従って、仮想空間内または実空間内においてロボット2を動作させる(ステップS23)。
ロボット2が動作を開始してから終了するまでの間、学習装置3の制御部401(状態観測部21)は、ロボット2の状態を観測し、ロボット2の状態を示す状態データ60(状態変数)を取得する(ステップS24)。例えば、制御部401(状態観測部21)は、図7に示すように、動作後のロボット2の各関節の角度θ1、θ2、・・・θn、ロボット2の先端部Eの初期座標Ps、ロボット2の先端部Eの目標座標Pg、ロボット2の先端部Eの軌道Obt(軌道Obtの座標系列)、ロボット2の先端部Eの移動距離D、ロボット2の移動時間T等を状態データ60として取得する。
【0076】
次に、学習装置3の制御部401(報酬算出部22)は、状態データ60等から得られるロボット2の動作結果(移動距離や移動時間など)に対する報酬を報酬ルール50(図6)に基づいて算出する(ステップS25)。具体的には、制御部401(報酬算出部22)は、報酬ルール50(図6)に基づいて、ロボット2の移動距離DがD<1.5d(移動距離が短い場合)であればプラスの報酬(+r1)、D≧1.5d(移動距離が長い場合)であれば報酬を0として算出する。また、制御部401(報酬算出部22)は、報酬ルール50(図6)に基づいて、ロボット2の移動時間TがT≦1.5t(移動時間が短い場合)であればプラスの報酬(+r2)、T>1.5t(移動時間が長い場合)であれば報酬を0として算出する。移動距離と移動時間の両方を考慮するのは、ロボット2の動作範囲、特異点、外部環境等を考慮すると、どちらか一方が短ければ最適というわけではなく、そのバランスが重要となるためである。
また、制御部401(報酬算出部22)は、ステップS22において軌道がそもそも生成されなかった場合には、報酬ルール50(図6)に基づいてマイナスの報酬(-r3)を算出する。
【0077】
次に、学習装置3の制御部401(更新部23)は、算出された報酬に基づいて数理モデル5のハイパーパラメータhを更新する。
まず、学習装置3の制御部401(価値関数更新部231)は、DQN(Deep
Q-Network)法を用いて、深層強化学習により行動価値関数Q(s,a)を更新する(ステップS26)。具体的には、制御部401(価値関数更新部231)は、図8に示すように、ロボット2の状態s(状態データ60の一部または全部)を入力層に入力し、行動a1、a2、・・・、aK(ハイパーパラメータhの変化量の候補)と行動a1、a2、・・・、aKの価値を表す行動価値関数Q(s,a1)、Q(s,a2)、・・・、Q(s,aK)が出力層のノードとなるようなニューラルネットワーク(学習モデル70)を更新する。
【0078】
そして、学習装置3の制御部401(パラメータ更新部232)は、ステップS26において更新された行動価値関数Q(s,a)(学習モデル70の出力)を参照して、現在の状態sに対して、適切な行動a(ハイパーパラメータhの変化量)を選択し、数理モデル5のハイパーパラメータhを更新する(ステップS27)。行動a(ハイパーパラメータhの変化量)を選択するためのアルゴリズムとしては、例えば、ε-Greedy法等の公知の深層強化学習の手法を用いることができる。
【0079】
次に、学習装置3の制御部401(学習部20)は、ハイパーパラメータhの学習が収束したか否かを判断する(ステップS28)。
例えば、制御部401(学習部20)は、連続してa回(例えば5回)、n‐1回目の報酬とn回目の報酬の差がb以下(例えば1以下)となった場合、報酬がある値(最大値)に収束したと判断(学習が収束したと判断)する。
学習が収束した場合(ステップS28;Yes)、学習装置3の制御部401(学習部20)は、ハイパーパラメータhを決定し(ステップS29)、処理を終了する。例えば、制御部401(学習部20)は、学習中に報酬が最大となったときのハイパーパラメータh(bestモデル)を、数理モデル5のハイパーパラメータhとして決定する。ステップS29で決定されたハイパーパラメータhは、制御装置4の記憶部402に格納される。
【0080】
一方、学習が収束していない場合であって(ステップS28;No)、n<Nmaxの場合には(ステップS30;Yes)、学習ステップを更新し(n←n+1;ステップS31)、ステップS21に戻って学習処理を続ける。
また学習が収束していない場合であって(ステップS28;No)、n≧Nmaxの場合(設定した学習回数Nmax内で学習が収束したかった場合)には(ステップS30;No)、制御部401(学習部20)は、学習回数Nmaxの再設定をユーザから受け付けられるようにする。この際、制御部401(学習部20)は、ユーザが学習回数Nmaxの再設定が必要か否かを容易に判断できるよう、学習ステップn毎(n=1、2、・・・、Nmax)に報酬の合計値をプロットしたグラフ等を表示部405に表示することが望ましい。
【0081】
ユーザはグラフ等を確認し、学習回数Nmaxの再設定を行う場合には(ステップS32;Yes)、入力部404を介して学習回数Nmaxとして新たな学習回数N’(例えば10万回)を設定する(Nmax=N’;ステップS33)。そして学習ステップを更新し(n←n+1;ステップS31)、ステップS21に戻って学習処理を続ける。
【0082】
一方、学習回数Nmaxを再設定しない場合には(ステップS32;No)、制御部401(学習部20)は、数理モデル5のハイパーパラメータhを決定し(ステップS34)、学習処理を終了する。例えば、制御部401(学習部20)は、学習中に報酬が最大となったときのハイパーパラメータh(bestモデル)や学習の最後(n=Nmax)のときのハイパーパラメータh(lastモデル)を、数理モデル5のハイパーパラメータhとして決定する。ステップS34で決定されたハイパーパラメータhは、制御装置4の記憶部402に格納される。
なお、学習回数Nmaxの再設定は何度実施してもよい。
【0083】
(8.制御処理)
最後に、図14のフローチャートを参照して、制御装置4が実行するロボット2の制御処理の流れを説明する。
まず、制御装置4の制御部401(位置設定部41)は、ロボット2の先端部Eの初期座標Psと目標座標Pgをユーザ操作により設定する(ステップS41)。
【0084】
次に、制御装置4の制御部401(軌道生成部42)は、数理モデル5を用いて、先端部Eが初期座標Psから目標座標Pgまで移動するためのロボット2の最適な軌道を生成する(ステップS42)。この際、図13の学習処理により決定されたハイパーパラメータhを数理モデル5に設定したうえで、軌道を生成する。
【0085】
そして、制御装置4の制御部401(動作部43)は、ロボット2の各関節のアクチュエータ等に制御命令を送り、生成された軌道に従って実空間のロボット2を動作させる(ステップS43)。
【0086】
以上、本実施形態について説明した。本実施形態によれば、学習装置3が、ロボット2の先端部Eの初期座標Psと目標座標Pgをランダムに設定し、数理モデル5を用いて、先端部Eが初期座標Psから目標座標Pgまで移動するためのロボット2の最適な軌道を生成し、生成された軌道に従って、仮想空間内または実空間内においてロボット2を動作させる。そして、学習装置3は、ロボット2の動作結果(移動距離や移動時間など)に対する報酬を算出し、算出した報酬に基づいて数理モデル5のハイパーパラメータhを更新する。これにより、ロボット2の軌道を生成する数理モデル5のハイパーパラメータhを最適化することができる。また学習時に、初期座標Psと目標座標Pgをランダムに設定することにより、どのような移動に対しても適切な軌道が生成できるようにハイパーパラメータhが学習されるので、数理モデル5の汎化性能を向上させることができる。また、ロボット2の移動時間や移動距離に対する報酬に基づいてハイパーパラメータhが学習されるので、移動距離や移動時間が短い最適な軌道を数理モデル5によって生成可能となる。
【0087】
以上、添付図面を参照しながら、本発明の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0088】
1 :ロボットシステム
2 :ロボット
3 :学習装置
4 :制御装置
5 :数理モデル
10 :設定部
11 :シミュレータ設定部
12 :数理モデル設定部
13 :報酬ルール設定部
20 :学習部
21 :状態観測部
22 :報酬算出部
23 :更新部
24 :行動実行部
41 :位置設定部
42 :軌道生成部
43 :動作部
50 :報酬ルール
51 :評価項目
52 :条件
53 :報酬
60 :状態データ
70 :学習モデル
231 :価値関数更新部
232 :パラメータ更新部
241 :位置設定部
242 :軌道生成部
243 :動作部
401 :制御部
402 :記憶部
403 :通信部
404 :入力部
405 :表示部
406 :周辺機器I/F部
409 :バス
D :移動距離
E :先端部
J1~Jn :関節
L1~Ln :リンク
Obs :障害物
Obt :軌道
Pg :目標座標
Ps :初期座標
Q :行動価値関数
T :移動時間
W :可動範囲
a :行動
d :直線距離
h :ハイパーパラメータ
s :状態
t :移動時間
v :平均速度
θ :関節の角度
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14