
A
Mathematical considerations
A.1 Homogeneous coordinates
In mathematics, homogeneous coordinates[4] for a 3-dimensional space uses 4-dimensional vectors to
represent a position:
⃗
x
=
(
x
0
x
1
x
2
)
T
⇐⇒
X
=
(
x
0
x
1
x
2
1
)
T
.
(A.1)
This notation allows a much easier handling of transformations composed of a rotation and a translation,
as the transformation matrix is written as:
T
=
(
R
⃗t
0
1
)
(A.2)
with
R
=
r
00
r
01
r
02
r
10
r
11
r
12
r
20
r
21
r
22
and
⃗t
=
t
0
t
1
t
2
From those definitions result the combination of two transformations
T
1
and
T
2
result in a transformation
T
tot
=
T
2
·
T
1
.
A.2 Marker pose
Atracsys gives access to the marker orientation, either via the
ftkMarker::rotation
or the
atracsys::
MarkerData::_Rotation
fields. The
ftkMarker::rotation
matrix is stored such that it is accessed like
this:
ftkMarker::rotation[rowId][columnId]
, and the information is simply copied into the
atracsys
::MarkerData::_Rotation
field (i.e. indices are used in the same way). Consider the following example,
taken from the simulator data, in which a marker with geometry ID 2 is reconstructed with a registration
error of 344 µm. The given rotation and translation are:
R
=
0
.
5880
−
0
.
8023
0
.
1029
−
0
.
7987
−
0
.
5960
−
0
.
0828
0
.
1278
−
0
.
0336
−
0
.
9912
⃗t
=
199
.
319
−
103
.
765
876
.
320
The rotation components are retrieved from the SDK as presented on Listing A.1. Geometry ID 2 defines
the following four points:
⃗
p
0
=
(
0
.
000
11
.
000
3
.
000
)
T
⃗
p
1
=
(
24
.
090
−
15
.
750
3
.
000
)
T
⃗
p
2
=
(
0
.
000
−
47
.
690
3
.
000
)
T
⃗
p
3
=
(
23
.
630
−
10
.
580
3
.
000
)
T
99