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

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

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

特開2024-176483学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム
<>
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図1
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図2
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図3
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図4
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図5
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図6
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図7
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図8
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図9
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図10
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図11
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図12
  • 特開-学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176483
(43)【公開日】2024-12-19
(54)【発明の名称】学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラム
(51)【国際特許分類】
   G06N 3/094 20230101AFI20241212BHJP
   B25J 13/00 20060101ALI20241212BHJP
【FI】
G06N3/094
B25J13/00 Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023095038
(22)【出願日】2023-06-08
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和4年度、国立研究開発法人科学技術振興機構、戦略的創造研究推進事業「簡単に使える柔軟マニピュレータの汎用技術獲得」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】小林 聖人
(72)【発明者】
【氏名】山田 潤
(72)【発明者】
【氏名】▲浜▼屋 政志
(72)【発明者】
【氏名】田中 一敏
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS26
3C707JS02
3C707KS03
3C707KT01
3C707KT04
3C707LV01
3C707LV02
3C707LW12
3C707MT01
(57)【要約】
【課題】人間の動作データからロボットの動作データを簡易に生成する。
【解決手段】学習済みモデル生成装置10は、学習用の人間の動作データを含む学習用データを取得する。学習済みモデル生成装置10は、学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する。
【選択図】図5
【特許請求の範囲】
【請求項1】
学習用の人間の動作データを含む学習用データを取得する学習用取得部と、
前記学習用取得部により取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する学習部と、
を含む学習済みモデル生成装置。
【請求項2】
前記動作データは、前記制御対象ロボットの状態yと行動aとを含んで構成されており、
前記制御対象ロボットの時刻tの状態yと前記制御対象ロボットの時刻tの行動aとが入力されると、前記制御対象ロボットの時刻t+1の状態yt+1を出力するフォワードダイナミクスモデルFと、
前記制御対象ロボットの時刻tの状態yと前記制御対象ロボットの時刻t+1の状態yt+1とが入力されると、前記制御対象ロボットが時刻tに取った行動aが出力されるインバースダイナミクスモデルF-1とが予め用意されており、
前記学習部は、
前記インバースダイナミクスモデルF-1に対して、前記ジェネレータから出力された前記制御対象ロボットの時刻tの状態y^と時刻t+1の状態yt+1^とを入力することにより、前記制御対象ロボットが時刻tに取ったであろう行動a を計算し、
前記フォワードダイナミクスモデルFに対して、前記状態y^と前記行動a とを入力することにより、前記制御対象ロボットの時刻t+1の状態yt+1 を計算し、
前記ジェネレータから出力された前記制御対象ロボットの時刻tの状態yt+1^と、計算された前記制御対象ロボットの時刻t+1の状態yt+1 との間の差分が小さくなるように、前記ジェネレータを学習させることにより、前記学習済みのジェネレータを生成する、
請求項1に記載の学習済みモデル生成装置。
【請求項3】
前記学習用データには、学習用の制御対象ロボットの動作データxが更に含まれており、
前記学習部は、学習用の制御対象ロボットの動作データxと、前記ジェネレータから出力された前記制御対象ロボットの状態y^との間の差分が小さくなるように、前記ジェネレータを学習させることにより、前記学習済みのジェネレータを生成する、
請求項1又は請求項2に記載の学習済みモデル生成装置。
【請求項4】
前記制御対象ロボットは、少なくとも1つ以上の腕部を備えたロボットである、
請求項1又は請求項2に記載の学習済みモデル生成装置。
【請求項5】
前記制御対象ロボットは、第1腕部と第2腕部とを備える双腕ロボットであり、
前記学習用データは、
前記第1腕部と前記人間の腕とによる協調動作を表すデモンストレーションデータと、
前記第2腕部と前記人間の腕とによる協調動作を表すデモンストレーションデータと、を更に含んで構成されている、
請求項4に記載の学習済みモデル生成装置。
【請求項6】
前記学習用データは、
前記制御対象ロボットのランダムな動作を表すランダムデータと、
前記人間のランダムな動作を表すランダムデータと、を更に含んで構成されている、
請求項1又は請求項2に記載の学習済みモデル生成装置。
【請求項7】
前記学習部は、
前記学習済みのジェネレータに対して、対象となる人間の動作を表す対象動作データを入力することにより、前記制御対象ロボットの動作データを生成し、
生成された前記制御対象ロボットの動作データに基づいて、前記制御対象ロボットを制御するための制御用学習済みモデルであって、前記動作データのうちの状態が入力されると、前記動作データのうちの行動を出力するための制御用学習済みモデルを生成する、
請求項1又は請求項2に記載の学習済みモデル生成装置。
【請求項8】
制御対象ロボットの状態を取得する取得部と、
請求項7に記載の学習済みモデル生成装置によって生成された前記制御用学習済みモデルに対して、前記取得部により取得された前記状態を入力することにより、前記状態に応じた前記制御対象ロボットの行動を生成する生成部と、
前記生成部により生成された前記行動を取るように、前記制御対象ロボットを制御する制御部と、
を備えた制御装置。
【請求項9】
学習用の人間の動作データを含む学習用データを取得し、
取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、
処理をコンピュータが実行する学習済みモデル生成方法。
【請求項10】
学習用の人間の動作データを含む学習用データを取得し、
取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、
処理をコンピュータに実行させるための学習済みモデル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラムに関する。
【背景技術】
【0002】
従来、2つの腕部を有する双腕ロボットに対して動作を教示させる技術が知られている(例えば、非特許文献1を参照)。この技術では、双腕ロボットが試行錯誤をすることにより所定の動作を学習する。
【0003】
また、複数の腕部を有するロボットに対して動作を教示する際に、複数の腕部の各々毎に異なる教示者によって動作を教示する技術が知られている(例えば、非特許文献2を参照)。この技術では、教示者がロボットを遠隔操作することにより、ロボットに対して動作を教示させる。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Rohan Chitnis, Shubham Tulsiani, Saurabh Gupta, Abhinav Gupta, "Intrinsic Motivation for Encouraging Synergistic Behavior", ICLR 2020.
【非特許文献2】Albert Tung, Josiah Wong, Ajay Mandlekar, Roberto Martin, Yuke Zhu, Li Fei-Fei, Silvio Savarese, "Learning Multi-Arm Manipulation Through Collaborative Teleoperation", ICRA, 2021.
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、人間がロボットに対して動作を教示する際には、ロボットの動作に関する物理的な制約も考慮する必要がある。例えば、ロボットの可動域が人間の可動域とは異なる場合には、人間が簡単に行える動作であっても、ロボットはその動作を実行することができない場合もあり得る。また、例えば、双腕ロボットのように、ロボットの可動部位が複数である場合には、その複数の可動部位を協調動作させる必要がある。人間がロボットに対して動作を教示する際に、このような複数の可動部位を協調動作させつつ、動作を教示させることは難しい。
【0006】
このため、人間がロボットに対して動作を教示することは難しい、という課題がある。
【0007】
本開示は、上記の点に鑑みてなされたものであり、人間の動作データからロボットの動作データを簡易に生成することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本開示に係る学習済みモデル生成装置は、学習用の人間の動作データを含む学習用データを取得する学習用取得部と、前記学習用取得部により取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する学習部と、を含む学習済みモデル生成装置である。
【0009】
また、本開示の学習済みモデル生成方法は、学習用の人間の動作データを含む学習用データを取得し、取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、処理をコンピュータが実行する学習済みモデル生成方法である。
【0010】
また、本開示の学習済みモデル生成プログラムは、学習用の人間の動作データを含む学習用データを取得し、取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、処理をコンピュータに実行させるための学習済みモデル生成プログラムである。
【発明の効果】
【0011】
本開示の学習済みモデル生成装置、制御装置、学習済みモデル生成方法、及び学習済みモデル生成プログラムによれば、人間の動作データからロボットの動作データを簡易に生成することができる。
【図面の簡単な説明】
【0012】
図1】本実施形態の概要を説明するための図である。
図2】本実施形態の概要を説明するための図である。
図3】本実施形態のフレームワークの概要を説明するための図である。
図4】本実施形態における敵対的生成ネットワークモデルを説明するための図である。
図5】本実施形態の学習済みモデル生成システムの概略構成を表すブロック図である。
図6】本実施形態に係る学習済みモデル生成装置のハードウェア構成を示すブロック図である。
図7】本実施形態の制御システムの概略構成を表すブロック図である。
図8】本実施形態に係る制御装置のハードウェア構成を示すブロック図である。
図9】本実施形態における学習済みモデル生成処理の流れを示すフローチャートである。
図10】本実施形態における学習済みモデル生成処理の流れを示すフローチャートである。
図11】本実施形態における制御処理の流れを示すフローチャートである。
図12】本実施例を説明するための図である。
図13】本実施例の結果を表す図である。
【発明を実施するための形態】
【0013】
以下、本開示の実施形態の一例を、図面を参照しつつ説明する。本実施形態では、本開示に係る制御装置を搭載した制御システムを例に説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0014】
<実施形態の概要>
図1及び図2は、本実施形態の概要を説明するための図である。図1に示されるように、本実施形態では、人間Hの動作を2つの腕部R1,R2を有する双腕ロボットへ教示する。図1に示されている例は、対象物bを矢印Cの方向へ移動させるタスクを実現する動作を双腕ロボットへ教示させる場合の例である。
【0015】
具体的には、図1のT1に示されているように、双腕ロボットの第1腕部R1と人間Hの腕とを協調動作させるデモンストレーションを実行することにより、2次元バーコードQ1,Q2の位置をカメラ(図示省略)によって撮像する。また、図1のT2に示されているように、双腕ロボットの第2腕部R2と人間Hの腕とを協調動作させるデモンストレーションを実行することにより、2次元バーコードQ1,Q2の位置をカメラ(図示省略)によって撮像する。
【0016】
デモンストレーションにおける人間Hの腕と対象物bの動作データは、2次元バーコードQ1,Q2の位置に基づき生成される。また、デモンストレーションにおける双腕ロボットの第1腕部R1と第2腕部R2の動作データは、双腕ロボットを制御する制御装置(図示省略)から得られる。
【0017】
本実施形態では、このようにして得られた動作データに基づいて、双腕ロボットの第1腕部R1と第2腕部R2に対して教示する動作データを生成する。
【0018】
そして、図2のEに示されているように、実行フェーズでは、双腕ロボットの第1腕部R1と第2腕部R2とは、対象物bを矢印Cの方向へ移動させるタスクを実行する。
【0019】
この点、例えば、双腕ロボットに対して動作を教示する際には、上述したように片腕ずつ動作を教示するのではなく、第1腕部R1と第2腕部R2との双腕に対して一度に教示するという方法も考えられる。
【0020】
例えば、人間が両腕を用いて対象物bを矢印Cの方向へ移動させるタスクを実行し、その際の動作データを得るという方法が考えられる。しかし、この場合には、人間は、双腕ロボットが実行することが不可能な動作をしてしまう場合もある。例えば、人間が対象物bを矢印Cの方向へ移動させるタスクを実行する際に、人間は双腕ロボットの腕部の移動速度の上限を超えたような速度で対象物bを移動させてしまう場合などもあり得る。また、上述したようなタスクよりも更に複雑なタスクを実行しようとする場合には、人間は、双腕ロボットの腕部の可動域を考慮しないような動作を実行してしまう場合もあり得る。
【0021】
このため、人間が両腕を用いた際の動作データが得られたとしても、その動作データをそのまま双腕ロボットへ教示させるということは難しい。
【0022】
また、例えば、人間が双腕ロボットの第1腕部R1と第2腕部R2とを遠隔操作することにより、対象物bを矢印Cの方向へ移動させるタスクを実行し、その際の動作データを得るという方法が考えられる。しかし、この場合には、第1腕部R1に対する遠隔操作と第2腕部R2に対する遠隔操作とを協調させる必要がある。
【0023】
第1腕部R1を遠隔操作する人間と第2腕部R2を遠隔操作する人間とが異なる場合、タスクが複雑になるほどその協調は困難となり、適切な動作データを得ることが難しくなる。また、第1腕部R1を遠隔操作する人間と第2腕部R2を遠隔操作する人間とが同一である場合には、その遠隔操作を実現するための機器を複雑なものとする必要が出てくるため、機器を用意するコストが膨大になる。
【0024】
このため、人間が双腕ロボットの第1腕部R1と第2腕部R2とを遠隔操作することにより動作データを得るということも難しい。
【0025】
そこで、本実施形態では、上述したように、人間と双腕ロボットとを協調動作させるデモンストレーションを実行することにより動作データを取得し、その動作データに基づいて双腕ロボットへ教示する動作データを生成する。
【0026】
具体的には、本実施形態では、既知の敵対的生成ネットワークモデルを利用することにより、人間の動作データから双腕ロボットの動作データを生成する。なお、以下では、図1のT1のように、第1腕部R1と人間Hとが動作する場面を「Robot1-Human」と表記する。また、図1のT2のように、第2腕部R2と人間とが動作する場面を「Human-Robot2」と表記する。また、単に人間Hと双腕ロボットの腕部とが動作する場面を「Human-Robot」と表記する。また、双腕ロボットの第1腕部R1と第2腕部R2とが動作する場面を「Robot1-Robot2」又は「Robot-Robot」と表記する。
【0027】
なお、以下では、本実施形態において提案される手法を、learning from demonstrations by human and robotic arms (LfD-HR)とも称する。
【0028】
図3は、本実施形態のフレームワークの概要を説明するための図である。以下では、図3を参照しつつ、本実施形態のフレームワークを説明する。
【0029】
(A.問題定式化)
本実施形態では、マルコフ決定プロセス(S,A,P,ρ)により問題が定義される。なお、状態s∈Sであり、行動a∈Aであり、遷移関数P(s’∈S|s,a)であり、ρは初期状態である。また、本実施形態では、2つのドメインが定義される。
【0030】
ドメインXは、人間とロボットとによるタスクのデモンストレーションに属するドメインである。また、ドメインYは、双腕ロボットによるタスク動作に属するドメインである。
【0031】
ドメインXに属する動作データには、人間Hの腕の状態xと、双腕ロボットの第1腕部R1及び第2腕部R2の状態xRi(i=1,2)と、対象物bの状態xと、双腕ロボットの第1腕部R1及び第2腕部R2の行動aRiとが含まれている。
【0032】
ドメインYに属する動作データには、双腕ロボットの第1腕部R1及び第2腕部R2の状態yRiと、対象物bの状態yと、双腕ロボットの第1腕部R1及び第2腕部R2の行動aRiとが含まれている。
【0033】
本実施形態では、ドメインXに属する状態x=(x,xRi,x)と、ドメインYに属する状態y=(yR1,yR2,y)と、行動(aR1,aR2)とが定義される。また、本実施形態では、ドメインXとドメインYとにおけるマルコフ決定プロセスにおいて、M=(S,A,P,ρ0x)とM=(S,A,P,ρ0y)とが定義される。また、本実施形態では、後述するように双腕ロボットの制御モデルに対して方針π:S→Aを学習させる。
【0034】
(B.データ収集)
まず、本実施形態では、図3に示されているように、ランダムデータが収集される。具体的には、図3に示されているように、双腕ロボットの第1腕部R1と人間Hとをランダムに動作させた状況下「Robot1-Human」において得られるランダムデータ{xR1,x,x,aR1|D|が収集される。なお、|D|はデータセットの数を表す。
【0035】
また、図3に示されているように、双腕ロボットの第2腕部R2と人間Hとをランダムに動作させた状況下「Human-Robot2」において得られるランダムデータ{x,xR2,x,aR2|D|が収集される。
【0036】
また、図3に示されているように、双腕ロボットの第1腕部R1と第2腕部R2とをランダムに動作させた状況下「Robot1-Robot2」のランダムデータ{yR1,yR2,y,aR1,aR2|D|が収集される。
【0037】
次に、図3に示されているように、デモンストレーションデータが収集される。デモンストレーションデータは、人間Hと双腕ロボットの腕部(第1腕部R1又は第2腕部R2)とを協調動作させた際に得られるデータである。
【0038】
具体的には、図3に示されているように、双腕ロボットの第1腕部R1と人間Hとを協調動作させた状況下「Robot1-Human」において得られるデモンストレーションデータ{xR1,x,x,aR1|D|が収集される。
【0039】
また、図3に示されているように、人間Hと双腕ロボットの第2腕部R2とを協調動作させた状況下「Human-Robot2」において得られるデモンストレーションデータ{x,xR2,x,aR2|D|が収集される。
【0040】
(C.フォワードダイナミクスモデルとインバースダイナミクスモデル)
本実施形態では、双腕ロボットの腕部に関するフォワードダイナミクスモデルFとインバースダイナミクスモデルF-1とが定義される。
【0041】
フォワードダイナミクスモデルFは、以下の式(1A)によって定義される。
【0042】
【数1】

(1A)
【0043】
また、インバースダイナミクスモデルF-1は、以下の式(1B)によって定義される。
【0044】
【数2】

(1B)
【0045】
なお、上記各式内のtは時刻を表す。フォワードダイナミクスモデルF及びインバースダイナミクスモデルF-1は、既知のダイナミクスモデル又は機械学習モデルを利用することにより実現される。
【0046】
フォワードダイナミクスモデルF及びインバースダイナミクスモデルF-1は、以下の式(1)及び式(2)が満たされるように、予めパラメータが設定される。
【0047】
【数3】
【0048】
なお、上記各式内の||・||はL2ノルムを表し、Eは期待値を表す。
【0049】
本実施形態では、上記式(1)の損失関数Lfwdが最小となるようなフォワードダイナミクスモデルFが予め生成される。また、上記式(2)の損失関数Linvが最小となるようなインバースダイナミクスモデルF-1が予め生成される。フォワードダイナミクスモデルFとインバースダイナミクスモデルF-1とは、後述するドメイントランスレーションフレームワークにおいて利用される。
【0050】
(D.ドメイントランスレーションフレームワーク)
図3に示されているように、本実施形態のドメイントランスレーションフレームワークでは、人間と双腕ロボットとの協調動作のドメインXから双腕ロボットの動作のドメインYへの変換を実現するフレームワークである。以下、具体的に説明する。
【0051】
(1)ドメイントランスレーション
本実施形態では、敵対的学習を用いて、動作データの状態xから動作データの状態yへの写像を実行する状態遷移関数Gを生成する。具体的には、敵対的生成ネットワークモデルのうちのジェネレータを生成し、そのジェネレータを状態遷移関数とする。敵対的学習により、ジェネレータGは、動作データの状態xが入力されると以下の式に従って疑似的な動作データの状態y^を生成する。なお、ジェネレータGは、敵対的生成ネットワークモデルのうちのディスクリミネータDyを欺くような動作データの状態y^を生成する。
【0052】
【数4】
【0053】
一方で、敵対的生成ネットワークモデルのうちのディスクリミネータDyは、入力された動作データが、ジェネレータGによって生成された動作データの状態y^であるのか又は現実の動作データの状態yであるのかを見分けることを試みる。
【0054】
図4は、本実施形態における敵対的生成ネットワークモデルを説明するための図である。図4に示されているように、動作データの状態xがジェネレータGへ入力されると、ジェネレータGは動作データの状態xに応じた疑似的な動作データの状態y^を出力する。この動作データの状態y^は、双腕ロボットの状態を模擬したデータである。ディスクリミネータDyは、この動作データy^が双腕ロボットの現実の状態を表す動作データであるのか否かを判定する。
【0055】
図4に示されているように、敵対的学習では、ジェネレータGは、ディスクリミネータDyを欺くような動作データの状態y^を出力するように学習される。また、敵対的学習では、ディスクリミネータDyは、ジェネレータGが出力した動作データの状態y^を偽物であると判定することができるように学習される。
【0056】
具体的には、本実施形態の敵対的学習では、以下の式(3)が満たされるように、敵対的生成ネットワークモデルのうちのジェネレータGとディスクリミネータDyとが生成される。なお、以下の式におけるp(x)はxが出現する確率分布を表し、p(y)はyが出現する確率分布を表す。
【0057】
【数5】
【0058】
このため、本実施形態では、上記式(3)の敵対的生成ネットワークモデルに関する損失関数Ladv(G,Dy)が最小となるようにジェネレータGが生成され、損失関数Ladv(G,Dy)が最大となるようにディスクリミネータDyが生成される。なお、本実施形態では、ジェネレータGが、ドメインXのデモンストレーションデータとドメインYのランダムデータとにオーバフィッティングすることを防ぐために、ドメインXのランダムデータも学習用データとして用いられる。
【0059】
(2)ダイナミクス一貫性
本実施形態では、双腕ロボットのダイナミクスの一貫性も考慮して、敵対的生成ネットワークモデルを学習させる。仮に、何の制約も無くジェネレータGを生成させた場合、ジェネレータGによって変換された動作データの状態y^は、ドメインYにおける状態遷移Pとの一貫性が無いものとなる場合がある。
【0060】
そこで、本実施形態では、時刻tの状態y^と時刻t+1の状態yt+1^との間における状態遷移Pの一貫性が保たれるようにジェネレータGを生成する。
【0061】
具体的には、上述したインバースダイナミクスモデルF-1によって、以下の式に従い、時刻tに双腕ロボットが取った行動a が計算される。
【0062】
【数6】
【0063】
また、ダイナミクスモデルFによって、以下の式に従い、時刻t+1の状態yt+1 が計算される。
【0064】
【数7】
【0065】
ダイナミクスモデルFとインバースダイナミクスモデルF-1とによって計算された時刻t+1の状態yt+1 は、ジェネレータGから出力された時刻t+1の状態yt+1^と一致している必要がある。
【0066】
そこで、本実施形態では、ダイナミクスの一貫性に関する損失関数Ldyn(G)を設定する。ダイナミクスの一貫性に関する損失関数Ldyn(G)は、以下の式(4)によって表される。
【0067】
【数8】
【0068】
なお、上記式内の||・||はL1ノルムを表す。本実施形態では、ダイナミクスの一貫性に関する損失関数Ldyn(G)が最小となるようにジェネレータGが生成される。
【0069】
(3)パーシャルアイデンティティマッピング
ドメイントランスレーションとダイナミクスの一貫性とを考慮したとしても、ジェネレータGから、現実のデータである状態xRiとはかけ離れた状態yRiが出力されてしまう場合もある。例えば、ジェネレータGから双腕ロボットの腕部が取り得ない状態yRiが出力されてしまう場合もある。
【0070】
そこで、本実施形態では、パーシャルアイデンティティマッピングに関する損失関数Lid(G)を設定する。パーシャルアイデンティティマッピングに関する損失関数Lid(G)は、以下の式(5)によって表される。
【0071】
【数9】
【0072】
本実施形態では、パーシャルアイデンティティマッピングに関する損失関数Lid(G)が最小となるようにジェネレータGが生成される。
【0073】
(4)統合された損失関数
本実施形態では、上述した各損失関数を統合することにより、以下の損失関数Lfullが設定される。以下の式(6)の損失関数Lfullが最小となるように、敵対的生成ネットワークモデルのジェネレータGとディスクリミネータDyとが学習される。以下の式(6)におけるλadv,λdyn,λidは重みであり、予め設定される。
【0074】
【数10】
【0075】
なお、上述したように、フォワードダイナミクスモデルFとインバースダイナミクスモデルF-1とは、ランダムデータに基づいて予め学習される。また、フォワードダイナミクスモデルFとインバースダイナミクスモデルF-1とは、敵対的生成ネットワークモデルを学習させる際に併せて更新するようにしてもよい。例えば、フォワードダイナミクスモデルFが有するパラメータとインバースダイナミクスモデルF-1が有するパラメータとが、敵対的生成ネットワークモデルを学習させる際に併せて更新されるようにしてもよい。
【0076】
(学習済みモデル生成システム1)
図5は、本実施形態の学習済みモデル生成システム1の概略構成を表すブロック図である。図5に示されるように、学習済みモデル生成システム1は、カメラ2Aと、双腕ロボット4Aと、学習済みモデル生成装置10とを備えている。本実施形態に係る学習済みモデル生成装置10は、人間の動作データから双腕ロボットの動作データを生成するための学習済みモデルを生成する。
【0077】
カメラ2Aは、制御対象である双腕ロボット4Aの第1腕部R1及び第2腕部R2と人間Hとが動作をしている際の画像を逐次撮像する。例えば、カメラ2Aは、図1に示されているような、デモンストレーションT1とデモンストレーションT2とが行われている際の、画像を逐次撮像する。また、カメラ2Aは、双腕ロボット4Aの第1腕部R1及び第2腕部R2がランダムな動作をしている際の画像を逐次撮像する。また、カメラ2Aは、人間がランダムな動作をしている際の画像を逐次撮像する。そして、カメラ2Aは、得られた画像データを学習済みモデル生成装置10へ出力する。
【0078】
双腕ロボット4Aは、図1に示されているようなロボットであり、第1腕部R1と第2腕部R2とを備えている。
【0079】
図6は、本実施形態に係る学習済みモデル生成装置10のハードウェア構成を示すブロック図である。図6に示されるように、学習済みモデル生成装置10は、CPU(Central Processing Unit)42、メモリ44、記憶装置46、入出力I/F(Interface)48、記憶媒体読取装置50、及び通信I/F52を有する。各構成は、バス54を介して相互に通信可能に接続されている。
【0080】
記憶装置46には、後述する各処理を実行するための学習済みモデル生成プログラムが格納されている。CPU42は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU42は、記憶装置46からプログラムを読み出し、メモリ44を作業領域としてプログラムを実行する。CPU42は、記憶装置46に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0081】
メモリ44は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置46は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0082】
入出力I/F48は、カメラ2Aと双腕ロボット4Aとからのデータの入力、及びカメラ2Aと双腕ロボット4Aとへのデータの出力を行うインタフェースである。また、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、及び、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための出力装置が接続されてもよい。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0083】
記憶媒体読取装置50は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。
【0084】
通信I/F52は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0085】
次に、学習済みモデル生成装置10の機能構成について説明する。図5に示されるように、学習済みモデル生成装置10は、機能的には、学習用取得部12と、学習部16とを含む。また、学習済みモデル生成装置10の所定の記憶領域には、データ記憶部14と、学習済みモデル記憶部18と、制御モデル記憶部19とが設けられている。各機能構成は、CPU42が記憶装置46に記憶された各プログラムを読み出し、メモリ44に展開して実行することにより実現される。
【0086】
データ記憶部14には、カメラ2Aによって撮像された画像データが格納される。また、データ記憶部14には、双腕ロボット4Aが動作した際の制御データが格納される。
【0087】
学習済みモデル記憶部18には、後述する処理によって生成された学習済みの敵対的生成ネットワークモデルが格納される。
【0088】
制御モデル記憶部19には、双腕ロボット4Aを制御するための制御モデルが格納される。
【0089】
学習用取得部12は、学習用データを取得する。具体的には、データ記憶部14に格納されている画像データ及び制御データを加工するなどして、後述する敵対的生成ネットワークモデルを学習させる際に利用する学習用データを計算する。本実施形態の学習用データは、学習用の人間Hの動作データと、学習用の双腕ロボット4Aの動作データとを含むデータである。
【0090】
具体的には、本実施形態の学習用データは、第1腕部R1と人間Hの腕とによる協調動作を表すデモンストレーションデータと、第2腕部R2と人間Hの腕とによる協調動作を表すデモンストレーションデータと、双腕ロボット4Aのランダムな動作を表すランダムデータと、人間Hのランダムな動作を表すランダムデータとを含んで構成されている。
【0091】
第1腕部R1と人間Hの腕とによる協調動作を表すデモンストレーションデータは、図3に示されている「Robot1-Human」のデモンストレーションデータ{xR1,x,x,aR1|D|である。第2腕部R2と人間Hの腕とによる協調動作を表すデモンストレーションデータは、図3に示されている「Human-Robot2」のデモンストレーションデータ{x,xR2,x,aR2|D|である。
【0092】
双腕ロボット4Aのランダムな動作を表すランダムデータ及び人間Hのランダムな動作を表すランダムデータは、図3に示されている「Robot1-Human」のランダムデータ{xR1,x,x,aR1|D|と、「Human-Robot2」のランダムデータ{x,xR2,x,aR2|D|と、「Robot1-Robot2」のランダムデータ{yR1,yR2,y,aR1,aR2|D|とである。
【0093】
学習用取得部12は、データ記憶部14に格納されている画像データ及び制御データを解析することにより、図1に示されている2次元バーコードQ1,Q2の位置及び移動速度等を特定する。そして、学習用取得部12は、2次元バーコードQ1,Q2の位置及び移動速度と双腕ロボット4Aの制御データとを組み合わせることにより、上述したようなデモンストレーションデータ及びランダムデータを取得する。
【0094】
学習部16は、学習用取得部12により取得された学習用データに基づいて、ジェネレータGとディスクリミネータDyとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間Hの動作を表す動作データxが入力されると双腕ロボット4Aの動作データyが出力される学習済みのジェネレータGを生成する。
【0095】
具体的には、学習部16は、上記式(6)に示されている統合損失関数Lfullが最小となるように、敵対的生成ネットワークモデルを機械学習させる。なお、上述したように、統合損失関数Lfullは、敵対的生成ネットワークモデルに関する損失関数Ladvと、ダイナミクスの一貫性に関する損失関数Ldynと、パーシャルアイデンティティマッピングに関する損失関数Lidとを含む関数である。以下、各損失関数の最小化について説明する。
【0096】
(敵対的生成ネットワークモデルに関する損失関数Ladv
学習部16は、実質的に、上記式(3)に示されている敵対的生成ネットワークモデルに関する損失関数Ladvが最小になるようにジェネレータGを学習させつつ、敵対的生成ネットワークモデルに関する損失関数Ladvが最大になるようにディスクリミネータDyを学習させる。
【0097】
(ダイナミクスの一貫性に関する損失関数Ldyn
学習部16は、実質的に、上記式(4)に示されているダイナミクスの一貫性に関する損失関数Ldynが最小になるようにジェネレータGを学習させる。
【0098】
上述したように、本実施形態では、双腕ロボット4Aの時刻tの状態yと双腕ロボット4Aの時刻tの行動aとが入力されると、双腕ロボット4Aの時刻t+1の状態yt+1を出力するフォワードダイナミクスモデルFが予め用意される。また、本実施形態では、双腕ロボット4Aの時刻tの状態yと双腕ロボット4Aの時刻t+1の状態yt+1とが入力されると、双腕ロボット4Aが時刻tに取ったであろう行動aが出力されるインバースダイナミクスモデルF-1とが予め用意される。
【0099】
このため、学習部16は、敵対的生成ネットワークモデルを機械学習させる際に、インバースダイナミクスモデルF-1に対して、ジェネレータGから出力された双腕ロボット4Aの時刻tの状態y^と時刻t+1の状態yt+1^とを入力することにより、双腕ロボット4Aが時刻tに取ったと推定される行動a を計算する。
【0100】
また、学習部16は、敵対的生成ネットワークモデルを機械学習させる際に、ダイナミクスモデルFに対して、ジェネレータGから出力された双腕ロボット4Aの状態y^と、インバースダイナミクスモデルF-1により計算された行動a とを入力することにより、双腕ロボット4Aの時刻t+1の状態yt+1 を計算する。
【0101】
そして、学習部16は、ジェネレータGから出力された双腕ロボット4Aの時刻tの状態yt+1^と、計算された双腕ロボット4Aの時刻t+1の状態yt+1 との間の差分が小さくなるようにジェネレータGを学習させる。
【0102】
(パーシャルアイデンティティマッピングに関する損失関数Lid
学習部16は、実質的に、上記式(5)に示されているパーシャルアイデンティティマッピングに関する損失関数Lidが最小になるようにジェネレータGを学習させる。
【0103】
具体的には、学習部16は、学習用の双腕ロボット4Aの動作データxとジェネレータGから出力された双腕ロボット4Aの状態y^との間の差分が小さくなるように、ジェネレータGを学習させることにより、学習済みのジェネレータGを生成する。
【0104】
そして、学習部16は、学習済みのジェネレータGと学習済みのディスクリミネータDyとを含む学習済みの敵対的生成ネットワークモデルを、学習済みモデル記憶部18へ格納する。
【0105】
次に、学習部16は、学習済みのジェネレータGに対して、対象となる人間の動作を表す対象動作データを入力することにより、双腕ロボット4Aのロボットの動作データを生成する。ここで、対象となる人間の動作とは、双腕ロボット4Aへ教示したい動作に相当する。
【0106】
学習部16は、生成された双腕ロボット4Aの動作データに基づいて、双腕ロボット4Aを制御するための制御用モデルを学習させることにより、動作データのうちの状態yが入力されると動作データのうちの行動aを出力する制御用学習済みモデルを生成する。
【0107】
例えば、学習部16は、既知の模倣学習を用いて制御用学習済みモデルを生成する。これにより、状態yから行動aを生成する方策が反映された制御用学習済みモデルを得ることができる。なお、制御用モデルとしては、既知の関数又は機械学習モデルを採用することができる。
【0108】
そして、学習部16は、制御用学習済みモデルを制御モデル記憶部19へ格納する。
【0109】
(制御システム20)
図7は、本実施形態の制御システム20の概略構成を表すブロック図である。図7に示されるように、制御システム20は、カメラ2Bと、双腕ロボット4Bと、制御装置30とを備えている。本実施形態に係る制御装置30は、学習済みモデル生成装置10によって生成された制御用学習済みモデルを用いて双腕ロボット4Bの動作を制御する。
【0110】
カメラ2Bは、上述したカメラ2Aと同様の構成であり、制御対象である双腕ロボット4Bの第1腕部R1及び第2腕部R2が動作をしている際の画像を逐次撮像する。そして、カメラ2Bは、得られた画像データを制御装置30へ出力する。
【0111】
双腕ロボット4Bは、上述した双腕ロボット4Aと同様の構成であり、図1に示されているようなロボットである。
【0112】
図8は、本実施形態に係る制御装置30のハードウェア構成を示すブロック図である。図8に示されるように、制御装置30は、CPU(Central Processing Unit)62、メモリ64、記憶装置66、入出力I/F(Interface)68、記憶媒体読取装置70、及び通信I/F72を有する。各構成は、バス74を介して相互に通信可能に接続されている。
【0113】
記憶装置66には、後述する各処理を実行するための制御プログラムが格納されている。CPU62は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU62は、記憶装置66からプログラムを読み出し、メモリ64を作業領域としてプログラムを実行する。CPU62は、記憶装置66に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0114】
メモリ64は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置66は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0115】
入出力I/F68は、カメラ2Bと双腕ロボット4Bとからのデータの入力、及びカメラ2Bと双腕ロボット4Bとへのデータの出力を行うインタフェースである。また、例えば、キーボードやマウス等の、各種の入力を行うための入力装置、及び、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための出力装置が接続されてもよい。出力装置として、タッチパネルディスプレイを採用することにより、入力装置として機能させてもよい。
【0116】
記憶媒体読取装置70は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。
【0117】
通信I/F72は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0118】
次に、制御装置30の機能構成について説明する。図7に示されるように、制御装置30は、機能的には、取得部34と、生成部36と、制御部38とを含む。また、制御装置30の所定の記憶領域には、制御モデル記憶部32が設けられている。各機能構成は、CPU62が記憶装置66に記憶された各プログラムを読み出し、メモリ64に展開して実行することにより実現される。
【0119】
制御モデル記憶部32には、学習済みモデル生成装置10によって生成された制御用学習済みモデルが格納される。
【0120】
取得部34は、双腕ロボット4Bの状態と対象物の状態とを取得する。具体的には、取得部34は、カメラ2Bによって撮像された画像データ及び双腕ロボット4Bの制御データに基づいて、双腕ロボット4Bと対象物bとの状態(yR1,yR2,y)を計算する。
【0121】
生成部36は、制御モデル記憶部32に格納されている制御用学習済みモデルに対して、取得部34により取得された状態(yR1,yR2,y)を入力することにより、当該状態(yR1,yR2,y)に応じた双腕ロボット4Bの行動(aR1,aR2)を生成する。
【0122】
制御部38は、生成部36により生成された行動(aR1,aR2)を取るように、双腕ロボット4Bを制御する。具体的には、制御部38は、生成部36により生成された行動(aR1,aR2)を取るように、双腕ロボット4Bの第1腕部R1と第2腕部R2とに対して制御指令を出力する。
【0123】
次に、本実施形態に係る学習済みモデル生成システム1の作用について説明する。
【0124】
まず、人間Hの動作及び双腕ロボット4Aの動作に関するデータが収集され、学習済みモデル生成装置10へ入力される。人間Hの動作及び双腕ロボット4Aの動作に関するデータは、データ記憶部14へ格納される。そして、学習済みモデル生成システム1が所定の指示信号を受け付けると、学習済みモデル生成装置10のCPU42は記憶装置46から学習済みモデル生成プログラムを読み出して、メモリ44に展開して実行する。これにより、CPU42が学習済みモデル生成装置10の各機能構成として機能し、図9及び図10に示す学習済みモデル生成処理が実行される。
【0125】
ステップS100において、学習用取得部12は、データ記憶部14へ格納されているデータから学習用データを取得する。
【0126】
ステップS102において、学習部16は、ステップS100で取得された学習用データに基づいて、ジェネレータGとディスクリミネータDyとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間Hの動作を表す動作データxが入力されると双腕ロボット4Aの動作データyが出力される学習済みのジェネレータGを生成する。
【0127】
ステップS104において、学習済みのジェネレータGと学習済みのディスクリミネータDyとを含む学習済みの敵対的生成ネットワークモデルを、学習済みモデル記憶部18へ格納する。
【0128】
次に、学習済みモデル生成システム1が所定の指示信号を受け付けると、学習済みモデル生成装置10は、図10に示す学習済みモデル生成処理を実行する。
【0129】
ステップS200において、学習部16は、対象となる人間Hの動作を表す対象動作データを取得する。例えば、学習部16は、学習用データに含まれる人間Hの動作データのうち、双腕ロボット4Aに教示したい動作データを対象動作データとして取得する。なお、対象動作データとしては学習用データとは異なるデータが用いられてもよい。
【0130】
ステップS202において、学習部16は、学習済みモデル記憶部18から学習済みのジェネレータGを読み出す。
【0131】
ステップS204において、学習部16は、ステップS202で読み出された学習済みのジェネレータGに対して、ステップS200で取得された対象動作データを入力することにより、双腕ロボット4Aの動作データを生成する。
【0132】
ステップS206において、学習部16は、ステップS204で得られた双腕ロボット4Aの動作データに基づいて、双腕ロボット4Aを制御するための制御用モデルを学習させることにより、動作データのうちの状態yが入力されると動作データのうちの行動aを出力する制御用学習済みモデルを生成する。
【0133】
ステップS208において、学習部16は、ステップS206で生成された制御用学習済みモデルを制御モデル記憶部19へ格納する。
【0134】
次に、本実施形態に係る制御システム20の作用について説明する。
【0135】
学習済みモデル生成システム1によって生成された制御用学習済みモデルが、制御装置30へ入力されると、その制御用学習済みモデルは制御モデル記憶部19へ格納される。そして、制御システム20が所定の指示信号を受け付けると、制御装置30のCPU62は記憶装置66から制御プログラムを読み出して、メモリ64に展開して実行する。これにより、CPU62が制御装置30の各機能構成として機能し、図11に示す制御処理が実行される。
【0136】
ステップS300において、取得部34は、カメラ2Bによって撮像された画像データ及び双腕ロボット4Bの制御データから、双腕ロボット4Bと対象物bとの状態(yR1,yR2,y)を取得する。
【0137】
ステップS302において、生成部36は、制御モデル記憶部32に格納されている制御用学習済みモデルを読み出す。
【0138】
ステップS304において、生成部36は、ステップS302で読み出した制御用学習済みモデルに対して、ステップS300で取得された状態(yR1,yR2,y)を入力することにより、当該状態(yR1,yR2,y)に応じた双腕ロボット4Bの行動(aR1,aR2)を生成する
【0139】
ステップS306において、制御部38は、ステップS304で生成された行動(aR1,aR2)を取るように、双腕ロボット4Bを制御する。
【0140】
図11に示される制御処理が繰り返され、双腕ロボット4Aに対して制御信号が繰り返し出力されることにより、対象物bに対するタスクが実行される。
【0141】
以上説明したように、本実施形態に係る学習済みモデル生成装置は、学習用の人間の動作データを含む学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する。これにより、人間の動作データからロボットの動作データを簡易に生成することができる学習済みのジェネレータを得ることができる。
【0142】
また、本実施形態に係る学習済みモデル生成装置は、ダイナミクスの一貫性に関する損失関数Ldynを含む損失関数Lfullが最小になるように、学習済みのジェネレータを生成することにより、双腕ロボット4Aのダイナミクスの一貫性を考慮した動作データを生成することができる学習済みのジェネレータを得ることができる。これにより、双腕ロボット4Aのダイナミクスを無視したような動作データの生成は抑制される。
【0143】
また、本実施形態に係る学習済みモデル生成装置は、パーシャルアイデンティティマッピングに関する損失関数Lidを含む損失関数Lfullが最小になるように、学習済みのジェネレータを生成することにより、双腕ロボット4Aの現実の動きに適合するような動作データを生成することができる学習済みのジェネレータを得ることができる。これにより、双腕ロボット4Aの現実の動きを無視したような動作データの生成が抑制される。
【0144】
ダイナミクスの一貫性に関する損失関数Ldynとパーシャルアイデンティティマッピングに関する損失関数Lidとを考慮して学習済みのジェネレータを生成することにより、例えば、双腕ロボット4Aの可動域を無視した動作データの生成等が抑制される。
【0145】
また、双腕ロボット4Aのランダムな動作を表すランダムデータを学習用データに含ませることにより、制御対象ロボットはどの程度の可動域を有しているのかといった点を考慮して、学習済みのジェネレータを生成することができる。
【実施例0146】
次に、実施例について説明する。本実施例では、提案したLfD-HRの有効性を検証するためのシミュレーションを行う。
【0147】
図12は、本実施例を説明するための図である。図12に示されるように、本実施例では、3つのシミュレーションを行う。図12に示されている「Demonstration」は、上述した図1のデモンストレーションT1,T2に相当する。また、図12に示されている「Execution」は、上述した図2の実行フェーズEに相当する。図12(a)Dual-arm block pushは、Robot1とRobot2とがBlockを押し出すような協調動作を対象とするものである。また、図12(b)Dual-arm peg insertionは、Robot1が把持する穴にRobot2が把持するpegを挿入するような協調動作を対象とするものである。
【0148】
図13は、本実施例の結果を表す図である。図13に示されているように、提案したLfD-HRによれば、Robot1とRobot2とが協調動作することにより目的のタスクを完遂することができている。
【0149】
なお、上記実施形態では、制御対象ロボットが双腕ロボットである場合を例に説明したがこれに限定されるものではなく、どのようなロボットを対象としてもよい。例えば、1つの腕を有するロボットを対象としてもよい。制御対象ロボットとしては、例えば、複数の指を有するロボット等も対象になり得る。この場合には、複数の指の動きに関する動作データが生成される。
【0150】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、各処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0151】
また、上記実施形態では、各プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0152】
(付記)
以下、本開示の態様について付記する。
【0153】
(付記1)
学習用の人間の動作データを含む学習用データを取得する学習用取得部と、
前記学習用取得部により取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する学習部と、
を含む学習済みモデル生成装置。
【0154】
(付記2)
前記動作データは、前記制御対象ロボットの状態yと行動aとを含んで構成されており、
前記制御対象ロボットの時刻tの状態yと前記制御対象ロボットの時刻tの行動aとが入力されると、前記制御対象ロボットの時刻t+1の状態yt+1を出力するフォワードダイナミクスモデルFと、
前記制御対象ロボットの時刻tの状態yと前記制御対象ロボットの時刻t+1の状態yt+1とが入力されると、前記制御対象ロボットが時刻tに取った行動aが出力されるインバースダイナミクスモデルF-1とが予め用意されており、
前記学習部は、
前記インバースダイナミクスモデルF-1に対して、前記ジェネレータから出力された前記制御対象ロボットの時刻tの状態y^と時刻t+1の状態yt+1^とを入力することにより、前記制御対象ロボットが時刻tに取ったであろう行動a を計算し、
前記フォワードダイナミクスモデルFに対して、前記状態y^と前記行動a とを入力することにより、前記制御対象ロボットの時刻t+1の状態yt+1 を計算し、
前記ジェネレータから出力された前記制御対象ロボットの時刻tの状態yt+1^と、計算された前記制御対象ロボットの時刻t+1の状態yt+1 との間の差分が小さくなるように、前記ジェネレータを学習させることにより、前記学習済みのジェネレータを生成する、
付記1に記載の学習済みモデル生成装置。
【0155】
(付記3)
前記学習用データには、学習用の制御対象ロボットの動作データxが更に含まれており、
前記学習部は、学習用の制御対象ロボットの動作データxと、前記ジェネレータから出力された前記制御対象ロボットの状態y^との間の差分が小さくなるように、前記ジェネレータを学習させることにより、前記学習済みのジェネレータを生成する、
付記1又は付記2に記載の学習済みモデル生成装置。
【0156】
(付記4)
前記制御対象ロボットは、少なくとも1つ以上の腕部を備えたロボットである、
付記1~付記3の何れか1項に記載の学習済みモデル生成装置。
【0157】
(付記5)
前記制御対象ロボットは、第1腕部と第2腕部とを備える双腕ロボットであり、
前記学習用データは、
前記第1腕部と前記人間の腕とによる協調動作を表すデモンストレーションデータと、
前記第2腕部と前記人間の腕とによる協調動作を表すデモンストレーションデータと、を更に含んで構成されている、
付記4に記載の学習済みモデル生成装置。
【0158】
(付記6)
前記学習用データは、
前記制御対象ロボットのランダムな動作を表すランダムデータと、
前記人間のランダムな動作を表すランダムデータと、を更に含んで構成されている、
付記1~付記3の何れか1項に記載の学習済みモデル生成装置。
【0159】
(付記7)
前記学習部は、
前記学習済みのジェネレータに対して、対象となる人間の動作を表す対象動作データを入力することにより、前記制御対象ロボットの動作データを生成し、
生成された前記制御対象ロボットの動作データに基づいて、前記制御対象ロボットを制御するための制御用学習済みモデルであって、前記動作データのうちの状態が入力されると、前記動作データのうちの行動を出力するための制御用学習済みモデルを生成する、
付記1~付記3の何れか1項に記載の学習済みモデル生成装置。
【0160】
(付記8)
制御対象ロボットの状態を取得する取得部と、
付記7に記載の学習済みモデル生成装置によって生成された前記制御用学習済みモデルに対して、前記取得部により取得された前記状態を入力することにより、前記状態に応じた前記制御対象ロボットの行動を生成する生成部と、
前記生成部により生成された前記行動を取るように、前記制御対象ロボットを制御する制御部と、
を備えた制御装置。
【0161】
(付記9)
学習用の人間の動作データを含む学習用データを取得し、
取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、
処理をコンピュータが実行する学習済みモデル生成方法。
【0162】
(付記10)
学習用の人間の動作データを含む学習用データを取得し、
取得された学習用データに基づいて、ジェネレータとディスクリミネータとを含む敵対的生成ネットワークモデルを機械学習させることにより、対象となる人間の動作を表す動作データが入力されると制御対象ロボットの動作データが出力される学習済みのジェネレータを生成する、
処理をコンピュータに実行させるための学習済みモデル生成プログラム。
【符号の説明】
【0163】
4A,4B 双腕ロボット
10 学習済みモデル生成装置
12 学習用取得部
14 データ記憶部
16 学習部
18 学習済みモデル記憶部
19,32 制御モデル記憶部
20 制御システム
30 制御装置
34 取得部
36 生成部
38 制御部

図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13