基于stm32的农业采摘机器人设计与实现

2020-06-29 07:16包军民支双双余有江
微型电脑应用 2020年5期

包军民 支双双 余有江

摘 要:为了缓解随着城市化进程的加快,农村人口老龄化的加重,导致从事农业服务的人越来越少,农业劳动成本越来越高的压力,综合各种因素,设计并实现了这款农业采摘机器人,致力于最大化的将人从繁重的劳动中解放出来。机器人采用STM32作为机器人的核心控制系统,用直流编码电机和H桥驱动作为机器人的动力系统,用PWM调速方法来控制机器人速度,再加之以三轴姿态陀螺仪传感器和灰度传感器协调工作作为机器人的定位系统,当机器人到达特定位置后,控制机械臂和机械抓进行采摘果蔬并且收集起来。经测试,该款机器人较好的解决了果蔬采摘耗时、耗力、季节性强等重要影响因素对果蔬经济的影响。提高了采摘作业完成的质量,增强了其经济效益与市场效益。这款基于STM32的农业采摘服务机器人可以有效快速的完成采摘作业,实现了在误差允许范围内精确的停车和果蔬采摘,性能稳定,工作效率高,在后期加以进一步的研究后,有望投于市场中大规模生产。

关键词:检测控制;农业服务;采摘机器人

Abstract:In order to alleviate the pressure of fewer people engaged in agricultural services and increasing agricultural labor costs due to the acceleration of urbanization and the aged tendency of population, an agricultural harvesting robot is designed and implemented to maximize the liberation of people from heavy labor. STM32 is used as the core control system of the robot, DC-coded motor and H-bridge drive are used as the power system of the robot, PWM speed control method is used to control the speed of the robot, and coordinate work of three-axis gyroscope sensor, and gray sensor is used as the positioning system of the robot. When the robot reaches a specific place, it manipulates its mechanical arms and grips to pick fruits and vegetables and collect them. The tests has shown that the robot can effectively solve the problems of fruit and vegetable picking economy caused by time-consuming, energy-consuming, seasonal and other important factors. The robot can improve the quality of harvesting operation, and enhance its economic and market benefits. This STM32-based agricultural picking service robot can effectively and quickly complete the picking task by realizing precise parking and finishing the picking within the allowable range of error. With its stable performance and high efficiency, after further research in the later stage, the robot is expected to be put into mass production in the market.

Key words:detection control;agricultural service;harvesting robot

0 引言

众所周知,我国是农业大国,果蔬种植面积广大,品种繁多,果蔬采摘是农业生产链中最耗时耗力的一个环节,其成本高、季节性强、需要大量劳动力高强度的工作。而最具智慧的人恰恰是农业劳动的中坚力量,在当今科学技术迅猛发展的情况下,实现农业的技术化、机械化成了刻不容缓的问题。在近几年经济高速发展的推动下,农业机械化已经得到了大规模的实现,但这在当中,科学技术的含量还是远远不够,依然没有把农民从传统的以人为中心的劳作中解放出来。其次,由于工业生产的迅速发展,分流了大量农业劳动力以及人口老龄化加剧等原因,使得能够从事农业生产的劳动力越来越少,单靠人工劳作已经不能满足现有的需要[1]。自1968年美國学者Brown和Schertz提出以来,果蔬采摘技术就一直不断发展着,1983年第一台番茄采摘机器人在美国诞生,并且随着算法的成熟和果蔬识别系统与图像处理技术的完善,加以人工智能的提出,使得果蔬采摘机器人的研究越来越成熟,美国、法国、意大利、日本、西班牙等国在这方面的研究遥遥领先与中国,取得了斐然的成绩,但由于果园气候、天气、湿度、

温度、地形等诸多因素都变化莫测,导致对采摘机器人有特殊的要求,目前市场上还没 有完善的可以量化生产的并且可以采摘多种果蔬的机器人[1]。国内对于采摘机器人的研究更是远远落后于其他国家,而集体农庄已成为一种不可阻挡的潮流,对采摘机器人的要求将极为迫切[2-3],我国必须大力发展科学技术产业。在德国工业4.0,美国工业互联网的驱动下,我国提出中国制造2025。这就要求每一个社会主义接班人都必须牢记自己的使命,并努力为之奋斗。

基于上述背景,通过分析目前我国农业劳动的状况,设计并且制作出了这款基于STM32的农业采摘机器人。该机器人用的STM32作为主控芯片,大大提高了系统的反应速度和处理能力;并且装配有大扭矩金属舵机,避免了机械臂扭矩不够的问题;此外,采用前后双排传感器进行路线矫正,极大的提高了机器人行走的稳定性和定点的准确性。机器人在模拟果园中进行测试,并且获得了初步成效,模拟果园如图1和图2所示。

模拟果园场地为平整硬质木板,上铺绿色地毯,周围有高 20CM 高的一体化围墙,由A,B,C,D四个区域构成:

(1) A 区模拟基础设施完整的现代化果园、菜地,有 3 个果实,3 个蔬菜,在 A区的中心线上,有机器人行走引导线。在果实与蔬菜的收获实施地点A2、A3、A4,有采收地点提示线。

(2) B 区模拟基础设施不太齐全,或者辅助采摘设备发生故障后的现代化果园、菜地,有 3 个果实,3 个蔬菜,在 B 区的中心线上,有机器人行走引导线。在果实与蔬菜的收获实施地点 B2、B3、B4,没有采收地点示意线,虚线只是表示其方位,实际场地中不存在。

(3) C 区模拟基础设施不齐全,或者辅助采摘设备发生严重故障后的现代化果园、菜地,有 3 个果实,3 个蔬菜,没有机器人行走引导线,虚线只是表示其方位,实际场地中不存在。在果实与蔬菜的收获实施地点 C2、C3、C4,有收获地点提示标志。

(4) D 区模拟开放的菜地、果园,没有机器人行走引导线,且比 A 区、B 区、C区要高。D 区有 16 个放置蔬菜的地点。

模拟果园与普通果园主要有一下几点区别:

(1) 模拟果园里面的模拟果树没有过多的枝条,与实际果树错落繁杂的树枝有一定差距。

(2) 模拟果园当中的蔬菜直接放在地表,而不是埋在地下。

(3) 模拟果园除了有4个陡坡以外,其他地方都比较平坦。

(4) 模拟果园缺少实际果园中其他不定环境因素的影响。

虽然模拟果园与普通果园有诸多差异,但与管理良好的现代化果园相似程度较高,机器人测试的数据可靠。

1 系统整体设计

机器人的整体系统主要由控制系统、电源系统、寻迹系统、采摘系统、动力系统5部分组成。控制系统的主要作用是控制机器人的各部分协调、稳定的工作,采用STM32控制板,可以给机器人提供充足的控制端口,通过控制板向机器人各部分发送指令,实现一指令一运动的准确控制。

机器人的电源系统目前由12伏3300毫安的航模电池组成,用于为系统各个部分提供所需的电压,尽力使各个模块都在额定电压下工作,随着后期的发展改进,航模电池可以由蓄电池代替。

寻迹系统是机器人行动的关键部分,要很准确的控制机器人稳定行走,不能出现任何偏差,主要由二值灰度传感器和三轴陀螺仪传感器组成。在模拟果园中,二值灰度传感器主要用在有标志线和停车标志的地方,其识别迅速,传值稳定,是寻迹的不二选择;三轴陀螺仪传感器主要用在角度转弯的地方,用于解决特定角度停车的难题。

采摘系统负责机器人果蔬的采集和收集任务,纯钢机械臂加上大扭矩舵机,再配备16路舵机控制板,能够准确高效的完成果蔬采集收集的任务。

动力系统用于实现机器人在温室内的自由移动,由减速电机、H桥直流电机驱动和金属轮组成,三部分协作实现机器人的前进、后退和转弯。系统整体结构如图3所示。

2 硬件设计

机器人的硬件系统电路,如图4所示。

图4通过C语言编程来将指令写入主控板中,主控板通过代码发送信号给各个模块,使各个模块协调稳定的工作。

首先,发送指令给电机模块,使机器人先运动到指定的位置,在这个过程中,配合给寻迹模块发送指令,使机器人能寻迹前行,自我修正路线;等机器人稳定到达后,主控板再发送信号给舵机控制板,控制采摘模块抓取果实与蔬菜;等指定位置的果蔬收集完毕后,机器人按照指令前往下一个收集点。

2.1 电机模块

电机驱动采用大功率H桥直流电机驱动,其采用大功率NMOS管,且带200 mA的5 V电源输出,可方便控制板供电,实现单电源操作,其上有5个可供用户使用的引脚。

如表1所示。

其5个引脚功能为:A1与A2控制电机的状态,其逻辑功能见表1;PA为PWM波输入(电机速度调节);G为与控制板共地引脚;5 V为200 mA的控制电压输出,电机采用AB双相增量式磁性霍尔编码电机,其好处是自带上拉整形电阻,可与单片机直连。直流电机的转动惯量相对较小,容易控制,能够最大程度地提高采摘机器人运动灵敏性,一般由电动机、转子、位置传感器和开关器组成[4]编码器最大的用处在于当没有定点停车标志时,可根据其A、B的输出方波,计算距离,从而实现标准位置停车。

2.2 采摘模块

抓取果实的机械臂由数字舵机与支架构成,数字舵机发送一次PWM信号就能锁定角度不变,而且可以通过上位机软件与舵机控制板通信直接调节舵机角度,在利用舵机控制板控制舵机时,注意电源供电不足,会引起舵机乱动,或者舵机不受控。供电不足表示电流不够,不是电压不夠,电流是用多少取多少,而且舵机控制板是个辅助工具,只能接收单片机发送的命令,或者执行事先设置好的命令,不能对其编程,只能作为一个驱动板。在与单片机通信时,要严格按照所用舵机控制板的协议来通信,否则,可能损坏舵机控制板或者舵机。在给舵机控制板刚通电时,舵机可能会乱动,这是上电复位的情况。可以在电脑上先设置一个简单的动作组,并且用上位机软件设置为脱机工作,这样就可以解决舵机在刚通电时乱动的问题。

2.3 寻迹模块

不能按照既定路线行驶往往是机器人设计时的一大难题,为了解决这一难题,我们采用了2排7路的传感器,这样,可以多路协同工作,在误差区间进行补偿,从而使机器人回到既定路线。传感器以二值状态工作,可通过调节灵敏度从而达到设置预值的目的,在没有达到阈值时传感器输出3.3伏电压,为高电平,当识别到路线时,输出0伏电压,为低电平,这样,就可以以高低电平的不同状态来进行寻迹。

3 软件设计

3.1 部分控制算法逻辑

当给机器人各部分上电后,首先STM32发送指令给动力模块,将PWM信号发送各电机驱动。换言之,控制电机用的是PWM控制方式,该方式是通过电机电枢电压的接通时间与断开时间的比来控制电机转速的[5],这个比值称作占空比,通过调节占空比大的大小即可调节电机转速。其次设置相应的引脚为高低电平控制正反转,当机器人启动后,初始化传感器,使传感器处于工作状态,随时矫正机器人的位置,当机器人到达有果蔬的地方后,主控板停止发送PWM信号或者控制正反转引脚都为低电平使机器人停下来;然后,由串口发送特定的字符串给采摘模块中的舵机控制板,使机械臂和机械爪工作,实现果蔬抓取。收集完成后,主控板重复上述指令,即可再次进行抓取。

当机器人走到需要转弯的地方后,判断是否有标志线,若有,则利用传感器来转弯;若没有,则启动三轴陀螺仪传感器模块,主控板发送指令给继电器,使陀螺仪上电复位,然后主控板再发送特定角度转弯指令,陀螺仪传角度给主控板进行判断转弯何时停止。等机器人转弯到位之后,动力系统启动,再次执行动力指令和按步骤执行抓取指令。程序流程图如图5所示。

3.2 MPU6050三轴陀螺仪设置

在机器人行走的时候,转弯如何转一个既定的角度,这是设计中的难点,利用传感器的状态差只能转特殊的角度,不能达到随心所欲的角度转向。基于这个问题,给机器人装配了MPU6050卡尔曼滤波角度传感器,其可以测量三维加速度(±16 g),三位角速度(±2 000 deg/s),三维角度(X Z 轴±180°Y 轴±90°)。而在这里,因为一般为平面作业,我们大材小用,只用它来测量Z轴角度,与单片机连接,如图6所示。

与6050的信号线和时钟线是根据自己没有用到的引脚设定的,不固定,可以根据方便和需要临时更改,在与单片机连接好后,还需与PC机上位机软件相连,连接如图7。

6050与PC机连接好后,在上位机软件里配置Z轴自主调零,这步操作会使6050在每次重新上电时,Z轴角度都会置零,从而实现相对角度的转弯,不需要测量绝对偏角,而且偏角也可以利用上位机软件来查看。至于如何到每一个位置都使Z轴角度置零,这就需要给6050重新上电,在此之前,6050要断电,要实现这个功能,可以在6050的供电引脚中间加入5伏继电器,利用单片机来控制继电器的常开或者常闭端,从而实现6050的上电与断电。在单片机内可以利用II2C总线读取值,与自己设定的预值来比较,在加入6050的偏差值,来实现特定角度的控制,注意,要使角度准确,就特别要注意6050的安装位置,安装位置也能影响角度。单片机读值程序如下:

4 机器人测试

4.1 机器人转弯与抓取测试

根据原理图将机器人搭建出来以后,将机器人放置在模拟果园场地上进行了测试,观察其寻迹、转弯、抓取各个部分的工作情况以及统计必要的数据。当机器人开始工作时,其特定角度的转弯,如图8所示。

并且要求误差上不能超+1度,机器人实际转弯角度如图9所示。

机器人抓取果实和蔬菜时效率高,准确率高,其实际状态如图10、图11所示。

为了测试机器人的平均工作状态和gon工作性能,根据大数定律,判断机器人的工作稳定性及各项性能指标,对如下项目进行了测试,如表2所示。

机器人的行走距离和转弯角度对机器人来说至关重要,为了得出最优控制数据,对距离误差和角度误差进行了测试,如表3、表4所示。

由表2测试数据得,机器人各项性能稳定基本能实现所期望的功能。从表3和表4数据可以看出,机器人的平均距离误差和平均角度误差都在某一个很小的范围内波动,说明机器人的距离和角度误差基本为一个可以预测的值,这就使机器人控制时可以考虑其为一个定值,更好的控制机器人的位姿。测试表明,该机器人能好的适应工作环境,通过时间测量得出,计算其一天理论工作量与人的理论工作量进行对比,并且,随着劳动时间的加长,人會累,要休息,而机器人只需更换动力电源即可,相比之下,机器人更胜一筹。对比数据,如表5所示。

4.2 编码器定位测试

在没有停车标志的区域,也是最贴合实际果园的区域,则用编码器来控制机器人走的距离。在模拟果园中,两颗果树之间的距离是可以测量出来且不会变动的,而且机器人采用了1:150的减速编码电机,减速后的编码器线数为1 650,机器人的轮子直径为125 mm,两颗果树之间的距离为1000 mm,计算得要使机器人走1 m的距离,电机应该大约转2.55转,即编码器计脉冲书约为4 202。在测试中,单独拿出一电机与LCD显示屏、stm32控制板配合进行测试,实验程序如下:

程序实现功能为利用外部中断记录脉冲数,再通过lcd显示出来。电机转一圈,指针也转一圈(在电机转轴上粘结一个指针),而当指针停在某一角度时,用该角度比360度即为电机所转圈数,再乘1 650即为编码器理论上应该发出的脉冲数,与lcd显示屏的上显示的实测脉冲数比较,从而判断编码器控制距离的准确性。共做三组测试,如图12—图20所示。

通过三组测试,将理论值与实测值进行比较,判断编码器的误差,以及计算在模拟果园中,从一棵树到另一颗树,该设置多少脉冲数,实测值与理论值的比较,如表6所示。

通过三组测试数据与理论数据的对比可以得出,编码器实际发出的脉冲数与理论值相差在±2之内,而2个脉冲对机器人轮子的影响可以忽略不计。因此,模拟果园中可以设置编码器的脉冲数为4202±2,从而实现编码器控制距离,使机器人定点停车。

5 总结

(1) 研究中将地形与位置结合来选择机器人控制方案,实现了较高精度的控制。并且采用三轴姿态传感器,解决了传统车型机器人位置不好控制的问题,密码器加姿态传感器是一种较好的机器人位置控制方式。

(2) 实现了在模拟现代化生态果园中果蔬的采摘,采用定位定量分析法将机器人的工作效率大大提高,符合机器助人这一科学理念。

(3) 基于stm32的農业采摘机器人操作简单,可靠耐用,性能良好,打破了传统的农业服务模式,通过数据对比,其工作能力优于人,可以进行长时间的高强度劳动,可以成为人类的好帮手。且机器人成本较低,一个普通工人月工资应该在5000RMB到8000RMB,而该机器人的成本不到2000RMB,后期优化加入其他模块,也不会超过人力成本,相比之下,基于stm32的农业采摘机器人优点颇多,有很大的发展潜力。

(4) 在以后的研究中,我们将加入机器人视觉,采用双摄像头,利用机器视觉中积分求和思想、模板匹配法、将识别到的果蔬在RGB图和灰度图之间转换,利用不同色彩空间下算法的不同优点来提高果蔬识别率。利用电磁光谱下根据红外区域反射率的不同来进行果疏的检测与识别[6]的方法;参照Unay提出的通过提取苹果的几何特征,使用统计分类器训练的方式进行苹果的识别方法[7];Yimyam提出的采用遗传规划技术来对果蔬进行识别的方法[8];庄路路等人提出了基于 SURF 算法和 BP 神经网络的水果识别方法[9]来提高机器人的智能化水平;降低材料成本,以市场的要求来设计和制作机器人。满足过大果农的需求。

参考文献

[1] 戴增辉, 李光布. 水果采摘机器人控制系统研究——基于英语语音识别技术[J]. 农机化研究, 2019,41(2):225.

[2] 宋健, 张铁中, 徐丽明,等. 果蔬采摘机器人研究进展与展望[J]. 农业机械学报, 2006, 37(5):164-168.

[3] 张洁, 李艳文. 果蔬采摘机器人的研究现状、问题及对策[J]. 机械设计, 2010, 27(6):1-5.

[4] 张战杰. 基于直流电机驱动电路的移动式采摘机器人设计[J]. 农机化研究, 2019, 41(04):248-251.

[5] 刘成涛, 王震, 吴佩志,等. 基于STM32的家用远程CO报警系统[J]. 国外电子测量技术, 2017, 36(6):71-74.

[6] Jimenez A R, Ceres R, Pons J L. A Survey of Computer Vision Methods for Locating Fruit on Trees[J].Transactions of the ASAE,2000,43(6):191-192.

[7] Unay D, Gosselin B, Kleynen O, et al. Automatic grading of Bi-colored apples by multispectral machine vision[J]. Computers and Electronics in Agriculture, 2011, 75(1):204-212.

[8] Yimyam P, Clark A F . Agricultural produce grading by computer vision using Genetic Programming[C]// 2012 IEEE International Conference on Robotics & Biomimetics (ROBIO),2012:458-463.

[9] 庄路路. 基于改进SURF算法和神经网络的水果识别技术研究[D].哈尔滨理工大学,2016.

(收稿日期:2019.08.10)