(57)【要約】【課題】制御対象物単位の初期位置の集合と制御対象物単位の目標位置の集合との共通部分に非接続箇所がある場合でも適用可能な隊列制御を実現する制御技術を提供する。【解決手段】制御装置は、集合Upに属する位置にあり目標位置の中の制御対象物単位が存在していない位置（以下、目的位置Dとする。）に隣接する制御対象物単位を先頭制御対象物単位として選択し、集合Upに属しない位置にあり初期位置の中に位置する制御対象物単位を尾部制御対象物単位として選択する制御対象物単位選択部２と、目的位置Dを目的位置として、先頭制御対象物単位から尾部制御対象物単位までの一連の制御対象物単位を先頭制御対象物単位の動作を追従するように移動させる制御対象物単位移動部３と、目的位置Dを集合Upに追加した後に、所定の条件を満たす制御対象物単位の位置を集合Upに追加する集合追加部４と、を備えている。【選択図】図１
2019139637.tif 000002
【特許請求の範囲】
【請求項１】
初期位置にある複数の制御対象物単位を目標位置に移動させる制御装置であって、
各制御対象物単位が他の制御対象物単位と隣接することにより制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、上記初期位置と上記目標位置の共通部分を共通位置とし、上記共通位置の集合は互いに隣接していない少なくとも１つの部分共通位置集合から構成されているとして、
ある１つの部分共通位置集合を集合Upとして選択する集合選択部と、
上記集合Upに属する位置にあり上記目標位置の中の制御対象物単位が存在していない位置（以下、目的位置Dとする。）に隣接する制御対象物単位を先頭制御対象物単位として選択し、上記集合Upに属しない位置にあり上記初期位置の中に位置する制御対象物単位であり、移動させても上記制御対象物構造の接続性を維持することができる制御対象物単位を尾部制御対象物単位として選択する制御対象物単位選択部と、
上記目的位置Dを目的位置として、上記先頭制御対象物単位から上記尾部制御対象物単位までの一連の制御対象物単位を先頭制御対象物単位の動作を追従するように移動させる制御対象物単位移動部と、
上記目的位置Dを上記集合Upに追加した後に、上記集合Upに接していて、上記集合Upの中ではなく上記目標位置の中に位置する制御対象物単位がある場合には、その制御対象物単位の位置と、その制御対象物単位から上記目標位置のみを経由して接続状態にある制御対象物単位の位置とを上記集合Upに追加する集合追加部と、
上記目標位置の中の制御対象物が存在しない位置がなくなるまで、上記制御対象物単位選択部、上記制御対象物単位移動部及び上記集合追加部の処理を繰り返して行わせる制御部と、
を含む制御装置。
【請求項２】
請求項１の制御装置であって、
上記制御対象物単位は、２つの制御対象物単位の組み合わせでできており、
上記制御対象物単位移動部は、上記制御対象物単位を構成する２つの制御対象物単位のうち、１つずつを制御対象物単位の大きさ分の距離だけ交互に移動させることによって上記制御対象物単位を移動させる、
制御装置。
【請求項３】
初期位置にある複数の制御対象物単位を目標位置に移動させる制御方法であって、
各制御対象物単位が他の制御対象物単位と隣接することにより制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、上記初期位置と上記目標位置の共通部分を共通位置とし、上記共通位置の集合は互いに隣接していない少なくとも１つの部分共通位置集合から構成されているとして、
集合選択部が、ある１つの部分共通位置集合を集合Upとして選択する集合選択ステップと、
制御対象物単位選択部が、上記集合Upに属する位置にあり上記目標位置の中の制御対象物単位が存在していない位置（以下、目的位置Dとする。）に隣接する制御対象物単位を先頭制御対象物単位として選択し、上記集合Upに属しない位置にあり上記初期位置の中に位置する制御対象物単位であり、移動させても上記制御対象物構造の接続性を維持することができる制御対象物単位を尾部制御対象物単位として選択する制御対象物単位選択ステップと、
制御対象物単位移動部が、上記目的位置Dを目的位置として、上記先頭制御対象物単位から上記尾部制御対象物単位までの一連の制御対象物単位を先頭制御対象物単位の動作を追従するように移動させる制御対象物単位移動ステップと、
集合追加部が、上記目的位置Dを上記集合Upに追加した後に、上記集合Upに接していて、上記集合Upの中ではなく上記目標位置の中に位置する制御対象物単位がある場合には、その制御対象物単位の位置と、その制御対象物単位から上記目標位置のみを経由して接続状態にある制御対象物単位の位置とを上記集合Upに追加する集合追加ステップと、
制御部が、上記目標位置の中の制御対象物が存在しない位置がなくなるまで、上記制御対象物単位選択ステップ、上記制御対象物単位移動ステップ及び上記集合追加ステップの処理を繰り返して行わせる制御ステップと、
を含む制御方法。
【請求項４】
請求項１又は２の制御装置の各部としてコンピュータを機能させるためのコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御対象物の行動を制御する技術に関する。例えば、複数のロボットを、初期位置における隊列形成状態から協調して移動させ、障害物を回避させ、目標位置で隊列形成をさせるための各ロボットの行動計画を求めるロボット協調制御技術に関する。
【背景技術】
【０００２】
近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている。
【０００３】
特に、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位置の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究も行われている。例えば、非特許文献２に示す研究に至る一連の研究では、ある隊列から他の隊列に変化する隊列制御が示されている（例えば、非特許文献２参照。）。
【０００４】
このような、多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
【０００５】
非特許文献１に示す研究に示されている手法では、複数の立方体形状のロボット同士での伸長収縮面動作(あるロボットが、他のロボットと接した状態で、伸び縮みしつつ移動する動作)によるロボットの隊列変形が扱われている。
【０００６】
非特許文献２に示す研究に示されている手法では、複数の立方体形状のロボット同士での面せん断動作(あるロボットが、他のロボットと接した状態で、接する面上をスライド移動する動作)と回り込み動作によるロボットの隊列変形が扱われている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】S. Vassilvitskii, M. Yim, J. Suh, “A Complete, Local and ParallelReconfiguration Algorithm for Cube Style Modular Robots”, in Proc.2002 IEEE Int. Conf. Robotics and Automation, pp. 117-122, Washington DC, May, 2002.
【非特許文献２】Kawano, H., “Complete Reconfiguration Algorithm for SlidingCube-shaped Modular Robots with only Sliding Motion Primitive”, 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp.3276-3283, September 2015, Hamburg, Germany.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献２では、各ロボットが接した状態での動作を想定し、各ロボットが同一の特性（ホモジニアス）である。つまり、各ロボットの目標位置の集合の形状が定まった場合の隊列制御を実現している。しかし、ロボットが初期状態でとる隊列位置の集合とロボットの目標位置の集合の共通部分内に非接続箇所がない条件でのみの適用に限られている。
【０００９】
そこで、本発明は、制御対象物単位の初期位置と制御対象物単位の目標位置の共通部分に非接続箇所がある場合でも適用可能な隊列制御を実現する制御装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一態様による制御装置によれば、初期位置にある複数の制御対象物単位を目標位置に移動させる制御装置であって、各制御対象物単位が他の制御対象物単位と隣接することにより制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、初期位置と目標位置の共通部分を共通位置とし、共通位置の集合は互いに隣接していない少なくとも１つの部分共通位置集合から構成されているとして、ある１つの部分共通位置集合を集合Upとして選択する集合選択部と、集合Upに属する位置にあり目標位置の中の制御対象物単位が存在していない位置（以下、目的位置Dとする。）に隣接する制御対象物単位を先頭制御対象物単位として選択し、集合Upに属しない位置にあり初期位置の中に位置する制御対象物単位であり、移動させても制御対象物構造の接続性を維持することができる制御対象物単位を尾部制御対象物単位として選択する制御対象物単位選択部と、目的位置Dを目的位置として、先頭制御対象物単位から尾部制御対象物単位までの一連の制御対象物単位を先頭制御対象物単位の動作を追従するように移動させる制御対象物単位移動部と、目的位置Dを集合Upに追加した後に、集合Upに接していて、集合Upの中ではなく目標位置の中に位置する制御対象物単位がある場合には、その制御対象物単位の位置と、その制御対象物単位から目標位置のみを経由して接続状態にある制御対象物単位の位置とを集合Upに追加する集合追加部と、目標位置の中の制御対象物が存在しない位置がなくなるまで、制御対象物単位選択部、制御対象物単位移動部及び集合追加部の処理を繰り返して行わせる制御部と、を備えている。
【発明の効果】
【００１１】
本発明によれば、制御対象物単位の初期位置と制御対象物単位の目標位置の共通部分に非接続箇所がある場合でも適用可能な隊列制御を実現することができる。
【図面の簡単な説明】
【００１２】
【図１】ロボットの移動を説明するための図。
【図２】制御対象物単位の初期位置及び目標位置を説明するための図。
【図３】ボイドの移動の様子を説明するための図。
【図４】制御対象物単位の例を説明するための図。
【図５】タネリングを説明するための図。
【図６】タネリングを説明するための図。
【図７】タネリングを説明するための図。
【図８】制御対象物単位の移動を説明するための図。
【図９】制御対象物単位の移動を説明するための図。
【図１０】制御対象物単位の移動を説明するための図。
【図１１】制御対象物単位の移動を説明するための図。
【図１２】制御対象物単位の移動を説明するための図。
【図１３】制御対象物単位の移動を説明するための図。
【図１４】制御対象物単位の移動を説明するための図。
【図１５】制御処理の具体例を説明するための図である。
【図１６】制御装置の例を説明するためのブロック図。
【図１７】制御方法の例を説明するための流れ図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
【００１４】
＜理論的背景＞
まず、制御装置及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
【００１５】
［問題設定］
多数の制御対象物が協調して初期位置における隊列形成状態から、各制御対象物が接した状態を維持しつつ移動を行い、目標位置での隊列形成を行う任務は、例えば図１に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型の制御対象物の使用を想定する。図２に示すように、壁で区切られた部屋（ただし、図中、壁を省略する）においての初期位置から目標位置まで複数の制御対象物の移動によって実現するものである。
【００１６】
制御対象物については、例えば図１に示すように、制御対象物の周囲縦横高さ方向（以下「上下左右前後方向」ともいう）６マスのうち１つに他の制御対象物が存在している状態を維持しながら移動をするものとする。この手法では１つの制御対象物自身が、一台の制御対象物のサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、１つの面を共有する隣り合う制御対象物との相対的な位置を計測しあうことで、制御対象物の群れ全体の中での各制御対象物の位置も容易に知ることができる。このため、制御対象物の移動量の誤差によって、隊列が崩れるといった問題を起こしにくい。また、複数の制御対象物を連結することにより、同時に複数の制御対象物を移動させていくことが可能である。なお、制御対象物は、隣の位置に他の制御対象物が存在しているか否か、障害物があるか否か、そして、自身が目標位置上にいるかどうかを知ることができるものとする。
【００１７】
任務を行う制御対象物は、p台（例えば、p≧16=8×2）であり、各制御対象物は、隣接する制御対象物と一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。図１の各立方体は、それぞれの制御対象物の位置を示すものである。各立方体には制御対象物は一台しか存在することができない。それぞれの制御対象物は、移動しようとする方向に障害物か他の制御対象物がある場合には、静止をするものと仮定する。なお、制御対象物が存在しうる立方体状の空間をマス、または、格子ともいう。図２において、濃い灰色のマスは制御対象物が存在する位置を示す。図２（Ａ）の制御対象物が存在する位置は制御対象物の初期位置の集合を示し、図２（Ｃ）の制御対象物が存在する位置は制御対象物の目標位置の集合を示す。図２（Ｂ）に示すように、目標位置の集合と初期位置の集合は接している。目標位置の集合で表される領域を目標隊列エリアともいう。このように、各初期位置及び各目標位置は、それぞれ縦横高さ方向の少なくとも何れかの方向において他の初期位置及び目標位置と隣接し、制御対象物の初期位置及び目標位置での隊列形状はそれぞれ一塊の任意の形状である。
【００１８】
［制御対象物の座標設定］
それぞれの制御対象物i（iは制御対象物番号を表すi=0,1,2,3,…,p-1）の位置を（Xr[i],Yr[i],Zr[i]）とし、初期位置を（Xr0[i],Yr0[i],Zr0[i]）とし、目標位置を（Xre[i],Yre[i],Zre[i]）とするとき、本問題は、初期位置に配置された制御対象物が、目標位置まで移動するための行動計画を求めることと定義できる。制御対象物の初期位置の集合をs、目標位置（Xre[i],Yre[i],Zre[i]）の集合をgとする。
【００１９】
［任務空間の定義］
iを制御対象物番号としたとき、制御対象物iの各状態（制御対象物の位置と行動）は離散値で表現される。部屋をX,Y,Zの直交座標系からなる3次元空間で表すと、X軸、Y軸、Z軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋（３次元空間）は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある／なし」が予め設定されている。
【００２０】
［制御対象物動作の定義］
行動主体は部屋に配置されている各制御対象物となる。制御対象物i（iは制御対象物番号）の行動aは、静止、縦横高さ方向への１格子分の移動、の計７種類のうちのいずれかを取る。例えば、a∈{0,1,2,3,4,5,6}として、
0: 静止
1: 三次元空間内でX軸正方向に１格子だけ移動する
2: 三次元空間内でY軸正方向に１格子だけ移動する
3: 三次元空間内でX軸負方向に１格子だけ移動する
4: 三次元空間内でY軸負方向に１格子だけ移動する
5: 三次元空間内でZ軸正方向に１格子だけ移動する
6: 三次元空間内でZ軸負方向に１格子だけ移動する
とする。
【００２１】
［探索計算上の問題点]
このような任務環境における状態空間は、制御対象物数×3の次元数の状態を持ち、かつ選択可能な行動数は、制御対象物の行動（＝7通り）の制御対象物数乗だけ存在する。例えば、制御対象物数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらに制御対象物数が1台増えるごとに、その状態数は8000倍増加していくことになる。本実施形態の［問題設定]の項で説明したように、制御対象物同士が接しているという拘束条件を取り入れる場合、制御対象物のお互いの移動を考慮したうえで探索計算を行わなければならないために、根本的な計算量の削減は難しく、複数の制御対象物を使用する場合の大きな問題となっている。
【００２２】
［参考文献１における特徴]
参考文献１におけるヘテロジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の１つとして、ボイド制御の考え方を導入している。また、［問題設定で述べたような隊列変形の問題を克服するために８マス制御対象物単位の考え方も導入している。
【００２３】
まず、ボイド制御について説明する。ここでいうボイドとは、ある制御対象物が別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、制御対象物の移動する方向と反対の方向に移動する仮想的な存在である。こうした群制御対象物の隊列形成問題においては、複数の制御対象物の動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数の制御対象物の動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。しかし、変形動作中に制御対象物単位に属する各制御対象物はちりじりになって、それぞれ別の制御対象物単位内に分かれてしまい、その後の制御対象物入れ替え動作の負荷上昇にもつながってしまっていた。また、初期位置と目標位置が共通部分を持ち、かつ、それらの共通部分が複数の非接続部分に分かれている場合には適用不可能であった。
【００２４】
〔参考文献１〕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.
【００２５】
［４マス制御対象物単位の導入］
そこで、以下に説明する実施形態では、例えば、図４（Ａ）に示すように、４つの隣接した制御対象物を１つの単位とし（制御対象物単位）、制御対象物は、この制御対象物単位を維持しつつ移動を行うこととする。言い換えると、４台毎に１つの制御対象物単位を構成し、１つの制御対象物単位を構成する４台の制御対象物はそれぞれ３つの方向において１つの制御対象物単位を構成する他の制御対象物と隣接した状態を維持しつつ移動を行う。この制御対象物単位の集団は、互いに制御対象物単位ごとに一面を共有し、接しながら移動をするように制御される。同じ制御対象物単位に所属する４つの制御対象物は同一でホモジニアスであるとし、同じ制御対象物単位内では、どの制御対象物が単位内のどの位置にあるかは問わないものとする。
【００２６】
このような４つの制御対象物を１つの単位とした移動を行う理由は、各制御対象物単位の内部にある４つの空隙空間を、他の制御対象物単位に属する制御対象物が通過することができ、それにより、異なる制御対象物単位内に属する制御対象物同士の行き来が容易である点である。また、各制御対象物単位の内部にある４つの空隙空間を、他の制御対象物単位に属する制御対象物が通過する際の接続性の維持も容易である。すなわち、これは、隊列形態の維持を考量しなければならない各制御対象物の動作の決定において、制御対象物同士の接続を考慮するための計算負荷を軽減することにつながるからである。
【００２７】
ここでは４台の制御対象物がなす制御対象物単位が１つのマスの単位（本実施形態では、以下、この単位を「マス単位」または「位置単位」とも言う）であるとし、１つのマス単位を一状態として状態空間を組む。制御対象物単位の位置を（Xr_u[j],Yr_u[j], Zr_u[j]）（j=0,1,2,…j_max-1）としたとき、その制御対象物単位j内の制御対象物をi1,i2,i3,i4とすれば、
Xr[i1] = 2 × Xr_u[j] 
Yr[i1] = 2 × Yr_u[j] + 1
Zr[i1] = 2 × Zr_u[j] 
Xr[i2] = 2 × Xr_u[j] + 1
Yr[i2] = 2 × Yr_u[j] 
Zr[i2] = 2 × Zr_u[j] 
Xr[i3] = 2 × Xr_u[j]
Yr[i3] = 2 × Yr_u[j]
Zr[i3] = 2 × Zr_u[j]
Xr[i4] = 2 × Xr_u[j]
Yr[i4] = 2 × Yr_u[j]
Zr[i4] = 2 × Zr_u[j] + 1
となる。
【００２８】
なお、各制御対象物iが所属する制御対象物単位jを表す変数をRr[i]=jとし、これは隊列制御のどの時刻においても不変である。また、制御対象物が上記i1,i2,i3,i4のどの位置にあるかを表す変数をIr[i]=(1,2,3,4)とする。各制御対象物単位の初期位置を（Xr_u0[j],Yr_u0[j],Zr_u0[j]）とし、目標位置を（Xr_ue[j],Yr_ue[j],Zr_ue[j]）とする。以下、制御対象物の全体数pを４の倍数とする。
【００２９】
なお、図４（Ｂ）のように、２つの制御対象物単位を合わせることで、８マスの制御対象物単位を構成することも可能であり、８マスの制御対象物単位で構成された制御対象物群の隊列制御も、４マス制御対象物単位の制御を行うことで可能となる。
【００３０】
また、図４の例に限らず、制御対象物単位は以下の条件を満たすよう構成されていればよい。すなわち、制御対象物単位は、（１）三次元の直交座標系で各軸方向に長さＭ（Ｍ≧２、ただし、制御対象物１個の長さを長さ１とする）を有する立方体形状の空間（以降この空間をメタモジュールとする。）内の部分構造であり（言い換えれば、制御対象物単位はメタモジュールの一部を占め）、（２）当該メタモジュール内の制御対象物単位に含まれる制御対象物の数と、当該メタモジュール内の制御対象物単位以外の部分（すなわち空隙）の数とが等しく、（３）各軸方向にＭ個の制御対象物が隣接する構造を含む。例えば、図４に例示する制御対象物単位は、（１）各軸方向の長さＭ＝２とした計８マスの立方体からなるメタモジュールの部分構造であり、（２）制御対象物単位内の制御対象物の数が４個、メタモジュール内の空隙の数が４個と等しく、（３）各軸方向において２個の制御対象物が隣接する構造が含まれている。
【００３１】
以後の説明では、制御対象物単位の一例として、図４に示す４個の制御対象物からなる構造を制御対象物単位とする場合について説明するが、例えば、Ｍ３個分の大きさのメタモジュール内で上述の（１）から（３）の条件を満たすよう構成された制御対象物単位であれば同様の効果を得ることができる。
【００３２】
［ホモジニアス隊列制御］
各制御対象物単位jが初期位置の集合S内にて、任意の位置に存在する状態から、各制御対象物単位jをそれぞれ目標位置の集合Gのうちのいずれかの位置（Xr_ue[j],Yr_ue[j],Zr_ue[j]）に配置させるホモジニアス制御対象物隊列制御の方法について以下説明していく。なお、以下、初期位置の集合Sの集合を初期位置S、目標位置の集合Gを目標位置Gと略記することもある。
【００３３】
ここで、初期位置の集合S及び目標位置の集合Gは、４マスの制御対象物単位２つが合わさってできる８マスの制御対象物単位で構成されているものとする。４マス制御対象物単位数j_maxは偶数であり、１つの８マス制御対象物単位を構成する２つの４マス制御対象物単位j1,j2の番号の間には、j1+ j_max/2 = j2の関係がある（j_max=8の場合、0,1,2,3がj1、4,5,6,7がj2であり、(j1,j2)=(0,4)（1,5）（2,6）（3,7）の組が８マス単位を構成する。）。j2は図４（Ｂ）でいうところのドットで表された４マス制御対象物単位である。
【００３４】
図５に示す通り、初期位置の集合Sの状態にある制御対象物構造を目標位置の集合Gの状態に変形させるには、タネリングと呼ばれる方法をとる。図５に示す動作においては、先頭の制御対象物単位Headと尾部制御対象物単位Tailを結ぶ一連の制御対象物単位が、いわば蛇のような形で、先頭制御対象物単位Headの動作を追従する方式で動作する。なお、他のタンリングを行う制御対象物、例えば非特許文献１に示すような伸長収縮ロボットを使用した２×２×２のロボット単位を使用したロボット構造においてもこのタネリング動作は同様であり、本発明で示すタネリングの先頭制御対象物単位Headと尾部制御対象物単位Tailの選択方法は、同様に適用可能である。タネリングを使用した隊列変形は障害物のある環境においても、隊列変形動作を初期位置の集合と目標位置の集合以外の位置を使用せずに実行可能である。
【００３５】
図６に本発明で使用する２つの４マス制御対象物単位を使用した８マス制御対象物単位のタネリング動作の１ステップを示す。図６の動作１の「０」の制御対象物単位の動作の詳細は図１２又は図１３に示すとおりである。図６の動作２の制御対象物単位１の動作の詳細は図１０に示すとおりである。図６の動作３の「０」の制御対象物単位の動作の詳細は図１４に示すとおりである。図６の動作４の「０」の制御対象物単位の動作の詳細は図１１に示すとおりである。図６の動作５の「１」の制御対象物単位の動作の詳細は図１４に示すとおりである。図６の一連の動作により、「１」の８マス制御対象物単位が伸びて、先頭制御対象物単位である「０」の８マス制御対象物単位が１つだけ位置を進める。なお、ここでは、図６に示すように、同じＩＤの制御対象物単位（ここで「ＩＤ」とは図６の「０」「１」等の数字である）の占有する空間の大きさが大きくなることを「制御対象物単位が伸びる」と表現している。
【００３６】
図６の動作を繰り返す様子を図７に示す。図７の動作２により、伸びていた「１」の８マス制御対象物単位が縮み、また、「２」の８マス制御対象物単位が伸びて、「１」の８マス制御対象物単位が１つだけ位置を進める。図７の動作３により、伸びていた「２」の８マス制御対象物単位が縮み、また、尾部制御対象物単位である「３」の８マス制御対象物単位が伸びて、「２」の８マス制御対象物単位が１つだけ位置を進める。図７の動作４により、伸びていた「３」の８マス制御対象物単位が縮み、「３」の８マス制御対象物単位が１つだけ位置を進める。これにより、図７の最終動作において尾部制御対象物単位Tailである「３」の制御対象物単位の動作が完了する。図７の最終動作における尾部制御対象物単位の動作の詳細は、図８又は図９に示すとおりである。
【００３７】
従来手法においては、先頭制御対象物単位Headの選択において、目標位置G内の非充填箇所に隣接する制御対象物単位の位置であるということ以外に特に制限はなかった。一方、尾部制御対象物単位Tailの選択については、初期位置S内の制御対象物から尾部制御対象物単位Tailを取り除いた場合の制御対象物構造の接続性を維持するための工夫が必要であったが、これについても、初期位置Sと目標位置Gの共通部分が１つであるならば、従来手法で解決がされている。その場合、初期位置S内の制御対象物単位jが制御対象物構造から取り払われる際に、制御対象物構造が接続性を維持できるかどうかの条件として、以下の式（１）が有用である。
【００３８】
δ(j)>δ(j_n)  …(１)
ここで、δ(j)は、制御対象物単位jの先頭制御対象物単位Headからの制御対象物構造内でのマンハッタン距離である。そして、j_nは、制御対象物単位jに隣接している制御対象物単位の番号である。全ての制御対象物単位j_nに対して式（１）が成立するならば、制御対象物単位jを制御対象物構造から取り払ったとしても制御対象物構造の接続性は維持できる。すなわち、式（１）を満たす制御対象物単位を尾部制御対象物単位Tailとして選択すればよい。単純に言えば、常にδが最大の制御対象物単位を尾部制御対象物単位Tailとして選択していれば、問題はない。
【００３９】
つづいて、本発明での、先頭制御対象物単位Headと尾部制御対象物単位Tailの選び方について述べる。初期位置と目標位置の共通部分がNcommon個の部分に分かれているとし、それぞれの部分を部分共通位置集合C[1]，C[2]，C[3],…,C[Ncommon]とする。すなわち、共通位置の集合は互いに隣接していない少なくとも１つの部分共通位置集合から構成されているとして、それらの少なくとも１つの部分共通位置集合をC[1]，C[2]，C[3],…,C[Ncommon]とする。
【００４０】
まず、先頭制御対象物単位Headの選択について注意すべきことは、変形動作中に全体の制御対象物構造からこれらのNcommon個の部分共通位置集合のうちのいずれも、制御対象物構造から非接続にならないようにすることである。例えば、初期位置S内の制御対象物を徐々に目標位置G内に移動させたとするとその分初期位置S内に残る制御対象物数は少なくなる。この過程で注意を怠ると、初期位置S内の制御対象物にも目標位置G内の制御対象物にも共通部分を接続するために使用できる制御対象物がないという事態が起こり得る。また、先頭制御対象物単位Headが目標位置Gより、尾部制御対象物単位Tailが初期位置Sより選択されるといっても、初期位置Sと目標位置Gの共通部部分は初期位置Sとしても目標位置Gとしても働きうる。このため、そこへの適切な制御がなければ、先頭制御対象物単位Headと尾部制御対象物単位Tailの無限選択ループが発生してしまう恐れもある。それらを避けるために、以下の新しいルール（１）から（４）を設ける。
【００４１】
（１） 変形動作中に、先頭制御対象物単位Headの目的位置Dを目的位置としたタネリングによって充填された制御対象物単位の位置の集合をUpとする。すなわち、そして、集合Upに属している位置にある、制御対象物単位のみを任意時刻での先頭制御対象物単位Headとして選択可能とする。なお、ルール（１）に対応する処理は、後述する制御対象物単位選択部２のステップＳ２で行われる。
【００４２】
（２） S-Upに所属している位置にある、制御対象物単位のみを任意時刻での尾部制御対象物単位Tailとして選択可能とする。なお、ルール（２）に対応する処理は、後述する制御対象物単位選択部２のステップＳ２で行われる。
【００４３】
（３） 変形動作開始時点で、集合UpにC[1]，C[2]，C[3],…,C[Ncommon]のうち、いずれか１つ任意のC[i_start]に所属する全ての制御対象物単位の位置を、集合Upに追加する。なお、ルール（３）に対応する処理は、後述する集合選択部１のステップＳ１で行われる。
【００４４】
（４） 変形動作中に、集合UpがC[i_connected]内の制御対象物単位のいずれかに接した場合、目標位置の集合G内にて、集合Upから接続状態にあるC[i_connected]内の制御対象物単位の位置を全て集合Upに追加する。C[i_connected]は、変形動作中に、Up内制御対象物単位と新たに接した部分共通位置集合である。例えば、後述する図１５（Ｇ）では、C(2)が、C[i_connected]である。なお、ルール（４）に対応する処理は、後述する集合追加部４のステップＳ４で行われる。
【００４５】
ルール（１）（２）は、タネリング中に集合Upのみが目標位置Gと初期位置Sの唯一の接続部分であるかのような制御を行い、それによって式（１）式が適用可能な状態を変形動作中に作り出すものである。ルール（３）は隊列変形動作開始時の先頭制御対象物単位Headの選択肢を確保するものである。ルール（４）は、C[i_start]と他の部分共通位置集合が目標位置Gを経由して接続されて、１つの接続部分として扱えるようになった際に、先頭制御対象物単位Headの選択肢として、接続された部分共通位置集合を集合Upに追加するものである。
【００４６】
ルール（１）から（４）により、制御対象物単位の初期位置と制御対象物単位の目標位置の共通部分に非接続箇所がある場合でも適用可能な隊列制御を実現することができる。
【００４７】
以上に述べたタネリング動作を、全ての初期位置S内の制御対象物単位jが目標位置Gにたどりつくまで繰り返し行えば、ホモジニアス隊列制御が完了する。
【００４８】
＜実施形態＞
以下、制御装置及び方法の一実施形態について説明する。
【００４９】
制御装置は、図１６に示すように、集合選択部１、制御対象物単位選択部２、制御対象物単位移動部３、集合追加部４、制御部５及び記憶部６を例えば備えている。
【００５０】
制御方法は、制御装置の各部が、例えば図１７及び以下に説明するステップＳ１からステップＳ５の処理を行うことにより実現される。
【００５１】
［集合選択部１］
集合選択部１には、部分共通位置集合C[1]，C[2]，C[3],…,C[Ncommon]についての情報が入力される。
【００５２】
集合選択部１は、ある１つの部分共通位置集合を集合Upとして選択する（ステップＳ１）。集合Upについての情報は、記憶部６に記憶される。集合Upとして、どの部分共通位置集合C[1]，C[2]，C[3],…,C[Ncommon]を選択してもよい。
【００５３】
具体的には、集合選択部１は、1からNcommonのうちいずれか１つの値をi_startとし、部分共通位置集合C[i_start]に属する全ての位置を集合Upとして選択する。
【００５４】
［制御対象物単位選択部２］
制御対象物単位選択部２は、記憶部６から集合Upについての情報を読み込む。
【００５５】
制御対象物単位選択部２は、集合Upに属する位置にあり目標位置の中の制御対象物単位が存在していない位置（以下、目的位置Dとする。）に隣接する制御対象物単位を先頭制御対象物単位として選択し、集合Upに属しない位置にあり初期位置の中に位置する制御対象物単位であり、移動させても制御対象物構造の接続性を維持することができる制御対象物単位を尾部制御対象物単位として選択する（ステップＳ２）。
【００５６】
ここで、各制御対象物単位が他の制御対象物単位と隣接することにより制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うこととする。
【００５７】
選択された先頭制御対象物単位及び尾部制御対象物単位についての情報は、制御対象物単位移動部３に出力される。また、目的位置Dについての情報は、制御対象物単位移動部３及び集合追加部４に出力される。
【００５８】
具体的には、制御対象物単位選択部２は、集合Upに属する位置にあって、目標位置G内の非充填位置に接する任意の制御対象物単位を１つ選び、先頭制御対象物単位Headとする。また、制御対象物単位選択部２は、先頭制御対象物単位Headに隣接する非充填の目標位置G内制御対象物単位位置を目的位置Dとする。さらに、制御対象物単位選択部２は、初期位置S内でかつ集合Upでない位置にあって、式（１）を満たす任意の制御対象物単位を選択し、尾部制御対象物単位Tailとする。
【００５９】
［制御対象物単位移動部３］
制御対象物単位移動部３には、先頭制御対象物単位及び尾部制御対象物単位についての情報と、目的位置Dについての情報とが入力される。
【００６０】
制御対象物単位移動部３は、目的位置Dを目的位置として、先頭制御対象物単位から尾部制御対象物単位までの一連の制御対象物単位を先頭制御対象物単位の動作を追従するように移動させる（ステップＳ３）。
【００６１】
具体的には、制御対象物単位移動部３は、目的位置Dを目的位置として、先頭制御対象物単位から尾部制御対象物単位までの一連の制御対象物単位に対して、例えば図７に示すタネリングを実行する。
【００６２】
その際、制御対象物単位移動部３は、２つの制御対象物単位の組み合わせでできている場合には、制御対象物単位を構成する２つの制御対象物単位のうち、１つずつを制御対象物単位の大きさ分の距離だけ交互に移動させることによって制御対象物単位を移動させる。
【００６３】
［集合追加部４］
集合追加部４には、目的位置Dについての情報が入力される。また、集合追加部４は、記憶部６から集合Upについての情報を読み込む。
【００６４】
集合追加部４は、目的位置Dを集合Upに追加した後に、集合Upに接していて、集合Upの中ではなく目標位置の中に位置する制御対象物単位がある場合には、その制御対象物単位の位置と、その制御対象物単位から目標位置（共通位置を含む。）のみを経由して接続状態にある制御対象物単位の位置とを集合Upに追加する（ステップＳ４）。集合Upについての情報は、記憶部６に記憶される。
【００６５】
具体的には、集合追加部４は、目的位置Dを集合Upに追加した後に、集合Upに接していて、集合Upに含まれず、かつ目標位置G内にある制御対象物単位jがある場合には、その制御対象物単位jの位置と、その制御対象物単位jから目標位置G（共通位置を含む。）内のみを経由して接続状態にある全ての制御対象物単位の位置とを集合Upに追加する。
【００６６】
［制御部５］
制御部５は、目標位置の中の制御対象物が存在しない位置がなくなるまで、制御対象物単位選択部２、制御対象物単位移動部３及び集合追加部４の処理を繰り返して行わせる（ステップＳ５）。
【００６７】
具体的には、制御部５は、目標位置G内に非充填位置が残っているか判定し、残っているならば、ステップＳ２に戻る。残っていないならば、制御部５は、制御装置及び方法の処理を終了させる。
【００６８】
このような構成により、多数の制御対象物単位の存在を考慮しつつ、制御対象物単位同士が接したままの状態を維持しつつ任意の初期位置における隊列形成状態から、他の任意の目標位置における隊列形成状態へ、初期位置の集合と目標位置の集合の共通部分に非接続がある場合でも障害物のある環境でもホモジニアス隊列制御を行うことができる。また、目標位置の集合から共通位置を除いた部分において非接続箇所がある場合でも隊列制御を行うことができる。
【００６９】
［具体例］
図１５を用いて、制御装置及び方法による制御処理の具体例について説明する。
【００７０】
図１５（Ａ）は制御対象物単位の初期位置を表し、図１５（Ｂ）は制御対象物単位の目標位置を表す。図１５（Ａ）（Ｂ）において、白の立方体及び斜線の立方体は制御対象物単位の初期位置を表し、ドットの立方体及び斜線の立方体は制御対象物単位の目標位置を表す。斜線の立方体は、制御対象物単位の初期位置と目標位置の共通部分である共通位置を表す。
【００７１】
図１５（Ａ）において、共通位置の集合は互いに隣接していない３個の部分共通位置集合C(1),C(2),C(3)から構成されている。図１５（Ａ）において、一番上の２個の斜線の立方体の位置がC(1)であり、中央の２個の斜線の立方体の位置がC(2)であり、一番下の２個の斜線の立方体の位置がC(3)である。
【００７２】
集合選択部１は、例えば図１５（Ｂ）に示すように、部分共通位置集合C(1)を集合Upとして選択する（ステップＳ１）。図１５（Ｂ）から図１５（Ｇ）において、集合Upに属する位置を太線の点線で表す。
【００７３】
制御対象物単位選択部２は、例えば図１５（Ｂ）に示すように、先頭制御対象物単位Head、尾部制御対象物単位Tail、目的位置Dを選択する（ステップＳ２）。
【００７４】
制御対象物単位移動部３は、図１５（Ｂ）の目的位置Dを目的位置として、先頭制御対象物単位Headから尾部制御対象物単位Tailの一連の制御対象物単位を移動させる（ステップＳ３）。その結果、制御対象物単位の位置は、図１５（Ｃ）のようになる。
【００７５】
集合追加部４は、図１５（Ｂ）の目的位置Dを集合Upに追加する（ステップＳ４）。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置する制御対象物単位は存在しないため、目的位置D以外の位置は集合Upに追加されない。この結果、集合Upに属する位置は、図１５（Ｃ）のようになる。
【００７６】
目標位置の中の制御対象物が存在しない位置が残っているため、ステップＳ２の処理に戻る（ステップＳ５）。
【００７７】
制御対象物単位選択部２は、例えば図１５（Ｄ）に示すように、先頭制御対象物単位Head、尾部制御対象物単位Tail、目的位置Dを選択する（ステップＳ２）。
【００７８】
制御対象物単位移動部３は、図１５（Ｄ）の目的位置Dを目的位置として、先頭制御対象物単位Headから尾部制御対象物単位Tailの一連の制御対象物単位を移動させる（ステップＳ３）。その結果、制御対象物単位の位置は、図１５（Ｅ）のようになる。
【００７９】
集合追加部４は、図１５（Ｄ）の目的位置Dを集合Upに追加する（ステップＳ４）。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置する制御対象物単位は存在しないため、目的位置D以外の位置は集合Upに追加されない。この結果、集合Upに属する位置は、図１５（Ｅ）のようになる。
【００８０】
目標位置の中の制御対象物が存在しない位置が残っているため、ステップＳ２の処理に戻る（ステップＳ５）。
【００８１】
制御対象物単位選択部２は、例えば図１５（Ｆ）に示すように、先頭制御対象物単位Head、尾部制御対象物単位Tail、目的位置Dを選択する（ステップＳ２）。
【００８２】
制御対象物単位移動部３は、図１５（Ｆ）の目的位置Dを目的位置として、先頭制御対象物単位Headから尾部制御対象物単位Tailの一連の制御対象物単位を移動させる（ステップＳ３）。その結果、制御対象物単位の位置は、図１５（Ｇ）のようになる。
【００８３】
集合追加部４は、図１５（Ｆ）の目的位置Dを集合Upに追加する（ステップＳ４）。この場合、集合Upに接していて、集合Upの中ではなく目標位置の中に位置する制御対象物単位（図１５（Ｇ）において、cで示した位置にある制御対象物単位）が存在する。このため、この場合、集合追加部４は、位置cと、位置cにある制御対象物単位から目標位置（共通位置を含む。）のみを経由して接続状態にある制御対象物単位の位置（すなわち、位置cを除く、部分共通位置集合C(2)に属する位置）とを集合Upに追加する。この結果、集合Upに属する位置は、図１５（Ｇ）のようになる。なお、この場合、C[2]が、C[i_connected]となる。このステップＳ４の処理により、C[i_connected]であるC[2]が、集合Upに追加される。
【００８４】
このような処理を繰り返すことにより、最終的に、図１５（Ｈ）に示すように制御対象物単位を目標位置に移動させることができる。
【００８５】
＜変形例＞
なお、先頭制御対象物単位Headから尾部制御対象物単位Tailの一連の制御対象物単位の移動（以下、タネリング動作とする。）は並列して行ってもよい。例えば、ある先頭制御対象物単位Head、尾部制御対象物単位Tail及び目的位置Dに基づくタネリング動作を開始してから所定の時間ステップの後に、次の先頭制御対象物単位Head、尾部制御対象物単位Tail及び目的位置Dに基づくタネリング動作を開始することにより、このタネリング動作の並列処理を行うことができる。その際、前のタネリング動作で移動している制御対象物単位を、後のタネリング動作で移動している制御対象物単位が追い越さないようにする。すなわち、前のタネリング動作における先頭制御対象物単位Headと尾部制御対象物単位とを結ぶ経路上に、後のタネリング動作における先頭制御対象物単位Headと尾部制御対象物単位とを結ぶ経路が重なる場合、この重複区間については、前のタネリング動作の制御対象物単位が先に通過するように、後のタネリング動作を待ちにする。
【００８６】
上記の実施形態では、制御対象物単位としていわゆる８マスライディングキューブを用いたが、タネリング動作が可能であれば、８マスコンプレッシングタイプ、４マスライディングキューブ等の制御対象物単位を用いてもよい。また、タネリング動作が可能であれば、いわゆるせん断ロボット、伸縮ロボット以外のロボットを制御対象物単位として用いてもよい。
【００８７】
＜プログラム及び記録媒体＞
制御装置の各部における処理をコンピュータによって実現する場合、これらの装置の各部が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、その各部の処理がコンピュータ上で実現される。
【００８８】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００８９】
また、各部の処理は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理の少なくとも一部をハードウェア的に実現することとしてもよい。
【００９０】
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【図１】
2019139637.tif 000003
【図２】
2019139637.tif 000004
【図３】
2019139637.tif 000005
【図４】
2019139637.tif 000006
【図５】
2019139637.tif 000007
【図６】
2019139637.tif 000008
【図７】
2019139637.tif 000009
【図８】
2019139637.tif 000010
【図９】
2019139637.tif 000011
【図１０】
2019139637.tif 000012
【図１１】
2019139637.tif 000013
【図１２】
2019139637.tif 000014
【図１３】
2019139637.tif 000015
【図１４】
2019139637.tif 000016
【図１５】
2019139637.tif 000017
【図１６】
2019139637.tif 000018
【図１７】
2019139637.tif 000019