大田播种机器人控制系统设计

2024-01-10 10:08谭福生栗连政孙龙龙袁国庆马耀名王雨萌陈嘉和
机器人技术与应用 2023年6期
关键词:鸭嘴大田栅格

谭福生 栗连政 孙龙龙 袁国庆* 马耀名 王雨萌 陈嘉和

(1 辽宁工程技术大学电气与控制工程学院,辽宁葫芦岛,125105;2 机器视觉检测安徽省重点实验室,安徽芜湖,241005)

0 引言

正所谓,民以食为天,农业的重要性不言而喻。但是要想提高农业生产力还是要靠工业和自动化的力量。本文中的大田播种是指最近农业部“小田变大田”大背景下,在农田中进行较大面积的农作物种植。大田播种通常涉及将种子或幼苗按照一定间距和深度排列在农田的地表或土壤中。这个过程可以手工完成,也可以借助机器人进行自动化操作。我国农业机械化率最近几年非常高,田间地头随处可见各种机械,耕田用拖拉机或微耕机,喷洒农药有的已经用上无人机,大棚里已有检测机器人。但是,目前农机的发展还不够,市面上大多数的农机都难以完成高精度的任务,自动化的程度也算不上高。那么或许就需要一种体积更小、精度更高的播种机器人[1]来完成大型播种机完成不了的工作。本文针对东北地区的集中性大田播种作业机器人(简称“大田播种机器人”)进行了开发,为了更高效地开发播种机器人,拟采用基于ROS 分布式通信框架和模块化的设计方案。

欧美、日本等国家和地区在农业机器人领域的研发和应用要比我国早。在美国,一名农场主往往拥有大量的农田,农场采用大规模运作方式,因此开发倾向偏向于农场环境下应用的大型轮式农业机器人,包括种植机器人、除草机器人、收获机器人、巡检机器人等等。基于目前我国农业自动化、机械化发展的不足,以及我国对农业方面能实现自动化生产要求的背景,笔者提出了一种基于ROS 的大田播种机器人,目标是设计一款可以在北方田地中进行播种作业的机器人,播种对象主要是花生、大豆、玉米等北方常见作物。该机器人理论上能适应田地恶劣的环境,配置多块电池,从而保证长时间工作。最后,笔者通过仿真确定了所设计的大田播种机器人的可行性和有效性。

大田播种机器人的设计旨在提高农业生产效率和质量,减轻农民的劳动负担。此外,该机器人还可以通过精确的种植操作,减少种子的浪费和农药的使用量,对环境友好。因此,大田播种机器人控制系统的研究和设计对于推动农业现代化和可持续发展具有重要意义。

1 大田播种机器人控制系统的硬件设计

机器人整体外观如图1 所示,整个机器人大体分为两部分,分别是前部的自动播种合土结构与后部的两轮机械移动平台结构[2]。

图1 播种机器人的外形

1.1 自动播种合土结构

1.1.1 结构设计

图2 所示为播种机器人的自动播种结构。从整体来看,自动播种结构是由外壳、内胆、鸭嘴下种夹、旋转轴、种子箱和用于与播种机器人连接的支架组成。

图2 播种结构外视图

外壳,即滚筒的外面,等距开有孔,用于出种。开孔的地方采用鸭嘴形的下种夹结构,其形状类似中国传统的镐。该结构实际上是利用了仿生科学的原理,由铝合金制成,轻便且坚固。扁圆而薄的结构既能更好地保证合上时的封闭性,又能更好地使夹子插入土中下种。

鸭嘴下种夹的功能为破土和下种,与其相连的J 形杆上装有弹簧,用于使鸭嘴下种夹在打开后能自动合上。外壳连接着旋转轴,旋转轴装在连接支架上,而连接支架的另一端与播种机器人的移动平台连接。旋转轴上还连接着一块连接片,上面装有用于拨动J 形杆使鸭嘴下种夹自动打开的立柱。

内胆结构更为复杂,在旋转轴的一侧安装了链轮;链轮斜下方安装了毛刷和排种轮,链轮与毛刷轮之间由链条连接;排种轮与排种盘相连,排种轮上设有排种槽,排种轮斜下方安装了接种漏斗,排种轮、毛刷轮和种箱都安置在固定结构中。

1.1.2 工作过程

播种前,先将种子装入种箱;启动机器人后,机器人开始移动;在机器人前进的过程中,滚筒向前滚动,种子经通道落入排种槽,排种盘在与滚筒挡块接触的时候,也会旋转一定的角度,从而使排种轮旋转起来;与此同时,链轮会带动毛刷轮旋转,将多余的种子清理出去,最后只留下一颗种子在排种槽中。此外,排种轮与毛刷轮旋转方向一致,可以防止因为挤夹而造成种子被压扁,以及多颗种子挤在一个排种槽中等问题的发生。当接种漏斗底部的出口与排种口对齐时,种子会掉进鸭嘴中,与此同时,与鸭嘴相连的J 形杆会与固定支架连接片上的立柱接触并被拨动,从而让鸭嘴下种器张开,将种子吐入土中。当第二个鸭嘴排种器钻入泥土中进行播种的时候,第一个鸭嘴排种器从巢窝中离开,鸭嘴J 形杆脱离立柱,并受鸭嘴排种器弹簧施加的拉力,将鸭舌封闭起来,这样就可以达到精量播种的目的。

1.2 决策单元

1.2.1 主机

由于设计的播种机器人基于ROS 框架展开[3],ROS并非是一种操作系统,它只是一种通信框架,一种基于消息传递通信的分布式多进程框架。不同模块可以被单独设计,同时单片机又无法完成想要实现的任务,那么就需要一个能搭载ROS 系统的计算机。而将笔记本电脑塞进一个整日工作于户外田地的机器人中,很明显既不能确保电脑能适应恶劣工作环境,又不能降低成本。ARM 嵌入式主机是目前普遍在用的解决方案,因其在功耗和体积等方面的优势,本设计选用ARM 嵌入式主机。

1.2.2 整体架构

传感器主要利用的是一台呈现两幅图像(一幅是普通的RGB 三通道彩色图像,另一幅是深度图像)的RGB-D 相机,惯性测量单元(Inertial Measurement Unit,IMU ),以及激光雷达。

其中,电机控制板主要是单片机电路。控制过程是:单片机stm32f103c8t6 向电机驱动电路发出脉冲宽度调制(PWM)控制信号,电机驱动电路输出电流给电机,电机开始转动,安装的编码器将速度信息反馈给单片机,从而实现一个闭环控制。

1.3 传感器模块

1.3.1 RGB-D 相机

作为机器人眼睛的传感器,一般情况下是以摄像机为主,有的设计用的是单目相机,有的用的是双目相机,还有的用RGB-D 相机。笔者选择了RGB-D 相机。RGB指的是红、绿、蓝三原色,由这种相机上的普通镜头可以生成三通道彩色图像,而D 指的是Depth,也就是深度图像,由一个镜头为红外投影仪发射红光,又有另一个镜头接受红光,分析红外光谱,再通过三角测距来确定每个点的深度。

1.3.2 激光雷达

激光雷达使用由轮趣科技有限公司与镭神智能系统有限公司联合推出的N10 激光雷达,这款雷达采用飞行时间(TOF)测距原理。一般情况下,使用TOF 测距原理的激光雷达测量精度、测量距离等性能要比使用激光三角测距原理的雷达更优,同时成本更高。N10 激光雷达有效降低了成本,使其拥有可观的性价比,且性能较市面上同级别的雷达性能更优,同时支持ROS 机器人操作系统[4],是一款不错的单线激光雷达。

1.4 机械移动平台结构

1.4.1 整体结构方案和运动学模型

机械移动平台是播种机器人的“脚”。该播种机器人采用经典的两轮模型,由两个电机分别驱动的后轮作为动力轮来提供动力,借由电机差速来实现双轮差速转弯。为了确保机器人在大田作业的稳定性,本文设计使用了既作覆土轮,又充当支撑轮的前轮。

1.4.2 电机驱动

电机选用额定电压为48V 的直流有刷电机。该电机额定功率为1000W,输出功率大,输出转速为3500 转/分钟;电机自带减速箱,减速箱采用承载能力大、体积相对更小的行星齿轮减速箱[5],减速比为1:100。

1.4.3 霍尔编码器

编码器是为了测算电机的转速,从而建立运动学反馈。编码器包括磁性编码盘和两个霍尔传感器,霍尔编码器为增量正交编码器,编码线数为两个,相位差为90°。设计利用单片机的I/O 口来接收编码器A 相和B相输出的信号,从而得出电机的转向和转速。

1.4.4 整体供电系统

为了给大田播种机器人提供工作所用的电力,本文选用骆驼蓄电池6-QWLZ-60。该电池为免维护铅蓄电池,额定电压12V,额定电流60A,虽然体积较大、重量较重(约16 公斤),但动力强。

2 大田播种机器人控制系统的软件设计

本文播种机器人的开发是基于ROS 机器人操作系统。所谓ROS,就是一种分布式的通信框架,同时也是目前流行的通用开发框架之一。单片机的编程环境选用Keil5。

2.1 机器人操作系统ROS

本文设计的机器人控制系统基于ROS,ROS 容易部署的特点使得后续的开发更为简单高效。ROS 属于松耦合软件框架,可以利用分布式通信机制来实现节点之间的进程通信,同时ROS 开放的开源库,使得后期的部署和维护更为方便。

具体的部署为,首先在Windows 系统安装VMware虚拟机软件,并在虚拟机上安装Ubuntu Linux18.04 操作系统,之后在Ubuntu 上安装ROS Melodic,ROS 支持分布式通信,树莓派3B+可以作为主节点部署到ROS 网络中。

2.2 主机程序

2.2.1 图像处理

图像处理是利用计算机对图像进行计算分析的技术,包括数字图像处理和计算机视觉两大技术领域。数字图像处理是通过滤波、压缩、变换等算法对图像进行预处理[6];而计算机视觉的目标是利用人工智能算法从图像中获取信息,比如图像识别、图像跟踪、图像测量等。OpenCV 是一个实现数字图像处理和计算机视觉通用算法的开源跨平台库,其采用C/C++语言编写,同时支持Python、MATLAB 等接口调用。

2.2.2 OpenCV 图像处理

由于播种机器人没有安装激光雷达而选择使用RGB-D 相机kinect2.0 的深度图像,并将其转换成激光雷达扫描图来进行地图构建和导航,所以还需要进行一些准备。先是创建一个ROS 节点;再调用“depthimage_to_laserscan”功能包;接着,订阅深度图像和发布激光图像;当接收到深度图像消息时,就会创建一个“depthimage_to_laserscan”服务请求,将深度图像转换为激光雷达数据,并将激光雷达数据发布出去。

2.3 单片机程序

2.3.1 PID 控制

通过PWM 控制电机转动速度,电机速度定为V,但是实际上播种机器人会受到各种干扰,所以使用PID 控制来进行反馈控制[7]。PID 有位置型和增量型两种控制算法,由于电机控制属于速度环控制,通过编码器进行速度反馈,所以应该选用增量型PID 控制算法。

2.3.2 STM32 电机控制程序

电机驱动芯片MC-FBLD-6630 里面已经集成了电机转向控制和电机转速控制这两个在电机控制程序中最重要的程序,用单片机的I/O 口产生控制转向的高低电平和控制转速的PWM 波来进行电机的控制[8]。

3 导航方案

农业机器人采用的导航方法主要有三种:GPS 导航、视觉导航和激光导航。

3.1 激光雷达和IMU 定位

本文设计使用的定位方法是先获得全局地图,再获得激光雷达和惯性测量单元数据,将传感器数据通过ROS 传送到建立的机器人定位(robot_localization)节点,再通过ROS 机器人系统的“robot_localization”功能包,实现多传感器数据融合,使用C++语言编写ROS 机器人使用IMU 和激光雷达的定位程序。

其后调用自适应蒙特卡洛定位(Adaptive Monte Carlo Localization,AMCL)模块,实现机器人的定位和导航功能[9]。该功能包可使用激光雷达和惯性测量元件获取周围环境信息,通过蒙特卡洛定位算法对机器人的位置进行估计,并提供导航和路径规划所需的定位信息[10]。AMCL功能包可以在ROS 的导航堆栈中使用,是ROS 中常用的机器人定位和导航方案之一。

3.2 激光雷达和深度相机构建地图

播种机器人通过Kinect2.0 深度相机和激光雷达采集外部环境,以此来完成机器人的定位与建图。之所以选择这种方法主要是因其稳定性高且能适应复杂的农田环境。栅格地图分为二维栅格地图和三维栅格地图,机器人主要通过激光雷达图得出的二维栅格地图进行导航,借助kinect2.0 得出的三维栅格地图进行避障。

将深度相机得到的深度图转成激光图之后,还需要构建环境地图,以对环境状态进行描述,为机器人定位做好准备。环境地图有多种,比如特征地图、点云地图、几何地图、栅格地图、拓扑地图[11]等。

3.2.1 二维激光图建立二维栅格地图

使用单线激光雷达扫描得到的二维激光图建立二维栅格地图,将二维连续空间用栅格进行离散划分。机器人采用二维占据栅格地图,对划分出来的每个栅格就用一个占据概率值进行量化。使得概率为1 的栅格被标记为占据状态,概率为0 的栅格被标记为非占据状态,概率在0 到1 之间的栅格被标记为未知状态。在导航过程中,要避开占据状态的栅格,在非占据状态的栅格中通行[12]。它通过传感器来探明未知状态的栅格的状态。

3.2.2 景深图建立三维栅格地图

Kinect2.0 得出的景深图在转成了激光图之后,用于建立三维栅格地图。之所以不直接用激光雷达避障是由于二维栅格地图无法描述立体障碍物的详细状态,因此其对环境的描述并不完备。按照二维栅格地图同样的思路,将三维空间用立体栅格进行离散划分,以此得到三维栅格地图。对划分出来的每个立体栅格用一个占据概率值进行量化,相比于二维栅格,三维栅格的数量更大。为了提高三维栅格地图数据处理效率,播种机器人的算法采用八叉树对三维栅格数据进行编码存储,这样就得到了八叉树地图。实际上,将一个立体空间划分成8 个大的立体栅格,然后对每个栅格继续进行同样的划分,这样就形成了一个八叉树结构。利用八叉树,更易于得到不同分辨率的地图表示。

3.3 全覆盖作业规划

在栅格地图中,全覆盖作业路径规划问题即演变为机器人从初始位置到最后的目标位置,自主规划出一条切实可行的无碰撞且效率较高的路径[12]。

本研究拟采用农业播种机器人的全覆盖作业[13]方法,该方法在减少路径重复率、提高覆盖率方面具有优势。

4 机器人的仿真分析

4.1 基于MATLAB 的PID 仿真和控制参数整定

增量型PID 整定顺序如下:

6)根据需要进行微调,调整PID 参数以满足控制系统的要求。

4.2 基于MATLAB 的机器人运动姿态仿真

根据农田中农作物的生长特性,农作物都是按照固定的行距和株距进行种植的,根据这一特性,对农业轮式移动机器人在农作物的行间进行直线行走或换行时进行曲线路径仿真。

图3 是通过MATLAB 软件的Simulink 仿真工具搭建的基于ROS 的双轮差速控制系统机器人的简易模型,旨在对机器人以任意姿态到达目标点进行仿真。该模型由多个子系统组成,每个子系统又由各种信号和函数组成。图3 中X、Y 分别是是机器人X、Y 轴坐标。

图3 大田播种机器人运动控制系统

图4 是PID 控制子系统,内有两个PID 控制器,分别通过机器人到目标距离来计算线速度,通过机器人姿态与目标的偏角差来计算角速度。对应ROS 中涉及运动的各种应用。图4 中lin_vel 是机器人线速度,ang_vel 是机器人角速度。

图4 PID 控制子系统

运动控制系统是用于模拟控制双轮差速机器人的过程,控制量是左、右轮的转速。图5 是基础控制器子系统,将机器人线速度V和角速度解算为机器人左、右轮速度,解算依据约束方程进行。该子系统对应ROS 中的基础控制器。

图5 基础控制器子系统

最后通过运动学模型子系统得出机器人的位姿。该子系统模拟机器人下位机即单片机控制机器人底盘移动的过程。

5 结束语

本设计基于目前我国农业自动化、机械化的不断推行,以及我国农业生产对自动化需求的不断提升,开发一款可以用于田地播种的自动播种机器人,以此来代替人工。该机器人理论上能适应田地恶劣的环境,最后又通过仿真确定了其可行性和有效性。

猜你喜欢
鸭嘴大田栅格
鸭嘴花的化学成分与药理作用研究进展
甜叶菊鸭嘴式移栽装置的研发与设计
基于邻域栅格筛选的点云边缘点提取方法*
“大田后生仔”歌唱家乡
带鸭嘴的汤盆
双鸭嘴式大蒜正头装置调头机理分析与试验
小田变大田破解农地零碎化
“小田并大田”要有序推进
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计