本草莓采摘机器人控制系统是由江西理工大学机械工程专业的程鹏胜设计开发完成。针对某草莓种植基地模块化种植的高架草莓人工采摘耗时长成本大的问题,提出了一种全向移动的草莓采摘机器人系统方案。
系统的硬件电路最重要的包含以STM32F407ZGT6为核心的主控制器、电源电路、WIFI模块、激光测距单元、电机驱动模块。系统的软件设计最重要的包含RT-thread实时操作系统在单片机上的移植调试、树莓派3B+视觉识别、树莓派与单片机数据传输的通讯调试、机智云物联网和WIFI模块在单片机上的接入以及树莓派上位机控制系统软件的实现。
通过利用深度学习算法实现草莓的识别与定位,将采摘信息以及采摘机器人的状态使用物联网技术传输到云端,实现草莓采摘机器人的自主采摘和云端监测,最终完成一整套稳定控制的草莓采摘系统。
本系统设计对于高架草莓的采摘搭建了移动式草莓采摘机器人样机,总系统由全向移动底盘、机械臂、视觉系统、运动控制器组成。系统模块设计图如图1.1所示。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F6daacc60j00ry36ul0019c000tt00ipm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
系统框架如图1.2所示, 采摘机器人结构简图如图1.3所示。主要研究了采摘机器人的全向移动底盘、机械手及其控制、视觉识别系统和整机的控制管理系统。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fb673f27bj00ry36ul000ec000f0008im.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Ff68e2a67j00ry36un000lc000fv00alm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
根据某草莓种植基地采用一行式的种植方式,模拟搭建草莓架如图1.4所示。前期调试采用仿真草莓,后期整机调试采用真实的草莓果实采摘作业中仅对独立生长的草莓进行采摘 并未对相互接触的草莓进行分离采摘。整机采摘机器人的动作流程如图1.5所示。根据种植基地的种植特点草莓种植行列规范,实验样机仅对单列种植进行实验,对于多行的采摘在后续的工业样机中根据导航方式实现。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fa4c4daedj00ry36ul000oc000gg00cam.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fc49fec4dj00ry36ul000tc000fp00lrm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
草莓采摘机器人设计的硬件控制系统框图如图2.1所示,包括核心控制单元、传感器、驱动器等。核心控制单元包括单片机和树莓派,树莓派负责视觉数据的处理和指令下发,单片机接收并执行指令,此外,还处理一些简单的传感器数据。传感器包括激光测距、陀螺仪、编码器、薄膜压力传感器。驱动器包括电机驱动和机械手的舵机驱动,物联网单元中的WIFI模块负责将采摘数据及机器人的状态上传到云端。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F52d4e2a3j00ry36um0011c000xn00gkm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
根据移动机器人的硬件要求选择控制器的主控芯片。鉴于实验平台能耗以及控制器的数据处理能力等问题,选用STM32F407ZGT6芯片作为控制器芯片。并且采用树莓派3B+,用来运行图像处理程序,以及将计算结果进行机械臂的逆解计算后发送给单片机。树莓派3B+实物图如图2.2所示。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F2820202dj00ry36ul0017c000hb00b4m.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
为方便查看采摘机器人的工作状态和采摘数量,本文采用无线网连接的方式来进行实现,选用ATK-ESP8266模块作为机器人数据收发的节点。ATK-ESP8266模块支持TTL串口通信,同时兼容3.3V和5V的电压,对于不同电压要求的单片机连接方便。模块实物如图2.3所示,各引脚的功能如表1所示。使用该模块首先将IO_0拉低进入固件烧写模式,烧录完成后能通过手机或电脑搜索到该模块的信号,最后把模块的发送引脚和接收引脚与单片机的发送和接收交叉连接即可通讯。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F85add32dj00ry36ul000oc000b80086m.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F295a13c1j00ry36ul000ic000gm009ym.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
使用STM32F407ZGT6芯片作为控制器的核心芯片,设计了一个完全匹配本文实验平台的PCB底板,PCB底板和核心板的连接引脚图以及底板三维图如图2.4所示。底板上设置了多个传感器的接口如编码器、串口、陀螺仪和舵机控制板的I2C总线接口,以及用来外接引脚的排针排母。编码器接口使用了XH2.54的标准接口使实验平台的整体布局更加美观。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F96bd625bj00ry36ul001kc000nw00bcm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
本控制系统软件设计部分由硬件控制和数据处理两部分所组成,其中硬件部分采用了实时操作系统,该系统能够在数据或命令产生时对数据快速地处理。当有多个任务同时出现,会按照任务的优先级控制实时任务的运行,具有及时响应和高可靠性的特点。
对于采摘机器人系统来说,不仅需要对机器人本体控制还要具有上传机器人信息以及作业情况的功能,物联网平台就成了一个重要的工具,实现物联网通常要数据云,上传数据的终端设备,以及获取数据的设备三个基本元素组成。本文利用智能硬件常用的机智云物联网平台做配置,并采用WIFI无线连接的形式接入机智云,上云的数据包括了机器人本体的信息以及采摘数量。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fc3fb1527j00ry36ul000nc000z800f3m.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
机智云平台是一款应用于智能硬件开发与云计算应用的平台。它为研发人员提供了一个智能的硬件开发工具以及一个开放的云计算平台。该系统具有完整的SDK和API的服务功能,大幅度减少了硬件的开发难度和费用。本文设计的草莓采摘机器人,利用ESP-8266无线网络模块实现连接机智云服务器,实现采摘机器人本机信息以及采摘数量上报到手机或电脑客户端,另外上报信息的种类能够准确的通过需要进行扩展。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F4dd6bdcbj00ry36ul000xc000z700gdm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
开发机智云平台的物联网功能首先在机智云网站新建产品,接着新增数据点,数据点就是在移动端能看到的信息,本文共设置了五个数据点分别为:采摘数量、相机状态,机器人电量、机械手状态,机器人姿态。创建数据点的信息如图2.5所示。其中设置采摘最大统计数量为65536,并且为可写模式,也即在收获一定数量后可以手动清零数量。电量的数据类型为报警模式当电压低于11.7v时进入报警状态,机器人姿态的角度范围为0度到360度,相机状态和机械手状态均用布尔值来表示。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F282ed8eaj00ry36um001bc000wu00iem.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
完成数据点的设置后在网页进行在线调试,模拟设备上报在移动端查看数据,在模拟设备端调整数据后移动端端数据就会有相应改变,模拟设备端数据上报为{变量名: 变量值}的形式。例如在模拟设备端设置电池状态为1,相机状态为1,机械手状态为1, 机器人姿态为0,采摘数量为20得到的效果如图2.6所示,由可知移动端更新正常,数据点可以正常使用。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2F59d840cej00ry36ul001ac000yw00kdm.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
完成调试后利用机智云的MCU开发工具生成stm32的硬件代码,由于生成的代码 是hal库的代码,机器人底层控制代码利用标准库编写,因此有必要进行移植。根据机智云网络协议,首先建立1毫秒的时间基准,然后将智能云数据接收功能添加到串口接收中断处理功能中,并将其修改成真正的传输接口功能。最后再新建一个线程定时上报数据,至此机智云移植完成。除此之外,启动机智云的传输需要在系统初始化中设置ESP-8266为Soft-AP模式,机智云APP中才能搜索到设备做连接。
通过对五次的采摘过程进行记录统计每个过程的耗时如表2所示,图像识别的过程的平均时长为0.23s,机械臂移动到目标点并采摘放置的平均时间为6.8s,总时长在7s左右。将采摘后的草莓放置到果篮的过程耗时较长,原因是果篮在机械手的正后方,放置草莓需要将机械手回转180°。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fa81ef593j00ry36ul000xc000y3007am.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
采用mm2020mm的型材搭建了草莓架,草莓架长度方向为3000mm,高度方向为 500mm。本实验只考虑室内采摘的情况。采摘过程如图3所示,a表示了采摘机器 人移动到草莓的正前方;b中机械手移动到果实的正上方;c中末端执行器夹爪 闭合;d果茎被剪断;e机械手放低姿态;f和g机械手旋转至果篮上方;h机械手末端执行器打开草莓落入果篮中,至此一个草莓采摘周期完成。
![](https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2023%2F0720%2Fa7782660j00ry36um001kc000z700cum.jpg&thumbnail=660x2147483647&quality=80&type=jpg)
本设计完成了采用麦克纳姆全向移动底盘的四自由度机械手并包含了视觉识别的草 莓采摘机器人样机,实现了移动平台的自由行走,综合了阈值法和卷积神经网络的优点以及机械手对草莓的收获。在草莓采摘机器人软硬件的设计。对草莓采摘机器人的硬件模块以及主控芯片进行选型,同时对电源电路、驱动电路、编码器的连接电路等进行PCB设计和打样。底层硬件程序框架 采用了RT-Thread实时操作系统,视觉识别程序运行在树莓派中并使用无线模块将采摘信息和机器人状态上传至机智云物联网,可在电脑端和手机端同时查看。