(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-30
(45)【発行日】2024-10-08
(54)【発明の名称】ロボットモデルの学習装置、ロボットモデルの機械学習方法、ロボットモデルの機械学習プログラム、ロボット制御装置、ロボット制御方法、及びロボット制御プログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20241001BHJP
【FI】
B25J13/08 Z
(21)【出願番号】P 2021020049
(22)【出願日】2021-02-10
【審査請求日】2023-12-12
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】▲濱▼屋 政志
(72)【発明者】
【氏名】田中 一敏
【審査官】杉山 悟史
(56)【参考文献】
【文献】特開2018-126802(JP,A)
【文献】特開2017-030137(JP,A)
【文献】特許第6458912(JP,B1)
【文献】特開2020-055095(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 ~ 21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部と、
ある時間における前記位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルと、
前記ロボットモデルを実行するモデル実行部と、
前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記外力の予測値に基づいて報酬を算出する報酬算出部と、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部と、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する外力モデル更新部と、
を備えたロボットモデルの学習装置。
【請求項2】
決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新する状態遷移モデル更新部と、
を備えた請求項1記載のロボットモデルの学習装置。
【請求項3】
前記報酬算出部は、前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出する
請求項1又は請求項2記載のロボットモデルの学習装置。
【請求項4】
前記報酬算出部は、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
請求項1又は請求項2記載のロボットモデルの学習装置。
【請求項5】
前記報酬算出部は、前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
請求項1又は請求項2記載のロボットモデルの学習装置。
【請求項6】
前記報酬算出部は、タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなり、タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出する
請求項5記載のロボットモデルの学習装置。
【請求項7】
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデルと、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデルとを含み、
前記外力モデル更新部は、前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新する修正外力モデル更新部と、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新する敵対外力モデル更新部とを含む
請求項5又は請求項6記載のロボットモデルの学習装置。
【請求項8】
前記ロボットモデルは、前記修正外力モデル及び前記敵対外力モデルを備えた統合外力モデルを含み、
前記修正外力モデル及び前記敵対外力モデルはニューラルネットワークであり、
前記敵対外力モデルの1又は複数の中間層及び出力層のうちの少なくとも1つの層は、前記修正外力モデルの対応する層の前段の層の出力をプログレッシブニューラルネットワークの手法により統合し、
前記統合外力モデルは、前記敵対外力モデルの出力を外力の予測値として出力し、
前記統合外力モデルは、出力する前記外力の予測値が修正外力の予測値であるか敵対外力の予測値であるかの識別情報を出力し、
前記報酬算出部は、前記識別情報が、修正外力の予測値であることを示す場合には前記外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記識別情報が、敵対外力の予測値であることを示す場合には前記外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
請求項7記載のロボットモデルの学習装置。
【請求項9】
前記外力が前記修正外力であるか前記敵対外力であるかの指定を受け付ける受け付け部をさらに備え、
前記指定が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記指定が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部をさらに備えた
請求項7又は請求項8記載のロボットモデルの学習装置。
【請求項10】
前記位置姿勢の実績値及び前記外力の実績値に基づき前記外力が前記修正外力であるか前記敵対外力であるかを判別し、前記判別の結果が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記判別の結果が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部をさらに備える
請求項7又は請求項8記載のロボットモデルの学習装置。
【請求項11】
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用意し、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する、
ロボットモデルの機械学習方法。
【請求項12】
さらに、決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新する
請求項11記載のロボットモデルの機械学習方法。
【請求項13】
前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出する
請求項11又は請求項12記載のロボットモデルの機械学習方法。
【請求項14】
前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
請求項11又は請求項12記載のロボットモデルの機械学習方法。
【請求項15】
前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
請求項11又は請求項12記載のロボットモデルの機械学習方法。
【請求項16】
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデルと、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデルとを含み、
前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新し、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新する
請求項15記載のロボットモデルの機械学習方法。
【請求項17】
前記誤差が拡大しつつある場合に、前記ロボットに対して前記修正外力を加え、前記誤差が縮小しつつある場合に、前記ロボットに対して前記敵対外力を加える
請求項16記載のロボットモデルの機械学習方法。
【請求項18】
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを機械学習するための機械学習プログラムであって、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する、
各処理をコンピュータに行わせるロボットモデルの機械学習プログラム。
【請求項19】
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを実行するモデル実行部と、
前記ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部と、
前記ロボットモデルにより算出された位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記ロボットモデルにより算出された外力の予測値に基づいて報酬を算出する報酬算出部と、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部と、
を備えたロボット制御装置。
【請求項20】
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用意し、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記ロボットを制御する、
ロボット制御方法。
【請求項21】
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用いて前記ロボットを制御するためのプログラムであって、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記ロボットを制御する、
各処理をコンピュータに行わせるロボット制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、ロボットモデルの学習装置、ロボットモデルの機械学習方法、ロボットモデルの機械学習プログラム、ロボット制御装置、ロボット制御方法、及びロボット制御プログラムに関する。
【背景技術】
【0002】
ロボットが作業を達成するために必要な制御則を自動で獲得するために、機械学習によりロボットモデルを学習することが行われている。
【0003】
例えば特許文献1には、マニピュレータに掛かる力とモーメントを検出する機能を備えた産業用ロボットを制御する制御装置であって、前記産業用ロボットを制御指令に基づいて制御する制御部と、前記産業用ロボットのマニピュレータに掛かる力及びモーメントの少なくともいずれかを取得データとして取得するデータ取得部と、前記取得データに基づいて、前記マニピュレータに掛かる力に係る情報を含む力状態データ、及び前記マニピュレータに係る制御指令の調整行動を示す制御指令調整データを、状態データとして生成する前処理部と、を備え、前記状態データに基づいて、前記マニピュレータに係る制御指令の調整行動に係る機械学習の処理を実行する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ロボットモデルを機械学習により学習する際のパラメータの設定及び報酬関数の設計は難しく、効率良く学習するのは困難である。
【0006】
開示の技術は、上記の点に鑑みてなされたものであり、ロボットモデルを機械学習により学習する際に、効率良く学習することができるロボットモデルの学習装置、ロボットモデルの機械学習方法、ロボットモデルの機械学習プログラム、ロボット制御装置、ロボット制御方法、及びロボット制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
開示の第1態様は、ロボットモデルの学習装置であって、ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部と、ある時間における前記位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルと、前記ロボットモデルを実行するモデル実行部と、前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記外力の予測値に基づいて報酬を算出する報酬算出部と、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部と、決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する外力モデル更新部と、を備える。
【0008】
上記第1態様において、決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新する状態遷移モデル更新部と、を備えた構成としてもよい。
【0009】
上記第1態様において、前記報酬算出部は、前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出するようにしてもよい。
【0010】
上記第1態様において、前記報酬算出部は、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出するようにしてもよい。
【0011】
上記第1態様において、前記報酬算出部は、前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出するようにしてもよい。
【0012】
上記第1態様において、前記報酬算出部は、タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなり、タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出するようにしてもよい。
【0013】
上記第1態様において、前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデルと、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデルとを含み、前記外力モデル更新部は、前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新する修正外力モデル更新部と、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新する敵対外力モデル更新部とを含む構成としてもよい。
【0014】
上記第1態様において、前記ロボットモデルは、前記修正外力モデル及び前記敵対外力モデルを備えた統合外力モデルを含み、前記修正外力モデル及び前記敵対外力モデルはニューラルネットワークであり、前記敵対外力モデルの1又は複数の中間層及び出力層のうちの少なくとも1つの層は、前記修正外力モデルの対応する層の前段の層の出力をプログレッシブニューラルネットワークの手法により統合し、前記敵対外力モデルは、外力の予測値及び当該外力が修正外力か敵対外力かの識別情報を出力し、前記統合外力モデルは、前記敵対外力モデルの出力を自身の出力とし、前記報酬算出部は、前記識別情報が修正外力を示す場合には前記外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記識別情報が敵対外力を示す場合には前記外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出するようにしてもよい。
【0015】
上記第1態様において、前記外力が前記修正外力であるか前記敵対外力であるかの指定を受け付ける受け付け部をさらに備え、前記指定が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記指定が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部をさらに備えた構成としてもよい。
【0016】
上記第1態様において、前記位置姿勢の実績値及び前記外力の実績値に基づき前記外力が前記修正外力であるか前記敵対外力であるかを判別し、前記判別の結果が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記判別の結果が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部をさらに備える構成としてもよい。
【0017】
開示の第2態様は、ロボットモデルの機械学習方法であって、ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用意し、制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する。
【0018】
上記第2態様において、さらに、決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新するようにしてもよい。
【0019】
上記第2態様において、前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出するようにしてもよい。
【0020】
上記第2態様において、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出するようにしてもよい。
【0021】
上記第2態様において、前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出するようにしてもよい。
【0022】
上記第2態様において、前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデルと、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデルとを含み、前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新し、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新するようにしてもよい。
【0023】
上記第2態様において、前記誤差が拡大しつつある場合に、前記ロボットに対して前記修正外力を加え、前記誤差が縮小しつつある場合に、前記ロボットに対して前記敵対外力を加えるようにしてもよい。
【0024】
開示の第3態様は、ロボットモデルの機械学習プログラムであって、ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを機械学習するための機械学習プログラムであって、制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する、各処理をコンピュータに行わせる。
【0025】
開示の第4態様は、ロボット制御装置であって、ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを実行するモデル実行部と、前記ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部と、前記ロボットモデルにより算出された位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記ロボットモデルにより算出された外力の予測値に基づいて報酬を算出する報酬算出部と、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部と、を備える。
【0026】
開示の第5態様は、ロボット制御方法であって、ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用意し、制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、決定された前記行動指令に基づいて前記ロボットを制御する。
【0027】
開示の第6態様は、ロボット制御プログラムであって、ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル及び前記ロボットに加えられる外力の予測値を算出する外力モデルを含むロボットモデルを用いて前記ロボットを制御するためのプログラムであって、制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、決定された前記行動指令に基づいて前記ロボットを制御する、各処理をコンピュータに行わせる。
【発明の効果】
【0028】
開示の技術によれば、ロボットモデルを機械学習により学習する際に、効率良く学習することができる。
【図面の簡単な説明】
【0029】
【
図1】第1実施形態に係るロボットシステムの構成図である。
【
図2】(A)はロボット10の概略構成を示す図、(B)はロボットのアームの先端側を拡大した図である。
【
図3】修正外力及び敵対外力について説明するための図である。
【
図4】ロボット制御装置のハードウェア構成を示すブロック図である。
【
図6】変形例に係るロボットモデルの構成図である。
【
図7】変形例に係るロボットモデルの構成図である。
【
図9】第1実施形態に係る学習処理のフローチャートである。
【
図10】第2実施形態に係る学習処理のフローチャートである。
【
図11】第3実施形態に係るロボットシステムの構成図である。
【
図12】第3実施形態に係る学習処理のフローチャートである。
【
図13】(A)は位置誤差についての学習曲線を示すグラフ、(B)は外力についての学習曲線を示すグラフである。
【
図14】(A)は異なる摩擦におけるタスクの成功回数を表すグラフ、(B)は異なるペグの質量におけるタスクの成功回数を表すグラフである。
【
図15】異なるペグの材質におけるタスクの成功回数を表すグラフである。
【発明を実施するための形態】
【0030】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されている場合があり、実際の比率とは異なる場合がある。
【0031】
<第1実施形態>
【0032】
図1は、本実施形態に係るロボットシステム1の構成を示す。ロボットシステム1は、ロボット10、状態観測センサ20、触覚センサ30A、30B、ロボット制御装置40、表示装置50、及び入力装置60を有する。
【0033】
(ロボット)
【0034】
図2(A)、(B)は、ロボット10の概略構成を示す図である。本実施形態におけるロボット10は、6軸垂直多関節ロボットであり、アーム11の先端11aに柔軟部13を介してグリッパ(ハンド)12が設けられる。ロボット10は、グリッパ12によって部品(例えばペグ)を把持して穴に嵌め込む嵌め込み作業を行う。なお、ロボット10は、本実施形態では現実のロボットであるが、シミュレーションにおける仮想のロボットでもよい。
【0035】
図2(A)に示すように、ロボット10は、関節J1~J6を備えた6自由度のアーム11を有する。各関節J1~J6は、図示しないモータによりリンク同士を矢印C1~C6の方向に回転可能に接続する。ここでは、垂直多関節ロボットを例に挙げたが、水平多関節ロボット(スカラーロボット)であってもよい。また、6軸ロボットを例に挙げたが、5軸や7軸などその他の自由度の多関節ロボットであってもよく、パラレルリンクロボットであってもよい。
【0036】
グリッパ12は、1組の挟持部12aを有し、挟持部12aを制御して部品を挟持する。グリッパ12は、柔軟部13を介してアーム11の先端11aと接続され、アーム11の移動に伴って移動する。本実施形態では、柔軟部13は各バネの基部が正三角形の各頂点になる位置関係に配置された3つのバネ13a~13cにより構成されるが、バネの数はいくつであってもよい。また、柔軟部13は、位置の変動に対して復元力を生じて、柔軟性が得られる機構であればその他の機構であってもよい。例えば、柔軟部13は、バネやゴムのような弾性体、ダンパ、空気圧または液圧シリンダなどであってもよい。柔軟部13は、受動要素によって構成されることが好ましい。柔軟部13により、アーム11の先端11aとグリッパ12は、水平方向および垂直方向に、5mm以上、好ましくは1cm以上、更に好ましくは2cm以上、相対移動可能に構成される。
【0037】
グリッパ12がアーム11に対して柔軟な状態と固定された状態とを切り替えられるような機構を設けてもよい。
【0038】
また、ここではアーム11の先端11aとグリッパ12の間に柔軟部13を設ける構成を例示したが、グリッパ12の途中(例えば、指関節の場所または指の柱状部分の途中)、アームの途中(例えば、関節J1~J6のいずれかの場所またはアームの柱状部分の途中)に設けられてもよい。また、柔軟部13は、これらのうちの複数の箇所に設けられてもよい。
【0039】
ロボットシステム1は、上記のように柔軟部13を備えるロボット10の制御を行うためのロボットモデルを、機械学習(例えばモデルベース強化学習)を用いて獲得する。ロボット10は柔軟部13を有しているため、把持した部品を環境に接触させても安全であり、また、制御周期が遅くても嵌め込み作業などを実現可能である。一方、柔軟部13によってグリッパ12および部品の位置が不確定となるため、解析的なロボットモデルを得ることは困難である。そこで、本実施形態では機械学習を用いてロボットモデルを獲得する。
【0040】
(状態観測センサ)
【0041】
状態観測センサ20は、ロボット10の状態としてグリッパ12の位置姿勢を観測し、観測した位置姿勢を実績値として出力する。状態観測センサ20としては、例えば、ロボット10の関節のエンコーダ、視覚センサ(カメラ)、モーションキャプチャ等が用いられる。モーションキャプチャ用のマーカーがグリッパ12に取り付けられている場合には、グリッパ12の位置姿勢が特定でき、グリッパ12の位置姿勢から部品(作業対象物)の姿勢が推定できる。
【0042】
また、視覚センサによっても、グリッパ12自体やグリッパ12が把持している部品の位置姿勢をロボット10の状態として検出できる。グリッパ12とアーム11との間が柔軟部である場合、アーム11に対するグリッパ12の変位を検出する変位センサによってもアーム11に対するグリッパ12の位置姿勢を特定することができる。
【0043】
(触覚センサ)
【0044】
図2では図示は省略したが、
図3に示すように、グリッパ12のグリッパ本体12bには、触覚センサ30A、30Bが取り付けられている。
【0045】
触覚センサ30A、30Bは、一例として1組の挟持部12aが対向する方向に沿った位置に設けられている。触覚センサ30A、30Bは、一例として3軸又は6軸の力を検出するセンサであり、自身に加えられる外力の大きさと方向を検出することができる。ユーザーは、触覚センサ30A、30Bの両方に手(指)が接触するようにグリッパ本体12bを掴んでグリッパ12を動かすことによりグリッパ12に外力を加える。
【0046】
外力としては、ロボット10が実行するタスク(作業)が成功するように修正(advisory)する修正外力と、タスクが失敗するように敵対(adversarial)する敵対外力と、がある。修正外力とは、ロボットモデルが予測するロボット10の位置姿勢の予測値とロボット10が到達すべき位置姿勢の目標値との間の誤差の拡大を抑制する外力である。また、敵対外力とは、ロボットモデルが予測するロボット10の位置姿勢の予測値とロボット10が到達すべき位置姿勢の目標値との間の誤差の拡大を縮小する外力である。
【0047】
具体的には、ロボット10が実行するタスクが、
図3に示すようにペグ70を台72に設けられた穴74に挿入するタスクである場合において、ペグ70を穴74に挿入するには、矢印A方向にペグ70を動かす必要がある。この場合、ペグ70を穴74に挿入するというタスクを成功させるための正しい方向である矢印A方向に加える外力が修正外力である。一方、タスクを失敗させる方向であって矢印A方向と反対方向である矢印B方向に加える外力が敵対外力である。
【0048】
図3の場合、ユーザーがグリッパ12を掴んで矢印A方向に修正外力を加えると、触覚センサ30Bよりも触覚センサ30Aによって検出される力が大きくなり、修正外力が加わっていると判定できる。一方、矢印B方向に敵対外力を加えると、触覚センサ30Aよりも触覚センサ30Bによって検出される力が大きくなり、敵対外力が加わっていると判定できる。
【0049】
なお、本実施形態では、グリッパ本体12bに2つの触覚センサ30A、30Bが設けられた場合について説明するが、これに限られない。例えば3つ以上の触覚センサをグリッパ本体12bの周囲に等間隔で設けても良い。触覚センサを3つ以上設けてそれらの検出結果を総合すれば少なくともグリッパ12の軸に垂直な面内での外力の方向がわかる場合は、各触覚センサは外力の大きさだけを検出するものであってもよい。
【0050】
(ロボット制御装置)
【0051】
ロボット制御装置40は、機械学習によりロボットモデルを学習する学習装置として機能する。また、ロボット制御装置40は、学習済みのロボットモデルを用いてロボット10を制御する制御装置としても機能する。
【0052】
図4は、本実施形態に係るロボット制御装置のハードウェア構成を示すブロック図である。
図4に示すように、ロボット制御装置40は、一般的なコンピュータ(情報処理装置)と同様の構成であり、CPU(Central Processing Unit)40A、ROM(Read Only Memory)40B、RAM(Random Access Memory)40C、ストレージ40D、キーボード40E、マウス40F、モニタ40G、及び通信インタフェース40Hを有する。各構成は、バス40Iを介して相互に通信可能に接続されている。
【0053】
本実施形態では、ROM40B又はストレージ40Dには、ロボットモデルを機械学習するためのプログラム及びロボット制御プログラムが格納されている。CPU40Aは、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU40Aは、ROM40B又はストレージ40Dからプログラムを読み出し、RAM40Cを作業領域としてプログラムを実行する。CPU40Aは、ROM40B又はストレージ40Dに記録されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。ROM42は、各種プログラム及び各種データを格納する。RAM40Cは、作業領域として一時的にプログラム又はデータを記憶する。ストレージ40Dは、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリにより構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。キーボード40E及びマウス40Fは入力装置60の一例であり、各種の入力を行うために使用される。モニタ40Gは、例えば、液晶ディスプレイであり、表示装置50の一例である。モニタ40Gは、タッチパネル方式を採用して、入力装置60として機能してもよい。通信インタフェース40Hは、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI又はWi-Fi(登録商標)等の規格が用いられる。
【0054】
次に、ロボット制御装置40の機能構成について説明する。
【0055】
図1に示すように、ロボット制御装置40は、その機能構成として、取得部41、モデル実行部42、報酬算出部43、行動決定部44、外力モデル更新部45、学習制御部46、及びユーザーインターフェース(UI)制御部47を有する。各機能構成は、CPU40AがROM40Bまたはストレージ40Dに記憶された機械学習プログラムを読み出して、RAM40Cに展開して実行することにより実現される。なお、一部または全部の機能は専用のハードウェア装置によって実現されても構わない。
【0056】
取得部41は、ロボット10の位置姿勢の実績値及びロボット10に加えられる外力の実績値を取得する。ロボット10の位置姿勢とは、一例としてロボット10のエンドエフェクタとしてのグリッパ12の位置姿勢である。ロボット10に加えられる外力は、一例としてロボット10のエンドエフェクタとしてのグリッパ12に加えられる外力である。外力の実績値は、触覚センサ30A、30Bにより計測される。なお、ロボット10が、どの部分がエンドエフェクタであるかを特定しにくいようなロボットの場合には、操作対象物に対する影響が生じるロボットの箇所という観点で適宜位置姿勢を計測する箇所や外力を加える箇所を特定すればよい。
【0057】
本実施形態では、アーム11の先端11aに柔軟部13を介してグリッパ12が設けられた構成であるため、グリッパ12に外力が加えられたときに物理的に柔軟に変位できるか、または外力に応じて制御により変位できる構成が好ましい。なお、柔軟性を有しない硬いロボットに手で外力を加えることによっても開示の技術は適用可能である。
【0058】
ロボット10の位置姿勢は、本実施形態では位置3自由度、姿勢3自由度の最大計6自由度の値で表されるが、ロボット10の可動自由度に応じてより少ない自由度であってもよい。例えばエンドエフェクタの姿勢変化が生じないロボットの場合には、「位置姿勢」は位置3自由度のみでよい。
【0059】
モデル実行部42は、ロボットモデルLMを実行する。
【0060】
ロボットモデルLMは、
図5に示すように、ある時間における位置姿勢の実績値(計測値)及びロボット10に与えることができる行動指令(候補値又は決定値)に基づき、その次の時間におけるロボット10の位置姿勢の予測値を算出する状態遷移モデルDM及びロボット10に加えられる外力の予測値を算出する外力モデルEMを含む。
【0061】
なお、ロボットモデルLMが「に基づき」(=入力する)、「算出する」(=出力する)というのは、モデル実行部42がモデルを実行する際に、入力データを用いてモデルを実行する、モデルを実行することにより出力データを算出(生成)することをいう。
【0062】
外力モデルEMは、修正外力の予測値を出力する修正外力モデルEM1及び敵対外力の予測値を出力する敵対外力モデルEM2を含む。
【0063】
報酬算出部43は、位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び外力の予測値に基づいて報酬を算出する。到達すべき位置姿勢とは、タスク完了時に到達すべき位置姿勢でもよいし、タスク完了前の中間目標としての位置姿勢でもよい。
【0064】
報酬算出部43は、外力が誤差の拡大を抑制する外力である修正外力である場合において、修正外力の予測値を報酬の減少要因とする計算により報酬を算出する。
【0065】
誤差の拡大を抑制する外力である修正外力とは、位置姿勢の誤差が拡大していく場面で拡大の速さを鈍らせるような外力であり、誤差の拡大を縮小に転じさせる外力でなくてもよい。
【0066】
修正外力の予測値を報酬の減少要因とする計算とは、修正外力の予測値を0にして計算した場合の報酬にくらべて外力モデルが算出した修正外力の予測値を用いて計算した場合の報酬の方が小さいことを意味する。なお、減少は時間的な減少を意味するものではなく、修正外力モデルEM1が算出した修正外力の予測値を計算に用いていても報酬が時間の経過に従い減少するとは限らない。
【0067】
位置姿勢の誤差が拡大していく場合でも、位置姿勢の誤差が大きいとき(例えば
図3においてペグ70が穴74から大きく離間しているとき)に修正外力を加えるのが好ましく、位置姿勢の誤差が小さいとき(ペグ70が穴74付近にあるとき)は修正外力を加えなくてもよい。また、位置姿勢の誤差が大きいときに、位置姿勢の誤差が拡大していく速さが大きいほど大きな修正外力を加えることが好ましい。
【0068】
また、報酬算出部43は、タスク実行中における修正外力の予測値に基づく報酬の減少量の変化の幅が誤差に基づく報酬の変化の幅よりも小さくなる計算により報酬を算出する。
【0069】
また、報酬算出部43は、外力が誤差の縮小を抑制する外力である敵対外力である場合において、敵対外力の予測値を報酬の増加要因とする計算により報酬を算出する。
【0070】
誤差の縮小を抑制する外力である敵対外力とは、位置姿勢の誤差が縮小していく場面で縮小の速さを鈍らせるような外力であり、誤差の縮小を拡大に転じさせる外力でなくてもよい。
【0071】
敵対外力の予測値を報酬の増加要因とする計算とは、敵対外力の予測値を0にして計算した場合の報酬にくらべて敵対外力モデルが算出した敵対外力の予測値を用いて計算した場合の報酬の方が大きいことを意味する。なお、増加は時間的な増加を意味するものではなく、敵対外力モデルEM2が算出した敵対外力の予測値を計算に用いていても報酬が時間の経過に従い増加するとは限らない。
【0072】
位置姿勢の誤差が縮小していく場合でも、位置姿勢の誤差が小さいとき(例えば
図3においてペグ70が穴74付近にあるとき)に敵対外力を加えるのが好ましく、位置姿勢の誤差が大きいときは敵対外力を加えなくてもよい。また、位置姿勢の誤差が小さいときに、位置姿勢の誤差が縮小していく速さが大きいほど大きな敵対外力を加えることが好ましい。
【0073】
また、報酬算出部43は、タスク実行中における敵対外力の予測値に基づく報酬の増加量の変化の幅が誤差に基づく報酬の変化の幅よりも小さくなる計算により報酬を算出する。
【0074】
行動決定部44は、制御周期毎に、行動指令の複数の候補を生成してロボットモデルLMに与え、行動指令の複数の候補のそれぞれに対応して報酬算出部43が算出する報酬に基づいて報酬を最大化する行動指令を決定する。
【0075】
行動指令とは、本実施形態では速度指令であるが、位置指令、トルク指令、速度、位置、トルクの組み合わせ指令等でもよい。また、行動指令は、複数の時間にわたる行動指令の系列であってもよい。また、行動指令の複数の候補は、行動指令の複数の系列の候補であってもよい。
【0076】
報酬を最大化するとは、限られた時間内で探索した結果として最大化されていればよく、報酬がその状況における真の最大値になっている必要はない。
【0077】
外力モデル更新部45は、決定された行動指令に基づいて外力モデルが算出した外力の予測値と、当該外力の予測値に対応する外力の実績値との間の差異が小さくなるように外力モデルを更新する。
【0078】
外力モデル更新部45は、修正外力モデル更新部45A及び敵対外力モデル更新部45Bを含む。
【0079】
修正外力モデル更新部45Aは、行動決定部44で決定された行動指令に基づいて修正外力モデルEM1が算出した修正外力の予測値と修正外力の実績値との間の差異が小さくなるように修正外力モデルEM1を更新する。
【0080】
敵対外力モデル更新部45Bは、行動決定部44で決定された行動指令に基づいて敵対外力モデルEM2が算出した敵対外力の予測値と敵対外力の実績値との間の差異が小さくなるように敵対外力モデルEM2を更新する。
【0081】
学習制御部46は、位置姿勢の実績値及び外力の実績値に基づき外力が修正外力であるか敵対外力であるかを判別し、判別の結果が修正外力である場合は修正外力モデル更新部の動作を有効化し、判別の結果が敵対外力である場合は敵対外力モデル更新部45Bの動作を有効化する。さらに、判別の結果が修正外力でない場合は修正外力モデル更新部45Aの動作を無効化し、判別の結果が敵対外力でない場合は敵対外力モデル更新部45Bの動作を無効化する。
【0082】
なお、本実施形態では、学習制御部46が、位置姿勢の実績値及び外力の実績値に基づき外力が修正外力であるか敵対外力であるかを自動で判別する場合について説明するが、学習制御部46が、外力が修正外力であるか敵対外力であるかの指定を受け付ける受け付け部をさらに備えた構成としてもよい。
【0083】
この場合、ユーザーは、入力装置60を操作して、グリッパ12に加える外力が修正外力であるか敵対外力であるかを指定してグリッパ12に外力を加える。
【0084】
そして、学習制御部46は、指定が修正外力である場合は修正外力モデル更新部45Aの動作を有効化し、指定が敵対外力である場合は敵対外力モデル更新部45Bの動作を有効化する。さらに、指定が修正外力でない場合は修正外力モデル更新部45Aの動作を無効化し、指定が敵対外力でない場合は敵対外力モデル更新部45Bの動作を無効化する。
【0085】
なお、
図5の例では、状態遷移モデルDM、修正外力モデルEM1、及び敵対外力モデルEM2がそれぞれ独立したモデルであるが、ロボットモデルLMの構成はこれに限られない。例えば
図6に示すロボットモデルLM1のように、共用部CM、状態遷移モデル固有部DMa、修正外力モデル固有部EM1a、及び敵対外力モデル固有部EM2aで構成されてもよい。この場合、共用部CMは、状態遷移モデルDM、修正外力モデルEM1、及び敵対外力モデルEM2に共通の処理を行う。修正外力モデル固有部EM1aは、修正外力モデルEM1に固有の処理を行う。敵対外力モデル固有部EM2aは、敵対外力モデルEM2に固有の処理を行う。
【0086】
また、
図7に示すロボットモデルLM2のように、
図5の修正外力モデルEM1及び敵対外力モデルEM2を備えた統合外力モデルIMを含む構成としてもよい。この場合、統合外力モデルIMは、外力の予測値を出力すると共に、外力が修正外力であるか敵対外力であるかを識別するための識別情報を出力する。
【0087】
統合外力モデルIMは、プログレッシブニューラルネットワークの手法により修正外力モデルEM1及び敵対外力モデルEM2を統合したものであってもよい。この場合、修正外力モデルEM1及び敵対外力モデルはニューラルネットワークで構成する。そして、敵対外力モデルEM2の1又は複数の中間層及び出力層のうちの少なくとも1つの層は、修正外力モデルEM1の対応する層の前段の層の出力をプログレッシブニューラルネットワーク(PNN:Progressive Neural Network)の手法により統合する。
【0088】
図8の例では、敵対外力モデルEM2の出力層OUT2には、修正外力モデルEM1の対応する出力層OUT1の前段の層である中間層MID2Aの出力が入力されている。また、敵対外力モデルEM2の中間層MID2Bには、修正外力モデルEM1の対応する中間層MID2Aの前段の層である中間層MID1Aの出力が入力されている。
【0089】
このような統合外力モデルIMに対して、まず、修正外力モデルEM1の機械学習を行い、次に、敵対外力モデルEM2の機械学習を行う。修正外力を加えて修正外力モデルEM1の学習を行っている間は、修正外力の実績値に対する修正外力の予測値の誤差が小さくなるように修正外力モデルEM1の各層間の重みパラメータを更新し、敵対外力モデルEM2は更新しない。修正外力モデルEM1の1つの層(例えばMID1A)から次の層(MID2A)に至る経路の重みパラメータと同じ層(MID1A)から敵対外力モデルの層(MID2B)に至る経路の重みパラメータとは常に同じ値にする。敵対外力モデルEM2の1つの層(例えばMID2B)は、その層への修正外力モデルの層(例えばMID1A)からの重み付けられた入力と敵対外力モデルEM2の前段の層(MID1B)からの重み付けられた入力との和を敵対外力モデルEM2の後段の層(OUT2)への出力とする。修正外力モデルEM1の学習が終了した後、敵対外力を加えて敵対外力モデルEM2の学習を行っている間は、敵対外力の実績値に対する敵対外力の予測値の誤差が小さくなるように敵対外力モデルEM2の各層間の重みパラメータを更新し、修正外力モデルEM1は更新しない。敵対外力モデルEM2の学習が終了した後の運用フェーズにおいては、敵対外力モデルEM2の出力を外力の予測値として使用し、修正外力モデルEM1の出力は使用しない。このようにして外力の機械学習をすることにより、修正外力モデルEM1と敵対外力モデルEM2とを統合したモデルでありながら、先に行う修正外力についての学習結果を壊すことなく敵対外力についての学習を行うことができる。
【0090】
統合外力モデルIMは、図示しない識別部により外力の予測値が修正外力の予測値であるか敵対外力の予測値であるかを識別し、識別結果を識別情報として出力する。この場合、報酬算出部43は、識別情報が、修正外力の予測値であることを示す場合には外力の予測値を報酬の減少要因とする計算により報酬を算出し、識別情報が、敵対外力の予測値であることを示す場合には外力の予測値を報酬の増加要因とする計算により報酬を算出する。
【0091】
なお、プログレッシブニューラルネットワークの手法とは、例えば下記参考文献に記載された手法をいう。
【0092】
(参考文献)Rusu et al., “Progressive neural networks,” arXiv preprint arXiv:1606.04671, 2016.
【0093】
また、プログレッシブニューラルネットワークに関しては、下記の参考記事がある。
【0094】
(参考記事)複数のゲームにおけるcontinual learning
https://wba-initiative.org/wp-content/uploads/2015/05/20161008-hack2-noguchi.pdf
【0095】
(ロボットモデルの学習処理)
【0096】
図9は、機械学習を用いてロボットモデルLMを学習する機械学習処理の流れを示すフローチャートである。
図9の機械学習処理は、CPU40AがROM40Bまたはストレージ40Dに記憶された機械学習プログラムを読み出して、RAM40Cに展開して実行される。
【0097】
以下で説明するステップS100~ステップS108の処理は、制御周期に従って一定の時間間隔で実行される。制御周期は、ステップS100~ステップS108の処理を実行可能な時間に設定される。
【0098】
ステップS100では、CPU40Aが、前回の制御周期を開始してから制御周期の長さに相当する所定時間が経過するまで待機する処理を行う。なお、ステップS100の処理を省略し、前の制御周期の処理が完了したら直ぐに次の制御周期の処理が開始されるようにしてもよい。
【0099】
ステップS101では、CPU40Aが、状態観測センサ20からロボット10の位置姿勢の実績値(計測値)を取得すると共に、触覚センサ30A、30Bから外力の実績値(計測値)を取得する。
【0100】
ステップS102では、CPU40Aが、取得部41として、ステップS101で取得した位置姿勢の実績値が予め定めた終了条件を充足するか否かを判定する。ここで、終了条件を充足する場合とは、例えば位置姿勢の実績値と到達すべき位置姿勢の目標値との誤差が規定値以内の場合である。到達すべき位置姿勢とは、本実施形態の場合はロボット10がペグ70を穴74に挿入できたときのロボット10の位置姿勢である。
【0101】
ステップS102の判定が肯定判定の場合は、本ルーチンを終了する。一方、ステップS102の判定が否定判定の場合は、ステップS103へ移行する。
【0102】
ステップS103では、CPU40Aが、外力モデル更新部45として、外力モデルEMを更新する。具体的には、まずステップS101で取得した位置姿勢の実績値及び外力の実績値に基づき外力が修正外力であるか敵対外力であるかを判別する。例えば、位置姿勢の実績値と到達すべき位置姿勢の目標値との誤差が拡大しているときに誤差の拡大を抑制するような方向の力として検出された外力は修正外力と判別し、誤差が縮小しているときに誤差の縮小を抑制するような方向の力として検出された外力は敵対外力と判別することができるが、判別方法はこれに限られるものではない。
【0103】
そして、判別された外力が修正外力である場合は、決定された行動指令に基づいて修正外力モデルEM1が算出した修正外力の予測値と修正外力の実績値との間の差異が小さくなるように修正外力モデルEM1の修正外力モデルパラメータを更新する。
【0104】
一方、判別された外力が敵対外力である場合は、決定された行動指令に基づいて敵対外力モデルEM2が算出した敵対外力の予測値と敵対外力の実績値との間の差異が小さくなるように敵対外力モデルEM2の敵対外力モデルパラメータを更新する。
【0105】
ステップS104では、CPU40Aが、行動決定部44として、ロボット10に対する行動指令(又は行動指令系列)の複数の候補を生成する。本実施形態では、例えばn個(例えば300個)の速度指令値候補をランダムに生成し、行動指令の候補値としてモデル実行部42に出力する。
【0106】
ステップS105では、CPU40Aが、モデル実行部42として、ステップS104で生成した行動指令の複数の候補のそれぞれについて位置姿勢の予測値及び外力の予測値を算出する。具体的には、位置姿勢の実績値及びn個の行動指令の候補値をロボットモデルLMに入力し、それぞれ行動指令の候補値に対応する位置姿勢の予測値、及び修正外力の予測値又は敵対外力の予測値を算出する。
【0107】
ステップS106では、CPU40Aが、報酬算出部43として、n個の行動指令の候補値に対応する位置姿勢の予測値及び修正外力の組毎に、報酬を算出する。すなわち、n個の報酬を算出する。
【0108】
外力が修正外力の場合の報酬r1は、下記(1)式を用いて算出することができる。
【0109】
【0110】
ここで、rRは、位置姿勢の予測値と到達すべき位置姿勢の目標値との誤差である。s1Hは修正外力である。α1は重みであり、予め設定される。α1は、タスク実行中における修正外力の予測値に基づく報酬r1の減少量の変化の幅が、位置姿勢の予測値と到達すべき位置姿勢の目標値との誤差に基づく報酬r1の変化の幅よりも小さくなるように設定される。
【0111】
一方、外力が敵対外力の場合の報酬r2は、下記(2)式を用いて算出することができる。
【0112】
【0113】
ここで、s2Hは敵対外力である。α2は重みであり、予め設定される。α2は、タスク実行中における敵対外力の予測値に基づく報酬r2の増加量の変化の幅が、位置姿勢の予測値と到達すべき位置姿勢の目標値との誤差に基づく報酬r2の変化の幅よりも小さくなるように設定される。
【0114】
上記(1)、(2)式に示すように、外力が同じ場合において、位置姿勢の予測値と到達すべき位置姿勢の目標値との誤差が大きいほど報酬は小さくなる。また、上記(1)式に示すように、誤差が同じ場合において、修正外力が大きいほど報酬は小さくなる。また、上記(2)式に示すように、誤差が同じ場合において、敵対外力が大きいほど報酬は大きくなる。
【0115】
ステップS107では、CPU40Aが、行動決定部44として、報酬を最大化する行動指令を決定し、ロボット10に出力する。例えば、n個の行動指令の候補値と報酬との対応関係を表す関係式を算出し、算出した関係式によって表される曲線上における最大の報酬に対応する行動指令の候補値を決定値とする。また、所謂クロスエントロピー法(cross-entropy method:CEM)を用いて報酬を最大化できる行動指令を特定してもよい。これにより、報酬を最大化した行動指令が得られる。
【0116】
ステップS104からステップS106までは、所定回数繰り返して実行するようにしてもよい。その場合、CPU40Aは、行動決定部44として、1回目のステップS106を実行した後、n個の行動指令の候補値と報酬との組から報酬が上位である行動指令の候補値m個を抽出し、行動指令の候補値m個の平均及び分散を求め、それに従う正規分布を生成する。2回目のステップS104では、CPU40Aは、行動決定部44として、ランダムにではなく、確率密度が求めた正規分布と一致するように新しいn個の速度指令の候補値を生成する。以下同様にして、ステップS104からステップS106までを所定回数実行する。このようにすると、報酬を最大化する精度を高めることができる。
【0117】
ロボット10は、行動指令の決定値に従って動作する。ユーザーは、ロボット10の動作に応じて外力をロボット10に加える。具体的には、外力をグリッパ12に加える。ユーザーは、位置姿勢の予測値と到達すべき位置姿勢の目標値との誤差が拡大しつつある場合に、ロボット10に対して修正外力を加え、誤差が縮小しつつある場合に、ロボット10に対して敵対外力を加えることが好ましい。すなわち、ユーザーは、例えばロボット10の動作によりペグ70が穴74から離れる方向に移動しつつある場合には、ペグ70が穴74に近づく方向にグリッパ12に修正外力を加える。また、例えばロボット10の動作によりペグ70が穴74から近づく方向に移動しつつある場合には、ペグ70が穴74から離れる方向にグリッパ12に敵対外力を加える。
【0118】
なお、外力モデルを機械学習する過程において、最初に修正外力を加えることが好ましい。最初に敵対外力を加えると学習が遅くなる可能性があるためである。また、修正外力及び敵対外力を加える比率としては、1対1でもよいし、修正外力の比率を高くしてもよい。また、修正外力及び敵対外力を加える順序としては、修正外力を複数回加えてから敵対外力を複数回加えてもよいし、修正外力及び敵対外力を交互に加えてもよい。
【0119】
また、人間が修正外力又は敵対外力を加えるのではなく、外力を付与するロボット等によって自動で修正外力又は敵対外力を加えても良い。
【0120】
ステップS108では、CPU40Aが、モデル実行部42として、ステップS107で決定した行動指令の決定値について外力の予測値を算出し、ステップS100へ戻る。
【0121】
このように、位置姿勢の実績値が終了条件を充足するまで、制御周期毎にステップS100~S108の処理を繰り返す。
【0122】
これにより、ロボットモデルLMが学習される。このように、ロボットモデルLMは、修正外力モデルEM1及び敵対外力モデルEM2を含み、ユーザーが修正外力又は敵対外力をロボット10に加えながらロボットモデルLMを学習するため、効率良く学習することができると共に、ロボット10の操作対象である部品の形状及び材質が変化したり、ロボット10の物理特性が経年変化したりする等の環境変化に対するロバスト性に優れたロボットモデルLMを得ることができる。
【0123】
なお、運用フェーズにおいては、モデル実行部42は、
図9の学習処理により学習済みのロボットモデルLMを実行する。運用フェーズにおけるロボット制御装置40の機能構成は、
図1の機能構成から外力モデル更新部45及び学習制御部46を省いた構成である。運用フェーズにおけるロボット制御処理は、
図9の学習処理から、ステップS101の中の「外力の実績値を取得」の処理、及びステップS103の外力モデル更新の更新処理を除いた処理であり、この処理を実行するプログラムがロボット制御処理プログラムとなる。
【0124】
なお、学習フェーズにおけるロボットモデルの学習処理を実行する装置と運用フェーズにおけるロボット制御処理を実行する装置とは、別々の装置でもよいし、同じでもよい。例えば、学習に用いた学習装置をそのままロボット制御装置40として使用し、学習済みのロボットモデルLMを用いた制御を行ってもよい。また、ロボット制御装置40は、学習を継続しながら制御を行ってもよい。
【0125】
<第1実施形態の変形例>
第1実施形態では、状態遷移モデルDMは、位置姿勢の実績値及び行動指令を入力するが、外力の実績値は入力しない構成であった。これに代えて、状態遷移モデルDMは、外力の実績値も入力する構成にしてもよい。その場合、状態遷移モデルDMは、位置姿勢の実績値、行動指令、及び外力の実績値に基づいて、位置姿勢の予測値を算出する。もっとも、触覚センサ30A、30Bに修正外力又は敵対外力が加えられるのは外力モデルEM1、EM2、EM1a、EM2a、IMの機械学習をしている期間に限られる。運用フェーズにおいては、状態遷移モデルDMは、外力の実績値の入力が実質的にゼロである状態が継続したままで位置姿勢の予測値を算出する。一方、外力モデルが外力の実績値の入力なしに位置姿勢の実績値及び行動指令から外力の予測値を算出することは、この変形例においても同様である。外力の予測値は、報酬計算に使われることを通して行動決定に影響を与える。この変形例と同様の変形は、以降の実施形態においても行うことができる。
【0126】
<第2実施形態>
【0127】
次に、開示の技術の第2実施形態について説明する。なお、第1実施形態と同一部分には同一符号を付し、詳細な説明は省略する。
【0128】
第2実施形態にかかるロボットシステム1は第1実施形態と同一であるので説明は省略する。
【0129】
(ロボットモデルの学習処理)
【0130】
図10は、第2実施形態に係る機械学習処理の流れを示すフローチャートである。
図10の機械学習処理は、CPU40AがROM40Bまたはストレージ40Dに記憶された機械学習プログラムを読み出して、RAM40Cに展開して実行される。
【0131】
ステップS100~S103、S108の処理は、
図9の処理と同一であるため説明は省略する。
【0132】
ステップS104Aでは、CPU40Aが、行動決定部44として、ロボット10に対する行動指令(又は行動指令系列)の一の候補を生成する。
【0133】
ステップS106Aでは、CPU40Aが、モデル実行部42として、ステップS104Aで生成した行動指令の一の候補について位置姿勢の予測値及び外力の予測値を算出する。具体的には、位置姿勢の実績値及び行動指令の候補値をロボットモデルLMに入力し、行動指令の候補値に対応する位置姿勢の予測値、及び修正外力の予測値又は敵対外力の予測値を算出する。
【0134】
ステップS106Aでは、CPU40Aが、報酬算出部43として、行動指令の候補値に対応する位置姿勢の予測値及び外力の予測値の組に基づいて報酬を算出する。すなわち、外力が修正外力の場合は上記(1)式により報酬r1を算出し、外力が敵対外力の場合は上記(2)式により報酬r2を算出する。
【0135】
ステップS106Bでは、CPU40Aが、ステップS106Aで算出した報酬が規定条件を充足するか否かを判定する。ここで、規定条件を充足する場合とは、例えば報酬が規定値を超えた場合、または、ステップS104A~S106Bの処理のループを規定回数実行した場合等である。規定回数は、例えば10回、100回、1000回等に設定される。
【0136】
ステップS107Aでは、CPU40Aが、行動決定部44として、報酬を最大化する行動指令を決定し、ロボット10に出力する。例えば、報酬が規定条件を充足したときの行動指令そのものでもよいし、行動指令の変化に対応する報酬の変化の履歴から予測される、更に報酬を最大化できる行動指令としてもよい。
【0137】
<第3実施形態>
【0138】
次に、開示の技術の第3実施形態について説明する。なお、第1実施形態と同一部分には同一符号を付し、詳細な説明は省略する。
【0139】
(ロボット制御装置)
【0140】
図11は、第3実施形態に係るロボット制御装置40Xの機能構成である。ロボット制御装置40Xが
図1に示すロボット制御装置40と異なるのは、記憶部48及び状態遷移モデル更新部49を備えている点である。その他の構成はロボット制御装置40と同一であるので説明は省略する。
【0141】
記憶部48は、取得部41が取得したロボット10の位置姿勢の実績値を記憶する。
【0142】
状態遷移モデル更新部49は、行動決定部44で決定された行動指令に基づいて状態遷移モデルDMが算出した位置姿勢の予測値と、当該位置姿勢の予測値に対応する位置姿勢の実績値との間の誤差が小さくなるように状態遷移モデルDMを更新する。
【0143】
(ロボットモデルの学習処理)
【0144】
図12は、第3実施形態に係る機械学習処理の流れを示すフローチャートである。
図12の機械学習処理は、CPU40AがROM40Bまたはストレージ40Dに記憶された機械学習プログラムを読み出して、RAM40Cに展開して実行される。
【0145】
図12の学習処理が
図9の学習装置と異なるのは、ステップS101A、S103Aの処理が追加されている点である。その他のステップは
図9の処理と同一であるため説明は省略する。
【0146】
ステップS101Aでは、CPU40Aが、取得部41として、ステップS101で取得したロボット10の位置姿勢の実績値を記憶部48に記憶させる。
【0147】
ステップS103Aでは、CPU40Aが、状態遷移モデル更新部49として、状態遷移モデルDMを更新する。具体的には、まず記憶部48に記憶されている中からランダムに選んだ例えば100個の時刻tについての位置姿勢の実績値xt、行動指令としての速度指令値ut、時刻t+1についての位置姿勢の実績値xt+1の組を取得する。次に、前回の状態遷移モデルパラメータを修正した新たな状態遷移モデルパラメータを決定する。状態遷移モデルパラメータの修正は、時刻tにおける位置姿勢の実績値から算出した時刻t+1における位置姿勢の予測値と、時刻t+1における位置姿勢の実績値との誤差が最小となることを目標として行う。
【0148】
そして、新たな状態遷移モデルパラメータを状態遷移モデルDMに設定する。新たな状態遷移モデルパラメータは、次の制御周期において「前回のモデルパラメータ」として使用するために状態遷移モデル更新部49内に記憶する。
【0149】
このように、本実施形態では、修正外力モデルEM1及び敵対外力モデルEM2と共に、状態遷移モデルDMも学習することができる。
【0150】
<実験例>
【0151】
次に、開示の技術の実験例について説明する。
【0152】
図13は、シミュレーションによりロボットに修正外力及び敵対外力を加えながらペグを穴に挿入するタスクを行ってロボットモデルを学習した結果を示す。このシミュレーションでは、修正外力を7回加えた後、敵対外力を7回加えてロボットモデルを学習した。
【0153】
図13(A)、(B)の横軸は外力を加えた回数を表す。
図13(A)の縦軸はペグの位置の誤差を表す。
図13(B)の縦軸は加えた外力の大きさを表す。
【0154】
図13(A)には、従来手法により外力を加えずに状態遷移モデルのみ学習した結果(Baseline)と、提案手法により被験者1が加えた修正外力及び敵対外力により修正外力モデル及び敵対外力モデルを含むロボットモデルを学習した結果(Proposed(participant1))と、提案手法により被験者1と異なる被験者2が加えた修正外力及び敵対外力により修正外力モデル及び敵対外力モデルを含むロボットモデルを学習した結果(Proposed(participant2))と、を示した。
図13(A)に示すように、学習終了時の位置の誤差を従来手法と提案手法(被験者1及び被験者2)とで比較すると、提案手法の方が従来手法よりも位置の誤差が小さいことが分かる。また、
図13(B)に示すように、外力の加え方は被験者1、2で異なるが、被験者によらず位置の誤差が小さくなることが分かった。
【0155】
また、
図14(A)には、穴が設けられた台の摩擦係数を変えてペグの挿入が成功した回数をシミュレーションした結果を示した。
図14(B)には、ペグの質量を変えてペグの挿入が成功した回数をシミュレーションした結果を示した。
図14(A)、(B)に示すように、台の摩擦係数やペグの質量が異なる場合でも、ペグの挿入の成功回数が従来手法よりも提案手法の方が多くなることが分かった。
【0156】
また、
図15には、シミュレーションと同様のペグの挿入タスクを、異なる材質のペグを用いて実機で行った結果を示した。ペグの材質は、金属(Default)、プラスティック、及びスポンジの3種類である。
図15に示すように、何れの材質のペグにおいても、従来手法と比べて提案手法の方がペグの挿入の成功回数が多くなることが分かった。
【0157】
上記実施形態の構成及び動作、並びに上記実験例からわかるとおり、修正外力を加えて機械学習することによりロボットモデルの機械学習の効率を高めることができる。また、敵対外力を加えて機械学習することにより、把持対象物における摩擦力や質量の変化に対するロバスト性を高めることができる。また、敵対外力を加えて機械学習することにも学習効率を高める効果がある。
【0158】
なお、上記実施形態は、本発明の構成例を例示的に説明するものに過ぎない。開示の技術は上記の具体的な形態には限定されることはなく、その技術的思想の範囲内で種々の変形が可能である。
【0159】
例えば上記実施形態では、ペグの嵌め込み作業を例に説明したが、学習および制御対象の作業は任意の作業であってよい。
【0160】
また、上各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行したロボットモデルの学習処理及びロボット制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0161】
また、上記各実施形態では、ロボットモデルの学習プログラム及びロボット制御プログラムがストレージ40D又はROM40Bに予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部(41)と、
ある時間における前記位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)と、
前記ロボットモデルを実行するモデル実行部(42)と、
前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記外力の予測値に基づいて報酬を算出する報酬算出部(43)と、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部(44)と、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する外力モデル更新部(45)と、
を備えたロボットモデルの学習装置。
(付記2)
決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新する状態遷移モデル更新部(49)と、
を備えた付記1記載のロボットモデルの学習装置。
(付記3)
前記報酬算出部は、前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出する
付記1又は付記2記載のロボットモデルの学習装置。
(付記4)
前記報酬算出部は、タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の減少量の変化の幅よりも小さくなる計算により前記報酬を算出する
付記3記載のロボットモデルの学習装置。
(付記5)
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデル(EM1)を含み、
前記外力モデル更新部は、前記外力が前記修正外力である場合において、前記決定された前記行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記修正外力の実績値との間の差異が小さくなるように前記修正外力モデルを更新する修正外力モデル更新部(45A)を含む
付記3又は付記4記載のロボットモデルの学習装置。
(付記6)
前記報酬算出部は、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
付記1又は付記2記載のロボットモデルの学習装置。
(付記7)
前記報酬算出部は、タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の増加量の変化の幅よりも小さくなる計算により前記報酬を算出する
付記6記載のロボットモデルの学習装置。
(付記8)
前記外力モデルは、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデル(EM2)を含み、
前記外力モデル更新部は、前記外力が前記敵対外力である場合において、前記決定された前記行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記敵対外力の実績値との間の差異が小さくなるように前記敵対外力モデルを更新する敵対外力モデル更新部(45B)を含む
付記6又は付記7記載のロボットモデルの学習装置。
(付記9)
前記報酬算出部は、前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
付記1又は付記2記載のロボットモデルの学習装置。
(付記10)
前記報酬算出部は、タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなり、タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出する
付記9記載のロボットモデルの学習装置。
(付記11)
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデル(EM1)と、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデル(EM2)とを含み、
前記外力モデル更新部は、前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新する修正外力モデル更新部と、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新する敵対外力モデル更新部(45B)とを含む
付記9又は付記10記載のロボットモデルの学習装置。
(付記12)
前記ロボットモデルは、前記修正外力モデル及び前記敵対外力モデルを備えた統合外力モデル(IM)を含み、
前記修正外力モデル及び前記敵対外力モデルはニューラルネットワークであり、
前記敵対外力モデルの1又は複数の中間層及び出力層のうちの少なくとも1つの層は、前記修正外力モデルの対応する層の前段の層の出力をプログレッシブニューラルネットワークの手法により統合し、
前記統合外力モデルは、前記敵対外力モデルの出力を外力の予測値として出力し、
前記統合外力モデルは、出力する前記外力の予測値が修正外力の予測値であるか敵対外力の予測値であるかの識別情報を出力し、
前記報酬算出部は、前記識別情報が、修正外力の予測値であることを示す場合には前記外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記識別情報が、敵対外力の予測値であることを示す場合には前記外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
付記11記載のロボットモデルの学習装置。
(付記13)
前記外力が前記修正外力であるか前記敵対外力であるかの指定を受け付ける受け付け部をさらに備え、
前記指定が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記指定が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部をさらに備えた
付記11又は付記12記載のロボットモデルの学習装置。
(付記14)
前記位置姿勢の実績値及び前記外力の実績値に基づき前記外力が前記修正外力であるか前記敵対外力であるかを判別し、前記判別の結果が前記修正外力である場合は前記修正外力モデル更新部の動作を有効化し、前記判別の結果が前記敵対外力である場合は前記敵対外力モデル更新部の動作を有効化する学習制御部(46)をさらに備える
付記11又は付記12記載のロボットモデルの学習装置。
(付記15)
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)を用意し、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する、
ロボットモデルの機械学習方法。
(付記16)
さらに、決定された前記行動指令に基づいて前記状態遷移モデルが算出した前記位置姿勢の予測値と、当該位置姿勢の予測値に対応する前記位置姿勢の実績値との間の誤差が小さくなるように前記状態遷移モデルを更新する
付記15記載のロボットモデルの機械学習方法。
(付記17)
前記外力が前記誤差の拡大を抑制する外力である修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出する
付記15又は付記16記載のロボットモデルの機械学習方法。
(付記18)
タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出する
付記17記載のロボットモデルの機械学習方法。
(付記19)
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデル(EM1)を含み、
前記外力が前記修正外力である場合において、前記決定された前記行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との間の差異が小さくなるように前記修正外力モデルを更新する
付記17又は付記18記載のロボットモデルの機械学習方法。
(付記20)
前記誤差が拡大しつつある場合に、前記ロボットに対して前記修正外力を加える
付記19記載のロボットモデルの機械学習方法。
(付記21)
前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
付記15又は付記16記載のロボットモデルの機械学習方法。
(付記22)
タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出する
付記21記載のロボットモデルの機械学習方法。
(付記23)
前記外力モデルは、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデル(EM2)を含み、
前記外力が前記敵対外力である場合において、前記決定された前記行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との間の差異が小さくなるように前記敵対外力モデルを更新する
付記21又は付記22記載のロボットモデルの機械学習方法。
(付記24)
前記誤差が縮小しつつある場合に、前記ロボットに対して前記敵対外力を加える
付記23記載のロボットモデルの機械学習方法。
(付記25)
前記外力が前記誤差の拡大を抑制する修正外力である場合において、前記修正外力の予測値を前記報酬の減少要因とする計算により前記報酬を算出し、前記外力が前記誤差の縮小を抑制する外力である敵対外力である場合において、前記敵対外力の予測値を前記報酬の増加要因とする計算により前記報酬を算出する
付記15又は付記16記載のロボットモデルの機械学習方法。
(付記26)
タスク実行中における前記修正外力の予測値に基づく前記報酬の減少量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなり、タスク実行中における前記敵対外力の予測値に基づく前記報酬の増加量の変化の幅が前記誤差に基づく前記報酬の変化の幅よりも小さくなる計算により前記報酬を算出する
付記25記載のロボットモデルの機械学習方法。
(付記27)
前記外力モデルは、前記外力が前記修正外力である場合において、前記修正外力の予測値を出力する修正外力モデル(EM1)と、前記外力が前記敵対外力である場合において、前記敵対外力の予測値を出力する敵対外力モデル(EM2)とを含み、
前記外力が前記修正外力である場合において、前記決定された行動指令に基づいて前記修正外力モデルが算出した前記修正外力の予測値と前記外力の実績値との差異が小さくなるように前記修正外力モデルを更新し、前記外力が前記敵対外力である場合において、前記決定された行動指令に基づいて前記敵対外力モデルが算出した前記敵対外力の予測値と前記外力の実績値との差異が小さくなるように前記敵対外力モデルを更新する
付記25又は付記26記載のロボットモデルの機械学習方法。
(付記28)
前記誤差が拡大しつつある場合に、前記ロボットに対して前記修正外力を加え、前記誤差が縮小しつつある場合に、前記ロボットに対して前記敵対外力を加える
付記27記載のロボットモデルの機械学習方法。
(付記29)
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)を機械学習するための機械学習プログラムであって、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記外力モデルが算出した前記外力の予測値と、当該外力の予測値に対応する前記外力の実績値との間の差異が小さくなるように前記外力モデルを更新する、
各処理をコンピュータに行わせるロボットモデルの機械学習プログラム。
(付記30)
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)を実行するモデル実行部(42)と、
前記ロボットの位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得する取得部(41)と、
前記ロボットモデルにより算出された位置姿勢の予測値と到達すべき位置姿勢の目標値との間の誤差及び前記ロボットモデルにより算出された外力の予測値に基づいて報酬を算出する報酬算出部(43)と、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補のそれぞれに対応して前記報酬算出部が算出する報酬に基づいて報酬を最大化する行動指令を決定する行動決定部(44)と、
を備えたロボット制御装置。
(付記31)
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)を用意し、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記ロボットを制御する、
ロボット制御方法。
(付記32)
ある時間におけるロボットの位置姿勢の実績値及び前記ロボットに与えることができる行動指令に基づき、その次の時間における前記ロボットの位置姿勢の予測値を算出する状態遷移モデル(DM)及び前記ロボットに加えられる外力の予測値を算出する外力モデル(EM)を含むロボットモデル(LM)を用いて前記ロボットを制御するためのプログラムであって、
制御周期毎に、前記位置姿勢の実績値及び前記ロボットに加えられる外力の実績値を取得し、
制御周期毎に、前記行動指令の複数の候補を生成して前記ロボットモデルに与え、前記行動指令の複数の候補に対応して前記状態遷移モデルにより算出される複数の前記位置姿勢の予測値と到達すべき位置姿勢の目標値との間の複数の誤差及び前記行動指令の複数の候補に対応して前記外力モデルにより算出される複数の前記外力の予測値に基づいて、前記行動指令の複数の候補に対応して算出される複数の報酬に基づいて、報酬を最大化する行動指令を決定し、
決定された前記行動指令に基づいて前記ロボットを制御する、
各処理をコンピュータに行わせるロボット制御プログラム。
【符号の説明】
【0162】
1 ロボットシステム
10 ロボット
20 状態観測センサ
30A、30B 触覚センサ
40 ロボット制御装置
41 取得部
42 モデル実行部
43 報酬算出部
44 行動決定部
45 外力モデル更新部
45A 敵対外力モデル更新部
45B 修正外力モデル更新部
49 状態遷移モデル更新部
70 ペグ
LM ロボットモデル