ZIVID彩色相机——真实性测试:气球与图钉

完全集成的 2D 和 3D 数据归功于 3D 点云带有完整的 RGB 图像。 在 2D 图像中找到描述特征的像素后,可以直接将其与相同像素的 3D 数据相关联。 所有这些信息都可以由 Zivid 彩色相机提供,因此只需一台设备即可查看完整的工作。

从同一传感器传送所有场景信息可简化系统的整体设置。 例如,无需将外部 2D 彩色相机校准到与 3D 相机相同的坐标系。 所以,机器人安装任务变得简单,可获得所需的所有信息,并在所需环境中灵活成像。且动态放置相机可以获得场景的最佳成像位置。

今天向您展示一种有趣的方式来探索数据与高质量 3D 点云相结合的实用性。

第 1 步:构建检测框架

图 1:带有深度着色的气球点云

开始构建系统,我们将专注于检测方面。 第一个目标是在 2D 图像中找到气球。 并没有尝试为此任务构建一个完整的检测算法,而是采用一种相当基本的方法来检查场景中的颜色值。 场景中的每个像素都有一个指定的 R、G、B 值。 这些中的每一个都有一个介于 0-255 之间的值,比较这些值可以指示像素具有哪种颜色。 这是一种相当粗略的方法,但是可以接受的。 颜色值应按预期分布:


红色:R > 200,G < 50,B < 50
绿色:R < 80,G > 200,B > 60
蓝色:R < 10,G < 80,B < 100
黄色:R > 200,G > 200,B < 50

图 2:气球四种颜色的 2D 彩色图像。

创建一个与原始图像大小相同的二进制掩码。 1 值表示条件语句为真的区域,0 表示颜色为假的区域,这显示为寻找下面的蓝色气球。

使用 OpenCV,我们可以对位掩码进行一些边缘检测,找到最大的黄色部分的轮廓并将其填充,显示我们找到气球表面的位置。 这个区域是目标点位置的地方。 下一步将是找到正确的进场方向。

图 4:检测到的气球表面带有青色的 2D 图像。

借助 Zivid 彩色相机提供的数据,我们可以在不做任何额外工作的情况下找出有关点云中每个点的大量信息。 现在我们有了想要触摸的点的 XYZ 位置,我们可以找到该点的接近方向。 为此,我们可以使用 Zivid SDK 提供的表面法线向量,并将其用作目标方向的 Z 轴,以创建可以驱动机器人到达的接近目标。 这一步要记住的一个关键部分是机器人将要接近的目标的 X 和 Y 方向。

图 5:模拟捕获显示围绕 Z 轴的两个不同姿势方向。

对于我们的案例,最佳做法是将 X 和 Y 方向对齐,使其与机器人的当前位置和方向相似。 这使我们能够将摄像头保持在机器臂上侧,并降低导致电缆拉伤或与机器人发生任何碰撞的风险。 由于相机与地板平行,因此可以参考相机坐标系来帮助定义触摸姿势的 X 和 Y 向量。

在选取点的一侧选择一个点,以帮助定义用于定义姿势的帮助向量。 然后我们可以对该向量进行归一化,并使用帮助向量和 Z 向量的叉积来定义 y 向量。 现在有相互垂直的 Y 和 Z 向量,可以使用通过叉积来找到位姿的最终 X 向量。 使用这三个向量,我们可以定义 4x4 齐次变换的旋转矩阵。

图 6:3D 渲染上目标姿势可视化的屏幕截图

第 2 步:手眼标定

为了从系统中获得最佳精度,通过使用手眼校准找到从相机帧到末端执行器帧的转换是绝对必要的。安装时的任何小角度或变化都可​​能导致与 CAD 图纸的输出截然不同。 Zivid 彩色相机具有 API 支持以及 CLI 工具,可用于在手眼和手眼设置中执行手眼。本次使用的校准目标是 ZVD-CB01 校准目标。此目标用于手眼和内场校正。为了在您的设置中获得最佳性能,建议在执行手眼标定之前执行内场校正。

每次相机被碰撞、敲击或从进行手眼的位置移开时,都必须再次进行手眼标定。安装连接中的微米级移动或几分之一度的变化就会引起手眼变换。所以,遵守数据表中提供的 Zivid 安装硬件推荐的密封性指南非常重要

第 3 步:使用手眼标定

从手眼标定返回的变换是 4x4 齐次变换矩阵的形式。这将用于该项目数学中的所有转换的格式。手眼变换可以与拾取点 4x4 矩阵相乘,将点位置转换为末端执行器框架,然后可以通过将其与机器人的位姿相乘将其转换为机器人基础框架,也可以作为 4x4转换。这会将 TCP(工具中心点)需要移动到的点放置到基础框架中,然后机器人可以被驱动到该点。有了这个,你就有了一个气球触摸机器人!

使用 Zivid 相机,可以简化任务以查找和定位环境中的重要的内容。我们的主要目标之一是尽可能地简化过程。如果您对如何与 Zivid SDK 交互有任何其他疑问,请联系美城工作人员,还可以提供技术支持。
 

2022年5月9日 14:13