hom_mat3d_to_pose — Convert a homogeneous transformation matrix into a 3D pose.
hom_mat3d_to_pose converts a homogeneous transformation matrix into
the corresponding 3D pose with type code 0. For details about 3D poses and
the corresponding transformation matrices please refer to
A typical application of
hom_mat3d_to_pose is that a 3D pose was
converted into a homogeneous transformation matrix to further transform it,
hom_mat3d_translate, and now
must be converted back into a pose to use it as input for operators like
hom_mat3d_to_pose only supports rigid transformations in
HomMat3D. For non-rigid transformations, the operator attempts to
return a pose that is close to
deviates significantly from a rigid transformation, the generated pose
may also deviate significantly from
Homogeneous transformation matrix.
→(real / integer)
Equivalent 3D pose.
Number of elements: 7
* Calibrate camera. calibrate_cameras (CalibDataID,Error) * Get reference pose (pose 2 of calibration object 0). get_calib_data (CalibDataID, 'calib_obj_pose',\ [0,2], 'pose', ObjInCameraPose) * Convert pose to homogeneous transformation matrix. pose_to_hom_mat3d(ObjInCameraPose, cam_H_cal) * Rotate it 90 degrees around its y-axis to obtain a world coordinate system * whose y- and z-axis lie in the plane of the calibration plate while the * x-axis point 'upwards': cam_H_w = cam_H_cal * RotY(90). hom_mat3d_identity(HomMat3DIdent) hom_mat3d_rotate(HomMat3DIdent, rad(90), 'y', 0, 0, 0, \ HomMat3DRotateY) hom_mat3d_compose(cam_H_cal, HomMat3DRotateY, cam_H_w) * Convert transformed matrix back to pose. hom_mat3d_to_pose (cam_H_w, Pose)
hom_mat3d_to_pose returns TRUE if all parameter values are
correct. If necessary, an exception is raised