29
1 Displacement Introduction to Robotics อรรถวิทย สุดแสง บทที4 หนา 1 Coordinate Transformation [ ] A = + X x d 0 F 1 F p จุด p มี coordinates ใน F 1 คือ x สมมุติวา coordinates ของมันใน F 0 เขียนไดเปน Introduction to Robotics อรรถวิทย สุดแสง บทที4 หนา 2

displacement - cp.eng.chula.ac.thattawith/class/displacement.pdf · Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หน า 1 Coordinate

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

1

Displacement

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 1

Coordinate Transformation

[ ]A= +X x d

0F

1Fp

จุด p มี coordinates ใน F1 คือ x

สมมุติวา coordinates ของมันใน F0 เขียนไดเปน

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 2

2

พิจารณาสองจุดที่มี coordinates ใน F1 คือ p และ q โดย coordinates ของสองจุดนี้ใน F0 เปน P และ Q ตามลําดับ เราไดวา

| | = |([ ] ) ([ ] ) |

= |[ ]( ) |

= ( ) [ ][ ]( )T T

A A

A

A A

− + − +

− −

P Q p d q d

p q

p q p q

เพราะ |p-q| ตองเทากับ |P-Q| นั่นคือ

[ ][ ] [ ]TA A I=

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 3

[ ][ ] [ ]TA A I=The constraint ensures that

[ ]A= +X x d is a rigid transformation.

Premultiply and postmultiply both sides of the constraint by [A] and [A-1], we obtain:

1 1[ ][ ][ ][ ] [ ][ ][ ]TA A A A A I A− −=

[ ][ ] [ ]TA A I=That is,

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 4

3

[ ][ ] [ ]TA A I=Matrix [A] such that:

or [ ][ ] [ ]TA A I=

is called orthogonal matrix.

[ ] [ ... ]A = 1 2 ma a aLet

This means

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 5

⎩⎨⎧

≠=

=⋅jiji

ji 0 1

aa

2det([ ][ ]) det([ ]) det([ ]) 1TA A A I= = =

Using determinant identity det(A)=det(AT), we obtain:

This implies: det([ ]) 1A = ±

[A] corresponds to a rotation only when det([A])=1. When det([A])= -1, the matrix corresponds to a reflection.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 6

4

Coordinate transformation can also be viewed as a displacement.

As we can see that the translation of the sum of two vectors is not the sum of the translation of each vector separately, displacement is not a direct linear transformation. For example, let T(v) be the translation v+d, it is clear that T(v+w) != T(v) + T(w)

So displacement in n dimensional space cannot be represented by n x n matrix transformation.

To write the transformation in a matrix form, we use homogeneous transformation.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 7

Homogeneous Transformation

Key: is embeded as a hyperplane in

Displacement can then be represented by a matrix

0 1A⎧ ⎫ ⎧ ⎫⎡ ⎤

=⎨ ⎬ ⎨ ⎬⎢ ⎥⎩ ⎭ ⎩ ⎭⎣ ⎦

X d x1 1

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 8

nℜ 1+ℜn

5

Homogeneous transforms form a matrix group.

Let [T1] and [T2] be matrix of homogeneous transforms, we can show that [T1][T2] is also a matrix of homogeneous transform.

Likewise, inverse transform can be obtained from the inverse of the matrix of the transform.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 9

Planar Displacements

1

2

cos sin[ ] ,

sin cosd

Ad

θ θθ θ

− ⎧ ⎫⎡ ⎤= = ⎨ ⎬⎢ ⎥⎣ ⎦ ⎩ ⎭

d

where[ ]A= +X x d

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 10

6

We can see [A][AT] =

cos sin cos sinsin cos sin cos

θ θ θ θθ θ θ θ

−⎡ ⎤ ⎡ ⎤=⎢ ⎥ ⎢ ⎥−⎣ ⎦ ⎣ ⎦

2 2

2 2

cos sin cos sin sin cossin cos cos sin cos sin

θ θ θ θ θ θθ θ θ θ θ θ

⎡ ⎤+ −=⎢ ⎥− +⎣ ⎦

1 0[ ]

0 1I⎡ ⎤

=⎢ ⎥⎣ ⎦

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 11

That is [A] is an orthogonal matrix and because det([A])=1, we know that [A] is a rotation.

Now consider an orthogonal 2 x 2 matrix which is not a rotation:

[ ] 1 00 1

X−⎡ ⎤

= ⎢ ⎥⎣ ⎦

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 12

7

[ ] 1 00 1

X−⎡ ⎤

= ⎢ ⎥⎣ ⎦

What does [X] do?

It reflects coordinates of points in the plane through the line x = 0. For example,

5 5[ ]

6 6X

−⎧ ⎫ ⎧ ⎫=⎨ ⎬ ⎨ ⎬

⎩ ⎭ ⎩ ⎭

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 13

A reflection through a line at an angle α about the origin is given by:

cos2 sin 2[ ] [ ][ ][ ]

sin 2 cos2TS A X A

α αα α

− −⎡ ⎤= = ⎢ ⎥−⎣ ⎦

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 14

8

What if several reflections are applied?

The determinant of a product of n reflections is (-1)n, therefore if n is an even number, the product is a rotation, not a reflection.

For example, let [S] and [T] be reflections through lines at the angles α and β about the origin respectively, then the product [S][T] is the rotation:

cos2( ) sin 2( )[ ][ ]

sin 2( ) cos2( )S T

α β α βα β α β− − −⎡ ⎤

= ⎢ ⎥− −⎣ ⎦Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 15

Pole of a Planar DisplacementFor a general planar displacement, there is a point that does not move. This point is called the pole of the displacement.

Let D=(A,d) be the displacement, the its pole psatisfies the equation Dp=p, or

[ ]A= +p p d

Solving for p yields1[ ]A I −= − −p d , or

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 16

9

1 21

sin( / 2) cos( / 2)2sin( / 2)

d dp θ θθ−

=

1 22

cos( / 2) sin( / 2)2sin( / 2)

d dp θ θθ−

=

The only case for which this does not have a solution is when θ=0 (pure translation). In this case the coordinates of the pole move to infinity along the line perpendicular to d.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 17

Pole = Center of Rotation

Any general planar displacement can be written in the form of a rotation around a pole.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 18

10

Poles using Homogeneous Transform

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 19

Poles using Homogeneous Transform

Recall the Eigen form: Ax = λx

In homogeneous coordinates, x is the same as λx

0)1cos2)(1( 2 =+−− θλλλ

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 20

11

Poles using Homogeneous Transform

Remember x is homogeneous!

2/)(

2/)(*

2

*1

xxc

xxc

−=

+=

i

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 21

Poles using Homogeneous Transform

xix

xxxixx

ixixixe

xxxe

ix

x

sincos

...)!5!3

(...)!4!2

1(

...!3)(

!2)(1

...!3!2

1

5342

32

32

+=

−+−+−+−=

++++=

++++=

Starting from a taylor series expansion of the exponential function

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 22

12

Poles using Homogeneous Transform

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 23

Poles using Homogeneous Transform

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 24

13

Spherical Displacement

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 25

Spherical Displacement

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 26

14

Spherical Displacement

Reflection about the plane x = 0

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 27

Fundamental Rotation (Euler Angles)

Yaw: counterclockwise rotation α about z axis

Pitch: counterclockwise rotation β about y axis

Roll: counterclockwise rotation γ about x axis

cos sin 0( ) sin cos 0

0 0 1zR

α αα α α

−⎡ ⎤⎢ ⎥= ⎢ ⎥⎢ ⎥⎣ ⎦

cos 0 sin( ) 0 1 0

sin 0 cosyR

β ββ

β β

⎡ ⎤⎢ ⎥= ⎢ ⎥−⎢ ⎥⎣ ⎦

1 0 0( ) 0 cos sin

0 sin cosxR γ γ γ

γ γ

⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥⎣ ⎦

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 28

15

Rotation around an arbitrary axis

1. Rotate v to make it coincide with z

2. Rotate about z3. Inverse step 1

12 1 2 1[ ( ) ( )] ( )[ ( ) ( )]x z z x zR R R R Rθ θ θ θ θ−

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 29

Drawback

It is possible that ( ) ( ) ( )z y xR R R Iα β γ =

when , , 0α β γ ≠

A single rotation can be represented by many combinations of , ,α β γ

Euler Angles

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 30

16

Euler Angles

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 31

Examples

Consider ( ) ( ) ( )z y xR R R Rα β γ=

where α β γ π= = =

We thus have:1 0 0 1 0 0 1 0 00 1 0 0 1 0 0 1 00 0 1 0 0 1 0 0 1

R⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥= ⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦

Euler Angles

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 32

17

Drawback

It is possible that ( ) ( ) ( )z y xR R R Iα β γ =

when , , 0α β γ ≠

A single rotation can be represented by many combinations of , ,α β γ

Euler Angles

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 33

Gimbal LockProblem with Euler angle

Consider Y-P-R with 90 degree pitch

Two parameters from yaw and roll canonly give one degree of freedom to the rotation.

Demo with the hand!

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 34

18

Gimbal Lock

x

y

z

A solution: quaternion!

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 35

Eigenvector of an Orthogonal Matrix

xx =][A

det(A-λI) = 0

Mi,j denotes minor obtained from eliminating row i and column j.

x is now in ordinary cartesian coordinates

xx λ=][A

0)det()()( 33221133221123 =+++−+++− AMMMaaa λλλ

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 36

19

Eigenvector of an Orthogonal Matrix

When A is an orthogonal matrix, Mii = aii

Why?

0)det()()( 33221133221123 =+++−+++− AMMMaaa λλλ

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 37

Eigenvector of an Orthogonal Matrix

For a 3x3 orthogonal matrix A, |A|=1 and 123,

22,

21, =++ iii aaa for I = 1,2 or 3.

Compare with the determinant formula from the last page, we obtain:

jiji aC ,, =

or

jijiji aM +−= )1/(,,

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 38

20

Eigenvector of an Orthogonal Matrix

When A is an orthogonal matrix, Mii = aii, resulting in

The remaining roots are: φφ λλ ii ee −== * and

where 2/)1(cos 332211 −++= aaaφ

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 39

Eigenvector of an Orthogonal Matrix

Let b be the Eigenvector associated with Eigenvalue λ=1

We have A b = b. That is, t b is fixed under the rotation given by A

The other two Eigenvectors (say x and x* ) span the plane orthogonal to b

We can construct real orthogonal vectors in this plane by

2/)(2/)(

*2

*1

xxcxxc−=

+=

i

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 40

21

Eigenvector of an Orthogonal Matrix

Still in the plane spanned by c1 and c2

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 41

Cayley’s Formula

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 42

22

Cayley’s Formula

For to be true:

[I-B] cannot be singular because it is skew-symmetric, which means it only has imaginary Eigenvalues (if a matrix is singular, it has 1 as an eigenvalue). Detail in the next few slides.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 43

Cayley’s Formula

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 44

23

Skew-Symmetric Matrices

Vector b here is the eigenvector of an orthogonal matrix A associated with eigenvalue 1

With λ=1, [A-I]x = 0.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 45

Skew-Symmetric Matrices

This means that λ can either be zero or imaginary.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 46

24

Rodrigue’s Equation

Let x* and X* be the normal projection of x and X on the plane orthogonal to the rotation axis b

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 47

Rodrigue’s Equation

These constants are the Rodrigue’s parameters.

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 48

25

Euler Parameters])[2/tan(][ SB φ=

Plug this into cayley formula ][][][ 1 BIBIA +−= −

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 49

Euler ParametersPlugging this

into

and multiply by [C], we obtain:

(this uses identity from unit skew symmetry: [S3]+[S]=0)

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 50

26

Euler Parameters

Using skew symmetry of [S] and symmetry of [I], we obtain:

][][sin2 TAAS −=φ

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 51

Rodrigue’s Formula

t

t

t

eR

tttIe

qetqtqtqtq

ω

ω

ω

θω

ωωω

ωω

ˆ

32ˆ

ˆ

),(

...!3)ˆ(

!2)ˆ(ˆ

)0()()(ˆ)()(

=

++++=

=

=×=&

×ωω ngrepresentimatrix symmetric-skew a is ˆ where

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 52

27

Rodrigue’s Formula

aaa

Iaaaaa

T

ˆ||ˆ

ˆ:hold following the,ˆ symmetric-skew aFor

23

2

−=

−=

With this relation, we can simplify

...!3)ˆ(

!2)ˆ(ˆ

32ˆ ++++=

θωθωθωθω Ie

into

)cos1(ˆsinˆ

ˆ...)!6!4!2

(ˆ...)!5!3

(

2

264253

ˆ

θωθω

ωθθθωθθθθω

−++=

−+−+−+−+=

I

Ie

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 53

Spatial Displacements

If c was a fixed point

or

But [I-A] is singular because a rotation matrix [A] has 1 as an eigenvalue

No such real c

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 54

28

Spatial Displacements

cdc =+ *][A

This defines the pole c of the planar displacement which rotates around b and translate in the plane perpendicular to b

The line is L = c + t b

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 55

Spatial DisplacementsThe displacement is reduced to a pure rotation around the line L = c + t b

and translation along it with the amount ds = d - d* where s = b/|b|

To solve for c, replace [A] by Caylay’s formula, and multiply by [I-B],

then simplify: [I-A]c = d*

[B]c = -(1/2)[I-B]d*or

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 56

29

Rodrigue’s Equation

For spatial displacement, we use x-c and X-ds-c instead of x and X

resulting in

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 57

Eigenvectors of 4x4 transforms

Introduction to Robotics อรรถวิทย สุดแสง บทที่ 4 หนา 58