AADRL_Machining the Generative

Page 1

MACHININGTHEGENERATIVE INSTRUCTING MACHINES


2


WORKSHOP BRIEF To instruct a machine

TUTORS Shajay Bhooshan Alicia Nahmad Vishu Bhooshan David Reeves

CONTENTS WORKFLOW GENERATIVE _ Forces & Vectors _ Grid Systems _ Keypress _Digital Output

PRODUCTION

STUDENT TEAM Pallavi Kumar Chi-Yen Fu Begum Aydinoglu Juan Carlos Naranjo

_ Optimization _ Layer System _Physical Output

ANALYSIS _ Joint Angle Analysis _ Inference

APPENDIX _ Three Target Catalogue _ Code Snippet _Nine Target Catalogue

3


WORKFLOW

4

GENERATIVE

PRODUCTION

ANALYSIS

INSTRUCTING THE COMPUTER WRITING CODE ON C++

INSTRUCTING THE ROBOT EXPORTING CODE TO PHYSICAL PRODUCTION

OPTIMIZATION OF OUTPUT/ PRODUCTION


WORKFLOW GENERATIVE

Code on C++

Conversion to G-code

Check if all points can be printed robotically

PRODUCTION

Optimization of output

Callibration of tool (pen/ marker)

Robotic generation of output

ANALYSIS

Analyse efficiency of joint rotation in space

Optimization

5


6


THE GENERATIVE INSTRUCTING THE COMPUTER

7


PARTICLE TO PARTICLE FORCES

PARTICLE TO TARGET FORCES

PARTICLE TO PARTICLE FORCES

PARTICLE TO TARGET FORCES

Collision Radius

Target Strength

Collision Radius

Target Strength

PARTICLE TO PARTICLE FORCES

PARTICLE TO TARGET FORCES

Collision Radius

Target Strength r

r

Collision Strength

Collision Strength Collision Strength

8

Spin Force

Spin Force Spin Force


VECTORS_BASICS orıgın ıtıon

pos tor vec

point B tor

vec

posıtıon 2

posıtıon 2 r

ecto

ty v

cı velo

vertıcal step

point A

posıtıon 1

horızontal step

posıtıon 2 = velocity applied to posıtıon 1

VECTORS_CALCULATIONS 10 3

7

5 B = (3 , 8 )

A = (7 , 5)

+ A LOCATION = LOCATION + VELOCITY

13

8 C = (10 , 13 )

= B X = X + XSPEED Y = Y + YSPEED

C CX = AX + BX CY = AY + BY

9


10

mytargets[0].charge *= -1;

keyPress

c

C

s

mytargets[0].charge *= -1; dragStrength = 0.8;

mytargets[0].charge *= -1;

keyPress

y

PARTICLE BEHAVIOR

dragStrength = 1.5;

mytargets[0].charge *= -1;

0

1

2

mytargets[0].tarPos = targetO1; mytargets[1].tarPos = targetO2; mytargets[2].tarPos = targetO3;

mytargets[0].tarPos = (targetL1); mytargets[1].tarPos = (targetL2); mytargets[2].tarPos = (targetL3);

mytargets[0].tarPos = (targetR1); mytargets[1].tarPos = (targetR2); mytargets[2].tarPos = (targetR3);

TARGET POSITIONING

keyPress

r

dragStrength = 1.5;

keyPress

R

keyPress

keyPress

keyPress

keyPress

keyPress

KEYPRESS_TYPES


GRID & TARGET SYSTEM

3 TARGET GRID

9 TARGET GRID

11


GRID & KEYPRESS

initialParticles 40 MaxTarget 3

initialParticles 40 MaxTarget 3

initialParticles 40 MaxTarget 3

// initialise points/particles for (int i = 0; i < MaxParticles; i++) { pos[i] = vec(ofRandom(0, 100), ofRandom(0, 100), 0); }

Press: RUN

keyPress: t mytargets[0].charge *= -1

// initialise targets target = vec(ofRandom(0, 100), ofRandom(0, 100), 0);

12


KEYPRESS SEQUENCE

t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

13


3 TARGET_CATALOGUE

14

RUN_3TAR_40PAR CcC

RUN_3TAR_40PAR crC

RUN_3TAR_40PAR cCr

RUN_3TAR_40PAR CRc

RUN_3TAR_40PAR rcC

RUN_3TAR_40PAR rCc


9 TARGET_CATALOGUE

15


GRID & TARGET SYSTEM

16


KEYPRESS_SEQUENCE

17


9 target system_final output t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

18

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


19


20


21


22


NACHITO THE ROBOT DRAWING IN LAYERS

23


nine point grid system

24


KEYPRESS_SEQUENCE

initialParticles 40 MaxTarget 3 vec targetO1(44.85, 0, 0); vec targetO2(44.85, 10.5, 0); vec targetO3(44.85, -10.5, 0); vec targetL1(34.95, 0, 0); vec targetL2(39.9, 5.25, 0); vec targetL3(39.9, -5.25, 0); vec targetR1(54.75, 0, 0); vec targetR2(49.8, 5.25, 0); vec targetR3(49.8, -5.25, 0); for (int i = 0; i < MaxTargets; i++) {

initialParticles 40 MaxTarget 3

initialParticles 40 MaxTarget 3

Press: RUN, r

keyPress: c

mytargets[0].charge *= -1; collisonStrength = 0; collisonRadius = 0; dragStrength = 3;

mytargets[0].charge *= -1; collisonStrength = 2; collisonRadius = 0.4;

mytargets[0].tarPos = (targetO1); mytargets[1].tarPos = (targetO2); mytargets[2].tarPos = (targetO3);

}

25


3 LAYERS

LAYER I

26

LAYER II

LAYER III


LAYER 1 t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

27


nine point grid system t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

28

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


KEYPRESS_SEQUENCE t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

29


nine point grid system t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

30

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


JOINT ANGLES & END EFFECTOR

nachi mzo7_joint angles J3 ±190° J3 Helps moving in the Z axis

J4 -136° ~ 270°

J5 ±120°

J2 -135° ~ 80° J5 Helps moving in the Z axis

J6 ±360° J1 ±170°

Since a layer system is employed, the end effector is a simple pen holder, which is required to move the maximum in the Z axis

31 NACHI MZ07 - JOINT ANGLES


FORWARD KINEMATICS

INVERSE KINEMATICS

FORWARD & INVERSE KINEMATICS

FORWARD KINEMATICS

JOINT ANGLE

END EFFECTOR POSITION

INVERSE KINEMATICS

FORWARD KINEMATICS VS INVERSE KINEMATICS

θ3

J4

J3

θ2

J5

J5

θ4 θ6

θ5 J6

J4

End-effector

J3

J2

J1

J1

θ1

32

End-effector Target (x,y,z)

Target (x,y,z)

J2

FORWARD KINEMATICS

J6

INVERSE KINEMATICS


end-effector development

Fixed onto J6 Locking System

Custom End-effector Tool Centre Point (TCP)

Pen Holder

Pen Pen

33


layer division

LAYER III

LAYER II

LAYER I

34


PRINTING IN LAYERS

35


physical output_final

LAYER III

LAYER II

LAYER I

36


physical output_final

37


38


production analysis movement of axis through time

39


OUPUT_INITIAL TESTS

Layer division 1000 lines 8 minutes approx.

Layer 1 14 text files 1 hour 52 min

Layer 2 16 text files 2 hours 8 min

Layer 3 10 text files 1 hour 20 min 40


PRODUCTION ANALYSIS LAYER 1 // FILE 3

LAYER 3 // FILE 9

LAYER 2 // FILE 5

CLOSEST POINT TRAIL PATH

41


OBSERVATIONS_INITIAL TESTS

Marker on transparent medium

Marker on opaque medium

TESTING

1st robotic output test

42

- of different surface materials - of different tool medium (pens, markers, etc) - of overlapping of materials and exploring the ‘layer system’ - of transparency

Overlaying of all output layers


FURTHER ANALYSIS CONSTRAINTS - Speed: 40% vs. marker’s pressure for ink - Text File Separation - Maximum of 1000 lines of code - Movement of the table for exact overlapping. - Excess number of particles in the digital vs. physical world - File order for quality printing (drying, movement, etc) - Pressure applired to the tool can cause damage during the printing process.

43


44


APPENDIX ADDITIONAL REASEARCH INFORMATION

45


3 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

46

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


3 target KEYPRESS t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

47


3 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

48

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


3 target keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

49


3 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

50

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


3 target keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

51


c++ code

52


c++ code

53


c++ code

54


mytargets[0].charge *= -1;

keyPress

c

C

s

mytargets[0].charge *= -1; dragStrength = 0.8;

mytargets[0].charge *= -1;

keyPress

y

PARTICLE BEHAVIOR

dragStrength = 1.5;

0

1

2

mytargets[0].tarPos = targetO1; mytargets[1].tarPos = targetO2; mytargets[2].tarPos = targetO3;

mytargets[0].tarPos = (targetL1); mytargets[1].tarPos = (targetL2); mytargets[2].tarPos = (targetL3);

TARGET POSITIONING

keyPress

r

dragStrength = 1.5;

keyPress

R

keyPress

keyPress

keyPress

keyPress

keyPress

KEYPRESS_TYPES

mytargets[0].tarPos = (targetR1); mytargets[1].tarPos = (targetR2); mytargets[2].tarPos = (targetR3);

mytargets[0].charge *= -1;

55


c++ code

56


c++ code

57


9 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

58

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


9 target keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

59


9 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

60

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


9 target keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

61


9 TARGET keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

62

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength


9 target keypress t/t 1000 3.00 0.05 0.00 1.50 0.10 1.50 0.00 0.00 0.00

sequence particle count targets timeStep gravityStrength targetStrength spinStrength dragStrength collisionStrength collisionRadius magnetStrength

63


PROCESS IMAGES

64


PROCESS IMAGES

65


DETAILED IMAGES

66


DETAILED IMAGES

67



Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.