hom_mat3d_to_poseT_hom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose (Operator)

Name

hom_mat3d_to_poseT_hom_mat3d_to_poseHomMat3dToPoseHomMat3dToPose — Convert a homogeneous transformation matrix into a 3D pose.

Signature

hom_mat3d_to_pose( : : HomMat3D : Pose)

Herror T_hom_mat3d_to_pose(const Htuple HomMat3D, Htuple* Pose)

void HomMat3dToPose(const HTuple& HomMat3D, HTuple* Pose)

HPose HHomMat3D::HomMat3dToPose() const

static void HOperatorSet.HomMat3dToPose(HTuple homMat3D, out HTuple pose)

HPose HHomMat3D.HomMat3dToPose()

Description

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose 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 create_posecreate_poseCreatePoseCreatePoseCreatePose.

A typical application of hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose is that a 3D pose was converted into a homogeneous transformation matrix to further transform it, e.g., with hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate or hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, and now must be converted back into a pose to use it as input for operators like image_points_to_world_planeimage_points_to_world_planeImagePointsToWorldPlaneImagePointsToWorldPlaneImagePointsToWorldPlane.

Attention

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose only supports rigid transformations in HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D.

Execution Information

Parameters

HomMat3DHomMat3DHomMat3DHomMat3DhomMat3D (input_control)  hom_mat3d HHomMat3D, HTupleHTupleHtuple (real) (double) (double) (double)

Homogeneous transformation matrix.

PosePosePosePosepose (output_control)  pose HPose, HTupleHTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

Equivalent 3D pose.

Number of elements: 7

Example (HDevelop)

* 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)

Result

hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPose returns 2 (H_MSG_TRUE) if all parameter values are correct. If necessary, an exception is raised

Possible Predecessors

hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert

Possible Successors

camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, write_posewrite_poseWritePoseWritePoseWritePose, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab, sim_caltabsim_caltabSimCaltabSimCaltabSimCaltab

See also

create_posecreate_poseCreatePoseCreatePoseCreatePose, camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibration, disp_caltabdisp_caltabDispCaltabDispCaltabDispCaltab, sim_caltabsim_caltabSimCaltabSimCaltabSimCaltab, write_posewrite_poseWritePoseWritePoseWritePose, read_poseread_poseReadPoseReadPoseReadPose, pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3d, project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPoint, get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSight, hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotate, hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslate, hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInvert, affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3d

Module

Foundation