JP6174523B2 - 行動制御システム、その方法及びプログラム - Google Patents
行動制御システム、その方法及びプログラム Download PDFInfo
- Publication number
- JP6174523B2 JP6174523B2 JP2014130021A JP2014130021A JP6174523B2 JP 6174523 B2 JP6174523 B2 JP 6174523B2 JP 2014130021 A JP2014130021 A JP 2014130021A JP 2014130021 A JP2014130021 A JP 2014130021A JP 6174523 B2 JP6174523 B2 JP 6174523B2
- Authority
- JP
- Japan
- Prior art keywords
- action
- adjacent
- robot
- control object
- control
- 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
Links
- 238000000034 method Methods 0.000 title claims description 53
- 230000009471 action Effects 0.000 claims description 226
- 238000004891 communication Methods 0.000 claims description 20
- 244000144992 flock Species 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 55
- 230000006399 behavior Effects 0.000 description 38
- 230000015572 biosynthetic process Effects 0.000 description 38
- 230000006870 function Effects 0.000 description 35
- 230000008569 process Effects 0.000 description 25
- 238000004364 calculation method Methods 0.000 description 11
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002787 reinforcement Effects 0.000 description 5
- 238000005259 measurement Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000004880 explosion Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 208000031968 Cadaver Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0291—Fleet control
Landscapes
- Engineering & Computer Science (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Description
[理論的背景]
まず、行動制御装置及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
0: 静止
1: 二次元平面上で右方向に1格子だけ移動する
2: 二次元平面上で上方向に1格子だけ移動する
3: 二次元平面上で左方向に1格子だけ移動する
4: 二次元平面上で下方向に1格子だけ移動する
状態変数s=(Xr,Yr),行動変数a∈{0,1,2,3,4}
p台あるすべてのロボットは、この状態変数を引数とした1個の価値関数Q(s,a)を共有し、行動決定を行う。
(Xre[i],Yre[i])∈G …(3)
として、各ロボットはG内の全ての全ての位置を自由に目標位置とすることができるものとする。つまり、Gをちょうど流体を注ぐ器のようなものとして扱う。すなわち、各ロボットは、Gの境界上にあるどの位置からもGに入ることが可能であるが、一度G内に入ったロボットは、Gを出る行動をとることができないものとする。また、強化学習時における報酬の設定については、Gの境界上に一点だけ入口の点Peを設定し、ロボットがPeからG内に入ったときのみ高報酬であるr=1を与え、それ以外の経験については、すべてr=0を与えるものとする。Peの位置を入口位置と呼ぶ。本実施形態では、Gで構成される矩形の4角のいずれかの1点を選んで入口位置Peとし、Peにロボットが移動した場合において、高報酬値1が与えられ、その他は0の報酬が与えられる。Peの位置はGの内部であって、Gで構成される矩形の4角のいずれかの1点であればどこでも構わないが、ロボットの開始位置から近い位置を選ぶのがロボットの動作をスムーズにするうえで効果的である。
(1)各行動選択時に、必ず1つ以上の移動を行わないロボットがなければならない。
(2)各ロボットの隣り合う位置(上下左右)に必ず、他のロボットが存在していなければならない。
(3)隣り合うロボット同士がなす群れは、一つでなければならない。
である。この拘束条件を維持しつつ目標位置での隊列形成を行う動作の例を図1〜4に示す。以下、この条件を維持しながらの、価値関数Q(s,a)を利用した隊列移動の方法について述べる。
(4)各ロボット同士の選択する行動の違いによる衝突に伴う、群れの移動の停滞を避ける。
(5)目標位置において、適切にロボットを隊列形成させる。
ための手法も備えている。
図5は第一実施形態に係る行動制御システム100の機能ブロック図を、図6はその処理フローの例を示す。行動制御システム100は、図5に示すように、動作計画部110と、行動選択部120と、記憶部140と、通信部150と、入力部160とを含む。
動作計画部110は、MDPにおける価値関数Q(s,a)の値を、動的計画法により、ロボットの任務行動開始前に事前に計算し(S110)、記憶部140に格納する。ここで、動作計画部110の計算は、一台のロボットを使用したQ学習に置き換えてもよい。なお、別装置で価値関数Q(s,a)を計算しておき、ロボットの任務行動開始前に事前に記憶部140に格納しておけば、行動制御システム100は、動作計画部110を備えなくともよい。
入力部160には、p台のロボットiのそれぞれの初期位置(Xr0[i],Xr0[i])及びp個の目標位置の集合G={(Xre[0],Yre[0]),(Xre[1],Yre[1]),…,(Xre[p-1],Yre[p-1])}が入力され、記憶部140に記憶される。
記憶部140には、位置s及びa∈{0,1,2,3,4}の組み合わせのそれぞれについての価値関数Q(s,a)が記憶されているとする。sの取りうる範囲は、対象となる二次元平面上の領域内のロボットiが存在しうる全ての座標である。
行動制御システム100が実装されているロボットも含め、全てのロボットは、通信部150を介して、二次元平面上の上下左右の方向において隣接する他のロボットと通信することができる。
行動選択部120は、記憶部140から価値関数Qを取り出す。以下に述べるのは、ロボット動作開始後の各時刻ステップにおける行動選択の際に行われる処理であり、行動選択部120で行われる。行動選択部120は、通信部150を介して、他のロボットから後述する隣接状態判定部121の判定結果を受け取る。行動選択部120は、価値関数Qを用いて、1回の行動制御により、少なくとも1つのロボットが静止し、残りのロボット全てが同じ方向に移動するように制御する(S120)。ただし、行動選択部120は、複数のロボット全てが常に接続状態を維持し、かつ、1つの群れを成すように制御する。なお、接続状態とは、あるロボットの、2次元平面上の上下左右の何れかの隣接する位置に他のロボットが存在する状態をいう。例えば、行動選択部120は、各ロボットiに対して、行動aを実行するように制御信号を出力して、各ロボットiを制御する。
隣接状態判定部121は、ロボットの2次元平面上の上下左右の隣接する位置に、障害物または他のロボットが存在するか否かを判定し、ロボットの2次元平面上の右上、左上、左下、右下の隣接する位置に他のロボットが存在するか否かを判定し(S121−1),判定結果を記憶部140に格納する。また、隣接状態判定部121は、ロボットが目標隊列エリアG内に存在するときに、ロボットの2次元平面上の上下左右の隣接する位置のマスが、目標隊列エリアGに含まれるか否かを判定し(S121−1)、判定結果を記憶部140に格納する。
まず、すべてのnとiでnext[n][i]の値をpに初期化し、続いて、
i番目のロボットが、右(X軸正)方向でj番目のロボットと接しているとき、next[1][i]←j
i番目のロボットが、上(Y軸正)方向でj番目のロボットと接しているとき、next[2][i]←j
i番目のロボットが、左(X軸負)方向でj番目のロボットと接しているとき、next[3][i]←j
i番目のロボットが、下(Y軸負)方向でj番目のロボットと接しているとき、next[4][i]←j
とする。続いて、
i番目のロボットが、右(X軸正)方向で障害物と接しているか、i番目のロボットがG内にあって、右(X軸正)方向で隣接する格子がG外であるとき、next[1][i]←-1
i番目のロボットが、上(Y軸正)方向で障害物と接しているか、i番目のロボットがG内にあって、上(Y軸正)方向で隣接する格子がG外であるとき、next[2][i]←-1
i番目のロボットが、左(X軸負)方向で障害物と接しているか、i番目のロボットがG内にあって、左(X軸負)方向で隣接する格子がG外であるとき、next[3][i]←-1
i番目のロボットが、下(Y軸負)方向で障害物と接しているときか、i番目のロボットがG内にあって、下(Y軸負)方向で隣接する格子がG外であるとき、next[4][i]←-1
とする。結果、ロボットが、各方向にて、なにとも接しておらず、Gの境界上にもないときに、next[n][i]←pとなる。
つづいて、8つ隣接方向において、他のロボットが存在するかどうかを検出し、以下のようにconnect変数の値を設定する。
i番目のロボットが、右(X軸正)方向でj番目のロボットと接しているとき、next[1][i]←j
i番目のロボットが、上(Y軸正)方向でj番目のロボットと接しているとき、next[2][i]←j
i番目のロボットが、左(X軸負)方向でj番目のロボットと接しているとき、next[3][i]←j
i番目のロボットが、下(Y軸負)方向でj番目のロボットと接しているとき、next[4][i]←j
i番目のロボットの右上(X軸正、Y軸正)隣の位置にロボットjがあるとき、next[5][i]←j
i番目のロボットの左上(X軸負、Y軸正)隣の位置にロボットjがあるとき、next[6][i]←j
i番目のロボットの左下(X軸負、Y軸負)隣の位置にロボットjがあるとき、next[7][i]←j
i番目のロボットの右下(X軸正、Y軸負)隣の位置にロボットjがあるとき、next[8][i]←j
上記以外の条件で、next[n][i]←p
可動判定部122は、あるロボットiの2次元平面上の上下左右の隣接する位置に、障害物が存在するときに、そのロボットiが障害物が存在する方向に移動しないように制御し、さらに、そのロボットiが障害物が存在する方向とは反対方向において連続して隣接する全ての他のロボットiが障害物が存在する方向に移動しないように制御する(S122)。また、可動判定部122は、行動aによりロボットiがG内からG外へ移動しないように制御し、さらに、そのロボットiがGの境界線が存在する方向とは反対方向において連続して隣接する全ての他のロボットiが境界線が存在する方向に移動しないように制御する(S122)。例えば、ロボットiに対して、以下の通りにmove[a][i]を更新する。図8は可動判定部122の処理フローの例を示す。
(i) move[a][i]=1、かつ、next[a][i]=-1のとき、move[a][i]を0に更新する(S122f,S122g、S122h)。
(ii)また、move[a][i]=0のとき、next[a][j]=iとなるjについて、move[a][j]を0に更新する(S122m〜S122q)。
移動方向設定部123は、あるロボットiが、ある方向の隣接する位置に移動するという行動aを実行した場合の価値関数の値Q(s,a)が、静止するという行動を実行した場合の価値関数の値Q(s,0)よりも大きくなる場合に、ロボットiから行動aにより移動する方向において連続して隣接する全ての他のロボットについて、行動aを実行した場合に得られる価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる価値関数の値Q(s,0)よりも小さいことを理由として、行動aが非可動と設定されている場合には、行動aが可動となるように制御する(S123)。
(i)ロボットiの位置がG内にあるときは、Q(s,a)の値に関わらず、move[a][i]の値の更新は行わない(s123c)。
(ii)ロボットiの位置がG外にあり(S123c)、Q(s,a)がQ(s,0)より小さくかつmove[a][i]=1のとき(S123f)、move[a][i]を2に更新する(S123e)。
ロボットiの位置がG外にあり(S123l)、Q(s,a)がQ(s,0)以上の値のときで、かつmove[a][i]=1のとき(S123n)、
変数ipushedの初期値をiとして(S123o)、以下の処理を、next[a][ipushed]の値がpでない間繰り返す(S123p)。
ipushedの値にnext[a][ipushed]の値を設定する(S123q)。
move[a][ipushed]=2ならば(S123r)、move[a][ipushed]を1に更新する(S123s)。
接続判定部124は、隣接状態判定部121による判定結果,connect[n][i]を用いて、仮にあるロボットiが行動aによりある方向に移動したときに、行動aにより移動する方向と直交する方向において隣接するロボットとの接続状態を維持するか否かを判定し、維持しない場合、ロボットiは行動aにより移動する方向と直交する方向において隣接するロボットに対して相対移動不可能であると設定し、ロボットiが行動aについて非可動である場合、ロボットiに行動aにより移動する方向及びその反対方向において隣接するロボットが行動aについて非可動となるように制御し、ロボットiが行動aについて非可動である場合であって、行動aにより移動する方向と直交する方向においてロボットiに隣接するロボットが、行動aにより移動する方向に相対移動不可能である場合には、行動aにより移動する方向と直交する方向においてロボットiに隣接するロボットが行動aについて非可動となるように制御する(S124)。
(1-i)a=1かつ、move[a][i]=1かつ、-1<connect[8][i]<pかつ-1<connect[4][i]<pのとき、movable_minus[a][i]←1に設定する。
(1-ii)a=1かつ、move[a][i]=1かつ、-1<connect[3][i]<pかつ-1<connect[4][i]<pかつmove[a][connect[3][i]]=1のとき、movable_minus[a][i]←1に設定する。
(1-iii)a=1かつ、move[a][i]=1かつ、-1<connect[2][i]<pかつ、-1<connect[5][i]<pのとき、movable_plus[a][i]←1に設定する。
(1-iv)a=1かつ、move[a][i]=1かつ、-1<connect[3][i]<pかつ、-1<connect[2][i]<pかつ、move[a][connect[3][i]]=1のとき、movable_plus[a][i]←1に設定する。
(2-i)a=2かつ、move[a][i]=1かつ、-1<connect[6][i]<pかつ、-1<connect[3][i]<pのとき、movable_minus[a][i]←1に設定する。
(2-ii)a=2かつ、move[a][i]=1かつ、-1<connect[3][i]<pかつ、-1<connect[4][i]<pかつ、move[a][connect[4][i]]=1のとき、movable_minus[a][i]←1に設定する。
(2-iii)a=2かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[5][i]<pのとき、movable_plus[a][i]←1に設定する。
(2-iv)a=2かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[4][i]<pかつ、move[a][connect[4][i]]=1のとき、movable_plus[a][i]←1に設定する。
(3-i)a=3かつ、move[a][i]=1かつ、-1<connect[7][i]<pかつ、-1<connect[4][i]<pのとき、movable_minus[a][i]←1に設定する。
(3-ii)a=3かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[4][i]<pかつ、move[a][connect[1][i]]=1のとき、movable_minus[a][i]←1に設定する。
(3-iii)a=3かつ、move[a][i]=1かつ、-1<connect[2][i]<pかつ、-1<connect[6][i]<pのとき、movable_plus[a][i]←1に設定する。
(3-iv)a=3かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[2][i]<pかつ、move[a][connect[1][i]]=1のとき、movable_plus[a][i]←1に設定する。
(4-i)a=4かつ、move[a][i]=1かつ、-1<connect[3][i]<pかつ、-1<connect[7][i]<pのとき、movable_minus[a][i]←1に設定する。
(4-ii)a=4かつ、move[a][i]=1かつ、-1<connect[3][i]<pかつ、-1<connect[2][i]<pかつ、move[a][connect[2][i]]=1のとき、movable_minus[a][i]←1に設定する。
(4-iii)a=4かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[8][i]<pのとき、movable_plus[a][i]←1に設定する。
(4-iv)a=4かつ、move[a][i]=1かつ、-1<connect[1][i]<pかつ、-1<connect[2][i]<pかつ、move[a][connect[2][i]]=1のとき、movable_plus[a][i]←1に設定する。
(5)上記条件以外の場合、movable_plus[a][i]←0、movable_minus[a][i]←0に設定する。
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
(1-i)a=1かつ、-1<connect[2][i]<pかつ、movable_minus[a][connect[2][i]]=0かつmove[a][connect[2][i]]=1のとき、move[a][connect[2][i]]←0に更新する。
(1-ii)a=1かつ、-1<connect[4][i]<pかつ、movable_plus[a][connect[4][i]]=0かつmove[a][connect[4][i]]=1のとき、move[a][connect[4][i]]←0に更新する。
(1-iii)a=1かつ、-1<connect[3][i]<pかつ、move[a][connect[3][i]]=1のとき、move[a][connect[3][i]]←0に更新する。
(1-vi)a=1かつ、-1<connect[1][i]<pかつ、move[a][connect[1][i]]=1のとき、move[a][connect[1][i]]←0に更新する。
(2-i)a=2かつ、-1<connect[1][i]<pかつ、movable_minus[a][connect[1][i]]=0かつmove[a][connect[1][i]]=1のとき、move[a][connect[1][i]]←0に更新する。
(2-ii)a=2かつ、-1<connect[3][i]<pかつ、movable_plus[a][connect[3][i]]=0かつmove[a][connect[3][i]]=1のとき、move[a][connect[3][i]]←0に更新する。
(2-iii)a=2かつ、-1<connect[2][i]<pかつ、move[a][connect[2][i]]=1のとき、move[a][connect[2][i]]←0に更新する。
(2-vi)a=2かつ、-1<connect[4][i]<pかつ、move[a][connect[4][i]]=1のとき、move[a][connect[4][i]]←0に更新する。
(3-i)a=3かつ、-1<connect[2][i]<pかつ、movable_minus[a][connect[2][i]]=0かつmove[a][connect[2][i]]=1のとき、move[a][connect[2][i]]←0に更新する。
(3-ii)a=3かつ、-1<connect[4][i]<pかつ、movable_plus[a][connect[4][i]]=0かつmove[a][connect[4][i]]=1のとき、move[a][connect[4][i]]←0に更新する。
(3-iii)a=3かつ、-1<connect[3][i]<pかつ、move[a][connect[3][i]]=1のとき、move[a][connect[3][i]]←0に更新する。
(3-vi)a=3かつ、-1<connect[1][i]<pかつ、move[a][connect[1][i]]=1のとき、move[a][connect[1][i]]←0に更新する。
(4-i)a=4かつ、-1<connect[1][i]<pかつ、movable_minus[a][connect[1][i]]=0かつmove[a][connect[1][i]]=1のとき、move[a][connect[1][i]]←0に更新する。
(4-ii)a=4かつ、-1<connect[3][i]<pかつ、movable_plus[a][connect[3][i]]=0かつmove[a][connect[3][i]]=1のとき、move[a][connect[3][i]]←0に更新する。
(4-iii)a=4かつ、-1<connect[2][i]<pかつ、move[a][connect[2][i]]=1のとき、move[a][connect[2][i]]←0に更新する。
(4-vi)a=4かつ、-1<connect[4][i]<pかつ、move[a][connect[4][i]]=1のとき、move[a][connect[4][i]]←0に更新する。
位置更新部125は、まず、ロボット全体に指示される行動値a_allを決定する。決定の方法はランダムな方法か、もしくは、各行動aの値について、各ロボットiのQ(s,a)の値がQ(s,0)以上であるロボットの数の合計Sum(a)を計算し、Sum(a)の値に比例した確率でa_allの値を選択してもよい。また、縦方向の移動の行動(a=2,4)と横方向の移動(a=1,3)を交互にa_allの値として選択することとし、縦方向の行動を選ぶ際の上下のどちらの行動を選ぶか、もしくは横方向の行動を選ぶ際の右左どちらの行動を選ぶかについては、Sum(a)の値に比例した確率で、a_allの値を選択する方法でもよい。位置更新部125は、a_allの値が決定した後は、各ロボットiに対して、move[a_all][i]の値が1の場合だけ、行動a_allに従った移動をするように制御信号を出力する。位置更新部125は、move[a_all][i]の値が1以外の場合は、ロボットiに対して制御信号を出力しない、または、静止するように制御信号を出力する。
位置判定部126は、前述の通り、隣接状態判定部121による判定結果を用いて、行動後位置を求め、行動後位置(Xr"[i],Yr"[i])と想定位置(Xr'[i],Yr'[i])とが一致するか否かを判定する(S126)。なお、一致しない場合には、移動するように制御されたロボットが何らかのトラブルにより、制御信号通りに移動できなかったと考えられる。この場合、行動後位置(Xr"[i],Yr"[i])と想定位置(Xr'[i],Yr'[i])との少なくとも一方を補正すればよい。補正方法としては様々な手法が考えられる。例えば、全てのロボットに対して、制御前の位置に戻るように指示し、行動後位置(Xr"[i],Yr"[i])を補正してもよいし、想定位置(Xr'[i],Yr'[i])を行動後位置(Xr"[i],Yr"[i])に合わせて補正してもよい。
このような構成により、一台のロボットに必要な分だけのマルコフ状態空間を用意し、それを用いて動的計画法を利用して各位置でのロボットの行動方策を計算し、その行動方策を利用することで、ロボットに任意の矩形隊列形状と、任務環境内の任意の障害物形状に対応した、ロボット同士が接した状態を維持したうえでの多数ロボットのための隊列形成アルゴリズムを獲得することができる。すなわち、ロボット数に依存せずにロボット一台分の計画計算負荷での自己位置座標定義型隊列形成アルゴリズム獲得ができる。また、静止しているロボットに対する相対的な位置を判定することで、絶対的な位置を取得することができるため、付加的な位置計測用の装備を必要としない。
入力部160を介して入力される初期位置(Xr0[i],Yr0[i])が、実際にロボットが配置されている位置と一致するという前提の場合には、S121−1における隣接状態判定部121の処理を省略してもよい。その場合、行動制御システム100は、各ロボットiから判定結果next[n][i]を受信せずとも初期位置(Xr0[i],Yr0[i])から計算により隣接状態を取得することができる。
第一実施形態と異なる部分を中心に説明する。
行動選択部120は、記憶部140から価値関数Qを取り出す。以下に述べるのは、ロボット動作開始後の各時刻ステップにおける行動選択の際に行われる処理であり、行動選択部120で行われる。
隣接状態判定部121は、ロボットiの2次元平面上の上下左右の隣接する位置に、障害物または他のロボットが存在するか否かを判定し、ロボットの2次元平面上の右上、左上、左下、右下の隣接する位置に他のロボットが存在するか否かを判定し(S121−1),判定結果connect[n][i]、next[n][i]を記憶部140に格納する。また、隣接状態判定部121は、ロボットが目標隊列エリアG内に存在するときに、ロボットの2次元平面上の上下左右の隣接する位置のマスが、目標隊列エリアGに含まれるか否かを判定し(S121−1)、判定結果を記憶部140に格納する。
可動判定部122は、あるロボットiの2次元平面上の上下左右の隣接する位置に、障害物が存在するときに、そのロボットiが障害物が存在する方向に移動しないように制御し、さらに、そのロボットiが障害物が存在する方向とは反対方向において連続して隣接する全ての他のロボットiが障害物が存在する方向に移動しないように制御する(S122)。また、可動判定部122は、行動aによりロボットiがG内からG外へ移動しないように制御し、さらに、そのロボットiがGの境界線が存在する方向とは反対方向において連続して隣接する全ての他のロボットiが境界線が存在する方向に移動しないように制御する(S122)。例えば、ロボットiは、以下の通りにmove[a][i]を更新する。図17は可動判定部122の処理フローの例を示す。
移動方向設定部123は、あるロボットiが、ある方向の隣接する位置に移動するという行動aを実行した場合に得られる価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる価値関数の値Q(s,0)よりも大きくなる場合に、ロボットiから行動aにより移動する方向において連続して隣接する全ての他のロボットについて、行動aを実行した場合に得られる価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる価値関数の値Q(s,0)よりも小さいことを理由として、行動aが非可動と設定されている場合には、行動aが可動となるように制御する(S123)。
(i)ロボットiの位置がG内にあるときは、move[a][i]の値の更新の指示は送信しない。
(ii)ロボットiの位置がG外にあり(S123l)、Q(s,a)がQ(s,0)以上値のときで、かつmove[a][i]=1のとき(S123n)、
行動aにより移動する方向において隣接するロボットnext[a][i]が存在する場合(-1<next[a][i]<pを満たす場合)、そのロボットnext[a][i]に対し、move[a][next[a][i]]=2ならば(S123q)、move[a][next[a][i]]を1に更新するように指示を送信する(S123r)。
接続判定部124は、隣接状態判定部121による判定結果connect[n][i]を用いて、仮にあるロボットiが行動aによりある方向に移動したときに、行動aにより移動する方向と直交する方向において隣接するロボットに対して接続状態を維持するか否かを判定し、維持しない場合、ロボットiは行動aにより移動する方向と直交する方向において隣接するロボットに対して相対移動不可能であると設定し、ロボットiが行動aについて非可動である場合、ロボットiに行動aにより移動する方向及びその反対方向において隣接するロボットが行動aについて非可動となるように制御し、ロボットiが行動aについて非可動である場合であって、行動aにより移動する方向と直交する方向においてロボットiに隣接するロボットが、行動aにより移動する方向に相対移動不可能である場合には、行動aにより移動する方向と直交する方向においてロボットiに隣接するロボットが行動aについて非可動となるように制御する(S124)。
位置更新部125は、まず、ロボット全体に指示される行動値a_allを決定する。決定の方法はランダムな方法か、もしくは、各行動aの値について、各ロボットiのQ(s,a)の値がQ(s,0)以上であるロボットの数の合計Sum(a)を計算し、Sum(a)の値に比例した確率でa_allの値を選択してもよい。例えば、制御対象物特定部228で特定されたロボット(図6のS228)の位置更新部125が、行動値a_allを決定する。その場合であって、Sum(a)を計算する場合、各ロボットからQ(s,a)の値がQ(s,0)以上であるか否かの判定結果を受信すればよい。
各ロボットiの位置判定部126は、隣接状態判定部121による判定結果を用いて、行動後位置を求め、行動後位置(Xr"[i],Yr"[i])と想定位置(Xr'[i],Yr'[i])とが一致するか否かを判定する(S126)。
このような構成により、第一実施形態と同様の効果を得ることができる。さらに、本実施形態では、各処理を各ロボットに分散することができる。例えば、一部のロボットにトラブルか生じ、動作しなくなったとしても、残りのロボットにおいて任務を終了することもできる。
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
Claims (7)
- 複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御システムであって、
第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、前記目標位置の集合は第一方向に平行な二つの辺と第二方向に平行な二つの辺からなる平行四辺形を成し、前記制御対象物は、二次元平面上の第一〜第四方向において隣接する他の制御対象物と通信するための通信手段と、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置に、障害物または他の制御対象物が存在するか否かを判定し、当該制御対象物の2次元平面上の、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に他の制御対象物が存在するか否かを判定する隣接状態判定部とを備え、制御対象物がその制御対象物の現在の位置sにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、1回の行動制御により、静止するか、または、二次元平面上の第一〜第四位置に移動するように制御されるものとし、
前記価値関数が記憶される記憶部と、
前記価値関数を用いて、1回の行動制御により、少なくとも1つの制御対象物が静止し、残りの制御対象物全てが同じ方向に移動するように制御する行動選択部とを含み、
ある制御対象物の、第一〜第四位置の何れかに他の制御対象物が存在する状態を接続状態とし、前記行動選択部は、複数の前記制御対象物全てが常に接続状態を維持し、かつ、1つの群れを成すように制御する、
行動制御システム。 - 請求項1の行動制御システムであって、
前記行動選択部は、
ある制御対象物iが、ある方向の隣接する位置に移動するという行動aを実行した場合に得られる前記価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる前記価値関数の値Q(s,0)よりも大きくなる場合に、前記制御対象物iから前記行動aにより移動する方向において連続して隣接する全ての他の制御対象物について、前記行動aを実行した場合に得られる前記価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる前記価値関数の値Q(s,0)よりも小さいことを理由として、前記行動aが非可動と設定されている場合には、行動aが可動となるように制御する移動方向設定部を含む、
行動制御システム。 - 請求項1または2の行動制御システムであって、
前記行動選択部は、
ある制御対象物iの2次元平面上の第一〜第四位置に、障害物が存在するときに、その制御対象物iが障害物が存在する方向に移動しないように制御し、さらに、その制御対象物iが障害物が存在する方向とは反対方向において連続して隣接する全ての他の制御対象物が障害物が存在する方向に移動しないように制御する可動判定部と、
前記隣接状態判定部による判定結果を用いて、仮にある制御対象物iが行動aによりある方向に移動したときに、前記行動aにより移動する方向と平行でない方向において隣接する制御対象物との接続状態を維持するか否かを判定し、維持しない場合、前記制御対象物iは前記行動aにより移動する方向と平行でない方向において隣接する制御対象物に対して相対移動不可能であると設定し、前記制御対象物iが前記行動aについて非可動である場合、前記制御対象物iに前記行動aにより移動する方向及びその反対方向において隣接する制御対象物が行動aについて非可動となるように制御し、前記制御対象物iが前記行動aについて非可動であって、かつ、前記行動aにより移動する方向と平行でない方向において前記制御対象物iに隣接する制御対象物が、前記行動aにより移動する方向に相対移動不可能である場合には、行動aにより移動する方向と平行でない方向において制御対象物iに隣接する制御対象物が行動aについて非可動となるように制御する接続判定部と、
静止するように制御された制御対象物の位置を基準として、前記隣接状態判定部による判定結果を用いて、実際に行動した後の制御対象物の位置である行動後位置を求め、その行動後位置が、選択された行動に基づいて行動した場合に想定される想定位置と一致するか否かを判定する位置判定部と、を含む、
行動制御システム。 - 行動制御システムを用いて、複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御方法であって、
第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、前記目標位置の集合は第一方向に平行な二つの辺と第二方向に平行な二つの辺からなる平行四辺形を成し、前記制御対象物は、二次元平面上の第一〜第四方向において隣接する他の制御対象物と通信するための通信手段と、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置に、障害物または他の制御対象物が存在するか否かを判定し、当該制御対象物の2次元平面上の、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に他の制御対象物が存在するか否かを判定する隣接状態判定部とを備え、制御対象物がその制御対象物の現在の位置sにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、1回の行動制御により、静止するか、または、二次元平面上の第一〜第四位置に移動するように制御されるものとし、
予め計算された前記価値関数を用いて、1回の行動制御により、少なくとも1つの制御対象物が静止し、残りの制御対象物全てが同じ方向に移動するように制御する行動選択ステップとを含み、
ある制御対象物の、第一〜第四位置の何れかに他の制御対象物が存在する状態を接続状態とし、前記行動選択ステップにおいて、複数の前記制御対象物全てが常に接続状態を維持し、かつ、1つの群れを成すように制御する、
行動制御方法。 - 請求項4の行動制御方法であって、
前記行動選択ステップは、
ある制御対象物iが、ある方向の隣接する位置に移動するという行動aを実行した場合に得られる前記価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる前記価値関数の値Q(s,0)よりも大きくなる場合に、前記制御対象物iから前記行動aにより移動する方向において連続して隣接する全ての他の制御対象物について、前記行動aを実行した場合に得られる前記価値関数の値Q(s,a)が、静止するという行動を実行した場合に得られる前記価値関数の値Q(s,0)よりも小さいことを理由として、前記行動aが非可動と設定されている場合には、行動aが可動となるように制御する移動方向設定ステップを含む、
行動制御方法。 - 請求項4または5の行動制御方法であって、
前記行動選択ステップは、
ある制御対象物iの2次元平面上の第一〜第四位置に、障害物が存在するときに、その制御対象物iが障害物が存在する方向に移動しないように制御し、さらに、その制御対象物iが障害物が存在する方向とは反対方向において連続して隣接する全ての他の制御対象物が障害物が存在する方向に移動しないように制御する可動判定ステップと、
前記隣接状態判定ステップによる判定結果を用いて、仮にある制御対象物iが行動aによりある方向に移動したときに、前記行動aにより移動する方向と平行でない方向において隣接する制御対象物との接続状態を維持するか否かを判定し、維持しない場合、前記制御対象物iは前記行動aにより移動する方向と平行でない方向において隣接する制御対象物に対して相対移動不可能であると設定し、前記制御対象物iが前記行動aについて非可動である場合、前記制御対象物iに前記行動aにより移動する方向及びその反対方向において隣接する制御対象物が行動aについて非可動となるように制御し、前記制御対象物iが前記行動aについて非可動であって、かつ、前記行動aにより移動する方向と平行でない方向において前記制御対象物iに隣接する制御対象物が、前記行動aにより移動する方向に相対移動不可能である場合には、行動aにより移動する方向と平行でない方向において制御対象物iに隣接する制御対象物が行動aについて非可動となるように制御する接続判定ステップと、
静止するように制御された制御対象物の位置を基準として、前記隣接状態判定ステップによる判定結果を用いて、実際に行動した後の制御対象物の位置である行動後位置を求め、その行動後位置が、選択された行動に基づいて行動した場合に想定される想定位置と一致するか否かを判定する位置判定ステップと、を含む、
行動制御方法。 - 請求項1から3の何れかに記載の行動制御システムとしてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014130021A JP6174523B2 (ja) | 2014-06-25 | 2014-06-25 | 行動制御システム、その方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014130021A JP6174523B2 (ja) | 2014-06-25 | 2014-06-25 | 行動制御システム、その方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016009354A JP2016009354A (ja) | 2016-01-18 |
JP6174523B2 true JP6174523B2 (ja) | 2017-08-02 |
Family
ID=55226862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014130021A Active JP6174523B2 (ja) | 2014-06-25 | 2014-06-25 | 行動制御システム、その方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6174523B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6559582B2 (ja) * | 2016-01-19 | 2019-08-14 | 日本電信電話株式会社 | 行動制御システム、その方法及びプログラム |
JP6559591B2 (ja) * | 2016-02-12 | 2019-08-14 | 日本電信電話株式会社 | 行動制御システム、その方法及びプログラム |
JP7147142B2 (ja) | 2017-09-15 | 2022-10-05 | ソニーグループ株式会社 | 制御装置、および制御方法、プログラム、並びに移動体 |
JP6777661B2 (ja) * | 2018-02-14 | 2020-10-28 | 日本電信電話株式会社 | 制御装置、方法及びプログラム |
CN109062252B (zh) * | 2018-08-27 | 2021-05-25 | 中国人民解放军战略支援部队航天工程大学 | 基于人工势场法的四旋翼无人机集群控制方法及其装置 |
CN109164809B (zh) * | 2018-09-20 | 2022-02-22 | 北京机械设备研究所 | 一种车辆编队自主跟随控制系统及方法 |
US11436391B2 (en) * | 2019-01-29 | 2022-09-06 | Kyocera Corporation | Learning method and automatic layout design method |
CN110470306B (zh) * | 2019-08-27 | 2023-03-10 | 中山大学 | 一种可保证连通性约束的基于深度强化学习的多机器人编队导航方法 |
CN114442487B (zh) * | 2022-01-18 | 2023-03-21 | 北京理工大学 | 多智能体系统仿射编队中的领导者选取方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2933247B2 (ja) * | 1991-10-29 | 1999-08-09 | 川崎重工業株式会社 | ロボット装置 |
US6459957B1 (en) * | 2001-04-17 | 2002-10-01 | Fuji Xerox Co., Ltd. | Programmable smart membranes and methods therefor |
JP4087104B2 (ja) * | 2001-11-20 | 2008-05-21 | シャープ株式会社 | 群ロボットシステム |
JP5931685B2 (ja) * | 2012-10-12 | 2016-06-08 | 日本電信電話株式会社 | ロボット協調搬送計画装置、方法、プログラム |
-
2014
- 2014-06-25 JP JP2014130021A patent/JP6174523B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016009354A (ja) | 2016-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6174523B2 (ja) | 行動制御システム、その方法及びプログラム | |
Bircher et al. | Receding horizon path planning for 3D exploration and surface inspection | |
US11231715B2 (en) | Method and system for controlling a vehicle | |
US11673743B2 (en) | Object handling coordination system and method of relocating a transporting vessel | |
Alonso-Mora et al. | Distributed multi-robot formation control among obstacles: A geometric and optimization approach with consensus | |
US11460861B2 (en) | Cloud based robotic control systems and methods | |
Foumani et al. | A cross-entropy method for optimising robotic automated storage and retrieval systems | |
Nestmeyer et al. | Decentralized simultaneous multi-target exploration using a connected network of multiple robots | |
JP5997092B2 (ja) | ロボット協調搬送計画装置、方法及びプログラム | |
CN108290290A (zh) | 导航半自主移动机器人 | |
CN105843255B (zh) | 无人机集群自主飞行的防撞装置及防撞方法 | |
Ioannidis et al. | A path planning method based on cellular automata for cooperative robots | |
Mannucci et al. | Autonomous 3D exploration of large areas: A cooperative frontier-based approach | |
JP6559591B2 (ja) | 行動制御システム、その方法及びプログラム | |
Harder et al. | Formation specification for control of active agents using artificial potential fields | |
Yu et al. | Autonomous formation selection for ground moving multi-robot systems | |
Marín et al. | Event based distributed Kalman filter for limited resource multirobot cooperative localization | |
JP6285849B2 (ja) | 行動制御システム、その方法及びプログラム | |
JP6489923B2 (ja) | 行動制御システム、及びそのプログラム | |
Musiyenko et al. | Simulation the behavior of robot sub-swarm in spatial corridors | |
Shuai et al. | Compliant‐based robotic 3D bin packing with unavoidable uncertainties | |
Moussa et al. | Cluster-based distributed self-reconfiguration algorithm for modular robots | |
Teymouri et al. | Landmark-based distributed topological mapping and navigation in GPS-denied urban environments using teams of low-cost robots | |
Badawy et al. | New approach to enhancing the performance of cloud-based vision system of mobile robots | |
Kang et al. | Path optimization with limited sensing ability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160907 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170620 |
|
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: 20170704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170706 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6174523 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |