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

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

▶ オムロン株式会社の特許一覧

特許7547871学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム
<>
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図1
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図2
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図3
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図4
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図5
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図6
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図7
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図8
  • 特許-学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラム
(51)【国際特許分類】
   B25J 13/00 20060101AFI20240903BHJP
【FI】
B25J13/00 Z
【請求項の数】 11
(21)【出願番号】P 2020146401
(22)【出願日】2020-08-31
(65)【公開番号】P2022041294
(43)【公開日】2022-03-11
【審査請求日】2023-06-07
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】田中 一敏
(72)【発明者】
【氏名】▲濱▼屋 政志
(72)【発明者】
【氏名】米谷 竜
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2005-096068(JP,A)
【文献】特開2014-066471(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成する作成部と、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する指令生成部と、
出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する学習部と、
を備えた学習装置。
【請求項2】
前記指令生成部は、前記制御周期毎に、前記制御対象に対する指令又は指令系列の1の候補を生成し、生成した候補に基づく報酬を算出し、報酬をより大きくするように指令又は指令系列の候補を1回以上更新することによって、前記指令又は指令系列の候補を生成する、
請求項1記載の学習装置。
【請求項3】
前記指令生成部は、前記制御周期毎に、前記制御対象に対する指令又は指令系列の複数の候補を生成し、その後、前記複数の候補のそれぞれから予測される前記制御対象の状態又は状態系列を取得する、
請求項1記載の学習装置。
【請求項4】
前記集約状態遷移モデルは、前記集約部において前記複数の状態遷移モデルの出力をそれぞれの前記出力についての集約重みにしたがい統合する構造である、
請求項1~3の何れか1項に記載の学習装置。
【請求項5】
前記学習部は、前記集約重みを更新する
請求項4記載の学習装置。
【請求項6】
前記集約状態遷移モデルは、前記複数の状態遷移モデルと並列に誤差補償モデルを含み、
前記学習部は、前記誤差補償モデルを更新する
請求項1~5の何れか1項に記載の学習装置。
【請求項7】
コンピュータが、
計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成し、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行し、
出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する
処理を実行する学習方法。
【請求項8】
コンピュータに、
計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成し、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行し、
出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する
処理を実行させる学習プログラム。
【請求項9】
請求項1~6の何れか1項に記載の学習装置により学習された集約状態遷移モデルを記憶する記憶部と、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する指令生成部と、
を備えた制御装置。
【請求項10】
コンピュータが、
請求項1~6の何れか1項に記載の学習装置により学習された集約状態遷移モデルを記憶する記憶部から前記集約状態遷移モデルを取得し、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する
処理を実行する制御方法。
【請求項11】
コンピュータに、
請求項1~6の何れか1項に記載の学習装置により学習された集約状態遷移モデルを記憶する記憶部から前記集約状態遷移モデルを取得し、
計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する
処理を実行させる制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラムに関する。
【背景技術】
【0002】
ロボットを制御する制御装置においては、作業を達成する制御則をロボットが自律的に獲得できれば、人間が行動計画及び制御装置を作る手間を省くことができる。
【0003】
通常の運動学習手法で制御則を獲得させた場合、類似の他の作業にロボットを使うためには、白紙状態から学習し直す必要がある。
【0004】
この問題に対して、過去に学習されたモデルを別の領域に適応させる転移学習を用いることが考えられる。
【0005】
しかしながら、実際のロボットに一般的な転移学習を直接適用するのはあまり現実的ではない。これは、転移学習といえども、学習時間が長くなる、ロボットによる組立動作などの接触を伴う作業についての学習結果の転移は難しい等の理由による。
【0006】
非特許文献1には、制御則を表現するネットワークの結合による再利用によって制御則を直接学習する技術が開示されている。
【0007】
また、非特許文献2には、物体モデルと投擲速度を実機学習で修正する技術が開示されている。なお、非特許文献2記載の技術では、物体間における学習済みモデルの転用はない。
【0008】
非特許文献3には、モデル誤差をニューラルネットで学習する技術が開示されている。なお、非特許文献3記載の技術では、ロボットの位置、角度、物体サイズなど、作業に関する大きな変化は考慮されていない。
【先行技術文献】
【非特許文献】
【0009】
【文献】"MULTIPOLAR: Multi-Source Policy Aggregation for Transfer Reinforcement Learning between Diverse Environmental Dynamics", 28 Sep 2019, Mohammadamin Barekatain, Ryo Yonetani, Masashi Hamaya, <URL:https://arxiv.org/abs/1909.13111>
【文献】"TossingBot: Learning to Throw Arbitrary Objects with Residual Physics", 27 Mar 2019, Andy Zeng, Shuran Song, Johnny Lee, Alberto Rodriguez, Thomas Funkhouser, <URL: https://arxiv.org/abs/1903.11239>
【文献】"Residual Reinforcement Learning for Robot Control", 7 Dec 2018, Tobias Johannink, Shikhar Bahl, Ashvin Nair, Jianlan Luo, Avinash Kumar, Matthias Loskyll, Juan Aparicio Ojea, Eugen Solowjow, Sergey Levine <URL:https://arxiv.org/abs/1812.03201>
【発明の概要】
【発明が解決しようとする課題】
【0010】
非特許文献1に開示の技術では、モデルフリー強化学習に長時間の訓練が必要であるため、実機への適用が困難である、という問題があった。
【0011】
また、非特許文献2に開示の技術では、特定の作業専用に制御装置及び計画が設計されているため、新規作業への転用が困難である、という問題があった。
【0012】
また、非特許文献3に開示の技術では、特定の作業のモデル化誤差を修正するため、新規作業への転用が困難である、という問題があった。
【0013】
本発明は、上記の点に鑑みてなされたものであり、作業を達成する制御則をロボットが自律的に獲得する際に、短時間で学習することができる学習装置、学習方法、学習プログラム、制御装置、制御方法、及び制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0014】
開示の第1態様は、学習装置であって、計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成する作成部と、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する指令生成部と、出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する学習部と、を備える。
【0015】
上記第1態様において、前記指令生成部は、前記制御周期毎に、前記制御対象に対する指令又は指令系列の1の候補を生成し、生成した候補に基づく報酬を算出し、報酬をより大きくするように指令又は指令系列の候補を1回以上更新することによって、前記指令又は指令系列の候補を生成するようにしてもよい。
【0016】
上記第1態様において、前記指令生成部は、前記制御周期毎に、前記制御対象に対する指令又は指令系列の複数の候補を生成し、その後、前記複数の候補のそれぞれから予測される前記制御対象の状態又は状態系列を取得するようにしてもよい。
【0017】
上記第1態様において、前記集約状態遷移モデルは、前記集約部において前記複数の状態遷移モデルの出力をそれぞれの前記出力についての集約重みにしたがい統合する構造であってもよい。
【0018】
上記第1態様において、前記学習部は、前記集約重みを更新するようにしてもよい。
【0019】
上記第1態様において、前記集約状態遷移モデルは、前記複数の状態遷移モデルと並列に誤差補償モデルを含み、前記学習部は、前記誤差補償モデルを更新するようにしてもよい。
【0020】
開示の第2態様は、学習方法であって、コンピュータが、計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成し、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行し、出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する処理を実行する。
【0021】
開示の第3態様は、学習プログラムであって、コンピュータに、前記計測された制御対象の状態及び前記制御対象に対する指令に基づき前記制御対象の次状態を予測する複数の状態遷移モデル、及び、前記複数の状態遷移モデルによる予測結果を集約する集約部、を含む集約状態遷移モデルを作成し、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行し、出力される前記指令に対応して予測される前記制御対象の次状態と、前記次状態に対応する前記制御対象の計測された状態と、の間の誤差が小さくなるように前記集約状態遷移モデルを更新する処理を実行させる。
【0022】
開示の第4態様は、制御装置であって、第1態様に係る学習装置により学習された集約状態遷移モデルを記憶する記憶部と、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する指令生成部と、を備える。
【0023】
開示の第5態様は、制御方法であって、コンピュータが、第1態様に係る学習装置により学習された集約状態遷移モデルを記憶する記憶部から前記集約状態遷移モデルを取得し、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する処理を実行する。
【0024】
開示の第6態様は、制御プログラムであって、コンピュータに、第1態様に係る学習装置により学習された集約状態遷移モデルを記憶する記憶部から前記集約状態遷移モデルを取得し、計測された前記制御対象の状態を入力し、前記制御対象に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態、及び、前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する処理を実行させる。
【発明の効果】
【0025】
本発明によれば、作業を達成する制御則をロボットが自律的に獲得する際に、短時間で学習することができる。
【図面の簡単な説明】
【0026】
図1】学習フェーズにおけるロボットシステムの構成図である。
図2】(A)はロボット10の概略構成を示す図、(B)はロボットのアームの先端側を拡大した図である。
図3】学習装置のハードウェア構成を示すブロック図である。
図4】集約状態遷移モデルの構成図である。
図5】既知モデル群を示す図である。
図6】ペグの嵌め込み作業を構成する操作プリミティブ(MP)を説明するための図である。
図7】学習処理のフローチャートである。
図8】学習処理の他の例を示すフローチャートである。
図9】運用フェーズにおけるロボットシステムの構成図である。
【発明を実施するための形態】
【0027】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0028】
図1は、学習フェーズにおけるロボットシステムの構成を示す。学習フェーズにおいては、ロボットシステム1は、ロボット10、状態観測センサ30、及び学習装置40を有する。
【0029】
(ロボット)
【0030】
図2(A)、図2(B)は、制御対象の一例としてのロボット10の概略構成を示す図である。本実施形態におけるロボット10は、6軸垂直多関節ロボットであり、アーム11の先端11aに柔軟部13を介してグリッパ(ハンド)12が設けられる。ロボット10は、グリッパ12によって部品(例えばペグ)を把持して穴に嵌め込む嵌め込み作業を行う。
【0031】
図2(A)に示すように、ロボット10は、関節J1~J6を備えた6自由度のアーム11を有する。各関節J1~J6は、図示しないモータによりリンク同士を矢印C1~C6の方向に回転可能に接続する。ここでは、垂直多関節ロボットを例に挙げたが、水平多関節ロボット(スカラーロボット)であってもよい。また、6軸ロボットを例に挙げたが、5軸や7軸などその他の自由度の多関節ロボットであってもよく、パラレルリンクロボットであってもよい。
【0032】
グリッパ12は、1組の挟持部12aを有し、挟持部12aを制御して部品を挟持する。グリッパ12は、柔軟部13を介してアーム11の先端11aと接続され、アーム11の移動に伴って移動する。本実施形態では、柔軟部13は各バネの基部が正三角形の各頂点になる位置関係に配置された3つのバネ13a~13cにより構成されるが、バネの数はいくつであってもよい。また、柔軟部13は、位置の変動に対して復元力を生じて、柔軟性が得られる機構であればその他の機構であってもよい。例えば、柔軟部13は、バネやゴムのような弾性体、ダンパ、空気圧または液圧シリンダなどであってもよい。柔軟部13は、受動要素によって構成されることが好ましい。柔軟部13により、アーム11の先端11aとグリッパ12は、水平方向および垂直方向に、5mm以上、好ましくは1cm以上、更に好ましくは2cm以上、相対移動可能に構成される。
【0033】
グリッパ12がアーム11に対して柔軟な状態と固定された状態とを切り替えられるような機構を設けてもよい。
【0034】
また、ここではアーム11の先端11aとグリッパ12の間に柔軟部13を設ける構成を例示したが、グリッパ12の途中(例えば、指関節の場所または指の柱状部分の途中)、アームの途中(例えば、関節J1~J6のいずれかの場所またはアームの柱状部分の途中)に設けられてもよい。また、柔軟部13は、これらのうちの複数の箇所に設けられてもよい。
【0035】
ロボットシステム1は、上記のように柔軟部13を備えるロボット10の制御を行うためのモデルを、機械学習(例えばモデルベース強化学習)を用いて獲得する。ロボット10は柔軟部13を有しているため、把持した部品を環境に接触させても安全であり、また、制御周期が遅くても嵌め込み作業などを実現可能である。一方、柔軟部13によってグリッパ12および部品の位置が不確定となるため、解析的な制御モデルを得ることは困難である。そこで、本実施形態では機械学習を用いて制御モデルを獲得する。
【0036】
制御モデルの機械学習を単純に行うと、非常に多くのデータ収集が必要となり、学習に時間がかかる。そこで、ロボットシステム1では、詳細は後述するが、既に学習済みの複数の状態遷移モデルを集約した集約状態遷移モデル20を学習する。すなわち、既に学習済みの複数の状態遷移モデルを転移元の状態遷移モデルとして、これらを集約した集約状態遷移モデル20を転移学習により作成する。これにより、一から状態遷移モデルを学習する場合と比較して、短時間で学習することができる。
【0037】
(状態観測センサ)
【0038】
状態観測センサ30は、ロボット10の状態を観測し、観測したデータを状態観測データとして出力する。状態観測センサ30としては、例えば、ロボット10の関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ、力関連センサ等が用いられる。ロボット10の状態として、各関節の角度からアーム11の先端11aの位置・姿勢が特定でき、視覚センサおよび/または力関連センサから部品(作業対象物)の姿勢が推定できる。モーションキャプチャ用のマーカーがグリッパ12に取り付けられている場合には、ロボット10の状態としてグリッパ12の位置・姿勢が特定でき、グリッパ12の位置・姿勢から部品(作業対象物)の姿勢が推定できる。
【0039】
力関連センサとは、力覚センサおよびトルクセンサの総称であり、さらにセンサを部品と接触する部位に設ける場合には触覚センサも含む総称である。力関連センサは、ロボット10のグリッパが部品から受ける力を検出するように、グリッパ12が部品を把持する部分の表面や、グリッパ12内の関節部分に設けてもよい。グリッパ12とアーム11との間が柔軟部である場合、力関連センサは、グリッパ12とアーム11との間に設けてグリッパ12とアーム11との間に働く力を検出してもよい。力関連センサは、例えば、1要素または多要素の、1軸、3軸、または6軸の力をロボット10の状態として検出するセンサである。力関連センサを用いることで、グリッパ12が部品をどのように把持しているか、すなわち部品の姿勢をより精度良く把握でき、適切な制御が可能となる。
【0040】
また、視覚センサによっても、グリッパ12自体やグリッパ12が把持している部品の位置および姿勢をロボット10の状態として検出できる。グリッパ12とアーム11との間が柔軟部である場合、アーム11に対するグリッパ12の変位を検出する変位センサによってもアーム11に対するグリッパ12の位置・姿勢をロボット10の状態として特定することができる。
【0041】
このように、各種のセンサによって、柔軟部13、柔軟部13よりも対象物を把持する側のロボット10の部位、および把持されている部品の少なくとも何れかについての状態を検出することができ、各種センサの検出結果を状態観測データとして取得することができる。
【0042】
(学習装置)
【0043】
学習装置40は、機械学習を用いてロボット10の集約状態遷移モデル20を獲得する。
【0044】
学習装置40によって獲得された集約状態遷移モデル20は、ロボット10を制御する制御装置に搭載されて、実作業に供される。この制御装置は、学習機能を有していてもよく、その場合には追加の学習を行ってもよい。
【0045】
本適用例によれば、ロボット10が柔軟部13を有しているため、複雑な力制御を行うことなく、グリッパ12または対象物を環境に接触させながら動作することが容易である。また、あまり減速せずにグリッパまたは対象物を環境に接触させることが可能であるので、高速な作業ができる。また、機械学習によって学習モデルを獲得するため、簡便にシステム構築が行える。
【0046】
図3は、本実施形態に係る学習装置のハードウェア構成を示すブロック図である。図3に示すように、学習装置40は、一般的なコンピュータ(情報処理装置)と同様の構成であり、CPU(Central Processing Unit)40A、ROM(Read Only Memory)40B、RAM(Random Access Memory)40C、ストレージ40D、キーボード40E、マウス40F、モニタ40G、及び通信インタフェース40Hを有する。各構成は、バス40Iを介して相互に通信可能に接続されている。
【0047】
本実施形態では、ROM40B又はストレージ40Dには、学習モデルの学習処理を実行するための学習プログラムが格納されている。CPU40Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU40Aは、ROM40B又はストレージ40Dからプログラムを読み出し、RAM40Cを作業領域としてプログラムを実行する。CPU40Aは、ROM40B又はストレージ40Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。ROM42は、各種プログラム及び各種データを格納する。RAM40Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ40Dは、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。キーボード40E及びマウス40Fは入力装置の一例であり、各種の入力を行うために使用される。モニタ40Gは、例えば、液晶ディスプレイであり、ユーザインタフェースを表示する。モニタ40Gは、タッチパネル方式を採用して、入力部として機能してもよい。通信インタフェース40Hは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0048】
次に、学習装置40の機能構成について説明する。
【0049】
図1に示すように、学習装置40は、その機能構成として、作成部42、学習部43、及び指令生成部44を有する。各機能構成は、CPU40AがROM40Bまたはストレージ40Dに記憶された学習プログラムを読み出して、RAM40Cに展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0050】
作成部42は、集約状態遷移モデル20を作成する。図4に示すように、集約状態遷移モデル20は、計測された制御対象のロボット10の状態及びロボット10に対する指令に基づきロボット10の次状態を予測して出力する複数の状態遷移モデル32、及び、複数の状態遷移モデル32による予測結果を集約する集約部34と、誤差補償モデル36と、を含む。
【0051】
複数の状態遷移モデル32は、既に学習済みの状態遷移モデルであり、図5に示す既知モデル群31に含まれる学習済みの複数の状態遷移モデル32の中から作成部42によって選択される。本実施形態では、集約状態遷移モデル20が、作成部42によって選択された3つの状態遷移モデル32A~32Cを含む場合について説明するが、状態遷移モデルの数はこれに限られるものではなく、2以上の状態遷移モデルを含んでいれば良い。作成部42は、既知モデル群31から選択された状態遷移モデル32A~32C、集約部34、及び誤差補償モデル36を組み合わせて集約状態遷移モデル20を作成する。なお、既知モデル群31は、学習装置40内に記憶されていてもよいし、外部サーバに記憶されていてもよい。
【0052】
学習部43は、指令生成部44から出力される指令に対応して予測されるロボット10の次状態と、次状態に対応するロボット10の計測された状態、すなわち状態観測センサ30で観測された状態と、の間の誤差が小さくなるように集約状態遷移モデル20を更新する。
【0053】
指令生成部44は、最適行動計算部45を備える。最適行動計算部45は、ロボット10の状態に応じた最適な行動を計算し、計算した行動に対応する指令をロボット10に出力する。最適な行動の計算には、モデル予測制御の手法を用いることができる。モデル予測制御は、制御対象のモデルを利用し、制御周期毎に、将来の状態の予測に基づいて報酬が最大となる最適な指令値を求め、その指令値を用いて制御する手法である。本実施形態では、制御対象のモデルとして集約状態遷移モデル20を用いる。
【0054】
具体的には、最適行動計算部45は、制御周期毎に、ロボット10の状態x(t)を表すデータを状態観測センサ30から取得する。ここでは、取得されるデータを状態観測データと称する。状態観測データは、例えばグリッパ12あるいはグリッパ12によって把持される部品の位置および姿勢を特定可能なデータを含む。最適行動計算部45は、例えば、関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ、力関連センサ(力覚センサ、トルクセンサ、触覚センサ)、変位センサ等を含む状態観測センサ30から状態観測データを取得する。
【0055】
また、最適行動計算部45は、ロボット10による動作が所定の成功条件を満たしたか否かを判定する。後述するように、本実施形態では、例えばペグの嵌め込み作業という1つの作業(スキル)を、複数のプリミティブ操作(MP)に分割して学習する。最適行動計算部45は、各MPに定められた成功条件を満たすか否かを判定する。成功条件の例は、例えば、ペグが穴近傍(非接触)に位置する、ペグが穴付近の表面に接触する、ペグの先端が穴にかかる、ペグが穴にかかりかつ穴と平行である、ペグが穴に完全に嵌め込まれる、などである。最適行動計算部45は、状態観測データに基づいて判定を行ってもよいし、状態観測データとは異なるデータに基づいて判定を行ってもよい。
【0056】
また、最適行動計算部45は、制御対象であるロボット10に対する指令の複数の候補を生成し、ロボット10の状態x(t)及びロボット10に対する指令の複数の候補から集約状態遷移モデルを用いて予測されるロボット10の複数の次状態x(t+1)を取得し、ロボット10の複数の次状態x(t+1)のそれぞれに対応する報酬を算出し、その結果に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する。指令は、行動u(t)と表現することもある。報酬は、例えば実行中のMPにおける完了状態でのグリッパ12(又はペグ54)の状態(目標状態)と現在のグリッパ12(又はペグ54)の状態との間の距離が小さいほど大きくなる報酬である。実行中のMPにおけるグリッパ12(又はペグ54)の位置及び姿勢の目標軌道を設定し、現在のグリッパ12(又はペグ54)の位置及び姿勢と目標軌道との誤差が小さいほど大きくなる報酬を用いてもよい。
【0057】
最適行動計算部45は、複数の時間ステップにわたる指令系列の複数の候補を生成してもよい。その場合、最適行動計算部45は、各指令系列の2番目以降の時間ステップの指令の候補から予測されるロボット10の状態についても対応する報酬を算出したうえで、指令系列の候補毎に各時間ステップの指令の報酬の総和を算出し、算出した総和を各指令系列の候補に対応する報酬としてもよい。あるいは、各指令系列の候補の最後の指令に対応する報酬を各指令系列の候補に対応する報酬としてもよい。最適行動計算部45は、指令系列に対応する報酬を最大化するように指令系列を生成してもよい。
【0058】
すなわち、最適行動計算部45は、制御対象であるロボット10に対する指令又は指令系列の複数の候補を生成し、前記制御対象の状態及び前記制御対象に対する指令又は指令系列の複数の候補から前記集約状態遷移モデルを用いて予測される前記制御対象の複数の状態又は状態系列を取得し、前記制御対象の複数の状態又は状態系列のそれぞれに対応する報酬を算出し、算出した報酬に基づいて報酬を最大化する指令を生成して出力する各処理を制御周期毎に実行する。
【0059】
最適行動計算部45は、制御周期毎に、制御対象であるロボット10に対する指令又は指令系列の1の候補を生成し、その候補に基づく報酬を算出し、報酬をより大きくするように指令又は指令系列の候補を1回以上更新することによって、指令又は指令系列の複数の候補を生成してもよい。
【0060】
最適行動計算部45は、制御周期毎に、制御対象であるロボット10に対する指令又は指令系列の複数の候補を生成し、その後、複数の候補のそれぞれから予測されるロボット10の状態又は状態系列を取得してもよい。
【0061】
なお、図1に示すように、本実施形態では、最適行動計算部45及び集約状態遷移モデル20を含む構成をポリシ46と称する。ポリシ46は、観測した状態を受け取り、なすべき行動を返す存在(関数、写像、モジュールなど)を意味し、方策、制御器とよばれることもある。
【0062】
状態遷移モデル32は、状態x(t)とそのときの行動u(t)を入力として、行動後の次状態x(t+1)を出力するモデルである。最適行動計算部45は、状態x(t)を入力として、取るべき行動u(t)を生成する。最適行動計算部45は、累積期待報酬が最大化されるように取るべき行動(指令)u(t)を生成する。最適行動計算部45は、取るべき行動u(t)を生成するためのモデルを学習するようにしてもよい。最適行動計算部45は、生成された行動u(t)に基づいて、ロボット10に対する指令を生成し、送信する。
【0063】
ここで、本実施形態において利用されうる状態観測データについて説明する。状態観測データの例は、グリッパ12の対象物に接触する部位における触覚分布(たとえば圧力分布)のデータ、グリッパ12の挟持部12aに設けられた力覚センサによって測定される力、ロボット10の関節のエンコーダから取得される各関節の角度および角速度、ロボット10の関節にかかるトルク、ロボット10のアームに取り付けられた視覚センサによって得られる画像、力覚センサによって測定されるロボット10の柔軟部13が受ける力、柔軟部13に設けた変位センサによって測定される柔軟部13を挟む部位の間の相対的な変位、モーションキャプチャによって測定されるグリッパ12の位置および姿勢が挙げられる。
【0064】
関節エンコーダからのデータから、アーム11の先端11aの位置、姿勢(角度)、速度、姿勢の変化についての角速度が求められる。なお、各時刻の位置および姿勢(角度)が取得できればその時間変化(速度、角速度)は取得できるので、以下では時間変化が取得可能であることの言及は省略することもある。視覚センサからのデータによって、アーム11に対するグリッパ12および把持対象物の位置および姿勢が求められる。力関連センサからのデータによっても、アーム11に対するグリッパ12の位置および姿勢、または、グリッパ12に対する把持対象物の位置および姿勢が求められる。
【0065】
また、グリッパ12にモーションキャプチャ用のマーカーが取り付けられている場合には、モーションキャプチャデータのみによってグリッパ12の位置および姿勢を取得できる。アームに対する把持対象物の位置および姿勢は視覚センサや力関連センサを用いて求めてもよい。また、把持対象物にもマーカーが取り付けられていれば、把持対象物の位置および姿勢も取得できる。
【0066】
(モーションプリミティブ)
【0067】
次に、モーションプリミティブについて説明する。本実施形態で学習するペグの嵌め込み作業は、複数の動作区間に分割され、それぞれの区間ごとに制御モデルの学習が行われる。この動作区間のそれぞれが、モーションプリミティブ(MotionPrimitive)である。モーションプリミティブは、MP、プリミティブ操作とも呼ばれる。
【0068】
図6を参照して、本実施形態におけるペグの嵌め込み作業を構成するMPについて説明する。図6においては、51はアーム先端、52はグリッパ、53は柔軟部、54は把持対象物(ペグ)、55は穴を表す。図6の、符号56および57はそれぞれ、各MPにおいて考慮する状態および行動を示す。
【0069】
ペグ嵌め込み作業全体の目的は、ペグ54を穴55に挿入することである。ペグの嵌め込み作業は、次の5つのMPに分割され、各MPにおいて指定された目標値との誤差が閾値以下になると次のMPに遷移する。
【0070】
n1:アプローチ
n2:コンタクト
n3:フィット
n4:アライン
n5:インサート
【0071】
「n1:アプローチ」は、グリッパ52を任意の初期位置から穴55付近まで接近させる動作である。「n2:コンタクト」は、ペグ54を穴55付近の表面に接触させる動作である。柔軟部53を固定モードと柔軟モードで切り替え可能な場合には、接触前に柔軟部53を柔軟モードに切り替える。「n3:フィット」は、ペグ54が表面に接触した状態を保ったままペグ54を移動させて、ペグ54の先端が穴55の先端に嵌まるようにする動作である。「n4:アライン」は、ペグ54の先端が穴55に嵌まって接触している状態を保ったまま、ペグ54の姿勢が穴55に平行(この例では垂直)になるようにする動作である。「n5:インサート」は、ペグ54を穴55の底まで挿入する動作である。
【0072】
「n1:アプローチ」および「n2:コンタクト」、すなわち、ペグ54が表面に接触していないMPでは位置制御によってペグ54を目標位置まで移動させればよい。「n3:フィット」「n4:アライン」「n5:インサート」、すなわち、ペグ54が環境に接触した状態を維持するMP(接触プリミティブ操作)では、機械学習に基づく速度制御によりグリッパ52およびペグ54の位置を制御する。接触MPにおける機械学習では、状態空間および行動空間の次元を削減した学習処理により集約状態遷移モデル20が学習される。
【0073】
ここでは、グリッパ52およびペグ54の移動がyz平面内で行われるものとして説明する。「n1:アプローチ」MPでは、ペグ54のyz位置を入力として、yz面内での位置制御を行う。「n2:コンタクト」MPでは、ペグ54のz位置を入力として、z方向の位置制御を行う。
【0074】
「n3:フィット」MPでは、環境拘束とアームの柔軟部53によりz方向を陽に考慮しないモデルの表現が可能である。状態はy方向の位置・速度、行動はy方向の速度指令とすることができる。ペグ54の先端が穴55に嵌まったときのグリッパ52の位置を目標値とする。
【0075】
「n4:アライン」MPでは、状態はグリッパ52の角度と角速度、行動はy方向の速度指令である。柔軟手首は6自由度(yz2次元平面上では3自由度)の変位が可能であるため、ペグ54の先端と穴が接触した状態下では、y方向の並進運動のみでペグ54の回転運動が可能である。ペグ54の姿勢が垂直になったときのグリッパ52の角度を目標値とする。
【0076】
「n5:インサート」MPでは、状態はz方向の位置と速度、行動はy方向とz方向の速度指令位置である。y方向の速度指令は、ペグ54のジャミング(挿入途中で動かなくなること)を回避するために導入されている。ペグ54が穴55の底に到達したときのグリッパの位置を目標位置とする。
【0077】
(集約状態遷移モデル)
【0078】
図4に示すように、集約状態遷移モデル20は、本実施形態では一例として3つの状態遷移モデル32A~32Cと、集約部34と、誤差補償モデル36と、を含む。
【0079】
集約状態遷移モデル20は、集約部34において状態遷移モデル32A~32Cの出力をそれぞれの出力についての集約重みにしたがい統合する構造である。本実施形態では、集約状態遷移モデル20は、集約部34において状態遷移モデル32A~32Cに加えて誤差補償モデル36の出力をそれぞれの出力についての集約重みにしたがい統合する構造である。なお、統合の方法は線形結合でもいいし、多層パーセプトロン(Multilayer Perceptron:MLP)等を用いて非線形な統合をしても良い。また、線形結合の場合、その重みの一部をユーザーが設定できるようにしてもよい。また、誤差補償モデル36は学習可能(更新可能)なモデルであり、統合パラメータと同時に学習される(residual learning)。また、状態遷移モデル32A~32Cが学習可能(微分可能)である場合、統合パラメータと同時に追加学習しても良い。
【0080】
状態遷移モデル32A~32C、誤差補償モデル36には、最適行動計算部45から出力された指令が入力される。状態遷移モデル32A~32C、誤差補償モデル36は、入力された指令に対応する状態を集約部34に出力する。集約部34は、入力された状態を集約して最適行動計算部45及び学習部43に出力する。
【0081】
学習部43は、集約重み、すなわち、状態遷移モデル32A~32C及び誤差補償モデル36の各々からの出力に対する重みを更新することにより集約状態遷移モデル20を学習する。具体的には、学習部43は、状態観測センサ30により計測された状態と、集約部34から出力された予測された状態と、の誤差を予測誤差として算出し、予測誤差をより小さくする集約重みを算出し、算出した新たな集約重みを集約部34に設定することにより集約部34を更新する。
【0082】
また、集約状態遷移モデル20は、状態遷移モデル32A~32Cと並列に誤差補償モデル36を含み、学習部43は、予測誤差をより小さくする誤差補償モデル36のモデルパラメータを算出し、算出した新たなモデルパラメータを誤差補償モデル36に設定することにより誤差補償モデル36を更新する。なお、本実施形態では、集約状態遷移モデル20が誤差補償モデル36を含む場合について説明するが、誤差補償モデル36を含まない構成にしてもよい。
【0083】
状態遷移モデル32Aは、環境Aで既に学習された状態遷移モデルである。状態遷移モデル32Bは、環境Aと異なる環境Bで既に学習された状態遷移モデル32である。状態遷移モデル32Cは、環境A及び環境Bと異なる環境Cで既に学習された状態遷移モデル32である。
【0084】
ここで、異なる環境とは、ロボット10が目的の作業を実行する場合における作業条件が異なることをいう。異なる環境の一例としては、ロボット10が操作する部品の種類が異なることが挙げられる。具体的には、例えばロボット10が操作するペグ54の形、太さ、及び長さの少なくとも1つが異なる場合である。また、異なる環境の一例として、ロボット10が操作する部品の組み付け対象の種類が異なることが挙げられる。具体的には、ペグ54が挿入される穴55の位置、方向、及び形状の少なくとも1つが異なる場合である。
【0085】
このように、集約状態遷移モデル20は、各々異なる環境で既に学習された状態遷移モデル32A~32Cを含む。
【0086】
(学習処理)
【0087】
図7は、機械学習を用いて学習装置40が集約状態遷移モデル20を学習する学習処理の流れを示すフローチャートである。図7に示すフローチャートは1つのMPに対する学習処理であり、それぞれのMPについてこの学習処理が適用される。
【0088】
ステップS100において、学習装置40は、使用する集約状態遷移モデル20を作成する。すなわち、作成部42が、既知モデル群31から状態遷移モデル32A~32Cを選択し、集約部34、及び誤差補償モデル36を組み合わせて集約状態遷移モデル20を作成する。
【0089】
以下で説明するステップS102~ステップS110の処理は、制御周期に従って一定の時間間隔で実行される。制御周期は、ステップS102~ステップS110の処理を実行可能な時間に設定される。
【0090】
ステップS101では、学習装置40は、前回の制御周期を開始してから制御周期の長さに相当する所定時間が経過するまで待機する。なお、ステップS101の処理を省略し、前の制御周期の処理が完了したら直ぐに次の制御周期の処理が開始されるようにしてもよい。
【0091】
ステップS102では、学習装置40は、ロボット10の状態を取得する。すなわち、状態観測センサ30からロボット10の状態観測データを取得する。具体的には、指令生成部44は、状態観測センサ30で観測されたグリッパ52の位置、速度、角度、角速度のデータを状態観測データとして取得する。以下では、ステップS102で取得した状態を状態Aと称する。
【0092】
ステップS103では、学習装置40は、ステップS102で取得した状態Aが予め定めた終了条件を充足するか否かを判定する。ここで、終了条件を充足する場合とは、例えば状態Aと目標状態との差が規定値以内の場合である。
【0093】
ステップS103の判定が肯定判定の場合は、本ルーチンを終了する。一方、ステップS103の判定が否定判定の場合は、ステップS104へ移行する。
【0094】
ステップS104では、学習装置40は、前回の制御周期のステップS110で集約状態遷移モデル20を用いて取得したロボット10の予測される状態Cと、ステップS102で取得したロボット10の実測された状態Aと、の間の誤差が今後はより小さくなるように集約状態遷移モデル20を更新する。すなわち、学習部43が、前回の制御周期のステップS110で出力される指令Bに対応して予測されるロボット10の次状態である状態Cと、状態Cに対応するロボット10の計測された状態Aと、の間の誤差が小さくなるように、集約重みを更新する。なお、最初の制御周期においては、ステップS104の処理はスキップされる。
【0095】
ステップS105では、ロボット10に対する指令又は指令系列の1の候補を生成する。具体的には、最適行動計算部45が、ステップS102で計測されたロボット10の状態Aを入力し、ロボット10に対する指令又は指令系列の1の候補を生成する。以下では、ロボット10に対する指令又は指令系列の1の候補を指令Aと称する。指令Aの生成には、例えばニュートン法を用いることができるが、これに限られるものではない。なお、最初の制御周期においては、指令Aはランダムに生成される。そして、2番目以降の制御周期においては、生成した指令Aにより前回の指令Aを更新する。
【0096】
ステップS106では、学習装置40は、ロボット10の状態又は状態系列を予測する。すなわち、最適行動計算部45は、ロボット10の状態A、及び、ロボット10に対する指令Aを集約状態遷移モデル20に出力する。これにより、集約状態遷移モデル20は、指令Aに対応するロボット10の次状態を予測し、予測された状態又は状態系列を最適行動計算部45に出力する。これにより、最適行動計算部45は、予測された状態又は状態系列を取得する。以下では、予測された状態又は状態系列を状態Bと称する。なお、最適行動計算部45では、指令Aが単独の指令の場合は、単独状態である状態Bが取得され、指令Aが指令の系列の場合は、状態の系列である状態Bが取得される。
【0097】
ステップS107では、学習装置40は、状態Bに対応する報酬を算出する。
【0098】
ステップS108では、学習装置40は、ステップS107で算出した報酬が規定条件を充足するか否かを判定する。ここで、規定条件を充足する場合とは、例えば報酬が規定値を超えた場合、または、ステップS105~S108の処理のループを規定回数実行した場合等である。規定回数は、例えば10回、100回、1000回等に設定される。
【0099】
そして、ステップS108の判定が肯定判定の場合はステップS109へ移行し、ステップS108の判定が否定判定の場合はステップS105へ移行する。
【0100】
ステップS109では、学習装置40は、ステップS107で算出したロボット10の状態又は状態系列に対応する報酬に基づいて指令Bを生成して出力する。なお、指令Bは、報酬が規定条件を充足したときの指令Aそのものでもよいし、指令Aの変化に対応する報酬の変化の履歴から予測される、更に報酬を最大化できる指令としてもよい。また、指令Aが指令系列である場合には、指令系列の中の最初の指令に基づいて指令Bを決定する。
【0101】
ステップS110では、学習装置40は、ロボット10の状態又は状態系列を予測する。すなわち、最適行動計算部45は、ロボット10の状態A、及び、ロボット10に対する指令Bを集約状態遷移モデル20に出力する。これにより、集約状態遷移モデル20は、指令Bに対応するロボット10の次状態である状態Cを予測し、予測された状態又は状態系列を最適行動計算部45に出力する。これにより、最適行動計算部45は、予測された状態又は状態系列を取得する。
【0102】
このように、制御周期毎にステップS101~S110の処理を繰り返す。
【0103】
(学習処理の他の例)
【0104】
次に、学習処理の他の例について図8に示すフローチャートを参照して説明する。なお、図7と同一の処理を行うステップには同一符号を付し、詳細な説明を省略する。
【0105】
図8に示すように、ステップS105A~S109Aの処理が図7に示す処理と異なる。
【0106】
ステップS105Aでは、ロボット10に対する指令又は指令系列の複数の候補を生成する。具体的には、最適行動計算部45が、ステップS102で計測されたロボット10の状態Aを入力し、ロボット10に対する指令又は指令系列の複数の候補(指令A)を生成する。指令Aの生成には、例えばクロスエントロピー法(cross-entropy method:CEM)を用いることができるが、これに限られるものではない。
【0107】
ステップS106Aでは、学習装置40は、ロボット10の状態又は状態系列を予測する。すなわち、最適行動計算部45は、ロボット10の状態A、及び、ロボット10に対する指令Aを集約状態遷移モデル20に出力する。これにより、集約状態遷移モデル20は、ロボット10に対する指令又は指令系列の複数の候補の各候補に対応するロボット10の次状態を予測し、予測された状態又は状態系列を最適行動計算部45に出力する。これにより、最適行動計算部45は、各候補について予測された状態又は状態系列(状態B)を取得する。
【0108】
ステップS107Aでは、学習装置40は、各状態Bに対応する報酬を算出する。
【0109】
ステップS109Aでは、学習装置40は、ステップS107Aで算出したロボット10の各状態Bのそれぞれに対応する報酬に基づいて報酬を最大化する指令Bを生成して出力する。例えば、各状態Bに対応する指令Aと報酬との対応関係を表す関係式を算出し、算出した関係式によって表される曲線上における最大の報酬に対応する指令を指令Bとする。これにより、報酬を最大化した指令が得られる。
【0110】
(制御装置)
【0111】
図9は、ロボットシステム1の運用フェーズにおける構成を示す。運用フェーズでは、ロボットシステム1は、ロボット10と制御装置80を有する。
【0112】
制御装置80のハードウェア構成は学習装置40と同様であるので繰り返しの説明は省略する。制御装置80は、その機能構成として、指令生成部44を有する。各機能構成は、CPU40AがROM40Bまたはストレージ40Dに記憶された制御プログラムを読み出して、RAM33に展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0113】
指令生成部44は、最適行動計算部45及び集約状態遷移モデル20を含む。集約状態遷移モデル20は、記憶部の一例としてのRAM40Cに記憶される。なお、集約状態遷移モデル20は、RAM40Cのように一時的に記憶する記憶部ではなく、ストレージ40Dに記憶されてもよい。また、集約状態遷移モデル20が外部サーバに記憶されている場合は、外部サーバからからダウンロードしてRAM40Cに一時的に記憶してもよいし、ストレージ40Dに記憶してもよい。また、学習装置40による学習時にRAM40Cに展開された状態の集約状態遷移モデル20を用いてもよい。
【0114】
最適行動計算部45は、学習装置40により学習済みの集約状態遷移モデル20を用いて、ロボット10に行わせる動作に対応する指令を生成する。図9における最適行動計算部45は、学習済みの集約状態遷移モデル20を用いる点が図1における最適行動計算部45と異なるだけなので、ここでの詳細な説明は省略する。
【0115】
指令生成部44は、「フィット」以降の接触MPにおいて、現在のMPの成功条件が満たされたと判断された場合は、次のMPに対応する集約状態遷移モデル20及び取るべき行動(指令)u(t)を生成するモデルに切り替える。具体的には、「フィット」が成功した場合は「アライン」に対応する集約状態遷移モデル20に切り替え、「アライン」が成功した場合は「インサート」に対応する集約状態遷移モデル20及び取るべき行動(指令)u(t)を生成するモデルに切り替える。「インサート」が成功した場合は、ペグ54の嵌め込み作業が完了したと判定する。
【0116】
なお、それぞれのMPにおいてあらかじめ定められたタイムステップ以内に終了条件を満たさない場合、ロボット10に過剰な力がかかった場合、指定領域外にロボットが到達した場合、にはタスクを中断して初期状態に戻る。
【0117】
制御装置80は、学習装置40とは別の制御装置であってもよいし、学習装置40の一部を構成する制御装置であってもよい。例えば、学習に用いた学習装置40をそのまま制御装置40として使用し、学習済みの集約状態遷移モデル20を用いた制御を行ってもよい。また、制御装置40は、学習を継続しながら制御を行ってもよい。
【0118】
このように、本実施形態では、既に学習された状態遷移モデル32A~32Cを用いて新たな環境における集約状態遷移モデル20を学習するので、作業を達成する制御則をロボット10が自律的に獲得する際に、短時間で学習することができる。
【0119】
<変形例>
【0120】
上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。本発明は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0121】
上記の例では、ペグ54の嵌め込み作業を例に説明したが、学習および制御対象の作業は任意の作業であってよい。ただし、本発明は、グリッパ52自体もしくはグリッパ52が把持する部品が環境と接触するような動作を含む作業に好適である。また、上記の例では、把持対象物が環境に接触している動作区間(MP)のみで集約状態遷移モデル20の学習を行っているが、把持対象物またはグリッパ52が環境に接触していない動作区間(MP)においても集約状態遷移モデル20の学習を行ってもよい。また、作業を複数の動作区間に分割することなく集約状態遷移モデル20の学習を行ってもよい。すなわち、アプローチからインサート完了までを分割することなく、図7又は図8のフローチャートで示した処理を実行してもよい。なお、この場合の報酬は、例えばインサート完了状態でのグリッパ12(又はペグ54)の状態(目標状態)と現在のグリッパ12(又はペグ54)の状態との間の距離が小さいほど大きくなる報酬である。この距離は、3次元空間内での直線距離、位置・姿勢の6次元空間内での距離等を用いることができる。
【0122】
なお、上各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した学習処理及び制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0123】
また、上記各実施形態では、学習プログラム及び制御プログラムがストレージ40D又はROM40Bに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【符号の説明】
【0124】
1 ロボットシステム
10 ロボット
11 アーム
11a アーム先端
12 グリッパ
12a 挟持部
13 柔軟部
13a バネ
20 集約状態遷移モデル
22 記憶装置
26 ポリシ更新部
30 状態観測センサ
32A、32B、32C 状態遷移モデル
34 集約部
36 誤差補償モデル
40 学習装置
41 入力部
42 作成部
43 学習部
44 指令生成部
45 最適行動計算部
52 グリッパ
53 柔軟部
54 ペグ
55 穴
80 制御装置
図1
図2
図3
図4
図5
図6
図7
図8
図9