Rotations and Translations Euler Theorem + Quaternions.
-
Upload
jonathan-wells -
Category
Documents
-
view
241 -
download
1
Transcript of Rotations and Translations Euler Theorem + Quaternions.
Representing a Point 3D A three-dimensional point
A is a reference coordinate system
here
z
y
xA
p
p
p
P
Extension to 4x4
110001
PPRP BBORG
AAB
A
We can define a 4x4 matrix operator and use a 4x1 position vector
Notes
Homogeneous transforms are useful in writing compact equations; a computer program would not use them because of the time wasted multiplying ones and zeros. This representation is mainly for our convenience.
For the details turn to chapter 2.
Euler’s Theorem
Any two independent orthonormal coordinate frames can be related by a sequence of rotations (not more than three) about coordinate axes, where no two successive rotations may be about the same axis.
Euler Angles
This means, that we can represent an orientation with 3 numbers
Assuming we limit ourselves to 3 rotations without successive rotations about the same axis:
Another Example
Suppose we want to use ZXZ rotation,
Rotation along Z axis, Rotation along X axis, Rotation along Z axis,
Example – Cont 2
Changing 's and 's values in the above matrix has the same effects: the rotation's angle changes, but the rotation's axis remains in the direction
Euler Angle - Matlab If we want to rotate Roll,Pitch and Yaw Roll 0.1 degrees Pitch 0.2 degrees Yaw 0.3 degrees
>> rotx(0.1)*roty(0.2)*rotz(0.3)ans = 0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752
Euler Angle – Matlab cont.
>> rpy2r(0.1,0.2,0.3) ans =
0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752
Euler Theorem
In three-dimensional space, any displacement of a rigid body such that a point on the rigid body remains fixed, is equivalent to a single rotation about some axis that runs through the fixed point.
Euler Theorem - MatlabR = 0.9363 -0.2896 0.1987 0.3130 0.9447 -0.0978 -0.1593 0.1538 0.9752[theta, v] = tr2angvec(R)
theta =
0.3816
v =
0.3379 0.4807 0.8092
Euler Theorem – Matlab cont.
>> angvec2r(0.3816, [0.3379,0.4807,0.8092])
ans =
0.9363 -0.2897 0.1987 0.3130 0.9447 -0.0979 -0.1593 0.1538 0.9752
Quaternions
The quaternion group has 8 members:
Their product is defined by the equation:
, , , 1i j k
2 2 2 1i j k ijk
Quaternions Algebra
We will call the following linear combination
a quaternion. It can be written also as:
All the combinations of Q where a,b,c,s are real numbers is called the quaternion algebra.
Q s ia jb kc s v
, , ,Q s a b c
Quaternion Algebra
By Euler’s theorem every rotation can be represented as a rotation around some axis
with angle . In quaternion terms:
Composition of rotations is equivalent to quaternion multiplication.
K
1 2 3 42 2ˆ ˆ( , ) (cos( ) sin( ) ) ( , , , )Rot K K
Example
We want to represent a rotation around x-axis by 90 , and then around z-axis by 90 :
31 1
2 2 2
(cos(45 ) sin(45 ) )(cos(45 ) sin(45 ) )
( )( ) cos(60 )
3
( ),120
3
o o o o
o
o
k i
i j ki j k
i j kRot
Rotating with quaternions
We can describe a rotation of a given vector v around a unit vector u by angle :
this action is called conjugation.
* Pay attention to the inverse of q (like in complex numbers) !