Angle Estimation of Simultaneous Orthogonal Rotations from 3D Gyroscope Measurements

A 3D gyroscope provides measurements of angular velocities around its three intrinsic orthogonal axes, enabling angular orientation estimation. Because the measured angular velocities represent simultaneous rotations, it is not appropriate to consider them sequentially. Rotations in general are not commutative, and each possible rotation sequence has a different resulting angular orientation. None of these angular orientations is the correct simultaneous rotation result. However, every angular orientation can be represented by a single rotation. This paper presents an analytic derivation of the axis and angle of the single rotation equivalent to three simultaneous rotations around orthogonal axes when the measured angular velocities or their proportions are approximately constant. Based on the resulting expressions, a vector called the simultaneous orthogonal rotations angle (SORA) is defined, with components equal to the angles of three simultaneous rotations around coordinate system axes. The orientation and magnitude of this vector are equal to the equivalent single rotation axis and angle, respectively. As long as the orientation of the actual rotation axis is constant, given the SORA, the angular orientation of a rigid body can be calculated in a single step, thus making it possible to avoid computing the iterative infinitesimal rotation approximation. The performed test measurements confirm the validity of the SORA concept. SORA is simple and well-suited for use in the real-time calculation of angular orientation based on angular velocity measurements derived using a gyroscope. Moreover, because of its demonstrated simplicity, SORA can also be used in general angular orientation notation.


Introduction
Gyroscopes provide angular velocity measurements with respect to inertial space. With recent developments in gyroscope technology, their usage in various fields is observably increasing. For example, highly accurate fibre optic gyroscopes [1] are used in different aerospace and missile navigation applications. These gyroscopes use the interference of light to measure angular velocity. Microelectromechanical system (MEMS) gyroscopes [2,3] use vibrating mechanical elements to sense rotation and have no rotating parts. The operating principle governing the use of MEMS gyroscopes is the Coriolis effect. MEMS sensors have several advantages: their small size, light weight, low power consumption, low costs, and ease of design and use. Such gyroscopes can be used, for example, in automobiles (for ride stabilisation and rollover detection [4]), robotics (in state estimation for legged robots [5]), biomedical applications (for motion capture and motion pattern classification and characterisation; e.g., [6][7][8][9][10]), and virtual and augmented reality applications (e.g., [11,12]). Owing to their low battery consumption and small size, MEMS sensors are a promising tool for outdoor measurements and ambulatory monitoring [6]. Because of their low cost, they are suitable for a wide range of commercial applications [2].
By providing angular velocity measurements, gyroscopes can also be used in angular orientation estimation. In general, angular orientation is the position of a rigid body intrinsic coordinate system relative to a reference coordinate system with the same origin. It can be indicated with a rotation needed to move the first system, initially aligned with the second, to its new position. The reference and intrinsic coordinate systems are considered Cartesian, with axes denoted with x r , y r , z r and x, y, z, respectively, as illustrated in Figure 1. The orientation of the coordinate system axes conforms to the right-hand rule.
In gyroscope measurement, the gyroscope is considered the rigid body and inertial space the reference system; the measured angular velocities indicate the rotation needed to move the sensor to its new position. To fully specify angular orientation in inertial space, the gyroscope must be suitable for measuring angular velocities around all three intrinsic coordinate system axes (i.e., it must be a 3D gyroscope). For the coordinate systems described and illustrated in Figure 1, 3D gyroscope angular velocity outputs will represent simultaneous rotations around axes of sensitivity x, y and z.
Because rotations in general are not commutative, one cannot treat the three simultaneous angular velocities measured with a 3D gyroscope as sequential rotations. There are six possible sequences of three orthogonal rotations and, thus, six different angular orientations. None of them are correct. Infinitesimally small rotations have been shown to be commutative [19]. Thus, when the angles of the three simultaneous rotations are small, the difference between the six abovementioned angular orientations became negligible because the rotations become nearly commutative. Reference and 3D gyroscope intrinsic coordinate systems, denoted by x r , y r , z r and x, y, z, respectively. Therefore, the effect of the three simultaneous rotations can be approximated by a sequence of sufficiently small sequential rotations around orthogonal axes. Which of the six possible sequences is used for individual rotations is of no importance. The smaller the angles of the individual rotations, the smaller the estimated angular orientation error. However, more processing power and time are required.
The three simultaneous orthogonal rotations measured with a 3D gyroscope represent a single rotation around a certain axis for a certain angle φ. This rotation and the resulting (spatial) angular orientation can be uniquely represented using a rotation vector, i.e., the vector aligned with the rotation axis and with the length equal to the rotation angle φ. In this paper, we show that when the measured angular velocities or their proportions are constant, the components of this vector are the angles of the three simultaneous orthogonal rotations. For this reason, we call this vector the simultaneous orthogonal rotations angle (SORA). We first introduced SORA in [20]; there, however, we only presented numerical verification that SORA was the rotation vector of the equivalent single rotation. In this paper, these results are derived. This derivation is achieved using infinitesimally small rotations.
Based on SORA, the angular orientation of a rigid body can be calculated from the measured angular velocities when they or their proportions are approximately constant. This process requires just one step and thus avoids computing the infinitesimal rotation approximation.
SORA indicates a unique angular orientation of an object of interest in inertial space. Because of its simplicity, not only is it suitable for the real-time calculation of angular orientation based on angular velocity measurements obtained using a gyroscope, but it is also useful for general angular orientation notation. This paper is organised as follows. In Section 2, we present the derivation of the axis and angle of the single rotation equivalent to the three simultaneous rotations around orthogonal axes. On this basis, we define SORA and emphasise its applicability. For clarity of presentation, all longer derivations are presented in the appendix. In Section 3, we describe the test measurements performed to validate the SORA concept and examine the accuracy of the angular orientation estimates obtained using SORA. In Section 4, we draw our conclusions.

Simultaneous Orthogonal Rotations Angle
Let us consider a 3D gyroscope providing measurements of angular velocities ω x , ω y and ω z around its three intrinsic orthogonal axes, x, y and z, respectively. Suppose now that all three angular velocities are constant during some time interval T, and that the axes of the gyroscope intrinsic coordinate system are aligned with the axes of the reference coordinate system at the beginning of this interval.
Any angular orientation can be represented using a single rotation around a certain axis that rotates the object from its initial position to its new position. For this reason, the angular orientation of the gyroscope at the end of interval T can be represented using a rotation matrix R(φ, v), where φ is the rotation angle in the positive direction around the rotation axis defined by the unit vector v. For the definition of a rotation matrix, see, for example [21].
If we observe the rotating gyroscope in the reference coordinate system, we will see that the orientations of the rotation axes constantly change, which makes further analysis more difficult. Thus, it is much more convenient to examine the rotation of the reference frame in the gyroscope intrinsic coordinate system. In this case, the orientations of the rotation axes do not change. The reference frame rotates around them with the same angular velocities in the opposite direction, i.e., −ω x , −ω y , and −ω z . Because both coordinate systems are initially aligned, the rotation axis of the equivalent rotation is the same regardless of which coordinate system we are observing. However, the rotation angle of the equivalent rotation is now equal to −φ.
We have shown that simultaneous rotations of the reference coordinate system with angular velocities −ω x , −ω y , and −ω z are equivalent to a rotation of angle −φ around vector v. It is thus obvious that simultaneous rotations of the reference coordinate system with angular velocities ω x , ω y , and ω z are equivalent to a rotation of angle φ around vector v and that they can be described using the same rotation matrix R(φ, v) as the rotation of the gyroscope in the reference coordinate system. In the following paragraphs, we will determine φ and v which is our aim because φ and v uniquely define the angular orientation of the sensor at the end of the observation interval T.
Suppose now that the reference coordinate system is rotating simultaneously around sensor intrinsic axes x, y, and z with angular velocities ω x , ω y , and ω z . During this interval, the reference frame turns for angles Due to rotation non-commutativity, R(φ, v) cannot be obtained by considering these three simultaneous rotations sequentially. Therefore, we must decompose the total rotation into a sequence of n small rotations of duration T/n. During each small rotation, the reference coordinate system simultaneously turns around the gyroscope intrinsic axes x, y, and z for angles φ x /n, φ y /n, and φ z /n, respectively. Because all of these small rotations are equal, the axis and angle of their equivalent single rotation are the same. Furthermore, because angular velocities ω x , ω y , and ω z now refer to the reference frame rotations and because the orientations of the rotation axes do not change, the axis of this equivalent rotation again coincides with vector v. During T/n, the reference frame rotates around this axis for angle φ/n, so we denote the corresponding rotation matrix as R(φ/n, v). It then holds that: If n is sufficiently large, such that rotations become nearly commutative, R(φ/n, v) can be approximated based on simultaneous rotations for angles φ x /n, φ y /n, and φ z /n, sequentially and in any preferred order. Thus, we can write: where v app (n) and Δφ app (n) denote approximations of v and φ/n, respectively, and u x , u y , and u z are the base vectors of the gyroscope intrinsic coordinate system. Let us now increase n beyond all limits so that small rotations become infinitesimally small and thus commutative [19]. The above approximations v app (n) and Δφ app (n) then approach exact values of v and φ/n. It holds that: For the derivation of the above results, see Appendix A. This step completes the equivalent rotation axis and angle derivation. From Equations (4) and (5), we can obtain the rotation vector Φ, i.e., the vector aligned with the rotation axis with a length that is equal to the rotation angle: Because we derived this vector from simultaneous rotations around orthogonal axes, we named it the simultaneous orthogonal rotations angle (SORA). The components of SORA are the angles of three simultaneous rotations around coordinate system axes. The orientation and magnitude of this vector are equal to the equivalent single rotation axis and angle, respectively. As long as our initial condition that angular velocities must be constant is met, SORA will represent the resulting angular orientation of three simultaneous rotations around orthogonal axes.
In fact, the previously stated holds as long as the orientation of the rotation axis is constant. This is true even if the measured angular velocities change, as long as their proportions are the same. Then, in each of the n small rotation steps, we can choose such a T/n, that all three rotation angles φ x /n, φ y /n, and φ z /n stay the same. However, if the measured angular velocities do not change proportionally, the orientation of the rotation axis also changes.
SORA indicates a unique angular orientation of an object of interest relative to some reference frame. Because of its simplicity, it is both suitable for the real-time calculation of angular orientation based on angular velocity measurements obtained using a gyroscope and useful for general angular orientation notation.
Using gyroscope measurements that provide rotation angle estimation, it is also reasonable to combine angular velocities around three orthogonal axes in vector form: Such notation is appropriate for a 3D gyroscope sensor because the components of the angular velocity vector Ω in Equation (7) are its outputs. When the measured angular velocities or their proportions are approximately constant, the orientation of the rotation axis is also constant. Then, the axis of the equivalent single rotation is equal to the axis of actual gyroscope rotation. For this reason, Ω is equal to gyroscope angular velocity represented in vector form. It is orthogonal to the rotation plane, and its magnitude is equal to the angular velocity in that plane.

Test Measurements
To confirm the validity of the SORA concept, we performed test measurements using a stable rotation speed gramophone and a 3D gyroscope and accelerometer sensor mounted on the gramophone rotation disk. The test measurement scheme and the intrinsic x y z and reference x r y r z r coordinate systems are illustrated in Figure 2.

Figure 2.
Vector SORA proof-of-concept measurement scheme. The reference coordinate system axes x r y r , and z r are initially aligned with the intrinsic axes x y and z.
We used a Sanyo turntable gramophone and set the turntable rotation speed to 45 r.p.m. The 3D sensor was comprised of one dual-axis ST LPR530AL gyroscope, one single-axis ST LPY530AL gyroscope and one three-axis ST LIS331HH linear accelerometer. The sensor was constructed in such a way that its sensitive axes were mutually orthogonal. Both of the MEMS gyroscopes use a sensing principle based on the measurement of the Coriolis forces. The gyroscopes convert angular velocity information into an analogue DC voltage at its output. The MEMS accelerometer output corresponding to each axis was an analogue voltage proportional to the projection of the total acceleration of the sensor along its direction. The analogue output of both gyroscopes and the accelerometer was sent to an analogue-to-digital converter. A wireless module was used to capture sensor digital outputs, which were stored on a laptop. The sampling rate was 1,024 Hz. The gyroscope and accelerometer outputs were obtained in units of [°/s] and [mg], respectively. According to the device specifications, the maximum measurable angular velocity is ±300°/s, whereas the accelerometer measurement range is ±6/±12/±24 g. Zero-level measurements were performed when there were no angular velocities or external forces present. Mean values obtained were subtracted from all further measurements.
We also performed sensor calibration. The following procedure was repeated for each sensor intrinsic axis. The sensor was oriented so that its sensitive axis was aligned with the gravity force. The ratio between the known gravity constant and the mean measurement output value when the sensor was at rest was used as the accelerometer scaling factor. To obtain the gyroscope scaling factor, the sensor was rotated at the centre of the gramophone rotation disk around that axis. The ratio between the known gramophone rotation disk speed and the mean measurement output value was used as the gyroscope scaling factor.

Test Measurement Results
To validate the SORA concept, we performed rotation measurements for several arbitrary orientations of the sensor relative to the rotating disk at the disk centre. One such measurement output set is presented in Figure 3. Gyroscope measurement outputs ω x , ω y , and ω z obtained during constant velocity rotation periods were used for SORA calculations according to Equation (6). During T rot = 1 s, we obtained N rot = 1,024 samples, which we averaged: rot rot rot 1 rot Based on Equation (8), we calculated the equivalent rotation axis and angle of T rot = 1 s rotation following Equations (4) and (5), respectively. We obtained the following results: and: We then matched the results obtained to the actual sensor rotation axis and angle. For specific sensor orientation during the rest period, we used gravity projections on sensor intrinsic axes that were determined based on accelerometer measurement outputs α x , α y , and α z to determine the actual gramophone rotation axis orientation as expressed in the sensor intrinsic coordinate system. During T rest = 1 s, we obtained N rest = 1,024 samples, which we averaged: The actual rotation angle was obtained based on the gramophone rotation disk angular velocity of 45 r.p.m.: φ act = ω act ·T rot ; ω act = 4.7124s −1 (12) Using Equations (11) and (12), we obtained the following results: act 0.3627 0.7112 0.6022 and φ act = 270° The relative norm error of the rotation axis of Equation (9) while the relative rotation angle Equation (10) We performed 10 measurement instances. According to the Kolmogorov-Smirnov test at significance level α = 0.05, the null-hypothesis that random errors Err v and Err φ are normal, could not be rejected. For both errors we obtained the following statistics:

Conclusions
The concept of a vector simultaneous orthogonal rotations angle (SORA), as presented in this paper, is well suited for calculating angular orientation based on 3D gyroscope measurement outputs that are approximately constant or in constant proportion. When this condition is met, the orientation of the rotation axis does not change and the components of SORA are equal to the angles of three simultaneous rotations measured with a gyroscope. The three simultaneous rotations resulting from angular orientation can be represented with one single rotation. A derivation of this equivalent single rotation axis and angle is provided here. The axis of the equivalent single rotation is aligned with SORA, whereas the rotation angle is equal to its magnitude. Therefore, SORA is actually a rotation vector.
According to the newly proposed vector SORA, as long as angular velocities or their proportions are approximately constant, angular orientation calculation only requires a single step. This fact makes it possible to avoid computing the iterative infinitesimal rotation approximation. Test measurements performed show that SORA is suitable for angular orientation estimation when average values of approximately constant angular velocities are considered.
SORA is appropriate for use for a number of applications that require angular orientation information, including navigation and motion tracking. As has been confirmed using test measurements, SORA is simple and suitable for the real-time calculation of angular orientation based on gyroscope angular velocity measurements.
Not only is SORA well suited for representing angular orientation based on actual gyroscope measurements, but it can also be used in generalised angular orientation notation. In representing angular orientation with simultaneous rotations, we can avoid the problem of rotation non-commutativity. The three simultaneous rotation angles, as included in SORA, represent a unique angular orientation, while considering only right-hand rotations around three orthogonal axes yields six different rotation sequences. Each of these rotation sequences specifies a different angular orientation. Because of this, SORA is much more suitable for rotation presentation purpose than widely used Euler angles. Moreover, SORA helps interpret the meaning of the rotation vector with measurable quantities.
where v app (n) and Δφ app (n) denote approximations of v and φ/n, respectively; u x , u y , and u z denote the x y z coordinate system base vector; and R(φ x /n, u x ), R(φ y /n, u y ), R(φ z /n, u z ), represent rotation matrices: Increasing n beyond all limits, we find that the small rotations become infinitesimally small and thus commutative [20]. The approximations of v app (n) and φ app (n) then approach the exact values for v and φ/n: where v is defined according to Equation (A.17). It should be noted that we are considering general simultaneous rotations around all three coordinate system axes. Where φ y = 0 and φ z = 0, the above equation must be suitably changed to obtain the required vector orthogonality, for example: