---
kind: concept
slug: dual-quaternion
title: Dual-number quaternion
summary: >-
  A dual-number quaternion r + ε s packs a rigid motion into two quaternions, with r unit-length and r·s = 0. Turning pose constraints into quadratic forms in (r, s) lets a penalised least-squares error be minimised with a trust-region method. Author-reported: for camera pose from points, it is far more accurate than the linear Faugeras-Toscani method under noise.
tags: [pose-estimation, quaternions, rigid-motion, trust-region]
papers: ["2610.19734"]
related: [unit-quaternion-rotation, hand-eye-calibration]
status: draft
updated_at: 2026-10-18
---

## Overview

A dual-number quaternion writes a rigid motion as r + ε s, where r and s are
quaternions and ε² = 0 [arxiv:2610.19734 §2.1]. A valid pose needs r·r = 1 and
r·s = 0 [arxiv:2610.19734 §2.1]. The rotation and translation are read from
(r, s) through the matrices Q(r) and W(r) [arxiv:2610.19734 eq. 6] [eq. 7].
The paper uses this form for exterior calibration of a camera from a known 3-D
object. The unknown pose is then the rigid transform from the object frame to
the camera frame [arxiv:2610.19734 §1].

The reason to use it is that each image measurement gives a constraint that is
quadratic in (r, s). The paper rewrites the line and point constraints this way
and sums their squares [arxiv:2610.19734 §2.2] [§3]. The same penalty
terms keep r unit-length and orthogonal to s [arxiv:2610.19734 §2.2]. The paper
credits the use of dual-number quaternions in computer vision to Walker, Shao
and Volz (1991), for 3-D/3-D pose; it applies them to 2-D/3-D pose
[arxiv:2610.19734 §1.2].

## Variants

The paper uses the same representation in three error functions. All three are
minimised with the trust-region method described below [arxiv:2610.19734 §4].

### Line correspondences, joint fit

Each image line gives two constraints, r^T A r = 0 and r^T B r + r^T C s = 0,
with A, B and C built from the line normal, the object direction and a point on
the object line [arxiv:2610.19734 §2.2]. The error sums their squares over all
lines and adds the two penalties, with λ = 50 in the experiments
[arxiv:2610.19734 §2.2] [eq. 13]. The eight values of (r, s) are estimated
together [arxiv:2610.19734 §4] [eq. 23].

### Line correspondences, rotation then translation

The first stage minimises a rotation-only error in r [arxiv:2610.19734 eq. 14].
The second stage fixes r and solves a linear least-squares problem for s
[arxiv:2610.19734 §2.2] [eq. 15]. The translation then follows from s and r
[arxiv:2610.19734 eq. 7]. The paper does not say whether r is re-estimated
jointly with s afterwards [arxiv:2610.19734 §2.2].

### Point correspondences, joint fit

Each image point gives two collinearity equations of its image ray
[arxiv:2610.19734 §3] [eq. 16] [eq. 17]. They are rewritten as quadratic forms
in (r, s) through four matrices per point [arxiv:2610.19734 §3] [eq. 18]
[eq. 19] [eq. 20] [eq. 21]. The error is eq. 22, with the same penalties as
the line version [arxiv:2610.19734 §3] [eq. 22]. The paper's point experiments
estimate rotation and translation jointly [arxiv:2610.19734 §5] [tab. 7].

## When to use which

The paper's results are author-reported, on one calibration object with 460
points and 50 to 230 lines, and compare only against the linear
Faugeras-Toscani method [arxiv:2610.19734 §5]. No other iterative solver is
benchmarked numerically [arxiv:2610.19734 §4.2] [§6]. The choices below follow
from those results.

| Situation | Use | Why |
|---|---|---|
| Points are the measurements, noise is present, and an iterative solve is affordable | Point joint fit | At 100 points and noise amplitude 1.00, the translation error is 0.0002 cm against 11.48 cm for the linear method [arxiv:2610.19734 tab. 2] [tab. 8]. |
| Lines are the measurements, and speed matters most | Line rotation then translation | It is the cheapest variant in the paper's timings, about 0.25 s at 230 lines [arxiv:2610.19734 §6] [tab. 3]. |
| Lines are the measurements, and the joint estimate is wanted | Line joint fit | The joint line and point variants cost more than the rotation-first variant [arxiv:2610.19734 §6] [tab. 5]. The paper gives no separate accuracy table for the line joint fit. |
| Some correspondences may be wrong | Point joint fit, with a check | The non-linear error degrades gently when 1 to 10 of 400 pairs are mismatched, while the linear method gives erroneous results [arxiv:2610.19734 §5.1] [fig. 9]. The values appear only in a plot, so the size of the gap is not in the text. |
| No good starting pose and no iteration budget | Not covered by this paper | The paper gives no initial pose, and its experiments do not vary the start [arxiv:2610.19734 §4.1] [§6]. |

## Implementation sketch

The three variants share one error form. Each variant supplies its own
quadratic terms. The loop below follows the penalised error of
[arxiv:2610.19734 §2.2] [eq. 13] and [eq. 22].

```pseudocode
# Penalised error for one set of quadratic constraints  [arxiv:2610.19734 eq. 13]
# real: r, 4 values; dual: s, 4 values  [§2.1]
# terms: one function per constraint, each quadratic in (r, s)  [§2.2] [§3]
# lam: penalty weight, 50 in the experiments  [§2.2]
def penalised_error(real, dual, terms, lam):
    total = 0
    for term in terms:
        # each measurement contributes its squared constraint  [§2.2]
        total += term(real, dual) ** 2
    # penalties: r is unit-length, and r is orthogonal to s  [§2.2]
    total += lam * (dot(real, real) - 1) ** 2
    total += lam * dot(real, dual) ** 2
    return total
```

The minimiser is a trust-region method on the stacked unknowns [arxiv:2610.19734 §4]:

- At each iterate, form the gradient and the Gauss-Newton Hessian JᵀJ
  [arxiv:2610.19734 §4] [eq. 24] [eq. 25].
- Shift the Hessian by α = 0.001 [arxiv:2610.19734 §4]. Use the unconstrained
  step if it is inside the radius; otherwise find the constrained step with
  Hebden's search [arxiv:2610.19734 §4.1] [app. A].
- Accept the step when the actual reduction is at least r = 0.25 of the
  predicted reduction; otherwise halve the radius. Double the radius when the
  ratio is at least s = 0.75 [arxiv:2610.19734 §4.1] [eq. 28].

Caveats the paper leaves open. Each one changes the numbers, so check them
before comparing with another implementation:

- **Sign.** The paper does not discuss whether r and −r, which give the same
  rotation, are treated as one solution [arxiv:2610.19734 §2.1].
- **Scale of the line normal.** Figure 1 calls n a unit normal, but eq. 3 takes
  n = (a, b, c) from the image line, which need not be unit length
  [arxiv:2610.19734 fig. 1] [eq. 3]. The penalty balance depends on this choice.
- **Factor of one half.** The least-squares form uses ½ Σ Φ² [arxiv:2610.19734
  §4] [eq. 23], while eqs. 13, 14, 15 and 22 have no ½. The paper says these are
  equivalent [arxiv:2610.19734 §4]. The fixed shift α is still relative to the
  scale of the chosen form.
- **Penalty residuals.** The residual vector for the penalty terms is not
  written out [arxiv:2610.19734 §2.2].
- **Missing solver settings.** The initial radius, the initial pose, the Hebden
  start μ₀ and all stop tolerances are not stated [arxiv:2610.19734 §4.1]
  [app. A]. The paper's claim that the result does not depend on the start is
  not tested [arxiv:2610.19734 §6].
- **Intrinsics sign.** The ground-truth αu in Table 1 is negative, and the text
  does not comment on it [arxiv:2610.19734 tab. 1]. Check the camera convention
  against [arxiv:2610.19734 §2].

## Contradictions

None known. Only one card in this wiki uses dual-number quaternions, so no
second paper can disagree with it yet.

## Papers

- [Dual-quaternion pose from points and lines](/papers/2610.19734): the
  representation applied to point and line correspondences, minimised by a
  trust-region method.
