(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024161737
(43)【公開日】2024-11-20
(54)【発明の名称】制御装置、制御方法およびプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20241113BHJP
【FI】
G06T7/00 350B
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2023076716
(22)【出願日】2023-05-08
(71)【出願人】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】董 青秀雄
(72)【発明者】
【氏名】金子 敏充
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA05
5L096DA02
5L096EA07
5L096EA16
5L096EA35
5L096KA04
(57)【要約】
【課題】制御対象の行動をより高精度に決定する。
【解決手段】制御装置は、取得部、第1行動計算部、観測加工部、第2行動計算部、決定部、および、対象制御部を備える。取得部は、制御対象の行動の決定に用いる第1観測情報を取得する。第1行動計算部は、第1観測情報を入力して制御対象の第1行動を出力するように学習された第1モデルを用いて、第1観測情報に対する第1行動を計算する。観測加工部は、第1行動に基づいて第1観測情報を加工して第2観測情報を出力する。第2行動計算部は、第2観測情報を入力して制御対象の第2行動を出力するように学習された第2モデルを用いて、第2観測情報に対する第2行動を計算する。決定部は、第1行動と第2行動とに基づいて制御対象の行動を決定する。対象制御部は、決定された行動をとるように制御対象を制御する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
制御対象の行動の決定に用いる第1観測情報を取得する取得部と、
前記第1観測情報を入力して前記制御対象の第1行動を出力するように学習された第1モデルを用いて、前記第1観測情報に対する前記第1行動を計算する第1行動計算部と、
前記第1行動に基づいて前記第1観測情報を加工して第2観測情報を出力する観測加工部と、
前記第2観測情報を入力して前記制御対象の第2行動を出力するように学習された第2モデルを用いて、前記第2観測情報に対する前記第2行動を計算する第2行動計算部と、
前記第1行動と前記第2行動とに基づいて前記制御対象の行動を決定する決定部と、
決定された行動をとるように前記制御対象を制御する対象制御部と、
を備える制御装置。
【請求項2】
前記第2観測情報を用いて、前記第2モデルの更新に用いる第2行動価値を計算し、計算した前記第2行動価値を用いて前記第2モデルを更新する第2更新部と、
前記第2観測情報と前記第2行動価値とを用いて、前記第1モデルの更新に用いる第1行動価値を計算し、計算した前記第1行動価値を用いて前記第1モデルを更新する第1更新部と、
をさらに備える、
請求項1に記載の制御装置。
【請求項3】
前記制御対象の行動を加工する行動加工部をさらに備え、
前記観測加工部は、加工された行動に基づいて、前記第1観測情報を加工して前記第2観測情報を出力する、
請求項2に記載の制御装置。
【請求項4】
前記第1更新部は、さらに、前記第1観測情報を用いて前記第1行動価値を計算し、計算した前記第1行動価値を用いて前記第1モデルを更新する、
請求項2に記載の制御装置。
【請求項5】
前記第1更新部は、前記第2行動を実行しないと仮定した更新式と、前記第1行動価値を用いて、前記第1モデルを更新する、
請求項2に記載の制御装置。
【請求項6】
前記第1更新部は、前記第2行動を実行すると仮定した更新式と、前記第1行動価値を用いて、前記第1モデルを更新する、
請求項2に記載の制御装置。
【請求項7】
前記第2更新部は、決定された行動に対する報酬に、決定された行動の乱雑さを付加した項を含む更新式を用いて前記第2モデルを更新する、
請求項2に記載の制御装置。
【請求項8】
前記第1更新部は、決定された行動に対する報酬に、決定された行動の乱雑さを付加した項を含む更新式を用いて前記第1モデルを更新する、
請求項2に記載の制御装置。
【請求項9】
前記第1観測情報は、画像であり、
前記観測加工部は、前記画像の切り取り、回転、および、透視変換のうち少なくとも1つを行う、
請求項1に記載の制御装置。
【請求項10】
前記観測加工部は、前記第1観測情報に対して、前記第1行動を示す情報、前記第1行動について計算された報酬、および、時刻、の少なくとも1つを追加する、
請求項1に記載の制御装置。
【請求項11】
前記決定部は、前記第1行動と前記第2行動とを用いた線形変換、および、前記第1行動と前記第2行動との乗算、の少なくとも一方により、前記制御対象の行動を決定する、
請求項1に記載の制御装置。
【請求項12】
前記観測加工部は、
前記第1観測情報に関連する情報を用いて、前記第1観測情報を加工する、
請求項1に記載の制御装置。
【請求項13】
前記第2行動計算部により計算された前記第2行動を出力する出力制御部をさらに備える、
請求項1に記載の制御装置。
【請求項14】
制御装置で実行される制御方法であって、
制御対象の行動の決定に用いる第1観測情報を取得する取得ステップと、
前記第1観測情報を入力して前記制御対象の第1行動を出力するように学習された第1モデルを用いて、前記第1観測情報に対する前記第1行動を計算する第1行動計算ステップと、
前記第1行動に基づいて前記第1観測情報を加工して第2観測情報を出力する観測加工ステップと、
前記第2観測情報を入力して前記制御対象の第2行動を出力するように学習された第2モデルを用いて、前記第2観測情報に対する前記第2行動を計算する第2行動計算ステップと、
前記第1行動と前記第2行動とに基づいて前記制御対象の行動を決定する決定ステップと、
決定された行動をとるように前記制御対象を制御する対象制御ステップと、
を含む制御方法。
【請求項15】
コンピュータに、
制御対象の行動の決定に用いる第1観測情報を取得する取得ステップと、
前記第1観測情報を入力して前記制御対象の第1行動を出力するように学習された第1モデルを用いて、前記第1観測情報に対する前記第1行動を計算する第1行動計算ステップと、
前記第1行動に基づいて前記第1観測情報を加工して第2観測情報を出力する観測加工ステップと、
前記第2観測情報を入力して前記制御対象の第2行動を出力するように学習された第2モデルを用いて、前記第2観測情報に対する前記第2行動を計算する第2行動計算ステップと、
前記第1行動と前記第2行動とに基づいて前記制御対象の行動を決定する決定ステップと、
決定された行動をとるように前記制御対象を制御する対象制御ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、制御装置、制御方法およびプログラムに関する。
【背景技術】
【0002】
ロボット(制御対象の一例)を用いたピッキング作業において、画像からロボットの行動を決定する方策を強化学習によって習得する技術が提案されている。このような技術では、ピッキングの成否は、基本的にエンドエフェクタと把持対象物(ピッキングの対象物)の周辺画像のみで判別できる。従って、方策として画像の局所的な部分のみに注目すればよい。
【0003】
一方、このような技術では、制御対象の行動は、最も重要なピクセルの周辺画像のみから決定される。従って、全体的な状態、例えばカメラ角度の変更による影響を行動に反映させることは困難である。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】James, S., & Davison, A. J., “Q-attention: Enabling efficient learning for vision-based robotic manipulation,” IEEE Robotics and Automation Letters, 7(2), 1612-1619, (2022).
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明は、制御対象の行動をより高精度に決定できる制御装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
実施形態の制御装置は、取得部、第1行動計算部、観測加工部、第2行動計算部、決定部、および、対象制御部を備える。取得部は、制御対象の行動の決定に用いる第1観測情報を取得する。第1行動計算部は、第1観測情報を入力して制御対象の第1行動を出力するように学習された第1モデルを用いて、第1観測情報に対する第1行動を計算する。観測加工部は、第1行動に基づいて第1観測情報を加工して第2観測情報を出力する。第2行動計算部は、第2観測情報を入力して制御対象の第2行動を出力するように学習された第2モデルを用いて、第2観測情報に対する第2行動を計算する。決定部は、第1行動と第2行動とに基づいて制御対象の行動を決定する。対象制御部は、決定された行動をとるように制御対象を制御する。
【図面の簡単な説明】
【0007】
【
図4】実施形態における制御処理のフローチャート。
【
図5】実施形態における学習処理のフローチャート。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、この発明にかかる制御装置の好適な実施形態を詳細に説明する。以下では、物体(物品)を把持するロボット(ピッキングロボット)を制御する制御装置を含む制御システムを例として説明する。制御対象はロボットに限られず、どのような対象であってもよい。
【0009】
上記のように、画像からロボットの行動を決定する方策を強化学習によって習得する技術が提案されている。例えば、初めに画像のピクセルごとに重要度を計算し、最も重要なピクセルの周辺で画像を切り出し、周辺画像からピッキングロボットの行動を決定する技術が提案されている。この技術でも、最も重要なピクセルの周辺画像のみから行動が決定されるため、全体的な状態の変更による影響を行動の決定に反映させることは困難である。
【0010】
また、上記のような技術では、学習時にはピクセルごとに重要度を計算する部分と、周辺画像からピッキングロボットの行動を計算する部分と、が独立に学習される。従って、一般に学習のサンプル効率が悪くなるという問題がある。
【0011】
以下の実施形態では、上記の2つの部分を適切に変更することで、互いに結び付けて学習することを可能にし、学習効率を向上させることができる。
【0012】
具体的には方策を用いた行動の決定を以下の二段階に分ける。一段階目ではピクセルの重要度の代わりに、大まかな行動が決定される。以下、大まかな行動を行動AA(第1行動)という。二段階目では、行動AAに従って画像が切り出され、切り出された画像から補正した行動が決定される。以下では、補正した行動を行動AB(第2行動)という。
【0013】
これによって、全体の情報は行動AAに反映させることができる。一段階目の出力(行動AA)および二段階目の出力(行動AB)は、行動の値という意味で同等な出力である。このため、学習時には、行動価値を両方に共通する形で計算することができ、学習のサンプル効率を向上させることができる。
【0014】
最初に、ロボットなどの制御の学習に用いられる強化学習について簡単に説明する。
【0015】
強化学習は、ある時刻tにおいて入力された状態stから行動atを決定する方策を学習する方法である。時刻tにおける観測情報またはその一部が状態stに相当し、制御情報が行動atに相当する。方策は、例えば確率分布π(at|st)などのモデルにより表される。以下では、確率分布πにより表される方策をπと表す場合がある。
【0016】
観測情報は、例えば、カメラなどの撮影装置により撮像された把持対象物を含む画像、ロボットの内部状態の情報、および、補助的な状態(現在の制御時刻など)を示す情報を含む。制御情報は、制御対象であるロボットを制御するための情報であり、例えば、ロボットが備えるエンドエフェクタの座標および回転角などを示す情報である。
【0017】
エンドエフェクタは、ハンド、または、マニピュレータなどと称される場合がある。エンドエフェクタは、例えば、把持対象物を挟む込むことにより把持するグリッパ、および、把持対象物を吸着することにより保持する吸着パッドの少なくとも一方を備えるように構成することができる。
【0018】
行動atは、どのような形式で表されてもよい。ロボットの場合、行動atは、例えば以下のような要素を含む8次元の情報で表されてもよい。
・位置座標を示す3次元の情報(x、y、z座標など)
・回転を示す4次元の情報(四元数)
・グリッパの開閉を示す1次元の情報
【0019】
方策は、例えば確率値または確率モデルのパラメータを出力するニューラルネットワークモデル(以下、単にニューラルネットワークという場合がある)で学習される。言い換えると、方策は、ニューラルネットワークなどのモデルにより表される。そして、このモデルを学習することにより、方策の学習が実現される。
【0020】
例えば強化学習は、以下の(1)式で表される割引累積報酬の期待値を最大化する方策π(a
t|s
t)を学習することが目的である。
【数1】
【0021】
ここでr(st,at)は、状態stにおいて行動atを行った結果、時刻tに得られた報酬である。また、γは割引率であり、遠い将来の報酬をどれだけ考慮して行動を決定するかを調整する0以上1以下のパラメータである。γは、学習を安定化させる正則化の役割も果たしている。
【0022】
強化学習には様々なアルゴリズムが知られているが、以下では行動価値関数Q(s
t,a
t)の学習を通じて間接的に方策を学習するアルゴリズムを用いる例を説明する。行動価値関数Q(s
t,a
t)は、状態s
tにおいて行動a
tを取った後に現在の方策に従って行動した場合に得られる割引累積報酬の推定値である。TD学習(Temporal Difference Learning)では、行動価値関数Q(s
t,a
t)は、以下の(2)式で表される更新式によって学習される。なお、αは学習率を表す。
【数2】
【0023】
一般に(2)式に含まれる項のうち以下の(3)式で表される項は計算が困難であるため、π(a|s
t+1)に従ってサンプリングした行動aの行動価値関数Q(s
t+1,a)が用いられる。
【数3】
【0024】
行動価値関数Q(st,at)は、例えば線形モデルおよびニューラルネットワークなどのモデルで学習される。言い換えると、行動価値関数Q(st,at)は、線形モデルおよびニューラルネットワークなどのモデルにより表される。行動価値関数を用いることで、方策の学習は行動価値関数の最大化によって実現される。
【0025】
以下、従来の手法により強化学習を行う場合の問題点について説明する。観測情報として主に画像を用いる場合、方策および行動価値関数は、画像という高次元の入力から抽出された特徴量に基づいて計算される必要がある。
【0026】
物体(物品)をピッキングするタスクなどでは、行動を計算する上で重要となる画像は一部の領域(例えば把持対象物とその周辺を含む領域)であることが多い。このため、画像の全体(以下、全体画像)ではなく、全体画像から一部の領域を切り取った画像(以下、局所画像)が用いられることで、より高い精度での制御が可能となる。また、局所画像は、周辺環境(背景など)の影響を受けにくいため、高い頑健性が期待できる。一方で、全体画像からのみ決定できる要素も多い。例えば、カメラの角度が変化した場合、局所画像では、角度の変化の影響を計算することができない。従って、全体画像および局所画像の両方から行動が決定されることが好ましい。
【0027】
次に、本実施形態の制御システムの構成について説明する。
図1は、本実施形態の制御システム10の構成例を示す図である。
図1に示すように、制御システム10は、制御装置100と、ピッキングロボット200と、カメラ250と、を含む。
【0028】
制御装置100は、ピッキングロボット200の行動(動作)を制御する。ピッキングロボット200は、把持対象物である物体210a、210bをピッキング(把持)するためのロボットである。カメラ250は、物体210a、210bを含む画像を撮影する撮像装置である。カメラ250が撮影する画像はどのような形式でもよいが、例えばRGB画像、深度(デプス)画像、および、ポイントクラウドなどである。
【0029】
カメラ250は、1つでもよいし、2つ以上であってもよい。例えば2つ以上のカメラ250が、相互に異なる角度から物体210a、210bを撮影してもよい。
【0030】
制御装置100は、観測情報を入力し、ピッキングロボット200の行動を制御する制御情報を出力する。観測情報は、例えば、カメラ250からの画像、ピッキングロボット200の内部状態の情報(ジョイントの角度、位置など)、および、補助的な状態(現在の制御時刻など)を示す情報を含む。ピッキングロボット200の制御情報は、例えば、ピッキングロボット200が備えるエンドエフェクタの座標および回転角などを含む。
【0031】
また、制御装置100は、物体210を把持するための最適な制御情報(行動をとるための制御情報)を出力する方策を学習する。方策は、実際のピッキングロボット200を動作させて学習されてもよいし、シミュレーション環境で学習されてもよい。
【0032】
図2は、制御装置100の構成の一例を示すブロック図である。制御装置100は、全体画像から大まかな行動を決定し、決定した行動に従って局所画像を切り取り、局所画像から行動を補正するように、方策を学習する。
【0033】
図2に示すように、制御装置100は、記憶部151と、表示部152と、取得部101と、記憶制御部102と、出力制御部103と、推定部110と、学習部120と、対象制御部130と、を備えている。
【0034】
記憶部151は、制御装置100で用いられる各種情報を記憶する。例えば記憶部151は、取得部101により取得された観測情報を記憶する。記憶部151は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0035】
表示部152は、制御装置100で用いられる各種情報を表示するための表示装置であり、例えば液晶ディスプレイなどにより実現される。例えば表示部152は、出力制御部103による制御に従い、推定部110による推定結果(決定された行動など)を表示する。
【0036】
取得部101は、制御装置100で用いられる各種情報を取得する。例えば取得部101は、ピッキングロボット200の行動の決定に用いる観測情報を取得する。以下では、ピッキングロボット200を制御する時刻を制御時刻tと表す。また、制御時刻tにピッキングロボット200から出力された観測情報をstと表し、制御時刻tに決定される行動をatと表す。制御時刻tは、どのような単位で定められてもよい。例えば制御時刻tは、ピッキングロボット200の制御サイクルごとに定められてもよいし、複数の制御サイクルを含む単位として定められてもよい。
【0037】
また、以下では、学習済の方策(モデル)を用いてピッキングロボット200の行動を決定するとき、および、モデルを学習するときに用いる観測情報を観測情報IA(第1観測情報)と表す場合がある。
【0038】
取得部101は、さらに、制御時刻t-1に決定された過去の行動at-1によって得られた報酬rt-1を、ピッキングロボット200から取得してもよい。なお、報酬は、ピッキングロボット200により算出されてもよいし、ユーザ等により設定されてもよい。取得部101は、記憶制御部102を用いて、取得した各種情報を記憶部151に記憶するとともに、観測情報stを行動計算部111に出力する。
【0039】
取得部101は、ユーザ等により入力される、学習に必要なパラメータを取得してもよい。ユーザ等による情報の入力は、例えば、キーボード、および、マウスなどのポインティングデバイスなどの入力装置により実行されてもよい。
【0040】
記憶制御部102は、記憶部151に対する各種情報の記憶を制御する。例えば記憶制御部102は、取得部101からの指示に従い、観測情報を記憶部151に記憶する。
【0041】
出力制御部103は、制御装置100で用いられる各種情報の出力を制御する。例えば、出力制御部103は、加工された観測情報、および、推定(決定)された行動(行動AB)、の少なくとも一方を、表示部152に出力(表示)してもよい。
【0042】
推定部110は、学習済の方策(モデル)を用いて行動を推定(決定)する機能に相当する。学習部120は、方策(モデル)を学習する機能に相当する。
【0043】
まず、推定部110について説明する。推定部110は、行動計算部111(第1行動計算部)と、観測加工部112と、行動計算部113(第2行動計算部)と、決定部114と、を含む。
【0044】
行動計算部111は、観測情報IAに基づいてピッキングロボット200の大まかな行動である行動AAを計算する。行動計算部111は、上記の一段階目の行動の決定を行う機能に相当する。
【0045】
例えば行動計算部111は、行動AAを計算するために用いられる学習済の方策PA(第1モデル)を用いて行動AAを計算する。例えば、現在、学習により得られている方策PAを確率分布π1(a1
t|st)とする。この場合、行動計算部111は、取得された観測情報stを用いて、確率分布π1(a1
t|st)に従って行動a1
tを計算する。例えば行動計算部111は、確率分布π1(a1
t|st)に従う確率で、1つの行動a1
tを求める。行動a1
tは、大まかな行動AAに相当する。
【0046】
観測加工部112は、行動AAに基づいて観測情報IAを加工する。例えば観測情報IAが画像の場合、観測加工部112は、画像の切り取り、回転、および、透視変換のうち少なくとも1つを行う。以下では、加工後の観測情報を観測情報IB(第2観測情報)と表す場合がある。
【0047】
制御時刻tの行動AAおよび観測情報IAとして、行動a1
tおよび観測情報stが入力されたとする。この場合、観測加工部112は、行動a1
tと用いて観測情報stを加工し、加工後の観測情報IBとして、観測情報s2
t=f(st,a1
t)を出力する。
【0048】
図3は、観測情報の加工の例を示す図である。画像301は、加工前の観測情報IAに相当する。画像302は、加工後の観測情報IBに相当する。画像302は、例えば、画像301から一部の領域を切り取り、回転させた画像に相当する。
【0049】
行動に基づく観測情報の加工方法は、どのような方法であってもよいが、例えば以下のような方法を適用できる。以下の例は、観測情報が画像の場合の例である。
・行動に含まれる位置座標に対応する画像内の座標を求め、求めた座標の周辺の一部の領域を切り取る。
・行動に含まれる回転の情報に応じて、画像を回転または透視変換する。例えば、行動に含まれる回転の値に応じて回転したエンドエフェクタに対する角度が一定になるように、画像を回転または透視変換する。
【0050】
行動に含まれる位置座標と、画像内の座標と、の対応関係は、例えば、ピッキングロボット200(エンドエフェクタ)で適当な物体を把持したときのエンドエフェクタの位置座標と画像内の物体の画像との対応により、事前に求めることができる。観測加工部112は、事前に求めた対応関係を線形補間することなどにより、計算された行動a1
tに含まれる位置座標に対応する画像内の座標を求めることができる。なお、対応関係を求めるときの誤差は、学習部120による学習によって吸収できる。このため、対応関係について、高い精度でのキャリブレーションは必要ない。
【0051】
観測加工部112は、行動a1
tを示す情報、行動a1
tについて計算された報酬、および、現在の制御時刻の少なくとも1つを、補助的な情報として観測情報IAに対して追加する加工を行ってもよい。
【0052】
また、観測加工部112は、複数の種類の加工を行ってもよい。例えば、観測加工部112は、上記の画像の切り取り、および、画像の回転の両方を実行してもよい。
【0053】
また、観測情報の次元が高い場合、計算コストを削減するため、取得される観測情報stとして、縮小された画像、または、複数の角度から撮影された複数の画像のうち一部の画像のみが用いられる場合がある。このよう場合には、観測加工部112は、観測情報stを直接用いるのではなく、観測情報stに関連する情報を用いて、観測情報IBを計算してもよい。観測情報stに関連する情報は、例えば以下のような情報である。
・観測情報stである画像より高解像度の画像(縮小前の画像)
・観測情報stである画像と、当該画像と異なる角度から撮影された画像とを含む複数の画像
【0054】
複数の角度から撮影された複数の画像は、例えば、複数のカメラ250によりそれぞれ撮影された画像であってもよい。観測情報stに関連する情報は、例えば、記憶部151に記憶され、加工時に観測加工部112により記憶部151から読み出される。
【0055】
図2に戻り、行動計算部113は、加工された観測情報IBに基づいて制御対象の行動ABを計算する。行動計算部113は、上記の二段階目の行動の決定を行う機能に相当する。
【0056】
例えば行動計算部113は、行動ABを計算するために用いられる学習済の方策PB(第2モデル)を用いて行動ABを計算する。観測加工部112から入力された観測情報IBを観測情報s2
tと表す。また、現在、学習により得られている方策PBを確率分布π2(a2
t|s2
t)とする。この場合、行動計算部113は、観測情報s2
tを用いて、確率分布π2(a2
t|s2
t)に従って行動a2
tを計算する。例えば行動計算部113は、確率分布π2(a2
t|s2
t)に従う確率で、1つの行動a2
tを求める。行動a2
tは、行動a1
tに従って加工した観測情報s2
tを用いているため、行動a1
tを補正した行動ABと解釈できる。
【0057】
決定部114は、行動a1
tと行動a2
tとに基づいて制御対象の行動を決定する。例えば決定部114は、行動a1
tと行動a2
tを合成することにより、最終的な行動a=g(a1
t,a2
t)を出力する。決定部114は、決定した行動に対して、スケーリングなどの変換処理を行い、処理後の行動を制御情報として出力してもよい。
【0058】
行動a1
tと行動a2
tを合成する方法はどのような方法でもよいが、例えば線形変換および乗算の少なくとも一方を用いる方法を適用できる。
【0059】
線形変換は、例えば行動に含まれる位置座標を示す情報に対して適用可能な合成方法である。例えば、決定部114は、行動に含まれる位置座標について、適当な係数cに対して、g(a1
t,a2
t)=a1
t+c×a2
tのような線形変換を用いる。
【0060】
乗算は、例えば行動に含まれる回転を示す情報(例えば四元数)に対して適用可能な合成方法である。例えば、決定部114は、g(a1
t,a2
t)=a1
t×a2
tのような乗算を用いる。
【0061】
決定部114は、グリッパの開閉などの、加工後の観測情報IBのみから決定できる行動の場合、g(a1
t,a2
t)=a2
tのように行動a2
tのみから、最終的な行動を決定してもよい。
【0062】
次に、学習部120について説明する。学習部120は、行動の決定に用いる方策(モデル)を学習する機能に相当する。学習部120は、観測加工部121と、更新部122(第2更新部)と、更新部123(第1更新部)と、を含む。なお、推定時と学習時とで行動AAに基づく観測情報IAの加工方法は共通する。従って、推定部110内の観測加工部112、および、学習部120内の観測加工部121は、共通化されてもよい。
【0063】
なお、制御時刻t+1の学習時には、記憶部151には、取得部101により取得された以下の情報が記憶される。
・制御時刻tでの観測情報st
・実行した行動at
・行動atによって得られた報酬rt
・制御時刻t+1での観測情報st+1
【0064】
観測加工部121は、記憶部151に記憶された観測情報から選択(サンプリング)された観測情報を適当な行動AA(行動a1
t)の下で、観測情報s2
t=f(st,a1
t)に変換する。観測情報s2
tは、加工後の観測情報IBに相当する。行動AAは、例えば以下のような方法により得られる。
・実際に実行した行動at
・現在の方策PAである確率分布π1(a1
t|st)に従う確率で選択された行動a1
t
【0065】
更新部122は、観測情報IBを用いて、方策PBの学習に用いる行動価値関数Q2(s2
t,a2
t)の値である行動価値AVB(第2行動価値)を計算する。行動価値関数Q2(s2
t,a2
t)は、第2行動価値関数の一例である。
【0066】
さらに更新部122は、計算した行動価値AVBを用いて方策PBを更新(学習)する。上記のように、方策PBの学習は行動価値関数Q2(s2
t,a2
t)の最大化によって実現される。
【0067】
すなわち、更新部122は、例えば、観測加工部121で加工された情報(s
2
t,a
t,r
t,s
2
t+1,a
1
t)を用いて計算された行動価値関数Q
2(s
2
t,a
2
t)の値である行動価値AVBにより、行動価値関数Q
2(s
2
t,a
2
t)を更新する。例えばTD学習を用いる場合、更新部122は、以下の(4)式に示すように行動価値関数Q
2(s
2
t,a
2
t)を学習する。
【数4】
【0068】
ここでa
2
tはa
t=g(a
1
t,a
2
t)を満たす。gが線形変換および乗算によって与えられる場合には、更新部122は、a
tとa
1
tから解析的にa
2
tを求めてもよい。更新部122は、サンプリングによってa
2
tを求めてもよい。また、更新部122は、(4)式のうち以下の(5)式に示す項をサンプリングによって求める。また、この項は、行動価値関数Q
1の値(行動価値AVA)を用いて以下の(6)式で置き換えてもよい。
【数5】
【数6】
【0069】
更新部123は、観測情報IAと、更新部122により計算された行動価値AVB(行動価値関数Q2(s2
t,a2
t)の値)とを用いて、方策PAの学習に用いる行動価値関数Q1(st,a1
t)の値である行動価値AVA(第1行動価値)を計算する。行動価値関数Q1(st,a1
t)は、第1行動価値関数の一例である。
【0070】
さらに更新部123は、記憶部151に記憶されている情報(観測情報IA)と、計算した行動価値AVAと、を用いて、行動価値関数Q1(st,a1
t)を更新(学習)する。上記のように、方策PAの学習は行動価値関数Q1(st,a1
t)の最大化によって実現される。
【0071】
例えば、更新部123は、行動ABを実行しないと仮定した更新式と、行動価値AVAと、を用いて、行動価値関数Q
1(s
t,a
1
t)を更新(方策PAを学習)する。行動ABを実行しないとは、例えば、決定部114が、最終的な行動aとして行動AAを決定することである。この場合、行動価値関数Q
1(s
t,a
1
t)および行動価値関数Q
2(s
2
t,a
2
t)は、以下の(7)式を満たす。
【数7】
【0072】
従って、更新部123は、以下の(8)式に示す更新式で行動価値関数Q
1(s
t,a
1
t)を更新する。
【数8】
【0073】
また、更新部123は、記憶部151に記憶されている情報(観測情報IA)を用いて、(8)式に加えて以下の(9)式に示す更新式を用いて、行動価値関数Q
1(s
t,a
t)をTD学習によって直接学習してもよい。
【数9】
【0074】
例えば決定部114が、行動AAの一部の成分を無視して最終的な行動を決定する場合などでは、行動ABを実行しない場合の行動価値を計算する効果が小さい。このような場合は、更新部123は、行動ABを実行すると仮定した更新式と、行動価値AVAと、を用いて、行動価値関数Q1(st,a1
t)を更新(方策PAを学習)してもよい。
【0075】
例えば行動aが座標xとグリッパの開閉hとによってa=(x,h)のように分けられ、行動AAおよび行動ABを合成する関数が、g(x1,x2)=x1+cx2、および、g(h1,h2)=h2である場合を考える。
【0076】
この場合、行動価値AVAを計算する上で、hの成分を考慮する必要はない。従って、行動価値関数はQ
1(s
t,x
1
t)で定義してもよい。この場合、行動価値関数Q
1と行動価値関数Q
2は以下の(10)式を満たす。従って、更新部123は、(8)式の代わりに以下の(11)式に示す更新式で学習してもよい。
【数10】
【数11】
【0077】
ここで、(12)式に示す項は、h
2を方策(確率分布)π
2に従ってサンプルした場合の期待値を意味する。
【数12】
【0078】
これまで観測されなかった状態、および、方策の出力する行動が不確実な状態を積極的に探索するために、通常の報酬に対して行動のエントロピーを付加する方法が用いられてもよい。行動のエントロピーは、行動の乱雑さを表す情報の一例である。例えば、(4)式および(9)式において、rtが、エントロピー項H(π)を追加したrt+H(π)に置き換えられてもよい。本実施形態では、2つの方策PAおよびPBが用いられる。従って、エントロピー項H(π)は、2つの方策に対応する2つのエントロピーH(π1)およびH(π2)を含んでもよいし、2つのエントロピーH(π1)およびH(π2)の平均値などの統計情報を含んでもよい。
【0079】
対象制御部130は、上記のようにして学習(更新)された方策を用いて、推定部110により決定された行動をとるように制御対象を制御する。例えば対象制御部130は、推定部110(決定部114)により決定された行動に対応する制御情報を推定部110から受け取り、受け取った制御情報に従いピッキングロボット200を制御する。
【0080】
上記各部(取得部101、記憶制御部102、出力制御部103、推定部110、学習部120、および、対象制御部130)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2つ以上を実現してもよい。
【0081】
次に、本実施形態の制御装置100による制御処理について説明する。
図4は、本実施形態における制御処理の一例を示すフローチャートである。制御処理は、学習済のモデルを用いて制御対象(ピッキングロボット200)の行動を決定し、決定した行動により制御対象を制御する処理である。制御処理は、制御時刻tごとに実行される。
【0082】
取得部101は、ピッキングロボット200から観測情報を取得する(ステップS101)。取得部101は、取得した制御時刻tにおける観測情報stを行動計算部111に出力する。また、取得部101は、制御時刻t-1における観測情報stー1、観測情報stー1を用いて決定された行動at-1、行動at-1によってピッキングロボット200から得られる報酬rt-1、および、制御時刻tにおける観測情報stを、経験情報として記憶部151に記憶する。
【0083】
行動計算部111は、取得部101から入力された観測情報stを用いて、行動AAとして行動atを計算する(ステップS102)。行動計算部1l1は、観測情報stおよび行動AAを、観測加工部112および決定部114に出力する。
【0084】
観測加工部112は、入力された行動AAを用いて、入力された観測情報stを加工し、加工した観測情報IBを行動計算部113に出力する(ステップS103)。
【0085】
行動計算部113は、観測加工部112から入力された観測情報IBを用いて、行動ABを計算し、決定部114に出力する(ステップS104)。
【0086】
決定部114は、行動計算部111から入力された行動AAと行動計算部113から入力された行動ABを結合した行動を決定する(ステップS105)。決定部114は、決定した行動を制御情報に変換して出力してもよい。
【0087】
対象制御部130は、決定された行動に対応する制御情報をピッキングロボット200に出力することにより、ピッキングロボット200を制御する(ステップS106)。
【0088】
次に、本実施形態の制御装置100による学習処理について説明する。
図5は、本実施形態における学習処理の一例を示すフローチャートである。学習処理は、制御処理などで用いられるモデルを学習するための処理である。学習処理の前に、例えば、
図4に示す制御処理を動作させることにより、複数の経験情報が記憶部151に記憶されているものとする。
【0089】
学習部120は、記憶部151に記憶されている複数の経験情報から、一定数(1以上の整数)の経験情報を取得(サンプリング)し、観測加工部121に出力する(ステップS201)。
【0090】
観測加工部121は、入力された経験情報に含まれる行動を行動AAとして用いて、経験情報に含まれる観測情報IAを加工し、加工後の観測情報IBを更新部122に出力する(ステップS202)。行動AAの値は、経験情報に含まれる観測情報IAを用いて行動計算部111により計算された値であってもよい。
【0091】
更新部122は、加工後の観測情報IBを含む経験情報を用いて、行動価値関数Q2(方策PB)を更新する(ステップS203)。
【0092】
更新部122は、方策PBの更新を終了するか否かを判定する(ステップS204)。終了の判定方法は、どのような方法でもよいが、例えば以下の方法を適用できる。
・誤差項の値が閾値(誤差項の閾値)以下となった場合に終了と判定する。なお、誤差項とは、例えば、(2)式などの更新式の右辺に含まれる差分を計算するための項である。
・更新回数が閾値(更新回数の閾値)を超えた場合に終了と判定する。
【0093】
方策PBの更新を終了しない場合(ステップS204:No)、ステップS202に戻り、処理が繰り返される。
【0094】
方策PBの更新を終了する場合(ステップS204:Yes)、更新部123は、経験情報と、更新部122により計算された行動価値AVB(行動価値関数Q2(s2
t,a2
t)の値)とを用いて、行動価値関数Q1(方策PA)を更新する(ステップS205)。更新部123は、行動価値関数Q2の値ではなく、経験情報から行動価値関数Q1(方策PA)を直接更新してもよい。
【0095】
更新部123は、方策PAの更新を終了するか否かを判定する(ステップS206)。終了の判定方法は、どのような方法でもよいが、方策PBの更新の終了判定と同様の方法を適用できる。
【0096】
方策PAの更新を終了しない場合(ステップS206:No)、ステップS205に戻り、処理が繰り返される。
【0097】
方策PAの更新を終了する場合(ステップS206:Yes)、学習部120は、学習処理を終了するか否かを判定する(ステップS207)。学習の終了の判定方法は、どのような方法でもよいが、例えば以下の方法を適用できる。
・方策の性能が閾値(性能の閾値)以上となった場合に終了と判定する。なお、方策の性能とは、例えば方策により決定された行動の成功率などにより計算される。
・ステップS201~ステップS206までの処理の繰り返し回数が閾値(繰り返し回数の閾値)を超えた場合に終了と判定する。
【0098】
次に、出力制御部103により表示部152に表示される情報の例について説明する。出力制御部103は、例えば、以下のような情報のうち一部または全部を表示部152に表示する。
・観測加工部121による加工の結果を示す情報
・学習時に計算された行動ABの値
・学習時に計算された複数の行動ABの値の統計情報(分散、平均など)を示すグラフ
【0099】
これらの情報は、学習の進行度の判断に用いることができる。例えば観測加工部121による加工の結果に、行動AAの補正に必要な情報が常に含まれている場合(把持対象物が常に中心付近にある場合など)には、方策PAが十分学習できていると判断できる。また、観測加工部121による加工の結果に、行動AAの補正に必要な情報が含まれていれば常に高い報酬が得られる場合、方策PBが十分学習できていると判断できる。
【0100】
出力制御部103が上記のような情報を表示することにより、ユーザは、制御装置100の性能について判断することができる。また、例えば判断結果に応じて、ユーザが学習率などの学習に必要なパラメータを調整することで、過学習による性能低下を防止し、学習時間を削減することが可能となる。
【0101】
(変形例)
変形例では、行動を加工する機能(行動加工部)が追加される。
図6は、変形例の制御装置100-2の構成の一例を示すブロック図である。
図6に示すように、制御装置100-2は、記憶部151と、表示部152と、取得部101と、記憶制御部102と、出力制御部103と、推定部110と、学習部120-2と、対象制御部130と、を備えている。
【0102】
変形例では、学習部120-2が行動加工部124-2をさらに備えること、および、観測加工部121-2に入力される行動が行動加工部124-2から出力される行動に置き換えられることが、上記実施形態と異なる。その他の構成は
図2と同様であるため、同一の符号を付し説明を省略する。
【0103】
行動加工部124-2は、制御対象の行動を加工する。加工の対象となる行動は、実際に実行した行動であってもよいし、現在の方策PAに従って計算された行動であってもよい。
【0104】
行動の加工方法はどのような方法であってもよいが、例えば、行動に含まれる要素のうち一部または全部をランダムに変化させる方法を適用できる。このように行動を加工することにより、学習データを増やすことができる。この結果、学習効率をさらに向上させることができる。
【0105】
観測加工部121-2は、行動加工部124-2により加工された行動を用いて、観測情報を加工する点が、上記実施形態の観測加工部121と異なっている。
【0106】
以上説明したとおり、実施形態によれば、制御対象の行動をより高精度に決定することができる。
【0107】
次に、実施形態の制御装置のハードウェア構成について
図7を用いて説明する。
図7は、実施形態の制御装置のハードウェア構成例を示す説明図である。
【0108】
実施形態の制御装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0109】
実施形態の制御装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0110】
実施形態の制御装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0111】
さらに、実施形態の制御装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施形態の制御装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0112】
実施形態の制御装置で実行されるプログラムは、コンピュータを上述した制御装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0113】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0114】
100、100-2 制御装置
101 取得部
102 記憶制御部
103 出力制御部
110 推定部
111 行動計算部
112 観測加工部
113 行動計算部
114 決定部
120、120-2 学習部
121、121-2 観測加工部
122 更新部
123 更新部
124-2 行動加工部
130 対象制御部
151 記憶部
152 表示部