PRE2016 3 Groep15
Group Members
Name | Student ID |
Martijn de Boer | 0907480 |
Josja Geijsberts | 0896965 |
Gijs Herings | 0953862 |
Martin van Leeuwen | 0901497 |
Max van Meer | 0951669 |
Bart Tulkens | 0956335 |
Introduction
Many industries are becoming more and more automated, but when looking at the construction sector, this automation seems to be lacking. Some companies are working on automating this industry by for example 3D printing layers of concrete. This however, is not the best solution nor the only one. Pouring concrete to print houses brings along various problems, such as lacking strength and stability and time consumption. If one were to use pre-made components to build a house, electronic wiring and piping can easily be integrated into the construction.
In this wiki page, a project is discussed in which a possible solution for automated construction is analysed. This possible solution concerns an automated construction robot that places prefabricated building blocks, and its advantages, disadvantages and how this can be achieved will be investigated. Initially, the focus of this project was on developing and analyzing a simplified prototype that used Duplo blocks to autonomously build small houses. However, after thorough planning and analysis, this plan was discontinued. This was mainly due to having too little time to focus on the full scale problems since many of the small scale problems take a lot of time and effort. A new plan was developed, with a new goal. The new goal is to develop a functioning algorithm that converts a 3D model of a house into a path that the robot should follow to build that house. Alongside the algorithm, research will be done into the problems and possibilities of the robot in practice. To conduct proper research, various experts will be contacted and interviewed.
Initial Plan: Prototype
Initially, the goal was to develop a functioning, small-scale prototype. This prototype was to pick up and stack Duplo blocks basen on a given building plan as input. A 3D-model of this concept can be found in Figure 2. However, after thorough investigation, it was found that the achievability of this prototype was too low. A lot of small scale problems would have to be solved whilst there would not be enough time to discover and analyse the full-scale problems. It was therefore decided to discontinue the development and research into the prototype.
Renewed Plan: Algorithm and Study
The new goal is to develop a proof of concept for the software of an automated construction robot, and a mockup for the interface. The script will indicate if the autonomous part is feasible and the mockup will make clear how this robot would be used by architects. The script should able to, on user input, provide the path that the printerhead should follow in order to build the desired building. The input will be an .stl model, exported by any CAD program used for designing buildings. In this manner, the designer is not flooded with extra tasks. The interface should thereby also be self-explanatory and easy to use.
In the study that will be conducted, the market for this robot and the relevant USE aspects are thoroughly considered. The information acquired in this study will be used to influence the functionality of the robot.
The side view of the final design can be seen in Figure 1, while the front-view can be seen in Figure 3. In Figure 1, you can see the possible movements of the construction robot and the most special parts. The design is based on a concept of Professor Behrokh Khoshnevis. The main difference between his concept is the fact that his design uses concrete to print, while the provided solution functions with bricks. In Figure 3, a brick providing solution is implemented in the design. The orange blocks represent bricks, while the gray part represents a conveyor belt. Left from the robot arm the conveyor belt is filled with bricks, while at the right side, it has already used most of the bricks. The conveyor belt loops back to the beginning where it gets refilled. The whole system can be refilled with bricks by inserting brick stacks in the left side. For now, the robot arm is displayed by a rectangle. This is not representative for the concept. The robot arm should look like the one in this video, and thus like a smaller version of the robot arm in Figure 4.
Basics of House Building
For every house, four things always need to be present; the foundation, walls, windows and a roof. Since this project mainly focussus on societal aspects, as will be explained later on, only the most simple and effective building methods are given. Another aspect that has to be taken into account when building a house or district is the availability of water, electricity, waste collection and a proper sewerage. These basic essentials will also discussed below.
Foundation
The base of a house is called a foundation. Everything will be built on top of the foundation. The foundation should be stable in all conditions and create an even surface to build on. There are different types of foundations, which are used under different conditions. For example, in an area with a high change on earthquakes, a different type of foundation is used. Below, the most common foundations are elaborated. [1]
- Masonry foundation: A foundation made of concrete or bricks that creates a perimeter wall. Inside of these walls, piers, columns and posts can be placed. [1]
- Concrete foundation: This foundation is made by creating a mold for the concrete and after the drying process of the concrete, a solid foundation is created on which can be build. The concrete is reinforced by iron bars most of the time. This is one of the most common used foundations in the U.S.A. and Europe, certainly when a basement is created. [1]
- Caisson foundation: In certain areas, the soil contains particles like clay, which expands when exposed to moisture. Normal foundations will break under the pressure created by the expansion. Caisson foundations are the solution for this problem. The foundation consist of multiple piles or posts that are embedded in the underlying bedrock, to transfer the weight. On top of this, a normal concrete foundation is added. Figure 5 visualizes this concept. [1]
- Wood foundation: A less durable, but cheaper and faster to build foundation. [1]
- Pile foundation: This type caisson of foundation is mostly used when there is a higher change on floods. Piles are driven into the ground to support the load on deeper layers of the soil. The house will rest on top of this piles, increasing the distance from the ground to the home itself. [1]
- Earthquake foundation: As said before, normal foundations will not offer enough stability in areas with earthquakes. There are a lot of innovative concepts that can improve the stability of a house, for example the levitating house developed by Air Danshin. The houses are equipped with an airbag which, when sensors measure a possible earthquake, will expand and lift the house. This way the vibrations will almost not continue in the house [2].Of course, this is not the only and best solution. A more common and easier to applicable option is to isolate the structure of the house from the foundation with bare isolation bearings. [3]
When building a foundation, one should also think of the implementation of the Basic Essentials, which can be read below.
Walls
Basically, there are three main construction methods for walls [4]:
- Masonry wall: the most used type of wall in The Netherlands. It consists of bricks or cement blocks held together with cement mortar. There is a lot of variables available for this type of wall. For example, there are five common types of brick used in this method, namely: Common burnt clay bricks, sand lime bricks, engineering bricks, concrete bricks and fly ash clay bricks. [5] These brick types can also vary in dimensions and stacking methods, as you can see in Figure 6.
- Concrete wall: This is the same as the concrete foundation, only now applied to walls. It is often used in large buildings. Also the walls can be made in a factory instead of on site.
- Light partition wall: This wall consists out of a light structure which will be covered by boards or plates. This method is used a lot in the U.S.A. and Europe. The main advantages in comparison to the other walls is the flexibility in layouts and the building speed. This wall type can also be build at a factory instead of on-site. The biggest disadvantage is that the wall is not meant to bear a high load.
Windows and Doors
In this project, the assumption will be made that the windows and doors itself have been produced at a factory. This means that the process of placing windows and doors is relatively easily. The builder leaves an open space for the window or door to be placed. If done correctly, the window or door frame should fit exactly into this space. A window is not made to support the same load as a wall and thus reinforcements at the sides or top is necessary. Two common methods are presented below.
- Post and lintel: strong horizontal elements are held up by strong vertical elements. This can be fabricated at a factory. This is also the method used for windows and doors in light partition walls [6].
- Arch: A pure compression form which turns the resolving forces into compressive stresses and removing tensile stresses [7]. There are many types of arches, the Jack Arch will be explained as example. The Jack Arch, which can be seen in Figure 7, is a method used in masonry construction. It uses the same principle as the post and lintel structure, only it is divided in smaller parts rather than one large part. [8].
Roof
There are various types of roofs, as shown in Figure 8. Larger beams are used to support the weight of the roof itself. In most cases, smaller planks are placed on top of the beams and for example, roof tiles are placed on top of these planks. It is also possible that the whole roof is fabricated off-site and transported to the construction site.
Essentials
Water, power and sewerage are the three main essentials to make a house livable. In the western world however, internet and sometimes natural gas are also important requirements. During construction the implementation of those systems should be taken into account. For example, room should be made into the fundamentals to make sure there is place for an underground sewerage. Or another example is creating holes in the wall for power sockets and the wires towards them.
Interviews with experts
To get a different point of view on building houses with a robot, it is a good idea to interview Theo Salet [11], head of the 3D concrete printing project at the structural design department. After some time and effort, an interview finally came to fruition.
At the start of the interview, the design was shown and Mr. Salet was asked if he had any major remarks or changes. The first thing he noted was why the project is based on the idea of on site construction. His goal and philosophy is to be able to print separate parts of a house one day. No more putting tubes in later, no more work in the rain. His idea to be able to design the walls with features pre-installed. Then when you want to build a house, you choose the parts you want for your dream house, print all the separate parts in a factory, ship it to location and put them together in a matter of days. The different designed part have a size of a wall or sorts. His second remark was why the bigger robot makes something in a smaller space. Why not design multiple smaller robots, like a swarm, each with their own task, to build the house. This way there is no limit to how big you want to build and it seems more cost effective.
Then it was asked how he would solve setting windows. The answer was that the part with the window would just need a hole in the size and shape of the window. After it is printed, the window is put in and glued to the concrete. However, he did not know how electric lines should be integrated. He hoped that the upcoming technology of charging by induction would be the answer to that.
The next question was how far is the technology is now. However, 3D concrete printing is still very much in the starting phase of development. The main focus of Mr. Salet lab is to print consistently. At the moment people can print two of the same shapes, but sometimes the figure falls apart and sometimes it hardens like its supposed to. The supposed solution is to monitor al kinds of parameters like air humidity, amount of added water, temperature et cetera. and create a control loop that compares the parameters constantly to an ideal pre-calculated case and makes adjustments to get a working final result.
The program that would create 3D models for the printer would be based on BIM. According to Mr. Salet, it should calculate in the background whether the given design is feasible with 3D concrete printing and warn you in time if that is not the case. That way, it would safe the designer a lot of time.
According to us, it seemed printing concrete would be very prone to cracks, since the material is very uniform. Mr. Salet acknowledged this and said that the idea is that ultimately the print concrete has fibers or small beads that should enhance the material to a wanted composite. For a stiffer concrete, add more deformation resistant beads, for a light concrete, keep the weight low by adding light beads. Reinforced concrete has steel bars in it to accommodate for pull forces. The 3D concrete printer on the TU/e is the only printer that can print somewhat reinforced concrete by having a steel thread through the system that gets printed with the concrete.
The final question was about how the concrete stayed soft inside the tube. The answer that the component that hardens the concrete only get added when at the print head.
When the came at the end of the interview, Mr. Salet welcomed us and every other student that has a cool idea, to use the 3D concrete printer for any kind of study related project. According to him, the 3D concrete printer is a study tool that is available for all students.
Besides a view of a development expert, the view of potential users will also play a vital role in the design of the robot and the software. It was therefore important to have a discussion with a potential user to see how they design. An interview was arranged with Thijs Kruiselbrink, a PHD student of the faculty Architecture at the TUE and the following question was asked to him.
What workflow do you use to design houses? Currently the Autocad software is most commonly used to design houses. Autocad is a 3D modeling software from autodesk capable of exporting 3D models in many different formats. Alternatively BIM is also starting to get more popular. BIM is very useful since buildings are constructed virtually within the software itself, which allows its users to find problems with the design earlier.
From this it is concluded that a format that BIM and Autocad can export will be needed as the input for the pathfinding algorithm, this way it integrates nicely with the workflow of architects.
The Mechanical System
The Goal
The main objective for the automated construction robot is to do the masonry work autonomously. This means that it will be able to place the bricks and apply cement at any given location within its bounds. The robot was inspired by preexisting concepts such as 3D printers the concrete printer.
Motion
One of the major design decisions is to focus the robot on mass production. Therefore it was decided to put the entire robot on rails so it can build an entire street of houses without requiring redeployment. Before the construction robot can do its work, the construction site will have to be flattened and the foundation will have to be constructed. The first element in the framework is the two rails that enable the robot to move in a horizontal axis. The movement on these rails will require two powerful electromotors. To enable movement on the vertical axis the robot will use a hydraulic system. [10] . This will be combined with a hydraulic system that enables the robot to rotate around its origin. This extra movement option is motivated by increased accuracy and reduced power consumption. Moving the entire robot on the rails will be less accurate and will consume more power since the load on the rail movement is higher than on the hydraulic rotational movement. Finally the robot arm responsible for placing the bricks can move on the axis perpendicular to the rails. This movement will be controlled using an electromotor applying torque to a belt connected to the robot arm. This axis connects the two hydraulic arms.
Material Supply
Initially the bricks will be placed in a magazine located at the base of the robot. Two magazines will be used to ensure a continuous supply for the robot. These magazines will be refilled with bricks by the construction workers on location. These bricks can be extracted from this magazine using electromotor that pushes individual bricks out of the magazine and onto the conveyer belt. This pushing system will be able to move vertically and be able to push the top brick out of the magazine onto the conveyer belt. The conveyor belt itself can be split up into two sections. The first section transports the bricks up the vertical axis. There is however a challenge in designing such a conveyor belt since the size of the vertical axis is variable. This means that the conveyor belt itself also needs to be variable in size. To achieve this result the belt can be varied by varying the distance of a pivot point. This conveyor belt places the brick onto the second conveyor belt on the perpendicular axis which brings the bricks in range of the robot arm. Finally the robot arm requires cement in order to function. This cement will be made separate from the robot in a cement mixer. Afterwards, the cement can be pumped from the mixer to the cement dispenser, which is located at the position of the robotarm.
The robot arm
Ultimately when the bricks are on the upper conveyor, they have to be placed on their desired position by the robot arm. To do that, the robot arm goes to the desired position and picks a brick from the conveyor belt. After that, it brings the brick past the cement dispenser behind the conveyor belt, to apply cement on both the side and the bottom of the brick. When the brick is provided with cement, it is placed on the desired position of the construction. The cement dispenser is on the other side above of the conveyor with the end facing towards the robot arm. It is inspired by the cement dispenser of the SAM robot. Most bricks have standard dimensions. With those bricks it does not matter which brick the robot arm picks up. However, when a half brick has to be placed, the robot arm has to move along the conveyor to that particular brick, pick it up and place that on its desired position.
Sensors
In reality the robot will not know of it's own exact location. Therefore a method is required to give the robot feedback on its current location which can be done using an encoder. Additionally an ultrasound sensor could be added to the robot to avoid collision with personnel or any other objects.
3D model to matrix
The first step in the script will be to use a 3D model exported from Bim or Autocad and convert it to a matrix containing the locations of bricks.
What should it do?
- It will be able take a 3D model from a .STL file and convert it to a matrix usable by the Brick-path algorithm.
- It will be able locate windows.
- It will be able to mark bricks affected by window placement.
- It will be able to use a set size of brick.
Limitations
- Due to the limited time available the complexity of this algorithm will be limited.
- Since the focus of the robot will be third world countries, will it primarily be used to create houses with simple shapes. Therefore the design of the algorithm will be limited to rectangular shapes.
- Since the information that can be retrieved from the 3D model is limited, can windows and doors only be detected if the designer of the 3D model makes a hole in the model. The algorithm will not be able to implement fancy patterns for the bricks. It will however be able to implement the regular brick pattern.
- Matlab will use a three dimensional matrix to store the location of the bricks. This requires a lot of memory when large and complex houses need to be processed by the algorithm.
The algorithm
Converting a 3D model into a matrix required by the Brick-path algorithm is not as simple as it seems. The only real data that can be extracted are the faces and the vertices.That is why a way has to be found to find what coordinates lie inside the 3D model. A threedimensional model is built up from three dimensional coordinates that indicate a corner called vertices. These so called vertices are then grouped together in faces. These faces are an indication for the computer in between which vertices it should draw a shape. The general idea behind the algorithm will be to define which coordinates are within the 3D model. This will be done by first creating a matrix and then iterating through the matrix while continuously checking whether it passes one of the faces of the 3D model.
Importing the 3D model
To import a 3D model into Matlab, a Matlab extension called .STL read is used. This gives the ability to obtain a list of vertices and faces from a 3D model with the .STL format. This 3D model will have to be in the same folder as the Matlab script.
Creating the matrix
The .STL file is converted to a matrix for every layer of the building. The dimensions of this layer are determined by the size of the CAD drawing. On Figure 6, the matrix from the fourth layer of a simple building is shown. The building in question is shown in Figure 5. The grey coloured parts are the walls, also indicated by a 1, the red coloured parts are part of the window and the blue colour indicates a door. From this matrix the coordinates for each stone are taken and used in the loop.
The loop
Because the building is split up into multiple layers, the coordinates for the bricks should be found for each layer. The process of finding them is the same for each layer, so a loop is used in which the brick coordinates for each layer are put into a single array. When all the layers have been iterated, the result is an array filled with the coordinates for every stone which can be used in the brickpath algorithm.
BrickPath Algorithm
What should it do?
Due to a limited amount of time available for this project it is necessary to define what the algorithm will be able to do at the end of the project, and how it could be improved. The list of the end-of-the-project goals is the following one:
- Plot an optimal path between all bricks in the brick matrix. The algorithm will be able to come up with a path to place all stones in an efficient order, but also taking structural integrity into account.
- Give the amount of bricks as output. Because the robot plans its complete path before starting it will be able to calculate the amount of bricks and half bricks necessary for the input building. This will reduces waste of bricks and ease the work of the construction workers, who will be able to cut just as many stones as necessary.
- Give an indication for the construction time. The robot will plan its entire path before starting, as mentioned above, which will enable it to specify the time necessary for the complete construction. Of course this depends just as much on the robot itself as on its input.
- Take windows, doors and supports into account. When the design contains a door or a window (which it most certainly will) the algorithm should be able to identify them and give a signal to the construction workers that a support must be placed. The algorithm will be able to give the measurements of this support before starting the path, so the supports can be prefabricated. Lastly, the algorithm will take the time to place the support into account and continue to print somewhere else so the support can be placed.
There are more opportunities for the algorithm which cannot be implemented due to a lack of time, resources or both. These features are listed below:
- Types of masonry. For every design that will be built a list of masonry types should be selectable. The algorithm will then automatically adjust its path plan to the chosen masonry type.
- Insulation. In the current algorithm isn't taken into account. The algorithm itself will not be able to select certain insulation types on its own, this should remain a task of the architect and partially based on the wished of the future inhabitant of the house. What the algorithm should be able to have is a function that enables insulation based building, so cavity walls and insulation attachment should be taken into account.
- Electric wiring and water supply systems. An integral part of a (modern) house is the electricity and water supply. They are mostly supplied through the walls, which means the algorithm should take them into account. In the file supplied to the algorithm pipes and wires should be marked so the algorithm can consider them while building the walls. In an even more advanced system only the socket and water supply requirement locations could be input in the file and the algorithm could determine how to install the pipes and wiring itself.
- Construction workers info. Construction workers will still be important to in the robot design so the algorithm should take their wishes and needs into account. In a more advanced algorithm not only the time it will take to build the wall can be outputted, but also an entire planning that includes shifts and breaks, and the amount of construction workers necessary for a certain task such as placing a window. The workers should be able to input their preferences through an easy UI.
- Estimate necessary cement amount. Just as with the bricks, the algorithm should be able to estimate the amount of cement that is needed to complete the building based on the other input parameters. This will make construction easier and reduce waste.
- Natural disaster safety norms. In places where natural disasters such as earthquakes occur regularly the structure of buildings is adapted to them. This could also be implemented into the algorithm. Based on recommendations from structural engineers and geographists the architect or even the construction worker should be able to select a safety norm, for instance ranging from one to 5. This norm will affect how much the algorithm lets structural integrity influence the masonry type and the amount of cement necessary. It could even decided to add supporting pillars to a certain building to improve the safety of the house it is building.
It is also useful to propose what is should not be able to do. The construction robot is foremost a masonry robot, which restricts it form the ability to perform certain tasks. These tasks are listed below:
- Install wiring, water supply pipes and insulation. As mentioned above the algorithm will be able to take these factors into account, but it is intended to eventually not be able to plan and execute the installation of electricity wiring, water supply pipes and insulation. Implementing all of these features into one robot would make the robot overly complicated and not as effective as two (possibly smaller) robots executing the different tasks separately.
- Build roofs, doors, windows etcetera. Just as with the insulation, wiring and piping the robot will take these factors into account but will not install them. The reason is that much precision is needed to install for instance windows which would make the robot overly complicated again, while humans are still better in these tasks.
Data structure of the input
As described in SECTION, the SCRIPTCAD_NAME script takes a 3D model and gives a matrix of arrays, representing the bricks in a house with ones and zeros. The BrickPath Algorithm was written to take such a matrix and determine the optimal path for the ‘printer head’ (robot arm). The purpose of this script is to minimize the time not laying bricks. Its output, a list of coordinates sorted in an optimal order, is also used to calculate the total time and energy required for the robot to build the house. In this section, the algorithm will be described in more detail. Data structure of the input As described in the introduction, the script’s input is a matrix, stored with arrays of bricks. An example of such a house matrix is shown in Figure 7.
Every letter in the matrix is a cell array of length h, equal to the height of the house. The three basic arrays are: 1. m: represents a wall. A cell array containing list of h ones. 2. r: represents a wall with a window in it. The same as m, except bricks 0.4 h until and including 0.7 h are zeros: empty space in which builders place the window. 3. z: represents empty space. A cell array containing a list of h zeros.
Processing the data
In a nested for-loop, all x and y coordinates of house are put into a 2 x n list, n being the total of bricks. This list is at first unsorted so if it were fed to the robot as is, a lot of time would be wasted by moving the printer head to random bricks in the matrix.
For this reason, an optimal path has to be determined across all the bricks. It is decided to simply start with the outer walls, as these include most of the important characteristics, like windows, walls that tubes have to be installed in, etc. In order to do this, the coordinate vector is sorted four times based on the highest or lowest x or y coordinate. When the outer walls are sorted appropiately, only the inner walls remain. These do not have to be laid out in a predictable order like outer walls do. Simply letting the script spiral inwards or zig-zag across the house would result in a lot of time being spent traveling from brick to brick. A better solution has been found, which is to sort the remainder of the coordinate vector based on a minimal euclidian distance between any two points. The algorithm thus gives priority to bricks that lay in a straight line, after which it will lay remote bricks grouped in fewer numbers.
Results & Validation
In Figure 8 a .gif image displaying the path of the robot arm is shown (click on it to see it move). The robot moves in the direction of the arrows, starting at the top left. Every different colour indicates a different layer. As can be seen the robot first builds the outer walls and then continues with the inner walls. Although this path is not optimal in terms of speed, it guarantees the structural integrity of the building-to-be since the outer walls are mostly the support walls and are usually thicker than the inner walls.
In figure 8 every arrow is equal to the movement of the robot from one brick to another. This means every arrowhead indicates a placed brick. If the arrow is longer than the others this marks the location of a door, window or a empty spot in the building since no brick is placed.
What can also be noted is that it seems the inner and outer walls do not connect. This is caused by the scale of the axes and the size of the building. The building that is used in this example is very small, only 12 stones wide and 8 stones deep. Because of this the empty space is actually already coverd by a brick.
Another thing worth mentioning is the existence of diagonal lines. One would assume that diagonal lines are for a brickplacing machine since even diagonal walls must fit into horizontal or vertical walls meaning the bricks should be placed accordingly. This is indeed the case with the robot. The diagonal lines indicate something else, which is the robot moving without placing a brick. Of course the robot should move as time-efficient as possible (still taking structural integrity into account as mentioned above) but sometimes it is necessary to move from one part of the building to the other without placing a brick. The amount of times and duration of these relocation moments are of course inherent to the building design.
Finally, one may not the robot always starts from the top left corner. This is also not the most time-efficient path but it increases the safety of the robot. Since the robot acts autonomously and is not controlled by workers its path is rather unpredictable if one has not seen the outputted path beforehand. This will be the case for quite some construction workers at the construction site, since it would be too timeconsuming to show the path to them all. Because the robot now always starts from the same point and travels almost the same path every layer the robot becomes more predictable thus increasing safety.
Determination of construction time
Robotarm
When the construction robot has arrived at the desired position, a recurring set of movements will have to be done to place the bricks. This will be done by a smaller more accurate robotarm. The robotarm has to pick the bricks up, go past the cement dispenser to dispense cement on the bottom and the side and place the brick securely.
Time
To calculate the time, a kinematic model of the given robot has been made. This model changes the wanted x and y coordinates (of the robotarm relative to the conveyor) into the needed angles for those given coordinates. Then the difference between the angle of this situation and the last situation is calculated. The maximum speeds from the robot specs are taken and multiplied by the angle differences to calculate the time needed for that movement. Some movements however are happening simultaneously, so the movement that takes the longest time to execute only get added to the total time of the brick placing movement.
Implementation
Ultimately this script gives a calculated construction time. These variables will be implemented in the pathfinding algorithm of the robot. This way the total amount of energy and time can be calculated to build the given house. This way, for any given house design, the required time to build the design can be presented.
Improvements and ideal concept
At the moment the movements calculated are relatively simple. It would be preferable to be able to make calculations for more complex movements, using all the different available motors. A more complex kinematic model would be needed to transfer positions into angles.
Also, the time required for the 'hand' of the robot arm to grab a brick is a rough estimation at the moment. This part of the arm could be worked out more when the actual robot arm is chosen. This way the calculations could become more accurate. The same idea holds for the arm itself. The masses of the various parts are estimated and when more information about it are present, the calculations could be improved.
There is not only one type of brick used, there are many different kinds of bricks. Bricks with different dimensions and different weights. These parameters influence the movement and energy and calculations. What would be ideal, is that the chosen brick parameters can be put in or even chosen from a database. With these parameters, the models will then calculate the required time and energy.
Conclusions
For the hollow bricks often use in third world countries (see: 'The robot in use'), the calculated time for the robot arm to grab and place a brick is 8.7 seconds. This is roughly in compliance with the SAM robot discussed in 'Cost Analysis', which takes about 11 seconds per brick. The time needed for the entire robot to move to another brick appears to be negligible compared to the time required to grab and lay a brick: about a factor 10 smaller. When optimizing the brick laying process, which involves laying thousands of bricks, it thus makes more sense to try to speed up the movement of the robot arm. All in all, building a (small) house of 5 m x 5 m and 7.5 m high and some inner walls, costs the construction robot roughly 26 hours.
Users
In the design of the robot and the software the user will play a vital role. It was therefore important to have discussion with a potential user of such a robot to see how they design. An interview has been arranged with Thijs Kruiselbrink PHD student of the faculty Architecture at the TUE and asked him the following question.
What workflow do you use to design houses? Currently the Autocad software is most commonly used to design houses. Autocad is a 3D modeling software from autodesk capable of exporting 3D models in many different formats. Alternatively Bim is also starting to get more popular. Bim is very usefull since buildings are constructed virtually within the software itself, which allows its users to find problems with the design earlier.
From this it is concluded that there is need for a format that Bim and autodesk can export as the input for the pathfinding algorithm so it integrates nicely with the workflow of architects.
Mock-up of user interface
To provide some insight on what the final concept should look like, a mock-up of the interface is developed. This interface shows the main layout and key design elements of the software of the robot. As mentioned before, the software should limit the extra tasks for the architect. To take this into account, the input of the software was determined to be an .stl file. An .stl file is a type of file that the most commonly used 3D-modelling programs can export to. This means the architect using the robot can simply export his model and import it in the program developed for the robot. If the architect were to import a model that cannot be properly built by the robot, or is not sufficiently structurally sound, the program will show errors that elaborate on where the problems in the model lay. If there are no such problems, the program will determine the optimal path for the robot to follow. It will then also show all relevant information of the model, such as the required number of bricks, the required building time and the amount of windows and doors in the house. Figure 10 shows the mock-up of the interface of the program. The mock-up also shows how relevant information such as the required number of bricks is outputted.
The robot in use
In this section, the use of the construction robot for construction of slum replacements will be described.
A typical day of using the robot
A day shift The construction robot works by placing bricks and cement, however it will need construction workers to finish the walls by cleaning up the excess cement on the walls. Besides that, the bricks have to be loaded into the robot from time to time. This would still require two construction workers. Also, all aspects of the house after the brick laying have to be done by human workers. This means that the typical brick laying day goes as follows:
- Arrival of construction workers an start up of the robot.
- First brick laying session. The robot lays bricks and the workers keep the machine going.
- Lunch break, although the robot could technically work by itself. The cement has not dried up yet after the maximum hour of lunching, But the workers will have to up the tempo, to close in on the robot.
- Next brick laying session until end of work hours
- Closing up of the workplace around 5 o'clock.
- Before the workers are gone, a security will arrive with a night shift
- Although security on construction sites is not an issue exclusive to the brick laying robot, it will be necessary to guard the construction site.
A night shift Alternatively, since the robot has the advantage of being able to work non stop, an alternating night and day shift could be arranged, with different workers assisting the robot between the shifts. However the following problems would have to be dealt with:
- Lighting: While the robot does not need daylight to function well, the assisting workers do. The construction therefore has to be well lit.
- Sound: Since nobody likes hearing construction noises and light in the middle of the night, only large scale new neighbourhood projects can benefit from working 24 hours a day. Otherwise a lot of complaints of the surrounding civilians will be the consequence.
Safety
To ensure safety and avoid collisions, the robot should not work in vicinity of the construction workers. This meaning, that the construction workers clean up the walls a couple of bricks later than the robot is building. Besides this, if a construction worker is busy with a certain part of the construction for whatever reason, then the robot should avoid that location and work somewhere else. If the robot arm has to move a large distance, it can for example lift up high and move along the walls toward the desired position, avoiding the construction worker. If these rules and ideas are used and lived up to, the robot will be safer than manual labor. This is because the lifting and placing of heavy bricks can amount to a lot of stress on the body, while this process is completely avoided with the use of a robot. This could even result in less sick construction workers and thus lower construction costs.
Short sessions Since the robot can work 6 times faster than human construction workers, the bricklaying part of the construction can be executed in one 6th of the normal time. When the robot is done building a construction, if there are rails present going towards the next house of the neighbourhood, it can continue immediately on the next house.
Materials
Available data on building materials used in slums is scarce, by nature. People use whatever they can find for cheap. A brief study has been done and a pattern can be seen: when bricks are used at all, often these are so called hollow bricks, as can be seen in Figure 11. This makes sense, as their size makes them easy to stack and the empty space functions as isolation, which is ideal in the warm countries where these slums are typically found. The pallets of bricks loaded into the construction robot will thus consist of these kinds of hollow bricks.
USE Aspects
Below, a short overview of USE aspects is given.
User
- The construction robot will reduce the workload of the construction workers.
- The construction robot will reduce the amount of danger construction workers are exposed to.
- The construction robot will lead to a quicker realization time of the building, which in turn leads to quicker accessibility for potential future residents.
- The construction robot will enable more possibility for personalized designs
Society
- The quicker realization time of buildings the construction robot provides, will lead to a more efficient construction sector, which in turn leads to:
- The construction sector being more able to keep up with society’s demand for more living room.
- Possibly lower house costs due to reduced construction costs. This makes owner-occupied houses more accessible to a bigger audience.
- The construction robot could be used for building aid in third world countries.
Enterprise
- The quicker realization time of buildings can save construction companies a lot of money due to being able to do more projects in less time.
- The construction robot can save construction companies money on wages for construction workers
- The construction robot can help construction companies compete better on the market.
Main USE focus
Now, as can be seen in the list above, the concept of a construction robot can be addressed in various ways. One could choose to develop a broadly applicable robot to make it useful for everyone in the world. However, that will unnecessarily make the concept less suitable for all different classes. Therefore, one specific user is chosen to influence the design. In addition, by trying to address all USE aspects, the depth of the concept will be limited. Whilst, with this project, it is of course the goal to do in-depth research into artificial intelligence and robotics. Hence, it was decided to specify the user and main focus of this project.
As shown earlier, User, Society and Enterprise aspects are all present in the concept. However, since this system could be optimized for ‘simple’ housing and to lower costs, this project will mainly concern Society and will focus on construction in third world countries. The construction robot and the pathfinding algorithm will be used to minimize costs, excess material and time required to build a house. By focussing on this part, other ideas will be left out of the scope of this project. Ideas such as complex structures, varying building techniques and large-scale buildings will not be considered. In this project, the construction robot and script will:
- Minimize excess material and thereby the reduce the material costs.
- Take limited resources into account, and will be able to deal with the use of different kinds of bricks.
- Build simple, straightforward houses that can be built easily and thereby reduce building time.
- Since slums are often on areas that are not fully level (often on hills), the construction robot will be able to operate under an angle.
In the this chapter it is discussed how the robot could be used for the improvement of slums.
The Dangers of slum architecture
At the moment the conditions in slums are horrible. People use all kinds of materials found in garbage. Corrugated iron sheets are most commonly found, but mostly anything that can be used in some way to build a house. Rusty surfaces and pointy edges make sure accidents are prone to happen. Materials often are not even connected, just put on each other with the hope that things wont budge. All these materials are also filthy and could cause many different health problems. However that is not all. These houses are compact and very close to each other, often build on top of each other without any regard for possible collapse. The combination of little space, sloppy construction and bad hygiene makes for really dangerous housing. Not only is it dangerous for the resident of the house itself, it is also poses a threat to the people in the environment It a floor collapses, multiple people are at risk. The same applies to a sticking out nail, everyone walking past it risks it to hurt themselves to it. That is why slum housing has to be improved. Charity organisations try to help slums by providing concrete for the poor in slum alleys [6]. However, the people are not capable of building decent housing themselves, as is proven by the many unstable buildings in slums. Almost no slum dwellers, as they are called, have any constructional knowledge. This is because most of them grew up without education. So to provide them with tools they can not properly use, is a bad idea. The first solution that comes to is to let construction workers with the required knowledge, work on the improvement of the slums. This however introduces new problem. Who would want to work in such horrible conditions? And if people are willing to work in the slums, how do construction companies guarantee the safety of their employees. The slums are hazardous terrain after all, as analyzed. A solution to this problem is to let automated construction work in these environment. A house building robot could quickly build multiple houses, without being endangered by the environment. There still has to be supervision of the construction and minor detailing of the houses, but the dangers for construction employees are greatly reduced. As they won't have to lift the cheap concrete brick through small alleys. The only major obstacle for the improvement of slums then remains the financial funding.
Potential Users & Stakeholders
Because the USE perspective is mainly focused on Society this of course affects the stakeholders. In this part of the wiki it will be described three situations in which the construction can be used and name the different stakeholders and their interest in the project.
Slums and rapid urbanisation
The construction robot is partially aimed at poor third/second world countries that require rapid house construction to stop the uncontrolled growth of slums. From 1990 to 2001 the global slum population grew with 220 million people, posing a huge housing problem (SOURCE). Because of this mostly governmental organisations will be interested in the project. The reasons for that are that the costs of the robot are too high for local neigbourhood communities in cities, the increased speed at which housing can be constructed and the government/municipality's responsibility for urban planning. These reasons for interest are only caused by problems such as underdeveloped city slums, but governmental organisations or building companies in third or second world countries can also be interested through the prospect of making profit from fast and cheap housing. It has to be said that the construction robot will most likely only be profitable when simple houses are built in larger numbers, which makes it more suitable for third or second world countries than western countries because the need of many cheap houses is not as big in these western countries. Another interested party could be NGO's or other organisations such as the UN promoting sustainable housing in said countries. One sustainable design with for example room for solar panels and a shared electricity grid can be implemented into the robot which can be built over and over again. This makes it very suitable for such sustainable housing projects because with more houses comes a more reliable local electricity grid. Of course the NGO's could coöperate with the local governmental organisations mentioned at the start of this paragraph. Of course there is one other group of stakeholders, which is the people that will live in the houses constructed by the machine. These people that previously lived in the slums or outside the city don't have very high demands of their housing (the quality of slum and rural housing in third/second world countries isn't particularly high). Because of this relatively small and cheap houses with basic facilities such as electricity and water will suffice. The houses should also be cheap because the people living there will have to be able to maintain their house in a good state and also be able to purchase a house (possibly with governmental subsidies).
Refugee camps
Another situation where fast and rapid housing comes in handy is a refugee camp. Refugee camps now mostly exist of tents, which aren't a very good solution for long term housing. Theconstruction robot would be able to rapidly build appropriate housing to replace tents. It will still be large organisations such as local governments in countries with many refugees (such as Greece and Libanon) or for instance Unicef that use the robot because the costs are too high for small charity organisations or the refugees themselves. The same advantages as slum-replacement (easily scaleable, more reliable electricity grid) still apply, but using the machine for refugee camps has one big disadvantage. This disadvantage is recyclability. Because most refugeecamps are temporarily camps the house could be abandoned once the refugees are able to return to their homes. Tents have the advantage over the houses in this case because they can be taken apart easily and moved elsewhere. This implies the houses built for refugee camps should be easily recyclable, which would practically make them advanced tents. However, charity organisations and governments providing shelter to refugees could still be interested in the robot because some refugeecamps are open for as long as ten years (Dadaab camps in Kenya, Breidjing camp in Chad) which require more robust housing. The refugees that will live in the houses built by the robot are also a group of stakeholder. Just as with the slum population, their demands aren't very high and their housing quality will most likely increase because they currently live in tents or don't have shelter at all. Basic facilities such as electricity and water should be provided, but where the slum population could partially pay for these facilities this is mostly not the case with refugees. This means the housing and the including facilities should all be paid for by other stakeholder such as governments and charity organisations, implying that the housing will be as cheap as possible.
Settlements
As made clear in the two previous parts of this paragraph, the main advantage of the construction robot is the possibility of rapid house construction. This offers great opportunities when facing rapid urbanisation and large groups of refugees, but can also be misused. An example of this is the Israeli colonization of Palestine. Since the 1967 Six-Day War Israel has been building settlements in Syrian, Egyptian but predominantly Palestine territory, although being pressured by the UN and the western world not to do so since it is illegal. Israel hasn't yielded to this pressure but only expanded its illegal settlements. The construction robot could be used to rapidly build these settlements which would cause even more aggressive Israeli expansion politics. In this case, the Israeli government would be the main stakeholder, since it will be the main user of the machine and instruct or promote its building companies to use it to build the settlements. In this case, the houses should be bigger and its facilities more extensive because the Israeli people that will live there are used to a higher housing standard. This won't be a problem since the construction robot will be able to handle various house designs. In the same way militaries could use the construction robot to build military bases in disputed areas, or could even help completing Trump's infamous wall in a shorter timespan and with less costs.
Construction workers
Finally, a group of stakeholders not mentioned in the examples above but applicable to them all are the construction workers. With the robot the workflow on a construction site will drastically change. Construction workers will still be necessary to place windows, roofs, doors etcetera but the masonry will be done by our robot. The masonry is an integral part of every building which means the construction workers will have to "coöperate" with the robot, meaning that the robot will give a signal when for instance windows can be placed or when it has run out of bricks. The robot can also accidently break down, so the construction workers should have a basic understanding of the way the robot works to fix it. This all requires a training on working with the construction robot. The robot could also lead to possible unemployment for construction workers. When the robot only builds the walls of a house this may only affect masons, but it could be developed further and load to unemployment for all groups of construction workers.
Social Impact
If the construction robot does become a success, it will have major consequences for society. It is therefore critical to investigate and evaluate these consequences. These consequences, however, vary for various regions and will therefore be discussed separately. For each region, the following concerns will be addressed. In order to construct these robots and ensure that they are safe and robust, large investments in research, testing and construction materials are required. This means that a lot of smaller companies will not be able to risk the initial investment required for these machines. Another concern is that the robot will increase the income inequality between higher and lower educated population. To maintain, produce and research these machines, highly educated personnel will be required, whilst a popular job practiced mostly by lower educated people - construction – will be replaced by robots. The reduced construction costs as a result of automated construction will lead to a decrease in property-value, which may negatively influence the economy. However, this will also mean that houses become more affordable, which would on the other hand be a positive outcome for the lower class. The chapter will be concluded with a profit analysis for both situations, to see if the design of such a robot is indeed economically viable.
First world countries
In the these countries the social impact will be the least significant. They will be likely to employ automated construction robots because they will likely reduce cost and most companies will be able to afford the investment. These robots will likely be produced in these countries since the required knowledge and expertise is available here. Meaning that the economy of these counties will not be damaged to severely. The income gap for these countries will suffer severely however. According to the Dutch department of statistics[7] around half a million people are employed in construction. That’s 3% of the entire population that could potentially to lose their jobs. This might mean a severe economic crisis as a result of the construction robot. So somehow a new source of work has to be found in order to employ the population that is left homeless due to the advance of technology. The lower prices for housing might however soften this blow for the lower class since houses are now easier to afford. On the flip-side these affordable houses might also threaten the economy due to the deflation of house prices. This might have a few negative effects for the economy since deflation discourages customer spending as a result of anticipation for more deflation. This might pose huge problems for the real estate market and therefore the whole economy. This deflation might however be restrained to more simple housing and not to the more fancy housing, since it will be likely that moving the robot around customizing it to build a certain house might be very expensive.
Third world countries
The third world countries could be affected hugely by these robots if the technology becomes popular. The first major concern for these countries is that they will have a lower percentage of highly educated population meaning that they have no chance of bringing the robot to the market themselves. This means that the technology will have to come from the first world countries who will make money from the robot, while the construction workers lose the demand for their work. This scenario however does not need to become a reality. First off all sending the robots and personnel to maintain the robots to these third world countries will be very expensive for these countries. Furthermore it should be noted that the wages are generally a bit lower in third world countries meaning that it is actually pretty hard for these robots to actually compete.
A construction robot will however be useful in third world countries in a scenarios where there is a sudden increase in demand for simple houses. Such a demand could for example be caused by a natural disaster or a war. The third world country could then benefit since their construction workers can be aided by a robot to respond to the crisis as fast as possible and the large demand will also ensure that the robot is profitable for the countries sending the robot.
Funding
The construction robot promises to build houses faster and cheaper, but before the robot can be used it will require a large investment for its creation . So before the construction robot is developed an important question to ask is where will the required money come from? Since the cost of the robot is very high the amount of sources from which the money can come is limited.
Crowdfunding
The people living in slums are obviously very poor and won’t be able to afford a machine by themselves. However if the cost of the construction robot somehow reduces drastically the people living in the slums might be able to share the investment for the machine. Currently the robot is however way too expensive for this.
Government
If the robot turns out to be efficient enough the government might be able to justify buying such a machine since it can improve the living conditions for much of its citizens. Unfortunately a lot of countries in the developing often have problems with corruption within their government. [9] . When the risk involved in the investment for such a machine it is unlikely that the government will invest in such a machine.
Charity
The last hope for the construction robot is charity. An ideal candidate would be the Bill and Melinda Gates foundation. They are the biggest charity in the world with an endowment of over 42 billion they would be able to risk the investment into a construction robot. One of their focus points is reducing world poverty which nicely aligns with the imagined use case of the construction robot.[8] However the construction robot will have to compete with other methods to reduce extreme poverty such as providing jobs. So the efficiency of the construction robot will have to significant before it becomes a viable option for charity.
Cost analysis
Now the societal impact is clear it is a good idea to inspect the costs of the machine to make a final USE verdict. The prices and wages mentioned below are mostly averages or estimations, which makes the final costs also an estimation. This estimation is however clear enough for a good conclusion.
In this analysis the SAM robot will be used as example, which is an already developed robot only capable of building straight walls, and it will build slum houses. This robot requires two human workers to assist it, one to supply and cut the stones and one to scrape away the excess mortar. The SAM robot is 6 times as fast as a human mason. Of course the robot will be capable of doing this by itself which saves costs, but because the increased complexity necessary by these improvements the costs will rise again which makes the comparison with the SAM a good estimation. The SAM robot has the following costs (It assumed that the material costs remain the same):
- Purchase the SAM robot: $500.000
- Rent the SAM robot: $3300 per month
- Two workers to operate/help the robot: $4 per day ($2 per day is the average wage for a Brazilian)
- Energy costs: $0.56 (approximately 4.5 kWh per day with $0.13 per kWh in Brazil)
- Total: $4.56 per day plus $500.000 purchase costs
The costs for 'normal' masonry are listed below:
- Labour: 6 brazilian workers (the SAM is 6 times as fast), so $12
- Total: $12 per day
This would mean the SAM robot would save $7.44 each day, but has a purchasing cost of $500.000. With this profit rate it would take 67.204 days (or 184 years) of non stop masonry to play even, without taking maintenance and transport costs in to account. This is a ridiculous amount of time so the robot will be far from profitable in this situation. Even when building in for instance the US (mason wages are approximately $113 per day) it would take 1107 days or 3 years of non stop masonry to play even. These costs show that it is far from profitable (at this moment of course) to use a brick robot instead of usual human masons from a monetarian costs perspective.
Planning and logbook
The general planning is displayed in a GANT chart, which can be seen in Figure 14. Because of the major change in the deliverable, a new planning had to be made. The old planning is visible in Figure 13. In the GANT-chart activities, the work distribution and milestones can be seen. The planning will be adjusted if necessary. Below, a short summary for each week work has been shown.
Week 1: 6 February – 12 February: Deciding the subject and deliverable of the project. The decision was made to create a machine that would help to automate the construction industry. The main deliverable will be a prototype that can build houses with DUPLO blocks. The preparations for the first presentation has been made.
Week 2: 13 February – 19 February: This week the Concept presentation has been done, the second presentation is prepared and the first chapters of the wiki have been written.
Week 3: 20 February – 26 February: An e-mail has been written to TU/e Concrete Printing, a list of required components and a start for the USE research has been made. This has been placed on the wiki. Also an interview with an architectal PhD student.
Holiday: 27 February – 5 March: Some brainstorming about the deliverable has been done and there is some doubt about the idea. It will be possible to create such a prototype, but there is a risk it will take a lot of time and other parts of the project will suffer because of this.
Week 4: 6 March – 12 March: Potential Users has been finished and work on social impact has been started. According to the planning, it should be finished next week. There is however a large change that it will be researched the whole time during the project. This way it will have a better implementation in the deliverable. The most important decision this week is the change of the deliverable type. During the feedback-session on Thursday it became clear that developing the prototype would cost a lot of time and the project might end up in fixing bugs in the prototype, instead of working out the implementation of this robot in society. The deliverables will now consist of an algorithm for the final robot to build a house from a 3D model and a final design of the robot. There still has been no answer from TU/e Concrete Printing, a new e-mail has been send to the professor of the project.
Week 5: 13 March – 19 March: A new adjusted planning has been made and there has been contact with the professor behind the TU/e printing project. Next week there will be an interview. There has been some progress in the scripts, it has been divided into three separate scripts: 3D model conversion script, Energy & Time consumption script and Pathfinding script.
Week 6: 20 March – 26 March: The interview did not work out because he was not present at the agreed times. A new appointment has been made for next week. The USE aspects have been discussed with the teachers and it has been decided that the design should be adjusted to one of the aspects and not all. The focus of the project will be on society. A possible improvement for the scripts is the addition to cope with windows, doors and different types of masonry fashions. Another improvement is the addition of expectations and requirements of the scripts.
Week 7: 27 March – 2 April: The interview with Professor Salet about the TU/e Concrete Printing subject. Not all the milestones of the planning have been achieved this week. The buffer of next week is needed to compensate for this. Besides this, preparations for the Final Presentation has been done. A mock-up of the interface has been made, the scripts are almost finished and the society use aspects have been implemented into the design. One of the consequences is the fact that the robot is now focused to build simple houses and is not made to build custom made houses.
Week 8: 3 April – 9 April: This week, the final presentation has been given and the scripts are finished. After the presentation some adjustments still needs to be made according to the feedback. For example, there was some doubt about the simulation and this will have to be fixed before the deadline of the wiki page.
Week 9: 10 April – 16 April: Feedback of the final presentation have been implemented into the wiki and missing parts like the conclusion and reflection have been added. The scripts also have been adjusted to The wiki page needed some final restructuring, spelling and grammar checks.
Conclusion
The developed algorithm and literary research showed that an automated construction robot is technically achievable and could help to quickly rebuild areas such as slums. The literary research showed that the mechanics required for the development of a construction robot already exist and work properly. The algorithm showed that the conversion from a 3D-model to a direct path for the robot to follow is possible. A combination of these two provides the key developments required to realize the automated construction robot. However, when digging into the societal aspects, it was found that the regarded audience was not compatible with the development of an automated construction robot. This is mainly due to high production costs and the movement of employment from the lower class towards the upper class. These findings lead to the conclusion that the robot could be developed, if desired, but is not suitable for the rebuilding of slums.
Reflection
During this project, a major change of plans has been made. The entire idea of creating a prototype that builds walls from Duplo blocks was cancelled because of the small-scale problems that would take up a lot of our time, distracting us from the real life issues. Looking back, this has been a good decision, as the extensive study of this robot’s applications has shown that society is not ready for this technology as of yet. Some of these findings may have been overlooked if had been fixing small bugs in a robot’s code up until the last moment. It did become clear, when researching the applications and detailing the process of building with this robot, that it would have been beneficial to have an architecture student in the group. We spent quite some time researching the basics of house building, which is something they already know a lot of. Within the group, there has been a positive atmosphere. Everyone contributed equally and lived up to what was expected from them. What could be improved, though, is the way we tracked our progress. In the last week, when finishing the wiki, it became clear that certain parts were documented less than expected. All in all, we think that the results are in compliance with the expectations set in the beginning of the project. A working proof of concept of a path finding algorithm has been made, as well as a 3D model conversion script and an extensive USE study. The main possible improvements lay in some details of the design and the implementation of the pathfinding algorithm.
External sources
[1] http://www.home-building-answers.com/house-foundations.html
[3] https://theconstructor.org/earthquake/earthquake-resistant-techniques/5607/
[4] http://www.understandconstruction.com/walls.html
[5] https://www.thebalance.com/bricks-types-uses-and-advantages-844819
[6] http://www.lafarge.com/en/improving-housing-slum-dharavi
[7] https://www.cbs.nl/nl-nl/nieuws/2017/08/hogere-omzet-bouwsector-in-2016
[8] http://www.gatesfoundation.org/
[9] http://www.nber.org/papers/w17398