Dual quaternion
Dual quaternions are an eight-dimensional algebra over the real numbers, formed as the tensor product of the quaternion algebra and the algebra of dual numbers, enabling the compact representation of rigid body transformations in three-dimensional Euclidean space by unifying rotations and translations into a single mathematical object.[1] Introduced by the English mathematician William Kingdon Clifford in 1873 under the name "bi-quaternions," dual quaternions build upon Hamilton's quaternions—discovered in 1843 for modeling three-dimensional rotations—by adjoining a dual unit ε satisfying ε² = 0, yielding elements of the form q + εp where q and p are quaternions.[1] This structure forms a non-commutative ring with operations including addition (component-wise) and multiplication (σ₁σ₂ = q₁q₂ + ε(q₁p₂ + p₁q₂)), and unit dual quaternions, normalized such that their scalar part has norm 1 and the vector part is orthogonal to the scalar part, specifically represent orientation-preserving isometries of ℝ³.[1] Unlike separate rotation matrices and translation vectors, dual quaternions avoid singularities like gimbal lock, require fewer parameters (eight versus twelve for homogeneous matrices), and facilitate smooth interpolation and composition of transformations through bilinear operations.[2] Their algebraic properties, including three distinct conjugates and a Euclidean norm, support applications in diverse fields: in robotics for forward and inverse kinematics of serial manipulators, where they parameterize screws (twists combining rotation and translation); in computer graphics for skinning animations and pose blending without artifacts; in computer vision for hand-eye calibration and point cloud registration; and even in neuroscience for modeling motor control primitives.[1][2] Further developed by mathematicians like Eduard Study in 1891, dual quaternions remain a powerful tool for geometric computations due to their geometric interpretability and computational efficiency.[1]Fundamentals
Definition
A quaternion is a hypercomplex number of the form q = w + xi + yj + zk, where w, x, y, z \in \mathbb{R} and i, j, k are imaginary units satisfying i^2 = j^2 = k^2 = ijk = -1.[3] Dual numbers provide a scalar analogy, consisting of elements z = x + \varepsilon y where x, y \in \mathbb{R} and \varepsilon is the dual unit with \varepsilon^2 = 0.[4] A dual quaternion generalizes this structure by combining two quaternions via the dual unit, formally defined as q = a + \varepsilon b where a, b are quaternions and \varepsilon^2 = 0; the set of all such elements forms an associative ring under the inherited addition and multiplication from quaternions, extended linearly with respect to \varepsilon. For example, a unit dual quaternion representing pure rotation by angle \theta around a unit axis vector \mathbf{u} = (u_x, u_y, u_z) takes the form q = \cos(\theta/2) + \sin(\theta/2)(u_x i + u_y j + u_z k) + \varepsilon \cdot 0, where the real part has norm 1 and the dual part vanishes.Components and Notation
A dual quaternion q is formally decomposed into a primal quaternion a and a dual quaternion part b, expressed as q = a + \varepsilon b, where a and b are ordinary quaternions with real coefficients, and \varepsilon is the dual unit satisfying \varepsilon^2 = 0 and \varepsilon \neq 0.[5] This structure extends the four-dimensional quaternion algebra to an eight-dimensional space over the reals.[5] The explicit component-wise expansion of q uses the standard quaternion basis \{1, i, j, k\}, yielding q = (w + \varepsilon u) + (x + \varepsilon v)i + (y + \varepsilon s)j + (z + \varepsilon t)k, where w, x, y, z, u, v, s, t are real scalars representing the coefficients of the scalar and vector components in both the primal and dual parts.[6] Here, the primal part is the quaternion a = w + x i + y j + z k, comprising the real scalar w and the vector part \mathbf{r} = x i + y j + z k (often denoted in boldface to emphasize its vector nature), while the dual part is b = u + v i + s j + t k, with real scalar u and vector \mathbf{d} = v i + s j + t k.[6] Unit vectors in the vector components are conventionally marked with a hat, such as \hat{\mathbf{r}}, to indicate normalization where |\mathbf{r}| = 1.[1] Notation for dual quaternions often employs a hat to distinguish them from ordinary quaternions, as in \hat{q} = a + \varepsilon b, underscoring the dual structure.[6] The dual unit \varepsilon commutes with the quaternion basis elements and is used consistently to separate the primal and dual components. While the standard formulation assumes real scalars for all components—termed real dual quaternions—generalizations exist over the complex numbers, where coefficients may be complex, extending applications to broader algebraic contexts but retaining the same notational framework.[5][7]Historical Development
Origins in the 19th Century
The development of dual quaternions in the 19th century built upon foundational advances in hypercomplex numbers, beginning with William Rowan Hamilton's invention of quaternions in 1843. While walking along the Royal Canal in Dublin on October 16, 1843, Hamilton realized the need for a four-dimensional extension of complex numbers to handle three-dimensional rotations and vectors, leading him to define quaternions as elements of the form a + bi + cj + dk where i^2 = j^2 = k^2 = ijk = -1.[8] This breakthrough, motivated by geometric and physical applications, marked a prerequisite evolution for later dual structures, as quaternions provided a non-commutative algebra essential for extending to dual forms.[8] A key precursor to dual quaternions emerged from James Cockle's introduction of tessarines in 1848, which challenged the dominance of Hamilton's quaternions by proposing an alternative four-dimensional hypercomplex system. In his paper "On the Symbols of Algebra, and on the Theory of Tessarines," Cockle defined tessarines as numbers involving two imaginary units i and j with i^2 = j^2 = -1 and k = ij, allowing commutative multiplication unlike quaternions.[9] This work expanded algebraic explorations beyond quaternions, laying groundwork for hybrid systems like dual quaternions by demonstrating viable extensions of complex numbers to higher dimensions with different sign rules for squares.[10] William Kingdon Clifford advanced these ideas significantly by introducing dual numbers in 1873 and extending them to biquaternions, now recognized as an early form of dual quaternions, in his paper "Preliminary Sketch of Biquaternions." Dual numbers, of the form a + b\epsilon where \epsilon^2 = 0, enabled representations of infinitesimal perturbations, and Clifford applied this to quaternions to model combined rotations and translations in a unified algebra.[11] His biquaternions generalized Hamilton's system to incorporate dual components, facilitating studies of motion in non-Euclidean spaces and serving as a direct conceptual foundation for modern dual quaternions.[11] In 1895, Aleksandr Kotelnikov developed dual vectors and dual quaternions for applications in mechanics. In 1898, Alexander McAulay used a dual unit \Omega with \Omega^2 = 0 to generate an algebra equivalent to dual quaternions, terming it "octonions." In the early 1890s, Alexander Macfarlane applied quaternion-based methods, building toward his hyperbolic quaternions, to explorations in hyperbolic geometry, marking an early geometric application of extended quaternion algebras. Influenced by Tait's quaternion treatise, Macfarlane's 1891 "Principles of the Algebra of Physics" integrated quaternions with vector methods to analyze physical quantities in curved spaces, paving the way for his 1900 paper "Hyperbolic Quaternions" that adapted the algebra for hyperbolic trigonometry and non-Euclidean metrics.[12] These efforts highlighted quaternions' potential for hyperbolic contexts, influencing later dual quaternion uses in spatial geometry.[12]20th-Century Advancements
In the early 20th century, Eduard Study advanced the geometric interpretation of dual quaternions, particularly through his development of the Study quadric, a hypersurface in projective space that parameterizes rigid body displacements using dual quaternions.[13] This framework, detailed in his 1901 work Geometrie der Dynamen, extended 19th-century foundations to model lines, conics, and quadrics in three-dimensional space, providing a projective geometric tool for analyzing spatial configurations and motions.[14] Study's approach unified rotations and translations under dual quaternion algebra, influencing subsequent studies in kinematics by embedding Euclidean transformations into higher-dimensional projective varieties.[15] During the 1920s and 1930s, Wilhelm Blaschke and collaborators further integrated dual quaternions into projective differential geometry and kinematics, emphasizing their role in describing infinitesimal motions and chain complexes.[16] Blaschke's applications, as explored in works like Kinematics and Quaternions (translated editions referencing his 1910s-1930s contributions), highlighted dual quaternions for resolving problems in curve theory and spatial linkages within projective frameworks, bridging algebraic structures with geometric invariants. These developments solidified dual quaternions as a cornerstone for theoretical kinematics, particularly in European schools of geometry. Following World War II, dual quaternions experienced a resurgence in engineering applications, particularly in robotics and computer graphics during the 1980s. Seminal work by J. Funda and R. P. Paul demonstrated their computational efficiency for analyzing screw displacements, showing that dual quaternions outperform matrix representations in handling rigid body transformations without singularities. Their 1990 analysis of screw actions provided quantitative benchmarks, revealing up to 30% reduction in computational cost for kinematic chains compared to Euler angle methods, thus promoting adoption in robot path planning and simulation.[17] Into the 21st century, dual quaternions have seen expanded use in computer vision, notably in simultaneous localization and mapping (SLAM) algorithms developed in the 2010s, where they enable robust 6-degree-of-freedom pose estimation from visual data.[18]Algebraic Structure
Addition and Scalar Multiplication
Dual quaternions are elements of the form \hat{q} = q_r + \epsilon q_d, where q_r and q_d are quaternions, \epsilon is the dual unit satisfying \epsilon^2 = 0, and the operations on the quaternion components follow the standard quaternion algebra.[19] Addition of dual quaternions is performed component-wise on the real and dual parts: for \hat{q}_1 = q_{r1} + \epsilon q_{d1} and \hat{q}_2 = q_{r2} + \epsilon q_{d2}, the sum is \hat{q}_1 + \hat{q}_2 = (q_{r1} + q_{r2}) + \epsilon (q_{d1} + q_{d2}). This operation inherits the associativity and commutativity of quaternion addition.[19][2] Scalar multiplication by a real number \lambda \in \mathbb{R} is defined similarly by scaling both parts: \lambda \hat{q} = \lambda q_r + \epsilon (\lambda q_d). This distributes over addition and satisfies the properties of a scalar field action.[19][2] Under addition and scalar multiplication, the set of dual quaternions forms an 8-dimensional vector space over the real numbers, with basis \{1, i, j, k, \epsilon, \epsilon i, \epsilon j, \epsilon k\}.[20] For example, consider a pure rotation dual quaternion \hat{r} = q_r + \epsilon \cdot 0, where q_r is a unit quaternion representing rotation, and a pure translation dual quaternion \hat{t} = 1 + \epsilon q_t, where q_t is a pure quaternion encoding the translation vector scaled by $1/2. Their sum is \hat{r} + \hat{t} = (q_r + 1) + \epsilon q_t, illustrating the component-wise nature of the operation.[2]Multiplication
Dual quaternions form a non-commutative algebra under multiplication, extending the rules of quaternion multiplication while incorporating the dual unit ε, which satisfies ε² = 0 and commutes with the quaternion basis elements i, j, k.[1][21] A dual quaternion is expressed as q = a + ε b, where a and b are quaternions. The product of two dual quaternions q₁ = a₁ + ε b₁ and q₂ = a₂ + ε b₂ is given by q_1 q_2 = a_1 a_2 + \epsilon (a_1 b_2 + b_1 a_2), where the products a₁ a₂, a₁ b₂, and b₁ a₂ follow the standard non-commutative quaternion multiplication rules.[1][21] This formula arises from treating dual quaternions as elements of a ring extension of the quaternions by the dual numbers, analogous to how dual numbers multiply as (c + ε d)(e + ε f) = c e + ε (c f + d e) with ε² = 0; substituting quaternions for the scalars c, d, e, f preserves the structure because ε commutes with quaternions.[1] Multiplication is associative, as (q₁ q₂) q₃ = q₁ (q₂ q₃), which follows directly from the associativity of quaternion multiplication and the nilpotency of ε, ensuring that higher-order ε terms vanish identically.[1] The operation is non-commutative in general, reflecting the non-commutativity of quaternions: q₁ q₂ ≠ q₂ q₁ unless a₁ b₂ + b₁ a₂ = a₂ b₁ + b₂ a₁.[2] For example, consider two pure translation dual quaternions representing translations by vectors t₁ and t₂, expressed as q₁ = 1 + ε (½ t₁) and q₂ = 1 + ε (½ t₂), where t₁ and t₂ are pure vector quaternions (zero scalar part). Their product is q₁ q₂ = 1 + ε (½ t₁ + ½ t₂) = 1 + ε (½ (t₁ + t₂)), corresponding to the combined translation by t₁ + t₂.[1][2]Conjugates
Dual quaternions possess three distinct forms of conjugation, extending the conjugation operations from quaternions and dual numbers to handle both rotational and translational aspects in their algebraic structure. These conjugates are essential for deriving norms and inverses, as they facilitate the isolation of real and imaginary components across the dual structure.[1][22] The quaternion conjugate of a dual quaternion q = a + \varepsilon b, where a and b are quaternions, is defined by applying the standard quaternion conjugation to both parts: \bar{q} = \bar{a} + \varepsilon \bar{b}. Here, the quaternion conjugate \bar{a} = w - xi - yj - zk for a = w + xi + yj + zk negates the imaginary (vector) components while preserving the real (scalar) part. This operation thus negates the imaginary parts of both the real and dual quaternion components, maintaining the dual structure intact.[23][1][22] The dual conjugate reverses the dual unit's contribution by negating the dual part: q^\varepsilon = a - \varepsilon b. This mirrors the conjugation in dual numbers and isolates the real quaternion part while flipping the sign of the translational component encoded in b. A key property is that applying the dual conjugate twice returns the original dual quaternion: (q^\varepsilon)^\varepsilon = q, highlighting its involutory nature.[1][22] The combined conjugate integrates both operations: q^* = \bar{a} - \varepsilon \bar{b}. It negates the imaginary parts of the real quaternion a, negates the dual part, and negates the imaginary parts of the dual quaternion b, effectively combining the effects of the quaternion and dual conjugates. Like the others, it is involutory, and it relates the real parts (scalars) to the overall magnitude computations while separating them from the imaginary (vector) contributions in both dual components. These conjugates thus provide tools for extracting and manipulating the scalar and vector elements central to dual quaternion algebra.[1][22]Norm and Inverse
The norm of a dual quaternion q = a + \epsilon b, where a and b are quaternions, is defined as the square root of the product q \overline{q}, with \overline{q} = \overline{a} + \epsilon \overline{b} denoting the quaternion conjugate applied componentwise.[6]This product yields the dual number q \overline{q} = \|a\|^2 + 2 \epsilon (a \cdot b), where \|a\|^2 = a \overline{a} is the squared Euclidean norm of a, and a \cdot b = \operatorname{Re}(\overline{a} b) is the real part, equivalent to the vector dot product of the vector parts plus the product of the scalar parts.[6][1]
Thus, the norm is the formal square root \|q\| = \sqrt{\|a\|^2 + 2 \epsilon (a \cdot b)}, a dual number whose real part is \|a\| and dual part is (a \cdot b)/\|a\|.[6] A dual quaternion is unit if its norm satisfies \|q\| = 1 + \epsilon \cdot 0, which requires \|a\| = 1 and a \cdot b = 0.[6][1]
Unit dual quaternions form a subset closed under multiplication, preserving the norm property \|\hat{p} \hat{q}\| = \|\hat{p}\| \|\hat{q}\| = 1 for unit \hat{p} and \hat{q}.[6] For a non-zero dual quaternion q with a \neq 0, the multiplicative inverse is given by q^{-1} = \frac{\overline{q}}{\|q\|^2} = \frac{\overline{q}}{q \overline{q}}. This formula holds because q \overline{q} is a non-zero real dual number that commutes with all elements, ensuring the division is well-defined.[6][2]
When a is a unit quaternion, the inverse simplifies to the explicit form q^{-1} = a^{-1} - \epsilon \, a^{-1} b a^{-1}, where a^{-1} = \overline{a} / \|a\|^2 = \overline{a} since \|a\| = 1.[1] To verify the inverse, compute the product for general invertible a: q q^{-1} = (a + \epsilon b)(a^{-1} - \epsilon \, a^{-1} b a^{-1}) = a a^{-1} + \epsilon (b a^{-1} - a (a^{-1} b a^{-1})) = 1 + \epsilon (b a^{-1} - b a^{-1}) = 1, as the \epsilon-terms cancel and higher-order terms vanish due to \epsilon^2 = 0.[1]
For unit dual quaternions, where \|q\|^2 = 1, this coincides with the conjugate: q^{-1} = \overline{q}, confirming invertibility and that the set of unit dual quaternions forms a multiplicative group under dual quaternion multiplication.[6][2]