Figures & data
Figure 1. Basic structure of the simulated robots. Each robot can be assembled on each of its sides. The robot can move in any direction on the x–y axis.
![Figure 1. Basic structure of the simulated robots. Each robot can be assembled on each of its sides. The robot can move in any direction on the x–y axis.](/cms/asset/6ee02043-9e2c-4e72-8c0f-f7337febf8f2/ccos_a_795931_o_f0001g.gif)
Figure 3. Swarm line arrangement language. i determines the number of robots that are part of the assembly and hence the line length. In addition, the sequence of words generated up to i=3 is presented. Parentheses in this sequence show where the last symbol was replaced by the interpreter.
![Figure 3. Swarm line arrangement language. i determines the number of robots that are part of the assembly and hence the line length. In addition, the sequence of words generated up to i=3 is presented. Parentheses in this sequence show where the last symbol was replaced by the interpreter.](/cms/asset/c2c6ccc0-e2e4-490f-9ca7-6d6d3bf3b655/ccos_a_795931_o_f0003g.gif)
Figure 5. Language for the generation of rectangular assemblies. i determines the height of the assembly. This language definition uses the repetition operator to define the width of the rectangle. The size of the assembly is limited, because i∈ℤ, forces the width to be even. Parentheses in this sequence show where the last symbol was replaced by the interpreter.
![Figure 5. Language for the generation of rectangular assemblies. i determines the height of the assembly. This language definition uses the repetition operator to define the width of the rectangle. The size of the assembly is limited, because i∈ℤ, forces the width to be even. Parentheses in this sequence show where the last symbol was replaced by the interpreter.](/cms/asset/954bc01c-8f4c-4c82-99a8-b59d1a83c1f4/ccos_a_795931_o_f0005g.gif)
Figure 6. Sequential order of assembly for a 5×4 rectangle. The thickness of the lines indicates assemblies within the same rule.
![Figure 6. Sequential order of assembly for a 5×4 rectangle. The thickness of the lines indicates assemblies within the same rule.](/cms/asset/d1d3ef8e-7cf6-4ac6-a310-53512b0fa4c0/ccos_a_795931_o_f0006g.gif)
Figure 8. Language for generating square assemblies. We present a set of sample words obtained from this language for i=3.
![Figure 8. Language for generating square assemblies. We present a set of sample words obtained from this language for i=3.](/cms/asset/438ba728-717d-4c0c-9373-fc199509fb1b/ccos_a_795931_o_f0008g.gif)
Figure 10. Language for generating arrow-shaped assemblies. Parentheses in this sequence show where the last symbol was replaced by the interpreter. Recursion factor i determines the rows that will define the arrow.
![Figure 10. Language for generating arrow-shaped assemblies. Parentheses in this sequence show where the last symbol was replaced by the interpreter. Recursion factor i determines the rows that will define the arrow.](/cms/asset/ab520b4d-b386-4c25-9000-844bed4509ee/ccos_a_795931_o_f0010g.gif)
Figure 12. Language for the generation of horseshoe-shaped assemblies. Parentheses in this sequence show where the last symbol was replaced by the interpreter. Recursion factor i determines the length of a horseshoe segment.
![Figure 12. Language for the generation of horseshoe-shaped assemblies. Parentheses in this sequence show where the last symbol was replaced by the interpreter. Recursion factor i determines the length of a horseshoe segment.](/cms/asset/1b1fba7c-a5d7-46e0-81e8-8a04e66b7bf0/ccos_a_795931_o_f0012g.gif)
Figure 14. Language for the generation of star-shaped assemblies. In this case, we use a turtle interpreter with a stack to be able to generate Hamiltonian paths. Parentheses in this sequence show where the last symbol was replaced by the interpreter.
![Figure 14. Language for the generation of star-shaped assemblies. In this case, we use a turtle interpreter with a stack to be able to generate Hamiltonian paths. Parentheses in this sequence show where the last symbol was replaced by the interpreter.](/cms/asset/abce12a2-0f75-43cc-b8d5-36113472abac/ccos_a_795931_o_f0014g.gif)
Figure 15. Distributed assembly with a rectangular shape using the LSDA algorithm with the language presented in for a width of five robots and a height of four. In the upper figure, the communication structure of the robot that starts the assembly process is shown. Below, we specify the steps of the assembly process for each of the zones (A, B, C, D, E and F) as defined in the upper diagram. The white-tipped arrows of the robots define the passive connection vector, black-tipped arrows the active.
![Figure 15. Distributed assembly with a rectangular shape using the LSDA algorithm with the language presented in Figure 5 for a width of five robots and a height of four. In the upper figure, the communication structure of the robot that starts the assembly process is shown. Below, we specify the steps of the assembly process for each of the zones (A, B, C, D, E and F) as defined in the upper diagram. The white-tipped arrows of the robots define the passive connection vector, black-tipped arrows the active.](/cms/asset/42d16249-9783-423f-8c83-a91150d4b69c/ccos_a_795931_o_f0015g.jpg)
Figure 16. Distributed assembly of a square-shaped form using the LSDA algorithm with the language presented in for a cube of four robots.
![Figure 16. Distributed assembly of a square-shaped form using the LSDA algorithm with the language presented in Figure 8 for a cube of four robots.](/cms/asset/89c8f047-17b1-442d-b6e5-b3fa6eb13f5d/ccos_a_795931_o_f0016g.gif)