BPro RC 1 2016/17_Choreography

Page 1

CHOREOGRAPHY

AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION

AD Research Cluster 1 The Bartlett

RC1 | 2016-2017 | Architectural Design

The Bartlett School of Architecture | UCL



RESEARCH CLUSTER 1 Alisa Andrasek Daghan Cam Andy Lomas Soomeen Hahm JIAWEN DING | XINYU ZENG | SEBASTIAN ASTE CANNOCK



|CONTENT|

CHAPTER 01 INTRODUCTION

001

1.2 RESEARCH REFERENCES

005

1.1 INSPIRATION

1.3 CASE STUDIES

003 007

CHAPTER 02 INITIAL MATERIAL RESEARCH

009

2.2 DIGITAL SIMULATION

015

2.1 PHYSICAL EXPERIMENTS

011

CHAPTER 03 INITIAL DESIGN STRATEGY

021

3.2 TOOL PATH RESEARCH

031

3.1 DESIGN STRATEGY OF TABLE STRUCTURE 3.3 PROTOTYPE DESIGN

023 037

CHAPTER 04 MATERIAL RESEARCH

045

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

051

CHAPTER 05 DEVELOPED DESIGN STRATEGY

069

5.2 GROWTH OF WALL STRUCTURE

085

4.1 MATERIAL POTENTIAL TEST

5.1 AUTONOMOUS GENERATION SYSTEM 5.3 DIGITAL SIMULATION

5.4 ARCHITECTURAL SPECULATION

047

071 095 109

CHAPTER 06 FABRICATION RESEARCH

127

6.2 ROBOTIC FABRICATION

137

6.1 END EFFECTOR DESIGN

APPENDIX

129

157



01| INSPIRATIONS


01| INTRODUCTION INSPIRATION

1.1 THEORETICAL FRAMEWORK CHOREOGRAPHIC BEHAVIOURS

William Forsythe, a well-known choreographer, has come up with various brilliant ideas in the field of choreography. What is more, his vision of choreography as an organisational practice has inspired him to produce numerous installations, films, architecture, and web-based knowledge creation. Unlike traditional choreographers, for Forsythe, the wonderful field of the dance is propositional: it is configuring more than configured. His choreography would let dancers condition themselves in the process of cooperating with others and adjust their gestures with changing of the environment, he would not design every movement of participants. In other words, the choreographic field is itself continuously evolving through the cueing/aligning process. One of his well-known projects is the Ruhrtriennale realization of Nowhere and Everywhere at the Same Time[18]. The interactive installation consists of sixty plumbs hanging on strings and moving in the space of the room. Choreographed by Forsythe, the movements of the weights are programmed to produce a kinetic and acoustic counterpoint in such a way as to divide the room into many unpredictable, changing parts. Then they invite visitors to this prepared area to avoid those unpredictable plumbs. The space stimulates the visitors’ perceptions and reflexes and leads them into an uncertain and surprising choreography of incessant avoidance. Inevitably, people’s movements were constrained in this space but without losing their individual behaviours. Depending on a certain precondition, the autonomy gratifyingly contributes to the exquisite and ingenious choreographing design. To some extent, those extraordinary works spurred our research of robotic fabrication. Combining with the principle of choreography will bring about more possibilities of new robotic printing-form, instead of the common situation that we used to determine every movement of robots from the beginning. We explore the autonomous behaviours of robotic fabrication, which is to create and develop the selforganized capability of the robotic arm. It is similar to what Forsythe is researching about the choreographic movements. The robot is going to adapt itself in the improvisation adhering to an initial game rule to interact with the material behaviours. In a way, we are working on a choreography with non-human things which is more challenging. The Ruhrtriennale realization of Nowhere and Everywhere at the Same Time marks an entirely new chapter in the development of choreographic work. This work also extraordinary spurred our research of robot.

003

In the beginning version, William Forsythe’s group originally created for a solo dancer and 40 pendulums in an abandoned building on New Yorks historic High Line, the installation has been continuously developed in contexts as diverse as the monumental industrial architecture of the Turbine Hall of the Tate Modern, and the historical setting provided by the Arsenale of the Venice Biennale. This new edition preserves and privileges two central interests in Forsythe’s oeuvre: counterpoint and the unconscious choreographic competence induced by choreographic situations. Suspended from automated grids, more than 400 pendulums are activated to initiate a sweeping 15 part counterpoint of tempi, spacial juxtaposition and gradients of centrifugal force which offers the spectator a constantly morphing labyrinth of significant complexity. The spectators are free to attempt a navigation this statistically unpredictable environment, but are requested to avoid coming in contact with any of the swinging pendulums. This task, which automatically initiates and alerts the spectators innate predictive faculties, produces a lively choreography of manifold and intricate avoidance strategies. In the third version of the work, each of the pendulums can be separately controlled. The interactive installation consists of sixty plumbs hanging on strings and moving in the space of the room. Choreographed by Forsythe, the movement of the weights is programmed in such a way as to produce a kinetic and acoustic counterpoint that divides the room into many unpredictable, changing parts. Filled with unpredictable complexity, the space addresses the state of the visitors’ perceptions and reflexes and leads them into a light and surprising choreography of perpetual avoidance. Inevitably, people’s movements were constrained in this space. We think It is a good thing to add a little bit boundary to unpredictable autonomy. Therefore, as for our way to design the choreography of robot behaviour, have learned from the above creative project, we would like to set a basic performance environment - game rule - for robot. Then, based on a certain rule, robot may start to create something unpredictable, which is similar to what Forsythe wants the dancers present in the field of choreograph and it has been proved really successful and potential.


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 1.1.1

FIG 1.1.3

FIG 1.1.2

FIG 1.1.4

FIG 1.1.1 & FIG 1.1.2 &FIG 1.1.4 William Forsythe Nowhere and Everywhere at The Same Time , NO.3 October 16. 2015, MMK Museum für Moderne Kunst, Frankfurt

FIG 1.1.3 William Forsythe Nowhere And Everywhere At The Same Time, NO.1 October 14. 2005, Creative Time, The Plain of Heaven, New York

AD | RC1 | Choreography | UCL 004


01| INTRODUCTION RESEARCH REFERENCES

1.2 RESEARCH REFERENCES

Flocking Behaviour & PLA Material property Vortex Geometry & Robotic Manufacturing Flocking behaviour is the behaviour exhibited when a group of birds, called a flock, are foraging or in flight. There are parallels with the shoaling behaviour of fish, the swarming behaviour of insects, and herd behaviour of land animals. Computer simulations and mathematical models which have been developed to emulate the flocking behaviours of birds can generally be applied also to the “flocking” behaviour of other species. As a result, the term “flocking” is sometimes applied, in computer science, to species other than birds. In the natural world, organisms exhibit certain behaviours when travelling in groups. This phenomenon, also known as flocking, occurs at both microscopic scales (bacteria) and macroscopic scales (fish). Using computers, these patterns can be simulated by creating simple rules and combining them. This is known as emergent behaviour, and can be used in games to simulate chaotic or lifelike group movement. Basic models of flocking behaviour are controlled by three simple rules: Separation - avoid crowding neighbours (short range repulsion) Alignment - steer towards average heading of neighbours Cohesion - steer towards average position of neighbours (long range attraction) The project of ellie abrons’s team show the possibility of using realtime sensor with robot to monitor material unpredictability, especially the PLA material, which are considered to be the technical foundation of our team to explore the robot fabrication with material behaviours in a more selforganized way. They explore the potentials of materiallydirected generative fabrication through an integration of research in robotic sensing, plastic deposition, and generative code. This approach tests the limits of a machine-material-sensor interface to act autonomously, without direct adjustments from an observing operator, and capitalizes on sensor responsiveness and material agency to produce unpredictable outcomes. The research moves away from optimization and efficiency as the primary drivers of digital fabrication in pursuit of a model where materials assume maximum agency in the fabrication process. Feedback loops between machining parameters, real-time sensors, and plastic deposition infuses the work with both intelligence and an intentional instability, where the outcomes

005

can be guided but never fully predicted. Vortices need not be steady-state features; they can move and change shape. In a moving vortex, the particle paths are not closed, but are open, loopy curves like helices and cycloids. A vortex flow might also be combined with a radial or axial flow pattern. In that case the streamlines and pathlines are not closed curves but spirals or helices, respectively. This is the case in tornadoes and in drain whirlpools. A vortex with helical streamlines is said to be solenoidal. Two or more vortices that are approximately parallel and circulating in the same direction will attract and eventually merge to form a single vortex, whose circulation will equal the sum of the circulations of the constituent vortices. On the other hand, two parallel vortices with opposite circulations (such as the two wingtip vortices of an aeroplane) tend to remain separate. The Ruhrtriennale realization of Nowhere and Everywhere at the Same Time marks an entirely new chapter in the development of choreographic work. This work also extraordinary spurred our research of robot. Robotic manufacturing cooperates well with rapid prototyping in today’s construction industry. Industrial robots originally used by the automobile industry have become a fascination to architects due to their milling, bonding, assembly and loading capabilities. Besides, robotic manufacture could be additive as seen in projects by gramazio & kohler architects, subtractive when employed in milling and could serve as drafting tools.


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 1.2.1

FIG 1.2.3

FIG 1.2.2

FIG 1.2.4

FIG 1.2.1 Flocking behaviour in nature( image derive from online)

FIG 1.2.3 Vortex field( image derive from online)

FIG 1.2.2 Prototypical RPD vertical member by Ellie Abrons’s team

FIG 1.2.4 Robotic construction of a brick wall. ( image derive from online)

AD | RC1 | Choreography | UCL 006


01| INTRODUCTION CASE STUDIES

1.3 CASE STUDIES

REAL-TIME FEEDBACK & SWARM ROBOTICS Waymo is a project of Google with regard to self-driving vehicles, which offers people vehicles that can be driven not by humans, but by vehicles themselves. Taking advantage of artificial-intelligence software as a sensor, as John Markoff said, the vehicle is able to gain information such as the obstacles near the itself, and react to various circumstances like a human driver. Introduced in detail by Thrun and Urmson, the core of the system is a laser range-finder which is installed on the roof of the vehicle. This equipment generates a detailed 3D map of the surroundings, which is combined with high-resolution GPS maps. By this way diverse types of data models are produced as to allow the vehicle avoid obstacles and obey the traffic regulation during its drive. There are some more sensors mounted on the vehicle, including: four radars, positioned on both of the bumpers, which allow the car to sensor from a long distance so that it can necessarily manage fast traffic on highways; a camera, set near the rear-view mirror to perceive traffic lights; and a GPS, inertial measurement unit, and wheel encoder, utilized for confirming the location of vehicle and keep track of its movements. Taking advantage of Big Data and Cyber-fabrication, there is no doubt that autonomous robotic fabrication will improve the accuracy and efficiency of manufacture. Moreover, there could be several robots or even a flock of swarm robots collaborating together to achieve what is impossible to done by a single robot. In the past few years, inspired by swarm intelligence, several researches are conducted by different teams to test the potential of swarm robotics. A research team composed of Petersen, Nagpal and Werfel from Harvard University presented the TERMES autonomous robotic system that was on the basis of the researches of termites’ behaviour. A mobile robot and several specific blocks consist of the main hardware and the system makes it possible for the robot to transport blocks to build prospective structures. Not only can it move in the place around the structures, but also it can transfer these structure. The robot managed to assemble a ten-block staircase that is far more taller than itself and during the whole process it shows its capability of climbing, navigation, and manipulation. TERMES 3D Collective Construction System is a system developed from the previous project. In comparison to TERMES, TERMES 3D is much smarter because it develops more on controlling a arbitrary number of simple robots in stead of a single one. As soon as the environment around those robots is modified, they will

007

react with the environment promptly, which means they are able to their behaviour under different circumstances. As the research of swarm robotics is going deeper and further, swarm robotics are gradually applied to fabrication. 3D-printed Mars habitat is a project undertaken by Foster + Partners recently using a team of multi-robot swarm for 3D-printing. As Wilkinson, Musil, Dierckx and Gallou said, the chances of success will be increased if the risk is separated to multiple simpler units. Besides, using a flock of swarm robots improve the ability of emergent behaviour as the collective action of a complex group works better than that of individual independent units. Microsoft Kinect helps to sense the surroundings of robots by getting images and depth maps and hence the location of robots and the topology of the terrain can be learnt at all times. After processed using specific software, the information sent from Kinect is saved in a corresponding file which robot can access using a wireless connection. The feedback that robots received is later processed on a microcomputer set on the robot, which can also be controlled by using a remote desktop. The projects introduced above open a door for the further development of Autonomous Behaviour of Robotics Fabrication. To achieve autonomous robotic fabrication, CyberPhysical-System and database are indispensable. At the same time, with the help of swarm robotics, the efficiency and error-tolerant rate of fabrication can be improved to a great extent. Instead of people operating machines on the site to complete construction, using specific algorithm and devices, robotics can accomplish the same thing within less time and with better quality. It is also worth mention that construction will no longer be constrained by location as remote control allows robots to finish construction under atrocious circumstances where humans cannot adapt.


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 1.3.1

FIG 1.3.3

FIG 1.3.2

FIG 1.3.4

FIG 1.3.1 Self-driving vehicle Waymo sensing the surroundings and reacting to obstacles

FIG 1.3.3 The flow diagram of the self-organising system introduced by MARS Workshop

FIG 1.3.2 Swarm robotics of TERMES 3D Collective Construction System transporting blocks cooperatively to build up a structure

FIG 1.3.4 Kinect camera combines a webcam with an infrared depth imaging system to detect the geometry of the sand, allowing the robots to understand the terrain and make decisions to excavate certain parts or build in other areas

AD | RC1 | Choreography | UCL 008



02| INITIAL MATERIAL RESEARCH


02| INITIAL MATERIAL RESEARCH PHYSICAL EXPERIMENTS

2.1 PHYSICAL EXPERIMENTS

PLA Material Behaviour Test with 3D Printing Pen

As all materials shows their own advantages and disadvantages in different conditions, there will never be a kind of ideal material for 3D printing. However, all those properties can be considered as a kind of potential in fabrication which offers possibilities of forming variable structures under changeable conditions. Here we apply polylactic acid to our fabrication because PLA shows many advantages in 3D printing. As shown in the experiments done with 3D pen, the outcome shows much potential as it can be either messy or ordered, which also leaves a challenge about how to control the gradient or sharp change from messy to ordered.

FIG 2.1.1

FIG 2.1.4

FIG 2.1.2

FIG 2.1.5

FIG 2.1.3

FIG 2.1.6

3D pen is a tool for material property test before we have access to robots. As a variety of outcome shows, the potential of PLA is far beyond our inference. On this basis of the test done by 3D pen, tests done by robot show strong potential of PLA both forming strong structure and creating sparse structure by changing two parameters. The tests done by 3D pen can be divided into three parts, which are surface pattern research, facade pattern research and structure research. In the tests of surface pattern only speed and directionality are changed. From [Fig2.1.1] & [Fig2.1.2] & [Fig2.1.3] it is obvious that the outcome shows different density of surface. We continued printing more layers based on the surface pattern and got several single patterns on facade. To do further research on facade patterns, several patterns were combined on the same facade by changing extrusion speed and nozzle height as shown in[Fig2.1.7] & [Fig2.1.8] & [Fig2.1.9].

011


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 2.1.1 Surface pattern High extrusion speed with small directionality FIG 2.1.2 Surface pattern High extrusion speed with big directionality FIG 2.1.3 Surface pattern High extrusion speed with big directionality FIG 2.1.7

FIG 2.1.10 FIG 2.1.4 Facade pattern High extrusion speed with large directionality FIG 2.1.5 Facade pattern High extrusion speed with large directionality FIG 2.1.6 Facade pattern HIGH extrusion speed with small directionality

FIG 2.1.8

FIG 2.1.11

FIG 2.1.7 Facade pattern Low extrusion speed with large directionality FIG 2.1.8 Facade pattern Low extrusion speed with large directionality FIG 2.1.9 Facade pattern Combination of low and high extrusion speed with small directionality

FIG 2.1.10 & FIG 2.1.11 & FIG 2.1.12 Facade pattern Combination of low and high extrusion speed with large directionality FIG 2.1.9

FIG 2.1.12

AD | RC1 | Choreography | UCL 012


02| INITIAL MATERIAL RESEARCH PHYSICAL EXPERIMENTS

2.1 PHYSICAL EXPERIMENTS

PLA Material Behaviour Test with 3D Printing Pen

FIG 2.1.15

FIG 2.1.13

FIG 2.1.16

FIG 2.1.14

013

FIG 2.1.17


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

In order to find more potential in functional structures, different material behaviours are applied to a chunk as shown in [Fig2.1.18]. The design of the chunk is aim to save as much material as it can under the premise of a strong structure, which can be accomplished by taking advantage of Voronoi 3D algorithm. By extruding for longer time at those structure part and filling other places with spatial curves, a stable functional structure was printed by 3D pen. Moreover, a table structure can also be printed since different material behaviours under different movements can merge the surface and legs of a table [Fig2.1.1]. The only problem is the spatial curves forming legs are not strong enough and will easily transform under pressure. FIG 2.1.18

FIG 2.1.13 Table structure Printing process FIG 2.1.14 Table structure Printing process FIG 2.1.15 Table structure Surface pattern FIG 2.1.19

FIG 2.1. 16 Table structure Surface pattern FIG 2.1.17 Table structure Structure of the legs FIG 2.1.18 Chunk structure Perspective view FIG 2.1. 19 Chunk structure Facade pattern

FIG 2.1.20

FIG 2.1.20 Chunk structure Surface pattern

AD | RC1 | Choreography | UCL 014


02| INITIAL MATERIAL RESEARCH DIGITAL SIMULATION

2.2 DIGITAL SIMULATION

2.2.1 2D Patterns

The initial strategy for designing the fabrication process was the introduction of voxels. The use of the voxelized space aim was to facilitate the creation of the robot tool paths and to permit us create different patterns in a logical procedure. Even though the concept of the project is based on the randomness provided by the material behaviour, the necessity of controlling the fabrication process and guiding the design pushed us in this direction. Basically, we divide space into voxels and put information into voxels. Then robot will traverse each voxel one by one. When robot get in voxel, it will influenced by the information in voxels. The information is a kind of vector (tell robot where to go in next step).

Technically, there are three main parameters to control the simulation: speed -- Robot speed; noise -- influence the regularity of robot tool path directionality -- the strength of noise’s influence

015

speed=0.1 directionality=3 noise=0.03

speed=0.7 directionality=3 noise=0.03


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

speed=0.7 directionality=10 noise=0.02

speed=0.3 directionality=2 noise=0.001

speed=0.7 directionality=1 noise=0.02

speed=0.3 directionality=2 noise=0.1

AD | RC1 | Choreography | UCL 016


02| INITIAL MATERIAL RESEARCH DIGITAL SIMULATION

2.2 DIGITAL SIMULATION

2.2.1 2D Patterns

The starting point of this strategy was the subdivision of the space into voxels and the creation of a robot agent which would simulate the tip of the end effector. This robot agent moves between voxels, sorting them layer by layer and row by row. This sorting of the robot movement allowed us to optimise the path of the robot, reducing the risk of collisions between different layers as the growth is done after the first layer is completed. The second step was the use of directionality to create a diversity of patterns. For this, each voxel was assigned an specific direction. The very first approach was to achieve this directionality through the use of a flocking agents simulation and capturing the force and direction of each one in a specific moment. This approach provided interesting directionalities but was also complicating in excess the collision avoidance for the robot end effector, as sometimes the directionality of the agents pointed down the Z axis. After this experimentation, we turned into the use of the perlin noise algorithm to achieve smoother variations of the directionality between voxels. After the robot sequence for visiting the voxels is sorted and each voxel is assigned with a specific directionality, one new step for the robot movement is defined. Instead of moving directly to the next centre point of the following voxel, the robot takes the end point location of the directionality of the current active voxel and moves there before moving to the following voxel of the sequence.

017

FIG 2.2.1-1 Digital simulation of robot printing under two behaviours


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

speed=0.3

directionality=2

speed=0.7

directionality=10

noise=0.001

noise=0.1

FIG 2.2.1-2 Digital simulation of combining two behaviours

AD | RC1 | Choreography | UCL 018


02| INITIAL MATERIAL RESEARCH DIGITAL SIMULATION

2.2 DIGITAL SIMULATION

2.2.2 3D Patterns

speed=3 directionality=5 noise=0.08

Perspective

Top

Elevation

speed=5 directionality=1.5 noise=0.01

Perspective

Top

Elevation

speed=0.8 directionality=1.5 noise=0.03

Perspective

Top

Elevation

019


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Perspective

AD | RC1 | Choreography | UCL 020



03| INITIAL DESIGN STRATEGY


03| INITIAL DESIGN STRATEGY DESIGN STRATEGY OF TABLE STRUCTURE

3.1 DESIGN STRATEGY OF TABLE STRUCTURE

Field of Forces

After defining the previous process combination logics and start getting the differentiation we were looking into, we had to question again which was the aim of the project and if we were following the right direction. As the principal advantage of this research project is rethink the way current fabrication is done, abandoning its high precision but low speed and instead encouraging imprecision at higher speeds of fabrication. The question of why enclosing ourselves inside a rigid voxel space emerged. If we where abandoning the voxels, the robot movements should totally change. In this scenario the concept of vortex showed up. The voxels were reintroduced but in a new way, they would only serve as a field of information in which the robot could move with freedom. They were given an initial value direction of 0, the one that would change based on there distance to the agents. The second step is introduce a group of agents and let them flock inside the boundaries of the field, making the directions of each voxel change every frame. The following step was defining the forces applied to the generation of the field. The principal one is a vortex attraction force, which is mainly an attraction force to each agent location, but rotated in 90° . The other forces that has been tested are direct attraction and repulsion forces, as well as attraction to the centre of mass. After the field of forces is defined, a robot agent is introduced and allowed to freely move following the directions of the field. Depending on its distance to the closest vortex it would be attracted or repulsed from it and then move to another one. This scenario sometimes presents errors as not always the robot will move in or out of the vortex, but get stuck in the same position or spins around a vortex with no escape. For this we proposed two possible solutions based on the age of the vortex, which is a counter. In the first scenario when the robot agent visits a vortex point it starts aging and after a period it will die causing the robot to move directly to the next vortex, this same solution happens when the robot agent moves out of the defined boundaries of the field. A problem derived by this scenario shows up in the fabrication process, creating straight lines between the vortex. This could be solved by stopping the extrusion and moving the

023

robot fast enough in the Z direction to cut the material and then move again to the new vortex, but, this solution complicates the process while making it sower. The second scenario is decreasing the attraction strength of each vortex as the robot agent visits them. For this we define a distance range from the vortex point location to the robot agent location, and if the robot enters this area, the vortex age starts increasing. This last scenario is still on evaluation, but it shows more potential, allowing a continuous extrusion of material and more coherence on the robot movements. In the same way it was previously done with the grid strategy, creating a library of patterns became necessary in order to understand better the way in which each of the forces applied influence the outcomes. One problem existing is the robot jump from each attractor frequently so it create lines between them, it consumes time, waste material and also create a mess. In order to solve the problem, we set a dead age for all the attractors. Once each attractor reach the limited existing time, it will fade away. As a result, robot can keep extrusion from the beginning to the end without linking extra lines.


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 3.1.1 Voxel field with attractors

FIG 3.1.3 Vortex field created by attractors

FIG 3.1.2 Aged attractors fade away

FIG 3.1.4 Robot printing

AD | RC1 | Choreography | UCL 024


03| INITIAL DESIGN STRATEGY DESIGN STRATEGY OF TABLE STRUCTURE

3.2 DESIGN STRATEGY OF TABLE STRUCTURE

3.2.1 Growth Algorithm Scenario I | Total Control

025


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 026


03| INITIAL DESIGN STRATEGY DESIGN STRATEGY OF TABLE STRUCTURE

3.2 DESIGN STRATEGY OF TABLE STRUCTURE

3.2.2 Growth Algorithm Scenario II | No Control

027


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 028


03| INITIAL DESIGN STRATEGY DESIGN STRATEGY OF TABLE STRUCTURE

3.2 DESIGN STRATEGY OF TABLE STRUCTURE

3.2.3 Growth Algorithm III | Partial Control

029


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 030


03| INITIAL DESIGN STRATEGY TOOL PATH RESEARCH

3.3 TOOL PATH RESEARCH

Simulation Based On Different Tool Path

[Backward force] Speed=0.1 Rotation=90 Frequency=counter%100<20&& counter%100>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%100<10

[Backward force] Speed=0.2 Rotation=90 Frequency=counter%100<20&& counter%100>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%100<10

[Backward force] Speed=0.3 Rotation=90 Frequency=counter%100<20&& counter%100>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%100<10

031


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

[Backward force] Speed=0.1 Rotation=90 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%200<10

[Backward force] Speed=0.2 Rotation=90 Frequency=counter%100<20&& counter%100>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%200<10

[Backward force] Speed=0.3 Rotation=90 Frequency=counter%100<20&& counter%100>=10 [Reversebackward] Speed=0.05 Rotation=-90 Frequency=counter%200<10

AD | RC1 | Choreography | UCL 032


03| INITIAL DESIGN STRATEGY TOOL PATH RESEARCH

3.3 TOOL PATH RESEARCH

Simulation Based On Different Tool Path

[Backward force] Speed=0.1 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%200<10

[Backward force] Speed=0.2 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%200<10

[Backward force] Speed=0.3 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%200<10

033


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

[Backward force] Speed=0.1 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%100<10

[Backward force] Speed=0.2 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%100<10

[Backward force] Speed=0.3 Rotation=120 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%100<10

AD | RC1 | Choreography | UCL 034


03| INITIAL DESIGN STRATEGY TOOL PATH RESEARCH

3.3 TOOL PATH RESEARCH

Simulation Based On Different Tool Path

[Backward force] Speed=0.1 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%200<10

[Backward force] Speed=0.2 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%200<10

[Backward force] Speed=0.3 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%200<10

035


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

[Backward force] Speed=0.1 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%100<10

[Backward force] Speed=0.2 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%100<10

[Backward force] Speed=0.3 Rotation=135 Frequency=counter%20 0<20&&counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-135 Frequency=counter%100<10

AD | RC1 | Choreography | UCL 036


03| INITIAL DESIGN STRATEGY INITIAL DESIGN OF TABLE STRUCTURE

3.4 INITIAL DESIGN OF TABLE STRUCTURE Renderings

Zoom in details

Top

Elevation

Elevation

Cellsize=0.5 Attractor number=50 Robot speed=0.2 [Backward] Speed=0.2 Rotation=150 Frequency=counter%200<20 && counter%200>=10 [Reversebackward] Speed=0.05 Rotation=-30 Frequency=counter%200<10

037


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Perspective

AD | RC1 | Choreography | UCL 038


03| INITIAL DESIGN STRATEGY INITIAL DESIGN OF TABLE STRUCTURE

3.4 INITIAL DESIGN OF TABLE STRUCTURE Renderings

Zoom in details

Top

Elevation

Elevation

Cellsize=0.5 Attractor number=50 Robot speed=0.2 [Backward] Speed=0.3 Rotation=150 Frequency=counter%200>20

039


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Perspective

AD | RC1 | Choreography | UCL 040


03| INITIAL DESIGN STRATEGY INITIAL DESIGN OF TABLE STRUCTURE

3.4 INITIAL DESIGN OF TABLE STRUCTURE Renderings

Zoom in details

Top

Elevation

Elevation

Cellsize=0.5 Attractor number=50 Robot speed=0.2 [Backward] Speed=0.3 Rotation=150 Frequency=counter%200>20

041


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Perspective

AD | RC1 | Choreography | UCL 042


03| INITIAL DESIGN STRATEGY INITIAL DESIGN OF TABLE STRUCTURE

3.4 INITIAL DESIGN OF TABLE STRUCTURE Renderings

Zoom in details

Top

Elevation

Elevation

Cellsize=0.5 Attractor number=50 Robot speed=0.2 [Backward] Speed=0.3 Rotation=150 Frequency=counter%200>20

043


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Perspective

AD | RC1 | Choreography | UCL 044



04| MATERIAL RESEARCH


04| MATERIAL RESEARCH MATERIAL POTENTIAL TEST

4.1 MATERIAL POTENTIAL TEST

4.1.1 Handcraft Wall

Previous material tests offer several patterns of corresponding behaviour, which can be regard as the primary steps of robot. What we can do is to choreograph robot with those steps. Like William Forsythe, who never design every movement in performance but let dancers condition themselves in the process of reacting with surroundings, robot are programmed to obey the printing rule and on this premise, interact with the environment. Before testing the material behaviour with robot, several tests are done by hand to show the potential of material behaviour. With different speed applied to each part of the simple tool path, several tests has been done to find a balance between order and mess. To control whether the pattern change gradual or sharply depends on the frequency of changing robot speed. As the peak is getting more evident layer by layer, the gap between peak and the rest part is getting bigger, which leads to a kind of spatial curve involuntarily.

047


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 048


04| MATERIAL RESEARCH MATERIAL POTENTIAL TEST

4.1 MATERIAL POTENTIAL TEST

4.1.2 Handcraft Column

049


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 050


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2.1 Deformed Tool Path

Original Tool Path

Deformed Tool Path

The previous physical tests on material behaviours by hand open an door for the new printing ways. By changing several parameters makes various patterns. Those different patterns can be classified into three typical patterns, deformed curves, cumulate curves and drooping curves. Firstly, we use digital simulation to simulate the material behaviours by controlling specific parameters. The deformed curves can be easily achieved by deforming the tool path a little bit with high robot speed. One important thing is to control the deform distance so as to keep the material stick to the layer below, otherwise material will drop down. After achieving deformed tool path in digital simulation, we started testing corresponding parameters on robot. From the outcomes shown in next page we can see subtle changes made by changing the parameters. Material Simulation

051


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Actual Printing Outcome

Actual Printing Outcome

Actual Printing Outcome

AD | RC1 | Choreography | UCL 052


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2.2 Deformed Tool Path with Variational Robot Speed

Original Tool Path

Deformed Tool Path

In digital simulation, drooping curves can generated by lowering robot speed with large deformation. With the same robot speed, different deformation can make distinct outcomes. As explained on last page, the dense curves are generated by small deformation so material is able to stick to the layers below. On the contrary, if the deformation is too big, material will not be able to stick to the layers below it until the deformation ends. Different droop height can be achieved by controlling both robot speed and deformation range. Although digital simulation can help to predict the outcome of fabrication, it cannot reach high precision. Because of the material unpredictability, once the condition change a little bit, the outcome will be affected to some extent. So the algorithm used for printing is designed to adapt to the complex environment. Material Simulation

053


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Actual Printing Outcome

Actual Printing Outcome

Actual Printing Outcome

AD | RC1 | Choreography | UCL 054


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2.3 Variational Robot Speed

Original Tool Path

Deformed Tool Path

In digital simulation, cumulate curves can be achieved by lowering robot speed. The patterns created by variational robot speed are abundant. On the basis of the same robot speed, different outcomes will appear by changing the nozzle height and deformation distance. The slower robot moves, the more material will accumulate which will possibly create peaks. Meanwhile, as the height of nozzle is getting higher, the curves will become loose. On the contrary, if the height of nozzle is too low and robot keep moving at a low speed, material will pour out continuously and create a mass. Moreover, decreasing the deformation distance can help making dense curves. If robot speed is low enough, more and more dense curves will stick to the facade which makes the facade thicker and sharpen the transition between order and disorder pattern. Material Simulation

055


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Actual Printing Outcome

Actual Printing Outcome

Actual Printing Outcome

AD | RC1 | Choreography | UCL 056


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Robot Speed Test

057

SAMPLE ID

DISTANCE BETWEEN EACH TARGET (MM)

WAITING TIME(S)

HEIGHT OF NOZZLE (MM)

ROBOT SPEED(ABB settings)

A-1

30

0

40

0.25

A-2

30

0

40

0.50

A-3

30

0

40

0.75

A-4

30

0

40

1.00

A-5

30

0

40

1.25

B-1

30

0

25

1.00

B-2

30

0

25

2.00

B-3

30

0

25

3.00

B-4

30

0

25

4.00

C-1

30

0

10

0.25

C-2

30

0

10

0.5

C-3

30

0

10

0.75

C-4

30

0

10

1.00

C-5

30

0

10

1.25

D-1

30

0

10

0.25

D-2

30

3

10

0.50

D-3

30

7

10

0.75

D-4

30

7

10

1.00

D-5

30

7

10

1.25

E-1

15

3

25

0.50

E-2

15

5

25

0.75

E-3

15

7

25

1.00

OUTCOME


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

A

D

In order to make the printing process more manageable, only robot speed and the height of nozzle among several parameters which effect the outcome of printing are controlled as two main parameters during the tests. As is shown in the chart, while altering robot speed, the outcome shows diverse density. The less speed robot has, the more material will accumulate which shapes regular curves. On the other hand, straight lines only appear when robot speed is over 1.25. However, if robot speed exceeds 2, filament will not be able to be melted as fast as robot moves, which leads to the result that the material will be dragged by robot as sample B-4 shows. As will be explained in the next chapter, the rule set to robot depends on the algorithm taking advantage of peaks, so it is more efficient to form legible peaks in less time. Sample D and E in the chart shows the possibility of shaping peaks in a short time by pausing for a while at each peak.

B

E

C

AD | RC1 | Choreography | UCL 058


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Robot Speed Adaption

SAMPLE ID

ROBOT SPEED (UR SETTINGS)

A

3

B

6

C

9

D

12

E

15

059

MODELS


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

DETAILS

Applying the parameters above to the printing, the combination of each parameter shows different outcome. Sometimes the speed is too fast and the nozzle is too high that the material coming out from nozzle is dragged by robot instead of sticking to the layer below. On the other hand, while decreasing the speed and lowering the nozzle height too much, robot start to draw curly curves. The test help to find out an ideal robot speed and nozzle height to be applied to printing smooth curves which form a sharp contrast to the accumulation part. The tests are conducted under 210℃ printing temperature. When setting the fastest speed to 3, robot moves too slow so material starts accumulate which makes the wavy facade. In order to make the contrast between order and disorder more obvious, we increase the robot speed to 6 and material does not accumulate anymore. However, the facade is still a little bit wavy, which means robot speed is still too slow comparing to the extrusion rate. In order to make the facade more smooth, we tried different robot speed. When applying 12 and 15 to robot, the speed is too fast that material is dragged by nozzle. When robot speed is reduced to 9, the printing quality is still not good. The tests above shows the ideal robot speed under 210℃ printing temperature is between 6 to 9 and they also leave a question about how temperature will influence the outcome of printing.

AD | RC1 | Choreography | UCL 060


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Printing Temperature Adaption

Temperature also plays an important roll in 3D printing. Several tests are done under different temperature to explain how temperature influences the outcome of printing. The outcome of the tests demonstrate that temperature has a deep impact on the extrusion rate of material. We apply the same parameters except temperature during the tests. According to specification, the filament we use for printing is Premium PLA, of which the recommended printing temperature is from 190℃ to 225℃. Sample D is printed with 210℃. Although the facade is smooth, the extrusion rate is not stable as filament are not able to be melted fluently with a high motor speed. As a result, the thickness of each layer is not always accurate and some parts of the lines are too thin. Sample A is printed with 245℃. The extrusion rate is so high that material pour out of the tool path which makes the facade looks wavy. Simple B also shows wavy facade, but not as evidence as sample A.

FIG 4.2.1 Model printed with 245℃

Sample C is printed with 225℃ and the quality of the printing is quite satisfactory. The lines printed are almost as accurate as that in digital simulation and the facade is order which can form a sharp contrast with the disorder part. Although high temperature can shrink printing time, the printing quality is not as good as those printed with lower temperature as shown in [FIG 4.2.1] & [FIG 4.2.1]. If temperature is too high, filament will be boiled in nozzle and create many bubbles which will make the surface rough. To balance the advantage and disadvantage of each temperature we decided to print with 225℃.

FIG 4.2.2 Model printed with 225℃

061


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 4.2.3 Sample A

FIG 4.2.5 Sample C

Temperature: 245℃ Robot Speed: 8.7 (UR Robot) Motor Speed: delayMicroseconds(85) Nozzle Height: 2mm

Temperature: 225℃ Robot Speed: 8.7 (UR Robot) Motor Speed: delayMicroseconds(85) Nozzle Height: 2mm

FIG 4.2.4 Sample B

FIG 4.2.6 Sample D

Temperature: 235℃ Robot Speed: 8.7 (UR Robot) Motor Speed: delayMicroseconds(85) Nozzle Height: 2mm

Temperature: 210℃ Robot Speed: 8.7 (UR Robot) Motor Speed: delayMicroseconds(85) Nozzle Height: 2mm

AD | RC1 | Choreography | UCL 062


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Fabrication Test of Column

Based on the consistent logic and algorithm, we test with different input meshes and parameters to build a large amount of interesting patterns. There are numerous possibilities of material behaviours and also abundant combinations of various patterns, from completely straight contour to crazily curves in different extent, from closely fit layer by layer to dramatically overhanging beyond existing layer... Finally, we sort out the feasible printing results with good parameters series. As the figure on the right areas shows, the variation of material behaviours can bring about wonderful patterns on the structure no matter how simple the input mesh is. What is more, thanks to the layer by layer printing strategy, the structure will stand firmly and naturally, remaining interesting combinations of patterns. Dealing with frequently happened cohesion between robot’s nozzle and the material accumulation, we need to constantly adjust the digital design layer by layer. In this phase, our robot does not have any visual sensor and real-time feedback system, which means the problem of cohesion is inevitable. Therefore, through this stage of material research, we found the significance of 3D scanning technology which has to be applied to our project necessarily. At the meantime, it is quite potential to adopt the 3D Scanning system in our printing process to observe the present material accumulation. In this way, we can achieve a good cooperation of man-made concept and robotic creation to generate fantastic notions and super works.

063


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 064


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Fabrication Test of Column

065


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 066


04| MATERIAL RESEARCH

MATERIAL BEHAVIOUR RESEARCH WITH ROBOT

4.2 MATERIAL BEHAVIOUR RESEARCH WITH ROBOT Fabrication Test of Column

067


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 068



05| DEVELOPED DESIGN STRATEGY


05| DEVELOPED DESIGN STRATEGY AUTONOMOUS GENERATION SYSTEM

5.1 AUTONOMOUS GENERATION SYSTEM Pseudocode of the system

071


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

For this a predefined simple tool path is created, but the novelty of this approach is that the tool path can change in reaction to the material behaviour. In this strategy, the smooth tool path creates a legible contrast in relation to the noisy areas, which are a product of a predefined set of rules. The process is a continuous loop between digital and physical realms. [FIG 5.1.1] displays the pseudocode of the system, showing the loop between both phases. It starts with the simulation of a predefined number of layers, they are fabricated and then the outcome is scanned. After that, the data is filtered and used as input for the next simulation. The expected contrast is created not only by the deformation of the tool path, but also by controlling the robot’s speed and extruding temperature. The strategy consists of three main steps, combining a top-down approach and a bottom-up one. The first step, is defined by the designer and is the top-down part of the process. In this phase, the designer defines a basic geometry, contours and subdivide it to create a list of targets. The second phase is about the data collection from the environment and how this data is treated. First, the points are filtered by their height, clustered and according to the size of the cluster a branching function is added. Then the high points are treated as flocking agents and the forces applied to them are defined. The third step consists of the computational rules that the robot agent will follow, including its reaction to the agents and the deformation of the tool path. The second and third steps form a continuous loop and enables the system of the interaction required for a material driven design.

FIG 5.1.1 A continuous loop between digital and physical realms of the system

AD | RC1 | Choreography | UCL 072


05| DEVELOPED DESIGN STRATEGY AUTONOMOUS GENERATION SYSTEM

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.1 Input Geometry

FIG 5.1.1-1 Create a simple wall with modelling software

073

FIG 5.1.1-2 Divide the model by 2mm


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 5.1.1-3 Divide each layers into several

FIG 5.1.1-4 Input agents on the first layer

AD | RC1 | Choreography | UCL 074


05| DEVELOPED DESIGN STRATEGY AUTONOMOUS GENERATION SYSTEM

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.2 Separate from Agents

FIG 5.1.2-1

FIG 5.1.2-2

The robot regularly follows the basic route by checking the points(targets) in the toolpath one by one

Each agent has a sphere range of repulsion force so that the robot will be pushed away from its track by agents

FIG 5.1.2-3

FIG 5.1.2-4

Only when robot is close to agents, the robot gradually slows down the speed to accumulate more material and bypass the agents

In this way, the robot will steer clear of the barriers in a slow speed, rather than moving to the given targets

075


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 076


05| DEVELOPED DESIGN STRATEGY AUTONOMOUS GENERATION SYSTEM

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.3 Deforming & Finding Targets

FIG 5.1.3 If robot can not find the target, we modify the nearby targets’ location towards the robot for making sure the continuous fabrication. In this way, the initial contour are deformed in terms of robot’s movements

077


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 078


05| DEVELOPED DESIGN STRATEGY SENSING BY 3D SCANNING

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.4 SENSING BY 3D SCANNING

In a process of fabrication were the emergence of materiality is encouraged, the need to analyse what is being built and react to it becomes fundamental. The introduction of a 3D scanner to collect data from the physical world, was fundamental to achieve a real communication between the digital and physical realms. For this process a Microsoft Kinect version 1.0 was used along with the software Processing and its external library “KinectPV2� developed by Thomas Sanchez Lengeling. The library provides different data that can be obtained, the ones used in the project are the depth sensor to obtain the 3D location of the point cloud and the color sensor to detect the reference points in order to orient the geometry from the kinect world coordinates system located in the kinect sensor, into the simulation world coordinates system, located in a corner of the fabrication board. In order to obtain the data of the scanned model, the first step is to define the boundaries for what is wanted to be scanned. The software takes the kinect lens as the Origin location, from there the Z axis points down to the model and the X axis parallel to the kinect sensor. After defining the maximum area that could be scanned from a single position, colour tags were located at each corner, reducing the size of the boundary by an offset according to the size of the tags. After the reference points boundary is defined, the next step is to define ranges for the different data that is needed. Through the use of filtering, the location of all the points above certain height is obtained. After getting the higher points they can be clustered by distance and define the peak point of each cluster. Other types of data can also be obtained from the scanning process, like determining the location of the centre of mass. For the final strategy implemented in the project, the points were only filtered by height, defined by the distance from the location Z of each point to the Kinect Sensor, abandoning the necessity of finding the peak points and clustering the points in the simulation programme. To find the reference points, the colour tags where filtered, clustered and their centre of mass obtained. Knowing the real location of the centre of each tag by jogging the robot and their position in the kinect environment, a simple operation was achieved to scale and orient all the filtered points to the real location.

079

FIG 5.1.4-1 Kinect scanning position


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 5.1.4-2 Kinect scanning

FIG 5.1.4-3 Input scanned image to Processing

AD | RC1 | Choreography | UCL 080


05| DEVELOPED DESIGN STRATEGY SENSING BY 3D SCANNING

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.4 SENSING BY 3D SCANNING

FIG 5.1.4-4 Physical model

081

FIG 5.1.4-5 Scanning physical model


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 5.1.4-6 Analysing physical model

FIG 5.1.4-7 Obtaining information

AD | RC1 | Choreography | UCL 082


05| DEVELOPED DESIGN STRATEGY AUTONOMOUS GENERATION SYSTEM

5.1 AUTONOMOUS GENERATION SYSTEM

5.1.5 Cluster & Branch

A

CLUSTER 2

CLUSTER 1

EAT RANGE

B

C

LEGEND FILTERED HIGH POINTS FLOCKING AGENTS CLUSTER CENTRE OF MASS

(A) FLOCKING FUNCTION

CLUSTER RANGE

(B) CLUSTERING FUNCTION

FIG 5.1.5

ROBOT TRAIL

(C) BRANCHING FUNCTION

The algorithm applied to agents that can create branches

083


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 084


05| DEVELOPED DESIGN STRATEGY GROWTH OF WALL STRUCTURE

5.2 GROWTH OF WALL STRUCTURE

Growing Steps

Original

Avoid High Points

Create Agents

Tool Path Deformation

Agents Branching

Speed Change

×

Deformation

×

×

×

Overhang

×

×

×

Outcome

As a bottom-up design strategy, we iterate and complicate the algorithm step by step to reach a better combination of material behaviours. The whole strategy mainly includes 4 parts: Avoid high points Create agents Tool path deformation Agents branching The characteristic of the material performance contains 3 parts: Speed changing Deformation Overhanging

085


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

5.2.1Original Tool Path

AD | RC1 | Choreography | UCL 086


05| DEVELOPED DESIGN STRATEGY GROWTH OF WALL STRUCTURE

5.2 GROWTH OF WALL STRUCTURE

5.2.2 Avoid High Points

Robot Speed Map

087


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

5.2.3 Create Agents

Robot Speed Map

AD | RC1 | Choreography | UCL 088


05| DEVELOPED DESIGN STRATEGY GROWTH OF WALL STRUCTURE

5.2 GROWTH OF WALL STRUCTURE

5.2.4 Tool Path Deformation

089


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Robot Speed Map

Deformed Tool Path

Deformation Map

Overhang Map

AD | RC1 | Choreography | UCL 090


05| DEVELOPED DESIGN STRATEGY GROWTH OF WALL STRUCTURE

5.2 GROWTH OF WALL STRUCTURE

5.2.5 Agents Branching

091


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Robot Speed Map

Deformed Tool Path

Deformation Map

Overhang Map

AD | RC1 | Choreography | UCL 092


05| DEVELOPED DESIGN STRATEGY GROWTH OF WALL STRUCTURE

5.2 GROWTH OF WALL STRUCTURE

5.2.5 Agents Branching

093


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Original Tool Path

Deformed Targets

Deformed Tool Path

AD | RC1 | Choreography | UCL 094


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION

5.3.1 Wall Structure

WALL A

speed = 0.05; cohesionRangeA = 1; cohesionStrengthA = 2; separationRangeA = 2.7; separationStrengthA = 0.23; alignmentRangeA = .2; alignmentStrengthA = 0.06; clusterRange = 3;

WALL B

speed = 0.05; cohesionRangeA = 1; cohesionStrengthA = 2; separationRangeA = 3.5; separationStrengthA = 0.35; alignmentRangeA = .2; alignmentStrengthA = 0.06; clusterRange = 3; Robot Trail

095

Deformed Tool Path

Material Behaviour Simulation


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

WALL C

speed = 0.05; cohesionRangeA = 1; cohesionStrengthA = 2; separationRangeA = 1.7; separationStrengthA = 0.35; alignmentRangeA = .2; alignmentStrengthA = 0.06; clusterRange = 3;

WALL D

speed = 0.05; cohesionRangeA = 1; cohesionStrengthA = 2; separationRangeA = 2.0; separationStrengthA = 0.50; alignmentRangeA = .2; alignmentStrengthA = 0.06; clusterRange = 3; Robot Trail

Deformed Tool Path

Material Behaviour Simulation

AD | RC1 | Choreography | UCL 096


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION

5.3.1 Wall Structure

FIG 5.3.1-1 Wall A rendering

097

FIG 5.3.1-2 rendering


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 5.3.1-3 Wall C rendering

FIG 5.3.1-4 Wall D rendering

AD | RC1 | Choreography | UCL 098


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.2 Column Structure

099


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 100


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.2 Column Structure

101


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 102


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.2 Column Structure

Original Tool Path

103

Deformation Map


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Overhang Map

Robot Speed Map

AD | RC1 | Choreography | UCL 104


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.2 Column Structure

105


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 106


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.3 Furniture

107


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 108


05| DEVELOPED DESIGN STRATEGY DIGITAL SIMULATION

5.3 DIGITAL SIMULATION 5.3.3 Furniture

109


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 110


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

111


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 112


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

113


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 114


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

115


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 116


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

117


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 118


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

119


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 120


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

121


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 122


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

5.4 GROWTH ALGORITHM APPLIED TO DIFFERENT STRUCTURES Column Structure

123


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 124


05| DEVELOPED DESIGN STRATEGY ARCHITECTURAL SPECULATION

125


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 126



06| FABRICATION RESEARCH


06| FABRICATION RESEARCH END EFFECTOR DESIGN

6.1 END EFFECTOR DESIGN

6.1.1 Extruder Design

UR-10 Robot

End Effector

Extruder Electrocircuit

Model

129


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 6.1.1-1 End Effector for Robotic 3D Printing

AD | RC1 | Choreography | UCL 130


06| FABRICATION RESEARCH END EFFECTOR DESIGN

6.1 END EFFECTOR DESIGN

6.1.1 Extruder Design

The filament extruder([Fig4.1.1]) has the same working principle as the 3D printer and it can be regarded as a 3D printer in a large scale. It mainly consists of a nozzle, a PTFE pipe, four hot ends, a stepper motor and some other hardware. The design of the nozzle is aimed to extrude the material faster and achieve more accuracy. Furthermore, an applicable nozzle is capable of not only extruding material which has enough thickness to fill the space efficiently, but also emerging the outcome with plenty of details. As is explained in the following chapter, sensor is involved in the fabrication process, which means the printing must have enough thickness to be recognized by sensor. The sensor we use is Microsoft Kinect, by testing it we find it is able to scan the lines which diameter is more than 3mm easily. There are three nozzles of different type tried for printing. Generally, the four holes for hot ends offer enough and stable temperature to heat the filament in nozzle and the hole which filament pass through starts from 4mm diameter to make the resistance on the side smaller so that the 2.85mm diameter filament can pass through more fluently.

FIG 6.1.1-2 Filament Extruder

131


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Box for Kinect Camera

Attachment to UR Robot Stepper Motor Gear

Aluminium Pipe

PTFE Pipe Holes for Hot End & Sensor Noozle

AD | RC1 | Choreography | UCL 132


06| FABRICATION RESEARCH END EFFECTOR DESIGN

6.1 END EFFECTOR DESIGN

6.1.2 Nozzle test

Nozzle type A([Fig4.1.2]) is a long thin nozzle(3mm diameter) which can offer more heating space so material is able to melt faster in it. Benefit from the slim shape, robot can avoid hitting against what it has already printed and keep extruding at a steady speed. Nozzle type B(3mm diameter) is also suitable for spatial printing. Compared with nozzle type A, it is shorter and lighter as shown in [Fig4.1.3] but the extrusion speed of it is not as fast as type A. On the basis of the

FIG 6.1.1-3 Noozle Type C

133

advantages of the previous nozzles, type C nozzle(3.5mm diameter) works more efficient except it is more likely to hit against surroundings([Fig4.1.4]). This project, which is based on material behaviour, is not concerned with the accuracy but the randomness of printing. Balancing the advantages and disadvantages of each type of nozzle, nozzle type C is an appropriate nozzle for fabrication.

SECTION A-A


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

FIG 6.1.1-4 Noozle Type A

FIG 6.1.1-5 Noozle Type B

SECTION A-A

SECTION A-A

AD | RC1 | Choreography | UCL 134


06| FABRICATION RESEARCH END EFFECTOR DESIGN

6.1 END EFFECTOR DESIGN

6.1.3 Extruder Electrocircuit Design

Electrocircuit is very important of the whole printing system. With specific programs we can set up different working rules of the extruder, including its working temperature and the motor speed. Both of the two parameters have effect on the extrusion rate. In order to remote control the extruder, the electrocircuit is designed to transfer the output data of PC to the extruder. Arduino UNO is the main device for data transfer, with Arduino software, we can set temperature and motor speed easily on PC. Big Easy Drive is a hardware for stepper motor and Relay plays a role as a switch that is used together with the temperature sensor to keep the temperature remain the setting value all the time. If the temperature does not reach the setting value, the Relay switch on so the hot ends start heating the nozzle. If the temperature has already reached the setting value according to the sensor, the Relay will switch off to avoid over heating. The LCD screen helps to sensor the temperature. Digital Input/Output is linked with robot, allowing us to turn the motor on or off via PC by using related software and plug-in.

5V 8 Channel Road Relay

Arduino UNO

Big Easy Driver

Thermistor Temp. Snsor For 3D Printer`

12v 40w Ceramic Cartridge Heater for 3D Printer

135


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Digital Input/Output

Power Connector Plug Adapter

Fan

LCD Screen

AD | RC1 | Choreography | UCL 136


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

Fabrication Based on Autonomous Behaviour of Robot

137


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

We work out an appropriate fabrication flow(Fig 24) evolving from the traditional 3D printing process. Experiments have been conducted to verify the feasibility of this innovative approach successfully. The essential hardware device relevant to our fabrication is the robot, Kinect camera and end effector. The most apparent distinction from the general robotic printing is to scan and respond to the material accumulation. For scanning are using a Microsoft Kinect version 1.0, the software Processing and the Processing library “KinectPV2” developed by Thomas Sanchez Lengeling. In order to obtain the data of the scanned model, the first step is to define the boundaries for what is wanted to be scanned(Fig 28). The software takes the Kinect lens as the Origin location, from there the Z axis points down to the model and the X axis parallel to the Kinect sensor. After the boundary is defined, the next step is to define ranges for the different data that is needed(Fig 29-31). Through the use of imaging and digital computation, we get the location of all the points above the certain height. The dominating computation of robot tool path is done by the software ‘Processing’ based on our strategy. Before starting printing in each layer, the robot move to a certain height and rotate its arm for attaching the scanning device(Fig 32). We use Kinect range camera with a distance sensor and light sensor to catch the images of the existing depositions and measure the distance from the model. By connecting to a computer(Fig 33), we accomplish the filtering of high points (Fig 34.1,34.2). Through checking the height of material accumulations and the reference points on the ground, the computer will calculate a new tool path depending on our algorithm. Then, the tool path will be transferred to the Grasshopper Software which controls the movement of the 6-axis robotic arm. Simultaneously, the end effector that riveted with the robotic arm extrudes molten material generating next depositions until finishing the fabrication.

AD | RC1 | Choreography | UCL 138


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

Fabrication Based on Autonomous Behaviour of Robot

For the project, three programmes were created, one for simulating the entire process including the filtering of data and define the design properties expected from the output; and two other programmes for the fabrication process. One of them for collecting the data from the physical output and another for designing the toolpath and react to the collected data. At some point the material behaviour simulation was abandoned from the fabrication programme to reduce the computational demand during the fabrication loop, but it was soon re-established as it was required for compensating the absence of physical data every layer due to the fineness of the PLA extrusion and the resolution of the scanner device. With respect to this issue, the resolution and accuracy of the Microsoft Kinect V1 is not as precise as expected, producing highly distorted data. Even though high accuracy is not needed for the location of the filtered points in the X and Y axis, the absence of accuracy to filter the layers’ high points is important due to the fineness of the PLA extrusion. This issue was solved by scanning every five or ten layers instead of scanning after each one is complete and so accumulate enough material to be detected as intended, generating peaks and valleys. Other nozzle designs are being tested to allow thicker PLA filament extrusions, while other possibilities include changing the PLA filament end effector for one of Pellets or use other materials as expansion foam or ceramics. The development of low cost new scanning technology as the Leap Motion, which allows closeness to the material could also improve the accuracy of the process and may allow a realtime respond to the environment instead of having to do it every certain amount of levels. Other possible option for a real time scanning and processing is using multiple Kinect devices in different fixed locations and triangulate the points location to get more accurate results and get rid of dark zones due to the robot arm interference.

139


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 140


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

Fabrication Based on Autonomous Behaviour of Robot

141


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 142


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.1 Wall Structure

143


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 144


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.1 Wall Structure

145


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 146


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.2 Column Structure

In order to achieve autonomous behaviour of robotic fabrication, robots should be able to condition itself in changeable surroundings. With the help of sensor, robot can receive feedback which instructs it the next movement. Briefly, by setting a basic tool path and a printing rule to constrain the movement of robot, it is able to fabricate a structure autonomously. As is shown in[FIG 5.1.1], the whole fabrication can be concluded as the following steps. An initial geometry is set and divided to several layer filled with points which is regarded as targets by robot. Then a flock of agents are created in the first layer as a factor which will effect the behaviour of robot. The movement of the agents depends on the algorithm controlled by people. After running the program and generating the tool path, robot will print by following the tool path. Once it finishes ten layers, the sensor will scan the model and recognize the high points, those information will then exported to PC and finally the following new too path will be generated on the basis of the algorithm. The algorithm is to make the robot change movement according to the environment as it will slow down and separate from the high points during the printing. Transition from design to execution is not linear and unidirectional anymore and this approach provides infinite potential for both design and fabrication.

147


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 148


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.2 Column Structure

Original Tool Path

149

Deformation Map


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

Overhang Map

Robot Speed Map

AD | RC1 | Choreography | UCL 150


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.2 Column Structure

151


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 152


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.2 Column Structure

153


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 154


06| FABRICATION RESEARCH ROBOTIC FABRICATION

6.2 ROBOTIC FABRICATION

6.2.2 Column Structure

155


|CHOREOGRAPHY|

|AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION|

AD | RC1 | Choreography | UCL 156


157


FIG 7.1.1 Transfer data to robot by Grasshopper

AD | RC1 | Choreography | UCL 158


import java.util.Collections; import nervoussystem.obj.*; import controlP5.*; import peasy.*; import toxi.geom.*; import toxi.physics.*; import toxi.processing.*; // XYZ Origin import kinematik.*; PImage ToolPathPNG_On; PImage ToolPathPNG_Off; PImage KinectPNG_On; PImage KinectPNG_Off; PImage AgentsPNG_On; PImage AgentsPNG_Off; PImage BranchPNG_On; PImage BranchPNG_Off; PImage SeparationPNG_On; PImage SeparationPNG_Off; PImage DeformPNG_On; PImage DeformPNG_Off; PImage bg; PFont font; PFont font1; PFont font2; Agent a1; Predator p1; Kuka kuka; ControlP5 cP5; Robot_a robot_a; PeasyCam cam; VerletPhysics physics; ToxiclibsSupport gfx; // XYZ Origin Controller controller; //-----------------------------------------------DISPLAY BOOLEANS boolean isRecord=false; boolean PlaySimulation = true; boolean displayDistanceLineMap = false; boolean displayOrigin = true; boolean displayOriginToolPath = false; boolean displayOverhangingMap = false; boolean displayRobotSpeedMap = false; boolean cameraRotate = false; boolean displayText = false; boolean displayDeformedToolpath= false; boolean displayTrailLines = false; boolean displayAgents = false; boolean displayRobot = true;

159

boolean stopKuka=true; boolean displaySpring=false; boolean displaydupSpring = false; boolean isPlay=true; //-----------------------------------------------DISPLAY ICONS boolean displayKinectIcon = false; boolean displayToolPathIcon = true; boolean displayAgentsIcon = false; boolean displayBranchingIcon = false; boolean displaySeparationIcon = false; boolean displayDeformIcon = false; //-----------------------------------------------BUTTONS PARAMETERS int Icon_PlaySimulation = 1; int Icon_CameraRotate = 0; int Icon_Robot = 0; int Icon_Origin = 0; int Icon_OriginToolPath = 0; int Icon_DeformedToolPath = 0; int Icon_LengthLines = 0; int Icon_OverhangingMap = 0; int Icon_RobotSpeedMap = 0; //-----------------------------------------------ARRAYLISTS ArrayList arrayOfAgents = new ArrayList(); ArrayList arrayOfClusterCenters = new ArrayList(); ArrayList arrayOfDupParticle = new ArrayList(); ArrayList arrayOfOriginPoints = new ArrayList(); ArrayList arrayOfParticles = new ArrayList(); ArrayList arrayOfPoints = new ArrayList(); ArrayList arrayOfPredators = new ArrayList(); ArrayList arrayOfRobotTrails = new ArrayList(); ArrayList arrayOfSprings = new ArrayList(); ArrayList arrayOfTrailpoints = new ArrayList(); //-----------------------------------------------SETTING float sizeX = 70; float sizeY = 45; float sizeZ = 130; float layerThickness = 0.2; float diappearingDist=1.8; int NumPointsLayer = 400; int cameraLevel = 0; int numUpdatesPerFrame = 1; int pauseCounter = 0; int displaceY = 60; int IconLocX = 1680;//1750;

int robotGHSpeed; int previousLayer = 0; int finishLayer = 10; //-----------------------------------------------COLORS int bgColor = color(0, 50, 50, 100); int bgButtonsColor = color(0); color c1 = color(255); //0 //color c2 = color(255, 0, 50); //color c2 = color(60, 180, 180); color c2 = color(60, 220, 180); color c3 = color(60, 180, 180); //color c4 = color(17, 83, 78); color c4 = color(60, 140,180); color col1 = color(255, 0, 0); color col2 = color(0, 255, 255, 0); color cA1 = color(8, 40, 191, 220); color cA2 = color(20, 109, 175, 220); color cA3 = color(53, 137, 236, 220); color cA4 = color(53, 50, 100, 220); //-----------------------------------------------NOISE PARAMETERS float pointsDistribution = 0.20; float pow = 6; float th = 0.1; float Regularity = 0.02; //-----------------------------------------------ROBOT float maxDist =0.15;// 0.20; float robotSpeed = 0.05;//0.2; float sepRange = 1;//0.6;//1.20; float separationStrength = 0.35;//0.32; float robotAltitude; //-----------------------------------------------NOZZLE float extrusionFrequency = 1; float coolingSpeed = 30; //25; float nozzleTemp = 200; float roomTemp = 25; float separationRange_n = 0.3; float separationStrength_n = 0.01; float StringLength = 0.2;//0.2; float StringWeight = 0.2;//0.3; //-----------------------------------------------AGENTS float maxSpeed = 0.005;//0.05; float cohesionRangeA = 1; float cohesionStrengthA = 1.5; //2 float separationRangeA = 2; float separationStrengthA = 0.8; //0.5 float alignmentRangeA =0.2;


float alignmentStrengthA = 0.06; float predatorRange = 30; //20 float predatorStrength = 100; float hunger = 0.05; float eatRange; float clusterRange = 2; //3 Vec3D CenterOfCluster = new Vec3D(); //----------------------------------------------void setup() { //size(1500, 1000, P3D); //size(1400, 924, P3D); size(1850, 1041, P3D); //HD Minimum bg = loadImage(“data/1850.jpg”); //size(3840, 2160, P3D); //HD Best randomSeed(100); noiseSeed(2000); importPoints(“data/col_contour_short.txt”); importInterferencePoints(“data/Agents_short. txt”); createAgents(); createRobot_a(); createCamera(); physics = new VerletPhysics(); kuka = new Kuka(); gfx = new ToxiclibsSupport(this); // XYZ Origin font = createFont(“SourceCodePro-Regular.ttf”, 24); font1 = createFont(“SourceCodePro-Regular.ttf”, 24); font2 = createFont(“SourceCodePro-Regular.ttf”, 10); textFont(font); cP5 = new ControlP5(this); controller = new Controller(); cP5.setAutoDraw(false);

ToolPathPNG_On = (loadImage(“Icons/ToolPath_On.png”)); ToolPathPNG_Off = (loadImage(“Icons/ToolPath_Off.png”)); KinectPNG_On = (loadImage(“Icons/Kinect_ On.png”)); KinectPNG_Off = (loadImage(“Icons/Kinect_Off. png”));

AgentsPNG_On = (loadImage(“Icons/Agents_ On.png”)); AgentsPNG_Off = (loadImage(“Icons/Agents_Off. png”)); BranchPNG_On = (loadImage(“Icons/Branch_ On.png”)); BranchPNG_Off = (loadImage(“Icons/Branch_Off. png”)); SeparationPNG_On = (loadImage(“Icons/Separation_On.png”)); SeparationPNG_Off = (loadImage(“Icons/Separation_Off.png”)); DeformPNG_On = (loadImage(“Icons/Deform_ On.png”)); DeformPNG_Off = (loadImage(“Icons/Deform_ Off.png”)); } //----------------------------------------------void draw() { background(bg); displayButtons(); //if (stopKuka) kuka.run(); if (displayOrigin) displayOrigin(); //if (frameCount==2) //createRobot_a(); //cam.lookAt(robot_a.loc.x, 0, 0); //sizeX/2, sizeY/2 //if (cameraLevel<robot_a.countFiltering) { // cam.lookAt(sizeX/2, sizeY/2, 5 + frameCount*0.005); // cameraLevel = robot_a.countFiltering; //} if (cameraRotate) cam.rotateY(radians(0.9)); robotRender(); if (PlaySimulation && isPlay) { update(numUpdatesPerFrame); } gui(); if (pauseCounter>50) { pauseCounter=0; isPlay=true; } if (isRecord) saveFrame(“data5/frame####.png”); pauseCounter++;

} //--------------------------------------------------

void update(int n) { for (int i=0; i<n; i++) { if (robot_a!=null) { robot_a.run(); } runParticles(); physics.update(); }

//if (displaySpring) runSprings();

} //----------------------------------------------void robotRender() { //for display if (robot_a!=null) { robot_a.render(); } runPoints(); runOriginPoints(); if (displayDistanceLineMap) displayDistanceLineMap(); if (displayRobotSpeedMap) displayRobotSpeedMap(); if (displayOverhangingMap) displayOverhangingMap(); if (displaySpring) runSprings(); if (displaydupSpring) displaydupSpring(); if (displayOriginToolPath) displayOriginToolPath(); if (displayDeformedToolpath) displayDeformedToolpath(); } //----------------------------void createAgents() { int numAgents = 40; Point p = (Point) arrayOfPoints. get(NumPointsLayer/2); for (int i=0; i<numAgents; i++) { Vec3D v = new Vec3D(random(p.loc.x-1, p.loc. x+1), random(p.loc.y-1, p.loc.y+1), random(p.loc.z, p.loc.z+2)); Agent a = new Agent(v); arrayOfAgents.add(a); } } //----------------------------void runAgentsFirst() { for (int i = 0; i < arrayOfAgents.size(); i++) { Agent a = (Agent) arrayOfAgents.get(i);

FIG 7.1.2 Code for the algorithm

AD | RC1 | Choreography | UCL 160


CHOREOGRAPHY

AUTONOMOUS BEHAVIOUR OF ROBOTIC FABRICATION

AD Research Cluster 1 The Bartlett

RC1 | 2016-2017 | Architectural Design

The Bartlett School of Architecture | UCL


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.