1. 项目背景与核心挑战
在电子制造业的PCB板检测环节,传统人工目检方式存在效率低、漏检率高、标准不统一等问题。我们团队为某大型电子代工厂设计的这套多机器人协同视觉检测系统,通过12台工业相机与8台六轴机械臂的联动配合,实现了PCB板从上下料到缺陷检测的全流程自动化。实测数据显示,该系统将单板检测时间从人工操作的45秒压缩至8秒,缺陷识别准确率达到99.97%。
这套系统的核心难点在于:
- 多相机视野拼接与坐标系统一:12台相机需要无缝覆盖600mm×400mm的检测区域
- 机械臂运动轨迹防碰撞规划:8台机器人在有限空间内需避免干涉
- 视觉-运动控制实时同步:图像处理结果需在50ms内反馈给机械臂执行机构
- 系统容错与异常处理:单设备故障时需保持产线继续运行
2. 硬件系统架构设计
2.1 视觉系统配置方案
采用"4+4+4"的三层相机布局:
- 顶层4台2000万像素面阵相机(Basler ace acA2000-165um)负责全局定位
- 中层4台1200万像素线扫相机(Teledyne DALSA Linea ML-12k)进行焊盘检测
- 底层4台500万像素3D结构光相机(SICK Ranger3)测量元件高度
关键技巧:相机安装采用磁吸快拆结构,便于维护时快速校准。所有相机通过PoE++供电,减少线缆复杂度。
2.2 机器人选型与布局
选用8台EPSON C12XL六轴机械臂,关键参数:
- 重复定位精度:±0.02mm
- 最大负载:12kg
- 臂展:1500mm
布局采用"双工位四象限"设计:
plaintext复制[工位A] [工位B]
机器人1-2 机器人5-6
机器人3-4 机器人7-8
每个象限机器人负责固定工序,通过中央输送带实现PCB板流转。
3. 核心算法实现
3.1 多相机标定与图像拼接
采用改进的棋盘格标定法,具体步骤:
- 使用特制600mm×400mm标定板(棋盘格间距15mm)
- 通过机械臂带动标定板遍历各相机视野
- 基于OpenCV的findChessboardCorners函数提取角点
- 建立各相机到世界坐标的变换矩阵
python复制# 示例代码:多相机标定数据融合
def multi_camera_calibration(images):
obj_points = [] # 3D世界坐标
img_points = [] # 2D图像坐标
for img in images:
ret, corners = cv2.findChessboardCorners(img, (9,6))
if ret:
obj_points.append(objp)
img_points.append(corners)
# 计算各相机内参和外参
ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(
obj_points, img_points, gray.shape[::-1], None, None)
return mtx, dist, rvecs, tvecs
3.2 机器人协同运动规划
使用ROS-Industrial框架实现:
- 建立统一的URDF模型描述文件
- 通过MoveIt!配置8台机械臂的联合运动组
- 采用RRT*算法进行无碰撞路径规划
- 设置动态优先级策略:
- 靠近输送带的机器人优先级高
- 正在进行精细操作的机器人临时升权
4. 系统集成与通信架构
4.1 实时通信网络设计
网络拓扑采用星型结构:
- 主控计算机:Intel Xeon W-3275 + NVIDIA RTX 8000
- 交换机:Moxa EDS-4012工业级万兆交换机
- 通信协议:
- 相机数据:GigE Vision
- 机器人控制:EtherCAT
- 状态监控:MQTT
4.2 软件架构实现
分层设计:
- 设备层:相机/机器人驱动
- 服务层:
- 图像处理服务(Halcon 20.11)
- 运动控制服务(ROS Kinetic)
- 应用层:
- 任务调度系统
- 可视化监控界面(Qt 5.15)
5. 产线实测数据与优化
5.1 性能基准测试
测试条件:
- PCB板尺寸:400mm×300mm
- 检测项目:焊点、元件缺失、极性反、划痕等12类缺陷
测试结果:
| 指标 | 人工检测 | 本系统 |
|---|---|---|
| 单板检测时间 | 45s | 8s |
| 漏检率 | 0.15% | 0.03% |
| 误检率 | 0.8% | 0.12% |
| 日均产能 | 600片 | 3200片 |
5.2 典型问题排查记录
问题1:相机触发不同步导致图像拼接错位
- 现象:相邻相机图像重叠区出现重影
- 排查:检查硬件触发信号示波器波形
- 解决:改用PTPv2协议进行时钟同步
问题2:机械臂末端振动影响检测精度
- 现象:3D相机测量数据波动大
- 排查:分析机器人关节伺服电流曲线
- 解决:在MoveIt!中调整加速度规划参数
6. 工程实施经验总结
-
机械安装要点:
- 相机支架需做防震处理(我们采用蜂窝铝基板)
- 机器人底座灌注50mm厚水泥配重
-
电气布线规范:
- 动力电缆与信号线分层走线
- 所有接口做防呆设计
-
系统调优技巧:
- 先标定单相机再组网校准
- 机器人运动测试从低速逐步提升
- 图像处理算法采用渐进式优化
这套系统经过3个月试运行后已正式投产,累计检测PCB板超过200万片。实际运营中发现,定期维护(每周清洁光学部件、每月校准机械臂零点)对保持系统精度至关重要。对于想实现类似方案的同仁,建议先从4相机+2机器人的小系统开始验证关键技术路线。