2
CONTENTS 1. INTRODUCTION 5 2. GENERATION 7 BEHAVIOUR 3. GENERATION 23 PRIMITIVES AND DEFORMATION 4. PRODUCTION 51 5. ANALYSIS AND CONCLUSION
73
CONTENTS
3
4
Design Workshop II DW 102A Shajay Bhooshan WORKSHOP INTRODUCTION
INTRODUCTION
INSTRUCTING MACHINES This workshop focuses on the intersection of architecture and engineering. The workshop is based on fundamental computational concepts of coding of natural phenomena/forces to generate design patterns that will be instructed to the robot to draw and execute. execute.
INTRODUCTION
5
6
2.
1.
INITIAL POSITION
MARKING THE Z-AXIS ON PAPER
CALIBRATION
GENERATION
DRAWING THE POINTS ON PAPER
BEHAVIOURS
7
? ?
?
Each particle checks the distance between itself and every other particle.
All distances are checked if they are within the Collision Raduis that is set.
ATTRACTION COLLISION: Inter-particle attraction controlled by collision raduis and collision strength. 0.1500
Collision Strength 7.0000
8
COLLISION
Collision Raduis
PARTICLE - PARTICLE BEHAVIOUR
If a particle is within that range, find the vector between the two partciles and move incrementally towards that direction according to the Collision Strength Factor set.
COLLISION LOGIC
The difference between collision attraction and collision repulsion is the charge sign. A positive charge activates attraction as the direction is towards that particle. Whereas, a negative charge activates repulsion, where the direction is flipped to be away from the particle.
REPULSION COLLISION: Inter-particle repulsion controlled by collision raduis and collision strength. 0.1000
Collision Strength 5.0000
COLLISION CODE
Collision Raduis
PARTICLE - PARTICLE BEHAVIOUR
COLLISION
9
UpVec Child Vector
Particle Vector
ONE-DIRECTIONAL SPLITTING: Parent particle splitting to child while maintaining direction. CHILD PARENT CHILD
10
SPLITTING PARTICLE - PARTICLE BEHAVIOUR
The cross product of UpVec (a vector in the Z direction) and the particle vector, gives us the perpendicular vector, which is that of the child.
CODE CODEAND ANDLOGIC LOGIC
UpVec Child Vector
Particle Vector New Particle Vector
TWO - DIRECTIONAL SPLITTING: Parent particle splits into child and moves to the perpendicular direction to it. CHILD
PARENT
PARENT
CHILD
The cross product of UpVec (a vector in the Z direction) and the particle vector, gives us the perpendicular vector, which is that of the child. The parent then takes the inverse of the child’s vector.
CODE AND LOGIC
PARTICLE - PARTICLE BEHAVIOUR
SPLITTING
11
(x1,y1,z1)
Target position Particle position
(x,y,z)
(x1-x, y1-y, z1-x) (0,0,0)
The difference between the target position and the particle position give us the distance and direction the particle needs to travel.
Unitizing the vector, so the particle shows incremental movement towards the target. Adding the increments to the previous particle position to update it.
GLOBAL TARGET ATTRACTION: Resultant attraction force from a set of targets.
12
GLOABAL ATTRACTION
PARTICLE - TARGET BEHAVIOUR
PARTICLES MOVEMENT LOGIC
Charge = +1 Charge = -1
ATTRACTION REPULSION
The negative sign inverses the direction of the vector hence making the particle move further away from the target
GLOBAL TARGET REPULSION: Resultant repulsion force from a set of targets.
CODE
PARTICLE - TARGET BEHAVIOUR
GLOBAL REPULSION
13
? ?
Each particle should check distance with all of the targets.
?
The closest distance is stored and the ID of that particular target.
Incremental movement is then initiated towards or further away from that specific target.
CLOSEST TARGET ATTRACTION: Particle moves towards closest target.
14
CLOSEST ATTRACTOR
PARTICLE - TARGET BEHAVIOUR
FINDINGCLOSEST CLOSESTTARGET TARGETLOGIC LOGIC FINDING
Charge = +1 Charge = -1
ATTRACTION REPULSION
leastD is a float that keeps overwriting itself once it finds a lower value (closer target), the last value it holds is the lowest one.
CLOSEST TARGET REPULSION: Particle moves away from closest target.
CODE
PARTICLE - TARGET BEHAVIOUR
CLOSEST REPELLER
15
MOVING TARGETS: Particles follow targets movements.
16
MOVING TARGETS
PARTICLE - TARGET BEHAVIOUR
CODE
UpVec Spin Force
Particle to Target Vector
SPINNING: Particles relative to targets and spinning strength factor.
The cross product of UpVec (a vector in the Z direction) and the particle to target vector, gives usthe perpendicular vector, which is the spin force.
CODE AND LOGIC
PARTICLE - TARGET BEHAVIOUR
SPINNING
17
0.1000
Time Step
0.0100 1.2000 0.0500 0.2000
Target Strength Target Speed Spin Strength
0.0100
Drag Strength
0.1000
Collision STrength 5.0000
18
Gravity Strength
Collision Raduis
COMPOSITE BEHAVIOURS
COMPOSITE BEHAVIOURS
19
20
CLOSEST TARGET REPELLER
CLOSEST TARGET ATRRACTOR
GLOBAL TARGET REPULSION
ONE DIRECTIONAL SPLITTING
TWO DIRECTIONAL SPLITTING
OPPOSITE ONE DIRECTIONAL SPLITTING
BEHAVIOURS CATALOGUE
GLOBAL TARGET ATTRACTION
MOVING TARGETS
SPINNING
COLLISION ATTRACTION |
COLLISION REPULSION
GRAVITY
BEHAVIOURS CATALOGUE
21
22
1.
GENERATION PRIMITIVES AND DEFORMATIONS
23
0.1 1.0 0.5
Timestep targetStrength targetSpeed
INITIAL PRIMITIVE DEVELOPMENT
24
PRIMITIVES
01
LINEAR MOVING TARGETS
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF DEVELOPMENT
01
PRIMITIVES
25
0.25
Timestep
1.2
targetStrength
0.5
targetSpeed
Intent of the deformation is to reduce complication of previous form by increasing the timestep variable and hence creating a similar pattern with reduced number of points.
26
DEFORMATIONS
01 | 01
TIMESTEP PARAMETER EFFECT
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF THE DEFORMATIONS
01 | 01
DEFORMATIONS
27
0.1 1.0 0.5 10 0.001
Timestep targetStrength targetSpeed CollisionRadius collisionStrength
+
attraction forces
APPLYING VARIOUS DEFORMATIONS PREVIOUSLY INVESTIGATED ON THE PRIMITIVES GENERATED TO CREATE NEW PATTERN
28
DEFORMATIONS
01 | 02
P-P ATTRACTION
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF THE DEFORMATIONS
01 | 02
DEFORMATIONS
29
0.1 1.0 0.5 10 0.001
Timestep targetStrength targetSpeed CollisionRadius collisionStrength
+
repulsion forces
in contrast to previous particle to particle attraction forces, that created unordered local point groups, this deformation reverses the p-p forces to repulse. This creates more ordered pattern as opposed to previous.
30
DEFORMATIONS
01 | 03
P-P REPULSION
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF THE DEFORMATIONS
01 | 03
DEFORMATIONS
31
0.1 1.0 0.05
Timestep targetStrength targetSpeed
the second primitive, which is defined by the radial movement of the target group (red), and the particles that follow the targets.
32
PRIMITIVES
02
RADIAL MOVING TARGETS
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF DEVELOPMENT
02
PRIMITIVES
33
0.1 1.0 0.5 10 -0.001
Timestep targetStrength targetSpeed CollisionRadius collisionStrength
+
repulsion forces
investion of effects of particle to particle repulsion forces on the primitive 02. It is observed that although this creates an orderly disperse pattern, the overall pattern became more destablized.
34
DEFORMATIONS
02 | 01
P-P REPULSION
PHASE 1
PHASE 1
PHASES OF THE DEFORMATION
PHASE 1
02 | 01
DEFORMATIONS
35
0.1 1.0 0.5 10 0.001
Timestep targetStrength targetSpeed CollisionRadius collisionStrength
+
attraction forces
investion of effects of particle to particle attraction forces on the primitive 02. It is observed that local attraction zones that create a second layer to the overall pattern, nevertheless the dispersion is not clear and homogenous.
36
DEFORMATIONS
02 | 02
P-P ATTRACTION
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF THE DEFORMATIONS
02 | 02
DEFORMATIONS
37
0.1
Timestep
1.0
targetStrength
0.5
targetSpeed
500
CollisionRadius
0.001
collisionStrength
-11
targetRepulsion
100
targetEffRadius
+
+
attraction forces
field repulsion
in addition to the particle to particle forces, multiple target fields are located as a radial orbit around the centre of the pattern. This field combined with the particle to particle forces, has a varied overall effect on the generation of the pattern.
38
DEFORMATIONS
03
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF THE DEFORMATIONS 03
DEFORMATIONS
39
0.1
Timestep
1.0
targetStrength
0.5
targetSpeed
500
CollisionRadius
0.001
collisionStrength
-11
targetRepulsion
100
targetEffRadius
+
+
repulsion forces
field repulsion
in addition to the particle to particle forces, multiple target fields are located as a radial orbit around the centre of the pattern. This pattern uses p-p repulsion forces as opposed to the previous which used p-p attraction. This field combined with the particle to particle forces, has a varied overall effect on the generation of the pattern.
40
DEFORMATIONS
02 | 03
P-P REPULSION + FIELD REPULSION
PHASE 1
PHASE 2
PHASE 3
PHASES OF THE DEFORMATIONS
02 | 03
DEFORMATIONS
41
0.25 1.2 0.5
Timestep targetStrength targetSpeed
the third primitive, which is defined by the radial movement of two target group (red), and the particles that follow the targets. The pattern emerged is a double loop with different patterns that create variety in particle trails.
42
PRIMITIVES
03
DOUBLE RADIAL MOVING TARGETS
PHASE 1
PHASE 2
PHASE 3
PHASE 4
PHASES OF DEVELOPMENT
03
PRIMITIVES
43
1.0
target Strength
0.5
targetSpeed
2.0
magnetStrength
0.25
timeStep
0.01
gravityStrength
0.1
spinStrength
0.02
dragstrength
0.1 10 1000000.0
collisionstrength collisionRadius targetEffectRadius
No. of targets=27 Particle to target forces-Cause of deformation
The targets exert attraction upon the particle in a grid of 9 targets.This gives a resultant force causing the particles to get attracted to the centre.
The targets are moving radially in a grid of 9 targets each and the particles move towards the nearest point.
44
DEFORMATIONS
03 | 01
TARGET GRID RELOCATION & INCREASE
1.0
target Strength
0.5
targetSpeed
2.0
magnetStrength
0.5729
timeStep
0.01
gravityStrength
0.1
spinStrength
0.02
dragstrength
0.1
collisionstrength
5
collisionRadius 1000000.0
targetEffectRadius
No. of targets=36 Particle to target forces-Cause of deformation
The targets are moving radiallyin a grid of 9 targets each and the particles are attracted to the nearest target
One more grid of targets is introduced in the z-axis and the particles move towards the nearest target.
TARGET GRID RELOCATION & INCREASE
03 | 02
DEFORMATIONS
45
1.0
target Strength
0.5
targetSpeed
2.0
magnetStrength
0.25
timeStep
0.01
gravityStrength
0.1
spinStrength
0.02
dragstrength
0.1
collisionstrength
5 1000000.0
collisionRadius targetEffectRadius
No. of targets=44 Particle to target forces-Cause of deformation
The targets exert attraction upon the particle in a grid of 9 targets.This gives a resultant force causing the particles to get attracted to the centre.
The targets are moving radially in a grid of 9 targets each and the particles move towards the nearest point. In addition there are two sets of four targets moving radially outside as well and the particles move towards them when the distance to them is the nearest.
46
DEFORMATIONS
03 | 01
TARGET GRID RELOCATION & INCREASE
1.0
target Strength
0.5
targetSpeed
2.0
magnetStrength
0.25
timeStep
0.01
gravityStrength
0.1
spinStrength
0.02
dragstrength
0.1
collisionstrength
10 1000000.0
collisionRadius targetEffectRadius
No. of targets=44 Particle to target forces-Cause of deformation
The targets are moving radiallyin a grid of 9 targets each and the particles are attracted to the nearest target
The targets are moving radially in a grid of 9 targets each and the particles move towards the nearest point. In addition there are two sets of four targets moving radially outside as well and the particles move towards them when the distance to them is the nearest.
TARGET GRID RELOCATION & INCREASE
03 | 02
DEFORMATIONS
47
PPRIMITIVE 01
DEFORMATION 01
DEFORMATION SET 01B
48
DEFORMATION SET 01A
DEFORMATION SET 01B
PRIMITIVES AND DEFORMATIONS CATALOGUE
DEFORMATION SET 01A
DEFORMATION SET 01A
DEFORMATION SET 01B
DEFORMATION SET 01a
DEFORMATION SET 01B
DEFORMATION SET 2A
PRIMTIVE 02 DEFORMATION SET 2B
PRIMTIVE 03
DEFORMATION SET 3A
DEFORMATION SET 2C
DEFORMATION SET 3B
PRIMITIVES AND DEFORMATIONS CATALOGUE
49
50
PRODUCTION
51
The range and scope of the robotic arm is evident in these diagrams. The code has to work with an understanding of these contsraints.
52
PRODUCTION
ROBOTIC DIAGRAMS- SIX AXES OF FREEDOM
RANGE OF ROBOTIC ARM
PRODUCTION
53
NACHI ROBOT
CURRENT END EFFECTOR (FOR DRILL BITS) SPECIAL END EFFECTOR
54
END EFFECTOR ROBOT - EXISTING END EFFECTOR - PROPOSED END EFFECTOR ASSEMBLY
CURRENT END EFFECTOR (FOR DRILL BITS)
SPECIAL END EFFECTOR
EXISTING AND PROPOSED END EFFECTOR RELATION IN ASSEMBLY
END EFFECTOR
55
56
front view
top view
perspective
side view
END EFFECTOR PROPOSED END EFFECTOR DESIGN | EXPLODED VIEW
front view
top view
perspective
side view
PROPOSED END EFFECTOR DESIGN
END EFFECTOR
57
Inverse kinematics refers to the use of kinematic equations of the robot to compute the position of the end effector from specified values for the joint parameters.The animator specifies joint angles and the robot finds the positions of the end-effector. In inverse kinematics all the angles in the adjacent diagram are claculated and specified in order for the robotic arm to reach the desired point. Forward Kinematics refers to the use of kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.The co-ordinates of the point to be reached by the robotic arm are specified and the joint parameters are calculated by the robotic arm.
front view
top view
Inverse Kinematics (IK)
Forward Kinematics (FK) destination point and orientation
angles perspective
58
KINEMATICS
destination point and orientation side view
INVERSE KINEMATICS AND FORWARD KINEMATICS OVERVIEW
angles
Since it is not practical to deduce orientation of each joint as in Forward Kinematics, we need to use Inverse Kinematics. This means instructing the Robot to got to a certain location and let it calculate the angles for each joint. For this you need; a. the location of the point (coordinates vector) b. orientation when in that point (orientation vectors) (Euler Method) Point B is the Robots Final Joint. Point A is the fixed point on our End Effector.
B
vectors x, y, z is the orientation vectors A - B creates a vector from B to A, hence relocate the destination point. Then using the robot you can add pen height to the overall height of the resultant vector.
A
z
y x
END EFFECTOR INVERSE KINEMATICS CALCULATION DIAGRAM
KINEMATICS
59
EPS file: for visual editing and printing
CODE OUTPUT
C++ code
Pattern generation
Points text files: for robot instructions
BMP images: for animation
ROBOT OUTPUT
DIGITAL POINTS CLOUD
POINTS COORDINATES TEXT FILE
INTERPOLATION The points are interpolated by the robot hence curves are drawn since there are no lift points and pen is always at z = 0
ROBOT DRAWING
60
CODE AND ROBOT OUTPUT INTERPOLATION
ROBOT OUTPUT STIPPLING
ROBOT DRAWING
DIGITAL POINTS CLOUD
For the robot to draw the points individually, to stipple, a duplicate of the set of points is needed at a higher value of z. The 2 sets of points have to then be arranged in a way so that the robot reads it in the correct sequence being a point on the paper then a point in the air and so on.
GRASSHOPPER CODE FOR STIPPLING
STIPPLING
CODE AND ROBOT OUTPUT
61
1. For the robotic arm to reach the desired point it requires calibration along the z-axis.
2. In this case the angles shown in the adjacent diagram are derived by inverse kinematics.
3. The co-ordinates of the point to be reached are provided.
4. The z-axis is calculated by manual operation of the pendant in teach mode. This was done due to the unevenness of the surface.
5. The z-co-ordinate derived from the manual calibration is then fed into the code an robotic arm is then allowed to run the code.
62
CALIBRATION DIAGRAMS
2.
1.
INITIAL POSITION
MARKING THE Z-AXIS ON PAPER
CALIBRATION
DRAWING THE POINTS ON PAPER
CALIBRATION DIAGRAMS
63
64
TITLE OF THE PAGE
SUBTITLE OF THE PAGE
ROBOTS POINT CHECKING Robot’s TCP (Tool Center Point) checks every point for reachability.
ROBOT POINT CHECKING
65
The next material exploration was in wax.We tried penetrating the wax with a driver. and with a sharp blade. However ,we still encountered the problem of the deposition of wax on the sides of the pattern.
66
MATERIAL EXPLORATIONS WAX
Experiments by using the blade as an end-effector WAX
MATERIAL EXPLORATION
67
68
MATERIAL EXPLORATIONS
PAPER
Various materials were tried out as a base to get test the end-effector in order to add a third dimenion to the patterns. The ďŹ rst material we tried out was clay and we jogged the pendant manually to get a stipling effect. What was found was that the clay accumulates around the line when a pointed tip is used to penetrate it which would be hard to get rid of.
CLAY
MATERIAL EXPLORATION
69
SCANNING PROCESS
REAL OBJECT
PATTERN PROJECTION
70
EXPLORING 3D
3D SCANNING
DIGITAL MODEL
STIPPLING TECHNIQUE
Similar to the 2D drawing, the stippling technique is done in the same way except in 3D, it’s not just an increase in z value but rather an offset of the point projected along its normal vector direction. Using grasshopper, the normals are calculated and a new set of points are created.
INSTRUCTING THE ROBOT
x co-ordinate, y co-ordinate, z co-ordinate, orientation about x-axis, orientation about y-axis, orientation about z-axis
FAILED
For a robot to draw in 3D it requires not only the coordinates of the points but the orientation it would approach it. Not only that, but the object and robot arm restrictions and physical aspects need to be carefully considered and the robot motion to be planned precisely. We have not planned the sequence of motion taking these things into considerations hence the robot failed to draw on the object although given the correct coordinates and orientations.
EXPLORING 3D
71
72 22
1.
ANALYSIS AND CONCLUSION 73
JOINT 1
JOINT 2
movement in space The analysis graph on the right show that the first three joints movement in time and that means it is not very efficient because it it not homogenous and fluent.
74
ANALYSIS PRIMITIVE 02 AS LINE DRAWING
JOINT 3 movement in time
movement in space
In addition to the data on the left, with the stippling efect it became more unefficient because not the arms move in z direction as wel as x and y. movement in time PRIMITIVE 02 WITH STIPPLING DRAWING (POINTS)
ANALYSIS
75
76
CONCLUSION AND FURTHER THOUGHTS In general, we’ve reached a good level of being able to generate patterns through coding and instructing the robot to draw them with a pen in 2D. From the start, we were interested in exploring what more options could be done with a robot arm and the type of materials it could manipulate. Further studies would be needed to optimize those new techniques and materials that require a further level of intricacy over the use of a pen and paper; which was crucial to start with to grasp the essence of instructing robotics. In addition, working in 2D and getting the hang of it made us think of other dimensions. We made a leap to 3D, whereas, a step to 2 and a half dimensions would have been a better option. More time is required to fully understand and be able to plan the robot movement and its path of points to be able to pull off a 3D drawing.
CONCLUSION
77