发那科机器人视觉引导系统实战指南:从通信配置到抓取应用
在工业自动化领域,机器人视觉引导系统已成为提升产线柔性与智能化水平的关键技术。发那科(FANUC)作为全球领先的工业机器人制造商,其集成的 iRVision(内置视觉)与外部视觉系统配合方案,为工程师提供了强大的工具。然而,从系统架构搭建到实际抓取应用,涉及通信、标定、程序逻辑等多个环节,往往让初学者感到无从下手。本文将深入剖析发那科机器人视觉系统的核心原理与实战配置,帮助你打通从“看见”到“抓取”的最后一公里。
一、系统架构与通信方式的选择
在规划视觉引导项目时,首先要明确系统的物理架构。发那科机器人视觉方案主要分为两大类:
内置视觉(iRVision):使用发那科自带的 2D/3D 视觉软件,无需额外工控机,相机直接连接至机器人控制柜。
外部视觉(如康耐视、基恩士等):通过 I/O 或以太网(TCP/IP、Socket)与机器人通信。
对于大多数集成商而言,外部视觉方案因其相机选型灵活、算法强大而应用更广。其中一个关键通信协议是 Socket Messaging(套接字消息),它允许外部设备通过 TCP/IP 直接向机器人发送数据。
若视觉系统需要发送大量坐标数据(如 X、Y、R 及工件姿态),建议使用 TCP/IP Socket Messaging,而非简单的 I/O 点对点通信。I/O 方式仅适合传输 OK/NG 等离散信号。
二、机器人端程序的逻辑框架设计
一个稳定的视觉引导程序,必然包含清晰的状态机逻辑。通常,机器人作为 TCP 服务器或客户端,在抓取工位执行以下循环:
请求拍照:机器人运动至拍照位,通过 Socket 向视觉系统发送触发指令(如
"TRIGGER")。等待结果:机器人阻塞等待视觉系统返回数据。
解析数据:接收字符串数据(如
"OK,X=100.5,Y=200.3,R=45.2"),并进行字符串拆分、数值转换。坐标补偿:将视觉坐标转换为机器人世界坐标系下的偏移量。
执行抓取:调用偏移函数或直接更新目标位置。
PASCAL
! 机器人端 TP 程序示例(部分)
1: ! 发送拍照请求
2: JMP_LBL[1] ;
3: ;
4: ! 假设使用 KAREL 或 TP 的 SOCKET 功能
5: WRITE SOCKET_1('TRIGGER') ;
6: ;
7: ! 等待响应(此处简化为延时,实际建议使用状态变量轮询)
8: WAIT 1.00 (sec) ;
9: ;
10: ! 读取数据
11: READ SOCKET_1 (RESULT_STR) ;
12: !
13: ! 解析字符串 (此处省略详细解析逻辑)
14: !
15: ! 计算偏移量
16: OFFSET_X = VISION_X - BASE_X ;
17: OFFSET_Y = VISION_Y - BASE_Y ;
18: !
19: ! 执行抓取(使用偏移指令)
20: LBL[10] ;
21: ! 抓取点
22: CALL JOB:PICK_UP /OFFSET, OFFSET_X, OFFSET_Y, 0 ;
三、视觉标定:建立像素与毫米的桥梁
视觉引导的核心在于手眼标定。对于固定相机(相机安装于支架上,机器人运动至下方抓取),通常采用 2D 标定板 法。
3.1 标定步骤概览
步骤一:在机器人工作范围内放置标定板(如棋盘格或圆点阵)。
步骤二:使用示教器手动移动机器人,使工具末端(TCP)分别对准标定板的多个已知点(通常为 4 个角点或 9 个点)。
步骤三:记录每个点对应的机器人世界坐标(X, Y)和相机中对应的像素坐标(U, V)。
步骤四:利用最小二乘法求解仿射变换矩阵(或透视变换矩阵)。
3.2 标定结果的应用
标定完成后,视觉系统输出的坐标通常是基于标定板坐标系的,或者通过变换矩阵直接映射到机器人基坐标系。
标定时务必确保 TCP 的 Z 方向高度 与 实际拍照时工件的表面高度 一致。若高度不同,会引入较大的透视误差。对于 2D 视觉,相机光轴必须尽量垂直于工作平面。
四、视觉引导抓取的偏移算法详解
在发那科机器人中,视觉引导并非总是需要复杂的坐标变换。如果视觉系统输出的是相对于标准位置的偏差量(Delta X, Delta Y, Delta R),那么机器人端只需在标准抓取点上进行增量偏移即可。
4.1 使用 PR(位置寄存器)进行偏移
最常用的方法是使用位置寄存器(Position Register, PR)。假设视觉系统返回的偏差存储在数值寄存器中:
PASCAL
1: R[1]=视觉反馈X偏差 ;
2: R[2]=视觉反馈Y偏差 ;
3: R[3]=视觉反馈R偏差 ;
4: !
5: ! 将标准抓取点赋值给 PR[5]
6: PR[5,1]=标准抓取点X ;
7: PR[5,2]=标准抓取点Y ;
8: !
9: ! 叠加偏差(注意:角度偏移需考虑旋转中心)
10: PR[5,1]=PR[5,1]+R[1] ;
11: PR[5,2]=PR[5,2]+R[2] ;
12: !
13: ! 抓取动作
14: L P[1] 1000mm/sec FINE ;
15: L PR[5] 500mm/sec FINE ;
4.2 带角度旋转的补偿原理
当工件存在角度偏差(R 轴偏移)时,简单的 X/Y 叠加会产生误差。正确的做法是围绕抓取中心点进行旋转偏移。此时,视觉系统应直接输出旋转后抓取点的绝对坐标,或机器人程序需执行 R 轴偏移指令。
PASCAL
! 若 PR[5] 中包含旋转值,则直接执行:
L PR[5] 500mm/sec FINE ;
! 机器人将自动进行姿态调整,但需确保 PR[5] 的旋转中心与视觉计算的旋转中心一致。
坐标中心一致性视觉计算的旋转中心通常是工件的几何中心,而机器人抓取时工具的旋转中心是 TCP。两者若不重合,必须通过 PR 偏移先移动 TCP 至工件中心,再旋转。
五、通信数据格式的健壮性设计
在实际生产中,网络波动或视觉误判可能导致数据丢包或格式错误。因此,错误处理机制是程序健壮性的关键。
5.1 定义通信协议
推荐使用带帧头和校验位的 ASCII 协议。例如:
HEAD,STATUS,X_OFFSET,Y_OFFSET,R_OFFSET,TAIL
帧头:
HEAD状态:
OK/NG数据:浮点数或整数
帧尾:
TAIL
5.2 机器人端防御性编程
机器人程序需对接收到的字符串进行校验:
长度校验:防止接收不完整数据。
关键字校验:确认是否包含
"OK"。数值范围校验:防止视觉输出异常大数导致机器人飞车。
PASCAL
! 伪代码示例
IF (FIND(STR, 'OK') > 0) THEN
! 解析坐标
SET_VAR(...) ;
ELSE
! 视觉 NG,进入异常处理
JMP LBL[999] ;
ENDIF
务必在程序中加入软限位和位置区域检查。若视觉计算的坐标超出机器人工作空间或预设的安全范围,立即暂停并报警,切勿直接执行运动指令。
六、进阶技巧:多相机与传送带跟踪
对于更复杂的应用,如传送带跟踪(Tracking),视觉系统不仅要提供 XY 坐标,还需要与编码器配合。
视觉引导:视觉相机安装在传送带上方,拍摄移动中的工件。
编码器同步:机器人通过读取编码器数值,实时计算工件的动态位置。
抓取策略:机器人需要在传送带运动过程中进行动态抓取,这要求机器人具备 Dynamic Tracking(动态跟踪) 选项。
此场景下的视觉标定需引入传送带方向标定,将视觉坐标与编码器读数进行耦合,技术复杂度远高于静态抓取。
七、调试过程中的常见问题与解决
7.1 相机拍照与机器人动作不同步
现象:工件位置偏移大,视觉经常误判。 对策:
检查是否启用了外部触发(如硬接线或 IO 触发),确保机器人到位后相机才拍照。
增加拍照完成反馈信号,机器人收到反馈后再运动。
7.2 标定精度足够但抓取偏移
现象:视觉给出的坐标在示教器上看很准,但实际抓取总是偏向一侧。 对策:
检查 TCP 是否标定准确。
检查机器人抓取时的负载重量是否导致工具变形。
确认视觉系统的安装固定是否牢固,有无震动。
折叠内容
折叠内容
标定精度验证流程
在视觉视野内取 5 个随机点。
机器人依次移动至视觉给出的坐标位置。
用塞尺或千分表测量实际误差。
若误差 >1mm,需重新检查相机高度及标定板平整度。
八、总结
发那科机器人视觉引导系统的调试是一项系统性工程,涉及电气通信、机器人编程、光学标定及算法原理。掌握 Socket 通信原理、坐标偏移算法 以及 严谨的错误处理逻辑,是项目成功的关键。在实际应用中,建议工程师先在离线仿真软件(如 Roboguide)中验证逻辑,再上机调试,以节省宝贵的产线停机时间。
希望本文能为正在调试发那科视觉项目的工程师提供实用的参考。从简单的 2D 抓取到复杂的 3D 引导,扎实的基础原理将是应对一切复杂工况的基石。
首选 TCP/IP Socket 通信。
标定时注意 Z 轴高度一致。
偏移计算需考虑旋转中心。
程序必须包含数据校验机制。
Roboguide 仿真软件
棋盘格标定板
网络调试助手(用于模拟视觉发送数据)
