Unit quaternionsalso known as versorsprovide a convenient mathematical notation for representing orientations and rotations of objects in three dimensions. Compared to Euler angles they are simpler to compose and avoid the problem of gimbal lock.
Don’t Get Lost in Deep Space: Understanding Quaternions
Compared to rotation matrices they are more compact, more numerically stableand more efficient. Quaternions have applications in computer graphics computer visionrobotics navigationmolecular dynamicsflight dynamics orbital mechanics of satellites  and crystallographic texture analysis. When used to represent rotation, unit quaternions are also called rotation quaternions as they represent the 3D rotation group.
When used to represent an orientation rotation relative to a reference coordinate systemthey are called orientation quaternions or attitude quaternions. This is sufficient to reproduce all of the rules of complex number arithmetic: for example:.
From this all of the rules of quaternion arithmetic follow, such as the rules on multiplication of quaternion basis elements. Using these rules, one can show that:. When quaternions are used in geometry, it is more convenient to define them as a scalar plus a vector :. Some might find it strange to add a number to a vectoras they are objects of very different natures, or to multiply two vectors together, as this operation is usually undefined.
However, if one remembers that it is a mere notation for the real and imaginary parts of a quaternion, it becomes more legitimate.
We can express quaternion multiplication in the modern language of vector cross and dot products which were actually inspired by the quaternions in the first place . Quaternion multiplication is noncommutative because of the cross product, which anti-commuteswhile scalar—scalar and scalar—vector multiplications commute. From these rules it follows immediately that see details :. The left and right multiplicative inverse or reciprocal of a nonzero quaternion is given by the conjugate-to-norm ratio see details :.
Our goal is to show that. Expanding out, we have. Quaternions give a simple way to encode this axis—angle representation in four numbers, and can be used to apply the corresponding rotation to a position vectorrepresenting a point relative to the origin in R 3. This can be done using an extension of Euler's formula :. In a programmatic implementation, this is achieved by constructing a quaternion whose vector part is p and real part equals zero and then performing the quaternion multiplication.Compared to quaternions, Euler Angles are simple and intuitive and they lend themselves well to simple analysis and control.
Quaternions provide an alternative measurement technique that does not suffer from gimbal lock. Quaternions are less intuitive than Euler Angles and the math can be a little more complicated. This application note covers the basic mathematical concepts needed to understand and use the quaternion outputs of CH Robotics orientation sensors. A quaternion is a four-element vector that can be used to encode any rotation in a 3D coordinate system.
Technically, a quaternion is composed of one real element and three complex elements, and it can be used for much more than rotations. In this application note we'll be ignoring the theoretical details about quaternions and providing only the information that is needed to use them for representing the attitude of an orientation sensor.
The attitude quaternion estimated by CH Robotics orientation sensors encodes rotation from the "inertial frame" to the sensor "body frame. The sensor body-frame is a coordinate frame that remains aligned with the sensor at all times. Unlike Euler Angle estimation, only the body frame and the inertial frame are needed when quaternions are used for estimation Understanding Euler Angles provides more details about using Euler Angles for attitude estimation.
The elements b, c, and d are the "vector part" of the quaternion, and can be thought of as a vector about which rotation should be performed. In practice, this definition needn't be used explicitly, but it is included here because it provides an intuitive description of what the quaternion represents.
That is, a vector can rotated by treating it like a quaternion with zero real-part and multiplying it by the attitude quaternion and its inverse. The inverse of a quaternion is equivalent to its conjugate, which means that all the vector elements the last three elements in the vector are negated. The rotation also uses quaternion multiplication, which has its own definition.
To rotate a vector from the body frame to the inertial frame, two quaternion multiplies as defined above are required. Alternatively, the attitude quaternion can be used to construct a 3x3 rotation matrix to perform the rotation in a single matrix multiply operation. The rotation matrix from the inertial frame to the body frame using quaternion elements is defined as. Then the rotation from the inertial frame to the body frame can be performed using the matrix multiplication.
Regardless of whether quaternion multiplication or matrix multiplication is used to perform the rotation, the rotation can be reversed by simply inverting the attitude quaternion before performing the rotation. By negating the vector part of the quaternion vector, the operation is reversed.
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 for example, to reduce communication bandwidth requirementsthen the quaternion data can be converted to Euler Angles on the receiving end.
The exact equations for converting from quaternions to Euler Angles depends on the order of rotations. CH Robotics sensors move from the inertial frame to the body frame using first yaw, then pitch, and finally roll. This results in the following conversion equations:.
See the chapter on Understanding Euler Angles for more details about the meaning and application of Euler Angles. When converting from quaternions to Euler Angles, the atan2 function should be used instead of atan so that the output range is correct.
Note that when converting from quaternions to Euler Angles, the gimbal lock problem still manifests itself. The difference is that since the estimator is not using Euler Angles, it will continue running without problems even though the Euler Angle output is temporarily unavailable.
When the estimator runs on Euler Angles instead of quaternions, gimbal lock can cause the filter to fail entirely if special precautions aren't taken. Understanding Quaternions 1. Quaternion Basics A quaternion is a four-element vector that can be used to encode any rotation in a 3D coordinate system.
Figure 1 - The Inertial Frame.Quaternions are mathematical operators that are used to rotate and stretch vectors. This article provides an overview to aid in understanding the need for quaternions in applications like space navigation.
Accurately locating, shifting, and rotating objects in space can be done in a variety of ways. The more familiar and easy to visualize roll, pitch, and yaw are limited and should be replaced in certain cases with the more robust quaternion. As the position and orientation of the object change, a mathematical device known as a quaternion is used to rotate and scale the original vector. If the position of the object changes, the vector will be in a new location and perhaps be of a new length.Math for Game Developers - Rotation Quaternions
We need a way to measure or calculate the changes between two vectors. Any rotation in space can be described by a combination of these rotations. Once gimbal lock occurs, it is impossible to reorient the axes without an external reference. Had gimbal lock occurred after the explosion, the astronauts' inertial measurement unit would have lost track of their position in the celestial sphere, negatively affecting their already desperate situation.
You can view the full equations by clicking on the images. Multiple transformation matrices exist, and they can be applied in various orders. The twelve rotation sequences can be divided into two categories: Proper Euler angles, where one axis of rotation is repeated x-z-x, x-y-x, y-x-y, y-z-y, z-y-z, z-x-zand Tait-Bryan angles, which rotate around all axes x-z-y, x-y-z, y-x-z, y-z-x, z-y-x, z-x-y.
You can see below the simplifying effect that has on the matrix. Another way to look at the problem is to take the original transformation matrix I again chose z-y-x and use trigonometric identities to bring variables together inside the trigonometric function. Pay attention to the initial interdependence of the angles.
William Hamilton invented quaternions in as a method to allow him to multiply and divide vectors, rotating and stretching them. What I present below is intended to be illustrative, but by no means mathematically rigorous.
It should be sufficient to allow you to understand quaternions at an introductory level for a computer science and engineering setting. It is not meant to be sufficient for a mathematics class. If you require more in-depth information, the following books on the topic were recommended by California State University, Fullerton, Professor of Physics and Mathematics, Dr. Alfonso Agnew:. Together, those four numbers create a quaternion that describes rotation and distance.
Quaternions provide the information necessary to rotate a vector with just four numbers instead of the nine needed with a rotation matrix. Complex numbers were invented to allow solutions to problems that have no real number solution. Complex numbers can be imagined to lie on a plane, with the real part of the number expressed along the horizontal axis and the imaginary part of the number expressed along the vertical axis.
Two complex numbers can be added, subtracted, multiplied, and divided. Euler developed a method for rotating complex numbers in the complex polar plane that Hamilton built his ideas upon. While this is far from a full treatment on the subject of complex numbers, it provides a stepping stone towards quaternions in the following ways:. Scalar variables have no special formatting applied to them.
A vector is a list of ordered numbers that describe position along a scale in a particular direction. It is visualized as a straight line with length and direction. The length of a vector is the straight line distance from its start to its end. Mathematically it is given as the square root of the sum of the square of the individual elements.Implemented in: UnityEngine.
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable. For some reason your suggested change could not be submitted. And thank you for taking the time to help us improve the quality of Unity Documentation. They are compact, don't suffer from gimbal lock and can easily be interpolated.
Unity internally uses Quaternions to represent all rotations. They are based on complex numbers and are not easy to understand intuitively. You almost never access or modify individual Quaternion components x,y,z,w ; most often you would just take existing rotations e.
LookRotationQuaternion. AngleQuaternion. EulerQuaternion. SlerpQuaternion. FromToRotationand Quaternion. The other functions are only for exotic uses.
You can use the Quaternion. Note that Unity expects Quaternions to be normalized. Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.This page is an introduction to Quaternions, the pages below this have more detail about their algebra and how to use them to represent 3D rotations. Quaternions were discovered on 16 October by William Rowan Hamilton.
He spent years trying to find a three dimensional number systems, but with no success, when he looked in 4 dimensions instead of 3 it worked. Quaternions form an interesting algebra where each object contains 4 scalar variables sometimes known as Euler Parameters not to be confused with Euler anglesthese objects can be added and multiplied as a single unit in a similar way to the usual algebra of numbers.
In mathematical terms, quaternion multiplication is not commutative. The arithmetic of quaternions, such as how to do addition and multiplication, is explained on this page.
On this page we will introduce quaternions as an extension of complex numbers with two additional imaginary dimensions, however there are other ways to think about quaternions and other notations for quaternions which are described on this page. Quaternions have 4 dimensions each quaternion consists of 4 scalar numbersone real dimension and 3 imaginary dimensions. Each of these imaginary dimensions has a unit value of the square root of -1, but they are different square roots of -1 all mutually perpendicular to each other, known as i,j and k.
So a quaternion can be represented as follows:. It is not very practical to try to draw 4 dimensions in 2 dimensions, but here is an attempt:. This is wrong! In fact quaternions can represent 3D reflections, rotations and scaling, however a single quaternion operation cannot include translations so if we want to rotate, reflect or scale around a point other than the origin, then we would have to handle the translation part separately see affine translations.
To calculate the resulting point Pout when we translate the point Pin using quaternions then we use the following equations:. The majority of applications involve pure rotations, for this we restrict the quaternions to those with unit magnitude and we use only multiplications and not addition to represent a combination of different rotations.
When quaternions are normalised in this way, together with the multiplication operation to combine rotations, form a mathematical groupin this case SU 2. We can use this to do lots of operations which are required in practical applications such as, combining subsequent rotations and equivalently orientationsinterpolating between them, etc.
It is quite difficult to give a physical meaning to a quaternion, and many people find this similarity to axis-angle as the most intuitive way to think about it, others may just prefer to think of quaternions as an interesting mathematical system which has the same properties as 3D rotations.
So it is closely related to the axis angle representation of rotations. The quaternion 'i' represents a rotation of degrees about the x axis, the quaternion 'j' represents a rotation of degrees about the y axis, the quaternion 'k' represents a rotation of degrees about the y axis.
It may seem strange that -1 represents a rotation of degrees, since this is 'no change' I would expect it to be 1. In other words if we negate all the terms we get a different quaternion but it represents the same rotation. This makes sense in terms of axis angle representation, if we take the reverse angle and also reverse the axis this will produce the same result.
So both 1 and -1 represent the identity do nothing rotation. An object which, if rotated by degrees it is inverted, is known as a spinor. We can represent 3D rotations as 3 numbers see euler angles but such a representation is non-linear and difficult to work with. An analogy is a two dimensional map of the earth, there is no way that we can map the surface of the earth without distorting either angles or areas.
However once the 2D map is wrapped round a 3D sphere it becomes linear, in a similar way the 3D space of rotations becomes linear when it is mapped to a 4D hypersphere. I have described this analogy further on this page. On these pages will be developing a class sfrotation full listing here which holds a rotation and encapsulates operations such as combining two rotations, in addition to coding the rotation as a quaternion it can also be coded as euler or axis angle and can convert between these formats.
You may be interested in other means to represent orientation and rotational quantities such as:. Quaternion algebra is one possible way to represent 3 dimensional orientation, or other rotational quantity, associated with a solid 3D object.Analogamente all' analisi complessa e allo studio delle funzioni olomorfe di variabile complessa, raccoglie un interesse crescente l' analisi ipercomplessa e lo studio delle funzioni "regolari" di variabile quaternionica.
I quaternioni furono formalizzati dal matematico irlandese William Rowan Hamilton nel Hamilton era alla ricerca di un metodo per estendere i numeri complessi che possono essere visti come punti su un piano su un numero maggiore di dimensioni spaziali.
Eccitato dalla scoperta, incise l'equazione sul lato del vicino ponte Brougham noto ora come Broom Bridge a Dublino. Alcuni dei sostenitori di Hamilton si opposero veementemente allo studio dei settori emergenti dell' algebra lineare e del calcolo vettoriale sviluppato fra gli altri da Oliver Heaviside e Willard Gibbsaffermando che i quaternioni offrivano una notazione migliore.
Una prima versione delle equazioni di Maxwell utilizzava una notazione basata sui quaternioni. Oggi, i quaternioni vengono utilizzati principalmente nella rappresentazione di rotazioni e direzioni nello spazio tridimensionale.
Hanno quindi applicazioni nella computer grafica 3Dnella teoria del controllonell' elaborazione dei segnalinel controllo dell'assettoin fisica e in astrodinamica.
La somma ed il prodotto di due quaternioni sono calcolate con gli usuali passaggi algebrici, usando le relazioni di moltiplicazione appena descritte. I quaternioni hanno molte caratteristiche proprie dei numeri complessi : anche per i quaternioni, in analogia con i complessi, possono essere definiti concetti come norma e coniugato ; ogni quaternione, se diverso da zero, possiede un inverso rispetto al prodotto. Valgono le relazioni seguenti:.
Le due strutture di corpo e di spazio vettoriale sono riassunte dal concetto di algebra di divisione. I quaternioni, i numeri complessi e i numeri reali sono le uniche algebre di divisione associative costruite sui numeri reali aventi dimensione finita. Con la norma, i quaternioni formano un' algebra di Banach reale.
I quaternioni unitari sono i quaternioni di norma 1. I quaternioni unitari formano un gruppo moltiplicativo rispetto al prodotto. I suoi otto elementi sono. Con questa notazione, somma e prodotto possono essere descritti nel modo seguente:.
Le nozioni di coniugato e norma diventano:. Le operazioni di somma e prodotto si svolgono in modo usuale, applicando la relazione. In questa rappresentazione, il coniugato di un quaternione corrisponde alla trasposta della matrice.
Da Wikipedia, l'enciclopedia libera. Portale Fisica. Portale Matematica.The quaternions are members of a noncommutative division algebra first invented by William Rowan Hamilton. The idea for quaternions occurred to him while he was walking along the Royal Canal on his way to a meeting of the Irish Academy, and Hamilton was so pleased with his discovery that he scratched the fundamental formula of quaternion algebra.
The set of quaternions is denoted, orand the quaternions are a single example of a more general class of hypercomplex numbers discovered by Hamilton.
While the quaternions are not commutative, they are associative, and they form a group known as the quaternion group. By analogy with the complex numbers being representable as a sum of real and imaginary parts, a quaternion can also be written as a linear combination.
Note also that NonCommutativeMultiply i. A variety of fractals can be explored in the space of quaternions. For example, fixing gives the complex plane, allowing the Mandelbrot set. By fixing or at different values, three-dimensional quaternionic fractals have been produced Sandin et al.
The quaternions can be represented using complex matrices. Quaternions can also be represented using the complex matrices. Arfkenp. Note that here is used to denote the identity matrixnot. The matrices are closely related to the Pauli matrices, and combined with the identity matrix. Therefore, and are three essentially different solutions of the matrix equation. A linear combination of basis quaternions with integer coefficients is sometimes called a Hamiltonian integer.
Inthe basis of the quaternions can be given by. The quaternions satisfy the following identities, sometimes known as Hamilton's rules. The quaternions,and form a non-Abelian group of order eight with multiplication as the group operation. In this notation, the quaternions are closely related to four-vectors. Quaternions can be interpreted as a scalar plus a vector by writing.
In this notation, quaternion multiplication has the particularly simple form. Division is uniquely defined except by zeroso quaternions form a division algebra. The inverse reciprocal of a quaternion is given by.
In fact, the product of two quaternion norms immediately gives the Euler four-square identity. A rotation about the unit vector by an angle can be computed using the quaternion.