JP7480869B2 - 制御装置、ハミルトン閉路拡張装置、方法及びプログラム - Google Patents

制御装置、ハミルトン閉路拡張装置、方法及びプログラム Download PDF

Info

Publication number
JP7480869B2
JP7480869B2 JP2022574982A JP2022574982A JP7480869B2 JP 7480869 B2 JP7480869 B2 JP 7480869B2 JP 2022574982 A JP2022574982 A JP 2022574982A JP 2022574982 A JP2022574982 A JP 2022574982A JP 7480869 B2 JP7480869 B2 JP 7480869B2
Authority
JP
Japan
Prior art keywords
control object
unit
control
movement
units
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
JP2022574982A
Other languages
English (en)
Other versions
JPWO2022153475A1 (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
Publication of JPWO2022153475A1 publication Critical patent/JPWO2022153475A1/ja
Application granted granted Critical
Publication of JP7480869B2 publication Critical patent/JP7480869B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/40Control within particular dimensions
    • G05D1/46Control of position or course in three dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/69Coordinated control of the position or course of two or more vehicles
    • G05D1/695Coordinated control of the position or course of two or more vehicles for maintaining a fixed relative position of the vehicles, e.g. for convoy travelling or formation flight
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D2109/00Types of controlled vehicles
    • G05D2109/10Land vehicles
    • G05D2109/14Land vehicles moving on a grid

Landscapes

  • Engineering & Computer Science (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

本発明は、複数の制御対象物の行動を制御する技術又はハミルトン閉路を拡張する技術に関する。
近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている。
特に、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位置の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究もおこなわれている。例えば、非特許文献1に示す研究に至る一連の研究では、ある隊列から他の隊列に変化する隊列制御が示されている(例えば、非特許文献1参照。)。
このような、多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。
非特許文献1に示す研究に示されている手法では、複数の立方体形状のロボット同士での伸長収縮面動作(あるロボットが、他のロボットと接した状態で、伸び縮みしつつ移動する動作)によるロボットの隊列変形が扱われている。ここでは、各ロボットが接した状態での動作を想定し、各ロボットが同じ特性(ホモジニアス)である。つまり、目標形態内部での各ロボットの目標位置が定まってない場合の隊列制御を実現している。また、8マスのロボットにより構成されたロボット単位を基本としたロボット構造体の変形を扱っている。変形はロボット数の2乗に比例した変形時間を要する。
非特許文献2では、複数の立方体形状のロボット同士での面せん断動作(あるロボットが、他のロボットと接した状態で、接する面上をスライド移動する動作)によるロボットの隊列変形が扱われている。ここでも、8マスのロボットにより構成されたロボット単位を基本としたロボット構造体の変形を扱っている。各ロボット単位は異なる特性(ヘテロジニアス)である。つまり、目標形態内部での各ロボット単位の目標位置が各ロボット単位ごとに定まっている場合の隊列制御を実現している。変形にはロボット数に比例した変形時間を要する。非特許文献2では、同じロボット単位内にあるロボットはホモジニアス扱いであり、同じロボット単位内にあるロボットは、お互いの位置関係を隊列変形の前後で指定した位置にすることはできなかった。
非特許文献3においては、複数の立方体形状のロボット同士での面せん断動作(あるロボットが、他のロボットと接した状態で、接する面上をスライド移動する動作)によるロボットの隊列変形が扱われている。ここでは、8マスのロボット単位は使用せず、フル解像度のロボット構造体の変形を扱っている。各ロボットは異なる特性(ヘテロジニアス)である。つまり、目標形態内部での各ロボットの目標位置が各ロボットごとに定まっている場合の隊列制御を実現している。変形にはロボット数に比例した変形時間を要する。
非特許文献1,2の発明ともにロボットの初期位置と目標位置の集合が占める空間以外の空間を変形過程において必要せず、障害物のある空間での適用が可能であるが、非特許文献3の発明は、障害物のない自由空間を変形過程において必要とする。
S. Vassilvitskii, M. Yim, J. Suh, "A Complete, Local and Parallel Reconfiguration Algorithm for Cube Style Modular Robots", in Proc.2002 IEEE Int. Conf. Robotics and Automation, pp. 117-122, Washington DC, May, 2002. Kawano H., Distributed Linear Heterogeneous Reconfiguration of Cubic Modular Robots via Simultaneous Tunneling and Permutation", IEEE Transactions on Robotics, Vol. 36, Issue 1, pp. 62-77, Feb. 2020. Kawano, H., Parallel Permutation for Linear Full Resolution Reconfiguration of Heterogeneous Sliding-only Cubic Modular Robots", 2020 IEEE International Conference on Robotics and Automation,pp.8281-8287, May 2020, Paris, France.
しかしながら、制御対象物ごとに目標位置が定まっており(言い換えれば、制御対象物ごとのヘテロジニアス隊列変形を可能とする隊列制御であり)、制御対象物単位で移動を行う隊列変形において、高速に隊列変形を行う制御技術はなかった。
この発明は、制御対象物ごとに目標位置が定まっており、制御対象物単位で移動を行う隊列変形において、高速に隊列変形を行う制御装置、方法及びプログラムを提供することを第一の目的とする。
また、従来は、例えば中間位置を形作るハミルトン閉路を拡張する技術が知られていなかった。
そこで、この発明は、ハミルトン閉路を拡張するハミルトン閉路拡張装置、方法及びプログラムを提供することを第二の目的とする。
この発明の一態様による制御装置は、制御対象物単位には第一型制御対象物単位及び第二型制御対象物単位があり、第一型制御対象物単位及び第二型制御対象物単位のそれぞれはU個(Uは4以上の整数)の制御対象物から構成されており、各制御対象物には初期位置及び目標位置が定められており、初期位置及び目標位置にある制御対象物から構成される構造体は、第一型制御対象物単位及び第二型制御対象物単位が組み合わさることにより2U個の制御対象物で構成される合体制御対象物単位で構成されており、中間位置内の制御対象物単位をノードとし、互いに接する2個の制御対象物単位をつなげる面をエッジとするグラフはハミルトン閉路となり、中間位置に位置する制御対象物単位の周囲には、他の制御対象物単位が通過でき、制御対象物単位同士が位置を入れ替える空間があり、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させるための第一移動計画を作成する第一移動計画部と、第一移動計画に従い、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させる第一移動部と、目標位置にあると仮定した各制御対象物を、制御対象物単位で中間位置に移動させるための第二移動計画を作成する第二移動計画部と、第一移動部により移動された各制御対象物を、中間位置の中の、第二移動計画により定まる各制御対象物の移動先に移動させる中間位置入替部と、第二移動計画を時間的に逆にした計画に従い、中間位置にある各制御対象物を制御対象物単位で目標位置に移動させる第二移動部と、を備えている。
この発明の一態様によるハミルトン閉路拡張装置は、ハミルトン閉路上の隣り合う2個のノードk,k+1にそれぞれ接する位置にあり、ハミルトン閉路上の位置にない2個のノードa,bを選択する選択部と、選択された2個のノードa,bを新たなノードとしてハミルトン閉路に追加し、2個のノードk,k+1と2個のノードa,bをそれぞれつなげるエッジを新たなエッジとしてハミルトン閉路に追加する追加部と、選択部及び追加部の処理を繰り返すことで、ハミルトン閉路を拡張する制御部と、を備えている。
この発明によれば、制御対象物ごとに目標位置が定まっており、制御対象物単位で移動を行う隊列変形において、高速に隊列変形を行うことができる。または、この発明によれば、ハミルトン閉路を拡張することができる。
ロボットの移動の例を説明するための図。 制御対象物単位の初期位置及び目標位置の例を説明するための図。 ボイドの移動の様子の例を説明するための図。 制御対象物単位の例を説明するための図。 タネリングの例を説明するための図。 中間位置Mの生成の例を説明するための図。 S→Mの変形過程の例を説明するための図。 S→Mの変形過程の例を説明するための図。 タネリングの例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 制御対象物単位の移動の例を説明するための図。 図36は、制御装置の機能構成の例を示す図である。 図37は、制御方法の処理手続きの例を示す図である。 図38は、ハミルトン閉路拡張装置の機能構成の例を示す図である。 図39は、ハミルトン閉路拡張方法の処理手続きの例を示す図である。 図40は、コンピュータの機能構成例を示す図である。
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。
<理論的背景>
まず、制御装置及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
[問題設定]
多数の制御対象物が協調して、各制御対象物が接した状態を維持しつつ移動を行い、初期位置における隊列形成状態から目標位置への隊列変形を行う任務は、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型の制御対象物の使用を想定する。図2に示すように、壁で区切られた部屋(ただし図中、壁を省略する)においての初期位置から目標位置まで複数の制御対象物の移動によって実現するものである。
制御対象物については、例えば図1に示すように、制御対象物の周囲縦横高さ方向(以下「上下左右前後方向」ともいう)6マスのうち一つに他の制御対象物が存在している状態を維持しながら移動をするものとする。この手法では1つの制御対象物自身が、一台の制御対象物のサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、一つの面を共有する隣り合う制御対象物との相対的な位置を計測しあうことで、制御対象物の群れ全体の中での各制御対象物の位置も容易に知ることができる。このため、制御対象物の移動量の誤差によって、隊列が崩れるといった問題を起こしにくい。また、複数の制御対象物を連結したように、同時に複数の制御対象物を移動させていくことが可能である。なお、制御対象物は、隣の位置に他の制御対象物が存在しているか否か、障害物があるか否か、そして、自身が目標位置上にいるかどうかを知ることができるものとする。
任務を行う制御対象物は、p台(p≧32=8×4)であり、各制御対象物は、隣接する制御対象物と一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。図1の各立方体は、それぞれの制御対象物の位置を示すものである。各立方体には制御対象物は一台しか存在することができない。それぞれの制御対象物は、移動しようとする方向に障害物か他の制御対象物がある場合には、静止をするものと仮定する。なお、制御対象物が存在しうる立方体状の空間をマス、または、格子ともいう。図2において、濃い灰色のマスは制御対象物が存在する位置を示す。図2Aの制御対象物が存在する位置は制御対象物の初期位置の集合を示し、図2Cの制御対象物が存在する位置は制御対象物の目標位置の集合を示す。図2Bに示すように、目標位置の集合と初期位置の集合は接しているか、もしくは、重複する部位(共通部分)を持っている。目標位置の集合で表される領域を目標隊列エリアともいう。このように、各初期位置及び各目標位置は、それぞれ縦横高さ方向の少なくとも何れかの方向において他の初期位置及び目標位置と隣接し、制御対象物の初期位置及び目標位置での隊列形状はそれぞれ一塊の任意の形状である。
[制御対象物の座標設定]
それぞれの制御対象物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軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋(3次元空間)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
[制御対象物動作の定義]
また、行動主体は部屋に配置されている各制御対象物となる。制御対象物i(iは制御対象物番号)の行動aは、静止、縦横高さ方向への1格子分の移動、の計7種類のうちのいずれかを取る。例えば、a∈{0,1,2,3,4,5,6}として、
0: 静止
1: 三次元空間内でX軸正方向に1格子だけ移動する
2: 三次元空間内でY軸正方向に1格子だけ移動する
3: 三次元空間内でX軸負方向に1格子だけ移動する
4: 三次元空間内でY軸負方向に1格子だけ移動する
5: 三次元空間内でZ軸正方向に1格子だけ移動する
6: 三次元空間内でZ軸負方向に1格子だけ移動する
とする。
[探索計算上の問題点]
このような任務環境における状態空間は、制御対象物数×3の次元数の状態を持ち、かつ選択可能な行動数は、制御対象物の行動(=7通り)の制御対象物数乗だけ存在する。例えば、制御対象物数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらに制御対象物数が1台増えるごとに、その状態数は8000倍増加していくことになる。本実施形態の[問題設定]の項で説明したように、制御対象物同士が接しているという拘束条件を取り入れる場合、制御対象物のお互いの移動を考慮したうえで探索計算行わなければならないために、根本的な計算量の削減は難しく、複数制御対象物を使用する場合の大きな問題となっている。
[参考文献1、2における特徴]
参考文献1におけるヘテロジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の一つとして、ボイド制御の考え方を導入している。また、[問題設定]で述べたような隊列変形の問題を克服するために8マス制御対象物単位の考え方も導入している。
まず、ボイド制御について説明する。ここでいうボイドとは、図3に例示するように、ある制御対象物が別の位置に移動した後に、空いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、制御対象物の移動する方向と反対の方向に移動する仮想的な存在である。こうした群制御対象物の隊列形成問題においては、複数の制御対象物の動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数の制御対象物の動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。しかし、変形動作中に制御対象物単位に属する各制御対象物はちりじりになって、それぞれ別の制御対象物単位内に分かれてしまい、その後の制御対象物入れ替え動作の負荷上昇にもつながってしまっており、また、初期位置と目標位置の集合以外の空間を変形に要しないものの、変形所要時間が制御対象物数の2乗に比例するという変形の遅さが問題であった。その主たる原因は、各制御対象物の位置の入れ替え動作にかかる時間の長大さである。入れ替え動作を行う際に、制御対象物が密に組まれたロボット構造体内に、入れ替え動作に必要な空間を確保することが難しく、そのために、複数の組の制御対象物の入れ替え動作を並列して行い、入れ替え過程を高速化することが難しかった。
参考文献2においては、初期位置と目標位置の集合の共通部分が複数存在することを考慮して、ホモジニアス条件でのボイド制御による変形を実現している。ここでも同様に、制御対象物が密に組まれたロボット構造体内に、複数ボイドの同時移動に必要な空間を確保することが難しく、そのために、複数の制御対象物の移動を並列して行うことで変形過程を高速化することが難しかった。
〔参考文献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.
〔参考文献2〕H. Kawano, “Distributed Tunneling Reconfiguration of Sliding Cubic Modular Robots in Severe Space Requirements”, in Proc.14th Int. Symposium on Distributed Autonomous Robotic Systems, paper no. 1, Boulder, CO, Oct., 2018.
[4マス制御対象物単位の導入]
そこで、図4Aに示すように、4つの隣接した制御対象物を一つの単位とし(制御対象物単位)、制御対象物は、この制御対象物単位を維持しつつ移動を行うこととする。言い換えると、4台毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成する4台の制御対象物はそれぞれ3つの方向において1つの制御対象物単位を構成する他の制御対象物と隣接した状態を維持しつつ移動を行う。この制御対象物単位の集団は、互いに制御対象物単位ごとに一面を共有し、接しながら移動をするように制御される。同じ制御対象物単位に所属する4つの制御対象物も同一でなくヘテロジニアスであるとし、各制御対象物はそれぞれ固有の目標位置を持ち、隊列変形の前後で異なる制御対象物単位間を移動するものとする。
このような4つの制御対象物を一つの単位とした移動を行う理由は、各制御対象物単位の内部にある4つの空隙空間を、他の制御対象物単位に属する制御対象物が通過することが出来、それにより、異なる制御対象物単位内に属する制御対象物同士の行き来がすることが容易である点である。また、各制御対象物単位の内部にある4つの空隙空間を、他の制御対象物単位に属する制御対象物が通過する際の接続性の維持も容易である。すなわちこれは、隊列形態の維持を考量しなければならない各制御対象物の動作の決定において、制御対象物同士の接続を考慮するための計算負荷を軽減することにつながるからである。
ここでは4台の制御対象物がなす制御対象物単位が一つのマスの単位(本実施形態では、以下、この単位を「マス単位」または「位置単位」ともいう)であるとし、一つのマス単位を一状態として状態空間を組む。制御対象物単位の位置を(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]+1
Xr[i4] = 2 × Xr_u[j]
Yr[i4] = 2 × Yr_u[j]
Zr[i4] = 2 × Zr_u[j]
なお、各制御対象物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を4の倍数とする。
なお、図4Bのように、二つの制御対象物単位を合わせることで、8マスの制御対象物単位を構成することも可能であり、8マスの制御対象物単位で構成された制御対象物群の隊列制御も、4マス制御対象物単位の制御を行うことで可能となる。この二つの制御対象物単位を組み合わせたものを、合体制御対象物単位と呼ぶこともある。
また、図4の例に限らず、制御対象物単位は以下の条件を満たすよう構成されていればよい。すなわち、制御対象物単位は、(1)三次元の直交座標系で各軸方向に長さM(M≧2、ただし、制御対象物1個の長さを長さ1とする)を有する立方体形状の空間(以降この空間をメタモジュールとする。)内の部分構造であり(言い換えれば、制御対象物単位はメタモジュールの一部を占め)、(2)当該メタモジュール内の制御対象物単位に含まれる制御対象物の数と、当該メタモジュール内の制御対象物単位以外の部分(すなわち空隙)の数とが等しく、(3)各軸方向にM個の制御対象物が隣接する構造を含む。例えば、図4に例示する制御対象物単位は、(1)各軸方向の長さM=2とした計8マスの立方体からなるメタモジュールの部分構造であり、(2)制御対象物単位内の制御対象物の数が4個、メタモジュール内の空隙の数が4個と等しく、(3)各軸方向において2個の制御対象物が隣接する構造が含まれている。
以後の説明では、制御対象物単位の一例として、図4に示す4個の制御対象物からなる構造を制御対象物単位とする場合について説明するが、例えば、M個分の大きさのメタモジュール内で上述の(1)~(3)の条件を満たすよう構成された制御対象物単位であれば同様の効果を得ることができる。
[ヘテロジニアス隊列制御]
8マス制御対象物単位を構成する各制御対象物iからなる構造体を、初期位置の集合S内にて、各制御対象物が初期位置(Xr0[i],Yr0[i],Zr0[i])に存在する状態から、目標位置の集合G内の各目標位置(Xre[i],Yre[i],Zre[i])にある状態に変形させるヘテロジニアス制御対象物隊列制御の方法について以下説明していく。
集合S、Gは、4マスの制御対象物単位2つが合わさってできる8マスの制御対象物単位で構成されているものとする。4マス制御対象物単位数j_maxは偶数であり、一つの8マス制御対象物単位を構成する二つの4マス制御対象物単位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)の組が8マス単位を構成する。)。j2は図4Bでいうところのドットで表された4マス制御対象物単位である。j1の名称をLCMM、j2の名称をUCMMとする。j1を第二型制御対象物単位、j2を第一型制御対象物単位と呼ぶこともある。
このように、制御対象物単位には第一型制御対象物単位及び第二型制御対象物単位があり、第一型制御対象物単位及び第二型制御対象物単位のそれぞれはU個(Uは4以上の整数)の制御対象物から構成されており、各制御対象物には初期位置及び目標位置が定められており、初期位置及び目標位置にある制御対象物から構成される構造体は、第一型制御対象物単位及び第二型制御対象物単位が組み合わさることにより2U個の制御対象物で構成される合体制御対象物単位で構成されているとする。
変形の過程において、各ロボットの位置の入れ替えを行うための中間位置をMとする。
ここで、SからGへのロボットの変形は、以下の3つの過程に分けられる。
(1)SからMへのホモジニアス変形過程
(2)Mにおける各制御対象物の位置の入れ替え過程
(3)MからGへのホモジニアス変形過程
図5に示す通り、(1)と(3)の変形過程においては、タネリングと呼ばれる方法をとる。図5に示す動作においては、先頭の制御対象物単位Headと尾部の制御対象物単位Tailを結ぶ一連の制御対象物単位がいわば蛇のような形で、先頭制御対象物単位Headの動作を追従する方式で動作する。なお、他のタネリングを行う制御対象物単位、例えば非特許文献1に示すような伸長収縮制御対象物単位を使用した2×2×2の制御対象物単位を使用した制御対象物構造においてもこのタネリング動作は同様であり、本発明で示すタネリングのHeadとTailの選択方法は、同様に適用可能である。タネリングを使用した隊列変形には障害物のある環境においても、隊列変形動作を初期位置の集合と目標位置の集合以外の位置を使用せずに実行可能であるという利点がある。
過程(2)における制御対象物の入れ替え過程が行われるロボット中間位置Mは、4マスの制御対象物単位で構成される(8マスで構成されるS,Gと異なる点に注意)。4マスの制御対象物単位によるロボット構造を採用することで、各制御対象物単位内に、他の制御対象物単位に属する制御対象物が通過したり、各制御対象物が位置の入れ替えを行うための4マスの空間を確保することができる。M内の各制御対象物単位がこのような空間を保持することで、制御対象物の入れ替え動作を、各制御対象物単位内で同時並列に行うことが可能となり、入れ替え動作高速化が可能となるのである。
もう一つのMの形態に関する条件として、M内の各制御対象物単位をノード(頂点)とし、二つの接する制御対象物単位をつなげる二つの面をエッジ(枝)としたときになされるグラフにおいて、そのグラフがハミルトン閉路pHを持つことが必要である。これは、入れ替え動作のために入れ替え先の制御対象物の位置へ同時並列に移動を行う複数の制御対象物が、共通の閉路pHをたどることにより、互いに衝突を避けつつ、それぞれの入れ替え先の位置に到達することを可能とするためである。この方法では、各制御対象物がたどるべき経路を個々に最適化することは難しいものの、一方で実用上問題のない長さの経路を各制御対象物に与えつつも、同時に入れ替え移動を行う制御対象物数を総制御対象物数に近い数にまで高めることを簡単に実現することができる。別のアプローチとして、ハミルトン閉路pHを使わずに、同時に移動を行う各制御対象物単位のための経路を衝突回避を考慮しつつ経路探索により最適化計算するというアプローチもあるが、本発明のように、同時に入れ替えを行う制御対象物単位数を極限まで高めた場合、各移動制御対象物の移動経路を確保するために利用可能なスペースが少ないことから、経路探索ベースのアプローチで任意のロボット構造体の形状に対して満足な高速性をもって解をもたらす手法の実現はいまだ困難である(直方体形状のロボット構造に対してのみ限定解は報告されている。)ため、ハミルトン閉路pHを使用した本アプローチには実現性の面でメリットがある。
以上に述べたMの形態に関する条件から、(1)(3)の変形過程は、8マス制御対象物単位から構成されたS、Gと、4マス制御対象物で構成されたMとの間の変形過程となるため、8マス制御対象物単位でなされた構造物を4マスの制御対象物単位でなされた構造物に展開しつつのタネリング変形となる。当然、SとGの位置関係として、S∩G(SとGの共通部分)はO集合ではない場合がありえるので、その帰結として、S∩M(SとMの共通部分)、M∩G(MとGの共通部分)に含まれる制御対象物が複数存在することも〔参考文献2〕で行われたのと同様に考慮されなければならない。〔参考文献1〕と〔参考文献2〕で問題となっていた「密なロボット構造による制御対象物の同時移動の困難さからくる低速性」が、本発明では、4マスの制御対象物単位を使用した空隙の多い構造をMで採用することから解決可能となっている。
[中間位置Mの決定]
Mの形態に関する条件として、M内の各制御対象物単位をノード(頂点)とし、二つの接する制御対象物単位をつなげる二つの面をエッジ(枝)としたときになされるグラフにおいて、そのグラフがハミルトン閉路pHを持つ(ここでは「Mがハミルトングラフ形状である」という。)ことが必要であるが、グラフ理論研究の現状において、任意のグラフが与えられたときにそのグラフがハミルトン閉路を持つかどうか一般的に判定する手法は確立されていないので、例えばS+Gがハミルトングラフ形状かどうかは簡単に判定はできない。そこで、Mがとるべき幾何学的条件を満たすハミルトングラフを一から生成することを考える。
その手法について簡単に述べる。まず、小さなハミルトングラフ形状のロボット構造として、4つの制御対象物単位を正方形状に並べた構造M0を考える。M0は図6に示す通り、明らかに正方形の四辺を一周する形のハミルトン閉路を持っている。ここで、ハミルトン閉路上の隣り合う2頂点(例えば、二つの隣り合う制御対象物単位1,2)を選択し、その二つの制御対象物単位に接する位置にあり、M0内の制御対象物と重ならない位置にある二つの制御対象物a,bをM0に追加し、制御対象物単位1とa、aとb、bと2をそれぞれ接続するエッジを追加したものをM1とする。すると、M1はハミルトン閉路1→a→b→2→3→4→1をもつハミルトングラフ形状の構造となる。このような2つの制御対象物の追加をML(L=0,1,2,3,,,)に繰り返すことで、MLを成長させていき、最終的にM(jmax-4)/2が生成されたとき、M(jmax-4)/2に含まれる制御対象物単位の数はjmax個となり、M(jmax-4)/2はMとして必要な条件を満たす。ここで、ロボットが変形を行う空間内の障害物の位置やS、Gの形状を考慮して、M0の設定とそのあとの繰り返しの二つの制御対象物のMLへの追加を行えば、ロボットが変形を行う空間のいろいろな幾何学的条件を考慮してMの形状を決定することができる。例えば、以下のような処理でMが決定できる。
[M_Decision]
(1)S+G内に収まるM0を選ぶ。
(2)以下(3)~(4)を、繰り返す。
(3)MLに含まれる制御対象物単位をML内のハミルトン閉路がたどる順に0,1,2,3、…(4-1)+L×2の番号を付ける。
(4)隣り合う番号(k番目、k+1番目。k=(4-1)+L×2の時は、(4-1)+L×2番目と0番目)の制御対象物単位二つを若い順に選び、選ぶたびにそれら二つの制御対象物単位両方に接する位置にあって、かつS+G内にありML内にない、新しい二つの制御対象物単位位置があった場合は、その二つの新しい制御対象物単位位置(a,bとする)をMLに追加し、ML+1のハミルトン閉路を、0,1,…,k,a,b,k+1,…,(4-1)+L×2とする。ML+1に含まれる制御対象物単位位置がjmax個になっていない場合は(3)に戻る。ML+1に含まれる制御対象物単位位置がjmax個になった場合は終了。ML内のハミルトン閉路にてすべての隣り合う制御対象物の組に対して、追加可能なS+G内にありML内にない制御対象物位置が存在しなくなった場合は(5)へ。
(5)以下(6)~(7)を、繰り返す。
(6)MLに含まれる制御対象物単位をML内のハミルトン閉路がたどる順に0,1,2,3,…,(4-1)+L×2の番号を付ける。k=0とする。
(7)隣り合う番号(k番目、k+1番目。k=(4-1)+L×2の時は、(4-1)+L×2番目と0番目)の制御対象物単位二つを若い順に選び、それら二つの制御対象物単位両方に接する位置にあって、かつ、少なくとも一つがS+G内にあり、かつ両方がML内になく、かつ障害物位置に重ならない新しい二つの制御対象物単位位置があった場合は、その二つの新しい制御対象物単位位置(a,bとする)をMLに追加し、ML+1のハミルトン閉路を、0,1,…,k,a,b,k+1,…,(4-1)+L×2とする。ML+1に含まれる制御対象物単位位置がjmax個になっていない場合は(6)に戻る。ML+1に含まれる制御対象物単位位置がjmax個になった場合は終了。ML内のハミルトン閉路にてすべての隣り合う制御対象物の組に対して、追加可能な制御対象物位置が存在しなくなった場合は(8)へ。
(8)以下(9)~(10)を、繰り返す。
(9)MLに含まれる制御対象物単位をML内のハミルトン閉路がたどる順に0,1,2,3,…,4-1)+L×2の番号を付ける。k=0とする。
(10)隣り合う番号(k番目、k+1番目。k=(4-1)+L×2の時は、(4-1)+L×2番目と0番目)の制御対象物単位二つを若い順に選び、それら二つの制御対象物単位両方に接する位置にあって、両方がML内になく、かつ障害物位置に重ならない新しい二つの制御対象物単位位置があった場合は、その二つの新しい制御対象物単位位置(a,bとする)をMLに追加し、ML+1のハミルトン閉路を、0,1,…,k,a,b,k+1,…,(4-1)+L×2とする。ML+1に含まれる制御対象物単位位置がjmax個になっていない場合は(6)に戻る。ML+1に含まれる制御対象物単位位置がjmax個になった場合は終了。ML内のハミルトン閉路にてすべての隣り合う制御対象物の組に対して、追加可能な制御対象物位置が存在しなくなった場合は(11)へ。
(11)これまで選んだのとは別のM0をS+G内に選びなおす。S+G内に見つからなければ、一部がS+G内にあり、障害物に重ならない位置にあるM0を選んで(2)に戻る。
[M_Decision]によって選ばれたM内のハミルトン閉路の各頂点(制御対象物単位)位置を(Hamilton_X[k], Hamilton_Y[k], Hamilton_Z[k]) (k=0,1,2,…jmax-1)とする。
[S→Mの変形過程]
本変形過程は、大きく二つの過程に分けられる(図7、図8)。
図7及び図8において、初期位置Sを太線で示し、S∩Mの位置にあるLCMMを横線のマスで示し、S∩Mの位置にあるUCMMを太い斜線のマスで示し、S-S∩Mの位置にあるLCMMを市松模様のマスで示し、S-S∩Mの位置にあるUCMMを細い斜線のマスで示し、M-S∩Mの位置にある制御対象物単位をドットのマスで示す。なお、合体制御対象物単位の位置を示す4マスの中の、左上、左下、右下の3マスはLCMMを示し、右上の1マスはUCMMを示す。
(1)S内のすべてのUCMMをタネリング変形により、M-S内に移動してM-S内LCMMとする。より詳細には、初期位置Sにある各第一型制御対象物単位を例えばタネリング変形によりM-S∩Mに移動させる。タネリングの際のHeadとTailの選定においては、SとMの共通部分の存在を考慮する必要はない。
(2)(1)の過程で出来た4マス制御対象物単位によるロボット構造をS’とし、S’内のLCMMをタネリング変形により移動させることでS’からMへの変形を行う。より詳細には、S’内のS-S∩Mにある各第二制御対象物単位をタネリング変形によりM-S∩Mに移動させる。タネリングの際のHeadとTailの選定方法は〔参考文献2〕に準ずる。
先に述べたように、本過程では、S’∩Mが0集合ではなく、かつ複数の非接続な領域に分かれている場合について〔参考文献2〕のように考慮をしなければならないが、過程(1)では、移動を行うのはUCMMのみで、LCMMは一切移動をしない。そのためS’∩Mが0集合であろうがなかろうが、変形過程中にS内のLCMM制御対象物同士の接続が失われることはない(移動しないLCMMによって接続が保持されるため)。そのため、〔参考文献2〕で扱われているような特段の考慮は過程(1)では必要なく、単純にM-S’に近い位置にあるS内のUCMMを優先的にタネリングHeadとして選択する(非特許文献1に近い)タネリング変形方法によって、UCMMをM-S’内に移動させて良い。しかし、過程(2)においては事情が異なり、S’内のLCMMがM内に移動するにつれ、S’内の制御対象物が失われていき、それらの接続が失われることで、複数の非接続な領域に分かれているS’∩M同士の接続が失われるリスクが生じるので、そのリスクについて十分に考慮された例えば〔参考文献2〕の手法を使用しなければならない。非特許文献1は、S’∩Mに含まれる制御対象物単位が一つのみの時にのみ使用可能であり、一般的なS’∩Mの条件に対応していない。
〔参考文献2〕のタネリング手法について、先頭制御対象物単位Headと尾部制御対象物単位Tailの選び方について簡単に振り返る。まず、集合S’と集合Mの共通部分CがNcommon個の部分に分かれているとし、それぞれの部分を共通部分C[1],C[2],C[3],…,C[Ncommon]とする。共通部分の位置を、共通位置と呼ぶこともある。
まず、先頭制御対象物単位Headの選択について注意すべきことは、変形動作中に全体の制御対象物構造からこれらのNcommon個のうちのいずれも、制御対象物構造から非接続にならないようにすることである。例えば、S’内の制御対象物単位を徐々にM内に移動させたとするとその分S’内に残る制御対象物単位数は少なくなる。この過程で注意を怠ると、共通部分S’∩Mが制御対象物構造から非接続とならないようにするために使用できる制御対象物がS’内にもM内にも存在しないという事態が起こりうる。例えば、非特許文献1では、Headの位置から最も離れた位置(マンハッタン距離の大きい位置)にあるTailをS’内から選ぶのだが、その際S’∩M内にある位置からTailを選んでしまうと、一度M内に入った制御対象物単位をTailとしてまた移動させてしまう可能性があり、そこをうまくケアしないと無限のHeadとTail選択のループに陥ってしまう。また、一度埋まったM内の制御対象物単位をまた取り払うことで、非特許文献1で想定していないような非接続が生じる可能性もある。それらを避ける方法として〔参考文献2〕では、C[l]のうち一つを変形開始前に選択し、仮想共通部Upに、選択したC[l]内の位置をすべて登録する。そして、HeadはUp内から、TailはS’内のUp外から選択するようにする。タネリングが1ステップ行われるごとに新たに埋められたM’内の位置をUpに追加していく。これを繰り返し、Upが拡大成長する過程にて、Upにまだ登録されていないC[l]の制御対象物と新たに接した際、UpにS’∩M内で接している制御対象物位置をUpに追加していく。この過程を続けることで、仮想的に非特許文献1で想定しているS’∩Mが一つの制御対象物しか含まない状況と同じ状況を作り出すことができ、変形過程中のデッドロックや非接続の発生を防ぐことができる(図9)。
S→Mの変形過程の詳細は以下のとおりである。
[S→Mの変形過程]
(1)仮想ロボットで[S→S’_UCMM_Navigation]を実行する。
(2)仮想ロボットで[S’→M_LCMM_Navigation]を実行する。
(3)[Linearization_S_M]を実行する。
[S→S’_UCMM_Navigation](過程(1))
(1) M内かS内の制御対象物から、まだ制御対象物で埋まっていないM内の位置に接している制御対象物の位置を一つ選び、Eとする。そうしたEがないなら終了。
(2) EにUCMMがあるならそれをEに接するM内の空隙位置に移動させ、M内LCMMとする。
(3) Eから最も近いマンハッタン距離にあるS内UCMMをEの位置まで移動させる。移動経路は、1移動ステップごとにEからのマンハッタン距離が1だけ縮まるような経路をとる。
(4) Eの位置にたどり着いたUCMMを、M内のまだ埋まってなく、かつEから最もM内マンハッタン距離の近い位置を目標位置Dとして、その目標位置Dに移動させる。DからEまでマンハッタン距離をひとつずつ小さくするように各位置をたどる経路を生成し、それを逆にEからDにたどる形で、UCMMをDまで移動させる。UCMMをDまで移動させた後に、「Eを入口として経由してM-S内に入りM内に移動済みの制御対象物単位をたどることでたどり着けるM内の空隙」がまだ残っているなら(3)に戻る。残っていないなら(1)に戻る。
[S’→M_LCMM_Navigation](過程(2))
(1)C[0](複数の非接続な領域に分かれたS’∩Mの一つ)内の全ての位置をUpに登録する。Up内の制御対象物から、まだ制御対象物で埋まっていないM内の位置に接している制御対象物の位置を一つ選び、Eとする。そうしたEがないなら終了。
(2) Eから最も遠いマンハッタン距離にあるUpの外のS’内LCMMをTailとして選びEの位置まで移動させる。移動経路は、1移動ステップごとにEからのマンハッタン距離が1だけ縮まるような経路をとる。
(3) Eの位置にたどり着いたLCMMを、M内のまだ埋まってなく、かつEから最もM内マンハッタン距離の近い位置を目標位置Dとして、その目標位置Dに移動させる。DからEまでマンハッタン距離をひとつずつ小さくするように各位置をたどる経路を生成し、それを逆にEからDにたどる形で、LCMMをDまで移動させる。LCMMをDまで移動させた後にUpにDの位置を登録し、またUpにまだ登録されていないS’∩M内の制御対象物と新たに接した際、現時点でUpにS’∩M内で接続している制御対象物の位置をUpに追加する。その後、「Eを入口として経由してM-S’内に入りM内に移動済みの制御対象物単位をたどることでたどり着けるM内の空隙」がまだ残っているなら(2)に戻る。残っていないなら(1)に戻る。
[S→S’_UCMM_Navigation] [S’→M_LCMM_Navigation]で計算された変形過程では、移動を行う制御対象物単位が一つずつ移動を開始し、目的位置到達して移動を終了する方式をとっており、制御対象物単位の移動は並列では行われない。しかし、それぞれの移動制御対象物単位の移動開始時刻の間隔を十分な定数値にとれば、各移動制御対象物間の間隔を一定の距離以上で維持することができ、衝突を避けることができる。すなわち、[S→S’_UCMM_Navigation] [S’→M_LCMM_Navigation]で計算された各制御対象物単位jの各ステップ(1制御対象物単位分の距離を移動する動作を一ステップと呼ぶことにする。)での動作の開始を、一つ前に移動を開始した制御対象物単位j’が、数ステップ先での動作を完了した後におこなうようにすることで、簡単に制御対象物単位の移動を並列化してもよい。ただし、[S’->M_LCMM_Navigation]の(1)において、Eが新しく決定されるときと、(3)における「Upにまだ登録されていないS’∩M内の制御対象物と新たに接した際、現時点でUpにS’∩M内で接している制御対象物の位置をUpに追加する。」が実行されたときは、jはj’が目的位置につくまで動作を開始しないことにする(これを以下、CASE_NO_TIME_CHANGEとする。)。これらの処理の詳細は以下の通りである。
その処理の詳細は以下の通りである。
[Linearization_S_M]
(1)各移動制御対象物の動作開始時刻を0にリセットする。t_interval_S_S’ = 1, t_interval_S’_M = 2とする。
(2)i=2とする。(3)をiをインクリメントしながらi=jmax/2まで繰り返す。
(3)[S→S’_UCMM_Navigation]にてi番目に移動を開始する制御対象物単位について、i-1番目に移動を開始する制御対象物単位が、 kステップ目の動作(k=1,2,3、k_last[i-1])を完了する時刻をend_time[k][i-1]としたとき、i番目に移動を開始する制御対象物単位のkステップ目の動作の開始時刻がk<= k_last[i-1] - t_interval_S_S’の時は、end_time[k+t_interval_S_S’][i-1]より早くならない値に調整する。k>k_last[i-1] - t_interval_S_S’の際は、kステップ目の動作の開始時刻が、end_time[k_last[i-1]][i-1]より早くならない値に調整する。これを、k=1からk_last[i]まで繰り返す。
(4)i=2とする。(5)をiをインクリメントしながらi=jmax/2まで繰り返す。
(5)[S’→M_LCMM_Navigation]にてi番目に移動を開始する制御対象物単位について、i-1番目に移動を開始する制御対象物単位が、 kステップ目の動作(k=1,2,3,k_last[i-1])を完了する時刻をend_time[k][i-1]としたとき、i番目に移動を開始する制御対象物単位のkステップ目の動作の開始時刻がk<= k_last[i-1] - t_interval_S’_Mの時は、end_time[k+t_interval_S’_M][i-1]より早くならない値に調整する。k>k_last[i-1] - t_interval_S’_Mの際は、kステップ目の動作の開始時刻が、end_time[k_last[i-1]][i-1]より早くならない値に調整する。i-1番目に移動を開始する制御対象物単位の移動においてCASE_NO_TIME_CHANGEが発生した場合、i-1番目に移動を開始する制御対象物単位の移動が終了した時刻を、i番目に移動を開始する制御対象物単位の移開始時刻とする。これを、k=1からk_last[i]まで繰り返す。
[中間位置Mにおける位置入れ替え過程]
Mにおける位置入れ替え過程は、以下のように行われる。Mのハミルトン閉路pHにおいてj番目の位置にある制御対象物単位をjと番号付けすることとする。Mにおける各制御対象物iの目標位置をtarget[i]とする。j内の制御対象物をi1[j],i2[j],i3[j],i4[j]とする( Rr[i1[j]]= Rr[i2[j]]= Rr[i3[j]]= Rr[i4[j]]=j)。
制御対象物単位jは、まずpHにおける隣の位置にある制御対象物単位j+1内の4つの空隙部分に移動する。その後、制御対象物単位jは、pHにおける次の位置にある制御対象物単位内の空隙に一ステップずつ移動していき、pHにおける隣接位置にある制御対象物単位内に制御対象物単位j内の制御対象物の目標位置がある場合には、その都度入れ替えを行う。それを制御対象物単位jが元の位置に戻るまで繰り返す。
[Permutation_M]
(1)j=1とする。
(2)k=1とする。j+k>jmaxのとき、k -= jmaxとする。Mを構成する4マスの制御対象物単位jが、図10から図15に示す動作でMのハミルトン閉路pHにおいてjの次の位置にある制御対象物単位j+kの位置の4マスの空隙内に入る。
(3)pHのj+k+1番目の位置に制御対象物があり、制御対象物単位j+k+1内に、j内の制御対象物iX[j] (X=1,2,3,4)のいずれかの目標位置target[iX[j]]がある場合、制御対象物iX[j]と目標位置target[iX[j]]にある制御対象物との入れ替えを行う。入れ替え処理の詳細は後述の[Exchange]を参照。入れ替え後、制御対象物単位j+k+1内に、j内の制御対象物iX[j] (X=1,2,3,4)のいずれかの目標位置target[iX[j]]があるか判定し、ある場合はなくなるまで入れ替え処理を繰り返し行う。
(4)k=2(もしくは、(2)(5)にてk -= jmaxを実行した場合は k=2-jmax)のとき、制御対象物単位j+k-1内に、j内の制御対象物iX[j] (X=1,2,3,4)のいずれかの目標位置target[iX[j]]がある場合、制御対象物iX[j]と目標位置target[iX[j]]にある制御対象物との入れ替えを行う。入れ替え処理の詳細は後述の[Exchange]を参照。入れ替え後、制御対象物単位j+k-1内に、j内の制御対象物iX[j] (X=1,2,3,4)のいずれかの目標位置target[iX[j]]があるか判定し、ある場合はなくなるまで入れ替え処理を繰り返し行う。
(5)pHのj+k+1番目の位置に制御対象物があるとき、制御対象物単位j+k+1に、図16の動作で移動し、kをインクリメントし、j+k>jmaxのとき、k -= jmaxとする。(3)に戻る。pHのj+k+1番目の位置に制御対象物がないとき(制御対象物単位jが一周して元の位置に戻る一つ前の位置に今あるとき)、[Inner_Exchage]により、制御対象物単位j内の制御対象物のうち、制御対象物単位j内に目標位置を持つが、このまま図10から図15の逆動作で制御対象物単位jをLCMMの状態に戻すと、適切なj内の目標位置に置かれなくなる制御対象物がある場合、そのようなj内制御対象物をすべてj内で位置の入れ替えを行う。その後、pHのj+k+1番目の位置に、図10から図15の逆動作で移動してjをインクリメントし(2)に戻る。
図10から図15、図16に示すのは、制御対象物単位jがpH上を一周する際にとる動作である。図16の動作で、制御対象物単位jが同じ方向に2ステップ動作を繰り返すと、j内の制御対象物の配置は2ステップ動作の前の状態と同一となる。また、a=1とa=3の1ステップ動作後(左右動作)のj内の制御対象物の配置は同一となる。a=2とa=4の1ステップ動作後(手前奥動作)のj内の制御対象物の配置は同一となる。a=5とa=6の1ステップ動作後(上下動作)のj内の制御対象物の配置は同一となる。そのため、制御対象物単位jが図16の動作だけ使ってpHを一周回って元の位置に戻ったとすれば、j内の制御対象物の配置は、pHを回る動作を行う前の状態と同一である。
図10から図15に示す動作では、例えば、図10の動作でa=1の方向に制御対象物単位jが移動したときと、図12の動作でa=3の方向に制御対象物jが移動したとき、その後のj内の制御対象物単位の配置は同一である。これは、aの値の組が2と4、5と6の場合でも変わらない。すなわち、制御対象物jが、図10から図15の動作でpH内の周回移動を開始し、図16の動作を繰り返して、元の位置に戻る一つ前の位置まで移動し、最後に図10から図16の逆動作にて、制御対象物jが元の位置に戻る場合、jがpHにおける周回移動をする前と後では、j内の制御対象物の配置は同一である。
[Exchange]においては、制御対象物単位jと入れ替え対象の制御対象物単位j’がどの位置関係にあるかで、入れ替え動作が変わってくる。
j→j’の向きが、a=1, 2, 5の場合、まず、制御対象物単位j内の図17から図19での8の位置にj内の入れ替え対象の制御対象物iを図17から図19の動作で移動させ、その後j’内のtarget[i]の位置にある制御対象物i’と制御対象物iの入れ替えを行う。制御対象物i’の位置が図20から図25中の4の場合は、制御対象物j’のpH上の次の位置にある制御対象物j’’がj’から見てどの方向にあるかで入れ替え動作が異なる(pH内では、制御対象物単位がj、j’、j’’の順に並んでいる。)。例えば、j→j’がa=1方向で、j’→j’’がa=1,2,5方向の時は図20、j’→j’’がa=4方向の時は図21、j’→j’’がa=6方向の時は図22である。制御対象物i’の位置が図20から図25中の1,2,3の場合は入れ替え動作は図23から図25である。
j→j’の向きが、a=3, 4, 6の場合、まず、制御対象物単位j内の図26から図28での7の位置にj内の入れ替え対象の制御対象物iを図26から図28の動作で移動させ、その後j’内のtarget[i]の位置にある制御対象物i’と制御対象物iの入れ替えを行う。制御対象物i’の位置が図29から図35中の4の場合は制御対象物j’のpH上の次の位置にある制御対象物j’’がj’から見てどの方向にあるかで入れ替え動作が異なる。例えば、j→j’がa=3方向で、j’→j’’がa=3方向の時は図30、j’→j’’がa=4方向の時は図31、j’→j’’がa=6方向の時は図32、j’→j’’がa=2,5方向の時は図29である。制御対象物i’の位置が図29から図35中の1,2,3の場合は入れ替え動作は、それぞれ図33,34,35である。
以上に述べた場合分けが必要な理由は図20から図25、図29から図35でいうところの4の位置にある制御対象物がa=3,4,6の方向の隣り合う位置にある制御対象物単位との接続のj’内での唯一の接続面を有していることにある。すなわち、4の位置にある制御対象物と接するj’’内の制御対象物がどの方向にあるかで、これらの接続を維持するための動作が異なるからである。また、制御対象物同士の接続において、ここで述べたj、j’、j’’間の接続だけを注意すればいい理由は、Mがハミルトン閉路pHを持つことに起因している。すなわち、閉路pH内で隣り合う各制御対象物単位間での接続さえ維持できれば、M全体の接続が維持可能なのである。
[Exchange(j, j’, j’’)]
(1)制御対象物単位j内の制御対象物iのうち、制御対象物単位j’内に目標位置target[i]を持つものが存在するなら(2)へ、ないなら終了。
(2)j→j’の方向がa=1,2,5なら(3)へ、a=3,4,6なら(6)へ。
(3)制御対象物iの図17から図19での位置が8以外ならば、図17から図19に示す動作で、制御対象物iを8の位置に移動させる。
(4)制御対象物単位j’内の目標位置target[i]の位置が1,2,3ならば、図23から図25の動作で入れ替え。4ならば、j’→j’’の方向に応じて図20、図21及び図22の動作で入れ替え動作を行う。
(5)(3)で行った動作を繰り返し実行し、終了する。
(6)制御対象物iの図26から図28での位置が7以外ならば、図26から図28に示す動作で、制御対象物iを7の位置に移動させる。
(7)制御対象物単位j’内の目標位置target[i]の位置が1,2,3ならば、図33から図35の動作で入れ替え。4ならば、j’→j’’の方向に応じて図29、図30、図31、図32の動作で入れ替え動作を行う。
(8)(3)で行った動作を繰り返し実行し、終了する。
[Inner_Exchange]が必要な理由は、Exchangeを実行した結果、新たに制御対象物j内に入ってきた制御対象物i’の目標位置がj内にある場合の処置である。Exchangeを実行しただけでは、i’はj内にはあるもののj内の正しい位置にあるとは限らない。その場合に、正しいj内位置にi’を移動させるのが[Inner_Exchange]の役割である。[Inner_Exchange]は、Mでの位置入れ替え過程が始まる前の段階で、複数のj内の制御対象物の目標位置がj内にある場合(すなわちj内での位置入れ替えが必要な場合)のことも考慮して具備されている。[Inner_Exchange]の処理のために、各制御対象物内の制御対象物は、それぞれがpH内周回移動を始める前に図20から図25、図29から図35でいうところの1,2,3,4のどの内部配置にいるかを記憶している。その変数をOri[i]とする。Exchange実行時に、制御対象物iからi‘にOri[i]の情報は受け渡されているものとする。
[Inner_Exchange(j,j’)]
(1)制御対象物j内に目標位置を持つ制御対象物のうち、Ori[i]とtarget[i]の示すj内位置が異なる制御対象物iがある場合、k=1,2,3,4の全てについて(2)以下を実行
(2)target[i]の示す位置がj内kの位置でOri[i]!=kのとき、iのj内現在位置が図17から図19でのpi(=5,6,7,8)だとして、j内のOri[ix]=kとなる制御対象物ixのj内現在位置が図17から図19でのpix(=5,6,7,8)だとしたとき、
(2-1)j→j’の向きがa=1,2,5のとき
(2-1-1)図17から図19に示す8の位置の制御対象物とpiの位置にある制御対象物との入れ替えを行う。
(2-1-2)図17から図19に示す8の位置の制御対象物(今は制御対象物iがある)とpixの位置にある制御対象物との入れ替えを行う。
(2-1-3)図17から図19に示す8の位置の制御対象物(今は制御対象物ixがある)とpiの位置にある制御対象物((2-1-1)実行前に8にあった制御対象物)との入れ替えを行う。
(2-1-4)pi , pixを更新。
(2-2)j→j’の向きがa=3,4,6のとき
(2-2-1)図26から図28に示す7の位置の制御対象物とpiの位置にある制御対象物との入れ替えを行う。
(2-2-2)図26から図28に示す7の位置の制御対象物(今は制御対象物iがある)とpixの位置にある制御対象物との入れ替えを行う。
(2-2-3)図26から図28に示す7の位置の制御対象物(今は制御対象物ixがある)とpiの位置にある制御対象物((2-2-1)実行前に7にあった制御対象物)との入れ替えを行う。
(2-2-4)pi , pixを更新。
以上に述べた位置入れ替え過程では、移動を行う制御対象物単位が一つずつ移動を開始し、pHを一周回って返ってきて移動を終了する方式をとっており、制御対象物単位の移動は並列では行われない。しかし、S→Mの変形過程と同様に、それぞれの移動制御対象物単位の移動開始時刻の間隔を十分な定数値にとれば、各移動制御対象物間の間隔を一定の距離以上で維持することができ、衝突を避けることができる。すなわち、各制御対象物単位jの各ステップ(1制御対象物単位分の距離を移動する動作を一ステップと呼ぶことにする。)での動作の開始を、一つ前に移動を開始した制御対象物単位j’が、数ステップ先での動作を完了した後におこなうようにすることで、簡単に制御対象物単位の移動を並列化できる。その処理の詳細は以下の通りである。
[Linearization_Permutation]
(1)各移動制御対象物の動作開始時刻を0にリセットする。t_interval_M = 2とする。
(2)i=2とする。(3)をiをインクリメントしながらi=jmaxまで繰り返す。
(3)[Permutation_M]にてi番目に移動を開始する制御対象物単位について、i-1番目に移動を開始する制御対象物単位が、 kステップ目の動作(k=1,2,3,k_last[i-1])を完了する時刻をend_time[k][i-1]としたとき、i番目に移動を開始する制御対象物単位のkステップ目の動作の開始時刻がk<= k_last[i-1] - t_interval_Mの時は、end_time[k+t_interval_M][i-1]より早くならない値に調整する。k>k_last[i-1] - t_interval_Mの際は、kステップ目の動作の開始時刻が、end_time[k_last[i-1]][i-1]より早くならない値に調整する。これを、k=1からk_last[i]まで繰り返す。
[M→Gの変形過程]
本変形過程は、[S→Mの変形過程において]SをGに入れ替えたものを、時間的に逆再生することで得られる。
[G→Mの変形過程]
(1)仮想ロボットで[G→G’_UCMM_Navigation]を実行する。
(2)仮想ロボットで[G’→M_LCMM_Navigation]を実行する(G’は(1)の結果生成された制御対象物がなす形態)。
(3)[Linearization_G_M]を実行する。
[G→G’_UCMM_Navigation](過程(1))
(1) M内かG内の制御対象物から、まだ制御対象物で埋まっていないM内の位置に接している制御対象物の位置を一つ選び、Eとする。そうしたEがないなら終了。
(2) EにUCMMがあるなら、それをEに接するM内の空隙位置に移動させ、M内LCMMとする。
(3) Eから最も近いマンハッタン距離にあるG内UCMMをEの位置まで移動させる。移動経路は、1移動ステップごとにEからのマンハッタン距離が1だけ縮まるような経路をとる。
(4) Eの位置にたどり着いたUCMMを、M内のまだ埋まってなく、かつEから最もM内マンハッタン距離の近い位置を目標位置Dとして、その目標位置Dに移動させる。DからEまでマンハッタン距離をひとつずつ小さくするように各位置をたどる経路を生成し、それを逆にEからDにたどる形で、UCMMをDまで移動させる。UCMMをDまで移動させた後に、「Eを入口として経由してM-G内に入りM内に移動済みの制御対象物単位をたどることでたどり着けるM内の空隙」がまだ残っているなら(3)に戻る。残っていないなら(1)に戻る。
[G’→M_LCMM_Navigation](過程(2))
(1)C[0](複数の非接続な領域に分かれたG’∩Mの一つ)内の全ての位置をUpに登録する。Up内の制御対象物から、まだ制御対象物で埋まっていないM内の位置に接している制御対象物の位置を一つ選び、Eとする。そうしたEがないなら終了。
(2) Eから最も遠いマンハッタン距離にあるUpの外のG‘内LCMMをTailとして選びEの位置まで移動させる。移動経路は、1移動ステップごとにEからのマンハッタン距離が1だけ縮まるような経路をとる。
(3) Eの位置にたどり着いたLCMMを、M内のまだ埋まってなく、かつEから最もM内マンハッタン距離の近い位置を目標位置Dとして、その目標位置Dに移動させる。DからEまでマンハッタン距離をひとつずつ小さくするように各位置をたどる経路を生成し、それを逆にEからDにたどる形で、LCMMをDまで移動させる。LCMMをDまで移動させた後にUpにDの位置を登録し、またUpにまだ登録されていないG’∩M内の制御対象物と新たに接した際、現時点でUpにG’∩M内で接している制御対象物の位置をUpに追加する。その後、「Eを入口として経由してM-G‘内に入りM内に移動済みの制御対象物単位をたどることでたどり着けるM内の空隙」がまだ残っているなら(2)に戻る。残っていないなら(1)に戻る。
[Linearization_G_M]
(1)各移動制御対象物の動作開始時刻を0にリセットする。t_interval_G_G’ = 1, t_interval_G’_M = 2とする。
(2)i=2とする。(3)をiをインクリメントしながらi=jmax/2まで繰り返す。
(3)[G→G’_UCMM_Navigation]にてi番目に移動を開始する制御対象物単位について、i-1番目に移動を開始する制御対象物単位が、 kステップ目の動作(k=1,2,3,k_last[i-1])を完了する時刻をend_time[k][i-1]としたとき、i番目に移動を開始する制御対象物単位のkステップ目の動作の開始時刻がk<= k_last[i-1] - t_interval_G_G’の時は、end_time[k+t_interval_G_G’][i-1]より早くならない値に調整する。k>k_last[i-1] - t_interval_G_G’の際は、kステップ目の動作の開始時刻が、end_time[k_last[i-1]][i-1]より早くならない値に調整する。これを、k=1からk_last[i]まで繰り返す。
(4)i=2とする。(5)をiをインクリメントしながらi=jmax/2まで繰り返す。
(5)[G’→M_LCMM_Navigation]にてi番目に移動を開始する制御対象物単位について、i-1番目に移動を開始する制御対象物単位が、 kステップ目の動作(k=1,2,3,k_last[i-1])を完了する時刻をend_time[k][i-1]としたとき、i番目に移動を開始する制御対象物単位のkステップ目の動作の開始時刻がk<= k_last[i-1] - t_interval_G’_Mの時は、end_time[k+t_interval_G’_M][i-1]より早くならない値に調整する。k>k_last[i-1] - t_interval_G’_Mの際は、kステップ目の動作の開始時刻が、end_time[k_last[i-1]][i-1]より早くならない値に調整する。i-1番目に移動を開始する制御対象物単位の移動においてCASE_NO_TIME_CHANGEが発生した場合、i-1番目に移動を開始する制御対象物単位の移動が終了した時刻を、i番目に移動を開始する制御対象物単位の移開始時刻とする。これを、k=1からk_last[i]まで繰り返す。
[全体変形過程]
以上に述べた過程を組み合わせることにより、全体のヘテロジニアス変形過程が完成する。
[All_Transformation]
(1) [S→Mの変形過程]で計算された動作履歴に従い制御対象物を移動させる。この処理は、後述する第一移動計画部1、第一移動部2により行われる。
(2) [G→Mの変形過程]を実行する。この処理は、第二移動計画部3により行われる。
(3) [G→Mの変形過程]で計算された動作履歴を経た制御対象物の位置を [Permutation_M]における各制御対象物の入れ替え先位置として、[Permutation_M]を実行する。この処理は、後述する中間位置入替部4により行われる。
(4) [G→Mの変形過程]で計算された動作履歴を逆再生させた動作に従い制御対象物を移動させる。この処理は、後述する第二移動部5により行われる。
[実施形態]
以下、本発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。まず、制御装置及び方法の実施形態について説明する。
[制御装置及び方法]
制御装置は、図36に示すように、第一移動計画部1、第一移動部2、第二移動計画部3、中間位置入替部4及び第二移動部5を例えば備えている。
制御方法は、制御装置の各構成部が、以下に説明する及び図37に示すステップS1からステップS5の処理を行うことにより例えば実現される。
以下、制御装置の各構成部について説明する。
<第一移動計画部1>
第一移動計画部1は、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させるための第一移動計画を作成する(ステップS1)。作成された第一移動計画は、第一移動部2に出力される。
例えば、第一移動計画部1は、先に説明した[S→Mの変形過程]の処理を行うことにより、第一移動計画を作成する。
より詳細には、第一移動計画部1は、先に説明した[S→S’_UCMM_Navigation] [S’→M_LCMM_Navigation]の処理を行うことにより、第一移動計画を作成する。
つまり、第一移動計画部1は、初期位置Sにある各第一型制御対象物単位をM-S∩Mに移動させ、S-S∩Mにある各第二制御対象物単位をM-S∩Mに移動させるための計画を第一移動計画として作成する。
必要に応じて、第一移動計画部1は、先に説明した[Linearization_S_M]の処理を行うことにより、作成された第一移動計画を、制御対象物単位の移動が並列に行われるように、作成し直す。[Linearization_S_M]の処理が行われる場合には、作成し直された第一移動計画が、第一移動部2に出力される。
この実施形態では、予め定められた中間位置に基づいて処理を行う。
<第一移動部2>
第一移動部2には、第一移動計画が入力される。
第一移動部2は、第一移動計画に従い、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させる(ステップS2)。
第一移動部2は、[S→Mの変形過程]で説明した方法により、制御対象物を制御対象物単位で移動させる。
<第二移動計画部3>
第二移動計画部3は、目標位置にあると仮定した各制御対象物を、制御対象物単位で中間位置に移動させるための第二移動計画を作成する(ステップS3)。作成された第二移動計画は、中間位置入替部4及び第二移動部5に出力される。
例えば、第二移動計画部3は、先に説明した[G→Mの変形過程]の処理を行うことにより、第二移動計画を作成する。
より詳細には、第二移動計画部3は、まず、先に説明した[G→G’_UCMM_Navigation] [G’→M_LCMM_Navigation]の処理を行うことにより、第二移動計画を作成する。
つまり、第二移動計画部3は、目標位置Gにあると仮定した各第一型制御対象物単位をM-G∩Mに移動させ、G-G∩Mにあると仮定した各第二制御対象物単位をM-G∩Mに移動させるための計画を第二移動計画として作成する。
必要に応じて、第二移動計画部3は、先に説明した[Linearization_G_M]の処理を行うことにより、作成された第二移動計画を、制御対象物単位の移動が並列に行われるように、作成し直す。[Linearization_G_M]の処理が行われる場合には、作成し直された第二移動計画が、中間位置入替部4及び第二移動部5に出力される。
<中間位置入替部4>
中間位置入替部4には、第二移動計画が入力される。
中間位置入替部4は、第一移動部2により移動された各制御対象物を、中間位置の中の、第二移動計画により定まる各制御対象物の移動先に移動させる(ステップS4)。
例えば、中間位置入替部4は、先に説明した[中間位置Mにおける位置入れ替え過程]の処理を行う。
つまり、中間位置入替部4は、中間位置が形成するハミルトン閉路に沿って制御対象物単位jを移動して行き、制御対象物単位jに隣接する制御対象物単位の中に、制御対象物単位jを構成する制御対象物の第二移動計画により定まる移動先がある場合には、その制御対象物と、その移動先にある制御対象物を入れ替える処理を繰り返すことで、第一移動部により移動された各制御対象物を、中間位置の中の、第二移動計画により定まる各制御対象物の移動先に移動させる。
<第二移動部5>
第二移動部5には、第二移動計画が入力される。
第二移動部5は、第二移動計画を時間的に逆にした計画に従い、中間位置にある各制御対象物を制御対象物単位で目標位置に移動させる(ステップS5)。
第二移動部5は、[S→Mの変形過程]で説明した方法により、制御対象物を制御対象物単位で移動させる。
[ハミルトン閉路拡張装置及び方法]
制御装置は、図36に破線で示す中間位置決定部6を備えていてもよい。この場合、中間位置決定部6は、先に説明した[M_Decision]の処理を行うことにより、中間位置を決定する。決定された中間位置は、第一移動計画部1及び第二移動計画部3に出力される。
中間位置決定部6は、以下に説明するハミルトン閉路拡張装置により実現される。
ハミルトン閉路拡張装置は、図6を参照して[M_Decision]で説明した処理を例えば行う。なお、[M_Decision]では、制御対象物単位が構成するハミルトン閉路を拡張して中間位置としているが、ハミルトン閉路拡張装置は、制御対象物単位が構成するハミルトン閉路以外の一般のハミルトン閉路を拡張してもよく、また、最終的に拡張されたハミルトン閉路は中間位置として用いられなくてもよい。
ハミルトン閉路拡張装置は、例えば図38に示すように、選択部61、追加部62及び制御部63を備えている。
選択部61は、ハミルトン閉路上の隣り合う2個のノードk,k+1にそれぞれ接する位置にあり、ハミルトン閉路上の位置にない2個のノードa,bを選択する(ステップS61)。例えば、選択部61は、ハミルトン閉路上の隣り合う2個のノードに対応する2個の制御対象物単位k,k+1にそれぞれ接する位置にあり、ハミルトン閉路上の位置にない2個の制御対象物単位a,bを新たなノードを選択する。選択したノードについての情報は、追加部62に出力される。
なお、選択部61は、ハミルトン閉路上の隣り合う2個のノードk,k+1にそれぞれ接する位置にあり、ハミルトン閉路上の位置であって、更に障害物がない位置にある2個のノードa,bを選択してもよい。
追加部62は、選択部61で選択された2個のノードa,bを新たなノードとしてハミルトン閉路に追加し、2個のノードk,k+1と2個のノードa,bをそれぞれつなげるエッジを新たなエッジとしてハミルトン閉路に追加する(ステップS62)。例えば、選択部61は、ハミルトン閉路上の位置にない2個の制御対象物単位a,bを新たなノードとしてハミルトン閉路に追加し、制御対象物単位k,k+1と制御対象物単位a,bをそれぞれつなげる面を新たなエッジとしてハミルトン閉路に追加する。
制御部63は、選択部61及び追加部62の処理を繰り返すことで、ハミルトン閉路を拡張する(ステップS63)。例えば、選択部61は、選択部61及び追加部62の処理を繰り返すことで、ハミルトン閉路を拡張し、拡張されたハミルトン閉路のノードの位置を中間位置とする。
なお、選択部61及び追加部62は、初回の処理においては、例えばM0のようなハミルトン閉路であることが事前にわかっているハミルトン閉路に対して処理を行う。Nを2以上の正の整数として、選択部61及び追加部62は、N回目の処理においては、N-1回目の処理でノードとエッジが追加されたハミルトン閉路に対して処理を行う。
このようにして、中間位置決定部6は、ハミルトン閉路上の隣り合う2個のノードに対応する2個の制御対象物単位k,k+1にそれぞれ接する位置にあり、ハミルトン閉路上の位置にない2個の制御対象物単位a,bを新たなノードとしてハミルトン閉路に追加し、制御対象物単位k,k+1と制御対象物単位a,bをそれぞれつなげる面を新たなエッジとして前記ハミルトン閉路に追加する処理を繰り返すことで、ハミルトン閉路を拡張し、拡張されたハミルトン閉路のノードの位置を中間位置とする。
[変形例]
以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、制御装置の構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。
[プログラム、記録媒体]
上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図40に示すコンピュータ1000の記憶部1020に読み込ませ、演算処理部1010、入力部1030、出力部1040などに動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク、等である。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部1050に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部1050に格納されたプログラムを記憶部1020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記憶部1020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。

Claims (8)

  1. 制御対象物単位には第一型制御対象物単位及び第二型制御対象物単位があり、第一型制御対象物単位及び第二型制御対象物単位のそれぞれはU個(Uは4以上の整数)の制御対象物から構成されており、
    各制御対象物には初期位置及び目標位置が定められており、初期位置及び目標位置にある制御対象物から構成される構造体は、第一型制御対象物単位及び第二型制御対象物単位が組み合わさることにより2U個の制御対象物で構成される合体制御対象物単位で構成されており、
    中間位置内の制御対象物単位をノードとし、互いに接する2個の制御対象物単位をつなげる面をエッジとするグラフはハミルトン閉路となり、中間位置に位置する制御対象物単位の周囲には、他の制御対象物単位が通過でき、制御対象物単位同士が位置を入れ替える空間があり、
    初期位置にある各制御対象物を制御対象物単位で中間位置に移動させるための第一移動計画を作成する第一移動計画部と、
    前記第一移動計画に従い、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させる第一移動部と、
    目標位置にあると仮定した各制御対象物を、制御対象物単位で中間位置に移動させるための第二移動計画を作成する第二移動計画部と、
    前記第一移動部により移動された各制御対象物を、中間位置の中の、前記第二移動計画により定まる前記各制御対象物の移動先に移動させる中間位置入替部と、
    前記第二移動計画を時間的に逆にした計画に従い、中間位置にある各制御対象物を制御対象物単位で目標位置に移動させる第二移動部と、
    を含む制御装置。
  2. 請求項1の制御装置であって、
    ハミルトン閉路上の隣り合う2個のノードに対応する2個の制御対象物単位k,k+1にそれぞれ接する位置にあり、前記ハミルトン閉路上の位置にない2個の制御対象物単位a,bを新たなノードとして前記ハミルトン閉路に追加し、制御対象物単位k,k+1と制御対象物単位a,bをそれぞれつなげる面を新たなエッジとして前記ハミルトン閉路に追加する処理を繰り返すことで、ハミルトン閉路を拡張し、拡張されたハミルトン閉路のノードの位置を前記中間位置とする中間位置決定部を更に含む、
    制御装置。
  3. 請求項1又は2の制御装置であって、
    前記中間位置入替部は、前記ハミルトン閉路に沿って制御対象物単位jを移動して行き、制御対象物単位jに隣接する制御対象物単位の中に、制御対象物単位jを構成する制御対象物の前記第二移動計画により定まる移動先がある場合には、その制御対象物と、その移動先にある制御対象物を入れ替える処理を繰り返すことで、前記第一移動部により移動された各制御対象物を、中間位置の中の、前記第二移動計画により定まる前記各制御対象物の移動先に移動させる、
    制御装置。
  4. 請求項1から3の何れかの制御装置であって、
    初期位置をSとし、中間位置をMとし、初期位置Sと中間位置Mの共通位置をS∩Mとし、中間位置Mから、初期位置Sと中間位置Mの共通位置S∩Mを除いた位置をM-S∩Mとし、初期位置Sから、初期位置Sと中間位置Mの共通位置S∩Mを除いた位置をS-S∩Mとして、
    前記第一移動計画部は、初期位置Sにある各第一型制御対象物単位をM-S∩Mに移動させ、S-S∩Mにある各第二制御対象物単位をM-S∩Mに移動させるための計画を前記第一移動計画として作成し、
    目標位置をGとし、中間位置をMとし、目標位置Gと中間位置Mの共通位置をG∩Mとし、中間位置Mから、目標位置Gと中間位置Mの共通位置G∩Mを除いた位置をM-G∩Mとし、目標位置Gから、目標位置Gと中間位置Mの共通位置G∩Mを除いた位置をG-G∩Mとして、
    前記第二移動計画部は、目標位置Gにあると仮定した各第一型制御対象物単位をM-G∩Mに移動させ、G-G∩Mにあると仮定した各第二制御対象物単位をM-G∩Mに移動させるための計画を前記第二移動計画として作成する、
    制御装置。
  5. 制御対象物単位には第一型制御対象物単位及び第二型制御対象物単位があり、第一型制御対象物単位及び第二型制御対象物単位のそれぞれはU個(Uは4以上の整数)の制御対象物から構成されており、
    各制御対象物には初期位置及び目標位置が定められており、初期位置及び目標位置にある制御対象物から構成される構造体は、第一型制御対象物単位及び第二型制御対象物単位が組み合わさることにより2U個の制御対象物で構成される合体制御対象物単位で構成されており、
    中間位置内の制御対象物単位をノードとし、互いに接する2個の制御対象物単位をつなげる面をエッジとするグラフはハミルトン閉路となり、中間位置に位置する制御対象物単位の周囲には、他の制御対象物単位が通過でき、制御対象物単位同士が位置を入れ替える空間があり、
    第一移動計画部が、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させるための第一移動計画を作成する第一移動計画ステップと、
    第一移動部が、前記第一移動計画に従い、初期位置にある各制御対象物を制御対象物単位で中間位置に移動させる第一移動ステップと、
    第二移動計画部が、目標位置にあると仮定した各制御対象物を、制御対象物単位で中間位置に移動させるための第二移動計画を作成する第二移動計画ステップと、
    中間位置入替部が、前記第一移動部により移動された各制御対象物を、中間位置の中の、前記第二移動計画により定まる前記各制御対象物の移動先に移動させる中間位置入替ステップと、
    第二移動部が、前記第二移動計画を時間的に逆にした計画に従い、中間位置にある各制御対象物を制御対象物単位で目標位置に移動させる第二移動ステップと、
    を含む制御方法。
  6. ハミルトン閉路上の隣り合う2個のノードk,k+1にそれぞれ接する位置にあり、前記ハミルトン閉路上の位置にない2個のノードa,bを選択する選択部と、
    前記選択された2個のノードa,bを新たなノードとして前記ハミルトン閉路に追加し、2個のノードk,k+1と2個のノードa,bをそれぞれつなげるエッジを新たなエッジとして前記ハミルトン閉路に追加する追加部と、
    前記選択部及び前記追加部の処理を繰り返すことで、ハミルトン閉路を拡張する制御部と、
    を含むハミルトン閉路拡張装置。
  7. 選択部、追加部及び制御部がコンピュータにより実装されるとして、
    前記選択部が、ハミルトン閉路上の隣り合う2個のノードk,k+1にそれぞれ接する位置にあり、前記ハミルトン閉路上の位置にない2個のノードa,bを選択する選択ステップと、
    前記追加部が、前記選択された2個のノードa,bを新たなノードとして前記ハミルトン閉路に追加し、2個のノードk,k+1と2個のノードa,bをそれぞれつなげるエッジを新たなエッジとして前記ハミルトン閉路に追加する追加ステップと、
    前記制御部が、前記選択部及び前記追加部の処理を繰り返すことで、ハミルトン閉路を拡張する制御ステップと、
    を含むハミルトン閉路拡張方法。
  8. 請求項1から請求項4に記載の何れかの制御装置の各部又は請求項6のハミルトン閉路拡張装置の各部としてコンピュータを機能させるためのプログラム。
JP2022574982A 2021-01-15 2021-01-15 制御装置、ハミルトン閉路拡張装置、方法及びプログラム Active JP7480869B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/001191 WO2022153475A1 (ja) 2021-01-15 2021-01-15 制御装置、ハミルトン閉路拡張装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JPWO2022153475A1 JPWO2022153475A1 (ja) 2022-07-21
JP7480869B2 true JP7480869B2 (ja) 2024-05-10

Family

ID=82448057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022574982A Active JP7480869B2 (ja) 2021-01-15 2021-01-15 制御装置、ハミルトン閉路拡張装置、方法及びプログラム

Country Status (3)

Country Link
US (1) US20240077869A1 (ja)
JP (1) JP7480869B2 (ja)
WO (1) WO2022153475A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014141459A1 (ja) 2013-03-15 2014-09-18 株式会社日立製作所 情報処理システム、および情報処理システムの運用管理方法
JP2019053709A (ja) 2017-09-15 2019-04-04 日本電信電話株式会社 制御装置、方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014141459A1 (ja) 2013-03-15 2014-09-18 株式会社日立製作所 情報処理システム、および情報処理システムの運用管理方法
JP2019053709A (ja) 2017-09-15 2019-04-04 日本電信電話株式会社 制御装置、方法及びプログラム

Also Published As

Publication number Publication date
US20240077869A1 (en) 2024-03-07
JPWO2022153475A1 (ja) 2022-07-21
WO2022153475A1 (ja) 2022-07-21

Similar Documents

Publication Publication Date Title
CN108958235B (zh) 机器人运动规划
JP6879233B2 (ja) 制御装置、方法及びプログラム
Hauser et al. Global redundancy resolution via continuous pseudoinversion of the forward kinematic map
Kawano Tunneling-based self-reconfiguration of heterogeneous sliding cube-shaped modular robots in environments with obstacles
JP7480869B2 (ja) 制御装置、ハミルトン閉路拡張装置、方法及びプログラム
Kawano Distributed tunneling reconfiguration of sliding cubic modular robots in severe space requirements
JP6685957B2 (ja) 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム
WO2023281582A1 (ja) 制御装置、方法及びプログラム
JP6777661B2 (ja) 制御装置、方法及びプログラム
JP6939395B2 (ja) 制御装置、方法及びプログラム
US11883960B2 (en) Moving robot, moving robot control method and program therefor
WO2023281625A1 (ja) 制御装置、方法及びプログラム
WO2022239063A1 (ja) 制御装置、方法及びプログラム
JP7014099B2 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
WO2023195065A1 (ja) 制御装置、方法及びプログラム
WO2023276065A1 (ja) 制御装置、方法及びプログラム
JP6633467B2 (ja) 行動制御システム、行動制御方法、プログラム
JP6553000B2 (ja) 制御対象物位置入れ替え制御装置、制御対象物位置入れ替え制御方法、プログラム
JP6939396B2 (ja) 隊列制御装置、隊列制御方法、およびプログラム
WO2020045022A1 (ja) 移動ロボット、移動ロボットの制御方法及びプログラム
Odem et al. A self-reconfiguration algorithm for sliding triangular modular robots
JP6881352B2 (ja) 制御装置、方法及びプログラム
Zaro et al. Collision detection for multi-robot motion planning with efficient quad-tree update and skipping
JP7226588B2 (ja) 行動制御装置、その方法及びプログラム
Isto A parallel motion planner for systems with many degrees of freedom

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240408

R150 Certificate of patent or registration of utility model

Ref document number: 7480869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150