JP2015201068A - 行動制御装置、方法及びプログラム - Google Patents

行動制御装置、方法及びプログラム Download PDF

Info

Publication number
JP2015201068A
JP2015201068A JP2014080002A JP2014080002A JP2015201068A JP 2015201068 A JP2015201068 A JP 2015201068A JP 2014080002 A JP2014080002 A JP 2014080002A JP 2014080002 A JP2014080002 A JP 2014080002A JP 2015201068 A JP2015201068 A JP 2015201068A
Authority
JP
Japan
Prior art keywords
action
control
value
unit
control object
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.)
Granted
Application number
JP2014080002A
Other languages
English (en)
Other versions
JP6189784B2 (ja
Inventor
洋 川野
Hiroshi Kawano
洋 川野
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 JP2014080002A priority Critical patent/JP6189784B2/ja
Publication of JP2015201068A publication Critical patent/JP2015201068A/ja
Application granted granted Critical
Publication of JP6189784B2 publication Critical patent/JP6189784B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
  • Feedback Control In General (AREA)

Abstract

【課題】任意形状の隊列制御を可能にする手法であって、計算負荷が従来よりも低い行動制御技術を提供する。【解決手段】一台のロボットに必要な分だけのマルコフ状態空間を用意し、それを用いて強化学習手法を利用してロボットに学習を行わせる。これにより、任意の隊列形状と、任務環境内の任意の障害物形状に対応した、多数ロボットのための隊列形成アルゴリズムを獲得することができる。すなわち、ロボット数に依存せずにロボット一台分の学習計算負荷での隊列形成アルゴリズム獲得ができる。また、その際に、包摂構造を使用した行動選択、及び、目標位置におけるボイド制御を行う。【選択図】図2

Description

この発明は、複数の制御対象物の行動を制御する技術に関する。例えば、複数のロボットを、開始位置における隊列形成状態から協調して移動させ、障害物を回避させ、目標位置で隊列形成をさせるための各ロボットの行動計画を求めるロボット協調制御技術に関する。
近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている(例えば、非特許文献1参照。)。多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
このような計画計算を行うための効果的な手法の一つとして、マルコフ決定過程における動的計画法や強化学習の手法があり、さまざまな研究が行われている(例えば、非特許文献2参照。)。
M.Shimizu, A.Ishiguro, T.Kawakatsu, Y.Masubuchi, "Coherent Swarming from Local Interaction by Exploiting Molecular Dynamics and Stokesian Dynamics Methods", Proceeaings of the 2003 IEE/RSJ International Conference on intelligent Robots and Systems, Las Veqas, pp.1614-1619, October 2003. Y.Wang, C.W.de Silva, "Multi-Robot Box-pushing: Single-Agent Q-Learning vs. Team Q-Learning", Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems, Beijing, China, pp.3694-3699, October 2006.
しかしながら、非特許文献1の手法では、流体力学的な特性をロボット動作に組み込む手法を用いて群ロボットの動作を制御しており、低い計算負荷での制御を可能にしている利点があるが、任意の形状の隊列形成をすることができるとは限らない。
また、非特許文献2の手法のように、マルコフ決定過程における動的計画法や強化学習を使用してこのような計画を行おうとすると、単体のロボットを使用する場合に比べて複数のロボットを使用する場合には、その計算に要する時間や計算機の記憶容量がロボットの数に対して指数関数的に増大してしまう。その主たる原因となるのが、探索計算のためのマルコフ状態空間内の状態数の莫大な増加である。非特許文献2では、検証された強化学習の手法では、ロボット数の増加に伴い、指数関数的に計算負荷が増加するという、マルコフ状態空間内の爆発問題への解決策は示されていない。
このように、任意形状の隊列制御を可能にする手法であって、計算負荷が低い手法は未だ実現できていない。
このような現状に鑑みて、この発明は、任意形状の隊列制御を可能にする手法であって、計算負荷が従来よりも低い行動制御装置、方法及びプログラムを提供することを目的とする。
この発明の一態様による行動制御装置は、複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御装置であって、制御対象物は、制御対象物がその制御対象物の現在の位置Lにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて行動制御が行われるとして、(1)各制御対象物が目標位置に位置するか判定する位置判定部と、(2)各制御対象物が目標位置に位置しないと判定された場合には、制御対象物が入口位置に向かうことを理想的な状態として各制御対象物の現在の位置に基づいて価値関数を更新し、各制御対象物が移動可能な位置の中で更新後の価値関数の値が最も大きい位置に移動する行動を各制御対象物の行動として決定する目的領域外行動決定部と、(3)各制御対象物が目標位置に位置すると判定された場合には、制御対象物の移動に伴ってその制御対象物と位置が入れ替わる仮想的な存在であるボイドが入口位置に向かうことを理想的な状態としてボイドの現在の位置に基づいて価値関数を更新し、各制御対象物の現在の位置Lに移動可能な位置であるボイド位置の中で更新後の価値関数の値を最大にする行動が位置Lに移動する行動である位置を候補ボイド位置とし、その最大にする行動に対応する更新後の価値関数の値を候補ボイドQ関数値として、候補ボイド位置の中で各制御対象物が移動可能な位置であり候補ボイドQ関数値が最小である位置に移動する行動を各制御対象物の行動として決定する目的領域内行動決定部と、を含む行動割当部と、決定された行動に基づいて各制御対象物の位置を更新する位置更新部と、行動割当部と位置更新部との処理を繰り返し行うように制御する制御部と、を含む。
任意形状の隊列制御が可能となり、計算負荷を従来よりも低くすることができる。
行動制御装置の例を説明するためのブロック図。 学習部の例を説明するためのブロック図。 第i割当部の例を説明するためのブロック図。 目標領域外行動決定部の例を説明するためのブロック図。 目標領域内行動決定部の例を説明するためのブロック図。 スケジューリング部の例を説明するためのブロック図。 この発明の解決する問題を説明するための図。 包摂構造による行動選択を説明するための図。 行動制御方法の学習ステップの例を説明するためのフローチャート。 行動制御方法の行動スケジュールステップの例を説明するためのフローチャート。
[理論的背景]
まず、行動制御装置及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
多数のロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務は、例えば図7に例示するような壁で区切られた部屋においての開始位置から目標位置まで複数のロボットの移動によって実現するものである。
任務を行うロボットは、N台(例えばN≧50)であり、各ロボットは、二次元平面におけるX軸方向及びY軸方向のそれぞれに移動可能とする。すなわち、この例では、各ロボットは、図7の紙面に対して上下左右の四方向に移動可能とする。図7の各格子は、それぞれのロボットの位置を示すものである。各格子にはロボットは一台しか存在することができない。それぞれのロボットは、移動しようとする方向に障害物か他のロボットがある場合には、静止をするものと仮定する。
図7において、Rが記載された格子はロボットが存在する位置を示し、Oが記載された格子は障害物が存在する位置を示し、Fが記載された格子は目標位置を示す。また、太線の破線で囲まれた領域は開始位置を示し、太線で囲まれた領域は後述する入口位置を示す。このように、図7においては、ロボットの開始位置での隊列形状は略長方形であり、目標位置での隊列形状は略星形である。
それぞれのロボットi(iはロボット番号を表す)の初期位置を(Xr0[i],Yr0[i])とし、目標位置を(Xre[i],Yre[i])とするとき、初期位置に配置されたロボットが、目標位置まで移動するための行動計画を求める問題を考える。
このような問題に対して単純にマルコフ状態遷移モデルを適用しようとする場合、マルコフ状態空間は、iをロボット番号としたとき、ロボットiの位置(Xr[i],Yr[i])、ロボットiの行動a[i]によって構成される。各状態(ロボットの位置と行動)は離散値で表現される。部屋をX,Yの直交座標系からなる2次元平面で表すと、X軸、Y軸をそれぞれ離散化表現した値により各位置を表現する。つまり、図7のように部屋(2次元平面)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。上述の通り、図7では、障害物のある格子をOで示している。
また、この例では、制御対象物である行動主体は部屋に配置されている各ロボットとなる。ロボットi(iはロボット番号)の行動a[i]∈D[i]は、静止、上下左右方向への1格子分の移動の計5種類のうちの何れかを取る。すなわち、D[i]∈{0,1,2,3,4}として、各行動は例えば以下のように定義される。
0: 静止
1: 二次元平面上で右方向に1格子だけ移動する
2: 二次元平面上で上方向に1格子だけ移動する
3: 二次元平面上で左方向に1格子だけ移動する
4: 二次元平面上で下方向に1格子だけ移動する
このような任務環境におけるマルコフ状態空間は、ロボット数×2の次元数の状態を持ち、かつ選択可能な行動数は、ロボットの行動(=5通り)のロボット数乗だけ存在する。例えば、ロボット数が50で、部屋の縦横方向の格子数がそれぞれ20であるとすれば状態数は20の100乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらにロボット数が1台増えるごとに、その状態数は400倍増加していくことになり、複数ロボットを使用する場合の大きな問題となっている。
そこで、この発明では、このような状態空間の爆発をさけるために、学習に使用するマルコフ状態空間を、一台分のロボットの状態変数のみで構成することにする。すなわち、状態変数及び行動変数を以下のように定義する。
状態変数L=(Xr,Yr),行動変数a∈{0,1,2,3,4}
N台あるすべてのロボットは、この状態変数を引数とした1個の価値関数Q(L,a)を共有する。すなわち、各時刻ステップにおける価値関数Q(L,a)の更新は、N台の各ロボットが同じ価値関数を各々の経験によって更新する(すなわち、一時刻ステップでN回の更新を行う)。更新式は以下の通りである。
Figure 2015201068
ここで、式(1)におけるαは学習率と呼ばれる予め定められた定数であり0<α<1である。また、式(1)における←は右辺の値で左辺の値を更新することを意味する。
i番目のロボットについて、式(1)及び式(2)の右辺のLにi番目のロボットの位置L[i]を代入し、式(1)及び式(2)のaにi番目のロボットの行動変数a[i]を代入して、式(1)及び式(2)を実行することで価値関数及び方策を更新する。これを、各i=1,2,…,Nについて繰り返す。
行動選択時にも、1個の価値関数Q(L,a)によって導かれる方策関数π(L)を使用して各ロボットが行動選択を行う。言い換えれば、例えばロボットである制御対象物は、制御対象物がその制御対象物の現在の位置Lにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて行動制御が行われるとする。これにより、ロボットの数がどんなに増えても、学習に使用する状態空間の状態数がロボット一台分の状態空間の状態数と同じとなり、状態空間の大きさがロボット数に依存しないことになる。
なお、各ロボットは、それぞれの位置を計測することができ、また隣の位置に他のロボットが存在しているか否か、隣の位置に障害物があるか否かを知ることができるものとする。
このような1個の価値関数Q(L,a)を使用して学習を行った場合に起こる問題を以下に述べる。例えば学習において、各目標位置においてロボットに高い報酬を与えるものとする。まず、Q(L,a)においては、1個のロボットが開始位置からどのような行動を選択していくことで、最短時刻ステップ数で目標位置に到達できるかが記述されているのであるから、π(L)に従う各ロボットは、例えば目標位置へ向かう途中の障害物を回避するときに、障害物の角にあたる同じ位置を通ろうとする傾向がある。すなわち、同じ経路に多数のロボットが殺到し、文字通りの渋滞を引き起こしてしまう。また、目標位置に早めについたロボットがその位置に静止し、後から目標位置に到着しようとするロボットの道をふさいでしまうことも起こりうる。その結果、すべてのロボットが適切に目標位置に到達することが保証できない。それをさけるために、各ロボットの開始位置を考量して、早めに目標位置に到達するロボットには遠めの目標位置を割り振るなどの処理をする方法もあるが、そのためには、各ロボットの位置をロボットの台数分だけマルコフ状態空間に組み込むことが必要となってしまい、ロボット台数が多い場合には、状態空間の深刻な増加を引き起こす。
そこで、このようなことを引き起こさないために、主に2つの方法を提案する。1つ目は包摂構造を使用した行動選択手法であり、2つ目は目標位置におけるボイド制御である。
図8に、包摂構造を使用した行動選択手法の例の概念図を示す。図8の〇の中にsが描かれたモジュール(以下、包摂モジュールとする)は、包摂構造における重要なキーパーツである。包摂モジュールは、上位のモジュールから入力された信号を、下位のモジュールからの信号入力がない限りはそのまま出力する下位のモジュールからの入力があった場合は、上位モジュールからの入力を無視し、下位モジュールの入力を出力する。
各層のモジュールは、Qxth(x=1,2,3,4)モジュールとStopperモジュールで構成される。最下層のQxthモジュールはQ1stモジュール、第二層はQ2ndモジュール、第三層はQ3rd、第四層はQ4thモジュールである。最上層はStayComモジュールで構成される。
Q1stモジュールは、現在のロボットの位置(xr[i],yr[i])を入力値として受け取り、L=(xr[i],yr[i])においてQ(L,a)の値を最大とするaの値をロボットiの行動a[i]の候補として出力する。同様に、Q2ndモジュールは、現在のロボットの位置(xri,yri)を入力値として受け取り、L=(xr[i],yr[i])においてQ(s,a)の値を2番目に大きな値とするaの値をロボットiの行動a[i]の候補として出力する。さらに、Q3rdモジュールは、現在のロボットの位置(xr[i],yr[i])を入力値として受け取り、L=(xr[i],yr[i])においてQ(L,a)の値を3番目に大きな値とするaの値をロボットiの行動a[i]の候補として出力する。同様に、Q4thモジュールは、現在のロボットの位置(xr[i],yr[i])を入力値として受け取り、L=(xr[i],yr[i])においてQ(L,a)の値を4番目に大きな値とするaの値をロボットiの行動a[i]の候補として出力する。
なお、各Qxthモジュールは、出力する行動の候補としてa[i]=0(静止)を含めないものとする。Stopperモジュールは、位置(xr[i],yr[i])に存在するロボットの隣の位置(xr[i]+1,yr[i])、(xr[i],yr[i]+1)、(xr[i]-1,yr[i])、(xr[i],yr[i]-1)に他のロボットが存在しているかどうかをチェックし、入力された値の行動によってロボットが移動する先の位置に、他のロボットが存在している場合には、何も行動値を出力しない。そうでない場合は入力された行動値をそのまま出力する。StayComモジュールは、常に静止行動a[i]=0を出力する。
ここで述べた行動選択方法は、例えば、位置LにおいてQ値を最大にする行動をロボットが選択した場合に、その行動によって移動する先の格子にすでに他のロボットが存在してしまっているときに、ロボットに動作をさせずに静止させるのではなく、最適ではないにしても、次に望ましい行動を選択して、他のロボットに占拠されていない格子に移動する行動をロボットに指示するものである。
これは、ちょうど流体が障害物にぶつかってもそこで静止せずに、障害物をよけつつも主流の方向から遠くずれない方向に流れていく性質を、ロボットに与えるものである。
なお、図8のモジュールが4層(第1〜第4)のレイヤで構成されているのは、この例では静止(a=0)以外でロボットの取りうる行動が4種類(a=1,2,3,4)であるとしているためである。一般には、行動の種類がM個(静止を含む)あれば、図8のモジュールはM-1個のレイヤになる。
次にボイド制御の原理について述べる。まず、各ロボットの目標位置をここに厳密に割り振ることをせず、目標位置全体の集合を、目標隊列エリアGと定義する。すなわち、
(Xre[i],Yre[i])∈G …(3)
として、各ロボットはG内の全ての全ての位置を自由に目標位置とすることができるものとする。つまり、Gをちょうど流体を注ぐ器のようなものとして扱う。すなわち、各ロボットは、Gの境界上にあるどの位置からもGに入ることが可能であるが、一度G内に入ったロボットは、Gを出る行動をとることができないものとする。また、強化学習時における報酬の設定については、Gの境界上に一点だけ入口の点Peを設定し、ロボットがPeからG内に入ったときのみ高報酬であるr=1を与え、それ以外の経験については、すべてr=0を与えるものとする。Peの位置はGの内部であって、Gの境界上であればどこでも構わないが、ロボットの開始位置から近い位置を選ぶのがロボットの動作をスムーズにするうえで効果的である。Peの位置を入口位置と呼ぶ。
G内においては、ロボットの経験をそのまま価値関数Q(L,a)の更新に用いるのではなく、ロボットの行動に伴って動く“ボイド”の動作として扱い、Q(L,a)の更新に用いることにする。ボイドとは、ロボットが位置Lから、L’に遷移したときに同時に、L’からLに遷移する空隙のことである。すなわち、一台のロボットがGの内部に入ったときは、同時に一つのボイドがGの外部に出ていくことになる。Gの入口点としてPeを設定したために、ロボットはPeからGに入る傾向を持つことになるが、同時にボイドは、Peを経由してGから出ていくことになる。すなわち、ボイドがPeからGの外に出ていくときに高報酬を与えられることになる。すると、そうしたボイドの動きを実現するためのロボットの動作は、必然的にPeからG内に入ったのちにPeから離れた点を目指して、G内に分散していく動作となる。以下、そのための、Q値計算と行動選択方法について述べる。G内において、ロボットが位置Lから、L’に遷移したときに、Q値は以下の式(4)により更新される。
Figure 2015201068
Qmax(L)は位置Lにおいて式(1)で定義されるQ関数の最大値である。すなわち、Qmax(L)=maxaQ(L,a)また、γは、学習率と呼ばれるあらかじめ値の定められた定数であり0<γ<1である。また、a-1は行動aの逆方向の行動を表す。aとa-1の関係の一例は以下のようになる。
a=0のとき、a-1=0
a=1のとき、a-1=3
a=2のとき、a-1=4
a=3のとき、a-1=1
a=4のとき、a-1=2
式(4)は、ちょうど通常のQ学習におけるQ(L,a)の更新式である式(1)のLとL’を入れ替えて、時間の流れを逆に扱ったものに等しい。なお、Gの内と外でのQ値の不整合を避けるために、LがGの外部、L’がGの内部の場合には、Qmax(L)の値は0に設定することとする。このようにして更新されたQ値によって導かれる行動方策π(Q値を最大化する行動を返す関数)は、ボイドの最適な行動を返すものとなる。ロボットは、ボイドがそのような行動をとれるように移動を行う。
次にG内での行動選択について述べる。G内においてもGの外部と同様に、包摂構造による行動選択を行うが、Qxthモジュールの動作がGの内部では異なる。G内部では、Qxthモジュールは、まずロボット位置Lの隣の位置(xr[i]+1,yr[i])、(xr[i],yr[i]+1)、(xr[i]-1,yr[i])、(xr[i],yr[i]-1)にある各ボイドについてQ値を最大化する行動が、ボイドを現在のロボット位置に向かわせるようになっているボイドを、候補ボイドとして複数選択する。つづいて、それらの候補ボイドの中から、Qmaxの値をx番目に小さくするものをターゲットボイドとして一つ選択し、選択したターゲットボイドにロボットを向かわせる行動の値を出力する。このようにすることで、ロボットを動かして適切にボイドをPeの位置に誘導し、常に後からGに入ってこようとするロボットに入口を空いた状態に確保することができる。
なお、Qxthモジュールの設計についてはいくつかオプションがあり、例えば、候補ボイドの中からターゲットボイドを選択する手法としてとして、候補ボイドの中からQmaxの値をx番目に大きくするものをターゲットボイドとして一つ選択する手法や、候補ボイドにロボットを向かわせる行動の中から行動番号の小さいものをロボットの行動として出力するなどの色々な方法があり得る。
なお、Gの入口位置を一点に設定しているが、包摂構造による行動選択の効用で、もしPeがロボットによって占拠されている場合には、Pe以外のPe近傍の点からロボットがGに入るようにロボットの行動が制御されるので、Gに入ろうとするロボットがPeの一点に集中して渋滞を起こすことはない。
[行動制御装置及び方法]
図を参照して、行動制御装置及び方法の例について説明する。この行動制御装置及び方法は、複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行うものである。
行動制御装置は、図1に示すように、学習部1、記憶部2及びスケジューリング部3を例えば備えている。
学習部1は、図2に示すように、入力部11、行動割当部12、位置更新部13及び制御部14を例えば備えている。
スケジューリング部3は、図6に示すように、初期状態入力部31、行動割当部32、位置更新部33、目標位置到達判定部34を例えば備えている。
以下では、制御の対象となる制御対象物が、ロボットである場合を例に挙げて説明する。もちろん、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
まず、行動制御装置の学習部1による学習ステップの処理について説明する。学習ステップの処理の流れの例を、図9に示す。
<入力部11>
入力部11には、N台のロボットのそれぞれの初期位置(xr0[i],yr0[i])及び目標位置(Xre[i],Yre[i])が入力される。ここで、i=1,2,…,Nとする。N個の目標位置の集合は、G={(Xre[1],Yre[1]),(Xre[2],Yre[2]),…,(Xre[N],Yre[N])}として記憶部2に記憶される。
N台のロボットのそれぞれについて、入力された初期位置の情報を用いて、i番目のロボットの初期位置L[i]=(xr0[i], yr0[i])を設定し、i番目のロボットの初期位置を記憶部2に記憶する。
なお、目標位置は、所定の入口位置を含むとする。この入口位置についての情報も、入力部11から入力され、記憶部2に記憶されるとする。
<記憶部2>
記憶部2には、位置L及びa∈{0,1,2,3,4}の組み合わせのそれぞれについてのQ関数Q(L,a)、各位置Lについての方策π(L)及びQmax(L)の初期値が記憶されているとする。Lの取りうる範囲は、対象となる二次元平面上の領域内の全ての座標である。これらの初期値はランダムな値を設定すればよい。ただし、Lが障害物位置と合致する場合は、Q(L,a)=0と設定してもよい。π(L)、Qmax(L)についても各Lに関するQ関数の初期値Q(L,a)のうちの最大値を設定すればよい。
各位置Lの報酬r(L)についても、記憶部2に記憶されているとする。各位置Lの報酬r(L)についての情報は、例えば入力部11から入力される。
<行動割当部12>
行動割当部12による行動割当処理は、各ロボットについて順次実行される。行動割当部12は、第1割当部12−1,第i割当部12−i,…,第N割当部12−Nを例えば備えている。
i=1,2,…,Nとして、i番目のロボットについての行動割当処理は、第i割当部12−iが例えば行うとする。第i割当部12−iの構成の例を図3に示す。
≪位置判定部12−i−1≫
位置判定部12−i−1は、記憶部2からi番目のロボットの位置(xr[i],yr[i])を読み込み、読み込んだ位置(xr[i],yr[i])が目的位置の集合G内に含まれるか否かを判定する。言い換えれば、位置判定部12−i−1は、ロボットが目標位置に位置するか判定する(ステップA1)。
位置判定部12−i−1は、位置(xr[i],yr[i])が目的位置の集合G内に含まれない場合は目的領域外行動決定部12−i−2が次の処理を実行し、(xr[i],yr[i])が目的位置の集合G内に含まれる場合は目的領域内行動決定部12−i−3が次の処理を実行するよう制御する。
また、位置判定部12−i−1は、位置(xr[i],yr[i])が目的位置の集合G内に含まれない場合は、目的領域外行動決定部12−i−2から出力される行動値が位置更新部13に入力され、(xr[i],yr[i])が目的位置の集合G内に含まれる場合は、目的領域内行動決定部12−i−3から出力される行動値が位置更新部13に入力されるよう制御する。
≪目的領域外行動決定部12−i−2≫
目的領域外行動決定部12−i−2の構成の例を図4に示す。
目的領域外行動決定部12−i−2は、図8の行動選択手法に基づいて行動を決定するものである。すなわち、目的領域外行動決定部12−i−2は、ロボットが目標位置に位置しないと判定された場合には、ロボットが入口位置に向かうことを理想的な状態としてロボットの現在の位置に基づいて価値関数を更新し、ロボットが移動可能な位置の中で更新後の価値関数の値が最も大きい位置に移動する行動をロボットの行動として決定する(ステップA2)。
〔領域外Q関数更新部12−i−21〕
領域外Q関数更新部12−i−21は、1時間ステップ前のi番目のロボットの位置をL=(xr[i],yr[i])とし、現在のi番目のロボットの位置をL’=(xr’[i],yr’[i])として、記憶部2に記憶されたQ(L,a)とQmax(L’)を参照して、1時間ステップ前のロボットの行動aについて、式(1)によりQ(L,a)を求め、求めたQ(L,a)の値で記憶部2に記憶されたQ(L,a)の値を更新する。また、領域外Q関数更新部12−i−21は、更新前のQ(L,a)の値と更新後のQ(L,a)の値を制御部14へ出力する。
また、領域外Q関数更新部12−i−21は、更新されたQ(L,a)の値を用いて、式(2)により方策π(L)を求め、求めたπ(L)の値で記憶部2に記憶された方策π(L)を更新する。
〔第1領域外行動候補決定部12−i−22〕
第1領域外行動候補決定部は、L=(xr[i],yr[i])として、記憶部2に記憶されたQ(L,1),Q(L,2),Q(L,3),Q(L,4)のうちの最大値をとるaの値を第1領域外行動候補値として出力する。また、最大となるQ関数の値で記憶部2に記憶されたQmax(L)の値を更新する。
〔第1領域外包摂制御部12−i−23〕
第1領域外包摂制御部12−i−23は、第1領域外行動候補決定部12−i−22で決定された第1領域外行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか否かを判定する。
第1領域外包摂制御部12−i−23は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、障害物が存在する場合には、第2領域外行動候補決定部12−i−24が次の処理を実行するよう制御する。
第1領域外包摂制御部12−i−23は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在しない場合には、第1領域外行動候補値を「行動値」として出力する。
〔第2領域外行動候補決定部12−i−24〕
第2領域外行動候補決定部12−i−24は、L=(xr[i], yr[i])として、記憶部2に記憶されたQ(L,1),Q(L,2),Q(L,3),Q(L,4)のうちの2番目に大きな値をとるaの値を第2領域外行動候補値として出力する。
〔第2領域外包摂制御部12−i−25〕
第2領域外包摂制御部12−i−25は、第2領域外行動候補決定部12−i−24で決定された第2領域外行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか否かを判定する。
第2領域外包摂制御部12−i−25は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、障害物が存在する場合には、第3領域外行動候補決定部12−i−26が次の処理を実行するよう制御する。
第2領域外包摂制御部12−i−25は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在しない場合には、第2領域外行動候補値を「行動値」として出力する。
〔第3領域外行動候補決定部12−i−26〕
第3領域外行動候補決定部12−i−26は、L=(xr[i],yr[i])として、記憶部2に記憶されたQ(L,1),Q(L,2),Q(L,3),Q(L,4)のうちの3番目に大きな値をとるaの値を第3領域外行動候補値として出力する。
〔第3領域外包摂制御部12−i−27〕
第3領域外包摂制御部12−i−27は、第3領域外行動候補決定部12−i−26で決定された第3領域外行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか否かを判定する。
第3領域外包摂制御部12−i−27は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、障害物が存在する場合には、第4領域外行動候補決定部12−i−28が次の処理を実行するよう制御する。
第3領域外包摂制御部12−i−27は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在しない場合には、第3領域外行動候補値を「行動値」として出力する。
〔第4領域外行動候補決定部12−i−28〕
第4領域外行動候補決定部12−i−28は、L=(xr[i],yr[i])として、記憶部2に記憶されたQ(L,1),Q(L,2),Q(L,3),Q(L,4)のうちの4番目に大きな値をとる(つまり、最小値をとる)aの値を第4領域外行動候補値として出力する。
〔第4領域外包摂制御部12−i−29〕
第4領域外包摂制御部12−i−29は、第4領域外行動候補決定部12−i−28で決定された第4領域外行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか否かを判定する。
第4領域外包摂制御部12−i−29は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在するか、障害物が存在する場合には、a=0 (静止)を「行動値」として出力する。
第4領域外包摂制御部12−i−29は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在しない場合には、第4領域外行動候補値を「行動値」として出力する。
≪目的領域内行動決定部12−i−3≫
目的領域内行動決定部12−i−3の詳細構成を図5に示す。
目的領域内行動決定部12−i−3は目的領域外行動決定部12−i−2と同様に図8の行動選択手法に基づいて行動を決定するものである。ただし、Q関数として式(1)の代わりに式(4)を用いる点が目的領域外行動決定部12−i−2と異なる。つまり、目的領域内行動決定部12−i−3ではボイド制御も組み込んだ処理が行われる。
すなわち、目的領域内行動決定部12−i−3は、ロボットが目標位置に位置すると判定された場合には、ロボットの移動に伴ってそのロボットと位置が入れ替わる仮想的な存在であるボイドが入口位置に向かうことを理想的な状態としてボイドの現在の位置に基づいて価値関数を更新し、ロボットの現在の位置Lに移動可能な位置であるボイド位置の中で更新後の価値関数の値を最大にする行動が位置Lに移動する行動である位置を候補ボイド位置とし、その最大にする行動に対応する更新後の価値関数の値を候補ボイドQ関数値として、候補ボイド位置の中でロボットが移動可能な位置であり候補ボイドQ関数値が最小である位置に移動する行動をロボットの行動として決定する(ステップA3)。
〔領域内Q関数更新部12−i−31〕
領域内Q関数更新部12−i−31は、1ステップ前のi番目のロボットの位置(xr[i],yr[i])をLとし、現在のi番目のロボット位置をボイド位置L’として、記憶部2に記憶されたQ(L’,a)とQmax(L)を参照して、1ステップ前のロボットの行動からa-1を求め、式(4)によりQ(L’,a-1)を求め、求めたQ(L’,a-1)の値で記憶部2に記憶されたQ(L’,a-1)の値を更新する。
ここで、L’は、1ステップ前の位置L=(xr[i], yr[i])において行動aを選択したときの移動後の位置である。aとL’の関係は、例えば以下のようになる。
a=1であれば、L’=(xr[i]+1, yr[i])
a=2であれば、L’=(xr[i], yr[i]+1)
a=3であれば、L’=(xr[i]-1, yr[i])
a=4であれば、L’=(xr[i], yr[i]-1)
領域内Q関数更新部12−i−31は、更新前のQ(L’,a-1)と更新後のQ(L’,a-1)を制御部14に出力する。また、このときのQ関数の最大値で、記憶部2に記憶された方策π(L’)の値を更新する。
〔候補ボイド集合生成部12−i−32〕
候補ボイド集合生成部12−i−32は以下の(1)から(3)の処理を行う。
(1)i番目のロボットの位置(xr[i],yr[i])に隣接する位置(xr[i]+1,yr[i])、(xr[i],yr[i]+1)、(xr[i]-1,y[ri])、(xr[i],yr[i]-1)の各々をボイド位置L’として、各位置L’において、Q(L’,a-1) [a-1=0,1,2,3,4]のうち最大値をとるQ(L’,a-1)を「候補ボイドQ関数値」として決定する。またこのときのa-1の値を「L’における候補ボイド行動」として決定する。
(2)上記(1)で求めた各L’における候補ボイド行動のうち、候補ボイド行動に従ってL’からボイドが移動したと仮定したときの移動後の位置がi番目のロボットの位置(xr[i], yr[i])となるL’の集合を「候補ボイド位置集合」として求める。
(3)上記(2)で求めた「候補ボイド位置集合」に含まれる各候補ボイド位置L’と、L’における候補ボイドQ関数値と、L’における候補ボイド行動との組からなる集合を「候補ボイド集合」として、第1領域内行動候補決定部12−i−33に出力する。
〔第1領域内行動候補決定部12−i−33〕
第1領域内行動候補決定部12−i−33は、「候補ボイド集合」から候補ボイドQ関数値が最小となる候補ボイドQ関数値に対応する候補ボイド位置L’を「第1ターゲット位置」として決定する。
i番目のロボットの位置(xr[i], yr[i])から、上記(2)で決定された第1ターゲット位置へ移動する行動を第1領域内行動候補値として出力する。
〔第1領域内包摂制御部12−i−34〕
第1領域内包摂制御部12−i−34は、第1領域内行動候補決定部12−i−33で決定された第1領域内行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部であるか否かを判定する。
第1領域内包摂制御部12−i−34は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部である場合には、第2領域内行動候補決定部が次の処理を実行するよう制御する。
第1領域内包摂制御部12−i−34は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在せず、かつ、位置(xr’[i],yr’[i])がGの外部でない場合には、第1領域内行動候補値を「行動値」として出力する。
〔第2領域内行動候補決定部12−i−35〕
第2領域内行動候補決定部12−i−35は、「候補ボイド集合」から候補ボイドQ関数値が2番目に小さな値をとる候補ボイドQ関数値に対応する候補ボイド位置L’を「第2ターゲット位置」として決定する。
i番目のロボットの位置(xr[i], yr[i])から、上記(2)で決定された第2ターゲット位置へ移動する行動を第2領域内行動候補値として出力する。
〔第2領域内包摂制御部12−i−36〕
第2領域内包摂制御部12−i−36は、第2領域内行動候補決定部12−i−35で決定された第2領域内行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部であるか否かを判定する。
第2領域内包摂制御部12−i−36は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部である場合には、第3領域内行動候補決定部12−i−37が次の処理を実行するよう制御する。
第2領域内包摂制御部12−i−36は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在せず、かつ、位置(xr’[i],yr’[i])がGの外部でない場合には、第2領域内行動候補値を「行動値」として出力する。
〔第3領域内行動候補決定部12−i−37〕
第1領域内行動候補決定部12−i−37は、「候補ボイド集合」から候補ボイドQ関数値が3番目に小さな値をとる候補ボイドQ関数値に対応する候補ボイド位置L’を「第3ターゲット位置」として決定する。
i番目のロボットの位置(xr[i], yr[i])から、上記(2)で決定された第3ターゲット位置へ移動する行動を第3領域内行動候補値として出力する。
〔第3領域内包摂制御部12−i−38〕
第3領域内包摂制御部12−i−38は、第3領域内行動候補決定部12−i−37で決定された第3領域内行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部であるか否かを判定する。
第3領域内包摂制御部12−i−38は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部である場合には、第4領域内行動候補決定部12−i−39が次の処理を実行するよう制御する。
第3領域内包摂制御部12−i−38は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在せず、かつ、位置(xr’[i],yr’[i])がGの外部でない場合には、第3領域内行動候補値を「行動値」として出力する。
〔第4領域内行動候補決定部12−i−39〕
第4領域内行動候補決定部12−i−39は、「候補ボイド集合」から候補ボイドQ関数値が4番目に小さな値をとる候補ボイドQ関数値に対応する候補ボイド位置L’を「第4ターゲット位置」として決定する。
i番目のロボットの位置(xr[i], yr[i])から、上記(2)で決定された第4ターゲット位置へ移動する行動を第4領域内行動候補値として出力する。
〔第4領域内包摂制御部12−i−310〕
第4領域内包摂制御部12−i−310は、第4領域内行動候補決定部12−i−39で決定された第4領域内行動候補値に従ってi番目のロボットが移動すると仮定したときの移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか否かを判定する。つまり、(xr’[i],yr’[i])=(xr[j],yr[j]) (i≠j)となるjが存在するか否かを判定する。さらに、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部であるか否かを判定する。
第4領域内包摂制御部12−i−310は、移動後の位置(xr’[i],yr’[i])に他のロボットが存在するか、位置(xr’[i],yr’[i])に障害物が存在するか、位置(xr’[i],yr’[i])がGの外部である場合には、a=0(静止)を「行動値」として出力する。
第4領域内包摂制御部12−i−310は、移動後の位置(xr’[i],yr’[i])に他のロボット及び障害物が存在せず、かつ、位置(xr’[i],yr’[i])がGの外部でない場合には、第4領域内行動候補値を「行動値a[i]」として出力する。
以上の処理により、第i割当部12−i−310からは、i番目のロボットが現在の位置(xr[j],yr[j])において選択する行動に対応する値である行動値a[i]∈{0,1,2,3,4}が出力される。ゆえに、行動割当部12からは、N個のロボットがそれぞれ現在の位置において選択する行動値a[i]が出力される。
<位置更新部13>
位置更新部13は、各i=1,2,…,Nについて、i番目のロボットの現在の位置(xr[j],yr[j])において、行動割当部12から出力された行動値a[i]に対応する行動をとった場合のロボットの移動後(行動後)の位置(xr’[i],yr’[i])を計算し、計算された(xr’[i],yr’[i])で記憶部2に格納されたi番目のロボットの位置を更新する。言い換えれば、位置更新部13は、行動割当部12によって決定された行動に基づいて例えばロボットである制御対象物のそれぞれの位置を更新する(ステップA4)。更新後の位置の系列{(xr’[1],yr’[1]), (xr’[2],yr’[2]),…, (xr’[N],yr’[N])}は、制御部14に入力される。
<制御部14>
制御部14は、行動割当部と位置更新部との処理を繰り返し行うように制御する(ステップA5)。
制御部14は、所定の終了条件を満たすまで、行動割当部と位置更新部との処理を繰り返し行うように制御する。例えば、制御部14は、目的領域外行動決定部12−i−2又は目的領域内行動決定部12−i−3から出力されたすべての更新前のQ関数と更新後のQ関数とから構成される組について、更新前Q関数の値と更新後Q関数の値の差が所定の閾値以下となるまで、行動割当部12及び位置更新部13の処理を実行するよう制御する。この場合の終了条件は、更新前Q関数の値と更新後Q関数の値の差が所定の閾値以下となることである。
すべての更新前のQ関数と更新後のQ関数とから構成される組について、更新前Q関数の値と更新後Q関数の値の差が所定の閾値以下となったら、行動制御装置の学習部1による学習ステップの処理は終了する。
次に、行動制御装置のスケジューリング部3による行動スケジュールステップの処理について説明する。以下、学習部1と異なる部分を中心に説明し、学習部1と同様の部分については重複説明を省略する。
行動スケジュールステップの処理の流れの例を、図10に示す。
<スケジューリング部3>
スケジューリング部3は、以上の学習部1の処理により得られたQ関数と方策を用いて、N台の実ロボットが初期位置から目的の隊列を形成するための各ロボットの行動計画を決定する。スケジューリング部の詳細構成を図6に示す。
≪初期状態入力部31≫
初期状態入力部31には、N台のロボットのそれぞれの初期位置(xr0[i], yr0[i])[i=1,2,…,N]が入力される。
≪行動割当部32≫
行動割当部32の処理は学習部1の行動割当部12と同様である。i=1,2,…,N1として、第i割当部32−iは、学習部1の行動割当部12の第i割当部12−iと同様である。
ただし、行動割当部32は、ここでは各iについて決定された行動a[i]を現在の時刻tにおいてi番目のロボットが選択する行動at[i]として記憶部に格納する。これにより、記憶部2には時刻tまでの各時刻でi番目のロボットが選択する行動の系列(行動系列) A[i] ={a1[i],a2[i],…,at−1[i]}が格納されることになる。
また、学習部1の行動割当部12ではa[i]を決定するだけでなく、Q関数の値と方策の値の更新も行っているが、スケジューリング部3の行動割当部32ではQ関数の値と方策の値の更新を行う必要はない。
Q関数の値の更新を行わない場合には、行動割当部32の位置判定部32−i−1は、ロボットが目標位置に位置するか判定し(ステップB1)、行動割当部32の目的領域外行動決定部32−i−2は、ロボットが目標位置に位置しないと判定された場合には、ロボットが移動可能な位置の中で価値関数の値が最も大きい位置に移動する行動をロボットの行動として決定し(ステップB2)、目的領域内行動決定部32−i−3は、ロボットが目標位置に位置すると判定された場合には、ロボットの現在の位置Lに移動可能な位置であるボイド位置の中で価値関数の値を最大にする行動が位置Lに移動する行動である位置を候補ボイド位置とし、その最大にする行動に対応する価値関数の値を候補ボイドQ関数値として、候補ボイド位置の中でロボットが移動可能な位置であり候補ボイドQ関数値が最小である位置に移動する行動をロボットの行動として決定する(ステップB3)。
≪位置更新部33≫
位置更新部33の処理は、学習部1の位置更新部13と同様である。すなわち、位置更新部33は、行動割当部32によって決定された行動に基づいて例えばロボットである制御対象物のそれぞれの位置を更新する(ステップB4)。
≪目標位置到達判定部34≫
目標位置到達判定部34は、各i=1,2,…,Nについて、位置更新部33から出力された更新後の位置(xr’[i],yr’[i])∈Gであるか否かを判定し、全てのiについて(xr’[i],yr’[i])∈Gである場合には、現在記憶部2に記憶されている行動系列 A[i] ={a1[i],a2[i],…,at−1[i], at[i]}をスケジューリング結果として出力する。少なくとも1つ以上のiについて(xr’[i],yr’[i])∈Gを満たさない場合には、行動割当部32及び位置更新部33を再度実行するよう制御する(ステップB5)。
[変形例等]
目的領域外行動決定部12−i−2が4層(第1〜第4)のレイヤで構成されているのは、上記の例では静止(a=0)以外でロボットの取りうる行動が4種類(a=1,2,3,4)であるとしているためである。一般には、行動の種類がM個(静止を含む)あれば、目的領域外行動決定部12−i−2はM-1個のレイヤになる。目的領域内行動決定部12−i−3、目的領域外行動決定部32−i−1及び目的領域内行動決定部32−i−3についても同様である。
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
また、上記実施形態において説明したハードウェアエンティティにおける処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 学習部
2 記憶部
3 スケジューリング部
11 入力部
12 行動割当部
12−i−1 位置判定部
12−i−2 目的領域外行動決定部
12−i−3 目的領域内行動決定部
13 位置更新部
14 制御部
31 初期状態入力部
32 行動割当部
32 行動割当部
32−i−1 位置判定部
32−i−2 目的領域外行動決定部
32−i−3 目的領域内行動決定部
33 位置更新部
34 目標位置到達判定部

Claims (3)

  1. 複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御装置であって、
    上記制御対象物は、制御対象物がその制御対象物の現在の位置Lにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて行動制御が行われるとして、
    (1)各上記制御対象物が上記目標位置に位置するか判定する位置判定部と、(2)上記各制御対象物が上記目標位置に位置しないと判定された場合には、制御対象物が上記入口位置に向かうことを理想的な状態として上記各制御対象物の現在の位置に基づいて上記価値関数を更新し、上記各制御対象物が移動可能な位置の中で上記更新後の価値関数の値が最も大きい位置に移動する行動を上記各制御対象物の行動として決定する目的領域外行動決定部と、(3)上記各制御対象物が上記目標位置に位置すると判定された場合には、制御対象物の移動に伴ってその制御対象物と位置が入れ替わる仮想的な存在であるボイドが上記入口位置に向かうことを理想的な状態としてボイドの現在の位置に基づいて上記価値関数を更新し、上記各制御対象物の現在の位置Lに移動可能な位置であるボイド位置の中で上記更新後の価値関数の値を最大にする行動が上記位置Lに移動する行動である位置を候補ボイド位置とし、その最大にする行動に対応する上記更新後の価値関数の値を候補ボイドQ関数値として、上記候補ボイド位置の中で上記各制御対象物が移動可能な位置であり候補ボイドQ関数値が最小である位置に移動する行動を上記各制御対象物の行動として決定する目的領域内行動決定部と、を含む行動割当部と、
    上記決定された行動に基づいて上記各制御対象物の位置を更新する位置更新部と、
    上記行動割当部と位置更新部との処理を繰り返し行うように制御する制御部と、
    を含む行動制御装置。
  2. 複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御方法であって、
    上記制御対象物は、制御対象物がその制御対象物の現在の位置Lにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて行動制御が行われるとして、
    (1)位置判定部が、各上記制御対象物が上記目標位置に位置するか判定する位置判定ステップと、(2) 目的領域外行動決定部が、上記各制御対象物が上記目標位置に位置しないと判定された場合には、制御対象物が上記入口位置に向かうことを理想的な状態として上記各制御対象物の現在の位置に基づいて上記価値関数を更新し、上記各制御対象物が移動可能な位置の中で上記更新後の価値関数の値が最も大きい位置に移動する行動を上記各制御対象物の行動として決定する目的領域外行動決定ステップと、(3)目的領域内行動決定部が、上記各制御対象物が上記目標位置に位置すると判定された場合には、制御対象物の移動に伴ってその制御対象物と位置が入れ替わる仮想的な存在であるボイドが上記入口位置に向かうことを理想的な状態としてボイドの現在の位置に基づいて上記価値関数を更新し、上記各制御対象物の現在の位置Lに移動可能な位置であるボイド位置の中で上記更新後の価値関数の値を最大にする行動が上記位置Lに移動する行動である位置を候補ボイド位置とし、その最大にする行動に対応する上記更新後の価値関数の値を候補ボイドQ関数値として、上記候補ボイド位置の中で上記各制御対象物が移動可能な位置であり候補ボイドQ関数値が最小である位置に移動する行動を上記各制御対象物の行動として決定する目的領域内行動決定ステップと、を含む行動割当ステップと、
    位置更新部が、上記決定された行動に基づいて上記各制御対象物の位置を更新する位置更新ステップと、
    制御部が、上記行動割当部と位置更新部との処理を繰り返し行うように制御する制御ステップと、
    を含む行動制御方法。
  3. 請求項1の行動制御装置の各部としてコンピュータを機能させるためのプログラム。
JP2014080002A 2014-04-09 2014-04-09 行動制御装置、方法及びプログラム Active JP6189784B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014080002A JP6189784B2 (ja) 2014-04-09 2014-04-09 行動制御装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014080002A JP6189784B2 (ja) 2014-04-09 2014-04-09 行動制御装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015201068A true JP2015201068A (ja) 2015-11-12
JP6189784B2 JP6189784B2 (ja) 2017-08-30

Family

ID=54552270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014080002A Active JP6189784B2 (ja) 2014-04-09 2014-04-09 行動制御装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6189784B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105867428A (zh) * 2016-05-18 2016-08-17 南京航空航天大学 基于多运动模态多视点几何的多机器人系统队形变换方法
JP2017142738A (ja) * 2016-02-12 2017-08-17 日本電信電話株式会社 行動制御システム、その方法及びプログラム
CN109656132A (zh) * 2018-07-26 2019-04-19 西北工业大学 一种空间机器人有限时间协调控制方法
WO2019215838A1 (ja) * 2018-05-09 2019-11-14 日本電気株式会社 自律動作機の制御装置、自律動作機の制御方法、及び、自律動作機の制御プログラムが格納された記録媒体
US10962987B2 (en) 2016-06-06 2021-03-30 Tokyo Denki University Group robot and collective movement controlling method for group robot
CN112711261A (zh) * 2020-12-30 2021-04-27 浙江大学 一种基于局部视野的多智能体编队规划方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119835A (ja) * 1991-10-29 1993-05-18 Kawasaki Heavy Ind Ltd ロボツト装置
JP2008052473A (ja) * 2006-08-24 2008-03-06 Nippon Telegr & Teleph Corp <Ntt> 水中ロボットの動作制御方法、装置、プログラム及びその記録媒体
JP2008158841A (ja) * 2006-12-25 2008-07-10 Matsushita Electric Works Ltd 自律移動装置群制御システム
JP2010165050A (ja) * 2009-01-13 2010-07-29 Nippon Telegr & Teleph Corp <Ntt> 自律移動ロボットの動作計画装置、方法、プログラム及び記録媒体並びに自律移動ロボットの動作制御装置及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05119835A (ja) * 1991-10-29 1993-05-18 Kawasaki Heavy Ind Ltd ロボツト装置
JP2008052473A (ja) * 2006-08-24 2008-03-06 Nippon Telegr & Teleph Corp <Ntt> 水中ロボットの動作制御方法、装置、プログラム及びその記録媒体
JP2008158841A (ja) * 2006-12-25 2008-07-10 Matsushita Electric Works Ltd 自律移動装置群制御システム
JP2010165050A (ja) * 2009-01-13 2010-07-29 Nippon Telegr & Teleph Corp <Ntt> 自律移動ロボットの動作計画装置、方法、プログラム及び記録媒体並びに自律移動ロボットの動作制御装置及び方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017142738A (ja) * 2016-02-12 2017-08-17 日本電信電話株式会社 行動制御システム、その方法及びプログラム
CN105867428A (zh) * 2016-05-18 2016-08-17 南京航空航天大学 基于多运动模态多视点几何的多机器人系统队形变换方法
US10962987B2 (en) 2016-06-06 2021-03-30 Tokyo Denki University Group robot and collective movement controlling method for group robot
WO2019215838A1 (ja) * 2018-05-09 2019-11-14 日本電気株式会社 自律動作機の制御装置、自律動作機の制御方法、及び、自律動作機の制御プログラムが格納された記録媒体
JPWO2019215838A1 (ja) * 2018-05-09 2021-04-22 日本電気株式会社 自律動作機の制御装置、自律動作機の制御方法、及び、自律動作機の制御プログラム
JP7070673B2 (ja) 2018-05-09 2022-05-18 日本電気株式会社 自律動作機の制御装置、自律動作機の制御方法、及び、自律動作機の制御プログラム
US11740629B2 (en) 2018-05-09 2023-08-29 Nec Corporation Control device for autonomous operating machines, control method for autonomous operating machines, and recording medium having control program for autonomous operating machines stored thereon
CN109656132A (zh) * 2018-07-26 2019-04-19 西北工业大学 一种空间机器人有限时间协调控制方法
CN109656132B (zh) * 2018-07-26 2022-01-07 西北工业大学 一种空间机器人有限时间协调控制方法
CN112711261A (zh) * 2020-12-30 2021-04-27 浙江大学 一种基于局部视野的多智能体编队规划方法

Also Published As

Publication number Publication date
JP6189784B2 (ja) 2017-08-30

Similar Documents

Publication Publication Date Title
JP6189784B2 (ja) 行動制御装置、方法及びプログラム
Chaplot et al. Neural topological slam for visual navigation
JP5997092B2 (ja) ロボット協調搬送計画装置、方法及びプログラム
JP7429372B2 (ja) 動作環境におけるルートプランを最適化するためのシステム及び方法
Faridi et al. Multi-robot multi-target dynamic path planning using artificial bee colony and evolutionary programming in unknown environment
Nestmeyer et al. Decentralized simultaneous multi-target exploration using a connected network of multiple robots
US20200230945A1 (en) Three-dimensional printing
Ma et al. Multi-robot informative and adaptive planning for persistent environmental monitoring
JP5931685B2 (ja) ロボット協調搬送計画装置、方法、プログラム
Viet et al. BoB: an online coverage approach for multi-robot systems
Godoy et al. Adaptive learning for multi-agent navigation
WO2019141220A1 (zh) 移动机器人的路径规划方法及系统
Tan et al. Deep reinforcement learning for decentralized multi-robot exploration with macro actions
Guy et al. Guide to anticipatory collision avoidance
Kirik et al. The shortest time and/or the shortest path strategies in a CA FF pedestrian dynamics model
Musiyenko et al. Simulation the behavior of robot sub-swarm in spatial corridors
JP6285849B2 (ja) 行動制御システム、その方法及びプログラム
JP6216700B2 (ja) 行動制御装置、方法及びプログラム
Zhao et al. Complete coverage path planning scheme for autonomous navigation ROS-based robots
Giovanini et al. Autonomous and decentralized mission planning for clusters of UUVs
Kang et al. Path optimization with limited sensing ability
CN113790729A (zh) 一种基于强化学习算法的无人天车路径规划方法及装置
Haiming et al. Algorithm of path planning based on time window for multiple mobile robots in warehousing system
Wei et al. Tabu temporal difference learning for robot path planning in uncertain environments
Wang et al. Distributed model predictive control of timed continuous Petri nets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160719

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170620

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170719

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: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170803

R150 Certificate of patent or registration of utility model

Ref document number: 6189784

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150