M Sc Ada p tiv e Arch i tecture and c om pu ta t ion Bartlett school of graduate Studies Unive rsity Colle ge London September 2013
Robotic Bricklaying Towards adaptive robotic programing Khaled ElAshry
1 `
Word Count: 10891 This dissertation is submitted in partial fulfilment of the requirements for the degree of Master of Science in Adaptive Architecture & Computation from Bartlett School of Graduate Studies, University College London. I, Khaled ElAsrhy confirm that the work presented in this thesis is my own. Where information has been derived from other sources, I confirm that this has been indicated in the thesis. September 2013 2 `
Abstract
Robotic Bricklaying
ABSTRACT After the recent move of the field of architecture towards fabrication, the use of industrial robots surfaced as a replacement of custom fabrication machines. Robots are typically controlled with strict offline programing to produce controlled results similar to how robots are used in manufacturing. However, in construction robots did not manage to replace humans in on site operations. In the bricklaying profession, the craftsman uses his tuition to adapt to the material he is working with and to the changing work environment. This raised the question of the ability to build a system that can respond to changes in order to replicate the craft using robots. The research focuses on two main aspects, of bricklaying: The craft of laying brick and mortar itself and the ability to keep track of the work on a larger scale. In order to replicate these aspects an adaptive program had to be built with reliance on sensors and feedback to control the robotic arms. The robotic arm managed to achieve the tasks in question using two software: A new plugin to control the movements of the robots and a server that is capable of dealing with feedback. Key words: Robotic Arms, adaptive programing, bricklaying, construction, architecture, fabrication, feedback, computer vision, unpredictable material, Mortar, Brick.
3
Contents
Robotic Bricklaying
CONTENTS Abstract ............................................................................................................... 3 Contents .............................................................................................................. 4 Acknowledgment ................................................................................................ 6 1
Introduction ............................................................................................... 9
2
Background .............................................................................................. 12 2.1 The craft of bricklaying ......................................................................... 12 2.2 Robots in architecture .......................................................................... 15 2.2.1 Early adoptions ............................................................................. 15 2.2.2 The current state of robotic research in architecture. ................. 16 2.3 Observations during the Robotic foaming Workshop, SG2013 ........... 17 2.3.1 Robotic brick work ........................................................................ 19
3
Methodology ........................................................................................... 21 3.1 The robotic arm .................................................................................... 21 3.2 Onix Grasshopper plugin ...................................................................... 23 3.2.1 Kinematics of the UR robotic arm. ............................................... 24 3.2.2 Forward kinematics ...................................................................... 25 3.2.3 Inverse kinematics ........................................................................ 26 3.2.4 Solution toggles ............................................................................ 27 3.2.5 Angles calculation ......................................................................... 30 3.2.6 Execution path generation ........................................................... 31 3.2.7 Robot program and program uploader ........................................ 32 3.3 The end‐effectors ................................................................................. 33 3.4 Robot execution paths ......................................................................... 34 3.4.1 Pick and place of bricks. ................................................................ 35 4
Contents
Robotic Bricklaying
3.4.2 Accompanying tasks. .................................................................... 35 3.4.3 Laying mortar ................................................................................ 36 3.5 Brick laying server ................................................................................ 38 3.5.1 Program operation sequence ....................................................... 39 3.5.2 Interface ........................................................................................ 40 3.5.3 Computer vision and sensing ........................................................ 41 3.5.4 TCP/IP Feedback. .......................................................................... 43 3.5.5 Bricklaying server to Onix communication ................................... 44 3.6 Wall building tests ................................................................................ 44 4
Discussion and results .............................................................................. 47 4.1 Testing Results ..................................................................................... 47 4.2 Critical assessment ............................................................................... 48
5
Conclusion ................................................................................................ 51
6
Appendix .................................................................................................. 53
7
References ............................................................................................... 59
5
Acknowledgment
Robotic Bricklaying
ACKNOWLEDGMENT I take this opportunity to express my profound gratitude and deep regards to my supervisors Sean Hanna and Ruairi Glynn for their endless support and guidance, Angelos Chronis for his valuable feedback, the Bartlett CADCAM team for their great help, my gurus Mohamed Zaghloul and Ebtissam Farid for their inspiration, my friends for always being there for me, my father Mohamed ElAmir ElAshry and sisters Kholoud and Tayseer for their endless support and encouragement, and last but not least my late mother Neveen ElMaghloub for her love and endless belief in me.
6
List of figures
Robotic Bricklaying
LIST OF FIGURES Figure 1 the tomb of Saminids Bukhara, 900 A.D (Campbell & Pryce 2003) ............. 12 Figure 2 Bricklaying on‐site ........................................................................................ 14 Figure 3 left: First commercial ABB robot IR6 1974 Right: KUKA first robotic arm, Famulus 1973 ............................................................................................................. 15 Figure 4 Robot brick laying system ((G. Pritschow, M. Dalacker, J.Kurz, M.Gaenssle 1994) .......................................................................................................................... 16 Figure 5 Experiments during the Robotic foaming workshop SG2013 ...................... 18 Figure 6 R.O.B system introduced (Gramazio & Kohler 2008, p.57) .......................... 19 Figure 7 DimRob system (Helm et al. 2012, p.1) ....................................................... 20 Figure 8 : To the left Six degrees of freedom around a point .................................... 22 Figure 9: To the right a sample of the solutions of rotations around a point using a UR10 robot and Onix .................................................................................................. 22 Figure 10 left : Spherical axis robotic arm Right: non sperical axis robotic arm ....... 22 Figure 11 Onix grasshopper plugin example file ........................................................ 24 Figure 12 Universal Robot UR10 servo axis diagram ................................................. 25 Figure 13 Forward kinematics component in Onix .................................................... 25 Figure 14 Inverse kinematics component in Onix ...................................................... 26 Figure 15 First IK solution toggle diagram ................................................................. 27 Figure 16 Second IK solution toggle diagram ............................................................. 28 Figure 17 Third IK solution toggle diagram ................................................................ 29 Figure 18 Angle calculation digram ............................................................................ 30 Figure 19 Move, I/O and program uploader components in Onix ........................... 32 Figure 20 Components of the gripper end‐effector .................................................. 33 Figure 21 right: End‐effector attached to the robotic arm. Left: The trowel attached to the handle .............................................................................................................. 34 Figure 22 Pick and place sequence ............................................................................ 35 Figure 23 Gripper holding the trowel for mortar operation ...................................... 36 Figure 24 laying mortar execution path sequence .................................................... 37 Figure 25 robot executing mortar laying ................................................................... 37 Figure 26 robot removing excess material using the trowel ..................................... 38
7
List of figures
Robotic Bricklaying
Figure 27 the bricklaying server in operation. ........................................................... 38 Figure 28 Operation sequence of the bricklaying program ....................................... 39 Figure 29 Detailed operation sequence of the bricklaying program ......................... 40 Figure 30 Bricklaying server interface ........................................................................ 40 Figure 31 Intel procedural computing camera .......................................................... 41 Figure 32 Intel camera point cloud used for surface approximation ........................ 42 Figure 33 Limit switch testing brick hieght ................................................................ 43 Figure 34 right: Sequence of communication between the bricklaying server and Onix for a single operation left: program dispatcher in Grasshopper ...................... 44 Figure 35 first test to check mortar laying movements and server operation .......... 45 Figure 36 Second test to check error handling and feedback ................................... 46 Figure 37 third test to check program adaptation to different rotations ................. 46 Figure 38 operation sequence ................................................................................... 53 Figure 39 IK solver (Left Square) and uploading component (Right Square) location in the Onix plugin example file ...................................................................................... 56 Figure 40 IK solver component parts cluster ............................................................. 56 Figure 41 Point A calculation ..................................................................................... 56 Figure 42 Point B calculation ...................................................................................... 56 Figure 43 Point C calculation ...................................................................................... 57 Figure 44 Angle sorting algorithm cluster .................................................................. 57 Figure 45 Robot uploading component cluster ......................................................... 57 Figure 46 the eight possible solutions for a single tip plane using Onix IK solver ..... 58
8
Introduction
Robotic Bricklaying
1 INTRODUCTION Robotics is a fairly new field in technology; The term robot dates to the 1920s (Spong et al. 2005, p.1). Robots have come a long way since then, growing more complex and capable. Robots are now a key part in manufacturing industries such as the automotive industry. However, in construction, they did not play an important role. Human labour remained the main asset for many reasons. e.g., the work environment. Construction is a very complex work field; tasks that are very easy for human to achieve (like avoiding an obstacle or moving from one work location to the other) are big challenges for robots. In the 1980s (Bechthold 2010, p.119) numerous trials to integrate autonomous machines in construction surfaced especially in japan, these trials were faced by another major drawback; the economical visibility of the integration of such technology. These machines were huge and expensive which meant that they weren’t a viable solution economically to manual labour. Also, construction now might take the advantage of machinery; they are most of the times directly controlled by humans and very far from being autonomous. Recently, the interest in robotic in construction has surfaced again as robots are getting cheaper while labour in western societies is getting more expensive. Robotic fabrication has been traditionally associated with high‐tech industrial environments, where fixed positioning and constant conditions determine the role that the robot may undertake in the fabrication process. Unlike in stationary facilities, a construction site is a spatially complex and heterogeneous environment in which a robotic system may be exposed to continuous change and unpredictable events. (Helm et al. 2012, p.1) Bricklaying is a construction profession that depends mainly on manual labour. The craft of bricklaying hasn’t changed dramatically through history. The tool used in the modern construction site is as old as the profession itself(Campbell & Pryce 2003, p.303). The craftsman throughout history played a huge role in the realization of several great structures that are still standing till now. Architects had a huge influence on bricklaying as they themselves were sometimes considered master craftsmen (Hill 2005, p.14). Nowadays, the craft is becoming more of a profession of filling the gaps between prefabricated parts of the buildings in the modern western society. However, Architects are returning to their historic close relation to the 9
Introduction
Robotic Bricklaying
realization of their designs in the real world, researching new techniques in fabrication and construction, retaking their role as master builders (Kolarevic 2005, p.65). In Architecture, robotics has become a major research arena over the past eight years. The introduction of robotics in architecture research has started with the move of the field towards research in fabrication. As research grew more complex in the virtual form finding field, Architects were getting more and more interested in the art of making. Industries like ship construction(Kolarevic 2005, p.9) had a great impact on research in fabrication. Industrial robotic arms which were a crucial part of such industries for years, are getting much cheaper. Which made them a viable replacement to getting huge specialized milling or routing machines. The versatility of the robots meant there are several uses that go beyond just that and new research by pioneers in the field started to explore their potential. Robotic arms are very versatile machines, their use is fundamentally determined by the program that operates them and the tool attached to it. They were able to work with composite materials for example, and were as well able to do jobs like pick and place very efficiently. Architects were also researching in the software side of robotics, linking robotic operation to CAD software for easier generation of the controlling program for instance. In fabrication, Material behaviours plays a big role, the complexity of the integration of material behaviour in the process is determent by the unpredictability of the material itself. The exploration of the use of the robots with messy materials and composite fabrication projects required more advanced programing for the robots. This time using senses and feedback to produce an autonomous program that can adapt and change to external stimuli, making them more efficient and productive. This research into sensing techniques and adaptable programing is getting us closer to achieve robotic integration in heterogeneous environments like construction sites. Bricklaying is a craft that require practice, tuition and adaptable technique with the need to work with relatively unpredictable materials. Robots, also are powerful and accurate machines, are generally very inadequate at the execution of such set of 10
Introduction
Robotic Bricklaying
qualities. This raised the question of the ability of an autonomous robot to replicate this craft using the same low tech tools used by a bricklayer. In order to achieve that the research the primary focus of this research is to develop an adaptive operating workflow that can address two specific qualities of the bricklaying workmanship using robots:
The craft of working with messy materials like mortar in combination with other components like bricks with the ability to shift between them
The ability to keep track of the larger plan and execute error correction.
Following the introduction, the background chapter focuses on the bricklaying craft, discussing the role of the bricklayer, followed by the recent related research in the fields of robotics and fabrication in architecture. Next chapter is the methodology, this chapter focuses on the creation of the software platforms and the process that allowed the testing of the craft reproduction using robotic arms, and also the tests conducted to build wall samples. Upon that the discussion chapter discuss the results and outcomes of the tests. And the research then ends up with conclusion.
11
Background
Robotic Bricklaying
2 BACKGROUND 2.1 The craft of bricklaying 2.1.1 The evolution of bricklaying The Hanging Gardens of Babylon, one of the seven wonders; the Great Wall of China, the largest manmade object in the planet; the hag Sofia, one of the most beautiful churches ever built …, they were built out of bricks. Brick is at once the simplest and most versatile of materials, the most ubiquitous and the least regarded, all too familiar yet strangely neglected (Campbell & Pryce 2003, p.13) Brick is one of the oldest building materials. Moulded brick is dated back to the 5000 BC (Campbell & Pryce 2003, p.15). Brick building evolved significantly through history with inventions like fired bricks and the use of concrete in Greece. Historic Brick building varies according to the type of brick, type of bonding material used and the technique used by the bricklayer. Bricklaying craftsmanship played a big role in the construction of the masterpieces all around the world. Throughout the history the relation between the Architect and the craftsman in this case the Bricklayer was strong. Architects were considered master masons in the middle ages. However, In the Italian Renaissance architects started distancing themselves from the craftsmen focusing more on the building representation (Hill 2005). Like many labour dependent workmanship, the bricklaying skill level required in ancient times is no longer in demand no today and skills that are not in demand diminish by time (Campbell & Pryce 2003).
Figure 1 the tomb of Saminids Bukhara, 900 A.D (Campbell & Pryce 2003)
12
Background
Robotic Bricklaying
The Bricklaying craft was always accompanied through history by the profession of brick–making .In the western world nowadays, brick‐making is almost extinct. Bricks now are manufactured mechanically and transported to site. On the other hand, bricklaying seems to be fairly untouched by modern technology (Campbell & Pryce 2003, p.303). Machines that take bricklayer place are still not seen. This is the very distinct difference between the evolution of manufacture and construction in recent history. The brick can be mass produced cheaply in a factory in a relatively controlled automated manner. While a bricklayer has to deal with the changing work environment, adapting to it with each different job on site. 2.1.2 Observations of the bricklaying craft on-site Bricklaying is a profession that requires years of experience. The work of a master worker can be easily differentiated from a novice one especially when dealing with facing bricks. When the research started there was a necessity to watch a bricklayer craftsman and also try brick laying to get to know the profession. The observation and personal tries of bricklaying on‐site resulted in the Focus on two main aspects that defines the craft. 1. the act of brick and mortar laying itself 2. The focus on larger scheme of things. A perfect technique will cut time and waste material, and also result in a much better end product. Technique and material greatly affect the result. Personal tries revealed how the craft is a combination of skill that can be taught and expertise that is compiled over time. The bricklayer almost does his craft unconsciously. The tool is a major part of the process. The trowel itself is as old as the profession of brick laying and haven’t changed significantly along its history. Using such low tech tools, human tuition plays a huge rule in deterring the movement according to the different features of the material itself like weight and consistency.
13
Background
Robotic Bricklaying
Figure 2 Bricklaying on‐site
A bricklayer might seems to only focus on laying a brick but he also keeps an eye on the larger plan. This is vital in order for the brick rows and columns to end up matching in the whole building. Bricklaying is accompanied by other work on‐site like building openings and reinforced concrete works for example. A simple error in calculation can easily propagate to produce huge problems in the end that may require major error fixing or even the destruction of wall portions resulting in badly finished product. Bricklaying is still very far from mechanization but the quality of the craft is declining in western high tech world. Prefabricated parts is being used when possible. This lean towards prefabrication wasn’t only for machined parts that may require special manufacturing, but even the parts of the brick building that required most of the skill like the arches for example are shipped fully assembled and put in place in construction site. This is due to the higher expenses required to hire a quality craftsman to work on‐site. And at the same time ability to better control construction time and increases efficiency as much as possible. Brick laying is still a relatively untackled territory when it comes to automation. This gives a large space for what can be achieved. The innovation in the field brick design require new tools that can reproduce the technique and quality of ancient brick laying and go beyond that. At the same time increase efficiency and decrease time of construction, while also filling the need for such craft in unhuman environments for instance.
14
Background
Robotic Bricklaying
2.2 Robots in architecture 2.2.1 Early adoptions Industrial robotic arms have been offered commercially since the 1970s (international fedration of robotics 2012, p.3) Machinery has been a core topic in manufacturing for many years pushing the limits of research. Productivity on such fields have increased significantly in the last decade as opposed to the construction industry (Balaguer & Abderrahim 2008, p.2). Robots however seems to be always constrained to work in highly controlled facilities. Many robots barely have any sensing systems of their environment, perhaps a few sensors to detect errors like motors overloading but little else. When the robotic on‐site construction idea was explored in the 1980s and 1990s (Bechthold 2010, p.119) the formula that succeeded in the manufacturing industry didn’t work here. Robots were never developed to adapt to changing environments or to deal with a messy type of data. In fact they were developed to do very specific tasks with very specific programs that may take years to develop and test and then run for the life time of the machine (Keating & Oxman 2013, p.1).
Figure 3 left: First commercial ABB robot IR6 1974 Right: KUKA first robotic arm, Famulus 1973
In 1980s, during the Japanese booming era, up to 200 systems of automated construction were developed (Bechthold 2010, p.3). During this era the Japanese economy was very strong and the construction rate was very high. The profession of a construction worker on the other hand was very alienating for its high risk and low payment. The scarcity of construction workers in opposition of high demand required searching for new possibilities. Robots seemed to be the solution, and numerous 15
Background
Robotic Bricklaying
automated systems were developed. These were huge custom machines that required large amount of money to build and operate. By the end of the 1990s, the economy of Japan was hit and the research in automated construction stopped. The Idea continued with a slower pace. In 1994 some papers were published during the 11th ISARC conference. One of the papers was discussing the autonomous machine to build brick walls (G. Pritschow, M. Dalacker, J.Kurz, M.Gaenssle 1994). Another system under the name of ROCCO was also proposed as a solution for robotic masonry work on‐site (Andres et al. 1994). The system was referred to as a “Fault Tolerant Assembly Tool”. As inferred from the title it tried to rely on sensors and feedback for fault correction .It was designed as a purpose specific robotic system. This time it was smaller and more approachable than the systems that were developed in japan. It also proposed a link between CAD and construction directly. The research in the platform continued with two more papers in 1995 and 1996, but it wasn’t put in practical use.
Figure 4 Robot brick laying system ((G. Pritschow, M. Dalacker, J.Kurz, M.Gaenssle 1994)
2.2.2 The current state of robotic research in architecture. In recent years. The architecture practice has been changing and branching with more research into material, construction and fabrication, forming new modes of collaboration between disciplines. Architects this time w developing their own design culture (Glynn & Sheil 2011, p.117). In this new turn architects are searching into means to represent their digitally created work in the real world. This turn towards fabrication made research in robotics surface again with huge momentum. This time using the same robots that has been used by the industry for years instead 16
Background
Robotic Bricklaying
of using huge custom robots (Braumann J. and S. Brell‐Cokcan. 2013, p.8). Robots like these are getting more affordable thus becoming more and more accessible for both architectural research and even practices. Pioneering offices like Snøhetta and Foster+Parteners are getting their own robotic arms in order to experiment with fabrication. For the major part of the research robots are usually used as either a sophisticated 3D printing or milling machine executing specific preconfigured paths in a controlled manner similar to the way it is used in the industry. However, this time architects are finding better much faster ways of planning these fabrication programs that is more approachable and simpler. This advanced the research of robotics in architecture significantly in the field of fabrication. It allowed a faster learning curve and ability to easily link to geometry directly from CAD software. The real world is very complex which make modelling it in a virtual environment is usually quite a challenge. Another side of research in robotic fabrication explores a more sophisticated operational programing. This requires more knowledge of the field robotics and links to other fields like computer vision, mechanical engineering and mathematics. . Research in this field rely on using feedback loops and more sophisticated sensing methods to read from the surrounding environment to allow a more dynamic approach that can adapt with the material in use. 2.2.3 Observations during the Robotic foaming Workshop, SG2013 During the participation in the “Robotic foaming workshop” (Colletti et al. 2013) in the 2013 smart geometry conference, the problem with direct blind execution from digital to physical was visible. The workshop was built on the idea of working with spray foam (a very unpredictable material), using the precisely controlled robots. This subject matched perfectly the conference theme “Constructing for Uncertainty” in theory. Even though very interesting forms merged form the workshop, it was far from perfect in the process front. During the workshop, foam was mixed manually with other ingredients like hardener and water. The process produced a very elastic fibrous mixture. It was then attached to plates on the three robotic arms. The arms then took the part of stretching the mixture. During the testing the foam mix 17
Background
Robotic Bricklaying
produced was very inconsistent, and even mixtures that were produced in a very similar and timed process still behaved differently.
Figure 5 Experiments during the Robotic foaming workshop SG2013
The material was delicate and required the constant change of speeds while executing the program. Due to that, running the preconfigured program directly always resulted in a complete tear of the material and the failure of the test. On the other hand, the tests run by pulling it manually by the participants were very successful. In order to achieve the same result using the machines, the robots had to be controlled almost in a total non‐autonomous manual manner using the control joystick, this defied the purpose of the controlled offline designed program. The work on this project put into perspective the importance of having an online feedback loops and vision systems that can deal with such materials while keeping the automation. The importance of using sensors and adaptable programing was investigated in other similar projects recently like The magnetic architecture (Dubor & Diaz 2012). The project was dealing with form finding using iron filling and magnets. The same result was concluded from the research; Digital representation only can’t achieve accurate results with such messy material. This deemed the linear process of offline program generation not reliable.
18
Background
Robotic Bricklaying
2.2.4 Robotic brick work ETH Zurich is considered one of the major pioneer institutes that work on the integration of robotics in architecture. One of their major areas of research is the construction related manufacturing, especially with bricks. Gramazio and Kohler succeeded in creating a practice that can combine research and architectural work with many projects designed and constructed in the past years. Many of the brick walls manufacture were usually produced in a lab environment and then shipped to the construction site like the Gantenbein vineyard façade project for example (Gramazio & Kohler 2008, p.95). Although these walls were very innovative visually, the product was never structural and resembled a cladding system more. This was a great potential worth exploring, building structural Brick walls that can also benefit from the innovative visual effect.
Figure 6 R.O.B system introduced (Gramazio & Kohler 2008, p.57)
Other construction related robotic research at ETH Zurich considers the use of robotic arms outside the laboratory setting. In 2007 R‐O‐B was introduced (Gramazio & Kohler 2008, p.57), it is a mobile manufacturing facility that included an ABB industrial robotic arm at its core (Figure 6). This allowed the exploration of the production of brick structures on‐site. The unit was moved around the world in locations in Europe and the USA and produced brick walls on‐site. Another recent project had more emphasis on feedback. DimRob is mobile construction system designed also in ETH Zurich. The system relied of a mobile robotic arm. The size of 19
Background
Robotic Bricklaying
the proposed system allowed the movement of the robots trough standard openings in site (Figure 7). It heavily relied on sensors to respond to the uniqueness of each construction site(Helm et al. 2012, p.1) along with more collaboration with humans.
Figure 7 DimRob system (Helm et al. 2012, p.1)
The research in the field of on‐site construction and dealing with changing environments and materials is still relatively young in the architecture field. The Pioneers in robotics and fabrication are researching more in this field of adaptive robot programing and the use of sensing capabilities. Such field have several applicable potentials. Bricklaying is considered a great candidate for the integration for such process.
20
Methodology
Robotic Bricklaying
3 METHODOLOGY In this research, the robotic arm was an important part along the software that runs it. The understanding of such tool was crucial. However, this was not a straight forward process the novelty of the robots used during the research and the lack of any technical support meant it was generally a process of trial and error. This also required building new platforms from scratch to explore the controlling possibilities of these robots before the research can proceed with the testing of its hypothesis.
3.1 The robotic arm Robots are fascinating electromechanical machines. It is defined as “a machine capable of carrying out a complex series of actions automatically, especially one programmable by a computer”(Oxford dictionaries n.d.). As the definition implies, robots are usually defined by two main aspects: their physical mechanical aspect and the software that runs them .In this essence the robotic revolution went hand in hand with the finding and explorations in the field of computer science. The most common multifunctional robots are robot Manipulators “Robot Manipulators are composed of links connected by joints to form a kinematic chain. Joints are typically rotary (revolute) or linear (prismatic).”(Spong et al. 2005, p.3). This study has focused on the most common type which is the articulated rotary robotic arms. Robotic arms are considered rigid body systems and usually are defined by its degrees of freedom. They are the possibilities of movement of the end effector tip. The most common number of degrees in industrial robotic arms is six degrees where the end is able to translate in three dimensions and also rotate around three axes (Figure 8); this allow all the possible motions around a point, which renders more degrees in most cases useless. The degree number is also directly related to the number of servos in the robot.
21
Methodology
Robotic Bricklaying
Figure 8 : To the left Six degrees of freedom around a point Figure 9: To the right a sample of the solutions of rotations around a point using a UR10 robot and Onix
The setting of the robotic arm’s servos affects directly how the robot is controlled. The most common type of robotic arms manufactured by major manufacturers is the spherical wrist robotic arms. In this type the three wrist axes of rotations intersect at one point. The non‐spherical wrist type which is relatively uncommon was introduced recently by the Danish company universal robots. The latter type has advantages over the spherical wrist type but needs a more complex inverse solution for its kinematic chain.
Figure 10 left : Spherical axis robotic arm Right: non sperical axis robotic arm
In 2012 The Bartlett School of architecture received two universal robots for the sake of expanding its fabrication facilities. The UR10s are six degree of freedom non‐spherical axis robots with 10 kg pay load. The problem the research faced along other initial users of the robots is the lack of any controlling software or technical 22
Methodology
Robotic Bricklaying
support for these robots as opposed to others manufactured by the other companies like ABB and KUKA. The robots initially were only controlled via its control pendent and could only be programed for simple pick and place programs. The uncommon joint configuration design meant the available tools for other robots cannot be reused to control the URs at the same time they lacked any sort of publicly available control software either by the manufacturing company itself or third party developers. In the search for tools to control the robot many suggestions were tested like using the Blender modelling software to control the robots via bones and animation (developed by Tom savilans). The initial blender model relied on the animation functions in blender and required to send the instructions to the robot one by one. The tool however was unreliable and a new tool was needed to control the robots
3.2 Onix Grasshopper plugin In the beginning of the research, it was very crucial to build a control software that will enable the researcher to work with the robots in a meaningful way. It was decided to build tool from scratch that will allow planning robot jobs easily with the ability to directly upload to the program. This also allows having access and the ability to fiddle with all its components according to the needed task. Grasshopper was chosen as the base platform to develop the software. Grasshopper is a .net plugin that runs on top of the 3D NURBS modelling software rhino. It combines ease of use through its VPL interface and also the ability to program in VB, C# or python languages directly inside it. The adoption of several of practices and universities to using grasshopper made it a very good candidate to build a controller software. Grasshopper also has several built‐in tools to create plans. The planes contain all the required data (three translations and the rotation) in order to calculate the kinematic chain of the robot. These tools become very useful to build paths that the robot can execute along points, curves or even surfaces. Other solutions for controlling robotic arms that were built on it for other manufactures succeed in the architecture related research environment. In a comparison between the use of KUKA|PRC (a grasshopper plugin for offline controlling of KUKA robots) 23
Methodology
Robotic Bricklaying
against the company supplied path planning software was found to increase productivity and reduce time to move from design to fabrication (Braumann & Brell‐ Cokcan 2011) .
Figure 11 Onix grasshopper plugin example file
The result definitions during the research lead to the creation of the Onix grasshopper plugin. The plugin allowed the control of the robot directly through streaming from the grasshopper interface. It included Inverse and forward Kinematic solver for the universal robots in addition of upload, communication and end– effector tools which will be detailed further in the upcoming part (Figure 11). The plugin was packaged and released as an open source plugin and is used as a controlling platform for other research projects. 3.2.1 Kinematics of the UR robotic arm. The robotic arms are considered rigid bodies. When using robotic arms the user usually is majorly concerned mainly by the position and orientation of the tip of the end effector (The end‐effector refer to the tool used at the end of the robot that may have extra transformations). In order to represent this tip point, six number are needed which represent transformation location and rotation of the point, this set of data will be referred to as planes during the research. The set of servo rotation angles that achieves this tip plane position is called configuration(Spong et al. 2005, p.4). The universal robots have six servos referred to by the manufacturer as (base, shoulder, elbow, wrist 1, wrist 2, wrist 3) (Figure 12) The calculation of kinematic 24
Methodology
Robotic Bricklaying
chain for any configuration require two major function to be computed: Forward and inverse kinematics.
Figure 12 Universal Robot UR10 servo axis diagram
3.2.2 Forward kinematics
Figure 13 Forward kinematics component in Onix
Forward kinematics deal with the relationship between the joints positions the position and orientation of the end‐effector(Spong et al. 2005, p.68) . The forward kinematic fundamentally solves the location of the tip according to the joint position. The related component in the Onix plugin relied on an input of the six rotation angles (the configuration) of the robots servos (Figure 13). The plugin then applies a set of transformation and rotations to the model of the robot until achieving the tip position. It was also used also to show the representation of the robot along with the solution of the tip plane. 25
Methodology
Robotic Bricklaying
3.2.3 Inverse kinematics For the Inverse kinematics solution, the function is presented with the tip plane as the input and calculates the set of the joint positions needed to achieve this location. Inverse kinematics is generally nonlinear meaning it results in multi solutions for a single input. In this part the difference between the universal robots and their counterpart are the most noticeable. The less common new servo setting of the universal robots meant fewer singularities (Singularities in robotics refer to a tip plane that don’t have one unique solution in the joint solution space. This either refers to having infinite solutions or no solution at all) that may occur in the middle of the configuration space. The UR robots are capable of eight different solutions for most of their reach space (Appendix III) as opposed to four in the spherical wrist type. In order to calculate those solutions, the inverse kinematic solver in Onix was built from scratch directly in grasshopper using a geometric approach rather than using a solely mathematical one. This allowed it to be easier to debug and edit in grasshopper. The input of the inverse kinematic solver in Onix consist is the plane of the tip point. Starting with this input, the kinematic chain is computed then the angles are calculated accordingly. The inverse kinematic chain is calculated by solving the location of three key points along the chain. Each of these points have multiple solutions for each tip plane input, thus three more toggles were added to the input of the inverse kinematic solver in order to switch between the eight different solutions.
Figure 14 Inverse kinematics component in Onix
26
Methodology
Robotic Bricklaying
3.2.4 Solution toggles Due to the novelty of the universal robots, there were no information about how to solve their inverse kinematic chain and the initial trials with using the same methods for spherical robots directly was unsuccessful. The new proposed solution however came from the observation of the robots themselves. During their operation it was noted that some configurations can have unlimited solutions in the joint space, where the fifth axis can rotate continuously altering the rest for the chain while maintain the tip poison. The solver was built initially to solve this configuration as it allowed the second point in the chain to be disregarded (point B as referred to latter on) as any solution for it is legitimate. After calculating the geometrical solutions for the first and third points, finding the solution for the second point for the rest of the configurations was much easier and the kinematic chain was finally constructed.
Figure 15 First IK solution toggle diagram
The solutions calculation starts with the inputs of the tip end plane. The first point along the chains (point D) (Figure 15) is determent as the offset of the tip plan in the direction of its normal; this determines the location of the fifth axis. Afterwards the different solutions are calculated. First solution toggle results from the calculation internal tangents between two circles. 1.
One with the point D as its centre, and radius equal to the distance between axes five and six. (These distances are constant and comesfrom the robot manufacturing dimensions). 27
Methodology
2.
Robotic Bricklaying
The second circle with the base origin coordinates as its centre, projected on the first circle corresponding plane, with radius is equal the distance between the origin and the second axis.
These two circles represent the unlimited solution that the fifth and second axis servo rotations. The intersection between the tangents and the resulting circles represents two unique solutions that achieve the desired tip position. Point A on the chain is determent according to the toggle choice.
Figure 16 Second IK solution toggle diagram
The Second solution toggle calculation depends on the solution of two intersecting planes. One representing the tip plane and the other is the plane normal to the perpendicular vector on the chosen tangent (from the first solution)(Figure 15). The two solution for this toggle result from intersection between the resulting straight line and the circle representing all the possible solutions of the forth servo rotation around the six. The point B Figure 16) represents the selected solution point. This solution toggle is the major difference between the URs and the spherical wrist robots.
28
Methodology
Robotic Bricklaying
Figure 17 Third IK solution toggle diagram
The third solution toggle is determined by the calculation of the intersection between two circles with centres A and B (Figure 17) (determined from the first two solutions). A similar approach for the calculation of this solution was published by Daniel piker for the calculation of the angles of the KUKA robots (Piker 2013).
The radius of circle with centre point A is the distance between the second and third axis.
The radius of the circle with centre point B is the distance between the third and fourth axis.
The solution results from intersection between the two circles. The chosen solution is point C.
`
29
Methodology
Robotic Bricklaying
3.2.5 Angles calculation
Figure 18 Angle calculation digram
The angles for the joint position are calculatedaccording to the kinematic chain determined from the solution toggles. 1. The first servo angle (base) has is the angle between the X direction vector of the origin plane and the vector represented by the direction between the origin and the projection of point A (the base rotation vector) on the origin plane. 2. The second servo angle (Shoulder) is the angle between the perpendicular vector to the base rotation vector and vector in the direction A‐C. 3. The third axis (elbow) angle is the angle between the vector C‐A and C‐ B. 4. The forth angle (wrist 1) is the angle between vector B‐C and the vector B‐D. 5. The Fifth angle (wrist 2) is the angle between the normal direction vector of the tip plane and the base rotation vector 6. The sixth angle (wrist 3) is the angle between vector B‐D and the x axis of the tip plane.
30
Methodology
Robotic Bricklaying
3.2.6 Execution path generation The universal robots servos are capable of moving 720 degrees, from positive 360 degrees to negative 360 degrees for all its joints. This resulted in having 2 legitimate joint solutions in any servo that can produce the same solution. For example if the axis angle result from the inverse kinematic algorithm is 50° this means that ‐310° is also a legitimate angle to active the same location. This increases the total solution possible for any tip plane to 512 and the solutions that can achieve one of the eight kinematic solutions to 64. This became a challenge when there is several inputs for the inverse kinematic algorithm (when dealing with a continuous path for example), the IK solver calculates the solution for the inputs individually only in the angle space from 0° to positive 360°. In the initial tests, this resulted in some major errors in the robot program when executed that may occur randomly when moving from one configuration to the next. This might have catastrophic results duo collision for the robot with the surround environment or the model it is working on. The solution for this was building a sorting algorithm that allows the grouping of the closest solutions when dealing with a continuous program. It was crucial for the program when dealing with paths to put the timeline and previous positions into consideration. To achieve that the IK algorithm calculate the First configuration for the first tip position (referred to as home position usually) which the user can override manually using angle toggles (Figure 14), and accordingly he selects from two sets of automatically generated angles list for the whole path for each servo. One list starts with the angle that is the closest to zero and one starts with the angle that is the furthest. For example The IK for a single servo generated numbers like (100, 10, 330 and 20) for the points along a hypothetical path. If this list is executed without sorting, the servo will rotate 320° form the second state to the third state and back 310° degrees. After the sorting of the solutions, the two generated lists are (100, 10, ‐30 and 20) or (‐260,‐350, ‐30 and ‐340). These two lists have both evade this problem resulting in a much smaller changes between states. The inverse kinematic solver and path calculations are all grouped into one component in the Onix plugin, allowing easy conversion from a set of planes to a set 31
Methodology
Robotic Bricklaying
of corresponding configurations in one step. An error system was also added to the component to stop program from execution if a problem with angle lists is still present in one of the lists or if the Inver kinematics fails to produce a viable solution for the configuration. 3.2.7 Robot program and program uploader
Figure 19 Move, I/O and program uploader components in Onix
After the calculation of the set of joint locations that represent the path. The “Move” component is responsible of converting these values to the URscript language. The URscript is a set of instruction that the universal robots can execute (universal robots n.d.). For each of the joint positions, the robot required one line of code starting with either “movej” or “movel” followed by the eight numbers , six of them refer to the joint positions of the servos then either the speed and velocity, or time and rounding. The difference between the two is related to the intermediate movements between states. The movej allow the movement to happen in the joint space while the “movel” required the movement to be calculated according to the tip position to maintain a linear movement of the tip. The set of moves are then combined in the uploading component. The upload component is responsible for the conversion of the lines of “Move” commands along with the I/O sates to a working program. The program is then uploaded via TCP/IP connection to the robot and is executed instantly.
32
Methodology
Robotic Bricklaying
3.3 The end-effectors End‐effectors are an important part of any robot system. They define the rule and use of the robot. In the beginning of the research, the end effectors were designed to test different stages of the process which will requires either using multi robots or changing the tools for each task manually. In the end a single system was designed to transfer from one task to the other seamlessly. The three major tasks needed to be covered by the end‐effector were: brick pick and place, laying mortar and sensing.
Figure 20 Components of the gripper end‐effector
The end effector was designed around an industrial pneumatic gripper. The chosen gripper had 3 cm stock and gripping force of 600 newton while keeping a weight of 1 kg. Adjustable holding fingers was then machined and attached to the gripper. The pneumatic air flow to the gripper was controlled by a 24 volt five way solenoid valve. The valve allowed direct control over it from the robots control box through the robot program itself. This was crucial to achieve synchronized robot movements and end effector actions
33
Methodology
Robotic Bricklaying
Figure 21 right: End‐effector attached to the robotic arm. Left: The trowel attached to the handle
Achieving the second task required using a traditional trowel. A special handle was created in the same width as the bricks in use (100 mm) to allow the gripper to pick the trowel and use it. The force of the pneumatic gripper in addition to using rubber eliminated the problem of the trowel slipping while in use. The sensing was covered by a depth camera a limit switch. Due to wiring, these two needed to be attached directly to the end effector. The end‐effector design was tested virtually to achieve the best configuration that would decrees the incidents of collision and also keep the camera and the limit switch out of the mortar. The camera was controlled by the server computer, while the limit switch was controlled directly by the robot control box, connected in this case to a digital input.
3.4 Robot execution paths Onix allowed an easy way to create, edit and test the execution paths of the robots. Tasks needed to fulfil the brick laying process were divided in relatively small job specific paths for each task. Each of these execution paths are constructed in a parametric manner, changing and updating according to its inputs. Some of these inputs were determined once in the first calibration phase, while other change each time they are executed.
34
Methodology
Robotic Bricklaying
3.4.1 Pick and place of bricks.
Figure 22 Pick and place sequence
A simple path was generated to pick one block from one location to the other. The program has three inputs which are the brick stack location, brick number in the stack and the placing location and rotation. The brick stack location is defined once while the brick stack number and placing location change according to the order of the program. It was noted that during the placing the bricks on top of the mortar layer, the forces required to place the brick in its location increase dramatically if there is excess amount of mortar under. This is due the fact that the robot tries to push lots of material out and is faced with the opposite force that and results in the emergency stop of the robot. This led to the failure of the placement of the brick and the need of re‐initialization of the robot. After some tests the movement was altered to have rotational and side movements while placing the brick. This allowed the material to move and level easily and decreased the perpendicular forces facing the movement of the brick before. 3.4.2 Accompanying tasks. A set of simple paths were designed to allow the shift between tools. First path is the one which picks and leaves the trowel form a known location. The second path was moving the camera to a perpendicular position to the mortar location. The 35
Methodology
Robotic Bricklaying
location of the mortar working board is also fixed and given as a constant. The third program is picking the mortar. The input for this program is the point determined by the depth camera, indicating how much the trowel need to move to get the right amount of mortar.
Figure 23 Gripper holding the trowel for mortar operation
3.4.3 Laying mortar Laying mortar is the most interesting part of the process. After the gripper pick the trowel, the end‐effector is adjusted in grasshopper and the working plane is shifted from the middle of the gripper to the middle of the trowel surface. The degree of success of the laying moment was determent by two factors; First, the ability to move all the mortar from the trowel to the brick surface. Second is the creation of a consistent layer of mortar on top of the brick. A professional bricklayer usually uses one continues movement to lay the mortar on the brick. In order to mimic that with the robots, the tool needed to move very quickly to achieve a good result in one movement. After observing bricklayers do their work, it was noted that there are numerous factors which the movements of the trowel is adjusted accordingly. During the first tests the teaching option of the universal robots was used. In this mode the robots can be moved very easily by hand while streaming the joint positions through the TCP/IP connection. In grasshopper the movement are then recorded in real time creating the path. This made it possible to try to mimic the basic movement that the bricklayer does when using his own tool. 36
Methodology
Robotic Bricklaying
Figure 24 laying mortar execution path sequence
Figure 25 robot executing mortar laying
In order to achieve a more universally successful results, the laying process was broken into smaller movements that were tested individually with different mortar consistencies. First was the movement to place the mortar on the surface of the brick. The location of the placing of the mortar was very important to achieve a consistent layer latter on. The next movements to be tested was the set of movements that ensure that the all material left the trowel. The trowel paused and moved up and down a number of times to ensure all the material left it and then the trowel moves linearly to achieve a consistent layer of the mortar on the surface and remove any excess material. The mortar program only requires one input which is the location of the brick surface it is supposed to lay mortar on top. 37
Methodology
Robotic Bricklaying
Figure 26 robot removing excess material using the trowel
After applying the mortar and laying the next set of Bricks. The robot picks the trowel again and remove the excess material resulting from pushing the mortar out by the bricks. The process is one continouse movement from one side of the brick row to the other side. The input of this path is the start and end location of the brick row and the row hight.
3.5 Brick laying server
Figure 27 the bricklaying server in operation.
In the beginning ONIX was used on its own to control the robot. The major challenges were the limitation of grasshopper as real‐time controller. Also the real time visualization of the robot was integrated in grasshopper and allowed some features like path recording, problems with speed and inability to work with computer vision came between using grasshopper alone as the brick server. The 38
Methodology
Robotic Bricklaying
major problem with grasshopper by far was the way it is built in the first place. Grasshopper is very linear in the way it executes its programs. Even with direct programing it still faced lots of problems dealing with things like loops and retaining variable data. This required building another program that can be the server controlling the bricklying process. The program was built using processing programing language version 2.0 and was used to control the second major aspect of the research which is keeping track of the major plan and fixing general errors. It was also in control of the computer vision part of the process.
Figure 28 Operation sequence of the bricklaying program
3.5.1 Program operation sequence The processing server works as the controller of the operation. It collects all the data and control the execution of the robot paths. It allowed the shift between different programs and tools. After the user selects the operations he needs to be executed, the server initiates a logical sequence of operations to be processed. Execution commands are then sent one by one to be executed in the Onix plugin. The server always keeps track of the execution state of the program using feedback from the robot, and sends the next program as soon as the job is completed. It shows visual feedback in the interface about the progress of the work, and also allows the user to overwrite the program in the case of errors.
39
Methodology
Robotic Bricklaying
In order to achieve that, the program is built on a set of If statements each one representing a task. The program won’t go in the execution of one until it ensures the one before is executed. Each statement also keeps track of the locations of the tasks allowing the server to go from one location to the next. The server also automatically compensate for errors.
Figure 29 Detailed operation sequence of the bricklaying program
3.5.2 Interface The simple user interface of the program is built using the ContolP5 (Schlegel 2012) plugin for processing. The user interface is used to input the basic information like the width and height of the brick, the number of brick rows and columns of bricks, the spacing between the rows and columns of the bricks and the brick stack amount for both full size and half bricks. The interface also is used to choose the programs tasks needed to be executed by the robot, like brick pick and place, laying mortar, pausing the program and emergency stop. The interface helps monitor progress and errors and accept edition during execution.
Figure 30 Bricklaying server interface
40
Methodology
Robotic Bricklaying
3.5.3 Computer vision and sensing Mortar in the right consistency is very close to liquid but still solid enough to keep its shape. This makes mortar a very unpredictable material specially when dealing with using low tech tools. When adding or subtracting from the material, it will not level and would keep its shape and change slowly with time. The challenge was getting the right amount of mortar on the trowel each time. This required having a way to determine the arbitrary surface of the mortar each time before digging in with the trowel.
Figure 31 Intel procedural computing camera
Depth cameras came as a solution for this problem. The focus was to have all the tools needed on the robot itself without having a general vision system that overlooks the whole process. This made the Kinect camera unsuitable for the task as it is bulky in comparison to the size of the universal robots. Nevertheless, the new Intel Perceptual computing camera prototype many advantage. It is much smaller which made it possible to attach easily to the rest of the end‐effector and is unlike the Kinect camera it was able to work on a range from 0 to 1.5 meters. This made it possible for the robot to move and peek at the objects at close range getting a higher density point cloud of the scanned object.
41
Methodology
Robotic Bricklaying
Figure 32 Intel camera point cloud used for surface approximation
The point cloud you get from the camera suffers from the same noise problem as the Kinect camera. But because it can work at a very close range meant that the noise reduction would have less effect on the accuracy of the scanned surface. For the noise reduction, the scanning algorithm would store the point cloud data five times in a frame of a second and then the average of each of its point location is used to resemble the surface. The surface if the mortar is then determent and the volume is calculated. Each point of the point cloud is considered a rectangular box with fixed width and depth and variable height. The height data are calibrated according to 4 points that represent the base working surface. These points are determent on the first run of the program. The algorithm then moves on the surface of the mortar from right to left row by row determining how far the towel should go until it have the amount of mortar needed for the application.
42
Methodology
Robotic Bricklaying
Figure 33 Limit switch testing brick hieght
In order to check the height of the placement of the bricks for errors, the first plan was to use the depth camera to check the surface of the brick after laying it on top of the mortar surface. Due to the noisy data of the camera this was deemed unreliable. Instead a limit switch was added to the end effector. The limit switch was connected to the digital input of the robot control box. During operation the robot would move to a point which would make the limit switch tip 5mm away from the supposed surface of the brick. Then it will move at very slow speed until the limit switch is pressed and the location of the new point is recorded at the server program. 3.5.4 TCP/IP Feedback. The universal robots are transmitting their state continually through their TCP/IP connection. In initial tests it was difficult to decrypt the message that was sent back form the robot due to the lack of support from the manufactures. Instead the server relied on the python‐urx plugin (Roulet n.d.). The plugin was used to read the message back from the robot and decrypt it. The message was then sent to both the processing server and the onix plugin via the User Datagram Protocol (UDP) connection. For the processing server the message included the state of the program running. This allowed the server to send the next command to the Onix plugin as soon as the previous task was executed. The location of the tip was also sent to the server in order to determine the height of the point acquired after the limit switch is 43
Methodology
Robotic Bricklaying
pressed. This allowed to check the deviation of the bricks surface form the original design. For the Onix plugin however the message included used the joint locations. This allowed the plugin to show the robot virtual representation in real tam while excursing the program while also record movements if needed. 3.5.5 Bricklaying server to Onix communication The communication between the two programs was achieved using UDP connection. Using the protocol the processing server sends an execution command to grasshopper starting with a specific identifier. This ID allowed the program to be distributed to its corresponding robot parametric path in onyx. The message also included the information needed of the parametric grasshopper definition. For example the message sent for a pick and place job would be “B%10,50,0%‐ 300,0%3,True” In grasshopper the message will be broken intro
Program ID : B (Brick pick and place)
Location of the brick to be placed is ( 10 mm , 50 mm , 0 mm ) from origin
Brick Stack location ( ‐300mm , 0 mm ) from origin
Number of the brick in stack is 3
The numbers are then dispatched to it corresponding parametric input and the program is altered and sent to the robot to execute.
Figure 34 right: Sequence of communication between the bricklaying server and Onix for a single operation left: program dispatcher in Grasshopper
3.6 The building tests The First bricklaying experiment was conducted to test the mortar laying movements. The aim was to build two rows of bricks with the least excess material. 44
Methodology
Robotic Bricklaying
It was repeated a number of times with alternations to the program until the desired result was achieved. The flow of the program was also tested. The server program shifted from the tasks of brick laying with the gripper directly to gripping the trowel and changing the program to deal with mortar and back to laying bricks and removing the excess amount of mortar on the side after.
Figure 35 first test to check mortar laying movements and server operation
The second test was conducted to build a higher wall. This allowed the testing of the sensor data. The location of the brick wall needed to be shifted from the table surface to the level of the ground to allow the robot to build higher and safer. One of the first problems was the adaptation of the movements that is built in grasshopper to the new position. The movements were built initially to work in the space in front of the robot and relative to the fixed world coordinates. This created a problem that was generally visible when dealing with trowel. The programs were then rebuilt for this task to work according to the location relative to the robot. This allowed the program to be executed in any location around the robot easily without the need to alter the program. The test also was done using bricks and half bricks. The bricks were cut manually and stacked in a secondary location. The server shifted between the locations of the half bricks and the full ones according to the need. The rows were built one by one and the height was tested for each row before laying the new mortar layer.
45
Methodology
Robotic Bricklaying
Figure 36 Second test to check error handling and feedback
The Third test was conducted to test the ability to use the program to build different design formations. This time the rotation angles for each brick changed in order to create the desired pattern both for the brick pick and place program and mortar laying. Another challenge accrued due to the use of the gripper. The new formation of the bricks meant that the gripper will collide with the previous brick when exciting pick and place. This required altering the picking location of the bricks according to the rotation.
Figure 37 third test to check program adaptation to different rotations
46
Discussion and results
Robotic Bricklaying
4 DISCUSSION AND RESULTS 4.1 Testing Results The experimentation for the program started with testing of the success of task specific operations. Tasks like pick and place and camera movement were straight forward and high success rate was achieved form initial tests.in the during the test of laying mortar on the other hand, trying to replicate the bricklayer movements directly were unsatisfying and had low success rate. This was due to the inconsistency of the mortar material itself. When a bricklayer usually lays the mortar with the trowel it is easy for him to determine the consistency of the mortar and adjusts the movement accordingly, most of the time subconsciously. The robot on the other hand at this point has simpler inputs to its program and is unable to determine the consistency of the material it is holding. Several of other challenges occurred in the creation of the mortar laying path. When the trowel is left for some time while the robot is laying bricks for example the mortar layer on the trowel starts to harden as it loses moisture. This makes the trowel lose its smooth surface which makes it harder for the mortar to leave the trowel after picking it up. The successful set of movements to lay mortar however was different from the ones used by a brick layer. This time the process was much longer and included several movements that might not be needed at all times, but is needed to achieve a global success rate with different scenarios. After several tests the brick laying movement had a high success rate to achieve a consist layer of mortar between bricks. The Onix plugin managed to be a successful tool to produce and control these paths, test them and stream them to the robot with the robots. With regards to computer vision, the depth camera was successful to determine the arbitrary surface of the mortar. The program managed to determine depth needed for the trowel to go into the mortar to get the desired amount. During the tests the process required a large amount of mortar to be placed on the working board. When dealing with a small amount, the mortar usually moved along with the movement of the trowel, resulting in an unreliable outcome. 47
Discussion and results
Robotic Bricklaying
The next tests were conducted to test the ability of the bricklaying server to control the process autonomously. The server relied on the data coming back from the robots like the statues of the execution of the programme and the location of the tip to alter and proceed with its sequence of operations. The tests showed that building an adaptable program for the robots to perform a multi‐task craft as bricklaying is achievable. The server program succeeded in the shift between different tasks while keeping a record of execution progress. The test also exposed how the error factor due to the complexity of the real world can accumulate. During the test of the height of each of the layers of bricks was shifted from the original virtual drawing. This was mostly due to the mortar settling under pressure from the layers on top. The brick itself was a part of this issue, even though the brick used were mechanically machined engineering bricks. There were small differences in the dimension of the brick in comparison to its advertised size. This resulted in up to three mm difference by the end the fourth row of bricks. The server was able to keep track of the error and try to compensate it in the mortar horizontal spacing. The last test revealed the possibility to use the same process to produce different brick designs. The parametric inputs of the execution paths allowed easy manipulation of the bricks rotation angles and locations for each row while keeping the automation of the program. The pick and place and the mortar laying movements both adapted to the changes in design.
4.2 Critical assessment For years the digital field was the major breakthrough arena in research and practice, the move from digital drawing to the physical creation was left for other disciplines without the control of the designer. However, there is more focus recently on physical realisation of ideas. During the robotic brick laying research the emphasis was on building a robotic program that can adapt and change. This nevertheless was not a case of direct execution digital to physical. The reliance on an adapting program meant that a dialogue can be maintained to some extent between the real environment and the virtual one. 48
Discussion and results
Robotic Bricklaying
To achieve the goals of this study, three main aspects needed to be addressed: the tool, the software that runs it and the task. In this case it was the robotic arm, the controlling software and the craft of bricklaying. Because of the novelty of the tool, a part of the research has been conducted to understand how it works, how to communicate to it and how to control it. This nevertheless resulted in a new platform that can be used by other users to easily control the robots in future research. The two software platforms used in the process are still in their early stages and are still in a constant development. The Onix grasshopper plugin can get more and more research on board to work with the robots with its simple interface and fast learning curve. It contained a set of easy tools that can be used directly to run the robots, or can be altered for more advanced users. Although this platform is capable to work on its own in the field of fabrication for example, it is still not able to work with feedback in a way that is more significant than the visualization of real time robot movement. This made the data flow in one direction from digital to physical and back but without a way to readapt the program automatically. These drawbacks are related to the grasshopper platform itself and how the programs is executed inside it and also other problems with speed for example as grasshopper wasn’t built for real‐time execution in the first place. The brick laying server program is the other software developed for the research .on the contrary was able to work with the feedback with great success. The use of programing for this tool allowed the program to easily adapt, keeping record of errors and building up data during the execution. In the same time signalling Onix to execute its paths with ease. Working with coding allowed the designing of a task specific interface that can keep the execution and data gathered easily visible for the user. This puts focus on the importance of programing as a language for controlling design. The server software is very far from being used with unspecialized architects in a way that is more significant that dealing with the simple interface. Combining the two platforms in a one working workflow benefited from both, allowing an easy familiar way to build robotic paths while maintaining the more specialized adaptable program.
49
Discussion and results
Robotic Bricklaying
Bricklaying as task was a major challenge, Even though several researches were inducted dealing with bricks. The more interesting challenges emerged from using mortar rather than the simple task of precise pick and place. Pick and place is a task taken for granted in robotics for years. On the other side, working with mortar put emphasis on the problem of dealing with a relatively unpredictable material. Adding this to the equation of pick and place rendered the precision of it on its own less efficient to predict the precision of the final result. Although the test was conducted in a small scale, it showed how the errors can build but quickly which may lead to a very unstable structure in the end if it wasn’t addressed during the execution. Mortar also exposed the importance of intuition in such craft as brick laying. While a brick layer might do one movement to lay mortar with high success. The initial tests that were conducted to directly copy these movements to the robots weren’t very satisfying. Achieving a good rate of success with the same tool required tests and numerous adjustments. Quite a few of the moves in the executed path might not be required all the time but is there to produce a more general success rate. The performance of the program was measured by the ability of the robot to achieve a mortar layer that cover all the surface without having a large amount of excess material that can come in between laying the next brick. The success rate in doing that was high in the last test but still was far from producing a very immaculate end result as produced by a skilled worker. Another drawback was the inability of the program to fix the errors directly, for example pushing a brick that is higher than the rest of the row to level it up. This was due to the limitation of the payload of the universal robots. The robots usually went into emergency stop very easily when bushing against mortar. This kept the error correction only on a larger scale dealing with the general execution of the program rather than on the scale of a single brick.
50
Conclusion
Robotic Bricklaying
5 CONCLUSION The research intended to shed the light on the potential of adaptive programing as a mean to control robotics in the field of architecture. Using such method robots can become more responsive to the task they are programed to execute. This potentially can lead to better results working with messy materials and heterogeneous environments. It can also enhance the design process with more integration of material behaviour and help overcome the difficulties facing the introduction of robotics in construction. The choice of bricklaying as the field of research was successful. It had all the potentials required to test the hypotheses. It is an important part of construction industry, with a large space for innovation, at the same time it is a craft that heavily dependent on human labour. Working on such craft allowed the testing of the ability of the robots to work with multi material using different tools and the ability to shift between them seamlessly. Mortar was the most interesting material during the process. The movement executed by the bricklayer to produce a consistent layer of mortar is highly based on skill, technique and tuition. Achieving high success rates with robots needed several tests. The resulting process is still not as immaculate as the work of a skilled bricklayer. However, the process achieved high success rate in the end. On the software side of the process, using such novel tool as the universal robot resulted in the creation of the Onix plugin, a new plugin specially designed to control universal robots directly from grasshopper. The potential of the plugin goes beyond this research and hopefully will continue as potential controlling software for other researches as well. The plugin allowed easy creation and edit of execution paths for the robots. This was very useful during the testing and editing of such paths for the tasks needed to fulfil the process, like brick pick and place and mortar laying. The process needed another piece of software that is capable to achieve the adaptive features of the process. The Brick laying server worked as the controller for the whole process, keeping track of the progress of the program and also dealing with the
51
Conclusion
Robotic Bricklaying
feedback from the robot, form the sensors and vision and also controlling the onix plugin itself. The small scale tests of the program succeeded in achieving its goals, however the process is still very far from being used in a construction environment. Humans still have vastly more sophisticated senses and capabilities and are still also the economical choice. Nevertheless, it is a step closer to achieving such integration. The field nevertheless still have great potential of further exploration for example in the design side of the process, in the mobility of the robots or the integration of machine learning. The programing aspect of the research still has great space for further exploration. The server program was only dealing with a part of the data available for it. The end‐effector and the robot itself offer large amount of data that is still to be utilized. Like live video feed from the Intel camera and torque data from the robot. The increased amount of information available can result in a more sophisticated program. And with more data, Finding patterns and making sense of this data can sometimes be more than a human can handle. Research in machine learning can be a logical next step for robotic adaptive programing. Producing a program that is not only adaptable but can grow more complex on its own learning from its mistakes and taking program beyond the designer’s scope.
52
Appendix
Robotic Bricklaying
6 APPENDIX 6.1 Appendix I: bricklaying server program operation sequence persuade code
Figure 38 operation sequence
User selects desired operations and bricks. Pick and place = True Mortar = True Check and adjust Height = True Read robot execution statues While (X < Number of operations) { If (communication established && Pick and place && Robot is Idle) { Send message “B + Brick location + stack number + True” to Onix X+=1 Brick +=1 If (Brick == column number) { Pick and place = False Brick = 0 } } If (communication established && Mortar && Row > 1 && ! Pick and place && Robot is Idle) { Check Height sequence While (Brick < column) { Send “H+ Brick location” To Onix Brick + 1 Read Tip location Calculate difference Shift locations of bricks If (Brick == column number) { Brick = 0 Height checked = True Mortar = Ture } } } If (communication established && Mortar && ! Pick and place && Robot is Idle)
53
Appendix
Robotic Bricklaying
{ Pick trowel sequence Send message “T + True” to Onix Trowel picked = true Mortar = false } If (communication established && Trowel picked && Row > 1 && ! Pick and place && Robot is Idle) { Remove excess mortar sequence Send “r+ row height” X+=1 Trowel picked = false Surface checked = true Excess removed = True } While ( Brick < column) { If (communication established && excess removed || Row=1 && && ! Pick and place && Robot is Idle) { Run Check motor surface sequence Send “C + True” to Onix Run depth calculation algorithm Trowel picked = false Surface checked = true } If (communication established && surface checked && ! Pick and place && execution not in progress) { Pick mortar from result location Send “P+ result location from depth” to Onix Surface checked=false Mortar picked = true } If (communication established && mortar picked && ! Pick and place && Robot is Idle) { Lay mortar from result location Send “m+ Brick location” Brick +=1 X+=1 Mortar picked = false If (Brick == column number) { Brick = 0 Mortar laid = True } } If (communication established && mortar picked && ! Pick and place && Robot is Idle) {
54
Appendix
Robotic Bricklaying
Lay mortar from result location Send “M+ Brick location” to Onix Brick +=1 X+=1 Mortar picked = false If (Brick == column number) { Brick = 0 Mortar laid = True } } } If (communication established && Mortar laid = && ! Pick and place && Robot is Idle) { Leave Trowel sequence Send “L” to Onix Mortar =false Pick and place = True Trowel left = false } } If X = Number of operations { STOP PROGRAME } }
55
Appendix
6.2
Robotic Bricklaying
Appendix II: Inverse Kinematic and uploading components
Figure 39 IK solver (Left Square) and uploading component (Right Square) location in the Onix plugin example file
Figure 40 IK solver component parts cluster
Figure 41 Point A calculation
Figure 42 Point B calculation
56
Appendix
Robotic Bricklaying
Figure 43 Point C calculation
Figure 44 Angle sorting algorithm cluster
Figure 45 Robot uploading component cluster
57
Appendix
Robotic Bricklaying
6.3 Appendix III : universal robots possible solutions via Onix IK solver
Figure 46 the eight possible solutions for a single tip plane using Onix IK solver
58
References
Robotic Bricklaying
7 REFERENCES Andres, J. et al., 1994. First Results of the Development of the Masonry Robot System ROCCO: a Fault Tolerant Assembly Tool. Automation and Robotics in Construction XI, 11, pp.87–93. Balaguer, C. & Abderrahim, M., 2008. Trends in Robotics and Automation in Construction. , pp.1–22. Bechthold, M., 2010. The Return of the Future: A Second Go at Robotic Construction. Architectural Design, 80(4), pp.116–121. Braumann J. and S. Brell‐Cokcan., 2013. Rob|Arch 2012: Robotic Fabrication in Architecture, Art and Design, Vienna: Springer Vienna Architecture. Braumann, J. & Brell‐Cokcan, S., 2011. Parametric Robot Control: Integrated CAD/CAM for Architectural Design. In ACADIA. Campbell, J.W.P. & Pryce, W., 2003. Brick: A World History, London, UK: Thames & Hudson. Colletti, M. et al., 2013. Robotic foaming cluster SG2013. Available at: http://smartgeometry.org/index.php?option=com_content&view=article&id=219:rob otic‐foaming&catid=48:sg2012‐london [Accessed April 20, 2013]. Dubor, A. & Diaz, G.‐B., 2012. Magnetic Architecure. In Rob\Arch. p. 7. G. Pritschow, M. Dalacker, J.Kurz, M.Gaenssle, J.H., 1994. Application specific realisation of a mobile robot for on‐site construction of masonry. ISARC Proceedings, 11, pp.95 –102. Glynn, R. & Sheil, B., 2011. Fabricate: Making Digital Architecture, Riverside Architectural Press. Gramazio, F. & Kohler, M., 2008. Digital Materiality in Architecture: Gramazio & Kohler, Boden: Lars Muller Publishers. Helm, V. et al., 2012. Mobile robotic fabrication on construction sites: DimRob. In 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems. IEEE, pp. 4335– 4341. Hill, J., 2005. Building the Drawing. Architectural Design, 75(4), pp.13–21. international fedration of robotics, 2012. History of Industrial Robots, From the first installation until today, Frankfurt. Available at: http://www.ifr.org/uploads/media/History_of_Industrial_Robots_online_brochure_b y_IFR_2012.pdf. Keating, S. & Oxman, N., 2013. Compound fabrication: A multi‐functional robotic platform for digital design and fabrication. Robotics and Computer‐Integrated Manufacturing, 29(6), pp.439–448.
59
References
Robotic Bricklaying
Kolarevic, B., 2005. Architecture in the Digital Age: Design and Manufacturing, Taylor & Francis. Oxford dictionaries, robot: definition of robot in Oxford dictionary (British & World English). Available at: http://oxforddictionaries.com/definition/english/robot [Accessed August 28, 2013]. Piker, D., 2013. Lobster grasshopper group. Available http://www.grasshopper3d.com/group/lobster [Accessed April 1, 2013].
at:
Roulet, O., python‐urx. Available at: https://github.com/oroulet/python‐urx [Accessed August 1, 2013]. Schlegel, A., 2012. ControlP5 plugin. Available http://www.sojamo.de/libraries/controlP5/ [Accessed April 1, 2013].
at:
Spong, M.W., Hutchinson, S. & Vidyasagar, M., 2005. Robot Modeling and Control, John Wiley & Sons. universal robots, The URScript Programming Language. , p.30. Available at: http://www.wmv‐robotics.de/home_htm_files/scriptmanual_en_1.5.pdf [Accessed June 1, 2013].
60