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_typecreate_posedeserialize_posedual_quat_to_poseget_circle_poseget_pose_typeget_rectangle_posepose_averagepose_composepose_invertpose_to_dual_quatpose_to_quatproj_hom_mat2d_to_posequat_to_poseread_poseserialize_poseset_origin_posevector_to_posewrite_pose