(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-06
(45)【発行日】2024-09-17
(54)【発明の名称】制御装置、制御方法およびプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240909BHJP
B25J 13/00 20060101ALI20240909BHJP
【FI】
G06N20/00
B25J13/00 Z
(21)【出願番号】P 2021147933
(22)【出願日】2021-09-10
【審査請求日】2023-03-13
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】韓 海峰
(72)【発明者】
【氏名】石原 義之
(72)【発明者】
【氏名】大賀 淳一郎
(72)【発明者】
【氏名】菅原 淳
【審査官】山本 俊介
(56)【参考文献】
【文献】特開2017-030135(JP,A)
【文献】特開2016-157188(JP,A)
【文献】特開2019-181620(JP,A)
【文献】特開2021-013996(JP,A)
【文献】欧州特許出願公開第03842736(EP,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
B25J 13/00-13/08
(57)【特許請求の範囲】
【請求項1】
上方向である第1方向に並べられる複数の物品、および、前記第1方向と
交差する第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得部と、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習部と、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定部と、
を備え、
前記状態情報は、前記物品群を前記第1方向に撮像して得られるデプス画像を分割した複数の部分領域ごとの前記デプスを表し、
複数の前記部分領域のそれぞれは、前記物品群に含まれるいずれかの前記物品の一辺の長さに対応する形状である、
制御装置。
【請求項2】
第1方向に並べられる複数の物品、および、前記第1方向と異なる第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得部と、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習部と、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定部と、を備え、
前記学習モデルは、複数の前記状態情報のうち1つと、複数の前記移動動作のうち1つとをそれぞれ対応づけた複数の組ごとのQ値を定めたQテーブルであり、
前記強化学習は、最適な移動動作に対応する前記Q値がより大きな値になるように前記Qテーブルを更新するQラーニングであり、
前記学習部は、取得された第1状態情報に対して前記Qテーブルにより決定した第1移動動作が失敗した場合に、前記第1状態情報と類似する第2状態情報を特定し、前記第1状態情報に対する前記第1移動動作のQ値と、前記第2状態情報に対して失敗する第2移動動作のQ値と、を更新する、
制御装置。
【請求項3】
前記状態情報は、前記物品群を前記第1方向に撮像して得られるデプス画像を分割した複数の部分領域ごとの前記デプスを表す、
請求項2に記載の制御装置。
【請求項4】
前記学習部は、前記状態情報に対する最適な移動動作の初期値として、前記物品群に含まれる物品のうち、前記デプスが他の物品より大きい前記物品を、前記デプスがさらに大きくなる方向に移動させる移動動作を設定する、
請求項1または2に記載の制御装置。
【請求項5】
前記第1方向は、前記物品を
把持して上方に移動させる動作に対応する上方向であり、
前記第2方向は、前記物品を横から引き出す動作に対応する横方向である、
請求項2に記載の制御装置。
【請求項6】
決定された前記移動動作に従い、前記物品群に含まれる前記物品を移動させる制御部をさらに備える、
請求項1または2に記載の制御装置。
【請求項7】
制御装置に実行させるための制御方法であって、
上方向である第1方向に並べられる複数の物品、および、前記第1方向と
交差する第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得ステップと、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習ステップと、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定ステップと、
を含み、
前記状態情報は、前記物品群を前記第1方向に撮像して得られるデプス画像を分割した複数の部分領域ごとの前記デプスを表し、
複数の前記部分領域のそれぞれは、前記物品群に含まれるいずれかの前記物品の一辺の長さに対応する形状である、
制御方法。
【請求項8】
コンピュータに、
上方向である第1方向に並べられる複数の物品、および、前記第1方向と
交差する第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得ステップと、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習ステップと、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定ステップと、
を実行させ、
前記状態情報は、前記物品群を前記第1方向に撮像して得られるデプス画像を分割した複数の部分領域ごとの前記デプスを表し、
複数の前記部分領域のそれぞれは、前記物品群に含まれるいずれかの前記物品の一辺の長さに対応する形状である、
プログラム。
【請求項9】
制御装置に実行させるための制御方法であって、
第1方向に並べられる複数の物品、および、前記第1方向と異なる第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得ステップと、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習ステップと、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定ステップと、を含み、
前記学習モデルは、複数の前記状態情報のうち1つと、複数の前記移動動作のうち1つとをそれぞれ対応づけた複数の組ごとのQ値を定めたQテーブルであり、
前記強化学習は、最適な移動動作に対応する前記Q値がより大きな値になるように前記Qテーブルを更新するQラーニングであり、
前記学習ステップは、取得された第1状態情報に対して前記Qテーブルにより決定した第1移動動作が失敗した場合に、前記第1状態情報と類似する第2状態情報を特定し、前記第1状態情報に対する前記第1移動動作のQ値と、前記第2状態情報に対して失敗する第2移動動作のQ値と、を更新する、
制御方法。
【請求項10】
コンピュータに、
第1方向に並べられる複数の物品、および、前記第1方向と異なる第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、前記第1方向のデプスを表す状態情報を取得する取得ステップと、
前記物品群に含まれるいずれかの前記物品を前記第1方向または前記第2方向に移動させる複数の移動動作のうち、前記状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する学習ステップと、
学習された前記学習モデルを用いて、指定された前記状態情報に対する移動動作を決定する決定ステップと、を実行させ、
前記学習モデルは、複数の前記状態情報のうち1つと、複数の前記移動動作のうち1つとをそれぞれ対応づけた複数の組ごとのQ値を定めたQテーブルであり、
前記強化学習は、最適な移動動作に対応する前記Q値がより大きな値になるように前記Qテーブルを更新するQラーニングであり、
前記学習ステップは、取得された第1状態情報に対して前記Qテーブルにより決定した第1移動動作が失敗した場合に、前記第1状態情報と類似する第2状態情報を特定し、前記第1状態情報に対する前記第1移動動作のQ値と、前記第2状態情報に対して失敗する第2移動動作のQ値と、を更新する、
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、制御装置、制御方法およびプログラムに関する。
【背景技術】
【0002】
労働者の不足などに応じて、自動ロジスティックシステムが要望されている。例えば、複数の荷物(物品の一例)を含む物品群を搭載したコンテナ(荷台)から各荷物を取り出す荷降ろし作業の実現は、ロジスティックシステムで共通の問題である。形状が異なるさまざまな物品が、正しくかつ効率的にコンテナから荷降ろしされることが期待される。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-040789号公報
【文献】特開2020-082293号公報
【文献】特開2019-051569号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態は、より効率的な荷降ろしを実現可能な制御装置、制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0005】
実施形態の制御装置は、取得部と、学習部と、決定部と、を備える。取得部は、第1方向に並べられる複数の物品、および、第1方向と異なる第2方向に並べられる複数の物品の少なくとも一方を含む物品群の、第1方向のデプスを表す状態情報を取得する。学習部は、物品群に含まれるいずれかの物品を第1方向または第2方向に移動させる複数の移動動作のうち、状態情報に対して最適な移動動作を決定するための学習モデルを、強化学習により学習する。決定部は、学習された学習モデルを用いて、指定された状態情報に対する移動動作を決定する。
【図面の簡単な説明】
【0006】
【
図1】本実施形態にかかるロボットシステムのブロック図。
【
図3】デプス画像から変換される状態情報の一例を示す図。
【
図8】荷降ろしに失敗した失敗サンプルの例を示す図。
【
図9】類似する状態情報を特定する処理の一例を示す図。
【
図14】本実施形態にかかる制御装置のハードウェア構成図。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、この発明にかかる制御装置の好適な実施形態を詳細に説明する。
【0008】
荷降ろし作業を実現する方法としては、手動で設定したルールに従い荷降ろしを行うルールベースの方法がある。しかしルールベースの方法では、対象となる物品の構造の種類が多数である場合、および、ある物品が他の物品を隠蔽するような場合に、適切にルールを設定できない場合がある。
【0009】
荷降ろし作業での問題としては、物品の衝突および崩壊がある。衝突とは、例えば、荷降ろしの対象とする物品(対象物品)の移動が他の物品により妨げられるため、荷降ろしができないことを示す。崩壊とは、例えば、対象物品を荷降ろしすることにより、他の物品が落下するなど不安定な状態になることを示す。
【0010】
例えば、貪欲法(グリーディ法)は、衝突および崩壊を回避することができる。貪欲法は、物品群から上部の物品を繰り返しピッキングすることにより荷降ろしする方法である。しかし貪欲法は簡単なルールを用いる方法であるため、効率的に荷降ろしできない場合が生じ得る。例えば、上部から物品をピッキングするより横から物品を引き出すほうが短時間で荷降ろしが実行できる場合であっても、横から引き出す動作を最適な動作として採用することができない。
【0011】
本実施形態は、2つの方向に移動させる複数の移動動作から、最適な移動動作を決定する。2つの方向は、例えば、上方にピッキングする方向、および、横に引き出す方向である。本実施形態では、例えば、複数の移動動作から最適な移動動作を決定するための学習モデルが強化学習により学習され、学習された学習モデルを用いて、最適な動作が決定される。これにより、より効率的な荷降ろしを実現可能な制御装置、制御方法およびプログラムを提供することが可能となる。
【0012】
以下では、物品を2つの方向に移動させる機能を有するロボットと、このロボットの動作を制御する制御装置と、を備えるロボットシステムを例に説明する。ロボットシステムは、例えば、物品の荷降ろし作業を含むロジスティックシステムに適用できる。
【0013】
また2つの方向として、物品をピッキングして上方に移動させる動作に対応する上方向(第1方向)と、物品を横から引き出す動作に対応する横方向(第2方向)と、を用いる例を説明する。この場合、ロボットは、例えば、物品を上方にピッキングして移動させる機能と、物品を吸着して引き出して移動させる機能と、を備える。2つの方向はこれらに限られない。例えば、物品を横に押し出す動作に対応する方向が用いられてもよい。この場合、ロボットは、物品を横に押し出す機能を備えればよい。
【0014】
図1は、本実施形態にかかるロボットシステム10の構成の一例を示すブロック図である。
図1に示すように、ロボットシステム10は、制御装置100と、ロボット200と、を備えている。
【0015】
ロボット200は、エンドエフェクタ201と、撮像装置であるカメラ202と、を少なくとも備えている。エンドエフェクタ201は、物品を移動するために用いられる。
【0016】
カメラ202は、物品の画像を撮像する。カメラ202は、デプス画像(深度画像)を生成するカメラであってもよいし、RGB画像を生成するカメラであってもよい。カメラ202の代わりに、デプス画像を生成する距離センサ等が用いられてもよい。カメラ202は、ロボット200の外部に備えられてもよい。以下では、カメラ202がデプス画像を生成して出力する場合を例に説明する。
【0017】
制御装置100は、ロボット200の動作を制御する装置である。制御装置100は、ロボット200と、例えば、シリアルケーブル、および、LAN(Local Area Network)などを介して通信可能に接続される。
【0018】
制御装置100は、記憶部121と、取得部101と、学習部102と、決定部103と、制御部104と、を備えている。
【0019】
記憶部121は、制御装置100内の各種処理で用いられる各種情報を記憶する。例えば記憶部121は、取得部101により取得されたデプス画像、および、学習モデルに関する情報を記憶する。記憶部121は、フラッシュメモリ、メモリカード、RAM(Random Access Memory)、HDD(Hard Disk Drive)、および、光ディスクなどの一般的に利用されているあらゆる記憶媒体により構成することができる。
【0020】
取得部101は、荷降ろしの対象となる物品群の状態を示す状態情報を取得する。物品群は、上下方向に並べられる複数の物品、および、横方向に並べられる複数の物品の少なくとも一方を含む。状態情報は、例えば、上下方向のデプス(深度)を表す。
【0021】
例えば取得部101は、まずカメラ202により撮像されたデプス画像をロボット200から取得する。取得部101は、デプス画像を解析することにより、物品群の状態情報を取得する。例えば取得部101は、デプス画像を解析し、物品群の状態情報に変換して出力する。
【0022】
図2は、物品群の一例を示す図である。
図2に示すように、本実施形態では、サイズが異なる2つの物品Aおよび物品Bが、物品群に含まれる物品となる場合を例に説明する。物品Bは立方体形状である。物品Aは、物品Bを2つ重ねた形状に相当する直方体形状である。
図2に示すようなxyz座標系を用いる場合、x軸、y軸、z軸方向のサイズの比率は、物品Aについては1:1:2、物品Bについては1:1:1となる。
【0023】
図2の右上は、物品Aおよび物品Bの1個以上を整列させる、または、重ねることにより得られる物品群の外観の例を示す。このように、物品群は、要素となる物品(物品A、物品B)の個数および並べ方などに応じてさまざまな外観になりうる。
【0024】
図2の右下は、物品群の外観221に対する物品の組み合わせの例を示す。
図2では、2つの物品Aの組み合わせ、4つの物品Bの組み合わせ、および、1つの物品Aと2つの物品Bとの組み合わせにより、外観221が得られる例が示されている。物品群の外観221が得られたとしても、この外観221を構成しうる物品Aおよび物品Bの組み合わせの種類を特定することが困難となる場合がある。
【0025】
図3は、取得部101によりデプス画像から変換される状態情報の一例を示す図である。本実施形態では、
図3に示すように、カメラ202は、上方向(図ではz軸方向の上方)から物品群を撮像してz方向のデプスを示すデプス画像を生成するものとする。
【0026】
取得部101は、入力されたデプス画像を複数のセル(部分領域の一例)に分割する。セルは、例えば、物品Bの一辺と同じ長さとなる正方形である。例えば、取得部101は、デプス画像を3×3=9個のセルに分割する。9個のセルは、x軸およびy軸方向にそれぞれ3個のセルを含むように分割されたセルに相当する。以下では、このような9個のセルに対応する領域に整列された、物品Aおよび物品Bを含みうる物品群を荷降ろしする例を主に説明する。
【0027】
次に取得部101は、セルごとにデプス値を設定する。各セルの中では、デプス値は一定になる。
図3の数値は、対応するセルに設定されたデプス値を表す。そして取得部101は、9個のセルのデプス値を、
図3の矢印に示す順で並べることにより、状態情報を生成する。
図3の例では、“100330100”が状態情報として生成される。なおデプス値を並べる順序はこれに限られない。
【0028】
学習部102は、荷降ろしのために物品を移動させる複数の移動動作のうち最適な移動動作を決定するための学習モデルを学習する。例えば学習モデルは、物品群に含まれるいずれかの物品を2つの方向(上方向、横方向)のいずれかに移動させる複数の移動動作のうち、状態情報に対して最適な移動動作を決定するためのモデルである。学習部102は、このような学習モデルを例えば強化学習により学習する。
【0029】
図4は、移動動作の例を示す図である。
図4は、3×3×3の操作空間での移動動作の例である。操作空間とは、操作(移動動作)の対象となる物品が存在し得る空間を表す。上記のようにデプス画像を9個のセルに分割する例では、xyz軸方向にそれぞれセル3個分に相当する空間が操作空間となる。
【0030】
このような操作空間が与えられると、まずxy平面およびyz平面で、各セルにラベルが付される。この場合の各セルは、各平面をデプス画像と同様に3×3の9個のセルに分割して得られるセルに相当する。
図4の例では、yz平面の9個のセルに0~8のラベルが付され、xy平面の9個のセルに9~17のラベルが付される。
【0031】
18個のラベルは、18種類の動作に対応する。例えばラベル0~8に対応する動作0~8は、対応する位置で横から引き出す動作(Draw)である。ラベル9~17に対応する動作9~17は、対応する位置で上部からピッキング(Pick)する動作である。例えば
図4の動作401は、物品Aを引き出す動作4に相当する。動作402は、物品Bを引き出す動作1に相当する。動作411は、物品Bをピッキングする動作13に相当する。動作412は、物品Aをピッキングする動作16に相当する。
【0032】
本実施形態では、学習部102は、強化学習の一例であるQラーニングによりQテーブルを学習モデルとして学習する。Qラーニングでは、移動動作が行われるごとに、その移動動作を行うことの報酬(価値)を示す値であるQ値が更新される。なお適用可能な強化学習はQラーニングに限られるものではない。
【0033】
図5は、Qテーブルの一例を示す図である。Qテーブルは、物品群が状態情報が示す状態であるときに、ある移動動作を行うことの報酬(価値)を定めた情報と解釈することができる。
図5は、
図3に示すような状態情報および
図4に示すような動作(移動動作)を用いる場合のQテーブルの例である。
【0034】
Qテーブルの各行は、状態情報に対応する。テーブルの各列は、動作0~17に対応する。行および列が交差するセルは、状態情報と動作との組に対するQ値を保持する。3×3×3の操作空間では、デプス画像を分割した9個のセルのデプス値は、0~3の4値を取りうる。従って、状態情報の値の個数は、4
9=262144である。また
図4で説明したように動作は18種類である。従って、
図5のQテーブルでは、状態情報と動作との組の個数は、262144×18である。
【0035】
状態sと動作aとの組に対するQ値をQ(s,a)で表す。報酬rが設定された動作aを実行後に状態sが状態s’に移行し、Qテーブルが更新されると仮定する。Qtは更新前、Qt+1は更新後に対応する。この場合、Q値は、以下の(1)式のように更新される。
Qt+1(s,a)=
Qt(s,a)+α(r+γ×maxaQt(s’,a)-Qt(s,a)) (1)
【0036】
学習率α、および、ディスカウントファクタγはハイパーパラメータである。Qラーニングが進行すると、Q値は、最適な値に収束する。
【0037】
報酬はどのように設定されてもよい。例えば、引き出す動作の方が効率的であるような場合は、ピッキングする動作の報酬がより大きくなるように設定されてもよい。例えば、ピッキングする動作の成功、引き出す動作の成功、および、動作の失敗の場合に、それぞれ+20、+30、および、-100となるように報酬rが設定されてもよい。
【0038】
決定部103は、学習された学習モデルを用いて、指定された状態情報に対する移動動作を決定する。例えば決定部103は、学習済みのQテーブルを参照し、指定された状態情報に対応する移動動作(動作0~17)のうち、Q値が最も大きい移動動作を、最適な移動動作として決定する。
【0039】
制御部104は、ロボット200の動作を制御する。例えば制御部104は、決定部103により決定された移動動作を行うようにロボット200の動作を制御する。制御部104による制御方法はどのような方法であってもよい。例えば制御部104は、カメラ202により得られるデプス画像を参照しながら、決定された移動動作を実現するようにエンドエフェクタ201の動作を制御してもよい。制御部104は、カメラ202とは異なるセンサ(例えば、x軸方向に物品群を撮像する他のカメラなど)からの情報を参照してロボット200の動作を制御してもよい。
【0040】
上記各部(取得部101、学習部102、決定部103、および、制御部104)は、例えば、1または複数のプロセッサにより実現される。例えば上記各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上記各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上記各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
【0041】
次に、このように構成された本実施形態にかかる制御装置100による学習処理について説明する。学習処理は、QラーニングによりQテーブルを学習する処理である。
図6は、本実施形態における学習処理の一例を示すフローチャートである。
【0042】
Qラーニングでは、学習の単位であるエピソードが複数回繰り返し実行される。1つのエピソードでは、操作空間内に1以上の物品が配置され、配置された物品に対する荷降ろし動作が実行される。すべての荷降ろしが完了するか、動作が失敗した場合に、エピソードが終了する。
図6は、1つのエピソードについての学習を示す処理の例である。学習部102は、例えば
図6に示すような学習処理を、Q値が収束したと判断されるまで繰り返し実行する。
【0043】
学習部102は、各エピソードについての初回の処理であるか否かを判定する(ステップS101)。初回の処理である場合(ステップS101:Yes)、学習部102は、Qテーブルを初期化する(ステップS102)。
【0044】
初期化では、Qテーブルの各Q値の初期値が設定される。初期値の設定方法はどのような方法であってもよいが、学習処理をより効率化できるような初期値を設定する方法が望ましい。本実施形態では、上部の物品をピッキングする動作に対するQ値が大きくなるように初期値を設定する方法を適用する。この方法は、上下方向のデプスが他の物品より大きい物品を、デプスがさらに大きくなる方向に移動させる移動動作を、最適な移動動作の初期値として設定することに相当すると解釈することができる。
【0045】
例えば学習部102は、ピッキングする動作に対して固定の報酬に相当する値(例えば上述の+20)を初期値として設定する。なお、与えられた状態情報に対して複数のピッキングする動作が対応づけられる場合は、学習部102は、例えば複数の動作からランダムに選択した動作について初期値を設定する。
【0046】
ピッキングする動作を採用する方法は、貪欲法と同様に衝突および崩壊を回避することができるため、初期値としては効率的である。なおこの初期値の設定方法は一例でありこれに限られるものではない。例えば、すべてのQ値に0を初期値として設定する方法が用いられてもよい。
【0047】
なお初回の処理では、決定部103は、初期値を設定した移動動作を最適な動作として決定する。
【0048】
初回の処理でない場合(ステップS101:No)、および、Qテーブルの初期化の後、制御部104は、決定された移動動作を行うようにロボット200を動作させる(ステップS103)。
【0049】
取得部101は、移動動作の後にカメラ202によって撮像されたデプス画像を解析することにより、状態情報を取得する(ステップS104)。
【0050】
学習部102は、移動動作が失敗したか否かを判定する(ステップS105)。失敗したかの判定方法はどのような方法であってもよい。例えば、実際に荷降ろし動作を実行して衝突または崩壊などの異常が生じた場合に、ユーザが失敗したことを示す情報を制御装置100に入力し、学習部102がこの情報を参照して判定する方法を用いることができる。学習処理およびロボット200の移動の制御は、コンピュータシミュレーションにより実行されてもよい。この場合、コンピュータシミュレーションの機能の1つとして、動作の失敗を判定する機能が実現されてもよい。
【0051】
移動動作に失敗していない場合(ステップS105:No)、学習部102は、実行された移動動作に対応するQテーブルのQ値を更新する(ステップS106)。例えば学習部102は、上記の(1)式に従いQ値を更新する。
【0052】
学習部102は、荷降ろしが完了したか否かを判定する(ステップS107)。例えば学習部102は、ユーザにより荷降ろしの完了を示す情報が入力された場合に、荷降ろしが完了したと判定する。
【0053】
荷降ろしが完了した場合(ステップS107:Yes)、学習部102は、当該エピソードについての学習処理を終了する。荷降ろしが完了していない場合(ステップS107:No)、決定部103は、次の移動動作を決定する(ステップS108)。
【0054】
例えば決定部103は、εグリーディ法に従い、εの確率でランダムに移動動作を決定し、(1-ε)の確率で、ステップS104で取得した状態情報に対する移動動作のうちQ値が最大である移動動作を決定する。その後、ステップS101に戻り処理が繰り返される。
【0055】
ステップS105で移動動作に失敗したと判定された場合(ステップS105:Yes)、学習部102は、失敗した移動動作を決定するときに参照された状態情報(第1状態情報)に類似する状態情報(第2状態情報)を特定し、特定した状態情報を失敗した移動動作を決定するときに参照された状態情報と同一のグループに分類する(ステップS109)。学習部102は、分類したグループに含まれる状態情報のQ値をそれぞれ更新し(ステップS110)、学習処理を終了する。例えば学習部102は、失敗したことを示す報酬(例えば“-100”)を用いて上記の(1)式に従い、グループに含まれる各状態情報のQ値を更新する。
【0056】
類似する状態情報は、失敗した移動動作と同じ動作を行った場合に、同様に失敗する(失敗する可能性が高い)状態情報に相当する。類似する状態情報の特定方法の詳細は後述する。このように、本実施形態では、移動動作が決定された状態情報のみでなく、類似する状態情報のQ値も更新される。これにより、失敗する移動動作が選択されることをより効率的に回避可能となる。その結果、例えば、学習をより早く収束させることができる。
【0057】
次に、このように構成された本実施形態にかかる制御装置100による制御処理について説明する。制御処理は、学習されたQテーブルを用いてロボット200の動作を制御する処理である。
図7は、本実施形態における制御処理の一例を示すフローチャートである。
【0058】
カメラ202は、荷降ろしの対象となる物品群を撮像する(ステップS201)。撮像されたデプス画像は、制御装置100に送信される。取得部101は、撮像されたデプス画像を解析することにより、物品群の状態情報を取得する(ステップS202)。例えば取得部101は、
図3で説明したように、各セルが0~3の値を取りうる9セル分のデプス値を含む状態情報を取得する。
【0059】
決定部103は、取得された状態情報に対する移動動作を、学習済みのQテーブルを参照して決定する(ステップS203)。例えば決定部103は、取得された状態情報に対応するQテーブルの移動動作(動作0~動作17)のうち、Q値が最も大きい移動動作を決定する。制御部104は、決定された移動動作を行うようにロボット200の動作を制御する(ステップS204)。
【0060】
次に、荷降ろしの動作の例を説明する。
図8は、荷降ろしに失敗した失敗サンプルの例を示す図である。失敗サンプルは、例えば物品の衝突および崩壊が生じたサンプルである。失敗サンプル801は、物品の衝突が生じる例である。失敗サンプル802は、崩壊が生じる例である。失敗サンプルが生じたことは、
図6のステップS109で状態情報をグループに分類する処理の開始の条件となる。
【0061】
次に、類似する状態情報を特定し、グループに分類する処理の詳細について説明する。
図9は、類似する状態情報を特定する処理の一例を示す図である。
図9は、
図4の動作401と同様に、物品Aを引き出す動作4により荷降ろしに失敗した例を示す。状態情報901は、この動作を行ったときの状態情報に相当する。
【0062】
学習部102は、状態情報901から、失敗の原因となる物品の配置を求める。例えば
図9の例では、ラベル10のセルに物品が存在せず、ラベル13のセルに物品Bが配置され、ラベル16のセルに物品Aが配置されている。このような配置の場合、他のラベルのセルにどのように物品が配置されていたとしても、動作4を実行すると失敗することが判定できる。すなわち、学習部102は、動作4の失敗の原因として、以下のような物品の配置を特定する。
・ラベル10のセル:物品なし
・ラベル13のセル:1つの物品Bが配置
・ラベル16のセル:1つの物品Aが配置
【0063】
そして学習部102は、この配置を含む、状態情報901以外の状態情報を、類似する状態情報として特定する。状態情報902は、特定される状態情報の例を示す。なお状態情報902の“X”は、0~3の値のうちいずれが設定されてもよいことを示す。すなわち学習部102は、“X0XX1XX2X”の形式で表される状態情報を、類似する状態情報として特定する。学習部102は、特定した状態情報を、失敗した状態情報と同じグループに分類する。
【0064】
類似する状態情報の特定方法はこれに限られない。失敗する、または、失敗する可能性が高いと判定できる他の状態情報を特定する方法であればどのような方法が用いられてもよい。例えば、
図9の例では、物品AおよびBの位置をy方向にずらした以下のような配置P1、P2についても、対応する方向に動作4をずらした動作3、動作5を実行すると失敗すると判定することができる。
(P1)
・ラベル9のセル :物品なし
・ラベル12のセル:1つの物品Bが配置
・ラベル15のセル:1つの物品Aが配置
(P2)
・ラベル11のセル:物品なし
・ラベル14のセル:1つの物品Bが配置
・ラベル17のセル:1つの物品Aが配置
【0065】
従って、学習部102は、配置P1に対応する状態情報“0XX1XX2XX”、および、配置P2に対応する状態情報“XX0XX1XX2”を、類似する状態情報として特定してもよい。この場合のように、Q値を更新する対象となる動作は、失敗した動作に対応する状態情報(状態情報901)、および、類似する状態情報の間で異なりうる。
【0066】
学習部102は、同じグループに分類された状態情報のQ値をそれぞれ更新する(
図6のステップS110)。このように、学習部102は、1つの失敗サンプルを、対応するグループに属するすべての状態情報を更新するために使用することができる。従って、サンプリング効率を改善し、学習をより早く収束させることが可能となる。
【0067】
図10および
図11は、荷降ろし動作の成功率の一例を示す図である。
図10および
図11は、それぞれ、3×3×3の操作空間、および、2×2×2の操作空間に対する図である。
【0068】
図10および
図11は、コンピュータシミュレーションにより、複数のエピソードについて学習処理を繰り返し実行したときの、エピソード数(横軸:Episode)に対する成功率(縦軸:Success rate)の変化を示す。なお横方向の破線は、成功率が0.95である位置を示す。また、
図10および
図11では、左側のグラフ1001、1101が、本実施形態の手法を適用しない従来のQラーニングを行った場合の例を示し、右側のグラフ1002、1102が、本実施形態の手法を適用した場合の例を示す。
【0069】
図10に示すように、本実施形態では、従来のQラーニングと比較して高い成功率を維持できている。
図11に示すように、本実施形態では、従来のQラーニングと比較して、高い成功率をより早期に達成できている。
【0070】
図12および
図13は、学習カーブの例を示す図である。学習カーブは、複数のエピソードについて学習処理を繰り返し実行したときの、報酬(Reward)の変化を示す。
図12および
図13は、それぞれ、3×3×3の操作空間、および、2×2×2の操作空間に対する図である。
【0071】
図12の曲線1201は、本実施形態の学習カーブの例を示す。範囲1202は、複数回の学習処理を実行したときの曲線1201の分散に対応する範囲を示す。直線1211は、物品群から上部の物品を繰り返しピッキングして荷降ろしする貪欲法を用いる場合の学習カーブの例を示す。範囲1212は、複数回の学習処理を実行したときの直線1211の分散に対応する範囲を示す。貪欲法は、簡単なルールを用いる方法であるため、エピソードを繰り返し実行したとしても学習による改善効果は得られず、報酬も一定であると近似することができる。
【0072】
図12に示すように、本実施形態を適用すれば、エピソード数が約2500に達する位置(直線1221)で、より高い報酬を得ることができる荷降ろし動作が利用可能となる。2×2×2の操作空間についても、
図13に示すように、本実施形態を適用すれば、エピソード数が約700に達する位置(直線1321)で、より高い報酬を得ることができる荷降ろし動作が利用可能となる。より高い報酬を得ることは、例えば、より効率的である、横から引き出す動作を採用した荷降ろし動作を実現可能となったことを意味する。
【0073】
このように、本実施形態にかかる制御装置では、2つの方向に移動させる複数の移動動作から最適な移動動作を決定するための学習モデルが強化学習により学習され、学習された学習モデルを用いて、最適な動作が決定される。これにより、より効率的な荷降ろしを実現可能となる。
【0074】
また本実施形態では、荷降ろしの成功率を保証するために、上部の物品をピッキングする動作がより適切な動作として採用されるように初期値を設定する初期化(貪欲法による初期化)が用いられる。これにより、例えば他の物品を隠蔽され見えない物品が存在するような場合であっても、荷降ろし動作が成功する可能性を高めることができる。
【0075】
また本実施形態では、サンプリング効率を改善するために状態情報をグループに分類する処理が実行される。失敗サンプルが、同じグループに含まれるすべての状態情報の更新のために再利用される。これにより、サンプリング効率を改善し、学習をより早く収束させることが可能となる。
【0076】
次に、本実施形態にかかる制御装置のハードウェア構成について
図14を用いて説明する。
図14は、本実施形態にかかる制御装置のハードウェア構成例を示す説明図である。
【0077】
本実施形態にかかる制御装置は、CPU51などの制御装置と、ROM(Read Only Memory)52やRAM53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
【0078】
本実施形態にかかる制御装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
【0079】
本実施形態にかかる制御装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD-ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD-R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【0080】
さらに、本実施形態にかかる制御装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる制御装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【0081】
本実施形態にかかる制御装置で実行されるプログラムは、コンピュータを上述した制御装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【0082】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0083】
10 ロボットシステム
100 制御装置
101 取得部
102 学習部
103 決定部
104 制御部
121 記憶部
200 ロボット
201 エンドエフェクタ
202 カメラ