标定结果检查与分析

对于标定完成的外参数据,需要对其检查,并判断标定精度是否满足要求。如果误差超出正常范围,需要定位造成误差的原因,解决问题后,再重新标定,直至获得符合要求的外参。

查看标定结果

点云视图中查看误差点云

计算相机参数 步骤界面中,标定结果计算完成后, 点云视图 面板会显示误差点云,如下图所示。误差点云用于显示每个标定位姿上标定板圆点真实值与计算值之间的偏差。

../../../_images/error_point_cloud1.png

误差点云的颜色表示对应点的误差等级(每 0.5 mm 一个误差等级),由绿到红颜色越深表示该点的误差越大。

要查看每个误差等级的点,在 点云视图 面板,在英文输入法状态下按下数字键 0~9。软件会高亮点云中相应误差等级的点(按键 0 对应误差小于 0.5 mm 的点,按键 1 对应误差在 0.5 mm 至 1 mm 之间的点,依此类推)。

下图展示误差小于 0.5 mm 的数据点(按下数字键 0)。

../../../_images/check-errorpointcloud1.png

下图展示误差在 2.0~2.5 mm 的数据点(按下数字键 4)。

../../../_images/check-errorpointcloud2.png

场景视图或 Mech-Viz 中查看机器人的点云与机器人模型的重合度

你也可以通过在场景视图或 Mech-Viz 中查看机器人的点云与机器人模型的重合度来像粗略判断标定结果,具体如下:

对于 ETH 场景下得到的外参计算结果,将机器人移动到相机视野下方,通过场景视图或 Mech-Viz 软件查看拍摄的机器人点云。理想状态下,机器人的点云应当与机器人模型大致重合,如下图所示。(注意机器人模型与真实机器人外观可能不完全吻合,不能作为微调外参的依据。)

../../../_images/coincidence_degree.png

对于 EIH 场景下得到的外参计算结果,可以将标定板放置在固定位置,令机器人多次变换相机位姿对标定板拍照,观察标定板点云相对机器人基坐标是否有明显偏移。如下图所示。

../../../_images/plate_point_cloud.png

注意

在 EIH 场景下,在未连接机器人的状态下不能实时获取机器人位姿,需要填写机器人当前拍照点位姿才能准确查看在场景视图或 Mech-Viz 中显示的点云。

标定结果分析

标定结果评价指标

对于标定好的外参数据,需要对其进行判断是否满足精度要求。点云误差参考标准如下:

  • 一般工程场景,要求所有数据点误差小于 3 mm,即 < 3 mm 误差的点达到 100%。

  • 高精度场景,要求所有数据点误差小于 2 mm,即 < 2 mm 误差的点达到 100%。

  • 码垛场景,要求所有数据点误差小于 5 mm,即 < 5 mm 误差的点达到 100%。

上述标准仅供参考,具体要求以实际生产中的工程精度要求为准。

影响标定精度的因素

对于标定好的外参数据,如果精度没有达到要求,需要寻找产生误差的原因,请按如下顺序逐一排查标定数据,检查造成问题的原因。

检查标定数据有无问题

标定数据指标定时产生的 标定点 的数据,其存放在相机编号文件夹下的 calib_data.json 文件中,该文件记录了标定点的法兰位姿,标定圆 数据等。

要查看标定点数据,执行如下步骤:

  1. 打开 Mech-Vision 软件,在工具栏上单击 相机标定(标准) 按钮。 标定预配置 窗口将弹出。

  2. 选择如何标定 窗口,选择 加载已有标定参数 单选框,选择标定参数文件,然后单击 下一步 按钮。

    ../../../_images/load_existing_calib_params.png
  3. 选择标定配置应用方式 窗口,选择 标定当前加载的相机 单选框,然后单击 下一步 按钮。

    ../../../_images/load_existing_calib_params_2.png
  4. 选择标定任务 窗口,选择 重新计算外参 单选框,勾选 加载标定数据 单选框,然后单击 开始标定 按钮。

    ../../../_images/load_existing_calib_params_3.png
  5. 在标定的 计算相机参数 步骤,在 标定图像及位姿列表 面板中选中一个标定点(例如 pose_000),单击 标定圆信息 面板查看标定点的法兰位姿以及标定板上标定圆的数据。

    ../../../_images/check_calib_circle_data.png

注解

图中,X (pixel) 和 Y (pixel) 列代表标定板在当前标定点的 2D 图中所有标定圆的圆心像素坐标;Camera frame: X(m)/Y(m)/Z(m)列代表标定板在当前标定点的深度图中所有标定圆的圆心在相机坐标系下的坐标。

从如下三个方面对标定点数据进行检查:

  1. 检查走金字塔路径的标定点的法兰位姿中欧拉角前后是否发生变化。

    注解

    注意只是走金字塔的标定点,不包括旋转的标定点。该检查仅适用于使用标定板多个随机位姿方法采集标定数据的标定场景。

    标定图像及位姿列表 面板中依次选中一个标定点(例如 pose_000),然后单击 标定圆信息 选项卡查看标定点的法兰位姿。走金字塔路径时,机器人会沿着自身基坐标系或法兰坐标系移动,不存在旋转,因此欧拉角会基本保持一致。

    对于不同机器人,根据其精度不同,位姿存在上下浮动。如果浮动超过 1 度以上,则机器人本身零点可能丢失,或者机器人精度较差。

    解决办法:此时不适合手眼标定,应当检查机器人零点(可以使用重定位的方法检验机器人零点是否准确)并修复机器人问题才能继续标定。

  2. 检查标定点“平均标定圆间隔测量值误差”是否超出标准值

    标定图像及位姿列表 面板选中标定点,在下方消息框中查看 平均标定圆间隔测量值误差

    注解

    当其超出误差上线标准,标定点会变成黄色警告。 平均标定圆间隔测量值误差 作为内参检查结果的一部分,可部分反映当前相机内参的误差值。

    ../../../_images/check_instrinc_and_point_cloud_error.png

    解决办法:对于精度要求不高的场合,轻微超出标准值的内参仍旧可以用。但对于高精度或误差较大的情况,建议重新标定相机内参或返厂替换相机。

    注解

    内参的误差会影响标定结果,一般内参误差在标准值内时,基本没有问题。

  3. 检查标定点“标定圆点云波动”的最大值是否超出 3 mm

    标定图像及位姿列表 面板选中标定点,在下方消息框中查看 标定圆点云波动标定圆点云波动 统计了在当前标定点时标定板所有标定圆圆心坐标拟合在一个平面上的上下波动,其值的大小会直接影响外参的精度。

    ../../../_images/check_instrinc_and_point_cloud_fluctuation.png

    精度要求越高,要求点云波动值越小。一般设定最大值不超过 3 mm。当超过三个标定点的点云波动的最大值大于 3 mm 时,表明整体精度无法保证。应当排除问题再次标定。

    影响标定圆点云波动的可能原因有:

    原因一:相机 3D 曝光参数没有调节好,点云波动比较大,没有开启 点云平滑点云去噪 功能,或者打开了 相机增益

    解决办法:开启 点云平滑点云去噪 功能,关闭 相机增益,调整3D曝光。如果标定板上圆点点云仍旧残缺,需要现场遮光处理。

    原因二:在 ETH 场景下进行自动标定时,标定板在机器人法兰末端固定不牢固。标定时机器人移动速度过快,导致相机拍照时标定板存在抖动,使得点云波动很大。

    解决办法:调低机器人移动速度,加固标定板,并延长相机拍照等待时间。

重新计算补偿参数

补偿参数指的是针对标定区域进行区块划分计算的参数值,一般在相机出厂时会根据相机实际最大工作范围标出该参数值。

注解

由于实际现场标定条件与相机出厂时标补偿参数时存在不一致,故可能存在出厂补偿参数不适用的现象。

按上述顺序逐一排查标定数据并确认没有问题,但结果仍旧不理想时,可以重新计算补偿参数。

要重新计算补偿参数,在标定的 计算相机参数 步骤,勾选 重新计算补偿参数 复选框,然后单击 计算相机外参 按钮。

../../../_images/calculate_compensate_params.png

注意

在重新计算相机参数前,请备份原来的 extri_param.json 外参文件,并将其备注为出厂补偿参数。