Skip to main content

Dual-quaternion-based iterative algorithm of the three dimensional coordinate transformation

Abstract

Nowadays a unit quaternion is widely employed to represent the three-dimensional (3D) rotation matrix and then applied to the 3D similarity coordinate transformation. A unit dual quaternion can describe not only the 3D rotation matrix but also the translation vector meanwhile. Thus it is of great potentiality to the 3D coordinate transformation. The paper constructs the 3D similarity coordinate transformation model based on the unit dual quaternion in the sense of errors-in-variables (EIV). By means of linearization by Taylor's formula, Lagrangian extremum principle with constraints, and iterative numerical technique, the Dual Quaternion Algorithm (DQA) of 3D coordinate transformation in weighted total least squares (WTLS) is proposed. The algorithm is capable to not only compute the transformation parameters but also estimate the full precision information of computed parameters. Two numerical experiments involving an actual geodetic datum transformation case and a simulated case from surface fitting are demonstrated. The results indicate that DQA is not sensitive to the initial values of parameters, and obtains the consistent values of transformation parameters with the quaternion algorithm (QA), regardless of the size of the rotation angles and no matter whether the relative errors of coordinates (pseudo-observations) are small or large. Moreover, the DQA is advantageous to the QA. The key advantage is the improvement of estimated precisions of transformation parameters, i.e. the average decrease percent of standard deviations is 18.28%, and biggest decrease percent is 99.36% for the scaled quaternion and translations in the geodetic datum transformation case. Another advantage is the DQA implements the computation and precision estimation of traditional seven transformation parameters (which still are frequent used yet) from dual quaternion, and even could perform the computation and precision estimation of the scaled quaternion.

Graphical Abstract

Introduction

Three dimensional (3D) coordinate transformation is a fundamental and common issue in geodesy, engineering surveying, photogrammetry, LIDAR, GIS, robotics and computer vision, etc. (cf. Arun et al. 1987; Besl and McKay 1992; Burša 1967; Chen et al. 2004; Crosilla and Beinat 2002; Fan et al. 2015; Gargula ans Gawronek 2023; Ge and Wunderlich 2016; Horn 1987; Ioannidou and Pantazis 2020; Krarup 1985; Leick and Van Gelder 1975; Li et al. 2012; Odziemczyk 2020; Soycan and Soycan 2008; Teunissen 1988). Although it has different names in different fields, e.g. geodetic datum transformation in geodesy, absolute orientation in photogrammetry, point clouds registration in LIDAR, etc. its essence is to find the transformation parameters by a set of common points from one 3D rectangular coordinate system to another 3D rectangular coordinate system. The 3D similarity coordinate transformation is frequently used 3D coordinate transformation model. It has seven transformation parameters namely one scale factor, three rotation angles and three translations. And it is a nonlinear mathematical model. Traditionally the solution of 3D similarity coordinate transformation is implemented by the least squares (LS) estimation under the Gauss-Markov model, i.e., only the errors of coordinates in the target coordinate system are taken into account (Bektas 2022; Chen et al. 2004; Ioannidou and Pantazis 2020; Kurt 2018; Li et al. 2022; Uygur et al. 2020; Závoti and Kalmár 2016; Zeng et al. 2016, 2019;) Obviously the Gauss-Markov model is not in accord with the fact that all the coordinates in both the original coordinate system and the target coordinate system are contaminated by errors. Thus errors-in-variables (EIV) model, which considers all the errors in both the original and the target coordinate systems, is more reasonable than the Gauss-Markov model. The adjustment method oriented towards the EIV model is total least squares (TLS) named by Golub and Van Loan (1980). There are a lot of literatures on TLS, e.g. Aydin et al. (2018), Fang (2015), Lv and Sui (2020), Ma et al. (2020), Mahboub (2016), Mercan et al. (2018), Mihajlović and Cvijetinović (2017), Qin et al. (2020), Schaffrin et al. (2012); Uygur et al. (2020); Zeng et al. (2020); Zeng et al. (2022a); Xu et al. (2012); Xu et al. (2023).

Besides the classical LS or TLS adjustment methods, a few analytical algorithms of 3D coordinate transformation in the LS or TLS sense have been put forward so far. The analytical algorithms include the Procrustes algorithms (e.g. Arun et al. 1987; Crosilla and Beinat 2002; Grafarend and Awange 2003; Felus and Burtch 2009; Chang 2015; Păun et al. 2017) utilizing singular value decomposition (SVD), unit quaternion based algorithms (Horn 1987; Shen et al. 2006; Chang et al. 2017) utilizing eigenvalue–eigenvector decomposition, the orthonormal matrix based algorithm (Horn et al. 1988; Zeng 2015) utilizing eigenvalue–eigenvector decomposition, dual quaternion based algorithm (Walker et al. 1991; Wang et al. 2014; Zeng et al. 2022b) utilizing eigenvalue–eigenvector decomposition, Gibbs vector based algorithm (Zeng and Yi 2010) utilizing the property of Rodrigues matrix. The analytical algorithms are able to obtain the theoretic solutions and fast because they employ the theoretic formulae to calculate the solutions without initial values of parameters, and iterations. The disadvantages of the analytical algorithms over numerical or iterative algorithms are the former does not offer the precision estimation of computed parameters, which should be as important as the computed parameters themselves. In addition, the analytical algorithms can only deal with point-wise or identity weight matrix of observations, thus are not available for general weight matrix of observations (Zeng et al. 2022a).

As far as the iterative algorithms are concerned, good initial values of parameters are needed before iterative computations in the most situations. Otherwise the iterative computation may fail. In some cases like registration of point clouds, good initial values are hard or impossible to obtain due to the any size of rotation angles (e.g. Zeng and Yi 2011). At times good initial values of parameters are not necessary or arbitrary initial values of parameters can be available if global optimization algorithms are employed (e.g. Xu 2003). On the one hand, the 3D similarity coordinate transformation is usually not implemented real-time. On the other hand, because the number of common points is not large in the most cases, the computational time of iterations usually is short. So the iterative algorithms are tested majorly with the precision of transformation parameters rather than the efficiency.

Traditional rotation angle (Euler angle) based rotation matrix representation has a lot of trigonometric functions (Bektas 2022; Zeng et al. 2018); as a result, the iterative computation needs very good initial values of parameters. If bad initial values are provided, more time are consumed even iteration diverges (Zeng and Yi 2011). Quaternion based rotation matrix representation involves no trigonometric functions but algebraic (polynomial) functions, which has efficient computational performance (Zeng and Yi 2011). Compared to quaternion, dual quaternion represents not only the rotation matrix but also the translations by polynomials (Walker et al. 1991; Jitka 2011; Zeng et al. 2018, 2022b). In other words, the rigid transformation including rotation and translation could be represented by a dual quaternion. In addition, it is worthy of note that the established transformation model based on a unit dual quaternion does not require centralization of coordinates to exclude the translations while traditional transformation models do (Grafarend and Awange 2003; Felus and Burtch 2009). Thus it is meaningful to explore the computational performance of dual quaternion in 3D coordinate transformation, including the sensitivity of the initial values of parameters or suitability of large or small rotation angle case (bad initial values of parameters usually is caused by large rotation angle), the precision of computed parameters and effect of errors in coordinates, etc.

The remainder of the paper is organized as follows. In next section, the basic concept of quaternion and dual quaternion are introduced in brief. And the paper derives the representation of 3D rotation matrix by a quaternion and the formula of translation vector by a unit dual quaternion from the viewpoint of geometry in detail. In the Sect. “Dual quaternion algorithm (DQA) of 3D coordinate transformation”, the 3D coordinate transformation in the errors-in-variables (EIV) model is established, and then the Dual Quaternion Algorithm (DQA) is presented after the derivation of linearization of the mathematical model and WTLS solution based on the Lagrangian extremum principle with constraints. Additionally, the computation and precision estimation of traditional seven transformation parameters are fulfilled from dual quaternion considering that the seven transformation parameters are used widely in applications. Two numerical experiments including a geodetic datum transformation case and a simulated case oriented form surface fitting are demonstrated in the Sect. “Experiments and discussion”. Lastly conclusions are drawn in the last section, i.e. Sect. “Conclusions”.

Concepts of quaternion and dual quaternion

This section firstly introduces the definition and basic properties of quaternion, and emphasizes on interpreting the meaning of 3D rotation of a point around an axis, and representing the 3D rotation by means of quaternion. Next the dual quaternion is introduced and the rigid motion involving 3D rotation about an axis and translation along the axis is expressed by a unit dual quaternion. Especially the relationship between the translation and the dual quaternion is derived in detail.

Quaternion and 3D rotation matrix

Quaternion is a four-element vector invented by Hamilton in 1843, whose general form is

$${\varvec{q}} = iq_{{1}} + jq_{{2}} + kq_{{3}} + q_{{4}}$$
(1)

where \(q_{1}\), \(q_{2}\), \(q_{3}\), \(q_{4}\) are all real numbers, \(i\), \(j\) and \(k\) are imaginary units also named quaternion units with the following properties: \(i^{2} = j^{2} = k^{2} = - 1\), \(ij = - ji = k\), \(jk = - kj = i\), \(ki = - ik = j\). For \(i\), \(j\) and \(k\) are imaginary, \(q_{1}\), \(q_{2}\), \(q_{3}\) are called imaginary parts, and \(q_{4}\) is called the real part. Quaternion \({\varvec{q}}\) is usually represented in the form of vector to separate the real and imaginary parts as

$${\varvec{q}} = \left[ {\begin{array}{*{20}c} {\mathbf{q}} \\ {q_{{4}} } \\ \end{array} } \right],\,{\mathbf{q}} = \left[ {\begin{array}{*{20}c} {q_{{1}} } \\ {q_{{2}} } \\ {q_{{3}} } \\ \end{array} } \right],$$
(2)

where \({\mathbf{q}}\) is a vector used to express the imaginary parts, named vector part, \(q_{4}\) is also called the scalar part. Quaternion is called pure imaginary one when its scalar part is zero and vector part is not zero vector. Analogous to the definition of conjugate complex number, the definition of conjugate quaternion corresponding to \({\varvec{q}}\) is

$${\varvec{q}}^{*} = - iq_{1} - jq_{2} - kq_{3} + q_{4}$$
(3)

And the norm of quaternion \({\varvec{q}}\) is given as follows.

$$\left\| {\varvec{q}} \right\| = \sqrt {{\varvec{qq}}^{ * } } = \sqrt {q_{1}^{2} + q_{2}^{2} + q_{3}^{2} + q_{4}^{2} }$$
(4)

If \(\left\| {\varvec{q}} \right\| = {1}\), \({\varvec{q}}\) is called unit quaternion.

It is easy to prove the following properties utilizing the foregoing definitions.

$${\varvec{p}} + {\varvec{q}} = \left( {\begin{array}{*{20}c} {{\mathbf{p}} + {\mathbf{q}}} \\ {p_{4} + q_{4} } \\ \end{array} } \right)$$
(5)
$${\varvec{pq}} = \left( {\begin{array}{*{20}c} {{\mathbf{p}} \times {\mathbf{q}} + p_{4} {\mathbf{q}} + q_{4} {\mathbf{p}}} \\ {p_{4} q_{4} - {\mathbf{p}} \cdot {\mathbf{q}}} \\ \end{array} } \right)$$
(6)
$${\varvec{pqr}} = \left( {{\varvec{pq}}} \right){\varvec{r}} = {\varvec{p}}\left( {{\varvec{qr}}} \right)$$
(7)
$${\varvec{p}}\left( {\user2{q + r}} \right) = \user2{pq + pr}$$
(8)
$$\left( {{\varvec{pq}}} \right)^{ * } = {\varvec{q}}^{ * } {\varvec{p}}^{ * }$$
(9)
$${\varvec{q}}^{ - 1} = \frac{{{\varvec{q}}^{ * } }}{{\left\| {\varvec{q}} \right\|}}$$
(10)

where \({\varvec{p}}\), \({\varvec{q}}\) and \({\varvec{r}}\) are any quaternions, \({\varvec{q}}^{ - 1}\) denotes the inverse of \({\varvec{q}}\). The symbols \(\cdot\) and \(\times\) stand for dot and cross product of vectors respectively as follows.

$${\mathbf{p}} \cdot {\mathbf{q}} = {\mathbf{p}}^{T} {\mathbf{q}}$$
(11)
$${\mathbf{p}} \times {\mathbf{q}} = {\mathbf{C}}({\mathbf{p}}){\mathbf{q}} = \left[ {\begin{array}{*{20}c} 0 & { - p_{3} } & {p_{2} } \\ {p_{3} } & 0 & { - p_{1} } \\ { - p_{2} } & {p_{1} } & 0 \\ \end{array} } \right]{\mathbf{q}}$$
(12)

where subscript T denotes transpose computation, and \({\mathbf{C}}({\mathbf{p}})\) is called a skew symmetric matrix. From the above properties of quaternion, it is seen apparently that the multiplication of quaternion meets associativity and distributivity but non-commutativity. The product \({\varvec{pq}}\) can also be fulfilled by the product of a matrix and quaternion in the form of vector:

$$\user2{pq = }Q({\varvec{p}}){\varvec{q}} = W({\varvec{q}}){\varvec{p}}$$
(13)

where

$$Q({\varvec{p}}) = \left[ {\begin{array}{*{20}c} {p_{4} {\mathbf{I}} + {\mathbf{C}}({\mathbf{p}})} & {\mathbf{p}} \\ { - {\mathbf{p}}^{T} } & {p_{4} } \\ \end{array} } \right]$$
(14)
$${\mathbf{W}}({\varvec{q}}) = \left[ {\begin{array}{*{20}c} {q_{4} {\mathbf{I}} - {\mathbf{C}}({\mathbf{q}})} & {\mathbf{q}} \\ { - {\mathbf{q}}^{T} } & {q_{4} } \\ \end{array} } \right]$$
(15)

Next the relationship of 3D rotation matrix and quaternion is investigated. See Fig. 1, assume any point P in the 3D space rotates an angle of θ (be positive in the direction of counterclockwise for right-hand coordinate system) around the rotation axis represented by a unit vector n, and the corresponding point after rotation is P’. Or is the origin of 3D rectangular coordinate system, Oc is the foot of a perpendicular from pint P to the rotation axis, P is the point after 90° rotation of point P. P′ is the foot of a perpendicular from pint P’ to the line of Oc to P. The vectors \(\overrightarrow {{{\mathbf{O}}_{{\mathbf{r}}} {\mathbf{O}}_{{\mathbf{c}}} }}\), \(\overrightarrow {{{\mathbf{O}}_{{\mathbf{c}}} {\mathbf{P^{\prime}}}_{ \bot } }}\), \(\overrightarrow {{{\mathbf{P^{\prime}}}_{ \bot } {\mathbf{P^{\prime}}}}}\) are computed as follows.

$$\overrightarrow {{{\mathbf{O}}_{{\mathbf{r}}} {\mathbf{O}}_{{\mathbf{c}}} }} = \, {\mathbf{n}}\left( {{\mathbf{n}} \cdot {\mathbf{p}}} \right)$$
(16)
$$\overrightarrow {{{\mathbf{O}}_{{\mathbf{c}}} {\mathbf{P^{\prime}}}_{ \bot } }} = \left( {{\mathbf{p}} - {\mathbf{n}}\left( {{\mathbf{n}} \cdot {\mathbf{p}}} \right)} \right)\cos \theta$$
(17)
$$\overrightarrow {{{\mathbf{P^{\prime}}}_{ \bot } {\mathbf{P^{\prime}}}}} = \overrightarrow {{{\mathbf{O}}_{{\mathbf{c}}} {\mathbf{P}}_{ \bot } }} \sin \theta = \left( {{\mathbf{n}} \times {\mathbf{p}}} \right)\sin \theta$$
(18)
Fig. 1
figure 1

3D rotation of a point about an axis

So

$$\begin{aligned} {\mathbf{p^{\prime}}} =\, & \overrightarrow {{{\mathbf{O}}_{{\mathbf{r}}} {\mathbf{O}}_{{\mathbf{c}}} }} + \overrightarrow {{{\mathbf{O}}_{{\mathbf{c}}} {\mathbf{P}}^{\prime}_{ \bot } }} + \overrightarrow {{{\mathbf{P}}^{\prime}_{ \bot } {\mathbf{P}}^{\prime}}} \\ =\, & {\mathbf{n}}\left( {{\mathbf{n}} \cdot {\mathbf{p}}} \right) + \left( {{\mathbf{p}} - {\mathbf{n}}\left( {{\mathbf{n}} \cdot {\mathbf{p}}} \right)} \right)\cos \theta + \left( {{\mathbf{n}} \times {\mathbf{p}}} \right)\sin \theta \\ =\, & {\mathbf{p}}\cos \theta + \left( {{1} - \cos \theta } \right){\mathbf{n}}\left( {{\mathbf{n}} \cdot {\mathbf{p}}} \right) + \left( {{\mathbf{n}} \times {\mathbf{p}}} \right)\sin \theta \\ =\, & {\mathbf{p}}\cos \theta + \left( {{1} - \cos \theta } \right){\mathbf{n}}\left( {{\mathbf{n}}^{T} {\mathbf{p}}} \right) + \left( {{\mathbf{n}} \times {\mathbf{p}}} \right)\sin \theta \\ =\, & {\mathbf{p}}\cos \theta + \left( {{1} - \cos \theta } \right)\left( {{\mathbf{nn}}^{T} } \right){\mathbf{p}} + \left( {{\mathbf{n}} \times {\mathbf{p}}} \right)\sin \theta \\ =\, & \left( {{\mathbf{I}}_{3} \cos \theta + \left( {{1} - \cos \theta } \right)\left( {{\mathbf{nn}}^{T} } \right) + \sin \theta {\mathbf{C}}({\mathbf{n}})} \right){\mathbf{p}} \\ =\, & {\mathbf{Rp}} \\ \end{aligned}$$
(19)

where \({\mathbf{I}}_{3}\) is a 3-by-3 identity matrix and \({\mathbf{R}}\) is the 3D rotation matrix. Thus the rotation matrix is expressed by the unit vector n and rotation angle θ. Introducing a unit quaternion

$${\varvec{r}} = \left[ {\begin{array}{*{20}c} {{\mathbf{n}}\sin \frac{\theta }{{2}}} \\ {\cos \frac{\theta }{{2}}} \\ \end{array} } \right]$$
(20)

The rotation matrix \({\mathbf{R}}\) by Eq. (19) is rewritten as

$$\begin{aligned} {\mathbf{R}} =\, & {\mathbf{I}}_{3} \left( {\left( {\cos \frac{\theta }{{2}}} \right)^{{2}} - \left( {\sin \frac{\theta }{{2}}} \right)^{{2}} } \right) + {2}\left( {\sin \frac{\theta }{{2}}} \right)^{{2}} \left( {{\mathbf{nn}}^{T} } \right) + {2}\sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}}{\mathbf{C}}({\mathbf{n}}) \\ =\, & {\mathbf{I}}_{3} \left( {r_{{4}}^{{2}} - {\mathbf{r}}^{T} {\mathbf{r}}} \right) + {2}\left( {{\mathbf{rr}}^{T} + r_{{4}} {\mathbf{C}}({\mathbf{r}})} \right) \\ =\, & \left[ {\begin{array}{*{20}c} {r_{{4}}^{{2}} + r_{1}^{{2}} - r_{2}^{{2}} - r_{3}^{{2}} } & {{2}\left( {r_{1} r_{2} - r_{3} r_{4} } \right)} & {{2}\left( {r_{1} r_{3} + r_{2} r_{4} } \right)} \\ {{2}\left( {r_{1} r_{2} + r_{3} r_{4} } \right)} & {r_{{4}}^{{2}} - r_{1}^{{2}} + r_{2}^{{2}} - r_{3}^{{2}} } & {{2}\left( {r_{2} r_{3} - r_{1} r_{4} } \right)} \\ {{2}\left( {r_{1} r_{3} - r_{2} r_{4} } \right)} & {{2}\left( {r_{2} r_{3} + r_{1} r_{4} } \right)} & {r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} } \\ \end{array} } \right] \\ \end{aligned}$$
(21)

Therefore the rotation matrix is directly represented by the unit quaternion. If constructing pure quaternions \({\varvec{p}}\) and \(\user2{p^{\prime}}\) with the vectors \({\mathbf{p}}\) and \({\mathbf{p^{\prime}}}\), the rotation transformation is expressed with quaternions as (Walker et al. 1991; Zeng and Yi 2011)

$$\user2{p^{\prime} = rpr}^{*} = Q({\varvec{r}})W({\varvec{r}}^{*} ){\varvec{p}} = Q({\varvec{r}})W({\varvec{r}})^{T} {\varvec{p}} = W({\varvec{r}})^{T} Q({\varvec{r}}){\varvec{p}}$$
(22)

and \({\mathbf{W}}({\varvec{r}})^{T} Q({\varvec{r}})\) can be expanded as

$${\mathbf{W}}({\varvec{r}})^{T} Q({\varvec{r}}) = \left[ {\begin{array}{*{20}c} {\mathbf{R}} & {\mathbf{0}} \\ {{\mathbf{0}}^{T} } & 1 \\ \end{array} } \right].$$
(23)

Dual quaternion and rigid motion

Dual quaternion which was invented by William Kingdon Clifford in 1873 and originally named biquaternion (Clifford 1873), is described as

$$\begin{aligned} \overline{\user2{q}} =\, & {\varvec{r}} + \varepsilon {\varvec{s}} \\ =\, & (r_{{1}} + \varepsilon s_{{1}} )i + (r_{{2}} + \varepsilon s_{{2}} )j + (r_{{3}} + \varepsilon s_{{3}} )k + (r_{{4}} + \varepsilon s_{{4}} ), \\ =\, & q_{{d{1}}} i + q_{{d{2}}} j + q_{{d{3}}} k + q_{{d{4}}} \\ \end{aligned}$$
(24)

where \({\varvec{r}}\) and \({\varvec{s}}\) are arbitrary quaternions, and \({\upvarepsilon }\) is a basis element named dual unit. \(\varepsilon\) satisfies the following properties: \(\varepsilon^{{2}} = {0}\) and multiplication of \({\upvarepsilon }\) and quaternion units meets commutativity, e.g. \({\upvarepsilon }i\,{ = }\,i{\upvarepsilon }\). \(\left( {\begin{array}{*{20}c} {q_{{{\text{d1}}}} } & {q_{{{\text{d2}}}} } & {q_{{{\text{d3}}}} } \\ \end{array} } \right)^{T}\) is the vector (dual number vector) part, \(q_{{{\text{d4}}}}\) is the scalar (dual number) part. The product of dual quaternions \(\overline{\user2{p}} = {\varvec{u}} + {\upvarepsilon }{\varvec{v}}\) and \(\overline{\user2{q}}\) is easily deduced by the above properties of \(\varepsilon\) as

$$\user2{\overline{p}\overline{q}} = {\varvec{ur}} + {\varepsilon (}\user2{us + vr)}.$$
(25)

The conjugate of dual quaternion is defined utilizing the conjugate of quaternion:

$$\overline{\user2{q}}^{ * } = {\varvec{r}}^{ * } + {\upvarepsilon }{\varvec{s}}^{ * } .$$
(26)

And the norm of dual quaternion is a dual scalar (number) and is defined analogous to the definition of norm of quaternion as

$$\left\| {\overline{\user2{q}}} \right\| = \sqrt {\overline{\user2{q}}^{ * } \overline{\user2{q}}} = \sqrt {q_{d1}^{2} + q_{d2}^{2} + q_{d3}^{2} + q_{d4}^{2} } .$$
(27)

If \(\left\| {\overline{\user2{q}}} \right\| = 1\), \(\overline{\user2{q}}\) is called a unit dual quaternion. Unit dual quaternion \(\overline{\user2{q}}\) satisfies the following two conditions (Jitka 2011; Walker et al 1991).

$${\varvec{r}}{}^{T}\user2{r = }\,{1,}$$
(28)
$${\varvec{r}}{}^{T}\user2{s = }\,0.$$
(29)

In other words, for unit dual quaternion \(\overline{\user2{q}}\), the non-dual part i.e. \({\varvec{r}}\) is a unit quaternion, and non-dual part is perpendicular to the dual part i.e. \({\varvec{s}}\).

The rigid motion involving rotation about an axis and translation along the axis can be expressed elegantly by a unit dual quaternion (Walker et al 1991; Jitka 2011; Zeng et al. 2018). The rigid motion is depicted in Fig. 2. The O-XYZ is a rectangular coordinate system, and p is a vector starting from the origin O of coordinate system. The vector p is firstly translated by a distance d along the rotation axis denoted by the unit vector n, and then rotated by an angle θ about the rotation axis. The new rectangular coordinate system O’-X’Y’Z’, the new vector p’ after rotation, and the translation vector t from the original system to the new one are denoted in the figure. Rewriting the unit dual quaternion \(\overline{\user2{q}}\) in Eq. (24) as (Walker et al 1991)

$$\overline{\user2{q}} = \left[ {\begin{array}{*{20}c} {{\overline{\mathbf{n}}}\sin \frac{{\overline{\theta }}}{{2}}} \\ {\cos \frac{{\overline{\theta }}}{{2}}} \\ \end{array} } \right]$$
(30)

where \({\overline{\mathbf{n}}}\) and \(\overline{\theta }\) are dual vector and dual angle represented as

$${\overline{\mathbf{n}}} = {\mathbf{n}} + {\upvarepsilon }{\mathbf{p}} \times {\mathbf{n}}$$
(31)
$$\overline{\theta } = \theta + \varepsilon d$$
(32)
Fig. 2
figure 2

Rigrid motion

Inserting the above two equations into Eq. (30) and expanding the equation and comparing with Eq. (24), one obtains

$${\varvec{r}} = \left[ {\begin{array}{*{20}c} {{\mathbf{n}}\sin \frac{\theta }{{2}}} \\ {\cos \frac{\theta }{{2}}} \\ \end{array} } \right],$$
(33)
$${\varvec{s}} = \left[ {\begin{array}{*{20}c} {\frac{d}{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}} + \sin \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \\ { - \frac{d}{{2}}\sin \frac{\theta }{{2}}} \\ \end{array} } \right]$$
(34)

where Eq. (33) is identical to Eq. (20). Thus the non-dual part of unit dual quaternion \(\overline{\user2{q}}\) i.e. \({\varvec{r}}\) is employed to express the rotation transformation as described early [see Eq. (21)], the left part of rigid body transformation i.e. translation transformation can be represented by \({\varvec{r}}\) and \({\varvec{s}}\) with derivation as follows.

From Fig. 2, the following equation is obtained.

$${\mathbf{t}} = {\mathbf{p}} + d{\mathbf{n}} - {\mathbf{p}}^{\prime} = {\mathbf{p}} + d{\mathbf{n}} - {\mathbf{Rp}}.$$
(35)

Substituting the \({\mathbf{Rp}}\) in Eq. (19) into the above equation, and considering

$${\mathbf{nn}}^{T} = {\mathbf{C}}({\mathbf{n}}){\mathbf{C}}({\mathbf{n}}) + {\mathbf{I}}_{3} ,$$
(36)

One gets

$$\begin{aligned} {\mathbf{t}} =\, & {\mathbf{p}} + d{\mathbf{n}} - {\mathbf{p^{\prime}}} \\ =\, & {\mathbf{p}} - \left( {{\mathbf{I}}_{3} \cos \theta + \left( {{1} - \cos \theta } \right)\left( {{\mathbf{C}}({\mathbf{n}}){\mathbf{C}}({\mathbf{n}}) + {\mathbf{I}}_{3} } \right) + \sin \theta {\mathbf{C}}({\mathbf{n}})} \right){\mathbf{p}} + d{\mathbf{n}} \\ =\, & {\mathbf{p}} - \left( {{\mathbf{I}}_{3} + \left( {{1} - \cos \theta } \right){\mathbf{C}}({\mathbf{n}}){\mathbf{C}}({\mathbf{n}}) + \sin \theta {\mathbf{C}}({\mathbf{n}})} \right){\mathbf{p}} + d{\mathbf{n}} \\ =\, & - \left( {{1} - \cos \theta } \right){\mathbf{C}}({\mathbf{n}}){\mathbf{C}}({\mathbf{n}}){\mathbf{p}} - \sin \theta {\mathbf{C}}({\mathbf{n}}){\mathbf{p}} + d{\mathbf{n}} \\ =\, & \left( {{1} - \cos \theta } \right){\mathbf{n}} \times \left( {{\mathbf{p}} \times {\mathbf{n}}} \right) + \sin \theta \left( {{\mathbf{p}} \times {\mathbf{n}}} \right) + d{\mathbf{n}}. \\ \end{aligned}$$
(37)

By the properties of quaternions, one can compute a new quaternion \({\varvec{t}}\) as

$$\begin{aligned} \user2{t = } & {\varvec{sr}}^{ - 1} \\ =\, & {\varvec{sr}}^{*} \\ = \,& \left[ {\begin{array}{*{20}c} { - \left( {\frac{d}{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}} + \sin \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \right) \times {\mathbf{n}}\sin \frac{\theta }{{2}} + \frac{d}{{2}}\sin \frac{\theta }{{2}}{\mathbf{n}}\sin \frac{\theta }{{2}} + \cos \frac{\theta }{{2}}\left( {\frac{d}{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}} + \sin \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \right)} \\ { - \frac{d}{{2}}\sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}} + \left( {\frac{d}{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}} + \sin \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \right) \cdot \left( {{\mathbf{n}}\sin \frac{\theta }{{2}}} \right)} \\ \end{array} } \right] \\ =\, & \left[ {\begin{array}{*{20}c} {\left( {\sin \frac{\theta }{{2}}} \right)^{2} {\mathbf{n}} \times \left( {{\mathbf{p}} \times {\mathbf{n}}} \right) + \frac{d}{{2}}\left( {\sin \frac{\theta }{{2}}} \right)^{2} {\mathbf{n}} + \frac{d}{{2}}\left( {\cos \frac{\theta }{{2}}} \right)^{2} {\mathbf{n}} + \sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \\ { - \frac{d}{{2}}\sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}} + \left( {\frac{d}{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}}} \right) \cdot \left( {{\mathbf{n}}\sin \frac{\theta }{{2}}} \right)} \\ \end{array} } \right] \\ =\, & \left[ {\begin{array}{*{20}c} {\left( {\sin \frac{\theta }{{2}}} \right)^{2} {\mathbf{n}} \times \left( {{\mathbf{p}} \times {\mathbf{n}}} \right) + \frac{d}{{2}}{\mathbf{n}} + \sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}}{\mathbf{p}} \times {\mathbf{n}}} \\ { - \frac{d}{{2}}\sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}} + \frac{d}{{2}}\sin \frac{\theta }{{2}}\cos \frac{\theta }{{2}}{\mathbf{n}} \cdot {\mathbf{n}}} \\ \end{array} } \right] \\ =\, & \frac{1}{{2}}\left[ {\begin{array}{*{20}c} {\left( {{1} - \cos \theta } \right){\mathbf{n}} \times \left( {{\mathbf{p}} \times {\mathbf{n}}} \right) + d{\mathbf{n}} + \sin \theta {\mathbf{p}} \times {\mathbf{n}}} \\ 0 \\ \end{array} } \right] \\ =\, & \frac{1}{{2}}\left[ {\begin{array}{*{20}c} {\mathbf{t}} \\ 0 \\ \end{array} } \right] \\ \end{aligned}$$
(38)

Therefore, actually \({\varvec{t}}\) is a pure imaginary quaternion constructed by half of translation vector \({\mathbf{t}}\), which can be represented by

$$\user2{t = sr}^{*} = W({\varvec{r}}^{*} )\user2{s = }W({\varvec{r}})^{T} {\varvec{s}}.$$
(39)

Dual Quaternion Algorithm (DQA) of 3D coordinate transformation

Mathematical model and its linearization

The similarity 3D coordinate transformation model is usually expressed as follows.

$${\mathbf{p}}_{i}^{t} = \lambda {\mathbf{Rp}}_{i}^{o} + {\mathbf{t}},$$
(40)

Subject to

$${\mathbf{R}}^{T} {\mathbf{R}} = {\mathbf{I}}_{3} ,\;\det ({\mathbf{R}}) = + {1,}$$
(41)

where \({\mathbf{p}}_{i}^{t} = \left[ {\begin{array}{*{20}c} {x_{i}^{t} } & {y_{i}^{t} } & {z_{i}^{t} } \\ \end{array} } \right]^{T}\) and \({\mathbf{p}}_{i}^{o} = \left[ {\begin{array}{*{20}c} {x_{i}^{o} } & {y_{i}^{o} } & {z_{i}^{o} } \\ \end{array} } \right]^{T}\) are the 3D coordinate vectors of control point, in which superscript \(t\) or \(o\) denotes target coordinate or original coordinate respectively, and subscript \(i = 1,2, \cdots ,n\) (\(n \ge 3\)) denotes the number of control point. \(\det\) represents determinant computation of matrix. \(\det ({\mathbf{R}}) = + {1}\) is imposed necessarily to ensure \({\mathbf{R}}\) stands for a rotation matrix rather than a refection one when \(\det ({\mathbf{R}}) = - {1}\). \({\mathbf{t}} = \left[ {\begin{array}{*{20}c} {t_{x} } & {t_{y} } & {t_{z} } \\ \end{array} } \right]^{T}\) is the translation vector. \(\lambda\) is the scale factor which is tightly close to 1 for most situations. Traditionally \({\mathbf{R}}\) is repressed by three rotation angles \(\theta_{x}\), \(\theta_{y}\), \(\theta_{z}\) about the X, Y, Z axes respectively as (Zeng et al. 2019)

$${\mathbf{R}} = \left[ {\begin{array}{*{20}c} {\cos \theta_{z} \cos \theta_{y} } & {\sin \theta_{z} \cos \theta_{x} + \cos \theta_{z} \sin \theta_{y} \sin \theta_{x} } & {\sin \theta_{z} \sin \theta_{x} - \cos \theta_{z} \sin \theta_{y} \cos \theta_{x} } \\ { - \sin \theta_{z} \cos \theta_{y} } & {\cos \theta_{z} \cos \theta_{x} - \sin \theta_{z} \sin \theta_{y} \sin \theta_{x} } & {\cos \theta_{z} \sin \theta_{x} + \sin \theta_{z} \sin \theta_{y} \cos \theta_{x} } \\ {\sin \theta_{y} } & { - \cos \theta_{y} \sin \theta_{x} } & {\cos \theta_{y} \cos \theta_{x} } \\ \end{array} } \right]$$
(42)

Obviously the computation of \({\mathbf{R}}\) in Eq. (42) involves lots of trigonometric functions thus the computation burden is larger than that of \({\mathbf{R}}\) in Eq. (20). If \({\mathbf{R}}\) is known or computed, the rotation angles and the quaternion can be computed as elaborated in Zeng et al. (2019).

Introducing two pure imaginary quaternions with coordinate vectors as

$${\varvec{p}}_{i}^{o} = \left[ {\begin{array}{*{20}c} {{\mathbf{p}}_{i}^{o} } \\ 0 \\ \end{array} } \right],\;{\varvec{p}}_{i}^{t} = \left[ {\begin{array}{*{20}c} {{\mathbf{p}}_{i}^{t} } \\ 0 \\ \end{array} } \right],$$
(43)

the similarity 3D coordinate transformation in the errors-in-variables (EIV) model is re-expressed by dual quaternion as

$${\varvec{p}}_{i}^{t} - {\varvec{e}}_{i}^{t} = \lambda {\mathbf{W}}({\varvec{r}})^{T} Q({\varvec{r}})\left( {{\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o} } \right) + 2W({\varvec{r}})^{T} {\varvec{s}},$$
(44)

subject to Eqs. (28, 29). In Eq. (44), \({\varvec{e}}_{i}^{t}\) and \({\varvec{e}}_{i}^{o}\) are the error quaternion corresponding to \({\varvec{p}}_{i}^{t}\) and \({\varvec{p}}_{i}^{o}\) respectively.

The computation of transformation parameters needs to utilize linearization and iterative procedure. Linearizing Eq. (44) by Taylor's formula, one gets

$$\begin{aligned} {\varvec{p}}_{i}^{t} - {\varvec{e}}_{i}^{t} =\, & \lambda^{j} {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o,j} ) + {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} {\varvec{s}}^{j} - \lambda^{j} {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )d{\varvec{e}}_{i}^{o,j} \\ + {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o,j} )d\lambda + \frac{\partial f}{{\partial r_{1} }}dr_{1} + \frac{\partial f}{{\partial r_{2} }}dr_{2} + \frac{\partial f}{{\partial r_{3} }}dr_{3} + \frac{\partial f}{{\partial r_{4} }}dr_{4} + {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} d{\varvec{s}} \\ \end{aligned}$$
(45)

where superscript j denotes the j-th iterative time, and

$$\frac{\partial f}{{\partial r_{i} }} = \lambda^{j} (\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{i} }}Q({\varvec{r}}^{j} ) + {\mathbf{W}}({\varvec{r}}^{j} )^{T} \frac{{\partial Q({\varvec{r}})}}{{\partial r_{i} }})({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o,j} ) + {2}\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{i} }}{\varvec{s}}^{j} ,\;i = {1,2,3,4}$$
(46)
$$\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{1} }} = \left[ {\begin{array}{*{20}c} 0 & 0 & 0 & { - 1} \\ 0 & 0 & { - 1} & 0 \\ 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 \\ \end{array} } \right],\,\,\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{2} }} = \left[ {\begin{array}{*{20}c} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & { - 1} \\ { - 1} & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ \end{array} } \right],$$
(47)
$$\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{3} }} = \left[ {\begin{array}{*{20}c} 0 & { - 1} & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & { - 1} \\ 0 & 0 & 1 & 0 \\ \end{array} } \right],\,\,\frac{{\partial {\mathbf{W}}({\varvec{r}})^{T} }}{{\partial r_{4} }} = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right],$$
(48)
$$\frac{{\partial Q({\varvec{r}})}}{{\partial r_{1} }} = \left[ {\begin{array}{*{20}c} 0 & 0 & 0 & 1 \\ 0 & 0 & { - 1} & 0 \\ 0 & 1 & 0 & 0 \\ { - 1} & 0 & 0 & 0 \\ \end{array} } \right],\,\,\frac{{\partial Q({\varvec{r}})}}{{\partial r_{2} }} = \left[ {\begin{array}{*{20}c} 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ { - 1} & 0 & 0 & 0 \\ 0 & { - 1} & 0 & 0 \\ \end{array} } \right],\,$$
(49)
$$\frac{{\partial Q({\varvec{r}})}}{{\partial r_{3} }} = \left[ {\begin{array}{*{20}c} 0 & { - 1} & 0 & 0 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & { - 1} & 0 \\ \end{array} } \right],\,\,\frac{{\partial Q({\varvec{r}})}}{{\partial r_{4} }} = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \\ \end{array} } \right].\,$$
(50)

Considering \({\varvec{e}}_{i}^{o} = {\varvec{e}}_{i}^{o,j} + d{\varvec{e}}_{i}^{o,j}\), Eq. (45) can be rewritten as

$$\begin{aligned} {\varvec{p}}_{i}^{t} - {\varvec{e}}_{i}^{t} =\, & \lambda^{j} {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o} ) + {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} {\varvec{s}}^{j} \\ + {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o,j} )d\lambda + \frac{\partial f}{{\partial r_{{1}} }}dr_{{1}} + \frac{\partial f}{{\partial r_{{2}} }}dr_{{2}} + \frac{\partial f}{{\partial r_{{3}} }}dr_{{3}} + \frac{\partial f}{{\partial r_{{4}} }}dr_{{4}} + {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} d{\varvec{s}} \\ =\, & {\varvec{B}}_{i}^{j} {\varvec{p}}_{i}^{o} + {\varvec{C}}_{i}^{j} + {\varvec{A}}_{i}^{{{1},j}} dx_{{1}} + {\varvec{A}}_{i}^{{{2},j}} dx_{{2}} - {\varvec{B}}_{i}^{j} {\varvec{e}}_{i}^{o} \\ \end{aligned}$$
(51)

where

$$dx_{{1}} = \left[ {\begin{array}{*{20}c} {d\lambda } & {dr_{1} } & {dr_{2} } & {dr_{3} } & {dr_{4} } \\ \end{array} } \right]^{T} ,$$
(52)
$$dx_{{2}} = d{\varvec{s}} = \left[ {\begin{array}{*{20}c} {ds_{1} } & {ds_{2} } & {ds_{3} } & {ds_{4} } \\ \end{array} } \right]^{T} ,$$
(53)
$${\varvec{A}}_{i}^{{{1,}j}} = \left[ {\begin{array}{*{20}c} {{\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} )({\varvec{p}}_{i}^{o} - {\varvec{e}}_{i}^{o,j} )} & {\frac{\partial f}{{\partial r_{1} }}} & {\frac{\partial f}{{\partial r_{2} }}} & {\frac{\partial f}{{\partial r_{3} }}} & {\frac{\partial f}{{\partial r_{4} }}} \\ \end{array} } \right],$$
(54)
$${\varvec{A}}_{i}^{{{2,}j}} = {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} ,$$
(55)
$${\varvec{B}}_{i}^{j} = \lambda^{j} {\mathbf{W}}({\varvec{r}}^{j} )^{T} Q({\varvec{r}}^{j} ),$$
(56)
$${\varvec{C}}_{i}^{j} = {2}{\mathbf{W}}({\varvec{r}}^{j} )^{T} {\varvec{s}}^{j} .$$
(57)

For \(n\) (\(n \ge 3\)) control points, one has

$${\varvec{p}}^{t} - {\varvec{e}}^{t} = {\varvec{B}}^{j} {\varvec{p}}^{o} + {\varvec{C}}^{j} + {\varvec{A}}^{{{1,}j}} dx_{{1}} + {\varvec{A}}^{{{2,}j}} dx_{{2}} - {\varvec{B}}^{j} {\varvec{e}}^{o}$$
(58)

where

$$\,{\varvec{p}}^{t} = \left[ {\begin{array}{*{20}c} {{\varvec{p}}_{1}^{t} } \\ \vdots \\ {{\varvec{p}}_{n}^{t} } \\ \end{array} } \right]\user2{,e}^{t} = \left[ {\begin{array}{*{20}c} {e_{1}^{t} } \\ \vdots \\ {e_{n}^{t} } \\ \end{array} } \right],{\varvec{p}}^{o} = \left[ {\begin{array}{*{20}c} {{\varvec{p}}_{1}^{o} } \\ \vdots \\ {{\varvec{p}}_{n}^{o} } \\ \end{array} } \right]\user2{,e}^{o} = \left[ {\begin{array}{*{20}c} {e_{1}^{o} } \\ \vdots \\ {e_{n}^{o} } \\ \end{array} } \right]$$
(59)
$${\varvec{A}}^{{{1,}j}} = \left[ {\begin{array}{*{20}c} {{\varvec{A}}_{{1}}^{{{1,}j}} } \\ {{\varvec{A}}_{{2}}^{{{1,}j}} } \\ \vdots \\ {{\varvec{A}}_{n}^{{{1,}j}} } \\ \end{array} } \right],{\varvec{A}}^{{{2,}j}} = \left[ {\begin{array}{*{20}c} {{\varvec{A}}_{{1}}^{{{2,}j}} } \\ {{\varvec{A}}_{{2}}^{{{2,}j}} } \\ \vdots \\ {{\varvec{A}}_{n}^{{{2,}j}} } \\ \end{array} } \right],{\varvec{C}}^{j} = \left[ {\begin{array}{*{20}c} {C_{{1}}^{j} } \\ {C_{{2}}^{j} } \\ \vdots \\ {C_{n}^{j} } \\ \end{array} } \right],{\varvec{B}}^{j} = \left[ {\begin{array}{*{20}c} {{\varvec{B}}_{{1}}^{j} } & {} & {} & {} \\ {} & {{\varvec{B}}_{{2}}^{j} } & {} & {} \\ {} & {} & \ddots & {} \\ {} & {} & {} & {{\varvec{B}}_{n}^{j} } \\ \end{array} } \right].$$
(60)

Introducing

$$\user2{E = p}^{t} - {\varvec{B}}^{j} {\varvec{p}}^{o} - {\varvec{C}}^{j} ,$$
(61)

Equation (58) can be rewritten as

$${\varvec{e}}^{t} = {\varvec{E}} - {\varvec{A}}^{{{1,}j}} dx_{{1}} - {\varvec{A}}^{{{2,}j}} dx_{{2}} + {\varvec{B}}^{j} {\varvec{e}}^{o}$$
(62)

Linearizing the constraints of unit dual quaternion i.e. Equations (28) and (29), one obtains

$${\varvec{C}}_{x1} dx_{1} + {\varvec{C}}_{x2} dx_{2} = {\varvec{W}}_{x}$$
(63)

where

$${\varvec{C}}_{x1} = \left[ {\begin{array}{*{20}c} 0 & {2r_{1} } & {2r_{2} } & {2r_{3} } & {2r_{4} } \\ 0 & {s_{1} } & {s_{2} } & {s_{3} } & {s_{4} } \\ \end{array} } \right],$$
(64)
$${\varvec{C}}_{x2} = \left[ {\begin{array}{*{20}c} 0 & 0 & 0 & 0 \\ {r_{1} } & {r_{2} } & {r_{3} } & {r_{4} } \\ \end{array} } \right],$$
(65)
$${\varvec{W}}_{x} = \left[ {\begin{array}{*{20}c} {1 - r_{1}^{2} - r_{2}^{2} - r_{3}^{2} - r_{4}^{2} } \\ { - r_{1} s_{1} - r_{2} s_{2} - r_{3} s_{3} - r_{4} s_{4} } \\ \end{array} } \right].$$
(66)

Derivation of formulae based on the dual quaternion

The solution of 3D similarity transformation in EIV model is based on the principle of weighted total least squares (WTLS) i.e.

$${\varvec{e}}^{tT} {\varvec{W}}^{t} {\varvec{e}}^{t} + {\varvec{e}}^{oT} {\varvec{W}}^{o} {\varvec{e}}^{o} = \min$$
(67)

where \({\varvec{W}}^{t}\) and \({\varvec{W}}^{o}\) are the weight matrices of observations in the target system and in the original system respectively. Considering the constraints in Eq. (63), a Lagrangian extremum problem with constraints is constructed as follows.

$$\mathop {\min }\limits_{{{\varvec{e}}^{o} \user2{,e}^{t} ,dx_{{1}} ,dx_{{2}} ,{\mathbf{k}}_{{1}} ,{\mathbf{k}}_{{2}} }} \left\{ \begin{gathered} l = {\varvec{e}}^{tT} {\varvec{W}}^{t} {\varvec{e}}^{t} + {\varvec{e}}^{oT} {\varvec{W}}^{o} {\varvec{e}}^{o} + {2}{\mathbf{k}}_{{1}}^{T} ({\varvec{e}}^{t} - \user2{E + A}^{{{1,}j}} dx_{{1}} + {\varvec{A}}^{{{2,}j}} dx_{{2}} - {\varvec{B}}^{j} {\varvec{e}}^{o} ) \hfill \\ + {2}{\mathbf{k}}_{{2}}^{T} ({\varvec{C}}_{{x{1}}} dx_{{1}} + {\varvec{C}}_{{x{2}}} dx_{{2}} - {\varvec{W}}_{x} ) \hfill \\ \end{gathered} \right\}$$
(68)

According to the Lagrangian extremum principle, the minimum exists if and only if the following conditions are met.

$$\frac{\delta l}{{\delta {\varvec{e}}^{o} }} = {2}{\varvec{e}}^{oT} {\varvec{W}}^{o} - {2}{\mathbf{k}}_{{1}}^{T} {\varvec{B}}^{j} = 0$$
(69)
$$\frac{\delta l}{{\delta {\varvec{e}}^{t} }} = {2}{\varvec{e}}^{tT} {\varvec{W}}^{t} + {2}{\mathbf{k}}_{{1}}^{T} = 0$$
(70)
$$\frac{\delta l}{{\delta dx_{{1}} }} = {2}{\mathbf{k}}_{{1}}^{T} {\varvec{A}}^{{{1,}j}} + {2}{\mathbf{k}}_{{2}}^{T} {\varvec{C}}_{{x{1}}} = 0$$
(71)
$$\frac{\delta l}{{\delta dx_{{2}} }} = {2}{\mathbf{k}}_{{1}}^{T} {\varvec{A}}^{{{2,}j}} + {2}{\mathbf{k}}_{{2}}^{T} {\varvec{C}}_{{x{2}}} = 0$$
(72)
$$\frac{\delta l}{{\delta {\mathbf{k}}_{{1}} }} = {2}({\varvec{e}}^{t} - \user2{E + A}^{{{1,}j}} dx_{{1}} + {\varvec{A}}^{{{2,}j}} dx_{{2}} - {\varvec{B}}^{j} {\varvec{e}}^{o} ) = 0$$
(73)
$$\frac{\delta l}{{\delta {\mathbf{k}}_{{2}} }} = {2}({\varvec{C}}_{{x{1}}} dx_{{1}} + {\varvec{C}}_{{x{2}}} dx_{{2}} - {\varvec{W}}_{x} ) = 0$$
(74)

From Eq. (69), one gets

$${\varvec{e}}^{o} { = }{\varvec{W}}^{{o}{ - {1}}} {\varvec{B}}^{jT} {\mathbf{k}}_{{1}}$$
(75)

From Eq. (70), one gets

$${\varvec{e}}^{t} { = }{\varvec{W}}^{{t}{ - {1}}} {\mathbf{k}}_{{1}}$$
(76)

Substituting Eqs. (75) and (76) into (73), and making arrangement, one gets

$${\mathbf{k}}_{{1}} = {\varvec{W}}^{ot} ( - \user2{E + A}^{{{1,}j}} dx_{{1}} + {\varvec{A}}^{{{2,}j}} dx_{{2}} ),$$
(77)

where

$${\varvec{W}}^{ot} = ({\varvec{W}}^{{t - {1}}} \user2{ + B}^{j} {\varvec{W}}^{{o - {1}}} {\varvec{B}}^{jT} )^{{ - {1}}} .$$
(78)

Substituting Eqs. (77) into (71) and introducing

$${\varvec{N}}_{{{11}}} = {\varvec{A}}^{{{1,}jT}} {\varvec{W}}^{ot} {\varvec{A}}^{{{1,}j}} ,$$
(79)
$${\varvec{N}}_{{{12}}} = {\varvec{A}}^{{{1,}jT}} {\varvec{W}}^{ot} {\varvec{A}}^{{{2,}j}} .$$
(80)

one gets

$$dx_{{1}} = - {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{N}}_{{{12}}} {\text{d}}x_{{2}} + {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{A}}^{{{1,}jT}} {\varvec{W}}^{ot} {\varvec{E}} - {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{C}}_{{x{1}}}^{T} {\mathbf{k}}_{{2}} .$$
(81)

Substituting Eqs. (81) into (72) and introducing

$${\varvec{N}}_{{{22}}} \user2{ = A}^{{{2,}jT}} {\varvec{W}}^{ot} {\varvec{A}}^{{{2,}j}} ,$$
(82)
$${\varvec{N}}_{{{21}}} = {\varvec{A}}^{{{2,}jT}} {\varvec{W}}^{ot} {\varvec{A}}^{{{1,}j}} ,$$
(83)
$${\varvec{N}}_{{{33}}} \user2{ = N}_{{{22}}} - {\varvec{N}}_{{{21}}} {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{N}}_{{{12}}} ,$$
(84)
$${\varvec{D}}_{{{11}}} = {\varvec{N}}_{{{33}}}^{{ - {1}}} ( - {\varvec{C}}_{{x{2}}}^{T} + {\varvec{N}}_{{{21}}} {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{C}}_{{x{1}}}^{T} )$$
(85)
$${\varvec{D}}_{{{10}}} = {\varvec{N}}_{{{33}}}^{{ - {1}}} ({\varvec{N}}_{{{21}}} {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{A}}^{{{1,}jT}} - {\varvec{A}}^{{{2,}jT}} )$$
(86)

one gets

$$dx_{{2}} = {\varvec{D}}_{{{11}}} {\mathbf{k}}_{{2}} - {\varvec{D}}_{{{10}}} {\varvec{W}}^{ot} {\varvec{E}}.$$
(87)

Substituting Eqs. (87) into (81) and introducing

$${\varvec{D}}_{{{21}}} = - {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{N}}_{{{12}}} {\varvec{D}}_{{{11}}} - {\varvec{N}}_{{{11}}}^{{ - {1}}} {\varvec{C}}_{{x{1}}}^{T}$$
(88)
$${\varvec{D}}_{{{20}}} = - {\varvec{N}}_{{{11}}}^{{ - {1}}} ({\varvec{N}}_{{{12}}} {\varvec{D}}_{{{10}}} + {\varvec{A}}^{{{1,}jT}} )$$
(89)

one gets

$$dx_{{1}} = {\varvec{D}}_{{{21}}} {\mathbf{k}}_{{2}} - {\varvec{D}}_{{{20}}} {\varvec{W}}^{ot} {\varvec{E}}.$$
(90)

Substituting Eqs. (90) and (87) into (74), one obtains the solution of \({\mathbf{k}}_{{2}}\) as

$${\mathbf{k}}_{{2}} = ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{20}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{10}}} ){\varvec{W}}^{ot} {\varvec{E}} + ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} {\varvec{W}}_{x}$$
(91)

Substituting Eqs. (91) into (90) and (87), one obtains

$$dx_{{1}} = {\varvec{F}}_{{1}} {\varvec{W}}^{ot} \user2{E + D}_{{{21}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} {\varvec{W}}_{x}$$
(92)
$$dx_{{2}} = {\varvec{F}}_{{2}} {\varvec{W}}^{ot} \user2{E + D}_{{{11}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} {\varvec{W}}_{x}$$
(93)

where

$${\varvec{F}}_{{1}} = {\varvec{D}}_{{{21}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{20}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{10}}} ) - {\varvec{D}}_{{{20}}} ,$$
(94)
$${\varvec{F}}_{{2}} \user2{ = D}_{{{11}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{21}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{11}}} )^{{ - {1}}} ({\varvec{C}}_{{x{1}}} {\varvec{D}}_{{{20}}} + {\varvec{C}}_{{x{2}}} {\varvec{D}}_{{{10}}} ) - {\varvec{D}}_{{{10}}} .$$
(95)

So far the derivations of formulae have been accomplished. Then one can employ the classic Gauss–Newton iterative method to seek the solution of transformation parameters. The stop condition of iteration is

$$abs(\sigma_{j}^{2} - \sigma_{j - 1}^{2} ) < \tau$$
(96)

where

$$\sigma^{2} { = }\frac{{{\varvec{e}}^{tT} {\varvec{W}}^{t} {\varvec{e}}^{t} + {\varvec{e}}^{oT} {\varvec{W}}^{o} {\varvec{e}}}}{3n - 7}$$
(97)

Subscript j and j−1 denote the present iterative times and the previous iterative times. And \(\tau\) is a threshold (1.0 × 10–14 is set in the paper).

After the iterative computation converges, the variance factor of unit weight is estimated as

$$\sigma = \pm \sqrt {\frac{{{\varvec{e}}^{tT} {\varvec{W}}^{t} {\varvec{e}}^{t} + {\varvec{e}}^{oT} {\varvec{W}}^{o} {\varvec{e}}}}{3n - 7}}$$
(98)

By Eqs. (92) and (93), the estimated variance or covariance matrices of transformation parameters \(x_{{1}}\) and \(x_{{2}}\) is derived as

$${\varvec{D}}_{{x_{1} }} = \sigma^{2} {\varvec{F}}_{{1}} {\varvec{W}}^{ot} {\varvec{F}}_{{1}}^{T} ,$$
(99)
$${\varvec{D}}_{{x_{2} }} = \sigma^{2} {\varvec{F}}_{{2}} {\varvec{W}}^{ot} {\varvec{F}}_{{2}}^{T} .$$
(100)
$${\varvec{D}}_{{x_{1} x_{2} }} = \sigma^{2} {\varvec{F}}_{{1}} {\varvec{W}}^{ot} {\varvec{F}}_{{2}}^{T}$$
(101)
$${\varvec{D}}_{{x_{2} x_{1} }} = \sigma^{2} {\varvec{F}}_{{2}} {\varvec{W}}^{ot} {\varvec{F}}_{{1}}^{T}$$
(102)

Introducing the vector of all transformation parameters

$$x_{{1,2}} { = }\left[ {\begin{array}{*{20}c} {x_{{1}} } \\ {x_{{2}} } \\ \end{array} } \right]$$
(103)

Thus the variance matrix of \(x_{{1,2}}\) is

$${\varvec{D}}_{{x_{{1,2}} }} = \left[ {\begin{array}{*{20}c} {{\varvec{D}}_{{x_{1} }} } & {{\varvec{D}}_{{x_{1} x_{2} }} } \\ {{\varvec{D}}_{{x_{2} x_{1} }} } & {{\varvec{D}}_{{x_{2} }} } \\ \end{array} } \right]$$
(104)

Computation and precision estimation of seven parameters from dual quaternion

Traditionally the similarity 3D coordinate transformation model i.e. Equation (41) includes seven parameters i.e. one scale, three rotation angles and three translations. Thus it is necessary to compute the seven parameters and estimate their precisions. Firstly one needs to construct the function of the seven parameters with dual quaternion-based transformation parameter i.e. \(x_{{1,2}}\). And then compute the variance or covariance matrices of the seven parameters according to the variance or covariance matrices propagation principle.

Utilizing Eqs. (42) and (21), the rotation angles \(\theta_{x}\), \(\theta_{y}\), \(\theta_{z}\) are computed by

$$\theta_{x} { = } - {\text{tan}}^{ - 1} \left( {\frac{{{2}\left( {r_{2} r_{3} + r_{1} r_{4} } \right)}}{{r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} }}} \right)$$
(105)
$$\theta_{y} {\text{ = sin}}^{ - 1} \left( {{2}\left( {r_{1} r_{3} - r_{2} r_{4} } \right)} \right)$$
(106)
$$\theta_{z} { = } - {\text{tan}}^{ - 1} \left( {\frac{{{2}\left( {r_{1} r_{2} + r_{3} r_{4} } \right)}}{{r_{{4}}^{{2}} + r_{1}^{{2}} - r_{2}^{{2}} - r_{3}^{{2}} }}} \right)$$
(107)

Introducing

$$s_{x} {\text{ = sin}}\theta_{x} ,\;s_{y} {\text{ = sin}}\theta_{y} ,\,s_{z} {\text{ = sin}}\theta_{z} ,c_{x} {\text{ = cos}}\theta_{x} ,\,c_{y} {\text{ = cos}}\theta_{y} ,\,c_{z} {\text{ = cos}}\theta_{z}$$
(108)

one obtains the partial derivatives of \(\theta_{x}\) with respect to \(r_{1}\) by Eq. (105)∙

$$\begin{aligned} \frac{{\partial \theta_{x} }}{{\partial r_{1} }} = & - \frac{1}{{1 + \left( {\frac{{{2}\left( {r_{2} r_{3} + r_{1} r_{4} } \right)}}{{r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} }}} \right)^{2} }} \cdot \frac{{{2}r_{4} \left( {r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} } \right) + 2r_{1} \cdot 2\left( {r_{2} r_{3} + r_{1} r_{4} } \right)}}{{\left( {r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} } \right)^{2} }} \\ = & - \frac{{{2}r_{4} \left( {r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} } \right) + 2r_{1} \cdot 2\left( {r_{2} r_{3} + r_{1} r_{4} } \right)}}{{\left( {r_{{4}}^{{2}} - r_{1}^{{2}} - r_{2}^{{2}} + r_{3}^{{2}} } \right)^{2} + \left( {{2}\left( {r_{2} r_{3} + r_{1} r_{4} } \right)} \right)^{2} }} \\ = & - \frac{{{2}r_{4} \left( {c_{x} c_{y} } \right) + 2r_{1} \left( { - s_{x} c_{y} } \right)}}{{\left( {c_{x} c_{y} } \right)^{2} + \left( { - s_{x} c_{y} } \right)^{2} }} \\ = & - \frac{{{2}\left( {r_{4} c_{x} - r_{1} s_{x} } \right)}}{{c_{y} }} \\ \end{aligned}$$
(109)

where the dots \(\cdot\) denote computation of multiplication. Similarly one obtains

$$\frac{{\partial \theta_{x} }}{{\partial r_{2} }} = - \frac{{{2}\left( {r_{3} c_{x} - r_{2} s_{x} } \right)}}{{c_{y} }}$$
(110)
$$\frac{{\partial \theta_{x} }}{{\partial r_{3} }} = - \frac{{{2}\left( {r_{2} c_{x} + r_{3} s_{x} } \right)}}{{c_{y} }}$$
(111)
$$\frac{{\partial \theta_{x} }}{{\partial r_{4} }} = - \frac{{{2}\left( {r_{1} c_{x} + r_{4} s_{x} } \right)}}{{c_{y} }}$$
(112)

Further one can get the following partial derivatives of \(\theta_{y}\), \(\theta_{z}\) with respect to \(r_{1}\), \(r_{2}\), \(r_{3}\), \(r_{4}\) by Eqs. (106) and (107) respectively.

$$\frac{{\partial \theta_{y} }}{{\partial r_{1} }} = \frac{{{2}r_{3} }}{{c_{y} }}$$
(113)
$$\frac{{\partial \theta_{y} }}{{\partial r_{2} }} = \frac{{ - {2}r_{4} }}{{c_{y} }}$$
(114)
$$\frac{{\partial \theta_{y} }}{{\partial r_{3} }} = \frac{{{2}r_{1} }}{{c_{y} }}$$
(115)
$$\frac{{\partial \theta_{y} }}{{\partial r_{4} }} = \frac{{ - {2}r_{2} }}{{c_{y} }}$$
(116)
$$\frac{{\partial \theta_{z} }}{{\partial r_{1} }} = - \frac{{{2}\left( {r_{2} c_{z} + r_{1} s_{z} } \right)}}{{c_{y} }}$$
(117)
$$\frac{{\partial \theta_{z} }}{{\partial r_{2} }} = - \frac{{{2}\left( {r_{1} c_{z} - r_{2} s_{z} } \right)}}{{c_{y} }}$$
(118)
$$\frac{{\partial \theta_{z} }}{{\partial r_{3} }} = - \frac{{{2}\left( {r_{4} c_{z} - r_{3} s_{z} } \right)}}{{c_{y} }}$$
(119)
$$\frac{{\partial \theta_{z} }}{{\partial r_{4} }} = - \frac{{{2}\left( {r_{3} c_{z} + r_{4} s_{z} } \right)}}{{c_{y} }}$$
(120)

Next, the translations can be computed by Eqs. (38) and (39) as

$$\left[ {\begin{array}{*{20}c} {t_{x} } \\ {t_{y} } \\ {t_{z} } \\ {0} \\ \end{array} } \right]{ = 2}W({\varvec{r}})^{T} {\varvec{s}}{ = }\left[ {\begin{array}{*{20}c} {r_{4} s_{1} - r_{3} s_{2} - r_{2} s_{3} - r_{1} s_{4} } \\ {r_{3} s_{1} + r_{4} s_{2} - r_{1} s_{3} - r_{2} s_{4} } \\ { - r_{2} s_{1} + r_{1} s_{2} + r_{4} s_{3} - r_{3} s_{4} } \\ {r_{1} s_{1} + r_{2} s_{2} + r_{3} s_{3} + r_{4} s_{4} } \\ \end{array} } \right]$$
(121)

It is easy to deduce the following partial derivatives as

$$\frac{{\partial t_{x} }}{{\partial r_{1} }} = - s_{4} ,\,\frac{{\partial t_{x} }}{{\partial r_{2} }} = - s_{3} ,\,\frac{{\partial t_{x} }}{{\partial r_{3} }} = - s_{2} ,\,\frac{{\partial t_{x} }}{{\partial r_{4} }} = s_{1} ,\,\frac{{\partial t_{x} }}{{\partial s_{1} }} = r_{4} ,\,\frac{{\partial t_{x} }}{{\partial s_{2} }} = - r_{3} ,\,\frac{{\partial t_{x} }}{{\partial s_{3} }} = - r_{2} ,\frac{{\partial t_{x} }}{{\partial s_{4} }} = - r_{1}$$
(122)
$$\frac{{\partial t_{y} }}{{\partial r_{1} }} = - s_{3} ,\,\frac{{\partial t_{y} }}{{\partial r_{2} }} = - s_{4} ,\,\frac{{\partial t_{y} }}{{\partial r_{3} }} = s_{1} ,\,\frac{{\partial t_{y} }}{{\partial r_{4} }} = s_{2} ,\,\frac{{\partial t_{y} }}{{\partial s_{1} }} = r_{3} ,\,\frac{{\partial t_{y} }}{{\partial s_{2} }} = r_{4} ,\,\frac{{\partial t_{y} }}{{\partial s_{3} }} = - r_{1} ,\,\frac{{\partial t_{y} }}{{\partial s_{4} }} = - r_{2}$$
(123)
$$\frac{{\partial t_{z} }}{{\partial r_{1} }} = s_{2} ,\,\frac{{\partial t_{z} }}{{\partial r_{2} }} = - s_{1} ,\,\frac{{\partial t_{z} }}{{\partial r_{3} }} = - s_{4} ,\frac{{\partial t_{z} }}{{\partial r_{4} }} = s_{3} ,\,\frac{{\partial t_{z} }}{{\partial s_{1} }} = - r_{2} ,\,\frac{{\partial t_{z} }}{{\partial s_{2} }} = r_{1} ,\,\frac{{\partial t_{z} }}{{\partial s_{3} }} = r_{4} ,\frac{{\partial t_{z} }}{{\partial s_{4} }} = - r_{3}$$
(124)

Introducing

$$y = \left[ {\begin{array}{*{20}c} \lambda & {\theta_{x} } & {\theta_{y} } & {\theta_{z} } & {t_{x} } & {t_{y} } & {t_{z} } \\ \end{array} } \right]^{T}$$
(125)
$${\varvec{J}} = \left[ {\begin{array}{*{20}c} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & {\frac{{\partial \theta_{x} }}{{\partial r_{1} }}} & {\frac{{\partial \theta_{x} }}{{\partial r_{2} }}} & {\frac{{\partial \theta_{x} }}{{\partial r_{3} }}} & {\frac{{\partial \theta_{x} }}{{\partial r_{4} }}} & 0 & 0 & 0 & 0 \\ 0 & {\frac{{\partial \theta_{y} }}{{\partial r_{1} }}} & {\frac{{\partial \theta_{y} }}{{\partial r_{2} }}} & {\frac{{\partial \theta_{y} }}{{\partial r_{3} }}} & {\frac{{\partial \theta_{y} }}{{\partial r_{4} }}} & 0 & 0 & 0 & 0 \\ 0 & {\frac{{\partial \theta_{z} }}{{\partial r_{1} }}} & {\frac{{\partial \theta_{z} }}{{\partial r_{2} }}} & {\frac{{\partial \theta_{z} }}{{\partial r_{3} }}} & {\frac{{\partial \theta_{z} }}{{\partial r_{4} }}} & 0 & 0 & 0 & 0 \\ 0 & {\frac{{\partial t_{x} }}{{\partial r_{1} }}} & {\frac{{\partial t_{x} }}{{\partial r_{2} }}} & {\frac{{\partial t_{x} }}{{\partial r_{3} }}} & {\frac{{\partial t_{x} }}{{\partial r_{4} }}} & {\frac{{\partial t_{x} }}{{\partial s_{1} }}} & {\frac{{\partial t_{x} }}{{\partial s_{2} }}} & {\frac{{\partial t_{x} }}{{\partial s_{3} }}} & {\frac{{\partial t_{x} }}{{\partial s_{4} }}} \\ 0 & {\frac{{\partial t_{y} }}{{\partial r_{1} }}} & {\frac{{\partial t_{y} }}{{\partial r_{2} }}} & {\frac{{\partial t_{y} }}{{\partial r_{3} }}} & {\frac{{\partial t_{y} }}{{\partial r_{4} }}} & {\,\frac{{\partial t_{y} }}{{\partial s_{1} }}} & {\frac{{\partial t_{y} }}{{\partial s_{2} }}} & {\frac{{\partial t_{y} }}{{\partial s_{3} }}} & {\frac{{\partial t_{y} }}{{\partial s_{4} }}} \\ 0 & {\frac{{\partial t_{z} }}{{\partial r_{1} }}} & {\frac{{\partial t_{z} }}{{\partial r_{2} }}} & {\frac{{\partial t_{z} }}{{\partial r_{3} }}} & {\frac{{\partial t_{z} }}{{\partial r_{4} }}} & {\frac{{\partial t_{z} }}{{\partial s_{1} }}} & {\frac{{\partial t_{z} }}{{\partial s_{2} }}} & {\frac{{\partial t_{z} }}{{\partial s_{3} }}} & {\frac{{\partial t_{z} }}{{\partial s_{4} }}} \\ \end{array} } \right]$$
(126)

one has

$$dy = {\varvec{J}}dx_{{1,2}}$$
(127)

According to the variance or covariance matrices propagation principle, one gets

$${\varvec{D}}_{y} = {\varvec{JD}}_{{x_{{1,2}} }} {\varvec{J}}^{T}$$
(128)

Dual quaternion algorithm

The proposed algorithm namely the Dual Quaternion Algorithm is summarized in Table 1.

Table 1 The dual quaternion algorithm of the WTLS 3D coordinate transformation

Experiments and discussion

Two numerical cases including actual geodetic datum transformation and a simulated case are demonstrated to validate the presented algorithm. The former case involves small rotation angles while the latter one involves large rotation angles. The results and analyses are as follows.

Actual geodetic datum transformation case

Mostly geodetic datum transformation involves very small rotation angles (not bigger than 1°). This case data is chosen from Grafarend and Awange (2003), which is discussed in Mercan et al. (2018), Zeng et al. (2022b), etc. The original (local) and target (global) 3D coordinates and their variances of seven control points are listed in Tables 2 and 3. The distribution of seven control points in the original coordinate system is illustrated in Fig. 3. They are almost located in a plane that is represented by the grids in the figure (the biggest distance from the control point to the plane is 68.29 m, corresponding to station Solitude, which is quite small compared to about 50 km × 50 km of the control point area. The biggest distance between the control points is 75,159.625 m). And the fitted plane equation is 0.6456x + 0.1012y + 0.7570z = 6.3655 × 106. Supposed that the components of \({\varvec{p}}_{i}^{o}\) and \({\varvec{p}}_{i}^{t}\) are isotropic and not correlative, the covariance matrices \({\varvec{D}}^{{\text{o}}}\) and \({\varvec{D}}^{t}\) of \({\varvec{p}}^{o}\) and \({\varvec{p}}^{t}\) are both diagonal as

$${\varvec{D}}^{{\text{o}}} = {\text{diag(}}\sigma_{{1}}^{o2} ,\sigma_{{1}}^{o2} ,\sigma_{{1}}^{o2} ,\sigma_{{1}}^{o2} , \cdots ,\sigma_{n}^{o2} ,\sigma_{n}^{o2} ,\sigma_{n}^{o2} ,\sigma_{n}^{o2} )$$
(129)
$${\varvec{D}}^{t} = {\text{diag(}}\sigma_{{1}}^{t2} ,\sigma_{{1}}^{t2} ,\sigma_{{1}}^{t2} ,\sigma_{{1}}^{t2} , \cdots ,\sigma_{n}^{t2} ,\sigma_{n}^{t2} ,\sigma_{n}^{t2} ,\sigma_{n}^{t2} )$$
(130)

where n is the number of point, i.e. 7 inthis case. The weight matrices \({\varvec{W}}^{o}\) and \({\varvec{W}}^{t}\) are constructed as

$${\varvec{W}}^{o} = \left( {{\varvec{D}}^{{\text{o}}} } \right)^{ - 1}$$
(131)
$${\varvec{W}}^{t} = \left( {{\varvec{D}}^{t} } \right)^{ - 1}$$
(132)
Table 2 3D coordinates in the original system
Table 3 3D coordinates in the target system
Fig. 3
figure 3

Distribution of the stations

The proposed algorithm namely DQA is employed to calculate the transformation parameters. The estimated scale and unit dual quaternion by DQA are listed in Table 4. The computed traditional seven transformation parameters and their precisions by DQA are listed in Table 5. In order to compare with the quaternion algorithm (QA) in Mercan et al. (2018), the paper computes the scaled quaternion and their precisions from the estimated scale and dual quaternion by DQA as follows.

$${\varvec{q}} = \left[ {\begin{array}{*{20}c} {q_{1} } & {q_{2} } & {q_{3} } & {q_{0} } \\ \end{array} } \right]^{T} = \sqrt \lambda {\varvec{r}}$$
(133)

where the definition of quaternion in the form of vector here is different from Mercan et al. (2018). Further, one obtains

$$d{\varvec{q}} = \left[ {\begin{array}{*{20}c} {\frac{{r_{1} }}{2\sqrt \lambda }} & {\sqrt \lambda } & 0 & 0 & 0 \\ {\frac{{r_{2} }}{2\sqrt \lambda }} & 0 & {\sqrt \lambda } & 0 & 0 \\ {\frac{{r_{3} }}{2\sqrt \lambda }} & 0 & 0 & {\sqrt \lambda } & 0 \\ {\frac{{r_{4} }}{2\sqrt \lambda }} & 0 & 0 & 0 & {\sqrt \lambda } \\ \end{array} } \right]\left[ {\begin{array}{*{20}c} {{\text{d}}\lambda } \\ {{\text{d}}r_{1} } \\ {{\text{d}}r_{2} } \\ {{\text{d}}r_{3} } \\ {{\text{d}}r_{4} } \\ \end{array} } \right] = {\varvec{J}}_{q} dx_{{1}}$$
(134)
Table 4 Computed scale and dual quaternion and their precisions by DQA in the geodetic case
Table 5 Computed seven transformation parameters and their precisions by DQA in the geodetic case

According to the variance or covariance matrices propagation principle, one gets

$${\varvec{D}}_{q} = {\varvec{J}}_{q} {\varvec{D}}_{{x_{{1}} }} {\varvec{J}}_{q}^{T}$$
(135)

The computed results by QA and DQA are listed in Tables 6, 7, 8 and 9. And the result by QA is directly from Mercan et al. (2018). From Table 6, it is seen that the computed scale, rotation matrix and variance component are identical regardless of the rounding errors. However the QA does not provide the precision of scale while DQA does. Table 7 shows that the computed scaled quaternion and translations are consistent if the rounding errors are ignored, but the estimated precisions are different greatly. As far as q0 is concerned, the estimated standard deviation is improved from 10–7 by QA to 10–9 by DQA. In other words, the decrease percent of standard deviations is 99.36%. For q1, q2, q3, the estimated precisions by two algorithms are slightly different. As far as the translations are concerned, the estimated standard deviations decrease 12.34%, 0.26%, 17.08% for tx, ty, tz respectively from QA to DQA. The average decrease percent is 18.28% for the scaled quaternion and translations (seven parameters). The comparison of estimated standard deviations by DQA and QA is depicted in Fig. 4. In a word, the estimated precisions are improved significantly comparing DQA to QA.

Table 6 Computed scale, rotation matrix and variance component by DQA and QA in the geodetic case
Table 7 Computed scaled quaternion, translations by DQA and QA, and decrease percent of standard deviations from QA to DQA
Table 8 Predicted errors of coordinates in the original and target systems by DQA and QA in the geodetic case
Table 9 Transformation residuals by DQA and QA in the geodetic case
Fig. 4
figure 4

Comparison of estimated standard deviations by DQA and QA

From Tables 8 and 9, it is seen that the predicted errors of coordinates in the original and target systems by DQA and QA are the same; the transformation residuals are identical too for DQA and QA. Thus the DQA and QA are correct.

Simulated case

The adopted data in this case is originally from Felus and Burtch (2009). The data is synthesized and rounded based on a surface fitting experiment. In the experiment, the surface is surveyed in two different coordinate systems. And four control points on the surface are identified and their coordinates in the original and target coordinate systems are listed in Table 10. The area of control points are 70 m × 90 m in the original coordinate system. It is assumed that all points are not dependent on each other and the coordinate components of each point are isotropic and not correlated. And the point-wise weights are given in Table 10 too. The distribution of control points are depicted in Fig. 5. The superscript o or t denotes original coordinate system or target coordinate system respectively in the figure. The red circles represent the positions of control point regardless of the errors in the original system. And red solid lines are drawn between them. The blue asterisks represent the positions of control point regardless of the errors in the target system. And blue solid lines are drawn between them. It is easily seen that the rotation angle around the z axis is big, while rotation angles around the x and y axes are small and the scale is much greater than 1.

Table 10 Coordinates and point-wise weights of control points
Fig. 5
figure 5

Distribution of the control points in the original and target coordinate systems

The DQA and QA are utilized to estimate the transformation parameters. The calculated scale and unit dual quaternion by DQA are listed in Table 11. The estimated traditional seven transformation parameters and their precisions by DQA are listed in Table 12. The obtained results by QA and their counterparts by DQA are given in Tables 13, 14. Predicted errors of coordinates and estimated covariance matrix \({\varvec{D}}_{{x_{{1,2}} }}\), \({\varvec{D}}_{y}\) by DQA are listed in Tables 15, 16, 17 respectively. The transformation residuals by DQA and QA are listed in Table 18. The adjusted coordinates of points are depicted in Fig. 5. The red crosses represent the positions of control point after adjustment in the original system. And red dash-dotted lines are drawn between them. The blue squares represent the positions of control point after adjustment in the target system. And blue dash-dotted lines are drawn between them.

Table 11 Computed scale and dual quaternion and their precisions by DQA in the simulated case
Table 12 Computed seven transformation parameters and their precisions by DQA in the simulated case
Table 13 Computed scale, rotation matrix and variance component by DQA and QA in the simulated case
Table 14 Computed scaled quaternion, translations by DQA and QA in the simulated case
Table 15 Predicted errors of coordinates in the original and target systems by DQA in the simulated case
Table 16 Covariance matrix \({\varvec{D}}_{{x_{{1,2}} }}\) obtained by DQA
Table 17 Covariance matrix \({\varvec{D}}_{y}\) obtained by DQA
Table 18 Transformation residuals by DQA and QA in the simulated case

Table 12 shows that the standard deviations of seven transformation parameters are relatively big, especially those of the rotation angle which are worthy of attention are around 5°. It is seen that from Table 13, the computed scale, rotation matrix and variance component by DQA and QA are identical, however QA does not offer the standard deviation of scale while DQA does. Table 14 shows that the computed scaled quaternion, translations by DQA and QA are consistent regardless of the rounding error. Table 15 or Fig. 5 shows the predicted errors of coordinates are nearly 10 m, which are relatively big. The reason is that the original and target coordinates errors of control points are relatively big from the viewpoint of variance component in Table 13. It is shown that the transformation residuals by DQA and QA are same from Table 18.

To sum up, DQA and QA obtain the consistent results. However it is worthy of notice that the precisions of adjusted parameters are not high for this case with relatively big errors in the coordinates.

Conclusions

A unit quaternion is widely used to represent the 3D rotation matrix, and the paper presents its own derivation from the geometric meaning of 3D rotation of a point around an axis. Further, a unit dual quaternion is employed to represent not only the 3D rotation matrix but also the translation vector, and the paper gives the derivation of representation of the translation vector by the unit dual quaternion. Based on the unit dual quaternion, the 3D similarity coordinate transformation in the errors-in-variables (EIV) model is formulated. By means of linearization by Taylor's formula and Lagrangian extremum principle with constraints, the Dual Quaternion Algorithm (DQA) is proposed. The algorithm is able to output not only the computed parameters but also the full precision information of computed parameters. In addition, the traditional seven parameters and their estimated precisions are output.

The two numerical experiments including a real-world geodetic datum transformation case and a simulated case from surface fitting show that the presented algorithm i.e. DQA is not sensitive to the initial values of transformation, in other words the arbitrary initial value set in this paper is feasible regardless of the size of rotation angles. DQA obtains the consistent results with the quaternion algorithm i.e. QA from Mercan et al. (2018), no matter how big the rotation angles are, and whether the relative errors of coordinates (pseudo-observations) are large or small. On the other hand, the DQA has some advantages over the QA. The key one is the improvement of estimated precisions of transformation parameters, i.e. the average decrease percent of standard deviations is 18.28%, and biggest decrease percent is 99.36% for the scaled quaternion and translations in the geodetic datum transformation case. Another advantage is the DQA fulfills the computation and precision estimation of traditional seven transformation parameters (which still are widely applied yet) from dual quaternion, and even could perform the computation and precision estimation of the scaled quaternion.

Availability of data and materials

The case data were collected from Grafarend and Awange (2003), and Felus and Burtch (2009).

References

  • Arun KS, Huang TS, Blostein SD (1987) Least-squares fitting of two 3-D point sets. IEEE Trans Pattern Anal Mach Intell 9:698–700

    Article  Google Scholar 

  • Aydin C, Mercan H, Uygur SO (2018) Increasing numerical efficiency of iterative solution for total least-squares in datum transformations. Stud Geophys Geod 62:223–242

    Article  Google Scholar 

  • Bektas S (2022) A new algorithm for 3D similarity transformation with dual quaternion. Arab J Geosci 15(14):1–9. https://doi.org/10.1007/s12517-022-10457-z

    Article  Google Scholar 

  • Besl PJ, McKay ND (1992) A method for registration of 3-D shapes. IEEE Trans Pattern Anal Mach Intell 14(2):239–256

    Article  Google Scholar 

  • Burša M (1967) On the possibility of determining the rotation elements of geodetic reference systems on the basis of satellite observations. Stud Geophys Geod 11(4):390–396

    Article  Google Scholar 

  • Chang G (2015) On least-squares solution to 3D similarity transformation problem under Gauss-Helmert model. J Geod 89:573–576

    Article  Google Scholar 

  • Chang G, Xu T, Wang Q, Liu M (2017) Analytical solution to and error analysis of the quaternion based similarity transformation considering measurement errors in both frames. Measurement 110:1–10. https://doi.org/10.1016/j.measurement.2017.06.013

    Article  Google Scholar 

  • Chen Y, Shen YZ, Liu DJ (2004) A simplified model of three dimensional-datum transformation adapted to big rotation angle. Geomat Inf Sci Wuhan Univ 29:1101–1104

    Google Scholar 

  • Clifford WK (1873) Preliminary sketch of biquaternions. Proc Lond Math Soc 4:381–395

    Google Scholar 

  • Crosilla F, Beinat A (2002) Use of generalised Procrustes analysis for the photogrammetric block adjustment by independent models. ISPRS J Photogramm Remote Sens 56(3):195–209

    Article  Google Scholar 

  • Fan L, Smethurst JA, Atkinson PM, Powrie W (2015) Error in target-based georeferencing and registration in terrestrial laser scanning. Comput Geosci 83:54–64

    Article  Google Scholar 

  • Fang X (2015) Weighted total least-squares with constraints: a universal formula for geodetic symmetrical transformations. J Geod 89:459–469

    Article  Google Scholar 

  • Felus YA, Burtch RC (2009) On symmetrical three-dimensional datum conversion. GPS Solut 13:65–74

    Article  Google Scholar 

  • Gargula T, Gawronek P (2023) The Helmert transformation: a proposal for the problem of post-transformation corrections. Adv Geod Geoinf. https://doi.org/10.24425/agg.2022.141920

    Article  Google Scholar 

  • Ge X, Wunderlich T (2016) Surface-based matching of 3D point clouds with variable coordinates in source and target system. ISPRS J Photogramm Remote Sens 111:1–12. https://doi.org/10.1016/j.isprsjprs.2015.11.001

    Article  Google Scholar 

  • Golub GH, Van Loan CF (1980) An analysis of the total least squares problem. SIAM J Numer Anal 17(6):883–893

    Article  Google Scholar 

  • Grafarend EW, Awange JL (2003) Nonlinear analysis of the three-dimensional datum transformation [conformal group C7(3)]. J Geod 77:66–76

    Article  Google Scholar 

  • Horn BKP (1987) Closed-form solution of absolute orientation using unit quaternions. J Opt Soc Am Ser A 4:629–642

    Article  Google Scholar 

  • Horn BKP, Hilden HM, Negahdaripour S (1988) Closed-form solution of absolute orientation using orthonormal matrices. J Opt Soc Am Ser A 5:1127–1135

    Article  Google Scholar 

  • Ioannidou S, Pantazis G (2020) Helmert transformation problem: from Euler angles method to quaternion algebra. ISPRS Int J Geo Inf 9:494. https://doi.org/10.3390/ijgi9090494

    Article  Google Scholar 

  • Jitka P (2011) Application of dual quaternions algorithm for geodetic datum transformation. Aplimat-J Appl Math 4(2):225–236

    Google Scholar 

  • Krarup T (1985) Contribution to the Geometry of the Helmert transformation. Geodetic Institute, Denmark

  • Kurt O (2018) An integrated solution for reducing ill-conditioning and testing the results in non-linear 3D similarity transformations. Inverse Probl Sci Eng 26(5):708–727

    Article  Google Scholar 

  • Leick A, Van Gelder BHW (1975) On similarity transformations and geodetic network distortions based on Doppler satellite observations. Report No. 235, Dep. of Geodetic Sci., The Ohio State University, Columbus

  • Li B, Shen Y, Li W (2012) The seamless model for three-dimensional datum transformation. Sci China 55(12):2099–2108

    Article  Google Scholar 

  • Li RB, Yuan XP, Gan S, Bi R, Guo Y, Gao S (2022) A point cloud registration method based on dual quaternion description with point-linear feature constraints. Int J Remote Sens 43:2538–2558

    Article  Google Scholar 

  • Lv Z, Sui L (2020) The BAB algorithm for computing the total least trimmed squares estimator. J Geod 94:110. https://doi.org/10.1007/s00190-020-01427-y

    Article  Google Scholar 

  • Ma YQ, Liu SC, Li QZ (2020) An advanced multiple outlier detection algorithm for 3D similarity datum transformation. Measurement 163:107945. https://doi.org/10.1016/j.measurement.2020.107945

    Article  Google Scholar 

  • Mahboub V (2016) A weighted least-squares solution to a 3-D symmetrical similarity transformation without linearization. Stud Geophys Geod 60:195–209

    Article  Google Scholar 

  • Mercan H, Akyilmaz O, Aydin C (2018) Solution of the weighted symmetric similarity transformations based on quaternions. J Geod 92:1113–1130

    Article  Google Scholar 

  • Mihajlović D, Cvijetinović Ž (2017) Weighted coordinate transformation formulated by standard least-squares theory. Surv Rev 49(356):328–345. https://doi.org/10.1080/00396265.2016.1173329

    Article  Google Scholar 

  • Odziemczyk W (2020) Application of simulated annealing algorithm for 3D coordinate transformation problem solution. Open Geosci 12:491–502

    Article  Google Scholar 

  • Păun C, Oniga E, Dragomir P (2017) Three-dimensional transformation of coordinate systems using nonlinear analysis—procrustes algorithm. Int J Eng Sci Res Technol 6(2):355–363

    Google Scholar 

  • Qin Y, Fang X, Zeng W, Wang B (2020) General total least squares theory for geodetic coordinate transformations. Appl Sci 10:2598. https://doi.org/10.3390/app10072598

    Article  Google Scholar 

  • Schaffrin B, Neitzel F, Uzun S, Mahboub V (2012) Modifying cadzow’s algorithm to generate the optimal TLS-solution for the structured EIV-model of a similarity transformation. J Geod Sci 2:98–106

    Article  Google Scholar 

  • Shen YZ, Chen Y, Zheng DH (2006) A quaternion-based geodetic datum transformation algorithm. J Geod 80:233–239

    Article  Google Scholar 

  • Soycan M, Soycan A (2008) Transformation of 3D GPS Cartesian coordinates to ED50 using polynomial fitting by robust re-weighting technique. Surv Rev 40(308):142–155

    Article  Google Scholar 

  • Teunissen PJG (1988) The non-linear 2D symmetric Helmert transformation: an exact non-linear least-squares solution. Bull Géodésique 62:1–16

    Article  Google Scholar 

  • Uygur SO, Aydin C, Akyilmaz O (2020) Retrieval of Euler rotation angles from 3D similarity transformation based on quaternions. J Spat Sci. https://doi.org/10.1080/14498596.2020.1776170

    Article  Google Scholar 

  • Walker MW, Shao L, Volz RA (1991) Estimating 3-D location parameters using dual number quaternions. CVGIP Image Underst 54:358–367

    Article  Google Scholar 

  • Wang YB, Wang YJ, Wu K, Yang HC, Zhang H (2014) A dual quaternion-based, closed-form pairwise registration algorithm for point clouds. ISPRS J Photogramm Remote Sens 94:63–69

    Article  Google Scholar 

  • Xu PL (2003) A hybrid global optimization method: the multi-dimensional case. J Comput Appl Math 155:423–446

    Article  Google Scholar 

  • Xu PL, Liu JN, Shi C (2012) Total least squares adjustment in partial errors-in-variables models: algorithm and statistical analysis. J Geod 86:661–675. https://doi.org/10.1007/s00190-012-0552-9

    Article  Google Scholar 

  • Xu PL, Liu J, Shi Y (2023) Almost unbiased weighted least squares location estimation. J Geod 97:68. https://doi.org/10.1007/s00190-023-01742-0

    Article  Google Scholar 

  • Závoti J, Kalmár J (2016) A comparison of different solutions of the Bursa-Wolf model and of the 3D, 7-parameter datum transformation. Acta Geod Geophys 51:245–256

    Article  Google Scholar 

  • Zeng HE (2015) Analytical algorithm of weighted 3D datum transformation using the constraint of orthonormal matrix. Earth Planet Space 67:105

    Article  Google Scholar 

  • Zeng HE, Yi QL (2010) A new analytical solution of nonlinear geodetic datum transformation. In: Proceedings of the 18th International Conference on Geoinformatics

  • Zeng HE, Yi QL (2011) Quaternion-based iterative solution of three-dimensional coordinate transformation problem. J Comput 6(7):1361–1368

    Article  Google Scholar 

  • Zeng HE, Yi QL, Wu Y (2016) Iterative approach of 3D datum transformation with a non-isotropic weight. Acta Geod Geophys 51:557–570

    Article  Google Scholar 

  • Zeng HE, Fang X, Chang G, Yang R (2018) A dual quaternion algorithm of the Helmert transformation problem. Earth Planet Space 70:26. https://doi.org/10.1186/s40623-018-0792-x

    Article  Google Scholar 

  • Zeng HE, Chang G, He H, Tu Y, Sun S, Wu Y (2019) Iterative solution of Helmert transformation based on a unit dual quaternion. Acta Geod Geophys 54:123–141

    Article  Google Scholar 

  • Zeng HE, Chang G, He H, Li K (2020) WTLS iterative algorithm of 3D similarity coordinate transformation based on Gibbs vectors. Earth Planet Space 72:53. https://doi.org/10.1186/s40623-020-01179-1

    Article  Google Scholar 

  • Zeng HE, He HW, Chen LG, Chang GB, He HQ (2022a) Extended WTLS iterative algorithm of 3D similarity transformation based on Gibbs vector. Acta Geod Geophys 57:43–61

    Article  Google Scholar 

  • Zeng HE, Wang JJ, Wang ZH, Li SY, He HQ, Chang GB, Yang RH (2022) Analytical dual quaternion algorithm of the weighted three-dimensional coordinate transformation. Earth Planet Space 74:170. https://doi.org/10.1186/s40623-022-01731-1

    Article  Google Scholar 

Download references

Acknowledgements

The first author thanks his research team for valuable suggestions.

Funding

The study is supported jointly by National Natural Science Foundation of China (Grant No. 42074005), the Open Foundation of Hubei Key Laboratory of Construction and Management in Hydropower Engineering, China Three Gorges University (Grant No. 2023KSD11), and the Open Foundation of National Field Observation and Research Station of Landslides in the Three Gorges Reservoir Area of Yangtze River, China Three Gorges University (Grant No. 2018KTL14).

Author information

Authors and Affiliations

Authors

Contributions

HZ was the coordinator of the research group, and responsible for the derivation of relevant theories in the paper; HZ conceived the original ideas; ZW, SL, and JW participated in deriving formulae; HZ, JL and XL implemented case study; HZ and XL worked on preparing the original draft; HZ and JL reviewed and edited the manuscript; HZ supervised the research work. All the authors read and approved the final manuscript.

Corresponding author

Correspondence to Huaien Zeng.

Ethics declarations

Competing interests

The authors declare that they have no competing interests.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Open Access This article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zeng, H., Wang, Z., Li, J. et al. Dual-quaternion-based iterative algorithm of the three dimensional coordinate transformation. Earth Planets Space 76, 20 (2024). https://doi.org/10.1186/s40623-024-01967-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1186/s40623-024-01967-z

Keywords