0 оценок0% нашли этот документ полезным (0 голосов)

92 просмотров19 страницThis is an introduction about quaternion, and all you need to learn about that.

Apr 10, 2015

© © All Rights Reserved

PDF, TXT или читайте онлайн в Scribd

This is an introduction about quaternion, and all you need to learn about that.

© All Rights Reserved

0 оценок0% нашли этот документ полезным (0 голосов)

92 просмотров19 страницThis is an introduction about quaternion, and all you need to learn about that.

© All Rights Reserved

Вы находитесь на странице: 1из 19

Yan-Bin Jia

Nov 24, 2014

Introduction

Up until now we have learned that a rotation in R3 about an axis through the origin can be represented by a 3 3 orthogonal matrix with determinant 1. However, the matrix representation seems

redundant because only four of its nine elements are independent. Also the geometric interpretation

of such a matrix is not clear until we carry out several steps of calculation to extract the rotation

axis and angle. Furthermore, to compose two rotations, we need to compute the product of the

two corresponding matrices, which requires twenty-seven multiplications and eighteen additions.

Quaternions are very efficient for analyzing situations where rotations in R3 are involved. A

quaternion is a 4-tuple, which is a more concise representation than a rotation matrix. Its geometric meaning is also more obvious as the rotation axis and angle can be trivially recovered. The

quaternion algebra to be introduced will also allow us to easily compose rotations. This is because

quaternion composition takes merely sixteen multiplications and twelve additions.

The development of quaternions is attributed to W. R. Hamilton [5] in 1843. Legend has it that

Hamilton was walking with his wife Helen at the Royal Irish Academy when he was suddenly struck

by the idea of adding a fourth dimension in order to multiply triples. Excited by this breakthrough,

as the couple passed the Broome Bridge of the Royal Canal, he carved the newfound quaternion

equations

i2 = j 2 = k2 = ijk = 1

into the stone of the bridge. This event is marked by a plaque at the exact location today. Hamilton

spent the rest of his life working on quaternions, which became the first non-commutative algebra

to be studied.

Quaternion Algebra

The set of quaternions, together with the two operations of addition and multiplication, form a

non-commutative ring.1 The standard orthonormal basis for R3 is given by three unit vectors

Sections 2.1, 2.2, 3, and 4 are based on Chapters 36 of the book [9] by J. B. Kuipers, Sections 1 and 6 are

partially based on the essay by S. Oldenburger [10] who took the course, and Appendix B is based on [6].

1

For the purpose of this course, you dont really need to know what a ring is although it can be found in a standard

algebra text such as the one by Hungerford [7] or Jacobson [8].

i = (1, 0, 0), j = (0, 1, 0), k = (0, 0, 1). A quaternion q is defined as the sum of a scalar q0 and a

vector q = (q1 , q2 , q3 ); namely,

q = q0 + q = q0 + q1 i + q2 j + q3 k.

2.1

Addition of two quaternions acts component-wise. More specifically, consider the quaternion q

above and another quaternion

p = p0 + p1 i + p2 j + p3 k.

Then we have

p + q = (p0 + q0 ) + (p1 + q1 )i + (p2 + q2 )j + (p3 + q3 )k.

Every quaternion q has a negative q with components qi , i = 0, 1, 2, 3.

The product of two quaternions satisfies these fundamental rules introduced by Hamilton:

i2 = j 2 = k2 = ijk = 1,

ij = k = ji,

jk = i = kj,

ki = j = ik.

pq = (p0 + p1 i + p2 j + p3 k)(q0 + q1 i + q2 j + q3 k)

= p0 q0 (p1 q1 + p2 q2 + p3 q3 ) + p0 (q1 i + q2 j + q3 k) + q0 (p1 i + p2 j + p3 k)

+(p2 q3 p3 q2 )i + (p3 q1 p1 q3 )j + (p1 q2 p2 q1 )k.

(1)

Whew! It is too long to remember or even to understand what is going on. Fortunately, we can

utilize the inner product and cross product of two vectors in R3 to write the above quaternion

product in a more concise form:

pq = p0 q0 p q + p0 q + q0 p + p q.

(2)

In the above, p = (p1 , p2 , p3 ) and q = (q1 , q2 , q3 ) are the vector parts of p and q, respectively.

Example 1. Suppose the two vectors are given as follows:

p

q

= 3 + i 2j + k,

= 2 i + 2j + 3k.

We single out their vector parts p = (1, 2, 1) and q = (1, 2, 3) and calculate their inner and cross products:

pq

pq

=

=

2,

i

j k

1 2 1

1 2 3

8i 4j.

pq

= 8 9i 2j + 11k.

We see that the product of two quaternions is still a quaternion with scalar part p0 q0 p q and

vector part p0 q + q0 p + p q. The set of quaternions is closed under multiplication and addition.

It is not difficult to verify that multiplication of quaternions is distributive over addition. The

identity quaternion has real part 1 and vector part 0.

2.2

defined as

q = q0 q = q0 q1 i q2 j q3 k.

From the definition we immediately have

(q ) = q0 (q) = q,

q + q = 2q0 ,

q q = (q0 q)(q0 + q)

q02

q02

by (2)

= qq .

Given two quaternions p and q, we can easily verify that

(pq) = q p .

(3)

The norm of a quaternion q, denoted by |q|, is the scalar |q| = q q. A quaternion is called a

unit quaternion if its norm is 1. The norm of the product of two quaternions p and q is the product

of the individual norms, for we have

|pq|2 = (pq)(pq)

= pqq p

= p|q|2 p

= pp |q|2

= |p|2 |q|2 .

The inverse of a quaternion q is defined as

q 1 =

q

.

|q|2

We can easily verify that q 1 q = qq 1 = 1. In the case q is a unit quaternion, the inverse is its

conjugate q .

3

2.3

Let us first look at a unit quaternion q = q0 + q. That q02 + kqk2 = 1 implies that there exists a

unique [0, ] such that cos = q0 and sin = kqk. The quaternion can thus be rewritten in

= q/kqk:

terms of and the unit vector u

sin .

q = cos + u

A general quaternion q = q0 + q can be represented as a unit quaternion scaled by the norm |q|:

sin ),

q = |q|(cos + u

(4)

where u

p

a + bi = a2 + b2 ei ,

where i2 = 1 and = atan2(b, a), generalizes to the quaternion q in a way that (4) can be

rewritten as

q = |q|eu .

This allows us to define the power of q as

sin()),

q = |q| eu = |q| (cos() + u

R.

(5)

Intuitively, the power is taken over the norm of the quaternion while a scaling is performed on its

phase angle.

An exponential of q makes use of the Taylor expansion that treats q just as an ordinary variable:

eq =

i

X

q

i=0

i!

The sum on the right hand side has a closed form that transforms the above into

kqk)

eq = exp(q0 + u

(6)

q0

sin kqk) .

= e (cos kqk + u

(7)

arccos

ln q = ln |q| + u

q0

|q|

eln q = eln |q|+u arccos(q0 /|q|)

= |q|eu arccos(q0 /|q|)

kqk

q0

+u

= |q|

|q|

|q|

= q.

(8)

Pure Quaternions

R3

v =0+v

R4

v

Quaternions

How can a quaternion, which lives in R4 , operate on a vector, which lives in R3 ? First, we note

that a vector v R3 is a pure quaternion whose real part is zero.

Using the unit quaternion q we define an operator on vectors v R3 :

Lq (v) = qvq

= (q02 kqk2 )v + 2(q v)q + 2q0 (q v).

(9)

Here we make two observations. First, the quaternion operator (9) does not change the length of

the vector v for

kLq (v)k = kqvq k

= |q| kvk |q |

= kvk.

Second, the direction of v, if along q, is left unchanged by the operator Lq . To verify this, we let

v = kq and have

qvq = q(kq)q

= (q02 kqk2 )(kq) + 2(q kq)q + 2q0 (q kq)

= k(q02 + kqk2 )q

= kq.

Essentially, any vector along q is thus not changed under Lq . This makes us guess that the operator

Lq acts like a rotation about q, which will be made precise by the next theorem.

Before proceeding with the theorem, we remark that the operator Lq is linear over R3 . For any

two vectors v1 , v 2 R3 and any a1 , a2 R we can show that

Lq (a1 v 1 + a2 v 2 ) = a1 Lq (v 1 ) + a2 Lq (v 2 ).

Theorem 1 For any unit quaternion

q = q0 + q = cos

5

sin ,

+u

2

2

(10)

Lq (v) = qvq

as the axis of rotation.

on v is equivalent to a rotation of the vector through an angle about u

Proof Given a vector v R3 , we decompose it as v = a + n, where a is the component along

the vector q and n is the component normal to q. Then we show that under the operator Lq , a is

invariant, while n is rotated about q through an angle . Since the operator is linear, this shows

that the image qvq is indeed interpreted as a rotation of v about q through an angle .

We know from an early reasoning that a is invariant under Lq . So let us focus on the effect of

Lq on the orthogonal component n. We have

Lq (n) = (q02 kqk2 )n + 2(q n)q + 2q0 (q n)

= (q02 kqk2 )n + 2q0 (q n)

u n),

= (q02 kqk2 )n + 2q0 kqk(

= q/kqk. Denote n = u

n. So the last equation

where in the last step above we introduced u

becomes

Lq (n) = (q02 kqk2 )n + 2q0 kqkn .

(11)

Note that n and n have the same length:

k = knk k

kn k = kn u

uk sin

= knk.

2

2

2

sin

n + 2 cos sin

n

Lq (n) =

cos

2

2

2

2

= cos n + sin n .

Namely, the resulting vector is a rotation of n through an angle in the plane defined by n and

n . See the figure below. This vector is clearly orthogonal to the rotation axis.

Note that the quaternion negation q, when applied to v, will result in the same vector:

Lq = (q)v(q) = qvq . It describes the rotation about an axis in the opposite direction

u

through the negative amount .

We substitute the unit quaternion form (10) into (9) to obtain the resulting vector from rotating

through :

a vector v about the axis u

2

2

sin + 2 cos

sin v u

sin v

u

sin

v+2 u

Lp (v) =

cos

2

2

2

2

2

2

= cos v + (1 cos )(

u v)

u + sin (

u v).

(12)

Example 2. Consider a rotation about an axis defined by (1, 1, 1) through an angle of 2/3. About this

axis, the basis vectors i, j, and k generate the same cone when rotated through 2. We define a unit vector

1

= (1, 1, 1).

u

3

n

Lq (n)

Let the rotation angle = 2/3. The quaternion q defining the rotation is then given as

q

=

=

sin

+u

2

2

1

1

1 1

+ i + j + k.

2 2

2

2

cos

Let us compute the effect of rotation on the basis vector i = (1, 0, 0). We obtain the resulting vector

using (12):

1

1

1

1

1

1

1

1

3 1

1

1 0

0

+

+ 1+

v =

2

2

2

3

3

3

1

1

0

0

1

1

0

2

2

1 1

+ 2 + 2

=

0

1

0

21

2

= j.

The rotation of v under the operator Lq can also be interpreted from the perspective of an

observer attached to the vector v. What he sees happening is that the coordinate frame rotates

through the angle about the same axis defined by the quaternion.

Theorem 2 For any unit quaternion

q = q0 + q = cos

sin ,

+u

2

2

Lq (v) = q v(q ) = q vq

through an angle while v is not rotated.

is a rotation of the coordinate frame about the axis u

Equivalently, the operator Lq rotates the vector v with respect to the coordinate frame through

an angle about q.

7

The quaternion operator Lq (v) = qvq may be interpreted as a point or vector rotation with

respect to the (fixed) coordinate frame. The quaternion operator Lq (v) = q vq may be interpreted

as a coordinate frame rotation with respect to the (fixed) space of points.

We end this section with a result that the inner product of two vectors is not changed if these

vectors are left multiplied with a unit quaternion to become 4-tuples. Here, the inner product of

two quaternions p = p0 + p and q = q0 + q is defined to be

p q = p0 q0 + p q.

sin 2 be a unit quaternion. Then

Proposition 3 Let a, b R3 be two vectors, and q = cos 2 + u

a b = (qa) (qb) = (aq) (bq).

Proof Since a and b are pure quaternions 0+a and 0+b, we left multiply q with them respectively

according to (1):

a sin ,

+ a cos + u

2

2

2

b sin .

qb =

u b sin + b cos + u

2

2

2

qa =

u a sin

+ (a b) cos2 + a (

u b) cos sin

2

2

2

2

u a) (

u b) sin2

+ b (

u a) cos sin + (

2

2

2

2

2

+ (a b) cos

+ (

u a) (

u b) sin2

= (

u a)(

u b) sin

2

2

2

= (

u a)(

u b) sin2 + (a b) cos2 + (a b) sin2 (

u a)(

u b) sin2

2

2

2

2

= a b.

(qa) (qb) = (

u a)(

u b) sin2

Let p and q be two unit quaternions. We first apply the operator Lp to the vector u and obtain

the vector v. To v we then apply the operator Lq and obtain the vector w. Equivalently, we apply

the composition Lq Lp of the two operators:

w = Lq (v)

= qvq

= q(pup )q

= (qp)u(qp)

= Lqp (u).

8

Because p and q are unit quaternions, so is the product qp. Hence the above equation describes a

rotation operator whose defining quaternion is the product of the two quaternions p and q. The

axis and angle of the composite rotation is given by the product qp.

Similarly, consider the quaternion operators Lp (u) = p up and Lq (v) = q vq which carry

out rotations of the coordinate system determined by quaternions p and q, respectively. Then the

quaternion product pq defines an operator L(pq) , which represents a sequence of operators Lp

followed by Lq . The axis and angle of rotation of L(pq) are those represented by the quaternion

product pq.

Example 3. We now use the quaternion method to find the axis and angle of the composite rotation in

the Satellite tracking example from the notes titled Space Rotations. Recall that the tracking application

takes a rotation about the z-axis through a bearing angle followed by a rotation about the new y-axis

through an elevation angle . After these two rotations, the new x-axis points toward the satellite. The two

rotations are respectively described by the two quaternions below:

p

q

+ sin k,

2

2

= cos + sin j.

2

2

= cos

Since we are rotating the coordinate frame, the two operators Lp and Lq are applied sequentially. The

composite rotation operator is L(pq) , which transforms coordinates in the station frame to those in the

tracking frame. And the quaternion describing the composition rotation is the product pq which is as

follows.

pq =

cos + sin k

cos + sin j

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2

The axis of the composite rotation is defined by the vector

.

2

2

2

2

2

2

And the angle of rotation satisfies

sin

2

cos

cos ,

2

2

cos

kvk.

The cosine is same as obtained in Section 3 of the handouts titled Rotation in the Space for we have

cos

1

2

= 2 cos2 cos2 1

2

2

cos + 1 cos + 1

= 2

1

2

2

cos cos + cos + cos 1

.

=

2

= 2 cos2

(13)

Note that the rotation axis and angle in that section transforms coordinates in the tracking frame to those

in the station frame. This explains why the axis v in (13) is opposite to the one obtained in that section

while the angle is the same.

The unit quaternion function q(t) describes the varying rotation of a frame (e.g., attached to some

object) with time t in reference to a fixed world frame. It determines the angular velocity (t) of

the frame with respect to the world frame. How to characterize the changing rate of q(t), that is,

its derivative q(t)?

Theorem 4 Let q(t) be a unit quaternion function, and (t) the angular velocity determined by

q(t). The derivative of q(t) is

1

(14)

q = q.

2

Proof At t + t, the rotation is described by q(t + t). This is after some extra rotation during

t performed on the frame that has already undergone a rotation described by q(t). This extra

= /kk through the angle = kkt. It can be

rotation is about the instantaneous axis

described by a quaternion:

sin

+

2

2

kkt

kkt

sin

= cos

+

.

2

2

q = cos

(15)

q(t + t) = q q(t).

We are now ready to derive q(t).

kkt

kkt

sin

q(t + t) q(t) =

cos

+

q(t) q(t)

2

2

kkt

kkt

sin

q(t) +

q(t).

= 2 sin2

4

2

(16)

The first term in the last equation above is of higher order than t, thus its ratio to t goes to

zero as the latter does. Hence

q(t)

=

=

=

=

=

q(t + t) q(t)

t

sin(kkt/2)

lim

q(t)

t0

t

kkt

d

sin

q(t)

dt

2

t=0

kk

q(t)

2

1

(t)q(t).

2

lim

t0

10

(17)

(18)

In mechanics, the angular velocity is often in terms of the rotated frame (which is the body

frame of a moving object). Denote this angular velocity by . Thus, = q q. Substituting the

expression = q q into (14), we obtain

1

(19)

q = q

2

If q is known , we can recover the angular velocity from (14) by right multiplying its both sides

with q :

= 2qq

.

(20)

The second derivative of the quaternion follows from differentiating (14):

1

+ q)

(q

2

1

1

+ q

q

=

2

4

1

1

2

=

kk + q.

4

2

q =

(21)

(by (14))

We can also recover the angular acceleration if the first and second derivatives of q are both known.

This is done by right multiplying (21) with q :

= 2

q q qq

= 2

q q 2qq

qq

(by (20))

= 2(

q q (qq

) ).

be the angular velocity of the rotating frame with respect to a fixed frame that instantaLet

neously coincides with it. It is obtained from by rotating the world frame to coincide with the

rotating frame according to q. This establishes

= q q.

Combining (14) with the above, we have another expression of the quaternion derivative:

1

q = q .

2

The differential equation (14) can be solved via numerical integration. Let h be the time step

size, and denote by qk and k the quaternion and angular velocity at the time kh. Eulers method

approximates the quaternion at the next time step by

1

qk+1 = qk + h k qk .

2

Due to the increment, the length of qk+1 will be different from unity. It is then normalized:

qk+1

qk+1

.

kqk+1 k

Eulers method is of first order and known to be inaccurate due to the truncation error, which

will propagate to the subsequent normalization. Standard integration methods of higher order

such as Adams-Bashforth and Runge-Kutta [11] can be employed. Special integration methods for

quaternions have also been developed, and shown to be more effective. We refer to [14] for a survey

of these methods with performance comparisons.

11

Applications

In physics, quaternions are correlated to the nature of the universe at the level of quantum mechanics. They lead to elegant expressions of the Lorentz transformations, which form the basis of

the modern theory of relativity. In signal processing, Quaternion Fourier Transform (QFT) is a

powerful tool. The QFT restores the lost commutative property at the cost of no longer being a

division algebra. It can be used, for instance, to embed a watermark in a color image. Other applications of QFT include face recognition (jointly with Quaternion Wavelet Transform) and voice

recognition [10].

Appendix B describes an application of quaternions in optimally matching a set of data points

against a shape model.

Homogeneous coordinates are introduced to make translation multiplicative, along with scaling

and rotation. They are convenient in representing points, lines, and planes, and fundamental for

studying projections. Like quaternions, homogeneous coordinates are 4-tuples. This suggests that

there might be a way of doing scaling and translation using some sort of quaternion operator. As

of now, no such way has been found as quaternions and their rotation operators are algebraically

incompatible with homogeneous coordinates.

In 1873, quaternions were extended to dual quaternions by Clifford [2] to represent both rotations and translations. Dual quaternions have found applications in kinematics, robotics, motion

estimation, and computer graphics.

Quaternion Interpolation

In computer graphics and animation, there is often a need to interpolate between an objects initial

orientation (i.e., a rotation of the body frame with respect to the world frame) and final orientation

to generate a smooth rotating motion. Let the the two rotations be represented respectively by the

following two unit quaternions:

1

1

1 sin ,

+u

2

2

2

2

2 sin ,

= cos

+u

2

2

r1 = cos

r2

i is a unit vector represents the axis of the ith rotation, and i the corresponding

where for i = 1, 2, u

rotation angle. For interpolation to be meaningful, r1 6= r2 must hold.

A.1

( ) = (1 )1 + 2 ,

(22)

1 and u

2 would yield the

where [0, 1]. However, linear interpolation between the unit vectors u

2 that is not unit. If we simply normalize it as w = v/kvk, the resulting

vector v = (1 )

u1 + u

curve w( ) is not constant speed in terms of . This is often not desired or visually appealing as

1 to u

2.

the object may seem to be rotating unstably from u

12

1 and u

2 lie on the unit sphere, it is natural to interpolate them using their shortest path

Since u

1 and u

2 , as illustrated in

on the sphere. This is the shorter one of the two great arcs connecting u

the figure below.

u2

u( )

u1

1 to u

2 as increases

Picture a point u

( ) is a constant speed parametrization of the arc over [0, 1]. To derive

from 0 to 1. Essentially, u

it, we first construct the normal to the plane:

n=

1 u

2

u

.

2k

k

u1 u

(23)

1 =

1 =

In the case u

u2 , we may simply pick the vertical plane containing them. Denoting u

(ux , uy , uz ), the vertical plane has the normal

(uy , ux , 0)

n= q

u2x + u2y

1 to u

2 about n is in (0, ]. It can be easily

Due to the choice of n, the rotation angle from u

obtained s

2 ).

= arccos(

u1 u

(24)

( ) is determined from a rotation of u

1 about n through the angle , as a

Then the vector u

quaternion product:

( ) = cos

1 cos

u

u

+ n sin

n sin

.

2

2

2

2

has a simpler form not involving quaternion multiplications:

In fact, u

( ) =

u

sin((1 ))

sin( )

1 +

2.

u

u

sin

sin

(25)

1 and u

2 lie

The correctness of the above expression can be first established for the case that u

1 = (cos 1 , sin 1 ). Then u

2 = (cos(1 +

in the xy-plane, and n is along the z-direction. Let u

13

sin( )

sin((1 ))

1 +

2

u

u

sin

sin

sin((1 )) cos 1 + sin( ) cos(1 + ) sin((1 )) sin 1 + sin( ) sin(1 + )

=

,

sin

sin

sin (cos( ) cos 1 sin( ) sin 1 ) sin (cos( ) sin 1 + sin( ) cos 1 )

=

,

sin

sin

= (cos(1 + ), sin(1 + ))

( ).

= u

1 and u

2 do not lie in the xy-plane, we rotate n to coincide with the z-axis. Let R be the

If u

corresponding rotation matrix. Then

( ) = R1 (R

u

u)

sin((1

))

sin( )

1

= R

(R

u1 ) +

(R

u2 )

sin

sin

sin((1 ))

sin( )

1 +

2.

=

u

u

sin

sin

Finally, we can interpolate between r1 and r2 over [0, 1]:

( )

( )

( ) sin

+u

2

2

sin((1 ))

sin( )

(1 )1 + 2

(1 )1 + 2

1 +

2 sin

+

,

u

u

= cos

2

sin

sin

2

r( ) = cos

(26)

by (22) and (25), where is given in (24). The interpolation has constant change rates in both the

rotation angle and the axis.

A.2

In computer graphics, the widely used algorithm Slerp (spherical linear interpolation) [13] takes

the following form

r( ) = r1 (r1 r2 ) ,

[0, 1],

(27)

where the power of a unit quaternion is given by (5).

It has been shown [3] that r( ) parametrizes the shortest path connecting r1 and r2 on the 3D

unit quaternion sphere in the 4D space. A major appeal is that interpolation is carried out as a

rotation about a fixed axis at constant angular velocity.

points that yields the best match of these points against a shape model. The process is often

referred to as data registration. The data points are typically measured on a real object by range

sensors, touch sensors, etc., and given in Cartesian coordinates. The quality of a match is often

14

q1

q5

rotation

p5

p1

q7

translation

q3

q4

p3

q2

q6

p7

p4

p2

p6

Model

Data

Figure 3: Matching two point sets pi and q j .

described as the total squared distance from the data points to the model. When multiple shape

models are possible, the one that results in the least total distance is then recognized as the shape

of the object.

Quaternions are very effective in solving the above least-squares-based registration problem. Let

us begin with a formulation of the problem in 3D. Let {p1 , p2 , . . . , pn } be a set of data points. We

assume that p1 , . . . , pn are to be matched against the points q 1 , . . . , q n on a shape model. Namely,

the correspondences between the data points and those on the model have been predetermined.

Then the problem is to find a rotation, represented by an orthogonal matrix R with det(R) = 1,

and a translation b as the solution to the following minimization:

min

R,b

n

X

i=1

kRpi + b q i k2 .

n

=

p

1X

pi ;

n

i=1

=

q

n

1X

qi.

n

i=1

The relative coordinates of all the points to their centroids are obtained as, for 1 i n,

;

pi = pi p

qi = q i q .

15

(28)

Clearly, we have

n

X

i=1

n

X

pi =

q i =

n

X

i=1

n

X

i=1

i=1

n

X

pi n

p =

i=1

n

X

qi n

q =

i=1

i=1

kRpi + b q i k2 =

=

=

n

X

i=1

n

X

i=1

n

X

i=1

n

X

i=1

n

X

i=1

1

n

qi n

n

X

1X

pi = 0;

n

pi n

i=1

n

X

q i = 0.

(29)

(30)

i=1

p, q, pi , q i :

kRpi q i + R

p q + bk2

+ b)

(Rpi q i + R

p q + b) (Rpi q i + R

pq

kRpi

q i k2

n

X

(Rpi

i=1

kRpi q i k2 + 2 R

n

X

i=1

pi

q i )

(R

p q + b) + nkR

p q + bk2

n

X

i=1

q i

kRpi q i k2 + nkR

p q + bk2 ,

+ bk2

(R

p q + b) + nkR

pq

by (29) and (30).

The minimizing translation b should make the second term in the last equation above zero, yielding:

R

b=q

p.

(31)

Thus we have decomposed the problem of data registration into two phases: the first of which

determines its optimal translation, as given by equation (31), and the second of which determines

) + q

the optimal rotation of the set {pi }. Note that every point pi is transformed into R(pi p

before matching against q i . Equivalently, to find the best match of the two point sets {pi } and

{q i }, we first translate {pi } to let their centroid coincide with that of {q i }, and then rotate about

the common centroid.

By the reasoning so far, the optimal rotation can be solved from the formulation below:

min

R

n

X

i=1

kRpi q i k2 .

(32)

Here we present an exact solution to (32) as described in [6] using quaternions. An equivalent

quaternion-based solution is given in [4]. The version of matching two curves (or surfaces), also

assuming pointwise correspondences, is solved exactly in [12] in a somewhat similar manner without

the use of quaternions.

First, we rewrite the summation in (32) as follows:

n

X

i=1

kRpi

q i k2

n

n

n

X

X

X

q i q i

(Rpi q i ) +

(Rpi Rpi ) 2

=

i=1

i=1

i=1

i=1

n

X

kpi k2 + kq i k2 2

16

n

X

i=1

Rpi q i .

The first summand in the last equation above does not depend on the rotation, so we need only

minimize the second summand. Equivalently, this can be done through a maximization:

max

R

n

X

i=1

Rpi q i .

(33)

The rotation matrix R has nine entries, only four of which are independent due to the orthogonality and unit determinant of R. Instead, we represent rotations using unit quaternions.

Essentially, we find the unit quaternion q that maximizes

n

X

(qpi q ) q i .

(34)

i=1

R4 .

Let q = (q0 , q1 , q2 , q3 )T and q = (q0 , q1 , q2 , q3 )T .

Also, the points p1 , . . . , pn and q 1 , . . . , q n are viewed as 4-tuples with pi = (0, pi1 , pi2 , pi3 )T and

, q , q )T by a slight abuse of notation.

q i = (0, qi1

i2 i3

The summand in (34) is the dot product of q i with the vector that results from applying the

rotation q to pi , which is equal to the dot product of pi with the vector that results applying the

inverse rotation q to qi . Namely,

(qpi q ) q i = pi (q q i q).

(35)

We also have

(qpi ) (q i q) = (qpi ) (qq q i q)

= pi (q q i q)

(36)

(qpi q ) q i = (qpi ) (q i q).

(37)

The above allows us to rewrite (qpi )(q i q) as a matrix product. For this purpose, we define matrices

0 qi1

qi2

qi3

0 pi1 pi2 pi3

p

0

qi3

qi2

0

pi3 pi2

i1

and Qi = qi1

,

Pi =

q

p

qi3

0

qi1

0

pi1

i2

i2 pi3

0

qi3

qi2

qi1

0

for 1 i n. Then the quaternion products qpi and q i q are equivalent to the matrix products

Pi q and Qi q, and (qpi ) (q i q) = q T PiT Qi q.

We thus have

n

n

X

X

(qpi ) (q i q)

(by (37))

(qpi q ) qi =

i=1

i=1

n

X

q T PiT Qi q

i=1

= qT

n

X

i=1

17

PiT Qi

q.

M=

n

X

PiT Qi .

i=1

be the corresponding orthogonal unit eigenvectors. Eigenvectors corresponding to different eigenvalues must be orthogonal to each other. Multiple eigenvectors corresponding to the same eigenvalue

are chosen to be orthogonal to each other. The quaternion q is a linear combination of these

eigenvectors:

q = 1 v 1 + 2 v 2 + 3 v 3 + 4 v 4 .

Therefore we have

q T M q = (1 v 1 + 2 v 2 + 3 v 3 + 4 v 4 )T M (1 v 1 + 2 v 2 + 3 v 3 + 4 v 4 )

= (1 v 1 + 2 v 2 + 3 v 3 + 4 v 4 ) (1 1 v 1 + 2 2 v2 + 3 3 v 3 + 4 4 v4 )

= 1 21 + 2 22 + 3 23 + 4 24 .

unit quaternion q that maximizes (34) is the eigenvector that corresponds to the largest eigenvalue

of the matrix M . It describes the optimal rotation for (32), i.e, for data registration.

When the corresponding points q1 , . . . , q n are unknown, a well-known method called the Iterative Closest Point (ICP) [1] solves the registration problem. Given a set of data points {p1 , . . . , pn },

(0)

(0)

the ICP algorithm finds the initial corresponding points q 1 , . . . , q n as the closest points on the

(0)

(0)

surface model to p1 = p1 , . . . , pn = pn , respectively. Then it applies the introduced quaternion(0)

(0)

based method to determine the rotation and translation that best match {pi } with {q i }. The

(0)

(1)

second iteration applies the just found transformation to every pi , obtaining pi , and then de(1)

(1)

termines its new corresponding point q i on the model as the closest point to pi . Recompute the

best rotation and translation using quaternions, and so on. The algorithm stops when the change

in the new transformation becomes small enough.

References

[1] P. J. Besl and N. D. McKay. A method for registration of 3-D shapes. IEEE Transactions on

pattern analysis and machine intelligence, 14(2):239256, 1992.

[2] W. K. Clifford. Preliminary sketch of bi-quaternions. Proceedings of the London Mathematical

Society, s14(1):381395, 1873.

[3] E. B. Dam, M. Koch, and M. Lillholm.

Quaternions, interpolation, and animation.

http://web.mit.edu/2.998/www/QuaternionReport1.pdf.

[4] O. D. Faugeras and M. Hebert. The representation, recognition, and locating of 3-D objects.

International Journal of Robotics Research, 5(3):2752, 1986.

2

18

Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 25(3):489495, 1844.

[6] B. K. P. Horn. Closed-form solution of absolute orientation using unit quaternions. Journal of

Optical Society of America A, 4(4):629642, 1987.

[7] T. W. Hungerford. Algebra. Springer-Verlag, 1974.

[8] N. Jacobson. Basic Algebra. W. H. Freeman & Co.,1985.

[9] J. B. Kuipers. Quaternions and Rotation Sequences. Princeton University Press, 1999.

[10] S. Oldenburger. Applications of Quaternions. Written project of the course Problem Solving

Techniques in Applied Computer Science (Com S 477/577), Department of Computer Science,

Iowa State University, 2005.

[11] W. H. Press, S. A. Teukolsky, W. T.Vetterling, and B. P. Flannery. Numerical Recipies in C,

2nd edition. Cambridge University Press, Inc., 2002.

[12] J. T. Schwartz and M. Sharir. Identification of partially obscured objects in two and three

dimensions by matching noisy characteristic curves. International Journal of Robotics Research,

6(2):2944, 1987.

[13] K. Shoemake. Animating rotation with quaternion curves. Computer Graphics, 19(3):245254,

1985.

[14] F. Zhao and B. G. M. van Wachem. A novel quaternion integration approach for describing

the behaviour of non-spherical particles. Acta Mechanica, 224:30913109, 2013.

19

## Гораздо больше, чем просто документы.

Откройте для себя все, что может предложить Scribd, включая книги и аудиокниги от крупных издательств.

Отменить можно в любой момент.