Poses

List of Operators ↓

A pose describes a rigid 3D transformation, i.e., a transformation consisting of an arbitrary translation and rotation. In HALCON, a pose is a tuple with 7 parameters: 3 parameters specifying the translation (TransXTransXTransXTransXtransXtrans_x, TransYTransYTransYTransYtransYtrans_y, and TransZTransZTransZTransZtransZtrans_z), 3 parameters describing the rotation (RotXRotXRotXRotXrotXrot_x, RotYRotYRotYRotYrotYrot_y, and RotZRotZRotZRotZrotZrot_z). The last parameter codes the order of the translations and the rotations (as well as the direction of rotation). Further information about these parameters can be found in the documentation of create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose and in the “Solution Guide III-C - 3D Vision”.

3D poses can be interpreted in two ways: First, to describe the position and orientation of one coordinate system relative to another (e.g., the pose of a part's coordinate system relative to the camera coordinate system - in short: the pose of the part relative to the camera). Following the second interpretation, a pose describes how coordinates can be transformed between two coordinate systems (e.g., to transform points from part coordinates into camera coordinates).

A pose that transforms point coordinates from coordinate system 1 (cs1) to coordinate system 2 (cs2) is denoted as . The corresponding transformation of a point given in cs1 ( ) into cs2 ( ) is denoted as

It should be noted that not the pose (as a tuple) but the transformation described by this pose is used for the multiplication and the above notation is only used for readability. Hence, the pose describes the rigid transformation that is represented by the homogeneous transformation matrix (see, e.g., the documentation of create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose for further details)

Consequently, the pose describes the transformation of points from cs1 into cs2. Furthermore, as mentioned above, it also describes the transformation of the coordinate system itself, however, in reverse order: Thus, describes how coordinate system 2 must be transformed to obtain coordinate system 1, and hence, the pose of coordinate system 2 relative to system 1.

With this notation, poses can easily concatenated like homogeneous matrices, e.g., Such a concatenation can be done using e.g., pose_composepose_composePoseComposePoseComposePoseComposepose_compose.


List of Operators

convert_pose_typeConvertPoseTypeconvert_pose_typeConvertPoseTypeconvert_pose_type
Change the representation type of a 3D pose.
create_poseCreatePosecreate_poseCreatePosecreate_pose
Create a 3D pose.
deserialize_poseDeserializePosedeserialize_poseDeserializePosedeserialize_pose
Deserialize a serialized pose.
dual_quat_to_poseDualQuatToPosedual_quat_to_poseDualQuatToPosedual_quat_to_pose
Convert a dual quaternion to a 3D pose.
get_circle_poseGetCirclePoseget_circle_poseGetCirclePoseget_circle_pose
Determine the 3D pose of a circle from its perspective 2D projection.
get_pose_typeGetPoseTypeget_pose_typeGetPoseTypeget_pose_type
Get the representation type of a 3D pose.
get_rectangle_poseGetRectanglePoseget_rectangle_poseGetRectanglePoseget_rectangle_pose
Determine the 3D pose of a rectangle from its perspective 2D projection
pose_averagePoseAveragepose_averagePoseAveragepose_average
Compute the average of a set of poses.
pose_composePoseComposepose_composePoseComposepose_compose
Combine 3D poses given in two tuples.
pose_invertPoseInvertpose_invertPoseInvertpose_invert
Invert each pose in a tuple of 3D poses.
pose_to_dual_quatPoseToDualQuatpose_to_dual_quatPoseToDualQuatpose_to_dual_quat
Convert a 3D pose to a unit dual quaternion.
pose_to_quatPoseToQuatpose_to_quatPoseToQuatpose_to_quat
Convert the rotational part of a 3D pose to a quaternion.
proj_hom_mat2d_to_poseProjHomMat2dToPoseproj_hom_mat2d_to_poseProjHomMat2dToPoseproj_hom_mat2d_to_pose
Compute a pose out of a homography describing the relation between world and image coordinates.
quat_to_poseQuatToPosequat_to_poseQuatToPosequat_to_pose
Convert a quaternion into the corresponding 3D pose.
read_poseReadPoseread_poseReadPoseread_pose
Read a 3D pose from a text file.
serialize_poseSerializePoseserialize_poseSerializePoseserialize_pose
Serialize a pose.
set_origin_poseSetOriginPoseset_origin_poseSetOriginPoseset_origin_pose
Translate the origin of a 3D pose.
vector_to_poseVectorToPosevector_to_poseVectorToPosevector_to_pose
Compute an absolute pose out of point correspondences between world and image coordinates.
write_poseWritePosewrite_poseWritePosewrite_pose
Write a 3D pose to a text file.