基于视觉和PID算法的重载AGV控制系统设计
2022-03-15王晓丽杨明来
何 勇,王晓丽,杨明来,沈 正
(1.上海工程技术大学电子电气工程学院,上海 201620;2.上海应用技术大学轨道交通学院,上海 201418)
0 引言
随着传统制造业逐渐向智能生产转型,AGV(自动导引车)的利用率越来越高。尽管AGV系列产品已趋于多样化,但仍存在磁导航的磁条易损、激光导航成本过高等缺点,而且对于大吨位物料,传统的小型AGV已无法满足运输要求。
针对上述问题,本设计中运用先进的视觉技术同时实现循迹和定位的功能,结合PID算法,增强了导引柔性且进一步地提高了循迹精度,设计出一种双向循迹结构、搬运能力在30 t级别的重载AGV。
1 总体结构设计
AGV总体结构如图1所示,前侧为从动轮,后侧为驱动轮,其动力源于减速电机。车体前后各安装1个测障传感器,侧面配置触摸屏,具有调速和设置站点等功能。由于重载AGV体型庞大,不易调转车头,所以前后均采用转向导引系统(含视觉传感器),便于双向循迹。
2 硬件设计
2.1 主控及电机选型
控制系统的主控单元采用S7-200 Smart系列PLC,CPU型号为ST30直流输入/直流输出型[1]。系统由48 V蓄电池供电,经开关电源降压后为PLC及其他低压元器件供电。
为了避免重载AGV制动困难且电机易损坏的问题,本系统使用摆线针轮减速电机,力矩大且寿命更长,能够更好地控制启停动作,极大提升负载能力。根据AGV载重m1=30 t,自身质量m2=8 t,车速v=20 m/min,加速时间t=5 s,可爬坡度α=2°,滚动摩擦系数μ=0.02。可计算出所需电机的功率,AGV受力分析如图2所示。
图2 AGV受力分析图
加速度a=v/t=0.067 m/s2;匀速牵引力F1=μN+mgsinα=μmgcosα+mgsinα=20 440 N;加速牵引力F2=μN+mgsinα+ma=22 973 N(m=m1+m2);牵引合力F=F1+F2=43 413 N;电机功率P=Fv=14 471 W。式中N为斜面对AGV的支持力;m为货物(图中采用整体分析法,未画出)与AGV的质量之和。
由于有2个驱动轮,所以采用2个7.5 kW的减速电机来分别驱动。
2.2 测障传感器
为保证AGV自动循迹时的安全性,采用PBS-03JN红外测障传感器。该传感器利用红外检测原理,由内部LED发出红外线进行180°全向扫描,在检测范围内有障碍物时,传感器的接收管会收到反射回来的红外信号,输出高电平[2]。当PLC的输入端接收到该高电平时,会执行减速、停车程序。
2.3 触摸屏
为提高可操控性,采用Smart Line系列的700 IE V3触摸屏,通过RJ-45以太网端口与PLC相连,其应用程序使用WinCC flexible SMART V3软件绘制、编写。HMI界面设计如图3所示,有前进后退、复位按键,速度调整和站点设置区域。
图3 HMI界面设计图
2.4 转向导引系统
该系统兼具转向和导引的功能,通过连杆分别与两边车轮相连,车轮与车体通过回转支承固定。AGV的转向角度由两侧极限位置的行程开关决定,保证系统在直线导轨的滑动范围内工作。视觉传感器装在系统中间的支架上,循迹运行时,由该系统的直流电机控制去寻找色带。
BLD50A是一款自带霍尔传感器的直流电机驱动器,具有大扭矩、快速启停等特性,与直流电机、PLC的接线方式如图4所示。驱动器的三相端口及霍尔传感器的HU、HV、HW、VCC、GND端口与直流电机相连,为电机提供驱动和传感器信号。BRK、EN、F/R都由PLC输出端经过继电器驱动[3],控制电机的制动、使能及正反转。ALM是报警信号输出端;SPD是速度信号输出端,通过模拟量扩展模块EM AM06的输出端0~10 V电压调节转速。
图4 电机驱动器接线图
2.5 视觉传感器
系统采用PGV100-F200A-R4-V19视觉传感器作为导航元件,上面5个LED灯的亮灭情况可反映当前工作状态,具体状态如表1所示。
表1 LED工作状态指示表
传感器基于视觉成像原理工作,可将镜头捕获到的图像转换为数字信号输出,其内部建立的坐标系以AGV运动方向为X轴,以垂直于运动方向为Y轴[4],偏差允许范围为传感器相对色带中心线在Y轴方向左右偏移30 mm。在循迹运行时,PLC每个扫描周期发出1次请求报文,传感器反馈1次响应数据,判断与色带中心线的相对位置,由系统纠正偏差。
本设计采用Data Matrix(以下简称DM)码带实现非接触式定位,对于在恶劣的工厂环境下,DM码自动纠错的能力可以保证数据读取的完整性。由如图5(a)、图5(b)所示的2组(共12个)相同的DM码构成条形码带,保证AGV在运动状态下有足够的读码时间。
(a)第1组DM码
3 软件设计
3.1 控制流程
AGV的工作流程如图6所示,系统上电后进入初始化,并在触摸屏上设置目标站点。AGV后侧车轮回正后,前侧转向导引系统开始工作,视觉传感器寻找色带并进行图像处理,完成后减速电机驱动AGV自动循迹运行。若出现跑偏,由PID算法控制及时纠正偏差,转向导引系统立即调整转向以纠正运行轨迹。在运行时遇到障碍物会先减速后停车,移除障碍物后AGV继续运行[5]。当视觉传感器识别到目标站点的DM码带时,解码后停车。
图6 AGV控制流程
3.2 图像处理
3.2.1 DM码带处理
3.2.1.1 图像预处理
传感器内部CMOS相机捕获的原图像见图7(a),按式(1)以相应权值对RGB三原色分量进行加权平均[7],得到灰度图像,见图7(b)。其灰度均值用V1表示:
V1=0.30R(x,y)+0.59G(x,y)+0.11B(x,y)
(1)
式中:x,y分别表示图像的行和列;R(x,y)为红色分量;G(x,y)为绿色分量;B(x,y)为蓝色分量。
使用二维高斯滤波器进行去噪平滑处理,经处理后的灰度值为V2(σ表示方差),如式(2)所示。该传感器还采用了双采样保持电路设计,提高了信噪比,进一步地降低噪声对解码的影响。
(2)
处理好的灰度图像是前景色(DM码中深色单元)与背景色(图像中其他不同灰度的部分)组成的,对图像进行二值化处理时采用大津算法[7],它自动计算出的阈值可将前景色和背景色尽可能地分开。此阈值称作类间方差ICV(intra-class variance),定义为式(3)。
ICV=PA(VA-V2)2+PB(VB-V2)2
(3)
式中VA和VB为前景色和背景色灰度平均值;PA和PB为前景色和背景色像素数占总像素数的比例。
根据灰度均值V2计算出的灰度直方图被阈值分割成的两部分,图7(c)为二值化处理后的图像。
(a)原图像
3.2.1.2 DM码定位
利用传感器内部坐标系,对倾斜的DM码进行矫正处理。如图8所示,实线方框为矫正前DM码位置,经逆时针旋转角度β后到虚线方框的矫正位置。再利用边缘虚、实“L型”寻边区实现DM码的精确定位。
图8 DM码矫正示意图
3.2.1.3 解码识别
完成精确定位后提取出数据区,调用DM码核心库libdmtx内的功能矩阵将码字流顺序调整后解码输出[8]。
传感器的响应报文RX共由21字节组成,使用RS485串口通讯工具可查询当前AGV的请求、响应报文。如表2所示,其中Byte15和Byte16反馈DM码带信息。当传感器读取到DM码带时,可利用式(4)、式(5)和响应报文数据计算得出站点信息,可知目前AGV位于6号站点。
表2 当前AGV的响应报文(RX)
Byte15_1=Byte15 and H07
=08 and H07=H00
(4)
Control code=Byte15_1×H80 + Byte16
=00×H80 + 06=H006=06
(5)
3.2.2 色带处理
对运行中拍摄到的色带先进行预处理,与DM码的预处理采用相同技术实现。下一步进行模板匹配[9],将处理完的图像与传感器内存中存储的基准图像比较、匹配并计算相似度,与设置的循迹色带颜色相同时,AGV开始自动循迹运行。如图9所示,是传感器配套软件采集到的色带基准图像。
图9 色带基准图
AGV循迹时,传感器对图像预处理后需提取色带中心线以计算出偏差值,实时控制转向。提取色带中心线采用从中心线沿Y轴向两侧横向扫描的方式进行[10],如有像素点的值从0变成1时,则将2点的Y轴坐标值通过式(6)计算得到色带中心线的Y轴坐标值,那么由(xn,y1)和(xn,y2)计算得出的点(xn,y0)就能够拟合出色带中心线。
y0=(y1+y2)/2
(6)
式中:y0为中心线上的Y轴坐标值;y1、y2分别为左、右边界Y轴坐标值。
图10(a)为某时刻拍摄的色带图像,图10(b)对应图像10(a)拟合出的中心线。
(a)原图像
传感器读头相对于色带中心线右偏,Y方向偏差值为正,AGV需要向左转向;反之,AGV则需要向右转向。由图10(a)易观察出传感器相对于色带左偏,进一步地可根据此时反馈得到的响应报文中的数据位信息(Byte7~Byte8反馈Y方向偏差值,如表2所示),利用式(7)计算出该时刻具体偏差值。
Y position=Byte7×H80+Byte8
=7F×H80+7A=H3FFA
(7)
因Y position>H2000(色带中心线),Y轴偏差值为负值。
Y deviation=H4000-H3FFA=H6
(8)
所以此时偏差值为-6 mm,转向导引系统需要向右调整方向。
3.3 纠偏算法模型
AGV循迹过程中,纠偏不及时则会偏离色带路径,影响导引柔性及生产效率。针对跑偏问题,工业控制中常采用经典PID算法来处理,该算法如式(9)所示,由比例调节、微分调节和积分调节组成,通过调整KP,KI和KD这3个参数来不断优化控制效果。
(9)
式中:e(k)为偏离值,本设计中传感器内部坐标轴的X轴与色带中心线重合时,e(k)=0;KP为比例系数,用来消除系统的当前误差;KI为积分控制参数,用来平均过去的误差;KD为微分控制参数,用来通过误差的改变来预测将来的误差[11]。
在本系统中,采用基于PID算法的速度及位置双闭环结构控制方法。如图11所示,外层结构为位置环,经视觉传感器对色带路径检测并计算出偏离中心线的差值,回传给PLC后调用PID算法,计算出传感器的移动速度;内层为速度环,外环计算得出的速度输入到BLD50A电机驱动器后,输出PWM脉冲驱动直流电机转动,转向导引系统控制转向完成AGV的循迹动作。BLD50A驱动器内部的霍尔传感器检测到直流电机的实际转速(+v为正转,-v为反转),和计算得到的转速进行比较。当偏移量较大时,需要及时、快速地提高视觉传感器的移动速度,将传感器位置矫正到色带宽度范围内,避免AGV脱离色带路径。具体的软件设计流程如图12所示。
图11 双闭环结构控制模型
图12 软件设计流程
4 运行测试
在现场测量出色带宽度w=30 mm,触摸屏设定AGV自动循迹时速度v=20 m/min,利用上位机软件对视觉传感器进行监控,记录循迹过程中色带中心点的Y轴坐标并计算出偏差值,如表3所示。
表3 偏差值记录 mm
测试结果表明:采用基于PID算法的双闭环结构控制方法能有效地将偏差值控制在-13~13 mm内,循迹过程中传感器始终在色带宽度范围内工作,极大提高了导引柔性。而且DM码带也能实现目标站点的准确停车,如图13所示,在现场30 t的载重测试下能够平稳运行,说明该AGV结构设计合理,可实际运用到生产现场。
图13 载重循迹运行测试
5 结束语
本设计中的重载AGV主要依靠视觉传感器完成导引定位,纠偏时采用PID算法控制,搬运能力较传统AGV显著提升,达到了设计目的。下一步工作是对多台AGV调度系统进行研究,使AGV之间协同合作,帮助管理者更好地运营生产车间,打造出灵活高效的智能工厂。