张 译, 王 霄, 周宇辉
(贵州大学 电气工程学院, 贵阳 550000)
近几年来,国外的智能化物流机器人相对国内发展的较快,一些国外科研机构以及电商和物流巨头已经自主开发和研制出了一系列较为成熟的机器人相关产品。虽然国内出现和应用的比较晚,但是随着互联网购物和快递物流的快速发展,在大型物流仓储管理系统中已有很多相关技术的运用。本文对自动导引机器人小车(AGV)国内外发展现状及趋势进行了深入地分析。对于室内机器人设计提出采用CCD彩色图像采集数据,通过BP神经网络减少样本数据设计室内搬运机器人该方法提升了机器人的稳定性和响应速率[1],设计采用OpenMV和Arduino提供了二种移动方案,实现了机器人识别功能和搬运功能,但在设计上较为繁琐,OpenMV与Arduino串口通讯对目标决策延时较高,系统实时性不高[2];采用MSP430F5438芯片设置高频晶振,提高决策响应速率,添加导航定位、无线通信、安全避障等功能实现搬运机器人系统设计[3]。对于AGV(Automated Guided Vehicle)的应用模式并且比较了仓储AGV相对于传统仓储作业的优点,即降低拣选复杂程度,助于优化资源、降低成本等[4]。利用AT89C52型单片机设计一种仓储物流搬运机器人,该方法明显提升了提高物流运输的效率以及物流运输的智能化[5],在稳定性、可靠性要求不高的机器人设计上通过选择8位芯片作为主控器,但该单片机在硬件性能上明显比不上STM32芯片,本次设计使用STM32芯片性能明显高于Arduino、MSP430F5438和AT89C52丰富的I/O引脚实现复杂功能设计。
总结其特点和相关应用场景,对本文设计的小型室内搬运机器人有着重要的参考和指导意义。
对于大型仓储的搬运机器人目前已经有相对成熟的技术,然而市面上的产品对于一些小型仓储来说,引入AGV的成本过于昂贵,所以本设计针对小型仓储提出了相应的搬运解决方案。此次设计的室内搬运机器人采用两轮驱动、一轮辅助的轮式移动底盘加4自由度机械臂的方案,其中机器人运动部分是本设计的重点所在。在机器人工作过程中,实现实时定位,完成搬运任务。考虑到小型仓储中不宜使用复杂的在线定位或多设备协同定位,所以将采用一种由黑线方格地图加磁标单机离线定位的方式。由摄像头识别黑线,计算直线行走时左右微调的偏差,使机器人移动时能够沿着黑线方格的线条移动。系统控制总体框图,如图1所示。
图1 系统控制总体框图
在移动过程中详细记录上一次机器人的状态(机器人在地图中的坐标、障碍标志)以及当前的移动方向,再根据走过的路程和经过“十字”的个数(干簧管磁标检测计数),时时计算当前位置坐标与目标位置坐标的偏差,根据该偏差和障碍标志(光电开关检测)做出如何移动的决策,由运动控制的子程序接收该决策改变的变量来控制机器人移动或机械臂动作。
(1)地图与标志设计。采用白底黑线方格作为地图,如图2所示。黑线宽度2.5 cm(实验室采用电工黑色胶布即可),每一格大小为30 cm×30 cm。地图左下角坐标设定为(X=0,Y=0),也为该机器人开机时的默认初始坐标。
图2 地图示意图
在每个“十字”交点处安放一块圆形磁标(包括边界的“丁字”交点处),磁标示意,如图3所示。用于机器人精确定位至十字交点。
图3 磁标示意图
(2)机器人定位设计。根据机器人上一次的状态以及移动过的轨迹刷新当前在地图中的坐标。在机器人移动底盘下方的4个方向放置4组干簧管(磁簧开关Reed Switch),安装如图4所示,当4组干簧管都处于导通状态时则判定车体在“十字”的正上方。
图4 干簧管安装图
以相邻两个“十字”间的距离记作“一步”,机器人每行进一步,就根据刚才行进的方向、编码器计数的距离以及“十字”处的磁标检测来刷新一次当前坐标S(XS,YS,ZS,SS),具体坐标的加减原则如图5所示。
图5 坐标刷新的方向示意图
如:从默认的原点(0,0,1,1)(机器人在方格坐标(X=0,Y=0)处,移动底盘朝向右边,机械臂在相对于移动地盘的左45°方向)向前(从地图上方俯瞰为向右)行驶至右侧“十字”,并且4组干簧管都检测到磁标时,进入坐标刷新的程序,由上一次坐标的Z=1可知机器人是向右前进了“一步”,所以当前坐标的X要加1,即当前坐标S为(1,0,1,1)。坐标刷新的方向示意图,如图6所示。
图6 货物与障碍物位置分布示意图
(3)机器人定位决策控制。搬运机器人在接收到(或设定好)搬运任务时,需要根据目的地坐标A(XA,YA,ZA,SA)和当前定位的坐标S(XS,YS,ZS,SS),以及附近障碍物的情况做出如何移动的决策。货物分布在黑色方格的中间,障碍存在于黑线上方,即机器人移动的路线上,货物与障碍物在地图的位置分布如图6所示。
将当前所处的坐标S(XS,YS,ZS,SS)和目的地坐标A(XA,YA,ZA,SA)中的X与Y直接做差,可得到在X轴方向还需移动(XS-XA)个方格,在Y轴方向还需移动(YS-YA)个方格,再与当前坐标S中的Z进行比较,做出机器人该如何移动的决策。当(XS-XA)和(YS-YA)的值皆为0,此时比较机器人朝向Z进行比较,做出机器人该如何移动的决策。和机械臂方向S,调整机器人转角与机械臂方向,对货物执行夹取动作或放置动作。
如果机器人在移动中,前方遇到障碍物,那么先执行向左或向右(检测左右哪边无障碍,优先从左边)绕过一个“十字”的动作(该动作包含4“步”),如图7所示,再继续上面的计算与决策程序。
图7 从障碍物左侧绕过示意图
(4)机械臂设计。本室内搬运机器人采用4舵机驱动的4自由度机械臂,如图8所示。1号舵机控制底座的旋转,2号舵机控制大臂的上下移动,3号舵机控制小臂的转动,4号舵机控制抓手的张开与闭合。
图8 机械臂示意图
电路硬件部分主要由主控芯片、稳压芯片、电机驱动模组及传感器元件组成。
分析此次设计的室内搬运机器人在实际应用情景中各个模块所需要的负载性能要求,进行各类芯片与模块的选型和相应电路设计,硬件电路组成如图9所示。
图9 硬件电路组成图
STM32F系列属于中低端的32位ARM微控制器,该系列芯片是意法半导体(ST)公司出品,内核是Cortex-M3,工作频率为72MHZ,可以使用PLL实现分频和倍频功能,内置有高速存储器,能够实现128 K字节的Flash闪存和20 K字节的SRAM,具有丰富的增强型I/O端口和联接到两条APB总线的外设。
该室内搬运机器人硬件电源管理,如图10所示。使用3种不同电压的供电,即3.3 V、5.0 V和12.0 V。其中,12.0 V是由锂电池组直接提供,而3.3 V与5.0 V则需要使用相应的稳压电路来得到。
图10 电源管理示意图
5.0 V供电用于驱动4个舵机、光电测速编码器与激光测距模块的供电。每个GM995舵机需要至少2 A的电流才能正常工作,堵转时电流会超过3 A,所以这里选用LM2569-5.0稳压芯片,该稳压芯片是开关型降压稳压器,能够输出3 A的驱动电流,该芯片内部集成频率补偿与固定频率发生器,开关频率为150 KHz,输出电压误差在±4%以内,且含有两级降频限流保护和过温保护2种保护电路,如图11所示。
图11 舵机5.0V稳压电路原理图
给光电测速编码器和激光测距模块供电的5 V电源不需要很大的电流,但是需要很稳定且无杂波的电压供电。所以选用TPS7350稳压芯片,这是一款微功耗低压差线性电源芯片,具有完善的保护电路,包括过流、过压、电压反接保护,如图12所示。
图12 其他5.0V稳压电路原理图
3.3 V供电给MCU和鹰眼摄像头以及干簧管,同样需要很稳定的供电电压,故选择TPS7333稳压芯片,这是一款微功耗低压差(LDO)稳压器,与同系列的TPS7350具有相同的保护电路,如图13所示。
图13 3.3 V稳压电路原理图
使用MOS管大功率驱动,PWM波信号与电机供电进行隔离,直流电机驱动电路为一个可逆双极“H”型桥式驱动器。其功率元件由4只N沟道MOSFET管和4只P沟道MOSFET管组成。工作电流可以轻易承受20A,可以大大提高电动机的工作转矩和转速。原理图如图14所示。
图14 电机驱动“H”桥
视觉部分采用鹰眼OV7725(硬件二值化)视觉模块,此模块优点在于可在模块内进行图像的二值化处理(通过与设定灰度阈值比较,将图像像素值转换为“0”和“1”),再将图像信息传输给MCU处理。这样可以分担单片机信息处理的压力,提高其工作效率。
光电开关选择E18-D80NK漫反射光电开关,具有灵敏度高、抗干扰强、高稳定性等特点。
监测机器人完成任务的情况。读取管理员输入的搬运任务,并在解析之后监测任务完成进度,逐一分发给走位决策程序。在一次搬运任务结束时,如果不是最后一个任务,则需要赋值一些标志变量(取物点和放置点坐标以及状态变量)使得搬运任务继续进行。在定时中断1服务程序里执行,定时周期为1 ms。
搬运机器人速度在匀速和静止之间切换。为保证搬运过程中平稳安全运行,在移动过程中通过编码器速度反馈保持匀速(0.5 m/s、1.0 m/s或1.5 m/s),静止时要克服干扰保持速度为0 m/s。
离散式增量PID公式(1):
Δu[n]=KP{e[n]-e[n-1]}+KIe[n]+KD{e[n]-2e[n-1]+e[n-2]}.
(1)
重新组合得式(2):
Δu[n]=(KP+KI+KD)×e[n]-(KP+2KD)×e[n-1]+KD×e[n-2].
(2)
对应到该设计的PWM电机控制中,式(3):
PWMout=(KP+KI+KD)×ΔV[n]-(KP+2KD)×
ΔV[n-1]+KD×ΔV[n-2].
(3)
其中,PWMout是单片机输出PWM波占空比的大小,KP、KI、KD为需要整定的PID系数,ΔV是目标速度与当前测速值的差值。
程序执行周期为1 ms,若设定的速度为1 m/s,则对应编码器值为79,即目标速度V0为79。
通过目的地坐标与当前实时坐标的计算和对比,得到将要执行的走位动作,并且检测前方是否有障碍物。该程序在定时中断2中执行,定时周期为5 ms。如果前方有障碍物,则查看左右两侧是否有障碍物,若左侧没有障碍,则执行“逆时针旋转90°,向前行驶一步,顺时针旋转90°,向前行驶两步,顺时针旋转90°,向前行驶一步”从障碍物左侧绕过,若左侧也有障碍而右侧无障碍,则执行与前者相对称的动作从障碍物右侧绕过,如果左、前和右3个方向都存在障碍的话,则执行“倒退一步,逆时针旋转90°,向前行驶一步,顺时针旋转90°,向前行驶三步,顺时针旋转90°,向前行驶一步”倒退后从左侧绕过障碍物,走位决策流程图如图15所示。
图15 走位决策流程图
鹰眼OV7725(硬件二值化)视觉处理模块。在硬件初始化函数里设定其二值化阈值、图像分辨率等各类参数。
MCU接收到一帧图像后,如图16(a),执行边沿寻线的算法,确定图像中间黑线的左右两个边沿的像素点,并逐行计算出两边沿的中点,如图16(b),赋值给一个数组,称“中线数组”,用数组逐行计算与图像中线的偏差,也赋值给一个数组,称“偏差数组”,再根据实地影响因素(移动速度、摄像头高度等)加权平均计算需要的偏差“DX”。
(a) (b)
在生产制造逐渐自动化、智能化的今天,各类机器人渐渐代替了很多人工。其中搬运机器人在各领域应用颇多。然而,对于小型的电商或者个人网店而言,使用类似京东仓库的搬运机器人系统成本过高,很难实现。对此,本文设计一款适用于小型室内仓储的搬运机器人。此款机器人可以根据用户的需求设定搬运任务,实现自主搬运与归位。
室内搬运机器人系统的硬件部分和软件部分设计遵循标准化、模块化的原则,使得后续开发变容易,稳定可靠性提高,便于日常维护及后续系统优化升级。