1. 引言
在现代农业中,智能化技术的应用逐渐成为提高效率和产量的重要手段,智能田间松土机器人作为农业自动化的重要组成部分,正受到越来越多的关注。然而,目前智能田间松土机器人在设计与实现过程中面临一系列挑战,包括适应性差、定位与导航精度不足、与现代农业设备集成困难、缺乏实时监测与反馈机制、控制系统复杂性高,以及动力与能耗问题等。针对这些问题,本文将致力于提升田间松土机器人的整体性能,通过设计多功能的松土工具和传感器,提升机器人的适应能力,以应对复杂的农业环境;增强高精度定位系统,采用先进的定位算法;研发基于机器学习的控制算法,使机器人能够通过不断学习和优化操作策略,提高作业效率,降低人力需求。
在近年来,智能农业机器人技术的开发引起了众多研究者的关注,尤其是在松土和耕作相关的机器人应用领域。许永跃等[1]提出基于最大相关性准则(MCC),改进扩展卡尔曼滤波(EKF)及无迹卡尔曼滤波(UKF)提高定位算法,能够提高IMU-UWB融合定位的精度以及鲁棒性。方育鑫等[2]则提出基于机器视觉和传感器的导航技术,展示了机器人在复杂地形下的导航能力。这些研究虽然展示机器人在特定操作模式下的有效性,但普遍存在灵活性不足的问题,难以适应复杂农业环境的变化。此外,王立军等[3]研究蚯蚓的运动特征及其在玉米脱出物运动中的应用,何子瀚等[4]则开发了仿蚯蚓移动机器人,这为本研究提供新的思路。然而,目前的控制算法大多依赖于基础的传感器输入,缺乏先进的数据融合与实时决策机制,无法有效应对多变的田间条件。尽管已有文献讨论了机器人制造成本的问题,但仍缺乏系统性的低成本解决方案,导致智能机器人在实际应用中的普及受到限制。
因此,亟需一种新型、灵活高效的田间松土机器人,以优化现有技术并提高其在实际农业生产中的应用潜力。本文提出一种基于ROS (Robot Operating System)系统的智能田间松土机器人设计方案。与传统系统相比,ROS提供灵活的模块化架构和丰富的功能库,这使得机器人能够在多种农业环境下高效执行任务。通过集成多种传感器的数据,采用先进的决策算法,从而赋予机器人自主决策能力,使其能够在复杂的农业环境中灵活适应并应对变化。首先,强调了机器人在动态农业环境中的适应能力,采用传感器数据融合与实时反馈机制,使得机器人能够高效识别和处理环境中的障碍物,提高作业安全性;其次,开发了基于机器学习的控制算法,使得机器人能够通过不断学习和优化其操作策略,从而提升作业效率,并降低人力需求;最后,针对设备制造成本问题,本研究设计了低成本的组件和模块化结构,旨在降低智能机器人在实际应用中的经济门槛。具体研究内容为机器人体系架构设计、控制算法的研发,以及对机器人在不同田间条件下的性能测试。
2. 系统设计
2.1. 整体系统架构
在设计基于ROS的智能田间松土机器人时,整体系统架构的合理性至关重要。该架构主要包含硬件组成和软件框架两个部分,形成一个有效的协同工作系统,以确保机器人在复杂的农业环境中执行松土任务。
硬件组成是智能田间松土机器人的基础,其组成如图1所示。
Figure 1. Block diagram of the hardware components of the robot system
图1. 机器人系统硬件组成框图
机器人采用电动轮驱动的控制子系统,配备高扭矩电机,以确保在多样化的土壤条件下具有足够的动力和牵引力,另外松土装置采用旋转刀具。移动平台采用轻量化材料,以减少自身重量并提高灵活性。同时,坚固的结构设计确保其能够承受田间作业中的冲击与压力。为了实现环境感知,机器人配备多种传感器,包括激光雷达、摄像头、土壤湿度传感器和惯性测量单元。这些传感器协同工作,以获取机器人周围的环境数据,并促进实时决策。核心控制单元为嵌入式计算平台,运行ROS系统,负责处理传感器数据、控制运动及执行算法。机器人采用高容量锂电池,配备高效能管理系统,确保在长时间作业过程中保持稳定的电力供应。
软件框架是实现机器人自主作业的灵魂,主要包括以下几个部分。
1) 操作系统
机器人运行的ROS (Robot Operating System)作为开发与运行平台,提供了丰富的工具与库,助力机器人自主导航和执行任务。
2) 主要控制模块
软件结构采用模块化设计,包括感知模块、决策模块、控制模块。其中,感知模块,处理从传感器获取的数据,进行数据预处理与环境建模;决策模块,基于感知信息和任务需求,利用机器学习和算法模型进行实时决策,选择最优的路径与动作;控制模块,根据决策模块的输出,控制驱动系统,实施动力分配与运动控制,确保机器人按照计划执行松土任务。
3) 通信系统
ROS的发布/订阅(Publisher-Subscriber)机制实现模块间的消息传递[5],提高系统的实时性和灵活性。使用ROS2时,还增加了增强的通信能力和跨平台支持。
4) 用户界面
提供简易的用户界面,允许操作人员实时监控机器人的状态、任务进度及环境信息,并可远程控制机器人。
整体系统架构通过硬件与软件的合理组合,使得智能田间松土机器人能够在复杂的农业环境中高效运作。这种协同设计不仅提高了系统的灵活性和可扩展性,也确保了在现实应用中的稳定性与可靠性。
2.2. 机械结构设计
在设计基于ROS的智能田间松土机器人时,机械结构的设计至关重要,具体涉及机械部件的选择与优化以及动力系统的设计。机械部分不仅影响机器人的工作效率,还关系到其在复杂农业环境中的适应性和稳定性。轮子与悬挂系统如图2所示。
Figure 2. Vehicle model structure
图2. 车模结构
采用直径为200 mm的全地形轮胎,轮胎材料选择耐磨橡胶,以增加抓地力,提升通过崎岖地形的能力。此外,轮子设计为宽轮(宽度为80 mm),降低地面压力,防止在软土中打滑。悬挂系统设计为独立悬挂式,增强对地形变化的适应能力,减少机器人的颠簸,提高作业稳定性[6]。仿照四轮独立悬挂的设计,可通过以下方程计算悬挂系统的柔度:
(1)
其中,K为悬挂的刚度,F为施加的力,Δx为弹簧的压缩位移。需根据工作环境选定最优刚度,使其在作业中平衡舒适性与稳定性。
动力系统的设计是确保机器人在田间具有良好运动能力的重要环节。动力系统的设计包括电机选择、驱动方式以及能量管理。选择高扭矩电动机(例如直流无刷电机),额定功率设定为600 W,峰值扭矩达到1.5 Nm。此电机在加速和负载情况下表现出色,适合田间使用。动力输出与负载之间的关系可由以下公式表示:
(2)
其中,P为空气动力功率,τ为扭矩,ω为角速度。基于此公式,需确保电机的额定功率在最佳工作状态下大于所需作业功率。
采用四轮驱动(4WD)设计,确保机器人能够在不同地形下高效行走。通过选用四个同步电机,控制每个轮子独立运动,提高机器人的机动性能和通过性。
机器人采用高容量锂电池,额定电压为24 V,容量为30 Ah。能量消耗模型可以采用以下公式来计算:
(3)
其中,E为电池能量(Wh),P为电动机功率,t为使用时间。根据最大功率为600 W计算,在连续工作5小时的情况下,需总能量为3000 Wh,确保电池能够在高负载情况下维持工作。
3. 基于ROS的控制系统实现
3.1. ROS基本概念与环境搭建
ROS (Robot Operating System)是一个开源的机器人操作系统,提供了一系列工具、库和规范,以帮助开发者构建机器人软件[7]。它并不只是一个操作系统,而是一个中间件框架,允许多个程序(节点)通过消息传递进行通信。在系统的环境搭建过程中,以下步骤是必要的,以确保ROS能够在上位机上顺利运行并支持后续的开发工作。在计算机上安装Ubuntu 20.04,然后安装ROS Noetic,操作步骤及命令为:
S1:设置软件源,sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu focal main" > /etc/apt/sources.list.d/ros-latest.list'
S2:添ROS的密钥,wget http://packages.ros.org/ros.key -O - | sudo apt-key add
S3:更新系统软件包,sudo apt update
S4:安装ROS,sudo apt install ros-noetic-desktop-full
S5:环境配置,echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc和source ~/.bashrc
S6:安装依赖项,sudo rosdep init和rosdep update
S7:创建工作空间,mkdir -p ~/catkin_ws/src和cd ~/catkin_ws/及catkin_make
S8:配置工作空间的环境变量,echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc和source ~/.bashrc
S9:测试ROS安装成功否,roscore
3.2. 节点设计与通信
在基于ROS的控制系统实现中,节点是执行计算的基本单元。每个节点负责特定的控制功能,并通过消息传递进行通信。为了实现智能田间松土机器人的功能,需要明确节点的功能分析以及Topic与Service的使用方法。
在智能田间松土机器人的控制系统中,需要设计多个节点,且每个节点对应不同的功能,如表1所示。
Table 1. Description of the control nodes of the loosening robot
表1. 松土机器人控制节点描述
节点名称 |
功能 |
输入 |
输出 |
传感器节点 |
收集环境信息,比如土壤湿度、温度、位置等。 |
来自传感器的数据 |
将数据发布到相应的话题,例如/soil_data |
运动控制节点 |
根据传感器节点提供的数据,控制机器人的运动。 |
订阅/soil_data话题接收传感器数据 |
向动作执行节点发布运动指令,例如/move_command |
路径规划节点 |
根据机器人的位置、目标位置和环境信息,为机器人生成最佳路径。 |
获取机器人的当前位置和目标位置 |
将规划好的路径信息发布到话题,比如/path |
动作执行节点 |
执行运动控制命令,驱动机械臂或轮子。 |
订阅/move_command消息 |
反馈执行状态(例如,完成或失败)到/execution_status |
用户接口节点 |
为用户提供控制界面,显示传感器数据和执行状态。 |
订阅传感器数据和执行状态话题 |
接收用户指令并发布到控制节点 |
2) Topic与Service的使用
在ROS中,Topic和Service是两种主要的通信方式,各有其适用的场景。
Topic是一种异步的发布–订阅模式,适合用于数据流的传递,特别是在需要实时交互的场景。传感器节点通过话题发布土壤湿度数据,运动控制节点订阅该话题,实时获取环境信息。多个节点可以同时订阅同一话题,促进灵活的数据共享。
Service是一种请求–响应模式,适合于需要同步、一次性交互的场景。当用户需要获取机器人的当前位置时,可以通过Service请求该信息,并等待响应。适用于需要确认操作结果的功能,如在规划路径时需要确认每一步是否成功。
3.3. 控制算法开发
在基于ROS的控制系统实现中,控制算法是提升智能田间松土机器人性能的关键环节。控制算法确保机器人能够在动态环境中有效地执行任务,松土算法旨在根据土壤的性质和环境条件,优化机器人的松土操作。算法的设计包括以下步骤:
S1:土壤特性分析。通过土壤传感器获取土壤湿度、硬度和温度等信息。使用卡尔曼滤波算法去除噪声[8],实现更稳定的数据输出。
S2:决策逻辑制定。根据传感器输入,设定不同的松土策略。湿度过高可能导致松土效果不佳,需根据设定阈值判断是否进行松土。设计决策树,基于传感器数据显示的土壤条件选择相应的操作策略。
S3:松土操作控制。根据决策结果,控制松土机具的运动。采用PID控制器来实现精准控制。根据土壤硬度调整松土力度,通过调整电机的转速或施加的压力实现。
S4:松土执行和反馈。在松土操作完成后,实时监控执行状态,确保操作决策的有效性。通过反馈机制(使用动作执行节点发布到/execution_status话题),确保松土效果达到预期。
路径规划与导航确保机器人在复杂的田间环境中有效地移动。该过程涉及以下几个关键步骤:
1) 环境建模。通过激光雷达、深度相机等传感器获取环境信息,构建地图。可以使用SLAM (同步定位与地图构建)算法实现。结合ROS的move_base和gmapping包,为机器人创建高精度的地图。
2) 路径规划算法。使用经典的路径规划算法,A*算法和Dijkstra算法,计算从当前位点到目标位置的最优路径。在动态环境中,考虑障碍物的动态变化,实施实时路径更新策略。
3) 导航控制。将规划得到的路径转换为机器人可执行的控制指令,通过运动控制节点进行实施。采用轨迹跟踪算法(如纯追踪或PID控制),确保机器人沿设定路径行驶。
4) 避障与实时调整。在导航过程中,实时监测前方障碍物,使用激光雷达和超声波传感器进行避障。如果检测到障碍物,需重新计算路径或调整运行方向,保证安全导航。
4. 实验结果及分析
4.1. 控制算法实验
本实验旨在评估基于机器学习的控制算法在操作策略优化方面的有效性。实验在真实的农业田间环境中进行,具体设置为选择不同类型的土壤(如粘土、沙土、一般农田土壤)进行测试;通过传感器实时监测土壤的湿度(阈值设定为30%)和硬度(阈值设定为50 N/cm2),选用土壤传感器和压力传感器作为数据采集工具;将实验分为“控制组”(采用传统人工松土)和“实验组”(采用智能机器人),便于进行对比。
机器人的作业效率,使用公式E = 作业面积/作业时间,计算每小时的作业面积。比较松土前后的土壤特性,以评估松土效果。进行多点测试,统计松土操作前后的硬度变化。相似地测试松土前后的湿度变化。进行三次实验,数据如表2所示。
Table 2. Data from three experiments
表2. 三次实验数据
实验组 |
作业时间(小时) |
作业面积(公顷) |
作业效率(公顷/小时) |
松土前硬度(N/cm2) |
松土后 硬度(N/cm2) |
硬度 变化(N/cm2) |
松土前湿度(%) |
松土后湿度(%) |
湿度变化(%) |
cp |
3 |
0.5 |
0.167 |
60 |
45 |
15 |
25 |
30 |
5 |
tr |
2 |
0.8 |
0.4 |
60 |
40 |
20 |
25 |
32 |
7 |
cp |
2.5 |
0.6 |
0.24 |
55 |
42 |
13 |
28 |
31 |
3 |
tr |
1.5 |
1 |
0.67 |
55 |
38 |
17 |
28 |
34 |
6 |
cp |
4 |
0.4 |
0.1 |
65 |
50 |
15 |
20 |
23 |
3 |
tr |
2 |
0.9 |
0.45 |
65 |
39 |
26 |
20 |
29 |
9 |
说明:控制组(人工)用cp表示,实验组(机器人)用tr表示。
1) 作业效率的比较
计算效率,单次计算为:控制组效率
公顷/小时,实验组效率
公顷/小时。采集三组数据,统计结果如图3所示。
Figure 3. Histogram of operational efficiency and scatter plot of soil hardness change
图3. 作业效率柱状图和土壤硬度变化散点图
由图3能够看出机器人的作业效率为人工的大于等于2.4倍。机器人作业速度快,能够覆盖更大面积。可以实时监测土壤特性,调整松土策略,适应不同环境。减少人工劳动强度,降低人力成本。通过比较松土效果,可以得出机器人的技术优势,硬度降低效果,实验组在相同时间内,土壤硬度降低效果明显优于控制组,同时,在湿度提升效果方面,机器人提升土壤湿度的能力也优于传统人工操作。
2) 作物损伤率统计与准确识别率
在相同的田间环境中,分别使用基于规则的传统控制策略和基于机器学习的控制算法进行训练,记录各自的表现,统计作物损伤率与准确识别率如表3所示。
由表3知,基于机器学习的算法与文献[9]中使用强化学习的农业机器人进行对比,作物损伤率远远降低,识别准确率大符提升,能在作业效率和资源消耗上表现更优,从而证明其优化能力。
Table 3. Table of crop damage rate statistics and identification data
表3. 作物损伤率统计与识别数据表
实验设置 |
控制策略类型 |
作物损伤率(%) |
识别准确率(%) |
备注 |
粘土 |
基于规则的传统控制策略 |
20.0 |
70.0 |
记录传统策略下的表现 |
基于机器学习的控制算法 |
8.0 |
92.0 |
记录机器学习策略下的表现 |
沙土 |
基于规则的传统控制策略 |
18.0 |
72.0 |
记录传统策略下的表现 |
基于机器学习的控制算法 |
6.0 |
89.0 |
记录机器学习策略下的表现 |
一般农田土壤 |
基于规则的传统控制策略 |
15.0 |
75.0 |
记录传统策略下的表现 |
基于机器学习的控制算法 |
5.0 |
95.0 |
记录机器学习策略下的表现 |
说明:在实验中记录的作物损伤的百分比,机器人对作物与障碍物的识别准确度。
4.2. 适应能力实验
本实验旨在验证机器人在动态农业环境中的适应能力及障碍物识别和处理效率。其实验流程如图4所示。
Figure 4. Algorithm flowchart
图4. 算法流程图
图4展示了对实验环境中的障碍物进行分类,包括不同形状和类型的障碍物,如土块、植物残茬、建筑物等。再通过传感器数据,生成每个障碍物的轮廓和关键点,以便后续处理和识别。然后根据障碍物的位置,构建距离矩阵,并生成相应的拓扑图,显示障碍物之间的关系和距离。再在路径规划过程中,识别出路径中的障碍物,计算调整后的避让路径,确保机器人能够安全导航。再依据障碍物的分布,确定机器人的样本区域,帮助优化路径和导航策略。最终生成一条适合机器人的路径线,确保在动态环境中能够有效避开障碍物并顺利通过。其实际实验结果如图5所示。
Figure 5. Experimental results
图5. 实验结果
由图5左图显示了实验环境中的植物生长情况,能够清楚地看到作物行之间的生长状态,反映了机器人在该环境中的适应能力。图5中、右图呈现了添加了障碍物(如土块)的模拟田间环境。在这个环境中,机器人需要实时识别并避开障碍物,以保持高效的导航能力。XOY平面轨迹图展示了机器人在不同情况下的导航轨迹。在这些图中,可以看到机器人是如何在复杂地形中调整路径,以避开障碍并有效地进行作业。
本实验采用激光雷达、超声波传感器和摄像头的组合,通过实时数据采集,提高了障碍物识别的准确性和效率。这种多传感器的集成使得机器人在动态环境中具备更强的适应能力。机器人利用OpenCV算法处理图像信息,能够在复杂背景中准确识别作物与杂草,并实时调整运动路径。这种动态路径规划能力显著提高了机器人的避障能力和自主导航水平。通过高精度深度信息获取,机器人不仅能够识别固体障碍物,还能够通过图像分析区分作物与杂草,从而优化作业效果。
5. 结论
为提升农业生产效率、降低劳动强度并实现农业的智能化,研究首先构建智能田间松土机器人整体系统架构,并详细讨论了机械设计,重点阐明了动力传输、传感器布置及松土工具等设计考虑,这些选择有效提高了机器人的作业性能与适应能力,使其能在复杂田间环境中灵活操作。控制系统方面,采用ROS作为开发平台,描述了基本概念与环境搭建,节点设计与通信机制的实现充分利用了ROS中间件特性,确保系统组件间的高效协作。同时,通过控制算法的开发与优化,提升了机器人的自主导航能力和松土作业精度。实验结果显示,在各种测试条件下,该机器人展现出优异的作业效率与可靠性,与传统人工操作相比,松土效率提高了约50%。土壤硬度和湿度的变化也得到了有效评估,验证了机器人在改良土壤质量方面的功能。并通过高效的控制策略,实现物品的识别与避开障碍高效地作业。研究表明,基于ROS的智能田间松土机器人具有良好的应用前景,为推动农业智能化提供了重要参考。
基金项目
河南省教育厅2024年大学生创新创业训练计划项目(202412746019)郑州科技学院2024年大学生创新创业训练计划项目(DC202419)。
NOTES
*通讯作者。