JP2017142738A - 行動制御システム、その方法及びプログラム - Google Patents
行動制御システム、その方法及びプログラム Download PDFInfo
- Publication number
- JP2017142738A JP2017142738A JP2016025007A JP2016025007A JP2017142738A JP 2017142738 A JP2017142738 A JP 2017142738A JP 2016025007 A JP2016025007 A JP 2016025007A JP 2016025007 A JP2016025007 A JP 2016025007A JP 2017142738 A JP2017142738 A JP 2017142738A
- Authority
- JP
- Japan
- Prior art keywords
- unit
- void
- control
- robot
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 239000011800 void material Substances 0.000 claims abstract description 256
- 230000015572 biosynthetic process Effects 0.000 claims description 72
- 230000009471 action Effects 0.000 claims description 60
- 230000006870 function Effects 0.000 claims description 25
- 230000010391 action planning Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 40
- 238000005755 formation reaction Methods 0.000 description 66
- 238000012545 processing Methods 0.000 description 33
- 230000006399 behavior Effects 0.000 description 29
- 230000008569 process Effects 0.000 description 27
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000007423 decrease Effects 0.000 description 5
- 208000031968 Cadaver Diseases 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000001276 controlling effect Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002787 reinforcement Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001125 extrusion Methods 0.000 description 2
- 238000010521 absorption reaction Methods 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
- 238000004880 explosion Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000010008 shearing Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Abstract
【解決手段】制御対象物単位Hから頭部制御対象物単位へ制御対象物を移動させる際に、制御対象物単位H内に発生したボイドの位置と、他の制御対象物単位内に発生したボイドの位置とが同じになるように、ボイドを移動させるものとし、制御対象物単位Hから頭部制御対象物単位へ移動する方向ahと尾部制御対象物単位から制御対象物単位T'へ移動する方向atに基づき、制御対象物単位Hと頭部制御対象物単位との間、及び、尾部制御対象物単位と制御対象物単位T'との間において隣接状態を維持するように、制御対象物単位Hにおいてボイドを発生させる。
【選択図】図13
Description
まず、行動制御システム及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
多数のロボットが協調して開始位置における隊列形成状態から、各ロボットが接した状態を維持しつつ移動を行い、目標位置での隊列形成を行う任務は、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型のロボットの使用を想定する。図2に示すように、壁で区切られた部屋(ただし図中、壁を省略する)においての開始位置から目標位置まで複数のロボットの移動によって実現するものである。
それぞれのロボットi(iはロボット番号を表すi=0,1,2,3,…,p-1)の初期位置を(Xr0[i],Yr0[i],Zr0[i])とし、目標位置を(Xre[i],Yre[i],Zre[i])とするとき、本問題は、初期位置に配置されたロボットが、目標位置まで移動するための行動計画を求めることと定義できる。目標位置(Xre[i],Yre[i],Zre[i])の集合をGとする。
iをロボット番号としたとき、ロボットiの各状態(ロボットの位置と行動)は離散値で表現される。部屋をX,Y,Zの直交座標系からなる3次元空間で表すと、X軸、Y軸、Z軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋(3次元空間)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
また、行動主体は部屋に配置されている各ロボットとなる。ロボットi(iはロボット番号)の行動aは、静止、縦横高さ方向への1格子分の移動、の計7種類のうちのいずれかを取る。例えば、a∈{0,1,2,3,4,5,6}として、
0: 静止
1: 三次元空間内でX軸正方向に1格子だけ移動する
2: 三次元空間内でY軸正方向に1格子だけ移動する
3: 三次元空間内でX軸負方向に1格子だけ移動する
4: 三次元空間内でY軸負方向に1格子だけ移動する
5: 三次元空間内でZ軸正方向に1格子だけ移動する
6: 三次元空間内でZ軸負方向に1格子だけ移動する
とする。
このような任務環境における状態空間は、ロボット数×3の次元数の状態を持ち、かつ選択可能な行動数は、ロボットの行動(=7通り)のロボット数乗だけ存在する。例えば、ロボット数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらにロボット数が1台増えるごとに、その状態数は8000倍増加していくことになる。本実施形態の[問題設定]の項で説明したように、ロボット同士が接しているという拘束条件を取り入れる場合、ロボットのお互いの移動を考慮したうえで探索計算行わなければならないために、根本的な計算量の削減は難しく、複数ロボットを使用する場合の大きな問題となっている。
そこで、本実施形態では、これらの計算負荷の問題を解決するための方策の一つとして、ロボットの動作決定における探索計算を二つに分けることとする。ここでそのための準備として、ある隊列Gaをなしているロボットが、次になすべき隊列の形状としてGbを考える。隊列Gaと隊列Gbの間には、隊列Gaにて存在し、隊列Gbにて存在しない位置にあるロボットと、隊列Gbにて存在し隊列Gaにて存在しない位置にあるロボットがある。前者を尾部ロボットとし、後者を頭部ロボットとする。本実施形態では、ちょうど、頭部ロボット位置にあるロボットが、ロボット群の移動において先頭を務め、尾部ロボットが、移動の最後尾を務めるロボットになるように、隊列Gaと隊列Gbを定義する。
これらの二つの探索計算の計算負荷の軽減のため、本実施形態では、ボイド制御の考え方を導入する。まず、ここでいうボイドとは、あるロボットが別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、ロボットの移動する方向と反対の方向に移動する仮想的な存在である。こうした群ロボットの隊列形成問題においては、複数のロボットの動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数のロボットの動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。
さらに、本実施形態では、図5に示すように、8つの田の字状に隣接したロボットを一つの単位とし(ロボット単位)、ロボットは、この田の字型のロボット単位を維持しつつ移動を行うとする。言い換えると、8台毎に1つのロボット単位を構成し、1つのロボット単位を構成する8台のロボットはそれぞれ3つの方向において1つのロボット単位を構成する他のロボットと隣接した状態を維持しつつ移動を行う。このロボット単位の集団は、互いにロボット単位ごとに一面を共有し、接しながら移動をするように制御される。
Xri1 = 2 × Xr_unit[j]
Yri1 = 2 × Yr_unit[j]
Zri1 = 2 × Zr_unit[j]
Xri2 = 2 × Xr_unit[j] + 1
Yri2 = 2 × Yr_unit[j]
Zri2 = 2 × Zr_unit[j]
Xri3 = 2 × Xr_unit[j]
Yri3 = 2 × Yr_unit[j] + 1
Zri3 = 2 × Zr_unit[j]
Xri4 = 2 × Xr_unit[j] + 1
Yri4 = 2 × Yr_unit[j] + 1
Zri4 = 2 × Zr_unit[j]
Xri5 = 2 × Xr_unit[j]
Yri5 = 2 × Yr_unit[j]
Zri5 = 2 × Zr_unit[j] + 1
Xri6 = 2 × Xr_unit[j] + 1
Yri6 = 2 × Yr_unit[j]
Zri6 = 2 × Zr_unit[j] + 1
Xri7 = 2 × Xr_unit[j]
Yri7 = 2 × Yr_unit[j] + 1
Zri7 = 2 × Zr_unit[j] + 1
Xri8 = 2 × Xr_unit[j] + 1
Yri8 = 2 × Yr_unit[j] + 1
Zri8 = 2 × Zr_unit[j] + 1
である。
本実施形態では、ロボットが動作を開始する前にあらかじめ、2つの動作計画のために使用する任務空間内の各位置単位の入口位置単位PeUからのマンハッタン距離の計算を行う。そのために、まず、任務空間内の各位置単位(X,Y,Z)にて、入口位置単位PeUからの各位置単位へのマンハッタン距離δ[X][Y][Z]を以下の計算手続きで求める。なお、以下において、説明を簡単にするため「位置単位」を単に「位置」ともいい、「入口位置単位PeU」を単に「入口位置Pe」ともいう。
(1)各位置(X,Y,Z)において、next[a][X][Y][Z]を用意し、隣接する行動aの方向に障害物があるか、もしくは位置(X,Y,Z)が入口位置Pe以外の目標位置の集合GU内の位置の場合に、隣接する行動aの方向の位置が目標位置の集合GUの外であるか、もしくは位置(X,Y,Z)が目標位置の集合GU外の場合に、隣接する行動aの方向の位置が入口位置Pe以外の目標位置の集合GU内の位置である場合には、next[a][X][Y][Z]←0とし、それ以外の場合はnext[a][X][Y][Z]←1とする。すなわち、next[a][X][Y][Z]=0は位置(X,Y,Z)において行動aを実行できないことを、next[a][X][Y][Z]=1は位置(X,Y,Z)において行動aを実行できることを意味する。
(2)状態空間内の各位置(X,Y,Z)のマンハッタン距離δ[X][Y][Z]を状態空間内の格子数より大きな値s_maxに初期化する。
(3)入口位置Peのマンハッタン距離δを0に初期化する。
(4)入口位置Pe以外の、各位置(X,Y,Z)の全行動aについて、next[a][X][Y][Z]の値が0ではない場合の、行動aによって位置(X,Y,Z)から移動した先の位置(X’,Y’,Z’)でのマンハッタン距離δ[X’][Y’][Z’]を調べ、その最小値に1を加えた値が、現在のδ[X][Y][Z]よりも小さい場合は、その値をδ[X][Y][Z]に代入する。
(5)上述の(4)の処理にて、δ[X][Y][Z]値の更新がなくなるまで、(4)を繰り返す。
(1)開始位置の集合SU内にて、最もマンハッタン距離δ[X][Y][Z]値の小さな位置をPsとする。
(2)位置Psに隣接し、位置Psにおけるマンハッタン距離δよりも1だけ小さなマンハッタン距離δを持つ開始位置の集合SUの外の位置をパスPの始点p[0]とする。
(3)ip←0とする。
(4)位置p[ip]に隣接する位置の中で、位置p[ip]におけるマンハッタン距離δよりも1だけ小さなマンハッタン距離δを持つ位置をp[ip+1]とする。もし、p[ip+1]が入口位置Peに一致しないならば、ipをインクリメントし、(4)を繰りかえす。一致する場合は(5)へ移行する。
(5)目標位置の集合GU及びパスPの何れにも含まれない全ての位置のマンハッタン距離δをs_maxに再設定する。
(6)開始位置の集合SU内の全ての位置(X,Y,Z)の全行動aについて、next[a][X][Y][Z]の値が0ではない場合の、行動aによって位置(X,Y,Z)から移動した先の位置(X’,Y’,Z’)でのマンハッタン距離δ[X’][Y’][Z’]を調べ、その最小値に1を加えた値が、現在のδ[X][Y][Z]よりも小さい場合は、その値をδ[X][Y][Z]に代入する。
(7)上述の(6)の処理にて、δ[X][Y][Z]値の更新がなくなるまで、(6)を繰り返す。
(8)目標位置の集合GU内の全ての点のマンハッタン距離δの符号を負にする。この処理により、目標位置の集合GU内では、入口位置Peより離れるほどマンハッタン距離δが小さくなる。
(1)各ロボット単位の位置(Xr_unit[j],Yr_unit[j],Zr_unit[j])において、位置(Xr_unit[j],Yr_unit[j],Zr_unit[j])に隣接し、かつロボットが存在しておらず、かつパスP及び目標位置の集合GUの何れかに属する位置の中で、マンハッタン距離δ[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]の値より1小さい、マンハッタン距離δをもつ位置を求め、その位置のマンハッタン距離δをδ_neighbor_max[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]とする。
(2)全ロボット単位中で最大のδ_neighbor_max[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]の値を持つロボット単位H(なお、ロボット単位Hの位置を(Xrh,Yrh,Zrh)とする)を選択し、ロボット単位Hに隣接し、かつロボットが存在しておらず、かつパスP及び目標位置の集合GUの何れかに属する位置の中で、マンハッタン距離δがロボット単位Hのそれより1小さいマンハッタン距離δをもつ位置を頭部ロボット単位Dの位置とする。ロボット単位Hから頭部ロボット単位Dの位置に向かう行動の方向をa_headとする。
(1)各ロボット単位位置(Xr_unit[j],Yr_unit[j],Zr_unit[j])において、
δ'[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]
=δ[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]-δ[Xrh][Yrh][Zrh]
を計算する。なお、δ[Xrh][Yrh][Zrh]はロボット単位Hのマンハッタン距離であり、δ'[Xr_unit[j]][Yr_unit[j]][Zr_unit[j]]は、ロボット単位Hの位置から各ロボット単位位置(Xr_unit[j],Yr_unit[j],Zr_unit[j])までのマンハッタン距離を表す。
(1)頭部決定処理Head_Robot_Decisionを行う。
(2)尾部ロボット決定処理Tail_robot_Decisionを行う。
(3)上述の(2)にて特定した尾部ロボット単位Tを、現在の隊列Gaから削除し、隊列Gaに頭部ロボット単位Dを追加し、隊列Gbとする。
移動先隊列決定用動作計画において頭部ロボット単位Dと尾部ロボット単位Tが決定され、次の隊列Gbが決定されたので、現隊列Gaから次隊列Gbへの変形を各ロボットの移動によって実現するための探索計算を各ロボット動作決定用動作計画にて行う。
H0(0,1,0), H1(1,1,0), H2(0,1,1), H3(1,1,1),H4(0,0,0), H5(1,0,0), H6(0,0,1), H7(1,0,1)
(1)void[8]の位置(8番目に発生するボイドのロボット単位H内ローカル位置(以下、ボイドの発生位置ともいう))は、atに平行な座標軸の座標値において、atが正方向であれば1,負方向であれば0でなければならない。例えば、at=1のとき(ロボット単位Tからロボット単位T'へ向かう行動の方向がX軸正方向のとき)、void[8]の(ローカル位置の)X座標は1でなければならない。
(void[7]とvoid[8]の位置をatに垂直な面に投影したときの面内位置を示す二つの座標成分が、二つの座標成分とも異なる値であり、かつ、atに平行な座標軸の座標値において、void[7]とvoid[8]では同じ値であり、かつ、(i)void[6]の位置をatに垂直な面に投影したときの面内位置が、void[7]とvoid[8]の位置をatに垂直な面に投影したときの面内位置と異なる位置であるか、または(ii)void[6]の位置が、void[7]またはvoid[8]と同じ位置であり、かつvoid[5]の位置が、void[6]の対角の位置(全座標値が異なる位置)以外の位置である。) or
(void[7]とvoid[8]の位置が同じ位置であり、かつ、void[6]の位置の座標値のうちすくなくとも一つが、void[8]の座標値に等しい。それらvoid[6]の位置のうち、さらに、void[6]を atに垂直な面に投影したときの面内位置が、void[8]と対角の位置のときは、void[5]の位置はvoid[8]の対角の位置(全座標値が異なる位置)以外の位置である。)
でなければならない。
(void[1]とvoid[2]の位置をahに垂直な面に投影したときの面内位置を示す二つの座標成分とも異なる値であり、かつ、ahに平行な座標軸の座標値において、void[1]とvoid[2]では同じ値であり、かつ、(i)void[3]の位置をahに垂直な面に投影したときの面内位置が、void[1]とvoid[2]の位置をahに垂直な面に投影したときの面内位置と異なる位置であるか、または、(ii)void[3]の位置が、void[1]と(または)void[2]と同じ位置であり、かつvoid[4]の位置が、void[3]の対角の位置(全座標値が異なる位置)以外の位置である。) or
(void[1]とvoid[2]の位置が同じ位置であり、かつ、void[3]の位置の座標値のうちすくなくとも一つが、void[1]の座標値に等しい。それらvoid[3]の位置のうち、さらに、void[3]を ahに垂直な面に投影したときの面内位置が、void[1]と対角の位置のときは、void[4]は、void[1]の対角の位置(全座標値が異なる位置)以外の位置である。)
でなければならない。
(1)If ah=2 or 3 or 6 then void[1]=H7, void[2]=H2
(2)If ah=4 or 1 or 5 then void[1]=H0, void[2]=H5
(3)If at=1 or 2 or 5 then void[7]=H6, void[8]=H3
(4)If at=3 or 4 or 6 then void[7]=H1, void[8]=H4
(5)If at=5 or 6 then void[6]=H0 or void[6]=H5 or void[6]=H2 or void[6]=H7
(6)If ah=5 or 6 then void[3]=H6 or void[3]=H3 or void[3]=H1 or void[3]=H4
(7)その他のvoid[k]をまだvoid[1],void[2],void[7],void[8],void[3],void[6]にまだ使用されていない位置に割り当てる。
(1)void[1],void[2]の位置を同じ位置とし、ともに、ahに平行な座標軸の座標値において、ahが正方向であれば0,負方向であれば1とする。
j_z[iv_prev+k][t] ) (t=0,1,2,3…)で表現する。
(1)ロボット単位H内、各ボイドの発生位置を[ボイド発生条件]により決定する。例えば、[Decision_Void_Birth]または[Decision_Void_Birth_2]を実行する。
(1)尾部ロボット単位Tの位置を(void_unit_trj_x[0], void_unit_trj_y[0], void_unit_trj_z[0])とする。tu←1とし、尾部ロボット単位Tよりも小さなマンハッタン距離δを持つ隣接のロボット単位の位置を(void_unit_trj_x[tu], void_unit_trj_y[tu], void_unit_trj_z[tu])とする。このロボット単位(void_unit_trj_x[1], void_unit_trj_y[1], void_unit_trj_z[1])の位置が、ロボット単位T'に相当する。
以下、上記の各ロボット動作決定用動作計画を使用して、ボイドをロボット単位Hの位置から尾部ロボット単位Tの位置に移動させる制御方法を示す。図8に示すように、ロボット単位H内の頭部ロボット単位Dに接する位置のロボットと、ロボット単位T'内の尾部ロボット単位Tに接する位置にあるロボット位置に空白が生じないように、ロボット単位Hでのボイド発生と尾部ロボット単位Tでのボイド追い出しをしていることで、ロボット群全体の接続は保たれている。なお、本実施形態では、ロボット単位Hとロボット単位T'が一致しても構わない。本制御方法で、各ロボット単位内において、ボイドが一つ以内に収まるように制御されている。
(1) (iv_prev +1)が全ロボット数に等しくないならば、Void_Trajectory_Decisionを実行する。trj_cnt[iv_prev+1],…, trj_cnt[iv_prev+8]に初期値(例えば-1)を設定する。iv_prevの値を8回インクリメントする。等しいならば(3)へ
i= trj_cnt[iv]からtrj_num[iv]まで以下を行う:
位置nv(void_trj_x[trj_num[iv]-i-1],void_trj_y[trj_num[iv]-i-1], void_trj_z[trj_num[iv]-i-1])が含まれるロボット単位Nvに他のvoidがないこと、自分より発生番号の小さいvoidが、すべてロボット単位Nvよりもマンハッタン距離δの大きいロボット単位に所属していることを確認する。確認できたなら、nvの位置にあるロボットを位置(void_trj_x[trj_num[iv]-i],void_trj_y[trj_num[iv]-i],void_trj_z[trj_num[iv]-i])に移動させる。trj_cnt[iv]をインクリメントする。確認できなくなるまで処理を繰り返し、確認できないならなにもせず、ループ終了する。
現在のvoid[iv]の位置から、atの方向の逆方向に隣接していて、たどれるロボットを全て、at方向に1ステップ移動させて、trj_cnt[iv]←‐10とする。
ロボット単位Hが8つのロボットで満たされているならば、void[k]の発生位置にあるロボットと、そのロボットに行動ahの方向で隣接しているロボット、さらにその先にahの方向で隣接しているロボットがあればそのロボットを皆まとめて、ahの方向に1ステップ移動させる。trj_cnt[iv]←0とする。満たされてない場合なにもしない。
i= trj_cnt[iv]からtrj_num[iv]まで以下を行う:
位置nv(void_trj_x[trj_num[iv]-i-1],void_trj_y[trj_num[iv]-i-1], void_trj_z[trj_num[iv]-i-1])が含まれるロボット単位Nvに他のvoidがないこと、自分より発生番号の小さいvoidが、すべてロボット単位Nvよりもマンハッタン距離δの大きいロボット単位に所属していることを確認する。確認できたなら、nvの位置にあるロボットを位置(void_trj_x[trj_num[iv]-i],void_trj_y[trj_num[iv]-i],void_trj_z[trj_num[iv]-i])に移動させる。trj_cnt[iv]をインクリメントする。確認できなくなるまで処理を繰り返し、確認できないならなにもせず、ループ終了する。
現在のvoid[iv]の位置から、atの方向の逆方向に隣接していて、たどれるロボットを全て、at方向に1ステップ移動させて、trj_cnt[iv]←‐10とする。
第一実施形態に係る行動制御システム100は、以上に説明した各処理によって構成される全体動作について以下にまとめる。
(1)移動先隊列決定用動作計画のために使用するマンハッタン距離δ(各位置単位から入口位置単位PeUまでのマンハッタン距離)を計算する。
(2)以下(3),(4)を全GU内にロボットが充填されるまで繰り返す。
(3)移動先隊列決定用動作計画処理Next_Formation_Decisionを実行する。
(4)各ロボット動作決定用動作計画処理(ここではVoid_Control)を実行する。
動作計画部110は、上述の[マンハッタン距離δの計算]及び[パスPの決定]で説明した方法により、開始位置の集合SU、目標位置の集合GU及びパスPの何れかの各位置から入口位置Peまでのマンハッタン距離δを、ロボットの任務行動開始前に事前に計算し(S110)、記憶部140に格納する。ただし、目標位置の集合の各位置から入口位置Peまでのマンハッタン距離δは、その符号を負とする。また、開始位置の集合SU、目標位置の集合GU及びパスPの何れにも含まれない全ての位置のマンハッタン距離δをs_max(状態空間内の格子数より大きな値)として記憶部140に格納する。なお、別装置でマンハッタン距離δを計算しておき、ロボットの任務行動開始前に事前に記憶部140に格納しておけば、行動制御システム100は、動作計画部110を備えなくともよい。
入力部160には、p個の開始位置の集合S={(Xr0[0],Yrs[0]),(Xr0[1],Yrs[1]),…,(Xr0[p-1],Yrs[p-1])}及びp個の目標位置の集合G={(Xre[0],Yre[0]),(Xre[1],Yre[1]),…,(Xre[p-1],Yre[p-1])}が入力され、記憶部140に記憶される。
記憶部140には、各位置sから入口位置Peまでのマンハッタン距離δが記憶されているとする。sの取りうる範囲は、対象となる三次元空間上の領域内のロボット単位が存在しうる全ての座標である。
行動制御システム100が実装されているロボットも含め、全てのロボットは、通信部150を介して、三次元平面上の上下左右前後方向(以下「6方向」ともいう)において隣接する他のロボットと通信することができる。
行動選択部120は、記憶部140からマンハッタン距離δを取り出す。
位置更新部123は、各i=0,1,…,p-1について、i番目のロボットの現在の位置(Xr[i],Yr[i])において、行動選択部120で決定した行動を実行した場合のロボットの移動後(行動後)の位置(Xr'[i],Yr'[i])を計算し、計算された(Xr'[i],Yr'[i])で記憶部140に格納されたi番目のロボットの位置を更新する(S125)。言い換えれば、位置更新部123は、行動選択部120で決定した行動に基づいて、ロボットが行動した場合に想定される位置(以下、「想定位置」ともいう)を計算し、ロボットの位置を更新し記憶部140に格納する。具体的には、図14のs123(位置の更新)を行う。
隣接状態判定部124は、ロボットの三次元空間上の上下左右前後の隣接する位置に、障害物または他のロボットが存在するか否かを判定し、(S124),判定結果を記憶部140に格納する。
位置判定部126は、隣接状態判定部124の判定結果を用いて、行動後位置を求め、行動後位置(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])に合わせて補正してもよい。
このような構成により、多数のロボットの存在を考慮しつつも、計画計算に必要な計算時間や計算機の記憶容量を少ないものに低減可能で、かつ、ロボット同士が接したままの状態を維持しつつ任意の開始位置における隊列形成状態から、他の任意の目標位置における隊列形成状態へ障害物のある環境にて変形動作を行うことを可能とし、従来よりも必要なロボット数を小さくすることができる。ロボットが変形を行う空間に含まれる格子数に比例した計算量で、ロボットの動作計画が可能であり、その動作計画の結果を利用することで、ロボット台数の2乗に比例した実行時間で、任意形状の障害物が存在する環境において、ロボットに任意の形状から任意の形状への変形をさせることが可能である。
本実施形態では、各格子(マス)は、立方体であるが、他の形状であってもよい。格子は左右方向、上下方向及び前後方向に連続して配置される。また、各格子は左右方向で他の二つの格子と隣接し、上下方向で他の二つの格子と隣接し、前後方向で他の二つの格子と隣接する。言い換えると、各格子は、ロボットの移動できる方向と同じ方向においてのみ、他の格子と隣接する。この条件を満たせば、各格子はどのような形状であってもよい。また、「直交」とは、厳密に「垂直に交わること」を意味しなくともよく、例えば、各格子は、平行六面体であってもよく、各格子が他の二つの格子と隣接する方向の一方を上下方向とし、他方を左右方向とすればよく、上下方向及び左右方向とからなる平面に対して平行でない方向を前後方向とすればよい。
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
Claims (3)
- M,N,Qをそれぞれ2以上の整数の何れかとし、Rを2以上の整数の何れかとし、pをM×N×Q×Rとし、開始位置の集合に配置されたp台の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御システムであって、
第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、第一方向と第二方向との成す平面に対して平行でない方向を第五方向とし、第五方向に対して反対の方向を第六方向とし、M×N×Q個の位置からなる一つの位置単位とし、各開始位置及び各目標位置は、それぞれ前記第一方向〜第六方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、前記目標位置の集合及び前記開始位置の集合はそれぞれR個の位置単位からなる一塊の任意の形状を成し、
前記制御対象物は、当該制御対象物の3次元空間上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、第四方向において隣接する第四位置とし、第五方向において隣接する第五位置とし、第六方向において隣接する第六位置とし、静止するか、または、3次元空間上の第一〜第六位置の何れかに移動するように制御されるものとし、
p台の前記制御対象物は、M×N×Q台毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成するM×N×Q台の制御対象物はそれぞれ3つ以上の方向において当該制御対象物単位を構成する他の制御対象物と隣接し、
制御対象物単位がその制御対象物単位の現在の位置単位において各行動を取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、または、3次元空間上の第一〜第六方向の何れかのN×N×Q個の位置からなる位置単位に移動するように制御されるものとし、
前記価値関数が記憶される記憶部と、
複数の制御対象物単位が成すある隊列をGaとし、複数の制御対象物単位が成す他の隊列をGbとし、隊列Gbに存在し隊列Gaに存在しない制御対象物単位を頭部制御対象物単位とし、隊列Gaに存在し隊列Gbに存在しない制御対象物単位を尾部制御対象物単位とし、前記開始位置の集合に配置されたp台の前記制御対象物を前記目標位置の集合に移動させる際に、頭部制御対象物単位が移動の先頭を務めるように、前記価値関数を用いてある時刻の隊列Gaに対して隊列Gbを決定する移動先隊列決定用動作計画部と、
頭部制御対象物単位の位置にM×N×Q台の制御対象物が位置するように各制御対象物の動作を制御する各制御対象物動作用動作計画部とを含み、
前記価値関数は、ある位置単位から前記所定の入口位置を含む位置単位までのマンハッタン距離を用いて得られ、
制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、隊列Gaの中で最もマンハッタン距離が小さい制御対象物単位を制御対象物単位Hとし、制御対象物単位Hから頭部制御対象物単位へ移動する方向をahとし、尾部制御対象物単位に隣接し、尾部制御対象物単位よりもマンハッタン距離が小さい制御対象物単位を制御対象物単位T'とし、尾部制御対象物単位から制御対象物単位T'へ移動する方向をatとし、制御対象物単位Hから頭部制御対象物単位へ制御対象物を移動させる際に、制御対象物単位H内に発生したボイドの位置と、他の制御対象物単位内に発生したボイドの位置とが同じになるように、ボイドを移動させるものとし、方向ahと方向atに基づき、制御対象物単位Hと頭部制御対象物単位との間、及び、尾部制御対象物単位と制御対象物単位T'との間において隣接状態を維持するように、制御対象物単位Hにおいてボイドを発生させる、
行動制御システム。 - M,N,Qをそれぞれ2以上の整数の何れかとし、Rを2以上の整数の何れかとし、pをM×N×Q×Rとし、開始位置の集合に配置されたp台の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御方法であって、
第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、第一方向と第二方向との成す平面に対して平行でない方向を第五方向とし、第五方向に対して反対の方向を第六方向とし、M×N×Q個の位置からなる一つの位置単位とし、各開始位置及び各目標位置は、それぞれ前記第一方向〜第六方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、前記目標位置の集合及び前記開始位置の集合はそれぞれR個の位置単位からなる一塊の任意の形状を成し、
前記制御対象物は、当該制御対象物の3次元空間上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、第四方向において隣接する第四位置とし、第五方向において隣接する第五位置とし、第六方向において隣接する第六位置とし、静止するか、または、3次元空間上の第一〜第六位置の何れかに移動するように制御されるものとし、
p台の前記制御対象物は、M×N×Q台毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成するM×N×Q台の制御対象物はそれぞれ3つ以上の方向において当該制御対象物単位を構成する他の制御対象物と隣接し、
制御対象物単位がその制御対象物単位の現在の位置単位において各行動を取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、または、3次元空間上の第一〜第六方向の何れかのN×N×Q個の位置からなる位置単位に移動するように制御されるものとし、
前記価値関数は記憶部に記憶されるものとし、
移動先隊列決定用動作計画部が、複数の制御対象物単位が成すある隊列をGaとし、複数の制御対象物単位が成す他の隊列をGbとし、隊列Gbに存在し隊列Gaに存在しない制御対象物単位を頭部制御対象物単位とし、隊列Gaに存在し隊列Gbに存在しない制御対象物単位を尾部制御対象物単位とし、前記開始位置の集合に配置されたp台の前記制御対象物を前記目標位置の集合に移動させる際に、頭部制御対象物単位が移動の先頭を務めるように、前記価値関数を用いてある時刻の隊列Gaに対して隊列Gbを決定する移動先隊列決定用動作計画ステップと、
各制御対象物動作用動作計画部が、頭部制御対象物単位の位置にM×N×Q台の制御対象物が位置するように各制御対象物の動作を制御する各制御対象物動作用動作計画ステップとを含み、
前記価値関数は、ある位置単位から前記所定の入口位置を含む位置単位までのマンハッタン距離を用いて得られ、
制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、隊列Gaの中で最もマンハッタン距離が小さい制御対象物単位を制御対象物単位Hとし、制御対象物単位Hから頭部制御対象物単位へ移動する方向をahとし、尾部制御対象物単位に隣接し、尾部制御対象物単位よりもマンハッタン距離が小さい制御対象物単位を制御対象物単位T'とし、尾部制御対象物単位から制御対象物単位T'へ移動する方向をatとし、制御対象物単位Hから頭部制御対象物単位へ制御対象物を移動させる際に、制御対象物単位H内に発生したボイドの位置と、他の制御対象物単位内に発生したボイドの位置とが同じになるように、ボイドを移動させるものとし、方向ahと方向atに基づき、制御対象物単位Hと頭部制御対象物単位との間、及び、尾部制御対象物単位と制御対象物単位T'との間において隣接状態を維持するように、制御対象物単位Hにおいてボイドを発生させる、
行動制御方法。 - 請求項1の行動制御システムとしてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016025007A JP6559591B2 (ja) | 2016-02-12 | 2016-02-12 | 行動制御システム、その方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016025007A JP6559591B2 (ja) | 2016-02-12 | 2016-02-12 | 行動制御システム、その方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017142738A true JP2017142738A (ja) | 2017-08-17 |
JP6559591B2 JP6559591B2 (ja) | 2019-08-14 |
Family
ID=59628553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016025007A Active JP6559591B2 (ja) | 2016-02-12 | 2016-02-12 | 行動制御システム、その方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6559591B2 (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018010440A (ja) * | 2016-07-13 | 2018-01-18 | 日本電信電話株式会社 | 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム |
JP2019074997A (ja) * | 2017-10-18 | 2019-05-16 | 日本電信電話株式会社 | 制御装置、方法及びプログラム |
JP2019075013A (ja) * | 2017-10-18 | 2019-05-16 | 日本電信電話株式会社 | 隊列制御装置、隊列制御方法、およびプログラム |
JP2019082800A (ja) * | 2017-10-30 | 2019-05-30 | 日本電信電話株式会社 | 隊列制御装置、隊列制御方法、およびプログラム |
JP2020111180A (ja) * | 2019-01-11 | 2020-07-27 | ダブル技研株式会社 | 空中搬送装置及び空中搬送方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015201068A (ja) * | 2014-04-09 | 2015-11-12 | 日本電信電話株式会社 | 行動制御装置、方法及びプログラム |
JP2016009354A (ja) * | 2014-06-25 | 2016-01-18 | 日本電信電話株式会社 | 行動制御システム、その方法及びプログラム |
-
2016
- 2016-02-12 JP JP2016025007A patent/JP6559591B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015201068A (ja) * | 2014-04-09 | 2015-11-12 | 日本電信電話株式会社 | 行動制御装置、方法及びプログラム |
JP2016009354A (ja) * | 2014-06-25 | 2016-01-18 | 日本電信電話株式会社 | 行動制御システム、その方法及びプログラム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018010440A (ja) * | 2016-07-13 | 2018-01-18 | 日本電信電話株式会社 | 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム |
JP2019074997A (ja) * | 2017-10-18 | 2019-05-16 | 日本電信電話株式会社 | 制御装置、方法及びプログラム |
JP2019075013A (ja) * | 2017-10-18 | 2019-05-16 | 日本電信電話株式会社 | 隊列制御装置、隊列制御方法、およびプログラム |
JP2019082800A (ja) * | 2017-10-30 | 2019-05-30 | 日本電信電話株式会社 | 隊列制御装置、隊列制御方法、およびプログラム |
JP2020111180A (ja) * | 2019-01-11 | 2020-07-27 | ダブル技研株式会社 | 空中搬送装置及び空中搬送方法 |
Also Published As
Publication number | Publication date |
---|---|
JP6559591B2 (ja) | 2019-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6559591B2 (ja) | 行動制御システム、その方法及びプログラム | |
Bency et al. | Neural path planning: Fixed time, near-optimal path generation via oracle imitation | |
US11231715B2 (en) | Method and system for controlling a vehicle | |
CN113050640B (zh) | 一种基于生成对抗网络的工业机器人路径规划方法和系统 | |
CN112229419B (zh) | 一种动态路径规划导航方法及系统 | |
JP2014211667A (ja) | ロボット協調搬送計画装置、方法及びプログラム | |
JP6489923B2 (ja) | 行動制御システム、及びそのプログラム | |
CN112650306A (zh) | 一种基于动力学rrt*的无人机运动规划方法 | |
Goel et al. | Fast exploration using multirotors: Analysis, planning, and experimentation | |
JP6685957B2 (ja) | 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム | |
JP6633467B2 (ja) | 行動制御システム、行動制御方法、プログラム | |
CN112148035A (zh) | 多无人机轨迹优化方法、装置、存储介质及计算机设备 | |
JP6285849B2 (ja) | 行動制御システム、その方法及びプログラム | |
Rubtsov et al. | Simulation in MATLAB group control when conducting reconnaissance in areas | |
JP6559582B2 (ja) | 行動制御システム、その方法及びプログラム | |
Ivanov et al. | Distribution of roles in a dynamic swarm of robots in conditions of limited communications | |
Ozbek et al. | Reinforcement learning based air combat maneuver generation | |
Chu et al. | Track planning of multi-rotor unmanned aerial vehicle in the complex environment space | |
Kawabata | A trajectory generation method for mobile robot based on iterative extension-like process | |
US20220388164A1 (en) | Moving robot, moving robot control method and program therefor | |
Axak et al. | The Development of a Multi-Agent System for Controlling an Autonomous Robot. | |
Muliukha et al. | Cyber-physical approach to the network-centric robotics control task | |
Aloui et al. | Systematic literature review of collaborative SLAM applied to autonomous mobile robots | |
JP6553000B2 (ja) | 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム | |
Adinandra et al. | Flexible transportation in warehouses |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190208 |
|
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: 20190716 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190717 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6559591 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |