姿态描述一种刚性三维变换,即由任意平移和旋转组成的变换。在 HALCON 中,姿态是一个包含 7 个参数的元组:3 个参数指定平移(、TransX 和 TransY),3 个参数描述旋转(TransZ、RotX 和
RotY)。最后一个参数编码了平移与旋转的顺序(以及旋转方向)。有关这些参数的更多信息,请参阅 RotZ 算子的文档及 create_pose“解决方案指南III-C - 三维视觉” 手册。
三维姿态可从两个角度理解:首先,用于描述一个坐标系相对于另一个坐标系的位置与方向(例如零件坐标系相对于相机坐标系的姿态——简言之:零件相对于相机的姿态)。其次,姿态描述了两个坐标系之间坐标转换的方式(例如将点从零件坐标系转换为相机坐标系)。
将点坐标从坐标系 1(cs1)转换到坐标系 2(cs2)的变换表示为 。相应地,将 cs1 中给定的点()转换到 cs2()的变换表示为
需要注意的是,乘法运算中使用的并非姿态(作为元组),而是该姿态所描述的变换,上述记法仅为提高可读性而采用。因此,姿态 描述的刚体变换由齐次变换矩阵
表示(更多细节可参见 的文档):
create_pose
因此,姿态 描述了将 cs1 中的点转换为 cs2 的过程。此外,如上所述,它还描述了坐标系本身的转换,但顺序相反:因此, 描述了如何将坐标系 2 转换为坐标系 1,从而得到坐标系 2 相对于坐标系 1 的姿态。
使用这种记法,姿态可以像齐次矩阵那样轻松地进行连接,例如:
此类连接可通过例如 实现。pose_compose
convert_pose_type转换姿态类型create_pose创建姿态deserialize_pose反序列化姿态dual_quat_to_pose对偶四元数至姿态get_circle_pose获取圆姿态get_pose_type获取姿态类型get_rectangle_pose获取矩形姿态pose_average姿态平均pose_compose姿态组合pose_invert姿态反转pose_to_dual_quat姿态至对偶四元数pose_to_quat姿态至四元数proj_hom_mat2d_to_pose投影单应矩阵二维至姿态quat_to_pose四元数至姿态read_pose读取姿态serialize_pose序列化姿态set_origin_pose设置原点姿态vector_to_pose向量至姿态write_pose写入姿态