Computing orientation with complex multiplication but without trigonometric function

Today’s methods for computing orientation are quaternion and rotation matrix. However, their efficiencies are tarnished by the complexity of the rotation matrix and the counterintuitivity of quaternion. A better method is presented here. It uses complex multiplication for rotating vectors in 3D space and can compute orientation without angle and trigonometric functions, which is simple, intuitive and fast.

  1. Basic orientation 1
  2. Rotation using complex multiplication 1
    a. Complex multiplication 1
    b. Mixed multiplication 2
  3. Reference frames 2
    a. Ground frame and proper frame 2
    b. Direction frame 3
  4. Base vectors of the direction frame 3
    a. Rotation around the z axis 3
    b. Rotation around the y axis 3
    c. The 3 axes of the direction frame 4
    d. Direction frame and 3d complex number 4
  5. Roll, Pitch and Yaw 4
    a. Roll 4
    b. Pitch and Yaw 4
  6. Determination of the angles 5
    a. Direction angles 5
    b. Roll angle 5
    c. Direction frame angles without trigonometric functions 5
    d. Roll angle without trigonometric functions 6
  7. Computation for oriented points 6
    a. Position of one point 6
    b. Computation without trigonometric functions 6
    c. Procedure of computation without trigonometric function 7
  8. Discussion 7
    See the article with figures and equations here
    For downloading the paper
  9. Basic orientation
    A rigid body can rotate around 3 orthogonal axes in space, see Figure 1. The state of these 3 rotations is the orientation of this body. The commonly used orientation systems are Euler angles and Tait–Bryan angles[1]. Two methods are usually used to compute orientation: quaternion [2] and rotation matrix [3]. But they have their drawbacks. For quaternion, the computation for rotating a vector p needs to multiply p on the left by the rotation vector q and on the right by its conjugate q-1, which implies two 4D multiplications with p in between, see equation (1). The weird thing is that the rotation vector q is not computed with the rotation angle  but its half /2, see (2), [4]. The half angle and the “sandwich multiplication” make the quaternion method counterintuitive.

For rotation matrix, the 3 angles of orientation are mingled in the 9 elements of the matrix where one gets easily lost. For example, in «Step by step rotation in normal and high dimensional space and meaning of quaternion»[5], the transformation matrix is equation (3) which is confusing with the messed trigonometric functions.

Can we find a better method? In fact, I have constructed a 3D complex number system in «Extending complex number to spaces with 3, 4 or any number of dimensions» [6] which computes easily the rotation of a vector in 3D space. The combination of this system with the step by step rotation described in «Step by step rotation in normal and high dimensional space and meaning of quaternion»[5] gives birth to a new method. This method can use directly the coordinates of points to rotate an object without using trigonometric function. We will explain first this method that uses complex multiplication and trigonometric function.

  1. Rotation using complex multiplication
    a. Mixed multiplication
    We notice that when a 3D vector rotates around an axis that is perpendicular to it, the vector rotates in a plane and we call it the rotation plane. For using 2D complex multiplication in 3D space, we consider the rotation plane as a complex plane and use the 2D complex multiplication to rotate a vector in this plane.

Let (e1, e2) be a plane in 3D space, e1 and e2 the base vectors of the plane, so they 3D vectors. We make this plane equivalent to the complex plane using equation (7), that is, e1 corresponds to the real axis and e2 to the imaginary axis. u is a vector in the plane and is expressed in (8), with a and b being its components. Because the plane (e1, e2) is equivalent to the complex plane, u has an equivalent complex number u, which is expressed in (9). Let v be an other complex number which is expressed in (10).

We multiply u with v and the complex product uv is given in (11). The real and imaginary parts of uv are written in (12). Because the complex plane is equivalent to the plane (e1, e2), we replace the 1 and i that are in (11) with e1 and e2 and obtain uv in (13) which is a vector in the plane (e1, e2).

So, we have created a new type of multiplication: the vector u multiplied by the complex number v. The vector u is a 3D vector because e1 and e2 are 3D vectors. The product of this multiplication is uv which is a 3D vector too. We call this multiplication “mixed multiplication” and the product “mixed product”. We state the Definition 1.

Definition 1: Mixed multiplication and mixed product
The plane (e1, e2) is equivalent to the complex plane. u is a vector in this plane and equals ae1+be2. u is a complex number and equals a+bi. v is an other complex number. u is multiplied by v and the result of this multiplication is denoted as uv and equals real(uv)e1+ imag (uv)e2, with real(uv) and imag (uv) being the real and imaginary parts of the complex product uv. uv is a vector in the plane (e1, e2). This multiplication is called the mixed multiplication and uv the mixed product.

Let us use the newly defined mixed multiplication to rotate the vector u given in (14). The complex number u given in (4) is the complex equivalent of u and the complex number v is the ei given in (5). The complex product uv is computed in (6). Then the mixed product uv is given in (15) whose components equal the real and imaginary parts in (6). So, uv is well the vector u rotated by the angle . We see that mixed multiplication is a very easy way to compute the rotation of a 3D vector in the rotation plane.

See the article with figures and equations here
For downloading the paper

Leave a Reply

Your email address will not be published. Required fields are marked *