JP5931685B2 - ロボット協調搬送計画装置、方法、プログラム - Google Patents

ロボット協調搬送計画装置、方法、プログラム Download PDF

Info

Publication number
JP5931685B2
JP5931685B2 JP2012227349A JP2012227349A JP5931685B2 JP 5931685 B2 JP5931685 B2 JP 5931685B2 JP 2012227349 A JP2012227349 A JP 2012227349A JP 2012227349 A JP2012227349 A JP 2012227349A JP 5931685 B2 JP5931685 B2 JP 5931685B2
Authority
JP
Japan
Prior art keywords
robot
article
action
section
trj
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012227349A
Other languages
English (en)
Other versions
JP2014079819A (ja
Inventor
洋 川野
洋 川野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2012227349A priority Critical patent/JP5931685B2/ja
Publication of JP2014079819A publication Critical patent/JP2014079819A/ja
Application granted granted Critical
Publication of JP5931685B2 publication Critical patent/JP5931685B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Manipulator (AREA)

Description

本発明は、ロボット協調搬送計画技術に関し、詳しくは、複数のロボットが協調して移動対象物を開始位置から目標位置まで移動させるための各ロボットの行動計画を求めるロボット協調搬送計画技術に関する。
近年、自律移動ロボットによる物品搬送の研究が活発に行われている。搬送の対象となる物品や搬送を行うロボットの種類もさまざまな中、複数のロボットを協調動作させて効率的な物品搬送を行う技術が求められており盛んに研究が行われている(非特許文献3)。複数のロボットによる効率的な物品の協調搬送を実現するには、複数のロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
このような計画計算を行うための効果的な手法の一つとして、マルコフ決定過程における動的計画法や強化学習の手法があり、さまざまな研究が行われている。
しかしながら、マルコフ決定過程における動的計画法や強化学習を使用してこのような計画を行おうとすると、単体のロボットを使用する場合に比べて複数のロボットを使用する場合には、その計算に要する時間や計算機の記憶容量がロボットの数に対して指数関数的に増大してしまうという問題があり、その主たる原因となるのが、探索計算のためのマルコフ状態空間内の状態数の莫大な増加である。このような問題の解決方法の一つに、たとえば、動的計画法や強化学習を使用した探索計算を行うための状態空間を階層的な構造を使用して構成する方法も考えられている(非特許文献1、非特許文献2)。
Rajbara Makar, Sridhar Mahadevan, Mohammad Ghavamzaden, Hierarchical Multi-Agent Reinforcement Learning, AGENTS’01, pp246-253,2001. Bernhard Hengst, Discovering Hierarchy in Reinforcement Learning with HEXQ, 19th International Conference on Machine Learning, pp.243-250. Natsuki Miyata, Jun Ota, Tamio Arai, and Hajime Asama, Cooperative Transport by Multiple Mobile Robots in Unknown Static Environments Associated With Real-Time Task Assignment , IEEE TRANSACTIONS ON ROBOTICS AND AUTOMATION, VOL.18, NO.5, pp.769-780, OCTOBER 2002.
上記非特許文献1の手法では、階層的状態空間の構成そのものを人間が考案しなければならないという問題がある。上記非特許文献2の手法は、マルコフ状態空間内の状態変数のうち値の変化の頻度の低い変数を最下層として変化頻度の順に階層を構成していく手法であり、単純な問題であれば自動的な階層的状態空間の構成が可能であるが、複雑な問題に対しては自動的に階層的状態空間を構成することは難しく、実用的な問題に適用することが難しい。また、これらの従来技術は、単体のロボットを使用する場合について考慮されたものがほとんどであり、複数のロボットの使用を考慮した効果的な階層モデルの構築方法は提案されていないのが現状である。
このような現状に鑑みて、本発明では、複数のロボットの存在を考慮しつつも、計画計算に必要な計算時間や計算機の記憶容量を低減可能な、ロボット協調搬送計画技術を提供することを目的とする。
本発明であるロボット協調搬送計画技術は次のとおりである。複数のロボットが協調して移動対象物(以下、物品という)を開始位置から目標位置まで移動させるための各ロボットの行動計画を求めるロボット協調搬送計画技術であって、物品の位置を状態変数とし、物品の移動方向を行動変数とする、マルコフ状態遷移モデルに基づき、開始位置から目標位置までの物品の移動経路をなす位置の連鎖(以下、最適経路点列という)を求める物品軌道計算処理と、最適経路点列に含まれる各位置を定義域とする物品の位置と、少なくとも各ロボットの取り得る行動の上記複数のロボット全てについての和集合に含まれる各行動を取り得る理想的なロボット(以下、理想ロボットという)の位置と、の組を状態変数とし、当該理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、最適経路点列に含まれる各位置に物品があるときに当該理想ロボットが取る行動(以下、最適行動列という)を決定して、最適経路点列のうち一つの理想ロボットが物品を移動させることのできる区間に最適経路点列を区分する位置(以下、ロボット切り替え位置という)と、最適行動列を分割して当該理想ロボットが各切り替え位置により区分された各区間に対応する行動列(以下、第1区間最適行動列という)とを、求める切り替え位置決定処理と、ロボット切り替え位置に応じて取り得る区間ごとに、当該区間に含まれる各位置を定義域とする物品の位置と、理想ロボットであって当該区間にて物品の搬送を担当していない理想ロボット(以下、第2理想ロボットという)の位置と、の組を状態変数とし、当該第2理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、当該区間よりも後の区間において物品を移動させることが可能な位置まで第2理想ロボットが移動するために、当該区間において第2理想ロボットが取るべき行動の系列(以下、第2区間最適行動列という)を求める移動経路計画処理と、各ロボットに、ロボット相互間で矛盾が無いように、第1区間最適行動列と第2区間最適行動列を割り当てるスケジューリング処理とを含む。
スケジューリング処理では、ロボット切り替え位置に応じて取り得る区間ごとに、当該区間の始点位置を定義域とする物品の位置と、当該区間に含まれる各位置にて物品を押せるかもしくは各位置まで物品を押してきた位置を定義域とする各ロボットの位置と、各ロボットが当該区間の直前の区間における行動を識別するための情報と、の組を状態変数とし、各ロボットが物品を移動させる行動あるいは物品を移動させることが可能な位置までの移動あるいは待機行動を行動変数とする、マルコフ状態遷移モデルに基づき、当該状態変数に含まれる各変数に対応する各ロボットの行動を決定し、最適経路点列の最初から順に各変数に対応する行動を各ロボットに割り当てることによって、各ロボットに第1区間最適行動列と第2区間最適行動列を割り当てるようにしてもよい。
また、切り替え位置決定処理では、ロボット切り替え位置を、さらに、複数のロボットに含まれる一つのロボットが物品を移動させることのできる区間に区分する位置で書き換えたものを、ロボット切り替え位置としてもよい。
また、移動経路計画処理では、各区間において、同じ位置で待機している、上記複数のロボットに含まれるロボットが、当該区間において移動させられている物品との衝突を回避するための行動も求めるようにしてもよい。
本発明に拠れば、詳しくは後述するが、マルコフ状態空間を階層的に構成し(物品軌道計算処理を第1階層、切り替え位置決定処理を第2階層、移動経路計画処理を第3階層とする)、動作計画の探索を変化頻度の低い階層(第1階層)から行い、そして、変化頻度の低い階層での探索計算の結果を使用して、変化頻度の高い階層における探索の範囲を限定し、限られた状態空間において変化頻度の高い下位の階層(第2階層、第3階層)における探索を行う。つまり、階層化によって階層が増えるに従い空間に含まれる変数が増えていくが、本発明によると各変数の定義域が狭められていく。このため、動作計画の計算に必要な計算時間や計算機の記憶容量を低減可能となっている。
ロボットの移動方向と物品搬送可能方向を例示する図。 搬送される物品の形状例と、物品を移動方向に移動させるための必要条件となるロボットの位置を説明するための図。 複数のロボットによる物品搬送任務の環境を例示する図。 搬送計画装置の機能構成例を示す図。 物品軌道計算部の機能構成例を示す図。 切り替え位置決定部の機能構成例を示す図。 移動経路計算部の機能構成例を示す図。
[問題設定]
複数のロボットが協調して移動対象物を開始位置から目標位置まで搬送する任務は、例えば図3に例示するような壁で区切られた部屋にある物品(移動対象物)を開始位置から目標位置まで複数のロボットの協調行動によって搬送するものである。任務を行うロボットは、p台(p≧2)であり、各々のロボットは、物品を二次元平面におけるY軸方向(この例では、図面の紙面上下方向)にのみ押して動かすことができるロボット(図1(a)参照)、または、物品を二次元平面におけるX軸方向(この例では、図面の紙面左右方向)にのみ押して動かすことができるロボット(図1(b)参照)、または、物品を二次元平面におけるX-Y軸方向(この例では、図面の紙面上下左右の四方向)に押して動かすことができるロボット(図1(c)参照)のいずれかであるとする。なお、各ロボットは、二次元平面におけるX-Y軸方向(この例では、図面の紙面上下左右の四方向)に移動可能とする。
また、本発明を具体的に説明する観点から物品の平面図での形状は、例えば図2に示すように、複数の正方形のブロックが組み合わさった形状をしているものと仮定する。物品の位置は、物品を構成するブロックのうちのいずれか一つの格子位置(物品位置基準点)によって定義される。本実施形態では、図2に示すように、物品を構成するブロックのうち左下端のブロックを物品位置基準点とする。
このような問題設定において、物品を目標位置に適切に移動させるには、ロボット同士の協調動作が不可欠であり、かつ障害物が存在しているので、どのようなタイミングで、どのロボットを「物品を押すことが可能な位置」に移動させておくか、を正確に計画しなければならない。
それぞれのロボットは、移動しようとする方向に障害物がある場合、もしくは物品を押そうとする方向に障害物がある場合に物品をその方向に押そうとした場合には、静止をするものと仮定する。複数のロボットは同一の位置に存在可能であると仮定し、ロボット同士の衝突はないものとする。
それぞれのロボットi(iはロボット番号を表す)の初期位置を(Xri0,Yri0)、物品の開始位置を(Xb0,Yb0)、物品の搬送先の目標位置を(Xbe,Ybe)とするとき、本問題は、初期位置に配置されたロボットが、物品を開始位置から目標位置まで移動させるための行動計画を求めることと定義できる。
このような問題に対して単純にマルコフ状態遷移モデルを適用しようとする場合、マルコフ状態空間は、iをロボット番号としたとき、ロボットiの位置(Xri,Yri)、ロボットiの行動di、物品の位置(Xb,Yb)によって構成される。各状態(ロボットの位置と行動、物品の位置)は離散値で表現される。部屋をX,Yの直交座標系からなる2次元平面で表すと、X軸、Y軸をそれぞれ離散化表現した値により各位置を表現する。つまり、図3のように部屋(2次元平面)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
また、行動主体は部屋に配置されている各ロボットとなる。ロボットi(iはロボット番号)の行動hiは、静止、上下左右方向への1格子分の移動、の計5種類のうちのいずれかを取る。例えば、hi∈{0,1,2,3,4}として、
0: 静止
1: 二次元平面上で右方向に1格子だけ移動する
2: 二次元平面上で上方向に1格子だけ移動する
3: 二次元平面上で左方向に1格子だけ移動する
4: 二次元平面上で下方向に1格子だけ移動する
とする。
このような任務環境におけるマルコフ状態空間は、物品数×2+ロボット数×2の次元数の状態を持ち、かつ選択可能な行動数は、ロボットの行動(=5通り)のロボット数乗だけ存在する。例えば、物品数が1、ロボット数が2で、部屋の縦横方向の格子数がそれぞれ10であるとすれば状態数は10×10×10×10×10×10=1000000にもなり、探索計算に要する資源の量は膨大なものとなる。さらにロボット数が1台増えるごとに、その状態数は100倍増加していくことになり、複数ロボットを使用する場合の大きな問題となっている。
また、このような問題において上記非特許文献2にあるHEXQのような手法を適用すると、値の変化の頻度が低い物品位置の変数(Xb,Yb)を最上位の階層の状態空間を構成する変数とし、変化の頻度の高いロボットの位置の変数(Xri,Yri)を下層の階層の状態空間を構成する変数として階層化されることになる。しかし、物品位置が変化することでロボットの動作可能な範囲は刻々と変化する。そのような場合、HEXQによれば最下層から探索を行うこととなるのだが、最下層においてロボットの動作計画をした場合に、刻々と変化する物品位置変数の値を考慮しないで探索を行っても不適切な結果しか得られないのは明白である。このように、最下層においても上位の階層の変数を考慮しなければならない、もしくは逆のケースも発生することが多いのが一般的な探索の問題である。或る変数は、最上位の階層にも含まれうるし、最下位の階層にも含まれうるのであり、単純に変数を各階層に割り振ることは容易ではない。
[本発明における行動の扱いについて]
本来、物品の移動は、物品とは離れた位置にあるロボットが、物品を押すことのできる適切な位置まで移動した後に、「押す動作」を行うことで実現される。それを完璧に考慮するためには、物品位置(Xb,Yb)とその周囲に存在する各ロボットi位置(Xri,Yri)との相対的な位置関係を、障害物の存在も含めて考慮しなければならない。しかし、それをはじめからすべて考慮することは、探索計算の効率上適切ではない。そこで、本発明では、階層的に、ロボットの物品周りでの行動範囲を広げて考慮していく方法を採用する。以下、物品周りでの行動範囲を制限されたロボットを仮想ロボットとも呼ぶことにし、それぞれの階層にて仮想ロボットが物品を押すという前提で探索計算を行っていく。
まず、第1階層(物品軌道計算処理)においては、行動主体を物品とし、物品が自分で移動するかのように扱う。つまり、第1階層では、物品と仮想ロボットの位置関係のうち、仮想ロボットが物品を押せる位置(仮想ロボットが物品に接し、かつ物品を適切な方向に押せる位置)だけを考慮する。そして、物品が開始位置から目標位置に移動するための最適な移動経路(最適経路点列)を求める。
次に、第2階層(切り替え位置決定処理)では、物品が仮想ロボットvに押されて移動した後、当該仮想ロボットvが引き続き次の物品移動をできる位置まで移動可能かを考慮する。つまり、仮想ロボットvが物品に接してはいるが、指定の方向に物品を押せる場所にはいない場合も考慮され、仮想ロボットvの取りうる行動として「仮想ロボットが物品を押せる位置に至るまでの移動」という行動が含まれる分、最上位階層よりも仮想ロボットvの物品周りでの行動範囲が拡大される。そして、第1階層で求めた物品の最適な移動経路の系列の中で、1台の仮想ロボットvが継続して物品を移動できる区間内の仮想ロボットvの行動と、別のロボットに引き継がざるを得なくなる位置([実施形態の具体例]で後述するロボット切り替え位置)を求める。
さらに、第3階層(移動経路計画処理)では、物品が仮想ロボットvによって何度か移動させられた後に、その移動先にある物品の次の移動を他の仮想ロボットwが実現することが可能な位置まで仮想ロボットwが移動可能かどうかを考慮する。つまり、仮想ロボットwに関して、物品から離れた位置にある状態が考慮される。そして、第1階層で求めた物品の最適な移動経路の系列のうち、1台のロボットが継続して移動可能な区間において、物品が当該区間の終端点に到達したとき(移動は仮想ロボットvが行う)に、仮想ロボットwが次の区間の開始位置に物品を移動させることが可能な位置に到達するための、仮想ロボットwの行動(移動経路)を求める。なお、仮想ロボットvが物品を押している間、仮想ロボットwは、所定の位置で待機しなければならない場合も起こりうるが、その場合に、仮想ロボットwが物品の移動の邪魔にならないように、適切に移動中物品との衝突を回避するための行動も同様に第3階層にて求める。
このように、第1階層、第2階層、第3階層と処理が進むにつれて、仮想ロボット(vまたはw)と、仮想ロボット(vまたはw)が動かそうとしている物品と、の位置的な距離は広がっていく。しかし、第2階層での探索は、物品が第1階層において求められた軌道に沿ってのみ移動することを前提として行われ、第3階層での探索は、第2階層にて求められた単一のロボットで連続して物品が移動させられる区間の中での探索を行うため、探索において考慮しなければならない物品位置の範囲は徐々に狭められていくのである。そして、第2階層では物品を押すロボット(仮想ロボットv)の行動を決定し、第3階層では、仮想ロボットvから引き継いで物品移動を担当するロボット(仮想ロボットw)が、物品を押せる位置に移動するための行動を決定する。最後に、仮想ロボットv及び仮想ロボットwとして求まった行動を、実環境におけるどのロボットがどの順序で行うかをスケジューリング処理で決定する。
[本発明の実施形態の概要]
本実施形態のロボット協調搬送計画装置Aの構成を図4に示す。ロボット協調搬送計画装置Aは、物品軌道計算部100、切り替え位置決定部200、移動経路計画部300、スケジューリング部400を含む。
物品軌道計算部100(第1階層)、切り替え位置決定部200(第2階層)、移動経路計画部(第3階層)では、探索に使用するマルコフ状態空間を構成する変数を以下のようにとる。
物品軌道計算部100(第1階層):
状態変数s1=(Xb,Yb),行動変数a1∈{0,1,2,3,4}
切り替え位置決定部200(第2階層):
状態変数s2=(Xb,Yb,Xr,Yr),行動変数a2∈{0,1,2,3,4}
移動経路計画部(第3階層):
状態変数s3=(Xb,Yb,Xr,Yr),行動変数a3∈{0,1,2,3,4,5}
物品軌道計算部100は、物品位置を表す状態変数s1と、物品の移動方向を表す行動変数a1のみを考慮する。つまり、ここでの行動主体は物品であり、物品軌道計算部100は、あたかも物品が自ら移動するものとして計算を行い、物品を押すロボットの位置は考慮しない。物品の移動方向を表す行動変数は、静止と、上下左右方向への1格子分の移動と、の5種類のいずれかを取れるものとする。物品軌道計算部100は、これらの変数を利用して、(ロボットの位置やロボットが物品を押せる方向を考慮しないで)開始位置から目的位置までの物品移動の位置の連鎖を、最適経路点列(理想軌道)s1_trj=(s1_trj[0], s1_trj[1], …, s1_trj[e])として算出する。
切り替え位置決定部200は、物品位置(Xb,Yb)と仮想ロボットの位置(Xr,Yr)からなる状態変数s2と、仮想ロボットが物品を押す方向を表す行動変数a2を考慮する。ここでの行動主体は、1台の仮想ロボットv(物品を押して移動させるロボット)である。
切り替え位置決定部200では、物品軌道計算部100が求めた最適経路点列s1_trjに含まれる位置すべてが、状態変数s2に含まれる物品位置座標(Xb,Yb)の取りうる範囲となり、それ以外の物品位置は考慮されない。また、仮想ロボットvが物品を押せる方向(行動変数a2の取りうる値)は、実環境における各ロボットが物品を押せる方向の和集合とする。
切り替え位置決定部200は、最適経路点列s1_trjの各位置の中で、仮想ロボットvが継続して移動させることのできる最大範囲を計算する。例えば、s1_trj[5]からs1_trj[6]に物品を移動させたロボットが、さらにs1_trj[7]に物品を移動させるための位置に移動しようとしたときに、移動方向に障害物があって移動できない場合には、他の位置にいる別のロボットに行動を引き継ぐ必要がある。切り替え位置決定部200は、最適経路点列s1_trjの各位置のうち、このように担当ロボットを切り替える必要のある場所([実施形態の具体例]で後述するロボット切り替え位置)を決定する。
移動経路計画部300は、物品位置(Xb,Yb)と仮想ロボット位置(Xr,Yr)からなる状態変数s3と、仮想ロボットの移動方向を表す行動変数a3を考慮する。ここでの行動主体は、物品を押せる位置まで移動する仮想ロボットw(物品を押していないロボット)である。
移動経路計画部300は、s1_trj中の各位置のうち切り替え位置決定部200によって決定された切り替え点で区切られた個々の範囲内の位置座標が、状態変数s3に含まれる物品位置(Xb,Yb)の取りうる範囲となり、それ以外の物品位置は考慮されない。また、仮想ロボットが移動できる方向(行動変数a3の取りうる値)は、a3∈{0,1,2,3,4,5}である。ここで、a3=5は、仮想ロボットwは静止し、物品を押す仮想ロボットvが物品を一回だけ押す(つまり、仮想ロボットwが物品や物品を押すロボットvの移動(行動)を邪魔しないように、静止する)ことを意味する。
移動経路計画部300は、或るロボット(仮想ロボットv)が担当する区間の開始位置から終了位置([実施形態の具体例]で後述するロボット切り替え位置)まで物品を移動を終えたときに、引き続き物品を押せる位置に仮想ロボットwが到達しているように、仮想ロボットwを移動させるための行動系列を決定する。
物品軌道計算処理を上位の階層(第1階層)とし、切り替え位置決定処理、移動経路計画処理の順に、第2階層、第3階層とすると、本発明は、上位の階層(第1階層)で使用する変数を変化頻度の低い変数(物品位置の変数)とし、下位の階層(第3階層)で使用する変数を変化頻度の高い変数(ロボットの位置の変数)とする点では、上記非特許文献2の考え方とほぼ同じといえる。しかし、探索の計算を上記非特許文献2のように変化頻度の高い階層(第3階層)からではなく、変化頻度の低い階層(第1階層)から行う点が異なる。そして、変化頻度の低い階層での探索計算の結果を使用して、変化頻度の高い階層における探索の範囲を限定し、限られた空間(狭い空間)において変化頻度の高い下位の階層における変数の探索を行う。つまり、階層が増えるに従い空間に含まれる変数が増えていくが、その一方で各変数の定義域が狭められていく。
[実施形態の具体例]
以下、各部での探索計算の具体的な処理を叙述する。
[物品軌道計算部;ステップS1]
物品軌道計算部100は、どの物品位置(状態)s1=(Xb,Yb)がどれだけ目標位置に到達しやすい位置であるかを表す価値関数Vπ(s1)を以下のマルコフ状態遷移モデルを利用して動的計画法により求め、開始位置から目標位置までの物品移動の最短経路を示す最適経路点列を出力する。
ここでは、マルコフ状態遷移モデルにおける「環境のとりうる離散的な状態の集合」を物品位置s1i=(Xbi,Ybi)の集合S1={s10,s11,…,s1n-1}とする。例えば、対象とする部屋をX軸方向にM個の区間に区切り、各離散区間のインデックスを0,1,…,M-1とする。同様に、Y軸方向にN個の区間に区切り、各離散区間のインデックスを0,1,…,N-1で表す。そして、各格子の位置をX軸とY軸のインデックス(Xbi,Ybj)で表す(0≦Xbi≦M-1,0≦Ybj≦N-1)。
また、行動主体(物品)が取り得る行動a1をa1∈{0,1,2,3,4}とし、
0: 静止
1: 二次元平面上で右方向に物品が移動
2: 二次元平面上で上方向に物品が移動
3: 二次元平面上で左方向に物品が移動
4: 二次元平面上で下方向に物品が移動
とする。また、a1の取りうる値の集合A1は、A1={0,1,2,3,4}である。
物品軌道計算部100のマルコフ状態空間では、実環境におけるどのロボットが(ロボット1とロボット2のどちらが)物品を押すのかは考慮しない。また、ロボットが物品を押せる位置まで移動するというプロセスも考慮しない。ただし、ロボットが物品を押すために必要な物品周りの位置に障害物があり、物品を押すロボットのためのスペースが確保されていない場合には、ロボットが物品を移動させることは不可能なので、その点のみを考慮する。このような場合とは、例えば、物品を右方向に移動させることを考えた場合、物品に左側に接する位置のすべてが障害物によって占められている場合などである。
状態s1において行動a1∈A1を実行すると、状態(物品位置)は確率的に位置s1’∈S1へ遷移するものとする。その状態遷移確率P1を
P1(s1’|s1,a1)=Pr(s1t+1=s1’|s1t=s1,a1t=a1)
によって表す。tは時刻を表す。そして、各s1,a1,s1’に対する状態遷移確率P(s1’|s1,a1)を次式のように設定する。
ただし、<条件A>は以下の(1)〜(5)のいずれかの条件を満たす場合である。
(1) a1=1 & Xb’=Xb+1 & Yb’=Yb & Judge(s1,a1)=YES
(2) a1=2 & Xb’=Xb & Yb’=Yb+1 & Judge(s1,a1)=YES
(3) a1=3 & Xb’=Xb-1 & Yb’=Yb & Judge(s1,a1)=YES
(4) a1=4 & Xb’=Xb & Yb’=Yb-1 & Judge(s1,a1)=YES
(5) a1=0 & Xb’=Xb & Yb’=Yb & Judge(s1,a1)=YES
ここで、「&」はAND条件を示す。
また、Judge(s1, a1)を次式で与える。
Judge(s1,a1)は、位置s1にある物品が行動a1に従った方向に移動できる場合にはYES、移動できない場合にはNOを返す関数である。実際には、物品が移動するためには、ロボットが物品をその方向に押さなければならないので、物品を押すことが可能な位置にロボットが入るスペースが空いている(障害物がない)ことが必要条件となる。Judge(s1,a1)は、この必要条件を満たすか否かをチェックする関数である。Ready_Pos_k(s1,a1)は、図2に示すように、物品位置s1にある物品を行動a1の示す方向に移動させるための、物品に接するロボットの位置のk個の候補の集合を表す。このうち、障害物に重ならないロボット位置がある(障害物位置に一致しないReady_Pos_k(s1,a1)の要素がある)場合には、位置s1にある物品をロボットが行動a1の示す方向に移動させることができる。そうでない場合には、移動させることができない。
なお、Ready_Pos_k(s1,a1)の候補位置を計算するためには、例えば、物品位置基準点((Xb,Yb)=(0,0))において、行動a1の示す方向に物品を移動させるためのロボットの位置の候補Pos_1(a1), Pos_2(a1), …, Pos_k(a1)を予め記憶しておき、各位置Pos_j(a1) (j=1,2,…,k)とs1の位置座標を要素ごとに足し合わせることで計算できる。Pos_j(a1)=(XPos_j(a1),YPos_j(a1)), s1=(Xb,Yb)であれば、(XPos_j(a1)+Xb,YPos_j(a1)+Yb)を全てのjについて計算すればよい。
上記<条件A>の(1)〜(5)における前半3つの条件は、現在の物品位置s1と物品の移動方向a1の組み合わせと、状態遷移後の物品位置s1’とが整合しているか否かを判定するための条件である。例えば、<条件A>の(1)の場合、a1=1(右方向に物品が移動)かつs1=(Xb,Yb)の場合、状態遷移後の物品位置はs1’=(Xb+1,Yb)となる。それ以外の位置に物品が移動することは有り得ない。
上記式(1)は、現在の物品位置s1と物品の移動方向a1の組み合わせと、状態遷移後の物品位置s1’とが整合していて、かつ、物品を押すことが可能な位置にロボットが入るスペースが空いている(障害物がない)場合には、状態遷移確率を1とする。また、この条件を満たさない状態に遷移することはできないため、状態遷移確率を0とすることを意味している。
また、状態s1において行動a1∈A1を実行し、状態(物品位置)がs1’∈S1へ遷移したとき、環境から行動主体へ与えられる報酬R1を次式で設定する。
物品軌道計算部100は、上記のマルコフ状態空間を用いて、最適な価値関数Vπ1(s1)及び方策π1をダイナミックプログラミング(Dynamic Programming)法により計算する(例えば、三上 貞芳、皆川 雅章 共訳、R.S.Sutton、A.G.Barto 原著「強化学習」森北出版、1998、pp.94-118参照)。
物品軌道計算部100の詳細構成を図5に示す。物品軌道計算部100は、物品軌道計算用状態遷移モデル設定部101、物品軌道計算用価値関数初期化部102、物品軌道計算用方策更新部103、物品軌道計算用価値関数更新部104、物品軌道計算用価値関数収束判定部105、最適経路点列計算部106を含む。
物品軌道計算用状態遷移モデル設定部101は、各物品位置s1と物品の移動方向a1と、状態遷移後の物品位置s1’と、の全ての組み合わせについて、上記式(1)の状態遷移確率と、上記式(2)の報酬とを設定する。
物品軌道計算用価値関数初期化部102は、各s1∈S1についての価値関数Vπ1(s1)の初期値を設定する。初期値としては適当な値を設定すればよいが、本実施形態では、初期値はすべてのs1についてVπ1(s1)=0と設定する。
物品軌道計算用方策更新部103は、すべてのs1∈S1及びa1∈A1の組み合わせについて式(3)を計算し、Vπ1(s1)の値が最大となる行動a1を方策π1(s1)の値に設定する。
ここで、Σは取りうるすべてのs1’についての総和を表し、γは予め定められた0<γ<1.0を満たす定数である。また、式(3)の右辺におけるVπ1(s1)の値は、物品軌道計算用方策更新部103の最初の実行時は物品軌道計算用価値関数初期化部102で設定された初期値が利用され、2回目以降の実行では、以下の物品軌道計算用価値関数更新部104で更新された価値関数の値が用いられる。
物品軌道計算用価値関数更新部104は、各s1∈S1について、式(4)により価値関数Vπ(s1)を更新する。
物品軌道計算用価値関数収束判定部105は、物品軌道計算用価値関数更新部104における更新後のVπ1(s1)の値と更新前のVπ1(s1)との誤差が所定の閾値以下となるまで、上記物品軌道計算用方策更新部103に戻り、方策と価値関数の更新処理を繰り返す。所定の閾値以下となった場合には、価値関数Vπ1(s1)が収束したと判定し、価値関数Vπ1(s1)と方策π1(s1)を最適経路点列計算部106に出力する。
こうして求まった価値関数Vπ1(s1)は、物品位置s1が、どれだけ目標位置に到達しやすい位置であるかを表す指標である。これにより、部屋内の任意の位置から目標位置までの物品移動の最短経路を示す物品位置の系列を求めることができるようになる。
最適経路点列計算部106は、物品軌道計算用価値関数収束判定部105から出力された価値関数Vπ1(s1)と方策π1(s1)を用いて、開始位置から目標位置までの最短経路となる物品位置の系列(最適経路点列)を算出する。例えば、開始位置をs1_trj[0]∈S1とした場合、π1(s1_trj[0])の値が指す物品の移動を行い、位置s1_trj[1]∈S1に移動する。続いてs1_trj[1]にてπ1(s1_trj[1])の値が指す物品の移動を行い位置s1_trj[2]に移動する。これを目標位置s1_trj[e]∈S1に到達するまで繰り返すことで、開始位置から目標位置に至る物品の最短経路に含まれる途中点の点列(最適経路点列):s1_trj=(s1_trj[0], s1_trj[1], …, s1_trj[e])を求める(s1_trj[n]=(Xb_trj[n],Yb_trj[n]) (n=0, 1, …, e))。また、このときの物品の移動方向を示す点列a1_trj=(a1_trj[0], a1_trj[1], …, a1_trj[e])=(π1(a1_trj[0]), π1(a1_trj[1]), …, π1(a1_trj[e])を求める。そして、最適経路点列計算部106は、最適経路点列s1_trjと移動方向の系列a1_trjを出力する。
[切り替え位置決定部;ステップS2]
切り替え位置決定部200は、最適経路点列s1_trj=(s1_trj[0], s1_trj[1], …, s1_trj[e])の各位置の中で一台のロボットが継続して押し続けることができる位置がどの区間であるかを、マルコフ状態遷移モデルを利用して動的計画法により計算する。
例えば、一台のロボットが継続してs1_trj[0]からs1_trj[4]までの各位置を経由して物品を移動させることが可能であれば、s1_trj[0], s1_trj[1], s1_trj[2], s1_trj[3], s1_trj[4]の位置については一台のロボットに担当させた方が得策である。逆にたとえばs1_trj[3]からs1_trj[4]に物品を移動させたロボットが、次のs1_trj[5]に物品を移動させるための方向に物品を押せる位置に移動することが障害物によって阻まれている場合、他の位置にいる別のロボットに物品移動を引き継いだ方が得策である。すなわち、切り替え位置決定部200は、最適経路点列s1_trj=(s1_trj[0], s1_trj[1], …, s1_trj[e])の各位置での移動の中で、担当ロボットを切り替える位置(別のロボットに移動を引き継がざるを得ない位置)であるロボット切り替え位置を計算する。
ここでは、マルコフ状態遷移モデルにおける「環境のとりうる離散的な状態の集合」を、最適経路点列s1_trjに含まれる各物品位置(Xb,Yb)とロボットの位置(Xrv,Yrv)の組の取りうる値の集合とする。つまり、s2=(Xb,Yb,Xrv,Yrv)としたとき、(Xb,Yb)∈s1_trjとする。s1_trj以外の物品位置の値は探索にて考慮されない。また、行動主体(ロボット)は、実環境における全てのロボットの行動の集合を取りうる行動とするような仮想ロボット一台のみを考慮する。
上述の問題設定の場合は、
ロボット1…Y軸(上下)方向に物品を押す、または、静止
ロボット2…X軸(左右)方向へ物品を押す、または、静止
の行動をとることができるので、切り替え位置決定部200における行動主体(ロボット)は、上下左右の4方向すべてに物品を押せるとする。行動主体(ロボット)が取り得る行動a2をa2∈{0,1,2,3,4}とし、
0: 静止
1: 二次元平面上で右方向にロボットが移動
2: 二次元平面上で上方向にロボットが移動
3: 二次元平面上で左方向にロボットが移動
4: 二次元平面上で下方向にロボットが移動
とする。また、a2の取りうる値の集合A2をA2={0,1,2,3,4}とする。
状態s2∈S2において行動a2∈A2を実行したとき、状態s2’∈S2へ遷移する状態遷移確率を
P2(s2’|s2,a2)=Pr(s2t+1=s2’|s2t=s2,a2t=a2)
とし、各s2, a2, s2’に対する状態遷移確率P2(s2’|s2,a2)を次式のように設定する。
ただし、<条件B>は下記(1)〜(6)のいずれかを満たす場合である。
(1) Xb=Xb’ & Yb=Yb’& a2=1 & Xrv’=Xrv+1 & Yrv’=Yrv
(2) Xb=Xb’ & Yb=Yb’& a2=2 & Xrv’=Xrv & Yrv’=Yrv+1
(3) Xb=Xb’ & Yb=Yb’& a2 =3 & Xrv’=Xrv-1 & Yrv’=Yrv
(4) Xb=Xb’ & Yb=Yb’& a2 =4 & Xrv’=Xrv & Yrv’=Yrv-1
(5) Xb=Xb’ & Yb=Yb’& a2=0 & Xrv’=Xrv & Yrv’=Yrv
(6) (Xb,Yb)=s1_trj[l+1] & (Xb’,Yb’)=s1_trj[l+2] & a2=a1_trj[l+1] & (Xrv,Yrv)=Ready_Pos_k(s1_trj[l+1],a1_trj[l+1]) && (Xrv’,Yrv’)=a1_trj[l+1]により移動した後の位置
また、状態s2∈S2において行動a2∈A2を実行し、状態(物品位置)がs2’∈S2へ遷移したとき、環境から行動主体へ与えられる報酬R2を次式で設定する。
以上のように定義されたP2(s2’|s2,a2)とR2(s2’,s2,a2)を使用して動的計画法にて方策π2(s2)を求めると、π2(s2)は、物品が位置s1_trj[l+1]にあるときに、物品を位置s1_trj[l+1]から位置s1_trj[l+2]に移動させるための行動a1_trj[l+1]を取れる位置の集合(Ready_Pos_k(s1_trj[l+1],a1_trj[l+1]))のうちの少なくとも一箇所に仮想ロボットが到達するための、仮想ロボットvの行動方策(移動のための方策)となる。すなわち、s2=(Xb_trj[l+1],Yb_trj[l+1],Xrv,Yrv)における価値関数値Vπ2(s2)の値が0以上の場合、状態s2が示す位置(Xrv,Yrv)にある仮想ロボットvは、状態s2が示す物品位置s1_trjl+1=(Xb_trj[l+1],Yb_trj[l+1])にある物品を次の位置に押すことが可能な位置(Ready_Pos_k(s1_trj[l+1],a1_trj[l+1])のいずれかの位置)に移動することが可能であることを示す。また、その時の移動は、π2(s2)が示す行動変数の値に従えばよい。
ここで今、位置Ready_Pos_k(s1_trj[l],a1_trj[l])にあったロボットが位置s1_trj[l]にある物品を行動a1_trj[l]の指す方向に押してロボット自身も移動したときに到達するはずの位置は最大K個存在し、それらのうち、障害物に重ならない位置は、Ready_Pos_k(s1_trj[l+1],a1_trj[l])=(Xrl[k],Yrl[k]) (k=0,1,…,K-1)と表現できる。すると、位置s1_trj[l+1]の物品位置において、K個の点s2[k]=(Xb_trj[l+1],Yb_trj[l+1],Xrl[k],Yrl[k]) (ただし、k=0,1,…,K-1、(Xrl[k],Yrl[k])∈Ready_Pos_k(s1_trj[l+1],a1_trj[l])、s2[k]∈S2)における価値関数値Vπ2(s2[k])=Vπ2(Xb_trj[l+1],Yb_trj[l+1],Xrvl[k],Yrvl[k])のうち全ての値が0より大きければ、同じロボットが続けて物品をs1_trj[l+2]に移動させることが可能であり、そうでない場合には物品をs1_trj[l+1]に移動させたロボットは障害物に阻まれてこれ以上物品を動かすことができないので、別のロボットに切り替える必要があることが分かる。
切り替え位置決定部200の詳細構成を図6に示す。切り替え位置決定部200は、切り替え位置決定用状態遷移モデル設定部201、切り替え位置決定用価値関数初期化部202、切り替え位置決定用方策更新部203、切り替え位置決定用価値関数更新部204、切り替え位置決定用価値関数収束判定部205、切り替え位置判定部206、方策分割部207を含む。
切り替え位置決定用状態遷移モデル設定部201は、上記式(5)の状態遷移確率と式(6)の報酬とを設定する。
切り替え位置決定用価値関数初期化部202、切り替え位置決定用方策更新部203、切り替え位置決定用価値関数更新部204、切り替え位置決定用価値関数収束判定部205の各処理は、状態遷移確率と報酬が式(5)と式(6)にそれぞれ置き換わる点を除いては、物品軌道計算部100で説明した処理と同じである。
切り替え位置決定用価値関数初期化部202は、各s2∈S2についての価値関数Vπ2(s2)の初期値を0に設定する。
切り替え位置決定用方策更新部203は、すべてのs2∈S2及びa2∈A2の組み合わせについて次式を計算し、Vπ2(s2)の値が最大となる行動a2を方策π2(s2)の値に設定する。
ここで、Σは取りうるすべてのs2’についての総和を表し、γは予め定められた0<γ<1.0の定数である。また、式(7)におけるVπ2(s2’)の値は、切り替え位置決定用方策更新部203の最初の実行時は切り替え位置決定用価値関数初期化部202で設定された初期値が利用され、2回目以降の実行では、以下の切り替え位置決定用価値関数更新部204で更新された価値関数の値が用いられる。
切り替え位置決定用価値関数更新部204は、各s2∈S2について、次式により価値関数Vπ2(s2)を更新する。
切り替え位置決定用価値関数収束判定部205は、切り替え位置決定用価値関数更新部204における更新後のVπ2(s2)の値と更新前のVπ2(s2)との誤差が所定の閾値以下となるまで、上記切り替え位置決定用方策更新部203に戻り、方策と価値関数の更新処理を繰り返す。所定の閾値以下となった場合には、価値関数Vπ2(s2)が収束したと判定し、切り替え位置決定用価値関数収束判定部205は、価値関数Vπ2(s2)と方策π2(s2)を切り替え位置判定部206に出力する。
切り替え位置判定部206は、上記価値関数を用いて、各l=0,1,…,eについて次式を計算する。
ここで、lは、最適経路点列s1_trjのインデックスである。Partition[l]の値が0のとき、s1_trj[l]にある物品をs1_trj[l+1]に移動したのち、担当ロボットを変更しなければならないことを示す。
なお、これまでの処理ではロボットは全ての方向に物品を押すことが可能な仮想ロボットを想定して計算を行った。しかし、実環境におけるロボットが物品を移動させることが可能な方向が制限されている場合がある(例えば、本実施形態の設定では各ロボットは、図1に示す物品の移動方向に制限されている)。実環境におけるロボットの、物品を移動させることが可能な方向が制限されている場合は、上記Partition[l]を求めた後、さらに以下の処理を行う。
まず、l=0とし、Partition[0]の値が示す物品の移動方向に、物品を押すことが可能な実環境におけるロボットを1つ選択する。ここでは、ロボットiが選択されたとする。次に、lの値を一つ増やし(l←l+1とする)、Partition[l]が指す物品の移動方向が、Partition[0]で選択したロボットiが可能とする物品移動方向の集合の中に含まれる場合のみ、ロボットiが物品の移動を継続可能であるのでPartition[l]の値を変更しない。そうでない場合は、ロボットを切り替える必要があるので、Partition[l]=0に更新する。これを、l=2,3, …,eについて順に繰り返すことで、Partition[l]の値を更新する。こうして求められたPartition[l]の値は、1台のロボットが継続して押すことのできる区間を示す。つまり、Partition[l]=0で区切られた区間が1台のロボットが継続して押すことのできる区間である。以下では、各区間の開始点のインデックスの値をp0, p1, p2, …, pfとする。なお、区間の開始点とは、l=0、および、Partition[l]=0となるlの値である。
例えば、
Partition[0]=1,
Partition[1]=1,
Partition[2]=0,
Partition[3]=2,
Partition[4]=2,
Partition[5]=3,
Partition[6]=0,
Partition[7]=4,
Partition[8]=5, …
の場合、区間の端点をp0=0, p1=2, p2=6である。
方策分割部207は、上述の如く求められた方策π2(s2)を、切り替え位置判定部206が求めた区間ごとに分割する。方策分割部207は、取りうるpm, pnの組み合わせ(pm, pn∈{p0, p1, p2, …, pf},pm< pn)毎に、方策π2(s2)を分割して、π2[pm][pn](s2)とする。π2[pm][pn](s2)は、方策π2(s2)のうち区間[pm,pn]の最適経路点列s1_trjに対応するものであり、物品の移動を担当するロボットが、位置s1_trj[pm+1]からs1_trj[pn+1]まで物品を継続して動かすための行動方策を表す。なお、切り替え位置決定部206では、仮想ロボットの移動が実ロボットと同じ行動として扱われているので、計算された方策π2[pm][pn](s2)が、そのまま実環境において物品移動を担当するロボットの行動方策となる。
[移動経路計画部;ステップS3]
移動経路計画部300においては、第2階層で計算された各区間内での物品位置及び部屋内全域のロボット位置に探索区域が限定される。すなわち、担当ロボットの切り替え時における次担当ロボットの誘導についての行動方策を、マルコフ状態遷移モデルを利用した動的計画法により計算する。切り替えを行う担当ロボット以外のロボットは、同時に行われる連続物品移動を行っているか、もしくは物品との衝突を避けつつ待機しているものとして扱われる。
移動経路計画部300は、物品の理想軌道s1_trjの系列うち、切り替え位置決定部206で計算されたPartition[l]の値が0となるインデックス(lの値)で区切られた各区間について、先の区間を担当するロボットが、先の区間の初期位置にある物品を押せる位置まで移動するための行動方策を計算する。また、物品を押す行動を終えた後、そのまま同じ位置で待機しているロボットzが、ロボットvによって押されている物品との衝突を回避するための行動方策の計算も行う。
まず、時間的に後の区間を担当するロボットが、時間的に後の区間の初期位置にある物品を押せる位置まで移動するための行動方策の計算について説明する。ここでは、他のロボットvが区間[pm,pm+1]の物品の移動をしている間に、仮想ロボットwが[pm,pm+1]よりも時間的に後の区間(pnから始まる区間)における物品を押すことが可能な位置まで移動するために、仮想ロボットwが区間[ps,pn]において取るべき行動の系列(行動方策π3[pm][ps][pn](s3))を計算する。言い換えれば、s1_trj[pm+1]からs1_trj[pm+1+1]まで仮想ロボットvが物品を移動させている間に、s1_trj[ps+1]まで物品を押して移動させた後待機している仮想ロボットwが、s1_trj[pn+1]にある物品をs1_trj[pn+2]に移動させることが可能な位置まで移動するために、仮想ロボットwが取るべき行動の系列を計算する。ここで、pm, ps, pn∈{p0, p1, p2, …, pf},ps≦pm, ps<pn,pm+1≦pnである。
例えば、pm=2, ps=1, pn=5とすると、π3[2][1][5](s3)は、仮想ロボットvが区間[2,3]において物品を移動させている間に、区間[0,1]まで物品を移動させた後待機していた仮想ロボットwが、区間[5,6]における物品移動を行える開始位置まで移動するための行動方策となる。
なお、この設定において、物品移動を担当している仮想ロボットvの移動区間はpmから始まる1区間[pm,pm+1]とすることにより、後で説明するスケジューリング層における状態数を少なくすることができ、効率的にスケジューリングを行うことができるという効果もある。
マルコフ状態遷移モデルにおける「環境のとりうる離散的な状態の集合」をs3=(Xb,Yb,Xrw,Yrw)とし、行動主体(ロボットw)が取りうる行動a3∈{0,1,2,3,4,5}とする(マルコフ連鎖)。行動変数a3=0,1,2,3,4は、行動変数a2と同じくロボットの静止と上下左右方向の移動を表す。a3=5は、「待機」を示す。「待機」と「静止」の違いは、「待機」は物品を移動中の他のロボットの行動を考慮している点である。つまり、a3=5は、他のロボットが物品を移動中であるため、物品の移動が1ステップ分完了するまで待機することを意味する。また、状態変数s3に含まれる物品位置(Xb,Yb)は、
(Xb,Yb)∈{s1_trj[pm+1], s1_trj[pm+2] …, s1_trj[pm+1+1]}
である。
また、状態変数s3に含まれるロボットwの位置(Xrw,Yrw)は、部屋全体を定義域とする。そして、状態変数s3=(s1_trj[l],Xrw,Yrw)∈S3において行動a3∈A3を選択したときに、状態s3’=(s1_trj[l]’,Xrw’,Yrw’)∈S3に遷移する状態遷移確率P3[pm][ps][pn]を、以下のように設定する。
ただし、<条件C>は以下のいずれかを満たす場合である。
(1) a3=1 & Xrw’=Xrw+1 & Yrw’=Yrw & s1_trj[l]’=s1_trj[l]
(2) a3=2 & Xrw’=Xrw & Yrw’=Yrw+1 & s1_trj[l]’=s1_trj[l]
(3) a3=3 & Xrw’=Xrw-1 & Yrw’=Yrw & s1_trj[l]’=s1_trj[l]
(4) a3=4 & Xrw’=Xrw & Yrw’=Yrw-1 & s1_trj[l]’=s1_trj[l]
(5) a3=0 & Xrw’=Xrw & Yrw’=Yrw & s1_trj[l]’=s1_trj[l]
(6) a3=5 & Xrw’=Xrw & Yrw’=Yrw & s1_trj[l]’=s1_trj[l+1]
また、このときの報酬R3を以下のように設定する。
以上のように定義されたP3[pm][ps][pn](s3’|s3,a3)とR3[pm][ps][pn](s3’,s3,a3)を使用して動的計画法にて方策π3[pm][ps][pn](s3)を求めると、π3[pm][ps][pn](s3)は、別のロボットが物品をs1_trj[pm+1]からs1_trj[pm+1+1]まで移動させている間に、位置s1_trj[pn+1]にある物品をa1_trj[pn+1]の示す方向に押すことが可能な位置(Ready_Pos_k(s1_trj[pn+1],a1_trj[pn+1])のいずれか)に、仮想ロボットwが到達するための、仮想ロボットwの行動方策(移動のための方策)となる。すなわち、他のロボットが物品を連続移動させる間に、どのタイミングでReady_Pos_k(s1_trj[pn+1],a1_trj[pn+1])のいずれかの位置に行動主体(仮想ロボットw)を移動させるかの動作計画を行うことになる。実際、他のロボットは、ここでは物品とともに動くものとしてしか評価されていない。移動経路計画部300によって、他のロボットとの連携を初めて考慮したロボットの移動が計画されるが、他のロボットの動作は切り替え位置決定部200によって決定されており、他のロボット(物品を移動させるロボット)は物品とともに移動する前提なので、他のロボットの状態を記述する状態変数を移動経路計画部300においては考慮しなくてもよくなっている。つまり、状態変数s3に含まれるロボットの座標(Xrw,Yrw)は、物品を移動させていないロボットで、次の切り替え位置に移動するロボットの座標を扱っている。
以上の処理を、取りうる各pm, ps, pn∈{p0, p1, p2, …, pf},ps≦pm,ps<pn,pm+1<pnについて行い、方策π3[pm][ps][pn](s3)を求める。
次に、s1_trj[ps+1]まで物品を押す行動を終えた後、そのまま同じ位置で待機しているロボットzが、ロボットvに押されて区間[pm,pm+1]を移動している物品との衝突を回避するための行動方策(π3[pm][ps][ps](s3))の計算について説明する。位置s1_trj[pm+1]からs1_trj[pm+1+1])を物品が連続移動するときに、位置s1_trj[ps+1]に物品を押してきた後の位置でロボットzが待機していると、ロボットzが物品移動の邪魔になることがある。その際に、ロボットzは物品移動の妨げとならない位置に一時的に場所を移動する必要がある。方策π3[pm][ps][ps](s3)は、そのためのロボットzの行動(衝突回避行動)を表す。なお、衝突回避行動のための行動方策は、π3[pm][ps][ps](s3)の形で、ロボットzの行先と出発点が同じ(psである)移動のための方策として記述できる。ただし、衝突回避の場合の目標位置は、Ready_Pos_k(s1_trj[ps+1], a1_trj[ps])のいずれかの位置である。
状態遷移確率は式(9)をそのまま使用し(ただし、P3[pm][ps][ps]とする)、報酬は、式(10)の報酬の設定におけるロボットの目標位置をReady_Pos_k(s1_trj[ps+1], a1_trj[ps])に変更したもの、即ち、次式を使用して、動的計画法にて方策π3[pm][ps][ps](s3)を求めればよい。
以上の処理を、取りうる各pm, ps∈{p0, p1, p2, …, pf},ps≦pmについて行い、方策π3[pm][ps][ps](s3)を求める。
移動経路計画部300の詳細構成を図7に示す。移動経路計画部300は、次担当ロボット移動計画用状態遷移モデル設定部301、次担当ロボット移動計画用価値関数初期化部302、次担当ロボット移動計画用方策更新部303、次担当ロボット移動計画用価値関数更新部304、次担当ロボット移動計画用価値関数収束判定部305、衝突回避用状態遷移モデル設定部306、衝突回避用価値関数初期化部307、衝突回避用移動計画用方策更新部308、衝突回避用移動計画用価値関数更新部309、衝突回避用移動計画用価値関数収束判定部310を含む。
次担当ロボット移動計画用状態遷移モデル設定部301は、上記式(9)の状態遷移確率と、式(10)の報酬とを設定する。
次担当ロボット移動計画用価値関数初期化部302、次担当ロボット移動計画用方策更新部303、次担当ロボット移動計画用価値関数更新部304、次担当ロボット移動計画用価値関数収束判定部305の各処理は、状態遷移確率と報酬が式(9)と式(10)にそれぞれ置き換わる点を除いては、物品軌道計算部100の場合と同じである。
次担当ロボット移動計画用価値関数初期化部302は、各s3∈S3についての価値関数Vπ(s3)の初期値を設定する。これは適当な値を設定すればよい。
次担当ロボット移動計画用方策更新部303は、すべてのs3∈S3及びa3∈A3の組み合わせについて次式を計算し、Vπ3[pm][ps][pn](s3)の値が最大となる行動a2を方策π3[pm][ps][pn](s3)の値に設定する。
ここで、Σは取りうるすべてのs3’についての総和を表し、γは予め定められた0<γ<1.0を満たす定数である。また、式(11)におけるVπ3[pm][ps][pn](s3’)の値は、次担当ロボット移動計画用方策更新部303の最初の実行時は次担当ロボット移動計画用価値関数初期化部302で設定された初期値が利用され、2回目以降の実行では、以下の次担当ロボット移動計画用価値関数更新部304で更新された価値関数の値が用いられる。
次担当ロボット移動計画用価値関数更新部304は、各s3∈S3について、次式により価値関数Vπ3[pm][ps][pn](s3)を更新する。
次担当ロボット移動計画用価値関数収束判定部305は、次担当ロボット移動計画用価値関数更新部304による更新後のVπ3[pm][ps][pn](s3)の値と更新前のVπ3[pm][ps][pn](s3)との誤差が所定の閾値以下となるまで、上記次担当ロボット移動計画用方策更新部303に戻り、方策と価値関数の更新処理を繰り返す。所定の閾値以下となった場合には、価値関数Vπ3[pm][ps][pn](s3)が収束したと判定し、価値関数Vπ3[pm][ps][pn](s3)と方策π3[pm][ps][pn](s3)を出力する。
同様に、衝突回避用状態遷移モデル設定部306は、上記式(9)の状態遷移確率と、式(10.2)の報酬とを設定する。
衝突回避用価値関数初期化部307、衝突回避用方策更新部308、衝突回避用価値関数更新部309、衝突回避用価値関数収束判定部310の処理は、Vπ3[pm][ps][pn](s3)がVπ3[pm][ps][ps](s3)に置き換わり、π3[pm][ps][pn](s3)がπ3[pm][ps][ps](s3)に置き換わり、状態遷移確率と報酬が式(9)と式(10.2)にそれぞれ置き換わる点を除いては、次担当ロボット移動計画用価値関数初期化部302、次担当ロボット移動計画用方策更新部303、次担当ロボット移動計画用価値関数更新部304、次担当ロボット移動計画用価値関数収束判定部305の処理と同じであるから説明を略する。
移動経路計画部300においても、マルコフ状態空間で使用している行動値はロボットの移動そのものなので、計算された行動方策π3[pm][ps][pn](s3)は、担当の切り替えが行われる位置にある物品を仮想ロボットが押せる位置まで、仮想ロボットが移動するための行動方策として使用できる。π2[pm][pn](s2)と異なるのは、物品を移動させる他ロボットの行動(a3=5)が定義されていることである。
[変形例]
上記の説明では、移動経路計画部300における行動変数a3の取りうる値は、0〜5の6種類としたが、仮想ロボットwと仮想ロボットvが同時に動く(つまり、仮想ロボットwが物品を1ステップ移動させる行動と、仮想ロボットvが所定方向に移動する行動とが同時に行われる)ことを意味する行動変数(a3=6、7、8、9の4種類をさらに増やした合計10種類として、計算を行ってもよい。ここで、
a3=6:仮想ロボットは右方向へ移動
a3=7:仮想ロボットは左方向へ移動
a3=8:仮想ロボットは上方向へ移動
a3=9:仮想ロボットは下方向へ移動
とする。この場合は上記<条件C>を、上述の(1)〜(6)に以下(7)〜(10)を加えたものに置き換える。
(7) a3=6 & Xrw’=Xrw+1 & Yrw’=Yrw & s1_trj [l]’=s1_trj[l+1]
(8) a3=7 & Xrw’=Xrw & Yrw’=Yrw+1 & s1_trj [l]’=s1_trj[l+1]
(9) a3=8 & Xrw’=Xrw-1 & Yrw’=Yrw & s1_trj [l]’=s1_trj[l+1]
(10) a3=9 & Xrw’=Xrw & Yrw’=Yrw-1 & s1_trj [l]’=s1_trj[l+1]
行動変数a3∈{0,1,2,3,4,5}は、仮想ロボットwまたは物品を押す仮想ロボットvのいずれか一方が移動している、もしくは、両方とも静止していることを示す行動である。これを用いて行動を行った場合、実際にはロボットwとロボットvが並列に(同時に)行動可能な状況にあっても、逐次的に行動を行うような動作計画となるが、状態変数が少ないので移動経路計画部の計算を早く計算を行うことができるという利点がある。
一方、a3∈{0,1,2,3,4,5,6,7,8,9}とした場合は、a3∈{6,7,8,9}により、ロボットwとロボットvとが並列に行う行動も考慮することができる。行動変数が多くなるので移動経路計画部の計算に時間がかかるが、実際に計画される動作に無駄がなく、より適切な(所要時間の短い)行動系列を獲得できるという利点がある。
[スケジューリング部;ステップS4]
以上の処理により、あるロボットiが軌道区間s1_trj[pm+1]からs1_trj[pn+1]に物品を連続移動させるときのロボット動作のための行動方策π2[pm][pn](s2)と、ロボットiがs1_trj_[pm+1]からs1_trj[pm+1+1]に物品を移動させている間に、次の区間を担当するロボットjが切り替え位置(次の区間の先頭位置にある物品を押せる位置)に移動するための次担当ロボットjの行動方策π3[pm][ps][pn](s3)が計算できた。これにより、たとえば、π2[p0][p1](s2)に従ってロボット1が物品を連続移動している間に、π3[p0][p0][p1](s3)に従ってロボット2がs1_trj[p1+1]にある物品をs1_trj[p1+2]に移動可能な位置に移動するとともに、π3[p0][p0][p2](s3)に従ってロボット3がs1_trj[p2+1]にある物品をs1_trj[p2+2]に移動可能な位置に移動し、ロボット1が物品をs1_trj[p1+1]に移動後に、ロボット2が行動方策をπ2[p1][p2](s2)に切り替えて物品を移動させ、その後ロボット3が行動方策をπ2[p2][p3](s2)に切り替えて物品を移動させるという形で、ロボットの協調動作が実現可能である。あとは、これらの行動方策の切り替えとロボットの割り振りのつじつまが合うように、スケジューリング部400において、使用する行動方策とロボット番号の組み合わせを求めればよい。
スケジューリングの方法は、周知のグラフ探索などの技術を用いればよいが、例えば、マルコフ状態空間での動的計画法によってスケジューリングを行うことができる。今、マルコフ状態空間をp個のロボットを使用するとして
s4=(Cb,C1,…,Cp,CA1,…,CAp)
a4=(d1,…,dp)
とする。
ここで、Cbは物品位置であり、その定義域はPartition[l]=0となる区間の端点、つまり、Cb∈{p0, p1, …,pf}である。また、Ci(i=1,2,…,p)はロボットiの位置であるが、実際のロボットのX,Y座標ではなく、ロボットがその位置まで押してきた物品位置(イ)、もしくはこれから押そうとしている物品の位置(ロ)を指し、Cbと同様に端点番号pmで表現される((イ)または(ロ)の位置は、物品の位置が分かれば特定できるため、端点番号でよい)。同じCiの値でも実際のロボットの位置は2通りの場合がありうる。Ciの値の指す物品の位置まで、ロボットがどのような行動をして到達したかにより実際のロボット位置は(イ)か(ロ)のいずれかの値となる。実際のロボット位置を(Xri,Yri)とすれば、(Xri,Yri)∈{Ready_Pos_k(s1_trj[pm+1],a1_trj[pm])∨Ready_Pos_k(s1_trj[pm+1],a1_trj[pm+1])} (m=0,1,…,f) である。ここで、Ready_Pos_k(s1_trj[pm+1],a1_trj[pm])は、区間の始点位置(s1_trj[pm+1])にs1_trj[pm]から物品を押した後のロボットの位置を表し、Ready_Pos_k(s1_trj[pm+1],a1_trj[pm+1])は、区間の終点(s1_trj[pm+1])にある物品をa1_trj[pm+1]の示す方向に押せる位置である。CAiは、これを識別するための情報であり、ロボットiが一ステップ前で実行した行動diが物品押し行動π2であるか、もしくは切り替え移動行動π3であるかを示す識別値をとる。この識別値は、例えば、ブール値(1=物品押し行動π2、0=切替え移動行動π3)である。
di (i=1,…,p)は、ロボットiが選択する行動方策を表す。diの値は、π2の物品押し行動か、π3の移動行動か、もしくは待機を指す値に分かれる。最適経路点列s1_trjにおける区間の始点の個数はf+1なので、di=0,1,…,fまでは、π3の移動か待機を指す(diの値が現在ロボット位置を指すならば待機)。di=f+1のときは、物品押し行動π2の選択を指す。待機行動については、CAi=1の時に選択されたときは、第3層で計算された衝突回避行動π3を行い、CAi=0の時に選択されたときは、何もしない。Cb=pr,Ci=pqのとき、diの値が0,1,…,fの場合はロボットは使用する行動方策としてπ3[pr][pq][pdi](s3)を選択し、diの値がf+1のときは、ロボットは使用する行動方策としてπ2[pr](s2)を選択するが、選択しうるdiの値は、ロボットの状態Ci、CAi及び物品の位置Cbによって制限がある。その制限のルールは以下のとおりである。
(1)Ci=Cb かつ CAi=0のときのみ、di値として物品押し行動π2を選択する値を選択可能である。
(2)CAi=1のときのみ、di値として移動行動π3を選択する値を選択可能である。
(3)待機行動は、いかなる場合でも選択可能である。
制限(1)は、ロボットは物品を押す行動π2を連続で選択できないことを示し、制限(2)は、物品を押した後のロボットのみ移動行動π3を選択可能であることを示す。
以上は単体のロボットに対するdi値の制限であるが、さらに、行動a4全体の制限として、
要素(d1,…,dp)のいずれか一つは物品を押す行動π2でなければならない、
という制限も加わる。
マルコフ状態遷移モデルにおける状態遷移確率は、以下のような条件により定義される。
ただし、<条件D>は以下のいずれかを満たす場合である。
Cb=prとしたときCb’=pr、Ci=pqとしたときCi’=pq’とし、以下のいずれかの条件のとき
[1] di=π2(押し) & r’=r+1 & q’=q+1 & CAi’=1
[2] di=π3(移動) & r’=r+1 & q’=di & CAi’=0
[3] di=π3(待機) & r’=r+1 & q’=q & CAi’=CAi
以上の条件において、[1]は、ロボットが物品押し行動を選択したときには、ロボットと物品の位置はともに一つ先の区間端点に移動し、CAi=1(物品押し行動)に変えることを意味する。[2]は、移動行動を選択したときには、ロボットの位置は行動の示す目標に移動し、物品位置は一つ先の区間端点に移動し、CAi=0(移動行動)に変えることを意味する。[3]は、待機行動によりロボット位置CiとCAiはともに変化せず、物品位置のみ一つ先の区間端点に移動することを示す。
また、状態s4において行動a4∈A4を実行し、状態がs4’∈S4へ遷移したとき、環境から行動主体へ与えられる報酬R4を次式で設定する。
物品が最終区間の開始点(Cb’=pf)に到達し、いずれかのロボットの位置がpfでありかつそこに至った行動が移動行動(CAi’=0)であれば、そのロボットが最終区間にて物品押しを開始できることが確定するので、物品は目標位置に到達できることが分かる。そのときのみ、報酬R4の値を1とし、それ以外の場合は報酬を0とすることを意味する。以上のように定義されたP4(s4’|s4,a4)とR4(s4’,s4,a4)を使用して動的計画法にて方策π4(s4)を求めると、方策π4(s4)は、区間の端点Cbにおいて各ロボットdiが選択する行動方策を示す。これを、Cb=s1_trj[0]から順に、区間の端点に対応する状態変数s4に対する方策π4(s4)を求めることで、各区間の端点(切り替え位置)において各ロボットdiが選択する行動方策が求まる。スケジューリング部400は、これをスケジューリング結果として出力する。
なお、スケジューリング部400の行動方策を求める際には、物品軌道計画部100、切り替え位置決定部200、移動経路計算部300と同様にマルコフモデル決定過程(MDP)での動的計画法を用いてもよいが、MDPの拡張的な手法である準マルコフ決定過程(SMDP)での動的計画法を使用すると、より実環境での所要時間を短縮できるようなスケジューリング結果を得ることができる。SMDPでは、各状態遷移における所要時間の長さを考慮して価値関数を計算する点が、MDPと異なる。
状態s4にて行動a4を選択したときにs4’に状態遷移するための所要時間をτ(s4,s4’,a4)とする。なお、この所要時間はシミュレーション等により求めればよい。
スケジューリング用価値関数初期化部は、各s4∈S4についての価値関数Vπ4(s4)の初期値を0に設定する。
スケジューリング用方策更新部は、すべてのs4∈S4及びa4∈A4の組み合わせについて次式を計算し、Vπ4(s4)の値が最大となる行動a4を方策π4(s4)の値に設定する。
ここで、Σは取りうるすべてのs4’についての総和を表し、γは予め定められた0<γ<1.0を満たす定数である。また、式(13)におけるVπ4(s4’)の値は、スケジューリング用方策更新部の最初の実行時はスケジューリング用価値関数初期化部で設定された初期値が利用され、2回目以降の実行では、以下のスケジューリング用価値関数更新部で更新された価値関数の値が用いられる。
スケジューリング用価値関数更新部は、各s4∈S4について、次式によって価値関数Vπ4(s4)を更新する。
[エラーフィードバック部;ステップS5]
以上に述べたとおり、物品軌道計画部100、切り替え位置決定部200、移動経路計算部300、スケジューリング部400に至るまでの階層的な動作計画計算において、物品軌道計画部100によって決定された条件(最適経路点列)では、それより下の階層(切り替え位置決定部200、移動経路計算部300、スケジューリング部400)での動作計画において適切な解を計算できないことも起こりうる。そのような場合に対処するため、エラーフィードバック部(図示せず)をさらに設け、再計算を行う構成としてもよい。
フィードバック部は、移動経路計算部300で求めた担当ロボットの切り替え動作における価値関数の値を使用する。例えば、価値関数Vπ3[pm][ps][pn](s3)の状態変数s3=(Xb,Yb,Xrw,Yrw)において、(Xb,Yb)=s1_trj[pm+1]かつ(Xrw,Yrw)をロボットwが物品を位置s1_trj[ps]からs1_trj[ps+1]に押した後の位置としたときのVπ3[pm][ps][pn](s3)の値をm<n,s<=mの全てのs、mの組についてチェックし、それらすべての場合においてVπ3[pm][ps][pn](s3)の値が0以上でない場合には、方策π3[pm][ps][pn](s3)に従って、ロボットを適切に担当切り替えさせることは不可能である。すると、物品位置s1_trj[pn+1]での担当ロボット切り替えは、現時点での物品軌道では不可能ということになるので、物品位置s1_trj[pn]からs1_trj[pn+1]までの移動をs1_trj内に含めることは適切ではない。そこで、物品軌道計算部300において、状態遷移確率P1(s1_trj[pn+1]|s1_trj[pn],a1)=0(つまり、いかなる行動a1においてもs1_trj[pn]からs1_trj[pn+1]へ移動しない)とし、P1(s1_trj[pn]|s1_trj[pn],a1)=1(s1_trj[pn-1]に留まる場合の遷移確率を1)とするように、マルコフ状態遷移モデルの状態遷移確率P1の値を変更したうえで再計画を行う。
このように、フィードバック部では、移動経路計算部300で求めた方策π3[pm][ps][pn](s3)に対応する価値関数Vπ3[pm][ps][pn](s3)について、(Xb,Yb)=s1_trj[pm+1]かつ(Xrw,Yrw)をロボットwが物品を位置s1_trj[ps]からs1_trj[ps+1]に押した後の位置としたときのVπ3[pm][ps][pn](s3)の値が0以上でない場合には、第1状態遷移モデル設定部(図示せず)において、
P1(s1_trj[pn+1]|s1_trj[pn],a1)=0
P1(s1_trj[pn]|s1_trj[pn],a1)=1
と変更したうえで、物品軌道計算部100(物品軌道計算用価値関数初期化部から最適経路点列計算部)の処理を行うことにより最適経路点列を更新する。更新された最適経路点列を用いて、切り替え位置決定部200、移動経路計算部300、スケジューリング部400、エラーフィードバック部500の処理を繰り返す。
〔変形例:担当ロボット数の調整〕
上記のように、担当ロボットの切り替えの可、不可を価値関数V3[pm][ps][pn](s3)を使用して判定し、不可の場合には物品軌道計算部300に物品軌道の再計算を要求する代わりに、担当ロボットを追加する構成としてもよい。例えば、物品位置をs1_trj[ps]からs1_trj[ps+1]に押した後の位置に存在するロボットがs1_trj[pn+1]の位置にある物品を押せる位置まで移動ができないのであれば、物品がs1_trj[pm+1]の位置からs1_trj[pm+1+1]の位置に移動する間のいずれかの途中位置にて、任務環境内の価値関数Vπ3[pm][ps][pn](s3)の値を正にできるロボット位置に新しいロボットを追加し、その新しいロボットにs1_trj[pn+1]の位置にある物品を押せる位置まで移動を行わせ、s1_trj[pn+1]から先の物品移動を担当させる。
なお、以上の処理で得られた行動方策を強化学習におけるgreedy行動選択のための行動方策として使用し、学習そのものを効率化することも有効である。
<ロボット協調搬送計画装置のハードウェア構成例>
上述の実施形態に関わるロボット協調搬送計画装置は、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、CPU(Central Processing Unit)〔キャッシュメモリなどを備えていてもよい。〕、メモリであるRAM(Random Access Memory)やROM(Read Only Memory)と、ハードディスクである外部記憶装置、並びにこれらの入力部、出力部、CPU、RAM、ROM、外部記憶装置間のデータのやり取りが可能なように接続するバスなどを備えている。また必要に応じて、各装置に、CD−ROMなどの記憶媒体を読み書きできる装置(ドライブ)などを設けるとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
ロボット協調搬送計画装置の外部記憶装置には、搬送計画のためのプログラム並びにこのプログラムの処理において必要となるデータなどが記憶されている〔外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくなどでもよい。〕。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。以下、データやその格納領域のアドレスなどを記憶する記憶装置を単に「記憶部」と呼ぶことにする。
ロボット協調搬送計画装置では、記憶部に記憶されたプログラムとプログラムの処理に必要なデータが必要に応じてRAMに読み込まれて、CPUで解釈実行・処理される。この結果、CPUが所定の機能(物品軌道計算部、切り替え位置決定部、移動経路計画部、スケジューリング部、エラーフィードバック部)を実現することで搬送計画が実現される。
<補記>
本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (6)

  1. 複数のロボットが協調して移動対象物(以下、物品という)を開始位置から目標位置まで移動させるための各ロボットの行動計画を求めるロボット協調搬送計画装置であって、
    上記物品の位置を状態変数とし、上記物品の移動方向を行動変数とする、マルコフ状態遷移モデルに基づき、上記開始位置から上記目標位置までの上記物品の移動経路をなす位置の連鎖(以下、最適経路点列という)を求める物品軌道計算部と、
    上記最適経路点列に含まれる各位置を定義域とする上記物品の位置と、少なくとも各上記ロボットの取り得る行動の上記複数のロボット全てについての和集合に含まれる各行動を取り得る理想的なロボット(以下、理想ロボットという)の位置と、の組を状態変数とし、当該理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、上記最適経路点列に含まれる各位置に上記物品があるときに当該理想ロボットが取る行動(以下、最適行動列という)を決定して、上記最適経路点列のうち一つの上記理想ロボットが上記物品を移動させることのできる区間に上記最適経路点列を区分する位置(以下、ロボット切り替え位置という)と、上記最適行動列を分割して当該理想ロボットが各切り替え位置により区分された各区間に対応する行動列(以下、第1区間最適行動列という)とを、求める切り替え位置決定部と、
    上記ロボット切り替え位置に応じて取り得る区間ごとに、当該区間に含まれる各位置を定義域とする上記物品の位置と、上記理想ロボットであって当該区間にて上記物品の搬送を担当していないロボット(以下、第2理想ロボットという)の位置と、の組を状態変数とし、当該第2理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、当該区間よりも後の区間において上記物品を移動させることが可能な位置まで上記第2理想ロボットが移動するために、当該区間において上記第2理想ロボットが取るべき行動の系列(以下、第2区間最適行動列という)を求める移動経路計画部と、
    各上記ロボットに、上記第1区間最適行動列と上記第2区間最適行動列を割り当てるスケジューリング部と
    を含むロボット協調搬送計画装置。
  2. 請求項1に記載のロボット協調搬送計画装置であって、
    上記スケジューリング部は、
    上記ロボット切り替え位置に応じて取り得る区間ごとに、当該区間の始点位置を定義域とする上記物品の位置と、当該区間に含まれる各位置にて物品を押せるかもしくは各位置まで物品を押してきた位置を定義域とする各上記ロボットの位置と、各上記ロボットが当該区間の直前の区間における行動を識別するための情報と、の組を状態変数とし、各上記ロボットが上記物品を移動させる行動あるいは上記物品を移動させることが可能な位置までの移動あるいは待機行動を行動変数とする、マルコフ状態遷移モデルに基づき、当該状態変数に含まれる各変数に対応する各上記ロボットの行動を決定し、上記最適経路点列の最初から順に各上記変数に対応する行動を各上記ロボットに割り当てることによって、各上記ロボットに上記第1区間最適行動列と上記第2区間最適行動列を割り当てる
    ことを特徴とするロボット協調搬送計画装置。
  3. 請求項1または請求項2に記載のロボット協調搬送計画装置であって、
    切り替え位置決定部は、
    上記ロボット切り替え位置を、さらに、上記複数のロボットに含まれる一つのロボットが上記物品を移動させることのできる区間に区分する位置で書き換えたものを、上記ロボット切り替え位置とする
    ことを特徴とするロボット協調搬送計画装置。
  4. 請求項1から請求項3のいずれかに記載のロボット協調搬送計画装置であって、
    移動経路計画部は、
    各上記区間において、同じ位置で待機している、上記複数のロボットに含まれるロボットが、当該区間において移動させられている上記物品との衝突を回避するための行動も求める
    ことを特徴とするロボット協調搬送計画装置。
  5. 複数のロボットが協調して移動対象物(以下、物品という)を開始位置から目標位置まで移動させるための各ロボットの行動計画を求めるロボット協調搬送計画方法であって、
    物品軌道計算部が、上記物品の位置を状態変数とし、上記物品の移動方向を行動変数とする、マルコフ状態遷移モデルに基づき、上記開始位置から上記目標位置までの上記物品の移動経路をなす位置の連鎖(以下、最適経路点列という)を求める物品軌道計算ステップと、
    切り替え位置決定部が、上記最適経路点列に含まれる各位置を定義域とする上記物品の位置と、少なくとも各上記ロボットの取り得る行動の上記複数のロボット全てについての和集合に含まれる各行動を取り得る理想的なロボット(以下、理想ロボットという)の位置と、の組を状態変数とし、当該理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、上記最適経路点列に含まれる各位置に上記物品があるときに当該理想ロボットが取る行動(以下、最適行動列という)を決定して、上記最適経路点列のうち一つの上記理想ロボットが上記物品を移動させることのできる区間に上記最適経路点列を区分する位置(以下、ロボット切り替え位置という)と、上記最適行動列を分割して当該理想ロボットが各切り替え位置により区分された各区間に対応する行動列(以下、第1区間最適行動列という)とを、求める切り替え位置決定ステップと、
    移動経路計画部が、上記ロボット切り替え位置に応じて取り得る区間ごとに、当該区間に含まれる各位置を定義域とする上記物品の位置と、上記理想ロボットであって当該区間にて上記物品の搬送を担当していないロボット(以下、第2理想ロボットという)の位置と、の組を状態変数とし、当該第2理想ロボットが取り得る行動を行動変数とする、マルコフ状態遷移モデルに基づき、当該区間よりも後の区間において上記物品を移動させることが可能な位置まで上記第2理想ロボットが移動するために、当該区間において上記第2理想ロボットが取るべき行動の系列(以下、第2区間最適行動列という)を求める移動経路計画ステップと、
    スケジューリング部が、各上記ロボットに、上記第1区間最適行動列と上記第2区間最適行動列を割り当てるスケジューリングステップと
    を含むロボット協調搬送計画方法。
  6. 請求項1から請求項4のいずれかに記載のロボット協調搬送計画装置として、コンピュータを機能させるためのプログラム。
JP2012227349A 2012-10-12 2012-10-12 ロボット協調搬送計画装置、方法、プログラム Active JP5931685B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012227349A JP5931685B2 (ja) 2012-10-12 2012-10-12 ロボット協調搬送計画装置、方法、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012227349A JP5931685B2 (ja) 2012-10-12 2012-10-12 ロボット協調搬送計画装置、方法、プログラム

Publications (2)

Publication Number Publication Date
JP2014079819A JP2014079819A (ja) 2014-05-08
JP5931685B2 true JP5931685B2 (ja) 2016-06-08

Family

ID=50784510

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012227349A Active JP5931685B2 (ja) 2012-10-12 2012-10-12 ロボット協調搬送計画装置、方法、プログラム

Country Status (1)

Country Link
JP (1) JP5931685B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020103675A1 (zh) * 2018-11-23 2020-05-28 苏州科瓴精密机械科技有限公司 机器人控制方法以及机器人***

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6174523B2 (ja) * 2014-06-25 2017-08-02 日本電信電話株式会社 行動制御システム、その方法及びプログラム
JP6216700B2 (ja) * 2014-09-01 2017-10-18 日本電信電話株式会社 行動制御装置、方法及びプログラム
JP6392187B2 (ja) * 2015-01-29 2018-09-19 日本電信電話株式会社 行動制御システム、その方法及びプログラム
JP6516663B2 (ja) * 2015-12-10 2019-05-22 学校法人立命館 機械システムの生産性能評価装置及び機械システムの生産性能評価方法
JP6114421B1 (ja) 2016-02-19 2017-04-12 ファナック株式会社 複数の産業機械の作業分担を学習する機械学習装置,産業機械セル,製造システムおよび機械学習方法
JP6457421B2 (ja) * 2016-04-04 2019-01-23 ファナック株式会社 シミュレーション結果を利用して学習を行う機械学習装置,機械システム,製造システムおよび機械学習方法
CN105739504B (zh) * 2016-04-13 2019-02-01 上海物景智能科技有限公司 一种机器人工作区域的排序方法及排序***
CN108955694A (zh) * 2018-08-15 2018-12-07 北京理工大学 一种面向生存能力增强的多地面单元协同路径规划方法
US10678264B2 (en) * 2018-10-10 2020-06-09 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10816994B2 (en) 2018-10-10 2020-10-27 Midea Group Co., Ltd. Method and system for providing remote robotic control
US10803314B2 (en) 2018-10-10 2020-10-13 Midea Group Co., Ltd. Method and system for providing remote robotic control
CN110658811B (zh) * 2019-09-09 2020-09-18 华南理工大学 基于神经网络的受限移动机器人协同路径跟踪控制方法
CN111443642A (zh) * 2020-04-24 2020-07-24 深圳国信泰富科技有限公司 一种机器人的协同控制***及方法
CN114083539B (zh) * 2021-11-30 2022-06-14 哈尔滨工业大学 一种基于多智能体强化学习的机械臂抗干扰运动规划方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345435A (ja) * 2002-05-24 2003-12-05 Mitsubishi Heavy Ind Ltd ロボットおよびロボットシステム
JP4406436B2 (ja) * 2006-04-26 2010-01-27 日本電信電話株式会社 自律移動ロボットの動作計画方法、自律移動ロボットの動作計画方法を利用した自律移動ロボットの制御方法、自律移動ロボットの動作計画装置、自律移動ロボットの動作計画プログラム及びその記録媒体、自律移動ロボットの制御プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020103675A1 (zh) * 2018-11-23 2020-05-28 苏州科瓴精密机械科技有限公司 机器人控制方法以及机器人***

Also Published As

Publication number Publication date
JP2014079819A (ja) 2014-05-08

Similar Documents

Publication Publication Date Title
JP5931685B2 (ja) ロボット協調搬送計画装置、方法、プログラム
JP5997092B2 (ja) ロボット協調搬送計画装置、方法及びプログラム
De Ryck et al. Automated guided vehicle systems, state-of-the-art control algorithms and techniques
Roy et al. Robot-storage zone assignment strategies in mobile fulfillment systems
CN111149071B (zh) 物品处理协调***和重新定位运输容器的方法
US20220163969A1 (en) Systems and methods for optimizing route plans in an operating environment
Ribino et al. Agent-based simulation study for improving logistic warehouse performance
Ma et al. Multi-robot informative and adaptive planning for persistent environmental monitoring
Viet et al. BoB: an online coverage approach for multi-robot systems
Zacharia et al. AGV routing and motion planning in a flexible manufacturing system using a fuzzy-based genetic algorithm
Sharma et al. Coordination of multi-robot path planning for warehouse application using smart approach for identifying destinations
JP6189784B2 (ja) 行動制御装置、方法及びプログラム
Ventura et al. Finding optimal dwell points for automated guided vehicles in general guide-path layouts
Dong et al. Retrieval scheduling in crane-based 3D automated retrieval and storage systems with shuttles
Dukeman et al. Hybrid mission planning with coalition formation
Ekenna et al. Improved roadmap connection via local learning for sampling based planners
Şenbaşlar et al. RLSS: real-time, decentralized, cooperative, networkless multi-robot trajectory planning using linear spatial separations
Kruusmaa et al. Covering the path space: a casebase analysis for mobile robot path planning
Xin et al. Receding horizon path planning of automated guided vehicles using a time‐space network model
CN112840319B (zh) 通过并行加强来探索未探索的域
Chand et al. A two-tiered global path planning strategy for limited memory mobile robots
CN116625378B (zh) 一种跨区域路径规划方法及***、存储介质
Hussein et al. Hybrid Optimization‐Based Approach for Multiple Intelligent Vehicles Requests Allocation
Wang et al. A partitioning-based approach for robot path planning problems
Xidias On designing near-optimum paths on weighted regions for an intelligent vehicle

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141211

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160426

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160427

R150 Certificate of patent (=grant) or registration of utility model

Ref document number: 5931685

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150