1. 机器人位姿定义:
1.1 如果机器人是abg位姿类型, 通过create_pose算子将数据转换为位姿,旋转矩阵链如下:
[x,y,z,RX,RY,RZ]
1.2 如果机器人是gba位姿类型, 通过create_pose算子将数据转换为位姿,旋转矩阵链如下:
1.3 如果机器人是zyz位姿类型,则不能使用create_pose,必须创建相应的齐次变换矩阵,并使用hom_mat3d_to_pose将其转换为位姿。
1.4位姿的由来
H即齐次变换矩阵,它表示一个坐标系转为另一个坐标系要经过哪些旋转与平移。
t表示平移向量。
当位姿里面的旋转链顺序是gba时:
这里可以看到,3D位姿的可读性要比上面的齐次变换矩阵可读性要更好,
虽然两者表达的意思是一致的。
当位姿里面的旋转链顺序是abg时:
2. 每个校准图像,必须指定机器人相应位姿。
位姿的准确性对于获得准确的手眼校准至关重要;
3. 有两种方法向halcon程序输入位姿
一种是直接向halcon程序手动输入机器人的位姿,另一种是从机械手控制单元里读取位姿到halcon程序;
示例:机械手位姿创建
dev_update_off () * directory for pose files: adapt to your needs DataNameStart := './robot_pose_' i := 0 dev_close_window () * let user specify pose type input_pose_type (PoseType) * create poses interactively CreateNextPose := 'true' while (CreateNextPose == 'true') input_pose (PoseType, Pose) write_pose (Pose, DataNameStart + i$'03d' + '.dat') i := i + 1 ask_yes_no ('Create another pose?', 'YES', 'NO', CreateNextPose) endwhile

