浅析燃料电池驱动农业搬运机器人*
2021-02-07吴豪杰
宋 敏,吴豪杰
(天津职业技术师范大学,天津 300222)
0 引言
随着经济的快速发展,种植农作物的种类日渐丰富,农民的工作强度和工作量也在逐渐增加,在农业耕作方面越来越多的人选择农用机器人解放繁重的劳动力。 各种普通电池驱动农用机器人数量的增加,缓解了部分劳动力的同时,也带来了环境污染、消耗成本大、生产效率低、资源利用不合理等问题[1]。 这些现实问题限制了在农业上使用机器人代替人力的频率,从而无法满足农民追求解放繁重劳动力的需求。
本系统以嵌入式硬件平台为基础,利用GPS 定位、超声波传感器、惯性导航等技术完成设计,研究普通电池驱动农用机器人出现的各种问题,通过对机器人进行定位、导航以及避障的控制,实现对任务目标路径优化,提高系统的安全性和工作效率。 采用燃料电池驱动的方式,改善了普通电池驱动带来的环境污染问题。
1 总体方案设计
通过AGV、GPS、 惯性导航等技术的燃料电池驱动农用机器人控制系统,实现对任务目标路径优化,提高安全性、工作的可靠性以及工作效率。 利用超声波传感器对行驶方向进行障碍检测,若前方存在障碍物则需要优先避开障碍。 系统总体设计框图如图1 所示。
图1 系统总体框图
2 硬件设计
系统的硬件部分主要有GPS 模块、AGV 电磁巡线模块、MPU6050 陀螺仪模块、超声波避障模块以及微控制器。
2.1 GPS 模块
在室外定位的方式多种多样,如果只需要大概的位置信息,便可以使用GPS 定位。 在一般情况下,GPS 定位的精度在5m 左右,通过GPS 模块就可以确定机器人在户外的大致位置信息。 本设计采用了集成的GPS 定位模块,模块采集的位置信息通过串口发送至主控制器。 模块原理图如图2 所示。
图2 模块原理图
2.2 电磁巡线模块
在地面铺设电磁引导线并通入20kHz 的正弦信号,机器人加装用于采集磁场信号的电感后就可以用自动沿着电磁引导线前进。 这一方式的定位精度可到亚厘米级,精度较高,可用于机器人的运动路径规划。 巡线的原理是电磁感应定律,即磁通量的变化会在线圈中引起感应电动势。传感器与电磁引导线的距离越近,感应电动势就越大,故这一电动势稍加处理就可以反映出当前机器人与引导线的相对位置偏差,进而实现巡线功能。 使用10mH 电感与6.8nF 电容组成并联谐振电路,可以有效地输出20kHz的信号而抑制其他频率信号的影响,但因输出是交变的信号,故还须在后一级电路中对信号进行整流[2]。 图3 为电感传感器的等效电路图。
图3 等效电路图
2.3 MPU6050 陀螺仪模块
MPU6050 是一款集成的运动处理组件,可用于采集地磁方向与加速度信息。 在本设计中未使用地磁场信息,仅使用了模块的三轴加速度信息。 确定了出发位置后,不断对机器人的三轴加速度积分,就可推算出当前的位置、速度以及偏航角等信息。这种定位或路径规划方法称为惯性导航,因几乎不依赖任何外界信息,也几乎不受外界环境干扰的优点,广泛用于潜艇、飞机与弹道导弹等等[3]。 因为无法独立预测识别途中是否存在合适的道路或障碍物,这一方法较少应用于地面交通工具。图4 为模块原理图。
2.4 超声波避障模块
图5 超声波测距模块原理图
超声波避障的原理是使用超声波对机器人的行驶方向测距,若在距离测量范围之内有障碍物,则可以确定机器人到障碍物的距离,进而通过MCU 实现避障。 超声波测距是一种间接测距方式。 在进行测距时,模块发射端向某一方向发出一段一定频率的超声波,若该方向上有某一物体,则超声波会被反射回来并被接收端捕获,因为声波在空气中的传播速度相对固定,15℃时约为340m/s,通过记录发射与接收的时间间隔,就可以算出模块到障碍物的直线距离。 图5 为超声波测距模块的原理图。
2.5 微控制器
STM32F103 是 ST (意法半导体) 公司推出的基于ARM Cortex-M3 架构的32 位微控制器系列。 本设计中的主控制器使用的是其中一款畅销的芯片STM32F103ZET6,该芯片支持最大72MHz 时钟主频,支持单周期的乘法与硬件除法,拥有11 个定时器、3 个ADC、5个USART 接口与112 个双向I/O 口,性能强劲,功能强大。 图6 为最小系统的原理图。
图6 最小系统原理图
3 软件设计
完成硬件电路的搭建后,就可以着手进行软件部分的设计。 软件与硬件有机协调配合才能让系统更加平稳地运行。 在进行软件设计的时候需要充分考虑硬件电路的特性以及可能发生的意外情况。
系统软件部分开发在集成的开发环境中完成。 一般用于开发STM32 系列微控制器软件的集成开发环境是Keil MDK。 Keil MDK 简洁实用,完美支持 Cortex-M 系列的产品,且可搜集到的STM32 的源码资料大多是在Keil MDK 平台上编写的,这有助于新手学习开发技术。机器人的软件部分主要包括各硬件模块的初始化,AGV 巡线程序,定位程序,避障程序等[4]。 接下来分别进行介绍。
3.1 AGV 巡线程序
路径的规划由电磁巡线模块完成,需要编写驱动程序对该模块进行初始化以及数据采集等操作。 AGV 电磁巡线模块返回的是模拟信号,其初始化程序主要是对微控制器A/D 转换模块的配置[5]。STM32F103ZET6 自带A/D转换器,故无需外接A/D 转换芯片。 巡线程序流程图如图7 所示。
图7 巡线程序流程图
图7 中,对传感器返回的数据进行了差比和运算,在此对差比和算法加以简要介绍。 机器人行进方向共安装了5 个电感传感器模块,取左右对称的一对传感器AD 值进行如下运算:
式中:e(t)为经由这一对传感器计算出的当前的位置偏差;eL(t)为左侧传感器采集到的位置偏差;eR(t)为右侧传感器采集到的位置偏差。
取三种特殊情况进行分析:
1)eL(t)=eLmax,eR(t)=0 时,e(t)=1,可认为此时机器人的向左偏差达到最大。
2)eR(t)=eRmax,eL(t)=0 时,e(t)=-1,可认为此时机器人的向右偏差达到最大。
3)eL(t)=eR(t)时,e(t)=0,可认为此时机器人行走在引导线的正中间。
4)其它情况时,e(t)在上述3 个值之间连续变化。
使用这一种方法处理电感传感器的偏差数据,可以有效地抑制环境影响,增加系统的鲁棒性。
3.2 GPS 定位模块
本设计使用的ATK1218-BD 是一款GPS 定位模块,采用串口方式与其它模块通信。通信协议是NMEA-0813。NMEA - 0183 是一种海用电子设备定位的标准格式,由美国国家海洋电子协会(National Marine Electronics Association) 提出。 NMEA-0183 协议采用 ASCII 码来传递GPS 定位信息,称之为帧。 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF)。
1)“$”:帧命令起始位。
2)aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)。
3)ddd…ddd:数据。
4)“*”: 校验和前缀 (也可以作为语句数据结束的标志)。
5)hh: 校验和 (check sum),$与 * 之间所有字符ASCII 码的校验和(各字节做异或运算,得到校验和后,再转换 16 进制格式的 ASCII 字符)。
6)(CR)(LF):帧结束,回车和换行符。
NMEA-0183 常用命令如下表1 所示。
表1 NMEA-0183 常用命令
3.3 惯性导航程序
本设计中使用的MPU6050 模块自带数字运动处理器(DMP),通过IIC 接口向控制器输出数据。 惯性导航程序模块中包含模块的初始化程序、数据接收程序,加速度积分程序以及路径规划程序等。 程序流程图如图8 所示。
图8 程序流程图
3.4 避障程序
小车在行进过程中需要主动避开障碍物,这一功能由超声波测距传感器作为硬件基础。 避障功能的软件部分主要是超声波传感器的驱动程序[6]。驱动程序包括传感器的初始化与距离检测程序等。 避障程序的流程图如图 9 所示。
图9 避障程序流程图
4 结束语
综上所述,本系统设计了燃料电池驱动机器人,工作效率高,减少环境污染等优点。通过AGV、GPS、惯性导航等技术进行控制,能够完成对物料的准确定位,保证了系统的安全性和可靠性。 系统设计减少了功耗,便于维修和检修且维护成本较低,可广泛应用于农业耕作的各个方面,可减少人力工资花费,增加农民收入,有较好的应用前景。