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

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

Info

Publication number
JP2019082800A
JP2019082800A JP2017209151A JP2017209151A JP2019082800A JP 2019082800 A JP2019082800 A JP 2019082800A JP 2017209151 A JP2017209151 A JP 2017209151A JP 2017209151 A JP2017209151 A JP 2017209151A JP 2019082800 A JP2019082800 A JP 2019082800A
Authority
JP
Japan
Prior art keywords
group
control target
unit
control
controlled object
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017209151A
Other languages
English (en)
Other versions
JP6946933B2 (ja
Inventor
洋 川野
Hiroshi Kawano
洋 川野
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 JP2017209151A priority Critical patent/JP6946933B2/ja
Publication of JP2019082800A publication Critical patent/JP2019082800A/ja
Application granted granted Critical
Publication of JP6946933B2 publication Critical patent/JP6946933B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

【課題】一方の制御対象物群が接続を維持しつつ他方の制御対象物群が占有する空間を通り抜けて移動する。【解決手段】隊列制御装置1は、M群制御対象物群がS群制御対象物単位の存在する空間を通り抜けて所定の移動方向へ移動するように部分隊列を制御する。欠損状態判定部13は、各S群制御対象物単位についてモード値を判定する。移動計画部14は、各M群制御対象物単位について、基準列に属する制御対象物を移動方向へ移動させる第一の行動と、基準列の先頭の制御対象物を空隙へ移動させる第二の行動と、末尾のM群制御対象物単位において基準列に属していない制御対象物を基準列の末尾へ移動させる第三の行動と、のいずれかを行う移動計画系列を生成する。動作部15は、移動計画系列に従ってM群制御対象物群を移動させる。【選択図】図8

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群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物とからなり、S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物との少なくとも1個の制御対象物からなり、部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が上記移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、M群制御対象物群内の各M群制御対象物単位が互いに接続を維持し、かつ、各M群制御対象物単位内の各制御対象物が互いに接続を維持しながら、S群制御対象物単位の存在する空間を通り抜けて移動方向へ移動するように部分隊列を制御する隊列制御装置であって、各S群制御対象物単位について、S1制御対象物とS4制御対象物とが欠損しているか否かによりモード値を判定する欠損状態判定部と、各M群制御対象物単位について、部分隊列内で移動方向に向かってM群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を移動方向へ移動させる第一の行動と、部分隊列内で移動方向に向かって先頭のM群制御対象物単位と組み合わさるS群制御対象物単位、もしくは、そのS群制御対象物単位と移動方向側で隣接するS群制御対象物単位を目的S群制御対象物単位とし、目的S群制御対象物単位のモード値に基づいて、基準列の先頭の制御対象物を目的S群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、部分隊列内で移動方向に向かって末尾のM群制御対象物単位において、基準列に属する制御対象物と隣接していないM1制御対象物もしくはM4制御対象物のいずれかを基準列の末尾へ移動させる第三の行動と、のいずれかを行う移動計画からなる系列である移動計画系列を生成する移動計画部と、移動計画系列に従ってM群制御対象物群に属する各制御対象物を移動させる動作部と、を含む。
上記の課題を解決するために、この発明の第二の態様の隊列制御装置は、M群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物との少なくとも1個の制御対象物からなり、S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物とからなり、部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、S群制御対象物群内の各S群制御対象物単位が互いに接続を維持し、かつ、各S群制御対象物単位内の各制御対象物が互いに接続を維持しながら、M群制御対象物単位の存在する空間を通り抜けて移動方向へ移動するように部分隊列を制御する隊列制御装置であって、各M群制御対象物単位について、M1制御対象物とM4制御対象物とが欠損しているか否かによりモード値を判定する欠損状態判定部と、各S群制御対象物単位について、部分隊列内で移動方向に向かってS群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を移動方向へ移動させる第一の行動と、部分隊列内で移動方向に向かって先頭のS群制御対象物単位と組み合わさるM群制御対象物単位、もしくは、そのM群制御対象物単位と移動方向側で隣接するM群制御対象物単位を目的M群制御対象物単位とし、目的M群制御対象物単位のモード値に基づいて、基準列の先頭の制御対象物を目的M群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、部分隊列内で移動方向に向かって末尾のS群制御対象物単位において、基準列に属する制御対象物と隣接していないS1制御対象物もしくはS4制御対象物のいずれかを基準列の末尾へ移動させる第三の行動と、のいずれかを行う移動計画からなる系列である移動計画系列を生成する移動計画部と、移動計画系列に従ってS群制御対象物群に属する各制御対象物を移動させる動作部と、を含む。
この発明の隊列制御技術によれば、制御対象物の隊列制御において、一方の制御対象物群が接続を維持しつつ他方の制御対象物群が占有する空間を通り抜けて移動することができる。さらに、静止している側の制御対象物群については、それを構成する制御対象物が、想定している完全な状態からいくつか消失した状態であっても、透過動作が滞りなく行うことができる。
図1は、制御対象物の移動を説明するための図である。 図2は、制御対象物群が空間を共有する状態を説明するための図である。 図3は、ボイドの移動の様子を説明するための図である。 図4は、制御対象物単位を説明するための図である。 図5は、制御対象物単位の列を例示する図である。 図6は、制御対象物群の移動手順を例示する図である。 図7は、制御対象物単位のモードを例示する図である。 図8は、第一実施形態の隊列制御装置の機能構成を例示する図である。 図9は、移動計画部の機能構成を例示する図である。 図10は、第一実施形態の隊列制御方法の処理手続きを例示する図である。 図11は、M群制御対象物が移動する方向を例示する図である。 図12は、移動方向と制御対象物単位中の位置の関係を例示する図である。 図13は、第二実施形態の隊列制御装置の機能構成を例示する図である。 図14は、第二実施形態の隊列制御方法の処理手続きを例示する図である。 図15は、S群制御対象物が移動する方向を例示する図である。 図16は、制御対象物単位のモードを例示する図である。
以下、本発明の実施形態について詳細に説明する。なお、以下の説明に用いる図面では、同じ機能を有する構成部や同じ処理を行うステップには同一の符号を付し、重複説明を省略する。
<理論的背景>
まず、本発明の隊列制御装置および方法の理論的背景について説明する。以下の説明において、制御対象物はロボットである。制御対象物は、制御の対象となり得るものであればロボット以外であってもよい。
[問題設定]
任意の隊列形成を初期隊列形成状態として、制御対象物同士が接したままの状態を維持しつつ目的とする任意の隊列形成状態である目的隊列形成状態へ隊列を移動させる隊列制御を、多数の制御対象物が協調して行う任務を、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型の制御対象物の制御を想定して実現する。制御対象物については、例えば図1に示すように、制御対象物の周囲縦横高さ方向(以下「上下左右前後方向」ともいう)6マスのうち一つに他の制御対象物が存在している(一つの面を他制御対象物と共有している)状態を維持しながら移動をするものとする。この手法では1つの制御対象物自身が、一個の制御対象物のサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、一つの面を共有する隣り合う制御対象物との相対的な位置を計測し合うことで、制御対象物の群全体の中での各制御対象物の位置も容易に知ることができる。このため、制御対象物の移動量の誤差によって、隊列が崩れるといった問題を起こしにくく、また、各制御対象物の位置を把握するために付加的な位置計測用の装備を備えずとも位置の把握が可能である。また、複数の制御対象物を連結したように、同時に複数の制御対象物を移動させていくことが可能である。なお、制御対象物は、隣の位置に他の制御対象物が存在しているか否か、障害物があるか否か、そして、自身が目的位置上にいるかどうかを知ることができるものとする。
任務を行う制御対象物は、p個(p≧8=4×2)であり、各制御対象物は、隣接する制御対象物と一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。図1の各立方体は、それぞれの制御対象物の位置を示すものである。各立方体には制御対象物は一個しか存在することができない。それぞれの制御対象物は、移動しようとする方向に障害物か他の制御対象物がある場合には、静止をするものと仮定する。なお、制御対象物が存在しうる立方体状の空間をマス、または、格子ともいう。図2の左側の制御対象物群(薄い色で塗り潰された制御対象物からなる立方体形状の制御対象物群)は静止している制御対象物群を示す。図2の右側の制御対象物群(濃い色で塗りつぶされた制御対象物からなるL字状の形状からなる制御対象物群)は移動する制御対象物群を示す。これら二つの群は、互いに交差時に群の形状を変更しない。このように、二つの制御対象物群の隊列形状はそれぞれ一塊の任意の形状である。
[制御対象物の座標設定]
それぞれの制御対象物i(iは制御対象物番号を表すi=0, 1, 2, 3, …, p-1、ただしpは各制御対象物群に含まれる制御対象物の総数とする)の位置を(Xr[i], Yr[i], Zr[i])とする。ここで、Xr[i]はX軸方向の位置、Yr[i]はY軸方向の位置、Zr[i]はZ軸方向の位置である。各制御対象物が属する群の番号をSr[i](Sr[i]=0, 1。ここでは群は2つ)とする。
本問題は、任意の位置に配置された制御対象物群が、任意の方向に動く際、別の静止している制御対象物群と占有する領域が重なった場合でも、滞りなく動作を行うための各制御対象物の行動計画を求めることと定義できる。移動する制御対象物群はSr[i]=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格子だけ移動する(図4紙面内右方向)
2: 三次元空間内でY軸正方向に1格子だけ移動する(図4紙面内手前方向)
3: 三次元空間内でX軸負方向に1格子だけ移動する(図4紙面内左方向)
4: 三次元空間内でY軸負方向に1格子だけ移動する(図4紙面内奥方向)
5: 三次元空間内でZ軸正方向に1格子だけ移動する(図4紙面内上方向)
6: 三次元空間内でZ軸負方向に1格子だけ移動する(図4紙面内下方向)
とする。
[探索計算上の問題点]
このような任務環境における状態空間は、制御対象物数×3の次元数の状態を持ち、かつ選択可能な行動数は、制御対象物の行動(=7通り)の制御対象物数乗だけ存在する。例えば、制御対象物数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば、状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらに制御対象物数が1個増えるごとに、その状態数は8000倍増加していくことになる。[問題設定]の項で説明したように、制御対象物同士が接しているという拘束条件を取り入れる場合、制御対象物のお互いの移動を考慮したうえで探索計算を行わなければならないために、根本的な計算量の削減は難しく、複数の制御対象物を使用する場合の大きな問題となっている。
[参考文献1におけるヘテロジニアス隊列制御における特徴]
参考文献1におけるヘテロジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の一つとして、ボイド制御の考え方を導入している。また、[問題設定]で述べたような隊列変形の問題を克服するために8マス制御対象物単位の考え方も導入している。
〔参考文献1〕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.
まず、ボイド制御について説明する。ここでいうボイドとは、ある制御対象物が別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、制御対象物の移動する方向と反対の方向に移動する仮想的な存在である。こうした制御対象物群の隊列形成問題においては、複数の制御対象物の動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数の制御対象物の動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。制御対象物の移動に伴ってボイドが移動していく様子を図3に示す。
しかし、もともとは、フルに充填された8マス制御対象物の構造を採用しているために、制御対象物の移動のためにボイドを構造内に意図的に生成しなければならず、そのため、隣接していない制御対象物同士の行き来には不自由な点が多かった。また、当然、他の制御対象物群と衝突した際に形状を維持しつつ、他の制御対象物群と同じ領域を共有することは不可能であった。
能であった。
[4マス制御対象物単位の導入]
そこで本発明では、図4に示すように、4個の隣接した制御対象物を1つの単位とし(制御対象物単位)、制御対象物は、この制御対象物単位を維持しつつ移動を行うこととする。言い換えると、4個毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成する4個の制御対象物はそれぞれ3つの方向において1つの制御対象物単位を構成する他の制御対象物と隣接した状態を維持しつつ移動を行う。この制御対象物単位の集団は、互いに制御対象物単位ごとに一面を共有し、接しながら移動をするように制御される。これらの制御対象物は同一でホモジニアスであるとし、どの制御対象物が単位内のどの位置にあるか、群の中のどの位置にあるかは、群の全体形状が維持される限りは問わないものとする。
このような4個の制御対象物を1つの単位とした移動を行う理由は、各制御対象物単位の内部にある4つの空隙空間を、他の制御対象物単位に属する制御対象物が通過することができ、それにより、異なる制御対象物単位内に属する制御対象物同士の行き来をすることが容易である点である。また、各制御対象物単位の内部にある4つの空隙空間を、他の制御対象物単位に属する制御対象物が通過する際の接続性の維持も容易である。すなわちこれは、隊列形態の維持を考量しなければならない各制御対象物の動作の決定において、制御対象物同士の接続を考慮するための計算負荷を軽減することにつながるからである。
ここでは4個の制御対象物がなす制御対象物単位が一つのマスの単位(本明細書では、以下、この単位を「マス単位」または「位置単位」ともいう)であるとし、一つのマス単位を一状態として状態空間を組む。ある制御対象物単位jの位置を(Xr_u[j], Yr_u[j], Zr_u[j])(j=0, 1, 2, … j_max-1)としたとき、その制御対象物単位j内の制御対象物をi1, i2, i3, i4とすれば、静止している制御対象物(Sr[i]=0)の場合は、
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
を、移動している制御対象物(Sr[i]=1)の場合は、
Xr[i1] = 2 × Xr_u[j] + 1
Yr[i1] = 2 × Yr_u[j]
Zr[i1] = 2 × Zr_u[j] + 1
Xr[i2] = 2 × Xr_u[j]
Yr[i2] = 2 × Yr_u[j] + 1
Zr[i2] = 2 × Zr_u[j] + 1
Xr[i3] = 2 × Xr_u[j] + 1
Yr[i3] = 2 × Yr_u[j] + 1
Zr[i3] = 2 × Zr_u[j] + 1
Xr[i4] = 2 × Xr_u[j] + 1
Yr[i4] = 2 × Yr_u[j] + 1
Zr[i4] = 2 × Zr_u[j]
を、移動する制御対象物群が静止している制御対象物群に対してa=3の向きに相対的に移動する際の基準位置とする。
なお、各制御対象物iが所属する制御対象物単位jを表す変数をRr[i]=jとする。また、制御対象物が上記i1, i2, i3, i4のどの位置にあるかを指す変数をIr[i]=(1, 2, 3, 4)とする。各制御対象物単位の位置を(Xr_u[j], Yr_u[j], Zr_u[j])とする。また、各制御対象物単位jが属する群をSu[j](=0, 1)とする。以下、制御対象物の全体数pを4の倍数とする。
[透過隊列制御]
Su[j]=1である移動する制御対象物単位jからなる群れ(以下、M群とする)が隊列形状を崩さずに、Su[j]=0である静止している制御対象物単位jからなる群れ(以下、S群とする)と重なったときでも、任意の6方向に移動するための隊列制御の方法について説明していく。
ある時刻において、M群がaの方向に移動するものとする。この際、M群の制御対象物単位jmから見てaの方向に隣接する位置に、M群に属する制御対象物単位が存在していない場合のことを考える。この場合、制御対象物単位jmをl番目の列の先頭(0番目の)要素とし、変数lineをline[a][l][0]=jmと定義する。行動aの向きと逆の方向の行動a_invの方向に制御対象物単位jmと隣接している制御対象物単位位置に、M群に属する制御対象物単位が存在しているならば、列lの2番目の要素line[a][l][1]は、そのうちのM群の制御対象物単位の番号を格納する。続いて同様に、行動a_invの方向に制御対象物単位line[a][l][1]と隣接している制御対象物単位位置に、M群に属する制御対象物単位が存在しているならば、列lの3番目の要素line[a][l][2]は、そのうちのM群の制御対象物単位の番号を格納する。といった具合に、行動a_invの方向に制御対象物単位jmと隣接している制御対象物単位位置に、M群に属する制御対象物単位が存在しなくなるまで繰り返し、列lの構成要素を決定する。このように列lを決定する手順の例を、図5の(A)〜(C)に示す。なお、列lはa方向に連続するM群の制御対象物単位の列を一意に特定するためのインデックスである。以降、列lは「部分隊列」と呼ぶこともある。すなわち、部分隊列は、M群の制御対象物単位が移動方向に沿って接続することで構成されるM群制御対象物群と、S群の制御対象物単位が移動方向に沿って接続することで構成されるS群制御対象物群とが組み合わさって構成される制御対象物単位の列と言える。
このように、M群の隊列中でa方向に隣接する制御対象物がない(つまりa方向の先頭の)制御対象物単位の各々について、当該制御対象物単位を先頭として行動a_invの方向に連続する列lについて、line[a][l][k](k=0, 1, 2, 3…)の値を決定すると、M群所属のどの制御対象物単位もいずれかの列lに属することになる。
隊列制御は、列l単位で行うものとし、移動の過程で制御対象物が列l以外の空間にはみ出さないようにする。これにより、各列について同時に隊列制御を行うことができる。ここで大事なのは、列lに属する制御対象物単位の数に関わらず、制御対象物単位1ステップ分の移動に要する時間ステップ数が一定でなければならないということである。これは、全体の形状を維持しながらの移動を行う上で、各制御対象物単位が同時に同じ方向に動かなければならないという要求から来るものである。
そのための動作の例を図6に示す。図6中のT=0〜1, 2〜3, 4〜5, 6〜7にて、制御対象物をスライドさせる際に、一度に列の長さに応じた数の制御対象物を同時に動かすことで、上記要求を満たしている。
厳密には、列lの先頭の制御対象物単位と同じ位置にS群の制御対象物が存在しているか否か、列lの末尾の制御対象物単位と同じ位置にS群の制御対象物が存在しているかどうか、またS群の制御対象物単位内に消失された制御対象物があるかないか等により、上記動作は微妙に異なるが、上記要求を、制御対象物をスライドさせる際に、一度に列の長さに応じた数の制御対象物を同時に動かすことで、満たすことは同様である。
各M群制御対象物単位と同じ位置にあるS群制御対象物単位内のIr=1, 4のどの制御対象物が失われているかについて、図7に示すようにモード分けがなされ、モードを示す値modeに応じて各M群制御対象物の動作が異なる。S群のIr=2, 3の位置の制御対象物については、場合分けには影響を与えない。図7において、各制御対象物に付したラベルは、その制御対象物がどちらの群に属し、Ir値が何であるかを示している。例えば、「M1」はM群のIr値が1の制御対象物を表し、「S4」はS群のIr値が4の制御対象物を表す。mode=0は、S群制御対象物単位がIr=1, 4の制御対象物をいずれも含まない場合を示す。mode=1は、S群制御対象物単位がIr=1, 4の両方の位置に制御対象物を含む場合を示す。mode=2は、S群制御対象物単位がIr=4の位置に制御対象物を含み、Ir=1の位置に制御対象物を含まない場合を示す。mode=3は、S群制御対象物単位がIr=1の位置に制御対象物を含み、Ir=4の位置に制御対象物を含まない場合を示す。
<第一実施形態>
第一実施形態の隊列制御装置では、1つの列lに存在するM群制御対象物単位およびS群制御対象物単位について、M群制御対象物単位がS群制御対象物単位の占有する空間を共有しながらa方向に1制御対象物単位分移動するよう制御する隊列制御装置である。上述の通り、任意の隊列制御は、列ごとの隊列制御を同時に行うことで実現できるが、第一実施形態はこの基本となる列ごとの隊列制御を行う装置である。
第一実施形態の隊列制御装置1は、図8に例示するように、記憶部10、単位内位置取得部11、順序取得部12、欠損状態判定部13、移動計画部14、および移動部15を含む。移動計画部14は、図9に例示するように、第1移動計画部141、第2移動計画部142、第3移動計画部143、第4移動計画部144、第5移動計画部145、第6移動計画部146、第7移動計画部147を含む。この隊列制御装置1が、図10に例示する各ステップの処理を行うことにより第一実施形態の隊列制御方法が実現される。
隊列制御装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。隊列制御装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。隊列制御装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。隊列制御装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。隊列制御装置1が備える各記憶部は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。
隊列制御装置1は、まず、単位内位置取得部11から移動計画部14までを実行することで、M群制御対象物を1制御対象物単位分、所定方向(a方向)に移動させるための手順(移動計画系列)を計算し、記憶部10に格納する。そして、動作部15が、記憶部10に格納した移動計画系列に基づいて、実際にM群制御対象物を動かしていく。第一実施形態では、a=3, 4, 6(X, Y, Zの各軸の負方向への移動)の場合を例に、具体的に処理を説明する。この場合は、ちょうどM群とS群の制御対象物単位が合体して立方体をなすように動く方向の動作である。
〔記憶部10〕
記憶部10には、予め移動方向aの値に応じて決まる6種類の行動指令値a_t[ia](ia=1, 2, 3, 4, 5, 6)が格納されているものとする。各aの値ごとの行動指令値の対応は図11の表に示す通りである。図11に示すように、M群の制御対象物単位は、Ir=3の制御対象物(M3)を基準とし、M3にx軸負方向で隣接するIr=2の制御対象物(M2)と、M3にy軸負方向で隣接するIr=1の制御対象物(M1)と、M3にz軸負方向で隣接するIr=4の制御対象物(M4)とから構成される。図11の表に示すようにaの値毎に行動指令値が変わるのは、aの向きに応じて、図6に示す制御対象物のスライド方向が変わり、動作する側の制御対象物群内の各制御対象物に振られるIr値が変わるからである。実際、a_t[1]は、動作する側の制御対象物群内のIr=3の制御対象物からIr=2の制御対象物に向う方向(=aの向き)、a_t[2]は、動作する側の制御対象物群内のIr=3の制御対象物からIr=1の制御対象物に向う方向(=aに水平面で直交する向き)、a_t[5]は、動作する側の制御対象物群内のIr=3の制御対象物からIr=4の制御対象物に向う方向(=aに鉛直面で直交する向き)である。a_t[3]は、a_t[1]の逆向きの方向である。a_t[4]は、a_t[2]の逆向きの方向である、a_t[6]は、a_t[5]の逆向きの方向である。
また、記憶部10には以下の第1移動計画部141から第7移動計画部147で計算された移動計画系列が格納される。移動計画系列は、各ステップにおいて、どの制御対象物をどの方向へ移動させるかをステップ順に並べた系列である。
〔単位内位置取得部11〕
ステップS11において、単位内位置取得部11は、初期のS群、M群隊列中の各制御対象物単位について、当該制御対象物単位内の各制御対象物が制御対象物単位中のどの位置にいるか(どのIr値となるか)を移動方向aに応じて決定する。なお、予め各制御対象物がどのIr値になるかが与えられていれば、本処理は省略してもよい。
制御対象物単位内の各制御対象物の位置は、移動方向aと、隣接する制御対象物が所属する制御対象物単位のIDの組み合わせから以下のように判定することができる。各aの方向に対するIr値の振り方を図12に例示する。図12では、S群内のIr値とM群内のIr値は、ちょうどX, Y, Z軸を反転させた振り方になっていることがわかる。
M群において、a=1, 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、
とする。
M群において、a=2, 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、
とする。
M群において、a=5, 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、
とする。
S群において、a=1, 3のとき、制御対象物iの位置が、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]+1、Zr[i]=2×Zr_u[j]ならば、Ir[i]=1、
Xr[i]=2×Xr_u[j]+1、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=2、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=3、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]+1ならば、Ir[i]=4、
とする。
S群において、a=2, 4のとき、制御対象物iの位置が、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]+1、Zr[i]=2×Zr_u[j]ならば、Ir[i]=2、
Xr[i]=2×Xr_u[j]+1、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=4、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=3、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]+1ならば、Ir[i]=1、
とする。
S群において、a=5, 6のとき、制御対象物iの位置が、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]+1、Zr[i]=2×Zr_u[j]ならば、Ir[i]=4、
Xr[i]=2×Xr_u[j]+1、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=1、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]ならば、Ir[i]=3、
Xr[i]=2×Xr_u[j]、Yr[i]=2×Yr_u[j]、Zr[i]=2×Zr_u[j]+1ならば、Ir[i]=2、
とする。
なお、S群へIr値を割り当てる処理は、aの向きに応じて必要な処理であり、後のモード判定に必要となるため、省略することはできない。
〔順序取得部12〕
ステップS12において、順序取得部12は、初期のM群隊列中において各制御対象物単位が移動方向aの反対の方向a_invにどの順序で並んでいるかを取得する。つまり、上述のline[a][l][k](k=0, 1, 2, …)の値を決定する。line[a][l][0]は、a方向に隣接するM群制御対象物単位が存在しない制御対象物単位の番号である。
〔欠損状態判定部13〕
ステップS13において、欠損状態判定部13は、移動方向aとの関係において、M群隊列中の制御対象物単位毎に、当該制御対象物単位と同じメタモジュール位置にあるS群所属の制御対象物単位の欠損状態を表すモード状態を判定し、その値(モード値)を決定する。モード値は図7に示す4種類である。なお、図7では、図4とは3軸の向きを回転させて示していることに注意されたい。
(1)モード値1
S群制御対象物単位jがIr=1, 4の両方に制御対象物を含む場合、モード値を1とする。
(2)モード値2
S群制御対象物単位jがIr=4の位置に制御対象物を含み、Ir=1の位置に制御対象物を含まない場合、モード値を2とする。
(3)モード値3
S群制御対象物単位jがIr=1の位置に制御対象物を含み、Ir=4の位置に制御対象物を含まない場合、モード値を3とする。
(4)モード値0
S群制御対象物単位jがIr=1, 4の位置に制御対象物をまったく含まない場合、モード値を0とする。
すなわち、欠損状態判定部13は、部分隊列内の各S群制御対象物単位について、Ir=1の制御対象物(S1)とIr=4の制御対象物(S4)とが欠損しているか否かによりモード値を判定する。
〔移動計画部14〕
移動計画部14は、第1移動計画部141から第7移動計画部147を順に実行することで、第1移動情報から第7移動情報までの系列からなる移動計画系列を生成し、記憶部10へ格納する。
具体的には、移動計画部14は、各M群制御対象物単位について、第一の行動と、第一の行動の後に行う第二の行動と、第一の行動の後に行う第三の行動とのいずれかを行う移動計画からなる系列である移動計画系列を生成し、記憶部10へ格納する。第一の行動は、部分隊列内で移動方向に向かってM群制御対象物単位に属する制御対象物のみが連続する列を基準列として、基準列に属する制御対象物を移動方向へ移動させるものである。第二の行動は、部分隊列内で移動方向に向かって先頭のM群制御対象物単位と組み合わさるS群制御対象物単位、もしくは、そのS群制御対象物単位と移動方向側で隣接するS群制御対象物単位を目的S群制御対象物単位とし、目的S群制御対象物単位のモード値に基づいて、基準列の先頭の制御対象物を目的S群制御対象物単位において制御対象物が欠損している空隙へ移動させるものである。第三の行動は、部分隊列内で移動方向に向かって末尾のM群制御対象物単位において、基準列に属する制御対象物と隣接していないM1制御対象物もしくはM4制御対象物のいずれかを基準列の末尾へ移動させるものである。
以下、第1移動計画部141から第7移動計画部147までの処理を詳細に説明する。
〔第1移動計画部141〕
ステップS141において、第1移動計画部141は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作を表す第1移動情報を生成し、記憶部10に格納する。基本的には、M群所属の制御対象物を隣接する空隙位置へ移動させるのであるが、このとき、モード毎に対応するS群の欠損状態に応じて、移動させても接続性が途切れない制御対象物とその移動方向を選択する必要がある。
第1移動情報は、具体的には以下のもので構成される。
(1)全モード共通
すべてのM群所属の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)上記(1)に加え、M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
(3)上記(1)に加え、M群所属の制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第2移動計画部142〕
ステップS142において、第2移動計画部142は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第2移動情報を生成し、記憶部10に格納する。
第2移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[5]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内で、Ir=2の制御対象物をa_t[5]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)M群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させ、Ir=4の制御対象物をa_t[6]方向に移動させる。
〔第3移動計画部143〕
ステップS143において、第3移動計画部143は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第3移動情報を生成し、記憶部10に格納する。
第3移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の場合、
先頭制御対象物以外でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、Ir=4の制御対象物をa_t[1]方向に移動させる。
〔第4移動計画部144〕
ステップS144において、第4移動計画部144は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第4移動情報を生成し、記憶部10に格納する。
第4移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)M群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させ、Ir=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第5移動計画部145〕
ステップS145において、第5移動計画部145は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第5移動情報を生成し、記憶部10に格納する。
第5移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の場合、
先頭および先頭から2番目の制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
〔第6移動計画部146〕
ステップS146において、第6移動計画部146は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第6移動情報を生成し、記憶部10に格納する。
第6移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=3の末尾制御対象物単位内、Ir=1の制御対象物をa_t[4]方向に移動させる。
〔第7移動計画部147〕
ステップS147において、第7移動計画部147は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第7移動情報を生成し、記憶部10に格納する。
第7移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の場合、
先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の場合、
末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 2, 3, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3, 4の制御対象物をa_t[1]方向に移動させる。
〔移動部15〕
ステップS15において、移動部15は、記憶部10に格納された移動計画系列に基づいて、M群制御対象物を順に移動させる。
<第二実施形態>
第二実施形態は、第一実施形態と同じく、1つの列lに存在するM群制御対象物単位およびS群制御対象物単位について、M群制御対象物単位がS群制御対象物単位の占有する空間を共有しながら所定方向に1制御対象物単位分移動するよう制御する隊列制御装置である。ここでは、所定方向をap=1, 2, 5(apの値の定義はaと同じ、つまり、X, Y, Zの各軸の正方向への移動を表す)とする。すなわち、負方向への移動を行う第一実施形態の第1移動計画部141から第7移動計画部147の処理を逆に実行するような形となる。これは、ちょうどM群とS群の制御対象物単位が重なって立方体をなしている状態から、M群とS群の制御対象物単位が離れて立方体が分解される方向の動作である。
第二実施形態の隊列制御装置2は、図13に例示するように、第一実施形態と同様に記憶部10、単位内位置取得部11、順序取得部12、欠損状態判定部13、移動計画部14、および移動部15を含み、さらに行動指令補助値決定部21、仮想位置設定部22、および移動計画並べ替え部23を含む。この隊列制御装置2が、図14に例示する各ステップの処理を行うことにより第二実施形態の隊列制御方法が実現される。
〔記憶部10〕
記憶部10には、予め行動指令補助値aに応じて決まる6種類の行動指令値a_t[ia](ia=1, 2, 3, 4, 5, 6)が格納されているものとする。各aの値ごとの行動指令値の対応は図11の表の通りである。
また、記憶部10には以下の第1移動計画部141から第7移動計画部147で計算された移動計画系列が格納される。移動計画系列は、各ステップにおいて、どの制御対象物をどの方向へ移動させるかをステップ順に並べた系列である。
〔行動指令補助値決定部21〕
ステップS21において、行動指令補助値決定部21は、所定方向apに応じて、行動指令補助値aを決定する。具体的には、所定方向ap=1のとき行動指令補助値a=3とし、所定方向ap=2のとき行動指令補助値a=4とし、所定方向ap=5のとき行動指令補助値a=6とする。
〔単位内位置取得部11〕
ステップS11において、単位内位置取得部11は、初期の隊列中の各制御対象物単位について、当該制御対象物単位内の各制御対象物が制御対象物単位中のどの位置にいるか(どのIr値となるか)を行動指令補助値aに応じて決定する。決定方法の詳細は、第一実施形態の単位内位置取得部11と同様である。なお、予め各制御対象物がどのIr値になるかが与えられていれば、本処理は省略してもよい。
〔仮想位置設定部22〕
ステップS22において、仮想位置設定部22は、M群制御対象物単位の位置およびM群制御対象物単位内の各制御対象物の位置を、移動後の位置(つまり、1制御対象物単位分、移動方向aへ移動させたい値)である仮想位置に置き換える。
〔順序取得部12〕
ステップS12において、順序取得部12は、初期のM群隊列中において各制御対象物単位が行動指令補助値aの反対の方向a_invにどの順序で並んでいるかを取得する。つまり、第一実施形態と同様に、上述のline[a][l][k](k=0, 1, 2, …)の値を決定する。
〔欠損状態判定部13〕
ステップS13において、欠損状態判定部13は、行動指令補助値aとの関係において、M群隊列中の制御対象物単位毎に、当該制御対象物単位と同じメタモジュール位置にあるS群所属の制御対象物単位の欠損状態を表すモード状態を判定し、その値(モード値)を決定する。モード値は図7に示す4種類(すなわち、第一実施形態と同じ)である。
〔第1移動計画部141〕
ステップS141において、第1移動計画部141は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第1移動情報を生成し、記憶部10に格納する。
第1移動情報は、具体的には以下のもので構成される。
(1)全モード共通
すべてのM群所属の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=0の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第2移動計画部142〕
ステップS142において、第2移動計画部142は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第2移動情報を生成し、記憶部10に格納する。
第2移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[5]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させ、Ir=4の制御対象物をa_t[6]方向に移動させる。
〔第3移動計画部143〕
ステップS143において、第3移動計画部143は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第3移動情報を生成し、記憶部10に格納する。
第3移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列l所属の制御対象物単位内の制御対象物のうち、先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、Ir=4の制御対象物をa_t[1]方向に移動させる。
〔第4移動計画部144〕
ステップS144において、第4移動計画部144は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第4移動情報を生成し、記憶部10に格納する。
第4移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=1の先頭制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させ、Ir=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第5移動計画部145〕
ステップS145において、第5移動計画部145は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第5移動情報を生成し、記憶部10に格納する。
第5移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列l所属の制御対象物単位内の制御対象物のうち、先頭および先頭から2番目の制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
〔第6移動計画部146〕
ステップS146において、第6移動計画部146は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第6移動情報を生成し、記憶部10に格納する。
第6移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の先頭制御対象物単位内でIr=2の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
〔第7移動計画部147〕
ステップS147において、第7移動計画部147は、モード値により特定されるM群制御対象物を、モード値により特定される所定方向へ移動させる操作である第7移動情報を生成し、記憶部10に格納する。
第7移動情報は、具体的には以下のもので構成される。
(1)M群所属の制御対象物単位数が2以上の全ての列l所属制御対象物単位内の制御対象物のうち、先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)M群所属の制御対象物単位数が2以上の全ての列lにおいて、
末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
(4)M群所属の制御対象物単位数が1の全ての列lにおいて、
mode[i]=0の先頭制御対象物単位内でIr=1, 2, 3, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3, 4の制御対象物をa_t[1]方向に移動させる。
〔移動計画並べ替え部23〕
ステップS23において、移動計画並べ替え部23は、上述の各部の処理により生成され記憶部10に格納された第1移動情報から第7移動情報までの系列を逆順に並べ替えたものを移動計画系列として出力する。すなわち、第7移動情報、第6移動情報、・・・、第1移動情報の順に並ぶ系列が移動計画系列となる。
〔移動部15〕
ステップS15において、移動部15は、記憶部10に格納された移動計画系列に基づいて、M群制御対象物を順に移動させる。
<第三実施形態>
第一実施形態および第二実施形態では、S群制御対象物単位が静止しており、M群制御対象物単位が移動する場合の隊列制御を行う隊列制御装置であったが、第三実施形態はM群制御対象物単位が静止しており、S群制御対象物単位が移動する場合の隊列制御を行う隊列制御装置について説明する。ただし、この場合、隊列内に欠損があるのは、M群制御対象物単位側となる。第三実施形態は、S群制御対象物単位をa=1, 2, 5方向(X, Y, Zの各軸の正方向)に移動させる隊列制御装置である。これは、ちょうどM群とS群の制御対象物単位が合体して立方体をなすように動く方向の動作である。
第三実施形態の隊列制御装置は、第一実施形態と装置構成は同じであるが、各ステップでの制御対象物の移動方向が異なる。S群制御対象物単位とM群制御対象物単位の形が対称的な形状をしているため、ちょうど座標向きを変えて第一実施形態の処理を行うことに相当するからである。
以下、第三実施形態の隊列制御装置を、第一実施形態との相違点を中心に説明する。なお、第一実施形態と同様の構成部については説明を省略する。
〔記憶部10〕
記憶部10には、予め移動方向aに応じて決まる6種類の行動指令値a_t[ia](ia=1, 2, 3, 4, 5, 6)が格納されているものとする。ただし、第三実施形態では動作するのがS群であるため、それに伴い算出されるa_t[ia]の値は第一実施形態とは異なる。各aの値ごとの行動指令値の対応は図15の表に示す通りである。図15に示すように、S群の制御対象物単位は、Ir=3の制御対象物(S3)を基準とし、S3にx軸正方向で隣接するIr=2の制御対象物(S2)と、S3にy軸正方向で隣接するIr=1の制御対象物(S1)と、S3にz軸正方向で隣接するIr=4の制御対象物(S4)とから構成される。
〔欠損状態判定部13〕
ステップS13において、欠損状態判定部13は、S群隊列中の制御対象物単位毎に、当該制御対象物単位と同じメタモジュール位置にあるS群所属の制御対象物単位の欠損状態を表すモード状態を判定し、その値(モード値)を決定する。モード値は図16に示す4種類である。なお、図16では、図7とは3軸の向きを回転させて示していることに注意されたい。つまり、M群制御対象物単位jがIr=1, 4の制御対象物をまったく含まない場合、モード値を0とする。M群制御対象物単位jがIr=1, 4の両方の位置に制御対象物を含む場合、モード値を1とする。M群制御対象物単位jがIr=4の位置に制御対象物を含み、Ir=1の位置に制御対象物を含まない場合、モード値を2とする。M群制御対象物単位jがIr=1の位置に制御対象物を含み、Ir=4の位置に制御対象物を含まない場合、モード値を3とする。
〔第1移動計画部141〕
ステップS141において、第1移動計画部141は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作を表す第1移動情報を生成し、記憶部10に格納する。
第1移動情報は、具体的には以下のもので構成される。
(1)全モード共通
すべてのS群所属の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)上記(1)に加え、S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
(3)上記(1)に加え、S群所属の制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第2移動計画部142〕
ステップS142において、第2移動計画部142は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第2移動情報を生成し、記憶部10に格納する。
第2移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[5]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させ、Ir=4の制御対象物をa_t[6]方向に移動させる。
〔第3移動計画部143〕
ステップS143において、第3移動計画部143は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第3移動情報を生成し、記憶部10に格納する。
第3移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
先頭制御対象物以外でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、Ir=4の制御対象物をa_t[1]方向に移動させる。
〔第4移動計画部144〕
ステップS144において、第4移動計画部144は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第4移動情報を生成し、記憶部10に格納する。
第4移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させ、Ir=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第5移動計画部145〕
ステップS145において、第5移動計画部145は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第5移動情報を生成し、記憶部10に格納する。
第5移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
先頭および先頭から2番目の制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
〔第6移動計画部146〕
ステップS146において、第6移動計画部146は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第6移動情報を生成し、記憶部10に格納する。
第6移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
〔第7移動計画部147〕
ステップS147において、第7移動計画部147は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第7移動情報を生成し、記憶部10に格納する。
第7移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 2, 3, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3, 4の制御対象物をa_t[1]方向に移動させる。
<第四実施形態>
第四実施形態は、第三実施形態と同じく、1つの列lに存在するM群制御対象物単位およびS群制御対象物単位について、S群制御対象物単位がM群制御対象物単位の占有する空間を共有しながら所定方向に1制御対象物単位分移動するよう制御する隊列制御装置である。ここでは、所定方向をap=3, 4, 6(apの値の定義はaと同じ、つまり、X, Y, Zの各軸の負方向への移動を表す)のいずれかとするものである。すなわち、正方向への移動を行う第三実施形態の第1移動計画部141から第7移動計画部147の処理を逆に実行するような形になる。これは、ちょうどM群とS群の制御対象物単位が重なって立方体をなしている状態から、M群とS群の制御対象物単位が離れて立方体が分解される方向の動作である。
第四実施形態の隊列制御装置は、第二実施形態と装置構成は同じであるが、各ステップでの制御対象物の移動方向が異なる。S群制御対象物単位とM群制御対象物単位の形が対称的な形状をしているため、ちょうど座標向きを変えて第二実施形態の処理を行うことに相当するからである。
以下、第四実施形態の隊列制御装置を、第二実施形態との相違点を中心に説明する。なお、第二実施形態と同様の構成部については説明を省略する。
〔行動指令補助値決定部21〕
ステップS21において、行動指令補助値決定部21は、所定方向apに応じて、行動指令補助値aを決定する。第四実施形態では、第二実施形態とは逆向きとする。具体的には、所定方向ap=3のとき行動指令補助値a=1とし、所定方向ap=4のとき行動指令補助値a=2とし、所定方向ap=6のとき行動指令補助値a=5とする。
〔仮想位置設定部22〕
ステップS22において、仮想位置設定部22は、S群制御対象物単位の位置およびS群制御対象物単位内の各制御対象物の位置を、移動後の位置(つまり、1制御対象物単位分、移動方向aへ移動させたい値)である仮想位置に置き換える。
〔順序取得部12〕
ステップS12において、順序取得部12は、初期のS群隊列中において各制御対象物単位が行動指令補助値aの反対の方向a_invにどの順序で並んでいるかを決定する。つまり、第三実施形態と同様に、上述のline[a][l][k](k=0, 1, 2, …)の値を決定する。line[a][l][0]は、a方向に隣接するS群制御対象物単位が存在しない制御対象物単位の番号である。
〔欠損状態判定部13〕
ステップS13において、欠損状態判定部13は、行動指令補助値aとの関係において、S群隊列中の制御対象物単位毎に、当該制御対象物単位と同じメタモジュール位置にあるS群所属の制御対象物単位の欠損状態を表すモード状態を判定し、その値(モード値)を格納する。モード値は図16に示す4種類(つまり、第三実施形態と同じ)である。
〔第1移動計画部141〕
ステップS141において、第1移動計画部141は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第1移動情報を生成し、記憶部10に格納する。
第1移動情報は、具体的には以下のもので構成される。
(1)全モード共通
すべてのS群所属の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第2移動計画部142〕
ステップS142において、第2移動計画部142は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第2移動情報を生成し、記憶部10に格納する。
第2移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[5]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させ、Ir=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させ、Ir=4の制御対象物をa_t[6]方向に移動させる。
〔第3移動計画部143〕
ステップS143において、第3移動計画部143は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第3移動情報を生成し、記憶部10に格納する。
第3移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
mode[i]=1の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させ、Ir=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、Ir=4の制御対象物をa_t[1]方向に移動させる。
〔第4移動計画部144〕
ステップS144において、第4移動計画部144は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第4移動情報を生成し、記憶部10に格納する。
第4移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[5]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[2]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
(3)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させ、Ir=3の制御対象物をa_t[2]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
〔第5移動計画部145〕
ステップS145において、第5移動計画部145は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第5移動情報を生成し、記憶部10に格納する。
第5移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
先頭および先頭から2番目の制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=1の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属の制御対象物単位数が1の場合、
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
〔第6移動計画部146〕
ステップS146において、第6移動計画部146は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第6移動情報を生成し、記憶部10に格納する。
第6移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の列l内の先頭から2番目の制御対象物単位内でIr=2の制御対象物をa_t[1]方向に移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=2の末尾制御対象物単位内でIr=4の制御対象物をa_t[6]方向に移動させる。
mode[i]=3の末尾制御対象物単位内でIr=1の制御対象物をa_t[4]方向に移動させる。
〔第7移動計画部147〕
ステップS147において、第7移動計画部147は、モード値により特定されるS群制御対象物を、モード値により特定される所定方向へ移動させる操作である第7移動情報を生成し、記憶部10に格納する。
第7移動情報は、具体的には以下のもので構成される。
(1)S群所属の制御対象物単位数が2以上の場合、
先頭制御対象物以外のIr=2, 3の制御対象物をa_t[1]方向に1ステップ移動させる。
(2)S群所属の制御対象物単位数が2以上の場合、
mode[i]=0の先頭制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の列l内の先頭から2番目の制御対象物単位内でIr=2, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させ、列l内の先頭から2番目の制御対象物単位内でIr=3の制御対象物をa_t[1]方向に移動させる。
(3)S群所属の制御対象物単位数が2以上の場合、
末尾制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
(4)S群所属の制御対象物単位数が1の場合、
mode[i]=0の先頭制御対象物単位内でIr=1, 2, 3, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=1の先頭制御対象物単位内でIr=1, 4の制御対象物をa_t[1]方向に移動させる。
mode[i]=2の先頭制御対象物単位内でIr=1, 3の制御対象物をa_t[1]方向に移動させる。
mode[i]=3の先頭制御対象物単位内でIr=3, 4の制御対象物をa_t[1]方向に移動させる。
<変形例>
第一実施形態から第四実施形態までは一つの列lにおけるM群とS群の制御対象物を対象として隊列制御を行う隊列制御装置について説明した。
複数列が組み合わさってなる任意の隊列に対して、M群がS群の占有する空間を通り抜けて所定方向に1制御対象物単位分移動する隊列制御を実現する場合は、任意の隊列を複数の列lに分割し、分割された各列l(部分隊列という)に対して第一実施形態から第四実施形態までの何れかの隊列制御装置による隊列制御を同時に実行すればよい。
各列の移動において制御対象物が当該列以外の空間にはみ出すことはないので、各列の移動は互いに独立しており、並列に実行することができる。そのため、各列に対して同時に第一実施形態から第四実施形態までの何れかによる移動を行うことで、対象とする隊列全体を所定方向に1制御対象物単位分移動させることができる。
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1、2 隊列制御装置
10 記憶部
11 単位内位置取得部
12 順序取得部
13 欠損状態判定部
14 移動計画部
141 第1移動計画部
142 第2移動計画部
143 第3移動計画部
144 第4移動計画部
145 第5移動計画部
146 第6移動計画部
147 第7移動計画部
15 動作部
21 行動指令補助値決定部
22 仮想位置設定部
23 移動計画並べ替え部

Claims (7)

  1. M群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物とからなり、
    S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物との少なくとも1個の制御対象物からなり、
    部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が上記移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、
    上記M群制御対象物群内の各M群制御対象物単位が互いに接続を維持し、かつ、各M群制御対象物単位内の各制御対象物が互いに接続を維持しながら、上記S群制御対象物単位の存在する空間を通り抜けて上記移動方向へ移動するように上記部分隊列を制御する隊列制御装置であって、
    各S群制御対象物単位について、上記S1制御対象物と上記S4制御対象物とが欠損しているか否かによりモード値を判定する欠損状態判定部と、
    各M群制御対象物単位について、
    上記部分隊列内で上記移動方向に向かって上記M群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を上記移動方向へ移動させる第一の行動と、
    上記部分隊列内で上記移動方向に向かって先頭のM群制御対象物単位と組み合わさるS群制御対象物単位、もしくは、そのS群制御対象物単位と上記移動方向側で隣接するS群制御対象物単位を目的S群制御対象物単位とし、上記目的S群制御対象物単位のモード値に基づいて、上記基準列の先頭の制御対象物を上記目的S群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、
    上記部分隊列内で上記移動方向に向かって末尾のM群制御対象物単位において、上記基準列に属する制御対象物と隣接していない上記M1制御対象物もしくは上記M4制御対象物のいずれかを上記基準列の末尾へ移動させる第三の行動と、
    のいずれかを行う移動計画からなる系列である移動計画系列を生成する移動計画部と、
    上記移動計画系列に従って上記M群制御対象物群に属する各制御対象物を移動させる動作部と、
    を含む隊列制御装置。
  2. 請求項1に記載の隊列制御装置であって、
    上記移動方向の逆方向を行動指令補助値として決定する行動指令補助値決定部と、
    上記M群制御対象物群が上記S群制御対象物単位の存在する空間を通り抜けて移動方向へ移動した後に上記M群制御対象物群の各制御対象物が存在すべき位置を仮想位置として設定する仮想位置設定部と、
    上記移動計画系列に含まれる移動計画を時系列が逆になるように並べ替えたものを新たな移動計画系列として生成する行動計画並べ替え部と、
    をさらに含み、
    上記移動計画部は、上記行動指令補助値を上記移動方向とし、上記仮想位置を上記M群制御対象物群の初期位置として、上記移動計画系列を生成するものである、
    隊列制御装置。
  3. M群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物との少なくとも1個の制御対象物からなり、
    S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物とからなり、
    部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が上記移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、
    上記S群制御対象物群内の各S群制御対象物単位が互いに接続を維持し、かつ、各S群制御対象物単位内の各制御対象物が互いに接続を維持しながら、上記M群制御対象物単位の存在する空間を通り抜けて上記移動方向へ移動するように上記部分隊列を制御する隊列制御装置であって、
    各M群制御対象物単位について、上記M1制御対象物と上記M4制御対象物とが欠損しているか否かによりモード値を判定する欠損状態判定部と、
    各S群制御対象物単位について、
    上記部分隊列内で上記移動方向に向かって上記S群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を上記移動方向へ移動させる第一の行動と、
    上記部分隊列内で上記移動方向に向かって先頭のS群制御対象物単位と組み合わさるM群制御対象物単位、もしくは、そのM群制御対象物単位と上記移動方向側で隣接するM群制御対象物単位を目的M群制御対象物単位とし、上記目的M群制御対象物単位のモード値に基づいて、上記基準列の先頭の制御対象物を上記目的M群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、
    上記部分隊列内で上記移動方向に向かって末尾のS群制御対象物単位において、上記基準列に属する制御対象物と隣接していない上記S1制御対象物もしくは上記S4制御対象物のいずれかを上記基準列の末尾へ移動させる第三の行動と、
    のいずれかを行う移動計画からなる系列である移動計画系列を生成する移動計画部と、
    上記移動計画系列に従って上記S群制御対象物群に属する各制御対象物を移動させる動作部と、
    を含む隊列制御装置。
  4. 請求項3に記載の隊列制御装置であって、
    上記移動方向の逆方向を行動指令補助値として決定する行動指令補助値決定部と、
    上記S群制御対象物群が上記M群制御対象物単位の存在する空間を通り抜けて移動方向へ移動した後に上記S群制御対象物群の各制御対象物が存在すべき位置を仮想位置として設定する仮想位置設定部と、
    上記移動計画系列に含まれる移動計画を時系列が逆になるように並べ替えたものを新たな移動計画系列として生成する行動計画並べ替え部と、
    をさらに含み、
    上記移動計画部は、上記行動指令補助値を上記移動方向とし、上記仮想位置を上記S群制御対象物群の初期位置として、上記移動計画系列を生成するものである、
    を含む隊列制御装置。
  5. M群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物とからなり、
    S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物との少なくとも1個の制御対象物からなり、
    部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が上記移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、
    上記M群制御対象物群内の各M群制御対象物単位が互いに接続を維持し、かつ、各M群制御対象物単位内の各制御対象物が互いに接続を維持しながら、上記S群制御対象物単位の存在する空間を通り抜けて上記移動方向へ移動するように上記部分隊列を制御する隊列制御装置が実行する隊列制御方法であって、
    欠損状態判定部が、各S群制御対象物単位について、上記S1制御対象物と上記S4制御対象物とが欠損しているか否かによりモード値を判定し、
    移動計画部が、各M群制御対象物単位について、
    上記部分隊列内で上記移動方向に向かって上記M群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を上記移動方向へ移動させる第一の行動と、
    上記部分隊列内で上記移動方向に向かって先頭のM群制御対象物単位と組み合わさるS群制御対象物単位、もしくは、そのS群制御対象物単位と上記移動方向側で隣接するS群制御対象物単位を目的S群制御対象物単位とし、上記目的S群制御対象物単位のモード値に基づいて、上記基準列の先頭の制御対象物を上記目的S群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、
    上記部分隊列内で上記移動方向に向かって末尾のM群制御対象物単位において、上記基準列に属する制御対象物と隣接していない上記M1制御対象物もしくは上記M4制御対象物のいずれかを上記基準列の末尾へ移動させる第三の行動と、
    のいずれかを行う移動計画からなる系列である移動計画系列を生成し、
    動作部が、上記移動計画系列に従って上記M群制御対象物群に属する各制御対象物を移動させる、
    隊列制御方法。
  6. M群制御対象物単位は、M3制御対象物と、M3制御対象物にx軸負方向で隣接するM2制御対象物と、M3制御対象物にy軸負方向で隣接するM1制御対象物と、M3制御対象物にz軸負方向で隣接するM4制御対象物との少なくとも1個の制御対象物からなり、
    S群制御対象物単位は、S3制御対象物と、S3制御対象物にx軸正方向で隣接するS2制御対象物と、S3制御対象物にy軸正方向で隣接するS1制御対象物と、S3制御対象物にz軸正方向で隣接するS4制御対象物とからなり、
    部分隊列は、複数のM群制御対象物単位が所定の移動方向に沿って接続したM群制御対象物群と複数のS群制御対象物単位が上記移動方向に沿って接続したS群制御対象物群とが組み合わさって構成され、
    上記S群制御対象物群内の各S群制御対象物単位が互いに接続を維持し、かつ、各S群制御対象物単位内の各制御対象物が互いに接続を維持しながら、上記M群制御対象物単位の存在する空間を通り抜けて上記移動方向へ移動するように上記部分隊列を制御する隊列制御装置が実行する隊列制御方法であって、
    欠損状態判定部が、各M群制御対象物単位について、上記M1制御対象物と上記M4制御対象物とが欠損しているか否かによりモード値を判定し、
    移動計画部が、各S群制御対象物単位について、
    上記部分隊列内で上記移動方向に向かって上記S群制御対象物単位に属する制御対象物のみが連続する基準列に属する制御対象物を上記移動方向へ移動させる第一の行動と、
    上記部分隊列内で上記移動方向に向かって先頭のS群制御対象物単位と組み合わさるM群制御対象物単位、もしくは、そのM群制御対象物単位と上記移動方向側で隣接するM群制御対象物単位を目的M群制御対象物単位とし、上記目的M群制御対象物単位のモード値に基づいて、上記基準列の先頭の制御対象物を上記目的M群制御対象物単位において制御対象物が欠損している空隙へ移動させる第二の行動と、
    上記部分隊列内で上記移動方向に向かって末尾のS群制御対象物単位において、上記基準列に属する制御対象物と隣接していない上記S1制御対象物もしくは上記S4制御対象物のいずれかを上記基準列の末尾へ移動させる第三の行動と、
    のいずれかを行う移動計画からなる系列である移動計画系列を生成し、
    動作部が、上記移動計画系列に従って上記S群制御対象物群に属する各制御対象物を移動させる、
    隊列制御方法。
  7. 請求項1から4のいずれかに記載の隊列制御装置としてコンピュータを機能させるためのプログラム。
JP2017209151A 2017-10-30 2017-10-30 隊列制御装置、隊列制御方法、およびプログラム Active JP6946933B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2019082800A true JP2019082800A (ja) 2019-05-30
JP6946933B2 JP6946933B2 (ja) 2021-10-13

Family

ID=66670468

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP6946933B2 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099893A (ja) * 2000-07-07 2002-04-05 Fuji Xerox Co Ltd 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット
JP2003019699A (ja) * 2001-04-17 2003-01-21 Fuji Xerox Co Ltd 膜、自己再構成可能なロボット、膜を提供する方法、コンピュータが読取り可能なメモリを含む製品、スマート膜用のソフトウェアを提供する方法、及び膜を制御する方法
JP2003048179A (ja) * 2001-05-29 2003-02-18 Japan Science & Technology Corp 複数歯車型ユニットで構成される変形可能な移動装置
US20030109958A1 (en) * 2001-07-02 2003-06-12 Xerox Corporation Self-reconfigurable robot
US20140273730A1 (en) * 2013-03-15 2014-09-18 A.Q.B. Venture Capital B.V. Element comprising sensors for detecting grab motion or grab release motion for actuating inter-element holding or releasing
JP2017142738A (ja) * 2016-02-12 2017-08-17 日本電信電話株式会社 行動制御システム、その方法及びプログラム
JP2019075013A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002099893A (ja) * 2000-07-07 2002-04-05 Fuji Xerox Co Ltd 自己再構成可能ロボット中のモジュールへのソフトウェアの提供方法、自己再構成可能ロボットに含まれるモジュール、コンピュータ可読メモリを含む製品、及び自己再構成可能ロボット
JP2003019699A (ja) * 2001-04-17 2003-01-21 Fuji Xerox Co Ltd 膜、自己再構成可能なロボット、膜を提供する方法、コンピュータが読取り可能なメモリを含む製品、スマート膜用のソフトウェアを提供する方法、及び膜を制御する方法
JP2003048179A (ja) * 2001-05-29 2003-02-18 Japan Science & Technology Corp 複数歯車型ユニットで構成される変形可能な移動装置
US20030109958A1 (en) * 2001-07-02 2003-06-12 Xerox Corporation Self-reconfigurable robot
US20140273730A1 (en) * 2013-03-15 2014-09-18 A.Q.B. Venture Capital B.V. Element comprising sensors for detecting grab motion or grab release motion for actuating inter-element holding or releasing
JP2017142738A (ja) * 2016-02-12 2017-08-17 日本電信電話株式会社 行動制御システム、その方法及びプログラム
JP2019075013A (ja) * 2017-10-18 2019-05-16 日本電信電話株式会社 隊列制御装置、隊列制御方法、およびプログラム

Also Published As

Publication number Publication date
JP6946933B2 (ja) 2021-10-13

Similar Documents

Publication Publication Date Title
Yu et al. An effective algorithmic framework for near optimal multi-robot path planning
JP5997092B2 (ja) ロボット協調搬送計画装置、方法及びプログラム
JP2019053709A (ja) 制御装置、方法及びプログラム
Bahubalendruni et al. A hybrid conjugated method for assembly sequence generation and explode view generation
JP6559591B2 (ja) 行動制御システム、その方法及びプログラム
Barták et al. Multi-agent path finding on real robots
US10091280B2 (en) Data transfer control apparatus that control transfer of data between nodes and parallel computing system
Likhouzova et al. Robot path optimization in warehouse management system
JP2019082800A (ja) 隊列制御装置、隊列制御方法、およびプログラム
JP6939396B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
JP6392187B2 (ja) 行動制御システム、その方法及びプログラム
JP6559582B2 (ja) 行動制御システム、その方法及びプログラム
Lakhlef et al. Optimization of the logical topology for mobile MEMS networks
WO2019159927A1 (ja) 制御装置、方法及びプログラム
WO2020039951A1 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP2020035123A (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
WO2023281625A1 (ja) 制御装置、方法及びプログラム
JP6633467B2 (ja) 行動制御システム、行動制御方法、プログラム
Sgarbossa et al. Warehouse robotization with wheel. me Genius: A puzzle-based movable racks system
JP6881352B2 (ja) 制御装置、方法及びプログラム
JP7136365B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
JP2019074997A (ja) 制御装置、方法及びプログラム
WO2022153475A1 (ja) 制御装置、ハミルトン閉路拡張装置、方法及びプログラム
WO2023281582A1 (ja) 制御装置、方法及びプログラム
JP7226588B2 (ja) 行動制御装置、その方法及びプログラム

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210830

R150 Certificate of patent or registration of utility model

Ref document number: 6946933

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150