eul = quat2eul(quat,sequence) converts a quaternion into Euler angles. The Euler angles are specified in the axis rotation sequence, sequence. The default order for Euler angle rotations is ZYX I noticed that the tf.conversions don't deal with singularities which can occur when converting quaternions to Euler angles. For example try: quat = quaternion_from_euler(1, 2, 3, axes='sxyz') x, y, z, w = quat euler = euler_from_quaternion(quat, axes='sxyz') a, b, c = euler quat2 = quaternion_from_euler(a, b, c, axes='sxyz' Convert a quaternion frame rotation to Euler angles in radians using the 'ZYX' rotation sequence. quat = quaternion ([0.7071 0.7071 0 0]); eulerAnglesRandians = euler (quat, 'ZYX', 'frame') eulerAnglesRandians = 1×3 0 0 1.570 mathematics of rotations using two formalisms: (1) Euler angles are the angles of rotation of a three-dimensional coordinate frame. A rotation of Euler angles is represented as a matrix of trigonometric functions of the angles. (2) Quaternions are an algebraic structure that extends the familiar concept of complex numbers. While quaternions are much les Because the output is very weird: For example: x 180º y 90º z 90º. x=3.141593 y=1.570796 z=1.570796 sx = 1.000000 sy = 0.707107 sz = 0.707107 cx = -0.000000 cy = 0.707107 cz = 0.707107 Quaternion -> (0.500000, 0.500000, -0.500000, -0.500000) reconversion euler x=270.00 y=90.00 z=0.00. Or for example x 90º y 90º z 90º

- Visualising Quaternions, Converting to and from Euler Angles, Explanation of Quaternions
- What exactly do you want Quaternion->Euler to return? An angle less than -180 degrees? Because that's not going to happen using any math function. You are stuck with a -180 to 180 range when converting quats to euler. Maybe it is better to exclusively store all rotations as eulers, and convert to quats when you need them
- For quaternions, it is not uncommon to denote the real part first. Euler angles can be defined with many different combinations (see definition of Cardan angles). All input is normalized to unit quaternions and may therefore mapped to different ranges. The converter can therefore also be used to normalize a rotation matrix or a quaternion. Results are rounded to seven digits
- dimensional space. These are (1) the rotation matrix, (2) a triple of Euler angles, and (3) the unit quaternion. To these we add a fourth, the rotation vector, which has many of the beneﬂts of both Euler angles and quaternions, but neither the singularities of the former, nor the quadratic constraint of the latter. There are several other subsidiar
- Instead, the X, Y & Z values are converted to the Quaternion's internal format. When you read the .eulerAngles property, Unity converts the Quaternion's internal representation of the rotation to Euler angles. Because, there is more than one way to represent any given rotation using Euler angles, the values you read back out may be quite different from the values you assigned. This can cause confusion if you are trying to gradually increment the values to produce animation. See bottom.
- Canonical form of quaternion? The equation presented for conversion from Euler angles to Quaternion has several discontinuities that are not necessarily present in the Quaternions themselves. For instance, for the Euler angles (0,0,-180) and (0,0,180), the conversion would produce the quaternions (0,0,0,1) and (0,0,0,-1)

It is because converting from quaternion to Euler Angles is not done using a 1 to 1 mapping. Take the simple equation y = x 2, this is not 1 to 1 since both 2 and -2 lead to the same result, the function Math.sqrt(4) has to be written to give a result and the convention calculate and return the positive square root is used.. It is the same with rotations This is a C++ library to convert euler angles to quaternions and quaternions to euler angles - brztitouan/euler-angles-quaternions-library-conversio Similarly we can map Euler angles to quaternions (4 dimensional hypersphere). This maps a one dimensional space (rotations around 0,1,0 axis) to a two dimensional plane in Euler terms. This is where attitude = 90° and heading, bank vary

** Euler Angle (roll, pitch, yaw) = (0**.0, 0.0, π/2) And in Axis-Angle Representation, the angle is: Axis-Angle {[x, y, z], angle} = { [ 0, 0, 1 ], 1.571 } So we see that the robot is rotated π/2 radians (90 degrees) around the z axis (going counterclockwise). And that's all there is to it folks. That's how you convert a quaternion into Euler. A set of Euler angles is most easily determined from the quaternion through a series of two steps utilizing the transformations above. The quaternion are first transformed into a DCM using Equation~ 1. This DCM is then converted into a set of Euler angles with the transformation in Equation~ 6

- The quaternion for the rotation by angle a about unit vector (x1,y1,z1) is given by: cos (angle/2) + i ( x1 * sin (angle/2)) + j (y1 * sin (angle/2)) + k ( z1 * sin (angle/2)) The required quaternion can be calculated by multiplying these individual quaternions
- Quaternions to Euler Angles. The Euler angles that can be used in mesh.rotation can be found from any rotation quaternion by the following method. var euler = quaternion.toEulerAngles(); To illustrate this the following playground generates three random angles, puts the axes XYZ into a random order and selects at random either to use world or local for all axes. This data is then used to.
- Converting Quaternions to Euler Angles. CH Robotics sensors automatically convert the quaternion attitude estimate to Euler Angles even when in quaternion estimation mode. This means that the convenience of Euler Angle estimation is made available even when more robust quaternion estimation is being used. If the user doesn't want to have the sensor transmit both Euler Angle and Quaternion data.
- Returns a rotation that rotates z degrees around the z axis, x degrees around the x axis, and y degrees around the y axis. using UnityEngine; public class Example : MonoBehaviour { void Start () { // A rotation 30 degrees around the y-axis Vector3 rotationVector = new Vector3 (0, 30, 0); Quaternion rotation = Quaternion.Euler (rotationVector)

** Euler angle representation in radians, returned as a N-by-3 matrix**.N is the number of quaternions in the quat argument.. For each row of eulerAngles, the first element corresponds to the first axis in the rotation sequence, the second element corresponds to the second axis in the rotation sequence, and the third element corresponds to the third axis in the rotation sequence

We introduce a comparison between quaternion-based control and a simple classical Euler angles approach for position control of a quad-rotor vehicle.Strong d.. Convert **Euler** **Angles** **to** **Quaternion** **Euler** **angles** are a complicated subject, primarily because there are dozens of mutually exclusive ways to define them. Different authors are likely to use different conventions, often without clearly stating the underlying assumptions, which makes it difficult to combine equations and code from more than one source. In this paper we will use the following. * And this converts Quaternions to Euler angles: def quaternion_to_euler(x, y, z, w): import math t0 = +2*.0 * (w * x + y * z) t1 = +1.0 - 2.0 * (x * x + y * y) X = math.degrees(math.atan2(t0, t1)) t2 = +2.0 * (w * y - z * x) t2 = +1.0 if t2 > +1.0 else t2 t2 = -1.0 if t2 < -1.0 else t2 Y = math.degrees(math.asin(t2)) t3 = +2.0 * (w * z + x * y) t4 = +1.0 - 2.0 * (y * y + z * z) Z = math.degrees(math.atan2(t3, t4)) return X, Y, 1 from tf.transformations import * 2 3 q_orig = quaternion_from_euler (0, 0, 0) 4 q_rot = quaternion_from_euler (pi, 0, 0) 5 q_new = quaternion_multiply (q_rot, q_orig) 6 print q_new. Inverting a quaternion. An easy way to invert a quaternion is to negate the w-component: (Python) 1 q [3] = - q [3] Relative rotations . Say you have two quaternions from the same frame, q_1 and q_2. You want to.

Convert Quaternion to Euler Angles Using ZYZ Axis Order. Open Live Script. quat = [0.7071 0.7071 0 0]; eulZYZ = quat2eul(quat, 'ZYZ') eulZYZ = 1×3 1.5708 -1.5708 -1.5708 Input Arguments. collapse all. quat — Unit quaternion n-by-4 matrix | n-element vector of quaternion objects. Unit quaternion, specified as an n-by-4 matrix or n-element vector of objects containing n quaternions. If the. Constructors for a quaternion, given an Euler (where application of rotation is XYZ or ZYX). However, it's only two of six possible combinations of Euler angles. You really need to find out what order the Euler angles are constructed when converting to transform matrix. Only then can the solution be defined I am using quaternions to describe 3D rotations which parametrized by Euler angles, and as a preliminary task I am trying to implement conversion routines that go between Euler angles and quaternio.. Quaternion to Euler Angles. This block converts a unit quaternion to Euler angles. Library. QUARC Targets/Math Operations/Quaternions. Description. This block convert a unit quaternion to Euler angles according to the Euler angle convention selected in the block parameters. All 24 possible combinations of rotations about fixed or relative axes are supported. The block assumes the input is a.

- But Euler angles have certain limitation that can be addressed by Quaternion angles. The main limitation of using Euler angles is that difficulty in interpolating between two orientations of an.
- In this video we continue our discussion on how to track the attitude of a body in space using quaternions. The quaternion method is similar to the Euler Ki..
- In reference to this question , the desired conversion is the opposite direction. That is using tf.transformations.euler_from_quaternion function, taking the result from robot_localization of /odometry/filtered topic, my attempt is to unravel the quaternion from the ENU convention to NED convention. The end result should be pitch, yaw, and roll using the aviation (NED) convention

Converting the quaternion into proper Euler angles would be a start. The formulas in reply #5 are not correct. kkny January 21, 2016, 8:07pm #12. But, when using Euler angles, I'll face gimbal lock how to get around gimbal lock ? jremington January 21, 2016, 8:46pm #13. ALL angular systems have ambiguities. There is [u]simply no unique way[/u] to use 3 angles to specify a 3D orientation. The original quaternion is set to: -0.717835 -0.696213 0.000298924 0.000263451 Decomposing the quaternion produces the following euler angles: -179.954 0.00357065 88.2479 The quaternion, which is composed back again has values: -0.774471 -0.751143 0.000305176 0.000244141 Can you please test it on your side. Thanks, V euler-angles-quaternions-library-conversion. This is a C++ library to use euler

The Euler angles and Hamilton's quaternions are two very important methods for representing the rotations of objects in three-dimensional space. The Euler angles, despite being more intuitive, suffer from the gimbal lock problem. Quaternions do not have a simple physical interpretation. However they are preferred for performing complex calculations, because they have a compact representation. To build a quaternion from these Euler angles for the purpose of frame rotation, use the quaternion constructor. Since the order of rotations is around the Z-axis first, then around the new Y-axis, and finally around the new X-axis, use the 'ZYX' flag. qeul = quaternion(deg2rad(euld), 'euler', 'ZYX', 'frame') qeul = quaternion 0.84313 - 0.44275i + 0.044296j + 0.30189k The 'euler' flag.

- Euler angles are pretty much the worst things ever and it makes me feel bad even supporting them. Quaternions are faster, more accurate, basically free of singularities, more intuitive, and generally easier to understand. You can work entirely without Euler angles (I certainly do). You absolutely never need them. But if you really can't give them up, they are mildly supported
- I have a quaternions which describes the relative motion between two solid bodies, and want to convert it in to Euler angles. There are 12 possible Euler angle sequences and I am not sure how to.
- Convert to Quaternions¶ A Rotor in 3D space is a unit quaternion, and so we have essentially created a function that converts Euler angles to quaternions. All you need to do is interpret the bivectors as \(i,j,\) and \(k\) 's. See Interfacing Other Mathematical Systems, for more on quaternions

* Choosing between Euler angles and quaternions is tricky*. Euler angles are intuitive for artists, so if you write some 3D editor, use them. But quaternions are handy for programmers, and faster too, so you should use them in a 3D engine core. The general consensus is exactly that: use quaternions internally, and expose Euler angles whenever you have some kind of user interface. You will be able. How do I can convert orientation quaternion to Euler angles? Thank you. Hi there! Please sign in help. tags users badges. ALL UNANSWERED. Ask Your Question 0. quaternion to euler. edit. quaternion. asked 2015-03-23 12:46:01 -0600. Porti77 123 21 26. Euler Angles To Quaternion. Euler angles are interesting because the order in which the angles are applied is important. The same angles applied in different orders won't give you the same result. The most common order of application is heading, pitch then roll. Euler angles are essentially three axis angles. Heading is a rotation around the z axis, pitch is an angle around the y axis and. Euler angles are generally what most people consider when they picture 3D space. Each value represents the rotation in degrees (it could technically be in any units) around one of the 3 axes in 3D space. Most of the time you will want to create angles using Euler angles because they are conceptually the easier to understand. The flaw is that Euler angles have a problem known as the gimbal lock.

Convert to Quaternions¶ A Rotor in 3D space is a unit quaternion, and so we have essentially created a function that converts Euler angles to quaternions. All you need to do is interpret the bivectors as \(i,j,\) and \(k\) 's. See the page Interfacing Other Mathematical Systems, for more on quaternions I am rotating n 3D shape using Euler angles in the order of XYZ meaning that the object is first rotated along the X axis, then Y and then Z.I want to convert the Euler angle to Quaternion and then get the same Euler angles back from the Quaternion using some [preferably] Python code or just some pseudocode or algorithm Unit quaternions, known as versors, provide a convenient mathematical notation for representing spatial orientations and rotations of elements in three dimensional space. Specifically, they encode information about an axis-angle rotation about an arbitrary axis. Rotation and orientation quaternions have applications in computer graphics, computer vision, robotics, navigation, molecular. Informally Euler angles refer to a parameterization of rotations which is a set of three angles about three predefined axes. It's usually noted that this gives us 12 possible choices $\left(3\times2\times2\right)$, three for the first axis and two choices for the second and third (since we can't repeat the immediately previous choice). And then that number is doubled for left vs. right.

Conversion from quaternion to Euler angle representation is covered in lots of places. For example here, and here. Specifically, if you have a quaternion $\mathbf{q} = [q_1, q_2, q_3, q_4]^T$, then the Euler angles $\phi, \theta, \psi$ are given by $$ \phi = \operatorname{arctan2}\big( q_1q_3 + q_2q_4, q_1q_4 - q_2q_3 \big) \\ \theta = \arccos\big(-q_1^2 - q_2^2 + q_3^2 + q_4^2 \big) \\ \psi. Let be the quaternion associated with the vector iP 0,ip i p Composition: Q In Euler angles, the each rotation is imagined to be represented in the post-rotation coordinate frame of the last rotation Rzyx , , Rz ( )Ry ( )Rx( ) ZYX Euler Angles (roll, pitch, yaw) In Fixed angles, all rotations are imagined to be represented in the original (fixed) coordinate frame. ZYX Euler angles can be. as_euler_angles as_euler_angles(q) Source: quaternion/__init__.py. Open Pandora's Box If somebody is trying to make you use Euler angles, tell them no, and walk away, and go and tell your mum. You don't want to use Euler angles. They are awful. Stay away. It's one thing to convert from Euler angles to quaternions; at least you're moving in the.

This MATLAB function converts the quaternion, quat, to an N-by-3 matrix of Euler angles in degrees Quaternions differ from Euler angles in that they use imaginary numbers to define a 3D rotation. While this may sound complicated (and arguably it is), Unity has great builtin functions that allow you to switch between Euler angles and quaterions, as well as functions to modify quaternions, without knowing a single thing about the math behind them. Converting Between Euler and Quaternion. **quaternions**, **Euler** **Angles** are simple and intuitive and they lend themselves well to simple analysis and control. On the other hand, **Euler** **Angles** are limited by a phenomenon called Gimbal Lock, which we will investigate in more detail later. In applications where the sensor will never operate near pitch **angles** of +/‐ 90 degrees, **Euler** **Angles** are a good choice. Sensors from CH Robotics that.

Yes, Unity stores rotations as Quaternions and displays the Euler angles in the editor. First, there's a difference between transform.rotation and transform.localRotation. Local Rotation is the Quaternion for what you see in the Unity editor, and it's the rotation relative to its parent. Rotation is the total rotation, that you would get from adding its local rotation and all of its parents. Avoiding the Euler Angle Singularity at ! = ±90° Alternatives to Euler angles-!Direction cosine (rotation) matrix-!Quaternions Propagation of direction cosine matrix (9 parameters Euler Angles. One of the most common ways to describe a rotation is as three subsequent rotations about fixed axes, e.g., first around the z axis, second around the x axis and third again around the z. The corresponding rotational angles are commonly called Euler angles. Beside the most common ZXZ covention other choices of the axes are sometimes used. Sorted by popularity in the texture.

In RSpincalc: Conversion Between Attitude Representations of DCM, Euler Angles, Quaternions, and Euler Vectors. Description Usage Arguments Details Value Author(s) References See Also Examples. Description. Q2EA converts from Quaternions (Q) to Euler Angles (EA) based on D. M. Henderson (1977).Q2EA.Xiao is the algorithm by J. Xiao (2013) for the Princeton Vision Toolkit - included here to. Euler Angles in Degrees. Use the eulerd syntax to create a scalar quaternion using a 1-by-3 vector of Euler angles in degrees. Specify the rotation sequence of the Euler angles and whether the angles represent a frame or point rotation (Often, Euler angles are denoted by roll, pitch, and yaw.) Euler angles are defined as follows: Consider two Cartesian right-handed 3D reference frames, of which one will be arbitrarily called the fixed frame and the other will be referred to as the mobile frame. The two reference frames coincide initially. To define the orientation of a third.

Euler Angles from Quaternions. The Euler angles that can be used in mesh.rotation can be found from any quaternion the following method. var euler = quaternion.toEulerAngles(); To illustrate this the following playground generates three random angles, puts the axes XYZ into a random order and selects at random either to use world or local for all axes. This data is then used to randomise the. In BJS2.3 the toEulerAngles function was - given an orientation in quaternion form supply the Euler Angles that can be applied using the ZXZ convention to produce the same rotation. In BJS2.5 the function toEulerAngles is - given an orientation in quaternion form supply the Euler Angles in the order x, y, z that can be used as parameters for mesh.rotation In BJS2.4 I can see the reasoning was. Euler angles from quaternion for specified axis sequence axes: EulerFuncs ¶ class transforms3d.euler.EulerFuncs (axes) ¶ Bases: object. Namespace for Euler angles functions with given axes specification. __init__ (axes) ¶ Initialize namespace for Euler angles functions. Parameters: axes: str. Axis specification; one of 24 axis sequences as string or encoded tuple - e.g. sxyz (the default. 围绕 z 轴旋转 euler.z 度、围绕 x 轴旋转 euler.x 度、围绕 y 轴旋转 euler.y 度（按此顺序）的旋转。可以从四元数中读取欧拉角，也可以为四元数设置欧拉角。 using UnityEngine; // eulerAngles // Generate a cube that has different color on each face. This shows // the orientation of the cube as determined by the eulerAngles. // Update the. Convert rotations given as axis/angle to quaternions. Parameters: axis_angle - Rotations given as a vector in axis angle form, as a tensor of shape (, 3), where the magnitude is the angle turned anticlockwise in radians around the vector's direction. Returns: quaternions with real part first, as tensor of shape (, 4). pytorch3d.transforms.euler_angles_to_matrix (euler_angles.

Euler Angles. In 3D space Euler angles can produce any possible orientation by providing three angles to rotate about each of three axes in a given order. For three axes X, Y and Z there are 12 different permutations for the order of the angles. Since X, Y and Z can be in World Space or in Local Space this means there is a potential of 24 different possibilities. Most, if not all,of these are. We use quaternions to represent orientations for their convenient mathematical properties, but for interpretation Euler angles are often used. Euler angles can be intuitive when the axes of rotation have physical significance, and when there is rotation about only one or at most two axes. In orientations where there is a substantial component in all three angles the interdependence between the. Euler Angles from Quaternion. The Euler angles can be obtained from the quaternions via the relations: Note, however, that the arctan and arcsin functions implemented in computer languages only produce results between −π/2 and π/2, and for three rotations between −π/2 and π/2 one does not obtain all possible orientations. To generate all the orientations one needs to replace the arctan. This Euler axis is represented by ~u. Quaternions give a simple way to represent rotation using four numbers: 3 numbers representing the axis vector and the fourth number representing an angle . It is possible to convert Euler angles to Quaternions. Euler angles are easy to visualize, however, for computing purposes, Quaternions are preferred I have a question about Quaternion. My Direct 3D animation system is using Quaternion as rotation data. and sampling method of rotation is Slerp that quaternion optimized algorithm. but sometimes Slerp is not best way so I needed to convert Quaternion to Euler Angles for to perform Lerp

Let me first do Euler angle sequence to quaternion. We know how to construct the quaternion representation for each of those rotations, and hence for the combined rotation. We construct 3 quaternions and multiply them together. Here's the one for the x-axis rotation; since the axis is (1,0,0), the imaginary part is just (SX, 0, 0), where SX is the sine of the half-angle: Then the composite. General practice is to convert Euler angles to quaternions for interpolation only • Most (if not all) game/graphics engines are doing this under the hood! Quaternion Summary • 4D vectors that represent 3D rigid body orientations • More compact than matrices for representing rotations/orientations • Free from Gimbal lock • Can convert between quaternion and matrix representation. * I'm currently adding a new user message to the INS application to output the covariance of the estimated values*. Just to check, I'm getting them from the diagonal elements of the gKalmanFilter.P, is that right ? However, the algorithm maintains covariance..

* Quaternion and rotation matrix output modes can be used to access these orientation representations respectively*. The Euler-angles can be interpreted in terms of the components of the rotation matrix, R LS, or in terms of the unit quaternion, q LS; Here, the arctangent (tan-1) is the four quadrant inverse tangent function My question is, can I also update and print out the current **Euler** and **Quaternion** **Angles**, even while the robot is moving? I am updating the status 10 times a second, and I am trying to compare the commanded vs. actual for position and the **angles**. I got the position part, just not sure what to do about the **angles**? Thanks for any help, SM. Tagged: RobotStudio; trap; Rapid Code; status update; 0. When i convert a quaternion into euler angles and then back again the euler angles into a quaternion, the results are very different. For example: KFbxQuaternion q(2,3,4,0); KFbxVector4 e = q.DecomposeSphericalXYZ(); KFbxQuaternion res; res.ComposeSphericalXYZ(e); The result quaternion has the fol.. quaternion to euler angles. a guest . Feb 20th, 2011. 944 . Never . Not a member of Pastebin yet? Sign Up, it unlocks many cool features! C++ 0.44 KB . raw download clone embed print report. float. quaternion:: rot_x const. Quaternion from Euler Angles. This block converts Euler angles into a unit quaternion. Library. QUARC Targets/Math Operations/Quaternions. Description. This block convert Euler angles into a unit quaternion according to the Euler angle convention selected in the block parameters. All 24 possible combinations of rotations about fixed or relative axes are supported. Input Ports. phi. This input.

Spatial rotations in three dimensions can be parametrized using both Euler angles and unit quaternions. This article explains how to convert between the two representations. Actually this simple use of quaternions was first presented by Euler some seventy years earlier than Hamilton to solve the problem of magic squares. For this reason the dynamics community commonly refers to quaternions. Converting quaternions to matrices is slightly faster than for Euler angles. Quaternions only require 4 numbers (3 if they are normalized. The Real part can be computed at run-time) to represent a rotation where a matrix requires at least 9 values. However for all of the advantages in favor of using quaternions, there are also a few disadvantages. Quaternions can become invalid because of. * Matrix to Euler angles*. 90 B.3 Quaternion to matrix. 91 B.4 Matrix to Quaternion. 93 B.5 Bet w een quaternions and Euler angles. 93 C Implemen tation 94 C.1 The basic structure of quat. 95 iv. Chapter 1 In tro duction T o animate means to \bring to life. Animation is a visual presen tation of c hange. raditionally this has b een used in the en tertainmen t business, for example Donald Duc kmo.

Set the quaternion using euler angles. Parameters. yaw: Angle around Z : pitch: Angle around Y : roll: Angle around X : Definition at line 144 of file btQuaternion.h. void btQuaternion::setRotation const btVector3 & axis, const btScalar & _angle ) inline: Set the rotation using axis angle notation. Parameters. axis: The axis around which to rotate : angle: The magnitude of the rotation in. A quick video introduction to Euler angles, matrices, and quaternions can be found in the Google Tech Talk Sensor Fusion on Android Devices: A Revolution in Motion Processing starting at 35:30. Vectors. A vector can be thought of as an arrow from a given initial point to another point in 3D space. It describes both the direction and the length of this arrow. The direction not only describes. Quaternion vs Euler Angles in Unity [TR].md Unity'de 3D çalışırken kafa kurcalayan konulardan biri Quaternion'ların ne işe yaradığı ve neden bazı yerlerde rotasyon değeri olarak Euler Angle değil de Quaternion kullanıldığıdır Compared to other representations like Euler angles or 3x3 matrices, quaternions offer the following advantages: compact storage (4 scalars) efficient to compose (28 flops), stable spherical interpolation; The following two typedefs are provided for convenience: Quaternionf for float; Quaterniond for double; Warning Operations interpreting the quaternion as rotation have undefined behavior if. Euler angles, quaternions, and transformation matrices for space shuttle analysis Relationships between the Euler angles and the transformation matrix, the quaternion and the transformation matrix, and the Euler angles and the quaternion are analyzed, and equations developed are applied directly to current space shuttle problems. The twelve three-axis Euler transformation matrices as functions.