Introduction to Robotics

50
Introduction to Robotics ISS3180-01 Professor Mannan Saeed Muhammad 2019-07-08 8:53:05 AM 1

Transcript of Introduction to Robotics

Introduction to RoboticsISS3180-01

Professor Mannan Saeed Muhammad

2019-07-08 8:53:05 AM 1

The physical basis for DH parameters

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 2

The Denavit-Hartenberg (DH) Convention

β€’ Representing each individual homogeneous transformation as the product of four basic transformations:

1000

0

1000

00

00

0001

1000

0100

0010

001

1000

100

0010

0001

1000

0100

00

00

RotTransTransRot ,,,,

1

i

i

i

i

i

xaxdzz

i

i

dcs

sascccs

casscsc

cs

sc

a

d

cs

sc

H

ii

iiiiii

iiiiii

ii

iiii

ii

iiii

2019-07-08 8:53:05 AM 3

DH for Two-Link Manipulators

β€’ PP robot

β€’ DH frames

β€’ DH table

𝑑π‘₯

𝑑𝑦

Desired Position vector π‘Ÿ =π‘Ÿπ‘₯π‘Ÿπ‘¦

π‘₯

𝑦

𝑧1

𝑧2

π‘₯1

π‘₯2

𝑧3

π‘₯3

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 4

DH for Two-Link Manipulators

β€’ PP robot

β€’ DH frames

β€’ DH table

π‘₯

𝑦

𝑧1

𝑧2

π‘₯1

π‘₯2

𝑧3

π‘₯3

π’Š πœΆπ’Š π’‚π’Š πœ½π’Š π’…π’Š

0 - - - -

1

2

3

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 5

DH for Two-Link Manipulators

β€’ RR robot

β€’ DH frames

β€’ DH table

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

𝑧1

𝑧2π‘₯

𝑦

𝑧

π‘₯2

π‘₯1

π‘₯3

𝑧3

2019-07-08 8:53:05 AM 6

DH for Two-Link Manipulators

β€’ RR robot

β€’ DH frames

β€’ DH table

π’Š πœΆπ’Š π’‚π’Š πœ½π’Š π’…π’Š

0 - - - -

1

2

3

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

𝑧1

𝑧2π‘₯

𝑦

𝑧

π‘₯2

π‘₯1

π‘₯3

𝑧3

2019-07-08 8:53:05 AM 7

RP and PR Robotsβ€’ Kinematics

β€’ RP Robot

β€’ Forward

β€’π‘Ÿπ‘₯π‘Ÿπ‘¦

=𝑑1π‘π‘œπ‘ πœƒ1𝑑1π‘ π‘–π‘›πœƒ1

β€’ Inverseβ€’ πœƒ1 = π‘Žπ‘‘π‘Žπ‘›2(π‘Ÿπ‘₯, π‘Ÿπ‘¦)

β€’ 𝑑1 = π‘Ÿπ‘₯2 + π‘Ÿπ‘¦

2

2019-07-08 8:53:05 AM 8

RP and PR Robotsβ€’ Kinematics

β€’ PR Robot

2019-07-08 8:53:05 AM

𝑑1

𝑙1

π‘₯

𝑦

πœƒ

9

three-link cylindrical robot

β€’ 3DOF: need to assign four coordinate frames

1. Choose z0 axis (axis of rotation for joint 1, base frame)

2. Choose z1 axis (axis of translation for joint 2)

3. Choose z2 axis (axis of translation for joint 3)

4. Choose z3 axis (tool frame)

β€’ This is again arbitrary for this case since we have described no wrist/gripper

β€’ Instead, define z3 as parallel to z2

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 10

three-link cylindrical robot

β€’ DH parameters

– First, define the constant parameters ai, i

– Second, define the variable parameters i, di

link ai i di i

1 0 0 d1 1

2 0 -90 d2 0

3 0 0 d3 0

1000

100

0010

0001

,

1000

010

0100

0001

,

1000

100

00

00

3

2

3

2

1

2

1

11

11

0

1d

Hd

Hd

cs

sc

H

1000

010

0

0

21

3111

3111

2

3

1

2

0

1

0

3

dd

dccs

dssc

HHHH

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 11

spherical wrist

β€’ 3DOF: need to assign four coordinate frames

– yaw, pitch, roll (4, 5, 6) all intersecting at one point o (wrist center)

1. Choose z3 axis (axis of rotation for joint 4)

2. Choose z4 axis (axis of rotation for joint 5)

3. Choose z5 axis (axis of rotation for joint 6)

4. Choose tool frame:

β€’ z6 (a) is collinear with z5

β€’ y6 (s) is in the direction the gripper closes

β€’ x6 (n) is chosen with a right-handed convention

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 12

link ai i di i

4 0 -90 0 4

5 0 90 0 5

6 0 0 d6 6

β€’ DH parameters

– First, define the constant parameters ai, i

– Second, define the variable parameters i, di

1000

100

00

00

,

1000

0010

00

00

,

1000

0010

00

00

6

66

66

5

6

55

55

4

5

44

44

3

4d

cs

sc

Hcs

sc

Hcs

sc

H

HHH

dcccscs

dssssccscsscccs

dscsccssccssccc

HHHH

3

6

0

3

0

6

6556565

654546465464654

654546465464654

5

6

4

5

3

4

3

6

1000

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 13

cylindrical robot with

spherical wrist

β€’ 6DOF: need to assign seven coordinate frames

– But we already did this for the previous two examples, so we can fill in the

table of DH parameters:

link ai i di i

1 0 0 d1 1

2 0 -90 d2 0

3 0 0 d3 0

4 0 -90 0 4

5 0 90 0 5

6 0 0 d6 6

o3, o4, o5 are all at

the same point oc

2019-07-08 8:53:05 AM 14

β€’ Note that z3 (axis for joint 4) is collinear with z2 (axis for joint 3), thus we

can make the following combination:

1000

333231

232221

131211

3

6

0

3

0

6

z

y

x

drrr

drrr

drrr

HHH

21654

316516541

316516541

5433

5154123

5154113

6465432

651641654122

651641654112

6465431

651641654121

651641654111

dddssd

dcdccdscsd

dsdcsdsccd

ssr

ccscsr

cssccr

ccccsr

cscssssccsr

csscscscccr

scccsr

cscssscccsr

csssscccccr

z

y

x

2019-07-08 8:53:05 AM 15

the Stanford manipulator

β€’ 6DOF: need to assign seven coordinate frames:

1. Choose z0 axis (axis of rotation for joint 1, base frame)

2. Choose z1-z5 axes (axes of rotation/translation for joints 2-6)

3. Choose xi axes

4. Choose tool frame

5. Fill in table of DH parameters:

link ai i di i

1 0 -90 0 1

2 0 90 d2 2

3 0 0 d3 0

4 0 -90 0 4

5 0 90 0 5

6 0 0 d6 6

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 16

β€’ the individual homogeneous transformations:

1000

100

00

00

,

1000

0010

00

00

,

1000

0010

00

00

1000

100

0010

0001

,

1000

010

00

00

,

1000

0010

00

00

6

66

66

5

6

55

55

4

5

44

44

3

4

3

2

3

2

22

22

1

2

11

11

0

1

d

cs

sc

Hcs

sc

Hcs

sc

H

dH

d

cs

sc

Hcs

sc

H

2019-07-08 8:53:05 AM 17

β€’ Finally, combine to give the complete description of the forward

kinematics:

1000

333231

232221

131211

5

6

0

1

0

6

z

y

x

drrr

drrr

drrr

HHH

52452632

2155142541621321

5412515421621321

5254233

54152542123

54152542113

65264654232

646541652646542122

646541652646542112

65264654231

646541652646542121

646542652646542111

sscccddcd

sscssccsscddcdssd

ssssccscccddsdscd

ccscsr

ssccssccsr

ssscsscccr

ssccssccsr

scscscssscsscccsr

ccscssssscssccccr

cscsscccsr

scccsccssssccccsr

scccsdcsssscccccr

z

y

x

2019-07-08 8:53:05 AM 18

the SCARA

manipulator

β€’ 4DOF: need to assign five coordinate frames:

1. Choose z0 axis (axis of rotation for joint 1, base frame)

2. Choose z1-z3 axes (axes of rotation/translation for joints 2-4)

3. Choose xi axes

4. Choose tool frame

5. Fill in table of DH parameters:

link ai i di i

1 a1 0 0 1

2 a2 180 0 2

3 0 0 d3 0

4 0 0 d4 4

Suggested insertion: photo of SCARA manipulator

β€’ π‘Žπ‘–: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘₯𝑖‒ 𝛼𝑖: ∠(π‘§π‘–βˆ’1 β†’ 𝑧𝑖) @ π‘₯𝑖‒ 𝑑𝑖: π‘‚π‘–π‘‚π‘–βˆ’1 @ π‘§π‘–βˆ’1β€’ πœƒπ‘–: ∠(π‘₯π‘–βˆ’1 β†’ π‘₯𝑖) @ π‘§π‘–βˆ’1

2019-07-08 8:53:05 AM 19

β€’ the individual homogeneous transformations:

1000

100

00

00

,

1000

100

0010

0001

,

1000

0100

0

0

,

1000

0100

0

0

4

44

44

3

4

3

2

3

2222

2222

1

2

1111

1111

0

1d

cs

sc

Hd

Hsacs

casc

Hsacs

casc

H

1000

100

0

0

43

12211412412412412

12211412412412412

5

6

0

1

0

6

dd

sasaccsssccs

cacacsscsscc

HHH

2019-07-08 8:53:05 AM 20

Inverse Kinematics

Hn

0

2019-07-08 8:53:05 AM 21

Inverse Kinematics

β€’ Find the values of joint parameters that will put the tool frame at a desired position and orientation (within the workspace)β€’ Given H:

The Euclidean group for SE(3) is used for the kinematics of a rigid body, in classical mechanicsβ€’ Find all solutions to:

β€’ Noting that:

β€’ This gives 12 (nontrivial) equations with n unknowns

310

SEoR

H

HqqH n ,...,1

0

6

n

n

nn qHqHqqH 1

1

0

11

0

6 ,...,

310

SETR

H

2019-07-08 8:53:05 AM 22

Closed-form solutions are ideal!

2019-07-08 8:53:05 AM 23

2019-07-08 8:53:05 AM 24

n

n

nn qHqHqqH 1

1

0

11

0

6 ,...,

H

H0

6Hi

i

1

j

j

j

i

ij

j

ji

i

i qHqHqHqHHqHqH 1

11

1

6

5

611

0

6

11

1

0

1 ])[(][

2019-07-08 8:53:05 AM 25

β€’ For a given H:

β€’ Find 1, 2, d3, 4, 5, 6:

β€’ One solution: 1 = p/2, 2 = p/2, d3 = 0.5, 4 = p/2, 5 = 0, 6 = p/2

1000

0001

763.0100

154.0010

H

the Stanford manipulator

0

763.0

154.0

0

1

0

0

0

1

1

0

0

52452632

2155142541621321

5412515421621321

52542

541525421

541525421

652646542

6465416526465421

6465416526465421

652646542

6465416526465421

6465426526465421

sscccddc

sscssccsscddcdss

ssssccscccddsdsc

ccscs

ssccssccs

ssscssccc

ssccssccs

scscscssscsscccs

ccscssssscsscccc

cscsscccs

scccsccssssccccs

scccsdcssssccccc

2019-07-08 8:53:05 AM 26

2019-07-08 8:53:05 AM 27

2019-07-08 8:53:05 AM 28

H0

6

2019-07-08 8:53:05 AM 29

kinematic decoupling

β€’ Appropriate for systems that have an arm a wrist

– Such that the wrist joint axes are aligned at a point

β€’ For such systems, we can split the inverse kinematics problem into two

parts:

1. Inverse position kinematics: position of the wrist center

2. Inverse orientation kinematics: orientation of the wrist

β€’ First, assume 6DOF, the last three intersecting at oc

β€’ Use the position of the wrist center to determine the first three joint

angles…

oqqo

RqqR

61

0

6

61

0

6

,...,

,...,

2019-07-08 8:53:05 AM 30

β€’ Now, origin of tool frame, o6, is a distance d6 translated along z5 (since

z5 and z6 are collinear)

– Thus, the third column of R is the direction of z6 (w/ respect to the base

frame) and we can write:

– Rearranging:

– Calling o = [ox oy oz]T, oc

0 = [xc yc zc]T

1

0

0

6

0

6 Rdooo o

c

1

0

0

6Rdooo

c

336

236

136

rdo

rdo

rdo

z

y

x

z

y

x

c

c

c

2019-07-08 8:53:05 AM 31

β€’ Since [xc yc zc]T are determined from the first three joint angles, our

forward kinematics expression now allows us to solve for the first three

joint angles decoupled from the final three.

– Thus we now have R30

– Note that:

– To solve for the final three joint angles:

– Since the last three joints for a

spherical wrist, we can use a set of

Euler angles to solve for them

RRR 3

6

0

3

RRRRRT0

3

10

3

3

6

2019-07-08 8:53:05 AM 32

Inverse position

β€’ Now that we have [xc yc zc]T we need to find q1, q2, q3

– Solve for qi by projecting onto the xi-1, yi-1 plane, solve trig problem

– Two examples: elbow (RRR) and spherical (RRP) manipulators

– For example, for an elbow manipulator, to solve for 1, project the arm onto

the x0, y0 plane

2019-07-08 8:53:05 AM 33

Background: two argument atan

β€’ We use atan2(Β·) instead of atan(Β·) to account for the full range of angular solutionsβ€’ Called β€˜four-quadrant’ arctan

0,0

0,02

0,0

0,0

0,2

,2

xy

xy

xyx

y

xyx

y

yxy

xy

undefined

atan

atan

atan

atan

p

p

2019-07-08 8:53:05 AM 34

RRR manipulator

Anthropomorphic structure

1. To solve for 1, project the arm onto the x0, y0 plane

– Can also have:

β€’ This will of course change the solutions for 2 and 3

cc yx ,21 atan

cc yx ,21 atan p

2019-07-08 8:53:05 AM 35

β€’ If xc=yc=0, 1 is undefined

β€’ i.e. any value of 1 will work

β€’ If there is an offset, then we will have two solutions for 1: left arm and right arm

β€’ However, wrist centers cannot intersect z0

singular configurations, offsets

2019-07-08 8:53:05 AM 36

β€’ Left arm: β€’ Right arm:

Left arm and right arm solutions

ddyx

yx

cc

cc

,2

,2

222

1

atan

atan

-

ddyx

ddyx

yx

cc

cc

cc

,2

,2

,2

222

222

1

atan

atan

atan

p

2019-07-08 8:53:05 AM 37

β€’ Therefore there are in general two solutions for 1

β€’ Finding 2 and 3 is identical to the planar two-link manipulator we have seen previously:

β€’ Therefore we can find two solutions for 3:

Left arm and right arm solutions

D

aa

aadzdyx

dzs

dyxr

aa

aasr

ccc

c

cc

32

2

3

2

2

2

1

222

3

1

2222

32

2

3

2

2

22

3

2cos

2cos

2

3 1,2 DD atan

2019-07-08 8:53:05 AM 38

β€’ The two solutions for 3 correspond to the elbow-down and elbow-up positions respectively

β€’ Now solve for 2:

β€’ Thus there are two solutions for the pair (2, 3)

Left arm and right arm solutions

333321

222

333322

,2,2

,2,2

sacaadzdyx

sacaasr

ccc

atanatan

atanatan

2019-07-08 8:53:05 AM 39

β€’ In general, there will be a maximum of four solutions to the inverse position kinematics of an elbow manipulatorβ€’ Ex: PUMA

RRR: Four total solutions

2019-07-08 8:53:05 AM 40

H0

3

H0

3

RRP manipulator

2019-07-08 8:53:05 AM 41

HHHH 2

3

1

2

0

1

0

3

HH 0

3

10

1 )(

HH 2

3

1

2

2019-07-08 8:53:05 AM 42

2019-07-08 8:53:05 AM 43

2019-07-08 8:53:05 AM 44

2019-07-08 8:53:05 AM 45

H0

3

H0

3

2019-07-08 8:53:05 AM 46

2019-07-08 8:53:05 AM 47

2019-07-08 8:53:05 AM 48

2019-07-08 8:53:05 AM 49

2019-07-08 8:53:05 AM 50