41
1 1 Advanced Modeling of Robots AMORO (EMARO) MOROB (ARIA 2) 2012/2013 Wisama KHALIL [email protected] Bureau 403 Bat. S ECTS 4: (M2 emaro and ARIA) 2 Contents 2- Geometric and kinematic models of complex chain robots 3- Geometric and kinematic modeling of parallel robots 1- Dynamic modeling of serial robots 4- Dynamic Models of robots with complex structure

Advanced Modeling of Robots

Embed Size (px)

DESCRIPTION

Some basic theoretical issues regarding modeling of robots

Citation preview

Page 1: Advanced Modeling of Robots

1

1

Advanced Modeling of RobotsAMORO (EMARO)MOROB (ARIA 2)

2012/2013

Wisama KHALIL

[email protected]

Bureau 403 Bat. S

ECTS 4: (M2 emaro and ARIA)

2

Contents

• 2- Geometric and kinematic models of complex chain robots

• 3- Geometric and kinematic modeling of parallel robots

• 1- Dynamic modeling of serial robots

• 4- Dynamic Models of robots with complex structure

Page 2: Advanced Modeling of Robots

2

Programme M2

• .

3

Programme S3

4

Page 3: Advanced Modeling of Robots

3

5

Prerequisite (MOCOM-M1)

• Terminology and general definitions

• Transformation matrices

• Direct geometric model of serial robots

• Inverse geometric model of robots

• Direct kinematic model

• Inverse Kinematic model

• Dynamic modeling

• Trajectory generation

• Control of Robots

•MOCOM

Part 1(M1)

6

References

• Course notes (W.Khalil)

• W. Khalil, E. Dombre, Modeling, identification and control of robots, Hermes Penton, London, 2002.

• Further readings:

• C.Canudas, B. Siciliano, G.Bastin (editors), Theory of Robot Control, Springer-Verlag, 1996.

• J. Angeles, Fundamentals of Robotic Mechanical Systems, Springer-Verlag, New York, 2002.

• Springer Handbook of Robotics, Siciliano, O.Khatib,edt, Verlag 2008.

Page 4: Advanced Modeling of Robots

4

7

Recall- MOCOM (M1)

• Terminology and general definitions

• Transformation matrices

• Direct and Inverse geometric model of serial robots

• Direct and inverse kinematic model

8

Chapter 1Terminology and general definitions

• Robot:

is a mechanical device possessing capacities of perception, action, decision, learning, communication and interaction with its environment, to realize tasks on the place of the man or in interaction with him.

• Robotics:

Robotics is a multidisciplinary science treating the design and use of robots.

Page 5: Advanced Modeling of Robots

5

9

Types of Robots

• The term robot covers a wide variety of mechanical systems ranging from wheeled vehicles, legged (walking) robots, flying or submarines, humanoid robots, via articulated systems as the robot manipulators or exoskeletons.

• We will distinguish in our master:

• Manipulators (serial, complexe, parallel),• Mobile Robots, • Humanoid Robots, • Bio-inspired Robots.

10

Types of robots

Industrial Manipulators Mobile Robot

Mobile Manipulator

Drone

Walking (legged) Robot Underwater Robots

Page 6: Advanced Modeling of Robots

6

11

Legged (Walking) robots

Monopod (jumping) Humanoid (Honda)

SDR3X Sony:• 2 processors RISC 64 bytes• 24 dof• accelero 2 axes and gyro 2 axes• distance sensors IR• 8 contact detectors

NAO- Aldebaran

12

Page 7: Advanced Modeling of Robots

7

13

Mechanical components of a robot Manipulator

• The mechanism of a robot manipulator consists of two subsystems; the end-effector and an articulated mechanical structure:

– End-effector (Tool), is a device intended to manipulate objects (magnetic, electric or pneumatic grippers) or to transform them (tools, welding torches, painting guns, etc.). It constitutes the interface with which the robot interacts with its environment.

– The articulated mechanical structure whose role is to place the end-effector at a given location (position and orientation) (pose). The mechanical structure is composed of a kinematic chain of articulated rigid links. One end of the chain is fixed and is called the base. The end-effector is fixed to the free extremity of the chain.

14

The Kinematic chain may be simple open chain (serial) or complex (tree structured or closed).

Page 8: Advanced Modeling of Robots

8

15

Serial ROBOTS (Robots série)

16

Closed loop Robots

Page 9: Advanced Modeling of Robots

9

17

Parallel Robots

Gough-Stewart

18

Type of joints (Articulation):

– Revolute-rotational (rotoïde) joint ( R): limiting the motion between two links (bodies) to a rotation about a common axis. The relative location between the two links is given by the angle about this axis.

– Prismatic joint (P) (Prismatique): limiting the motion between two links to a translation along a common axis

-Complex joints (universal, cylindrical, spherical) with more than one mobility are represented by a combination of R and P joints

Page 10: Advanced Modeling of Robots

10

19

Joint variables (variables articulaires)

Revolute joint q= Prismatic joint q= r

20

Definitions• Degrees of freedom of a body:• Is the number of independent components of its instantaneous velocity (or elementary displacement) 6.

•Joint space (espace articulaire) (or configuration space-espace des configurations) E(q): The space in which the location of all the links of a robot are

represented. q= [q1 q2 … qN]

N gives the number of dof of the robot= number of independent joints= number of joints for serial or tree structure robot. •

Page 11: Advanced Modeling of Robots

11

21

• Task space (operational space) E(X) (espace opérationnel):

• The space in which the location (situation) of the end effector is represented: Cartesian coordinates are used to specify the position in 3 and the rotation group SO(3) in case of 3D motion.

• X = [X1 X2 … XM]

• M 6 and M N

Transformation between E(q) and E(X)

• Direct Geometric Model; X=DGM(q)

• Inverse Geometric Model; q=IGM(X)

• Direct and Inverse Kinematic models….

22

• Redundancy (Redondance)• A robot is classified as redundant when the number of

degrees of freedom of its task space is less than the number of degrees of freedom of its joint space M < N .

The following examples constitute redundant (redondant)serial chain:– having more than six joints;– having more than three revolute joints whose axes

intersect at a point;– having more than three revolute joints with parallel

axes;– having more than three prismatic joints;– having prismatic joints with parallel axes;– having revolute joints with collinear axes.

Page 12: Advanced Modeling of Robots

12

23

• Singular configurations (configurations singulières)

• at these configurations the number of degrees of freedom of the end-effector becomes less than the dimension of the task space. For example, this may occur when:

– the axes of two prismatic joints become parallel;

– the axes of two revolute joints become collinear;

24

1.4. Number of degrees of freedom of a robot

• To place the end-effector (tool) arbitrarily in the 3D space 6 dof are required n=6.

• To place the end-effector in a plane 3 dof are required n=3, possibilty one more to release.

• To place an axis in space 5 dof are sufficient (welding torch)

• To be chosen in terms of the task

• Increasing n more expensive but easy adaptable for other task.

Page 13: Advanced Modeling of Robots

13

25

1.5. Architectures of robot manipulators

• Considering: revolute or prismatic joints whoseconsecutive axes are either parallel or perpendiculargives more than 3000 possible structures.

• In general the structure is decomposed into shoulder(porteur) (first three joints and links) and wrist (Poignet)the other joints (one, two or three).

• Shoulder Architectures (porteurs): For each joint either Ror P and the angle between consecutive axes are either0 or 90° after canceling redundant structure with M<3,we obtain 12 distinct (mathematically different)architectures with three degrees of freedom.

26

.RRR RRP

RPR

RPP PRR PPR PPP

Notes: -the three RRR structures can de detailed as: R-p/2-R-0-R, R-p/2-R-/2, and R-0-R-/2-R- Taking into account if revolute consecutive perpendicular axes are intersecting or not will increase

the number of structures. For instance RRR with intersection axis defines a spherical joint (wrist), whereas if the consecutive joint axes are not intersecting gives (orthogonal shoulder)

Page 14: Advanced Modeling of Robots

14

27

Industrial structures• Only five structures are manufactured:

- anthropomorphic (anthropomorphes) shoulder represented by the first RRR structure, like PUMA from Unimation, Acma SR400, Staübli (RX series), etc.;

– spherical shoulder RRP: "Stanford manipulator" and Unimation robots (Series 1000, 2000, 4000);

– The RPR structure (also PRR-RRP) with parallel axes. Adding a wrist with one revolute degree of freedom of rotation gives the SCARA (Selective Compliance Assembly Robot Arm). It has been manufactured by many companies: IBM, Bosch, Adept, etc.;

– cylindrical shoulder RPP;

– Cartesian shoulder PPP.

28

Anthropomorphic Robots

Stäubli RX90 RRR Structure

Page 15: Advanced Modeling of Robots

15

29

Spherical Robot

Unimate (1961)(First Industrial robot)

RRP Structure

30

Robot SCARA(Selective Compliance Assembly Robot Arm)

Yamaha YK700X Structure RRRP / RRPR or RPRR

Page 16: Advanced Modeling of Robots

16

31

Cylindrical Robot

RPP shoulderAcma TH8 Robot

32

Cartesian Robot

PPP shoulder

Page 17: Advanced Modeling of Robots

17

33

The wrist (Poignet)

• .One-axis wrist

Two intersecting-axis wrist

Two non intersecting-axis wrist

Three intersecting-axis wrist (spherical wrist)

Three non intersecting-axis wrist

34

Classical 6 dof robots(Shoulder and wrist of 6 dof robots)

• .P

shoulder wrist

- The first three dof place the center of the wrist in space, then the wrist axes are determined in terms of the desired orientation. - IGM can be obtained analytically.

Page 18: Advanced Modeling of Robots

18

Orthogonal Shoulder (RRR)

• It is a RRR structure with orthogonal and non intersecting axes.

35

36

Chapter 2Transformation matrix between vectors,

frames (Matrices de transformation

homogènes)

Page 19: Advanced Modeling of Robots

19

37

2.1. Introduction

– compute the location, position and orientation of robot links relative to each other;

– define the position and orientation of objects;– specify the trajectory and velocity of the end-

effector of a robot for a desired task;– describe and control the forces when the robot

interacts with its environment;– implement sensory-based control using

information provided by various sensors, each having its own reference frame.

38

• Homogenoues coordinates (coordonnées):

• The homogeneous coordinates of a point with respect to frame are defined by

w.Px, w.Py, w.Pz, w,

where w is a scaling factor.

Px, Py, Pz are the Cartesian coordinates.

In robotics we take w=1.

2.2. Homogeneous coordinates

Page 20: Advanced Modeling of Robots

20

39

2.2. Homogeneous coordinates

• 2.2.1. Representation of a point

• w.r.t. a frame Ri =(Oi,xi, yi, zi,)

x

y

z

P

Pi ii

P

i

i( )

i

1

P O P

zi

xi

yi

P

Px

Pz

Py

Ri

40

• 2.2.2. Representation of a direction (free vector)

• Let the unit vector along the direction be u

x

y

z

u

ui

u

i

i

i

0

u

u

zi

xi

yi

Ri

The same relation is used for a vector joining two points P1P2

Page 21: Advanced Modeling of Robots

21

41

2.3. Homogeneous transformations

• The transf., trans. and/or rot., of a frame Ri into frame Rj is represented by the (4x4) hom. Trans. matrix iTj:

j jj j j j

ij

i ii i i i

0 0 0 1

R Ps n a PT

iTjxi

xj

yj

zj

Ri

Rj

zi

yi

j j j ji i i i

0 0 0 1

s n a P

=

=

42

• The matrix iTj represents the transformation from frame Ri to frame Rj;

• The matrix iTj can be interpreted as representing the frame Rj (three orthogonal axes and an origin) with respect to frame Ri.

Page 22: Advanced Modeling of Robots

22

43

2.3.2. Transformation of vectors

• A point or direction vector jV expressed in frame i, can be expressed in frame j by the relation:

• jV = jTiiV

• For a point vecor:

• i(OiP) = iPj + i(OjP) = iPj + iRj

j(OjP)

= iTjjP

xi

yj

zj

RiRj

zi

yi

iTj

P

xj

Oi

44

Example 2.1.

• Find iTj and jTi from Figure.

ij

0 0 1 3

0 1 0 12

1 0 0 6

0 0 0 1

T

ji

0 0 1 6

0 1 0 12

1 0 0 3

0 0 0 1

T

6

3

12

zi

xj

xi

zj

yi

yj

Page 23: Advanced Modeling of Robots

23

45

2.3.4. Transformation matrix of a pure translation

• Trans(a, b, c) =

• Trans(a,b,c)= Trans(x,a)Trans(y,b)Trans(z,c)

1 0 0 a

0 1 0 b

0 0 1 c

0 0 0 1

c

a

yj

zi

yi

xj

xi

b

zj

46

2.3.5. Transformation matrices of a rotation about the principle axes

.

xi

yi

xj

sj

nj

yj

zjzi

ajij

1 0 0 0

0 C S 0(x, ) =

0 S C 0

0 0 0 1

T Rot

0

( , ) 0

0

0 0 0 1

rot x

Page 24: Advanced Modeling of Robots

24

47

.i

j

C 0 S 0 0

0 1 0 0 ( , ) 0= (y, ) = =

S 0 C 0 0

0 0 0 1 0 0 0 1

rot yT Rot

ij

C S 0 0 0

S C 0 0 ( , ) 0= (z, )= =

0 0 1 0 0

0 0 0 1 0 0 0 1

rot zT Rot

Similarly:

48

2.3.6. Properties of homogeneous transformation matrices

a) General form:

R represents the rotation, with three independent elements, P represents the translation.

b) The matrix R is orthogonal,

R-1 = RT

c) The inverse of a matrix iTj defines the matrix jTi.iTj

-1 = jTi

x x x x

y y y y

z z z z

s n a P

s n a P=

0 0 0 1s n a P

0 0 0 1

R PT

Page 25: Advanced Modeling of Robots

25

49

d) We verify that:

Rot-1(u, ) = Rot(u, -) = Rot(–u, )

Trans-1(u, d) = Trans(–u, d) = Trans(u, –d)

e) The inverse of a transformation matrix:

T

T T T T-1

T=

0 0 0 1

0 0 0 1

s P

R n P R R PT

a P

1 2 1 2 1

0 0 0 1

R R R P P1 1 2 21 2 =

0 0 0 1 0 0 0 1

R P R PT T =f)

T1T2 T2T1

50

g) If a frame R0 is subjected to k consecutive transformations (i = 1, …, k), defined with respect to the current frame Ri-1, then:

0Tk = 0T11T2

2T3 … k-1Tk

1T2

z1

z0k-1Tk

x0

x1

y1

x2 y2

z2

xk-1

zk-1

yk

zk

0T1

0Tk

R0

R1

R2

Rky0

yk-1

xk

Page 26: Advanced Modeling of Robots

26

51

h) If a frame Rj, defined by iTj, undergoes a transformation T defined relative to frame Ri, then Rj will be transformed into Rj' with iTj' = T iTj

xi

yi

zi xj yj

zj

T iTj = iTj'

Ri

Rj

zj'

yj'

xj'

Ri'

zi'

yi'xi'

Rj'

T

i'Tj' = iTj

iTj

g and h are the property of multiplication on the right or on the left.

52

i) Consecutive transformations about the same axis:

Rot(u, 1) Rot(u, 2) = Rot(u, (1 + 2))

Rot(u, ) Trans(u, d) = Trans(u, d) Rot(u, )

j) Decomposition of a transformation matrix.

Note the order

3=0 0 0 1 0 0 0 1 0 0 0 1

R P I P R 0T

Page 27: Advanced Modeling of Robots

27

53

2.3.7. Transformation matrix of a rotation about a general axis located at the origin

Rot (u, )=

z y

z x

y x

0 u u

ˆ u 0 u

u u 0

u

54

2.3.8. Equivalent angle and axis for a rotation

• Solving the equation:x x x

y y y

z z z

s n a 0

s n a 0

s n a 0

0 0 0 1

TRot(u,) =

From the diagonal elements we obtain:C = (1/2 )(sx + ny + az – 1)

From the off-diagonal elements we obtain:x z y

y x z

z y x

2u S n a

2u S a s

2u S s n

2 2 2z y x z y x

1S (n a ) (a s ) (s n )

2

Thus

Page 28: Advanced Modeling of Robots

28

55

• When S is small, the elements ux, uy and uz

cannot be determined with good accuracy by this equation. However, if C < 0, we obtain them more accurately using the diagonal terms of Rot(u, ) as follows:

yx zx y z

n Cs C a Cu ,u ,u

1 C 1 C 1 C

xx z y

yy x z

zz y x

s Cu sign(n a )

1 C

n Cu sign(a s )

1 C

a Cu sign(s n )

1 C

56

Chapter 3Direct geometric model of serial robots

(Modèle géométrique direct)

Page 29: Advanced Modeling of Robots

29

57

• Direct geometric model of 2R robot:

Px = L1.cos (q1)+L2 cos(q1+q2)

Py = L1.sin (q1)+L2 sin(q1+q2)

The aim of this chapter is to present a general method for more complicated structures.Modified Denavit and Hartenberg method [Khalil&Kleinfinger 86]

Exemple

x

y

E

L1

L2

58

3.2. Description of the geometry of serial robots

• .

• n joints,• n+1 links (body): Link 0, …, link n,• Joint j connects link j-1 with link j,• Link 0 is the fixed base, the tool is fixed on link n• rigid links, ideal revolute or prismatic joints (no backlash,

no elasticity),

Link1

Link 0

Link2

Link3

Linkn

Page 30: Advanced Modeling of Robots

30

59

• we assign a frame Rj to each link j, such that:

- zj axis is along the axis of joint j;

- xj is along the common normal between zj and zj+1:

- yj axis is formed by the right-hand rule.

- Frame Rj is defined w.r.t Rj-1 using 4 parameters:

- dj, j, rj, j.

zj-1

xj-1

zj

xj

dj

rj

j

j

Oj

Oj-1

60

• The variable of joint j is:

j = 0 if joint j is revolute; j = 1 if j is prismatic;

j-1Tj = Rot(x, j) Trans(x, dj) Rot(z, j) Trans(z, rj)

j j j j jq = + r

1j j

j j j

j j j j j j j

j j j j j j j

C S 0 d

C S C C S r S

S S S C C r C

0 0 0 1

j-1Rj = rot(x, j) rot(z, j)

Page 31: Advanced Modeling of Robots

31

61

• jTj-1=Trans(z,–rj) Rot(z,–j)Trans(x,–dj)Rot(x ,–j)

Tj

j j

j j

j

d C

j 1 d S

r

0 0 0 1

R

jRj-1 = rot(z, -j) rot(x, -j)

62

• Notes:- Definition of frame R0:

R0 is chosen to be aligned with frame R1 when q1 = 0:this makes 1 = 0, d1 = 0 and (r1 or 1 = 0);

– Definition of frame Rn:

choosing xn aligned with xn-1 when qn = 0 makes (rn or n = 0);

– if joint j is prismatic, the zj axis must be taken to be parallel to the joint axis but can have any position. We place it such that dj = 0 or dj+1 = 0;

– assuming that each joint is driven by an independent actuator, the vector of joint variables q can be obtained from the encoder readings qc:

q = K qc + q0where K is an (nn) constant matrix and q0 is an offset representing the robot configuration “q“ when qc = 0;

Page 32: Advanced Modeling of Robots

32

63

• If zj+1 is parallel to zj

•j-1Tj+1 = j-1Tj

jTj+1

= Rot(x, j) Trans(x, dj) Rot(z, j) Trans(z, rj)

Trans(x, dj+1) Rot(z, j+1) Trans(z, rj+1)

j

j j 1 j j 1 j j 1 j

j j j 1 j j j 1 j 1 j j j j 1 j

j j j 1 j j j 1 j j 1 j j j j 1 j

C( ) S( ) 0 d d C

C S( ) C C( ) S d C S (r r )S

S S( ) S C( ) C d S S (r r )C

0 0 0 1

This relation can be applied recursively if there is more parallel axis, Example find j-1Tj+2

64

Example 3.1. Geometric description of the Stäubli RX-90 robot

x3

x4, x5, x6

z6

z3z2

z0, z1

z5

x0, x1, x2

D3

RL4

z4

Page 33: Advanced Modeling of Robots

33

65

Stäubli RX-90 robot

66

We can add a column q giving the joint values at the current configuration. In the previous figure all qj = 0.

Page 34: Advanced Modeling of Robots

34

67

Example 3.2. Geometric description of a SCARA robot

• It has four parallel axes:z0, z1

x0, x1

z2 z3, z4

x2 x3, x4

D2

D3

68

3.3. Direct geometric model

• The Direct Geometric Model (DGM) gives the location of the end-effector of the robot in terms of joint coordinates.

It is represented by the transformation matrix 0Tn as:

• 0Tn = 0T1(q1) 1T2(q2) … n-1Tn(qn)

• It can also be represented by the relation:

X = f(q) , or X = DGM(q)

The joint position values

q = [q1 q2 … qn]T

The position and orientation of the terminal link

X = [x1 x2 … xm]T

Page 35: Advanced Modeling of Robots

35

69

• There are several possibilities of defining X :

- elements of 0Tn

• X=[Px Py Pz sx sy sz nx ny nz ax ay az]T

Taking into account that s = n x a, we can also take:

• X = [Px Py Pz nx ny nz ax ay az]T

• In general for the position coordinaates all the robot manufacturers take Px, Py, Pz. Whereas different solutions are taken for the orientation coordinates.

70

Example 3.3. Direct geometric model of the Stäubli RX-90 robot

• From the geometric parameters table, row by row, we write the elementary transformation matrices j-1Tj as:

01

C1 S1 0 0

S1 C1 0 0

0 0 1 0

0 0 0 1

T 12

C2 S2 0 0

0 0 1 0

S2 C2 0 0

0 0 0 1

T 3

C3 S3 0 D3

S3 C3 0 0

0 0 1 0

0 0 0 1

2 T

13

C23 S23 0 C2D3

0 0 1 0T =

S23 C23 0 S2D3

0 0 0 1

Axis 2 and 3 are parallel:

C23=cos(q2+q3)

Page 36: Advanced Modeling of Robots

36

71

• Similarly:

• When miltiplying the elementary matrices, in order to compute 0T6, it is better to multiply them from right to left:– the intermediate matrices jT6, denoted as Ujwill be used in the IGM- this reduces the number of operations (additions and multiplications) of the model.

34

C4 S4 0 0

0 0 1 RL4=

S4 C4 0 0

0 0 0 1

T 45

C5 S5 0 0

0 0 1 0=

S5 C5 0 0

0 0 0 1

T5

6

C6 S6 0 0

0 0 1 0 =

S6 C6 0 0

0 0 0 1

T

72

• .0 0

0 6 1 1 = = U T T U

sx = C1(C23(C4C5C6 – S4S6) – S23S5C6) – S1(S4C5C6 + C4S6)sy = S1(C23(C4C5C6 – S4S6) – S23S5C6) + C1(S4C5C6 + C4S6) sz = S23(C4C5C6 – S4S6) + C23S5C6nx = C1(– C23 (C4C5S6 + S4C6) + S23S5S6) + S1(S4C5S6 – C4C6)ny = S1(– C23 (C4C5S6 + S4C6) + S23S5S6) – C1(S4C5S6 – C4C6) nz = – S23(C4C5S6 + S4C6) – C23S5S6

ax = – C1(C23C4S5 + S23C5) + S1S4S5 ay = – S1(C23C4S5 + S23C5) – C1S4S5az = – S23C4S5 + C23C5

Px = – C1(S23 RL4 – C2D3)Py = – S1(S23 RL4 – C2D3)Pz = C23 RL4 + S2D3

Page 37: Advanced Modeling of Robots

37

73

3.5. Transformation matrix of the end-effector in the world frame

• Let the matrix Z = fT0 , E = nTE

Rn

RE

R0

Rf

0Tn

0TE

EZ

fTE = Z 0Tn(q) EIn most programming languages, the user can specify Z (base)and E (Tool).

74

3.6. Specification of the orientation

• Cosinus directors (rotation matrix) (9 parameters):

n n n0

n = 0 0 0 s n aR

Other methods:

3.6.1. Euler angles (3 parameters)

3.6.2. Roll-Pitch-Yaw angles (Rollis-Tangage- Lacet)(3 par.)

3.6.3. Quaternions (4 parameters)

Page 38: Advanced Modeling of Robots

38

75

• 3.6.1. Euler angles (3 parameters: )

O

yn

N

x0xn

y0

z0

zn

: angle between x0 and ON about z0; : angle between z0 and zn about ON;: angle between ON and xn about z0;

0Rn = rot(z, ) rot(x, ) rot(z, )

C C S C S C S S C C S S

S C C C S S S C C C C S

S S S C C

76

• Inverse solution of E-A

• rot(z,– ) 0Rn = rot(x, )rot(z,)

x y x y x y

x y x y x y

z z z

C s S s C n S n C a S a C S 0

S s C s S n C n S a C a C S C C S

S S S C Cs n a

Using (1,3) elements: 1 x y

2 x y 1

atan2( a ,a )

atan2(a , a )

when ax = 0, ay = 0, az = ± 1 is undefined (description singularity).Using the (2, 3) and (3, 3) elements = atan2(Sax – C ay, az)Then = atan2(– C nx – Sny, C sx + Ssy)

Page 39: Advanced Modeling of Robots

39

77

• 3.6.2. Roll-Pitch-Yaw angles (3 parameters: )

0Rn = rot(z, ) rot(y, ) rot(x, )

C C C S S S C C S C S S

S C S S S C C S S C C S

S C S C C

x0

x0' x0'', xn

y0

y0', y0 ''

ynz0, z0 '

z0 ''

zn

78

• Inverse problem of R-P-Y:

• rot(z,– ) 0Rn = rot(y, )rot(x,)

x y x y x y

x y x y x y

z z z

C s S s C n S n C a S a C S S S C

S s C s S n C n S a C a 0 C S

S C S C Cs n a

1 y x

2 y x 1

atan2(s ,s )

atan2( s , s )

= atan2(– sz, Csx + S s)= atan2(Sax – Cay, – S nx + Cny)Two solutions, description with singularity when sx=sy=0,axis xn along = z0

Page 40: Advanced Modeling of Robots

40

79

• 3.6.3. Quaternions

1

2 x

3 y

4 z

Q C( / 2)

Q u S( / 2)

Q u S( / 2)

Q u S( / 2)

xnx0

y0

yn

u

z0zn

2 2 2 21 2 3 4Q + Q + Q + Q = 1

2 21 2 2 3 1 4 2 4 1 3

0 2 2n 2 3 1 4 1 3 3 4 1 2

2 22 4 1 3 3 4 1 2 1 4

2(Q Q ) 1 2(Q Q Q Q ) 2(Q Q Q Q )

= 2(Q Q Q Q ) 2(Q Q ) 1 2(Q Q Q Q )

2(Q Q Q Q ) 2(Q Q Q Q ) 2(Q Q ) 1

R

80

• Quaterion inverse problem

1 x y z1

Q s n a 12

2 z y x y z1

Q = sign (n a ) s n a 12

3 x z x y z1

Q = sign (a s ) s n a 12

4 y x x y z1

Q = sign (s n ) s n a 12

No description singularity, simple transformation relations, One solution.

Page 41: Advanced Modeling of Robots

41

Reprsentation by a vector-angle

• Vector-angle: A vector U with four components:

• Three for components of u,the fourth is

• See Matlab function:

• U=vrrotmat2vec(R)

81