pose_to_hom_mat3dT_pose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d (Operator)
Name
pose_to_hom_mat3dT_pose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d — Konvertieren einer 3D-Lage (Pose) in eine homogene
Transformationsmatrix.
Signatur
Herror T_pose_to_hom_mat3d(const Htuple Pose, Htuple* HomMat3D)
def pose_to_hom_mat3d(pose: Sequence[Union[int, float]]) -> Sequence[float]
Beschreibung
pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d konvertiert eine
3D-Lage PosePosePosePoseposepose, z.B. die externen Kameraparameter, in
die äquivalente homogene Transformationsmatrix
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d. Details zu 3D-Lagen und den zugehörigen
Transformationsmatrizen findet sich bei create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose.
Ein typischer Anwendungsfall von pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d ist, dass eine
3D-Lage weiter transformiert, z.B. mittels hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotate oder
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslatehom_mat3d_translate rotiert oder verschoben werden soll. Im Falle der
externen Kameraparameter kann dies nötig sein, wenn der Kalibrierkörper nicht
so platziert werden kann, dass sein Koordinatensystem mit dem gewünschten
Weltkoordinatensystem zusammenfällt.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
PosePosePosePoseposepose (input_control) pose → HPose, HTupleSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
3D-Lage (Pose).
Parameteranzahl: 7
HomMat3DHomMat3DHomMat3DHomMat3DhomMat3Dhom_mat_3d (output_control) hom_mat3d → HHomMat3D, HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Äquivalente homogene Transformationsmatrix.
Beispiel (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)
Ergebnis
Sind die Parameterwerte korrekt, dann liefert pose_to_hom_mat3dpose_to_hom_mat3dPoseToHomMat3dPoseToHomMat3dPoseToHomMat3dpose_to_hom_mat3d
den Wert TRUE. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration,
read_poseread_poseReadPoseReadPoseReadPoseread_pose
Nachfolger
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d,
hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInverthom_mat3d_invert,
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslatehom_mat3d_translate,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotate,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose
Alternativen
pose_to_dual_quatpose_to_dual_quatPoseToDualQuatPoseToDualQuatPoseToDualQuatpose_to_dual_quat
Siehe auch
create_posecreate_poseCreatePoseCreatePoseCreatePosecreate_pose,
camera_calibrationcamera_calibrationCameraCalibrationCameraCalibrationCameraCalibrationcamera_calibration,
write_posewrite_poseWritePoseWritePoseWritePosewrite_pose,
read_poseread_poseReadPoseReadPoseReadPoseread_pose,
hom_mat3d_to_posehom_mat3d_to_poseHomMat3dToPoseHomMat3dToPoseHomMat3dToPosehom_mat3d_to_pose,
project_3d_pointproject_3d_pointProject3dPointProject3dPointProject3dPointproject_3d_point,
get_line_of_sightget_line_of_sightGetLineOfSightGetLineOfSightGetLineOfSightget_line_of_sight,
hom_mat3d_rotatehom_mat3d_rotateHomMat3dRotateHomMat3dRotateHomMat3dRotatehom_mat3d_rotate,
hom_mat3d_translatehom_mat3d_translateHomMat3dTranslateHomMat3dTranslateHomMat3dTranslatehom_mat3d_translate,
hom_mat3d_inverthom_mat3d_invertHomMat3dInvertHomMat3dInvertHomMat3dInverthom_mat3d_invert,
affine_trans_point_3daffine_trans_point_3dAffineTransPoint3dAffineTransPoint3dAffineTransPoint3daffine_trans_point_3d
Modul
Foundation