缸体与缸盖¶
本节提供缸体与缸盖方案的使用指导,该方案概览如下。
工件 |
有序摆放的发动机缸体、缸盖 |
工作距离 |
1500~2000mm 或 2000~2500mm |
技术指标 |
识别定位精度:±2mm |
识别成功率:大于 99% |
|
视觉系统耗时:小于 4s |
方案介绍¶
下文将从适用场景、技术指标方面介绍该方案。
适用场景¶
本节将从工件、载具、光照条件方面介绍该方案的适用场景。
缸体工件¶
缸体工程对缸体的适用情况如下表所示。
缸体特征 |
适用/不适用情况 |
图示 |
来料方式 |
适用于有序摆放的发动机缸体,上表面结构简单,边缘清晰 |
|
不适用于上表面结构复杂的缸盖 |
||
形状尺寸 |
适用于上表面为平面的类长方体/异形体工件 |
|
材质 |
铸铁、铸铝 |
|
反光性/点云质量 |
适用于存在一定程度反光的工件 |
|
工件上表面边缘质量良好,不能有明显缺失 |
||
码放方式 |
适用于单层/多层有序码放 |
缸盖工件¶
缸盖工程对缸盖的适用情况如下表所示。
缸盖特征 |
适用/不适用情况 |
图示 |
来料方式 |
适用于有序摆放的发动机缸盖 |
|
不适用于圆环缸盖 |
||
形状尺寸 |
适用于上表面为平面的类长方体/异形体工件 |
|
材质 |
灰铸铁、合金铸铁 |
|
反光性/点云质量 |
适用于存在一定程度反光的工件 |
|
工件上表面点云质量良好,不能有明显缺失 |
||
不适用于点云存在明显缺失的工件 |
||
码放方式 |
适用于单层/多层有序码放 |
载具¶
该方案对载具的适用情况如下表所示。
载具特征 |
适用/不适用情况 |
图示 |
载具类别 |
推荐使用托盘载具 |
|
也可使用料筐,但需特别注意避免料筐与夹具发生碰撞 |
||
筐壁工况 |
适用于金属筐壁、金属网筐壁 |
|
不适用筐壁反光和塑料膜干扰的情况 |
||
筐壁变形情况 |
若不进行动态料筐检测,则允许筐壁变形 |
|
隔板工况 |
适用于塑料隔板、透明隔板,或有油印压痕的隔板 |
|
不适用于变形的隔板 |
||
点云质量 |
适用于隔板特征点云良好的载具 |
工程规划¶
布局¶
缸体工作站布局¶
缸体工作站布局如下图所示。其中,1 处为缸体在辊道线上的来料位置,箭头方向为辊道线方向;2 处为缸体在辊道线上的下料位置;3 处为反转清洁平台。
该工作站内的工作流程如下:
缸体到达辊道线上的来料位置后,机器人触发相机识别缸体。
视觉引导机器人抓取辊道线上的缸体,并放置到翻转清洁平台上进行清洁作业。
作业完成后,机器人抓取缸体工件放置回辊道线上的下料位置。
重复以上流程。
缸盖工作站布局¶
缸盖工作站布局如下图所示。其中,1 处为缸盖来料垛位;2 处为二次定位平台;3 处为加工机台;4 处为缸盖下料垛位。
该工作站内的工作流程如下:
当来料的缸盖被运送到指定位置后,上位系统告知机器人缸盖来料信息,机器人触发相机拍照,识别缸盖。
视觉引导机器人抓取托盘上的缸盖,并放置到加工机台前的二次定位平台进行定位。
二次定位后,机器人再次抓取工件至机台内加工。
单层缸盖抓取完成后,机器人触发相机识别来料垛位隔板和下料垛位中心,视觉引导机器人抓取隔板放置到下料垛位。
机台加工完成后,机器人抓取加工完成的缸盖放置到下料垛位。
重复以上流程,直至来料垛位的缸盖抓取完成。
视觉系统硬件组成¶
推荐型号 |
说明 |
|
相机 |
Pro M Enhanced |
推荐安装方式:Eye-to-Hand;工作距离:1500~2000mm |
LSR L |
推荐安装方式:Eye-in-Hand;工作距离:2000~2500mm |
|
工控机 |
标准机型,无 GPU (Q6AMV-B-1A1) |
处理器:CPU I5-12400 |
内存:16G DDR4 |
||
硬盘:256G SSD |
||
电源:DC24V 7.5A |
||
系统:正版 Windows 10 21H1 版本 |
||
WIFI 模块 |
机器人夹具¶
夹具说明: 常用夹具有三种,分别为内撑式夹具、抱夹式夹具、侧夹式夹具。由于缸体工件上表面一般有孔,所以推荐使用内撑式夹具。缸盖项目推荐使用抱夹式夹具。
夹具设计注意事项:
缸体缸盖工件一般较重,需保证夹具整体强度及刚性较好。
如果夹具含有插销、定位销,一方面,定位销与销孔的间隙要适中,且抓取工件时不能只靠定位销,需要有更稳定的夹持装置;另一方面,定位销强度要高,并且需加大定位销倒角,起到引导定位的作用。
夹具抓取或者放置工件时,应避免与旁边的工件发生碰撞。
内撑式夹具¶
内撑式夹具如下图所示。
夹具说明: 内撑式夹具通过气缸/伺服电机控制内撑夹爪,撑住缸体圆孔。
夹具优势:
可适应多种尺寸工件。
可兼容更大的抓取偏差,抓取成功率更高。
机器人端 TCP 设置简单,可便捷地添加示教抓取点。
夹具缺点:
不适用于重量过大,或中间圆孔较小的工件。
抓取和定位精度不够高。
抱夹式夹具¶
抱夹式夹具如下图所示。
夹具说明: 抱夹式夹具可通过气缸/伺服电机控制夹爪夹持工件底部,完全包裹住工件。
夹具优势:
抓取精度一般要求在 ±2mm 左右,允许存在一定的抓取偏差,抓取稳定性较好。
机器人端 TCP 设置简单,可便捷地添加示教抓取点。
夹具缺点:
抓取和定位精度不够高,对于放置精度要求高的项目可能达不到精度要求。
侧夹式夹具¶
侧夹式夹具如下图所示。
夹具说明: 通过视觉识别工件上表面,从工件侧面进行抱夹。需将夹具的定位销插到工件对应的侧面销孔内。
夹具优势: 抓取和定位精度更高。
夹具缺点:
机器人端示教操作较复杂。
由于只靠定位销来夹持工件,定位销受力较大,稳定性不够好。
对精度要求很高,一般在 ±0.5mm 以内,典型工程较难达到此要求,需根据现场拍照距离和工件情况评估该夹具的适用性。
提示
如果采用侧夹式夹具,建议夹具插销和工件侧面销孔留 ±1mm 左右的余量。
视觉相关¶
通信方式¶
推荐使用标准接口通信方式。
一、切换 Mech-Vision 配方 |
|||
机器人 -> 工控机 |
请求指令 |
Mech-Vision 工程编号 |
配方编号 |
103 |
Mech-Vision 工程列表中工程名左侧的数字 |
1~99 |
|
示例 |
103, 1, 2 |
||
工控机 -> 机器人 |
返回指令 |
状态码 |
|
103 |
1107:配方切换成功 1012:Mech-Vision 配方编号不存在 |
||
示例 |
103, 1107 |
二、启动 Mech-Viz 工程 |
|||
机器人 -> 工控机 |
请求指令 |
位姿类型 |
机器人位姿 |
201 |
0:不发送位姿 1:传入 Mech-Viz 的位姿为关节角及法兰位姿形式 2:机器人端自定义的关节角 |
机器人当前关节角及法兰位姿(若“位姿类型”为 1) |
|
示例 |
201, 1, 0, -20.632, -107.812, 0, -92.818, 0.003 |
||
工控机 -> 机器人 |
返回指令 |
状态码 |
|
201 |
2103:执行正常 2008:工程运行错误 …… |
||
示例 |
201, 2103 |
三、选择 Mech-Viz 分支 |
|||
机器人 -> 工控机 |
请求指令 |
分支步骤编号 |
出口号 |
203 |
该参数应为正整数,用于指定分支选择将在哪个步骤上进行 |
该参数为正整数,该参数用于指定工程将沿消息分支步骤的哪个出口运行。 |
|
示例 |
203, 1, 1 |
||
工控机 -> 机器人 |
返回指令 |
状态码 |
|
203 |
2105:执行正常 2018:无效的分支出口号 …… |
||
示例 |
203, 2105 |
四、获取规划路径(推荐) |
||||||
机器人 -> 工控机 |
请求指令 |
路径点类型 |
||||
205 |
1:路径点将以机器人关节角形式返回 2:路径点将以机器人工具位姿形式返回 |
|||||
示例 |
205, 1 |
|||||
工控机 -> 机器人 |
返回指令 |
状态码 |
是否发送完成 |
路径点数量 |
“视觉移动”位置 |
路径点 |
205 |
2100:执行正常 2007:路径规划失败 …… |
0:未发送完路径中的全部路径点 1:已发送完路径中的全部路径点 |
默认范围:0~20 若路径中含有 20 个以上个路径点,请多次执行该指令。 |
“视觉移动”步骤路径点在整个路径中的位置 |
物体位姿 标签 速度 |
|
示例 |
205, 2100, 1, 2, 2, 8.307, 15.163, -142.177, -2.775, -31.440, -96.949, 0, 64 |
五、获取视觉目标点(无 Mech-Viz 时使用,不推荐) |
||||||
机器人 -> 工控机 |
请求指令 |
Mech-Vision 工程编号 |
||||
102 |
Mech-Vision 工程列表中工程名左侧的数字 |
|||||
示例 |
102, 1 |
|||||
工控机 -> 机器人 |
返回指令 |
状态码 |
是否发送完成 |
TCP 数量 |
保留字段 |
视觉目标点 |
102 |
1100:执行正常 1102:无视觉结果 …… |
0:未完全发送 1:已完全发送 |
默认范围:0~20 |
该字段未使用,默认值为 0 |
物体位姿 标签 速度 |
|
示例 |
102, 1100, 1, 1, 0, 95.780, 644.567, 401.101, 91.120, -171.130, 180.0, 0, 0 |
关于标准接口通信的详细内容,可参考 标准接口通信 。
如果采用 Adapter 通信方式,需另外开发。
机器人 -> 工控机 |
请求指令 |
Mech-Vision 工程编号 |
工件型号 |
|
“P”:拍照请求 |
1~9 |
1~99 |
||
示例 |
P, 1, 2 |
|||
说明 |
拍照命令,工程编号1,工件型号2 |
|||
工控机 -> 机器人 |
状态码 |
工件型号 |
工件正反 |
抓取点 |
0:识别成功 1:空料 2:识别失败 |
1~99 |
1:正面 2:反面 |
X,Y,Z,A,B,C |
|
示例 |
102, 1100, 1, 1, 0, 95.780, 644.567, 401.101, 91.120, -171.130, 180.0, 0, 0 |
|||
说明 |
拍照成功, 工件型号1,反面,抓取点 1.574 , -0.443 , -1.122 , 43.12 , -24.25 ,179.66 |
工程说明¶
缸体工程 总体流程如下图所示。
采集图像: 用于获取缸体的彩色图、深度图。
点云预处理: 用于对缸体的原始点云进行预处理。
3D 边缘匹配: 利用缸体点云的边缘模板进行边缘模板匹配,并生成抓取点。
调整位姿: 用于将缸体的抓取点变换至机器人坐标系下,再进行排序,并滤除角度超限的位姿。
路径规划: 规划机器人的抓取路径。
输出结果: 将当前工程的结果发送给后台服务。
注解
隔板识别: 当没有工件位姿输出时,则进行隔板识别,并计算并输出隔板位姿。
缸盖工程 总体流程如下图所示。
采集图像: 用于获取缸盖的彩色图、深度图。
点云预处理: 用于对缸盖的原始点云进行预处理。
3D 边缘匹配: 利用缸盖点云的面模板进行面模板匹配,并生成抓取点。
调整位姿: 用于将缸盖的抓取点变换至机器人坐标系下,再进行排序,并滤除角度超限的位姿。
路径规划: 规划机器人的抓取路径。
输出结果: 将当前工程的结果发送给后台服务。
注解
隔板识别: 当没有工件位姿输出时,则进行隔板识别,并计算并输出隔板位姿。
点云模板和抓取点设置方式¶
模板设置方式:
缸体工程采用 3D 方法提取点云边缘,然后进行边缘匹配方式(如下图中左图所示)。原因是缸体上表面结构简单,边缘清晰,采用边缘匹配可使抓取精度较高、视觉系统耗时较短。
缸盖工程采用面匹配方式(如下图中右图所示)。原因是缸盖上表面结构复杂,不能稳定的提取其边缘点云,所以相比边缘匹配,采用面匹配时的更具有稳定性。
抓取点设置方式:
缸体、缸盖工程的抓取点设置方式均采用示教法,使用几何中心点进行点云模板匹配,然后将几何中心点映射到抓取点,可提高抓取精度。原因是使用拖拽法拖拽时不够准确,难以保证抓取精度。
抓取排序策略¶
缸体、缸盖的抓取排序策略,一般根据工件离机器人原点的距离进行抓取排序,即由近及远进行抓取。抓取排序相关参数需根据现场实际情况进行设置。
如下图所示,底部的坐标系为机器人基座标系,机器人将按图中标注的顺序依次抓取工件。
方案部署¶
参数调节建议(缸体工程)¶
点云预处理¶
该步骤组合外部显示的参数均为常用参数。
“点云预处理”后输出的点云需保证完整,且不包含多余的场景点云。如下图所示,左图为点云预处理之前的缸体点云,右图为点云预处理之后的缸体点云。
获取最高层点云 :用于获取准确的最高层缸体点云,尽量不包含需要匹配的工件点云之外的其它点云。在该过程中,需先将工件点云转换到机器人坐标系下,再获取最高层点云,以避免因为相机拍照姿态的原因,获取到不准确的最高层点云。
3D 方法估计点云边缘 :一般选择 KNN 邻近点搜索方式,设置 邻近点个数 和 角度阈值 ,获取完整的缸体上表面边缘。
3D 边缘匹配¶
该步骤组合外部显示的参数均为常用参数。
匹配策略 包括 Match0 和 Match0And180。当来料工件只有一种角度时,选择 Match0 匹配策略,此时只需制作一个方向的点云模板,并设置几何中心点和示教抓取点;当来料有两种角度或多种角度时,选择 Match0And180 匹配策略,此时需分别制作 0 度和 180 度摆放的工件的点云模板,并设置几何中心点和示教抓取点。
在该步骤组合中,1 处 3D 粗匹配 V2 和 3D 精匹配 步骤采用 0 度工件模板,2 处 3D 粗匹配 V2 和 3D 精匹配 步骤采用 180 度工件模板。
0 度、180 度缸体工件点云模板分别如下图中左、右图所示。
提示
在 3D 边缘匹配过程中,需避免漏识别。
另外,还需测试工件静止不动时的位姿重复识别精度,其中,位姿 X、Y、Z 值的误差需在 0.2mm 以内,欧拉角误差需在 0.1° 以内。
位姿处理及防错¶
该步骤组合外部显示的参数均为常用参数。
在该步骤组合中,1 处步骤采用 0 度点云模板匹配输出的位姿,2 处步骤采用 180 度点云模板匹配输出的位姿。
若选择 Match0 匹配策略,则 2 处位姿为快捷创建的 [0,0,0,1,0,0,0],会被 判断位姿是否在 3D ROI 内 步骤过滤掉。
若选择的是 Match0And180 匹配策略,则 2 处位姿为实际 180 度匹配的位姿,需根据现场机器人坐标系,设置 参考方向 和 最大角度差 。
保证 1 处 根据与参考方向的夹角判断位姿是否有效 步骤可以保留 -90 度至 90 度摆放的工件位姿;
保证 2 处 根据与参考方向的夹角判断位姿是否有效 步骤可以保留 90 度至 270 度摆放的工件位姿;
即经过判断后左路和右路会被过滤掉一个旋转过大的位姿。
根据与参考方向的夹角判断位姿是否有效 :需设置 位姿指定轴 、 参考方向 、 最大角度差 。
隔板识别¶
该方案的隔板识别采用的是计算平面抓取点的方式,适用于平面隔板。缸盖工程内的隔板识别采用的是点云模板匹配方式。
读取物体尺寸 :用于隔板位姿防错,需进行 箱子尺寸设置 。
根据与参考方向的夹角判断位姿是否有效 :用于隔板位姿防错,需设置 位姿指定轴 、 参考方向 、 最大角度差 。
判断隔板上有无工件:用于防错,根据点云中的点数判断隔板上有无工件。
参数调节建议(缸盖工程)¶
点云预处理¶
该步骤组合外部显示的参数均为常用参数。
“点云预处理”后输出的点云需保证完整,且不包含多余的场景点云。
获取最高层点云 :用于获取准确的最高层缸盖点云,尽量不包含需要匹配的工件点云之外的其它点云。在该过程中,由于缸盖表面结构复杂,不便进行点云聚类,若直接获取最高层点云,有可能获取到整个缸盖的点云,不利于后续匹配。所以需先将工件点云转换到机器人坐标系下,再获取最高层点云,以避免因为相机拍照姿态的原因,获取到不准确的最高层点云。
路径规划¶
需要设置对应的机器人夹具,再根据现场实际场景设置机器人原点,然后调整料筐上方固定点和工件上方接近点,并添加场景物体和碰撞检测设置。
常见问题及解决方法¶
工件未被正常识别¶
当出现工件未被正常识别的情况时,可尝试按如下流程解决该问题。
抓取存在偏差¶
当抓取存在偏差时,可尝试按如下流程解决该问题。
检查当前匹配结果是否有偏差和明显错位,并测试单个工件是否满足重复识别精度,如不满足则优先调整如下匹配相关参数。
当单个工件的重复识别精度满足要求时:
如果来料方向一致;建议主要排查相机和机器人在抓取区域附近的精度。
检查相机内参;
在抓取区域附近识别标定板,检查标定板位姿的波动程度;
检查机器人零点是否在安全位置,并检查机器人抓取位姿的重复识别精度。
如果来料有多种角度,在以上基础上需重点检查相机外参。
相机在 ±180° 方向分别识别同一标定板,比较标定板位姿在机器人坐标系下的值,外参误差约为该值的二分之一。
相机冷启动后由于温漂导致的 Z 向偏差¶
当相机冷启动后,由于温漂导致抓取方向上存在 Z 向偏差时,可尝试采用标志物补偿方法解决该问题。
在相机视野内固定一个标志物,识别工件的同时,也可识别标志物的位姿。
如果用某物体作为标志物,需用点云模板匹配方式对其进行识别;
如果用地面作为标志物,可直接计算平面点云的位姿。
在相机正常运行一段时间后识别标志物,保存标志物的基准位姿。
标志物的位姿要求为:抓取点的 Z 向重复精度需控制在 0.1mm 以内。
读取标志物基准位姿,和当前识别的标志物位姿比较,得到 Z 值误差。然后将标志物的 Z 值误差补偿到当前工件位姿上。
注意对位姿误差补偿值进行防错处理。如果位姿误差补偿值超过阈值,则不进行补偿;
如果位姿误差补偿值在阈值内,则接受当前 Z 值误差对当前工件位姿进行补偿。
纯黑工件的点云缺失(缸盖)¶
可尝试两次曝光:一次低曝光,一次高曝光。另外还可适当增加相机增益和调整投影画幅。
型号识别问题¶
缸体工程中,当辊道上来料时,可能出现缸体型号未知的问题,需视觉识别工件型号及抓取点。可先识别工件尺寸,判断工件的大致型号。再通过多模板匹配,为相似型号的工件点云模板进行多模板匹配,输出工件型号的标签。