JP6939396B2 - 隊列制御装置、隊列制御方法、およびプログラム - Google Patents

隊列制御装置、隊列制御方法、およびプログラム Download PDF

Info

Publication number
JP6939396B2
JP6939396B2 JP2017202115A JP2017202115A JP6939396B2 JP 6939396 B2 JP6939396 B2 JP 6939396B2 JP 2017202115 A JP2017202115 A JP 2017202115A JP 2017202115 A JP2017202115 A JP 2017202115A JP 6939396 B2 JP6939396 B2 JP 6939396B2
Authority
JP
Japan
Prior art keywords
group
control
unit
moving
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
JP2017202115A
Other languages
English (en)
Other versions
JP2019075013A (ja
Inventor
洋 川野
洋 川野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2017202115A priority Critical patent/JP6939396B2/ja
Publication of JP2019075013A publication Critical patent/JP2019075013A/ja
Application granted granted Critical
Publication of JP6939396B2 publication Critical patent/JP6939396B2/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)

Description

本発明は、複数の制御対象物の行動を制御する技術に関する。特に、二つの制御対象物群が同じ空間内を移動する場合において、一方の制御対象物群が他方の制御対象物群の占有する空間を通り抜けて目的位置へ移動(通り抜け)することを可能とするための各制御対象物の行動計画を求める隊列制御技術に関する。
近年、多数の自律移動ロボットを効率的に制御するための研究が活発に行われている。その任務内容は、人間の入れない箇所の監視、物品の搬送など様々であるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている。
特に、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位置の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究も行われている(例えば、非特許文献1、2参照)。
非特許文献1では、全てのロボットが同じ性質を持つ(ホモジニアス)という前提の下で、任意の初期隊列形成状態から目的隊列形成状態へ変形する隊列制御を実現する方法が開示されている。ここでは、8つのロボットを1つの単位として移動させることで、従来よりも効率的な隊列制御を実現している。
非特許文献2では、各矩形ロボットが異なる性質を持つ(ヘテロジニアス)という前提の下で、任意の形状隊列から他の形状隊列へ変形する隊列制御の方法が開示されている。
Kawano, H., "Complete Reconfiguration Algorithm for Sliding Cube-shaped Modular Robots with only Sliding Motion Primitive", 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2015), pp. 3276-3283, Hamburg, Germany, September 2015. R. Fitch, Z. Butler, D. Rus, "Reconfiguration Planning for Heterogeneous Self-Reconfiguring Robots", 2003 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS 2003), pp. 2460-2467, Las Vegas, NV, October 2003.
非特許文献1および非特許文献2は、いずれも空間内には1つのロボット群のみが存在しているものとして、当該ロボット群の初期隊列形成状態を別の隊列形成状態へ変形させるものである。
実環境下においては、同じ空間内に複数のロボット群が存在し、それぞれが任務遂行のために空間内を移動する際に、ロボット隊列同士ですれ違う動作が必要になる場合も想定される。このとき、十分な広さのある空間であれば、各ロボット群が接触しないような経路をとってすれ違うことも可能であるが、狭い通路を移動する場合や、障害物がある場所を移動する場合等はすれ違うための空間が限られており、一方のロボット群が他方のロボット群が占有する空間を通り抜けて(つまり、一方のロボット群と他方のロボット群が空間を共有しながら)移動することが必要になるケースも想定される。しかしながら、これまで、一方のロボット群が接続を維持しつつ他方のロボット群が占有する空間を通り抜けて移動するための手法は提案されていない。
この発明の目的は、上記のような点に鑑みて、一方の制御対象物群(例えば、ロボット群)が接続を維持しつつ他方の制御対象物群が占有する空間を通り抜けて移動することができる隊列制御技術を提供することである。
上記の課題を解決するために、この発明の隊列制御装置は、制御対象物群は複数の制御対象物からなる制御対象物単位が所定の移動方向へ複数接続することで構成され、各制御対象物単位の周囲には他の制御対象物単位を構成する制御対象物が移動可能な空隙があり、部分隊列は移動方向へ移動するM群制御対象物群と形状および位置が変化しないS群制御対象物群とが組み合わさって構成され、M群制御対象物群が各制御対象物単位を維持しつつS群制御対象物群の存在する空間を通り抜けて移動方向へ移動するように各制御対象物群を制御する隊列制御装置であって、部分隊列のうち移動方向に対してM群制御対象物群に属する制御対象物のみが存在する基準列に属する複数の制御対象物を移動方向へまとめて移動させる基本動作部と、部分隊列のうち、基準列に水平面で隣接する列に属する制御対象物を移動方向へまとめて移動させる動作、もしくは、基準列の対角位置に存在する列に属する制御対象物を移動方向の逆方向へまとめて移動させる動作、もしくは、移動方向に直交する方向で空隙と接する制御対象物をその空隙内へ移動させる動作、のいずれかを実行する調整動作部と、を含む。
この発明の隊列制御技術によれば、制御対象物の隊列制御において、一方の制御対象物群が接続を維持しつつ他方の制御対象物群が占有する空間を通り抜けて移動することができる。
図1は、制御対象物の移動を説明するための図である。 図2は、制御対象物単位を説明するための図である。 図3は、制御対象物群が空間を共有する状態を説明するための図である。 図4は、ボイドの移動の様子を説明するための図である。 図5は、制御対象物群の部分隊列を説明するための図である。 図6は、制御対象物群の部分隊列の具体例を示す図である。 図7は、基準列と他の列の位置関係を説明するための図である。 図8は、図9〜24、31〜34の表記方法を例示するための図である。 図9は、制御対象物群の移動手順を例示する図である。 図10は、制御対象物群の移動手順を例示する図である。 図11は、制御対象物群の移動手順を例示する図である。 図12は、制御対象物群の移動手順を例示する図である。 図13は、制御対象物群の移動手順を例示する図である。 図14は、制御対象物群の移動手順を例示する図である。 図15は、制御対象物群の移動手順を例示する図である。 図16は、制御対象物群の移動手順を例示する図である。 図17は、制御対象物群の移動手順を例示する図である。 図18は、制御対象物群の移動手順を例示する図である。 図19は、制御対象物群の移動手順を例示する図である。 図20は、制御対象物群の移動手順を例示する図である。 図21は、制御対象物群の移動手順を例示する図である。 図22は、制御対象物群の移動手順を例示する図である。 図23は、制御対象物群の移動手順を例示する図である。 図24は、制御対象物群の移動手順を例示する図である。 図25は、第一実施形態の隊列制御装置の機能構成を例示する図である。 図26は、第一実施形態の隊列制御方法の処理手続きを例示する図である。 図27は、部分隊列の状態とモード値の関係を説明するための図である。 図28は、第二実施形態の隊列制御装置の機能構成を例示する図である。 図29は、第二実施形態の隊列制御方法の処理手続きを例示する図である。 図30は、制御対象物群の部分隊列を説明するための図である。 図31は、制御対象物群の移動手順を例示する図である。 図32は、制御対象物群の移動手順を例示する図である。 図33は、制御対象物群の移動手順を例示する図である。 図34は、制御対象物群の移動手順を例示する図である。 図35は、第三実施形態の隊列制御装置の機能構成を例示する図である。 図36は、第三実施形態の隊列制御方法の処理手続きを例示する図である。 図37は、第四実施形態の隊列制御装置の機能構成を例示する図である。 図38は、第四実施形態の隊列制御方法の処理手続きを例示する図である。 図39は、第五実施形態の隊列制御装置の機能構成を例示する図である。 図40は、第五実施形態の隊列制御方法の処理手続きを例示する図である。
以下、本発明の実施形態について詳細に説明する。なお、以下の説明に用いる図面では、同じ機能を有する構成部や同じ処理を行うステップには同一の符号を付し、重複説明を省略する。
<理論的背景>
まず、本発明の隊列制御装置および方法の理論的背景について説明する。以下の説明において、制御対象物はロボットである。制御対象物は、制御の対象となり得るものであればロボット以外であってもよい。
[問題設定]
任意の隊列形成を初期隊列形成状態として、制御対象物同士が接したままの状態を維持しつつ目的とする任意の隊列形成状態である目的隊列形成状態へ隊列を移動させる隊列制御を、多数の制御対象物が協調して行う任務を、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型の制御対象物の制御を想定して実現する。制御対象物については、例えば図1に示すように、制御対象物の周囲縦横高さ方向(以下「上下左右前後方向」ともいう)6マスのうち一つに他の制御対象物が存在している(一つの面を他制御対象物と共有している)状態を維持しながら移動をするものとする。この手法では1つの制御対象物自身が、一個の制御対象物のサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、一つの面を共有する隣り合う制御対象物との相対的な位置を計測し合うことで、制御対象物の群全体の中での各制御対象物の位置も容易に知ることができる。このため、制御対象物の移動量の誤差によって、隊列が崩れるといった問題を起こしにくく、また、各制御対象物の位置を把握するために付加的な位置計測用の装備を備えずとも位置の把握が可能である。また、複数の制御対象物を連結したように、同時に複数の制御対象物を移動させていくことが可能である。なお、制御対象物は、隣の位置に他の制御対象物が存在しているか否か、障害物があるか否か、そして、自身が目的位置上にいるかどうかを知ることができるものとする。
任務を行う制御対象物は、p個(p≧8=4×2)であり、各制御対象物は、隣接する制御対象物と一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。本発明では、制御対象物は図2の右図に示すような4つの制御対象物で構成される制御対象物群を最小単位(制御対象物単位)として移動を実現するので、制御対象物の総数pは4の倍数とする。
図1の各立方体は、それぞれの制御対象物の位置を示すものである。各立方体には制御対象物は一個しか存在することができない。それぞれの制御対象物は、移動しようとする方向に障害物か他の制御対象物がある場合には、静止をするものと仮定する。なお、制御対象物が存在しうる立方体状の空間をマス、または、格子ともいう。図3は、2つの制御対象物群が一部の空間を共有している状態を例示したものであり、色が塗りつぶされたマスは制御対象物が存在する位置を示す。図3の左側の制御対象物群(薄い色で塗り潰された制御対象物からなる立方体形状の制御対象物群)を第1の制御対象物群、図3の右側の制御対象物群(濃い色で塗りつぶされた制御対象物からなるL字状の形状からなる制御対象物群)を第2の制御対象物群とする。
本発明では、第2の制御対象物群が、第1の制御対象物群の存在する空間(占有する空間)を通り抜けて、初期位置から目的位置へ移動する問題を取り扱う。ここで、制御対象物群が占有する空間とは、制御対象物群中の制御対象物が存在する位置だけで無く、制御対象物群内の複数の制御対象物に挟まれた(囲まれた)空隙も含む空間とする。第2の制御対象物群が通り抜ける間、第1の制御対象物群の占有する空間の形状および位置は変化しないものとする。また、第2の制御対象物群は初期位置の集合(初期隊列形成状態)と目的位置の集合(目的隊列形成状態)において形状を変更しない、つまり、第2の制御対象物群が第1の制御対象物の空隙を通り抜ける前と後で、第2の制御対象物群の形状は同一とする。なお、第1の制御対象物群と第2の制御対象物群の形状はそれぞれ一塊の任意の形状である。
[制御対象物の座標設定]
それぞれの制御対象物i(iは制御対象物番号を表すi=0, 1, 2, 3, …, p-1、ただしpは第1の制御対象物群と第2の制御対象物群に含まれる制御対象物の総数とする)の位置を(Xr[i], Yr[i], Zr[i])とし、初期位置を(Xr0[i], Yr0[i], Zr0[i])とし、目的位置を(Xre[i], Yre[i], Zre[i])とするとき、本問題は、初期位置に配置された制御対象物が、目的位置まで移動するための行動計画を求めることと定義できる。ここで、Xr[i]はX軸方向の位置、Yr[i]はY軸方向の位置、Zr[i]はZ軸方向の位置である。各制御対象物が属する群の番号をSr[i]とする。例えば、Sr[i]=0は第1の制御対象物群、Sr[i]=1は第2の制御対象物群を表すものとする。
本問題は、任意の初期位置に配置された第2の制御対象物群が、任意の目的位置へ移動する際、別の静止している第1の制御対象物群と占有する領域が重なった場合でも、滞りなく目的位置への移動を行うための制御対象物群の行動計画を求めることと定義できる。以下の説明では、移動する制御対象物群(第2の制御対象物群)はSr[i]=1、静止する制御対象物群(第1の制御対象物群)はSr[i]=0とする。
[任務空間の定義]
iを制御対象物番号としたとき、制御対象物iの各状態(制御対象物の位置と行動)は離散値で表現される。部屋をX, Y, Zの直交座標系からなる3次元空間で表すと、X軸、Y軸、Z軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋(3次元空間)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
[動作の定義]
例えば、制御対象物である行動主体は部屋に配置されている各制御対象物である。制御対象物i(iは制御対象物番号)の行動aは、静止、縦横高さ(X軸、Y軸、Z軸)方向への1格子分の移動(正方向、負方向)、の計7種類のうちのいずれかを取る。例えば、a∈{0, 1, 2, 3, 4, 5, 6}として、
0: 静止
1: 三次元空間内でX軸正方向に1格子だけ移動する(図2紙面内右方向)
2: 三次元空間内でY軸正方向に1格子だけ移動する(図2紙面内手前方向)
3: 三次元空間内でX軸負方向に1格子だけ移動する(図2紙面内左方向)
4: 三次元空間内でY軸負方向に1格子だけ移動する(図2紙面内手後方向)
5: 三次元空間内でZ軸正方向に1格子だけ移動する(図2紙面内上方向)
6: 三次元空間内でZ軸負方向に1格子だけ移動する(図2紙面内下方向)
とする。
[探索計算上の問題点]
このような任務環境における状態空間は、制御対象物数×3の次元数の状態を持ち、かつ選択可能な行動数は、制御対象物の行動(=7通り)の制御対象物数乗だけ存在する。例えば、制御対象物数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば、状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらに制御対象物数が1個増えるごとに、その状態数は8000倍増加していくことになる。[問題設定]の項で説明したように、制御対象物同士が接しているという拘束条件を取り入れる場合、制御対象物のお互いの移動を考慮したうえで探索計算を行わなければならないために、根本的な計算量の削減は難しく、複数の制御対象物を使用する場合の大きな問題となっている。
[参考文献3におけるヘテロジニアス隊列制御における特徴]
参考文献3におけるヘテロジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の一つとして、ボイド制御の考え方を導入している。また、[問題設定]で述べたような隊列変形の問題を克服するために8マス制御対象物単位の考え方も導入している。
〔参考文献3〕Kawano, H., “Tunneling-Based Self-Reconfiguration of Heterogeneous Sliding Cube-Shaped Modular Robots in Environments with Obstacles”, 2017 IEEE International Conference on Robotics and Automation, pp. 825-832, May 2017, Singapore.
まず、ボイド制御について説明する。ここでいうボイドとは、ある制御対象物が別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、制御対象物の移動する方向と反対の方向に移動する仮想的な存在である。こうした制御対象物群の隊列形成問題においては、複数の制御対象物の動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数の制御対象物の動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。制御対象物の移動に伴ってボイドが移動していく様子を図4に示す。
しかしながら、参考文献3では、フルに充填された8マス制御対象物の構造を採用しているために、構造内に隙間がなく、二つのロボット隊列の衝突時の通り抜け動作を行うことは難しかった。
[周囲に空隙を有する制御対象物単位の導入]
そこで本発明では、周囲に空隙を有する制御対象物単位を隊列の基本構成要素とし、隊列はこの制御対象物単位が複数接続することで構成され、制御対象物は、この制御対象物単位を維持しつつ移動を行うこととする。例えば、図2に示すように、4つの隣接した制御対象物を一つの単位(制御対象物単位)とし、制御対象物は、この制御対象物単位を維持しつつ移動を行う。言い換えると、4個毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成する4個の制御対象物は隣接した状態を維持しつつ移動を行う。制御対象物単位の集団は、互いに制御対象物単位ごとに少なくとも一面を共有し、接しながら移動をするように制御される。つまり、接続性を保ったまま隊列変形を行うこととする。また、各隊列内において全ての制御対象物は同一(ホモジニアス)であるとする。つまり、第一、第二の各隊列の間での制御対象物は区別されるが、どの制御対象物が各隊列内のどの位置にあるかは問わないものとする。
制御対象物単位は、三次元の直交座標系で各軸方向に長さ2(ただし、制御対象物1個の長さを長さ1とする)を有する立方体形状の空間(以降この空間をメタモジュールとする)内の部分構造である。
このような制御対象物単位を一つの単位とした移動を行う理由は、各制御対象物単位の周囲(メタモジュールの内部)にある複数の空隙空間を、他の制御対象物単位に属する制御対象物が通過することができ、それにより、異なる制御対象物単位内に属する制御対象物同士が行き来することが容易である点である。また、各制御対象物単位の周囲(メタモジュールの内部)にある複数の空隙空間を、他の制御対象物単位に属する制御対象物が通過する際の接続性の維持も容易である。すなわちこれは、隊列形態の維持を考量しなければならない各制御対象物の動作の決定において、制御対象物同士の接続を考慮するための計算負荷を軽減することにつながるからである。このように、本発明は、制御対象物単位が周囲に空隙を有するような構成を基本単位とすることにより、計算負荷の削減を実現することを特徴とするものである。
ここでは4個の制御対象物がなす制御対象物単位が一つのマスの単位(本実施形態では、以下、この単位を「マス単位」または「位置単位」ともいう)であるとし、一つのマス単位を一状態として取り得る制御対象物単位位置の集合からなる状態のうち、初期状態を集合S、目的状態をGとする。ある制御対象物単位jの位置を(Xr_u[j], Yr_u[j], Zr_u[j])(j=0, 1, 2, …, j_max-1)としたとき、その制御対象物単位j内の制御対象物をj1, j2, j3, j4とすれば、一方の制御対象物群が、他方の制御対象物群が占有する空間を通り抜けて移動する問題において、制御対象物群が占有する空間の形状及び位置を変化させない他方の制御対象物群(「静止している制御対象物群中の制御対象物」とも呼ぶ)(Sr[i]=0)、すなわち第1の制御対象物群中に含まれる制御対象物の場合は、
Xr[j1] = 2 × Xr_u[j]
Yr[j1] = 2 × Yr_u[j] + 1
Zr[j1] = 2 × Zr_u[j]
Xr[j2] = 2 × Xr_u[j] + 1
Yr[j2] = 2 × Yr_u[j]
Zr[j2] = 2 × Zr_u[j]
Xr[j3] = 2 × Xr_u[j]
Yr[j3] = 2 × Yr_u[j]
Zr[j3] = 2 × Zr_u[j]
Xr[j4] = 2 × Xr_u[j]
Yr[j4] = 2 × Yr_u[j]
Zr[j4] = 2 × Zr_u[j] + 1
となり、移動している制御対象物群(Sr[i]=1)、すなわち第2の制御対象物群中の制御対象物の場合は、
Xr[j1] = 2 × Xr_u[j] + 1
Yr[j1] = 2 × Yr_u[j]
Zr[j1] = 2 × Zr_u[j] + 1
Xr[j2] = 2 × Xr_u[j]
Yr[j2] = 2 × Yr_u[j] + 1
Zr[j2] = 2 × Zr_u[j] + 1
Xr[j3] = 2 × Xr_u[j] + 1
Yr[j3] = 2 × Yr_u[j] + 1
Zr[j3] = 2 × Zr_u[j] + 1
Xr[j4] = 2 × Xr_u[j] + 1
Yr[j4] = 2 × Yr_u[j] + 1
Zr[j4] = 2 × Zr_u[j]
となる。
ここで、j_maxは第1の制御対象物群と第2の制御対象物群内の制御対象物単位の総数、すなわちj_max=p/4(制御対象物単位内の制御対象物数を4個とした場合)であり、jは制御対象物単位を特定するIDに相当するものである。
なお、各制御対象物iが所属する制御対象物単位jを表す変数をRr[i]=jとする。また、制御対象物が上記j1, j2, j3, j4のどの位置にあるかを指す変数をIr[i](Ir[i]∈{1, 2, 3, 4})とする。また、各制御対象物単位jが属する群をSu[j](Su[j]∈{0, 1})とする。また、各制御対象物単位jの初期位置を(Xr_u0[j], Yr_u0[j], Zr_u0[j])とし、目的位置を(Xr_ue[j], Yr_ue[j], Zr_ue[j])とする。
以下、制御対象物単位に属する制御対象物を移動させることを、制御対象物単位を移動させると略記することもある。
このように、4個の制御対象物により構成される制御対象物単位で移動の制御を行うことにより、第2の制御対象物群内の各制御対象物単位が第1の制御対象物群が占有する空間内の空隙を通って移動することで、第1の制御対象物群と第2の制御対象物群が空間を共有しつつ移動することができる。
[透過隊列制御]
本発明では、Su[j]=1である制御対象物単位jからなる第2の制御対象物群(以下、M群とする)が、Su[j]=0である制御対象物単位jからなる第1の制御対象物群(以下、S群とする)が占有する空間内を任意方向(X, Y, Z軸の6方向)に移動するための透過隊列制御を実現する。つまり、移動する制御対象物群がM群であり、通り抜ける空間を占有する制御対象物群がS群であり、S群の群全体の形状と位置は移動前後で変わらない。「群全体の形状と位置が変わらない」という意味は、全体形状と位置が同じであれば、隊列内の個別の制御対象物の位置は入れ替わっても良いということである。
ここで、部分隊列を、図5に示す隊列とする。図5の中央部分の直方体は、8マス全てが制御対象物で充填されているメタモジュールが移動方向に連続してなる隊列、つまり、S群の制御対象物単位とM群の制御対象物単位が組み合わさってなる隊列である。この隊列に加えて、移動方向先頭側にS群の制御対象物単位が1個隣接し、移動方向末尾側にM群の制御対象物単位が1個隣接している。この直方体に隣接するS群またはM群の制御対象物単位は必須ではないものとする。部分隊列は、S群の制御対象物単位とM群の制御対象物単位が組み合わさってなるメタモジュールが含まれていれば図5の形状に限定されず、例えば、図6(A)〜(C)に示すような形状であってもよい。なお、図6において、無地の立方体がM群に属する制御対象物であり、網掛けされた立方体がS群に属する制御対象物である。
任意の隊列を部分隊列に分割したときに、いずれの部分隊列にも含まれないS群の制御対象物単位のみが移動方向に連続する隊列、M群の制御対象物単位のみが移動方向に連続する隊列が生じるので、これを剰余隊列と呼ぶこととする。M群がS群の占有する空間を任意方向に移動する隊列制御において重要となるのは、部分隊列において、M群がS群の占有する空間を共有しながら1制御対象物単位分、所定方向へ移動する動作である。空隙が少ない分、移動できる範囲に制限があり、考慮が必要だからである。剰余隊列については、相手方の制御対象物単位がいない(空隙である)ため部分隊列のような移動の制限を考慮する必要がない。結果として、M群がS群の占有する空間を任意方向に移動する隊列制御は、部分隊列単位で1制御対象物単位分、所定方向へ移動する動作と、部分隊列近傍の剰余隊列を部分隊列の動きに合わせて移動させる動作の集合により実現できる。
本発明では、この基本となる部分隊列において1制御対象物単位分所定方向へ移動する動作を以下により実現する。
A)基本動作:部分隊列のうち、初期状態においてM群に所属する制御対象物だけが存在する列(移動方向の列)を基準列としたとき、基準列に所属する複数の制御対象物をまとめて移動方向に1マス移動させる動作である。
B)調整動作:基準列以外に所属する1以上の制御対象物を移動方向に平行な方向もしくは移動方向に垂直な方向に移動させる動作である。
上記の枠組みを採用することで、隣接する部分隊列に影響を及ぼすことなく各部分隊列の移動を実現できるので、全ての部分隊列について並列に移動させることができる。また、A)基本動作により複数の制御対象物をまとめて移動させることで、少ないステップ数で目的位置へ移動を実現することができる。
<第一実施形態>
第一実施形態の隊列制御装置は、部分隊列について、M群がS群の占有する空間内の空隙を通って1制御対象物単位分、所定方向へ移動するよう制御を行うものである。
目的とするM群の移動方向をa方向とする。本実施形態では、三次元空間を表現する直交する3軸のうち、a方向と平行な軸を第3軸(a方向正)とし、a方向と垂直で図7において水平面内にある軸を第1軸(手前方向負)と呼ぶこととし、a方向と垂直で図7において鉛直面内にある軸を第2軸(下方向正)とする。第一実施形態では、制御対象物の移動方向は、第3軸と、第3軸に直交する2軸のうち何れか一方を用いることを特徴とする。
初期状態においてa方向に隣接する制御対象物が全てM群所属である列を「基準列」と呼ぶこととする(図7の無地の列)。第2軸方向の位置が基準列と等しい列を「基準列に対して第1軸の向きに並行な列」と呼ぶこととする(図7の斜線網掛けの列)。第1軸の位置が基準列と等しい列を「基準列に対して第2軸の向きに平行な列」と呼ぶこととする(図7の縦線網掛けの列)。制御対象物群を構成する4つ列のうち、基準列、基準列に対して第1軸の向きに並行な列、基準列に対して第2軸の向きに平行な列のいずれにも該当しない残り1列を、「基準列の対角位置にある列」と呼ぶこととする(図7の格子網掛けの列)。
第一実施形態の隊列制御は、
(第1工程)基準列をa方向に1マス移動させる工程
(第2工程)基準列に対して第1軸の向きに並行な列をa方向に1マス移動させる工程
(第3工程)基準列の対角位置にある列をaと逆の方向に1マス移動させる工程
(第4工程)上記第1〜第3工程の少なくとも何れかにより生成された空隙位置に、第2軸の向きに平行な方向に隣接する位置にある制御対象物を移動させる工程
の4つの工程を組み合わせて実現する。第1工程が、上述の「A)基本動作」に相当し、第2〜第4工程が上述の「B)調整動作」に相当する。
ここで、第1〜第3工程では、所定方向へ複数の制御対象物をまとめて移動させることを特徴とする。また、これらの工程の移動は互いの列に影響しないので、同時に実行することができる。つまり、第3軸と平行な方向へ複数の制御対象物をまとめて移動させる工程(第1〜第3工程)と、第3軸と垂直な第2軸方向へ1以上の制御対象物をまとめて移動させる工程(第4工程)を交互に実行することで、隊列制御を行うのである。これにより制御対象物の数に依存しない効率的な移動を可能としている。本実施形態で移動に要する実行時間は、M群が移動する距離に比例した実行時間である。
図9〜24に、第一実施形態の隊列制御における制御対象物の移動手順を示す。図9〜24では、奥側の制御対象物の移動の様子を把握しやすくするため、図8に示すように奥行き方向に2列制御対象物が配置されてなる立体形状を、手前から一列目を「前」、2列目を「後」として分けて表現している。
また、M群に所属する制御対象物をMxx(xxは2桁の数字)で表し、S群に所属する制御対象物をSxxで表す。1桁目の数字は開始時の隊列中で所属する制御対象物単位を表すもので、同じ数字であれば同じ制御対象物単位に所属する。例えば、M11, M12, M13, M14が1つの制御対象物単位を構成し、M21, M22, M23, M24が別の制御対象物単位を構成する。
図9〜10に、移動方向aを左方向、第2軸を図の縦の向きとした場合の移動手順の一例を示す。これは、後述するモード値が0の場合の隊列制御の核となる部分を示したものであり、簡単のため制御対象物単位がa方向のみに隣接してなる隊列を移動させる場合を示している。
図9に示した初期状態(T=0)において、S21, S22, S23, S24からなるS群内の制御対象物単位に相対する位置に存在するM群内の制御対象物単位M21, M22, M23, M24が、図10に示した最終状態(T=5)では、S11, S13, S14, S24からなるS群内の制御対象物単位に相対する位置に移動している。初期状態と最終状態において、M群およびS群の形状はそれぞれ同じであり、S群の位置は変わっておらず、M群の位置は左方向に1メタモジュール分(つまり2マス)だけ移動していることがわかる。なお、ここでは各隊列の中での制御対象物はホモジニアスとしているため、移動の前後において隊列全体としての形状が同じであれば、各制御対象物がどの位置にあるかは問わない。例えば、図10では、T=5におけるM群の隊列のうち一番左の制御対象物単位は、M21, M22, M23, M32から構成される。数字の1桁目が開始時点で所属していた制御対象物単位のIDに相当するので、ID=2の制御対象物単位に所属していた制御対象物(M21, M22, M23)と、ID=3に所属していた制御対象物(M32)とが混ざって、移動後の制御対象物単位を構成していることになる。
また、図9〜10では、各時刻において、次の時刻までに移動する制御対象物を太字で示し、その移動方向を矢印で示している。T=0, 2, 4の各時刻で第3軸(a方向)と平行な方向へ複数の制御対象物をまとめて移動させる工程(第1〜第3工程)が行われ、T=1, 3において第2軸と平行な方向へ制御対象物を移動させる工程(第4工程)が行われる。
なお、ここでは「基準列」は「前」の上段、「基準列に対して第1軸の向きに並行な列」が「後」の上段、「基準列に対して第2軸の向きに並行な列」が「前」の下段、「基準列の対角位置にある列」が「後」の下段である。
実際の隊列はa方向と直交する方向にも制御対象物単位が隣接して隊列形成することも可能であるが、この場合は、a方向と水平な方向に制御対象物単位を並べて構成される部分隊列毎に第一実施形態の隊列制御装置による移動を行えばよい。図9〜10の例からも分かるとおり、移動に際してM群やS群の制御対象物が、移動方向aと水平な方向以外の空間にはみ出して移動することはないので、このように部分隊列に分割して各部分隊列同士で移動を行っても、他の部分隊列に影響を及ぼすことは無く、各部分隊列の移動を並行して行うことができる。
以下、第一実施形態の透過隊列制御を実現する隊列制御装置について具体的に説明する。本実施形態では、a方向にのみ制御対象物単位が連続した隊列の隊列制御を行う隊列制御装置について説明する。
[前提]
・移動方向aは予め与えられるものとする(以下、「移動方向指令値a」とよぶ)。
・M群とS群は、それぞれa方向と水平な方向に複数の制御対象物単位が並んで構成される隊列とする。
・M群を構成する制御対象物単位とS群を構成する制御対象物単位は相補的な構造(相対する構造)をしており、組み合わさるとメタモジュールの大きさとなる。
・本隊列制御装置は、M群が、S群が占有する空間を通って1制御対象物単位分だけa方向に移動するような隊列制御を行う。
・初期状態において、M群とS群は少なくとも一部において空間を共有しているか、もしくは接しているものとする。
後述するモード毎に第一実施形態の隊列制御装置により制御対象物が移動をする様子を図9〜24に示す。図9〜16は各モードで負方向に1制御対象物単位分移動させる場合、図17〜24は各モードで正方向に1制御対象物単位分移動させる場合の例である。それぞれT=0が初期状態であり、T=1が第一の移動処理を実行した後の状態、T=2が第二の移動処理を実行した後の状態、・・・を示す。太字は、各時刻において、次の時刻までに移動する制御対象物を示す。初期状態(T=0)と終了状態(T=5)では、M群の制御対象物に下線を付して示している。M群の制御対象物が、1制御対象物単位分移動していることが確認できる。T=2〜T=4において、一点鎖線で囲った部分は、M群とS群が重なる空間を示している。
図17〜24は、図9〜16の負方向への移動を、T=5を初期状態とし、T=0を最終状態として逆順したもの(「逆再生」という)である。なお、モード値0の右方向への移動はモード値3の左方向への移動の逆再生(図15〜16の時系列を逆にしたものが図17〜18)、モード値1の右方向への移動はモード値1の左方向への移動の逆再生(図11〜12の時系列を逆にしたものが図21〜22)、モード値2の右方向への移動は左方向の移動のモード値2の場合の逆再生(図13〜14の時系列を逆にしたものが図19〜20)、モード値3の右方向への移動はモード値0の左方向への移動の逆再生(図9〜10の時系列を逆にしたものが図23〜24)となる。
[装置構成]
第一実施形態の隊列制御装置1は、図25に例示するように、状態判定部10、基本動作部11、および調整動作部12を含む。この隊列制御装置1が、図26に例示する各ステップの処理を行うことにより第一実施形態の隊列制御方法が実現される。
隊列制御装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。隊列制御装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。隊列制御装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。隊列制御装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
〔状態判定部10〕
状態判定部10は、ステップS10の状態判定処理を実行する。具体的には、状態判定部10は、部分隊列がM群の制御対象物群とS群の制御対象物群とが組み合わさって構成される部分の移動方向に対して先頭側にS群の制御対象物群に属する制御対象物単位のみを含むか否か、および、末尾側にM群の制御対象物群に属する制御対象物単位のみを含むか否かに基づいて部分隊列の状態を表すモード値を決定する。
〔基本動作部11〕
基本動作部11は、ステップS11、13、15の第一、第三、第五の移動処理を、調整動作部12と協調して実行する。具体的には、基本動作部11は、状態判定部10が決定したモード値と所定の移動方向に基づいて決定される所定列に属する制御対象物のうち、移動方向に対してM群制御対象物群に属する制御対象物のみが存在する基準列に属する複数の制御対象物を移動方向へまとめて移動させる。
〔調整動作部12〕
調整動作部12は、ステップS11〜15の第一〜第五の移動処理を実行する。特に、ステップS11、13、15の第一、第三、第五の移動処理は基本動作部11と協調して実行する。具体的には、調整動作部12は、状態判定部10が決定したモード値と所定の移動方向に基づいて決定される所定列に所属する制御対象物のうち、基準列に水平面で隣接する列に属する制御対象物を移動方向へまとめて移動させる動作、もしくは、基準列の対角位置に存在する列に属する制御対象物を移動方向の逆方向へまとめて移動させる動作、もしくは、移動方向に直交する方向で空隙と接する制御対象物をその空隙内へ移動させる動作、のいずれかを実行する。
以下、図26を参照して、第一実施形態の隊列制御装置1が実行する隊列制御方法を詳細に説明する。
〔状態判定処理〕
ステップS10において、状態判定部10は、M群とS群を構成する隊列の状態を判定し、状態を表すモード値を決定する。状態を表すモード値とは、M群とS群の占有する空間の重なりの状態を示す値である。モード値の例を図27に示す。line_mode[a]がモード値であり、0, 1, 2, 3の何れかの値をとる。ここでは、無地の立方体がM群に属する制御対象物であり、網掛けされた立方体がS群に属する制御対象物である。
(1)モード値が0の場合(line_mode[a]=0)
部分隊列の移動方向aの先頭側にM群が占有する空間と重ならないS群の空間が存在し、部分隊列の移動方向aの末尾側(逆方向の先頭側)にS群が占有する空間と重ならないM群の空間が存在する状態である。
(2)モード値が1の場合(line_mode[a]=1)
部分隊列の移動方向aの先頭側にM群が占有する空間と重ならないS群の空間が存在し、部分隊列の移動方向aの末尾側(逆方向の先頭側)にM群の空間が存在しない状態である。
(3)モード値が2の場合(line_mode[a]=2)
部分隊列の移動方向aの先頭側にS群の空間が存在せず、部分隊列の移動方向aの末尾側(逆方向の先頭側)に隣接する位置にS群が占有する空間と重ならないM群の空間が存在する状態である。
(4)モード値が3の場合(line_mode[a]=3)
部分隊列の移動方向aの先頭側と末尾側のどちらにも、M群とS群のいずれも他方の制御対象物群と重ならない空間が存在しない状態(つまり、M群とS群の占有する空間が完全に重なっている状態)に対応する。
このような判定を行うのは、S群とM群の占有する空間の重なり具合によって、以後の各移動処理で移動対象とする制御対象物、列を切り替える必要があるためである。
〔第一の移動処理〕
ステップS11において、基本動作部11および調整動作部12は、モード値および移動方向の正負により定まる部分隊列内の所定列に所属する制御対象物のうち、M群が占有する空間内にある制御対象物を、a方向へ1マス移動させる。S群とM群両方の制御対象物が存在する部分において移動する制御対象物の含まれる所定列は、例えば表1に示すルールに従って選択される。表1において、各モード値に対応する行で「○」がついている列が移動対象となる所定列である。例えば、図9、11、13、15、17、19、21、23のT=0において太字で示す制御対象物が移動対象となる所定制御対象物である。
所定列に基準列が含まれる場合、基本動作部11が基準列を移動させる基本動作を実行する。所定列に基準列以外の列が含まれる場合、調整動作部12が基準列以外の所定列を移動させる調整動作を実行する。
Figure 0006939396
初期状態におけるM群所属の各制御対象物の制御対象物単位内での位置を、図2右図に示す1, 2, 3, 4で識別することとし、初期状態におけるS群所属の各制御対象物の制御対象物単位内での位置を図2左図に示す1, 2, 3, 4で識別することとすると、第一の移動処理において基本動作部11および調整動作部12で移動対象となる制御対象物は以下のように特定することができる。
(1)モード値0の場合:
<移動方向が負方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・S群と空間を共有していないM群所属の制御対象物のうち4のもの
・M群と空間を共有しているS群所属の制御対象物のうち4のもの
<移動方向が正方向の場合>
・M群所属の各制御対象物単位中2, 3のもの
(2)モード値1の場合:
<移動方向が負方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・M群の占有する空間内にあるS群所属の各制御対象物単位のうち4のもの
<移動方向が正方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・S群所属の末尾以外の各制御対象物単位のうち4のもの
(3)モード値2の場合:
<移動方向が負方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・S群と空間を共有していないM群所属の各制御対象物のうち4のもの
・M群の占有する空間内にあるS群所属の各制御対象物単位のうち4のもの
<移動方向が正方向の場合>
・M群所属の各制御対象物単位中2, 3のもの
(4)モード値3の場合:
<移動方向が負方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・M群の占有する空間内にあるS群所属の各制御対象物単位のうち4のもの
<移動方向が正方向の場合>
・M群所属の各制御対象物単位中1, 2, 3のもの
・S群所属の末尾以外の各制御対象物単位のうち4のもの
〔第二の移動処理〕
ステップS11において、調整動作部12は、モード値および移動方向の正負により定まる所定制御対象物を、第2軸方向に移動させる。移動対象となる所定制御対象物は、例えば、図9、11、13、15、17、19、21、23のT=1において太字で示す制御対象物である。つまり、第二の移動処理において調整動作部12で移動対象となるのは、以下の制御対象物である。
(1)モード値0の場合:
<移動方向が負方向の場合>
・M群所属のa方向先頭の制御対象物単位中2のもの
・S群所属のa方向末尾の制御対象物単位中2のもの
<移動方向が正方向の場合>
・なし(移動しない)
(2)モード値1の場合:
<移動方向が負方向の場合>
・M群所属のa方向先頭の制御対象物単位中2のもの
・S群所属のa方向末尾の制御対象物単位中2のもの
・初期状態においてS群と空間を共有していたM群所属の制御対象物単位中a方向末尾の制御対象物単位のなかで4のもの
<移動方向が正方向の場合>
・S群所属のa方向末尾の制御対象物単位中2のもの
(3)モード値2の場合:
<移動方向が負方向の場合>
・M群所属のa方向先頭の制御対象物単位中2のもの
・S群所属のa方向末尾の制御対象物単位中2のもの
・初期状態においてM群と空間を共有していたS群所属の制御対象物単位中a方向先頭の制御対象物単位のなかで4のもの
<移動方向が正方向の場合>
・M群所属のa方向先頭の制御対象物単位中3のもの
(4)モード値3の場合:
<移動方向が負方向の場合>
・M群所属のa方向先頭の制御対象物単位中2のもの
・S群所属のa方向先頭の制御対象物単位中4のもの
・初期状態においてS群と空間を共有していたM群所属の制御対象物単位中a方向末尾の制御対象物単位のなかで4のもの
・初期状態においてM群と空間を共有していたS群所属の制御対象物単位中a方向先頭の制御対象物単位のなかで2のもの
<移動方向が正方向の場合>
・M群所属のa方向先頭の制御対象物単位中3のもの
・S群所属のa方向末尾の制御対象物単位中2のもの
〔第三の移動処理〕
ステップS13において、基本動作部11および調整動作部12は、モード値および移動方向の正負により定まる所定列に所属する制御対象物のうち、M群が占有する空間内にある制御対象物を、a方向と平行な方向へ1マス移動させる。所定列は、例えば表2に示すルールに従って選択される。表2において、各モード値に対応する行で「○」がついている列が移動対象となる所定列である。また、移動方向は、a方向にS群所属の制御対象物のみが並んでいる列(基準列の対角位置にある列)についてはaと逆方向、その他の列についてはa方向である。つまり、第三の移動処理において基本動作部11および調整動作部12で移動対象となるのは、以下の制御対象物である。例えば、図9、11、13、15、17、19、21、23のT=2において太字で示す制御対象物が移動対象となる所定制御対象物である。
第一の移動処理と同様に、所定列に基準列が含まれる場合、基本動作部11が基準列を移動させる基本動作を実行する。所定列に基準列以外の列が含まれる場合、調整動作部12が基準列以外の所定列を移動させる調整動作を実行する。
Figure 0006939396
第三の移動処理において基本動作部11および調整動作部12で移動対象となる制御対象物は以下のように特定することができる。
(1)モード値0の場合:
<移動方向が負方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物のうち初期状態においてM群が占有する空間に対してa方向に隣接する制御対象物単位中の3を除いたもの
<移動方向が正方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物
・基準列に対して第1軸方向に平行な列の制御対象物
(2)モード値1の場合:
<移動方向が負方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物のうち初期状態においてM群が占有する空間に対してa方向に隣接する制御対象物単位中の3を除いたもの
<移動方向が正方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物のうち、初期状態においてM群が占有する空間内の末尾のS群制御対象物単位中の3を除いたもの
(3)モード値2の場合:
<移動方向が負方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物
・基準列に対して第1軸の向きに並行な列にある制御対象物
<移動方向が正方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物
・基準列に対して第1軸の向きに並行な列にある制御対象物
(4)モード値3の場合:
<移動方向が負方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物
・基準列に対して第1軸方向に平行な列の制御対象物
<移動方向が正方向の場合>
・基準列にあるM群所属の制御対象物
・基準列の対角位置にあるS群所属の制御対象物のうち初期状態においてM群が占有する空間内末尾のS群制御対象物単位中の3を除いたもの
〔第四の移動処理〕
ステップS14において、調整動作部12は、モード値および移動方向の正負により定まる所定制御対象物を、第2軸方向に移動させる。移動対象となる所定制御対象物は、例えば、図10、12、14、16、18、20、22、24のT=3において太字で示す制御対象物である。つまり、第四の移動処理において調整動作部12で移動対象となるのは、以下の制御対象物である。
(1)モード値0の場合:
<移動方向が負方向の場合>
・初期状態においてS群とM群が共有する空間に対してaと反対方向に隣接するM群所属の制御対象物単位中4のもの
・初期状態においてS群とM群が共有する空間内先頭のS群所属の制御対象物単位4のもの
<移動方向が正方向の場合>
・M群のa方向先頭の制御対象物単位中3のもの
・初期状態においてS群とM群が共有する空間に対してa方向に隣接するS群所属の制御対象物単位4のもの
・S群のa方向末尾の制御対象物単位中3のもの
・初期状態においてS群とM群が共有する空間に対してaと反対方向に隣接するM群所属の制御対象物単位中4のもの
(2)モード値1の場合:
<移動方向が負方向の場合>
・初期状態においてS群とM群が共有する空間内先頭のS群所属の制御対象物単位4のもの
<移動方向が正方向の場合>
・M群のa方向末尾の制御対象物単位中4のもの
・M群のa方向先頭の制御対象物単位中3のもの
・初期状態においてS群とM群が共有する空間に対してa方向に隣接するS群所属の制御対象物単位4のもの
(3)モード値2の場合:
<移動方向が負方向の場合>
・初期状態においてS群とM群が共有する空間に対してaと反対方向に隣接するM群所属の制御対象物単位中4のもの
<移動方向が正方向の場合>
・S群のa方向先頭の制御対象物単位中4のもの
・S群のa方向末尾の制御対象物単位中3のもの
・初期状態においてS群とM群が共有する空間に対してaと反対方向に隣接するM群所属の制御対象物単位中4のもの
(4)モード値3の場合:
<移動方向が負方向の場合>
・なし(移動しない)
<移動方向が正方向の場合>
・S群のa方向先頭の制御対象物単位中4のもの
・M群のa方向末尾の制御対象物単位中4のもの
〔第五の移動処理〕
ステップS15において、基本動作部11および調整動作部12は、モード値および移動方向の正負により定まる所定列に所属する制御対象物のうち、M群制御対象物のあるメタモジュール空間内にある制御対象物を、a方向と平行な方向へ1マス移動させる。所定列は、例えば表3に示すルールに従って選択される。表3において、各モード値に対応する行で「○」がついている列が移動対象となる所定列である。つまり、第五の移動処理において基本動作部11および調整動作部12で移動対象となるのは、以下の制御対象物である。例えば、図10、12、14、16、18、20、22、24のT=4において太字で示す制御対象物が移動対象となる所定制御対象物である。
第一の移動処理と同様に、所定列に基準列が含まれる場合、基本動作部11が基準列を移動させる基本動作を実行する。所定列に基準列以外の列が含まれる場合、調整動作部12が基準列以外の所定列を移動させる調整動作を実行する。
Figure 0006939396
第五の移動処理において基本動作部11および調整動作部12で移動対象となる制御対象物は以下のように特定することができる。
(1)モード値0で負方向に移動する場合:
・基準列にあるM群所属の制御対象物
・初期状態においてS群とM群が共有する空間に対してa方向に隣接するS群所属の制御対象物単位中4の位置にあるもの以外の、基準列と第1軸方向に平行な列にある制御対象物
(2)モード値1で負方向に移動する場合:
・基準列にあるM群所属の制御対象物
・初期状態においてS群とM群が共有する空間に対してa方向に隣接するS群所属の制御対象物単位中4の位置にあるもの以外の、基準列と第1軸方向に平行な列にある制御対象物
(3)モード値2で負方向に移動する場合:
・基準列にあるM群所属の制御対象物
(4)モード値3で負方向に移動する場合:
・基準列にあるM群所属の制御対象物
(5)モード値0で正方向に移動する場合:
・基準列にあるM群所属の制御対象物
・基準列と第1軸方向に平行な列にある制御対象物
(6)モード値1で正方向に移動する場合:
・基準列にあるM群所属の制御対象物
・初期状態においてS群とM群が共有する空間内末尾のS群所属の制御対象物単位中4の位置にあるもの以外の、基準列と第1軸方向に平行な列にある制御対象物
(7)モード値2で正方向に移動する場合:
・基準列にあるM群所属の制御対象物
・基準列と第1軸方向に平行な列にある制御対象物
・M群所属の制御対象物のうち先頭制御対象物単位内3のもの
(8)モード値3で正方向に移動する場合:
・基準列にあるM群所属の制御対象物
・初期状態においてS群とM群が共有する空間内末尾のS群所属の制御対象物単位中4の位置にあるもの以外の、基準列と第1軸方向に平行な列にある制御対象物
・M群所属の制御対象物のうち先頭制御対象物単位内3のもの
第一、第三、第五の移動処理では第3軸方向への移動を行い、第二、第四の移動処理では第3軸と直交する軸(図9〜16の例では第2軸)の方向への移動を行う構成とすることがポイントである。基本動作部11および調整動作部12で移動対象とする列は図9〜24に示したものはあくまで一例であり、前記ポイントを逸脱しない範囲で別の列を移動対象とすることは可能である。
各モードにて1メタモジュール分の動作に要する時刻ステップ数が同一であること、また、基本工程の時刻を各モードで同一にできることが、任意形状のM群とS群の透過動作を実現可能にしている。
<第二実施形態>
第二実施形態では任意の隊列を対象としてM群がS群の占有する空間を通り抜けて1制御対象物単位分、所定方向に移動する隊列制御を実現する隊列制御装置について説明する。任意の隊列を部分隊列と剰余隊列に分割し、部分隊列については第一実施形態の隊列制御方法の各ステップにより隊列を移動させる。同時に、剰余隊列について並行して所定の移動を行う点が異なる。
[装置構成]
第二実施形態の隊列制御装置2は、図28に例示するように、第一実施形態の状態判定部10、基本動作部11、および調整動作部12に加えて、隊列分割部20をさらに含む。この隊列制御装置2が、図29に例示する各ステップの処理を行うことにより第二実施形態の隊列制御方法が実現される。
〔隊列分割部20〕
隊列分割部20は、ステップS20の隊列分割処理を実行する。具体的には、隊列分割部20は、複数のS群の制御対象物群と複数のM群の制御対象物群とからなる全体隊列を、1以上の部分隊列と、部分隊列に含まれない制御対象物からなる1以上の剰余隊列とに分割する。
〔隊列分割処理〕
ステップS20において、隊列分割部20は、入力されたS群およびM群からなる全体隊列を、部分隊列単位に分割する。これにより、1以上の部分隊列と、当該部分隊列に含まれない1以上の剰余隊列とが生成される。
以下、部分隊列ごとに第一実施形態の各ステップ(状態判定処理〜第五の移動処理)の処理を実行させる。第一実施形態と異なる処理が必要な部分のみ説明する。
〔第一の移動処理〕
ステップS11の第一の移動処理において、基本動作部11および調整動作部12は、部分隊列ごとに第一実施形態の第一の移動処理を行うとともに、剰余隊列に含まれる各M群の制御対象物単位の各制御対象物を、1マス分、a方向に移動させる。
〔第五の移動処理〕
ステップS15の第五の移動処理において、基本動作部11および調整動作部12は、部分隊列毎に第一実施形態の第五の移動処理を行うとともに、剰余隊列に含まれる各M群の制御対象物単位の各制御対象物を、1マス分、a方向に移動させる。
このように、部分隊列の動きにあわせて、ステップS11とステップS15において剰余隊列も所定方向へ同時に移動させることで、移動に要するステップ数を増加させることなく、全体の隊列の移動を実現することができる。
<第三実施形態>
第三実施形態は、第一実施形態と同じく部分隊列の移動を行う隊列制御装置である。第一実施形態はS群に所属する制御対象物の一部も移動させることで隊列制御を実現するが、第三実施形態はS群を一切動かすことなく隊列制御を行う。
ここで、第三実施形態においては、部分隊列を、図30に示す隊列とする。図30の直方体部分は、8マス全てが制御対象物で充填されているメタモジュールが移動方向に連続してなる隊列、つまり、S群の制御対象物単位とM群の制御対象物単位が組み合わさってなる隊列である。この隊列において、S群の制御対象物単位とM群の制御対象物単位が重なる部分に移動方向で接するS群と重ならないM群の制御対象物単位は含まれない。末尾のM群の制御対象物単位は、S群の制御対象物単位と接するか否かについて制限はない。また、S群とM群が重なっている部分は複数あってもよい。
任意の隊列を部分隊列に分割したときに、いずれの部分隊列にも含まれないM群の制御対象物単位のみが移動方向に連続する隊列が生じるので、これを剰余隊列と呼ぶこととする。
第一実施形態では2軸方向(すなわち、移動方向に並行する1軸と、移動方向に直交する2軸のうち片方のみ)の移動を用いたが、第三実施形態では3軸方向(すなわち、移動方向に並行する1軸と、移動方向に直交する2軸の両方)への移動を用いる。
基本となる工程は以下の3種類である。
(第1工程)基準列の全ての制御対象物と末尾M群制御対象物単位内の制御対象物のうちa方向へ移動可能なものを第3軸のa方向へ1マス移動させる工程(ここで、末尾M群制御対象物単位とはS群とM群の制御対象物単位が重なっている部分の末尾のM群制御対象物単位、もしくはS群とM群の制御対象物単位が重なっている部分の末尾にa方向の逆方向に接するM群の制御対象物単位である。)
(第2工程)所定制御対象物を第1軸方向の空隙に移動させる工程
(第3工程)所定制御対象物を第2軸方向の空隙に移動させる工程
第1工程が上述の「A)基本動作」に相当し、第2〜3工程が上述の「B)調整動作」に相当する。
第三実施形態による移動の例を図31〜32に示す。この例では、第1工程→第2工程→第1工程→第3工程→第1工程→第2工程→第1工程の順に移動をさせているが、これはあくまで一例であり、必ずしもこの順序である必要はない。
最初の第1工程および最後の第1工程では、その他のM群制御対象物単位内の制御対象物も移動方向に1マス同時に移動するが、以下ではその詳細は省略する。
初期状態においてはM群制御対象物が存在しないが目的状態ではM群制御対象物により充填される空隙を持つメタモジュールを充填位置とし、初期状態においてはM群制御対象物が存在するが、目的状態ではM群制御対象物が存在しなくなるメタモジュール位置を開放位置とする。充填位置は、初期状態のM群に対して所定方向(a方向)に隣接する制御対象物単位位置であり、開放位置は初期状態のM群のa方向末尾の制御対象物単位位置である。すると、第三実施形態は、要するに、基準列の全ての制御対象物をまとめて1マス分a方向に移動させる基本動作を行うことを基本とし、基本動作を行うことで第1軸または第2軸方向の移動を用いて充填可能となる充填位置があれば、そこへ基準列の制御対象物を移動させ、および/または、基本動作を行うことで第1軸または第2軸方向の移動を用いて基準列に制御対象物を移動させることで開放可能となる開放位置の制御対象物があれば当該制御対象物を基準列へ移動させることで、隊列制御を実現する。要するに、M群の基準列の制御対象物をa方向に押し出すとともに、開放位置の制御対象物は順次基準列へ移動させ、基準列先頭の制御対象物は順次基準列以外の充填位置へ移動させることで移動を行うのである。
[装置構成]
第三実施形態の隊列制御装置3は、図35に例示するように、第一実施形態の基本動作部11および調整動作部12に加えて、第一判定部30および第二判定部31をさらに含む。この隊列制御装置3が、図36に例示する各ステップの処理を行うことにより第三実施形態の隊列制御方法が実現される。
〔第一の判定処理〕
ステップS30a〜S30bにおいて、第一判定部30は、移動が完了したか否かを判定し、完了していなければ(No)第一の移動処理を実行し、完了していれば(Yes)処理を終了する。
具体的には、充填位置がM群制御対象物で充填され、開放位置が全て空隙になっていれば、移動が完了したと判定し、そうでなければ移動が完了していないと判定する。
〔第一の移動処理〕
ステップS31において、基本動作部11および調整動作部12は、基準列の制御対象物と末尾M群制御対象物単位内の制御対象物のうちa方向に移動可能なもの全てを1マス分、a方向に移動させる。
〔第二の判定処理〕
ステップS32において、第二判定部31は、基準列以外の充填位置内のM群制御対象物単位内の制御対象物が占めるべき位置が全てM群制御対象物で充填され、かつ、基準列が占める位置以外の開放位置内の位置が全て空隙になっているか否かを判定し、条件を満たしていれば第一の判定処理を実行し、そうでなければ第二の移動処理を実行する。
つまり、第二判定部31は第二の移動処理を実行する必要があるか否かを判定し、処理を切り替える。
〔第二の移動処理〕
ステップS33において、調整動作部12は、基準列以外の充填位置でまだM群制御対象物により充填されていない空隙に隣接する基準列の位置にM群の制御対象物があれば、当該制御対象物を当該空隙に移動させる。ここで、該当する充填位置が複数ある場合は、そのうちの何れか1つを選択するものとする。また、調整動作部12は、基準列以外の開放位置でまだM群制御対象物により充填されている位置に隣接する基準列の位置が空隙であれば、当該開放位置の制御対象物を当該基準列の空隙に移動させる。ここで、該当する開放位置が複数ある場合は、そのうちの何れか1つを選択するものとする。第二の移動処理を終えたら、第一の判定処理を実行する。
図31〜34の例では、第二の移動処理のa方向先頭側の制御対象物の移動とa方向末尾側の制御対象物の移動方向の軸が揃っているが、先頭側が第1軸、末尾側は第2軸のように異なる軸で移動をさせることも可能であることはいうまでもない。
<第四実施形態>
第四実施形態は、第三実施形態と同じくS群を一切動かすことなく部分隊列の隊列制御を行う隊列制御装置である。
[装置構成]
第四実施形態の隊列制御装置4は、図37に例示するように、第一実施形態の状態判定部10、基本動作部11、および調整動作部12に加えて、行動指令値格納部40をさらに含む。この隊列制御装置4が、図38に例示する各ステップの処理を行うことにより第四実施形態の隊列制御方法が実現される。
[前提]
・各制御対象物は、aの値に応じて、当該制御対象物が属する制御対象物単位中の位置を表す変数(Ir値という)が与えられているものとする。Ir値は、例えば、a=3のときは、図2に示した1, 2, 3, 4の何れかの値である。aの各値に対し、Ir値は、以下のように与えられる。
a=3のとき、ロボットiの位置が、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j])ならば、Ir[i]=4、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j], 2×Zr_u[j]+1)ならば、Ir[i]=1、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j], 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=2、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=3、
とする。
a=4のとき、ロボットiの位置が、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j])ならば、Ir[i]=1、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j], 2×Zr_u[j]+1)ならば、Ir[i]=2、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j], 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=4、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=3、
とする。
a=6のとき、ロボットiの位置が、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j])ならば、Ir[i]=2、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j], 2×Zr_u[j]+1)ならば、Ir[i]=4、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j], 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=1、
(Xr[i], Yr[i], Zr[i])=(2×Xr_u[j]+1, 2×Yr_u[j]+1, 2×Zr_u[j]+1)ならば、Ir[i]=3、
とする。
Ir値が3の制御対象物からIr値が2の制御対象物に向かう向きが図7に示す第3軸の向き(aの向き)、Ir値が3の制御対象物からIr値が4の制御対象物に向かう向きが図7に示す第2軸の向き、Ir値が3の制御対象物からIr値が1の制御対象物に向かう向きが図7に示す第1軸の向きとなるように設定されている。
〔行動指令値格納部40〕
行動指令値格納部40には、予め移動方向aの値に応じて決まる6種類の行動指令値a_t[ia](ia=1, 2, 3, 4, 5, 6)が格納されているものとする。
以下、aの値がX, Y, Z軸負方向(S群とM群の制御対象物単位が組み合わさるとメタモジュールをなすように動く方向)について示す。X, Y, Z軸正方向の場合は、以下の動作を時間的に逆再生すればよい。
〔状態判定処理〕
ステップS40において、状態判定部10は、M群とS群を構成する隊列の状態を判定し、状態を表すモード値line_mode[a]を決定する。末尾M群制御対象物単位がS群制御対象物単位と重なっているときはline_mode[a]←0とし、いないときはline_mode[a]←1とする。すなわち、移動方向aがX, Y, Z軸正方向のときは、S群とM群の制御対象物単位が組み合わさってメタモジュールを構成している部分の移動方向に接するM群のみで構成される制御対象物単位が存在しているときはline_mode[a]←0とし、存在しないときはline_mode[a]←1とする。
〔第一の移動処理〕
ステップS41において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列内のすべてのM群所属の制御対象物のうち、Ir値が2, 3のものをa_t[1]方向に1マス移動させる。ここでa_t[1]の方向は、表4に記載の通り、移動方向aに応じて定まるものである。例えば、移動方向a=3であれば、a_t[1]=3なので、X軸負方向である。なお、図31〜34においては、a=3の例が示されており、a_t[2]は第2軸正方向、a_t[4]は、第2軸負方向、a_t[5]は第1軸正方向、a_t[6]は第1軸負方向の移動となる。
Figure 0006939396
(2)line_mode[a]=0の場合
line_mode[a]=0の場合は、上記(1)に加えて、部分隊列最後尾のM群制御対象物単位所属で、Ir値が1, 4の制御対象物をa_t[1]方向に1マス移動させる。
〔第二の移動処理〕
ステップS42において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列内の先頭の制御対象物単位所属のIr値が2の制御対象物をa_t[2]方向に1マス移動させる。
(2)line_mode[a]=1の場合
line_mode[a]=1の場合は、上記(1)に加えて、部分隊列末尾のM群制御対象物単位所属のIr値が4の制御対象物をa_t[4]方向に1マス移動させる。
〔第三の移動処理〕
ステップS43において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列内の先頭制御対象物単位以外のM群制御対象物単位所属のIr値が2の制御対象物をa_t[1]方向に1マス移動させる。また、全てのM群制御対象物単位所属のIr値が3の制御対象物をa_t[1]方向に1マス移動させる。
(2)line_mode[a]=1の場合
line_mode[a]=1の場合は、上記(1)に加えて、部分隊列末尾のM群制御対象物単位所属のIr値が4の制御対象物をa_t[1]方向に1マス移動させる。
〔第四の移動処理〕
ステップS44において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列の先頭M群制御対象物単位所属のIr値が3の制御対象物をa_t[5]方向に1マス移動させる。部分隊列末尾のM群制御対象物単位所属のIr値が1の制御対象物をa_t[6]方向に1マス移動させる。
〔第五の移動処理〕
ステップS45において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列の先頭以外の全てのM群制御対象物単位所属のIr値が2, 3の制御対象物をa_t[1]方向に1マス移動させる。
(2)line_mode[a]=0の場合
line_mode[a]=0の場合は、上記(1)に加えて、部分隊列末尾のM群所属制御対象物単位所属のIr値が1の制御対象物をa_t[1]方向に1マス移動させる。
(3)line_mode[a]=1の場合
line_mode[a]]=1の場合は、上記(1)に加えて、部分隊列末尾のM群所属制御対象物単位所属のIr値が1, 4の制御対象物をa_t[1]方向に1マス移動させる。
〔第六の移動処理〕
ステップS46において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)line_mode[a]=0の場合
部分隊列末尾のM群制御対象物単位所属のIr値が4の制御対象物をa_t[4]方向に1マス移動させる。
〔第七の移動処理〕
ステップS47において、基本動作部11および調整動作部12は、モード値に応じて以下の動作を行う。
(1)全モード共通
部分隊列の先頭以外の全てのM群制御対象物単位所属のIr値が2, 3の制御対象物をa_t[1]方向に1マス移動させる。部分隊列末尾のM群制御対象物単位所属のIr値が1, 4の制御対象物をa_t[1]方向に1マス移動させる。
<第五実施形態>
第五実施形態は、任意の隊列を対象としてM群がS群の占有する空間を通り抜けて1制御対象物単位分、所定方向に移動する隊列制御を実現する隊列制御装置である。第五実施形態では、第二実施形態と同じく、任意の隊列を部分隊列と剰余隊列に分割し、部分隊列については第四実施形態の隊列制御方法の各ステップにより隊列を移動させる。同時に、剰余隊列について並行して所定の移動を行う点が異なる。
[装置構成]
第五実施形態の隊列制御装置5は、図39に例示するように、第二実施形態の隊列分割部20、状態判定部10、基本動作部11、および調整動作部12に加えて、行動指令値格納部40をさらに含む。この隊列制御装置5が、図40に例示する各ステップの処理を行うことにより第五実施形態の隊列制御方法が実現される。
〔隊列分割処理〕
ステップS20において、隊列分割部20は、隊列分割処理を実行する。隊列分割部20の処理は、第二実施形態の隊列分割部20と同じである。ただし、部分隊列の定義は第三実施形態のものとする。
残りの各ステップの処理は、隊列分割部20で得た各部分隊列毎に並行して実行する点を除いては、基本的に第四実施形態の各ステップの処理と同じであるが、一部のステップにおいて部分隊列と共に剰余隊列の動作を行う点が異なる。以下、相違がある部分のみ説明する。
〔第一の移動処理〕
ステップS51において、基本動作部11および調整動作部12は、部分隊列毎に第四実施形態の第一の移動処理を行うと共に、剰余隊列に含まれる各M群制御対象物単位所属の制御対象物について、a_t[1]方向に1マス移動させる。
〔第七の移動処理〕
ステップS57において、基本動作部11および調整動作部12は、部分隊列毎に第四実施形態の第七の移動処理を行うと共に、剰余隊列に含まれる各M群制御対象物単位所属の制御対象物について、a_t[1]方向に1マス移動させる。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1、2、3、4、5 隊列制御装置
10 状態判定部
11 基本動作部
12 調整動作部
20 隊列分割部
30 第一判定部
31 第二判定部
40 行動指令値格納部

Claims (7)

  1. 制御対象物群は複数の制御対象物からなる制御対象物単位が所定の移動方向へ複数接続することで構成され、各制御対象物単位の周囲には他の制御対象物単位を構成する制御対象物が移動可能な空隙があり、部分隊列は上記移動方向へ移動するM群制御対象物群と形状および位置が変化しないS群制御対象物群とが組み合わさって構成され、
    上記M群制御対象物群が各制御対象物単位を維持しつつ上記S群制御対象物群の存在する空間を通り抜けて上記移動方向へ移動するように各制御対象物群を制御する隊列制御装置であって、
    上記部分隊列のうち上記移動方向に対してM群制御対象物群に属する制御対象物のみが存在する基準列に属する複数の制御対象物を上記移動方向へまとめて移動させる基本動作を実行する基本動作部と、
    上記部分隊列のうち、上記基準列に水平面で隣接する列に属する制御対象物を上記移動方向へまとめて移動させる第一調整動作、もしくは、上記基準列の対角位置に存在する列に属する制御対象物を上記移動方向の逆方向へまとめて移動させる第二調整動作、もしくは、上記移動方向に直交する方向で上記空隙と接する制御対象物をその空隙内へ移動させる第三調整動作、のいずれかを実行する調整動作部と、
    を含み、
    上記基本動作、上記第一調整動作、および上記第二調整動作の少なくとも1つと、上記第三調整動作とが交互に実行される、
    隊列制御装置。
  2. 請求項1に記載の隊列制御装置であって、
    上記第三調整動作は、上記基準列に属する上記M群制御対象物群の制御対象物のうち、上記基準列以外の列に属する空隙と上記移動方向に直交する方向で接する制御対象物をその空隙内へ移動させる動作、もしくは、上記基準列以外の列に属する上記M群制御対象物群の制御対象物のうち、上記基準列に属する空隙と上記移動方向に直交する方向で接する制御対象物をその空隙内へ移動させる動作、のいずれかである、
    隊列制御装置。
  3. 請求項1または2に記載の隊列制御装置であって、
    上記部分隊列が上記M群制御対象物群と上記S群制御対象物群とが組み合わさって構成される部分の上記移動方向に対して先頭側に上記S群制御対象物群のみに属する制御対象物単位を含むか否か、および、末尾側に上記M群制御対象物群のみに属する制御対象物単位を含むか否かに基づいて上記部分隊列の状態を表すモード値を決定する状態判定部をさらに含み、
    上記基本動作部は、上記モード値と上記移動方向に基づいて決定される所定列に属する制御対象物のうち上記基準列に属する複数の制御対象物を上記移動方向へまとめて移動させるものであり、
    上記調整動作部は、上記モード値と上記移動方向に基づいて決定される所定列に所属する制御対象物のうち、上記基準列に水平面で隣接する列に属する制御対象物を上記移動方向へまとめて移動させる動作、もしくは、上記基準列の対角位置に存在する列に属する制御対象物を上記移動方向の逆方向へまとめて移動させる動作、もしくは、上記移動方向に直交する方向で上記空隙と接する制御対象物をその空隙内へ移動させる動作、のいずれかを実行するものである、
    隊列制御装置。
  4. 請求項1に記載の隊列制御装置であって、
    上記部分隊列が上記M群制御対象物群と上記S群制御対象物群とが組み合わさって構成される部分の上記移動方向に対して末尾側に上記M群制御対象物群のみに属する制御対象物単位を含むか否かに基づいて上記部分隊列の状態を表すモード値を決定する状態判定部と、
    上記移動方向に応じて定まる複数の行動指令値を記憶する行動指令値格納部と、
    をさらに含み、
    上記基本動作部および上記調整動作部は、上記モード値に応じて上記M群制御対象物群に属する制御対象物と上記行動指令値を選択し、選択された制御対象物を選択された行動指令値に従って移動させるものである、
    隊列制御装置。
  5. 請求項1から4のいずれかに記載の隊列制御装置であって、
    複数の上記S群制御対象物群と複数の上記M群制御対象物群とからなる全体隊列を、1以上の上記部分隊列と、上記部分隊列に含まれない制御対象物からなる1以上の剰余隊列とに分割する隊列分割部をさらに含み、
    上記基本動作部および上記調整動作部は、上記部分隊列および上記剰余隊列それぞれについて所定の制御対象物を移動させる動作を並行して実行するものである、
    隊列制御装置。
  6. 制御対象物群は複数の制御対象物からなる制御対象物単位が所定の移動方向へ複数接続することで構成され、各制御対象物単位の周囲には他の制御対象物単位を構成する制御対象物が移動可能な空隙があり、部分隊列は上記移動方向へ移動するM群制御対象物群と形状および位置が変化しないS群制御対象物群とが組み合わさって構成され、
    上記M群制御対象物群が各制御対象物単位を維持しつつ上記S群制御対象物群の存在する空間を通り抜けて上記移動方向へ移動するように各制御対象物群を制御する隊列制御装置が実行する隊列制御方法であって、
    基本動作部が、上記部分隊列のうち上記移動方向に対してM群制御対象物群に属する制御対象物のみが存在する基準列に属する複数の制御対象物を上記移動方向へまとめて移動させる基本動作を実行し
    調整動作部が、上記部分隊列のうち、上記基準列に水平面で隣接する列に属する制御対象物を上記移動方向へまとめて移動させる第一調整動作、もしくは、上記基準列の対角位置に存在する列に属する制御対象物を上記移動方向の逆方向へまとめて移動させる第二調整動作、もしくは、上記移動方向に直交する方向で上記空隙と接する制御対象物をその空隙内へ移動させる第三調整動作、のいずれかを実行
    上記基本動作、上記第一調整動作、および上記第二調整動作の少なくとも1つと、上記第三調整動作とが交互に実行される、
    隊列制御方法。
  7. 請求項1から5のいずれかに記載の隊列制御装置としてコンピュータを機能させるためのプログラム。
JP2017202115A 2017-10-18 2017-10-18 隊列制御装置、隊列制御方法、およびプログラム Active JP6939396B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017202115A JP6939396B2 (ja) 2017-10-18 2017-10-18 隊列制御装置、隊列制御方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017202115A JP6939396B2 (ja) 2017-10-18 2017-10-18 隊列制御装置、隊列制御方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019075013A JP2019075013A (ja) 2019-05-16
JP6939396B2 true JP6939396B2 (ja) 2021-09-22

Family

ID=66545205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017202115A Active JP6939396B2 (ja) 2017-10-18 2017-10-18 隊列制御装置、隊列制御方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6939396B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6946933B2 (ja) * 2017-10-30 2021-10-13 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477444B1 (en) * 2000-07-07 2002-11-05 Fuji Xerox Co., Ltd. Method for the automated design of decentralized controllers for modular self-reconfigurable robots
US6459957B1 (en) * 2001-04-17 2002-10-01 Fuji Xerox Co., Ltd. Programmable smart membranes and methods therefor
JP2003048179A (ja) * 2001-05-29 2003-02-18 Japan Science & Technology Corp 複数歯車型ユニットで構成される変形可能な移動装置
US6725128B2 (en) * 2001-07-02 2004-04-20 Xerox Corporation Self-reconfigurable robot
US9956494B2 (en) * 2013-03-15 2018-05-01 Rnd By Us B.V. Element comprising sensors for detecting grab motion or grab release motion for actuating inter-element holding or releasing
JP6559591B2 (ja) * 2016-02-12 2019-08-14 日本電信電話株式会社 行動制御システム、その方法及びプログラム

Also Published As

Publication number Publication date
JP2019075013A (ja) 2019-05-16

Similar Documents

Publication Publication Date Title
JP6174523B2 (ja) 行動制御システム、その方法及びプログラム
JP2019053709A (ja) 制御装置、方法及びプログラム
JP6559591B2 (ja) 行動制御システム、その方法及びプログラム
Barták et al. Multi-agent path finding on real robots
JP6939396B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
Fekete et al. Connected reconfiguration of lattice-based cellular structures by finite-memory robots
JP6685957B2 (ja) 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム
JP6939395B2 (ja) 制御装置、方法及びプログラム
JP6777661B2 (ja) 制御装置、方法及びプログラム
JP6392187B2 (ja) 行動制御システム、その方法及びプログラム
JP6946933B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
Hao GridHub: a grid-based, high-density material handling system.
WO2020045022A1 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP6559582B2 (ja) 行動制御システム、その方法及びプログラム
Lakhlef et al. Optimization of the logical topology for mobile MEMS networks
JP7136365B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP6881352B2 (ja) 制御装置、方法及びプログラム
JP2016095754A (ja) 行動制御システム、その方法及びプログラム
Hall et al. Self-Reconfiguration in Two-Dimensions via Active Subtraction with Modular Robots.
WO2022153475A1 (ja) 制御装置、ハミルトン閉路拡張装置、方法及びプログラム
WO2023281625A1 (ja) 制御装置、方法及びプログラム
JP7014099B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP6633467B2 (ja) 行動制御システム、行動制御方法、プログラム
Koenig et al. A case for collaborative construction as testbed for cooperative multi-agent planning
Odem et al. A self-reconfiguration algorithm for sliding triangular modular robots

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20171030

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191218

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210216

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210816

R150 Certificate of patent or registration of utility model

Ref document number: 6939396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150