部署校正方案
本节介绍在 ETH 相机安装方式下,如何部署视觉系统漂移自校正方案。
部署流程概览
校正方案部署流程如下图所示。
-
了解部署前提:了解部署“ETH系统漂移自校正”方案的部署前提。
-
完成准备工作:完成部署前的物料准备工作。
-
采集工位信息:填写工位信息,用于自动计算标定球拍照点数量和分布。
-
验证拍照点:在各拍照点统计标定球位姿的重复精度,以确保获得准确可靠的漂移校正数据。
-
生成样例程序:基于拍照点信息生成机器人自校正样例程序,用于后续校正视觉系统的漂移。
-
启用自校正功能:在抓取工程中启用自校正功能,然后调整并烧录机器人自校正程序,在实际生产过程中校正视觉系统的漂移。
-
查看部署结果:查看“ETH系统漂移自校正”方案的部署结果。
了解部署前提
部署校正方案前,需满足以下前提:
-
确保该工位已部署用于抓取的视觉方案。
-
确保已完成相机、机器人和外参精度检查,并实现机器人正常抓取。具体检查方法可参考精度误差分析工具。
-
确保机器人末端预留了安装标定球的空间。
开始部署
完成上述部署前准备后,即可在菜单栏依次选择
打开工具,然后在工具首页右下角单击开始部署按钮,开始部署校正方案。采集工位信息
通过填写工位信息,本步骤可自动计算标定球拍照点数量和分布。
选择场景
-
设置工件摆放方式。
根据现场实际情况设置工件的摆放方式。
-
设置标定球极限低位到底层工件的距离。
该距离表示机器人携带标定球到达极限低位时标定球与底层工件的距离,如下图所示。
-
设置目标点云空间尺寸。
根据现场实际情况设置目标点云的长、宽、高。
(a)如果使用工件上表面点云进行匹配,则目标点云的高为最高层工件上表面到最底层工件上表面的距离。
(b)如果使用工件上表面局部点云进行匹配,则目标点云的高为最高层工件上表面到最底层工件上表面的距离。
(c)如果使用工件的多层表面点云进行匹配,则目标点云的高为最高层工件上表面到最底层工件下表面的距离。
-
对于单层工件,如果使用工件上表面点云进行匹配,则目标点云的高为 0。
-
如果多层工件之间有隔板,目标点云高度应包含隔板的高度。
-
设置完成后,单击开始计算按钮,自动计算标定球拍照点数量和分布。计算结果将展示在下一页面。
工位信息填写完成后,单击下一步按钮,验证拍照点。
验证拍照点
本步骤用于在各拍照点统计标定球位姿的重复精度,以确保获得准确可靠的漂移校正数据。
验证拍照点
获得标定球拍照点位置分布后,需统计标定球位姿的重复精度,以确保获得准确可靠的漂移校正数据。
建议由低到高逐层验证拍照点,且必须验证完一层拍照点后,再验证下一层拍照点。 |
-
移走托盘或料筐。
-
移动机器人。
将机器人移动至第一层拍照点中的任一拍照点,并将当前拍照点对应的机器人法兰位姿输入当前界面对应位置。
移动机器人时,需确保机器人不会发生碰撞。推荐先手动将机器人低速移至目标位姿,时刻观察机器人是否会发生碰撞。
如果机器人在路径中有可能发生碰撞,可适当移动标定球位置(上下左右方向均可),但需保证拍照点移动距离在 100 mm 以内。
-
为标定球设置 ROI。
单击调整ROI按钮,在弹窗的窗口中为标定球设置 3D ROI,然后单击确定按钮。
-
框选时,目标区域应完全覆盖标定球,且标定球四周应各留有一个标定球直径的余量。
-
只需在验证首个拍照点时为标定球设置 3D ROI。
-
-
验证拍照点。
单击拍照及验证按钮,工具将自动触发三次拍照来统计标定球位姿的重复精度。验证成功后,将弹出识别结果窗口,并提示“验证成功”。
-
将机器人移动至下一拍照点,单击下一个,输入当前机器人法兰位姿,然后单击拍照及验证按钮验证拍照点。
-
重复以上步骤,直至当前层的所有拍照点验证完成。
-
当有多层拍照点,重复以上步骤完成其他层的拍照点验证。
所有拍照点验证完成后,单击下一步按钮,生成机器人自校正样例程序。
生成样例程序
生成机器人程序
在下拉栏中选择正在使用的机器人品牌,然后单击导出样例程序按钮,导出机器人自校正样例程序。
若未导出机器人自校正程序或程序丢失,也可在查看部署结果页面右上角导出机器人自校正样例程序。 |
导出样例程序后,即可单击保存按钮,保存已部署内容。此时将在当前方案下自动生成漂移校正相关工程:
-
Drift_Collection_ETH:即标定球位姿采集工程,用于在各拍照点采集标定球位姿。
-
Drift_Calculation:即漂移校正数据生成工程,基于“Drift_Collection_ETH”工程采集的标定球位姿生成漂移校正数据。
请勿修改漂移校正相关工程的内容,同时在后续漂移校正过程中,需确保漂移校正相关工程的名称和工程编号不变。 另外,生成工程的同时,还将在工件库中自动生成标定球点云模板,请勿修改该点云模板的名称和相关配置。 |
启用自校正功能
拍照点验证完成后,要在实际生产过程中校正视觉系统的漂移,还需要完成如下操作:
-
在抓取工程中启用自校正功能。
-
烧录机器人自校正程序,实现自动采集标定球位姿,生成漂移校正数据。
烧录并调整机器人程序
在生成的机器人自校正程序中,你只需要通过示教法设置机器人 Home 点,并在通信参数中设置工控机的 IP 地址和端口号,用于与机器人建立通信。程序中的其他内容无需修改。烧录机器人程序后,即可进行上述调整。以 FANUC 机器人为例,需修改的程序如下,需注意 Home 点的位置代号为 P[50]。
J P[50] 50% FINE ;
CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
若使用 FANUC 机器人,需先将机器人样例程序编译成 TP 文件,然后再烧录机器人程序。其他机器人无需此操作。 |
若使用除 FANUC 外的其他品牌机器人,可参考下方的机器人自校正程序流程说明、FANUC 机器人自校正程序示例及关键步骤说明调整或编写自己所用品牌机器人的自校正程序。
单击此处查看机器人自校正程序的基本流程。
步骤1:确认机器人坐标系和工具坐标系。
步骤2:移动机器人到 Home 点。
步骤3:移动机器人到预规划的最底层的拍照点 1。
步骤4:到达标定球拍照点 1 后,切换标定球位姿采集工程(Drift_Collection_ETH)中的参数配方,即该拍照点对应的参数配方。
步骤5:切换参数配方后,触发“Drift_Collection_ETH”工程运行,在标定球拍照点 1 处采集标定球位姿。
步骤6:对当前层的其他标定球拍照点执行上述 3~5 步骤,在各个标定球拍照点采集标定球位姿。
步骤7:由下往上,对其他层的标定球拍照点重复执行上述 3~6 步骤,在各层标定球拍照点采集标定球位姿。
步骤8:各层标定球拍照点的标定球位姿采集完成后,切换漂移校正数据生成工程(Drift_Calculation)的参数配方。
步骤9:触发“Drift_Calculation”工程运行,生成漂移校正数据。
步骤10:移动机器人到 Home 点。
单击此处查看 FANUC 机器人自校正程序示例。
以 FANUC 机器人为例,假设标定球拍照点数量为 9,标定球位姿采集工程的工程编号为 3,漂移校正数据生成工程的工程编号为 4,自校正程序及各关键步骤说明如下所示。
机器人自校正程序中使用了若干寄存器,运行机器人自校正程序过程中需确保寄存器未被占用。 |
UFRAME_NUM=0 ;
UTOOL_NUM=1 ;
J P[50] 50% FINE ;
CALL MM_INIT_SKT('8','127.0.0.1',50000,5) ;
R[50:StartIndex]=1 ;
R[52:EndIndex]=9 ;
R[53:CameraIndex]=1 ;
R[54:CollectionId]=3 ;
R[55:CalculationId]=4 ;
PR[51]=P[51] ;
PR[52]=P[52] ;
PR[53]=P[53] ;
PR[54]=P[54] ;
PR[55]=P[55] ;
PR[56]=P[56] ;
PR[57]=P[57] ;
PR[58]=P[58] ;
PR[59]=P[59] ;
FOR R[51:mm_i]=R[50:StartIndex] TO R[52:EndIndex] ;
R[56]=R[51:mm_i]-R[50:StartIndex]+51 ;
L PR[R[56]] 1000mm/sec FINE ;
WAIT 3.00(sec) ;
CALL MM_SET_MOD(R[54:CollectionId],R[51:mm_i]) ;
WAIT 1.00(sec) ;
CALL MM_START_VIS(R[54:CollectionId],0,1,100) ;
WAIT 3.00(sec) ;
ENDFOR ;
CALL MM_SET_MOD(R[55:CalculationId],R[53:CameraIndex]) ;
WAIT 1.00(sec) ;
CALL MM_START_VIS(R[55:CalculationId],0,1,100) ;
WAIT 3.00(sec) ;
J P[50] 50% CNT100 ;
END ;
单击此处查看 FANUC 机器人自校正程序的各流程说明。
下表仅为关键步骤说明,关于 FANUC 机器人自校正程序各语句的具体解释,可参考FANUC 机器人样例程序。 |
流程 | 代码及说明 | ||
---|---|---|---|
设置坐标系 |
设置机器人坐标系为世界坐标系,工具坐标系为法兰坐标系。 |
||
移动机器人到 Home 点 |
移动机器人到 Home 点,需远离工件和周边设备。
|
||
初始化通信参数 |
设置机器人端口号为 8,将要连接的工控机 IP 地址为 127.0.0.1,工控机与机器人建立通信所使用的端口号为 50000,超时等待时间为 5 分钟。 |
||
存储标定球拍照点对应的参数配方编号的起始值和终止值 |
导出机器人程序时,工具将根据标定球拍照点对应的参数配方计算参数配方编号的起始值和终止值,然后将上述数值存储至数值寄存器中。 |
||
定义相机对应的参数配方编号和漂移校正相关工程的工程编号 |
定义相机对应的参数配方编号为 1,标定球位姿采集工程(Drift_Collection_ETH)的工程编号为 3,漂移校正数据生成工程(Drift_Calculation)的工程编号为 4。上述值将被存储至数值寄存器。 |
||
存储拍照点 |
将 9 个标定球拍照点(P[51] ~ P[59])分别存储至位置寄存器(PR[51] ~ PR[59]),用于后续机器人运行至相应位置。 |
||
通过循环的方式,计算标定球拍照点参数配方编号对应的位置寄存器编号 |
通过循环的方式,遍历标定球拍照点的参数配方编号 1~9。
根据此公式计算 R[56] 的值,即当前拍照点的参数配方编号对应的位置寄存器编号。 例如,在本示例中 R[50:StartIndex] = 1,当参数配方编号 R[51:mm_i] = 2 时,R[56] = 2 - 1 + 51 = 52,则程序运行至下一代码时,机器人将移动至位置寄存器 PR[52] 存储的拍照点处。 |
||
移动机器人到标定球拍照点 |
机器人以直线移动方式移动至各个拍照点,速度为 1000mm/sec。 |
||
切换标定球位姿采集工程的参数配方 |
将工程编号为 3 的标定球位姿采集工程(Drift_Collection_ETH)的参数配方切换成编号为 R[51:mm_i](1~9) 的参数配方。 |
||
触发标定球位姿采集工程运行 |
触发视觉系统运行工程编号为 3 的标定球位姿采集工程(Drift_Collection_ETH),在各个标定球拍照点处采集标定球位姿。
标定球位姿采集完成后,循环结束,采集的标定球位姿将用于生成漂移校正数据。 |
||
切换漂移校正数据生成工程的参数配方 |
在所有拍照点处采集标定球位姿后,将工程编号为 4 的漂移校正数据生成工程(Drift_Calculation)的参数配方切换成编号为 1 的参数配方。
|
||
触发漂移校正数据生成工程运行 |
触发视觉系统运行工程编号为 4 的漂移校正数据生成工程(Drift_Calculation),基于采集的标定球位姿生成漂移校正数据。 |
||
移动机器人到 Home 点 |
移动机器人到 Home 点,需远离工件和周边设备。 |
试运行机器人程序
运行机器人自校正程序后,机器人将移动到对应的拍照点,触发漂移校正相关的工程运行,对标定球进行拍照,采集标定球位姿数据,最终根据生成的漂移校正数据校正漂移。
运行机器人自校正程序后将产生校正记录,可在监测数据看板中查看。
试抓取工件
运行机器人抓取程序,当机器人能够准确抓取工件时,即表示方案部署成功。
需注意,在试抓取完成后,为保证实际生产的长期稳定运行,还需要在监测数据看板中配置漂移量警戒阈值。通常建议设置为10 mm,如漂移校正量超过此阈值,请检查相机和夹具的安装是否稳固,并确认机器人零点是否丢失等问题。
确定自校正周期
根据现场实际情况,按照一定周期(手动或者自动)运行机器人自校正程序,定期采集标定球位姿,用于定期校正视觉系统漂移。
至此,“ETH系统漂移自校正”方案已部署完成,可单击完成按钮,返回工具主界面。
部署完成后,建议导出当前相机配置参数组至本地进行备份,以防因相机损坏而更换相机时无法导出相机配置参数组。 |
部署完成后,你可单击工具首页底部的查看部署按钮,查看部署结果。部署结果中包含了已部署漂移自校正功能的相机编号、部署结果保存路径、拍照点信息和相机编号信息。 |