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â&#x201E;&#x192; 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â&#x201E;&#x192; 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â&#x20AC;&#x2122;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â&#x20AC;&#x2122;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 â&#x20AC;&#x153;KinectPV2â&#x20AC;? 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â&#x20AC;&#x2122; 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