(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-11
(45)【発行日】2024-03-19
(54)【発明の名称】制御装置、制御方法及びプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240312BHJP
【FI】
B25J13/00 Z
(21)【出願番号】P 2022536009
(86)(22)【出願日】2020-07-14
(86)【国際出願番号】 JP2020027311
(87)【国際公開番号】W WO2022013933
(87)【国際公開日】2022-01-20
【審査請求日】2023-01-10
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100107331
【氏名又は名称】中村 聡延
(74)【代理人】
【識別番号】100104765
【氏名又は名称】江上 達夫
(74)【代理人】
【識別番号】100131015
【氏名又は名称】三輪 浩誉
(72)【発明者】
【氏名】伊藤 岳大
(72)【発明者】
【氏名】大山 博之
【審査官】尾形 元
(56)【参考文献】
【文献】特開2016-196079(JP,A)
【文献】国際公開第2020/058669(WO,A1)
【文献】内部 英治,線形可解マルコフ決定過程を用いた順・逆強化学習,日本神経回路学会誌,日本,日本神経回路学会,2016年,Vol.23, No.1,p.2-13
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの動作に関する動作ポリシーを取得する動作ポリシー取得手段と、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成するポリシー合成手段と、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得する評価指標取得手段と、
前記評価指標に基づき前記評価を行う状態評価手段と、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新するパラメータ学習手段と、
を有する制御装置。
【請求項2】
前記評価指標取得手段は、複数の評価指標の候補からユーザ入力に基づき選択された評価指標を取得する、請求項
1に記載の制御装置。
【請求項3】
前記状態評価手段は、前記動作ポリシー毎の評価指標に基づき、前記動作ポリシー毎に前記評価を行い、
前記パラメータ学習手段は、前記動作ポリシー毎の前記評価に基づき、前記動作ポリシー毎の前記学習対象パラメータの学習を行う、請求項
1または2に記載の制御装置。
【請求項4】
前記動作ポリシー取得手段は、前記学習対象パラメータの候補から、ユーザ入力に基づき選択された学習対象パラメータを取得し、
前記パラメータ学習手段は、当該学習対象パラメータの値を更新する、請求項
1~3のいずれか一項に記載の制御装置。
【請求項5】
前記動作ポリシー取得手段は、前記ロボットに対する動作ポリシーの候補から、ユーザ入力に基づき選択された動作ポリシーを取得する、請求項1~
4のいずれか一項に記載の制御装置。
【請求項6】
前記動作ポリシーは、状態変数に応じて、前記ロボットの作用点における、目標状態を制御する制御則であり、
前記動作ポリシー取得手段は、前記作用点と、前記状態変数とを指定する情報を取得する、請求項
5に記載の制御装置。
【請求項7】
ロボットの動作に関する動作ポリシーを取得する動作ポリシー取得手段と、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成するポリシー合成手段と、を有
し、
前記動作ポリシーは、状態変数に応じて、前記ロボットの作用点における、目標状態を制御する制御則であり、
前記動作ポリシー取得手段は、前記作用点と、前記状態変数とを指定する情報を取得する、制御装置。
【請求項8】
コンピュータにより、
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成
し、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得し、
前記評価指標に基づき前記評価を行い、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新する、
制御方法。
【請求項9】
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成
し、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得し、
前記評価指標に基づき前記評価を行い、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新する処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットに関する制御を行う制御装置、制御方法及び記憶媒体に関する。
【背景技術】
【0002】
労働人口の減少などから、様々な領域にロボットの応用が期待されている。すでに、重量物のハンドリングなどが必要な物流業や、単純作業が繰り返される食品工場などではピックアンドプレイスが可能なロボットマニュピュレータによる人手労働の代替が試みられている。しかしながら、現在のロボットは与えられた動作を正確に繰り返すことに特化しており、不定形物体の複雑なハンドリングや、狭い作業空間内での労働者の干渉など動的な障害物が多い環境では定型的な動作設定が困難である。したがって、労働者不足が叫ばれているにもかかわらず飲食店や、スーパーマーケット等ロボットの導入には至っていない。
【0003】
そのような複雑な状況にも対応できるロボットを開発するため、ロボット自身に環境の制約や、その場での適した動作について学習させる手法が提案されている。特許文献1には、深層強化学習を用いた、ロボットの動作の獲得方法が開示されている。特許文献2には、リーチングの目標位置との誤差をもとに、リーチングにかかわる動作パラメータを学習によって獲得する手法が開示されている。特許文献3には、リーチング動作の際の経由点を学習によって獲得する手法が開示されている。また、特許文献4には、ベイズ最適化を用いてロボットの動作パラメータを学習する手法が開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特表2019-529135号公報
【文献】特開2020-44590号公報
【文献】特開2020-28950号公報
【文献】特表2019-111604号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1では、深層学習や強化学習を用いたロボットの動作の獲得方法が提案されている。しかしながら、一般的に深層学習ではパラメータの収束まで、十分多くの学習を繰り返す必要があり、また強化学習においても、環境の複雑さに応じて必要となる学習回数は多くなる。特に、実ロボットで動作させながらの強化学習に関しては、学習時間及びトライアル回数の観点から現実的ではない。また、強化学習においては、環境状態と、その時のロボットが可能なアクションのセットに基づき、報酬が最も高くなるアクションを選ぶため、学習したポリシーを,環境が異なる場合にも応用することが困難であるという問題点がある。したがって、実環境においてロボットが自律的に適応的な動作を行うためには、学習時間の低減と、汎用的な動作の獲得が求められる。
【0006】
特許文献2、3においては、リーチングなど限定された動作において、学習を用いて動作を獲得する手法が提案されている。しかしながら、学習される動作は、限定された単純な動作となっている。特許文献4においては、ベイズ最適化を用いてロボットの動作パラメータを学習する手法が提案されている。しかしながら、複雑な動作をロボットに学習させる方法については開示していない。
【0007】
本開示の目的の1つは、ロボットを好適に動作させることができる制御装置を提供することである。
【課題を解決するための手段】
【0008】
制御装置の一の態様は、
ロボットの動作に関する動作ポリシーを取得する動作ポリシー取得手段と、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成するポリシー合成手段と、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得する評価指標取得手段と、
前記評価指標に基づき前記評価を行う状態評価手段と、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新するパラメータ学習手段と、
を有する制御装置である。
制御装置の一の態様は、
ロボットの動作に関する動作ポリシーを取得する動作ポリシー取得手段と、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成するポリシー合成手段と、を有し、
前記動作ポリシーは、状態変数に応じて、前記ロボットの作用点における、目標状態を制御する制御則であり、
前記動作ポリシー取得手段は、前記作用点と、前記状態変数とを指定する情報を取得する、制御装置である。
【0009】
制御方法の一の態様は、
コンピュータにより、
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成し、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得し、
前記評価指標に基づき前記評価を行い、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新する、
制御方法である。なお、コンピュータは、複数の装置から構成されてもよい。
【0010】
プログラムの一の態様は、
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成し、
前記制御指令に基づく前記ロボットの動作の評価に用いる評価指標を前記動作ポリシー毎に取得し、
前記評価指標に基づき前記評価を行い、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新する処理をコンピュータに実行させるプログラムである。
【発明の効果】
【0011】
本開示によれば、ロボットを好適に動作させることができる。
【図面の簡単な説明】
【0012】
【
図1】第1実施形態に係るロボットシステムの概略的な構成を示したブロック図である。
【
図2】(A)表示装置のハードウェア構成の一例である。(B)ロボットコントローラのハードウェア構成の一例である。
【
図3】第1実施形態のロボットシステムの動作を示したフローチャートの一例である。
【
図4】ロボットハードウェアの周辺環境の一例を示す図である。
【
図5】第1実施形態においてポリシー表示部が表示する動作ポリシー指定画面の一例である。
【
図6】第1実施形態において評価指標表示部が表示する評価指標指定画面の一例である。
【
図7】(A)第2実施形態におけるエンドエフェクタの第1の周辺図を示す。(B)第2実施形態におけるエンドエフェクタの第2の周辺図を示す。
【
図8】作用点と把持対象の円柱物体の位置との距離と、指の開度に相当する第2動作ポリシーにおける状態変数との関係を示す2次元グラフである。
【
図9】各試行において設定された学習対象パラメータのプロット図である。
【
図10】第3実施形態においてタスク実行中のエンドエフェクタの周辺図を示す。
【
図11】第3実施形態において評価指標表示部が表示する評価指標指定画面の一例である。
【
図12】(A)第3実施形態において、第1動作ポリシーの学習対象パラメータと第1動作ポリシーに対する報酬値との関係を示すグラフである。(B)第3実施形態において、第2動作ポリシーの学習対象パラメータと第2動作ポリシーに対する報酬値との関係を示すグラフである。
【
図13】第4実施形態における制御装置の概略構成図を示す。
【
図14】第4実施形態において制御装置が実行する処理手順を示すフローチャートの一例である。
【発明を実施するための形態】
【0013】
<課題の説明>
まず、本開示の内容理解を容易にするため、本開示において解決しようとする課題を詳細に説明する。
【0014】
環境に合わせて、適応的な動作を獲得するためには、実際に動いてみた結果を評価し動作を改善していく強化学習的なアプローチが有望である。ここで「動作ポリシー」とは、状態から動作を生成する関数である。ロボットは人間の代替として、様々な場所での活躍が期待されており、ロボットに実現してほしい動作は複雑で多岐にわたる。しかしながら、複雑な動作ポリシーを獲得するためには、現状の強化学習では非常に多くの試行回数が必要となる。それは動作ポリシー自体の全体像を、報酬関数と、試行錯誤に基づくデータから獲得しようとしているためである。
【0015】
ここで、動作ポリシー自体は、人間があらかじめ用意した関数でも、ロボットは動作することができる。たとえば、シンプルな動作ポリシーとして、「目標位置に手先を到達させる」というタスクを考えたとき、状態としては目標位置、ポリシー関数としては、目標位置から手先位置までの距離に応じた手先の引力を生じさせるような関数を選び、逆運動学で各関節の加速度(速度)を計算する。これにより、目標位置に到達する関節速度、あるいは加速度を生成することができる。これも一種の動作ポリシーと考えることができる。なお、この場合は、状態が限定されているため、環境に合わせた適応性などを発揮することができない。このような、単純なタスクであれば、例えばエンドエフェクタを閉じる動作、エンドエフェクタの姿勢を所望の姿勢にする動作などをあらかじめ設計することができる。ただし、あらかじめ規定された単純な動作ポリシー単体では、その場に合わせた複雑な動作を行うことはできない。
【0016】
また、動作ポリシーは、状態によって定まる一種の関数なので、その関数のパラメータを変化させるよって、動作の定性的な動作の形態を変化させることができる。たとえば、「目標位置に手先を到達させる」というタスクは同じであっても、ゲインを変えることで、到達する速度やオーバーシュートの量などを変化させることが可能であり、逆運動学を解くときの各関節の重みの変更によって、どの関節が主に動作するかについても変更することができる。
【0017】
ここで、このポリシーによって生成される動作を評価する報酬関数を定義し、その値が改善するようにポリシーパラメータを、ベイズ最適化や、シミュレータで動作確認した進化戦略(ES:Evolution Strategy)のアルゴリズムなどで更新すれば、環境に適したパラメータを、比較的少ない試行回数で獲得することができる。しかしながら、ある程度複雑な動作の関数の設計を作りこむのは一般的に困難であり、かつ、同一の動作が必要となることは少ない。したがって、一般の作業者が適切なポリシーや、報酬関数自体を作成するのは容易ではなく、時間的・金銭的コストがかかる。
【0018】
出願人は、係る課題を見出すとともに,係る課題を解決する手段を導出するに至った。出願人は、単純な動作を行わせることのできる動作ポリシー及び評価指標を、あらかじめシステムが用意しておき、作業者が選択したそれらの組み合わせを合成し、その場に合わせた適切なパラメータを学習する手法を提案する。この手法によれば、複雑な動作の生成及び動作結果の評価を的確に行い、かつ、作業者が容易に動作をロボットに学習させることができる。
【0019】
以降、上記の手法に関する各実施形態について,図面を参照しながら詳細に説明する.
【0020】
<第1実施形態>
第1実施形態では、ロボットアームを用いて、対象物体(例えばブロック)を掴むことを目的タスクとするロボットシステムについて説明する。
【0021】
(1)
システム構成
図1は、第1実施形態に係るロボットシステム1の概略的な構成を示したブロック図である。第1実施形態に係るロボットシステム1は、表示装置100と、ロボットコントローラ200と、ロボットハードウェア300とを有する。なお、
図1では、データ又はタイミング信号の授受が行われるブロック同士を矢印により結んでいるが、データ又はタイミング信号の授受が行われるブロックの組合せ及びデータの流れは
図1に限定されない。後述する他の機能ブロックの図においても同様である。
【0022】
表示装置100は、作業者(ユーザ)に情報を提示する表示機能と、ユーザによる入力を受け付ける入力機能と、ロボットコントローラ200との通信機能とを少なくとも有する。表示装置100は、機能的には、ポリシー表示部11と、評価指標表示部13とを有する。
【0023】
ポリシー表示部11は、ロボットの動作に関するポリシー(「動作ポリシー」とも呼ぶ。)に関する情報をユーザが指定する入力を受け付ける。この場合、ポリシー表示部11は、ポリシー記憶部27を参照し、動作ポリシーに関する候補を選択可能に表示する。ポリシー表示部11は、ユーザが指定した動作ポリシーに関する情報を、ポリシー取得部21に供給する。評価指標表示部13は、ロボットの動作を評価する評価指標をユーザが指定する入力を受け付ける。この場合、評価指標表示部13は、評価指標記憶部28を参照し、動作ポリシーに関する候補を選択可能に表示する。評価指標表示部13は、ユーザが指定した評価指標に関する情報を、評価指標取得部24に供給する。
【0024】
ロボットコントローラ200は、表示装置100から供給されるユーザが指定した種々の情報と、ロボットハードウェア300から供給されるセンサ情報とに基づき、ロボットハードウェア300を制御する。ロボットコントローラ200は、機能的には、ポリシー取得部21と、パラメータ決定部22と、ポリシー合成部23と、評価指標取得部24と、パラメータ学習部25と、状態評価部26と、ポリシー記憶部27とを有する。
【0025】
ポリシー取得部21は、ユーザが指定したロボットの動作ポリシーに関する情報を、ポリシー表示部11から取得する。ユーザが指定するロボットの動作ポリシーに関する情報は、動作ポリシーの種類を指定する情報、状態変数を指定する情報、及び動作ポリシーにおいて必要とされるパラメータのうち学習対象とするパラメータ(「学習対象パラメータ」とも呼ぶ。)を指定する情報が含まれる。
【0026】
パラメータ決定部22は、ポリシー取得部21が取得した動作ポリシーの学習対象パラメータの実行時の値を仮に決定する。なお、パラメータ決定部22は、学習対象パラメータ以外に定める必要がある動作ポリシーのパラメータの値についても決定する。ポリシー合成部23は、複数の動作ポリシーを合成して制御指令を生成する。評価指標取得部24は、ユーザが設定したロボットの動作を評価する評価指標を評価指標表示部13から取得する。状態評価部26は、センサ32が生成するセンサ情報などからロボットが実際に行った動作の情報と、パラメータ決定部22が決定した学習対象パラメータの値と、評価指標取得部24が取得した評価指標とに基づき、ロボットの動作の評価を行う。パラメータ学習部25は、仮決定した学習対象パラメータとロボットの動作の報酬値とに基づき、報酬値が高くなるように学習対象パラメータを学習する。
【0027】
ポリシー記憶部27は、ポリシー表示部11が参照可能なメモリであり、ポリシー表示部11の表示に必要な動作ポリシーに関する情報を記憶する。例えば、ポリシー記憶部27は、動作ポリシーの候補、各動作ポリシーに必要とされるパラメータ、状態変数の候補等に関する情報を記憶する。評価指標記憶部28は、評価指標表示部13が参照可能なメモリであり、評価指標表示部13の表示に必要な評価指標に関する情報を記憶する。例えば、評価指標記憶部28は、ユーザが指定可能な評価指標の候補を記憶する。また、ロボットコントローラ200は、ポリシー記憶部27及び評価指標記憶部28の他、ポリシー表示部11及び評価指標表示部13による表示及びロボットコントローラ200内の各処理部が行う処理に必要な種々の情報を記憶する記憶部を有する。
【0028】
ロボットハードウェア300は、ロボットに備わるハードウェアであり、アクチュエータ31と、センサ32とを含む。アクチュエータ31は、複数のアクチュエータから構成され、ポリシー合成部23から供給される制御指令に基づき、ロボットを動作させる。センサ32は、ロボットの状態や環境の状態のセンシング(測定)を行い、センシング結果を示すセンサ情報を、状態評価部26に供給する。
【0029】
なお、ロボットは、ロボットアームあるいはヒューマノイドロボットであってもよく、自律動作する搬送車や、移動ロボット、自動運転車または,無人自動車,またはドローン,または無人飛行機,または無人潜水艦であってもよい。以後では、代表例として、ロボットがロボットアームである場合について説明する。
【0030】
以上説明した
図1に示されるロボットシステム1の構成は一例であり、種々の変更が行われてもよい。例えば、ポリシー取得部21は、ポリシー記憶部27等を参照し、ポリシー表示部11に対して表示の制御を行ってもよい。この場合、ポリシー表示部11は、ポリシー取得部21が生成する表示制御信号に基づく表示を行う。同様に、評価指標取得部24は、評価指標表示部13に対して表示の制御を行ってもよい。この場合、評価指標表示部13は、評価指標取得部24が生成する表示制御信号に基づく表示を行う。他の例では、表示装置100と、ロボットコントローラ200と、ロボットハードウェア300とは、少なくとも2つが一体となって構成されてもよい。さらに別の例では、ロボットハードウェア300に備えられたセンサ32とは別にロボットの作業空間内のセンシングを行うセンサが当該作業空間内又は付近に設けられ、ロボットコントローラ200は、当該センサが出力するセンサ情報に基づきロボットの動作評価を行ってもよい。
【0031】
(2)
ハードウェア構成
図2(A)は、表示装置100のハードウェア構成の一例である。表示装置100は、ハードウェアとして、プロセッサ2と、メモリ3と、インターフェース4と、入力部8と、表示部9とを含む。これらの各要素は、データバスを介して接続されている。
【0032】
プロセッサ2は、メモリ3に記憶されているプログラムを実行することにより、表示装置100の全体の制御を行うコントローラとして機能する。例えば、プロセッサ2は、入力部8及び表示部9の制御を行う。プロセッサ2は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)などのプロセッサである。プロセッサ5は、複数のプロセッサから構成されてもよい。プロセッサ2は、例えば、入力部8及び表示部9の制御を行うことで、ポリシー表示部11及び評価指標表示部13として機能する。
【0033】
メモリ3は、RAM(Random Access Memory)、ROM(Read Only Memory)などの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ3には、表示装置100が実行する処理を実行するためのプログラムが記憶される。なお、表示装置100が実行するプログラムは、メモリ3以外の記憶媒体に記憶されてもよい。
【0034】
インターフェース4は、他の装置とデータの送受信を線により通信を行うためのネットワークアダプタなどのワイアレスインタフェースと、他の装置と入出力を行うためのハードウェアインターフェースであってもよい。インターフェース4は、入力部8と、表示部9とを有する。入力部8は、ユーザによる操作に応じた入力信号を生成する。入力部8は、例えば、キーボード、マウス、ボタン、タッチパネル、音声入力装置、ジェスチャ入力用のカメラなどにより構成される。以後において、ユーザの操作などの所定の行動(発声及びジェスチャを含む)に起因して入力部8が生成する信号を、「ユーザ入力」とも呼ぶ。表示部9は、プロセッサ2の制御に基づき所定の表示を行う。表示部9は、例えば、ディスプレイ、プロジェクタなどである。
【0035】
なお、表示装置100のハードウェア構成は、
図2(A)に示す構成に限定されない。例えば、表示装置100は、音出力装置をさらに含んでもよい。
【0036】
図2(B)は、ロボットコントローラ200のハードウェア構成の一例である。ロボットコントローラ200は、ハードウェアとして、プロセッサ5と、メモリ6と、インターフェース7とを含む。プロセッサ5、メモリ6及びインターフェース7は、データバスを介して接続されている。
【0037】
プロセッサ5は、メモリ6に記憶されているプログラムを実行することにより、ロボットコントローラ200の全体の制御を行うコントローラとして機能する。プロセッサ5は、例えば、CPU、GPUなどのプロセッサである。プロセッサ5は、複数のプロセッサから構成されてもよい。プロセッサ5は、コンピュータの一例である。プロセッサ5は、量子チップであってもよい。
【0038】
メモリ6は、RAM、ROMなどの各種の揮発性メモリ及び不揮発性メモリにより構成される。また、メモリ6には、ロボットコントローラ200が実行する処理を実行するためのプログラムが記憶される。なお、ロボットコントローラ200が実行するプログラムは、メモリ6以外の記憶媒体に記憶されてもよい。
【0039】
インターフェース7は、ロボットコントローラ200と他の装置とを電気的に接続するためのインターフェースである。例えば、インターフェース7は、表示装置100とロボットコントローラ200とを接続するためのインターフェース、及び、ロボットコントローラ200とロボットハードウェア300とを接続するためのインターフェースを含む。これらのインターフェースは、他の装置とデータの送受信を無線により行うためのネットワークアダプタなどのワイアレスインタフェースであってもよく、他の装置とケーブル等により接続するためのハードウェアインターフェースであってもよい。
【0040】
ロボットコントローラ200のハードウェア構成は、
図2(B)に示す構成に限定されない。例えば、ロボットコントローラ200は、入力装置、音声入力装置、表示装置、音出力装置の少なくともいずれかを含んでもよい。
【0041】
ここで、
図1において説明したポリシー取得部21、パラメータ決定部22、ポリシー合成部23、評価指標取得部24、パラメータ学習部25及び状態評価部26の各構成要素は、例えば、プロセッサ5がプログラムを実行することによって実現できる。また、必要なプログラムを任意の不揮発性記憶媒体に記録しておき、必要に応じてインストールすることで、各構成要素を実現するようにしてもよい。なお、これらの各構成要素の少なくとも一部は、プログラムによるソフトウェアで実現することに限ることなく、ハードウェア、ファームウェア、及びソフトウェアのうちのいずれかの組合せ等により実現してもよい。また、これらの各構成要素の少なくとも一部は、例えばFPGA(field-programmable gate array)又はマイクロコントローラ等の、ユーザがプログラミング可能な集積回路を用いて実現してもよい。この場合、この集積回路を用いて、上記の各構成要素から構成されるプログラムを実現してもよい。また、各構成要素の少なくとも一部は、ASSP(Application Specific Standard Produce)やASIC(Application Specific Integrated Circuit)により構成されてもよい。このように、各構成要素は、種々のハードウェアにより実現されてもよい。以上のことは、後述する他の実施の形態においても同様である。さらに、これらの各構成要素は,例えば,クラウドコンピューティング技術などを用いて、複数のコンピュータの協働によって実現されてもよい。
【0042】
(3)
動作の詳細
(3-1)動作フロー
図3は、第1実施形態のロボットシステム1の動作を示したフローチャートの一例である。
【0043】
まず、ポリシー表示部11は、ポリシー記憶部27を参照し、目的のタスクに適した動作ポリシーを指定するユーザの入力を受け付ける(ステップS101)。例えば、ポリシー表示部11は、ポリシー記憶部27を参照し、目的のタスクにおいて典型的な複数の動作ポリシーの種類の候補を提示し、その中から適用すべき動作ポリシーの種類を選択する入力を受け付ける。例えば、ポリシー表示部11は、誘引、忌避、又は保持の動作ポリシーの種類の候補を提示し、その中から使用する候補を指定する入力等を受け付ける。誘引、忌避、及び保持の詳細については、「(3-2)ステップS101~ステップS103の詳細」のセクションで詳しく説明する。
【0044】
次に、ポリシー表示部11は、ポリシー記憶部27を参照し、ステップS101でユーザが種類を指定した動作ポリシーにおける状態変数等を指定する入力を受け付ける(ステップS102)。また、ポリシー表示部11は、状態変数の他、ロボットの作用点などの動作ポリシーに関連する情報をさらにユーザに指定させてもよい。さらに、ポリシー表示部11は、ステップS101で指定された動作ポリシーにおいて学習対象となる学習対象パラメータを選択する(ステップS103)。例えば、ステップS103において学習対象パラメータとして選択される候補となるパラメータの情報は、動作ポリシーの種類毎に関連付けられてポリシー記憶部27に記憶されている。従って、例えば、ポリシー表示部11は、これらのパラメータから、学習対象パラメータを選択する入力を受け付ける。
【0045】
次に、ポリシー表示部11は、ステップS101~ステップS103の指定が終了したか否か判定する(ステップS104)。そして、ポリシー表示部11は、動作ポリシーに関する指定が終了したと判定した場合(ステップS104;Yes)、即ち、追加でユーザが指定する動作ポリシーがないと判定した場合、ステップS105へ処理を進める。一方、ポリシー表示部11は、動作ポリシーに関する指定が終了していないと判定した場合(ステップS104;No)、即ち、追加のユーザが指定する動作ポリシーがあると判定した場合、ステップS101へ処理を戻す。一般的に、単純なタスクであれば、単一のポリシーで実行することができるが、複雑な動作を伴うタスクの場合には複数のポリシーを設定する必要がある。よって、複数のポリシーを設定するために、ポリシー表示部11は、ステップS101~ステップS103を繰り返し実行する。
【0046】
次に、ポリシー取得部21は、ステップS101~ステップS103において夫々指定された動作ポリシー、状態変数、及び学習対象パラメータを示す情報を、ポリシー表示部11から取得する(ステップS105)。
【0047】
次に、パラメータ決定部22は、ステップS105で取得された動作ポリシーのそれぞれの学習対象パラメータの初期値(即ち仮の値)を決定する(ステップS106)。例えば、パラメータ決定部22は、各学習対象パラメータの初期値を、学習対象パラメータの各々がとり得る値域からランダムに決定した値に定めてもよい。他の例では、パラメータ決定部22は、各学習対象パラメータの初期値を、システムにあらかじめ設定してある既定値(即ち、パラメータ決定部22が参照可能なメモリに予め記憶された既定値)を用いてもよい。また、パラメータ決定部22は、学習対象パラメータ以外の動作ポリシーのパラメータの値についても同様に決定する。
【0048】
次に、ポリシー合成部23は、ステップS105で取得された各動作ポリシー及び状態変数と、ステップS106で決定された各学習対象パラメータの値とに基づき、動作ポリシーを合成することで、ロボットに対する制御指令を生成する(ステップS107)。ポリシー合成部23は、生成した制御指令をロボットハードウェア300に出力する。
【0049】
ここで、ステップS106にて決定されたそれぞれの動作ポリシーに対する学習対象パラメータの値は仮の値であるので、仮の値の学習対象パラメータを用いて生成された制御指令では、実際に望ましい動作をロボットができるとは限らない。言い換えると、ステップS106で決定される学習対象パラメータの初期値では、報酬が直ちに最大となるとは限らない。そこで、ロボットシステム1は、後述するステップS108~ステップS111を実行することで、実際の動作を評価し、各動作ポリシーの学習対象パラメータを更新する。
【0050】
まず、評価指標表示部13は、評価指標を指定するユーザの入力を受け付ける(ステップS108)。なお、ステップS108の処理は、ステップS110が実行されるまでの任意のタイミングにより行われてもよい。
図3は、一例として、ステップS108の処理がステップS101~ステップS107の処理フローとは独立したタイミングにより実行される場合を示している。なお、ステップS108の処理は、例えば、ステップS101~ステップS103の処理の後(即ち動作ポリシーの決定後)に行われてもよい。そして、評価指標取得部24は、作業者が設定した評価指標を取得する(ステップS109)。
【0051】
次に、状態評価部26は、センサ32が生成するセンサ情報と、ステップS109で取得した評価指標とに基づき、仮決定した(即ち初期値の)学習対象パラメータでのロボットの動作に対する報酬値を算出する(ステップS110)。これにより、状態評価部26は、ステップS107で算出された制御指令(制御入力)に基づきロボットが動作した結果を評価する。
【0052】
以後では、ロボットの動作開始からステップS110での評価タイミングまでを、「エピソード」と呼ぶ。なお、ステップS110での評価タイミングは、ロボットの動作開始から一定時間経過後であってもよく、あるいは状態変数がある条件を満たしたタイミングであってもよい。例えば、ロボットが対象物を扱うタスクの場合、状態評価部26は、ロボットの手先が対象物に十分近くなった時にエピソードを打ち切り、エピソード中の累積報酬(評価指標の累積値)を評価してもよい。他の例では、状態評価部26は、ロボットの動作開始から一定時間経過するか、ある条件を満たした場合にエピソードを打ち切り、エピソード中の累積報酬を評価してもよい。
【0053】
次に、パラメータ学習部25は、ステップS106で決定された学習対象パラメータの初期値と、ステップS110で算出した報酬値とに基づき、報酬値を最大化する学習対象パラメータの値を学習する(ステップS111)。例えば、パラメータ学習部25は、最も単純には、グリッドサーチでそれぞれの学習対象パラメータを徐変させて報酬値(評価値)を求めることで、報酬値が最大となる学習対象パラメータを探索してもよい。他の例では、パラメータ学習部25は、一定回数ランダムサンプリングを実行し、各サンプリングで算出した報酬値のうち最も報酬値が高くなった学習対象パラメータの値を、新たな学習対象パラメータの値として決定してもよい。さらに別の例では、パラメータ学習部25は、学習対象パラメータとその報酬値の履歴を用いて、ベイズ最適化などの手法に基づき、最大となる学習対象パラメータの値を求めてもよい。
【0054】
なお、パラメータ学習部25により学習された学習対象パラメータの値は、パラメータ決定部22に供給され、パラメータ決定部22は、パラメータ学習部25から供給された学習対象パラメータの値を、学習対象パラメータの更新値としてポリシー合成部23に供給する。そして、ポリシー合成部23は、パラメータ決定部22から供給された学習対象パラメータの更新値に基づき、制御指令を生成し、ロボットハードウェア300に供給する。
【0055】
(3-2)ステップS101~ステップS103の詳細
図3のステップS101~ステップS103においてユーザが指定する動作ポリシーに関する情報の受付処理の詳細について説明する。まず、動作ポリシーに関する具体例について説明する。
【0056】
ステップS101において指定される「動作ポリシー」は、ある状態変数に応じたアクションの変換関数であり、より具体的には、ある状態変数に応じて、ロボットの作用点における、目標状態を制御する制御則である。なお、「作用点」は、例えば、エンドエフェクタの代表点、指先、各関節、ロボット上、あるいはロボット上からオフセットした任意の点(ロボット上にあるとは限らない)などである。また、「目標状態」は、例えば、位置、速度、加速度、力、姿勢、距離などであり、ベクトルにより表されてもよい。以後では、目標状態が位置である場合を特に「目標位置」とも呼ぶ。
【0057】
また、「状態変数」は、例えば、以下の(A)~(C)のいずれかである。
(A)ロボットの作業空間内にある、作用点、障害物又は操作対象物体の位置、速度、加速度、力又は姿勢の値又はベクトル
(B)ロボットの作業空間内にある、作用点、障害物又は操作対象物体の間の位置、速度、加速度、力、姿勢の差分の値又はベクトル
(C)(A)又は(B)を引き数とした関数の値又はベクトル
【0058】
動作ポリシーの種類の典型的な例は、誘引、忌避、及び保持である。「誘引」は、ある設定した目標状態に近づいていくポリシーである。例えば、作用点としてエンドエフェクタを選び、目標状態をエンドエフェクタが空間上のある位置に存在する状態とし、誘引のポリシーが設定されると、ロボットコントローラ200は、エンドエフェクタがその目標位置に近づくように、各関節の動作を決定する。この場合、ロボットコントローラ200は、例えばエンドエフェクタの位置と目標位置との間にて目標位置に近づくよう力が生じる仮想的なばねを設定し、そのばね力によって速度ベクトルを発生させ、逆運動学を解くことで、その速度を発生させる各関節の角速度を算出する。なお、ロボットコントローラ200は、逆運動学の類似の方法であるRMP(Riemannian Motion Policy)などの方法で各関節の出力を決定してもよい。
【0059】
「忌避」は、ある状態変数、典型的には障害物の位置と、作用点との位置を近づかないようにするポリシーである。例えば、ロボットコントローラ200は、忌避のポリシーが設定された場合、障害物と、作用点の間に仮想的な反発力を設定し、逆運動学によりそれを実現する関節の出力を求める。これにより、ロボットは、あたかも障害物を忌避しているような動作が可能である。
【0060】
「保持」は、ある状態変数の、上限や下限を設定し、その範囲内にとどまり続けるようなポリシーである。例えば、保持のポリシーが設定された場合、ロボットコントローラ200は、上限、あるいは下限の境界面において忌避のような反発力を発生させることで、対象の状態変数は、上限、あるいは下限を越えずに決められた範囲内にとどまり続けることができる。
【0061】
次に、ステップS101~ステップS103の処理の具体例について、
図4を参照して説明する。
図4は、第1実施形態において想定するロボットハードウェア300の周辺環境の一例を示す図である。第1実施形態では、
図4に示すように、ロボットハードウェア300の周辺に、ロボットハードウェア300の動作にとって障害となる障害物44と、ロボットハードウェア300により把持する対象となる対象物41とが存在している。
【0062】
ステップS101では、ポリシー表示部11は、誘引、忌避、又は保持などの動作ポリシーの種類の候補から、タスクに適した動作ポリシーの種類を選択するユーザの入力を受け付ける。以後では、第1実施形態において指定された最初の動作ポリシー(第1動作ポリシー)の種類は、誘引であるとする。
【0063】
また、ステップS101では、ポリシー表示部11は、第1動作ポリシーの作用点を選択する入力を受け付ける。
図4では、選択された第1動作ポリシーの作用点42を、黒星マークにより明示している。この場合、ポリシー表示部11は、第1動作ポリシーの作用点として、エンドエフェクタを選択する入力を受け付ける。この場合、ポリシー表示部11は、例えば、ロボットの全体像を示すGUI(Graphic User Interface)を表示し、GUI上で作用点を選択するユーザ入力を受け付けてもよい。なお、ポリシー表示部11は、ロボットハードウェア300の種類ごとに動作ポリシーの作用点の1又は複数の候補を予め記憶しておき、当該候補から動作ポリシーの作用点をユーザ入力に基づき(候補が1つの場合には自動的に)選択してもよい。
【0064】
ステップS102では、ポリシー表示部11は、ステップS101で指定された動作ポリシーに紐付ける状態変数を選択する。第1実施形態では、第1動作ポリシーである誘引に紐付ける状態変数(即ち、作用点に対する目標位置)として、
図4に示される対象物41の位置(詳しくは、黒三角マークが示す位置)が選択されたものとする。即ち、この場合、作用点であるエンドエフェクタ(黒星マーク42参照)において、対象物の位置に誘引される動作ポリシーが設定される。なお、状態変数の候補は、ポリシー記憶部27等において、予め動作ポリシーに紐付けられていてもよい。
【0065】
ステップS103では、ポリシー表示部11は、ステップS101で指定された動作ポリシーにおける学習対象パラメータ(詳しくは値自体ではなく学習対象パラメータの種類)を選択する入力を受け付ける。例えば、ポリシー表示部11は、ポリシー記憶部27を参照し、ステップS101で指定された動作ポリシーに関連付けられたパラメータを、学習対象パラメータの候補として選択可能に表示する。第1実施形態では、第1動作ポリシーにおける学習対象パラメータとして、誘引ポリシーのゲイン(仮想的なばねのばね定数に相当)が選択される。なお、誘引ポリシーのゲインの値によって、目標位置への収束の仕方が決定されるため、このゲインは適切に設定される必要がある。学習対象パラメータの他の例は、目標位置へ対するオフセットである。動作ポリシーがRMPなどで設定されている場合には、学習対象パラメータは、メトリックを定めるパラメータなどでもよい。また、動作ポリシーがポテンシャル法などにより仮想的なポテンシャルを有して実装されている場合には、学習対象パラメータは、そのポテンシャル関数のパラメータでもよい。
【0066】
また、ポリシー表示部11は、動作ポリシーに紐付けられた状態変数の中から、学習対象パラメータとする状態変数を選択する入力を受け付けてもよい。この場合、ポリシー表示部11は、ユーザ入力により指定された状態変数を、学習対象パラメータとしてポリシー取得部21に通知する。
【0067】
また、複数の動作ポリシーを設定する場合には、ポリシー表示部11は、ステップS101~ステップS103を繰り返す。第1実施形態では、2番目に設定される動作ポリシー(第2動作ポリシー)の種類として、忌避が設定されるものとする。この場合、ポリシー表示部11は、ステップS101において、動作ポリシーの種類として忌避を指定する入力を受け付け、かつ、ロボットの作用点43として、例えばロボットアームのエンドエフェクタの根元位置(即ち、
図4の白星マークが示す位置)を指定する入力を受け付ける。また、ステップS102において、ポリシー表示部11は、状態変数として、障害物44の位置(即ち、白三角マークが示す位置)を指定する入力を受け付け、指定された障害物44の位置を忌避の対象として第2動作ポリシーに紐付ける。以上のように第2動作ポリシー及び状態変数の設定を行うことで、エンドエフェクトの根元(白星マーク43参照)に障害物44からの仮想的な反発力が生じる。そして、それを満たすように、ロボットコントローラ200は、逆運動学などで各関節の出力を決定し、エンドエフェクタの根元が障害物44を避けているような動作を行うようにロボットハードウェア300を動作させる制御指令を生成することができる。また、第1実施形態では、ポリシー表示部11は、第2動作ポリシーに対する学習対象パラメータとして、反発力の係数を選択する入力を受け付ける。反発力の係数がどの程度かにより、ロボットが障害物44をどの程度の距離を避けるかが決定される。
【0068】
ユーザは、全ての動作ポリシーを設定し終わると、例えばポリシー表示部11が表示する設定完了ボタンなどを選択する。この場合、ロボットコントローラ200は、設定完了ボタンが選択された旨の通知をポリシー表示部11から受信し、ステップS104において動作ポリシーに関する指定が終了したと判断し、ステップS105へ処理を進める。
【0069】
図5は、ステップS101~ステップS103に基づき第1実施形態においてポリシー表示部11が表示する動作ポリシー指定画面の一例である。動作ポリシー指定画面は、動作ポリシー種類指定欄50と、作用点・状態変数指定欄51と、学習対象パラメータ指定欄52と、追加動作ポリシー指定ボタン53と、動作ポリシー指定完了ボタン54とを有する。
【0070】
動作ポリシー種類指定欄50は、動作ポリシーの種類の選択欄であり、ここでは一例として、プルダウンメニュー形式となっている。作用点・状態変数指定欄51には、例えば、タスクの環境を撮影した画像又はセンサ32のセンサ情報から構成したコンピュータグラフィックスが表示される。ポリシー表示部11は、例えば、作用点・状態変数指定欄51にてクリック操作により指定された画素に対応するロボットハードウェア300の位置又は近傍位置を作用点として認識する。また、ポリシー表示部11は、例えば、指定された作用点のドラッグアンドドロップ操作等により、作用点の目標状態の指定をさらに受け付ける。なお、ポリシー表示部11は、作用点・状態変数指定欄51においてユーザに指定させる情報を、動作ポリシー種類指定欄50での選択内容に応じて決定してもよい。
【0071】
学習対象パラメータ指定欄52は、対象の動作ポリシーに対する学習対象パラメータの選択欄であり、プルダウンメニュー形式となっている。学習対象パラメータ指定欄52は、複数設けられており、複数の学習対象パラメータを指定可能となっている。追加動作ポリシー指定ボタン53は、追加の動作ポリシーを指定するためのボタンであり、ポリシー表示部11は、追加動作ポリシー指定ボタン53が選択されたことを検知した場合、ステップS104において指定が完了していないと判定し、追加の動作ポリシーを指定するための動作ポリシー指定画面を新たに表示する。動作ポリシー指定完了ボタン54は、動作ポリシーの指定の完了を通知するボタンである。ポリシー表示部11は、動作ポリシー指定完了ボタン54が選択されたことを検知した場合、ステップS104において指定が完了したと判定し、ステップS105へ処理を進める。その後、ユーザは、評価指標を指定する操作を行う。
【0072】
(3-3)ステップS107の詳細
次に、ポリシー合成部23によるロボットハードウェア300への制御指令の生成について補足説明する。
【0073】
例えば、それぞれの動作ポリシーが逆運動学で実装されている場合には、ポリシー合成部23は、制御周期ごとに、それぞれの動作ポリシーにおいて各関節の出力を計算し、各関節において算出した出力の線形和を計算する。これにより、ポリシー合成部23は、それぞれの動作ポリシーが合成されたような動作をロボットハードウェア300に実行させる制御指令を生成することができる。例えば、
図4の例において、第1動作ポリシーとして、エンドエフェクタが対象物41の位置に誘引される動作ポリシーが指定され、第2動作ポリシーとして、エンドエフェクタの根元位置の障害物44に対する忌避を示す動作ポリシーが設定された場合について考察する。この場合、ポリシー合成部23は、制御周期ごとに、第1動作ポリシー及び第2動作ポリシーに基づく各関節の出力を計算し、各関節において算出した出力の線形和を計算する。この場合、ポリシー合成部23は、エンドエフェクタが対象物41に近づきつつ、障害物44を忌避するような合成動作をロボットハードウェア300に指令する制御指令を、好適に生成することができる。
【0074】
このとき、各動作ポリシーは、例えば、ポテンシャル法で実装されていてもよい。ポテンシャル法の場合は、例えば作用点におけるそれぞれのポテンシャル関数の値が足されることによって合成が可能である。他の例では、各動作ポリシーは、RMPにより実装されていてもよい。なお、RMPの場合、それぞれの動作ポリシーが、あるタスクスペースにおける仮想的な力と、他の動作ポリシーと足される場合にそれらがどの方向に作用するかの重みのように作用するリーマンメトリックとがセットにされている。よって、RMPの場合、動作ポリシーの合成の際にそれぞれの動作ポリシーの足され方を柔軟に設定可能である。
【0075】
このように、ポリシー合成部23によりロボットアームを動かす制御指令が計算される。なお、それぞれの動作ポリシーにおける関節の出力の計算には、対象物41の位置、作用点の位置、及びロボットハードウェア300の関節の位置に関する情報が必要となる。状態評価部26は、例えば、これらの情報を、センサ32から供給されるセンサ情報に基づき認識し、ポリシー合成部23に供給する。例えば、対象物41にARマーカーなどを貼り付けておき、それをカメラ等のロボットハードウェアに含まれるセンサ32により撮影した画像に基づき、状態評価部26が対象物41の位置を測定してもよい。他の例では、状態評価部26は、深層学習などの認識エンジンを用い、センサ32によりロボットハードウェア300を撮影した画像等から対象物41の位置の推論をマーカーレスにより行ってもよい。なお、状態評価部26は、ロボットハードウェア300のエンドエフェクタの位置や関節位置を、各関節角度およびロボットの幾何学的モデルから順運動学で計算してもよい。
【0076】
(3-4)ステップS108の詳細
ステップS108では、評価指標表示部13は、タスクを評価する評価指標の指定をユーザから受け付ける。ここで、
図4において、障害物44を避けながらロボットハードウェア300の手先を対象物41まで近づけることをタスクとした場合、そのための評価指標として、例えば、対象物41に向かうロボットハードウェア300の手先の速度が早ければ早いほど報酬が高くなるような評価指標が指定される。
【0077】
また、ロボットハードウェア300が障害物44に当たってしまってはいけないので、障害物44に当たったことで報酬が下がるような評価指標が指定されることが望ましい。この場合、例えば、評価指標表示部13は、障害物44にロボットハードウェア300が接触することで報酬値が減算される評価指標を追加で設定するユーザの入力を受け付ける。この場合、例えばロボットの手先がなるべく早く対象物に到達し、さらに障害物に当たらない動作に対する報酬値が最大となる。他にも、各関節の躍度を最小化させる評価指標、エネルギーを最小化させる評価指標、制御入力と誤差の2乗和が最小化する評価指標などがステップS108において選択される対象となってもよい。なお、評価指標表示部13は、これらの評価指標の候補を示す情報を予め記憶しておき、当該情報を参照して、評価指標の候補をユーザにより選択可能に提示してもよい。そして、評価指標表示部13は、ユーザが全ての評価指標を選択したことを、例えば画面上の完了ボタン等の選択により検知する。
【0078】
図6は、ステップS108において評価指標表示部13が表示する評価指標指定画面の一例である。
図6に示すように、評価指標表示部13は、評価指標指定画面上において、ユーザにより指定された動作ポリシーごとに、評価指標に関する複数の選択欄を表示している。ここで、「ロボット手先の速度」は、ロボットハードウェア300の手先の速度が速ければ速いほど報酬が高くなるような評価指標を指し、「障害物との接触回避」は、障害物44にロボットハードウェア300が接触することで報酬値が減算される評価指標を指す。また、「各関節の躍度最小化」は、各関節の躍度を最小化させる評価指標を指す。そして、評価指標表示部13は、指定完了ボタン57が選択されたことを検知した場合、ステップS108の処理を終了する。
【0079】
(4)効果
以上説明した構成および動作を取ることにより,単純な動作の組み合わせで、複雑な動作を生成し、さらに動作を評価指標によって評価することにより、ロボットにタスクを実行可能なポリシーのパラメータを簡易に学習・獲得させることができる。
【0080】
一般的に、実機を用いての強化学習は非常に多くの試行回数が必要となり、動作を獲得するまで非常に多くの時間的コストがかかる。また、実機自体が数多くの反復動作によってアクチュエータが発熱したり、関節部が損耗したりするなどのデメリットがある。また、既存の強化学習手法は様々な動作を実現できるように試行錯誤的に動作を行っていく、すなわち、動作を獲得する際にどのような動作をするのかがあらかじめほとんど決まっていない。
【0081】
また、強化学習的手法ではない手法においては、熟練ロボットエンジニアが、ロボットの経由点などを、一つずつ時間をかけて調整していくため、そのエンジニアリングの工数が非常に高くなる。
【0082】
以上を勘案し、第1実施形態では、あらかじめ単純な動作を動作ポリシーとしていくつか用意しておき、そのパラメータのみを学習対象パラメータとして探索するため、比較的複雑な動作であっても学習を早くすることができる。また、第1実施形態では、人間が設定するのは動作ポリシーの選択等であり、簡易に設定することができ、適したパラメータへの調整はシステムが行う。したがって、比較的複雑な動作であってもエンジニアリングの工数も低減することが可能である。
【0083】
言い換えると、第1実施形態では、予め典型的な動作をパラメタライズしており、さらにそれらの動作の組み合わせが可能となっている。よって、ロボットシステム1は、複数の事前に用意された動作から、複数の動作をユーザが選択することで、所望の動作に近い動作を作成することが可能となる。この場合、複数の動作が合成された動作を、特定の条件下かどうかによらず生成可能となる。また、この場合、条件ごとに学習器を用意する必要がなく、あるパラメタライズされた動作の再利用・組み合わせも容易である。さらに、学習の際にも明示的に学習するパラメータ(学習対象パラメータ)を指定することで、学習する空間を限定して高速化しており、合成後の動作も高速に学習することが可能となる。
【0084】
(5)変形例
上述の説明において、ポリシー表示部11がユーザ入力により決定した動作ポリシーに関する情報又は評価指標表示部13がユーザ入力により決定した評価指標について、これらの少なくとも一部は、ユーザ入力によらずに予め定められていてもよい。この場合、ポリシー取得部21又は評価指標取得部24は、予め定められた情報について、ポリシー記憶部27又は評価指標記憶部28から情報を取得する。例えば、予め動作ポリシーごとに設定すべき評価指標の情報が評価指標記憶部28に記憶されている場合には、評価指標取得部24は、当該評価指標の情報を参照し、ポリシー取得部21が取得した動作ポリシーに応じた評価指標を自動設定してもよい。この場合であっても、ロボットシステム1は、動作ポリシーを合成して制御指令を生成し、かつ、動作を評価して学習対象パラメータを更新することができる。この変形例は、後述する第2実施形態~第3実施形態にも好適に適用される。
【0085】
<第2実施形態>
次に、ロボットに実行させるタスクが円柱状の物体を把持するタスクである場合の具体的形態である第2実施形態について説明する。なお、第2実施形態の説明において,第1実施形態と同一の構成要素については適宜同一の符号を付し,その共通部分の説明を省略する。
【0086】
図7(A)、(B)は、第2実施形態におけるエンドエフェクタの周辺図を示す。
図7(A)、(B)では、作用点として設定されたエンドエフェクタの代表点45を黒星マークにより示している。また、円柱物体46は、ロボットが把持する対象である。
【0087】
第2実施形態における第1動作ポリシーの種類は誘引であり、エンドエフェクタの代表点が作用点として設定され、かつ、状態変数の目標状態として円柱物体46の位置(黒三角マーク参照)が設定される。ポリシー表示部11は、これらの設定情報を、第1実施形態と同様に、GUIによりそれぞれユーザ入力された情報に基づき認識する。
【0088】
また、第2実施形態における第2動作ポリシーの種類は誘引であり、エンドエフェクタの指先が作用点として設定され、かつ、指の開度を状態変数とし、指が閉じている(即ち開度が0となる)状態を目標状態とする。
【0089】
また、第2実施形態において、ポリシー表示部11は、動作ポリシーの指定と共に、指定された動作ポリシーを適用する条件(「動作ポリシー適用条件」とも呼ぶ。)の指定をさらに受け付ける。そして、ロボットコントローラ200は、指定された動作ポリシー適用条件に応じて、動作ポリシーを切り替える。例えば、動作ポリシー適用条件の状態変数として、エンドエフェクタの代表点に相当する作用点と、把持対象の円柱物体46の位置との距離を設定する。そして、この距離が一定値以下になった場合、第2動作ポリシーにおいて、ロボットの指が閉じている状態にすることを目標状態とし、それ以外の場合は開いている状態を目標状態とする。
【0090】
図8は、作用点と把持対象の円柱物体46の位置との距離「x」と、指の開度に相当する第2動作ポリシーにおける状態変数「f」との関係を示す2次元グラフである。この場合、距離xが所定の閾値「θ」より大きい場合には、ロボットの指が開いた状態を示す値が状態変数fの目標状態となり、距離xが閾値θ以下の場合には、ロボットの指が閉じた状態を表す値が状態変数fの目標状態となる。ロボットコントローラ200は、目標状態の切り替えを、
図8のようなシグモイド関数に従い滑らかに切り替えてもよく、ステップ関数のように切り替えてもよい。
【0091】
さらに、第3動作ポリシーでは、エンドエフェクタの姿勢を、鉛直下向きとなるような目標状態が設定される。この場合、エンドエフェクタは、上から把持対象である円柱物体46を把持するような姿勢となる。
【0092】
このように、第2動作ポリシーに動作ポリシー適用条件を設定することで、第1動作ポリシー~第3動作ポリシーを合成した場合に、ロボットコントローラ200は、ロボットハードウェア300により円柱物体46を好適に把持させることができる。具体的には、作用点であるエンドエフェクタの代表点が把持対象である円柱物体46に指を開いたまま上から近づいていき、円柱物体46の位置にエンドエフェクタの代表点が十分近づいたときに、ロボットハードウェア300は、指を閉じて円柱物体46を把持する動作を行うことになる。
【0093】
ただし、
図7(A)、(B)に示すように、把持対象の円柱物体46の姿勢によっては、把持可能なエンドエフェクタの姿勢が異なることが考えられる。そこで、この場合、エンドエフェクタの姿勢の回転方向(回転角度)47を制御する第4動作ポリシーが設定される。なお、センサ32の精度が十分に高い場合、ロボットハードウェア300は、円柱物体46の姿勢の状態とこの第4動作ポリシーとを紐付けることで、適切な回転方向角度で円柱物体46にアプローチする。
【0094】
以後では、エンドエフェクタの姿勢の回転方向47が学習対象パラメータとして設定された場合を前提として説明する。
【0095】
まず、ポリシー表示部11は、学習対象パラメータとして、このエンドエフェクタの姿勢を定める回転方向47を設定する入力を受け付ける。さらに、ポリシー表示部11は、円柱物体46を持ち上げるために、ユーザの入力に基づき、第1動作ポリシーにおいて、指が閉じたことを動作ポリシー適用条件とし、かつ、目標位置を、円柱物体46の位置ではなく、元々円柱物体46があった位置に対して上方(z方向)へ所定距離分のオフセットを設けた位置に設定する。この動作ポリシー適用条件により、円柱物体46を掴んだ後に、円柱物体46を持ち上げることが可能となる。
【0096】
評価指標表示部13は、ロボットの動作の評価指標として、ユーザの入力に基づき、例えば、対象物である円柱物体46が持ち上がった場合に高い報酬を与えるような評価指標を設定する。この場合、評価指標表示部13は、ロボットハードウェア300の周辺を示す画像(コンピュータグラフィックスを含む)を表示し、当該画像上において円柱物体46の位置を状態変数として指定するユーザの入力を受け付ける。そして、評価指標表示部13は、ユーザ入力により指定された円柱物体46の位置のz座標(高さの座標)が所定の閾値を超えた場合に、評価となるような評価指標を設定する。
【0097】
他の例では、物体を検知するためのセンサ32がロボットの指先に設けられており、指を閉じたときに、指の間に対象物があればそれをセンサ32により検知できる構成である場合、評価指標は、指の間に対象物が検知できたときに高い報酬となるように設定される。さらに別の例として、各関節の躍度を最小化させる評価指標、エネルギーを最小化させる評価指標、制御入力と誤差の2乗和が最小化する評価指標などが選択対象であってもよい。
【0098】
パラメータ決定部22は、第4動作ポリシーの学習対象パラメータである回転方向47の値を仮決定する。ポリシー合成部23は、第1動作ポリシーから第4動作ポリシーを合成することで制御指令を生成する。この制御指令に基づき、ロボットハードウェア300は、エンドエフェクタの代表点が把持対象である円柱物体46に指を開いたまま上から近づいていき、ある回転方向を保ち、円柱物体46に十分近づいたときに、指を閉じる動作を行う。
【0099】
なお、パラメータ決定部22により仮決定されたパラメータ(即ち学習対象パラメータの初期値)が適切なパラメータとは限らない。よって、円柱物体46を既定時間以内に掴めなかったり、指先には触れたが、ある高さまで持ち上げる前に落としてしまったりすることなどが考えられる。
【0100】
そこで、パラメータ学習部25は、学習対象パラメータである回転方向47を、様々に変えながら、報酬が高くなるような値となるまで試行錯誤を繰り返す。上記では、学習対象パラメータが1つである例を示したが、学習対象パラメータは複数であってもよい。その場合、例えばエンドエフェクタの姿勢の回転方向47に加えて、もう一つの学習対象パラメータとして、先に示した第2動作ポリシーの閉じる動作・開く動作を切り替える動作適用条件の判定に用いられる、エンドエフェクタと対象物体間の距離の閾値などを指定してもよい。
【0101】
ここで、第4動作ポリシーの回転方向47に関する学習対象パラメータと、第2動作ポリシーでのエンドエフェクタと対象物体間の距離の閾値に関する学習対象パラメータとを夫々「θ1」,「θ2」とする。この場合、パラメータ決定部22は、それぞれのパラメータの値を仮決定した後、ポリシー合成部23が生成した制御指令に基づきロボットハードウェア300が動作を実行する。そして、その動作をセンシングするセンサ32が生成するセンサ情報等に基づき、状態評価部26が動作の評価を行い、エピソード単位での報酬値を算出する。
【0102】
図9は、各試行において設定された学習対象パラメータθ1、θ2のプロット図である。
図9において、黒星マークは、最終的な学習対象パラメータθ1、θ2の組を示す。パラメータ学習部25は、そのパラメータ空間内で最も報酬値が高くなるような学習対象パラメータθ1、θ2の値のセットを学習する。例えば、パラメータ学習部25は、最も単純には、グリッドサーチでそれぞれの学習対象パラメータを変化させて報酬値を求めることで、報酬値が最大となる学習対象パラメータを探索してもよい。他の例では、パラメータ学習部25は、一定回数ランダムサンプリングを実行し、各サンプリングで算出した報酬値のうち最も報酬値が高くなった学習対象パラメータの値を、新たな学習対象パラメータの値として決定してもよい。さらに別の例では、パラメータ学習部25は、学習対象パラメータとその報酬値の履歴を用いて、ベイズ最適化などの手法に基づき、最大となる学習対象パラメータの値を求めてもよい。
【0103】
以上のように、第2実施形態においても、単純な動作の組み合わせで、複雑な動作を生成し、さらに動作を評価指標によって評価することにより、ロボットにタスクを実行可能な動作ポリシーの学習対象パラメータを簡易に学習・獲得することができる。
【0104】
<第3実施形態>
第3実施形態に係るロボットシステム1は、複数の動作ポリシーに対して、それぞれ対応する評価指標を設定し、それぞれの学習パラメータを独立に学習する点において、第1及び第2実施形態と異なる。即ち、第1及び第2実施形態に係るロボットシステム1は、複数の動作ポリシーを合成し、その合成された動作に対して評価を行い、複数の動作ポリシーの学習対象パラメータを学習する。これに対し、第3実施形態に係るロボットシステム1は、複数の動作ポリシーの各々に対応する評価指標を設定し、それぞれの学習対象パラメータを独立に学習する。なお、第3実施形態の説明において,第1実施形態又は第2実施形態と同一の構成要素については適宜同一の符号を付し,その共通部分の説明を省略する。
【0105】
図10は、第3実施形態においてタスク実行中のエンドエフェクタの周辺図を示す。
図10では、ロボットハードウェア300が把持しているブロック48を四角柱状の細長い四角柱49上へ配置するというタスクが実行される様子が示されている。このタスクの前提として、四角柱49は固定されておらず、うまくブロック48を四角柱49に乗せないと四角柱49が倒れてしまう。
【0106】
簡略化のため、ロボットはブロック48を把持している状態へは容易に到達できるものとし、その状態からタスクを開始しているとする。この場合、第3実施形態における第1動作ポリシーの種類は誘引であり、エンドエフェクタの代表点(黒星マーク参照)が作用点として設定され、かつ、目標位置として四角柱49の代表点(黒三角マーク参照)が設定される。第1動作ポリシーにおける学習対象パラメータは、誘引ポリシーのゲイン(仮想的なばねのばね定数に相当)とする。このゲインの値によって、目標位置への収束の仕方が決定される。大きめのゲインにすると作用点が素早く目標位置に到達するが、勢いあまって四角柱49を倒してしまうため、このゲインは適切に設定される必要がある。
【0107】
具体的には、なるべく早くブロック48を四角柱49に載せたいため、評価指標表示部13は、ユーザ入力に基づき、評価指標として、目標位置までの到達速度が速ければ速いほど報酬が高くなるが、倒してしまうと報酬が得られないような評価指標を設定する。なお、四角柱49を倒さないようにすることは、制御指令を生成する際の制約条件として担保されてもよい。他にも、評価指標表示部13は、ユーザ入力に基づき、各関節の躍度を最小化させる評価指標や、エネルギーを最小化させる評価指標、制御入力と誤差の2乗和が最小化する評価指標などを設定してもよい。
【0108】
また、第2動作ポリシーに関し、ポリシー表示部11は、ユーザ入力に基づき、エンドエフェクタの指の力を制御するパラメータを学習対象パラメータとして設定する。一般に、不安定な土台(即ち四角柱49)に物(即ちブロック48)を乗せる際には、強い力で持ちすぎていると、土台が物に接触したときに土台が倒れてしまう。しかし、軽すぎる力では持ち運ぶ物を途中で落としてしまう。以上を勘案し、落とさないぎりぎりの力でブロック48をエフェクタが把持することが好ましい。これにより、四角柱49とブロック48とが接触した時でも、ブロック48のほうがエンドエフェクタの中で滑るように動き、四角柱49を倒すのを防ぐことができる。従って、第2動作ポリシーでは、エンドエフェクタの指の力のパラメータが学習対象パラメータとなる。
【0109】
第2動作ポリシーの評価指標として、評価指標表示部13は、ユーザ入力に基づき、なるべくエンドエフェクタが物を持つ力が弱ければ弱いほど高い報酬となり、かつ、途中で落としたら報酬がもらえなくなるような評価指標を設定する。なお、物を途中で落とさないようにすることは、制御指令を生成する際の制約条件として担保されてもよい。
【0110】
図11は、第3実施形態において評価指標表示部13が表示する評価指標指定画面の一例である。評価指標表示部13は、ポリシー表示部11により設定された第1動作ポリシー及び第2動作ポリシーに対する評価指標の指定を受け付ける。具体的には、評価指標表示部13は、第1動作ポリシーに対する評価指標をユーザが指定するための複数の第1評価指標選択欄58と、第2動作ポリシーに対する評価指標をユーザが指定するための複数の第2評価指標選択欄59とを評価指標指定画面に設けている。ここで、第1評価指標選択欄58及び第2評価指標選択欄59は、一例として、プルダウンメニュー形式の選択欄となっている。「目標位置までの到達速度」は、目標位置までの到達速度が速ければ速いほど報酬が高くなる評価指標を表す。また、「エンドエフェクタの把持力」は、物を落とさない程度にエンドエフェクタが物を持つ力が弱ければ弱いほど高い報酬となる評価指標を表す。
図11の例によれば、評価指標表示部13は、設定された夫々の動作ポリシーに対する評価指標を、ユーザ入力に基づき好適に決定する。
【0111】
ポリシー合成部23は、設定された動作ポリシー(ここでは第1動作ポリシー及び第2動作ポリシー)を合成し、動作ポリシーが合成された動作を行うようにロボットハードウェア300を制御する制御指令を生成する。そして、状態評価部26は、センサ32が生成するセンサ情報に基づき、その動作を、動作ポリシー毎に異なる評価指標により、各動作ポリシーを評価し、各動作ポリシーに対する報酬値を算出する。そして、パラメータ学習部25は、動作ポリシーの夫々の学習対象パラメータの値を、動作ポリシー毎の報酬値に基づき修正する。
【0112】
図12(A)は、第3実施形態において、第1動作ポリシーの学習対象パラメータ「θ3」と第1動作ポリシーに対する報酬値「R1」との関係を示すグラフである。
図12(B)は、第3実施形態において、第2動作ポリシーの学習対象パラメータ「θ4」と第2動作ポリシーに対する報酬値「R2」との関係を示すグラフである。なお、
図12(A)、(B)における黒星マークは、最終的に学習により得られる学習対象パラメータの値を示している。
【0113】
図12(A)、(B)に示されるように、パラメータ学習部25は、学習対象パラメータの最適化を動作ポリシー毎に独立して行い、夫々の学習対象パラメータの値を更新する。このように、パラメータ学習部25は、複数の動作ポリシーに対応する複数の学習対象パラメータに対して一つの報酬値を用いて最適化を行う(
図9参照)代わりに、複数の動作ポリシーに夫々対応する学習対象パラメータの各々に対して報酬値を設定して最適化を行う。
【0114】
以上のように、第3実施形態においても、単純な動作の組み合わせで、複雑な動作を生成し、さらに動作を評価指標によって動作ポリシー毎に評価することにより、ロボットにタスクを実行可能な動作ポリシーの学習対象パラメータを簡易に学習・獲得することができる。
【0115】
<第4実施形態>
図13は、第4実施形態における制御装置200Xの概略構成図を示す。制御装置200Xは、機能的には、動作ポリシー取得手段21Xと、ポリシー合成手段23Xとを有する。制御装置200Xは、例えば、第1実施形態~第3実施形態におけるロボットコントローラ200とすることができる。また、制御装置200Xは、上記ロボットコントローラ200に加えて、表示装置100の少なくとも一部の機能をさらに有してもよい。また、制御装置200Xは、複数の装置により構成されてもよい。
【0116】
動作ポリシー取得手段21Xは、ロボットの動作に関する動作ポリシーを取得する。動作ポリシー取得手段21Xは、例えば、第1実施形態~第3実施形態におけるポリシー取得部21とすることができる。また、動作ポリシー取得手段21Xは、第1実施形態~第3実施形態においてポリシー表示部11が実行した制御を行い、動作ポリシーを指定するユーザ入力を受け付けることで、動作ポリシーを取得してもよい。
【0117】
ポリシー合成手段23Xは、少なくとも2つ以上の動作ポリシーを合成することで、ロボットの制御指令を生成する。ポリシー合成手段23Xは、例えば、第1実施形態~第3実施形態におけるポリシー合成部23とすることができる。
【0118】
図14は、第4実施形態において制御装置200Xが実行する処理手順を示すフローチャートの一例である。動作ポリシー取得手段21Xは、ロボットの動作に関する動作ポリシーを取得する(ステップS201)。ポリシー合成手段23Xは、少なくとも2つ以上の動作ポリシーを合成することで、ロボットの制御指令を生成する(ステップS202)。
【0119】
第4実施形態によれば、制御装置200Xは、制御対象となるロボットに対して取得した2つ以上の動作ポリシーを合成し、ロボットを動作させるための制御指令を好適に生成することができる。
【0120】
なお、上述した各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータであるプロセッサ等に供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記憶媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0121】
その他、上記の各実施形態の一部又は全部は、以下の付記のようにも記載され得るが以下には限られない。
【0122】
[付記1]
ロボットの動作に関する動作ポリシーを取得する動作ポリシー取得手段と、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成するポリシー合成手段と、
を有する制御装置。
[付記2]
前記制御指令に基づく前記ロボットの動作の評価を行う状態評価手段と、
前記評価に基づき、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータの値を更新するパラメータ学習手段と、
をさらに有する、付記1に記載の制御装置。
[付記3]
前記評価に用いる評価指標を取得する評価指標取得手段をさらに有し、
前記評価指標取得手段は、複数の評価指標の候補からユーザ入力に基づき選択された評価指標を取得する、付記2に記載の制御装置。
[付記4]
前記評価指標取得手段は、前記動作ポリシー毎に評価指標を取得する、付記3に記載の制御装置。
[付記5]
前記状態評価手段は、前記動作ポリシー毎の評価指標に基づき、前記動作ポリシー毎に前記評価を行い、
前記パラメータ学習手段は、前記動作ポリシー毎の前記評価に基づき、前記動作ポリシー毎の前記学習対象パラメータの学習を行う、付記2~4のいずれか一項に記載の制御装置。
[付記6]
前記動作ポリシー取得手段は、前記学習対象パラメータの候補から、ユーザ入力に基づき選択された学習対象パラメータを取得し、
前記パラメータ学習手段は、当該学習対象パラメータの値を更新する、付記2~5のいずれか一項に記載の制御装置。
[付記7]
前記動作ポリシー取得手段は、前記ロボットに対する動作ポリシーの候補から、ユーザ入力に基づき選択された動作ポリシーを取得する、付記1~6のいずれか一項に記載の制御装置。
[付記8]
前記動作ポリシーは、状態変数に応じて、前記ロボットの作用点における、目標状態を制御する制御則であり、
前記動作ポリシー取得手段は、前記作用点と、前記状態変数とを指定する情報を取得する、付記7に記載の制御装置。
[付記9]
前記動作ポリシー取得手段は、前記状態変数のうち、前記動作ポリシーにおける学習対象のパラメータである学習対象パラメータとして指定された状態変数を、前記学習対象パラメータとして取得する、付記8に記載の制御装置。
[付記10]
前記動作ポリシー取得手段は、前記動作ポリシーを適用する条件である動作ポリシー適用条件をさらに取得し、
前記ポリシー合成手段は、前記動作ポリシー適用条件に基づき、前記制御指令を生成する、付記1~9のいずれか一項に記載の制御装置。
[付記11]
コンピュータにより、
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成する、
制御方法。
[付記12]
ロボットの動作に関する動作ポリシーを取得し、
少なくとも2つ以上の前記動作ポリシーを合成することで、前記ロボットの制御指令を生成する処理をコンピュータに実行させるプログラムを格納した記憶媒体。
【0123】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。すなわち、本願発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。また、引用した上記の特許文献等の各開示は、本書に引用をもって繰り込むものとする。
【符号の説明】
【0124】
100 表示装置
200 ロボットコントローラ
300 ロボットハードウェア
11 ポリシー表示部
13 評価指標表示部
21 ポリシー取得部
22 パラメータ決定部
23 ポリシー合成部
24 評価指標取得部
25 パラメータ学習部
26 状態評価部
27 ポリシー記憶部
28 評価指標記憶部
31 アクチュエータ
32 センサ
41 対象物
42 作用点
43 作用点
44 障害物
45 エンドエフェクタの代表点
46 円柱物体
47 回転方向
48 ブロック
49 四角柱