Control device, method and program
The control device and method facilitate high-speed, space-efficient formation transformation of control objects with individually set target positions by employing a Hamiltonian cycle-based movement plan for control object units, addressing the limitations of existing technologies in obstacle environments.
Patent Information
- Application Number
- JP2024513590
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-04-05
- Publication Date
- 2025-11-06
- Estimated Expiration
- 2042-04-05
AI Technical Summary
Existing formation transformation technologies for control objects do not allow for high-speed, space-saving transformations with individually set target positions for each control object, especially in environments with obstacles.
A control device and method that utilizes first-type and second-type control object units, with defined initial and target positions, and employs a Hamiltonian cycle-based movement plan to alternately arrange these units during transformation, allowing for high-speed and space-efficient reconfiguration.
Enables high-speed formation transformation of control objects with individually set target positions in a space-saving manner, even in environments with obstacles, by using a Hamiltonian cycle to optimize the movement paths of control object units.
Smart Images

Figure 0007764952000001 
Figure 0007764952000002 
Figure 0007764952000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to a technique for controlling the behavior of a plurality of control targets. [Background technology]
[0002] In recent years, active research has been conducted into the efficient control of large numbers of autonomous mobile robots. Their tasks vary, from monitoring inaccessible areas to transporting goods, and there is a demand for technology that allows large numbers of robots to efficiently form formations through cooperative motion, and this has led to active research.
[0003] In particular, among the robot formation control techniques, robot formation control based on the assumption that the robots remain in contact with each other and move as a whole like an amoeba has the advantage that the absolute position of each robot can be determined from the relative positions of the robots, and that no additional position measurement equipment is required, and research into such robots is also being conducted. For example, a series of studies leading up to the research shown in Non-Patent Document 1 shows formation control that changes from one formation to another (see, for example, Non-Patent Document 1).
[0004] To achieve efficient formation of multiple robots, it is important to plan in advance the placement of each robot, the order of their movements, etc. Naturally, such planning must take into account the presence of obstacles in the actual environment in which multiple robots will operate, as well as the shape of the route.
[0005] The method shown in the research in Non-Patent Document 1 deals with the transformation of a robot formation by the expansion and contraction surface motion of multiple cubic robots (a robot moves while expanding and contracting while in contact with other robots). Here, it is assumed that the robots are in contact with each other, and each robot has the same characteristics (homogeneous). In other words, it realizes formation control when the target position of each robot within the target configuration is not determined. It also deals with the transformation of a robot structure based on a robot unit consisting of eight robots. The transformation time is proportional to the square of the number of robots.
[0006] Non-Patent Document 2 deals with the transformation of a robot formation by a surface shearing action (a robot sliding along the surface of contact with another robot) between multiple cubic-shaped robots. Here, too, the transformation of a robot structure based on a robot unit consisting of eight robots is dealt with. Each robot unit has different characteristics (heterogeneous). In other words, the formation control is realized when the target position of each robot unit within the target configuration is determined for each robot unit. The transformation requires a transformation time proportional to the number of robots. In Non-Patent Document 2, robots within the same robot unit are treated as homogeneous, and the relative positions of robots within the same robot unit cannot be set to specified positions before and after the formation transformation.
[0007] Non-Patent Document 3 deals with the transformation of a robot formation by a surface shearing action (a robot sliding along the surface of contact with another robot) between multiple cubic-shaped robots. Here, the 8-cell robot unit is not used, and the transformation of a full-resolution robot structure is dealt with. Each robot has different characteristics (heterogeneous). In other words, the formation control is realized when the target position of each robot within the target configuration is determined for each robot. The transformation time is proportional to the number of robots.
[0008] Both of the inventions in Non-Patent Documents 1 and 2 do not require any space other than the space occupied by the set of the robot's initial position and target position during the transformation process, and can be applied to spaces with obstacles, but the invention in Non-Patent Document 3 requires free space without obstacles during the transformation process. [Prior art documents] [Non-patent literature]
[0009] [Non-Patent Document 1] S. Vassilvitskii, M. Yim, J. Suh, “A Complete, Local and Parallel Reconfiguration Algorithm for Cube Style Modular Robots”, in Proc.2002 IEEE Int. Conf. Robotics and Automation, pp. 117-122, Washington DC, May, 2002. [Non-patent document 2] Kawano H., “Distributed Linear Heterogeneous Reconfiguration of Cubic Modular Robots via Simultaneous Tunneling and Permutation”, IEEE Transactions on Robotics, Vol. 36, Issue 1, pp. 62-77, Feb. 2020. [Non-patent document 3] Kawano, H., Parallel Permutation for Linear Full Resolution Reconfiguration of Heterogeneous Sliding-only Cubic Modular Robots”, 2020 IEEE International Conference on Robotics and Automation, pp.8281-8287, May 2020, Paris, France. Summary of the Invention [Problem to be solved by the invention]
[0010] However, a target position is set for each controlled object (in other words, it is formation control that enables heterogeneous formation transformation for each controlled object), and there was no control technology that could perform formation transformation in a space-saving manner and at high speed when moving each controlled object individually.
[0011] The present invention aims to provide a control device, method, and program for performing high-speed formation transformation in a formation transformation in which a target position is set for each control object and movement is performed on a control object-by-control object basis. [Means for solving the problem]
[0012] In a control device according to one aspect of the present invention, the control object units include first-type control object units and second-type control object units, each of which is composed of U control objects (U is an integer equal to or greater than 4), and an initial position S and a target position G are defined for each control object, and a structure composed of the control objects at the initial position S and the target position G is composed of combined control object units composed of 2U control objects by combining the first-type control object units and the second-type control object units, and a graph in which the control object units in an intermediate position are nodes and the faces connecting two mutually contacting control object units are edges constitutes a part or all of a Hamiltonian cycle, and at the intermediate position, the combined control object units and the second-type control object units are alternately arranged along the Hamiltonian cycle, and at the intermediate position, has a pre-exchange intermediate position M and a post-exchange intermediate position M', and is equipped with: a first movement planning unit that creates a first movement plan for moving each control object at its initial position S to the pre-exchange intermediate position M on a control object basis; a first movement unit that moves each control object at its initial position S to the pre-exchange intermediate position M on a control object basis in accordance with the first movement plan; a second movement planning unit that creates a second movement plan for moving each control object assumed to be at its target position G on a control object basis to the post-exchange intermediate position M'; an intermediate position exchanging unit that moves each control object at the pre-exchange intermediate position M to a destination of each control object within the post-exchange intermediate position M' determined by the second movement plan; and a second movement unit that moves each control object at the post-exchange intermediate position M' to the target position G on a control object basis in accordance with a plan that is the reverse of the second movement plan in terms of time. [Effects of the Invention]
[0013] According to this invention, a target position is determined for each control object, and in a formation transformation in which movement is performed on a control object basis, the formation transformation can be performed in a space-saving manner and at high speed. [Brief explanation of the drawings]
[0014] [Figure 1] FIG. 1 is a diagram illustrating an example of movement of a robot. [Figure 2] FIG. 10 is a diagram for explaining an example of an initial position and a target position for each control object. [Figure 3] FIG. 10 is a diagram for explaining an example of how a void moves. [Figure 4] FIG. 10 is a diagram for explaining an example of a control object unit. [Figure 5] 10A and 10B are diagrams for explaining examples of intermediate positions M and M'; [Figure 6] FIG. 10 is a diagram for explaining an example of generating an intermediate position M. [Figure 7] FIG. 10 is a diagram for explaining numbering of each position of the intermediate position M. [Figure 8] FIG. 10 is a diagram for explaining numbering of each position of the intermediate position M. [Figure 9] FIG. 10 is a diagram for explaining an intermediate position Mpre during the S→M deformation process. [Figure 10] FIG. [Figure 11] FIG. 10 is a diagram for explaining the formation of the intermediate position M′ when A_max=0. [Figure 12] FIG. 10 is a diagram illustrating the intermediate position M′ when A_max=1, 2. [Figure 13] FIG. 10 is a diagram for explaining an example of movement in units of control objects. [Figure 14] FIG. 10 is a diagram for explaining an example of movement in units of control objects. [Figure 15] FIG. 10 is a diagram for explaining transformation from LCMM to UCMM for each controlled object. [Figure 16] FIG. 10 is a diagram for explaining transformation from LCMM to UCMM for each controlled object. [Figure 17] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 18] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 19] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 20] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 21] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 22] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 23] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 24] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 25] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 26] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 27] FIG. 10 is a diagram for explaining an example of an operation in a replacement process. [Figure 28] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 29] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 30] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 31] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 32] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 33] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 34] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 35] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 36] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 37] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 38] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 39] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 40] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 41] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 42]FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 43] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 44] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 45] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 46] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 47] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 48] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 49] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 50] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 51] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 52] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 53] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 54] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 55] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 56] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 57] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 58] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 59] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 60] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 61] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 62]FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 63] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 64] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 65] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 66] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 67] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 68] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 69] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 70] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 71] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 72] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 73] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 74] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 75] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 76] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 77] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 78] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 79] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 80] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 81] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 82]FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 83] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 84] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 85] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 86] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 87] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 88] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 89] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 90] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 91] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 92] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 93] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 94] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 95] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 96] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 97] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 98] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 99] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 100] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 101] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 102]FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 103] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 104] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 105] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 106] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 107] FIG. 10 is a diagram for explaining an example of an operation for replacing a control target. [Figure 108] FIG. 2 is a diagram illustrating an example of a functional configuration of a control device. [Figure 109] FIG. 10 is a diagram illustrating an example of a processing procedure of a control method. [Figure 110] FIG. 2 illustrates an example of a functional configuration of a computer. DETAILED DESCRIPTION OF THE INVENTION
[0015] Hereinafter, an embodiment of the present invention will be described. In the drawings used in the following description, components having the same functions and steps performing the same processes are denoted by the same reference numerals, and duplicated explanations will be omitted.
[0016] <Theoretical background> First, the theoretical background of the control device and method will be described. In the following, an example will be described in which the control target, which is the object of behavior control, is a robot, but the control target may be anything other than a robot as long as it can be a control target.
[0017] [Problem setting] The task of multiple controlled objects moving in cooperation while maintaining contact with each other and transforming from a formation formed at an initial position to a target position assumes the use of cubic controlled objects that can move by sliding their contacting faces, as shown in Figure 1. As shown in Figure 2, this is achieved by moving multiple controlled objects from their initial positions to the target position in a room separated by walls (however, the walls are omitted in the figure).
[0018] As shown in Figure 1, the controlled object moves while maintaining the presence of other controlled objects in one of the six squares surrounding it in the vertical, horizontal, and vertical directions (hereinafter referred to as "up, down, left, right, front, and back"). This method has the advantage that each controlled object moves a distance equal to the size of the controlled object itself, allowing the movement amount of each movement to be accurately measured. Furthermore, by measuring the relative positions of adjacent controlled objects that share a single surface, the position of each controlled object within the entire group of controlled objects can be easily determined. This reduces the risk of problems such as formation collapse due to errors in the movement amount of each controlled object. It is also possible to move multiple controlled objects simultaneously, as if they were connected. The controlled object can determine whether other controlled objects exist in adjacent positions, whether there are obstacles, and whether it is at the target position.
[0019] There are p (p ≥ 24 = 8 × 3) control objects that perform the mission. Each control object can move in the X, Y, and Z axes in three-dimensional space while sharing at least one surface with an adjacent control object. Each cube in Figure 1 represents the location of each control object. Only one control object can exist in each cube. Each control object is assumed to remain stationary if there is an obstacle or other control object in the direction of its movement. The cubic space in which control objects can exist is also called a square or grid. In Figure 2, the dark gray squares indicate the locations of the control objects. The locations of the control objects in Figure 2A represent the set of initial positions of the control objects, while the locations of the control objects in Figure 2C represent the set of target positions of the control objects. As shown in Figure 2B, the set of target positions and the set of initial positions are either adjacent or have overlapping areas (common areas). The area represented by the set of target positions is also called the target formation area. In this way, each initial position and each target position is adjacent to other initial positions and target positions in at least one of the length, width, and height directions, and the formation shapes of the controlled objects at their initial positions and target positions are each a single, arbitrary shape.
[0020] [Setting coordinates of controlled objects] Let the position of each control object i (i represents the control object number, i = 0, 1, 2, 3, ..., p-1) be (Xr[i], Yr[i], Zr[i]), the initial position be (Xr0[i], Yr0[i], Zr0[i]), and the target position be (Xre[i], Yre[i], Zre[i]). This problem can be defined as finding an action plan for the control object placed at the initial position to move to the target position. Let s be the set of initial positions of the control object, and g be the set of target positions (Xre[i], Yre[i], Zre[i]).
[0021] [Mission Space Definition] When i is the controlled object number, each state of controlled object i (the position and behavior of the controlled object) is expressed as a discrete value. If a room is represented as a three-dimensional space consisting of an X, Y, and Z Cartesian coordinate system, each position is expressed by a discrete value on the X, Y, and Z axes. In other words, the room (three-dimensional space) is divided into grids, and each grid corresponds to a position. In addition, the presence / absence of an obstacle is preset in each grid.
[0022] [Define the controlled object behavior] The subject of action is each controlled object placed in the room. The action a of controlled object i (i is the controlled object number) can take one of seven types: standing still, moving one grid in the length, width, or height directions. For example, if a∈{0,1,2,3,4,5,6}, then 0: Still 1: Move one grid in the positive X-axis direction in three-dimensional space 2: Move one grid in the positive Y direction in three-dimensional space 3: Move one grid in the negative X direction in three-dimensional space 4: Move one grid in the negative Y direction in three-dimensional space 5: Move one grid in the positive Z direction in three-dimensional space 6: Move one grid in the negative Z direction in three-dimensional space Let's say.
[0023] [Problems in search calculations] The state space in such a mission environment has three dimensional states equal to the number of controlled objects times three, and the number of selectable actions is equal to the number of controlled object actions (7 ways) raised to the power of the number of controlled objects. For example, if there are 50 controlled objects and the number of grids in the length, width, and height directions of a room is 20, the number of states becomes 20 to the power of 150, and the amount of resources required for search calculations becomes enormous. Furthermore, for each additional controlled object, the number of states increases by 8000 times. As explained in the "Problem Setting" section of this embodiment, when incorporating the constraint that controlled objects are in contact with each other, search calculations must be performed taking into account the relative movements of the controlled objects. This makes it difficult to fundamentally reduce the amount of calculations, which is a major problem when using multiple controlled objects.
[0024] [Features in Reference 1] The heterogeneous formation control in Reference 1 introduces the concept of void control as one of the measures to solve the above-mentioned problem of computational load. In addition, the concept of an 8-cell control object unit is also introduced to overcome the problem of formation deformation as described in [Problem Setting].
[0025] First, we explain void control. A void, as shown in Figure 3, is a gap created after a controlled object moves to another position. In other words, a void is a virtual entity that moves in the opposite direction to the movement of the controlled object. In the formation problem of such a group of controlled objects, the focus on the movements of multiple controlled objects results in an explosive search computational load. However, by changing our perspective and focusing on the movement of voids, we can consider the motion planning problem of multiple controlled objects as the motion planning of a single void, which is suitable for reducing the search computational load. However, during the transformation operation, the controlled objects belonging to a controlled object unit tend to become scattered and split into separate controlled object units, which leads to an increase in the load of the subsequent controlled object swap operation. Furthermore, although the transformation does not require space beyond the set of initial and target positions, the transformation time is slow, proportional to the square of the number of controlled objects. This is primarily due to the long time required to swap the positions of each controlled object. When performing a replacement operation, it is difficult to secure the space necessary for the replacement operation within a robot structure in which the controlled objects are tightly packed together, and as a result, it is difficult to perform the replacement operation of multiple sets of controlled objects in parallel and speed up the replacement process.
[0026] [Reference 1] Kawano, H., “Tunneling-Based Self-Reconfiguration of Heterogeneous Sliding Cube-Shaped Modular Robots in Environments with Obstacles”, 2017 IEEE International Conference on Robotics and Automation, pp.825-832, May 2017, Singapore. [Introduction of 4-mass control object units] Therefore, as shown in Figure 4A, four adjacent control objects are considered to be one unit (control object unit), and the control objects move while maintaining this control object unit. In other words, every four objects constitute one control object unit, and the four control objects constituting one control object unit move while maintaining a state of being adjacent to the other control object objects constituting the one control object unit in three directions. This group of control object units is controlled so that each control object unit shares one surface with the other control object units and moves while touching each other. The four control objects belonging to the same control object unit are also heterogeneous, rather than identical, and each control object has its own unique target position even within the control object unit, and moves between different control object units before and after the formation transformation.
[0027] The reason for moving these four control objects as a single unit is that control objects belonging to other control object units can pass through the four gap spaces within each control object unit, making it easy for control objects belonging to different control object units to move back and forth between them. It also makes it easy to maintain connectivity when control objects belonging to other control object units pass through the four gap spaces within each control object unit. This reduces the computational load required to consider the connectivity between control objects when determining the movement of each control object, which must be taken into account to maintain the formation.
[0028] Here, the control object unit formed by four control objects is considered to be one mass unit (hereinafter, in this embodiment, this unit will also be referred to as "mass unit" or "position unit"), and a state space is created with one mass unit as one state. When the position of the control object unit is (Xr_u[j], Yr_u[j], Zr_u[j]) (j=0, 1, 2, ... j_max-1), and the control objects in the control object unit j are i1, i2, i3, i4, then 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] Let Rr[i] = j be the variable representing the control object unit j to which each control object i belongs. Let Ir[i] = (1, 2, 3, 4) be the variable indicating the position of the control object i among the above i1, i2, i3, and i4. Let the initial position of each control object unit be (Xr_u0[j], Yr_u0[j], Zr_u0[j]), and the target position be (Xr_ue[j], Yr_ue[j], Zr_ue[j]). Hereinafter, the total number p of control objects is assumed to be a multiple of 4.
[0029] As shown in Figure 4B, it is possible to configure an eight-cell control object unit by combining two control object units, and formation control of a group of control objects configured with eight cell control object units is also possible by controlling a four-cell control object unit. The combination of these two control object units is sometimes called a combined control object unit.
[0030] Furthermore, the control object unit is not limited to the example of FIG. 4 , and may be configured to satisfy the following conditions: That is, the control object unit (1) is a substructure within a cubic space (hereinafter referred to as a metamodule) having a length M (M≧2, where the length of one control object is 1) in each axial direction in a three-dimensional Cartesian coordinate system (in other words, the control object unit occupies a part of the metamodule), (2) the number of control objects included in the control object units within the metamodule is equal to the number of parts other than the control object units (i.e., voids) in the metamodule, and (3) includes a structure in which M control objects are adjacent in each axial direction. For example, the control object unit illustrated in FIG. 4 (1) is a substructure of a metamodule consisting of a cube with a total of 8 squares, with a length M=2 in each axial direction, (2) the number of control objects within the control object unit is 4, and the number of voids in the metamodule is equal to 4, and (3) includes a structure in which two control objects are adjacent in each axial direction.
[0031] In the following explanation, as an example of a control object unit, a structure consisting of four control objects shown in FIG. 4 will be explained. 3 A similar effect can be obtained if the control object unit is configured to satisfy the above conditions (1) to (3) within a metamodule of the size of one unit.
[0032] [Heterogeneous Platoon Control] Below we will explain a method for heterogeneous control object convoy control, which transforms a structure consisting of each control object i that makes up an 8-mass control object unit from a state in which each control object is located at its initial position (Xr0[i], Yr0[i], Zr0[i]) within the set of initial positions S to a state in which each control object is located at its respective target position (Xre[i], Yre[i], Zre[i]) within the set of target positions G.
[0033] Assume that sets S and G are composed of 8-cell control object units, each consisting of two 4-cell control object units. The number of 4-cell control object units, j_max, is an even number, and the relationship between the numbers of the two 4-cell control object units, j1 and j2, that make up one 8-cell control object unit is j1 + j_max / 2 = j2 (when j_max = 8, 0, 1, 2, 3 are j1, 4, 5, 6, 7 are j2, and the set (j1, j2) = (0, 4) (1, 5) (2, 6) (3, 7) makes up an 8-cell unit). j2 is the 4-cell control object unit represented by a dot in Figure 4B. Let j1 be called LCMM and j2 be called UCMM. j1 is sometimes called a second-type control object unit, and j2 is called a first-type control object unit. If the control objects in the j-th UCMM are i5, i6, i7, and i8 (Figure 4), then: 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 Similarly, in UCMM, the variable representing the control object unit j to which each control object i belongs is defined as Rr[i]=j, and the variable indicating the position of the control object i among i5, i6, i7, and i8 is defined as Ir[i]=(5,6,7,8).
[0034] In this way, the control object units include first-type control object units and second-type control object units, each of which is composed of U (U is an integer equal to or greater than 4) control objects, and each control object has an initial position and a target position. The structure composed of the control objects at the initial position and the target position is composed of a combined control object unit composed of 2U control objects by combining the first-type control object units and the second-type control object units.
[0035] During the transformation process, the intermediate position at the start of the swapping process for swapping the positions of each robot is called M, and the intermediate position after the swapping process is called M'. M and M' are not forms consisting of only 8-cell robot units like S and G, but forms in which only LCMM may exist at a certain robot unit position.
[0036] Here, the transformation of the robot from S to G can be divided into the following three processes:
[0037] (1) Homogeneous transformation process from S to M (2) The process of swapping the positions of each controlled object in M. After the swapping process, M becomes M'.
[0038] (3) Homogeneous transformation process from M' to G The transformation processes of (1) and (3) utilize a homogeneous transformation method previously proposed (e.g., PCT / JP2021 / 025458). In the S → M transformation, first, homogeneous transformation is used to transform S into the intermediate form Mpre with 8 cells, and then Mpre is transformed into M using the method proposed in this invention. In the M' → G transformation, first, homogeneous transformation is used to transform G into the intermediate form Mpost with 8 cells, and then Mpost is transformed into M' using the method proposed in this invention. This process is calculated by simulation, and the calculated operation is then played back in reverse to achieve the transformation.
[0039] The robot intermediate positions M and M', where the controlled object swap process in process (2) takes place, are composed of a mixture of 4-cell controlled object units, LCMM and UCMM (note that unlike S and G, which are composed of 8 cells, there are robot unit positions where LCMM exists alone). By adopting a robot structure with 4-cell controlled object units, it is possible to secure 4 cells of space within each controlled object unit for controlled objects belonging to other controlled object units to pass through and for each controlled object to swap positions. By each controlled object unit within M having such space, it is possible to perform the controlled object swap operation simultaneously in parallel within each controlled object unit, making it possible to speed up the swap operation.
[0040] Another condition for the shape of M and M' is that the graph formed by taking each LCMM in M and M' as a node (vertex) and the two faces connecting two adjacent LCMMs as edges (branchs) must form a part of a Hamiltonian circuit pH. This is necessary so that multiple controlled objects moving simultaneously in parallel to the positions of the controlled objects to be swapped can reach their respective swap positions while avoiding collisions by following a common circuit pH. While this method makes it difficult to individually optimize the path to be followed by each controlled object, it easily increases the number of controlled objects simultaneously swapping to a number close to the total number of controlled objects while giving each controlled object a path of a length that is acceptable for practical use. Another approach is to use a path search to optimize and calculate the paths for each control object unit that moves simultaneously, while taking collision avoidance into consideration, without using the Hamiltonian loop pH. However, when the number of control object units that are swapped simultaneously is increased to the maximum possible extent, as in the present invention, there is little space available to secure the movement paths of each moving control object, and it is still difficult to realize a method using a path search-based approach that can provide a solution with satisfactory speed for any shape of robot structure (limited solutions have been reported only for robot structures with a rectangular parallelepiped shape). Therefore, this approach using the Hamiltonian loop pH has an advantage in terms of feasibility.
[0041] Due to the conditions regarding the shapes of M and M' described above, the transformation process in (1) and (3) is a transformation process between S and G, which are composed of 8-cell control object units, and M and M', which are composed of 4-cell control object units, and therefore the transformation involves expanding the structure made up of 8-cell control object units into a structure made up of 4-cell control object units. Naturally, in terms of the positional relationship between S and G, S∩G (the common part of S and G) may not be an O set, and as a consequence, it must be taken into consideration that there are multiple control objects included in S∩M (the common part of S and M) and M∩G (the common part of M and G). This can be addressed using the homogeneous transformation method mentioned above (for example, the method described in PCT / JP2021 / 025458). The problem in [Reference 1], "the slow speed of heterogeneous deformation caused by the difficulty of simultaneous movement of the controlled objects due to the dense robot structure," can be solved in this invention by adopting a structure with many voids using four-mass controlled object units for M and M'.
[0042] [Determining intermediate positions M and M'] We now discuss the shape of M (and M'; hereafter, we will refer to M only). As shown in Figure 5, when the LCMMs in M are taken as nodes (vertices) and the two faces connecting two adjacent control object units are taken as edges (branches), the resulting graph must be part of a Hamiltonian circuit pH (here, we say that M has a Hamiltonian graph shape). (In Figure 5, of the Hamiltonian circuit pH containing 12 control object unit positions, 10 are occupied by LCMMs in M.) The graph formed by the LCMMs in M forms a Hamiltonian circuit (not necessarily a closed circuit). As for the UCMMs in M, they are arranged so that control object unit positions with only LCMMs and control object unit positions with 8-cell control object units consisting of LCMMs and UCMMs alternate along the Hamiltonian circuit containing the LCMMs. With this structure, the number of LCMMs in M is approximately double the number of UCMMs. Therefore, the number of control object unit positions occupied by M is approximately j_max × (2 / 3), which is (4 / 3) times the number of control object unit positions occupied by S and G. We say "approximately" here because the exact number varies slightly depending on the remainder when j_max / 2 (= the number of control object unit positions in S and G) is divided by 3. In the example of Figure 5, the number of UCMMs is 5 and the number of LCMMs is 10, which is exactly twice the number of UCMMs. By adopting such a structure for M, heterogeneous deformation is possible by simply requiring an extra region for intermediate position M that is approximately (1 / 3) the size of S and G (in the method described in Non-Patent Document 2, intermediate position M occupies an area approximately twice the size of S and G).
[0043] In the current state of graph theory research, there is no established method to generally determine whether an arbitrary graph has a Hamiltonian cycle, so it is not easy to determine whether, for example, S+G is a Hamiltonian graph shape. Therefore, we consider generating a Hamiltonian graph from scratch that satisfies the geometric conditions that M should have.
[0044] We will briefly explain this method. First, consider a structure M0 in which four control object units are arranged in a square shape as a small Hamiltonian graph-shaped robot structure. As shown in Figure 6, M0 clearly has a Hamiltonian cycle that goes around all four sides of the square. Here, select two adjacent vertices on the Hamiltonian cycle (for example, two adjacent control object units 1 and 2), add two control objects a and b to M0 that are in a position that touches the two control object units but do not overlap with the control objects in M0, and add edges connecting control object units 1 and a, a and b, and b and 2, respectively, to create M1. Then, M1 has a Hamiltonian graph-shaped structure with a Hamiltonian cycle 1 → a → b → 2 → 3 → 4 → 1. The addition of two control objects in this way is called M L By repeating (L=0,1,2,3,,,), M L By growing the L When the number of control object units contained in exceeds a certain value, M L satisfies the necessary conditions for a Hamiltonian cycle shape containing M. L The minimum number of control object units that M should contain varies slightly depending on the value of j_max / 2. When j_max / 2 is divided by 3, the quotient is k_max, and the remainder is A_max. If the remainder A_max is 0, the number of UCMMs in M is 2k_max, the number of LCMMs is 4k_max, and M L The minimum number of unit positions of the controlled object that M should contain is 4k_max+2. When the remainder A_max is 1, the number of UCMMs in M is 2k_max, the number of LCMMs is 4k_max+2, and M L The minimum number of unit positions of the controlled object that M should contain is 4k_max+2. When the remainder A_max is 2, the number of UCMMs in M is 2k_max+1, the number of LCMMs is 4k_max+3, and M L The minimum number of unit positions of the controlled object that should be included is 4k_max+4. ucmm , the number of LCMMs is N lcmm , M L The minimum number of control object units that should be included is N hamilton_min Let's say.
[0045] Here, taking into consideration the position of obstacles in the space where the robot transforms and the shapes of S and G, setting M0 and then repeating the process, M L By adding to, the shape of M can be determined taking into account various geometric conditions of the space in which the robot transforms.
[0046] For example, M can be determined by the following process.
[0047] [M_Decision] (1) Select M0 that fits within S+G.
[0048] (2) Repeat steps (3) to (4) below.
[0049] (3) M L Let M be the control object unit included in L The Hamiltonian cycles in the matrix are numbered 0, 1, 2, 3, ... (4-1) + L × 2 in the order they are traced, and are designated pH0, pH1, pH2, pH3, ... pH(4-1) + L × 2. Let k = 0.
[0050] (4) Select two control object units with adjacent numbers (kth, k+1th. When k=(4-1)+L×2, (4-1)+L×2th and 0th) in ascending order. Each time, select a control object unit that is in contact with both of the two control object units and is in S+G. L If there are two new control object unit positions that are not within M, the two new control object unit positions (a, b) are L Add to M L+1 Let the Hamiltonian cycle of be pH 0, pH 1,…, pH k,a,b, pH k+1,…, pH (4-1)+L×2. M L+1 The unit position of the controlled object contained in hamilton_min If there are not more than 1, return to (3). L+1 The unit position of the controlled object contained in hamilton_min When the number of pieces is reached, the game ends. L For every pair of adjacent control objects in the Hamiltonian cycle in LIf the position of the controlled object that is not within the range no longer exists, go to (5).
[0051] (5) Repeat steps (6) to (7) below.
[0052] (6) M L Let M be the control object unit included in L The Hamiltonian cycles in the matrix are numbered 0, 1, 2, 3, ..., (4-1) + L × 2 in the order they are traced, and are designated pH0, pH1, pH2, pH3, ..., pH(4-1) + L × 2. Let k = 0.
[0053] (7) Select two control object units with adjacent numbers (kth, k+1th. When k=(4-1)+L×2, (4-1)+L×2th and 0th) in ascending order, and select two control object units that are in contact with both of these two control object units, and at least one of them is in S+G, and both are in M. L If there are two new control object unit positions that are not within the range and do not overlap with the obstacle position, the two new control object unit positions (a, b) are set to M L Add to M L+1 Let the Hamiltonian cycle of be pH 0, pH 1,…, pH k,a,b, pH k+1,…, pH (4-1)+L×2. M L+1 The unit position of the controlled object contained in hamilton_min If there are not yet any, return to (6). L+1 The unit position of the controlled object contained in hamilton_min When the number of pieces is reached, the game ends. L If there are no more control object positions that can be added for all pairs of adjacent control objects in the Hamiltonian cycle, go to (8).
[0054] (8) Repeat steps (9) to (10).
[0055] (9) M L Let M be the control object unit included in L The Hamiltonian cycles in the matrix are numbered 0, 1, 2, 3, ..., 4-1)+L×2 in the order they are traced, and are designated pH0, pH1, pH2, pH3, ..., pH(4-1)+L×2. Let k=0.
[0056] (10) Select two control object units with adjacent numbers (kth, k+1th. When k=(4-1)+L×2, (4-1)+L×2th and 0th) in ascending order, and select two control object units that are in contact with both of these control object units and are both M L If there are two new control object unit positions that are not within the range and do not overlap with the obstacle position, the two new control object unit positions (a, b) are set to M L Add to M L+1 Let the Hamiltonian cycle of be pH 0, pH 1,…, pH k,a,b, pH k+1,…, pH (4-1)+L×2. M L+1 The unit position of the controlled object contained in hamilton_min If there are not yet any, return to (6). L+1 The unit position of the controlled object contained in hamilton_min When the number of pieces is reached, the game ends. L If there are no more control object positions that can be added for all pairs of adjacent control objects in the Hamiltonian cycle, go to (11).
[0057] (11) Select another M0 in S+G. If it is not found in S+G, select an M0 that is partly in S+G and does not overlap with any obstacles, and return to (2).
[0058] [M_Decision] finds M that contains a proper Hamiltonian cycle. L If found, M L The number of control object units included in hamilton_min This is because the process of [M_Decision] starts from M0, which contains the minimum four control object unit positions, and selects two control object unit positions in M L However, by [M_Decision], we can select an appropriate M L If not found, i.e., M generated by [M_Decision] L The number of control object unit positions included in hamilton_minIf the following is true, then M L The number of control object unit positions included in hamilton_min Bigger M L Even in such cases, high-speed heterogeneous deformation can be achieved by applying the control object replacement process described below.
[0059] [M_Additional_Decision] (1) Repeat the following steps (2) to (3) for the ML generated by [M_Decision].
[0060] (2) M L Let M be the control object unit included in L The Hamiltonian circuits in the matrix are numbered 0, 1, 2, 3, ... (4-1) + L × 2 in the order they are traced, and are designated pH0, pH1, pH2, pH3, ... pH(4-1) + L × 2.
[0061] (3) Select two control object units with adjacent numbers (kth, k+1th. When k=(4-1)+L×2, (4-1)+L×2th and 0th) in ascending order, and each time they are selected, connect those two control object units and add them to the current M L The path p that does not pass through the object position and obstacle position included in k Search for the existence of path p k If exists, then the path p k n in p Position of the individual (p k 1, p k 2, p k 3, p k 4,,, p k n p ) to M L Add to M L+1 The Hamiltonian cycle of pH 0, pH 1,…, pH k, p k 1, p k 2, p k 3, p k 4,,, p k n p , pH k+1,…, pH (4-1)+L×2. M L+1The unit position of the controlled object contained in hamilton_min If the number does not exceed M, return to (2). L+1 The unit position of the controlled object contained in hamilton_min If the number of pieces exceeds the limit, the game ends. L For every pair of adjacent control objects in a Hamiltonian cycle in L If there are no more control object positions that are not within the range and do not match the obstacle position, the process ends.
[0062] [M_Decision] The position of each vertex (control object unit) of the Hamiltonian cycle in M selected by [M_Additional_Decision] is (Hamilton_X[k], Hamilton_Y[k], Hamilton_Z[k]) (k=0,1,2,…N hamilton -1). N hamilton is the number of vertex (control object unit) positions of the Hamiltonian cycle that M is included in.
[0063] [S→M transformation process] This deformation process can be roughly divided into two processes: homogeneous deformation from S to Mpre, and homogeneous deformation from Mpre to M. In M, the position of the j-th UCMM is P_UCMM[j] = (X_UCMM[j], Y_UCMM[j], Z_UCMM[j]), and the position of the j-th LCMM is P_LCMM[j] = (X_LCMM[j], Y_LCMM[j], Z_LCMM[j]). Here, for convenience, Let P_UCMM[j]=(Hamilton_X[2j], Hamilton_Y[2j], Hamilton_Z[2j]), (i) When A_max = 0 P_LCMM[j]=(Hamilton_X[j], Hamilton_Y[j], Hamilton_Z[j]) (ii) When A_max = 1 (ii-i) 0 ≦ j < N lcmm - When it's 2 P_LCMM[j]=(Hamilton_X[j], Hamilton_Y[j], Hamilton_Z[j]) (ii-ii)j ≧ Nl cmm - When it's 2 P_LCMM[j]= (Hamilton_X[N hamilton - 2 + (j - N lcmm + 2)], Hamilton_Y[N hamilton - 2 + (j - N lcmm + 2)], Hamilton_Z[N hamilton - 2 + (j - N lcmm + 2)]) (iii) When A_max = 2 (iii-i) 0 ≦ j < N lcmm - When it's 2 P_LCMM[j]=(Hamilton_X[j], Hamilton_Y[j], Hamilton_Z[j]) (iii-ii)j ≧ Nl cmm - When it's 2 P_LCMM[j]= (Hamilton_X[N hamilton - 2 + (j - N lcmm + 2)], Hamilton_Y[N hamilton - 2 + (j - N lcmm + 2)], Hamilton_Z[N hamilton - 2 + (j - N lcmm + 2)]) (Figures 7 and 8(N hamilton_min =N hamilton As can be seen from the above equation and Figures 7 and 8, N hamilton_min =N hamilton In the case of M, the number of unit positions of the controlled object in the Hamiltonian circuit pH without UCMM or LCMM (blank) is 2 when A_max=0, 0 when A_max=1, and 1 when A_max=2. The number of unit positions of the controlled object in the Hamiltonian circuit pH is N hamilton N hamilton_min If it is greater than N_add, N_add≠0 is set. hamilton_min +N_add = N hamiltonThen, the number of unit positions of the controlled object in the empty Hamiltonian loop pH in M is 2+N_add when A_max=0, N_add when A_max=1, and 1+N_add when A_max=2. The unit positions of the controlled object in the empty Hamiltonian loop pH in M are P_LCMM[0] and P_LCMM[N lcmm - 1], and when A_max=1 and A_max=2, P_LCMM[N lcmm - 2] and P_LCMM[N lcmm - 3].
[0064] Similarly, in Mpre, for the sake of convenience in the M→M' replacement process described below, the eight controlled object positions in Mpre are numbered as follows, P_Mpre[j] = (X_Mpre[j], Y_Mpre[j], Z_Mpre[j]) (j=0, 1, 2,,, j_max / 2-1) (Figure 9).
[0065] (i) When A_max = 0, P_Mpre[j]=(Hamilton_X[j], Hamilton_Y[j], Hamilton_Z[j]) (ii) When A_max = 1, P_Mpre[0]=(Hamilton_X[N hamilton -2], Hamilton_Y[N hamilton -2], Hamilton_Z[N hamilton -2]) P_Mpre[1]=(Hamilton_X[N hamilton -1], Hamilton_Y[N hamilton -1], Hamilton_Z[N hamilton -1]) As j≧2, P_Mpre[j]=(Hamilton_X[j-2], Hamilton_Y[j-2], Hamilton_Z[j-2]) (iii) When A_max = 2, P_Mpre[0]=(Hamilton_X[N hamilton -2], Hamilton_Y[N hamilton-2], Hamilton_Z[N hamilton -2]) P_Mpre[1]=(Hamilton_X[N hamilton -1], Hamilton_Y[N hamilton -1], Hamilton_Z[N hamilton -1]) As j≧2, P_Mpre[j]=(Hamilton_X[j-2], Hamilton_Y[j-2], Hamilton_Z[j-2]) The homogeneous transformation from S to Mpre can be performed using existing 8-mass homogeneous transformation methods because both S and Mpre are composed of the same number of 8-mass control object units, so details are omitted here. An example of an existing 8-mass homogeneous transformation method is the method described in PCT / JP2021 / 025458.
[0066] The transformation from Mpre to M is carried out in the following two steps (1) and (2).
[0067] (1) Move each UCMM at the unit position of the controlled object from P_Mpre[j_max / 2-1] to P_Mpre[j_max / 2- 1 - j_become_lcmm] to fill in the blank Hamilton loop positions in Mpre. The value of j_become_lcmm is N lcmm - j_max / 2 - 1, i.e., when A_max=0, it is k_max-1, when A_max=1, it is k_max, when A_max=2, it is k_max.
[0068] (2) P_Mpre[N ucmm - 1] (=P_Mpre[j_max / 2- 1 - j_become_lcmm - 1]) to move the UCMM at the controlled object unit position of P_Mpre[0] to the specified UCMM position in M.
[0069] The pseudo code is as follows:
[0070] [Mpre->M_Transform] (1) For j=0~j_become_lcmm, the UCMM at the controlled object unit position P_Mpre[j_max / 2 - 1 - j] sets its target position as (Hamilton_X[N hamilton_min - 3 - j], Hamilton_Y[N hamilton_min - 3 - j], Hamilton_Z[N hamilton_min - 3 - j]), and when A_max=2, (Hamilton_X[N hamilton_min - 4 - j], Hamilton_Y[N hamilton_min - 4 - j], Hamilton_Z[N hamilton_min - 4 - j]), and move on the LCMM along the Hamilton loop pH in the direction of increasing pH position numbers until it reaches the position next to each target position in the Hamilton loop pH. Then, it is transformed into the LCMM and moved to each target position. The difference in the movement start time between the UCMMs at P_Mpre[j_max / 2 - 1 - j] and P_Mpre[j_max / 2 - 1 - (j+1)] is set to the number of time steps required for P_Mpre[j_max / 2 - 1 - j] to transform into the LCMM.
[0071] (2) j=0~N ucmm - 1, P_Mpre[N ucmm The UCMM at the controlled object unit position of [N - 1 - j] sets its target position as P_UCMM[N ucmm - 1 - j] = (Hamilton_X[2×(N ucmm - 1 - j)], Hamilton_Y[2×(N ucmm - 1 - j)], Hamilton_Z[2×(N ucmm - 1 - j)]) and move along the Hamilton circuit pH in the direction of increasing pH position numbers until each target position is reached. ucmm - 1 - j] and P_Mpre[N ucmmThe difference in the movement start time between UCMMs in [j+1] is set to the number of time steps required for each UCMM to move on the LCMM.
[0072] [Setting the target position during the swap process] The position swapping process in M is performed as follows. Let target[i] be the target position of each controlled object i in M'. Let i1[j], i2[j], i3[j], and i4[j] be the controlled objects in the LCMM in P_LCMM[j] (Rr[i1[j]] = Rr[i2[j]] = Rr[i3[j]] = Rr[i4[j]] = j). Let i5[j], i6[j], i7[j], and i8[j] be the controlled objects in the UCMM in P_UCMM[j] (Rr[i5[j]] = Rr[i6[j]] = Rr[i7[j]] = Rr[i8[j]] = j). Here, let target_hamilton[i] be the position number in the Hamilton loop pH that includes the target position target[i] of each controlled object i. In M', if target[i] is in the LCMM at the jth Hamilton loop pH position, then target_hamilton[i] = j. If it is in the UCMM, then target_hamilton[i] = j + N. hamiltonLet target_inner[i] be a variable that represents the internal position of target[i] in the UCMM or LCMM to which it belongs, and when target[i] is at an internal position of iX (= i1, i2, i3, i4, i5, i6, i7, i8), let target_inner[i] = X. In the present invention, further care is required in handling the target position of each controlled object. This is because M and M' generally do not have the same structure, and therefore the controlled object units that were located at the positions of P_LCMM[j] and P_UCMM[j] in M do not exist in the same positions in M' as they were in M. Since the process of exchanging the positions of the controlled objects consists of the exchange of controlled objects between each UCMM and LCMM, it is also necessary to properly manage which UCMM or LCMM is located at which controlled object unit position in M' that includes the target position target[i] of each controlled object i (strictly speaking, when considering the process of transformation into M' by moving only each UCMM and LCMM, rather than simply exchanging the positions of each controlled object during the exchanging process, it is necessary to manage which pH position in M' the controlled object units that were in P_LCMM[j], P_UCMM[j] in M move to). Let target_UCMM_or_LCMM[i] be the variable representing the number of the LCMM or UCMM at the control object unit position that includes the target position target[i] of each control object i. When the control object i moves to the LCMM that was in P_LCMM[j] in M, let target_UCMM_or_LCMM[i] be j. When the control object i moves to the UCMM that is in P_UCMM[j] in M, let target_UCMM_or_LCMM[i] be j+N. lcmmLet target_inner[i] be the internal position within the LCMM or UCMM to which each controlled object i is moved, and let target_inner_before[i] be the variable that indicates the internal position in M of the controlled object that is at target_inner[i] in M' (strictly speaking, this means that when considering the process of transformation into M' by only moving each UCMM and LCMM, without simply swapping the positions of the controlled objects in the swapping process, the controlled object that was at target_inner_before[i] in M has moved to target_inner[i] in M').
[0073] The outline of the position swapping process of the present invention is as follows. In the swapping process, each UCMM simultaneously moves one step at a time on the LCMM along the Hamilton circuit pH in the direction of increasing position number in pH. If there is a target position of the controlled object in each UCMM in the LCMM (called the swap destination LCMM) adjacent to the LCMM on which each UCMM is mounted (the LCMM that forms an 8-cell unit in pair with each UCMM), (strictly speaking, the swap destination LCMM is P_UCMM[target_UCMM_or_LCMM[i]-N lcmm] has been moved to that position, or the LCMM that was in P_LCMM[target_UCMM_or_LCMM[i]] has been moved to that position), the process repeats replacing each replacement target control object i with the control object in the replacement destination LCMM that was in target_inner_before[i] in M (Figure 10). If there is no LCMM at the destination position of the UCMM, the UCMM is transformed and moved to the LCMM at the destination gap position (the gap position next to the UCMM's position in the Hamilton closed circuit pH). Then, to make up for the loss of one UCMM, the LCMM whose previous position in the Hamilton closed circuit pH is a gap is transformed and moved to the UCMM (this becomes the UCMM at the next position in the Hamilton closed circuit pH). In this way, the replacement process ends after all LCMMs and UCMMs have moved all of the controlled objects contained within them to the LCMMs or UCMMs containing their respective target positions, but for this to happen, all controlled object units that were UCMMs in M must become LCMMs at least once, and the positions of all controlled object units (all that were LCMMs and UCMMs in M) must be traced as UCMMs at least once. Similarly, all controlled object units that were LCMMs in M must become UCMMs at least once, and when they become UCMMs, the positions of all controlled object units (all that were LCMMs and UCMMs in M) must be traced at least once.
[0074] In other words, before the replacement process begins, the relationship between the "pre-given values of target_hamilton[i], target_inner[i]" and the values of target_UCMM_or_LCMM[i] and target_inner_before[i] must be accurately calculated, taking into account the operation of the replacement process described above. Now, let's talk about M'. Figure 11 shows the structure of M' when A_max = 0. (1) in Figure 11 shows M (at the start of the replacement process). After the replacement process begins, all the control object units that were UCMM are first converted to LCMM (Figure 11 (2)). After that, the replacement process ends when all have been converted to UCMM again. The structure at the end of the replacement process is shown in (3), and at the same time, the structure shown in (3) is M'. During the replacement process, all the control object units that were UCMM in M are converted to LCMM once, so the positions of the LCMM and UCMM in M' change from their positions in M to N on the Hamilton circuit pH. ucmm The position of each UCMM and LCMM in M' is shifted by -(2+N_add) units (naturally, the position of the gap also shifts in the same way). (i) When A_max=0, (ii) (j+ N ucmm -(2+N_add))≦N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(2+N_add)], Hamilton_Y[j+ N ucmm -(2+N_add)], Hamilton_Z[j+ N ucmm -(2+N_add)]) (i-ii) (j+ N ucmm -(2+N_add))>N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(2+N_add)-N hamilton ], Hamilton_Y[j+ N ucmm -(2+N_add)-Nhamilton ], Hamilton_Z[j+ N ucmm -(2+N_add)-N hamilton ]) (i-iii)(2j+ N ucmm -(2+N_add))≦N hamilton When it is -1 P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(2+N_add)], Hamilton_Y[2j+ N ucmm -(2+N_add)], Hamilton_Z[2j+ N ucmm -(2+N_add)]) (i-iv)(2j+ N ucmm -(2+N_add))>N hamilton When it is -1 P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(2+N_add)-N hamilton ], Hamilton_Y[2j+ N ucmm -(2+N_add)-N hamilton ], Hamilton_Z[2j+ N ucmm -(2+N_add)-N hamilton ]) From this, (i) When the target position of the controlled object i is LCMM (ii) target_hamilton[i] - ( N ucmm When -(2+N_add))≧0 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(2+N_add)) (i-ii) target_hamilton[i] - ( N ucmm When -(2+N_add))<- ( 2 + N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( N ucmm-(2+N_add))+(2+N_add)+N lcmm It can be said that:
[0075] Figure 12 shows M' when A_max=1,2. Similarly, when A_max=1, the positions of LCMM and UCMM at M' are N on the Hamilton circuit pH from the positions at M. ucmm It has moved to a position shifted by -(0+N_add) units, and when A_max=2, the positions of LCMM and UCMM at M' are N on the Hamilton circuit pH from the positions at M. ucmm Since it has moved to a position shifted by -(1+N_add) units, (i) When A_max=1, (ii) 0 ≦ j < N lcmm - 2 and (j+ N ucmm -(0+N_add))≦N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(0+N_add)], Hamilton_Y[j+ N ucmm -(0+N_add)], Hamilton_Z[j+ N ucmm -(0+N_add)]) (i-ii) 0 ≦ j < N lcmm - 2 and (j+ N ucmm -(0+N_add))>N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Y[j+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Z[j+ N ucmm -(0+N_add)-N hamilton ]) (i-iii) j ≧ Nl cmm - When 2 and N hamilton− 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)≦N hamilton -1のとき P'_LCMM[j] =(Hamilton_X[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)], Hamilton_Y[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)], Hamilton_Z[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)]) (i–iv) j ≧ Nl cmm - 2のときで、かつ、N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)>N hamilton -1のとき P'_LCMM[j] =(Hamilton_X[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Y[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Z[N hamilton − 2 + ( j − N lcmm + 2)+ N ucmm -(0+N_add)-N hamilton ]) (iv) (2j+ N ucmm -(0+N_add))≦N hamilton -1のとき P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(0+N_add)], Hamilton_Y[2j+ N ucmm -(0+N_add)], Hamilton_Z[2j+ N ucmm -(0+N_add)]) (i-vi) (2j+ N ucmm -(0+N_add))>N hamilton When it is -1 P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Y[2j+ N ucmm -(0+N_add)-N hamilton ], Hamilton_Z[2j+ N ucmm -(0+N_add)-N hamilton ]) (ii) When A_max=2, (ii-i) 0 ≦ j < N lcmm - 2 and (j+ N ucmm -(1+N_add))≦N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(1+N_add)], Hamilton_Y[j+ N ucmm -(1+N_add)], Hamilton_Z[j+ N ucmm -(1+N_add)]) (ii-ii) 0 ≦ j < N lcmm - 2 and (j+ N ucmm -(1+N_add))>N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[j+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Y[j+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Z[j+ N ucmm-(1+N_add)-N hamilton ]) (ii-iii) j ≧ Nl cmm - 2 and ( N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add))≦N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)], Hamilton_Y[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)], Hamilton_Z[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)]) (ii-iv) j ≧ Nl cmm - 2 and (N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add))>N hamilton When it is -1 P'_LCMM[j] =(Hamilton_X[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Y[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Z[N hamilton - 2 + (j - N lcmm + 2)+ N ucmm -(1+N_add)-N hamilton ]) (ii-v) (2j+ N ucmm-(1+N_add))≦N hamilton When it is -1 P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(1+N_add)], Hamilton_Y[2j+ N ucmm -(1+N_add)], Hamilton_Z[2j+ N ucmm -(1+N_add)]) (ii-vi) (2j+ N ucmm -(1+N_add))>N hamilton When it is -1 P'_UCMM[j] =(Hamilton_X[2j+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Y[2j+ N ucmm -(1+N_add)-N hamilton ], Hamilton_Z[2j+ N ucmm -(1+N_add)-N hamilton ]) that's why, (i) When A_max=1 (ii) target_hamilton[i] - ( N ucmm -(0+N_add)) >= -2 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(0+N_add)) As a result of the above processing, if target_UCMM_or_LCMM[i]<0, target_UCMM_or_LCMM[i]←target_UCMM_or_LCMM[i] + N lcmm ((ii) End) (i-ii) target_hamilton[i] - ( N ucmm When -(0+N_add))<-2-(0+N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( Nucmm -(0+N_add))+(0+N_add)+N lcmm ((i-ii) end) (ii) When A_max=2 (ii-i) target_hamilton[i] - ( N ucmm -(1+N_add)) >= -2 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(1+N_add)) As a result of the above processing, if target_UCMM_or_LCMM[i]<0, target_UCMM_or_LCMM[i]←target_UCMM_or_LCMM[i] + N lcmm ((ii-i) end) (ii-ii) target_hamilton[i] - ( N ucmm When -(1+N_add))<-2 -(1+N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( N ucmm -(1+N_add))+(1+N_add)+N lcmm ((ii-ii) end) This becomes:
[0076] When the target position of the controlled object i is UCMM, N is calculated from target_hamilton[i]. hamilton For the value after subtracting, first calculate target_UCMM_or_LCMM[i] for the LCMM case, then divide that value by 2 to get N lcmm can be added.
[0077] Next, before discussing the relationship between the value of target_inner[i] and the value of target_inner_before[i], we will define the operation of each controlled object used in the swapping process. This is because the internal position of each controlled object cannot be discussed without its definition.
[0078] Figure 13 shows the behavior of a controlled object unit in UCMM when it moves on the LCMM in the direction of a = 1, 3. Figure 14 shows the behavior of a controlled object unit in UCMM when it moves on the LCMM in the direction of a = 2, 4, and when it moves on the LCMM in the direction of a = 5, 6. If a UCMM at a certain controlled object unit position moves to the adjacent controlled object unit position, the position of each controlled object within the UCMM will change. The way this changes will differ depending on the direction of movement. The function that shows the change in internal position is fx + (iX), fx - (iX), fy + (iX), fy - (iX), fz + (iX), fz - (iX). These correspond to the movements when the movement direction is a=1, 3, 2, 4, 5, 6. Specifically, in the movements shown in Figures 13 and 14, fx + (i5) = i7 fx + (i6) = i8 fx + (i7) = i5 fx + (i8) = i6 fx + (iX) = fx - ( (iX) fx + (fx + (iX)) = fx - (fx - (iX)) = fx + (fx - (iX)) = fx - (fx + (iX)) = iX fy + (i5) = i6 fy + (i6) = i5 fy + (i7) = i8 fy + (i8) = i7 fy+ (iX) = fy - (iX) fy + (fy + (iX)) = fy - (fy - (iX)) = fy + (fy - (iX)) = fy - (fy + (iX)) = iX fz + (i5) = i8 fz + (i6) = i7 fz + (i7) = i6 fz + (i8) = i5 fz + (iX) = fz - (iX) fz + (fz + (iX)) = fz - (fz - (iX)) = fz + (fz - (iX)) = fz - (fz + (iX)) = iX is.
[0079] The characteristics of the movement motion shown in Figures 13 and 14 are: (1) The internal position of the controlled object returns to the same position when moved an even number of times in the same direction.
[0080] (2) For parallel movements in opposite directions, the way in which the internal position changes is the same.
[0081] In addition, it also has the following properties:
[0082] fx + (fy + (iX)) = fy + (fx + (iX)) = fz + (iX) = fz -(iX) fx + (fz + (iX)) = fz + (fx + (iX)) = fy + (iX) = fy - (iX) fz + (fy + (iX)) = fy + (fz + (iX)) = fx + (iX) = fx - (iX) In other words, the following (3) and (4) can be stated.
[0083] (3) The change in internal position when a combination of movements in different directions is equal to the change in internal position when a movement in a direction not included in the combination occurs.
[0084] (4) The internal position change when movements in different directions are combined one by one remains the same even if the order of the movements in the directions included in the combination is reversed.
[0085] From the above, the following properties naturally hold.
[0086] fx - (fy - (iX)) = fy - (fx - (iX)) = fz + (iX) = fz - (iX) fx + (fy - (iX)) = fy - (fx + (iX)) = fz + (iX) = fz - (iX) fx - (fy + (iX)) = fy + (fx - (iX)) = fz + (iX) = fz - (iX) fx - (fz - (iX)) = fz - (fx - (iX)) = fy + (iX) = fy - (iX) fx + (fz - (iX)) = fz - (fx + (iX)) = fy + (iX) = fy - (iX) fx - (fz + (iX)) = fz + (fx - (iX)) = fy + (iX) = fy - (iX) fy - (fz - (iX)) = fz - (fy - (iX)) = fx + (iX) = fx - (iX) fy + (fz - (iX)) = fz - (fy + (iX)) = fx + (iX) = fx - (iX) fy - (fz + (iX)) = fz + (fy - (iX)) = fx + (iX) = fx - (iX) Using the above properties, for example, let's calculate the change in the internal position of a controlled object after a certain controlled object unit moves twice in the a=1 direction, once in the a=2 direction, three times in the a=1 direction, four times in the a=6 direction, two times in the a=3 direction, and three times in the a=4 direction. The internal position of the controlled object that was in iX before the movement becomes fy - (fy - (fy- (fx - (fx - (fz - (fz - (fz - (fz - (fx + (fx + (fx + (fy + (fx + (fx + (iX))))))))))))))) This equation can be simplified as follows:
[0087] fy - (fy - (fy - (fx - (fx - (fz - (fz - (fz - (fz - (fx + (fx + (fx + (fy + (fx + (fx + (iX))))))))))))))) = fy + (fy + (fy + (fx + (fx + (fz + (fz + (fz + (fz + (fx + (fx + (fx + (fy + (fx + (fx + (iX))))))))))))))) = fy + (fy + (fy + (fy + (fz + (fz + (fz + (fz + (fx + (fx+ (fx + (fx + (fx + (fx + (fx + (iX))))))))))))))) = fz + (fz + (fz + (fz + (fx + (fx + (fx + (fx + (fx + (fx + (fx + (iX))))))))))) = fx + (fx + (fx + (fx + (fx + (fx + (fx + (iX))))))) = fx + (iX) That is, the way in which the internal position is transformed is determined as follows, based solely on whether the movement path involves an odd or even number of movements in directions parallel to the x-axis, y-axis, or z-axis.
[0088] Move an even number of times, an even number of times, and an even number of times in directions parallel to the x-axis, y-axis, and z-axis, respectively.
[0089] fx even y even z even (iX) = iX Move in directions parallel to the x-axis, y-axis, and z-axis an even number of times, an even number of times, and an odd number of times, respectively.
[0090] fx even y even z odd (iX) = fz + (iX) Move in directions parallel to the x-axis, y-axis, and z-axis an even number of times, an odd number of times, and an even number of times, respectively.
[0091] fx even fyodd fz even (iX) = fy + (iX) Move in directions parallel to the x-axis, y-axis, and z-axis an odd number of times, an even number of times, and an even number of times, respectively.
[0092] fx odd fy even fz even (iX) = fx + (iX) Move in directions parallel to the x-axis, y-axis, and z-axis an even number of times, an odd number of times, and an odd number of times, respectively.
[0093] fx even y odd z odd (iX) = fy + (fz + (iX))= fx + (iX) Move in directions parallel to the x-axis, y-axis, and z-axis an odd number of times, an odd number of times, and an even number of times, respectively.
[0094] fx odd fy odd fz even (iX) = fx + (fy + (iX))= fz + (iX) Move in directions parallel to the x-axis, y-axis, and z-axis an odd number of times, an even number of times, and an odd number of times, respectively.
[0095] fx odd fy even fz odd (iX) = fx + (fz + (iX)) = fy + (iX) Move an odd number of times, an odd number of times, and an odd number of times in directions parallel to the x-axis, y-axis, and z-axis, respectively.
[0096] fx odd fy odd fz odd (iX) = fx + (fy + (fz + (iX))) = fz +(fz + (iX)) = iX In the present invention, the number of unit positions of the controlled object in the Hamilton closed circuit pH is an even number. If the UCMM goes around the pH once and returns to its original position, it can be easily deduced from the above equation that the change in internal position will be the same as the position before going around the pH. In other words, because the pH is a closed circuit, the number of movements in the positive and negative directions in movements parallel to each of the x, y, and z axes is the same, and the number of movements in directions parallel to each of the x, y, and z axes is all even.
[0097] Next, let us define the function fx that represents the internal position change when the LCMM moves to the position of the neighboring LCMM in the direction of a=1,3,2,4,5,6 and becomes a UCMM. + enter (iX), fx - enter (iX), fy + enter (iX), fy - enter (iX), fz + enter (iX), fz - enter (iX), and the function that represents the change in internal position when the UCMM moves to the position of the adjacent void in the direction of a=1,3,2,4,5,6 and becomes the LCMM is fx + extract (iX), fx - extract (iX), fy + extract (iX), fy - extract (iX), fz + extract (iX), fz - extract Let (iX). Figure 15 shows the behavior when an LCMM moves to the position of the adjacent LCMM in the direction of a = 3 to become a UCMM, and vice versa. Figure 16 also shows the behavior when an LCMM moves to the position of the adjacent LCMM in the direction of a = 1 to become a UCMM, and vice versa. From Figures 15 and 16, fx + enter (i1) = i5 fx +enter (i2) = i8 fx + enter (i3) = i6 fx + enter (i4) = i7 fx - enter (i1) = i7 fx - enter (i2) = i8 fx - enter (i3) = i5 fx - enter (i4) = i6 fx + extract (i5) = i3 fx + extract (i6) = i4 fx + extract (i7) = i1 fx + extract (i8) = i2 fx - extract (i5) = i1 fx - extract (i6) = i3 fx - extract (i7) = i4 fx - extract (i8) = i2 For other directions, the movement directions in Figures 15 and 16 can be interpreted as the respective axes and can be calculated as follows.
[0098] fy + enter (i1) = i8 fy + enter (i2) = i7 fy + enter (i3) = i6 fy + enter(i4) = i5 fy - enter (i1) = i8 fy - enter (i2) = i6 fy - enter (i3) = i5 fy - enter (i4) = i7 fy + extract (i5) = i3 fy + extract (i6) = i2 fy + extract (i7) = i4 fy + extract (i8) = i1 fy - extract (i5) = i4 fy - extract (i6) = i3 fy - extract (i7) = i2 fy - extract (i8) = i1 fz + enter (i1) = i5 fz + enter (i2) = i7 fz + enter (i3) = i8 fz + enter (i4) = i6 fz - enter (i1) = i7 fz - enter (i2) = i6 fz - enter (i3) = i8 fz - enter(i4) = i5 fz + extract (i5) = i4 fz + extract (i6) = i2 fz + extract (i7) = i1 fz + extract (i8) = i3 fz - extract (i5) = i1 fz - extract (i6) = i4 fz - extract (i7) = i2 fz - extract (i8) = i3 Naturally, the following relationship holds:
[0099] fx - enter (fx + extract (iX)) = fx + extract (fx - enter (iX)) = iX fx + enter (fx - extract (iX)) = fx - extract (fx + enter (iX)) = iX fy - enter (fy + extract (iX)) = fy + extract (fy - enter (iX)) = iX fy + enter (fy - extract (iX)) = fy -extract (fy + enter (iX)) = iX fz - enter (fz + extract (iX)) = fz + extract (fz - enter (iX)) = iX fz + enter (fz - extract (iX)) = fz - extract (fz + enter (iX)) = iX Using the above functions, the relational expression between the value of target_inner[i] and the value of target_inner_before[i] can be calculated as shown below.
[0100] The target position of the target object i is included in the target object unit M and is an LCMM (target_UCMM_or_LCMM[i] < N lcmm When A_max=0, the first operation in the process of replacing the control object unit target_UCMM_or_LCMM[i], which is an LCMM in M, is to convert it to UCMM. Then, when A_max=0, the pH is converted to UCMM. hamilton + (N ucmm -(2+N_add)- 2) steps, and when A_max=1, N hamilton + N ucmm -(0+N_add)- Move 2 steps, if A_max=2, then N hamilton + N ucmm -(1+N_add)- 2 steps (the number of steps described here means that the control object unit, which is an LCMM in M, goes around pH once during the exchange process and in addition, when A_max=0, it moves by (N ucmm -(2+N_add)- 2) steps, when A_max=1, N ucmm -(0+N_add)- 2 steps, when A_max=2, N ucmmThe program moves -(1+N_add)- 2 steps, from which one step each is subtracted for UCMM transformation and re-LCMM transformation. After that, it finally re-LCMMs. In other words, once the direction of movement during the initial UCMM transformation, the direction of movement during the final re-LCMM transformation, and the number of moves parallel to the x, y, and z axes when moving as UCMM are determined (even or odd), it is possible to calculate the change in the internal position of the control object contained in the control object unit target_UCMM_or_LCMM[i] between M and M'. The code to calculate the value of target_inner_before[i] when the control object unit containing the target position of control object i is M and LCMM is shown in the example below, [LCMM_inner_transform(i)].
[0101] [LCMM_inner_transform(i)] (1) In M, when moving along the pH of the LCMM at the position P_LCMM[target_UCMM_or_LCMM[i]], the direction of movement to the next position P_start is defined as a_start. When a_start=1, f enter (iX) ← fx + enter (iX) When a_start=2, f enter (iX) ← fy + enter (iX) When a_start=3, f enter (iX) ← fx - enter (iX) When a_start=4, f enter (iX) ← fy - enter (iX) When a_start=5, f enter (iX) ← fz + enter (iX) When a_start=6, f enter (iX) ← fz - enter (iX) Let's say.
[0102] (2) When moving backward along the pH of the LCMM at the position P'_LCMM[target_UCMM_or_LCMM[i]] in M', the reverse direction of the movement to the next position P_end is defined as a_end. When a_end=1, f extract (iX) ← fx + extract (iX) When a_end=2, f extract (iX) ← fy + extract (iX) When a_end=3, f extract (iX) ← fx - extract (iX) When a_end=4, f extract (iX) ← fy - extract (iX) When a_end=5, f extract (iX) ← fz + extract (iX) When a_end=6, f extract (iX) ← fz - extract (iX) Let's say.
[0103] (3) Let f be the function that represents the change in the internal position of the controlled object in the UCMM when the UCMM moves along the Hamilton circuit pH from P_start to P_end. mov Let (iX) be the number of movements parallel to the x, y, and z axes, respectively, and let nx, ny, and nz be the number of movements parallel to the x, y, and z axes. When nx, ny, and nz are even, even, and even respectively, f mov (iX) ← fx even y even z even (iX) = iX When nx, ny, nz are even, even, and odd numbers, respectively, f mov (iX) ←fx even y even zodd (iX) = fz + (iX) When nx, ny, and nz are even, odd, and even numbers, respectively, f mov (iX) ←fx even fy odd fz even (iX) = fy + (iX) When nx, ny, and nz are odd, even, and even numbers, respectively, f mov (iX) ←fx odd fy even fz even (iX) = fx + (iX) When nx, ny, and nz are even, odd, and odd numbers, respectively, f mov (iX) ←fx even y odd z odd (iX) = fx + (iX) When nx, ny, nz are odd, odd, and even numbers, respectively, f mov (iX) ←fx odd fy odd fz even (iX) = fz + (iX) When nx, ny, and nz are odd, even, and odd, respectively, f mov (iX) ←fx odd fy even fz odd (iX) = fy + (iX) When nx, ny, and nz are odd, odd, and odd, respectively, f mov (iX) ←fx odd fy odd fz odd (iX) = iX Let's say.
[0104] (4) In the replacement process, the function that represents the change in the internal position of the control object within the control object unit target_UCMM_or_LCMM[i] is f perm_lcmm If we use (iX), f perm_lcmm (iX) = f extract (f mov (f enter (iX))) is.
[0105] f perm_lcmm If (iX) = target_inner[i], then target_inner_before[i] ← iX.
[0106] The target position of the target object i is included in the target object unit M and is a UCMM (target_UCMM_or_LCMM[i] > N lcmm - 1), the first action in the process of replacing the control object unit target_UCMM_or_LCMM[i] that is a UCMM in M is a movement on pH to the place where the UCMM becomes an LCMM, and then it becomes an LCMM. The number of movement steps on pH to the place where the UCMM becomes an LCMM is the jth UCMM, and when A_max=0, it is 3 * (N ucmm - 1 - j) + 1, when A_max=1, 3 * (N ucmm - 1 - j) + 1, when A_max=2, 3 * (N ucmm - 1 - j). After it becomes LCMM, it stops for a while and then becomes UCMM again. After it becomes UCMM again, when A_max=0, the pH is hamilton + (N ucmm -(2+N_add))- (3 * (N ucmm - 1 - j) + 1) - 2 steps, and if A_max=1, then N hamilton + N ucmm -(0+N_add)- (3 * (N ucmm - 1 - j) + 1) - 2 steps, and if A_max=2, then N hamilton + N ucmm -(1+N_add)- (3 * (Nucmm - 1 - j)) - Move 2 steps.
[0107] That is, once the even / odd number of movements in directions parallel to the x, y, and z axes when moving as UCMM before the first LCMM conversion, the even / odd number of movements in directions parallel to the x, y, and z axes when moving as UCMM after re-UCMM conversion, the movement direction during the first LCMM conversion, and the movement direction during re-UCMM conversion are determined, it is possible to calculate the change in the internal position of the control object contained in the control object unit target_UCMM_or_LCMM[i] between M and M'. The code for calculating the value of target_inner_before[i] when the control object unit containing the target position of control object i is UCMM in M is [UCMM_inner_transform(i)], as shown in the example below.
[0108] [UCMM_inner_transform(i)] (1) When A_max=0,1, pre_move = 3 * (N ucmm - 1 - j) + 1, when A_max=2, pre_move = 3 * (N ucmm - 1 - j). UCMM is P_UCMM[target_UCMM_or_LCMM[i]-N lcmm ] to the position just before LCMM 2×(target_UCMM_or_LCMM[i]-Nl cmm )+pre_move < N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move]) 2×(target_UCMM_or_LCMM[i]-N lcmm)+pre_move ≧ N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ]) The function f represents the change in the internal position of the controlled object in the UCMM when it moves along the Hamilton circuit pH by pre_move steps. mov_pre Let (iX) be the number of movements parallel to the x, y, and z axes, respectively, and let nx, ny, and nz be the number of movements parallel to the x, y, and z axes. When nx, ny, and nz are even, even, and even respectively, f mov_pre (iX) ← fx even y even z even (iX) = iX When nx, ny, nz are even, even, and odd numbers, respectively, f mov_pre (iX) ←fx even y even z odd (iX) = fz + (iX) When nx, ny, and nz are even, odd, and even numbers, respectively, f mov_pre (iX) ←fx even fy odd fz even (iX) = fy + (iX) When nx, ny, and nz are odd, even, and even numbers, respectively, f mov_pre (iX) ←fx odd fy even fz even (iX) = fx +(iX) When nx, ny, and nz are even, odd, and odd numbers, respectively, f mov_pre (iX) ←fx even y odd z odd (iX) = fx + (iX) When nx, ny, nz are odd, odd, and even numbers, respectively, f mov_pre (iX) ←fx odd fy odd fz even (iX) = fz + (iX) When nx, ny, and nz are odd, even, and odd, respectively, f mov_pre (iX) ←fx odd fy even fz odd (iX) = fy + (iX) When nx, ny, and nz are odd, odd, and odd, respectively, f mov_pre (iX) ←fx odd fy odd fz odd (iX) = iX Let's say.
[0109] (2) 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move < N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move]) 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move ≧ Nhamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move - N hamilton ]) When UCMM at position moves along the pH, the direction of movement to the next position P_start is defined as a_start. When a_start=1, f extract (iX) ← fx + extract (iX) When a_start=2, f extract (iX) ← fy + extract (iX) When a_start=3, f extract (iX) ← fx - extract (iX) When a_start=4, f extract (iX) ← fy - extract (iX) When a_start=5, f extract (iX) ← fz + extract (iX) When a_start=6, f extract (iX) ← fz - extract (iX) Let's say.
[0110] (3) 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1 < N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1]) 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1 ≧ N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1 - N hamilton ], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1 - N hamilton ], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 1 - N hamilton ]) When the LCMM at position moves along the pH, the direction of movement to the next position P_end is defined as a_end. When a_end=1, f enter (iX) ← fx + enter (iX) When a_end=2, f enter (iX) ← fy + enter (iX) When a_end=3, f enter (iX) ← fx - enter (iX) When a_end=4, f enter (iX) ← fy - enter (iX) When a_end=5, f enter (iX) ← fz + enter (iX) When a_end=6, f enter (iX) ← fz - enter (iX) Let's say.
[0111] (4) When A_max=0, post_move ← N hamilton + (N ucmm -(2+N_add))- (3 * (N ucmm - 1 - j) + 1) - 2 When A_max=1, post_move ← N hamilton + N ucmm -(0+N_add)- (3 * (N ucmm - 1 - j) + 1) - 2 When A_max=2, post_move ←N hamilton + N ucmm -(1+N_add)- (3 * (N ucmm - 1 - j)) - 2 As a result, UCMM 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2 < N hamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2]) 2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2 ≧ Nhamilton When (Hamilton_X[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2 - N hamilton ], Hamilton_Y[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2 - N hamilton ], Hamilton_Z[2×(target_UCMM_or_LCMM[i]-N lcmm )+pre_move + 2 - N hamilton ]) From P'_UCMM[target_UCMM_or_LCMM[i]-N lcmm ] is a function that represents the change in the internal position of the controlled object in UCMM when it moves along the Hamilton circuit pH by post_move steps. mov_post Let (iX) be the number of movements parallel to the x, y, and z axes, respectively, and let nx, ny, and nz be the number of movements parallel to the x, y, and z axes. When nx, ny, and nz are even, even, and even respectively, f mov_post (iX)← fx even y even z even (iX) = iX When nx, ny, nz are even, even, and odd numbers, respectively, f mov_post (iX) ←fx even y even z odd (iX) = fz + (iX) When nx, ny, and nz are even, odd, and even numbers, respectively, f mov_post (iX) ←fx even fy odd fz even (iX) = fy + (iX) When nx, ny, and nz are odd, even, and even numbers, respectively, f mov_post (iX) ←fx odd fyeven fz even (iX) = fx + (iX) When nx, ny, and nz are even, odd, and odd numbers, respectively, f mov_post (iX) ←fx even y odd z odd (iX) = fx + (iX) When nx, ny, nz are odd, odd, and even numbers, respectively, f mov_post (iX) ←fx odd fy odd fz even (iX) = fz + (iX) When nx, ny, and nz are odd, even, and odd, respectively, f mov_post (iX) ←fx odd fy even fz odd (iX) = fy + (iX) When nx, ny, and nz are odd, odd, and odd, respectively, f mov_post (iX) ←fx odd fy odd fz odd (iX) = iX Let's say.
[0112] (5) In the replacement process, the function that represents the change in the internal position of the control object within the control object unit target_UCMM_or_LCMM[i] is f perm_ucmm If we use (iX), f perm_ucmm (iX) = f mov_post (f enter (f extract (f mov_pre (iX)))) is.
[0113] f perm_ucmm If (iX) = target_inner[i], then target_inner_before[i]←iX.
[0114] Based on the above, the algorithm for setting the exchange target position is as follows:
[0115] [Predict_Inner_Transform] (1) For every control object i, calculate:
[0116] When the control object unit including the target position of the control object i is LCMM, (i) When A_max=0 (ii) target_hamilton[i] - ( N ucmm -(2+N_add)) >= 0 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(2+N_add)) (i-ii) target_hamilton[i] - ( N ucmm When -(2+N_add))<-(2+N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( N ucmm -(2+N_add))+(2+N_add)+N lcmm (ii) When A_max=1 (ii-i) target_hamilton[i] - ( N ucmm -(0+N_add)) >= -2 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(0+N_add)) When target_UCMM_or_LCMM[i]<0, target_UCMM_or_LCMM[i]←target_UCMM_or_LCMM[i] + N lcmm ((ii-i) end) (ii-ii) target_hamilton[i] - ( N ucmmWhen -(0+N_add))<-2-(0+N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( N ucmm -(0+N_add))+(0+N_add)+N lcmm ((ii-ii) end) (iii) When A_max=2 (iii-i) target_hamilton[i] - ( N ucmm -(1+N_add)) >= -2 target_UCMM_or_LCMM[i]←target_hamilton[i] - ( N ucmm -(1+N_add)) target_UCMM_or_LCMM[i]<0, target_UCMM_or_LCMM[i]←target_UCMM_or_LCMM[i] + N lcmm ((iii-i) end) (iii-ii) target_hamilton[i] - ( N ucmm When -(1+N_add))<-2 -(1+N_add) target_UCMM_or_LCMM[i] ←target_hamilton[i] - ( N ucmm -(1+N_add))+(1+N_add)+N lcmm ((iii-ii) end) When the control object unit containing the target position of the control object i is UCMM, calculate target_UCMM_or_LCMM[i] when the control object unit containing the target position of the control object i is LCMM; target_UCMM_or_LCMM[i]← target_UCMM_or_LCMM[i] / 2 + N lcmm Let's say.
[0117] (2) For all control objects i, (2-1) target_UCMM_or_LCMM[i] >= N lcmm If , execute UCMM_inner_transform(i), and (2-2) target_UCMM_or_LCMM[i] < N lcmm When i, execute LCMM_inner_transform(i).
[0118] [Position swap process at intermediate position M] Figures 17 to 27 show the operation of the replacement process for each value of A_max. The UCMM is the one that mainly operates in the replacement process. Each UCMM simultaneously moves on the LCMM along the Hamiltonian loop pH. In the operation shown in Figures 17, 18, and 19, when A_max=0, one UCMM without an LCMM at the destination unit position of the controlled object becomes an LCMM, and from that position, one LCMM with no LCMM and a gap at the previous position in the Hamiltonian loop pH becomes an UCMM (N hamilton = N hamilton_min The operations shown in Figures 17, 18, and 19 are ucmm By repeating this process N times, all UCMMs are converted to LCMMs. lcmm -N ucmm By repeating this process N times, all LCMMs will be converted to UCMMs. ucmm By repeating this process, all UCMMs will be re-UCMMized and the replacement process will be completed.
[0119] In the operation shown in Figures 20, 21, and 22, similarly, when A_max=1, one UCMM without an LCMM at the unit position of the controlled object to be moved becomes an LCMM, and one LCMM without an LCMM at the position one before in the Hamiltonian loop pH becomes an UCMM (N hamilton = N hamilton_min The operations shown in Figures 20, 21, and 22 are ucmm By repeating this process N times, all UCMMs are converted to LCMMs. lcmm -N ucmmBy repeating this process N times, all LCMMs will be converted to UCMMs. ucmm By repeating this process, all UCMMs will be re-UCMMized and the replacement process will be completed.
[0120] In the operations shown in Figures 23, 24, 25, 26, and 27, when A_max=2, a UCMM without an LCMM at the destination unit position of the controlled object is transformed into an LCMM, and then a LCMM with no LCMM at the previous position in the Hamiltonian loop pH is transformed into an UCMM (N hamilton = N hamilton_min The operations shown in Figures 23, 24, 25, 26, and 27 are ucmm By repeating this process N times, all UCMMs are converted to LCMMs. lcmm -N ucmm By repeating this process N times, all LCMMs will be converted to UCMMs. ucmm By repeating this process, all UCMMs will be re-UCMMized and the replacement process will be completed.
[0121] During these exchange processes, all control object units move their internal control objects into the control object (currently LCMMed) containing their target positions while they are UCMMed. Also, all control object units pass their positions to all other UCMMed control object units while they are LCMMed.
[0122] In the swapping process, the swapping of the positions of each controlled object is, in principle, only performed if the adjacent UCMM is not swapping the controlled object. In other words, in terms of the operational steps shown in Figures 17 to 27, it takes a maximum of two steps for all UCMMs to complete the swapping of the controlled object at their respective positions. The exceptions are (5) when A_max = 0, (8) when A_max = 1, and (8) when A_max = 2. The reason these operations are exceptional is that, normally, each UCMM swaps the controlled object with the LCMM located one position ahead in the Hamilton loop pH from the respective controlled object unit position. However, in these operations, the most recently UCMMized controlled object unit swaps the controlled object with the LCMM located one position ahead in the Hamilton loop pH from that controlled object unit position. Therefore, even if the adjacent UCMM is swapping the controlled object, no disconnection of the controlled object occurs. The pseudocode for the swapping process for each value of A_max is shown below.
[0123] [Permutation_M_M'_A_max_0] (1) Let UCMM_NOW[j] (j=0,1,2,...2×k_max-1) be the object currently being UCMMed. Let j=0 be the object being UCMMed at the position that can be reached in the fewest number of movement steps to the gap position in its direction of travel. The value of j increases as the number of movement steps required to reach the gap position in its direction of travel increases.
[0124] (2) The following (3) to (11) are N lcmm +N ucmm Repeat times.
[0125] (3) For each UCMM_NOW[j] where j is an even number, the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an even number. At the same time, for each UCMM_NOW[j] where j is an odd number, the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an odd number, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1] (Figure 17(1)).
[0126] (4) For each UCMM_NOW[j] where j is an odd number, for which the exchange operation was not performed in (3), execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton circuit pH from the respective UCMM_NOW[j] where j is an odd number (Figure 17(2)).
[0127] (5) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Fig. 17(3)).
[0128] (6) For each UCMM_NOW[j] where j is odd, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM one position away from that position in the Hamilton loop pH and each UCMM_NOW[j] where j is odd. At the same time, for each UCMM_NOW[j] where j > 0 and j is even, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM one position away from that position in the Hamilton loop pH and each UCMM_NOW[j] where j is even, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1]. Only if there is no actual exchange operation in Position_Exchange_Fore() in UCMM_NOW[2×k_max−1], execute Position_Exchange_Aft() in UCMM_NOW[2×k_max−1] (FIG. 18(4)).
[0129] (7) Convert UCMM_NOW[0] to LCMM. At the same time, for each even-numbered UCMM_NOW[j] where j>0, for which no exchange operation was performed in (6), execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton circuit pH from the UCMM_NOW[j] and each even-numbered UCMM_NOW[j]. If Position_Exchange_Aft() was not performed in UCMM_NOW[2×k_max-1] in (6), execute Position_Exchange_Aft() in UCMM_NOW[2×k_max-1]. UCMM_NOW[j] ← UCMM_NOW[j+1]. UCMM_NOW[2×k_max-1] is omitted (Figure 18(5)).
[0130] (8) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Fig. 18(6)).
[0131] (9) The LCMM at the position that requires the most steps to reach the gap position in the direction of travel along the Hamilton loop pH is converted into a UCMM, which is designated as UCMM_NOW[2×k_max-1]. At the same time, for each UCMM_NOW[j] where j is an even number, execute the swap operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the position one step ahead of that position in the Hamilton loop pH and each UCMM_NOW[j] where j is an even number. At the same time, for each UCMM_NOW[j] where j<2×k_max-1 and j is odd, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1], execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM one position further away in the Hamilton circuit pH from each position and each UCMM_NOW[j] where j is odd (Figure 18(7)).
[0132] (10) For each UCMM_NOW[j] where j<2×k_max-1 and j is odd, for which the exchange operation was not performed in (9), execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton circuit pH from the respective position and each UCMM_NOW[j] where j is odd (Figure 19(8)).
[0133] (11) All UCMMs with j<2×k_max-1 are simultaneously moved forward along the Hamiltonian circuit pH by one step (Fig. 19(9)).
[0134] [Permutation_M_M'_A_max_1] (1) Let UCMM_NOW[j] (j=0,1,2,,,2×k_max-1) be the control object currently being UCMMized. P_LCMM[Nlcmm -4] in the forward direction along the pH, the control object is UCMMized at the position that can be reached with the fewest number of movement steps, and j = 0. Then, by moving forward along the pH, P_LCMM[N lcmm The value of j increases as the number of steps required to reach the position [N -2] increases. lcmm -2].
[0135] (2) The following (3) to (11) are N lcmm +N ucmm Repeat times.
[0136] (3) Convert the LCMM at the position of Position_Become_LCMM into a UCMM and set it as UCMM_NOW[2×k_max]. Shift the position of Position_Become_LCMM to the next position in the forward direction of the Hamilton loop pH. For each UCMM_NOW[j] where j is an odd number, simultaneously execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton loop pH from that position and each UCMM_NOW[j] where j is an odd number. At the same time, for each UCMM_NOW[j] where j < 2 × k_max and j is an even number, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1], the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM one position further away in the Hamilton circuit pH from each position and each UCMM_NOW[j] where j is an even number (Figure 20(1)).
[0137] (4) For each UCMM_NOW[j] where j < 2 × k_max and j is an even number, for which the exchange operation was not performed in (3), the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously performed between the LCMM at the next position in the Hamilton circuit pH from each UCMM_NOW[j] and each UCMM_NOW[j] where j is an even number (Figure 20(2)).
[0138] (5) All UCMMs with j < 2 × k_max are simultaneously moved forward along the Hamiltonian circuit pH by one step (Fig. 20(3)).
[0139] (6) Convert UCMM_NOW[0] to LCMM. For each UCMM_NOW[j] where j>0 is even, the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is even. At the same time, for each UCMM_NOW[j] where j is odd, the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is odd, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1] (Figure 21(4)).
[0140] (7) For each UCMM_NOW[j] where j is an odd number, for which the exchange operation was not performed in (6), the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously performed between the LCMM at the next position in the Hamilton circuit pH from each UCMM_NOW[j] and each UCMM_NOW[j] where j is an odd number. UCMM_NOW[j] ← UCMM_NOW[j+1]. UCMM_NOW[2×k_max] is omitted (Figure 21(5)).
[0141] (8) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Fig. 21(6)).
[0142] (9) For each UCMM_NOW[j] where j is odd, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is odd. At the same time, for each UCMM_NOW[j] where j is even, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is even, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1]. At the same time, Position_Exchange_Aft() in UCMM_NOW[2×k_max-1] is executed only if there is no actual exchange operation in Position_Exchange_Fore() in UCMM_NOW[2×k_max-1] (Figure 21(7)).
[0143] (10) For each UCMM_NOW[j] where j is an even number, for which the exchange operation was not performed in (9), the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously performed between the LCMM at the next position in the Hamilton circuit pH from the UCMM_NOW[j] and each UCMM_NOW[j] where j is an even number. At the same time, Position_Exchange_Aft() is performed for UCMM_NOW[2×k_max-1] only if Position_Exchange_Aft() was not performed for UCMM_NOW[2×k_max-1] in (9) (Figure 22(8)).
[0144] (11) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Figure 22(9)).
[0145] [Permutation_M_M'_A_max_2] (1) Let UCMM_NOW[j] (j=0,1,2,,,2×k_max) be the control object currently being UCMMized. P_LCMM[N lcmm -2] in the forward direction along pH, the control object is UCMMized at the position that can be reached with the fewest number of steps, and j=0 is used for P_LCMM[N lcmm The value of j increases as the number of steps required to reach the position [N -2] increases. lcmm -2].
[0146] (2) The following (3) to (11) are N lcmm +N ucmm Repeat times.
[0147] (3) Convert the LCMM at the position of Position_Become_LCMM into a UCMM and set it to UCMM_NOW[2×k_max+1]. Shift the position of Position_Become_LCMM to the next position in the forward direction of the Hamilton loop pH. Convert UCMM_NOW[0] into an LCMM. For each UCMM_NOW[j] where j>0 is even, simultaneously execute the swap operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton loop pH from that position and each UCMM_NOW[j] where j is even.
[0148] At the same time, for each UCMM_NOW[j] where j < 2 × k_max+1 and j is odd, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1], the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously executed between the LCMM one position further away in the Hamilton circuit pH from each position and each UCMM_NOW[j] where j is odd (Figure 23(1)).
[0149] (4) For each UCMM_NOW[j] where j < 2 × k_max+1 and j is odd, for which the swap operation was not performed in (3), simultaneously execute the swap operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM at the next position in the Hamilton circuit pH from the corresponding position and each UCMM_NOW[j] where j is odd. Let UCMM_NOW[j] ← UCMM_NOW[j+1]. UCMM_NOW[2 × k_max+1] be the missing number (Figure 24(2)).
[0150] (5) All UCMMs with j < 2 × k_max are simultaneously moved forward along the Hamilton circuit pH by one step (Figure 24(3)).
[0151] (6) For each UCMM_NOW[j] where j is an even number, the LCMM one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an even number are simultaneously executed with an exchange operation Position_Exchange_Fore(UCMM_NOW[j]). At the same time, for each UCMM_NOW[j] where j is an odd number, the LCMM one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an odd number are simultaneously executed with an exchange operation Position_Exchange_Fore(UCMM_NOW[j]) only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1] (Figure 25(4)).
[0152] (7) For each UCMM_NOW[j] where j is an odd number, for which the exchange operation was not performed in (6), the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously performed between the LCMM at the next position in the Hamilton circuit pH from each UCMM_NOW[j] and each UCMM_NOW[j] where j is an odd number (Figure 25(5)).
[0153] (8) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Fig. 26(6)).
[0154] (9) For each UCMM_NOW[j] where j is an even number, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an even number. At the same time, for each UCMM_NOW[j] where j is an odd number, execute the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) between the LCMM located one position away from the corresponding position in the Hamilton loop pH and each UCMM_NOW[j] where j is an odd number, only if no actual exchange operation is required in Position_Exchange_Fore() for both UCMM_NOW[j-1] and UCMM_NOW[j+1]. At the same time, Position_Exchange_Aft() in UCMM_NOW[2×k_max] is executed only if there is no actual exchange operation in Position_Exchange_Fore() in UCMM_NOW[2×k_max] (Figure 26(7)).
[0155] (10) For each UCMM_NOW[j] where j is an odd number, for which the exchange operation was not performed in (9), the exchange operation Position_Exchange_Fore(UCMM_NOW[j]) is simultaneously performed between the LCMM at the next position in the Hamilton circuit pH from the UCMM_NOW[j] and each UCMM_NOW[j] where j is an odd number. Only if Position_Exchange_Aft() was not performed in UCMM_NOW[2×k_max] at the same time in (9), execute Position_Exchange_Aft() in UCMM_NOW[2×k_max] (Figure 27(8)).
[0156] (11) All UCMMs are simultaneously moved forward along the Hamiltonian pH loop for one step (Figure 27(9)).
[0157] [Control object position swapping operation] In the position exchange operation of the controlled object (the aforementioned Position_Exchange_Fore and Position_Exchange_Aft), the exchange operation changes depending on the positional relationship between the controlled object unit j, which is a UCMM, and the controlled object unit j', which is an exchange target, which is an LCMM. The position exchange operation when the direction of j → j' (denoted as Aex) is Aex = 1, 2, or 5 is shown in Figures 28 to 52. The position exchange operation when the direction of j → j' is Aex = 3, 4, or 6 is shown in Figures 53 to 92. Note that in Figure 69(1), the controlled object units denoted by 2 and 3 are made transparent to indicate the diagonal stripes going up to the right and the position of the controlled object unit denoted by 1. Figures 28 to 52 illustrate the case of Aex = 1 as an example. For other exchange operations where Aex = 2, 5, the rightward direction in the figure can be regarded as the direction of Aex = 2, 5, and the controlled object can be made to perform the same operation. In this case, the number of the control object unit that actually performs the replacement operation is converted as shown in Fig. 107. In Figs. 53 to 92, the case of Aex = 3 is illustrated as an example. In the case of other replacement operations of Aex = 4, 6, the leftward direction in the figure can be regarded as the direction of Aex = 4, 6, and the control object can be made to perform the same operation. In this case, the number of the control object unit that actually performs the replacement operation is converted as shown in Fig. 107.
[0158] In the present invention, each LCMM is always located on the Hamilton circuit pH. Therefore, in order to maintain connectivity of the entire robot structure, it is sufficient to maintain connectivity from the position of each LCMM to the two LCMMs located at both adjacent positions in the Hamilton circuit pH. In other words, even during a swap operation, it is sufficient to maintain connectivity from the positions of the two LCMMs to be swapped to the two LCMMs located at both adjacent positions in the Hamilton circuit pH. In this sense, when swapping between a control object i located at internal positions i5, i6, i7, or i8 in the UCMM to be swapped and a control object i' located at internal positions i1, i2, or i3 in the LCMM, the swap operation does not change depending on the direction of the control object unit j'' located at the adjacent position on the non-j side of the control object unit j' on pH (the control object units are arranged in the order j, j', and j'' within pH). When swapping between controlled objects at internal positions i5, i6, i7, and i8 in the UCMM and internal position i4 in the LCMM, the swapping operation differs depending on the direction (Arx) of the controlled object unit j'' at the adjacent position on the non-j side of the pH of the controlled object unit j' as viewed from j'.
[0159] When the direction of j → j' is Aex = 1, 2, 5, for example, regarding the exchange of controlled objects i and i' located in the internal positions of i5 in UCMM and i4 in LCMM, when j → j' is in the Aex = 1 direction and j' → j'' is in the Arx = 1, 2, 5 direction, it is shown in Figure 41, when j' → j'' is in the Arx = 4 direction, it is shown in Figure 42, and when j' → j'' is in the Arx = 6 direction, it is shown in Figure 43. When the position of controlled object i' in LCMM is i1, i2, i3, the exchange operation is shown in Figures 28, 32, 37.
[0160] When the direction of j→j' is Aex=3, 4, 6, for example, when j→j' is in the Aex=3 direction and j'→j'' is in the Arx=2,5 direction, the examples are shown in Figures 65 and 66, when j'→j'' is in the Arx=3 direction, Figures 67 and 68, when j'→j'' is in the Arx=4 direction, Figures 69 and 70, and when j'→j'' is in the Arx=6 direction, Figures 71 and 72. For example, when the control object i at i5 in UCMM is swapped with the control object i' at i1, i2, i3 in LCMM, the examples are shown in Figures 53, 58, and 61, respectively.
[0161] The reason why the above case distinction is necessary is that the control object at position i4 in the control object unit j', which is an LCMM, has a unique connection surface within j' for connection with the control object unit j'' at the adjacent position in the direction of a = 3, 4, 6. In other words, the operation for maintaining the connection between the control object at position i4 in j' and the control object in j'' that contacts it differs depending on the direction in which the control object is located.
[0162] [Position_Exchange_Fore(UCMM_NOW[j_tmp])] (1) Let UCMM_NOW[j_tmp] be the control object unit j. Let j' be the control object unit that is an LCMM at the next adjacent position in the Hamilton circuit pH of the LCMM at the same control object unit position as the control object unit j, and let j'' be the control object unit that is an LCMM at the next adjacent position in the Hamilton circuit pH of the control object unit j'. For the control object i in j, (i) target_UCMM_or_LCMM[i]>N lcmm -1, and the controlled object unit j' is P_UCMM[target_UCMM_or_LCMM[i]-N lcmm], or (ii) target_UCMM_or_LCMM[i] <N lcmm Then, if the controlled object unit j' is an LCMM that was at the position of P_LCMM[target_UCMM_or_LCMM[i]] at the start of the replacement process, among the controlled objects in the controlled object unit j', the one whose internal position at the start of the replacement process (the internal position at the start of Permutation_M_M'_A_max_0, Permutation_M_M'_A_max_1 or Permutation_M_M'_A_max_2) is target_inner_before[i] is set as the controlled object i' to be replaced with the controlled object i (the one for which Ori[i'] = target_inner_before[i] defined in [All_Transformation] described later is set as the controlled object i'), and proceed to (2). Otherwise, end the processing.
[0163] (2) If the direction of j→j' is a=1,2,5, go to (3); if a=3,4,6, go to (4).
[0164] (3) If the position of the controlled object i' in the controlled object unit j' is i1, i2, or i3, the exchange is performed using the operations in Figures 28 to 40. If it is i4, the exchange operation is performed using the operations in Figures 41 to 52 depending on the direction from j' to j''. The values of Ori[i] and Ori[i'] are exchanged between the controlled object i and the controlled object i'.
[0165] (4) If the position of the controlled object i' in the controlled object unit j' is i1, i2, or i3, the exchange is performed using the operations in Figures 53 to 64. If it is i4, the exchange operation is performed using the operations in Figures 65 to 92 depending on the direction from j' to j''. The values of Ori[i] and Ori[i'] are exchanged between controlled object i and controlled object i'.
[0166] (5) As a result of the exchange operation in (3) or (4), for the control object i' that has moved into the control object unit j, target_UCMM_or_LCMM[i']>N lcmm-1, and the controlled object unit j is P_UCMM[target_UCMM_or_LCMM[i']-N lcmm ] or target_UCMM_or_LCMM[i'] <N lcmm If the controlled object unit j is an LCMM that was at the position of P_LCMM[target_UCMM_or_LCMM[i']] at the start of the replacement process, and the internal position of the controlled object i that was originally in the internal position within the UCMM after the main replacement operation of the controlled object i' at the start of the replacement process (the internal position at the start of Permutation_M_M'_A_max_0, Permutation_M_M'_A_max_1 or Permutation_M_M'_A_max_2) is not target_inner_before[i'] (if the value of Ori[i'] after the value replacement in (3) or (4) is not target_inner_before[i']), then Inner_Exchange(j,j') is executed to replace the controlled object i'' in the controlled object unit j whose internal position at the start of the replacement process is target_inner_before[i'].
[0167] [Position_Exchange_Aft(UCMM_NOW[j_tmp])] (1) Let UCMM_NOW[j_tmp] be the control object unit j. Let j' be the control object unit that is an LCMM at the previous adjacent position in the Hamilton circuit pH of the LCMM at the same control object unit position as the control object unit j, and let j'' be the control object unit that is an LCMM at the previous adjacent position in the Hamilton circuit pH of the control object unit j'. For the control object i in j, (i)target_UCMM_or_LCMM[i]>N lcmm-1, and the controlled object unit j' is P_UCMM[target_UCMM_or_LCMM[i]-N lcmm ], or (ii) target_UCMM_or_LCMM[i] <N lcmm If the controlled object unit j' is an LCMM that was at the position of P_LCMM[target_UCMM_or_LCMM[i]] at the start of the replacement process, among the controlled objects in the controlled object unit j', the one whose internal position at the start of the replacement process (the internal position at the start of Permutation_M_M'_A_max_0, Permutation_M_M'_A_max_1, or Permutation_M_M'_A_max_2) is target_inner_before[i] is set as the controlled object i' to be replaced with the controlled object i (the one for which Ori[i'] = target_inner_before[i] defined in [All_Transformation] described later is set as the controlled object i'), and proceed to (2). Otherwise, end the processing.
[0168] (2) If the direction of j→j' is a=1,2,5, go to (3); if a=3,4,6, go to (4).
[0169] (3) If the position of the controlled object i' in the controlled object unit j' is i1, i2, or i3, the exchange is performed using the operations in Figures 28 to 40. If it is i4, the exchange operation is performed using the operations in Figures 41 to 52 depending on the direction from j' to j''. The values of Ori[i] and Ori[i'] are exchanged between the controlled object i and the controlled object i'.
[0170] (4) If the position of the controlled object i' in the controlled object unit j' is i1, i2, or i3, the exchange is performed using the operations in Figures 53 to 64. If it is i4, the exchange operation is performed using the operations in Figures 65 to 92 depending on the direction from j' to j''. The values of Ori[i] and Ori[i'] are exchanged between controlled object i and controlled object i'.
[0171] (5) As a result of the exchange operation in (3) or (4), for the control object i' that has moved into the control object unit j, target_UCMM_or_LCMM[i']>N lcmm -1, and the controlled object unit j is P_UCMM[target_UCMM_or_LCMM[i']-N lcmm ] or target_UCMM_or_LCMM[i'] <N lcmm If the controlled object unit j is an LCMM that was at the position of P_LCMM[target_UCMM_or_LCMM[i']] at the start of the replacement process, and the internal position of the controlled object i that was originally in the internal position within the UCMM after the main replacement operation of the controlled object i' at the start of the replacement process (the internal position at the start of Permutation_M_M'_A_max_0, Permutation_M_M'_A_max_1 or Permutation_M_M'_A_max_2) is not target_inner_before[i'] (if the value of Ori[i'] after the value replacement in (3) or (4) is not target_inner_before[i']), then Inner_Exchange(j,j') is executed to replace the controlled object i'' in the controlled object unit j whose internal position at the start of the replacement process is target_inner_before[i'].
[0172] [Inner_Exchange] is necessary when the target position of a newly entered controlled object i' within j is within j as a result of executing (3) and (4) of Position_Exchange_Fore and Position_Exchange_Aft. Simply executing (3) and (4) of Position_Exchange_Fore and Position_Exchange_Aft may result in i' being within j, but not necessarily in the correct position within j. In such cases, [Inner_Exchange] is responsible for moving i' to the correct position within j. [Inner_Exchange] is provided to take into account the case where the target positions of multiple controlled objects within j are within j (i.e., when position exchange within j is necessary) before the position exchange process in M begins. For the [Inner_Exchange] process, each controlled object within a controlled object remembers which internal position it was in (i1, i2, i3, i4, i5, i6, i7, or i8) before it began its internal movement within the pH. This variable is called Ori[i]. When an exchange is executed, the information of Ori[i] is exchanged between the controlled objects i and i' that are exchanged in Position_Exchange_Fore and Position_Exchange_Aft (see (3) and (4) of Position_Exchange_Fore and Position_Exchange_Aft).
[0173] [Inner_Exchange(j,j')] (1) If there is a control object i' in the control object unit j that has a target position in the UCMM control object unit j and the internal position indicated by Ori[i'] and target_inner_before[i'] is different, execute (2) for one of them. If there is not, end.
[0174] (2) Select the control object i'' in the control object unit j, which is the UCMM, such that Ori[i''] = target_inner_before[i'], and when the direction of j → j' is a = 1, 2, 5, swap the control object i' with the control object i'' using the operations shown in Figures 93 to 98. When the direction of j → j' is a = 3, 4, 6, swap the control object i' with the control object i'' using the operations shown in Figures 99 to 106. Return to (1).
[0175] The internal position swapping operation within the control object unit in (2) is shown in Figures 93 to 106. In Figures 93 to 106, actual operation examples are shown for Aex = 1, 3. Similarly, in the case of swapping operation for other Aex values, the direction j -> j' in the figure can be regarded as the direction of Aex and the control object can be made to perform the same operation. In this case, the number of the control object unit that actually performs the swapping operation is converted as shown in Figure 107.
[0176] [M→G transformation process] This transformation process is basically obtained by reversing the time of the [G → M' transformation process] in which S is replaced with G and M is replaced with M' in the [S → M transformation process]. In other words, the homogeneous transformation from G to the intermediate position M'pre is performed using the existing 8-mass homogeneous transformation method, and then the transformation from M'pre to M' is performed using the [M'pre->M'_Transform] described below. An example of an existing 8-mass homogeneous transformation method is the method described in PCT / JP2021 / 025458.
[0177] Similarly, for M'pre, for the sake of convenience in the process of switching M → M' described later, the positions of the eight controlled objects in M'pre are P_M'pre[j] = (X_M'pre[j], Y_M'pre[j], Z_M'pre[j]) (j=0,1,2,,,j_max / 2-1), and when A_max=0, drift ← N ucmm -(2+N_add), when A_max=1, drift ← N ucmm-(0+N_add), when A_max=2, drift ← N ucmm -(1+N_add), and number P_M'pre[j] = P_Mpre[j+drift] (j + drfit ≧ N hamilton with P_M'pre[j]=P_Mpre[j + drfit - N hamilton ]). The transformation from Mpre to M' is outlined below.
[0178] (1) Move each UCMM at the unit position of the controlled object from P_M'pre[j_max / 2-1] to P_M'pre[j_max / 2- 1 - j_become_lcmm] to fill in the blank Hamilton loop positions in M'pre. The value of j_become_lcmm is N lcmm - j_max / 2 - 1, i.e., when A_max=0, it is k_max-1, when A_max=1, it is k_max, when A_max=2, it is k_max.
[0179] (2) P_M'pre[N ucmm - 1] (=P_M'pre[j_max / 2- 1 - j_become_lcmm - 1]) to move the UCMM at the controlled object unit position of P_M'pre[0] to the predetermined UCMM position in M'.
[0180] The pseudo code is as follows:
[0181] [M'pre->M'_Transform] (1) For j=0~j_become_lcmm, the UCMM at the controlled object unit position P_M'pre[j_max / 2 - 1 - j] sets its target position as (Hamilton_X[N hamilton_min - 3 - j+ drfit], Hamilton_Y[N hamilton_min - 3 - j+ drfit], Hamilton_Z[N hamilton_min - 3 - j+ drfit]), and when A_max=2, (Hamilton_X[Nhamilton_min - 4 - j+ drfit], Hamilton_Y[N hamilton_min - 4 - j+ drfit], Hamilton_Z[N hamilton_min - 4 - j+ drfit]), and move along the Hamilton loop pH in the direction of increasing pH position numbers until it reaches the position adjacent to each target position in the Hamilton loop pH. Then, it is transformed into the LCMM and moved to each target position. The difference in the movement start time between the UCMMs at P_M'pre[j_max / 2 - 1 - j] and P_M'pre[j_max / 2 - 1 - (j+1)] is set to the number of time steps required for P_M'pre[j_max / 2 - 1 - j] to be transformed into the LCMM.
[0182] (2) j=0~N ucmm - 1, P_M'pre[N ucmm - 1 - j], the UCMM at the unit position of the controlled object is set to its target position as P'_UCMM[N ucmm - 1 - j] = (Hamilton_X[2×(N ucmm - 1 - j)+ drfit], Hamilton_Y[2×(N ucmm - 1 - j)+ drfit], Hamilton_Z[2×(N ucmm - 1 - j)+ drfit]), move along the Hamilton circuit pH in the direction of increasing pH position numbers until each target position is reached. ucmm - 1 - j] and P_M'pre[N ucmm The difference in the movement start time between UCMMs in [j+1] is set to the number of time steps required for each UCMM to move on the LCMM.
[0183] To summarize the above, the [S→M deformation process] and [G→M' deformation process] are as follows.
[0184] [S→M transformation process] (1) The homogeneous transformation from S to Mpre is performed using an existing 8-mass homogeneous transformation method. An example of an existing 8-mass homogeneous transformation method is the method described in PCT / JP2021 / 025458.
[0185] (2) Execute [Mpre->M_Transform].
[0186] [G→M' deformation process] (1) The homogeneous transformation from G to M'pre is performed using an existing 8-mass homogeneous transformation method. An example of an existing 8-mass homogeneous transformation method is the method described in PCT / JP2021 / 025458.
[0187] (2) Execute [M'pre->M'_Transform]. The resulting position of each control object is set as target[i].
[0188] [Global deformation process] By combining the above-described processes, in other words, by performing the [All_Transformation] process described below, the entire heterogeneous transformation process is completed.
[0189] [All_Transformation] (1) The controlled object is moved according to the motion history calculated in the [S → M transformation process]. This process is performed by a first movement planning unit 1 and a first movement unit 2, which will be described later.
[0190] (2) The virtual robot executes the [G→M′ transformation process] and obtains motion history data. This process is performed by the second movement planning unit 3.
[0191] (3) The control object unit internal position of each control object i at the intermediate position M is stored in the variable Ori[i]. Then, the [position swapping process at the intermediate position M] is executed, and each control object at the pre-swap intermediate position M is moved to the post-swap intermediate position M'. Specifically, when A_max=0, [Permutation_M_M'_A_max_0] is executed, when A_max=1, [Permutation_M_M'_A_max_1] is executed, and when A_max=2, [Permutation_M_M'_A_max_2] is executed. This process is performed by the intermediate position swapping unit 4, which will be described later.
[0192] (4) The controlled object is moved according to the motion obtained by reversing the motion history calculated in the [G→M′ transformation process]. This process is performed by the second moving unit 5, which will be described later.
[0193] [Embodiment] Hereinafter, an embodiment of the present invention will be described in detail. In the drawings, components having the same functions are designated by the same reference numerals, and duplicated explanations will be omitted. First, an embodiment of a control device and a method will be described.
[0194] As shown in FIG. 108, the control device includes a first movement planning unit 1, a first movement unit 2, a second movement planning unit 3, an intermediate position replacement unit 4, and a second movement unit 5, for example.
[0195] The control method is realized, for example, by each component of the control device performing the processes from step S1 to step S5 described below and shown in FIG.
[0196] Each component of the control device will be described below.
[0197] <First Mobile Planning Department 1> The first movement planning unit 1 creates a first movement plan for moving each control object at the initial position S to a pre-swap intermediate position M on a control object-by-control object basis (step S1). The created first movement plan is output to the first movement unit 2.
[0198] For example, the first movement planning unit 1 creates the first movement plan by performing the processing of the [S→M transformation process] described above.
[0199] More specifically, the first movement planning unit 1 creates a first movement plan by performing the homogeneous transformation process from the initial position S to Mpre described above, and the homogeneous transformation process from Mpre to the pre-replacement intermediate position M.
[0200] In this embodiment, processing is performed based on a predetermined pre-interchange intermediate position M.
[0201] <First moving part 2> A first movement plan is input to the first movement unit 2.
[0202] The first movement unit 2 moves each of the control objects at the initial position S to the pre-swap intermediate position M on a control object-by-control object basis in accordance with the first movement plan (step S2).
[0203] The first moving unit 2 moves the controlled object in units of controlled objects by the method explained in [S→M transformation process].
[0204] <Second Movement Planning Department 3> The second movement planning unit 3 creates a second movement plan for moving each control object assumed to be at the target position G to the intermediate position M' after being swapped on an object-by-object basis (step S3). The created second movement plan is output to the intermediate position swapping unit 4 and the second movement unit 5.
[0205] For example, the second movement planning unit 3 creates the second movement plan by performing the processing of the [G→M′ transformation process] described above.
[0206] In this embodiment, processing is performed based on a predetermined post-interchange intermediate position M'.
[0207] <Intermediate position exchange unit 4> The first movement plan created by the first movement planning unit 1 and the second movement plan created by the second movement planning unit 3 are input to the intermediate position replacement unit 4.
[0208] The intermediate position replacement unit 4 moves each control object at the pre-replacement intermediate position M to the destination of each control object determined by the second movement plan within the post-replacement intermediate position M' (step S4).
[0209] For example, the intermediate position replacement unit 4 performs the process of "position replacement process at intermediate position M" described above.
[0210] That is, the intermediate position exchanging unit 4 moves the first-type control object unit j along the Hamiltonian loop, and if there is a destination determined by the second movement plan for the control object constituting the first-type control object unit j among the second-type control object units adjacent to the first-type control object unit j, the intermediate position exchanging unit 4 repeats the process of exchanging that control object with the control object at that destination, thereby moving each control object moved by the first movement unit to the destination of each control object determined by the second movement plan within the post-exchange intermediate position M'. Note that in this process, each control object unit moves all positions on the Hamiltonian loop as the first-type control object unit j.
[0211] As explained above, a graph in which the control object units in the intermediate position are nodes and the faces connecting two mutually contacting control object units are edges constitutes part or all of a Hamiltonian loop, and at the intermediate position, merged control object units and second-type control object units are arranged alternately along the Hamiltonian loop.
[0212] <Second moving part 5> The second movement unit 5 receives the second movement plan.
[0213] The second movement unit 5 moves each of the control objects at the intermediate position M' after the exchange to the target position G on a control object-by-control object basis according to a plan obtained by temporally reversing the second movement plan (step S5).
[0214] The second moving unit 5 moves the controlled object in units of controlled objects by the method explained in [Transformation process from M' to G].
[0215] The control device may also include an intermediate position determination unit 6 indicated by dashed lines in Fig. 108. In this case, the intermediate position determination unit 6 determines the pre-interchange intermediate position M and the post-interchange intermediate position M' by performing the processing of [M_Decision] described above. The intermediate position determination unit 6 may also determine the pre-interchange intermediate position M and the post-interchange intermediate position M' by further performing the processing of [M_Additional_Decision] described above. The determined pre-interchange intermediate position M and post-interchange intermediate position M' are output to the first movement planning unit 1 and the second movement planning unit 3, respectively.
[0216] [Variations] The above describes the embodiments of the present invention, but the specific configuration is not limited to these embodiments, and it goes without saying that even if design changes are made as appropriate within the scope of the present invention, they are still included in the present invention.
[0217] The various processes described in the embodiments may not only be executed in chronological order according to the order described, but may also be executed in parallel or individually depending on the processing capabilities of the devices executing the processes or as necessary.
[0218] For example, data may be exchanged directly between the components of the control device, or may be exchanged via a storage unit (not shown).
[0219] [Programs, recording media] The processing of each unit of each of the above-mentioned devices may be realized by a computer, in which case the processing content of the functions that each device should have is described by a program. Then, by loading this program into storage unit 1020 of computer 1000 shown in Fig. 110 and operating arithmetic processing unit 1010, input unit 1030, output unit 1040, display unit 1060, etc., various processing functions of each of the above-mentioned devices are realized on the computer.
[0220] The program describing the processing contents can be recorded on a computer-readable recording medium, such as a non-transitory recording medium, specifically a magnetic recording device, an optical disk, or the like.
[0221] The program may be distributed, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD or CD-ROM on which the program is recorded. Furthermore, the program may be stored in a storage device of a server computer, and then transferred from the server computer to another computer via a network, thereby distributing the program.
[0222] A computer that executes such a program, for example, first stores the program recorded on a portable recording medium or transferred from a server computer in its own non-transitory storage device, auxiliary storage unit 1050. Then, when executing a process, the computer loads the program stored in auxiliary storage unit 1050, its own non-transitory storage device, into storage unit 1020 and executes processing in accordance with the loaded program. Alternatively, as another form of execution of this program, the computer may load the program directly from a portable recording medium into storage unit 1020 and execute processing in accordance with the program. Furthermore, each time a program is transferred from a server computer to this computer, the computer may execute processing in accordance with the received program. Alternatively, the server computer may not transfer the program to this computer, but may instead execute the processing function by issuing an execution instruction and obtaining the results, thereby executing the above-described processing through a so-called ASP (Application Service Provider) type service. Note that the program in this embodiment includes information used for processing by a computer that is equivalent to a program (such as data that is not a direct instruction to a computer but has properties that define computer processing).
[0223] In this embodiment, the device is configured by executing a predetermined program on a computer, but at least a part of the processing may be realized by hardware. For example, the first movement planning unit 1, the first movement unit 2, the second movement planning unit 3, the intermediate position replacement unit 4, the second movement unit 5, and the intermediate position determination unit 6 may be configured by a processing circuit.
[0224] It goes without saying that other modifications are possible without departing from the spirit of the present invention. [Explanation of symbols]
[0225] 1. First Mobile Planning Department 2 First moving part 3. Second Mobile Planning Department 4 Intermediate position exchange section 5 Second moving part 6. Intermediate position determination unit
Claims
1. The control object units include a first type control object unit and a second type control object unit, and each of the first type control object unit and the second type control object unit is composed of U control objects (U is an integer of 4 or more), An initial position S and a target position G are defined for each control object, and a structure constituted by the control objects at the initial position S and the target position G is constituted by a combined control object unit constituted by 2U control objects by combining a first type control object unit and a second type control object unit, A graph in which the control object units in the intermediate position are nodes and the faces connecting two mutually contacting control object units are edges constitutes a part or all of a Hamiltonian loop, and at the intermediate position, merged control object units and second-type control object units are alternately arranged along the Hamiltonian loop, and at the intermediate position, there are a pre-swap intermediate position M and a post-swap intermediate position M', a first movement planning unit that creates a first movement plan for moving each control object at an initial position S to a pre-exchange intermediate position M on a control object-by-control object basis; a first moving unit that moves each control object at an initial position S to a pre-exchange intermediate position M on a control object-by-control object basis in accordance with the first movement plan; a second movement planning unit that creates a second movement plan for moving each control object assumed to be at the target position G to an intermediate position M′ after being swapped on a control object-by-control object basis; an intermediate position replacement unit that moves each control object located at a pre-replacement intermediate position M to a destination of each control object within a post-replacement intermediate position M′ determined by the second movement plan; a second movement unit that moves each of the control objects that are at the intermediate position M′ after the exchange to a target position G on a control object-by-control object basis in accordance with a plan that is a time-reverse of the second movement plan; A control device including:
2. The control device of claim 1, the intermediate position exchanging unit moves the first-type control object unit j along the Hamiltonian loop, and if there is a destination determined by the second movement plan for a control object constituting the first-type control object unit j among the second-type control object units adjacent to the first-type control object unit j, the process of exchanging the control object with the control object at the destination is repeated, thereby moving each control object moved by the first movement unit to the destination of each control object determined by the second movement plan within the post-exchange intermediate position M', In the process, each control object unit j moves to all positions on the Hamiltonian loop as a first type control object unit j. Control device.
3. The control object units include a first type control object unit and a second type control object unit, and each of the first type control object unit and the second type control object unit is composed of U control objects (U is an integer of 4 or more), An initial position S and a target position G are defined for each control object, and a structure constituted by the control objects at the initial position S and the target position G is constituted by a combined control object unit constituted by 2U control objects by combining a first type control object unit and a second type control object unit, A graph in which the control object units in the intermediate position are nodes and the faces connecting two mutually contacting control object units are edges constitutes a part or all of a Hamiltonian loop, and at the intermediate position, merged control object units and second-type control object units are alternately arranged along the Hamiltonian loop, and at the intermediate position, there are a pre-swap intermediate position M and a post-swap intermediate position M', a first movement planning step in which a first movement planning unit creates a first movement plan for moving each control object located at an initial position S to a pre-exchange intermediate position M on a control object-by-control object basis; a first movement step in which a first movement unit moves each control object located at an initial position S to a pre-exchange intermediate position M on a control object-by-control object basis in accordance with the first movement plan; a second movement planning step in which a second movement planning unit creates a second movement plan for moving each control object assumed to be at the target position G to an intermediate position M' after being swapped on a control object-by-control object basis; an intermediate position replacing step in which an intermediate position replacing unit moves each control object located at a pre-replacement intermediate position M to a destination of each control object within a post-replacement intermediate position M' determined by the second movement plan; a second movement step in which a second movement unit moves each of the control objects located at the intermediate position M' after the exchange to a target position G on a control object-by-control object basis in accordance with a plan obtained by temporally reversing the second movement plan; A control method comprising:
4. A program for causing a computer to function as each part of the control device according to claim 1 or 2.
Citation Information
Patent Citations
Mechanism controller
JP2000181523A
Action control system, method therefor, and program
JP2016146159A
Control device, method, and program
JP2019053709A
Control device, hamiltonian cycle extension device, method, and program
WO2022153475A1