Skip to main content
Journal of Research of the National Institute of Standards and Technology logoLink to Journal of Research of the National Institute of Standards and Technology
. 2016 Jun 6;121:196–221. doi: 10.6028/jres.121.009

Propagation of Error from Registration Parameters to Transformed Data

Mili Shah 1, Marek Franaszek 2, Geraldine Cheok 2
PMCID: PMC7339675  PMID: 34434620

Abstract

Methods to register two sets of data have existed for quite some time. However, these sets of data are rarely error-free. Consequently, any registration based on this data will be affected by the error. Moreover, if the corresponding registration matrix is then used to transform data from one coordinate system to another, any error from the registration will also get propagated to the transformed data. In this paper, we will characterize this propagation of random error, or noise, through a mathematical perspective and will illustrate its use with data obtained from physical experiments and with quasi-simulated sets of data. In addition, we will discuss the limitations of this propagation of error when systematic bias is present in the data.

Keywords: calibration, propagation of error, registration, uncertainty analysis

1. Introduction

Registering data from two systems, or coordinate frames, is a classic problem in many fields such as metrology, photogrammetry, robotics, and computer vision. The problem consists of finding an optimal orientation and translation to transform the data collected from one system to another. For perfect data, this problem is easy to solve. However, as is typically the case, difficulties arise once errors are introduced into the problem. Specifically, errors in the data, most notably from noise in the data collection systems, affect the accuracy of the registration. Moreover, these errors propagate onto any data transformed by the matrix formulated from the registration. Here, we will mathematically characterize the propagation of random error from data, to registration, to newly transformed data from the corresponding registration matrix. To gain some insight into the problem, consider two data collection systems X and X′ that simultaneously track an object. From this tracking, data can be obtained from which a registration matrix Ψ can be built which optimally transforms data from system X to X′. This setup is useful in many metrology and manufacturing applications. For instance, consider two cameras tracking an object. Using common features on the object, visible to each camera, a registration matrix Ψ can be formulated which represents the transformation between the two cameras. This matrix can then be used to transform features on the object into a coordinate system of the camera that does not see the features. As a result, a full reconstruction of the geometry of the object can then be formulated. However, care must be taken with this process as noise will influence the results. For instance, if there are errors in the registration obtained from noisy data, those errors will propagate onto any data transformed using the corresponding registration matrix Ψ. The goal of this paper is to describe how errors in the registration will influence data transformed by Ψ by creating uncertainty measures as shown in Fig. 1. In addition, a method to approximate errors in the registration will be given if these errors are not known.

Fig. 1.

Fig. 1.

Two datasets obtained by two systems are registered using the data in the overlapping region on the object. Once registered, all data from one system is transformed to the other system via a registration matrix Ψ. The inset shows the position of a measured point by one system (white circle), the point transformed to the other system (black x), and the uncertainty of the transformed point (black dashed oval). For simplicity, only the uncertainty in the x and y directions are shown.

For this paper, we assume that each system gathers and stores data in matrices

XX=(X1  X2    XN) (1)
XX=(X1  X2    XN) (2)

where Xn and Xn describe the nth pose of an object in the corresponding coordinate system as homogeneous matrices of the form (Rp01). Here the rotation matrix

R=R(t,f,r)=cos(r)I+sin(r)[u]S+(1cos(r))uuT (3)

represents the orientation of the object in the corresponding coordinate system where r is the angle of rotation for R , u = (ux,uy,uz)T = (cos(t)cos(f),cos(t)sin(f),sin(t))T is the (unit) axis of rotation of R parametrized by the angles t and f, and

[u]S=(0uzuyuz0uxuyux0) (4)

is the skew-symmetric matrix representation of the unit vector u. The vector p = (px,py,pz)T represents the three degrees of freedom (3DOF) position of the object in the corresponding coordinate system. In addition, denotes the identity matrix. As a result, each Xn,Xn can be described using six degrees of freedom (6DOF) representing the pose (t,f,r,px,py,pz) of the object. It should be noted that many systems may only be able to collect 3DOF position data of the object. In this situation, the techniques appearing in this paper may be simplified since the 3DOF data is included in the 6DOF data.

The registration matrix Ψ=(Ωτ01) can be derived by looking at the relationship between X and X′ using existing methods [17] or by using the technique for 6DOF data outlined in Sec. 3. For this paper, we will assume that the optimal orientation Ω is represented as a rotation matrix using the angle-axis representation via three parameters {θ,ϕ,ρ} such that

Ω=Ω(θ,ϕ,ρ)=cosρI+sinρ[μ]S+(1cosρ)μμT (5)

where μ = (cosθcosϕ,cosθsinϕ,sinθ)T is the angle of rotation of Ω, ρ is the axis of rotation of Ω, and [μ]s is the skew-symmetric matrix representation of the vector μ. In addition, the optimal translation τ represented using the three parameters {τx,τy,τz} that represent the typical Cartesian coordinates. In total, six registration parameters ψ = {θ,ϕ,ρ,τx,τy,τz} obtained from the registration matrix Ψ=(Ωτ01) will be analyzed in this paper. For simplicity, a table of the most common variables used in this paper is shown in Table 1.

Table 1.

Common variables used in this paper. Note that subscripts and superscripts can be used to differentiate coordinate frames and poses.

Symbol Description
p = (px,py,pz)T Given positional data
R = R(t,f,r) Given rotation matrix from angles t,f,r
τ = (τxyz)T Unknown translational vector
Ω = Ω(θ,ϕ,ρ) Unknown orientation matrix from angles θ,ϕ,ρ
Ψ = {θ,ϕ,ρ,τxyz} Unknown registration parameters from Ω and τ
Ψ=(Ωτ01) Unknown registration matrix from Ω and τ
Δx Uncertainty in x approximated by the standard deviation
ΣΔx Uncertainty in x approximated by the covariance matrix

It should be noted that the formulation presented in this paper can be generalized to any representation of Ω that is parametrized by three independent parameters including Euler angles. Regardless of the technique used, the registration parameters ψ derived from the registration matrix Ψ are influenced by errors inherent in the data obtained from systems X and X′ As a result, the reliability of the registration parameters will depend on the quality of data. If there are systematic biases inherent in the data and they violate the rigid body conditions upon which the process of registration is based, then the resulting registration parameters may not be valid. In this paper, we will assume that any systematic biases in the data are smaller than the random errors occurring in the data from issues such as instrument noise. In such a case, the errors in the registration parameters can be approximated by acquiring, in the same experimental conditions, K repeats of the data. Specifically, for k = 1,2,…, K datasets Xk and Xk can be constructed and the corresponding registration parameters ψk calculated. The mean and standard deviations of the six individual elements of ψk can then be determined and used to characterize the errors in the registration parameters. However, such a procedure is expensive, in both time and labor, and therefore rarely performed in practical applications. A more realistic approach is to characterize the noise from a given system and then to plug this information into a random error propagation formula to derive an estimate for the errors in the registration parameters corresponding to a single pair of acquired data from system X and X′ In this paper, we will derive such a propagation formula for the registration parameters determined from 6DOF data. Moreover, we will verify that such determined errors agree with brute force calculations based on many repeated measurements and registrations.

It should be noted that our method of propagating error is an extension of the work done by Haralick [8] on 3DOF data. However, even earlier formulations of error propagation for 3DOF data do exist. Most notably, Sibson [9, 10] was one of the first to mathematically study how errors in the data affect the registration of 3DOF data by using perturbation theory. Since then, modern mathematical formulations have been constructed [8, 1114]. Most recently, Dorst [11] created a first order error propagation based on the Polar Decomposition and characterized the error in 3DOF data using an “error axis vector.” This vector represents the axis of rotation needed to achieve a perturbed rotation. Though his end formulation has a very nice intuitive description related to the point clouds of the original data, the actual results are in terms of an error axis that may be difficult to interpret. In contrast, Haralick [8] took a more foundational look to calculate how noise in the positional 3DOF data affects the actual registration parameters ψ. In the case that 6DOF data are used, we will extend Haralick’s work to show how random errors in the full 6DOF data affects the registration parameters ψ In addition, once the errors in the registration parameters are known (regardless of the technique), we will show how to propagate the error onto any data transformed by the corresponding registration matrix Ψ.

This paper will be organized in the following way. Section 2 will define a method for propagating errors in the registration parameters ψ onto any data transformed by the corresponding registration matrix Ψ. If the registration parameters are unknown, Sec. 3 will define a novel method for calculating them for 6DOF data, while Sec. 4 will define a method for approximating their error. Experiments illustrating the use of these methods on physically obtained data will be shown in Sec. 5 and concluding remarks will be given in Sec. 6.

For this work, known scalars will be presented as non-bold letters (a, A), known vectors as lower-case bold letters (a), and known matrices as upper-case bold letters (A). Similarly, unknown scalars will be presented as lower-case Greek letters (ψ), unknown vectors as lower-case letters bold Greek letters (ψ), and unknown matrices as upper-case bold Greek letters (Ψ). The j th column of A will be denoted as A(:, j), and the Frobenius norm will be denoted using ‖·‖; i.e.,

A=tr(AAT)=tr(ATA) (6)

where tr( ) denotes the matrix trace operation and T denotes the transpose operation. A description of the most common variables used in this paper is shown in Table 1.

2. Propagation of Error to Transformed Data

If we assume the errors of each of the registration parameters are known and approximated by

Δψ=(Δθ,Δϕ,Δρ,Δτx,Δτy,Δτz)T, (7)

this section derives a method to propagate these errors onto any data transformed by the registration matrix Ψ corresponding to the registration parameters ψ = {θ,ϕ,ρ,τx,τy,τz}. We split up this section into Sec. 2.1 which describes how Δψ affects the positional components of the transformed data and Sec. 2.2 which describes how Δψ affects the orientational components of the transformed data. If the registration parameters or the errors in the registration parameters are unknown, Sec. 3 and Sec. 4, respectively, will outline methods to determine them.

2.1. Propagation of Error onto the Positional Component

Consider new positional data p = (px,py,pz)T with the error approximated by the vector Δp = (Δpxpypz)T Here we assume that the data are new in the sense that they are not used in the registration process. We are interested in calculating the error in

p^=(p^x,p^y,p^z)T=Ωp+τ; (8)

i.e., data obtained from registering p with the registration matrix Ψ=(Ωτ01) where = (θ,ϕ,ρ) and τ = τ(τx,τy,τz).Each element of p can then be calculated as

p^x=F1(θ,ϕ,ρ,τx,τy,τz,px,py,pz)=(cos2θcos2ϕ(1cosρ)+cosρ)px+(cos2θcosϕsinϕ(1cosρ)sinθsinρ)py+(cosθcosϕsinθ(1cosρ)+cosθsinϕsinρ)pz+τx (9)
p^y=F2(θ,ϕ,ρ,τx,τy,τz,px,py,pz)=(cos2θcosϕsinϕ(1cosρ)+sinθsinρ)px+(cos2θsin2ϕ(1cosρ)+cosρ)py+(cosθsinϕsinθ(1cosρ)cosθcosϕsinρ)pz+τy (10)
p^z=F3(θ,ϕ,ρ,τx,τy,τz,px,py,pz)=(cosθcosϕsinθ(1cosρ)cosθsinϕsinρ)px+(cosθsinϕsinθ(1cosρ)+cosθcosϕsinρ)py+(sin2θ(1cosρ)+cosρ)pz+τz (11)

As a result, the uncertainty in Δp^ can be approximated by the covariance matrix

ΣΔp^=JpΣΔkpJpT (12)

where the Jacobian matrix is for

Jp=(F1η1F1η2F1η9F2η1F2η2F2η9F3η1F3η2F3η9) (13)

for ηi the i-th element of {θ,ϕ,ρ,τx,τy,τz,px,py,pz} and the covariance matrix

ΣΔkp=(ΣΔψ00ΣΔp), (14)

where the errors in the known variables are approximated as Δkp=(ΔψΔp) Here the block structure of ΣΔkp is due to the registration error Δψ being independent of the positional error Δp of the positional data p. Note that the errors in each of the components of p^ can then be approximated by taking the square root of the corresponding diagonal of ΣΔp^.

2.2. Propagation of Error onto the Orientational Component

Consider new orientational data Q = Q(t,f,r) with error approximated by the three-dimensional vector

Δq=(Δt,Δf,Δr)T. (15)

Again, we assume that the data are new in the sense that they are not used in the registration process. We are interested in calculating the error of the three terms t^,f^,r^ that parameterize

Q^=Q^(t^,f^,r^)=ΩQ (16)

where = (θ,ϕ,ρ)with error

Δλ=(Δθ,Δϕ,Δρ)T. (17)

Note that the error of Q^=Q^(t^,f^,r^) can be expressed in terms of

Δq^=(Δt^,Δf^,Δr^)T. (18)

In order to compute the individual uncertainties of t^,f^,r, the quaternion representation of rotation will be used, Since

Ωω=(ωwωxωyωz)=(cos(ρ/2)sin(ρ/2)cosθcosϕsin(ρ/2)cosθsinϕsin(ρ/2)sinθ) (19)

then the transformed data Q^=ΩQ can be represented as the quaternion

q^=(cos(r^/2)sin(r^/2)cost^cosf^sin(r^/2)cost^sinf^sin(r^/2)sint^)=(q^wq^xq^yq^z)=(ωwqwωxqxωyqyωzqzωwqx+ωxqw+ωyqzωzqyωwqyωxqz+ωyqw+ωzqxωwqz+ωxqyωyqx+ωzqw), (20)

where q = (qw,qx,qy,qz)T is the quaternion representation of Q As a result,

t^=G1(θ,ϕ,ρ,t,f,r)=sin1(q^z1q^w) (21)
f^=G2(θ,ϕ,ρ,t,f,r)=tan1(q^yq^x) (22)
r^=G3(θ,ϕ,ρ,t,f,r)=2cos1(q^w) (23)

Moreover, the error of the three terms t^,f^,r^ that parametrize the rotation Q^=Q^(t^,f^,r^) can be approximated by the covariance matrix

ΣΔq^=JqΣΔkqJqT (24)

where the Jacobian matrix is

Jq=(G1η1G1η2G1η6G2η1G2η2G2η6G3η1G3η2G3η6) (25)

such that ηi is the i-th element of {θ,ϕ,ρ,t,f,r}and the covariance matrix

ΣΔkq=(ΣΔλ00ΣΔq) (26)

where the errors in the known variables are approximated by Δkq=(ΔλΔq). Here the block structure of ΣΔkq is due to the error in the rotational registration parameters Δλ being independent of the orientational error Δq. Note that the error of each component of (t^,f^,r^) can then be approximated by taking the square root of the corresponding diagonal of ΣΔq^.

2.3. Summary of Propagation of Error

For this section we assume that the registration parameters ψ = {θ,ϕ,ρ,τx,τy,τz} and corresponding registration matrix Ψ are known along with the error Δψ in the registration parameters. The propagation of errors from the uncertainty Δψ onto a pose (t^,f^,r^,p^x,p^y,p^z) obtained by transforming the pose (t,f,r,px,py,pz) with the registration matrix Ψ can be split up into two cases: propagation onto the positional component (p^x,p^y,p^z)T and propagation onto the orientational component (t^,f^,r^)T. Note the error (Δtfrpxpypz) is assumed to be known.

To describe the propagation onto the positional component (p^x,p^y,p^z)T,

  1. Build the Jacobian matrix Jp as outlined in Eq. (13).

  2. Build the covariance matrix ΣΔkp as outlined in Eq. (14).

  3. Combine to create the covariance matrix ΣΔp^=JpΣΔkpJpT.

The error of each element in the positional component (p^x,p^y,p^z)T can then be described by calculating the square root of the corresponding diagonal of ΣΔp^.

Similarly, to describe the propagation onto the orientational component (t^,f^,r^)T,

  1. Build the Jacobian matrix Jq , as outlined in Eq. (25).

  2. Build the covariance matrix ΣΔkq as outlined in Eq. (26).

  3. Combine to create the covariance matrix ΣΔq^=JqΣΔkqJqT.

The error of each element in the orientational component (t^,f^,r^)T can then be described by calculating the square root of the corresponding diagonal of ΣΔq^.

3. Calculating Ω and τ

A method for calculating the optimal orientation Ω and translation τ for 6DOF data is outlined in this section. To begin, note that for error-free data, registering 6DOF data is equivalent to finding a homogeneous matrix Ψ=(Ωτ01) such that

Xn=ΨXn (27)
(Rnpn01)=(Ωτ01)(Rnpn01)=(ΩRnΩpn+τ01) (28)

for all n = 1,2,…,N. This formulation can be split into the orientational component

Rn=ΩRn (29)

and the positional component

pn=Ωpn+τ. (30)

In the presence of noise, Ω and τ may not be the same for all n = 1,2,…, N. Thus, an optimization routine has to be formulated to compute the optimal transformations. In earlier work [5], the authors suggested computing the optimal Ω and τ by simultaneously solving the orientational and positional components as

minΩ,τn=1NΩRnRn2+n=1NΩpn+τpn2 (31)

However, the solutions will be different depending on the scale of the positional components. In addition, the units for the orientational and positional components are different. These problems can be eliminated by reformulating the orientational component.

To begin notice that in the ideal case

p¯n=pnp=pn1Nj=1Npj=(Ωpn+τ)1Nj=1N(Ωpj+τ)=Ω(pnp)=Ωp¯n (32)

where p,p′ are the centroids of pn and pn respectively, p¯n,p¯n are the mean-adjusted points of pn and pn respectively In addition, for j = 1,2,3

Rn(:,j)=ΩRn(;,j). (33)

As a result,

ΩRn(:,j)Rn(:,j)Tp¯n=Rn(:,j)(ΩTRn(:,j))Tp¯n=Rn(:,j)Rn(:,j)TΩp¯n=Rn(:,j)Rn(:,j)Tp¯n. (34)

Thus, Eq. (31) can be reformulated as

minΩ,τn=1Nj=13Ωyn,jyn,j2+Ωpn+τpn2 (35)

Where

yn,j=Rn(:,j)Rn(:,j)Tp¯n (36)
yn,j=Rn(:,j)Rn(:,j)Tp¯n. (37)

Concentrating on the second sum or the positional component of Eq. (35):

n=1NΩpn+τpn2 (38)
=n=1NΩpnΩppn+p+τ+Ωpp2 (39)
=n=1NΩp¯np¯n+T2 (40)
=n=1NΩp¯np¯n2+2TTn=1N(Ωp¯np¯n)+nT2 (41)

where

T=τ+Ωpp. (42)

Since T can arbitrarily be set to 0 for a given Ω by setting

τ=pΩp (43)

then

n=1NΩpn+τpn2=n=1NΩp¯np¯n2 (44)

as is typical with general absolute orientation problems [1]. Thus, Eq. (35) can be restructured using only one unknown Ω

minΩn=1Nj=13Ωyn,jyn,j2+n=1NΩp¯np¯n2, (45)

which can be reformulated as a general Procrustes problem

minΩΩXX2 (46)

where

X=(y1,1y1,2y1,3p¯1yN,1yN,2yN,3p¯N) (47)
X=(y1,1y1,2y1,3p¯1yN,1yN,2yN,3p¯N) (48)

whose solution

Ω=VDUT (49)

where the singular value decomposition (SVD) of

XXT=USVT (50)

and D is a diagonal matrix with diagonal entries {1,1,det(VUT)}.

3.1. Summary of 6DOF Registration

To optimally register two sets of 6DOF data

X=((R1p101),(R2p201),,(RNpN01)) (51)
X=((R1P101),(R2P201),,(RNPN01)) (52)
  1. Define the mean-centroid points
    p¯n=pnp,p=1Nn=1Npn (53)
    p¯n=pnp,p=1Nn=1Npn (54)
    and define
    yn,j=Rn(:,j)Rn(:,j)Tp¯n (55)
    yn,j=Rn(:,j)Rn(:,j)Tp¯n (56)
  2. Calculate the SVD of
    XXT=USVT (57)
    where
    X=(y1,1y1,2y1,3p¯1p¯N) (58)
    X=(y1,1y1,2y1,3p¯1p¯N) (59)
  3. Define the optimal orientation
    Ω=VDUT (60)

    where D is a diagonal matrix with diagonal entries {1,1,det(VUT )}

  4. Define the optimal translation
    τ=pΩp. (61)

4. Errors in the Registration Parameters

The previous section outlined a method for obtaining the optimal orientation Ω and translation τ for noisy 6DOF data. Assuming we can approximate the error in the given 6DOF data as the covariance matrix ΣΔx, where the standard deviations are represented as the vector

Δx=(Δt1,Δf1,Δr1,Δpx1,Δpy1,Δpz1,Δt1,Δf1,Δr1,Δpx1,Δpy1,Δpz1,)T, (62)

this section derives a methodology for obtaining the errors in the registration parameters

Δψ=(Δθ,Δϕ,Δρ,Δτx,Δτy,Δτz)T (63)

from the registration matrix Ψ=(Ωτ01). Note, that this section is an extension of Haralick’s 3DOF work shown in [8].

For 6DOF data, we assume that the objective function can be defined as

F=F(x,ψ)=n=1Nj=13Ωyn,jyn,j2+Ωpn+τpn2 (64)
x=(t1,f1,r1,px1,py1,pz1,t1,f1,r1,px1,py1,pz1,) (65)
ψ=(θ,ϕ,ρ,τx,τy,τz) (66)

where the given rotations are

Rj=Rj(tj,fj,rj)=cos rjI+sin rj[uj]S+(1cos rj)ujujT (67)
Rj=Rj(tj,fj,rj)=cos rjI+sin rj[uj]S+(1cos rj)ujujT (68)

for angles of rotation rj and rj′,respectively and axes of rotation

uj=(cos tjcos fj,cos tjsin fj,sin tj)T (69)
uj=(cos tjcos fj,cos tjsin fj,sin tj)T, (70)

the given positions are

pj=(pxj,pyj,pzj)T (71)
pj=(pxj,pyj,pzj)T. (72)

and the projected mean-centered positions are

yj,k=Rj(:,k)Rj(:,k)Tp¯j (73)
yj,k=Rj(:,k)Rj(:,k)Tp¯j. (74)

Moreover, the unknown orientation Ω is defined as

Ω=Ω(θ,ϕ,ρ)=cosρI+sinρ[μ]S+(1cosρ)μμT (75)

where μ = (cosθcosϕ,cosθsinϕ,sinθ)T is the axis of rotation of Ω, ρ is the angle of rotation of Ω, and the unknown translation

τ=(τx,τy,τz)T. (76)

Using this formulation, the gradient G of the function F can be decomposed as the partials

G(x,ψ)=(Fθ,Fϕ,Fρ,Fτx,Fτy,Fτz)T (77)

Taking the Taylor’s series expansion of g around the calculated points (x^,ψ^)=(x+Δx,ψ+Δψ), we obtain a first order approximation:

G(x,ψ)=G(x^Δx,ψ^Δψ) (78)
G(x^,ψ^)Gx(x^,ψ^)ΔxGψ(x^,ψ^)Δψ (79)

Since ψ^ extremizes F(x^,ψ^),G(x^,ψ^)=0. Similarly, ψ extremizes F(x,ψ), so G(x,ψ)=0. Therefore,

0=Gx(x^,ψ^)ΔxGψ(x^,ψ^)Δψ (80)

Since the relative extremum of F is a relative minimum,

Gψ(x^,ψ^)=F22ψ(x^,ψ^) (81)

must be positive-semidefinite. Typically, this matrix will be positive definite and thus invertible. Therefore,

Δψ=(Gψ(x^,ψ^))1Gx(x^,ψ^)Δx (82)

up to a first order approximation. Moreover, the error in each element of ψ can approximated by looking at the square root of the corresponding diagonal of the covariance matrix

ΣΔψ=G1ψ(x^,ψ^)Gx(x^,ψ^)ΣΔxGTx(x^,ψ^)GTψ(x^,ψ^). (83)

Note that Eq. (119) and Eq. (120) detail the partials Gx(x^,ψ^) and Gψ(x^,ψ^), respectively, in Appendix A.

4.1. Summary of Calculating Errors in the Registration Parameters

Given data x with errors approximated with the standards deviation vector

Δx=(Δt1,Δf1,Δr1,Δpx1,Δpy1,Δpz1,Δt1,Δf1,Δr1,Δpx1,Δpy1,Δpz1,)T, (84)

the errors in the optimal orientation Ω and translation τ can be approximated by

  1. Build the covariance matrix ΣΔx corresponding to Δx.

  2. Build the partial Gx(x^,ψ^) as defined in Eq. (119) of Appendix A.

  3. Build the partial Gψ(x^,ψ^) as defined in Eq. (120) of Appendix A.

  4. Combine to create the covariance matrix
    ΣΔψ=G1ψ(x^,ψ^)Gx(x^,ψ^)ΣΔxGTx(x^,ψ^)GTψ(x^,ψ^). (85)

The error in each element of ψ = {θ,ϕ,ρ,τx,τy,τz} can then be calculated by taking the square root of the corresponding diagonal of ΣΔψ.

5. Experimental Results

To illustrate the formulations presented in the previous sections, 6DOF data of the object appearing in Fig. 2 at N poses with K repeats are acquired from two systems X and X′. Specifically, the positional component of each pose was obtained by measuring the same point (point O in Fig. 2) by each system X and X′, while the orientational component was obtained for system X by creating a coordinate frame using data acquired from vector bars attached to the object and the orientational component was obtained for system X′ by creating a coordinate frame using data acquired from markers attached to the object (see Fig. 2). This 6DOF data representing pose n = 1,2,…,N, repeat k = 1,2,…,K was then stored as

xn,k=(tn,k,fn,k,rn,k,pxn,k,pyn,k,pzn,k) for X (86)
xn,k=(tn,k,fn,k,rn,k,pxn,k,pyn,k,pzn,k) for X (87)

Here the first three components describe the orientation of pose n, repeat k and the last three components describe the position of pose n, repeat k We then assume that the actual n th pose can be approximated as the average of the K repeats

xn=(tn,fn,rn,pxn,pyn,pzn)=1Kk=1K(tn,k,fn,k,rn,k,pxn,k,pyn,k,pzn,k) (88)
xn=(tn,fn,rn,pxn,pyn,pzn)=1Kk=1K(tn,k,fn,k,rn,k,pxn,k,pyn,k,pzn,k) (89)

Fig. 2.

Fig. 2.

The object used to collect data from systems X and X′ The position data is obtained from each system by locating point O. The orientation data is obtained from system X by using the vector bars and from system X′ by using the markers. and the corresponding errors Δxn and Δxn can be approximated as the standard deviation of the K and repeats, respectively. For the analysis performed in this section N = 14 and K = 200. Similar results are obtained for other experiments with varying N values. For simplicity, commonly used variables in this section are shown in Table 2.

5.1. Data Processing

To check that the data collected from system X are consistent with the data collected from system X′, the following tests are performed. Rotation matrices

Rn=Rn(tn,fn,rn)=cosrnI+sinrn[un]S+(1cosrn)ununT (90)
Rn=Rn(tn,fn,rn)=cosrnI+sinrn[un]S+(1cosrn)ununT (91)

are calculated from the average orientational components of the n th poses xn and xn, respectively. Similarly, the positional vectors

pn=(pxn,pyn,pzn)T (92)
pn=(pxn,pyn,pzn)T (93)

are calculated from the average positional components of the n th poses xn and xn respectively. Since both systems are tracking the same object at the same pose, we would assume that the relative rotational change Ri,j is given by

Ri,j=(Ri)T(Rj)(WRi)T(ΩRj)=RiTRj=Ri,j. (94)

As a result, the angle of rotation ri,j of Ri,j should be approximately equal to the angle of rotation ri,j of Ri,j or

|ri,jri,j|0. (95)

Similarly, the relative positional change is given by

pipj(Ωpi+τ)(Ωpj+τ)=ΩpiΩpj. (96)

As a result,

pi,j=pipjΩpiΩpj=pipj=pi,j (97)

or

|pi,jpi,j|0. (98)

If the quantity given by either Eq. (95) or Eq. (98) is not close to 0, then this would suggest that systematic biases are influencing the data and caution is advised for any registration based on this data.

To determine if systematic biases are influencing the data collected from systems X and X′ the relative rotational changes and relative positional changes are calculated for each of the N(N −1)/2 unique pairings (i, j) for i, j = 1,2…,N such that ij From these calculations, the average systematic bias for the rotational data is defined as

avgrot=2N(N1)j=2Ni=1j1|ri,jri,j| (99)

while the average systematic bias for the positional data is defined as

avgpos=2N(N1)j=2Ni=1j1|pi,jpi,j|. (100)

Note that these values would be 0 if systematic biases are not influencing the data. Results from our data are displayed in Table 3.

Table 3.

Average systematic biases in the rotational and positional data of X and X′ versus the random variability in the data represented as X and X′ and the registered data represented as x^. For these systems, the average systematic biases are larger than the random variability in the data resulting in the average distance between x^ and X′ to be larger than the variability in the data.

t [mrad] f [mrad] r [mrad] Px [mm] Py [mm] Pz [mm]
Systematic Bias avgrot = 12.79 avgpos = 3.14
Variability in X 0.48 3.39 0.45 0.03 0.03 0.03
Variability in X’ 0.26 0.69 0.45 0.05 0.03 0.11
Variability in X^ 0.35 0.45 0.58 0.15 0.27 0.17
Average |X^X| 15.20 18.01 26.93 4.02 4.54 5.17

Another factor affecting registration is random variability in the data due to factors such as the level of instrument noise. The random variability is computed by first calculating the variances of the K repeats for each of the N poses. Then the mean of the variances is computed from all N poses from which the corresponding mean standard deviation can be calculated for each system. Note that these mean standard deviations gauge the variability of the data measured in the same experimental conditions and that these values are independent from the previously calculated parameters which gauge systematic biases. Therefore, it is possible to observe in an experiment different scenarios when the systematic biases are larger than the variability, comparable to the variability, or less than the variability. From the data, we can see that the average systematic biases are larger than the random variability in the data. As a result, caution is advised for any registration based on this data.

5.2. Registration Results

The analytical formulations for propagation of error derived in the previous sections are compared with a brute force method based on the leave-one-out method on experimentally obtained data. Specifically, analytical solutions are obtained for each n = 1,2,…,N by withholding xn and xn and the associated Δxn and Δxn from the pool of N datasets. The remaining N −1 datasets are used to calculate the analytical registration parameters ψn from the corresponding registration matrix Ψn as outlined in Sec. 3. In addition, the corresponding uncertainty ΣΔψn is calculated as outlined in Sec. 4. The registration parameters ψn and the corresponding uncertainty ΣΔψn are then used to study how the errors in each of the 6DOF values of xn, represented as the standard deviation Δxn, propagate onto the registered point x^n. Here, the registered point x^n is the 6DOF representation of the homogeneous matrix x^n=Ψnxn where Xn is the homogeneous matrix formulation of xn. The resulting errors of each of the 6DOF elements of x^n, represented as Δx^n, can then be approximated by looking at the square root of the corresponding diagonal of ΣΔp^n for the positional data and ΣΔq^n for the orientational data as outlined in Sec. 2.

The brute force solutions are obtained for each n = 1,2,…,N, by obtaining the K registration, parameters ψn,k formulated from registering xi,k with xi,k for all in and k = 1,2,…,K The covariance matrix Σ^Δψn is then calculated from the ψn,k and compared with the analytically derived ΣΔψn calculated from above. Comparing the i th diagonal element σi of ΣΔψn with the i th diagonal element σ^i of Σ^Δψn, we found

10.03σiσ^i1+0.03. (101)

Note that if σi=σ^i, then σi/σ^i=1. As a result, we see that our analytical solutions do match up with the brute force methods.

The transformed poses X^n,k=Ψn,kXn,k are also computed for is the k = 1,2,…,K where Ψn,k is the registration matrix associated with ψn,k and Xn,k is the homogeneous matrix representation of xn,k. Using the 6DOF representation x^n,k of X^n,k, the covariance matrix Σ^Δp^n is computed for the positional data and the covariance matrix Σ^Δq^n is computed for the orientational data. Comparing the i th diagonal element σ^i from these covariance matrices with the i th diagonal element σi from ΣΔp^n and ΣΔq^n, we found

10.05σiσ^i1+0.05 (102)

as illustrated in Fig. 3. Note that if σi=σ^i, then σi/σ^i=1. As a result, we see that our analytical solutions do match up with the brute force methods.

Fig. 3.

Fig. 3.

The standard deviation of the propagated test point x^n,k.obtained from the experimental (E) brute force method and the theoretical (T) analytical method presented in this paper.

The variability of the registered data X^n,k are comparable with the variability of the original data xn,k and xn,k as shown in Table 3. However, the average distance between the registered data x^n and xn is larger than the average uncertainty Δx^n This is the result of the systematic biases affecting the systems X and X′ as cautioned in Sec. 5.1. As a result, xn does not lie in the uncertainty region Δx^n as shown in left example of Fig. 4. The next section will further elaborate on the effects of systematic biases on registration.

Fig. 4.

Fig. 4.

Possible outcomes from the registration of data from systems X and X′ with fixed positional bias. The black dots are the averaged (over K repeats) registered data x^n, while the white dots are the averaged xn data. The light gray circles illustrate the uncertainty of the registered data Δx^n, while the dark gray circles illustrate the uncertainty of Δx′n from system X′. Pose x′n lies in the uncertainty of the registered data Δx^n only in the case where the positional bias is less than the uncertainty. For ease of understanding, only the x and y directions are shown and the uncertainties in these directions are the same which generally is not the case.

5.3. Effects of Systematic Bias

In order to investigate the effects of systematic biases on the data, quasi-simulated data are generated from the experimentally acquired data by first determining the deviation of the k th repeated measurement from the mean value as

en,k=xn,kxn. (103)

Then the registration matrix Ψ is computed from all pairs (xn,xn ). The quasi-simulated data is then determined by setting

xn(s)=s(xnΨxn)+Ψxn (104)

where 0 ≤ s ≤ 1 is a scale factor. Note that when s = 0 the average systematic biases are 0 and the assumption of a rigid body registration is perfectly fulfilled. As s increases, the average systematic biases increase linearly until s = 1and xn (s) = xn (1) = xn. For an illustration, see Fig. 5. The noisy k th repeated quasi-simulated data can then be generated as

xn,k(s)=xn(s)+en,k. (105)

Note that the standard deviation of the simulated data xn,k(s) is exactly the same as the standard deviation of the original experimental data xn,k– the only thing that changes is the location of the average xn(s).Through this process, data for a new quasi-simulated system X′(s) is created that depends on s.

Fig. 5.

Fig. 5.

Schematic diagram explaining how the simulated data xn(s) are generated from experimental data. The black dots depict registered data x^n which corresponds to zero systematic biases (s = 0)), while the white circles correspond to the original data obtained from system X′ with large systematic biases (s = 1).

The analytical formulations for propagation of error on the simulated data from systems X and X′(s) are compared with the brute force methods outlined in Sec. 5.2 for multiple s values. Specifically, results comparing the covariance of the registration parameters derived from the analytical and brute force methods are similar to the results shown in Eq. (101) regardless of the s value. In addition, results comparing the propagation of error through the covariances of the registered poses derived from the analytical and brute force methods are similar to the results shown in Eq. (102) regardless of the s value. However, s does affect the likelihood that a given pose in system X′(s) lies in the uncertainty region of the corresponding registered pose. Let the n th registered pose for repeat k be defined as X^n,k(s)=Ψn,k(s)Xn,k where Ψn,k(s) is the registration between Xi,k(s) and Xi,k(s) for in where xi,k is the homogeneous matrix representation of xi,k From these poses, the average pose

x^n(s)=1Kk=1Kx^n,k(s) (106)

can be defined where x^n,k is the 6DOF representation of X^n,k(s) and the corresponding errors in x^n(s) can be approximated with Δx^n(s)– the standard deviation of each of the 6DOF elements of x^n,k(s). Then the goodness of fit ratio between x^n(s) and xn (s) can be represented by the vector

g(s)=(gt,gf,gr,gpx,gpy,gpz)T (107)

Where gi(s)=1NΣn=1N|η^iηi|Δη^i for η^i,ηi being the i th vector elements of x^n(s),xn(s) respectively and Δη^i is the standard deviation of the i th elements of x^n,k(s). Note that if for all i

gi(s)<1xn(s) is within Δx^n(s) (108)
gi(s)1xn(s) is on the border of Δx^n(s) (109)
gi(s)>1xn(s) is outside Δx^n(s) (110)

Results for our data are shown in Fig. 6. If the systematic bias represented by s < 0.022 then xn(s) is in the region Δx^n(s) centered at x^n(s) and the analytical formulations presented in this work accurately represent the actual propagation of error.

Fig. 6.

Fig. 6.

The goodness of fit ratio g(s) calculated from the original experimental 6DOF data from system X registered to the simulated data from system X′(s)for varying scale s values.

6. Conclusions

This paper focuses on methods to understand how errors in collected data from two systems can be propagated to parameters obtained from the registration of the two systems. These, often error-prone, registration parameters are then used to build a homogeneous matrix to transform data collected in only one system to the other. As a result, any errors in the original collected data that get propagated to the registration parameters will also be propagated onto any transformed data through the corresponding registration matrix. In this paper, mathematical formulas are derived and tested on experimentally obtained data to show how this propagation of error occurs. We found that the original errors in the data can be attributed to systematic biases in the data as well as random variations occurring in the data from sources such as instrument noise. If systematic biases found in the data are larger than the random variations in the data, then the practitioner should be cautious as the approximation of the registered pose unseen by a given system may not accurately represent the actual pose in the system. However, if the systematic biases are less than the random variation appearing in the data, then the methods outlined in this paper are adequate to model the propagation of error from noisy data to registration parameters to transformed data. The relationship between the systematic biases and the random variations in the data can be approximated before registration occurs by simple tests on the data. Therefore, it is recommended that a practitioner performs these tests to validate the accuracy of any resulting registration. However, regardless of the relationship between systematic biases and random variations, it should be noted that the efficient analytical formulations presented in this paper match with the tedious and often time consuming brute force methods.

Table 2.

Representation of pose at position n in different systems.

Symbol Description
xn 6DOF representation of pose n in system X
Xn Homogeneous matrix representation of pose n in system X
xn' 6DOF representation of pose n in system X’
Xn' Homogeneous matrix representation of pose n in system X’
x^n Registered 6DOF representation of pose n in system X to system X’
X^n Registered homogeneous representation of pose n in system X to system X’

Acknowledgments

The first author is a Guest Researcher at the National Institute of Standards and Technology (NIST). The problem discussed in this paper was formulated at NIST under the Intelligent Systems Division. Data were collected and analyzed within this program with results appearing in this paper.

Biography

About the authors: Mili Shah is an associate professor in the Department of Mathematics and Statistics at Loyola University Maryland and a guest researcher in the Intelligent Systems Division at NIST. Her research interests include robotics, computer vision, and symmetry detection.

Marek Franaszek is a physicist in the Intelligent Systems Division of the NIST Engineering Laboratory. His current research interests include mathematical modeling and algorithm development for processing data acquired with 3D imaging systems.

Geraldine Cheok is a research structural engineer in the Sensing and Perception Group of the Intelligent Systems Division of the Engineering Laboratory at NIST. She conducts research to evaluate the performance of sensors used for robotic applications in manufacturing.

The National Institute of Standards and Technology is an agency of the U.S. Department of Commerce.

7. Appendix A.

Let the objective function be defined as

F=F(x,ψ)=n=1Nj=13Ωyn,jyn,j2+Ωpi+τpi2 (111)
x=(t1,f1,r1,px1,py1,pz1,t1,f1,r1,px1,py1,pz1,) (112)
ψ=(θ,ϕ,ρ,τx,τy,τz). (113)

Note that each component of F can be decomposed as

Ωyn,jyn,j2=yn,jTyn,j2yn,jTΩyn,j+yn,jTyn,j (114)
Ωpn+τpn2=(Ωpn+τpn)T(Ωpn+τpn)=pnTpn+2τTpn2pnTΩpn2τTpn+τTτ+pnTpn. (115)

Using this formulation, the gradient G of F can be decomposed as the partials

G(x,ψ)=(FθFϕFρFτxFτyFτz)=(H(Wθ)H(Wϕ)H(Wρ).n=1N2Ωpn2pn+2τ.) (116)

where

H(Z)=12Nn=1N(j=132yn,jTZyn,j)+2(Zpn)T(τpn) (117)

and

Ωθ=sinρ[μθ]S+(1cosρ)(μθμT+μμTθ)Ωϕ=sinρ[μϕ]S+(1cosρ)(μϕμT+μμTϕ)Ωρ=sinρI+cosρ[μ]S+sinρμμT (118)

Moreover, the partials

Gx=(H1H2HnH1H2Hn) (119)
Gψ=2N(H(Ωθθ)H(Ωθϕ)H(Ωθρ)(Ωθp)TH(Ωϕθ)H(Ωϕϕ)H(Ωϕρ)(Ωϕp)TH(Ωρθ)H(Ωρϕ)H(Ωρρ)(Ωρp)TΩθpΩϕpΩρpI) (120)

where

Hm=(Htm(Ωθ)Hpm(Ωθ)Hri(Ωθ)Hpm(Ωθ)Htm(Ωϕ)Hpm(Ωϕ)Hri(Ωϕ)Hpm(Ωϕ)Htm(Ωρ)Hpm(Ωρ)Hri(Ωρ)Hpm(Ωρ)0002Ω) (121)
Hm=(Htm(Ωθ)Hpm(Ωθ)Hrm(Ωθ)Hpm(Ωθ)Htm(Ωϕ)Hpm(Ωϕ)Hrm(Ωϕ)Hpm(Ωϕ)Htm(Ωρ)Hpm(Ωρ)Hrm(Ωρ)Hpm(Ωρ)0002I) (122)

and

Ham(Z)=j=132ym,jTZ(Rm(:,j)amRm(:,j)T++Rm(:,j)Rm(:,j)Tam)p¯m (123)
Hpm(Z)=2(τpm)TZ+2Nn=1N(j=13yn,kTZRn(:,j)Rn(:,j)T)2j=13ym,jTZRm(:,j)Rm(:,j)T (124)
Ham(Z)=j=132p¯mT(Rm(:,j)amRm(:,j)T++Rm(:,j)Rm(:,j)Tam)TZym,j (125)
Hpm(Z)=2(Zpm)T+2Nn=1N(j=13yn,jTZTRn(:,j)Rn(:,j)T)2j=13ym,jTZTRm(:,j)Rm(:,j)T (126)

for am ∈{tm,fm,rm} and am{tm,fm,rm}. The partials Rm(:,j)am and Rm(:,j)am can be obtained in a method similar to Eq. (118). And,

Ωθθ=sinρ[2μθ2]S+(1cosρ)(2μθ2μT+2μθμTθ+μ2μTθ2) (127)
Ωϕθ=Ωθϕ=sinρ[2μϕθ]s+(1cosρ)(2μϕθμT+μθμTϕ+μϕμTθ+μ2μTϕθ) (128)
Ωρθ=Ωθρ=cosρ[μθ]S+sinρ(μθμT+μμTθ) (129)
Ωϕϕ=sinρ[2μϕ2]S+(1cosρ)(2μϕ2μT+2μϕμTϕ+μ2μTϕ2) (130)
Ωρϕ=Ωϕρ=cosρ[μϕ]S+sinρ(μϕμT+μμTϕ) (131)
Ωρρ=cosρIsinρ[μ]S+cosρμμT (132)

8. References

  • [1].Arun KS, Huang TS, Blostein SD (1987) Least-squares fitting of two 3-D point sets. IEEE Trans Pattern Anal Mach Intell PAMI-9(5):698–700. 10.1109/TPAMI.1987.4767965 [DOI] [PubMed] [Google Scholar]
  • [2].Horn BKP (1987) Closed-form solution of absolute orientation using unit quaternions. J Opt Soc Am A Opt Image Sci Vis 4(4):629–642. 10.1364/Josaa.4.000629 [DOI] [Google Scholar]
  • [3].Horn BKP, Hilden HM, Negahdaripour S (1988) Closed-form solution of absolute orientation using orthonormal matrices. J Opt Soc Am A Opt Image Sci Vis 5(7):1127–1135. 10.1364/Josaa.5.001127 [DOI] [Google Scholar]
  • [4].Kanatani K (1994) Analysis of 3-D rotation fitting. IEEE Trans Pattern Anal Mach Intell 16(5):543–549. 10.1109/34.291441 [DOI] [Google Scholar]
  • [5].Shah M (2011) Comparing two sets of corresponding six degree of freedom data. Comput Vis Image Underst 115(10):1355–1362. 10.1016/j.cviu.2011.05.007 [DOI] [Google Scholar]
  • [6].Umeyama S (1991) Least-squares estimation of transformation parameters between two point patterns. IEEE Trans Pattern Anal Mach Intell 13(4):376–380. 10.1109/34.88573 [DOI] [Google Scholar]
  • [7].Walker MW, Shao L, Volz RA (1991) Estimating 3-D location parameters using dual number quaternions. CVGIP: Image Underst 54(3):358–367. 10.1016/1049-9660(91)90036-O [DOI] [Google Scholar]
  • [8].Haralick RM (2000) Propagating covariance in computer vision Performance Characterization in Computer Vision, Computational Imaging and Vision, eds Klette R, Stiehl HS, Viergever MA, Vincken KL (Springer, Netherlands: ), Vol 17, pp 95–114. [Google Scholar]
  • [9].Sibson R (1978) Studies in the robustness of multidimensional scaling: procrustes statistics. J R Stat Soc Series B Stat Methodol 40(2):234–238. [Google Scholar]
  • [10].Sibson R (1979) Studies in the robustness of multidimensional scaling: perturbational analysis of classical scaling. J R Stat Soc Series B Stat Methodol 41(2):217–229. [Google Scholar]
  • [11].Dorst L (2005) First order error propagation of the procrustes method for 3D attitude estimation. IEEE Trans Pattern Anal Mach Intell 27(2):221–229. 10.1109/TPAMI.2005.29 [DOI] [PubMed] [Google Scholar]
  • [12].Fitzpatrick JM, West JB (2001) The distribution of target registration error in rigid-body point-based registration. IEEE Trans Med Imaging 20(9):917–927. 10.1109/42.952729 [DOI] [PubMed] [Google Scholar]
  • [13].Fitzpatrick JM, West JB, Maurer CR Jr (1998) Predicting error in rigid-body point-based registration. IEEE Trans Med Imaging 17(5):694–702. 10.1109/42.736021 [DOI] [PubMed] [Google Scholar]
  • [14].Söderkvist I (1993) Perturbation analysis of the orthogonal procrustes problem. BIT Numer Math 33(4):687–694. 10.1007/bf01990543 [DOI] [Google Scholar]

Articles from Journal of Research of the National Institute of Standards and Technology are provided here courtesy of National Institute of Standards and Technology

RESOURCES