1
Project ShamRock
Module Name: Behavioural Fabrication Module Number: 11600303 Term/Year: SummerTerm 2017 Examination Number: 49831 Examiner: Prof. Achim Menges
Tutors: L. Vasey, M. Yablonina, L. Nguyen, A. Menges with T. Schwinn, O. Bucklin, B. Felbrich, N. Melebrink Institute: Institute for Computational Design and Construction (ICD) Alshami Rasha Elsbury Bradley
2
3
Figure 00A: Selecting Rocks. (Source: R. Alshami & B. Elsbury)
4
5
Contents Chapter 01: AIM _____Page 07 A) Introduction _____Page 08 B) Context _____Page 11 C) Aim _____Page 12 D) Precedents _____Page 14 E) Biological Inspiration _____Page 16 F) Differentiation _____Page 17 Chapter 02: Workflow _____Page 19 A) Overall Workflow Chart _____Page 20 B) Digital Workflow _____Page 22 C) Physical Workflow _____Page 23 Chapter 03: Reconnaissance _____Page 25 A) Overall Scanning _____Page 26 B) Face Extraction _____Page 32 Chapter 04: Database[classification] _____Page 35 A) Method Overview _____Page 36 B) Machine Learning _____Page 38 C) Data Collection Management _____Page 38 Chapter 05:Unity[stacking and build] _____Page 47 A) Method Overview _____Page 48 B) Stacking In Unity 3D_part 1 _____Page 51 C) Stacking In Unity 3D_part 2 _____Page 52 Chapter 06: Digital to Reality _____Page 55 A) Online Robotics _____Page 56 B) Parametric Implantation _____Page 59 Chapter 07:End effector _____Page 63 A) Prototype Anatomy _____Page 64 B) Advancement _____Page 65 C) Demontage and Views _____Page 66 D) Mechanics _____Page 67 Chapter 08: Execution _____Page 69 A) Scan _____Page 70 B) Pick _____Page 71 C) Place _____Page 73 Chapter 09: Outlook _____Page 75 Chapter 10: References _____Page 78
6
7
Chapter 01: INTRODUCTION A) Introduction _____Page 08 B) Context _____Page 11 C) Aim _____Page 12 D) Precedents _____Page 14 E) Biological inspiration _____Page 16 F) Differentiation _____Page 17
FIGURE 00B: Dry Stacking (Source:: Alshami Rasha).
8
CHAPTER XX
9
CHAPTER XX
Creating simple structures with complicated geometries lies in understanding natural materials and its formations in correspondence with its internal structural logic. That is when simplicity becomes structural creativity. -Alshami Rasha -Elsbury Bradley
FIGURE 01A: Dry Stacking in Context.
Introduction
Dry stone (also called dry stack) is a building method by which structures are constructed from stones without any mortar to bind them together; Dry stone structures are stable because of their unique construction method, which is characterized by the presence of a load-bearing faรงade of carefully selected interlocking stones. There are several methods of constructing dry stone walls, depending on the quantity and type of stones available. Most older walls are built from rocks and boulders cleared from the fields during preparation for agriculture but many also from stone quarried nearby. For modern walls, quarried stone is almost always used. The type of wall built will depend on the nature of the stones available [1]. In the figure above it is shown that finding material based on geo-location to construct a wall based on found materials in the landscape and creating a new
foreign wall to the existing environment. The figure (01B) shows an example of a natural disaster. This role model focuses on an existing structure that has been previously damaged and using the ruined contents to reconstruct itself based on the current leftover structure. Project Shamrock goal is to administer its processes and methods to both applications described to create an autonomous and more efficient way to achieve dry stacking.
10
11
CHAPTER XX
FIGURE 01C: Building a Dry Stack Wall.
Context
FIGURE 01B: Disaster Areas where rebuilding is based on rubble.
Dry wall construction method has many advantages: it doesn’t require any specific type of foundation that needs to be set down below. Versatility by the variety of forms and uses. Longevity: Because of the stone’s freely stacked system which gives the construction enough room for expansion and contraction [2]. This means that the wall will not be prone to shifting and cracking at different weather cycles. Cost effectiveness, the cost of dry-stacked wall is usually lower than the usual mortared walls. It cuts down on labor time and the expense of materials. Finally, it is considered highly sustainable, because it makes use of left over construction material [3]. There are several methods of constructing dry stone walls, basically depending on the quantity and quality of stones available. One example is the double wall, which is made of two rows of stones that are built in courses. Large tie stones span both layers at several intervals
creating a bonding effect. The wall is usually battered towards the top, which is capped by a capstone. The voids between the facing stones are carefully filled i.e. hearting. The single wall, also known as the boulder wall, is made up of single row of large boulder stones that are also coursed and battered towards the top. Galloway dykes combines both methods where the base consists of a double-wall construction with singlewall construction above. While most traditional walls are built from rocks and boulders cleared from the fields during preparation, most contemporary walls are constructed from quarried stone [4].
12
13
Input
Data Processing
Output
Reincarnation
FIGURE 01D: Reincarnation.
Aim
Our aim is based on the idea of using a neural network approach for autonomous construction by utilizing irregular component materials found on-site to create a larger architectural structure. Project Shamrock seeks to build a computational engine that can create a data base (Library) made up of scanned raw building materials, analyse its physical properties, and triangulate its position in real space. The computational model recognizes and organizes each object based on neural network approach similar to how the human brain works and gives it a distinctive label so that it can be retrieved and utilized on-site according to its properties and stacking techniques. Furthermore, Project Shamrock wishes to achieve a finite solution for enhancing the construction process
with simulations based on building practices found in the industry today. By carefully predicting outcomes digitally we can dictate future performances on the global structure in advance to make decisions about success rate. In conjunction with the computational engine and global stacking technique, Project Shamrock performs with the use of industrial practices such a Kuka Robotics, Scanning hardware, chip boards, and general consumer-based products to execute the goal of stacking.
FIGURE 01E: Reincarnation. (Source: Rasha Al-Shami)
14
15
CHAPTER XX
FIGURE 01G: Computational Stacking.
Precedents
Similar models such as the project carried out at ETH Zurich by Autonomous Systems Lab (ASL) and the Robotic Systems Lab (RSL) and Gramazio Kohler Research (GKR), Robotic Aggregation of Materials with Irregular Geometries exists in the field of architecture. The research conducted involves several parameters such as precise localization, end effector development, external scanning, DataBase and optimization software, and light to heavy robotics [5].
FIGURE 01F: Robotic Fabrication in Architecture.
The left image (Robotic Fabrication in Architecture) uses mobile robotics to construct a brick wall using similarly shaped objects to calculate a pattern to execute the final structure. This precedent uses two specific qualities the team wishes to focus. One is the use of mobile robotics and second an overall global design execution via one robot [6].
The Image above which was done by ASL, RSL, and GKR uses irregular stones to stack in a linear vertical application by triangulating its centroid and surface texture to create equilibrium between all rocks. Project Shamrock derived two key principals. Its complex stacking technique based on optimization and its concept to take on irregular geometries.
16
CHAPTER XX
FIGURE 01H: Larva Shell
Biological Role Model
Nature was a source of inspiration for our project. Our research led us to the Caddisfly model or order Trichoptera, a group of insects best known for the portable cases created by their larvae [7]. The suborder Integripalpia of caddisfly constructs a portable casing made of silk and added material to protect themselves as they are moving around looking for food. The caddisfly produce silk from glands on the lower lip (labium), forming a tubular protective case around the body of the larvae. The case is open at both ends and enlarges as the larvae grow. Sand grains or vegetable debris are incorporated into the structure of the case to provide rigidity and more protection [8]. Other materials can also be added such as larger fragments of rock, bark, sticks, leaves, and seeds. The design of the case and the nature of materials used depends on the larva’s genetic makeup and the material found in the
17
CHAPTER XX
FIGURE 01I End Effector Calibration (Source: R. Alshami & B. Elsbury)
surrounding environment. As constraints of assembly and materials are critical to design and construction of architecture, the nature of material found in the surrounding environment of the caddisfly forms a constraint. Caddisfly larvae cannot customize found materials; instead, they develop an ability to assemble found fragments by finding a fitting position in the constructed case. The assembly of the case is based on shape recognition of material elements found in the surrounding environment. This helps the caddisfly to blend in naturally with the surrounding environment [9]. In a context of robotic fabrication, what inspired us, was the ability of the caddisfly to scan and the environment and find material shapes suitable for their case. The scan and fit technique of the caddisfly forms a valuable framework for formal feedback in robotic construction and assembly in our project.
Differentiation
Our most notable deviation from current precedents is that we are utilizing a combination of straightforward processes. Additionally, using consumer grade parts to achieve a similar outcome. By taking advantage of the current gaming engine physics based environments on the market today instead of optimization modeling and FEM software, we believe that simulating the stacking process based on building methods could same time. Robotic end effector design is composed of simple materials that can be found anywhere without the need for complex technology which can help in the adaptation of a real-world robotic approach in harsh environments or any other environment. As mentioned earlier, using neural network approach
(machine learning via classification method) [10] takes a huge part in object recognition which is another advantage in our research to distinguish proper materials to stack and neglect unwanted materials. Project Shamrock will also combine all methods with Online Robotics to make updated decisions. Furthermore, our project can be used to create structures and outer landscaped elements. However, our long-term aim is to use our model in constructing structures in hostile or non-habitable environments such as Extra-planetary settings (Mars), war devastated areas or areas of a natural disaster where human interference is very difficult. Also, our model supports the idea of swarm construction without the need for a blueprint, where emergence and the relationship between the local and global is a fundamental concept.
18
19
Chapter 02: Workflow
A)Overall Workflow Chart _____Page 20 B) Digital Workflow _____Page 22 C) Physical Workflow _____Page 23
FIGURE 01J: KUKA Calibration of Granular Gripper in early stages.(Source: R. Alshami & B. Elsbury)
20
CHAPTER XX
CHAPTER XX
[1]
FIGURE 02A: Flow Chart (Source: R. Alshami & B. Elsbury)
Overall Workflow
Our working methodology is comprised of two segments; digital and physical. The digital workflow involves characterization that scans rock faces on a turntable. All scanned data are then sorted in a data base that has all the required information for each stone. This is called classification. After the classification process, a design environment is created where in unity 3D software rock meshes are stacked, where after that the point coordinates are being sent using UDP address for global, physical robotic process (KRL) which the physical part of the workflow. The physical workflow involves object detection that surveys the environment for rock allocation. Once rocks are allocated they are sorted in to a controlled environment using generated KRL code
for stacking. Finally using KUKA instructions, the robot stacks them in their designated location.
21
22
CHAPTER XX
CHAPTER XX
FIGURE 02B: Flow Chart (Source: R. Alshami & B. Elsbury)
Digital Workflow
Digital workflow takes on three distinct Categories. Characterization, Database, and Design Environment. The initial Characterization takes place by scanning individual rock faces and taking features such as deformations of the surface and edge conditions. Characterization of Project Shamrock happens in the very beginning before the physical workflow can take place. Characterization will then transfer all pertinent data to the primary database for storage. The Characterization always scans six faces of a stone regardless face set up. This process does not include global data such as XYZ and or object height in space. The heart and central structure is the database. The data stored can be ever growing and is infinite based on the simple logic of 6 as explained above. This fundamental constraint allows us to update the library without
miss matching data sets continually. The framework then creates packages of data trees. Because we setup characterization to always scan six faces, It then filters data from the physical workflow from surveying and then creates branches in 6 based on the data trees. The neuro network development uses the same logic and data tree structure to find the correct branch and access critical data to execute commands in the physical workflows. Data can be updated based on the tree structure because it overrides physical data. Physical engines such as Unity 3d serve as our modeling base. After characterization happens, it sends a solid mass to the primary database and then sent to unity 3d. Unity 3d then stacks the stones into its respected place and returns an XYZ coordinate, and face for final stacking. This data is also in the main library branch for access later.
Physical Workflow
The physical workflow includes the following categories; Object Detection & Surveying, KRL & workflow, and stacking. As described in the digital workflow, Object Detection is the only way to control what tree branch designated with information. This object workflow is the road map to achieve the correct stone by using neuro networks with classification. By scanning objects in global space, we can accomplish several things; such as the face of the rock is in the Z direction, location in world space, and heights of the rock face in conjunction with XY plane for KRL scripting. Besides, this data is live fed into the classification database for KRL scripting. KRL scripting uses online robotics with a feed to tell where the rocks are in space. This online workflow handles scanning data and updates XYZ coordinates
in global space. The other critical path is the workflow handles is the parameterized G0 and G1 concerning the reprogrammed object detection to prevent fatal crashing and collision with objects. The last part of the workflow is the overall control panel. The control panel entails several different factors. One being that it incorporates end effector Vacuum and scanner activation as well as controlling XYZ ABC [11]. The final part of the overall method is the Stacking sequence. This shall be determined by Unity 3d [7]. Data sent from Unity and after we know what rocks are in what order in the sequence the Shamrock engine can act and sort data paths and stack the stones. This whole process is repeated every time the robot makes a global scan of its environment
23
24
25
Chapter 03: Reconnaissance
A)Overall Scanning _____Page 26 B) Face Extraction _____Page 32
FIGURE 02C: KUKA Calibration of Granular Gripper in early stages. (Source: R. Alshami & B. Elsbury)
26
CHAPTER XX
FIGURE 03A: Scanning of Rocks.(Source: R. Alshami & B. Elsbury)
Overall Scanning
The classification is done for now in a controlled setting. Six sides of the object are scanned into the database which can be performed by using the same end effector. Moreover, the current model is produced by using a turntable in the robotics lab. Future developments plan to have the ability to scan certain sides of the rock and piece it together over time. The object then can be placed in a location at random by human or machine intervention. Object detection is completed by tilting end effectors ABC to scan the environment. In the current scheme, preset locations in space are used to scan the entire surface in which the rocks are placed. This method left us with various options to determine rocks. We could use the current Kinect method to triangulate the location of the stone relative to the complexity of the 4 point method. Since we are aware the global status of the
27
CHAPTER XX
FIGURE 03C: Scanning of Rock Horizontal. (Source: R. Alshami & B. Elsbury)
Kinect TCP because of pre-programmed locations and the view range of the sensors we can pinpoint the distance on the ground. The Diagram below explains the process. Formula is X-X1+X2 =New X Therefore vector [ X 1300-20+50=1330, Y 500-20+60=540, 300] Kinect Global TCP [X 1300,Y 500,Z 300] Z1
75 X1=20
75 X1=20
Main Focus Rock [50,60,0]
Kinect Local Coordinate [0,0,0] X2
Y2
FIGURE 03B: Tcp. (Source: R. Alshami & B. Elsbury)
FIGURE 03D: Main Focus of the Flow Chart. (Source: R. Alshami & B. Elsbury)
28
CHAPTER XX
CHAPTER XX
FIGURE 03G: Scanning Rock on ground (Source: R. Alshami & B. Elsbury)
FIGURE 03E: Scannin (Source: R. Alshami & B. Elsbury)
FIGURE 03F: Library Matching (Source: R. Alshami & B. Elsbury)
29
30
31
FIGURE 03G: Process of Scanning. (Source: R. Alshami & B. Elsbury)
32
CHAPTER XX
CHAPTER XX
FIGURE 03J: Kinect Calibration in Global Space (Source: R. Alshami & B. Elsbury)
FIGURE 03H: Library Matching (Source: R. Alshami & B. Elsbury)
Face Extraction
The Kinect uses point clouds to gather data [12]. The diagram to the right shows the Kinect perpendicular to the ground surface. The Data cloud shows the abrupt change in height which confirms there is an object in the current field of view. In turn, this can be used to create a cut plane in the XY direction to separate the noise from the floor and other debris thus focusing only on the rock face point cloud. Further development of the computational tool was executed by creating polylines around the edges and creating a surface based on the point cloud. This critical achievement lets the whole system work and brings Shamrock its relevant information to the database. Figures to the right show the actual end effector in action in its early stages of calibration and its final end effector application.
FIGURE 03i: Collect Kinect 3D Points (Source: R. Alshami & B. Elsbury)
FIGURE 03K: Scanning Rocks (Source: R. Alshami & B. Elsbury)
33
34
35
Chapter 04: Database
A) Method Overview _____Page 36 B) Machine Learning _____Page 38 C) Data Collection Management _____Page 38
FIGURE 04A: Scanning Rock Diagram (Source: R. Alshami & B. Elsbury)
36
37
[F] Post Processing
[E] All Object Scanned Data To Main Database [N] Live Simulation & Action On Physical Kuka
[D] Grabs Perimeter Of Rock Face And Creates Polyline For Training Input Classification.
[M] Parameterized KRL Instruction To Pick And Place.
Finds Centroid Of Polyline For Xyz Coordinates In Space. Locates Height Of Top Surface For Pick And Place
[L] Unity Coordinates Sent To KRL [C] Matches Global Coordinates Physical To Digital Orientation.
[K] Classifies 1 Face To Its Overall Rock Data In The Database. XYZ In Real Space And Heights.
[B] Quoka Scanning With Kinect For Cloud Points In Global Space.
[J] Single Scanned Rock Face Input To Compare With Main Database With Pre Scanned Faces
[A] Activation Of Project Shamrock Based On Rsi And Online Robotics.
Method
The Flow Chart Above Shows The Actual Computational Script And The Flow Associated With Execution Of The Overall Engine. The Order Goes From A-N In a Linear Sequence For The Majority.
[I] Polyline Manipulation For Classification Against Input Curve [H] Sent To Unity For Stacking And Final XYZ Coordinates [G] Main Database With Rock Faces And Coordinates
FIGURE 04B: Workflow (Source: R. Alshami & B. Elsbury)
38
CHAPTER XX
CHAPTER XX
Rock 1 Rock 2 Shamrock DataBase Rock 3
Rock 4
Rock 1 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] Rock 2 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] Rock 3 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] Rock 4 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] Rock 5 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid]
Rock 5
Classification Algorithm
Rock 1 Polyline Match______25% Rock 2 Polyline Match______70% Rock 3 Polyline Match______18% Rock 4 Polyline Match______92% Rock 5 Polyline Match______5%
UNITY
To KRL
Rock 4
[XYZ] [Height] [Unity XYZ] [Centroid]
Unknown Rock Data
Unknown Rock XYZ
Unknown Rock [XYZ] [1 Face] [Height] [Centroid]
Unknown Rock Polyline
FIGURE 04C: Breaking down Database (Source: R. Alshami & B. Elsbury)
Machine Learning
The Neuro network Approach used is currently based on the classification system via Grasshopper plugin called Crow [13]. In the figure above shows a basic way on how it is decided to get the valid rock. Six sides of the rock face are paired as train in data with other information. When the stone is scanned via object detection; the current unknown rock goes through its polyline extraction and information related to its spatial context. This data is then temporarily stored until the classification method is completed. In the Classification process, we used back propagation to determine the percentage match against the training data. The original polyline from the classification scan goes through a series of aggregation via control points to vary its initial scan. This solves the variation such as fuzzy or shadows that take place during object detection. After the classification is complete, it picks the highest percent match and grabs that Rocks Data tree to complete the KRL scripting.
FIGURE 04D: Breaking down Database (Source: R. Alshami & B. Elsbury)
Data Base
The data stored can be ever growing and is infinite based on the simple logic of 6 as explained. This fundamental constraint allows us to update the library without miss matching data sets continually. The framework then creates packages of data trees. Because we setup characterization to always scan six faces, It then filters data from the physical workflow from surveying and then creates branches in 6 based on the data trees. The Neuronetwork development uses the same logic and data tree structure to find the correct branch and access critical data to execute commands in the physical workflows. Data can be updated based on the tree structure because it overrides physical data. Global XYZ, six faces containing 20 separate intensified polylines per face for Train in data, object height, Unity XYZ, and the centroid for Gripper TCP final location. FIGURE 04E: Breaking down Database (Source: R. Alshami & B. Elsbury)
39
40
CHAPTER XX
CHAPTER XX
[E] Rotation
[Aggravated Polylines Rotated For Additional Train In Data]
[D] Aggravated Control Points
[Control Points Shifting Polyline For Train In Data Based On A Random Value]
Rewritten Classification
import ghpythonlib.components as gh import math import random from Grasshopper import DataTree from Grasshopper.Kernel.Data import GH_Path tree = DataTree[object]()
[C] Input Curve
[Scanned Polyline To Be Manipulated]
def poly(points,len): pointX=[] pointY=[] pointZ=[] newPointX=[] newPointY=[] newPointZ=[] newlistOfPoints=[]
[B] Perimeter of Stone Face Polyline [Points To Polyline]
[A] Rock Face
[Stone Being Scanned]
for i in range(0,len): pointX.append(points[i][0]) pointY.append(points[i][1]) pointZ.append(points[i][2]) for j in range(0, len): newPointX.append(pointX[j]+random.uniform(-2,2)) newPointY.append(pointY[j]+random.uniform(-2,2)) newPointZ.append(pointZ[j]+random.uniform(-2,2)) for k in range(0,len): newlistOfPoints.append(rg.Point3d(newPointX[k],newPointY[k],newPointZ[k])) return newlistOfPoints NewPoints =poly(points,len)
FIGURE 04F: Scanning Rock Diagram(Source: R. Alshami & B. Elsbury)
41
42
CHAPTER XX
Training Data
from Rhino.Geometry import * from Grasshopper import DataTree from Grasshopper.Kernel.Data import GH_Path import ghpythonlib.components as gh object_Lists = int(len(rockFaces) / 6) tree = DataTree[object]() curveTree = DataTree[Curve]() for i in range(0,object_Lists): tree.AddRange(rockFaces[i*6:i*6+6], GH_Path(i,0)) tree.AddRange(face_Deviation[i*6:i*6+6], GH_Path(i,1)) tree.AddRange(high_Points[i*6:i*6+6], GH_Path(i,2)) tree.AddRange(global_Rock_Location[i*1:i*1+1], GH_Path(i,3)) tree.AddRange(global_Current_Side[i*1:i*1+1], GH_Path(i,4)) # curves[i:i+6] will extract the list of 6 curves # GH_Path(tree.BranchCount) gives us the path where we want to add the list of 6 curves to the tree # We always create a new branch for each list of 6 curves, hence the index of that path is of course equal to the branch count. for j in range(0,object_Lists): curveTree.AddRange(rockFaces[i*6:i*6+6], GH_Path(j,0)) object_Data = tree oPolyLineCurves = curveTree
CHAPTER XX
Sorting Point Cloud
#sorts the 3d pointCloud sortedList=rs.SortPoints(Points,False,5) lastPoint=len(sortedList) #Grabs distance between the highest point and its orientation to xy to grab rock face refPoint=rs.AddPoint(sortedList[0][0],sortedList[0][1],0) distance=rs.Distance(sortedList[0],refPoint) #goes through the list and sorts the face from other points in space rockPoint=[] for i in range(0,len(sortedList)): if sortedList[i][2] > distance*.50: #clip plane tolerance rockPoint.append(sortedList[i]) #####OUTBOUND######## RockPointCloud=rockPoint ListLength=len(Points) OriginalPointList=Points NewPointList=sortedList #use to get planes. ReferencePoint=refPoint HighPoint=sortedList[0] LowPoint=rs.SortPoints(Points,True,5)[0]
43
44
CHAPTER XX
CHAPTER XX
Sorting Coordinates and Sequence import rhinoscriptsyntax as rs def getKey(item): return item[1] bigList = [] for i in range(0,len(meshIndex)): list = [i] list.append(meshIndex[i]) list.append(currentPosition[i]) bigList.append(list) l = bigList a =sorted(l,key = getKey) print a sortedCurrentPosition = [] for n in range(0,len(meshIndex)): sortedCurrentPosition.append(a[n][2]) #print sortedCurrentPosition oSortedCurrentPosition = sortedCurrentPosition
Control Panel
Shown above is the main control centre for the robotic online application. While it was equipped to be autonomous overrides were set in place to ensure correct execution of certain parts.
45
46
47
Chapter 05:Unity [Stacking & Build] A) Method Overview _____Page 48 B) Stacking In Unity 3D_part 1 _____Page 51 C) Stacking In Unity 3D_part 2 _____Page 52
FIGURE 05A: Stacking Formation. (Source: R. Alshami & B. Elsbury)
48
CHAPTER XX
CHAPTER XX
Shamrock DataBase Rock 1 [XYZ] [6 Faces] [Height] [Centroid] [Simple Mesh Volume] Rock 2 [XYZ] [6 Faces] [Height] [Centroid] [Simple Mesh Volume] Rock 3 [XYZ] [6 Faces] [Height] [Centroid] [Simple Mesh Volume] Rock 4 [XYZ] [6 Faces] [Height] [Centroid] [Simple Mesh Volume] Rock 5 [XYZ] [6 Faces] [Height] [Centroid] [Simple Mesh Volume]
Updated Shamrock DataBase
Extracted Data Rock 1 [6 Faces] [Simple Mesh Volume] Rock 2 [6 Faces] [Simple Mesh Volume] Rock 3 [6 Faces] [Simple Mesh Volume] Rock 4 [6 Faces] [Simple Mesh Volume] Rock 5 [6 Faces] [Simple Mesh Volume]
Rock 1 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] [Simple Mesh Volume] Rock 2 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] [Simple Mesh Volume] Rock 3 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] [Simple Mesh Volume] Rock 4 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] [Simple Mesh Volume] Rock 5 [XYZ] [6 Faces] [Height] [Unity XYZ] [Centroid] [Simple Mesh Volume]
Rock 5 Global Centroid XYZ Rock 2 Global Centroid XYZ Rock 4 Global Centroid XYZ Rock 3 Global Centroid XYZ Rock 1 Global Centroid XYZ
Data To KRL Rock 1 [XYZ] [Height] [Unity XYZ] Rock 2 [XYZ] [Height] [Unity XYZ] Rock 3 [XYZ] [Height] [Unity XYZ] Rock 4 [XYZ] [Height] [Unity XYZ] Rock 5 [XYZ] [Height] [Unity XYZ]
FIGURE 05C: Stacking Formation In Unity. (Source: R. Alshami & B. Elsbury)
Method Overview
FIGURE 05B: Stacking Final Formation.(Source: R. Alshami & B. Elsbury)
The construction process of the walls is pretty straightforward. The foundation is dug first creating a level bottom trench wide enough for the base stones to fit into and about the same depth, as they are thick, then compact the bottom with a hand tamper [14]. Usually, the trench is 3” - 6” below grade so that it cannot be shifted at its base. For both freestanding walls and retaining walls, it’s necessary to dig a trench about 6 to 12 inches below grade and 2 to 3 inches wider than the base of the wall. Next, a heavy layer of crushed stone is laid to level the foundation trench [15]. Once the trench is leveled, large stones are placed at the bottom forming the base of the wall. The Foundation Stones are usually the largest stones in the wall, and may be partly or entirely below ground depending on the conditions in which the wall is being built [14]. Once the foundation stones are laid, courses of stone stacked like bricks in a one-over-two, two-over-one pat
tern, ensuring that each joint or break is crossed, which is known as joint breaking [16]. For stability, walls should be at least 20 inches wide at the base. Walls are constructed either as double layers i.e. which is made of two rows of stones that are built in courses with tie stones cutting across to create a bond, or as a single row. Some walls, known as Galloway dykes, combines both methods where the base consists of a double-wall construction with single-wall construction above. Outer stones are known as face stones with larger stones at bottom and smaller ones as the wall rises [17]. The inside of the double wall and in-between face stones is filled with smaller stones, a process called hearting. Tie through stones that go all the way through the wall help bind the wall together. These tie stones are spaced approximately 2 feet or 18 inches apart throughout the wall [18].
49
50
CHAPTER XX
FIGURE 05D: Stacking Formation Simulation. (Source: R. Alshami & B. Elsbury)
Method Overview
Walls are usually given a slight pitch-black or batter. Nevertheless, Retaining walls need to have a greater batter- about 1” back for every 12” of height. This rule applies only to retaining walls, but accent walls also benefit aesthetically and, to a degree, structurally from this construction technique . Usually while constructing, stones are pitched toward the center of the wall making sure that stones either lie flat or pitch back. Pitching out will cause the stones on top of them to slide outward and destroy the wall. Furthermore, it is best to use larger stones on the bottom of a drywall for a strong base. Exceptions would be the tie through stones and cap stones, which will help structurally. The base course must be level and firmly installed so use shim stones to help fill in voids and level individual stones as needed. The top of the wall is crowned with cap stones, which
51
CHAPTER XX
help hold the top of the wall together, and keep out moisture and eliminate frost damage. Finally, the cracks of the face are filled with slivers or chips to help tighten the wall and increase its structural integrity [19]. our methodology follows the traditional dry stacking method mentioned earlier, however; Our approach was simplified to better understand the communication between robot and user.
FIGURE 05E: Stacking Formation Simulation In Unity.(Source: R. Alshami & B. Elsbury)
Stacking In Unity 3D_part 1
Our working methodology was based on developing a script utilizing 3D Unity game engine. At the beginning, rocks are scanned from the surrounding environment as shown and mentioned earlier. Each scanned rock becomes a point cloud. Our initial script converts these point clouds into 3D meshes. Each 3D mesh is given physical properties e.g. mass, material, collision….etc. The initial script utilizes the Unity game engine to create neighboring cells for each 3D mesh. These cells extend in all directions i.e (+x,+y,+z)(-x,-y,-z)(+x,-y,+z) (-x,+y,+z)(+x,+y,-z)... etc. the script randomly chooses meshes. Once these meshes are selected they become agent. Once the neighboring cell of a mesh comes in contact with another neighboring cell, the script allows the stacking of these meshes together to build a wall. In this first attempt to script we limited the construction to a vertical stacking; where the rocks
only cn be stacked on top of each other, i.e the agents can only move in the x and z directions and not in the y.
52
53
FIGURE 05F: Stacking Formation Simulation In Rhino. (Source: R. Alshami & B. Elsbury)
Stacking In Unity 3D_part 2
In order to bring the script more into the reality of physical construction, we investigated the actual construction process of dry stone stacking. One of the most crucial aspects of dry stone stacking is the selection of stone appropriate for construction in terms of shape and size. Shape is of great importance. Traditionally, dry walls are built from stones that have flat faces and square or rectangular shapes; mostly, they have six faces that are compatible with faces of other stones [20]. Once a compatibility is reached with visual inspection, stones are stacked a top each other. This inspired us to digitize this process and we developed the script to recognize six faces for each mesh. The six faces of each mesh are then stored into a data base for later comparison and retrieval as shown in figure(05F). Once stacking is initiated, the code runs through the data base and matches faces of meshes to already
stacked faces. Once a match of a single face is made, the script then compares the physical properties of each mesh with the found match, in order to determine the compatibility and ability to stack together. Once more than one face is matched, the script investigates more the physical properties like size and shape of the rock mesh. Once stacking is initiated, the code runs through the data base in grasshopper and matches faces of meshes to already stacked faces in unity 3D. Once a match of a single face is made, the script then compares the physical properties of each mesh with the found match ( size, shape and form), in order to determine the com-
FIGURE 05G: Rendering. (Source: R. Alshami & B. Elsbury)
Stacking In Unity 3D_part 2
Once more than one face is matched, i.e 2 or 3 faces are matched, the script investigates more the physical properties like the size of the rock vs the gap between the stacked rocks. The scripts includes several IF conditions that checks the properties of a matched rock with stacked rocks. In the case of a positive comparison, the rock mesh is selected and stacked, in the case of a negative response the script runs through the data base again to find a better match. This process cycles and recycles until the desired design form is reached.This script is flexible enough to incorporate not only the conditions of traditional wall stacking; it also response to the imagination and desire of the user.that is it can create several alternatives based on the availability of stones stored in the data base and the desired and intention of the user.
54
55
Chapter 06: Digital to Reality A) Online Robotics _____Page 56 B) Parametric Implantation _____Page 59
FIGURE 06A: Rock Stack. (Source: R. Alshami & B. Elsbury)
56
57
Client One [Digital] Processes [Train In Data] Processes [Final Stack] Processes [Neuronetwork Classification] Processes [Rock Faces] Sends [Final Stack Position] Recieves [ Polylines] Recieves [Post Processes] Recieves [Rock Faces]
Client Two [Robotics]
[VIA WiFi UDP]
Processes [Scanning Movement] Processes [G0 And G1] Processes [Pick Move Place] Sends [Rock Faces] Sends [Post Processes] Sends [Polyline] Sends [XYZ Global] Sends [ABC] Sends [Global Stack] Sends [Vacuum Instruction] Sends [Kinect Scan] Recieves [XYZ stack Position]
[VIA Ethernet Connection]
[VIA Hardwire ] Kuka [End Effector]
Vacuum [On or Off] Kinect [Scanning]
Server[Online Robotics]
Executes [Scanning Movement] Executes [G0 And G1] Executes [Pick Move Place]
FIGURE 06C: Online Workflow. (Source: (Source: R. Alshami & B. Elsbury)
Online Robotics
With Online Robotics and Several functions of the script the team decided to split processing power between several computers. 2 clients 1 server and then control box. FIGURE 06B: WorkFlow (Source: ICD Flow Control)
Client 1 and Client 2 work together to execute various commands as shown in the chart above. This relationship is separated into 1 being robotic workflow and relationships to the server to run KRL commands. The other processes machine learning, database, and scanning. Client 1 is in charge of handling the several background processes related to the stacking and Machine learning. These processes are then given to Client 2 for processing coordinates. Client 2 is the robotics, it handles Scanning movement
on the global environment by scanning a grid. This grid provided exact coordinates for processed data. It also in conjunction processes the safety and parametric constraints such as G0 and G1 commands in which we explain in this chapter. Client 2 also uploads the global rock position and prepares the pick and place of the received data from client 1. It also commands Kinect Cameras and Vacuum execution. Both Client 1 and client 2 Share a UDP connection via Wifi connection.
58
CHAPTER XX
59
CHAPTER XX
G0 Vacuum off
Global position
G1 pause 4 Seconds Vacuum on
END/START
Stacked Position
G0 Vacuum on
G0 Vacuum on
Step to next Position
FIGURE 06E: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury)
Parametric Implantation
In addition to the online robotics and the neuro-network classification project shamrock had to deal with external end effectors. With rock positions constantly changing we decided to parameterize the picking and placing methods. By connecting the placement of the rocks in space and its final resting place we can connect the gaps and create a simple on off with activation of the gripper. The diagram above shows the logics behind the commands.
FIGURE 06D: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury)
G1 Pause 4 Seconds Vacuum off
60
61
This Page Is Intentionally Left Blank
FIGURE 06F: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury)
62
63
Chapter 07: End Effector
A) Prototype Anatomy _____Page 64 B) Advancement _____Page 65 C) Demontage and Views _____Page 66 D) Mechanics _____Page 67
FIGURE 07A: End Effector Fabrication (Source: R. Alshami & B. Elsbury)
64
65
[A] Granular Gripper [Coffee Bean Aggregate] [Fuel Funnel] [Balloon] [Hot Glue] [Soft Fabric Screen]
[B] Spring Loaded Compression Sleeve [Typical Lag Bolts] [Lock Nuts] [RC suspension Springs ] [Profile L angle]
[C] Profile
[Bosch Profile]
[D] Kinect (Not Shown Here) [Typical Lag Bolts] [Lock Nuts] [RC suspension Springs ] [Profile L angle]
FIGURE 07C: End Effector Prototype (Source: R. Alshami & B. Elsbury)
[E] Vacuum Pump & Lines
[Vacuum Pump] [22mm Vacuum Line] [Drilled Entry To Granular Gripper] [Analog Vacuum Gauge] [Misc Hose Clamps]
[F] Flange
[24.5 mm Wood Block] [Drilled Holes for Robot Flange] [L Angle Countersunk Holes]
FIGURE 07B: End Effector Fabrication (Source: R. Alshami & B. Elsbury)
Prototype Anatomy
Our end effector is composed of three basic parts; A granular gripper, a vacuum pump and a kinect for scanning. The prototype shown in figure (xx) was the start for our gripping process.
Advancement
After several attempts we looked into developing the end effector to be more efficient and more stable;hence one of the issues we tackeld was the size and scale of the old end effector which was not as dynamic as needed. Therefore, we developed a mechanical system to obtain effective and flexible movement, where it eased the process of picking when it pushes on the objects. Our model introduces hardware and software complexities. When pressed onto a target object, the vacuums gets activated and the granular gripper takes the form of the object.
66
67
FIGURE 07E: End Effector Prototype Generation 2 (Source: Rasha Al-Shami)
FIGURE 07D: End Effector Prototype Generation 2 (Source: R. Alshami & B. Elsbury)
FIGURE 07F: End Effector Prototype Actuation (Source: R. Alshami & B. Elsbury)
68
69
Chapter 08: Execution A) Scan _____Page 70 B) Pick _____Page 71 C) Place _____Page 73
FIGURE 08A: End Effector In Action (Source: R. Alshami & B. Elsbury)
70
71
FIGURE 08B: End Effector Scan (Source: R. Alshami & B. Elsbury)
FIGURE 08C: End Effector Place (Source: R. Alshami & B. Elsbury)
72
73
FIGURE 08C: End Effector Place (Source: R. Alshami & B. Elsbury)
FIGURE 08C: End Effector Place (Source: R. Alshami & B. Elsbury)
74
75
Chapter 09: Outlook
76
77
CHAPTER XX
FIGURE 09A: Rock Stacking in Action (Source: R. Alshami & B. Elsbury)
Conclusion
This research presented an attempt to develop a technique for robotic fabricating of traditional dry stone stacking. The basic architectural idea of this project was to liberate a traditional construction technique and extend a known technology and integrate into the age of digital fabrication. With the development of two scripts and the utilization of robotics, dry stone stacking was extended well into the twenty first century. This extension cuts time, enables working in none-friendly human environment, and reduces dependability on traditional craftsmanship while creating an environment that is aesthetically appealing. Previously, the dry stone process was limited and the final result could not be imagined before the construction ended. With computation the introduction of robotics, data for design, material selections, and robotic assembly were generated in a computational environment allowing alternatives can be generated and end results to be examined in ideation before realization. Due to restrictions of time and resources, further investigations were not possible. Nevertheless, this project has implications across other research engaging digital fabrication, through demonstrating benefits of close interactions between computation, robotics, and practices of material craft. Future projects can explore the application of this way of thinking to other building components or other traditional building
techniques. The integration of non-standard prefabrication and robotic assembly in a combined digital and physical workflow expands design opportunities, as the production and assembly of wall and may be in later stages floor elements is no longer based on the use of repetitive standardized units. Additionally, this technique offers potential reductions in volumes of waste and increases of reuse ruins and waste material. Furthermore, the research will be further expanded through the application of additional end effectors such as robotic assembly in a combined digital and physical workflow expands design opportunities, as the production and assembly of wall and may be in later stages floor elements is no longer based on the use of repetitive standardized units. Additionally, this technique offers potential reductions in volumes of waste and increases of reuse ruins and waste material. Finally, architecture and engineering are primarily concerned with two core activities: designing and making. These are not mutually exclusive and often inform one another in a continuous dialogue as designs progress from ideation to design to realization of a building. The ability move from one to the other effectively increases the ability to integrate the analog and digital and the move between techniques and processes to produce physical objects that, ranging from conceptual diagrams, to scale models, and full-size prototypes.
FIGURE 09B: End Effector Electronics (Source: R. Alshami & B. Elsbury)
78
79
Text References. .
FIGURE 00A: Selecting Rocks. (Source: R. Alshami & B. Elsbury) FIGURE 00B: Dry Stacking . (Source: R. Alshami & B. Elsbury) FIGURE 01A: Dry Stacking in Context (Source:https://i.ytimg.com/vi/pb2BoWwDquM/maxresdefault.jpg) FIGURE 01B: Disaster Areas where rebuilding is based on rubble (Source: https://tnimage.taiwannews.com.tw/photos/shares/AP/20170216/ 66a849a724d342f1bc1c903409a4a186.jpg FIGURE 01C: Building a Dry Stack Wall.(Source :The Garden of Eaden. how to build a dry stone wall. [ONLINE] Available at: https://gardenofeaden.blogspot.de/2011/04/how-to-build-dry-stone-wall.html. [Accessed 24 October 2017]. FIGURE 01D: Reincarnation. (Source :https://pixabay.com/en/massive-granite-grey-rocks-stone-2491941/) (Source :http://pngimg.com/ download/13560) (Source :http://ninjainatux.com/blog/2016/09/17/more-painting/) FIGURE 01E: Reincarnation. (Source: Rasha Al-Shami) FIGURE 01F: Springer International Publishing Switzerland 2016 D. Reinhardt et al. (eds.), Robotic Fabrication in Architecture (Source:http://assets.inhabitat.com/wp-content/blogs.dir/1/files/2015/10/In-Situ1.jpg) FIGURE 01G: Autonomous Systems Lab (ASL) and the Robotic Systems Lab (RSL) and Gramazio Kohler Research (GKR), Robotic Aggregation of Materials with Irregular Geometries (Source: http://www.dfab.ch/wp-content/uploads/2014/08/stone-stacking.jpg) FIGURE 01H: Larva . (Source: http://tolweb.org/Odontoceridae/14590) FIGURE 01I End Effector Calibration (Source: R. Alshami & B. Elsbury) FIGURE 01J: KUKA Calibration of Granular Gripper in early stages.(Source: R. Alshami & B. Elsbury) FIGURE 02A: Flow Chart (Source: R. Alshami & B. Elsbury) FIGURE 02B: Flow Chart (Source: R. Alshami & B. Elsbury) FIGURE 02C: KUKA Calibration of Granular Gripper in early stages. (Source: R. Alshami & B. Elsbury)
Chapter 10: References
FIGURE 03A: Scanning of Rocks.(Source: R. Alshami & B. Elsbury) FIGURE 03B: Tcp. (Source: R. Alshami & B. Elsbury) FIGURE 03C: Scanning of Rock Horizontal. (Source: R. Alshami & B. Elsbury) FIGURE 03D: Main Focus of the Flow Chart. (Source: R. Alshami & B. Elsbury) FIGURE 03E: Scannin (Source: R. Alshami & B. Elsbury) FIGURE 03F: Library Matching (Source: R. Alshami & B. Elsbury) FIGURE 03G: Process of Scanning. (Source: R. Alshami & B. Elsbury) FIGURE 03H: Library Matching (Source: R. Alshami & B. Elsbury) FIGURE 03i: Collect Kinect 3D Points (Source: R. Alshami & B. Elsbury) FIGURE 03J: Kinect Calibration in Global Space (Source: R. Alshami & B. Elsbury) FIGURE 03K: Scanning Rocks (Source: R. Alshami & B. Elsbury) FIGURE 04A: Scanning Rock Diagram (Source: R. Alshami & B. Elsbury) FIGURE 04B: Workflow (Source: R. Alshami & B. Elsbury) FIGURE 04C: Breaking down Database (Source: R. Alshami & B. Elsbury) FIGURE 04D: Breaking down Database (Source: R. Alshami & B. Elsbury) FIGURE 04E: Breaking down Database (Source: R. Alshami & B. Elsbury) FIGURE 04F: Scanning Rock Diagram(Source: R. Alshami & B. Elsbury) FIGURE 05A: Stacking Formation. (Source: R. Alshami & B. Elsbury) FIGURE 05B: Stacking Final Formation.(Source: R. Alshami & B. Elsbury) FIGURE 05C: Stacking Formation In Unity. (Source: R. Alshami & B. Elsbury) FIGURE 05D: Stacking Formation Simulation. (Source: R. Alshami & B. Elsbury) FIGURE 05E: Stacking Formation Simulation In Unity.(Source: R. Alshami & B. Elsbury) FIGURE 05F: Stacking Formation Simulation In Rhino. (Source: R. Alshami & B. Elsbury) FIGURE 05G: Rendering. (Source: R. Alshami & B. Elsbury) FIGURE 06A: Rock Stack. (Source: R. Alshami & B. Elsbury) FIGURE 06B: WorkFlow (Source: ICD) FIGURE 06C: Online Workflow. (Source: R. Alshami & B. Elsbury) FIGURE 06D: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury) FIGURE 06E: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury) FIGURE 06F: Parameterizing the Robot. (Source: R. Alshami & B. Elsbury) FIGURE 07A: End Effector Fabrication (Source: R. Alshami & B. Elsbury) FIGURE 07B: End Effector Fabrication (Source: R. Alshami & B. Elsbury) FIGURE 07C: End Effector Prototype (Source: R. Alshami & B. Elsbury) FIGURE 07D: End Effector Prototype Generation 2 (Source: R. Alshami & B. Elsbury) FIGURE 07E: End Effector Prototype Generation 2 (Source: Rasha Al-Shami) FIGURE 07F: End Effector Prototype Actuation (Source: R. Alshami & B. Elsbury) FIGURE 08A: End Effector In Action (Source: R. Alshami & B. Elsbury) FIGURE 08B: End Effector Scan (Source: R. Alshami & B. Elsbury) FIGURE 08C: End Effector Place (Source: R. Alshami & B. Elsbury) FIGURE 09A: Rock Stacking in Action (Source: R. Alshami & B. Elsbury) FIGURE 09B: End Effector Electronics (Source: R. Alshami & B. Elsbury)
80
Text References.
[1] Seymour, John (1984). The Forgotten Arts A practical guide to traditional skills. page 54: Angus & Robertson Publishers. p. 192. ISBN 0-207-15007-9.
[2 Bernardi Building Supply. 2015. How Dry-Stacked Stone Walls Are Used in Landscapes. [ONLINE] Available at: https://bernardibuildingsupply.com/. [Accessed 24 October 2017]. [3] Atomik interiors /7-advantages-using-drywall/. 2014. 7 Advantages Of Using Drywall. [ONLINE] Available at: http://www.atomikinteriors. com/7-advantages-using-drywall/. [Accessed 24 October 2017]. [4] Wikipedia. 2017. Dry stone. [ONLINE] Available at: https://en.wikipedia.org/wiki/Dry_stone. [Accessed 24 October 2017]. [5] Martin Wermelinger, Fadri Furrer and Hironori Yoshida. 2015. Robotic Aggregation of Materials with Irregular Geometry. [ONLINE] Available at: http://www.dfab.ch/research/robotic-aggregation-of-materials-with-irregular-geometry/. [Accessed 24 October 2017]. [6] Dörfler, Kathrin & Sandy, Timothy & Giftthaler, Markus & Gramazio, Fabio & Kohler, Matthias & Buchli, Jonas. (2016). Mobile Robotic Brickwork. 204-217. 10.1007/978-3-319-26378-6_15. [7] Glenn B. Wiggins, Larvae of the North American Caddisfly General (Trichoptera), 2nd. ed. (Toronto: University Press, 1996), p. 3 [8] “Caddis Flies (Trichoptera)”. Life in Fresh Water. Field Studies Council. Retrieved 1 May 2017. a b Neboiss, A.; Dean, J.C. (1991). “Tric [9] christopher jobson. 2014. Artist Hubert Duprat Collaborates with Caddisfly Larvae as They Build Aquatic Cocoons from Gold and Pearls. [ONLINE] Available at: http://www.thisiscolossal.com/2014/07/hubert-duprat-caddisflies/. [Accessed 24 October 2017]. [10] Alpaydin, Ethem (2010). Introduction to Machine Learning. MIT Press. p. 9. ISBN 978-0-262-01243-0. [11] Braumann, Johannes; Brell-Cokcan, Sigrid (2011). Parametric Robot Control. Integrated CAD/CAM for architectural design (PDF). www. robotsinarchitecture.org. Retrieved 14 May 2016. [12] Daniel shiffman. 2015. Getting Started with Kinect and Processing. [ONLINE] Available at: http://shiffman.net/p5/kinect/. [Accessed 24 October 2017].] [13] Benjamin Felbrich. 2017. Grasshopper. [ONLINE] Available at: http://www.grasshopper3d.com/group/crow. [Accessed 24 October 2017]. [14] This cob house. 2013. Building a Stone Foundation. [ONLINE] Available at: http://www.thiscobhouse.com/building-a-stone-foundation/. [Accessed 24 October 2017]. [15] Courtney Olander. 2015. Garden Walls: Dry-Stacked Stone Walls Keep Their Place in the Garden. [ONLINE] Available at: https://www. houzz.com/ideabooks/45861032/list/garden-walls-dry-stack-keeps-its-place-in-todays-gardens. [Accessed 24 October 2017]. [16] American Stone. 2017. How To Build Drystack Garden Walls. [ONLINE] Available at: http://www.american-stone.com/american-stoneblog/6-how-to-build-drystack-garden-walls.html. [Accessed 24 October 2017]. [17] Nick Aitken. 2016. The Galloway Dyke and the Feidín Wall. [ONLINE] Available at: https://thestonetrust.org/the-galloway-dyke-and-thefeidin-wall/. [Accessed 24 October 2017]. [18] Sean clifford. 2008. walls of stone: how to build drystone walls and rock fences (1996-01). [online] Available at: https://www.ncptt.nps. gov/blog/walls-of-stone-how-to-build-drystone-walls-and-rock-fences-1996-01/. [Accessed 24 October 2017]. [19] Delaware Quarries, Inc. 10 Basic Rules for Dry Stacked Walls. [ONLINE] Available at: http://www.delawarequarries.com/landscape/wallstone/rules.html. [Accessed 24 October 2017]. [20] Joe norton. 2017. Choosing Rocks for Building Stone Walls. [ONLINE] Available at: https://www.thespruce.com/choosing-rocks-forbuilding-stone-walls-2131811. [Accessed 24 October 2017].