手眼标定 ========================================== Max提供的手眼标定方式有两种,一种是相机在机械臂上,另一种是相机固定在场景。 - 相机在机械臂上,即眼在手上(eye on hand)。在这种标定方式中,相机被固定于机械臂末端法兰上,相机与机械臂法兰的相对位置是固定的。 - 相机固定在场景,即眼在手外(eye to hand)。在这种标定方式中,相机被安装在机械臂外的一个固定位置,或者安装在滑轨上,可在若干个固定位置之间移动。 下面将详细介绍两种标定方法在Max中的使用步骤。 在 :guilabel:`视觉` 界面中打开 **加载标定信息** 模块,在界面最右边 :guilabel:`3D标定设置` 区域中 **相机标定** 页签下,单击 :guilabel:`新建标定数据` 开始标定,如下图。 .. image:: img/camandtote.png :align: center :width: 500px 1. 设置标定方法。 .. image:: img/calimethod.png :align: center :width: 500px a. 设置 **应用场景** ,根据实际情况选择 **眼在手上** 或 **眼在手外**。 b. 设置 **标定算法**,根据实际情况可选择 **标准**、**触碰** 或 **间接**。本章以标准标定算法为例。 c. 选择 **操作方式**,根据实际情况选择 **自动** 或 **手动**,一般推荐自动标定的方式,方便快捷。 d. 根据实际情况设置机械臂轴数。若选择4轴机械臂则还需设置 **法兰盘Z轴偏置** ,该值需手工测量,然后在界面中设置。 2. 标定设置。 .. image:: img/camcali.png :align: center :width: 550px a. 单击 :guilabel:`选择` ,根据需要选择标定板类型,再单击 :guilabel:`确认并返回` 即可。 .. image:: img/cliplate.png :align: center :width: 450px b. 根据实际情况以及工作空间大小设置旋转角度,一般建议为10~30度。该参数仅自动标定需要设置。 c. 根据实际需求设置标定延迟时间,一般设置1~3秒即可。 d. 设置 **X/Y方向移动距离** 和 **Z方向移动距离**,设置每次在各方向上的移动距离。 .. hint:: **X/Y方向移动距离** 仅针对四轴机械臂,六轴机械臂不需要配置该参数。 e. 单击 :guilabel:`注册`,可实时读取当前机械臂末端位姿,完成位姿注册,初始位姿会在下面显示。也可单击页签右下角的 :guilabel:`移动机械臂到初始位姿`,使机械臂回归到初始位姿。 .. hint:: 注册前请先连接机械臂,否则无法读取机械臂位姿。 f. 单击 :guilabel:`生成标定位姿` 开始自动标定。 3. 标定数据。 a. 在 **标定数据** 页签中单击 :guilabel:`开始`,机械臂会根据设定旋转角、标定延迟等参数自动完成标定,并在进度条实时显示标定进度。 .. hint:: 若选择手动的标定方式,则需要使用示教器将机械臂移到不同的位置,并手动输入相应点的位姿数据。每输入一组数据单击一次 :guilabel:`标定`,进度条会实时显示标定进度,直到完成所有数据的输入。 b. 若对标定过程不满意,可单击 :guilabel:`重置标定进度`,重新开始标定。当有效点达到8个时,即可计算标定结果。 .. image:: img/handeye1.png :align: center :width: 450px c. 单击 :guilabel:`计算标定结果`,则显示相机位姿、角度、标定误差等信息。 .. image:: img/excali.png :align: center :width: 450px d. 在“标定数据”表格中会显示标定的点的误差,若误差较大可以单击 :guilabel:`编辑`,弹出 :guilabel:`编辑标定数据` 窗口,更新位姿数据减小误差。然后单击 :guilabel:`使用该位姿`,窗口关闭,系统会重新计算并更新标定结果。 .. image:: img/excali2.png :align: center :width: 450px e. 单击 :guilabel:`下一步` 开始检查标定结果。 4. 检查标定结果。 a. 在 **标定结果** 页签中查看相机位姿、角度、标定误差等信息。同时单击问号图标,可查看标定结果的解释说明。 .. image:: img/excali3.png :align: center :width: 650px b. 单击 :guilabel:`可视化结果`,在彩色图中观察投影点重合度,重合度高则标定结果好。检查结果时,按【Ctrl】键滑动鼠标滚轮,可放大图片。 .. image:: img/result2.png :align: center :width: 350px c. 在 **点云标定** 页签中选择 **点云标定**,开始点云标定的步骤。若无需标定点云,则单击 :guilabel:`完成` 即可结束相机标定。 .. hint:: - 在标定的图像结果中,红色点是视觉识别得到的点,绿色点是计算出来的理论值,两种点重合的部分显示为黄色。重合度越高、黄色部分越大表示标定结果越好。 - 在3D视图中,当坐标系原点在标定板顶点,X轴和Y轴分别与该顶点两条邻边重合,且Z轴垂直于标定板平面向上时,标定结果较好。 5. 点云标定。 .. image:: img/27p.png :align: center :width: 450px a. 点云标定的参数设置及方法请参照前文步骤2~4。进行点云标定时,根据实际情况设置 :guilabel:`X/Y方向移动距离` 和 :guilabel:`Z方向移动距离`,其余步骤和前面相同。 .. hint:: 点云标定用于校准相机深度(z)方向上的精度,在能自动标定的情况下,一定要选择点云标定。 b. 单击 :guilabel:`下一步`,检查点云标定结果。 6. 检查点云标定结果。 .. image:: img/cloudcheck.png :align: center :width: 450px a. 在 **标定结果** 页签中查看相机位姿、角度、标定误差等信息。 b. 单击 :guilabel:`可视化结果`,可在彩色图中观察投影点重合度,重合度越高则标定结果越好。 .. image:: img/cloudresult.png :align: center :width: 350px c. 单击 :guilabel:`完成` 结束相机标定。 手眼标定完成后还需要进行工作空间标定,请参见 :doc:`workspace`。