APP下载

基于ROBOTAC的自动布障AGV的设计与实现

2022-12-10

武汉交通职业学院学报 2022年4期
关键词:循迹车身电机

马 艳

(武汉交通职业学院,湖北 武汉 430065)

美国物流学会自动引导车系统产品部把自动引导车(Auto-mated Guided Vehicle, 以下简称AGV)定义为装有电磁或光学自动引导装置的运输小车[1]。随着现代工业自动化的飞速发展,AGV因其控制灵活、高智能化、集成度高等特点,在智能制造、仓储物流等领域都得到了广泛应用[2]。

ROBOTAC 是共青团中央和全国学联主办的全国大学生机器人大赛的赛事之一,其目的在于促进产学研合作,推动技术创新和转化,为中国机器人产业培育人才[3]。其中障碍挑战赛项要求参赛队研发制作自动布障AGV,规定时间内在高地上完成布置障碍横杆的任务,最终根据布障得分、比赛计时以及车体尺寸及重量等综合因素得出排名。区别于现阶段批量应用的工厂AGV 低速行驶和路口减速的成熟方案,该赛事要求AGV在高速行驶下循迹,并快速准确地识别路口特征。我校师生在参与该赛项的过程中,充分激发了参赛学生的创新思维和创新能力,研究成果对机器人产业具有一定参考价值。

1 研究思路

ROBOTAC 障碍挑战赛是自动布障AGV 和手动清障机器人的任务赛,自动布障AGV 的任务赛场地图如图1所示,绿色区域为高地,高地采用EVA 垫铺设,比赛要求自动布障AGV尺寸不超过600 mm*600 mm*500 mm(高),布障路径是在高地上从蓝色启动区出发,沿30 mm 的白线按照①②③④顺序完成布置障碍横杆的任务,最后在高地任意位置停止。比赛得分主要是根据布障任务完成情况以及完成时间决定,在两者都相同的情况下,车体重量轻的取胜。

图1 任务赛场地图(单位:mm)

根据分析以上规则,自动布障AGV 在设计上主要考虑下面几个因素:

(1)整车的设计速度较快,直线速度超过300 m/min,远高于市面AGV 产品,需考虑高速运行的稳定性;

(2)行驶路线中路口识别及转向动作较多,如何实现快速可控的转向大幅节省时间;

(3)由于车身尺寸限制,需在保证轻量化的同时,降低重心,减小启动、刹车和转向过程中因轮子打滑造成的失控;

(4)由于完成布障动作需撞击约0.8 kg 的障碍物,需在控制重量的同时保持好重心,保证快速撞击过程中的稳定性。

现阶段,针对该赛事的相关文献较少,各院校的设计方案也相差较大,由于自动布障AGV 无法人工干预修正,其稳定性是完成比赛的关键。湖南铁道职业技术学院的团队选用了S7-1200 PLC作为主控单元,通过位置和速度双闭环修正偏移,提高稳定性[4],但选用PLC 主控板,体积和重量都会大幅增加。

2 整车设计方案

基于以上分析,本设计选用4 个直流电机独立直驱4 个O 型布局的麦克纳姆轮(以下简称麦轮),保证整车具有良好的抓地力,并可通过麦轮差速异步动作实现较为稳定的快速转向,采用大倍率的聚合物锂电池作为动力来源。

在车体设计上选用了多折钣金制作的一体式车身,车身主体无螺钉及焊接,车身强度较高,结构件数量少,附加重量轻。将除控制板以外的所有零部件设计在一体式车身内部,并采用对称布局,保证了因麦轮在高速运行时引起的强振动环境下的可靠性。在18 个队的比赛过程中,有4 个队因螺钉松动或车体变形未完成比赛。

按上述思路所设计的车身结构及零部件结构如图2所示。

图2 车体结构布局图

根据比赛要求,自动布障AGV 需按照规则中标注的①②③④顺序完成布障任务,要求AGV 在高速行驶状态下具备循迹和路口识别两大功能,并具有高可靠性。因此,本设计中采用了双传感设计,均选用8 路智能灰度传感器,其安装位置如图3所示,位于车体前端,前轮前后各1 个。其中,传感器1 主要用于循迹;传感器1 和传感器2配合用于路口识别。

图3 传感器位置图

3 AGV 控制系统的硬件设计

本文设计的布障AGV 控制系统采用模块化进行设计,其主要由主控模块、电源模块、检测模块等组成。系统硬件框图如图4所示。

图4 系统硬件框图

3.1 主控模块

以微控制器以及简单外围电路为基础,增添串口、CAN 、I/O 口等接口电路,完成对AGV 各模块之间的数据处理及功能指令的传达[2]。本文所使用的微控制器是STM32F427IIH 芯片,STM32F4XX系列微控制器相比常用的STM32F1XX 系列具有先进的Cortex-M4 内核、更多的储存空间以及极致的运行速度,在AGV 的应用中,能满足多源导航多通道数据采集需求,同时也能提高系统运算的速度与稳定性。主控模块各接口电路原理图如图5所示。

图5 主控模块各接口电路原理图

3.2 电源模块

电源模块主要给其他各个模块进行供电,由24 V 直流电源输入,经过缓启动保护电路输出24 V 直流电给速度控制模块供电,通过LM25116和MP2233 生成3.3 V 3A 电源对外设供电,通过TPS5450 电源管理芯片生成5V2A 电源为CAN 通信接口和串口通信接口供电,再通过MP2456GJ和LP5907 MFX 生成3.3 V250 mA 电源给MCU供电。PowerTree 如图6所示。

图6 PowerTree

3.3 检测模块

为满足循迹及路口识别功能,车体前端为双传感设计,两个传感器均采用的是8 路数字量智能灰度传感器,如图7所示。

图7 8 路数字量智能灰度传感器实物图及尺寸图

8 路数字量智能灰度传感器支持I/O 数字口与串口两种通信方式。为了减少两路传感器信号相互干扰,两路传感器信息采用不同接口采集,传感器1 使用I/O 数字口传输高低电平数据,8 路I/O 数字口与主控模块硬件连接对应关系如表1所示;传感器2 使用串口通信方式传递数据。

表1 数字口与主控模块硬件连接对应关系

4 AGV 控制系统的软件设计

4.1 AGV 速度控制

4.1.1 AGV 运动模型

麦克纳姆轮运动灵活,但是滚子受力呈周期性变化,在运动过程中滚子外形发生形变,轮子运动轮廓线呈非圆形,导致机器人易于跑偏。为了保证机器人的正确寻迹,优化运动控制算法变得尤为重要[5]。

由于整车的水平运行,可由以下三种独立因素来表述:X轴水平运动、Y轴水平运动、yaw 轴自转。而由于4 个麦轮的速度都是由4 只单独的发电机所给出,若引入正运动学方程,则不满足这约束关系的方程都不能解得。所以本方案采取逆运动学方法,如图8所示,对整车运动状态进行了四步分析,可以得到速度与4 个轮子的轮速之间的对应,如此即可获得唯一解。

图8 AGV 运动模型求解分解图

AGV 运动模型如图9所示,其中O点为对角两轮轴心连线的交点,轮子的轴距为2a,两轮间距为2b。为yaw 轴自转的角速度,定义方向逆时针为正;为小车左右的的运动向量,向右为正;为小车前后的运动向量,向前为正。

图9 AGV 运动模型

(1)整车与轮心的运动学方程

对应于X轴和Y轴的方程分别为:

(2)计算辊子的速度

分析单个麦轮上辊子的受力情况,其中为辊子轴向速度分量,为辊子切向速度分量,对于小车运动没有起作用,因此只关心[6]。

由图可知:

(3)计算轮子的速度

综上所述,麦轮逆运动学公式为:

由于C620 搭配M3508 电机性能的实测曲线已知(见图10),可以通过AGV 小车的运动需求计算出麦轮的转速,从而求得电机的转速。

图10 C620 搭配M3508 电机性能曲线

例如,当AGV 小车沿X方向直线行驶时,可得:

其中,M3508 电机转速为n,减速比为19,将麦轮半径设计为R=40 mm,所以要使AGV 直线速度达到设计的300 m/min,电机转速至少为:

该转速正好处于效率较高的区间,发热量较少,电机工作状态较稳定。

4.1.2 速度PID 闭环控制

为了使AGV 平稳运行,这里采用闭环PID 控制算法。根据上述AGV 运动模型的计算,我们能通过需要的车速计算麦轮转速,这里我们使用3508 伺服电机为麦轮提供转速,并配合使用C620电调控制电机。C620 电调可以通过两种方式控制电机,一种是接收PWM 信号,另一种方式就是CAN 通信。虽然在用PWM 控制时它是自带速度PID 的,但经实际测试,速度稳定性不好;而相比起来,CAN 通信方式不仅速度稳定性更好,抗干扰能力也更强,能有效抑制电磁干扰,时序定位更加精确,同时一个CAN 可以最多控制8 个电机,满足本设计中AGV 四驱要求,因此这里使用CAN总线控制,这种方式需要通过控制器进行PID 计算,使AGV 在高速循迹及转向等运动过程中更加平稳。电机速度PID 原理如图11 所示。

图11 电机速度PID 原理框图

这种控制方式是C620 定期上传电机的电流、速度、位置等信息,控制器读取CAN 报文之后通过PID 计算得到输出量,再通过CAN 总线下发报文,从而实现速度PID 控制。CAN 上传报文和CAN 下发报文如表2和表3所示。

表2 CAN 上传报文

表3 CAN 下发报文

电机中流过电流大小近似正比于电机角加速度的大小,是转速的低阶物理量,因此,这里用电流大小作为PID 的输出结果。

4.1.3 AGV 速度控制程序

PID 控制算法因时间离散化不同,通常分为位置式 PID 控制算法和增量式 PID 控制算法,本设计采用位置式PID 控制算法。

PID 算法公式为:

其中,Kp为比例控制参数,用来消除系统的当前误差;KI为积分控制参数,用来平均过去的误差;KD为微分控制参数,用来透过误差的改变来预测将来的误差[4]。

对应位置式PID 控制算法的具体程序如下:

AGV 速度控制程序的核心是电机控制任务的实现,电机任务首先进行PID 的初始化PID_struct_init(&pid_speed[i], POSITION_PID,20000, 20000, 1.5f, 0.1f, 0.0f)将四个电机的初始化信息设置为位置式PID、PID 输出限幅20000。关于PID 参数,在试车实验前,团队通过MATLAB 进行PID 仿真,也根据试车情况进行多次优化,从而获取较优参数为KP=1.5,KI=0.1,KD=0。随后进入for(;;)循环,依次对四个电机进行PID 计算,然后将四个电机的PID 计算结果输送到CAN 总线。

4.2 AGV 运动控制

根据对车体结构、路线分析及实测情况进行分析,总结出关于AGV 运动路径设计时需注意以下几点:(1)AGV 在布障过程中,必须以巡线为主要运行方式,在车体打滑或障碍杆碰撞导致车身方向偏离路线的情况下,巡线方式可以迅速调整车身姿态;(2)由于传感模块安装在车头部分,因此AGV 在巡线及路口判断时,车头必须朝前;(3)按顺序布障,需有效快速进行循迹模式及非循迹运动模式的切换;(4)满足以上条件情况下,应充分利用麦轮的特点,进行合理路径规划以缩短任务完成时间。本文针对布障任务,规划出多种路径,通过不断对比实验,得到最佳路径,该路径的AGV 运动软件控制流程图如图12 所示。

图12 AGV 运动软件控制流程图

在上述运动控制流程中,重点要做好循迹过程控制以及非循迹模式下的路口识别控制。

4.2.1 循迹过程控制

本设计中AGV 循迹过程是通过传感器1 采集轨迹信息,并将信号通过数字I/O 口传送至主控模块,由主控模块判断车身是否出现偏移,依据偏移量调整左右麦轮转速,通过左右麦轮的速度差实现车身转向,从而纠正偏移。

由于选用的是8 路数字量智能灰度传感器,其检测点位是离散的,本设计依据这一特点,设置了7 段式差速纠偏方案。

传感器1 中点位置与轨迹的中轴线距离为X,如图13 所示,根据X值的变化(此处以车身在轨迹线右侧为例,左侧与右侧参数设置对称),通过调整左右麦轮的差速比值,实现车身转向纠正偏移。需要注意的是,当车身偏移过大,X值达到了59 mm 以上,则直接将麦轮调整到原地转向状态纠正偏移。在试车时,我们通过实验法对参数进行不断优化,得到了最佳参数,如图14 所示。

图13 车身偏移示意图

图14 7 段式差速纠偏参数

4.2.2 路口识别

自动布障AGV 需按照比赛规则中标注的①②③④顺序完成布障任务,这就需要通过路口识别完成AGV 循迹模式与非循迹模式的切换,具体来说,需要通过对左岔路口、十字路口、丁字路口的识别对布障位置进行判断。路口对比图如图15 所示。

图15 路口对比图

由图可知,利用传感器1 即可完成对左岔路口的识别。当传感器1 的 Bit0-Bit4 的5 个离散点位均检测到白线信号,同时Bit5-Bit7 未检测到白线信号,即可确定识别到左岔路口,进入非循迹模式,进行1 号障碍杆的布障工作,考虑到车身在循迹过程中可能存在微偏移,程序中判断左岔路口的条件将左右边缘检测点位去掉,以防止出现误判断导致布障失败。

同理,Bit1-Bit6 均检测到白线,则可判断检测到了十字路口或丁字路口,然而如何区分这两种路口,仅用传感器1 无法区分。因此,本设计在车头加入了传感器2,传感器2 使用串口与主控模块进行通信,当传感器1 的Bit1-Bit6 均检测到白线,同时传感器2 任意点位也检测到白线,则可判断为十字路口;反之,当传感器1 的Bit1-Bit6均检测到白线,同时传感器2 没有点位检测到白线则为丁字路口。十字路口与丁字路口判断示意图如图16 所示。

图16 十字路口与丁字路口判断示意图

传感器2 串口通信部分关键程序如下:

双传感器进行路口识别的具体判断条件如表4所示。

表4 3 路口识别判断条件

5 验证及优化

通过以上设计制作的自动布障AGV 如图17所示,试运行过程中,反复针对出现的问题不断优化:

图17 自动布障AGV 实物图

(1)车身在急刹或转向时,容易产生侧滑现象,结构上进一步优化了重心,加厚底部防护板,控制上减少了起步,刹车和转向的加速度,提升了AGV 的稳定性;

(2)传感器在外部光源较强时容易误报,为此优化了传感器,为其增加了3D 打印的遮光罩,如图所示18 所示;

图18 传感器遮光罩

(3)主控板的通讯部分容易受电磁干扰,特别是麦轮摩擦EVA 地面会产生大量静电,测试中2 块主控板均因静电损坏,这也是部分比赛团队选用PLC 主控板的原因之一,本设计通过优化结构,将主控板移至顶层,设计为浮地低通,采用FR4 环氧板做EMC 隔离,在后期的测试及比赛中,主控板一直稳定运行;

(4)对AGV 速度控制进行运动学分析,精确计算电机速度,并通过MATLAB 仿真及实车测试,进行PID 参数调节,得到较优参数,使AGV 高速循迹运动过程更加平稳;

(5)规划AGV 自动布障路径并不断优化,获得了最优路径及最短时间方案;

(6)对7 段式差速纠偏参数进行不断测试及优化,获得最优纠偏参数,使纠偏速度更快,过程更稳定。

通过比赛的验证,该设计的AGV 直线速度可达300 m/min,按照程序反复执行30 次,路口识别正确率100%,任务完成时间的误差值在±3%以内,过程中未出现明显滑动摩擦,车身无松动,未出现异常状态,具有较高的可靠性。

6 结论

由本校设计团队按照本设计方案开发的自动布障AGV 在全国大学生机器人大赛ROBOTAC赛事中获得了全国二等奖,与获得三等奖及以下团队相比,我们布障任务完成得更好,同时速度更快,车体重量更轻、体积更小;而一等奖作品则胜在时间更短,其原因是他们设计在直线阶段小车不循迹,节约了一定时间,在识别路口时纠正车身偏移,这种方式下,容易出现车身大幅偏移难以纠正的现象,因此他们牺牲了车体重量与车身宽度以增加抓地能力来减少车身偏移。相比来说,我校团队设计的是在循迹过程中实时纠偏方案,所需时间相对略长,但可靠性更高,也兼顾了车身体积小及轻量化要求。因此本设计能够在较高速度下准确地循迹及路口识别,工作稳定可靠,对于提高高速AGV 性能有一定参考意义。

猜你喜欢

循迹车身电机
姑苏城内话车身
基于DFT算法的电力巡检无人机循迹检测系统设计
泵用电机水润滑轴承选择与应用
关于电机滚动轴承的选择与计算
瞻望电机的更新换代
智能差分循迹小车设计
电机隐忧
基于MC9S12XS128处理器的智能循迹小车分析研究
事故车维修中的车身防腐(三)
卡板在车身修复过程中的作用