Eine 3D-Lage (Pose) beschreibt eine starre Transformation, d.h., eine
Transformation die aus einer beliebigen Translation und Rotation besteht.
In HALCON ist eine 3D-Lage ein Tupel mit 7 Parametern: 3 Parameter legen
die Translation fest (
, TransX
und
TransY
), 3 Parameter beschreiben die Rotation (TransZ
,
RotX
und RotY
). Der letzte Parameter verschlüsselt die
Reihenfolge der Translationen und Rotationen (sowie auch die
Rotationsrichtung).
Für weitere Informationen zu diesen Parametern wird auf RotZ
und den create_pose
„Solution Guide III-C - 3D Vision“
verwiesen.
3D-Lagen werden typischerweise für zwei Zwecke verwendet: Erstens zur Beschreibung der Position und Orientierung eines Koordinatensystems relativ zu einem anderen (z.B. die 3D-Lage eines Objektkoordinatensystems relativ zum Kamerakoordinatensystem - kurz, die 3D-Lage des Objekts relativ zur Kamera) und zweitens zur Beschreibung der Transformation von Koordinaten zwischen Koordinatensystemen (z.B. die Transformation von Objektkoordinaten in Kamerakoordinaten).
Eine 3D-Lage, welche Punktkoordinaten von einem Koordinatensystem 1 (cs1) in ein Koordinatensystem 2 (cs2) transformiert, wird als bezeichnet. Die entsprechende Transformation der Koordinaten eines Punktes in cs1 () in cs2 () wird wie folgt bezeichnet:
Es wird darauf hingewiesen, dass nicht die 3D-Lage (als Tupel) sondern die
damit beschriebene Transformation für die Multiplikation verwendet wird und
die oben verwendete Notation bloß der Lesbarkeit dient.
Die 3D-Lage beschreibt die starre
Transformation, welche durch die homogene Transformationsmatrix
verkörpert wird (siehe
für weitere Informationen):
create_pose
Somit beschreibt die 3D-Lage die Transformation von Punktkoordinaten von cs1 nach cs2. Zudem beschreibt die 3D-Lage wie oben erwähnt die Transformation des Koordinatensystems selbst, jedoch in umgekehrter Reihenfolge. beschreibt, wie Koordinatensystem 2 transformiert werden muss, um Koordinatensystem 1 zu erhalten und damit die 3D-Lage von Koordinatensystem 2 relativ zu Koordinatensystem 1.
Mit dieser Notation können Posen wie homogene Matrizen verkettet werden,
z.B.
Eine solche Verkettung kann z.B. mittels
durchgeführt
werden.
pose_compose
convert_pose_type
create_pose
deserialize_pose
dual_quat_to_pose
get_circle_pose
get_pose_type
get_rectangle_pose
pose_average
pose_compose
pose_invert
pose_to_dual_quat
pose_to_quat
proj_hom_mat2d_to_pose
quat_to_pose
read_pose
serialize_pose
set_origin_pose
vector_to_pose
write_pose