JP6285849B2 - 行動制御システム、その方法及びプログラム - Google Patents

行動制御システム、その方法及びプログラム Download PDF

Info

Publication number
JP6285849B2
JP6285849B2 JP2014232549A JP2014232549A JP6285849B2 JP 6285849 B2 JP6285849 B2 JP 6285849B2 JP 2014232549 A JP2014232549 A JP 2014232549A JP 2014232549 A JP2014232549 A JP 2014232549A JP 6285849 B2 JP6285849 B2 JP 6285849B2
Authority
JP
Japan
Prior art keywords
robot
control
void
action
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.)
Active
Application number
JP2014232549A
Other languages
English (en)
Other versions
JP2016095754A (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.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
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, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014232549A priority Critical patent/JP6285849B2/ja
Publication of JP2016095754A publication Critical patent/JP2016095754A/ja
Application granted granted Critical
Publication of JP6285849B2 publication Critical patent/JP6285849B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Description

本発明は、複数の制御対象物の行動を制御する技術に関する。例えば、複数のロボットを、開始位置における隊列形成状態から協調して移動させ、障害物を回避させ、目標位置で隊列形成をさせるための各ロボットの行動計画を求めるロボット協調制御技術に関する。
近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている(例えば、非特許文献1参照)。多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
このような計画計算を行うための効果的な手法の一つとして、マルコフ決定過程における動的計画法や強化学習の手法があり、さまざまな研究が行われている(例えば、非特許文献2参照)。
また、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位値の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究もおこなわれている。例えば、非特許文献3に示すものでは任意の矩形形状隊列から他の矩形形状隊列までの隊列制御が示されている。
また、非特許文献4に示す研究に至る一連の研究や非特許文献5では、ある隊列から他の隊列に変化する隊列制御が示されている。
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. A.Becker, G.Habibi, J.Werfel, M.Rubenstein, and J.McLurkin, "Massive Uniform Manipulation: Controlling Large Populations of Simple Robots with a Common Input Signal", Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems, Japan, pp.520-527, November, 2013. Stanton Wong1 and Jennifer Walter "Deterministic Distributed Algorithm for Self-Reconfiguration of Modular Robots from Arbitrary to Straight Chain Configurations", Proceedings of the 2013 IEEE International Conference on Robotics and Automation (ICRA), Karlsruhe, Germany, pp.537-543, May 6-10, 2013. Michael Rubenstein, Alejandro Cornejo, Radhika Nagpal, "Programmable self-assembly in a thousand-robot swarm", SCIENCE, 2014, Vol. 345, Issue 6198, pp.795-799.
しかしながら、非特許文献1の手法では、流体力学的な特性をロボット動作に組み込む手法を用いて群ロボットの動作を制御しており、低い計算負荷での制御を可能にしている利点があるが、任意の形状の隊列形成をすることができるとは限らない。
また、非特許文献2の手法のように、マルコフ決定過程における動的計画法や強化学習を使用してこのような計画を行おうとすると、単体のロボットを使用する場合に比べて複数のロボットを使用する場合には、その計算に要する時間や計算機の記憶容量がロボットの数に対して指数関数的に増大してしまう。その主たる原因となるのが、探索計算のためのマルコフ状態空間内の状態数の莫大な増加である。非特許文献2では、検証された強化学習の手法では、ロボット数の増加に伴い、指数関数的に計算負荷が増加するという、マルコフ状態空間内の爆発問題への解決策は示されていない。
また、非特許文献1,2の手法ともに、付加的な位置計測用の装備を必要とする。
また、非特許文献3では、ロボットが接したままの状態を維持するという条件を考慮して、付加的な位置計測用の装備を必要としないが、その実現には障害物の存在を必要としており、動作計画に必要な計算量が、ロボットの台数の2乗に比例してしまい、ロボットの台数の増加とともに急激に上昇する。
非特許文献4の手法においては、一度、線形隊列への変換をしなければならず、可能な隊列形成動作そのものへの制約が大きい。
非特許文献5の手法においては、開始隊列と目標隊列が共有する点がなければならないことや、障害物を考慮していないなどの問題点がある。
このような現状に鑑みて、本発明では、多数のロボットの存在を考慮しつつも、計画計算に必要な計算時間や計算機の記憶容量を一台のロボットを扱うときと同様に少ないものに低減可能で、かつ、ロボット同士が接したままの状態を維持しつつ任意の開始位置における隊列形成状態から、他の任意の目標位置における隊列形成状態へ障害物のある環境にて変形動作を行うことを可能とする、ロボット協調隊列形成技術を提供することを目的とする。
上記の課題を解決するために、本発明の一態様によれば、行動制御システムは、開始位置の集合に配置された複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う。行動制御システムは、第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、各開始位置及び各目標位置は、それぞれ第一方向〜第四方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、目標位置の集合及び開始位置の集合はそれぞれ一塊の任意の形状を成し、制御対象物は、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に存在する他の制御対象物と通信するための通信手段を備え、制御対象物がその制御対象物の現在の位置sにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、または、二次元平面上の第一〜第四位置の何れかに移動するように制御されるものとし、価値関数が記憶される記憶部と、制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、価値関数を用いて、(G-1)制御対象物が目標位置の何れかに存在する場合、その制御対象物が、所定の入口位置から遠い他の目標位置に移動するように制御し、(G-2)制御対象物が目標位置の集合に含まれない位置に存在する場合、その制御対象物が、所定の入口位置に向かって移動するように制御し、(V-1)ボイドが目標位置の集合に含まれない位置または所定の入口位置に位置する場合、そのボイドが所定の入口位置から遠い目標位置の集合に含まれない位置に移動するように制御し、(V-2)ボイドが所定の入口位置を除いた目標位置の何れかに位置する場合、そのボイドが所定の入口位置に向かって移動するように制御する行動選択部を含む。行動選択部は、入口位置に近い先頭制御対象物を決め、(G-1)及び(G-2)の制御により移動させることでボイドを発生させる第一制御と、第一制御の結果、発生したボイドを(V-1)及び(V-2)の制御に従う限り移動させる第二制御とを実行する。
上記の課題を解決するために、本発明の他の態様によれば、行動制御方法は、開始位置の集合に配置された複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う。行動制御方法は、第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、各開始位置及び各目標位置は、それぞれ第一方向〜第四方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、目標位置の集合及び開始位置の集合はそれぞれ一塊の任意の形状を成し、制御対象物は、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に存在する他の制御対象物と通信するための通信手段を備え、制御対象物がその制御対象物の現在の位置sにおいて各行動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、または、二次元平面上の第一〜第四位置の何れかに移動するように制御されるものとし、行動選択部が、制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、価値関数を用いて、(G-1)制御対象物が目標位置の何れかに存在する場合、その制御対象物が、所定の入口位置から遠い他の目標位置に移動するように制御し、(G-2)制御対象物が目標位置の集合に含まれない位置に存在する場合、その制御対象物が、所定の入口位置に向かって移動するように制御し、(V-1)ボイドが目標位置の集合に含まれない位置または所定の入口位置に位置する場合、そのボイドが所定の入口位置から遠い目標位置の集合に含まれない位置に移動するように制御し、(V-2)ボイドが所定の入口位置を除いた目標位置の何れかに位置する場合、そのボイドが所定の入口位置に向かって移動するように制御する行動選択ステップを含む。行動選択ステップは、入口位置に近い先頭制御対象物を決め、(G-1)及び(G-2)の制御により移動させることでボイドを発生させる第一制御と、第一制御の結果、発生したボイドを(V-1)及び(V-2)の制御に従う限り移動させる第二制御とを実行する。
本発明に拠れば、詳しくは後述するが、一台のロボットに必要な分だけのマルコフ状態空間を用意し、それを用いて動的計画法を利用して各位置でのロボットの行動方策を計算し、その行動方策を利用することで、ロボットに任意の隊列形状と、任務環境内の任意の障害物形状に対応した、ロボット同士が接した状態を維持したうえでの多数ロボットのための隊列形成アルゴリズムを獲得することができる。すなわち、ロボット数に依存せずにロボット一台分の計画計算負荷での自己位置座標定義型隊列形成アルゴリズム獲得ができる。
多数のロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 伸縮型ロボットの移動を説明するための図。 不変型ロボットの移動を説明するための図。 開始位置からのルートが二つ以上考えられる場合のQ関数の計算を説明するための図。 多数の伸縮型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の伸縮型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の伸縮型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の伸縮型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の伸縮型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数のロボットが価値関数Q(s,a)を利用して隊列移動する方法を説明するための図。 伸縮型ロボットのみを制御する場合の第一制御を説明するための処理フローの例を示す図。 伸縮型ロボットのみを制御する場合の第二制御を説明するための処理フローの例を示す図。 多数の不変型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の不変型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の不変型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 多数の不変型ロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務を説明するための図。 不変型ロボットのみを制御する場合、及び、伸縮型ロボットと不変型ロボットとが混在するときに制御する場合の第一制御を説明するための処理フローの例を示す図。 不変型ロボットのみを制御する場合、及び、伸縮型ロボットと不変型ロボットとが混在するときに制御する場合の第二制御を説明するための処理フローの例を示す図。 第一実施形態に係る行動制御システムの機能ブロック図。 第一実施形態に係る行動制御システムの処理フローの例を示す図。 図21Aは不変型ロボット及び収縮状態の伸縮型ロボットの隣接する通信可能な位置を示す図、図21Bは伸長状態の伸縮型ロボットの隣接する通信可能な位置を示す図。 各格子が菱形での場合の例を示す図。
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
<第一実施形態>
[理論的背景]
まず、行動制御システム及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
多数のロボットが協調して開始位置における隊列形成状態から移動を行い、目標位置での隊列形成を行う任務は、例えば図1に例示するような壁で区切られた部屋においての開始位置から目標位置まで複数のロボットの移動によって実現するものである。
図1において、Rが記載された格子はロボットが存在する位置を示し、Oが記載された格子は障害物が存在する位置を示す。また、太線の破線で囲まれた領域は開始位置の集合を示し、太線の一点鎖線で囲まれた領域は目標位置の集合Gで表される領域(以下、この領域のことを「目標隊列エリアG」ともいう)を示し、太線の実線で囲まれた領域は後述する目標隊列エリアGの入口位置Peを示す。このように、各開始位置及び各目標位置は、それぞれ上下左右方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、ロボットの開始位置及び目標位置での隊列形状はそれぞれ一塊の任意の形状である。
任務を行うロボットは、p台(pは2以上の整数であり、例えばp≧50)であり、各ロボットは、二次元平面におけるX軸方向及びY軸方向のそれぞれに移動可能とする。すなわち、この例では、各ロボットは、図1の紙面に対して上下左右の四方向に移動可能とする。ただし、各ロボットは、少なくとも1つの他のロボットと隣接し、p台のロボットで1つの群れを成すものとする。ここで、あるロボットと他のロボットが隣接するとは、あるロボットと他のロボットとが、一辺もしくは一つの頂点を共有することを意味する。
なお、p個のロボットのうちq個(qを0以上p以下の整数の何れかとする)のロボットを伸縮型ロボットとし、p個のロボットのうち(p-q)個のロボットを不変型ロボットとする。つまり、q=0のとき不変型ロボットのみとなり、q=pのとき伸縮型ロボットのみとなり、qが1以上p未満の整数の何れかのとき、不変型ロボットと伸縮型ロボットとの混在となる。
伸縮型ロボットは、例えば正方形型のロボットであり、図2に示すように、進行方向に平行な2辺の長さを、ロボットの一辺の長さ分だけ伸長させて後、伸長させた辺をもとの長さに収縮させることで、1セル分の移動を行うというものを想定する。言い換えると、伸縮型ロボットは、図2に示すように、1つの位置のみを占有する収縮状態と上下左右方向の何れかの方向において隣接する2つの位置を占有する伸長状態とを備える。ある位置のみを占有する収縮状態から、ある位置と他の位置とを占有する伸長状態に変形し、他の位置のみを占有する収縮状態に変形することで、ある位置から他の位置へ移動する。伸縮型ロボットは、1回の行動制御により、静止するか、または、収縮状態から伸長状態への変形若しくは伸長状態から収縮状態への変形を行う。
一方、不変型ロボットは、図3に示すように、変形せず、1つの位置のみを占有し、1回の行動制御により、静止するか、または、上下左右方向の隣接する位置の何れかに移動するように制御される。
図1の各格子にはロボットは一台しか存在することができない。それぞれのロボットは、移動しようとする方向に障害物か他のロボットがある場合には、静止をするものと仮定する。ただし、他のロボットが移動した結果、その格子が空く場合には、その格子に移動できるものとする。
何れのロボットもロボットの周囲のマス(不変型ロボット及び伸縮型ロボットの収縮状態の場合、周囲のマスは8マス、伸縮型ロボットの伸長状態の場合、周囲のマスは10マス)のうち一つに他のロボットが存在している状態を維持しながら移動をするものとする。また、何れのロボットもロボットの周囲のマスに存在する他のロボットと通信できるものとする。この手法では1つのロボット自身が、その移動量を正確に測ることができるというメリットがあり、また、1つの辺や頂点を共有する隣り合うロボットとの相対的な位置を計測しあうことで、ロボットの群れ全体の中での各ロボットの位置も容易に知ることができる。例えば、複数のロボットを連結して、先頭のロボットから、伸長と収縮を伝播させていくことで、全体としての移動を行っていくことが可能である。
図1に示すように、ロボットの開始位置と目標位置での隊列形状は連続な任意形状である。言い換えると、各開始位置及び各目標位置は、それぞれ上下左右方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、目標位置全体及び開始位置全体がそれぞれ一塊の任意の形状である。
それぞれのロボットi(iはロボット番号を表し、i=0,1,2,…,p-1とする)の初期位置を(Xr0[i],Yr0[i])とし、目標位置を(Xre[i],Yre[i])とするとき、初期位置に配置されたロボットが、目標位置まで移動するための行動計画を求める問題を考える。なお、目標位置(Xre[i],Yre[i])の集合をGとする。
このような問題に対して単純にマルコフ状態遷移モデルを適用しようとする場合、マルコフ状態空間は、ロボットiの位置(Xr[i],Yr[i])、ロボットiの行動a[i]によって構成される。各状態(ロボットの位置と行動)は離散値で表現される。部屋をX,Yの直交座標系からなる2次元平面で表すと、X軸、Y軸をそれぞれ離散化表現した値により各位置を表現する。つまり、図1のように部屋(2次元平面)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
また、この例では、制御対象物である行動主体は部屋に配置されている各ロボットとなる。ロボット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倍増加していくことになり、ロボット同士が接しているという拘束条件を取り入れても、根本的な計算量の削減は難しく、複数ロボットを使用する場合の大きな問題となっている。
そこで、この実施形態では、このような状態空間の爆発をさけるために、学習に使用するマルコフ状態空間を、一台分のロボットの状態変数のみで構成することにする。すなわち、状態変数及び行動変数を以下のように定義する。
状態変数s=(Xr,Yr),行動変数a∈{0,1,2,3,4}
p台あるすべてのロボットは、この状態変数を引数とした1個の価値関数Q(s,a)を共有し、行動決定を行う。
なお、価値関数Q(s,a)の計算は、例えば、動的計画法を使用して、任務の事前に行うものとする。まず、各ロボットの目標位置をここに厳密に割り振ることをせず、目標位置全体の集合を、目標隊列エリアGと定義する。すなわち、
(Xre[i],Yre[i])∈G …(3)
として、各ロボットはG内の全ての全ての位置を自由に目標位置とすることができるものとする。つまり、Gをちょうど流体を注ぐ器のようなものとして扱い、その入口位置をPeとする。すなわち、各ロボットは、Gの境界上に一点だけ設定された入口位置PeからGに入ることが可能であり、一度G内に入ったロボットは、Gを出る行動をとることができないものとする。本実施形態では、Gで構成される一塊の任意の形状(星形)の開始位置に近い1点を選んで入口位置Peとし、入口位置Peにロボットが移動した場合において、高報酬値が与えられ、その他は低報酬が与えられる。入口位置Peの位置はGの内部であって、Gで構成される一塊の任意の形状のいずれかの1点であればどこでも構わないが、ロボットの開始位置から近い位置を選ぶのがロボットの動作をスムーズにするうえで効果的である。
(Q関数の計算について)
Q関数を計算するために必要なマルコフ状態空間での状態遷移確率と報酬値の設定は、行動aにより、状態(位置)がsからs'に移動したとして、その遷移確率P及び報酬Rとすると、例えば、遷移確率P(s'|s,a)(状態sから行動aにより状態s'に遷移する確率)を以下のように設定する。
(1)sが障害物でなく、s'が行動aの行先のセルのとき、
P(s'|s,a)←1
(2)sが障害物でなく、s'が行動aの行先のセルでないとき、
P(s'|s,a)←0
(3)sが障害物のときで、s'=sのとき、
P(s'|s,a)←1
(4)sが障害物のときで、s'=sではないとき、
P(s'|s,a)←0
また、報酬R(s',s,a) (状態sから行動aにより状態s'に遷移したときの報酬)を以下のように設定する。
(1)If s'=Pe then R(s',s,a) ← r_plus
(状態s'と入口位置とが一致するとき、その報酬R(s',s,a)をr_plusとする。)
(2)Else If sがG内かつs'がG外 then R(s',s,a) ← -r_minus
(つまり、(1)の条件を満たさない場合であって、目標位置の集合内からその外に出ようとするとき、その報酬R(s',s,a)を-r_minusとする。)
(3)Else If sがG外かつs'がG内でかつs'=PeでないthenR(s',s,a)=-r_minus
(つまり、(1)及び(2)の条件を満たさない場合であって、入口位置Pe以外の位置から目標位置の集合内に入ろうとするとき、その報酬R(s',s,a)を-r_minusとする。)
(4)Else R(s',s,a)=0
ここで、r_minusとr_plusとはともに正値とし、r_minus > 10 × r_plusとするのが望ましい。なお、ロボットが障害物には入れず、また、入口位置Pe以外からGに入れず、G内から出られないという条件が記述できていれば、遷移確率と報酬の設定方法はこの限りではない。
このようにして、Q関数を、全ての位置において、制御対象物が所定の入口位置Peに移動した場合に高報酬値を得られるように学習する。
(開始位置からロボット群がたどるルートが二つ以上考えられる場合のQ関数の計算)
複数の開始位置から入口位置Peまでの最短経路を考えたとき、複数の開始位置の設定や、障害物の配置によっては、ロボット群のたどる最短経路が2つ以上になる可能性がある。例えば、図4の場合、ロボットAにとっての最短経路はRAであるが、ロボットBにとっての最短経路はRBである。この場合、1つのQ関数により全てのロボットの経路を決定すると、1つの群れを成さず、分裂する可能性がある。そうすると、p台のロボットで1つの群れを成すという前提が崩れ、自己位置座標を取得することが困難になる場合が生ずる。そこで、ロボット動作の開始前の動作計画において、以下のように、Q関数を学習することが有効である。
(1)まず、前述の方法により、全ての位置について動的計画法による探索計算を行い、各位置のQ関数の値を求める。
(2)続いて、開始位置の集合のみを対象として動的計画法による探索計算を行う。その際に、(1)の結果、計算されたQ関数の値において、開始位置の集合の中で、その位置での全行動の中でのQ値の最大値(Qmax_start(s)とする。)が、最大となる位置のQ関数の値は固定とし、その値の更新は行わないものとする。例えば、図4の場合、開始位置の集合に属する各位置におけるQmax_startの値の中で、ロボットAの開始位置PAに対するQmax_startの値が最も大きい場合、位置PAに対するQ関数の値を固定とし、その値の更新は行わない。さらに、遷移確率Pとして、行動aによって、位置PAを経由せずに開始位置の外に出てしまう行動を禁止する。例えば、遷移確率P(s'|s,a)を以下のように設定する。
(A-1)sが障害物でなく、s'が行動aの行先のセルで、s'が開始位置の集合に含まれるとき、
P(s'|s,a)←1
(A-2)sが障害物でなく、s'が行動aの行先のセルで、s'が開始位置の集合に含まれない(開始隊列の外の)とき、
P(s'|s,a)←0
(A-3)sが障害物でなく、s'が行動aの行先のセルでなく、s'が開始位置の集合に含まれるとき、
P(s'|s,a)←0
(A-4)sが障害物でなく、s'が行動aの行先のセルでなく、s'が開始隊列の集合に含まれないとき、
s'=sならば、P(s'|s,a)←1
そうでなければ、P(s'|s,a)←0
(A-5)sが障害物のときで、s'=sのとき、
P(s'|s,a)←1
(A-6)sが障害物のときで、s'=sではないとき、
P(s'|s,a)←0
複数の開始位置の設定や障害物の配置によっては、動的計算法によって計算される行動方策に従って、拘束なしに自由に行動するロボットの群れが二つ以上の群れに分かれてしまうような場合がある。そのような場合は、隣接するロボット同士の接続を保ちたい場合に不都合であり、それを解消するために以上に述べたような探索計算を行う。すなわち、開始位置の集合の内で最もQmax_startの値が高い位置を全てのロボットが目指すように行動方策を決定し、開始位置の外にロボットが出るのは、開始位置内で最もQmax_startの値の高い位置を経由してのみとなるように設定する。言い換えると、最終的に得られる価値関数Qは、全ての開始位置の中で(1)で学習したQmax_startの値が最も大きい一点の位置を目指す行動の価値関数の値が高くなるように(さらに、言い換えると、その位置を経由して、ロボットが、開始隊列の内から開始位置の外に移動するように、)学習して得られる。
(行動選択の方法と2つのポリシーについて)
通常は、各状態sにあるロボットが、価値関数Q(s,a)を使用して行動選択を行う場合は、各状態sにおいて、Q関数の値を最大にする行動aを選択する。しかし、以上に提示した条件設定で、Q関数を計算した場合、目標隊列エリアGの外にいるロボットも目標隊列エリアGの内にいるロボットもともに、入口位置Peを目指して移動することになる。そこで、以下のルールにより行動選択を行うものとする。この行動方策を行動方策Policy_Gとする。
(行動方策Policy_G)
(1)sがG内のとき、ロボットは、他のロボットの位置や障害物位置に移動しない行動であって、かつ、G外に出ていかない行動であり、かつ、Q(s,a)<Q(s,0)を満たす行動aの中でQ(s,a)を最小化する行動を選択する。そのような行動がない場合は行動a=0(静止)を選択する。
(2)sがG外のとき、ロボットは、、他のロボットの位置や障害物位置に移動しない行動であって、かつ、Q(s,a)>Q(s,0)を満たす行動aの中でQ(s,a)を最大化する行動を選択する。そのような行動がない場合は行動a=0(静止)を選択する。
このようにすることで、(1)により、一度、G内に入ったロボットは入口位置Peからなるべく離れた(遠い他の)G内の位置に移動する。一方、(2)により、G外のロボットは、入口位置Peに向かって移動し、入口位置PeよりG内に入ろうとする行動をとるようにできる。また、他のロボットや障害物との衝突も避けることができる。
(行動方策Policy_V)
また、ボイドの位置を制御するという概念を使用する。ここでいうボイドとは、あるロボットが別の位置に移動した後に、元いた位置にできる空隙のことである。なお、伸縮型ロボットがある位置のみを占有する収縮状態から伸長し、もともと占有していた位置と他の位置とを占有する伸長状態に変形したときに、もともと占有していた位置にボイドが生じる、または、もともと占有していた位置にボイドが移動するものとする(図2参照)。一方、不変型ロボットがある位置から他の位置へ移動するときに、ある位置にボイドが生じる、または、移動するものとする(図3参照)。このボイドの動きを制御することで、1つの群れを維持する。後に説明するボイドの制御のための行動方策Policy_Vは、
(3)sがG外であるか、入口位置Peであるとき、ボイドは、移動先が他のロボットの位置に重なる位置となる行動であって、かつ、G内に入っていかない行動であって、かつ、Q(s,a)<Q(s,0)を満たす行動aの中でQ(s,a)を最小化する行動を選択する。そのような行動がない場合は行動a=0(静止)を選択する。このような選択をすることで、ボイドが入口位置Peから遠い目標位置の集合に含まれない位置に移動するように制御される。
(4)sがG内でかつ入口位置Peでないとき、ボイドは、移動先が他のロボットの位置に重なる位置となる行動であって、かつ、Q(s,a)>Q(s,0)を満たす行動aの中でQ(s,a)を最大化する行動を選択する。そのような行動がない場合は行動a=0(静止)を選択する。このような選択をすることで、ボイドが入口位置Peに向かって移動するように制御される。
(拘束条件)
本実施形態において、ロボットは各々のロボット同士の相対位置関係から、各々の絶対位置を計測することができ、また隣の位置に他のロボットが存在しているか否か、障害物があるか否か、そして、自身が目標位置上にいるかどうかを知ることができるものとする。これを実現するための拘束条件は制御対象となるロボットの構成により異なるため、以下、それぞれ説明する。
(伸縮型ロボットのみの制御する場合の拘束条件)
伸縮型ロボットのみの制御する場合の位置関係と移動に関する拘束条件は、各ロボットの周囲の格子(伸長状態の場合、周囲の10マス、収縮状態の場合周囲の8マス)のいずれかに他のロボットが存在し、ロボット全体で一つの集合をなすという拘束条件を満たさなければならないことである。この拘束条件を維持しつつ目標位置での隊列形成を行う動作の例を図5〜図9に示す。以下、この条件を維持しながらの、価値関数Q(s,a)を利用した隊列移動の方法について、図10〜図12を用いて説明する。
全てのロボットを開始位置の集合に含まれる位置(開始隊列位置ともいう)に置き、先頭移動フラグflg←0とする(s1)。
先頭移動フラグflgの値を判定する(s3)。先頭移動フラグは、入口位置に近いロボット(以下「先頭ロボット」ともいう)を移動させるか否かを表す情報であり、flg=0のとき、先頭ロボットを移動させる制御(以下、この処理を「第一制御」ともいう)(s5)、を行う。flg=1のとき、先頭ロボット以外のロボットを移動させる制御(以下、この処理を二「第二制御」ともいう)(s6)を行う。なお、第一制御は先頭ロボットを決め、行動方策Policy_Gにより移動させることでボイドを発生させる制御ともいえ、第二制御は第一制御の結果、発生したボイドを行動方策Policy_Vに従う限り移動させる制御とも言える。
第一制御の詳細を説明する。第一制御では、まず、ロボットの順位付け、先頭ロボットの選択、ボイドの発生(設定)、行動方針Policy_Gにより先頭ロボットの行動選択を行う(s51)。
例えばs51では、以下のようにしてロボットの順位付けを行う。
(1)G内の各ロボットiについて、ロボットiの位置sにおける全行動aの中でのQ(s,a)の最小値Qmin(i)を計算する。
(2)G内の各ロボットiについて、Qmin(i)の値が小さい順に順位付けを行う。
(3)G外の各ロボットiについて、ロボットiの位置sにおける全行動aの中でのQ(s,a)の最大値Qmax(i)を計算する。
(4)G外の各ロボットiについて、Qmax(i)の値が大きい順に順位付けを行う。
(5)G外の各ロボットiの順位値にG内にあるロボット数を加算する。
次に、例えば以下のようにして先頭ロボットを選択する。行動方策Policy_Gにより、a=0(静止)以外の行動を選択するロボットのうち、上述の順位付けで求めた順位の最も高いロボットを選択し、i_selectとする。
次に、例えば以下のようにしてボイドの発生(設定)を行う。ロボットi_selectの位置を現在のボイドの位置(void_x,void_y)として設定する。
その後、行動方策Policy_Gによりロボットi_selectの行動選択を行う(s51ここまで)。
第一制御の続いての処理では、先頭移動フラグflgを更新し、flg←1とし、行動方策Policy_Gにより選択された行動に基づき選択したロボットi_selectを移動させる(s56)。ロボットi_selectを収縮状態から伸長状態に変形させる。
次に、第二制御(s6)について説明する。
第二制御では、ロボットi_selectを伸長状態から収縮状態に変形させると同時に、現在のボイド位置に後続のロボットを伸長移動させる。そのために、以下の処理s61〜s64を行う。現在のボイド位置(void_x,void_y)をsとしたとき、行動方策Policy_Vによりボイドの行動を選択する(s61)。選択された行動a_voidが移動する(a_void≠0)か否かを判定する(s62)。a_void≠0の場合、行動方策Policy_Vによりボイドを移動させ、移動先の位置にあるロボットを選択し、そのロボットをロボットi_select2とする。ロボットi_select2の行動を、行動a_voidとは逆方向に移動するものと決定する(s63)。ロボットi_select2を収縮状態から伸長状態に変形させると同時にロボットi_selectを同時に収縮させる。続いて、i_selectをi_select2に置き換える(i_select←i_select2)。a_void=0の場合(ボイドが静止する場合)、flg←0とする(s64)。
移動後の位置に基づき、全てのロボットの位置の情報を更新する(s8)。
全てのロボットがG内に入ったか否かを判定し(s9)、入った場合には行動制御処理を終了する。入っていないロボットがある場合には、s3〜s9の処理を繰り返す。なお、全てのロボットがG内に入った状態とは、伸長状態のロボットの一部がG内に入っている状態ではなく、収縮状態のロボットがG内に入っている状態を意味する。
以上の方法により実現される動作を説明する。まず開始隊列形態にあるロボットのうち、もっとも入口位置Peに近いロボットが隊列の中から選択され、入口位置Peに向かって1ステップ移動する(第一制御)。そのあとの時間ステップにおいては、前のステップでできたボイドの位置を埋めるように後続のロボットが一ステップずつ移動していく。それをボイドがこれ以上Q関数の値の低い位置に移動不可能になるまで繰り返す(第二制御)。ボイドが移動不可能になったら、また、もっとも入口位置Peに近いロボットが隊列の中から選択される(第一制御)。第一制御と第二制御を繰り返していくうちに、いつしか、先頭のロボットが入口位置Peに到達して、G内に入る。そのあとは、今度は先頭のロボットは、G内においてもっともQ関数の値の低い位置を目指して移動を続け、後続のロボットは引き続き、先頭のロボットの作ったボイドを埋めるように移動していく。
以上のような動作で、ロボットの群れが目標隊列に近づいていく。
(不変型ロボットのみの制御する場合の拘束条件)
つづいて、不変型ロボットのみの制御する場合の拘束条件について説明する。この場合、ロボットは、自分が移動する方向と逆方向の向きで接している他のロボットをできるだけ多く引き連れて移動を行う。
この場合は、各ロボットの周囲の8つの格子のいずれかに他のロボットが存在し、ロボット全体で一つの集合をなすという拘束条件を満たさなければならない。この拘束条件を維持しつつ目標位置での隊列形成を行う動作の例を図13〜図16に示す。以下、この条件を維持しながらの、価値関数Q(s,a)を利用した隊列移動の方法について、伸縮型ロボットのみの制御する場合と、第一制御及び第二制御の処理内容が主に異なるため、この部分を中心に図17、図18を用いて説明する。
第一制御では、まず、ロボットの順位付け、先頭ロボットの選択、ボイドの発生(設定)、行動方針Policy_Gにより先頭ロボットの行動選択を行う(s51)。このs51に関しては伸縮型ロボットのみの制御する場合と同様である。ただし不変型ロボットを使用するこの場合においては以下の処理s511をs51に続いて行う。
変数Ir←0とし、第一制御にて一度に動かすロボットの番号を格納する配列をi_select_moveとする。s51で選択されたロボットi_selectをi_select_move[Ir]とし、ロボットi_select_move[Ir]の選択する行動をロボットi_selectの選択した行動と同じとし、a_selectとする(s511)。
続いて、現在のボイド位置(void_x,void_y)をsとしたときの行動方策Policy_Vによりボイドの行動を選択する(s53)。選択された行動a_voidが、行動a_selectとはちょうど逆向きの行動であるかどうかの判定を行う(s54)。
逆向きの行動以外の場合、先頭移動フラグflgを更新し、flg←1とし、ロボットi_select_move[0]〜i_select_move[Ir]を行動a_selectの方向に移動させる(s56)。
逆向きの行動の場合、変数Irをインクリメントし、行動a_voidによってボイドを移動させる。さらに、移動先のボイドの位置にあるロボットを選択し、そのロボットをi_select_move[Ir]とする。ロボットi_select_move[Ir]の選択すべき行動を、s51、s511で求めた行動a_selectと同じとする。s53に戻る(s55)。
s54において逆向きの行動以外になるまで、s53〜s55を繰り返す。
第二制御では、変数Ir←0とし、現在のボイド位置(void_x,void_y)をsとしたときの行動方策Policy_Vにより行動a_voidを選択する(s61)。選択された行動a_voidが移動する(a_void≠0)か否かを判定する(s62)。a_void=0の場合(ボイドが静止する場合)、先頭移動フラグflgを更新し、flg←0とし(s64)、第二制御を終了する。a_void≠0の場合、行動方策Policy_Vによりボイドを移動させ、移動先の位置にあるロボットを選択し、そのロボットをロボットi_select_move[Ir]とする。その後、ロボットi_select_move[Ir]のとるべき行動を、行動a_voidとは逆方向の行動とする(s63)。このときのロボットi_select_move[Ir]の移動方向をa_selectとする。
続いて、移動後の現在のボイド位置(void_x,void_y)をsとしたときの行動方策Policy_Vにより行動a_voidを選択する(s66)。選択された行動a_voidが、行動a_selectとはちょうど逆向きの行動であるかどうかの判定を行う(s67)。逆向きの行動以外の場合、s63で選択された行動a_selectに基づき選択したロボットi_select_move[0]〜i_select_move[Ir]を移動させる。(s69)。逆向きの行動の場合、変数Irをインクリメントし、行動a_voidによってボイドを移動させる。さらに、移動先のボイドの位置にあるロボットを選択し、そのロボットをi_select_move[Ir]とする。ロボットi_select_move[Ir]の選択すべき行動を、s63で求めた行動a_selectと同じとする。s66に戻る(s68)。
S67において逆向きの行動以外になるまで、s66〜s68を繰り返す。
以上のプロセスで、ある先行する不変型ロボットの移動方向と逆方向において隣接する後続する不変型ロボットが、その先行する不変型ロボットの移動によって生じたボイドが行動方策Policy_Vの制御に従って移動する場合の移動方向と逆方向に移動したときに、その移動方向が、先行する不変型ロボットの移動方向と同じ限りは、同時に移動するように制御している。具体的には、まず開始隊列形態にあるロボットのうち、もっとも入口位置Peに近いロボットが隊列の中から選択され、入口位置Peに向かうための行動が選択される。そして、そのロボットの移動方向と逆側にて接しているロボットを可能な限り(s53にて行動方策Policy_Vにより選択されたボイドの行動a_voidとs511にて行動方策Policy_Gにより選択されたロボットの行動a_selectとが逆向きの移動である限り)引き連れて1ステップ移動する(第一制御)。そのあと以降の時間ステップにおいては、前のステップでできたボイドの位置を埋めるように同じ方向に動ける(s63、s66にて行動方策Policy_Vにより選択された行動a_voidの移動方向が同じ分だけ)後続のロボットが、同時に一ステップずつ移動していく。ボイドがこれ以上Q関数の値の低い位置に移動不可能になるまで処理を繰り返す(第二制御)。ボイドが移動不可能になったら、また、もっとも入口位置Peに近いロボットを隊列の中から選択する(第一制御)。第一制御と第二制御とを繰り返していくうちに、いつしか、先頭のロボットが入口位置Peに到達して、G内に入る。そのあとは、今度は先頭のロボットは、G内においてもっともQ関数の値の低い位置を目指して後続ロボットを引き連れて移動を続け、後続のロボットは引き続き、先頭のロボットの作ったボイドを埋めるように後続ロボットを引き連れて移動していく。
以上のような動作で、ロボットの群れが目標隊列に近づいていく。
(伸縮型ロボットと不変型ロボットとが混在するときに制御する場合の拘束条件)
さらに、伸縮型ロボットと不変型ロボットが混在する場合について述べる。
以下、各ロボットの周囲の格子(伸縮型ロボットの伸長状態の場合、周囲の10マス、伸縮型ロボットの収縮状態及び不変型ロボットの場合周囲の8マス)のいずれかに他のロボットが存在し、ロボット全体で一つの集合をなすという拘束条件を満たさなければならない。以下、この条件を維持しながらの、価値関数Q(s,a)を利用した隊列移動の方法について、不変型ロボットのみの制御する場合と、第一制御及び第二制御の処理内容が主に異なるため、この部分を中心に図17、図18を用いて説明する。なお、新たな変数として、各ロボットiが伸縮型ロボットか不変型ロボットかを表す変数としてcompress[i]を定義する。compress[i]=1のときロボットiは収縮型ロボットであり、compress[i]=0のときロボットiは不変型ロボットである。
第一制御では、以下の処理s51〜s56を行う。なお、このs51、s511、及びs53〜56に関しては不変型ロボットのみの制御する場合と同様であるため、説明を簡略化する。
ロボットの順位付け、先頭ロボットの選択、ボイドの発生(設定)、行動方針Policy_Gにより先頭ロボットの行動選択を行い(s51)、移動するロボットの配列、行動を設定する(s511)。
選択されたロボットが不変型ロボットか否か(compress[i]=0?)を判定する(s52)。
伸縮型ロボットの場合、先頭移動フラグflgを更新し、flg←1とし、行動方策Policy_Gにより選択された行動a_selectに基づき選択したロボットi_select_move[0]〜i_select_move[Ir]を移動させる。(s56)。ここで、ロボットi_select_move[0]〜i_select_move[Ir]に含まれるロボットが、不変型ロボットの場合にはロボットを変形させずに隣接する格子に移動させ、伸縮型ロボットの場合にはロボットを収縮状態から伸長状態に変形させる。
不変型ロボットの場合、不変型ロボットのみを制御する場合で説明したs53(行動方策Policy_Vによるボイドの行動選択)とs54(選択したロボットの選択した移動方向とボイドの移動方向とが逆方向か否かの判定)とを行う。
逆向きの行動以外の場合、先頭移動フラグflgを更新し、flg←1とし、行動方策Policy_Gにより選択された行動a_selectに基づき選択したロボットi_select_move[0]〜i_select_move[Ir]を移動させる。(s56)。逆向きの行動の場合、ボイドを移動させ、ボイドの移動先にあるロボットを選択し、その行動を、前のロボットと同じ方向の移動とする(s55)。
伸縮型ロボットが選択されるまで(s52)、または、選択したロボットの選択した移動方向とボイドの移動方向とが逆方向以外になるまで(s54)、s52〜s55を繰り返す。
なお、後述する第二制御において、伸縮型ロボットが選択されたことを理由として、第二制御を終了した場合には、上述の処理s51〜s56と同時に伸縮型ロボットを伸長状態から収縮状態に変形させる。
第二制御では、以下の処理s61〜s69を行う。なお、このs61〜s64及びs66〜69に関しては不変型ロボットのみの制御する場合と同様であるため、説明を簡略化する。
行動方策Policy_Vにより行動a_voidを選択する(s61)。選択された行動a_voidが移動する(a_void≠0)か否かを判定し(s62)、a_void≠0の場合、ボイドを移動させ、移動先の位置にあるロボットを選択し、そのロボットi_select[Ir]のとるべき行動を、行動a_voidとは逆方向の行動とする(s63)。なお、a_void=0の場合(ボイドが静止する場合)、先頭移動フラグflgを更新し、flg←0とし(s64)、第二制御を終了する。
選択されたロボットが不変型ロボットか否か(compress[i]=0?)を判定する(s65)。
伸縮型ロボットの場合、s63で選択された行動a_selectに基づき選択したロボットi_select_move[0]〜i_select_move[Ir]を移動させる(s69)。伸縮型ロボットの場合には、ロボットi_select[Ir]を収縮状態から伸長状態に変形させる。
s65の判定の結果、不変型ロボットの場合、続いて、行動方策Policy_Vにより行動a_voidを選択する(s66)。選択された行動a_voidが、行動a_selectとはちょうど逆向きの行動であるかどうかの判定を行い(s67)、逆向きの行動以外の場合、s63で選択された行動a_selectに基づき選択したロボットi_select_move[0]〜i_select_move[Ir]を移動させる(s69)。逆向きの行動の場合、ボイドを移動させ、移動先のボイドの位置にあるロボットを選択し、そのロボットの選択すべき行動を、s63で求めた行動a_selectと同じとする(s68)。
伸縮型ロボットが選択されるまで(s65)、または、選択したロボットの選択した移動方向とボイドの移動方向とが逆方向以外になるまで(s67)、s65〜s68を繰り返す。
なお、第一制御において伸縮型ロボットが選択されたことを理由として、第一制御を終了した場合には、上述の処理s61〜s69と同時に伸縮型ロボットを伸長状態から収縮状態に変形させる。
以上のプロセスで、伸縮型ロボットの移動を制御するとともに、ある先行する不変型ロボットの移動方向と逆方向において隣接する後続する不変型ロボットが、その先行する不変型ロボットの移動によって生じたボイドが行動方策Policy_Vの制御に従って移動する場合の移動方向と逆方向に移動したときに、その移動方向が、先行する不変型ロボットの移動方向と同じ限りは、同時に移動するように制御している。具体的には、まず開始隊列形態にあるロボットのうち、もっとも入口位置Peに近いロボットが隊列の中から選択され、入口位置Peに向かうための行動が選択される。そして、そのロボットの移動方向と逆側にて接しているロボットを引き連れて1ステップ移動するが、その中に、収縮可能ロボットがある場合は、その収縮可能ロボットを後端として移動を行う(第一制御)。そのあとの時間ステップ以降においては、前のステップでできたボイドの位置を埋めるように同じ方向に動ける後続のロボットが、同時に一ステップずつ移動していく、ここでも同様に、後続ロボット中に収縮可能ロボットがある場合は、その収縮可能ロボットを後端として移動を行う。ボイドがこれ以上Q関数の値の低い位置に移動不可能になるまで処理を繰り返す(第二制御)。ボイドが移動不可能となったら、また、もっとも入口位置Peに近いロボットが隊列の中から選択し第一制御を行う。第一制御と第二制御とを繰り返していくうちに、いつしか、先頭のロボットが入口位置Peに到達して、G内に入る。そのあとは、今度は先頭のロボットは、G内においてもっともQ関数の値の低い位置を目指して後続ロボットを引き連れて移動を続け、後続のロボットは引き続き、先頭のロボットの作ったボイドを埋めるように後続ロボットを引き連れて移動していく。
以上のような動作で、ロボットの群れが目標隊列に近づいていく。
以下、ロボット移動の制御方法、拘束条件を実現するための処理について述べる。
<第一実施形態に係る行動制御システム100>
図19は第一実施形態に係る行動制御システム100の機能ブロック図を、図20はその処理フローの例を示す。行動制御システム100は、図19に示すように、動作計画部110と、行動選択部120と、隣接状態判定部121と、位置更新部125と、位置判定部126と、記憶部140と、通信部150と、入力部160とを含む。
以下では、制御の対象となる制御対象物が、ロボットである場合を例に挙げて説明する。もちろん、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
本実施形態では、行動制御システム100は、p台のロボットの行動を制御し、p台のロボットの内の1つのロボット上に実装される。なお、p個のロボットのうちq個(qを0以上p以下の整数の何れかとする)のロボットを伸縮型ロボットとし、p個のロボットのうち(p-q)個のロボットを不変型ロボットとする。行動制御システム100が実装されるロボットは不変型ロボットでも伸縮型ロボットでもよい。なお、行動制御システム100が実装されていないp-1台のロボットについても、通信部150と、隣接状態判定部121とを含む。
<動作計画部110>
動作計画部110は、価値関数Q(s,a)の値を、動的計画法により、ロボットの任務行動開始前に事前に計算し(S110)、記憶部140に格納する。ここで、動作計画部110の計算は、一台のロボットを使用したQ学習に置き換えてもよい。なお、別装置で価値関数Q(s,a)を計算しておき、ロボットの任務行動開始前に事前に記憶部140に格納しておけば、行動制御システム100は、動作計画部110を備えなくともよい。
なお、価値関数Q(s,a)の計算については、(Q関数の計算について)、(開始位置からのロボット群のルートが二つ以上考えられる場合のQ関数の計算)で説明した通りである。
<入力部160>
入力部160には、p台のロボットiのそれぞれの初期位置(Xr0[i],Xr0[i])及びp個の目標位置の集合G={(Xre[0],Yre[0]),(Xre[1],Yre[1]),…,(Xre[p-1],Yre[p-1])}が入力され、記憶部140に記憶される。
なお、目標位置は、所定の入口位置Peを含むとする。この入口位置Peについての情報も、入力部160から入力され、記憶部140に記憶されるとする。
<記憶部140>
記憶部140には、位置s及びa∈{0,1,2,3,4}の組み合わせのそれぞれについての価値関数Q(s,a)が記憶されているとする。sの取りうる範囲は、対象となる二次元平面上の領域内のロボットiが存在しうる全ての座標である。
各位置sの報酬r(s)についても、記憶部140に記憶されているとする。各位置sの報酬r(s)についての情報は、例えば入力部160から入力される。
<通信部150>
行動制御システム100が実装されているロボットも含め、全てのロボットは、通信部150を介して、二次元平面上の上、右上、右、右下、下、左下、左、左上方向(以下「8方向」ともいう)において隣接する他のロボットと通信することができる。図21Aの梨地部分は不変型ロボット及び収縮状態の伸縮型ロボットの隣接する通信可能な位置を、図21Bの梨地部分は伸長状態の伸縮型ロボットの隣接する通信可能な位置を示す。
<行動選択部120>
行動選択部120は、記憶部140から価値関数Qを取り出す。行動選択部120は、(伸縮型ロボットのみの制御する場合の拘束条件)、(不変型ロボットのみの制御する場合の拘束条件)、(伸縮型ロボットと不変型ロボットとが混在するときに制御する場合の拘束条件)の部分で説明した方法で、p台のロボットを制御する(s120)。具体的には、図10のs1(初期設定)、s3(先頭移動フラグの判定)、s5(第一制御)、s6(第二制御)を行う。なお、行動方策Policy_G、行動方策Policy_Vにおいて、各ロボットの位置や障害物位置を必要とするが、各ロボットの位置の初期位置(Xr0[i],Xr0[i])については、前述の通り、入力部160を介して入力され記憶部140に記憶されているものを利用し、移動後の各ロボットの位置については、後述する位置判定部126で求め記憶部140に記憶されているものを利用すればよい。障害物の位置に関しては、価値関数Q(s,a)を学習する際に利用した障害物の位置を利用してもよいし、後述する隣接状態判定部121で判定した判定結果を用いて得られるものを利用してもよい。
<位置更新部125>
位置更新部125は、各i=0,1,…,p-1について、i番目のロボットの現在の位置(Xr[i],Yr[i])において、行動選択部120で決定した行動を実行した場合のロボットの移動後(行動後)の位置(Xr'[i],Yr'[i])を計算し、計算された(Xr'[i],Yr'[i])で記憶部140に格納されたi番目のロボットの位置を更新する(S125)。言い換えれば、位置更新部125は、行動選択部120で決定した行動に基づいて、ロボットが行動した場合に想定される位置(以下、「想定位置」ともいう)を計算し、ロボットの位置を更新し記憶部140に格納する。具体的には、図10のs8(位置の更新)を行う。
<隣接状態判定部121>
隣接状態判定部121は、ロボットの2次元平面上の上下左右の隣接する位置に、障害物または他のロボットが存在するか否かを判定し、ロボットの2次元平面上の右上、左上、左下、右下の隣接する位置に他のロボットが存在するか否かを判定し(S121),判定結果を記憶部140に格納する。
なお、上述の通り、行動制御システム100が実装されていないp-1台のロボットについても、通信部150と、隣接状態判定部121とを含む。そのため、各ロボットiは隣接状態判定部121において、自身の上下左右方向に障害物があるかどうか、周囲8方向に他のロボットがいるかどうかを判定し、通信部150を介して判定結果を行動制御システム100に出力することができる。行動制御システム100は、通信部150を介して各ロボットiから判定結果を受け取り、行動制御システム100に含まれる隣接状態判定部121の判定結果と一緒に記憶部140に格納する。なお、p台のロボットは、各ロボットの隣り合う位置(8方向)に必ず、他のロボットが存在し、隣り合うロボット同士がなす群れは、一塊なので、各ロボットiは通信部150を介してp-1個の判定結果を直接、または、他のロボットを介して、行動制御システム100に送信することができる。また、行動制御システム100は、通信部150を介して、直接、または、他のロボットを介して、各ロボットiに選択した行動を実行するように制御信号を送信することができる。また、他の情報もp台のロボット間で送受信可能となる。
なお、ロボットが移動するように制御したとしても、何らかのトラブル(感知できなかった障害物の存在や、機器の故障等)により、行動選択部120の制御通りに移動できるとは限らない。一方、動かなかったロボットの位置は、制御する前と変わらない。よって、動かなかったロボットの位置を基準として、隣接状態判定部121による判定結果を用いて、移動するように制御されたロボットの、実際に行動した後の位置(以下「行動後位置」ともいう)(Xr"[i],Yr"[i])を求めることができる。なお、不変型ロボットが進行方向に対して一列に並んでいる場合には、全てのロボットが同一方向に移動するため、基準となるロボットが存在しないことになる。そのような場合には、その状態を検知し、1つ以上のロボットを進行方向に対して直交する方向に1マス分移動させ、その移動させたロボットを基準として、他のロボットを元々の進行方向に向かって移動させればよい。
<位置判定部126>
位置判定部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])に合わせて補正してもよい。
各時刻ステップごとに、すべてのロボットがG内にあるかどうかを判定し(S127、図10のs9に相当)、すべてのロットがG内にあるときは、任務を終了する。そうでないときは、任務を継続する。
例えば、図示しない目標位置到達判定部において、各i=0,1,…,p-1について、位置判定部126から出力された行動後位置(Xr"[i],Yr"[i])∈Gであるか否かを判定し、全てのiについて(Xr"[i],Yr"[i])∈Gである場合には、任務を終了する。少なくとも1つ以上のiについて(Xr"[i],Yr"[i])∈Gを満たさない場合には、行動選択部120を再度実行するよう制御する。
以上に述べた処理s120〜s127を毎時刻ステップごとに行う。
<効果>
このような構成により、一台のロボットに必要な分だけのマルコフ状態空間を用意し、それを用いて動的計画法を利用して各位置でのロボットの行動方策を計算し、その行動方策を利用することで、ロボットに任意の隊列形状と、任務環境内の任意の障害物形状に対応した、ロボット同士が接した状態を維持したうえでの多数ロボットのための隊列形成アルゴリズムを獲得することができる。すなわち、ロボット数に依存せずにロボット一台分の計画計算負荷での自己位置座標定義型隊列形成アルゴリズム獲得ができる。また、静止しているロボットに対する相対的な位置を判定することで、絶対的な位置を取得することができるため、付加的な位置計測用の装備を必要としない。
なお、前述の通り、伸縮型ロボットは、尺取虫のように伸長収縮により移動する。このような移動は、足や車輪による移動に比べ不整地や地中などの移動に有利であることが知られており、災害現場等での利用する際に特に有効である。本実施形態では、そのような伸縮型ロボットのみを制御する場合や不変型ロボットと組合せた場合の制御方法を提示している。
<変形例>
本実施形態では、各格子(マス)は、正方形であるが、他の形状であってもよい。格子は左右方向及び上下方向に連続して配置される。また、各格子は左右方向で他の二つの格子と隣接し、上下方向で他の二つの格子と隣接する。言い換えると、各格子は、ロボットの移動できる方向と同じ方向においてのみ、他の格子と隣接する。この条件を満たせば、各格子はどのような形状であってもよい。また、「直交」とは、厳密に「垂直に交わること」を意味しなくともよく、例えば、図22のように、各格子は、菱形であってもよく、各格子が他の二つの格子と隣接する方向の一方を上下方向とし、他方を左右方向とすればよく、このとき、上下方向と左右方向とは直交するものとする。
別の言い方をすると、制御対象物は、二次元平面上の、第一方向(例えば右方向)、第一方向に対して平行でない方向である第二方向(例えば上方向)、第一方向に対して反対方向である第三方向(例えば左方向)、第二方向に対して反対方向である第四方向(例えば下方向)に移動可能であり、一回の行動制御により、現在いる領域(格子、マス)から、現在いる領域に対して、第一方向、第二方向、第三方向、第四方向において隣接する領域の何れかに移動するように制御される。また、この場合、ロボットの2次元平面上の、第一方向において隣接する位置を第一位置、第二方向において隣接する位置を第二位置、第三方向において隣接する位置を第三位置、第四方向において隣接する位置を第四位置、第一位置に第二方向において隣接する位置を第五位置、第二位置に第三方向において隣接する位置を第六位置、第三位置に第四方向において隣接する位置を第七位置、第四位置に第一方向において隣接する位置を第八位置と呼んでもよい。例えば第一〜第八位置は、それぞれ図21の「1」〜「8」の位置に対応する。
本実施形態では、行動制御システム100が、p台のロボットの内の1つのロボット上に実装される例を示したが、コンピュータ上の制御対象物に対して行動制御を行ってもよい。その場合、意図的にトラブルを発生させない限り、制御した通りに制御対象物は移動するため、想定位置(Xr'[i],Yr'[i])と移動後位置(Xr"[i],Yr"[i])とが一致する。そのような状態で、各制御対象物i毎の理想的な行動計画を行ってもよい。その結果得られた任務を終了するまでの行動計画を実ロボットに実行させる。実ロボットは、通信部150と隣接状態判定部121を備え、各行動を終えた後に、隣接状態を判定し、判定結果を用いて、行動後位置を求め、行動後位置(Xr"[i],Yr"[i])と想定位置(Xr'[i],Yr'[i])とが一致するか否かを判定する。なお、一致しない場合には、移動するように制御されたロボットが何らかのトラブルにより、制御通りに移動できなかったと考えられる。その後の処理については第一実施形態と同様でもよいし、他の処理を行ってもよい。このような構成により、少なくとも制御通りに移動できなかったことを検知することができる。
<その他の変形例>
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
<プログラム及び記録媒体>
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (3)

  1. 開始位置の集合に配置された複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御システムであって、
    第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、各開始位置及び各目標位置は、それぞれ前記第一方向〜第四方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、前記目標位置の集合及び前記開始位置の集合はそれぞれ一塊の任意の形状を成し、
    前記制御対象物は、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に存在する他の制御対象物と通信するための通信手段を備え、制御対象物がその制御対象物の現在の位置sにおいて各行
    動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、また
    は、二次元平面上の第一〜第四位置の何れかに移動するように制御されるものとし、
    学習に使用するマルコフ状態空間を一台分のロボットの状態変数のみで構成し、p台あるすべてのロボットは、この状態変数を引数とした1個の前記価値関数を共有するものとし、
    前記価値関数は、まず、全ての位置において、制御対象物が所定の入口位置に移動した場合に高報酬値を得られるように学習し、次に、全ての開始位置の中で前記価値関数の値が最も大きい一点の位置を目指す行動の前記価値関数の値が高くなるように学習することにより得たものであり、
    前記価値関数が記憶される記憶部と、
    制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、前記価値関数を用いて、(G-1)制御対象物が目標位
    置の何れかに存在する場合、その制御対象物が、前記所定の入口位置から遠い他の目標位置に移動するように制御し、(G-2)制御対象物が前記目標位置の集合に含まれない位置に
    存在する場合、その制御対象物が、前記所定の入口位置に向かって移動するように制御し、(V-1)ボイドが前記目標位置の集合に含まれない位置または前記所定の入口位置に位置
    する場合、そのボイドが前記所定の入口位置から遠い前記目標位置の集合に含まれない位置に移動するように制御し、(V-2)ボイドが前記所定の入口位置を除いた前記目標位置の
    何れかに位置する場合、そのボイドが前記所定の入口位置に向かって移動するように制御する行動選択部を含み、
    前記行動選択部は、入口位置に近い先頭制御対象物を決め、(G-1)及び(G-2)の制御により移動させることでボイドを発生させる第一制御と、前記第一制御の結果、発生したボイドを前記(V-1)及び(V-2)の制御に従う限り移動させる第二制御とを実行する、
    行動制御システム。
  2. 開始位置の集合に配置された複数の制御対象物を所定の入口位置を含む目標位置の集合に移動させるための行動制御を行う行動制御方法であって、
    第一方向に対して平行でない方向を第二方向とし、第一方向に対して反対の方向を第三方向とし、第二方向に対して反対の方向を第四方向とし、各開始位置及び各目標位置は、それぞれ前記第一方向〜第四方向の少なくとも何れかの方向において他の開始位置及び目標位置と隣接し、前記目標位置の集合及び前記開始位置の集合はそれぞれ一塊の任意の形状を成し、
    前記制御対象物は、当該制御対象物の2次元平面上の第一方向において隣接する第一位置、第二方向において隣接する第二位置、第三方向において隣接する第三位置、及び、第四方向において隣接する第四位置、第一位置に第二方向において隣接する第五位置、第二位置に第三方向において隣接する第六位置、第三位置に第四方向において隣接する第七位置、及び、第四位置に第一方向において隣接する第八位置に存在する他の制御対象物と通信するための通信手段を備え、制御対象物がその制御対象物の現在の位置sにおいて各行
    動aを取ったときの適切さを表す1個の価値関数に基づいて制御され、静止するか、また
    は、二次元平面上の第一〜第四位置の何れかに移動するように制御されるものとし、
    学習に使用するマルコフ状態空間を一台分のロボットの状態変数のみで構成し、p台あるすべてのロボットは、この状態変数を引数とした1個の前記価値関数を共有するものとし、
    前記価値関数は、まず、全ての位置において、制御対象物が所定の入口位置に移動した場合に高報酬値を得られるように学習し、次に、全ての開始位置の中で前記価値関数の値が最も大きい一点の位置を目指す行動の前記価値関数の値が高くなるように学習することにより得たものであり、
    行動選択部が、制御対象物の移動に伴って生じる、または、制御対象物の移動する方向と反対の方向に移動する仮想的な存在をボイドとし、前記価値関数を用いて、(G-1)制御
    対象物が目標位置の何れかに存在する場合、その制御対象物が、前記所定の入口位置から遠い他の目標位置に移動するように制御し、(G-2)制御対象物が前記目標位置の集合に含
    まれない位置に存在する場合、その制御対象物が、前記所定の入口位置に向かって移動するように制御し、(V-1)ボイドが前記目標位置の集合に含まれない位置または前記所定の
    入口位置に位置する場合、そのボイドが前記所定の入口位置から遠い前記目標位置の集合に含まれない位置に移動するように制御し、(V-2)ボイドが前記所定の入口位置を除いた
    前記目標位置の何れかに位置する場合、そのボイドが前記所定の入口位置に向かって移動するように制御する行動選択ステップを含み、
    前記行動選択ステップは、入口位置に近い先頭制御対象物を決め、(G-1)及び(G-2)の制御により移動させることでボイドを発生させる第一制御と、前記第一制御の結果、発生したボイドを前記(V-1)及び(V-2)の制御に従う限り移動させる第二制御とを実行する、
    行動制御方法。
  3. 請求項1の行動制御システムとしてコンピュータを機能させるためのプログラム。
JP2014232549A 2014-11-17 2014-11-17 行動制御システム、その方法及びプログラム Active JP6285849B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014232549A JP6285849B2 (ja) 2014-11-17 2014-11-17 行動制御システム、その方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014232549A JP6285849B2 (ja) 2014-11-17 2014-11-17 行動制御システム、その方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2016095754A JP2016095754A (ja) 2016-05-26
JP6285849B2 true JP6285849B2 (ja) 2018-02-28

Family

ID=56071751

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014232549A Active JP6285849B2 (ja) 2014-11-17 2014-11-17 行動制御システム、その方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6285849B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6706173B2 (ja) 2016-08-09 2020-06-03 株式会社日立製作所 制御装置、制御方法、および制御プログラム
CN108646550B (zh) * 2018-04-03 2022-03-22 江苏江荣智能科技有限公司 一种基于行为选择的多智能体编队方法
CN114442487B (zh) * 2022-01-18 2023-03-21 北京理工大学 多智能体系统仿射编队中的领导者选取方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2933247B2 (ja) * 1991-10-29 1999-08-09 川崎重工業株式会社 ロボット装置
JP4746349B2 (ja) * 2005-05-18 2011-08-10 日本電信電話株式会社 ロボット行動選択装置及びロボット行動選択方法

Also Published As

Publication number Publication date
JP2016095754A (ja) 2016-05-26

Similar Documents

Publication Publication Date Title
Lakshmanan et al. Complete coverage path planning using reinforcement learning for tetromino based cleaning and maintenance robot
Phung et al. Enhanced discrete particle swarm optimization path planning for UAV vision-based surface inspection
Ge et al. Queues and artificial potential trenches for multirobot formations
JP6174523B2 (ja) 行動制御システム、その方法及びプログラム
JP5381679B2 (ja) 経路探索システム、方法、プログラム、並びに移動体
JP5997092B2 (ja) ロボット協調搬送計画装置、方法及びプログラム
CN106647771B (zh) 多移动机器人的最小步编队方法
Shi et al. Coverage path planning for cleaning robot based on improved simulated annealing algorithm and ant colony algorithm
JP2015201068A (ja) 行動制御装置、方法及びプログラム
da Silva Autonomous adaptive modification of unstructured environments
CN109947132A (zh) 基于rfid库存盘点的无人机三维路径规划方法
JP6285849B2 (ja) 行動制御システム、その方法及びプログラム
JP6559591B2 (ja) 行動制御システム、その方法及びプログラム
CN112415997A (zh) 一种用于多机器人协作的路径规划方法及系统
US12186912B2 (en) Capability-aware pathfinding for autonomous mobile robots
JP6489923B2 (ja) 行動制御システム、及びそのプログラム
Hardouin et al. A multirobot system for 3-d surface reconstruction with centralized and distributed architectures
Badawy et al. New approach to enhancing the performance of cloud-based vision system of mobile robots
Moussa et al. Cluster-based distributed self-reconfiguration algorithm for modular robots
Abaee Shoushtary et al. Team Robot Motion Planning in Dynamics Environments Using a New Hybrid Algorithm (Honey Bee Mating Optimization‐Tabu List)
CN116300905A (zh) 一种基于二维激光观测的带约束多机器人强化学习安全编队方法
CN114740849A (zh) 基于行人步行决策规则的移动机器人自主导航方法及装置
Shi et al. Enhancing Adaptability: Hierarchical Frontier-Based Path Planning for Navigation in Challenging Environments
Nishikawa et al. Coordination control design of heterogeneous swarm robots by means of task-oriented optimization
Wu et al. Consensus based distributive task allocation for multi-AUV in searching and detecting

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180202

R150 Certificate of patent or registration of utility model

Ref document number: 6285849

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350