生产准备过程
我们在 Zivid SDK 中有多个流程和工具可帮助您设置好系统并为生产做好准备。我们建议在部署之前进行的必要的操作包括:
预热
现场标定
手眼标定
我们可以通过执行这些流程模仿生产条件来优化相机的工作温度、距离和 FOV 。其它可能帮助您减少生产过程中的处理时间从而最大限度地提高抓取率的工具包括:
下采样
坐标系转换和ROI盒过滤
机器人标定
在开始生产之前,您应该确保您的机器人经过良好校正,并展现出良好的定位精度。关于何如进行机器人运动学校正和机器人校正零点的信息,请联系您的机器人供应商。
预热
对Zivid 3D相机进行预热并达到热平衡,可以提高应用的整体准确性和成功率。如果应用有着严格的公差要求,则建议使用此方法,例如,距离相机每米距离的公差<5毫米的3D抓取应用。使用预热过的相机进行现场标定和手眼标定能够获得更好的结果。
如需对您的相机进行预热,您可以运行我们的代码示例,您需要输入循环时间和相机设置路径。
示例: warmup.py
python /path/to/warmup.py --settings-path /path/to/settings.yml --capture-cycle 6.0
如需了解为什么需要预热以及如何使用SDK进行预热,请阅读 预热 。
小技巧
如果您的相机长时间不触发拍照(持续时间超过 10 分钟),则保持 Thermal Stabilization(热稳定功能) 处于启用状态非常有益。
现场标定
现场标定是一个维护工具,可用于验证和校正Zivid相机的尺寸准确度。用户可以检查视场 (FOV) 中不同区域的点云的尺寸准确度,并确定验证结果是否符合您的应用要求。如果发现验证结果对于应用来说不够准确,则可以执行校正以增加点云的尺寸准确度。多次测量的平均尺寸准确度误差的预期值接近于零 (<0.1%)。
为什么这是必要的?
我们的相机被设计为可以在工业工作环境中工作并持续输出高质量的点云。然而,与大多数高精密电子仪器一样,有时可能需要进行一些调整以确保它们能够一直保持最佳性能。当相机在其环境中经历重大改动或繁重的装卸时,可能需要进行校正才能在新的设置中以最佳状况执行工作。
如果您第一次进行这些操作,请阅读有关 现场标定 的更多信息。
进行现场验证时,需要确保料箱顶部和底部的尺寸准确度都是良好的。对于相机安装在手臂上的应用,在进行现场验证时,将机器人移动到捕获位姿。如果验证结果良好,则无需运行内场校正。
当需要进行现场标定时,覆盖整个工作立体区域可以获得最佳的结果。这意味着需要将 Zivid calibration board 先后放置给定距离处的多个不同位置执行校正,并在不同的拍照距离重复以上操作,在这个过程中,请确保整个标定板一直都在相机的 FOV 中。在均匀分布在整个工作区域内位置放置标定板并进行标定。您可以查看 进行现场标定的准则 来了解更多信息。
如需在相机上运行现场标定的验证和/或校正功能,您可以使用:
Zivid Studio
CLI 工具
SDK
小技巧
如果您是第一次使用现场标定,我们建议使用 Zivid Studio。
查看 运行现场标定 以获得有关运行现场校正的分步指南。
手眼标定
下表列出了我们根据您的目标和需求推荐的手眼标定工具。有关这些工具及其功能的详细说明,请参阅 如何运行和集成 Zivid 手眼标定 。
目标 |
推荐工具 |
|---|---|
引导式、无代码工作流程 |
|
最小集成示例 |
|
现有数据集 |
|
任何机器人 |
|
UR 机器人 |
|
使用 HALCON |
|
使用ROS |
完成手眼标定后,您可能需要验证生成的变换矩阵是否正确且符合精度要求。我们建议您使用机器人进行触碰测试,这是一项物理测试,需要使用末端执行器进行验证。相关详细步骤,请参阅教程 任意机器人 + RoboDK + Python:通过触碰测试验证手眼标定结果 。
其他选项请参阅 如何验证手眼标定 页面。
色彩平衡
SDK 具备调整红、绿、蓝三色通道色彩平衡值的功能。但是,如 基于场景立体空间要求的相机选择器 中所述,推荐用于(拆)码垛应用的相机本身就具有色彩平衡功能。即使环境光强度很高且并非纯白色,对彩色图像的 RGB 值的影响也微乎其微。因此,您无需在相机上运行额外的色彩平衡算法。
下图显示了使用 Zivid 2+ MR130 在不同环境光照条件下捕获的 2D 彩色图像的细节。
300 LUX |
1000 LUX |
2000 LUX |
|
3200K |
|
||
5000K |
|||
6500K |
|||
如果您发现 彩色图像中出现随机的绿色或粉色导等颜色异常的现象 ,请选择与您所在地区电网频率(50 Hz 或 60 Hz)相匹配的预设。
ROI 盒过滤
相机视野通常比我们的 感兴趣区域 (ROI) 大。为了优化数据处理,我们可以在托盘周围设置一个 ROI 框,并据此裁剪点云,仅保留托盘上的内容。ROI 框过滤不仅可以减少捕获时间,还可以减少算法使用的数据点数量,从而提高其速度和效率。
小技巧
点云越小,捕获速度越快,从而可以加快检测速度并缩短总拾取周期时间。
如需了解实施示例,请查看 通过棋盘格定义的ROI盒 。该教程展示了如何使用 Zivid calibration board 根据相对于棋盘格给定的ROI盒来过滤点云。
示例和表现
这是一个使用低端 PC(搭载 Intel Iris Xe 笔记本电脑集成显卡 和 1G 网卡)进行大量点云处理的示例,其中 ROI 框过滤方法对提升效率很有益处。
想象一下,一个机器人正在从一个尺寸为 600 x 400 x 300 毫米的料箱中拣选物品,料箱顶部固定安装了一台 Zivid 2+ MR130 相机。为了保证机器人有足够的活动空间,相机安装在距离料箱顶部 1700 毫米的位置,视野范围约为 1000 x 800 毫米。由于相机安装在这个距离,视野的大部分区域位于 ROI 区域之外,因此可以从两侧各裁剪掉约 20% 到 25% 的像素列/行。如下表所示,通过 ROI 区域框选,可以显著缩短捕获时间。
预设值 |
采集时间 |
捕获时间 |
||
|---|---|---|---|---|
未设置 ROI |
设置了 ROI |
未设置 ROI |
设置了 ROI |
|
Consumer Goods Quality |
0.15 s |
0.15 s |
0.9 s |
0.35 s |
下采样
备注
选择一个包含下采样选项的预设值。但是,为了理解这意味着什么,请参阅 Sampling(采样) - 3D 。
有些应用不需要高密度点云数据。例如,通过将平面拟合到盒子表面来进行盒子检测以及 CAD 匹配,其中对象具有独特且易于识别的特征。此外,对于机器视觉算法来说,这样的数据量通常太大,无法以应用程序所需的速度进行处理。点云下采样正是在此类应用中发挥作用。
在点云领域,下采样(Downsampling)是指在保持相同三维表征的前提下,降低空间分辨率。它通常用于将数据转换为更易处理的规模,从而减少存储和处理需求。
使用 Zivid SDK 对点云进行下采样有两种方法:
通过设置
Settings::Processing::Resampling( Resampling(重采样) )实现,这意味着它是通过捕获设置进行控制的。通过 API
PointCloud::downsample实现。
这两种方法都对点云应用了相同的操作。通过 API 的方法,您可以选择就地下采样或使用下采样数据获取新的点云实例。
下采样可以就地完成,该功能会修改当前的点云。
也可以将下采样点云作为新的点云实例,这样就不会改变现有的点云了。
Zivid SDK 支持以下下采样率 by2x2 、 by3x3 和 by4x4 ,支持多次执行下采样操作。
要对点云进行下采样,您可以运行我们的代码示例:
示例: downsample.py
python /path/to/downsample.py --zdf-path /path/to/file.zdf
如果您没有ZDF文件,则可以运行以下代码示例。它将使用您的设置来捕获Zivid点云,并保存到文件中。
示例: capture_with_settings_from_yml
python /path/to/capture_with_settings_from_yml.py --settings-path /path/to/settings.yml
如需阅读有关下采样的更多信息,请访问 下采样 。
祝贺您已经阅读完关于将您的(拆)码垛系统投入生产的准备工作中的所有与Zivid有关的内容了。接下来的章节是 维护 ,里面包含了我们建议执行的所有流程,以确保(拆)码垛单元能在最小停机时间的情况下保持稳定运行。
