WO2023276065A1 - Control device, method, and program - Google Patents

Control device, method, and program Download PDF

Info

Publication number
WO2023276065A1
WO2023276065A1 PCT/JP2021/024821 JP2021024821W WO2023276065A1 WO 2023276065 A1 WO2023276065 A1 WO 2023276065A1 JP 2021024821 W JP2021024821 W JP 2021024821W WO 2023276065 A1 WO2023276065 A1 WO 2023276065A1
Authority
WO
WIPO (PCT)
Prior art keywords
unit
control object
object unit
head
tail
Prior art date
Application number
PCT/JP2021/024821
Other languages
French (fr)
Japanese (ja)
Inventor
洋 川野
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to PCT/JP2021/024821 priority Critical patent/WO2023276065A1/en
Publication of WO2023276065A1 publication Critical patent/WO2023276065A1/en

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

Definitions

  • the present invention relates to technology for controlling the actions of multiple controlled objects.
  • Non-Patent Document 1 a plurality of cubic robots extend and contract with each other (a robot moves while expanding and contracting while being in contact with another robot). Robot platoon deformation by is handled.
  • Non-Patent Document 2 and Patent Document 1 it is assumed that the robots are in contact with each other. Each robot is assumed to be the same (homogeneous), and platoon control is realized when the target position of each robot within the target form is not determined.
  • the transformation of robot platoons by plane shearing motion between multiple cubic robots (movement of a robot sliding on the contacting surface while in contact with another robot) is dealt with. It is applicable even if there is a disconnection point in the intersection of the set of platoon positions taken by the robot in the initial state and the set of target positions of the robot.
  • Non-Patent Document 2 and Patent Document 1 it is possible that the time required for platoon deformation is long.
  • the present invention is to provide a control device, method, and program that can change platoons in a shorter time than before.
  • a control device is a control device for moving a plurality of control object units at a predetermined initial position S to a predetermined target position G, wherein each control object unit has a plurality of control object units.
  • the connectivity of the controlled object structure is defined as the fact that each controlled object unit is adjacent to another controlled object unit to form a group of controlled object structures.
  • a tail control object unit selection unit that selects the largest Manhattan distance in the partial initial position area A SS ⁇ Gj from the A series of controlled object units from the object unit Head to the tail controlled object unit Tail selected by the tail controlled object unit selection section is moved to the target position D, and the first controlled object unit Head moves to the target position D.
  • Add object-by-object behavior a motion plan determination unit that determines a motion plan for moving a series of controlled object units in accordance with the motion plan;
  • the waiting time for the movement of a series of control object units is determined so that the voids for movement do not overlap, and if the waiting time is longer than a predetermined time, the time shorter than the waiting time is reset as the waiting time.
  • one position to generate a void is determined among the positions of the controlled object constituting a series of controlled object units, and the generated void is sent to the tail direction of the controlled object unit Tail direction By doing so, the process of moving the controlled object in the direction of the first controlled object unit Head is repeated.
  • the position to generate the void is determined so that it does not collide with the void for moving the object unit, and the set Up is in contact with the control object unit at the position in the partial common position area not included in the set Up.
  • a set addition unit that adds all of the positions of the controlled object units that are connected from the controlled object unit to the target position G to the set Up, a leading controlled object unit selection unit, and target position selection a repeat control unit that repeats the processes of the tail control object unit selection unit and the operation plan determination unit until all the control object units can move to the target position according to the operation plan; a moving unit that moves the control object unit according to the operation plan.
  • FIG. 4 is a diagram for explaining an initial position and a target position for each controlled object;
  • FIG. 4 is a diagram for explaining how voids move;
  • FIG. 4 is a diagram for explaining an example of control target units;
  • FIG. 4 is a diagram for explaining the occurrence of disconnection when voids are generated and discharged;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 4 is a diagram for explaining generation and discharge of voids;
  • FIG. 3 is a diagram for explaining an example of a control device;
  • FIG. 4 is a diagram for explaining an example of a control method;
  • FIG. 2 is a diagram for showing an example of the functional configuration of a computer;
  • FIG. 1 illustrates, for example, a mission in which a large number of controlled objects cooperate to move while maintaining contact with each controlled object, and transform the platoon from the initial position to the target position.
  • the use of such a cubic controlled object that can be moved by sliding the surfaces that are in contact with each other is assumed. As shown in FIG. 2, this is realized by moving a plurality of controlled objects from initial positions to target positions in a room partitioned by walls (walls are omitted in the figure).
  • another object to be controlled exists in one of the six squares in the vertical, horizontal, and height directions around the object to be controlled (hereinafter also referred to as "up, down, left, right, front, and rear directions"). It shall move while maintaining the state where it is.
  • This method has the advantage that one controlled object itself moves a distance corresponding to the size of one controlled object, so that the movement amount of one operation can be accurately measured.
  • the position of each controlled object in the entire group of controlled objects can be easily known. For this reason, it is difficult to cause a problem that the formation is broken due to an error in the amount of movement of the controlled object.
  • Each cube in FIG. 1 indicates the position of each controlled object. Only one controlled object can exist in each cube. Each controlled object is assumed to be stationary if there is an obstacle or other controlled object in the direction in which it intends to move.
  • a cubic space in which a controlled object can exist is also called a mass or a grid.
  • dark gray squares indicate positions where control objects exist.
  • the positions where the controlled objects exist in FIG. 2A indicate a set of initial positions of the controlled objects, and the positions where the controlled objects exist in FIG.
  • each initial position and each target position are adjacent to other initial positions and target positions in at least one of the vertical and horizontal directions, respectively, and the platoon shape at the initial position and target position of the control object is Each is a lump of arbitrary shape.
  • each state of the controlled object i (the position and behavior of the controlled object) is represented by a discrete value.
  • each position is expressed by values obtained by discretely expressing the X, Y, and Z axes. That is, the room (three-dimensional space) is partitioned by grids, and each grid corresponds to each position. Also, in each grid, "presence/absence" of obstacles is set in advance.
  • the subject of action is each controlled object arranged in the room.
  • the action a of the controlled object i takes one of 7 types of movement, i.e., resting and moving in the vertical, horizontal and height directions by one grid.
  • the search calculation when incorporating the constraint condition that the controlled objects are in contact with each other, the search calculation must be performed after considering the mutual movement of the controlled objects. Moreover, it is difficult to fundamentally reduce the amount of calculation, which is a big problem when using multiple controlled objects.
  • Non-Patent Document 2 Homogeneous platoon control in Non-Patent Document 2 introduces the concept of void control as one of the measures for solving the above-described problem of computational load. In addition, in order to overcome the platoon deformation problem described in [Problem setting], the idea of 8 control object units is introduced.
  • the void here means a gap that is formed at the original position after a certain controlled object moves to another position.
  • a void is a virtual entity that moves in the direction opposite to the direction in which the controlled object moves.
  • the motion planning problem of the controlled object can be considered as a single void motion plan, which is suitable for reducing the search computation load.
  • each controlled object belonging to the controlled object unit becomes scattered during the deformation operation and is divided into different controlled object units, and the load when the subsequent controlled object replacement operation is required. It also led to an increase. Moreover, it is not applicable when the initial position and the target position have a common portion and the common portion is divided into a plurality of non-connected portions.
  • FIG. 4(1) Eight adjacent control objects are treated as one unit (control object unit), and the control object moves while maintaining this control object unit. do.
  • eight controlled objects constitute one controlled object unit, and each of the eight controlled objects constituting one controlled object unit can be controlled in three directions to form one controlled object unit. Move while maintaining a state adjacent to the object.
  • This group of control object units is controlled so that each control object unit shares one surface and moves while being in contact with each other. Assume that all controlled objects are identical and homogeneous.
  • a control object unit formed by eight control objects is a unit of one mass (in this embodiment, this unit is hereinafter also referred to as a "mass unit” or a “position unit”).
  • this unit is hereinafter also referred to as a "mass unit” or a "position unit”).
  • Ir[i] (1,2,3,4,5,6, 7,8).
  • the initial position of each controlled object is (Xr_u0[j], Yr_u0[j], Zr_u0[j]) and the target position is (Xr_ue[j], Yr_ue[j], Zr_ue[j]).
  • the total number p of control objects is assumed to be a multiple of eight.
  • control object unit is not limited to the example of FIG. 4 (1), as long as it is configured to satisfy the following conditions. That is, the control object unit is (1) a cube having a length M (M ⁇ 2, where the length of one control object is defined as length 1) in each axial direction in a three-dimensional orthogonal coordinate system. It is a structure forming a shape space (hereinafter referred to as a metamodule), and includes (2) a structure in which M controlled objects are adjacent in each axial direction.
  • control object unit a structure composed of eight control objects shown in FIG. A similar effect can be obtained if the controlled object unit is configured to satisfy the above conditions (1) and (2) in the metamodule of the same size.
  • each controlled object unit j From a state in which each controlled object unit j exists at an arbitrary position in the set S of initial positions, each controlled object unit j is moved to any position (Xr_ue[j], Yr_ue[j], Zr_ue[j]) will be described below.
  • the sets S and G are configured in units of control objects of 8 squares.
  • a method called tunneling is used to transform the control object structure in the state of set S to the state of set G.
  • a series of control object units connecting the head control object unit Head and the tail control object unit Tail follows the operation of the head control object unit Head in a snake-like shape. It works in a way that It should be noted that this is also true for a controlled object structure that uses other controlled object units that perform tunneling, such as a 2 ⁇ 2 ⁇ 2 controlled object unit that uses an expansion/contraction control object unit as shown in Non-Patent Document 2.
  • the tunneling operation is the same, and the method of selecting head and tail for tunneling shown in the present invention is similarly applicable.
  • the platooning transformation using tunneling can be executed without using positions other than the set of initial positions and the set of target positions even in an environment with obstacles.
  • Fig. 6 shows one step of the tunneling operation in units of 8 mass control objects.
  • One air gap is generated from within Head at the same time, and thereby one controlled object within Head moves into D position.
  • One void generated in the Head is then sent to the Tail position and released from the control object structure from the Tail position.
  • one controlled object within Tail moves out of the Tail position (in FIG. 6, it moves into the next controlled object unit on the right).
  • the position of the controlled object unit between Head and Tail advances by one. During this process, disconnection does not occur in multiple control object units sandwiched between Head and Tail.
  • the gap (void) generated in the Head is moved by sliding the two controlled objects that are in contact with the traveling direction of the void at each point after generation in the opposite direction of the traveling direction of the void. do.
  • the void reaches the same position as when it was generated in Head within the control object unit (Tail' in FIG. 6) one before Tail.
  • the void is released from the tail by sliding the control object unit in the tail that is in contact with the void in the direction of Tail' ⁇ Tail in the direction of Tail ⁇ Tail'.
  • the region S ⁇ G of the intersection of the set S of initial positions and the set G of target positions is composed of C mutually disconnected regions A S ⁇ G1 , A S ⁇ G2 , A S ⁇ G3 , ..., A S ⁇ GC Suppose that it is configured by C is an integer of 1 or more.
  • the selection of the top control object unit Head should ensure that none of these C objects become disconnected from the control object structure during the deformation operation. is. For example, if the control object units in S are gradually moved into G, the number of control object units remaining in S will decrease accordingly. If we are not careful in this process, it can happen that there is no control object in S or G that can be used for deformation while keeping the common part from being disconnected from the control object structure. In order to avoid such a situation, the following technique is adopted in substantially the same manner as in Non-Patent Document 2.
  • Up is not included in Up among A S ⁇ G1 , A S ⁇ G2 , A S ⁇ G3 , A S ⁇ G4 , etc. other than A S ⁇ Gstart for each controlled object If they are touching, add all the control object unit positions that are connected in G from that control object unit to Up.
  • the process of addition to this Up is performed by the set addition unit 7, which will be described later.
  • FIG. 7(1) shows the initial position S for each controlled object.
  • FIG. 7(2) shows the target position G for each controlled object.
  • the disconnected S ⁇ G regions are A S ⁇ G1 indicated by light dots and A S ⁇ G2 indicated by dark dots.
  • a S ⁇ G1 is chosen as A S ⁇ Gstart .
  • the position of A S ⁇ G1 is added to Up.
  • the regions of SS ⁇ G divided by Up are A SS ⁇ G1 indicated by a thick dashed line and A SS ⁇ G2 indicated by a thick one-dot chain line.
  • the regions of GS ⁇ G divided by Up are AGS ⁇ G1 indicated by a thick dashed line and AGS ⁇ G2 indicated by a thick dashed line.
  • E1 is chosen as the position in Up bordering AGS ⁇ G1 and E2 is chosen as the position in Up bordering AGS ⁇ G2 .
  • E1 is the entrance to A GS ⁇ G1
  • E2 can be said to be the entrance to A GS ⁇ G2 .
  • control object unit selected as Head is indicated by a thick line
  • D is indicated by a dashed line
  • control object unit selected as Tail is indicated by a thick dashed line.
  • one control object unit in AS ⁇ G2 is added to Up by the processing of (4) of [Head_Tail_Selection]. After that, the remaining two gap positions in the old A GS ⁇ G1 at the time of Fig. 25 (1) form the new A GS ⁇ G1, and the new A GS ⁇ G1 are all filled.
  • selecting Head, Tail, and D as shown in FIGS. will move to
  • a S ⁇ G1 Up.
  • D is added to Up.
  • one of D and A S ⁇ G2 is added to Up.
  • the last control object unit of A SS ⁇ G1 is Tail, and the last gap of new A GS ⁇ G1 is D.
  • one of A SS ⁇ G2 becomes Tail, and all the new A S ⁇ G2 are filled (the gap of the new A S ⁇ G2 to be filled here is the Up update of FIG. 25 (5) is within the new A GS ⁇ G2 that has been set, and the old A GS ⁇ G2 in FIG. 7 becomes the new A GS ⁇ G3 ).
  • the last one of A S ⁇ G2 becomes Tail, and the old A GS ⁇ G2 (new A GS ⁇ G3 ) in FIG. 7 is filled.
  • a position with the same Manhattan distance from E i is selected as Head as much as possible. This is because it is possible to shorten the time from the start of the tunneling motion performed by a head and tail pair to the start of the tunneling motion of the next head and tail pair in the linearization of the platoon deformation motion described later. be. For example, by doing this, if Head is the A GS ⁇ Gi position where the Manhattan distance from Ei is ⁇ Ei at a certain point in time, then the Manhattan distance from Ei at the position selected as Head next is ⁇ Ei or ⁇ Ei +1 in many cases.
  • the time interval in such a case is the minimum possible. is close to the value of
  • step t the calculation of "the time from the start of the tunneling operation performed by a set of Head and Tail to the start of the tunneling operation of the next set of Head and Tail" is performed as follows.
  • step t-1 when (4) of [Head_Tail_Selection] is executed in step t-1, by switching the void generation position from 8 to 4 or from 4 to 8, the above-mentioned tunneling of step t-1 and step t can be suppressed to a small value.
  • FIGS. 21 and 22 The void discharge process in cases other than the above (iii) and (iv) is as shown in FIGS. 23 and 24.
  • FIG. 23 and 24 The void discharge process in cases other than the above (iii) and (iv) is as shown in FIGS. 23 and 24.
  • the thick dashed lines indicate voids
  • the thick lines indicate controlled objects that have moved to generate voids.
  • control device includes a set selection unit 1, an entrance position selection unit 2, a head controlled object unit selection unit 3, a destination position selection unit 4, a tail control object unit selection unit 5, an operation plan determination unit 6, a set adding unit 7, a control unit 8 and a moving unit 9, for example.
  • control method is realized, for example, by having each component of the control device perform the processing from step S1 to step S9 shown in FIG. 27 and described below.
  • the set selection unit 1 performs the process (1) of [Head_Tail_Selection].
  • the set selection unit 1 selects one partial common position area A S ⁇ Select Gstart as set Up (step S1).
  • the entrance position selection unit 2 performs the process (2) of [Head_Tail_Selection].
  • J is a predetermined positive integer
  • I is a predetermined positive integer
  • the head control object unit selection unit 3 performs the processing of (3-1) of [Head_Tail_Selection].
  • the head control object unit Head is defined as the head control object unit Head. Select (step S3).
  • Information about the selected head control object unit Head is output to the target position selection unit 4 and the motion plan determination unit 6 .
  • the target position selection unit 4 performs the processing of (3-2) of [Head_Tail_Selection].
  • a position is selected as the destination position D and added to the set Up (step S4).
  • Information about the selected target position D is output to the motion plan determination unit 6 .
  • Information about the set Up updated by the addition is output to the set addition unit 7 .
  • the tail control target unit selection unit 5 performs the processing of (3-3) of [Head_Tail_Selection].
  • the tail control object unit selection unit 5 selects a control object unit having the largest Manhattan distance in S from the entrance position Ei from among the control object units in the partial initial position area A SS ⁇ Gj and outside the set UP. It is selected as the control object unit Tail (step S5).
  • Tail Information about the selected tail control object unit Tail is output to the motion plan determination unit 6 .
  • the operation plan determination unit 6 performs the processes (3) to (5) of [Tunneling_Linear].
  • the operation plan determination unit 6 selects a series of control objects from the head control object unit Head selected by the head control object unit selection unit to the tail control object unit Tail selected by the tail control object unit selection unit.
  • a motion plan is determined for moving the object unit so that the leading controlled object unit Head moves to the target position D and follows the motion of the leading controlled object unit (step S6).
  • the action plan determination unit 6 decides the action plan so that the following conditions (i) to (iii) are satisfied.
  • the void for moving the series of controlled object units does not overlap with the void for moving the series of controlled object units that moved one time earlier.
  • a waiting time for movement of each object is determined, and if the waiting time is longer than a predetermined time, a time shorter than the waiting time is re-determined as the waiting time.
  • one position at which a void is to be generated is determined among the positions of the controlled object constituting the series of controlled object units, and the generated void is moved in the Tail direction of the tail controlled object unit.
  • a void for moving the series of control object units, and one time before The position at which the void is generated is determined so as not to collide with the void for moving the series of control object units moving to . If the motion plan satisfies these conditions, the tumbling motion determined one time ago and the tumbling motion determined at the current time can be performed in parallel. Therefore, it is possible to shorten the time required for platoon deformation as compared with the conventional art.
  • the set addition unit 7 performs the processing of (4) of [Head_Tail_Selection].
  • the set adding unit 7 connects the control object unit within the target position G. All the positions of the control object unit at the current position are added to the set Up (step S7).
  • the repetition control unit 8 performs the processing of (6) of [Tunneling_Linear].
  • the repetition control unit 8 performs the processing of the head control object unit selection unit 3, the target position selection unit 4, the tail control object unit selection unit 5, and the operation plan determination unit 6 according to the operation plan for each control object. Repeat until all can move to the target position (step S8).
  • the finally generated motion plan is output to the moving unit 9.
  • the moving unit 9 performs the process of (7) of [Tunneling_Linear].
  • the moving unit 9 moves the control object unit according to the determined operation plan (step S9).
  • control device may be performed directly or may be performed via a storage unit (not shown).
  • a program that describes this process can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium is, for example, a non-temporary recording medium, specifically a magnetic recording device, an optical disc, or the like.
  • this program will be carried out, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded.
  • the program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to other computers via the network.
  • a computer that executes such a program for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer once in the auxiliary recording unit 1050, which is its own non-temporary storage device. Store. When executing the process, this computer reads the program stored in the auxiliary recording section 1050, which is its own non-temporary storage device, into the storage section 1020, and executes the process according to the read program. As another execution form of this program, the computer may read the program directly from the portable recording medium into the storage unit 1020 and execute processing according to the program. It is also possible to execute processing in accordance with the received program each time the is transferred.
  • ASP Application Service Provider
  • the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition.
  • ASP Application Service Provider
  • the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
  • the device is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.

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)

Abstract

This control device is provided with, for example, a set selection unit 1, an entrance position selection unit 2, a unit 3 for selecting lead object-being-controlled units, a destination position selection unit 4, a unit 5 for selecting tail object-being-controlled units, an operation plan determination unit 6, a set addition unit 7, a control unit 8, and a movement unit 9. In the operation plan determined by the operation plan determination unit 6, the wait time for movement of a series of object-being-controlled units is determined so that the void for moving the series of object-being-controlled units does not overlap the void for moving the series of object-being-controlled units moved one time earlier, and when the wait time is longer than a prescribed time, a time that is shorter than the wait time is re-determined to be the wait time, and the position for generating the voids is determined so that the void for moving the series of object-being-controlled units does not collide with the void for moving the series of object-being-controlled units moved one time earlier.

Description

制御装置、方法及びプログラムControl device, method and program
 本発明は、複数の制御対象物の行動を制御する技術に関する。 The present invention relates to technology for controlling the actions of multiple controlled objects.
 近年、多数の自律移動ロボットを効率的に制御にするための研究が活発に行われている。その任務内容は、人の入れない箇所の監視、物品の搬送などさまざまであるが、多数のロボットの協調動作による隊列形成を効率的に行わせるための技術が求められており盛んに研究が行われている。 In recent years, research has been actively conducted to efficiently control a large number of autonomous mobile robots. Their missions vary, such as monitoring areas inaccessible to humans, transporting goods, etc. However, there is a need for technology that will enable multiple robots to work together to form an efficient formation, and research is being actively carried out. It is
 特に、ロボットの隊列制御の中でも、ロボット同士が互いに接したままの状態で、アメーバのように全体で移動を行うという仮定の下でのロボット隊列制御においては、ロボット同士の相対的な位置関係から、各ロボットの絶対位置の決定が可能であるという利点と、付加的な位置計測用の装備を必要としないという利点があり、そのようなロボットの研究もおこなわれている。例えば、非特許文献1に示す研究に至る一連の研究では、ある隊列から他の隊列に変化する隊列制御が示されている(例えば、非特許文献1参照。)。 In particular, in robot platoon control under the assumption that the robots move as a whole while remaining in contact with each other like an amoeba, the relative positional relationship between the robots , has the advantage of being able to determine the absolute position of each robot and the advantage of not requiring additional equipment for position measurement, and such robots are also being researched. For example, in a series of studies up to the research shown in Non-Patent Document 1, platoon control that changes from one platoon to another is shown (see, for example, Non-Patent Document 1).
 このような、多数のロボットによる効率的な隊列形成を実現するには、それぞれのロボットの配置、動作順序などを事前に計画することが重要である。このような計画においては、当然ながら、複数のロボットが動作する実環境における障害物の存在や経路の形状なども十分に考慮しなければならない。 In order to achieve efficient platoon formation with a large number of robots like this, it is important to plan in advance the placement of each robot, the order of operations, and so on. Naturally, in such a plan, the presence of obstacles and the shape of paths in the actual environment where multiple robots operate must be fully considered.
 非特許文献1に示す研究に示されている手法では、複数の立方体形状のロボット同士での伸長収縮面動作(あるロボットが、他のロボットと接した状態で、伸び縮みしつつ移動する動作)によるロボットの隊列変形が扱われている。 In the method shown in the research shown in Non-Patent Document 1, a plurality of cubic robots extend and contract with each other (a robot moves while expanding and contracting while being in contact with another robot). Robot platoon deformation by is handled.
 非特許文献2及び特許文献1では、各ロボットが接した状態での動作を想定している。各ロボットは同一(ホモジニアス)であるとし、目標形態内部での各ロボットの目標位置が定まってない場合の隊列制御を実現している。複数の立方体形状のロボット同士での面せん断動作(あるロボットが、他のロボットと接した状態で、接する面上をスライド移動する動作)によるロボットの隊列変形が扱われている。ロボットが初期状態でとる隊列位置の集合とロボットの目標位置の集合の共通部分内に非接続箇所がある場合でも適用可能である。 In Non-Patent Document 2 and Patent Document 1, it is assumed that the robots are in contact with each other. Each robot is assumed to be the same (homogeneous), and platoon control is realized when the target position of each robot within the target form is not determined. The transformation of robot platoons by plane shearing motion between multiple cubic robots (movement of a robot sliding on the contacting surface while in contact with another robot) is dealt with. It is applicable even if there is a disconnection point in the intersection of the set of platoon positions taken by the robot in the initial state and the set of target positions of the robot.
特開2020-030765号公報Japanese Patent Application Laid-Open No. 2020-030765
 非特許文献2及び特許文献1では、隊列変形に要する時間が長い可能性があった。 In Non-Patent Document 2 and Patent Document 1, it is possible that the time required for platoon deformation is long.
 本発明は、従来よりも短い時間で隊列変更をすることができる制御装置、方法及びプログラムを提供することである。 The present invention is to provide a control device, method, and program that can change platoons in a shorter time than before.
 この発明の一態様による制御装置は、所定の初期位置Sにある複数の制御対象物単位を所定の目標位置Gに移動させる制御装置であって、各制御対象物単位には複数の制御対象物が含まれているとし、各制御対象物単位が他の制御対象物単位と隣接することにより制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、初期位置Sと目標位置Gの共通部分を共通位置とし、共通位置は互いに非接続な複数の部分共通位置領域から構成されているとして、ある1つの部分共通位置領域を集合Upとして選択する集合選択部と、I,Jは所定の正の整数であり、初期位置Sから共通位置S∩Gを除いた領域S-S∩Gは集合Upによって分断された少なくとも1つの部分初期位置領域AS-S∩Gj(j=1,…,J)で構成されており、目標位置Gから共通位置S∩Gを除いた領域G-S∩Gは集合Upによって分断された少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)で構成されており、少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)のそれぞれに接する集合Up内の位置を入口位置Ei(i=1,…,I)として選択する入口位置選択部と、集合Upに属する位置にあり、部分目標位置領域AG-S∩Gi(i=1,…,I)の中の制御対象物単位が存在していない位置に隣接する位置にある制御対象物単位のうち入口位置Eiからの部分目標位置領域AG-S∩Gi(i=1,…,I)でのマンハッタン距離が最も小さいものを先頭制御対象物単位Headとして選択する先頭制御対象物単位選択部と、先頭制御対象物単位Headに接する位置であって、部分目標位置領域AG-S∩Gi(i=1,…,I)内の制御対象物単位が存在していない位置を目的位置Dとして選択し、集合Upに追加する目的位置選択部と、部分初期位置領域AS-S∩Gj内かつ集合UP外の制御対象物単位のうち入口位置Eiからの部分初期位置領域AS-S∩Gjでのマンハッタン距離が最も大きいものを尾部制御対象物単位Tailとして選択する尾部制御対象物単位選択部と、先頭制御対象物単位選択部で選択された先頭制御対象物単位Headから尾部制御対象物単位選択部で選択された尾部制御対象物単位Tailまでの一連の制御対象物単位を、先頭制御対象物単位Headが目的位置Dに移動し、先頭の制御対象物単位の動作を追従するように移動するための動作計画を決定する動作計画決定部と、動作計画では、一連の制御対象物単位を移動させるためのボイドが、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドが重ならないように、一連の制御対象物単位の移動の待ち時間が決定され、待ち時間が所定の時間よりも長い場合には、待ち時間よりも短い時間が待ち時間として再決定され、動作計画では、一連の制御対象物単位を構成する制御対象物の位置の中でボイドを発生させる1個の位置が決定され、発生させたボイドを尾部制御対象物単位Tail方向に送ることで制御対象物を先頭制御対象物単位Head方向に移動させる処理が繰り返し行われ、動作計画では、一連の制御対象物単位を移動させるためのボイドと、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドとが衝突しないように、ボイドを発生させる位置が決定され、集合Upが集合Upに含まれない部分共通位置領域内の位置にある制御対象物単位に接しているとき、その制御対象物単位から目標位置G内で接続している位置にある制御対象物単位の位置の全てを集合Upに追加する集合追加部と、先頭制御対象物単位選択部、目的位置選択部、尾部制御対象物単位選択部及び動作計画決定部の処理を、動作計画により、制御対象物単位の全てが目標位置に移動することができるようになるまで繰り返す繰り返し制御部と、決定された動作計画に従って、制御対象物単位を移動させる移動部と、を備えている。 A control device according to one aspect of the present invention is a control device for moving a plurality of control object units at a predetermined initial position S to a predetermined target position G, wherein each control object unit has a plurality of control object units. , and the connectivity of the controlled object structure is defined as the fact that each controlled object unit is adjacent to another controlled object unit to form a group of controlled object structures. Assuming that the common portion of the initial position S and the target position G is the common position, and that the common position consists of a plurality of unconnected partial common position regions, one partial common position region is selected as the set Up. and a set selection part where I and J are predetermined positive integers, and the area SS∩G obtained by excluding the common position S∩G from the initial position S is at least one partial initial position area A SS divided by the set Up. ∩Gj(j=1,...,J) , and the area GS∩G obtained by excluding the common position S∩G from the target position G is at least one partial target position area A GS∩ divided by the set Up Gi(i=1,...,I) , and the positions in the set Up that are in contact with each of at least one partial target position area AGS∩Gi(i=1,...,I) are the entry positions Ei( i =1, . Among the control object units at positions adjacent to non-existing positions, the one with the smallest Manhattan distance in the partial target position area A GS ∩ Gi (i=1,...,I) from the entrance position Ei is the head control. A head control object unit selection part to be selected as the object unit Head, and a control object in a partial target position area A GS ∩ Gi (i=1,...,I) at a position in contact with the head control object unit Head A target position selection unit that selects a position where no object unit exists as a target position D and adds it to the set Up, and an entrance position Ei A tail control object unit selection unit that selects the largest Manhattan distance in the partial initial position area A SS∩Gj from the A series of controlled object units from the object unit Head to the tail controlled object unit Tail selected by the tail controlled object unit selection section is moved to the target position D, and the first controlled object unit Head moves to the target position D. Add object-by-object behavior a motion plan determination unit that determines a motion plan for moving a series of controlled object units in accordance with the motion plan; The waiting time for the movement of a series of control object units is determined so that the voids for movement do not overlap, and if the waiting time is longer than a predetermined time, the time shorter than the waiting time is reset as the waiting time. In the operation plan, one position to generate a void is determined among the positions of the controlled object constituting a series of controlled object units, and the generated void is sent to the tail direction of the controlled object unit Tail direction By doing so, the process of moving the controlled object in the direction of the first controlled object unit Head is repeated. The position to generate the void is determined so that it does not collide with the void for moving the object unit, and the set Up is in contact with the control object unit at the position in the partial common position area not included in the set Up. Then, a set addition unit that adds all of the positions of the controlled object units that are connected from the controlled object unit to the target position G to the set Up, a leading controlled object unit selection unit, and target position selection a repeat control unit that repeats the processes of the tail control object unit selection unit and the operation plan determination unit until all the control object units can move to the target position according to the operation plan; a moving unit that moves the control object unit according to the operation plan.
 一連の制御対象物単位を移動させるためのボイドが一時刻前に移動する一連の制御対象物単位を移動させるためのボイドと重ならないように、一連の制御対象物単位の移動の待ち時間及びボイドを発生させる位置を決定することで、従来よりも短い時間で隊列変更をすることができる。 Waiting time and void for moving a series of controlled object units so that the void for moving the series of controlled object units does not overlap with the void for moving the series of controlled object units moving one time earlier By determining the position to generate, you can change the formation in a shorter time than before.
ロボットの移動を説明するための図。A diagram for explaining the movement of the robot. 制御対象物単位の初期位置及び目標位置を説明するための図。FIG. 4 is a diagram for explaining an initial position and a target position for each controlled object; ボイドの移動の様子を説明するための図。FIG. 4 is a diagram for explaining how voids move; 制御対象物単位の例を説明するための図。FIG. 4 is a diagram for explaining an example of control target units; タネリングを説明するための図。The figure for demonstrating a twisting. タネリングを説明するための図。The figure for demonstrating a twisting. [Head_Tail_Selection]の動作の例を説明するための図。A diagram for explaining an example of the operation of [Head_Tail_Selection]. ボイドの生成時及び排出時の非接続の発生を説明するための図。FIG. 4 is a diagram for explaining the occurrence of disconnection when voids are generated and discharged; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; ボイドの生成及び排出を説明するための図。FIG. 4 is a diagram for explaining generation and discharge of voids; [Head_Tail_Selection]の動作の例を説明するための図。A diagram for explaining an example of the operation of [Head_Tail_Selection]. 制御装置の例を説明するための図。FIG. 3 is a diagram for explaining an example of a control device; 制御方法の例を説明するための図。FIG. 4 is a diagram for explaining an example of a control method; コンピュータの機能構成例を示すための図。FIG. 2 is a diagram for showing an example of the functional configuration of a computer;
 以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。 Embodiments of the present invention will be described below. It should be noted that in the drawings used for the following description, the same reference numerals are given to components having the same functions and steps that perform the same processing, and redundant description will be omitted.
 <理論的背景>
 まず、制御装置及び方法の理論的背景について説明する。以下、行動制御の対象である制御対象物が、ロボットである場合を例に挙げて説明するが、制御対象物は、制御の対象となり得るものであれば、ロボット以外であってもよい。
<Theoretical background>
First, the theoretical background of the controller and method will be described. In the following description, a robot is used as an object to be controlled, but the object to be controlled may be anything other than a robot as long as it can be controlled.
 [問題設定]
 多数の制御対象物が協調して、各制御対象物が接した状態を維持しつつ移動を行い、初期位置における隊列形成状態から目標位置への隊列変形を行う任務は、例えば図1に例示するような、互いに接する面同士をスライドさせて移動していくことが可能な立方体型の制御対象物の使用を想定する。図2に示すように、壁で区切られた部屋(ただし図中、壁を省略する)においての初期位置から目標位置まで複数の制御対象物の移動によって実現するものである。
[Problem setting]
FIG. 1 illustrates, for example, a mission in which a large number of controlled objects cooperate to move while maintaining contact with each controlled object, and transform the platoon from the initial position to the target position. The use of such a cubic controlled object that can be moved by sliding the surfaces that are in contact with each other is assumed. As shown in FIG. 2, this is realized by moving a plurality of controlled objects from initial positions to target positions in a room partitioned by walls (walls are omitted in the figure).
 制御対象物については、例えば図1に示すように、制御対象物の周囲縦横高さ方向(以下「上下左右前後方向」ともいう)6マスのうち1つに他の制御対象物が存在している状態を維持しながら移動をするものとする。この手法では1つの制御対象物自身が、一台の制御対象物のサイズ分の距離を移動することで、一回の動作の移動量を正確に測ることができるというメリットがある。また、1つの面を共有する隣り合う制御対象物との相対的な位置を計測しあうことで、制御対象物の群れ全体の中での各制御対象物の位置も容易に知ることができる。このため、制御対象物の移動量の誤差によって、隊列が崩れるといった問題を起こしにくい。また、複数の制御対象物を連結したように、同時に複数の制御対象物を移動させていくことが可能である。なお、制御対象物は、隣の位置に他の制御対象物が存在しているか否か、障害物があるか否か、そして、自身が目標位置上にいるかどうかを知ることができるものとする。 As for the object to be controlled, for example, as shown in FIG. 1, another object to be controlled exists in one of the six squares in the vertical, horizontal, and height directions around the object to be controlled (hereinafter also referred to as "up, down, left, right, front, and rear directions"). It shall move while maintaining the state where it is. This method has the advantage that one controlled object itself moves a distance corresponding to the size of one controlled object, so that the movement amount of one operation can be accurately measured. In addition, by measuring the relative positions of adjacent controlled objects sharing one plane, the position of each controlled object in the entire group of controlled objects can be easily known. For this reason, it is difficult to cause a problem that the formation is broken due to an error in the amount of movement of the controlled object. In addition, it is possible to simultaneously move a plurality of controlled objects as if they were linked together. In addition, it is assumed that the controlled object can know whether there is another controlled object at the next position, whether there is an obstacle, and whether it is on the target position. .
 任務を行う制御対象物は、p台(p≧24=8×3)であり、各制御対象物は、隣接する制御対象物と一面以上を共有しつつ、三次元空間におけるX-Y-Z軸方向に移動可能とする。図1の各立方体は、それぞれの制御対象物の位置を示すものである。各立方体には制御対象物は一台しか存在することができない。それぞれの制御対象物は、移動しようとする方向に障害物か他の制御対象物がある場合には、静止をするものと仮定する。なお、制御対象物が存在しうる立方体状の空間をマス、または、格子ともいう。図2において、濃い灰色のマスは制御対象物が存在する位置を示す。図2Aの制御対象物が存在する位置は制御対象物の初期位置の集合を示し、図2Cの制御対象物が存在する位置は制御対象物の目標位置の集合を示す。図2Bに示すように、目標位置の集合と初期位置の集合は重なり合う部分を持っている。目標位置の集合で表される領域を目標隊列エリアともいう。このように、各初期位置及び各目標位置は、それぞれ縦横高さ方向の少なくとも何れかの方向において他の初期位置及び目標位置と隣接し、制御対象物の初期位置及び目標位置での隊列形状はそれぞれ一塊の任意の形状である。 There are p controlled objects (p ≥ 24 = 8 x 3) that perform missions, and each controlled object moves in the X-Y-Z axis direction in three-dimensional space while sharing one or more surfaces with adjacent controlled objects. make it possible. Each cube in FIG. 1 indicates the position of each controlled object. Only one controlled object can exist in each cube. Each controlled object is assumed to be stationary if there is an obstacle or other controlled object in the direction in which it intends to move. A cubic space in which a controlled object can exist is also called a mass or a grid. In FIG. 2, dark gray squares indicate positions where control objects exist. The positions where the controlled objects exist in FIG. 2A indicate a set of initial positions of the controlled objects, and the positions where the controlled objects exist in FIG. 2C indicate a set of target positions of the controlled objects. As shown in FIG. 2B, the set of target positions and the set of initial positions have overlapping portions. A region represented by a set of target positions is also called a target formation area. In this way, each initial position and each target position are adjacent to other initial positions and target positions in at least one of the vertical and horizontal directions, respectively, and the platoon shape at the initial position and target position of the control object is Each is a lump of arbitrary shape.
 [制御対象物の座標設定]
 それぞれの制御対象物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とする。
[Coordinate setting of controlled object]
The position of each controlled object i (i represents the controlled object number i = 0, 1, 2, 3, ..., p-1) is (Xr[i], Yr[i], Zr[i]) , where the initial position is (Xr0[i], Yr0[i], Zr0[i]) and the target position is (Xre[i], Yre[i], Zre[i]), the problem is It can be defined as obtaining an action plan for moving a controlled object placed at an initial position to a target position. Let s be the set of initial positions of the controlled object, and g be the set of target positions (Xre[i], Yre[i], Zre[i]).
 [任務空間の定義]
 iを制御対象物番号としたとき、制御対象物iの各状態(制御対象物の位置と行動)は離散値で表現される。部屋をX,Y,Zの直交座標系からなる3次元空間で表すと、X軸、Y軸、Z軸をそれぞれ離散化表現した値により各位置を表現する。つまり、部屋(3次元空間)は格子で区切られ、各格子が各位置に対応する。また、各格子において、障害物の「ある/なし」が予め設定されている。
[Definition of mission space]
When i is the controlled object number, each state of the controlled object i (the position and behavior of the controlled object) is represented by a discrete value. When a room is expressed in a three-dimensional space consisting of an X, Y, and Z orthogonal coordinate system, each position is expressed by values obtained by discretely expressing the X, Y, and Z axes. That is, the room (three-dimensional space) is partitioned by grids, and each grid corresponds to each position. Also, in each grid, "presence/absence" of obstacles is set in advance.
 [制御対象物動作の定義]
 また、行動主体は部屋に配置されている各制御対象物となる。制御対象物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格子だけ移動する
とする。
[Definition of controlled object motion]
Also, the subject of action is each controlled object arranged in the room. The action a of the controlled object i (where i is the controlled object number) takes one of 7 types of movement, i.e., resting and moving in the vertical, horizontal and height directions by one grid. For example, for a∈{0,1,2,3,4,5,6},
0: stationary
1: Move 1 lattice in the positive direction of the X-axis in 3D space
2: Move one grid in the positive direction of the Y-axis in three-dimensional space
3: Move one grid in the negative direction of the X axis in three-dimensional space
4: Move one grid in the negative direction of the Y-axis in three-dimensional space
5: Move 1 lattice in the positive direction of the Z-axis in 3D space
6: Suppose we move only one lattice in the negative direction of the Z-axis in three-dimensional space.
 [探索計算上の問題点]
このような任務環境における状態空間は、制御対象物数×3の次元数の状態を持ち、かつ選択可能な行動数は、制御対象物の行動(=7通り)の制御対象物数乗だけ存在する。例えば、制御対象物数が50で、部屋の縦横高さ方向の格子数がそれぞれ20であるとすれば状態数は20の150乗個にもなり、探索計算に要する資源の量は膨大なものとなる。さらに制御対象物数が1台増えるごとに、その状態数は8000倍増加していくことになる。本実施形態の[問題設定]の項で説明したように、制御対象物同士が接しているという拘束条件を取り入れる場合、制御対象物のお互いの移動を考慮したうえで探索計算行わなければならないために、根本的な計算量の削減は難しく、複数制御対象物を使用する場合の大きな問題となっている。
[Problem in search calculation]
The state space in such a mission environment has states with the number of dimensions equal to the number of controlled objects x 3, and the number of selectable actions is the number of controlled object actions (= 7) to the power of the controlled object number. do. For example, if the number of objects to be controlled is 50, and the number of grids in the vertical and horizontal directions of the room is 20, the number of states will be 20 to the 150th power, and the amount of resources required for search calculation will be enormous. becomes. Furthermore, each time the number of objects to be controlled increases by one, the number of states increases by 8000 times. As described in the [Problem setting] section of this embodiment, when incorporating the constraint condition that the controlled objects are in contact with each other, the search calculation must be performed after considering the mutual movement of the controlled objects. Moreover, it is difficult to fundamentally reduce the amount of calculation, which is a big problem when using multiple controlled objects.
 [非特許文献2における特徴]
 非特許文献2におけるホモジニアス隊列制御では、上述の計算負荷の問題を解決するための方策の1つとして、ボイド制御の考え方を導入している。また、[問題設定]で述べたような隊列変形の問題を克服するために8マス制御対象物単位の考え方も導入している。
[Features in Non-Patent Document 2]
Homogeneous platoon control in Non-Patent Document 2 introduces the concept of void control as one of the measures for solving the above-described problem of computational load. In addition, in order to overcome the platoon deformation problem described in [Problem setting], the idea of 8 control object units is introduced.
 まず、ボイド制御について説明する。ここでいうボイドとは、ある制御対象物が別の位置に移動した後に、元いた位置にできる空隙のことである。別の言い方をすると、ボイドとは、制御対象物の移動する方向と反対の方向に移動する仮想的な存在である。こうした群制御対象物の隊列形成問題においては、複数の制御対象物の動作に着目するがゆえに、その探索計算量が爆発してしまうが、視点を変えて、ボイドの動きに着目すれば、多数の制御対象物の動作計画の問題を単一のボイドの動作計画として考えることができ、探索計算負荷の軽減に適している。しかし、変形動作中に制御対象物単位に属する各制御対象物はちりぢりになって、それぞれ別の制御対象物単位内に分かれてしまい、その後の制御対象物入れ替え動作が必要な場合の負荷上昇にもつながってしまっていた。また、初期位置と目標位置が共通部分を持ち、かつ、それらの共通部分が複数の非接続部分に分かれている場合には適用不可能であった。 First, void control will be explained. The void here means a gap that is formed at the original position after a certain controlled object moves to another position. In other words, a void is a virtual entity that moves in the direction opposite to the direction in which the controlled object moves. In such a group control object array formation problem, since the focus is on the motions of a plurality of control objects, the amount of search computation is exploding. The motion planning problem of the controlled object can be considered as a single void motion plan, which is suitable for reducing the search computation load. However, each controlled object belonging to the controlled object unit becomes scattered during the deformation operation and is divided into different controlled object units, and the load when the subsequent controlled object replacement operation is required. It also led to an increase. Moreover, it is not applicable when the initial position and the target position have a common portion and the common portion is divided into a plurality of non-connected portions.
 [8マス制御対象物単位の導入]
 そこで、図4(1)に示すように、8つの隣接した制御対象物を1つの単位とし(制御対象物単位)、制御対象物は、この制御対象物単位を維持しつつ移動を行うこととする。言い換えると、8台毎に1つの制御対象物単位を構成し、1つの制御対象物単位を構成する8台の制御対象物はそれぞれ3つの方向において1つの制御対象物単位を構成する他の制御対象物と隣接した状態を維持しつつ移動を行う。この制御対象物単位の集団は、互いに制御対象物単位ごとに一面を共有し、接しながら移動をするように制御される。すべての制御対象物は同一でホモジニアスであるとする。
[Introduction of 8 mass control object units]
Therefore, as shown in FIG. 4(1), eight adjacent control objects are treated as one unit (control object unit), and the control object moves while maintaining this control object unit. do. In other words, eight controlled objects constitute one controlled object unit, and each of the eight controlled objects constituting one controlled object unit can be controlled in three directions to form one controlled object unit. Move while maintaining a state adjacent to the object. This group of control object units is controlled so that each control object unit shares one surface and moves while being in contact with each other. Assume that all controlled objects are identical and homogeneous.
 ここでは8台の制御対象物がなす制御対象物単位が1つのマスの単位(本実施形態では、以下、この単位を「マス単位」または「位置単位」ともいう)であるとし、1つのマス単位を一状態として状態空間を組む。制御対象物単位の位置を(Xr_u[j],Yr_u[j], Zr_u[j])(j=0,1,2,…j_max-1)としたとき、その制御対象物単位j内の制御対象物をi1,i2,i3,i4,i5,i6,i7,i8とすれば、
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] 
Xr[i5] = 2 × Xr_u[j] + 1
Yr[i5] = 2 × Yr_u[j]
Zr[i5] = 2 × Zr_u[j] + 1
Xr[i6] = 2 × Xr_u[j] + 1
Yr[i6] = 2 × Yr_u[j] + 1
Zr[i6] = 2 × Zr_u[j] 
Xr[i7] = 2 × Xr_u[j] 
Yr[i7] = 2 × Yr_u[j] + 1
Zr[i7] = 2 × Zr_u[j] + 1
Xr[i8] = 2 × Xr_u[j] + 1
Yr[i8] = 2 × Yr_u[j] + 1
Zr[i8] = 2 × Zr_u[j] + 1
 なお、隊列変形中各時点で各制御対象物iが所属する制御対象物単位jを表す変数をRr[i]=jとする。また、制御対象物が前記i1,i2,i3,i4,i5,i6,i7,i8のどの位置にあるかを指す変数をIr[i]=(1,2,3,4,5,6,7,8)とする。各制御対象物単位の初期位置を(Xr_u0[j],Yr_u0[j],Zr_u0[j])とし、目標位置を(Xr_ue[j],Yr_ue[j],Zr_ue[j])とする。以下、制御対象物の全体数pを8の倍数とする。
Here, it is assumed that a control object unit formed by eight control objects is a unit of one mass (in this embodiment, this unit is hereinafter also referred to as a "mass unit" or a "position unit"). Build a state space with a unit as one state. When the position of the controlled object unit is (Xr_u[j], Yr_u[j], Zr_u[j]) (j=0,1,2,…j_max-1), the control within the controlled object unit j If the objects are i1,i2,i3,i4,i5,i6,i7,i8,
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]
Xr[i5] = 2 × Xr_u[j] + 1
Yr[i5] = 2 × Yr_u[j]
Zr[i5] = 2 × Zr_u[j] + 1
Xr[i6] = 2 × Xr_u[j] + 1
Yr[i6] = 2 × Yr_u[j] + 1
Zr[i6] = 2 × Zr_u[j]
Xr[i7] = 2 × Xr_u[j]
Yr[i7] = 2 × Yr_u[j] + 1
Zr[i7] = 2 × Zr_u[j] + 1
Xr[i8] = 2 × Xr_u[j] + 1
Yr[i8] = 2 × Yr_u[j] + 1
Zr[i8] = 2 × Zr_u[j] + 1
Let Rr[i]=j be a variable representing the control object unit j to which each control object i belongs at each time point during the formation transformation. Also, a variable indicating the position of the controlled object among i1, i2, i3, i4, i5, i6, i7, and i8 is given by Ir[i]=(1,2,3,4,5,6, 7,8). Assume that the initial position of each controlled object is (Xr_u0[j], Yr_u0[j], Zr_u0[j]) and the target position is (Xr_ue[j], Yr_ue[j], Zr_ue[j]). Hereinafter, the total number p of control objects is assumed to be a multiple of eight.
 また、図4(1)の例に限らず、制御対象物単位は以下の条件を満たすよう構成されていればよい。すなわち、制御対象物単位は、(1)三次元の直交座標系で各軸方向に長さM(M≧2、ただし、制御対象物1個の長さを長さ1とする)を有する立方体形状の空間(以降この空間をメタモジュールとする。)をなす構造であり、(2)各軸方向にM個の制御対象物が隣接する構造を含む。例えば、図4(1)に例示する制御対象物単位は、(1)各軸方向の長さM=2とした計8マスの立方体からなるメタモジュール構造であり、(2)各軸方向において2個の制御対象物が隣接する構造が含まれている。 In addition, the control object unit is not limited to the example of FIG. 4 (1), as long as it is configured to satisfy the following conditions. That is, the control object unit is (1) a cube having a length M (M≧2, where the length of one control object is defined as length 1) in each axial direction in a three-dimensional orthogonal coordinate system. It is a structure forming a shape space (hereinafter referred to as a metamodule), and includes (2) a structure in which M controlled objects are adjacent in each axial direction. For example, the control object unit illustrated in FIG. 4 (1) is (1) a metamodule structure consisting of a total of 8 cubes with a length of M = 2 in each axial direction, and (2) in each axial direction It contains a structure with two adjacent control objects.
 以後の説明では、制御対象物単位の一例として、図4(1)に示す8個の制御対象物からなる構造を制御対象物単位とする場合について説明するが、例えば、M個分の大きさのメタモジュール内で上述の(1)(2)の条件を満たすよう構成された制御対象物単位であれば同様の効果を得ることができる。 In the following description, as an example of a control object unit , a structure composed of eight control objects shown in FIG. A similar effect can be obtained if the controlled object unit is configured to satisfy the above conditions (1) and (2) in the metamodule of the same size.
 [ホモジニアス隊列制御]
 各制御対象物単位jが初期位置の集合S内にて、任意の位置に存在する状態から、各制御対象物単位jをそれぞれ目標位置の集合のうちのいずれかの位置(Xr_ue[j],Yr_ue[j],Zr_ue[j])に配置させるホモジニアス制御対象物隊列制御の方法について以下説明していく。
[Homogeneous platoon control]
From a state in which each controlled object unit j exists at an arbitrary position in the set S of initial positions, each controlled object unit j is moved to any position (Xr_ue[j], Yr_ue[j], Zr_ue[j]) will be described below.
 ここで、集合S、Gは、8マスの制御対象物単位で構成されているものとする。 Here, it is assumed that the sets S and G are configured in units of control objects of 8 squares.
 図5に示す通り、集合Sの状態にある制御対象物構造を集合Gの状態に変形させるには、タネリングと呼ばれる方法をとる。図5に示す動作においては、先頭の制御対象物単位Headと尾部の制御対象物単位Tailを結ぶ一連の制御対象物単位がいわば蛇のような形で、先頭制御対象物単位Headの動作を追従する方式で動作する。なお、他のタネリングを行う制御対象物単位、例えば非特許文献2に示すような伸長収縮制御対象物単位を使用した2×2×2の制御対象物単位を使用した制御対象物構造においてもこのタネリング動作は同様であり、本発明で示すタネリングのHeadとTailの選択方法は、同様に適用可能である。タネリングを使用した隊列変形は障害物のある環境においても、隊列変形動作を初期位置の集合と目標位置の集合以外の位置を使用せずに実行可能である。 As shown in Fig. 5, a method called tunneling is used to transform the control object structure in the state of set S to the state of set G. In the operation shown in FIG. 5, a series of control object units connecting the head control object unit Head and the tail control object unit Tail follows the operation of the head control object unit Head in a snake-like shape. It works in a way that It should be noted that this is also true for a controlled object structure that uses other controlled object units that perform tunneling, such as a 2×2×2 controlled object unit that uses an expansion/contraction control object unit as shown in Non-Patent Document 2. The tunneling operation is the same, and the method of selecting head and tail for tunneling shown in the present invention is similarly applicable. The platooning transformation using tunneling can be executed without using positions other than the set of initial positions and the set of target positions even in an environment with obstacles.
 図6に、8マス制御対象物単位のタネリング動作の1ステップを示す。Head内から同時に1つの空隙が生成され、それにより、Head内の1つの制御対象物が、D位置内に移動する。Headで生成された1つの空隙はその後、Tail位置まで送られて、Tail位置より制御対象物構造から放出される。その過程で、Tail内の1つの制御対象物が、Tail位置の外に出る(図6中、右隣の制御対象物単位内に移動する。)。図6の一連の動作を繰り返すことにより、HeadとTailの間の制御対象物単位が1つだけ位置を進める。このプロセス中、HeadとTailに挟まれる複数の制御対象物単位において、非接続が生じることはない。  Fig. 6 shows one step of the tunneling operation in units of 8 mass control objects. One air gap is generated from within Head at the same time, and thereby one controlled object within Head moves into D position. One void generated in the Head is then sent to the Tail position and released from the control object structure from the Tail position. In the process, one controlled object within Tail moves out of the Tail position (in FIG. 6, it moves into the next controlled object unit on the right). By repeating the series of operations in FIG. 6, the position of the controlled object unit between Head and Tail advances by one. During this process, disconnection does not occur in multiple control object units sandwiched between Head and Tail.
 この過程にて、Headにて生成された空隙(ボイド)は、生成後にボイドの各時点での進行方向に接する2つの制御対象物を、ボイドの進行方向の逆方向にスライドさせることで移動をする。この移動方法を繰り返すことにより、ボイドはTailの1つ手前の制御対象物単位内(図6中Tail’)にて、Headで生成された時と同じ位置にたどり着く。この後、Tail’→Tailの方向にボイドと接する位置にあるTail内の制御対象物単位を、Tail→Tail’の方向にスライドさせることで、ボイドはTailから放出される。ここで注意しなければならないのは、Head内にてボイドを生成する際に、その生成位置を適切に選択しなければ、Headでのボイド生成時、およびTailからのボイド放出時に、制御対象物の非接続が生じてしまうことである。後述するように、本発明においては、非特許文献2の場合と異なり、制御対象物単位内の同じ位置で8つのボイドを生成することになるので、これについては特に注意を要する。 In this process, the gap (void) generated in the Head is moved by sliding the two controlled objects that are in contact with the traveling direction of the void at each point after generation in the opposite direction of the traveling direction of the void. do. By repeating this movement method, the void reaches the same position as when it was generated in Head within the control object unit (Tail' in FIG. 6) one before Tail. After that, the void is released from the tail by sliding the control object unit in the tail that is in contact with the void in the direction of Tail'→Tail in the direction of Tail→Tail'. It should be noted here that when voids are generated in the Head, if the generation position is not properly selected, when voids are generated in the Head and emitted from the Tail, the controlled object is disconnected. As will be described later, in the present invention, unlike the case of Non-Patent Document 2, eight voids are generated at the same position within the control object unit, so this requires special attention.
 つづいて、先頭制御対象物単位Headと尾部制御対象物単位Tailの選び方について述べる。初期位置の集合Sと目的位置の集合Gの共通部分の領域S∩Gは、互いに非接続なC個の領域AS∩G1, AS∩G2, AS∩G3, …, AS∩GCにより構成されているとする。Cは、1以上の整数である。 Next, how to select the head control object unit Head and the tail control object unit Tail will be described. The region S∩G of the intersection of the set S of initial positions and the set G of target positions is composed of C mutually disconnected regions A S∩G1 , A S∩G2 , A S∩G3 , …, A S∩GC Suppose that it is configured by C is an integer of 1 or more.
 まず先頭制御対象物単位Headの選択について注意すべきことは、変形動作中に全体の制御対象物構造からこれらのC個のうちのいずれも、制御対象物構造から非接続にならないようにすることである。例えば、S内の制御対象物単位を徐々にG内に移動させたとするとその分S内に残る制御対象物単位数は少なくなる。この過程で注意を怠ると、共通部分が制御対象物構造から非接続とならないようにしつつも変形のために使用できる制御対象物がS内にもG内にも存在しないという事態が起こりうる。そのような事態を避けるために、非特許文献2とほぼ同様に、以下の手法を採用する。 First of all, it should be noted that the selection of the top control object unit Head should ensure that none of these C objects become disconnected from the control object structure during the deformation operation. is. For example, if the control object units in S are gradually moved into G, the number of control object units remaining in S will decrease accordingly. If we are not careful in this process, it can happen that there is no control object in S or G that can be used for deformation while keeping the common part from being disconnected from the control object structure. In order to avoid such a situation, the following technique is adopted in substantially the same manner as in Non-Patent Document 2.
 [Head_Tail_Selection]
 (1) 変形過程開始前に、複数の非接続なS∩G領域をAS∩G1、AS∩G2、AS∩G3、AS∩G4、、、とし、それらの1つを選択してAS∩Gstartとする。AS∩Gstart内の制御対象物単位位置をすべて集合Upのメンバーとする。この処理は、後述する集合選択部1により行われる。
[Head_Tail_Selection]
(1) Before starting the deformation process, let A S∩G1 , A S∩G2 , A S∩G3 , A S∩G4 , . . . and let A S∩Gstart . Let all controlled object unit positions in A S∩Gstart be members of the set Up. This processing is performed by the set selection unit 1, which will be described later.
 (2) Up初期化時、および(4)でのUp更新時に、Upによって分断されたS-S∩Gの領域をAS-S∩G1、AS-S∩G2、AS-S∩G3、AS-S∩G4、、、とし、Upによって分断されたG-S∩Gの領域をAG-S∩G1、AG-S∩G2、AG-S∩G3、AG-S∩G4、、、とする。AG-S∩G1、AG-S∩G2、AG-S∩G3、AG-S∩G4、、、に接するUp内の位置をひとつずつ選び、Eiとする。Eiと接するG-S∩Gの領域をAG-S∩Giとする。この処理は、後述する入口位置選択部2により行われる。i=1、j=1とする。 (2) When Up is initialized and when Up is updated in (4), the regions of SS∩G divided by Up are A SS∩G1 , A SS∩G2 , A SS∩G3 , A SS∩G4 , , and the regions of GS∩G divided by Up are A GS∩G1 , A GS∩G2 , A GS∩G3 , A GS∩G4 , . Select the positions in Up that are in contact with A GS∩G1 , A GS∩G2 , A GS∩G3 , A GS∩G4 , . . . Let A GS∩Gi be the region of GS∩G that touches Ei. This processing is performed by the entrance position selection unit 2, which will be described later. Let i=1 and j=1.
 (3) 各ステップでのHeadとTailの選択:AG-S∩Gi内の位置がすべて制御対象物で埋まっているならば、AG-S∩Gi内に空隙があるようになるまでiをインクリメントする。Up内にあり、かつまだ制御対象物で埋められていないAG-S∩Gi内の位置に接している制御対象物のうちEiからのAG-S∩Gi内でのマンハッタン距離が最も近いものをHeadとする。このHeadの選択の処理を(3-1)とする。この(3-1)の処理は、後述する先頭制御対象物単位選択部3により行われる。 (3) Selection of Head and Tail at each step: If all positions in A GS∩Gi are filled with control objects, increment i until there is a gap in A GS∩Gi . Let Head be the control object with the shortest Manhattan distance in A GS∩Gi from Ei, among the control objects within Up that are in contact with positions in A GS∩Gi that are not yet filled with control objects. do. This Head selection processing is assumed to be (3-1). The processing of (3-1) is performed by the head control object unit selection unit 3, which will be described later.
 Headに接するまだ制御対象物で埋められていないAG-S∩Gi内の位置を1つ選びDとする。DをUpに追加する。このDをUpに追加する処理を(3-2)とする。この(3-2)の処理は、後述する目的位置選択部4により行われる。 Select one position in A GS∩Gi that is not yet filled with a controlled object that is in contact with Head and let it be D. Add D to Up. Let (3-2) be the process of adding this D to Up. The processing of (3-2) is performed by the target position selection unit 4, which will be described later.
 AS-S∩Gi内にもうTailにできる制御対象物単位がない場合は、AS-S∩Gi内にTailにできる制御対象物単位が見つかるまでjをインクリメントする。あるAS-S∩Gj内にある制御対象物単位のうち、EiからのS内マンハッタン距離が最も大きいUp外の制御対象物単位をTailとする。このTailの選択の処理を(3-3)とする。この(3-3)の処理は、後述する尾部制御対象物単位選択部5により行われる。 If there is no more control object unit that can be Tailed within A SS∩Gi , j is incremented until a control object unit that can be Tailed is found within A SS∩Gi . Among the control object units within a certain A SS∩Gj , let Tail be the control object unit outside Up that has the largest Manhattan distance in S from Ei. This Tail selection processing is assumed to be (3-3). The processing of (3-3) is performed by the tail control object unit selection unit 5, which will be described later.
 (4) UpがAS∩Gstart以外のAS∩G1、AS∩G2、AS∩G3、AS∩G4、、、のうち、Upに含まれないものの中にある制御対象物単位に接しているとき、その制御対象物単位からG内で接続している位置にある制御対象物単位位置をすべてUpに追加する。このUpへの追加の処理は、後述する集合追加部7により行われる。 (4) Up is not included in Up among A S∩G1 , A S∩G2 , A S∩G3 , A S∩G4 , etc. other than A S∩Gstart for each controlled object If they are touching, add all the control object unit positions that are connected in G from that control object unit to Up. The process of addition to this Up is performed by the set addition unit 7, which will be described later.
 図7及び図25を用いて、制御対象物単位の初期位置Sから目標位置Gへの移動の例を説明する。図7(1)は、制御対象物単位の初期位置Sを示している。図7(2)は、制御対象物単位の目標位置Gを示している。 An example of movement from the initial position S to the target position G in units of control objects will be described using FIGS. 7 and 25. FIG. FIG. 7(1) shows the initial position S for each controlled object. FIG. 7(2) shows the target position G for each controlled object.
 図7(1)(2)において、非接続なS∩G領域は、薄いドットで示されたAS∩G1と、濃いドットで示されたAS∩G2とである。この例では、AS∩Gstartとして、AS∩G1が選択される。AS∩G1の位置がUpに追加される。 In FIGS. 7(1) and 7(2), the disconnected S∩G regions are A S∩G1 indicated by light dots and A S∩G2 indicated by dark dots. In this example, A S∩G1 is chosen as A S∩Gstart . The position of A S∩G1 is added to Up.
 図7(1)において、Upによって分断されたS-S∩Gの領域は、太い破線で示されたAS-S∩G1と、太い一点鎖線で示されたAS-S∩G2とである。 In FIG. 7(1), the regions of SS∩G divided by Up are A SS∩G1 indicated by a thick dashed line and A SS∩G2 indicated by a thick one-dot chain line.
 図7(2)において、Upによって分断されたG-S∩Gの領域は、太い破線で示されたAG-S∩G1と、太い一点鎖線で示されたAG-S∩G2である。この例では、AG-S∩G1に接するUp内の位置としてE1が選択され、AG-S∩G2に接するUp内の位置としてE2が選択されている。E1は、AG-S∩G1への入口であり、E2はAG-S∩G2への入口とも言える。 In FIG. 7(2), the regions of GS∩G divided by Up are AGS∩G1 indicated by a thick dashed line and AGS∩G2 indicated by a thick dashed line. In this example, E1 is chosen as the position in Up bordering AGS∩G1 and E2 is chosen as the position in Up bordering AGS∩G2 . E1 is the entrance to A GS∩G1 , and E2 can be said to be the entrance to A GS∩G2 .
 図25(1)から図25(8)において、Headとして選択された制御対象物単位を太線で示し、Dを破線で示す、Tailとして選択された制御対象物単位を太い一点鎖線で示す。図25(k) (k=1~4)で選択されたHeadからTailまでの一連の制御対象物単位(タネリングスネイク)を、HeadがDに移動し、他の一連の制御対象物単位がHeadの動作を追従するように移動させると、図25(k+1)の隊列になる(この間i=1)。図25の(5)にて、[Head_Tail_Selection]の(4)の処理により、AS∩G2内の制御対象物単位が一つUpに追加されている。以降、図25(1)時点での旧AG-S∩G1内の残り二つの空隙位置が新AG-S∩G1をなし、図25(5)~(7)にかけての動作で、新AG-S∩G1はすべて埋められる。この例では、図25(1)から図25(8)のように、Head,Tail,Dを選択すると、最終的に図25(9)の隊列となり、全ての制御対象物単位が目標位置Gに移動することになる。 25(1) to 25(8), the control object unit selected as Head is indicated by a thick line, D is indicated by a dashed line, and the control object unit selected as Tail is indicated by a thick dashed line. A series of controlled object units (tunneling snake) from Head to Tail selected in FIG. If they are moved so as to follow the movement of the Head, they form a formation as shown in FIG. 25(k+1) (i=1 during this period). In (5) of FIG. 25, one control object unit in AS∩G2 is added to Up by the processing of (4) of [Head_Tail_Selection]. After that, the remaining two gap positions in the old A GS ∩ G1 at the time of Fig. 25 (1) form the new A GS G1, and the new A GS ∩ G1 are all filled. In this example, selecting Head, Tail, and D as shown in FIGS. will move to
 なお、図25(1)において、先に述べたように、AS∩G1=Upとされる。図25(1)から図25(4)において、DがUpに追加される。図25(5)において、DとAS∩G2の1つがUpに追加される。図25(6)において、AS-S∩G1の最後の1つの制御対象物単位がTailになり、新AG-S∩G1の最後の空隙がDとなる。図25(7)において、AS-S∩G2の1つがTailになり、新AS∩G2が全部埋まる(ここで埋められる新AS∩G2の空隙は、図25(5)のUp更新にて設定された新たなAG-S∩G2内のものとなり、図7の旧AG-S∩G2は、新AG-S∩G3となる。)。図25(8)にて、AS∩G2の最後の1つがTailになり、図7の旧AG-S∩G2(新AG-S∩G3)が埋まる。 In addition, in FIG. 25(1), as described above, A S∩G1 =Up. In Figures 25(1) to 25(4), D is added to Up. In FIG. 25(5), one of D and A S∩G2 is added to Up. In FIG. 25(6), the last control object unit of A SS∩G1 is Tail, and the last gap of new A GS∩G1 is D. In FIG. 25(7), one of A SS∩G2 becomes Tail, and all the new A S∩G2 are filled (the gap of the new A S∩G2 to be filled here is the Up update of FIG. 25 (5) is within the new A GS∩G2 that has been set, and the old A GS∩G2 in FIG. 7 becomes the new A GS∩G3 ). In FIG. 25(8), the last one of A S∩G2 becomes Tail, and the old A GS∩G2 (new A GS∩G3 ) in FIG. 7 is filled.
 本発明では、できる限りEiからのマンハッタン距離が同じ位置をHeadとして選ぶようにしている。これは、後述の隊列変形動作の線形化において、あるHeadとTailの組で行うタネリング動作の開始から、次のHeadとTailの組のタネリング動作の開始までの時間を短くすることが可能だからである。例えば、このようにすることで、ある時点でEiからのマンハッタン距離がδEiであるAG-S∩Gi位置をHeadとした場合、次にHeadとして選択される位置のEiからのマンハッタン距離はδEiかδEi+1となる場合が多い。後述する「あるHeadとTailの組で行うタネリング動作の開始から、次のHeadとTailの組のタネリング動作の開始までの時間」を計算する式において、このような場合の時間間隔は取りうる最小の値に近い値になる。 In the present invention, a position with the same Manhattan distance from E i is selected as Head as much as possible. This is because it is possible to shorten the time from the start of the tunneling motion performed by a head and tail pair to the start of the tunneling motion of the next head and tail pair in the linearization of the platoon deformation motion described later. be. For example, by doing this, if Head is the A GS ∩ Gi position where the Manhattan distance from Ei is δ Ei at a certain point in time, then the Manhattan distance from Ei at the position selected as Head next is δ Ei or δ Ei +1 in many cases. In the formula for calculating "the time from the start of a tunneling operation performed by a set of Head and Tail to the start of the tunneling operation of the next Head and Tail set" described later, the time interval in such a case is the minimum possible. is close to the value of
 従来手法では図6に示すタネリング動作が各HeadTailごとに終了してから、次のタネリングHeadTailでのタネリング動作を開始していたので、各HeadTailでのタネリング動作ごとに待ち時間が長く、そのため隊列変形に要する時間が長かった。本発明では各HeadTailでのタネリング動作ごとの待ち時間を短縮することができる。 In the conventional method, after the tanneling operation shown in FIG. 6 is completed for each HeadTail, the tanneling operation in the next tanneling HeadTail is started. It took a long time to The present invention can reduce the latency for each tunneling operation on each HeadTail.
 各HeadTail選択時(tステップ目)における「あるHeadとTailの組で行うタネリング動作の開始から、次のHeadとTailの組のタネリング動作の開始までの時間」の算出は以下のように行う。 When each HeadTail is selected (step t), the calculation of "the time from the start of the tunneling operation performed by a set of Head and Tail to the start of the tunneling operation of the next set of Head and Tail" is performed as follows.
 [Time_Interval]
(1) tステップ目のHeadとTailを結ぶEiを経由するロボット構造内の経路をP[t][l](l=0,1,2,,,nt)、t-1ステップ目のHeadとTailを結ぶEiを経由するロボット構造内の経路をP[t-1][l](l=0,1,2,,,nt-1)とする。これらの経路はHeadから発生したボイドがTailに至るまでたどる経路である。P[t][0]、P[t-1][0]にHead位置が格納され、 P[t][nt]、P[t-1][nt-1]にTail位置が格納される。 
(2) l=0とする。tl=1とする。Delay_buf=0とする。
[Time_Interval]
(1) P[t][l](l=0,1,2,,,n t ) in the robot structure via Ei connecting Head and Tail at the t-th step, Let P[t-1][l](l=0,1,2,,,n t-1 ) be the path in the robot structure via Ei connecting Head and Tail. These paths are paths followed by voids generated from Head to Tail. Head position is stored in P[t][0], P[t-1][0], Tail position is stored in P[t][n t ], P[t-1][n t-1 ] be done.
(2) Let l = 0. Let tl=1. Set Delay_buf=0.
(3) P[t][l]の位置と同じ位置がP[t-tl][m](m=0,1,2,,,nt-1)内にあるか探索する。ない場合、lをインクリメントし(3)を繰り返す。あった場合(4)へ
(4) P[t][l]=P[t-tl][m]のとき、その時のmをmcとする。以下の計算をしtl=0なら(5)へ、そうでないならtlをインクリメントし(3)へ
Wt←15.
Interval_Cand[tl] ← Wt + 2 + mc - l - Delay_buf;
Delay_buf += Interval_Cand[tl]
(5) Interval_Cand[tl](tl=1~t)の値の中で最も大きいものをt-1ステップ目とtステップ目のタネリングの開始時刻の時間差Interval[t]とする。
(3) Search for the same position as the position of P[t][l] in P[t-tl][m] (m=0,1,2,,,n t-1 ). If not, increment l and repeat (3). If there is, go to (4)
(4) When P[t][l]=P[t-tl][m], let m be mc. If tl = 0, go to (5), if not, increment tl and go to (3)
Wt ← 15.
Interval_Cand[tl] ← Wt + 2 + mc - l - Delay_buf;
Delay_buf += Interval_Cand[tl]
(5) The largest value among Interval_Cand[tl] (tl = 1 to t) is taken as the time difference Interval[t] between the start times of the t-th step and the t-1th step.
 以上の処理は、tステップ目のHeadからTailに至るボイドの経路が、以前に実行されたタネリング動作で発生したボイドの動作経路に重なる場合には、先に発生したボイドがその新旧経路同士が重なる位置を通り過ぎるのを待つのに必要な待ち時間を計算している。Wtは一つの制御対象物単位からすべてのボイドが生成するのに要する動作ステップ数である(図6)。このような処理を行うことで、各ボイドが衝突することなく、各HeadTailでのタネリング動作ごとの待ち時間が短縮される。 In the above process, if the path of the void from Head to Tail of the tth step overlaps the motion path of the void that occurred in the previous tunneling operation, the void that occurred earlier We are calculating the latency required to wait to pass the overlapping position. Wt is the number of motion steps required to generate all voids from one controlled object unit (Fig. 6). By performing such processing, the waiting time for each tunneling operation in each HeadTail is shortened without colliding each void.
 しかし、本手法を用いたとしてもt-1ステップ目とtステップ目のタネリングの開始時刻の時間差が、大きくなってしまう場合がまれに起こる。それは、主に[Head_Tail_Selection]の(4)が実行されて、Upに新たな位置が追加された場合においてである。その際、[Time_Interval]内のmc-lの値が大きくなってしまうことが起こりうる。(tステップ目のHeadに近い位置とt-1ステップ目のTailに近い位置でタネリングスネイク同士の交点がある場合)。 However, even if this method is used, there are rare cases where the time difference between the start times of the t-1 step and the t-th step becomes large. This is mainly when (4) of [Head_Tail_Selection] is executed and a new position is added to Up. At that time, the value of mc-l in [Time_Interval] may become large. (If there is an intersection point between the tunneling snakes at the t-th step near the Head and the t-1th step near the Tail).
 このような場合においては、二つのタネリングスネイクが交差したとしても、それぞれのタネリングスネイク内のボイドの軌道が交点を持たないようにボイド制御を行うことが有効である。 In such a case, it is effective to perform void control so that the trajectories of voids in each tumbling snake do not have an intersection even if two tumbling snakes intersect.
 図4(2)に示すように、もし二つのボイドが一つの制御対象物単位内にある場合でも、それぞれのボイドが対角の位置にあるならば(例えば7,2の位置)、その後、それぞれのボイドが6方向のどの向きに移動したとしてもボイド同士の衝突は起こらない。すなわち例えば、ステップt-1以前のタネリングステップにおいては、すべてのボイドをHead内の8の位置で生成し、ステップt以降のタネリングステップにて、すべてのボイドをHead内の4の位置で生成できれば、ステップt-1とステップtのタネリングスネイクの間に交点があったとしても、それぞれのタネリングステップで生成されるボイド同士の衝突を回避することが可能となる。 As shown in FIG. 4(2), even if there are two voids in one controlled object unit, if the voids are at diagonal positions (for example, positions 7 and 2), then Collisions between voids do not occur even if each void moves in any of the six directions. That is, for example, in the tunneling steps before step t−1, all voids are generated at position 8 in Head, and in the tunneling steps after step t, all voids are generated at position 4 in Head. If it can be generated, even if there is an intersection between the tunneling snakes at step t-1 and step t, it is possible to avoid collisions between voids generated at each tunneling step.
 よって、ステップt-1 のタネリングにて[Head_Tail_Selection]の(4)が実行された場合に、ボイドの発生位置を8から4、もしくは4から8に切り替えることで、前述のステップt-1のタネリングとステップtのタネリングの開始時間の差を小さい値に抑えることが可能となるのである。 Therefore, when (4) of [Head_Tail_Selection] is executed in step t-1, by switching the void generation position from 8 to 4 or from 4 to 8, the above-mentioned tunneling of step t-1 and step t can be suppressed to a small value.
 この場合、注意しなければならないのは、
(i) Head内のボイド発生位置が8で、HeadからDへの移動の方向ahが1,2,5の場合
(ii) Head内のボイド発生位置が4で、HeadからDへの移動の方向ahが3,4,6の場合
(iii) Head内のボイド発生位置が8で、Tail’からTailへの移動の向きatが、1,2,5の場合
(iv) Head内のボイド発生位置が4で、Tail’からTailへの移動の向きatが、3,4,6の場合
である。例えば、図8(a)に示すように、Head内の2、5,6,8の位置でボイドを発生させる場合、HeadからDへの移動が右方向(ah=1)だとすると、最初のボイドの生成の時点で非接続が発生してしまう。また、図8(b)に示すように、Head内の1,3,4,7の位置でボイドを発生させる場合、Tail’からTailへの移動が左方向(at=3)だとすると、Tailでの最後のボイドの排出の時点で非接続が発生してしまう。このような事態が上記(i)~(ii)の場合に発生するのである。そこで、本発明では、上記(i)(ii)の場合において図9~図13に示す動作で、Head内での1つめから4つ目までのボイドの生成を行い、図14に示す動作で、5つ目から8つ目までのボイドの生成を行うこととする。また、上記(iii)(iv)の場合において図15~図19に示す動作で、Tail内での5つ目から8つ目までのボイドの排出を行い、図20に示す動作で、1つ目から4つ目までのボイドの排出を行うこととする。上記(i)(ii)以外の場合のボイド生成過程は図21、図22に示すとおりである。上記(iii)(iv)以外の場合のボイド排出過程は図23、図24に示すとおりである。
In this case, it should be noted that
(i) When the void generation position in Head is 8 and the direction ah of movement from Head to D is 1, 2, 5
(ii) When the void generation position in Head is 4 and the direction ah of movement from Head to D is 3, 4, 6
(iii) When the void generation position in the head is 8 and the direction of movement at from Tail' to Tail is 1, 2, 5
(iv) The void generation position in Head is 4, and the direction at of movement from Tail' to Tail is 3, 4, and 6. For example, as shown in FIG. 8(a), when voids are generated at positions 2, 5, 6, and 8 in Head, if the movement from Head to D is to the right (ah=1), the first void Disconnection occurs at the time of generation. Also, as shown in FIG. 8(b), when voids are generated at positions 1, 3, 4, and 7 in Head, if the movement from Tail' to Tail is in the left direction (at=3), Tail Disconnection occurs at the time of the last void discharge of . Such a situation occurs in cases (i) to (ii) above. Therefore, in the present invention, in the above cases (i) and (ii), the first to fourth voids in the Head are generated by the operations shown in FIGS. , 5th to 8th voids are generated. In the case of (iii) and (iv) above, the fifth to eighth voids in the tail are discharged by the operations shown in FIGS. 15 to 19, and one void is discharged by the operation shown in FIG. Suppose that the first to fourth voids are discharged. The void generation process in cases other than the above (i) and (ii) is as shown in FIGS. 21 and 22. FIG. The void discharge process in cases other than the above (iii) and (iv) is as shown in FIGS. 23 and 24. FIG.
 図9から図24に示す動作による1つめのボイドの生成から、8つめのボイドの排出までに要する時間は、非特許文献2に示すHead内ボイド生成位置の割り当て方法を使用した場合と変わらず、本手法の採用でタネリング時間のロスが発生することはない。 The time required from the generation of the first void to the discharge of the eighth void by the operations shown in FIGS. , there is no loss of tunning time by adopting this method.
 図9から図24において、太線の破線はボイドを示し、太線は、ボイドを発生させるために移動した制御対象物を示す。  In FIGS. 9 to 24, the thick dashed lines indicate voids, and the thick lines indicate controlled objects that have moved to generate voids.
 以上に述べたタネリング手法をまとめると以下のようなプロセスになる。 The following process is a summary of the tunneling method described above.
 [Tunneling_Linear]
Void_Gene_Position←8とする。
[Tunneling_Linear]
Void_Gene_Position←8.
(1) [Head_Tail_Selection]の(1)(2)を実行する。t=0とする。なお、[Tunneling_Linear]の(1)から(6)までの処理は仮想制御対象物によるシミュレーションで実行される。 (1) Execute (1) and (2) of [Head_Tail_Selection]. Let t = 0. Note that the processing from (1) to (6) of [Tunneling_Linear] is executed by simulation using a virtual controlled object.
 [Tunneling_Linear]の(1)の処理は、後述するステップS1及びステップS2の処理に対応している。 The processing of (1) of [Tunneling_Linear] corresponds to the processing of steps S1 and S2 described later.
(2) [Head_Tail_Selection]の(3)を実行する。 (2) Execute (3) of [Head_Tail_Selection].
 [Tunneling_Linear]の(2)の処理は、後述するステップS3からステップS5の処理に対応している。 The processing of (2) of [Tunneling_Linear] corresponds to the processing of steps S3 to S5 described later.
(3) t>0の時[Time_Interval]を実行する。ここで、Interval[t]がある閾値より大きい場合は、Void_Gene_Positionの値を8→4、4→8に切り替えて、Interval[t]をWt(=15)+2とする。 (3) Execute [Time_Interval] when t > 0. Here, if Interval[t] is greater than a certain threshold, the value of Void_Gene_Position is switched from 8 to 4 and from 4 to 8, and Interval[t] is set to Wt (=15)+2.
 [Tunneling_Linear]の(3)から(5)の処理は、後述するステップS6の処理に対応している。 The processing of (3) to (5) of [Tunneling_Linear] corresponds to the processing of step S6, which will be described later.
(4) tn=0とする。 (4) tn=0.
(5) tn=2×tv(tv=1,2,3,4,5,6,7,8)のとき、tv番目のボイドを以下のルールにより生成させる。生成後の最初のボイドの移動の向き(P[t][0]→P[t][1]の方向)をa[0]とし
 (5-1) Void_Gene_Position=8で、(ah=1,a[0]=3),(ah = 2, a[0] = 4),(ah = 5, a[0] = 6)の時、図9に示すv1からv4の場合のように1つめから4つ目までのボイドを生成させる。
(5) When tn = 2 x tv (tv = 1, 2, 3, 4, 5, 6, 7, 8), the tv-th void is generated according to the following rules. Let a[0] be the direction of movement of the first void after generation (direction of P[t][0] → P[t][1]) (5-1) Void_Gene_Position = 8, (ah = 1, a[0]=3), (ah = 2, a[0] = 4), (ah = 5, a[0] = 6), the first to the fourth void.
 (5-2) Void_Gene_Position=8で、(ah=1,a[0]=2),(ah = 2, a[0] = 5),(ah = 5, a[0] = 1)の時、図10に示すv1からv4の場合のように1つめから4つ目までのボイドを生成させる。 (5-2) When Void_Gene_Position = 8 and (ah = 1, a[0] = 2), (ah = 2, a[0] = 5), (ah = 5, a[0] = 1) , generate the first to fourth voids as in the case of v1 to v4 shown in FIG.
 (5-3) Void_Gene_Position=8で、(ah=1,a[0]=4),(ah = 2, a[0] = 6),(ah = 5, a[0] = 3)の時、図11に示すv1からv4の場合のように1つめから4つ目までのボイドを生成させる。 (5-3) When Void_Gene_Position = 8, (ah = 1, a[0] = 4), (ah = 2, a[0] = 6), (ah = 5, a[0] = 3) , generate the first to fourth voids as in the case of v1 to v4 shown in FIG.
 (5-4) Void_Gene_Position=8で、(ah=1,a[0]=5),(ah = 2, a[0] = 1),(ah = 5, a[0] = 2)の時、図12に示すv1からv4の場合のように1つめから4つ目までのボイドを生成させる。 (5-4) When Void_Gene_Position = 8 and (ah = 1, a[0] = 5), (ah = 2, a[0] = 1), (ah = 5, a[0] = 2) , generate the first to fourth voids as in the case of v1 to v4 shown in FIG.
 (5-5) Void_Gene_Position=8で、(ah=1,a[0]=6),(ah = 2, a[0] = 3),(ah = 5, a[0] = 4)の時、図13に示すv1からv4の場合のように1つめから4つ目までのボイドを生成させる。 (5-5) When Void_Gene_Position = 8, (ah = 1, a[0] = 6), (ah = 2, a[0] = 3), (ah = 5, a[0] = 4) , generate the first to fourth voids as in the case of v1 to v4 shown in FIG.
 (5-6) Void_Gene_Position=8のとき、ah=1,2,5の場合、図14に示すv5からv8の場合のように5つめから8つ目までのボイドを生成させる。 (5-6) When Void_Gene_Position = 8, when ah = 1, 2, 5, generate the 5th to 8th voids as in the case of v5 to v8 shown in Fig. 14 .
 (5-7) Void_Gene_Position=8のとき、ah=3,4,6の場合、図21及び図22に示すv1からv8の場合のように1つめから8つ目までのボイドを生成させる。 (5-7) When Void_Gene_Position = 8, when ah = 3, 4, 6, the first to eighth voids are generated as in the case of v1 to v8 shown in Figs. 21 and 22 .
 (5-8) Void_Gene_Position=4で、(ah=3,a[0]=1),(ah = 4, a[0] = 2),(ah = 6, a[0] = 5)の時、図9において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の動作のように1つめから4つ目までのボイドを生成させる。 (5-8) When Void_Gene_Position = 4, (ah = 3, a[0] = 1), (ah = 4, a[0] = 2), (ah = 6, a[0] = 5) , in FIG. 9, the direction of ah, a[0] is reversed (e.g., ah, a[0] is 1→3, 2→4, 5→6, 3→1, 4→2, 6→5 ), and the position of the control object is changed to 8←→4, 6←→3, 5←→1, and 7←→2. create voids.
 (5-9) Void_Gene_Position=4で、(ah=3,a[0]=4),(ah = 4, a[0] = 6),(ah = 6, a[0] = 3)の時、図10において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の動作のように1つめから4つ目までのボイドを生成させる。 (5-9) When Void_Gene_Position = 4, (ah = 3, a[0] = 4), (ah = 4, a[0] = 6), (ah = 6, a[0] = 3) , in FIG. 10, the direction of ah, a[0] is reversed (e.g., ah, a[0] is 1→3, 2→4, 5→6, 3→1, 4→2, 6→5 ), and the position of the control object is changed to 8←→4, 6←→3, 5←→1, and 7←→2. create voids.
 (5-10) Void_Gene_Position=4で、(ah=3,a[0]=2),(ah = 4, a[0] = 5),(ah = 6, a[0] = 1)の時、図11において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の動作のように1つめから4つ目までのボイドを生成させる。 (5-10) When Void_Gene_Position = 4, (ah = 3, a[0] = 2), (ah = 4, a[0] = 5), (ah = 6, a[0] = 1) , in FIG. 11, the direction of ah, a[0] is reversed (e.g., ah, a[0] is 1→3, 2→4, 5→6, 3→1, 4→2, 6→5 ), and the position of the control object is changed to 8←→4, 6←→3, 5←→1, and 7←→2. create voids.
 (5-11) Void_Gene_Position=4で、(ah=3,a[0]=6),(ah = 4, a[0] = 3),(ah = 6, a[0] = 4)の時、図12において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の動作のように1つめから4つ目までのボイドを生成させる。 (5-11) When Void_Gene_Position = 4 and (ah = 3, a[0] = 6), (ah = 4, a[0] = 3), (ah = 6, a[0] = 4) , in FIG. 12, the direction of ah,a[0] is reversed (e.g. ah, a[0] is 1→3, 2→4,5→6, 3→1, 4→2, 6→5 ), and the position of the control object is changed to 8←→4, 6←→3, 5←→1, and 7←→2. create voids.
 (5-12) Void_Gene_Position=4で、(ah=3,a[0]=5),(ah = 4, a[0] = 1),(ah = 6, a[0] = 2)の時、図13において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の動作のように1つめから4つ目までのボイドを生成させる。 (5-12) When Void_Gene_Position = 4, (ah = 3, a[0] = 5), (ah = 4, a[0] = 1), (ah = 6, a[0] = 2) , in FIG. 13, the direction of ah, a[0] is reversed (e.g. ah, a[0] is 1→3, 2→4, 5→6, 3→1, 4→2, 6→5 ), and the position of the control object is changed to 8←→4, 6←→3, 5←→1, and 7←→2. create voids.
 (5-13) Void_Gene_Position=4のとき、ah=3,4,6の場合、図14において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを生成させる。 (5-13) When Void_Gene_Position = 4 and ah = 3, 4, 6, in Fig. 14, the direction of ah, a[0] is reversed (e.g. ah, a[0] from 1 to 3 , 2 → 4, 5 → 6, 3 → 1, 4 → 2, 6 → 5), the position of the control object is changed to 8←→4, 6←→3, 5←→1, 7←→2 Generate the fifth through eighth voids like the actions v5 through v8 in the case of swapping.
 (5-14) Void_Gene_Position=4のとき、ah=1,2,5の場合、図21及び図22において、ah,a[0]の向きを正負逆にし(例:ah、a[0]を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv8の動作のように1つめから8つ目までのボイドを生成させる。 (5-14) When Void_Gene_Position = 4, when ah = 1, 2, 5, the direction of ah, a[0] is reversed in Figs. 1 → 3, 2 → 4, 5 → 6, 3 → 1, 4 → 2, 6 → 5), the position of the controlled object is 8←→4, 6←→3, 5←→1, 7← → Generate voids from 1st to 8th like the operation of v1 to v8 when exchanging in 2.
 すでに生成済みのtv番目のボイドについては、tn < (nt + 2×tv)- 2のとき、P[t][tn]→P[t][tn+1]の方向にボイドに接する二つの制御対象物をボイドの進行方向の逆方向にスライドさせることで、ボイドを移動させる(図6)。tn>=(nt + 2×tv)- 1のとき、以下の方法でtv番目のボイドをTailから放出させる。 For the tv-th void that has already been generated, when tn < (n t + 2×tv)- 2, two adjacent voids in the direction of P[t][tn]→P[t][tn+1] The void is moved by sliding the two controlled objects in the direction opposite to the traveling direction of the void (Fig. 6). When tn>=(n t + 2×tv)- 1, the tv-th void is emitted from Tail by the following method.
 (5-15) Void_Gene_Position=8で、(at=1,at’=1),(at = 2, at’ = 2),(at = 5, at’ = 5)の時、図15に示すv5からv8の場合のように5つめから8つ目までのボイドを排出させる。 (5-15) When Void_Gene_Position = 8 and (at = 1, at' = 1), (at = 2, at' = 2), (at = 5, at' = 5), v5 shown in Fig. 15 to exhaust the 5th through 8th voids as in v8.
 (5-16) Void_Gene_Position=8で、(at=1,at’=4),(at = 2, at’ = 6),(at = 5, at’ = 3)の時、図16に示すv5からv8の場合のように5つめから8つ目までのボイドを排出させる。 (5-16) When Void_Gene_Position = 8 and (at = 1, at' = 4), (at = 2, at' = 6), (at = 5, at' = 3), v5 shown in Fig. 16 to exhaust the 5th through 8th voids as in v8.
 (5-17) Void_Gene_Position=8で、(at=1,at’=2),(at = 2, at’ = 5),(at = 5, at’ = 1)の時、図17に示すv5からv8の場合のように5つめから8つ目までのボイドを排出させる。 (5-17) When Void_Gene_Position = 8 and (at = 1, at' = 2), (at = 2, at' = 5), (at = 5, at' = 1), v5 shown in Fig. 17 to exhaust the 5th through 8th voids as in v8.
 (5-18) Void_Gene_Position=8で、(at=1,at’=6),(at = 2, at’ = 3),(at = 5, at’ = 4)の時、図18に示すv5からv8の場合のように5つめから8つ目までのボイドを排出させる。 (5-18) When Void_Gene_Position = 8 and (at = 1, at' = 6), (at = 2, at' = 3), (at = 5, at' = 4), v5 shown in Fig. 18 to exhaust the 5th through 8th voids as in v8.
 (5-19) Void_Gene_Position=8で、(at=1,at’=5),(at = 2, at’ = 1),(at = 5, at’ = 2)の時、図19に示すv5からv8の場合のように5つめから8つ目までのボイドを排出させる。 (5-19) When Void_Gene_Position = 8 and (at = 1, at' = 5), (at = 2, at' = 1), (at = 5, at' = 2), v5 shown in Fig. 19 to exhaust the 5th through 8th voids as in v8.
 (5-20) Void_Gene_Position=8のとき、at=1,2,5の場合、図20に示すv1からv4の場合のように1つめから4つ目までのボイドを排出させる。 (5-20) When Void_Gene_Position = 8, when at = 1, 2, 5, discharge the first to fourth voids as in the case of v1 to v4 shown in Fig. 20 .
 (5-21) Void_Gene_Position=8のとき、at=3,4,6の場合、図23及び図24に示すv1からv8の場合のように1つめから8つ目までのボイドを排出させる。 (5-21) When Void_Gene_Position = 8, when at = 3, 4, 6, the 1st to 8th voids are discharged as in the case of v1 to v8 shown in Figs. 23 and 24 .
 (5-22) Void_Gene_Position=4で、(at=3,at’=3),(at = 4, at’ = 4),(at = 6, at’ = 6)の時、図15において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを排出させる。 (5-22) When Void_Gene_Position = 4 and (at = 3, at' = 3), (at = 4, at' = 4), (at = 6, at' = 6), at Invert the direction of ,at' (e.g. convert at, at' to 1→3, 2→4, 5→6, 3→1, 4→2, 6→5), and change the position of the controlled object to Voids from 5th to 8th are discharged like v5 to v8 when exchanging with 8←→4, 6←→3, 5←→1, 7←→2.
 (5-23) Void_Gene_Position=4で、(at=3,at’=2),(at = 4, at’ = 5),(at = 6, at’ = 1)の時、図16において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを排出させる。 (5-23) When Void_Gene_Position = 4 and (at = 3, at' = 2), (at = 4, at' = 5), (at = 6, at' = 1), at Invert the direction of ,at' (e.g. convert at, at' to 1→3, 2→4, 5→6, 3→1, 4→2, 6→5), and change the position of the controlled object to Voids from 5th to 8th are discharged like v5 to v8 when exchanging with 8←→4, 6←→3, 5←→1, 7←→2.
 (5-24) Void_Gene_Position=4で、(at=3,at’=4),(at = 4, at’ = 6),(at = 6, at’ = 3)の時、図17において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを排出させる。 (5-24) When Void_Gene_Position = 4 and (at = 3, at' = 4), (at = 4, at' = 6), (at = 6, at' = 3), at Invert the direction of ,at' (e.g. convert at, at' to 1→3, 2→4, 5→6, 3→1, 4→2, 6→5), and change the position of the controlled object to Voids from 5th to 8th are discharged like v5 to v8 when exchanging with 8←→4, 6←→3, 5←→1, 7←→2.
 (5-25) Void_Gene_Position=4で、(at=3,at’=5),(at = 4, at’ = 1),(at = 6, at’ = 2)の時、図18において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを排出させる。 (5-25) When Void_Gene_Position = 4 and (at = 3, at' = 5), (at = 4, at' = 1), (at = 6, at' = 2), at Invert the direction of ,at' (e.g. convert at, at' to 1→3, 2→4, 5→6, 3→1, 4→2, 6→5), and change the position of the controlled object to Eject the 5th to 8th voids like the operation of v5 to v8 when exchanging with 8←→4, 6←→3, 5←→1, and 7←→2.
 (5-26) Void_Gene_Position=4で、(at=3,at’=6),(at = 4, at’ = 3),(at = 6, at’ = 4)の時、図19おいて、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv5からv8の動作のように5つめから8つ目までのボイドを排出させる。 (5-26) When Void_Gene_Position = 4 and (at = 3, at' = 6), (at = 4, at' = 3), (at = 6, at' = 4), in Fig. 19, Reverse the direction of at, at' (eg, convert at, at' to 1 → 3, 2 → 4, 5 → 6, 3 → 1, 4 → 2, 6 → 5), and position the control object is replaced with 8←→4, 6←→3, 5←→1, and 7←→2.
 (5-27) Void_Gene_Position=4のとき、at=3,4,6の場合、図20において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv4の場合のように1つめから4つ目までのボイドを排出させる。 (5-27) When Void_Gene_Position = 4, when at = 3, 4, 6, in Fig. 20, the directions of at and at' are reversed (eg, at and at' are 1→3, 2→4 , 5 → 6, 3 → 1, 4 → 2, 6 → 5), and when the position of the control object is changed to 8←→4, 6←→3, 5←→1, 7←→2 Eliminate the first through fourth voids as in v1 through v4.
 (5-28) Void_Gene_Position=4のとき、at=1,2,5の場合、図23及び図24において、at,at’の向きを正負逆にし(例:at、at’を1→3, 2→4,5→6, 3→1, 4→2, 6→5に変換)、制御対象物の位置を8←→4、6←→3、5←→1、7←→2で入れ替えた場合のv1からv8の場合のように1つめから8つ目までのボイドを排出させる。 (5-28) When Void_Gene_Position = 4, when at = 1, 2, 5, in Figs. 2 → 4, 5 → 6, 3 → 1, 4 → 2, 6 → 5), exchange the position of the control object with 8←→4, 6←→3, 5←→1, 7←→2 Eject the 1st to 8th voids as in the case of v1 to v8.
 tステップ目の時刻tnの制御対象物の動作をhistory[t][i][tn]に記録する。(i=tステップ目で動作をした制御対象物すべて。tn=0,1,2、、、nt)。8つのボイドがすべて放出されてないならば、tnをインクリメントする。放出されたならば(6)へ
(6) [Head_Tail_Selection]の(4)を実行して、Upに新たな位置が追加されたならば[Head_Tail_Selection]の(2)を実行する。まだG内に空隙があるならば、tをインクリメントし(2)に戻る。
Record the operation of the controlled object at time tn in the t-th step in history[t][i][tn]. (i=all controlled objects that moved at the t-th step; tn=0, 1, 2, . . . , n t ). If all 8 voids have not been emitted, increment tn. If released, go to (6)
(6) Execute (4) of [Head_Tail_Selection], and execute (2) of [Head_Tail_Selection] if a new position is added to Up. If there are still gaps in G, increment t and return to (2).
 [Tunneling_Linear]の(6)の処理は、後述する繰り返し制御部8によるステップS8の処理に対応している。 The processing of (6) of [Tunneling_Linear] corresponds to the processing of step S8 by the repetition control unit 8, which will be described later.
(7) history[t][i][tn]に記録されたtステップ目のタネリングにおける制御対象物単位の動作をt-1ステップ目のタネリング開始からInterval[t]時刻ステップ後に開始することを全tにおいて実行する。 (7) Start the operation for each controlled object in the t-th step of tunneling recorded in history[t][i][tn] after Interval[t] time steps after the start of the t-1 step of tunneling. Run for all t.
 [Tunneling_Linear]の(7)の処理は、後述する移動部9によるステップS9に対応している。 The processing of (7) of [Tunneling_Linear] corresponds to step S9 by the moving unit 9, which will be described later.
 [制御装置及び方法]
 制御装置は、図26に示すように、集合選択部1、入口位置選択部2、先頭制御対象物単位選択部3、目的位置選択部4、尾部制御対象物単位選択部5、動作計画決定部6、集合追加部7、制御部8及び移動部9を例えば備えている。
[Control device and method]
As shown in FIG. 26, the control device includes a set selection unit 1, an entrance position selection unit 2, a head controlled object unit selection unit 3, a destination position selection unit 4, a tail control object unit selection unit 5, an operation plan determination unit 6, a set adding unit 7, a control unit 8 and a moving unit 9, for example.
 制御方法は、制御装置の各構成部が、以下に説明する及び図27に示すステップS1からステップS9の処理を行うことにより例えば実現される。 The control method is realized, for example, by having each component of the control device perform the processing from step S1 to step S9 shown in FIG. 27 and described below.
 以下、制御装置の各構成部について説明する。 Each component of the control device will be described below.
 <集合選択部1>
 集合選択部1は、[Head_Tail_Selection]の(1)の処理を行う。
<Set selection part 1>
The set selection unit 1 performs the process (1) of [Head_Tail_Selection].
 すなわち、集合選択部1は、複数の部分共通位置領域AS∩G1、AS∩G2、AS∩G3、AS∩G4、、、の中から、ある1つの部分共通位置領域AS∩Gstartを集合Upとして選択する(ステップS1)。 That is, the set selection unit 1 selects one partial common position area A S∩ Select Gstart as set Up (step S1).
 選択された集合Upについての情報は、入口位置選択部2に出力される。 Information about the selected set Up is output to the entrance position selection unit 2.
 <入口位置選択部2>
 入口位置選択部2は、[Head_Tail_Selection]の(2)の処理を行う。
<Entrance position selection unit 2>
The entrance position selection unit 2 performs the process (2) of [Head_Tail_Selection].
 すなわち、入口位置選択部2は、少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)のそれぞれに接する集合Up内の位置を入口位置Ei(i=1,…,I)として選択する(ステップS2)。 That is, the entrance position selection unit 2 selects positions in the set Up that are in contact with at least one partial target position area A GS∩Gi (i=1, . . . , I) as entrance positions Ei (i=1, . ) (step S2).
 選択された入口位置Ei(i=1,…,I)についての情報は、先頭制御対象物単位選択部3に出力される。 Information about the selected entrance position Ei (i=1, . . . , I) is output to the head control object unit selection unit 3.
 ここで、Jは所定の正の整数として、初期位置Sから共通位置S∩Gを除いた領域S-S∩Gは前記集合Upによって分断された少なくとも1つの部分初期位置領域AS-S∩Gj(j=1,…,J)で構成されているとする。 Here, J is a predetermined positive integer, and the area SS∩G obtained by excluding the common position S∩G from the initial position S is at least one partial initial position area A SS∩Gj (j= 1,…,J) .
 また、Iは所定の正の整数として、目標位置Gから共通位置S∩Gを除いた領域G-S∩Gは集合Upによって分断された少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)で構成されているとする。 Further, I is a predetermined positive integer, and an area GS∩G obtained by excluding the common position S∩G from the target position G is at least one partial target position area A GS∩Gi (i=1, …,I) .
 <先頭制御対象物単位選択部3>
 先頭制御対象物単位選択部3は、[Head_Tail_Selection]の(3-1)の処理を行う。
<Top control object unit selection unit 3>
The head control object unit selection unit 3 performs the processing of (3-1) of [Head_Tail_Selection].
 すなわち、先頭制御対象物単位選択部3は、集合Upに属する位置にあり、部分目標位置領域AG-S∩Gi(i=1,…,I)の中の制御対象物単位が存在していない位置に隣接する位置にある制御対象物単位のうち入口位置Eiからの部分目標位置領域AG-S∩Gi(i=1,…,I)でのマンハッタン距離が最も小さいものを先頭制御対象物単位Headとして選択する(ステップS3)。 That is, the head control object unit selection unit 3 is located at a position belonging to the set Up, and is a position where no control object unit exists in the partial target position area A GS∩Gi (i=1, . . . , I) . Among the control object units adjacent to , the one with the smallest Manhattan distance in the partial target position area A GS ∩ Gi (i=1,...,I) from the entrance position Ei is defined as the head control object unit Head. Select (step S3).
 選択された先頭制御対象物単位Headについての情報は、目的位置選択部4、動作計画決定部6に出力される。 Information about the selected head control object unit Head is output to the target position selection unit 4 and the motion plan determination unit 6 .
 <目的位置選択部4>
 目的位置選択部4は、[Head_Tail_Selection]の(3-2)の処理を行う。
<Target position selection unit 4>
The target position selection unit 4 performs the processing of (3-2) of [Head_Tail_Selection].
 すなわち、目的位置選択部4は、先頭制御対象物単位Headに接する位置であって、部分目標位置領域AG-S∩Gi(i=1,…,I)内の制御対象物単位が存在していない位置を目的位置Dとして選択し、集合Upに追加する(ステップS4)。 That is, the target position selection unit 4 determines that there is no control object unit in the partial target position area AGS∩Gi (i=1, . A position is selected as the destination position D and added to the set Up (step S4).
 選択された目的位置Dについての情報は、動作計画決定部6に出力される。追加により更新された集合Upについての情報は、集合追加部7に出力される。 Information about the selected target position D is output to the motion plan determination unit 6 . Information about the set Up updated by the addition is output to the set addition unit 7 .
 <尾部制御対象物単位選択部5>
 尾部制御対象物単位選択部5は、[Head_Tail_Selection]の(3-3)の処理を行う。
<Tail control object unit selection unit 5>
The tail control target unit selection unit 5 performs the processing of (3-3) of [Head_Tail_Selection].
 すなわち、尾部制御対象物単位選択部5は、部分初期位置領域AS-S∩Gj内かつ前記集合UP外の制御対象物単位のうち入口位置EiからのS内でのマンハッタン距離が最も大きいものを尾部制御対象物単位Tailとして選択する(ステップS5)。 That is, the tail control object unit selection unit 5 selects a control object unit having the largest Manhattan distance in S from the entrance position Ei from among the control object units in the partial initial position area A SS∩Gj and outside the set UP. It is selected as the control object unit Tail (step S5).
 選択された尾部制御対象物単位Tailについての情報は、動作計画決定部6に出力される。 Information about the selected tail control object unit Tail is output to the motion plan determination unit 6 .
 <動作計画決定部6>
 動作計画決定部6は、[Tunneling_Linear]の(3)から(5)の処理を行う。
<Operation plan determination unit 6>
The operation plan determination unit 6 performs the processes (3) to (5) of [Tunneling_Linear].
 すなわち、動作計画決定部6は、先頭制御対象物単位選択部で選択された先頭制御対象物単位Headから尾部制御対象物単位選択部で選択された尾部制御対象物単位Tailまでの一連の制御対象物単位を、先頭制御対象物単位Headが目的位置Dに移動し、先頭の制御対象物単位の動作を追従するように移動するための動作計画を決定する(ステップS6)。 That is, the operation plan determination unit 6 selects a series of control objects from the head control object unit Head selected by the head control object unit selection unit to the tail control object unit Tail selected by the tail control object unit selection unit. A motion plan is determined for moving the object unit so that the leading controlled object unit Head moves to the target position D and follows the motion of the leading controlled object unit (step S6).
 動作計画決定部6は、以下の(i)から(iii)の条件が満たされるように、動作計画を決定する。 The action plan determination unit 6 decides the action plan so that the following conditions (i) to (iii) are satisfied.
 (i) 動作計画では、前記一連の制御対象物単位を移動させるためのボイドが、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドが重ならないように、前記一連の制御対象物単位の移動の待ち時間が決定され、前記待ち時間が所定の時間よりも長い場合には、前記待ち時間よりも短い時間が前記待ち時間として再決定される。 (i) In the operation plan, the void for moving the series of controlled object units does not overlap with the void for moving the series of controlled object units that moved one time earlier. A waiting time for movement of each object is determined, and if the waiting time is longer than a predetermined time, a time shorter than the waiting time is re-determined as the waiting time.
 (ii) 動作計画では、前記一連の制御対象物単位を構成する制御対象物の位置の中でボイドを発生させる1個の位置が決定され、発生させたボイドを前記尾部制御対象物単位Tail方向に送ることで前記制御対象物を前記先頭制御対象物単位Head方向に移動させる処理が繰り返し行われる
 (iii) 動作計画では、前記一連の制御対象物単位を移動させるためのボイドと、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドとが衝突しないように、ボイドを発生させる位置が決定される。 動作計画がこれらの条件を満たす場合には、一時刻前に決定されたタネリング動作と、現時刻に決定されたタネリング動作とを並列して行うことができる。このため、従来よりも隊列変形に要する時間を短くすることができる。
(ii) In the operation plan, one position at which a void is to be generated is determined among the positions of the controlled object constituting the series of controlled object units, and the generated void is moved in the Tail direction of the tail controlled object unit. (iii) In the operation plan, a void for moving the series of control object units, and one time before The position at which the void is generated is determined so as not to collide with the void for moving the series of control object units moving to . If the motion plan satisfies these conditions, the tumbling motion determined one time ago and the tumbling motion determined at the current time can be performed in parallel. Therefore, it is possible to shorten the time required for platoon deformation as compared with the conventional art.
 <集合追加部7>
 集合追加部7は、[Head_Tail_Selection]の(4)の処理を行う。
<Set addition part 7>
The set addition unit 7 performs the processing of (4) of [Head_Tail_Selection].
 すなわち、集合追加部7は、集合Upが集合Upに含まれない部分共通位置領域内の位置にある制御対象物単位に接しているとき、その制御対象物単位から目標位置G内で接続している位置にある制御対象物単位の位置の全てを集合Upに追加する(ステップS7)。 That is, when the set Up touches a control object unit at a position within the partial common position area not included in the set Up, the set adding unit 7 connects the control object unit within the target position G. All the positions of the control object unit at the current position are added to the set Up (step S7).
 追加により更新された集合Upについての情報は、先頭制御対象物単位選択部3に出力される。 Information about the set Up updated by the addition is output to the head control object unit selection unit 3 .
 <繰り返し制御部8>
 繰り返し制御部8は、[Tunneling_Linear]の(6)の処理を行う。
<Repeat control unit 8>
The repetition control unit 8 performs the processing of (6) of [Tunneling_Linear].
 すなわち、繰り返し制御部8は、先頭制御対象物単位選択部3、目的位置選択部4、尾部制御対象物単位選択部5及び動作計画決定部6の処理を、動作計画により、制御対象物単位の全てが目標位置に移動することができるようになるまで繰り返す(ステップS8)。 That is, the repetition control unit 8 performs the processing of the head control object unit selection unit 3, the target position selection unit 4, the tail control object unit selection unit 5, and the operation plan determination unit 6 according to the operation plan for each control object. Repeat until all can move to the target position (step S8).
 最終的に生成された動作計画は、移動部9に出力される。 The finally generated motion plan is output to the moving unit 9.
 <移動部9>
 移動部9は、[Tunneling_Linear]の(7)の処理を行う。
<Moving part 9>
The moving unit 9 performs the process of (7) of [Tunneling_Linear].
 移動部9は、決定された動作計画に従って、制御対象物単位を移動させる(ステップS9)。 The moving unit 9 moves the control object unit according to the determined operation plan (step S9).
 [変形例]
 以上、本発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、本発明に含まれることはいうまでもない。
[Variation]
Although the embodiments of the present invention have been described above, the specific configuration is not limited to these embodiments. Needless to say, it is included in the present invention.
 実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。 The various processes described in the embodiments are not only executed in chronological order according to the described order, but may also be executed in parallel or individually according to the processing capacity of the device that executes the processes or as necessary.
 例えば、制御装置の構成部間のデータのやり取りは直接行われてもよいし、図示していない記憶部を介して行われてもよい。 For example, data exchange between components of the control device may be performed directly or may be performed via a storage unit (not shown).
 [プログラム、記録媒体]
 上述した各装置の各部の処理をコンピュータにより実現してもよく、この場合は各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図28に示すコンピュータ1000の記憶部1020に読み込ませ、演算処理部1010、入力部1030、出力部1040などに動作させることにより、前記各装置における各種の処理機能がコンピュータ上で実現される。
[Program, recording medium]
The processing of each part of each device described above may be realized by a computer, and in this case, the processing contents of the functions that each device should have are described by a program. By loading this program into the storage unit 1020 of the computer 1000 shown in FIG. Realized.
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体は、例えば、非一時的な記録媒体であり、具体的には、磁気記録装置、光ディスク、等である。 A program that describes this process can be recorded on a computer-readable recording medium. A computer-readable recording medium is, for example, a non-temporary recording medium, specifically a magnetic recording device, an optical disc, or the like.
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。 In addition, the distribution of this program will be carried out, for example, by selling, transferring, lending, etc. portable recording media such as DVDs and CD-ROMs on which the program is recorded. Further, the program may be distributed by storing the program in the storage device of the server computer and transferring the program from the server computer to other computers via the network.
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の非一時的な記憶装置である補助記録部1050に格納する。そして、処理の実行時、このコンピュータは、自己の非一時的な記憶装置である補助記録部1050に格納されたプログラムを記憶部1020に読み込み、読み込んだプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを記憶部1020に読み込み、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。 A computer that executes such a program, for example, first stores a program recorded on a portable recording medium or a program transferred from a server computer once in the auxiliary recording unit 1050, which is its own non-temporary storage device. Store. When executing the process, this computer reads the program stored in the auxiliary recording section 1050, which is its own non-temporary storage device, into the storage section 1020, and executes the process according to the read program. As another execution form of this program, the computer may read the program directly from the portable recording medium into the storage unit 1020 and execute processing according to the program. It is also possible to execute processing in accordance with the received program each time the is transferred. In addition, the above-mentioned processing is executed by a so-called ASP (Application Service Provider) type service, which does not transfer the program from the server computer to this computer, and realizes the processing function only by its execution instruction and result acquisition. may be It should be noted that the program in this embodiment includes information that is used for processing by a computer and that conforms to the program (data that is not a direct instruction to the computer but has the property of prescribing the processing of the computer, etc.).
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。 In addition, in this embodiment, the device is configured by executing a predetermined program on a computer, but at least part of these processing contents may be implemented by hardware.
 その他、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。 In addition, it goes without saying that changes can be made as appropriate without departing from the scope of the invention.

Claims (3)

  1.  所定の初期位置Sにある複数の制御対象物単位を所定の目標位置Gに移動させる制御装置であって、
     各前記制御対象物単位には複数の制御対象物が含まれているとし、各制御対象物単位が他の制御対象物単位と隣接することにより前記制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、前記初期位置Sと前記目標位置Gの共通部分を共通位置とし、前記共通位置は互いに非接続な複数の部分共通位置領域から構成されているとして、
     ある1つの部分共通位置領域を集合Upとして選択する集合選択部と、
     I,Jは所定の正の整数であり、前記初期位置Sから前記共通位置S∩Gを除いた領域S-S∩Gは前記集合Upによって分断された少なくとも1つの部分初期位置領域AS-S∩Gj(j=1,…,J)で構成されており、前記目標位置Gから前記共通位置S∩Gを除いた領域G-S∩Gは前記集合Upによって分断された少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)で構成されており、前記少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)のそれぞれに接する前記集合Up内の位置を入口位置Ei(i=1,…,I)として選択する入口位置選択部と、
     前記集合Upに属する位置にあり、前記部分目標位置領域AG-S∩Gi(i=1,…,I)の中の制御対象物単位が存在していない位置に隣接する位置にある制御対象物単位のうち前記入口位置Eiからの前記部分目標位置領域AG-S∩Gi(i=1,…,I)でのマンハッタン距離が最も小さいものを先頭制御対象物単位Headとして選択する先頭制御対象物単位選択部と、
     前記先頭制御対象物単位Headに接する位置であって、前記部分目標位置領域AG-S∩Gi(i=1,…,I)内の制御対象物単位が存在していない位置を目的位置Dとして選択し、前記集合Upに追加する目的位置選択部と、
     前記部分初期位置領域AS-S∩Gj内かつ前記集合UP外の制御対象物単位のうち前記入口位置Eiからの前記初期位置領域Sでのマンハッタン距離が最も大きいものを尾部制御対象物単位Tailとして選択する尾部制御対象物単位選択部と、
     前記先頭制御対象物単位選択部で選択された先頭制御対象物単位Headから前記尾部制御対象物単位選択部で選択された尾部制御対象物単位Tailまでの一連の制御対象物単位を、前記先頭制御対象物単位Headが前記目的位置Dに移動し、先頭の制御対象物単位の動作を追従するように移動するための動作計画を決定する動作計画決定部と、
     前記動作計画では、前記一連の制御対象物単位を移動させるためのボイドが、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドが重ならないように、前記一連の制御対象物単位の移動の待ち時間が決定され、前記待ち時間が所定の時間よりも長い場合には、前記待ち時間よりも短い時間が前記待ち時間として再決定され、
     前記動作計画では、前記一連の制御対象物単位を構成する制御対象物の位置の中でボイドを発生させる1個の位置が決定され、発生させたボイドを前記尾部制御対象物単位Tail方向に送ることで前記制御対象物を前記先頭制御対象物単位Head方向に移動させる処理が繰り返し行われ、
     前記動作計画では、前記一連の制御対象物単位を移動させるためのボイドと、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドとが衝突しないように、ボイドを発生させる位置が決定され、
     前記集合Upが前記集合Upに含まれない部分共通位置領域内の位置にある制御対象物単位に接しているとき、その制御対象物単位から前記目標位置G内で接続している位置にある制御対象物単位の位置の全てを前記集合Upに追加する集合追加部と、
     前記先頭制御対象物単位選択部、前記目的位置選択部、前記尾部制御対象物単位選択部及び前記動作計画決定部の処理を、前記動作計画により、前記制御対象物単位の全てが前記目標位置に移動することができるようになるまで繰り返す繰り返し制御部と、
     前記決定された動作計画に従って、前記制御対象物単位を移動させる移動部と、
     を含む制御装置。
    A control device for moving a plurality of control object units at a predetermined initial position S to a predetermined target position G,
    It is assumed that each control object unit includes a plurality of control objects, and each control object unit is adjacent to another control object unit so that the control object unit forms a mass of control object structure. The formation is called the connectivity of the controlled object structure, and the common portion of the initial position S and the target position G is defined as a common position, and the common position is composed of a plurality of partial common position areas that are not connected to each other. as being
    a set selection unit that selects one partial common position area as a set Up;
    I and J are predetermined positive integers, and the area SS∩G obtained by excluding the common position S∩G from the initial position S is at least one partial initial position area A SS∩Gj( j=1, . Gi(i=1,...,I) , and positions in said set Up contacting each of said at least one partial target position areas AGS∩Gi(i=1,...,I) are defined as entry positions an entrance position selector that selects as Ei (i=1,...,I);
    A control object unit at a position belonging to the set Up and adjacent to a position where no control object unit exists in the partial target position area A GS∩Gi (i=1, . . . , I) Head control object unit selection for selecting the one with the smallest Manhattan distance in the partial target position area A GS∩Gi (i=1, . . . , I) from the entrance position Ei as the head control object unit Head Department and
    A position that is in contact with the head control object unit Head and where no control object unit exists in the partial target position area A GS∩Gi (i=1, . . . , I) is selected as the target position D. and a target position selection unit to be added to the set Up;
    Among the control object units within the partial initial position area A SS∩Gj and outside the set UP, the one having the largest Manhattan distance in the initial position area S from the entrance position Ei is selected as the tail control object unit Tail. a tail control object unit selection unit that
    A series of control object units from the head control object unit Head selected by the head control object unit selection unit to the tail control object unit Tail selected by the tail control object unit selection unit is selected by the head control object unit. a motion plan determination unit that determines a motion plan for the object unit Head to move to the target position D and to follow the motion of the head control object unit;
    In the operation plan, the void for moving the series of controlled object units does not overlap with the void for moving the series of controlled object units moved one time earlier. A waiting time for unit movement is determined, and if the waiting time is longer than a predetermined time, a time shorter than the waiting time is re-determined as the waiting time,
    In the operation plan, one position for generating a void is determined among the positions of the control object constituting the series of control object units, and the generated void is sent in the Tail direction of the tail control object unit. As a result, the process of moving the controlled object in the direction of the head controlled object unit Head is repeatedly performed,
    In the operation plan, the voids for moving the series of controlled object units and the voids for moving the series of controlled object units moving one time earlier do not collide with each other, and the positions where the voids are generated. is determined and
    When the set Up is in contact with a control object unit at a position within the partial common position area not included in the set Up, control at a position connecting from the control object unit within the target position G a set adding unit that adds all of the object-based positions to the set Up;
    The processes of the head control object unit selection section, the target position selection section, the tail control object unit selection section, and the operation plan determination section are performed so that all of the control object units are at the target position according to the operation plan. a repeat control unit that repeats until it can be moved;
    a moving unit that moves the control object unit according to the determined operation plan;
    Control device including.
  2.  所定の初期位置Sにある複数の制御対象物単位を所定の目標位置Gに移動させる制御方法であって、
     各前記制御対象物単位には複数の制御対象物が含まれているとし、各制御対象物単位が他の制御対象物単位と隣接することにより前記制御対象物単位が一塊の制御対象物構造を形成していることを制御対象物構造の接続性と言うとし、前記初期位置Sと前記目標位置Gの共通部分を共通位置とし、前記共通位置は互いに非接続な複数の部分共通位置領域から構成されているとして、
     集合選択部が、ある1つの部分共通位置領域を集合Upとして選択する集合選択ステップと、
     入口位置選択部が、I,Jは所定の正の整数であり、前記初期位置Sから前記共通位置S∩Gを除いた領域S-S∩Gは前記集合Upによって分断された少なくとも1つの部分初期位置領域AS-S∩Gj(j=1,…,J)で構成されており、前記目標位置Gから前記共通位置S∩Gを除いた領域G-S∩Gは前記集合Upによって分断された少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)で構成されており、前記少なくとも1つの部分目標位置領域AG-S∩Gi(i=1,…,I)のそれぞれに接する前記集合Up内の位置を入口位置Ei(i=1,…,I)として選択する入口位置選択ステップと、
     先頭制御対象物単位選択部が、前記集合Upに属する位置にあり、前記部分目標位置領域AG-S∩Gi(i=1,…,I)の中の制御対象物単位が存在していない位置に隣接する位置にある制御対象物単位のうち前記入口位置Eiからの前記部分目標位置領域AG-S∩Gi(i=1,…,I)でのマンハッタン距離が最も小さいものを先頭制御対象物単位Headとして選択する先頭制御対象物単位選択ステップと、
     目的位置選択部が、前記先頭制御対象物単位Headに接する位置であって、前記部分目標位置領域AG-S∩Gi(i=1,…,I)内の制御対象物単位が存在していない位置を目的位置Dとして選択し、前記集合Upに追加する目的位置選択ステップと、
     尾部制御対象物単位選択部が、前記部分初期位置領域AS-S∩Gj内かつ前記集合UP外の制御対象物単位のうち前記入口位置Eiからの前記初期位置領域Sでのマンハッタン距離が最も大きいものを尾部制御対象物単位Tailとして選択する尾部制御対象物単位選択ステップと、
     動作計画決定部が、前記先頭制御対象物単位選択部で選択された先頭制御対象物単位Headから前記尾部制御対象物単位選択部で選択された尾部制御対象物単位Tailまでの一連の制御対象物単位を、前記先頭制御対象物単位Headが前記目的位置Dに移動し、先頭の制御対象物単位の動作を追従するように移動するための動作計画を決定する動作計画決定ステップと、
     前記動作計画では、前記一連の制御対象物単位を移動させるためのボイドが、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドが重ならないように、前記一連の制御対象物単位の移動の待ち時間が決定され、前記待ち時間が所定の時間よりも長い場合には、前記待ち時間よりも短い時間が前記待ち時間として再決定され、
     前記動作計画では、前記一連の制御対象物単位を構成する制御対象物の位置の中でボイドを発生させる1個の位置が決定され、発生させたボイドを前記尾部制御対象物単位Tail方向に送ることで前記制御対象物を前記先頭制御対象物単位Head方向に移動させる処理が繰り返し行われ、
     前記動作計画では、前記一連の制御対象物単位を移動させるためのボイドと、一時刻前に移動する一連の制御対象物単位を移動させるためのボイドとが衝突しないように、ボイドを発生させる位置が決定され、
     集合追加部が、前記集合Upが前記集合Upに含まれない部分共通位置領域内の位置にある制御対象物単位に接しているとき、その制御対象物単位から前記目標位置G内で接続している位置にある制御対象物単位の位置の全てを前記集合Upに追加する集合追加ステップと、
     繰り返し制御部が、前記先頭制御対象物単位選択部、前記目的位置選択部、前記尾部制御対象物単位選択部及び前記動作計画決定部の処理を、前記動作計画により、前記制御対象物単位の全てが前記目標位置に移動することができるようになるまで繰り返す繰り返し制御ステップと、
     移動部が、前記決定された動作計画に従って、前記制御対象物単位を移動させる移動ステップと、
     を含む制御方法。
    A control method for moving a plurality of control object units at a predetermined initial position S to a predetermined target position G,
    It is assumed that each control object unit includes a plurality of control objects, and each control object unit is adjacent to another control object unit so that the control object unit forms a mass of control object structure. The formation is called the connectivity of the controlled object structure, and the common portion of the initial position S and the target position G is defined as a common position, and the common position is composed of a plurality of partial common position areas that are not connected to each other. as being
    a set selection step in which a set selection unit selects one partial common position region as a set Up;
    The entrance position selection unit determines that I and J are predetermined positive integers, and that the area SS∩G obtained by excluding the common position S∩G from the initial position S is at least one partial initial position divided by the set Up. A region A SS∩Gj (j=1, . The set Up is composed of target position areas A GS∩Gi(i=1,...,I) and is in contact with each of the at least one partial target position areas AGS∩Gi(i=1,...,I). an entrance position selection step of selecting a position within as the entrance position Ei (i=1,...,I);
    The head control object unit selection part is located at a position belonging to the set Up, and at a position where no control object unit exists in the partial target position area A GS∩Gi (i=1, . . . , I) . Among control object units at adjacent positions, the one with the smallest Manhattan distance in the partial target position area A GS∩Gi (i=1, . . . , I) from the entrance position Ei is designated as the head control object unit a head control object unit selection step that selects as
    A position where the target position selection unit is in contact with the leading control object unit Head and where no control object unit exists in the partial target position area A GS ∩ Gi (i=1, . . . , I) . as a target position D and added to the set Up;
    The tail control object unit selection unit selects the control object unit having the largest Manhattan distance in the initial position area S from the entrance position Ei among the control object units within the partial initial position area A SS∩Gj and outside the set UP. as the tail control object unit Tail; a tail control object unit selection step of selecting
    A motion plan determination unit selects a series of control objects from the head control object unit Head selected by the head control object unit selection unit to the tail control object unit Tail selected by the tail control object unit selection unit. a motion plan determination step of determining a motion plan for moving the unit so that the leading controlled object unit Head moves to the target position D and follows the motion of the leading controlled object unit;
    In the operation plan, the void for moving the series of controlled object units does not overlap with the void for moving the series of controlled object units moved one time earlier. A waiting time for unit movement is determined, and if the waiting time is longer than a predetermined time, a time shorter than the waiting time is re-determined as the waiting time,
    In the operation plan, one position for generating a void is determined among the positions of the control object constituting the series of control object units, and the generated void is sent in the Tail direction of the tail control object unit. As a result, the process of moving the controlled object in the direction of the head controlled object unit Head is repeatedly performed,
    In the operation plan, the voids for moving the series of controlled object units and the voids for moving the series of controlled object units moving one time earlier do not collide with each other, and the positions where the voids are generated. is determined and
    When the set Up is in contact with a control object unit at a position within the partial common position area not included in the set Up, the set addition unit connects from the control object unit within the target position G. a set addition step of adding all of the positions of the control object unit at the position to the set Up;
    A repetition control unit repeats the processes of the head control object unit selection unit, the target position selection unit, the tail control object unit selection unit, and the operation plan determination unit for all of the control object units according to the operation plan. is able to move to the target position; and
    a moving step in which the moving unit moves the control object unit according to the determined operation plan;
    Control method including.
  3.  請求項1の制御装置の各部としてコンピュータを機能させるためのプログラム。 A program for causing a computer to function as each part of the control device of claim 1.
PCT/JP2021/024821 2021-06-30 2021-06-30 Control device, method, and program WO2023276065A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/024821 WO2023276065A1 (en) 2021-06-30 2021-06-30 Control device, method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/024821 WO2023276065A1 (en) 2021-06-30 2021-06-30 Control device, method, and program

Publications (1)

Publication Number Publication Date
WO2023276065A1 true WO2023276065A1 (en) 2023-01-05

Family

ID=84691676

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/024821 WO2023276065A1 (en) 2021-06-30 2021-06-30 Control device, method, and program

Country Status (1)

Country Link
WO (1) WO2023276065A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140274416A1 (en) * 2013-03-15 2014-09-18 A.Q.B. Venture Capital B.V. Shape-shifting a configuration of reusable elements
JP2019074997A (en) * 2017-10-18 2019-05-16 日本電信電話株式会社 Control device, method and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140274416A1 (en) * 2013-03-15 2014-09-18 A.Q.B. Venture Capital B.V. Shape-shifting a configuration of reusable elements
JP2019074997A (en) * 2017-10-18 2019-05-16 日本電信電話株式会社 Control device, method and program

Similar Documents

Publication Publication Date Title
CN108958235B (en) Robot motion planning
JP5997092B2 (en) Robot cooperative transfer planning apparatus, method and program
JP6879233B2 (en) Controls, methods and programs
JP6559591B2 (en) Behavior control system, method and program thereof
WO2023276065A1 (en) Control device, method, and program
JP7136365B2 (en) MOBILE ROBOT, MOBILE ROBOT CONTROL METHOD AND PROGRAM
WO2022239063A1 (en) Control device, method, and program
WO2020039951A1 (en) Mobile robot, and control method and program for mobile robot
JP6685957B2 (en) Control object position replacement control device, control object position replacement control method, program
US11774970B2 (en) Control apparatus, method and program
WO2023281625A1 (en) Control device, method, and program
JP6939395B2 (en) Controls, methods and programs
WO2023281582A1 (en) Control device, method, and program
JP7480869B2 (en) Control device, Hamiltonian cycle expansion device, method and program
JP6939396B2 (en) Formation control devices, formation control methods, and programs
WO2023195065A1 (en) Control device, method, and program
WO2020045022A1 (en) Mobile robot, control method for mobile robot, and program
JP6633467B2 (en) Behavior control system, behavior control method, program
Odem et al. A Self-Reconfiguration Algorithm for Sliding Triangular Modular Robots
JP6946933B2 (en) Formation control devices, formation control methods, and programs
JP6881352B2 (en) Controls, methods and programs
JP6553000B2 (en) Control object position change control device, control object position change control method, program
An et al. Making shapes from modules by magnification
Collins et al. Globally Convergent Optimal Dynamic Inverse Kinematics for Distributed Modular and Self-Reconfigurable Robot Trees
JP2007249744A (en) Arithmetic processing unit

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21948370

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE