【全文】羊场自动导航喷药机器人设计与实验

B站影视 港台电影 2025-09-05 22:41 1

摘要:Citation:FAN Mingshuo, ZHOU Ping, LI Miao, LI Hualong, LIU Xianwang, MA Zhirun. Automatic Navigation and Spraying Robot in Sheep F

引用格式:范铭铄, 周平, 李淼, 李华龙, 刘先旺, 麻之润. 羊场自动导航喷药机器人设计与实验[J]. 智慧农业(中英文), 2024, 6(4): 103-115.

DOI: 10.12133/j.smartag.SA202312016

Citation:FAN Mingshuo, ZHOU Ping, LI Miao, LI Hualong, LIU Xianwang, MA Zhirun. Automatic Navigation and Spraying Robot in Sheep Farm[J]. Smart Agriculture, 2024, 6(4): 103-115.

羊场自动导航喷药机器人设计与实验

范铭铄1,2, 周平2, 李淼2*, 李华龙2, 刘先旺2, 麻之润2

(1.中国科学技术大学 研究生院科学岛分院,安徽合肥 230026,中国; 2.中国科学院合肥物质科学研究院 智能机械研究所,安徽合肥 230031,中国)

0 引 言

随着全球畜牧业的持续发展,如何保持养殖场地卫生和动物健康已经成为一大关注焦点。肉羊作为卫生敏感的牲畜,其健康状态直接受到养殖环境条件的影响,及时消毒非常重要。羊舍内部面积通常较大,需要消毒的部位较多,有地面、墙壁、围栏、料槽和水槽等。人工消毒需要较大的人工投入,且存在不稳定性和局限性,难免存在消毒死角。

随着人工智能和自动化技术应用的快速发展,使用成本较低且能够克服人工的消毒死角问题的畜禽养殖自动导航喷药机器人成为了研究热点,促使畜禽养殖向着自动化、智能化、高效化、可持续化方向发展。Adams等开发了一款牧场环卫机器人,使用了无迹卡尔曼滤波法(Unscented Kalman Filter, UKF)来使用传感器的位置估计来实现机器人的定位,使用UBlox的GPS里程计和激光雷达来实现机器人的自主导航;Muthugala等针对畜禽舍墙体消毒的难题,提出了非单例1型模糊逻辑系统(T1-FLS)和非单例间隔2型模糊逻辑系统(IT2-FLS)来实现消毒机器人的墙体跟随;Patel等提出了一种消毒机器人,使用紫外线消毒技术,保证机器人的消毒范围可以覆盖360°,采用Raspberry Pi嵌入式系统,可以在机器人运行时提供导航和避障的功能;Bijay等提出了一种机器人的自主导航系统,使用纯跟踪算法进行机器人的自主导航,矢量场直方图用于机器人的避障,二维激光雷达(Light Detection and Ranging, LiDAR)辅助机器人避障;Navone等提出了一种基于分割的自主导航方法来解决在遮挡情况下GPS信号受阻的问题,使用RGB-D(RGB+Depth Map)的深度帧数据来处理输出的分割掩码,对比了基于直方图最小搜索的SegMin、SegMinD和SegZeros方法对语义分割算法精度的提升程度。鞠庆等开发了一种消毒防疫机器人,使用无迹卡尔曼滤波法与二维LiDAR进行室内的定位与建图。冯青春等针对畜禽舍内的恶劣环境,提出了Magnet-RFID(Magnet-Radio Frequency Identification)路径导航方法,设计了基于流体仿真的喷嘴,并使用CFD(Computational Fluid Dynamics)仿真技术基于Ansys Fluent对机器人的喷药效果进行了仿真。徐济双等分析了传统A*算法的不足之处,提出了一种改变权值的A*算法,结合模糊PID(Fuzzy Proportional Intergral Derivative)进行巡线控制,实现了病死畜禽运输机器人的自主路径规划。朱立学等设计了基于U-Net的导航路径识别方法,用于肉鸽养殖场内道路的分割,采用等比例法获取稀疏的导航点,并将这些导航点通过最小二乘法拟合成直线来作为机器人的导航线;宋怀波等设计了一种基于激光SLAM(Simultaneous Localization and Mapping)的导航方法用于牛场智能推翻草机器人的自主导航,使用了Cartographer算法来构建环境地图,通过自适应MCL(Markov Clustering)算法来实现机器人的定位,并采用了Dijkstra算法来规划机器人推翻草的导航路径。羊舍的环境复杂,包括不规则的地形、泥泞或多尘的路径,以及不同的天气条件,为自动导航喷药机器人带来了巨大的挑战。

为了解决这些挑战,本研究提出一种使用语义分割技术和中心点识别算法的自动导航喷药机器人,旨在提供一个高效、全面且适应性强的解决方案以应对羊舍的特殊环境需求。硬件设计包括履带式底盘、折叠式喷药装置和摄像头。履带式底盘能够确保设备在复杂环境中的耐用性;折叠式喷药杆喷药时能确保药液的喷洒能够稳定地覆盖整个圈舍区域;使用了两台摄像头来分别获取羊舍内外的道路场景。模型部分设计了基于ENet改进的轻量化语义分割模型,能够实时、准确地分割出羊舍路面。控制算法部分设计了道路和车道线中心点算法、速度与偏移量计算算法及摄像头切换算法。

1 机器人硬件设计

1.1 底盘设计

履带式车辆可以在狭窄或限制性的空间中进行转弯,使用寿命和维护周期往往优于轮式车辆,在复杂和恶劣的环境中具有明显的优势。机器人整车尺寸(长×宽×高)为960 mm×700 mm×320 mm,底盘高度为75 mm,履带宽150 mm。自重为120 kg,可载重200 kg,主体材质为304不锈钢、合金钢板、镀锌管及铝。考虑耐久性和稳定性需求,选择橡胶作为履带的材料,并内嵌凯夫拉纤维以增强其强度和耐磨性。

履带底盘驱动依靠左右两个直流无刷电机,电机的额定功率为785 W,额定扭矩为37.5 N·m,最大爬坡角度为30°。整车采用克里斯蒂独立悬挂设计,能够提供地形适应性。底盘还配备一个尺寸(长×宽×高)为300 mm×250 mm×230 mm的内仓,可以存放电池、控制模块和其他关键组件,使得底盘在完成任务时能够维持整体平衡和稳定性。履带底盘可行进的最高速度为6.5 km/h。底盘实物图如图1a所示,其技术特征如图1b所示。

图1 羊场自动导航喷药机器人底盘

Fig. 1 Chassis of the automatic robot working in sheep farm

1.2 电源和续航

为了确保机器人在羊场中持续、有效地完成喷药工作,机器人配备一块48V 30 AH的三元锂电池,整机功率为1~2 kW,驱动器型号为4850,放电时的工作温度为‒10~60 ℃,充电时的工作温度为0~45 ℃,储存温度为0~35 ℃。选择8 A的充电器,可以为电池提供快速充电。根据实地测试和羊场的实际需求,一次充电可以支持机器人在羊场内完成约3 d的喷药工作。

1.3 折叠式喷药系统

喷药系统用于均匀地把药液喷洒到圈舍各处。折叠式喷药装置由药箱、水泵、伸缩杆、电动推杆和多喷头喷药杆5部分组成。消毒药液储存在药箱中。药箱的主要材料是聚氯乙烯(Polyvinyl Chloride, PVC),采用方形设计,其尺寸为700 mm×400 mm×400 mm(长×宽×高)。

水泵与药箱相连,用以抽取药箱内的药液,水管的末端连接了左右两根多喷头喷药杆,喷药杆固定在伸缩杆末端。当不需要喷洒药液时,电动推杆处于收缩状态,水泵关闭,伸缩杆折叠。在需要喷洒药液时,电源给电动推杆供电,使其伸展,推动滑杆在滑轨上沿着滑块运行方向移动,使伸缩杆展开,水泵开启,从药箱中提取药液,使多喷头喷药杆喷洒药液,喷药装置折叠状态和展开状态如图2所示。

图2 羊舍自动导航喷药机器人的喷药装置

Fig. 2 The spraying device of the sheep shed automatic navigation spraying robot

1.4 机器人整体结构

不锈钢制成的外壳和底盘共同构成了机器人的主体。药箱放置在不锈钢外壳内部。机器人的后部配备了一块屏幕,可以实时监视电脑的运行后台。外壳配备了一个手动/自动转换旋钮。当旋钮调至手动模式时,机器人的摄像头、水泵等硬件设备将全部关闭,行走由遥控器控制;当旋钮切换至自动模式时,机器人的导航由模型和算法通过串口自动控制。喷药装置固定在不锈钢外壳前方,用于喷洒药液。两台摄像头分别置于机器人前的上方和下方,是其主要的视觉传感器。不锈钢外壳固定在机器人底盘上。图3a为机器人结构示意图;图3b展示了车体外壳的结构设计;图3c展示了机器人的实物照片。

图3 羊舍自动导航喷药机器人整体结构设计

Fig. 3 The overall structural design of the sheep shed automatic navigation spraying robot

2 语义分割模型

本研究提出一种语义分割道路和车道线识别模型。以2016年华沙大学的Paszke等[15]提出的ENet为基础,提出一种双注意力语义分割模型DAENet(Double Attention ENet)。该模型结合基于场景改进的十字交叉注意力(Criss-Cross Cross Attention, CCA)和压缩通道网络注意力(Squeeze-and-Excitation Network, SENet)模块的优势,能够准确地分割出道路和车道线的区域。

2.1 基于场景改进的十字交叉注意力

长距离的依赖关系可以捕获有用的上下文信息,提高语义分割模型的特征提取能力,十字交叉网络可以用高效的方法来获取这些上下文信息。CCA模块能够引入交叉路径上以及周围像素的上下文信息,可以捕获输入特征图中的空间关系和语义信息。

本研究在ENet网络中加入CCA模块,在提高网络性能的同时降低了参数量和计算成本。特征图经过3个1×1的卷积层生成注意力网络所需要的这3个特征,接下来对、两个特征进行亲和性(Affinity)操作,获取大小为的特征图中每一个像素点与其他像素点的关系,操作方式如公式(1)所示。

对di,u使用归一化指数函数(Softmax)操作后得到特征图,将其与特征图进行聚合(Aggregation)操作,如公式(2)所示。

图4 CCA的网络结构

Fig. 4 The network structure of CCA

在CCNet中,采用了重复十字交叉注意力(Recurrent Criss-Cross Attention, RCCA)模块。CCA模块仅能获取本层特征图十字路径上的特征而非全局特征,RCCA通过级联两个CCA模块来解决这一问题,其结构如图5所示。在CCA1中,特征1可以获取到其十字路径上的特征2和特征3的信息,在与之级联的CCA2中,特征2能够获取到特征1和特征4的信息。由于特征1已经包含了特征3的信息,因此特征2间接获取到了特征3的信息。通过这种级联的方式,每个特征都能够获取到全局的其他特征信息,从而提升了模型的特征提取能力。

图5 RCCA级联结构

Fig. 5 RCCA cascade structure

然而,RCCA模块的实际应用也存在一些不足之处。

1)CCA模块的复杂性导致其参数量较大,将两个CCA模块级联起来会降低模型的推理速度。 2)RCCA模块获取的全局特征信息取决于模型中其他结构输出的特征,其本身并不具备获取不同尺度特征的能力。

鉴于以上两点不足,本研究设计了一种新的结构,称为上下文卷积模块(Context Convolution Module, CCM),无需将两个CCA模块级联,能够同时获取不同尺度的全局特征信息。结构如图6所示。该模块将特征图分为3个分支:

1)带有ReLU激活函数的3×3卷积,填充(Padding)为1,空洞率(Dilation Rate)为1。

2)带有ReLU激活函数的5×5卷积,填充为2,空洞率为2。

3)带有ReLU激活函数的7×7卷积,填充为3,空洞率为3。

图6 CCM的网络结构

Fig. 6 The network structure of context convolution module

该模块的设计思想来源于空洞空间金字塔池化(Dilated Spatial Pyramid Pooling, DSPP),引入了相互并行的空洞卷积。

1)3个分支使用3个尺寸不同的卷积核,能够获取不同尺度的特征信息。

2)3个分支使用不同采样率的空洞卷积并行采样,能够使每个分支的感受野不同,以3个不同的比例来捕捉上下文的特征,解决目标多尺度问题。

3)将3个分支拼接起来,并用1×1卷积降维成指定的通道数。

经过CCM模块得到的特征图能够获取长距离的依赖关系,使网络捕获不同尺度的上下文信息。

DAENet中加入的注意力模块是由CCM和CCA并行构成的特征提取和融合系统。CCM模块负责获取不同尺度的特征,CCA模块负责捕获十字交叉路径上密集的全局特征。将两个模块的输出相加,能够获得丰富的不同尺度的全局特征,使得模型具有更强的特征提取能力,从而实现与RCCA相似的效果。

基于应用场景改进的十字交叉注意力模块在DAENet中有两个方面的作用:

1)捕获不同尺度上下文信息。CCA和CCM模块代替了ENet阶段1中的4层卷积,其中CCM模块通过多个不同大小、不同空洞率的卷积核来对特征图进行特征提取,能够捕获不同尺度的上下文信息。

2)解决信息损失问题。CCA是注意力模块,使用注意力机制来计算每个像素的注意力权重,在下采样阶段增强模型感兴趣区域的细节。能够在一定程度上解决ENet的信息损失问题。

2.2 基于双注意力机制的ENet模型

基于双注意力机制的ENet模型(Double Attention ENet,DAENet)将ENet原本的6阶结构缩减为5阶结构,避免了下采样的层数多于上采样,导致特征图恢复时的精度变低,同时精简模型。其网络结构如图7a所示。

图7 基于双注意力机制的ENet模型

Fig. 7 ENet model based on dual attention

初始化模块是基于ENet的初始化模块改进。阶段1和阶段2是下采样模块;阶段3和阶段4是上采样模块。假设输入的尺寸为512×1 024×3。

模型由5个部分组成。

1)初始化模块由两个分支组成。

① 对输入进行步长为2的卷积。

② 对输入进行池化操作。

合并两个分支操作结果的特征图,输入到压缩激励注意力模块(Squeeze-and-Excitation Network, SENet)用于整个初始化模块的输出,以增强模块的特征表达能力。SENet结构如图7b所示。

SENet可以使初始化模块能够自适应地增强特征表达能力,该模块输出的尺寸为256×512×16。

2)阶段1由3个层级组成。

① 对特征图进行连续两次下采样来提取特征,下采样模块采用了ENet的瓶颈结构,输出尺寸为64×128×128的特征图。

② 对特征图使用3×3卷积,将瓶颈结构的非对称卷积和空洞卷积相互级联,以继续提取特征,激活函数选择ReLU函数。

③ 并联的CCA和CCM模块用于提取上下文信息并将其整合,再进行下一步的卷积来提取特征。

3)阶段2由两个层级组成。

① 在阶段1结束后,为避免网络退化,引入了残差机制,将多次下采样的特征图通过1×1卷积后与阶段1的输出合并,作为阶段2的输入。

② 在阶段2的最后同样引入残差机制,将多次下采样的特征图通过1×1卷积后与阶段2的输出合并,作为阶段3的输入。

阶段2与阶段1类似,缺少了下采样和并联的CCA和CCM模块,是为了提高网络的速度,减少参数量。

4)阶段3和阶段4是上采样层。上采样层通过最大反池化(Max Depooling)和转置卷积(Transpose Convolution)进行上采样,并在输出时将两个分支相加,以产生最终的上采样结果。

5)全卷积层。整个网络的最后一个层是全卷积层,用来输出类别,输出尺寸为512×1 024×3。

3 导航算法设计

3.1 道路与车道线中心点识别算法

在伪彩色图像中,不同的RGB值代表着不同的像素区域,其中包括道路、车道线和背景。在这些像素区域中,道路和车道线被视为机器人行走的区域。为了保证机器人始终行走在道路或车道线的中心,导航的基本方法是找出机器人前方道路和车道线的中心点。通过持续地向着这些中心点前进,机器人就可以在行进过程中始终保持在道路或车道线的中心位置,从而实现自主导航。

3.1.1 道路中心点识别算法

当机器人行走在道路上时,说明机器人位于羊舍内部。由DAENet将道路从背景中分离出来,标记为特殊的像素颜色,生成伪彩色图像。道路中心点识别算法用于计算伪彩色图像中道路像素的中心点。

记图像的行数为,列数为,道路像素点的集合为,道路区域的行为。则对于图像中所有行,满足公式(3)和公式(4)。

3.1.2 车道线中心点识别算法

当机器人即将进入车道线区域时,代表机器人即将驶出羊舍。车道线中心点识别算法用于在伪彩色图像中计算车道线像素的中心点。

记车道线像素点的集合为,车道线区域的行为。则对于图像中所有行,除满足公式(3)外,还应满足公式(7)。

3.2 摄像头切换算法

机器人在羊舍内部时开启喷药装置,驶出羊舍后,即可关闭喷药装置。使用两台摄像头分别用于道路和车道线区域的导航,摄像头的切换代表了机器人进出羊舍的状态。算法的具体流程如下。

1)当机器人行走在羊舍内时,调用道路摄像头。

2)当机器人即将离开羊舍时,切换成车道线摄像头。

3)当机器人再次回到羊舍时,切换回道路摄像头。

为了保证摄像头切换的流畅稳定,设计如公式(10)所示的方法:

当检测到车道线像素的时间超过时,释放,停机1 s后切换成;反之,当检测不到车道线像素的时间超过时,停机1 s后切换成。

在羊舍内道路两旁存在圈舍的情况下,机器人自动打开喷药装置;羊舍外车道线路径上没有圈舍,机器人自动关闭喷药装置,如式(11)所示。

3.3 偏移量与速度计算算法

将摄像头获取的帧用DAENet分割完成得到伪彩色图像后,调用中心点识别算法,找出伪彩色图像中的所有的道路和车道线像素,并标记出其中心点。通过比较道路中心与机器人当前位置,可以获得偏移量。偏移量计算如公式(12)所示。

为了实现机器人的导航,需要将计算得到的偏移量转化为机器人的左轮速度和右轮速度,如公式(13)和公式(14)所示。

在实际导航中,需要考虑连续帧的图像输入及机器人的连续运动。对于机器人实际的运动过程,摄像头获取的实时视频流可以看作是连续输入的n张道路或车道线的图片,对于每一张图片,调用DAENet分割模型来提取每一帧的道路和车道线的信息,对生成的伪彩色图像调用公式(12)计算自身偏移量。羊舍实地道路的坑洼不平会导致机器人的行进不平稳,会使每一帧的偏移量有不同程度的波动。为了防止机器人在羊舍实地运行的时候不断地由于偏移量的波动而抖动,取一个阈值,当偏移量时,将置0,即当偏移量不大的时候,看作机器人没有偏离中心。相应地,机器人的左轮速度和右轮速度也不会随的变化而变化,所以机器人会继续按照当前方向行进,只有当偏移量超过阈值时才使其改变导航方向。

3.4 导航喷药算法整体设计

DAENet模型通过语义分割来实时获取道路信息,并生成对应的伪彩色图像,将道路信息从背景中分离出来,调用中心点识别算法标记出机器人的行驶路径。通过切换道路摄像头和车道线摄像头,能够使机器人在路况发生变化时及时切换其导航方式。偏移量与速度计算算法能够实时计算机器人的偏移量,并将其转换成底盘履带轮的速度来实现机器人的行进。引入串口通信来实现软硬件之间的信息传递。通过字符表格式进行数据传输,将机器人的偏移量、速度等关键参数传输至底盘控制器。控制器通过字符表解析,提取数据并生成相应指令,调整底盘的左右轮速度,实现精确控制。整个系统工作流程如图8所示。

图8 羊舍自动导航喷药机器人系统的工作流程

Fig. 8 The workflow of the sheep shed automatic navigation spraying robot system

手动遥控机器人到达羊舍入口处,输入需要消毒的羊舍数量N,执行以下操作:

1)打开摄像头0。

2)打开喷药装置,开始喷药。

3)读取摄像头0的当前帧,判断是否检测到车道线像素超过3 s。如果是,则说明机器人离开羊舍,进入车道线区域,关闭摄像头0,并等待1 s后打开摄像头1,关闭喷药装置;如果不是,则调用道路中心点识别算法进行自动导航和喷药。

4)如果机器人进入车道线区域,即离开羊舍,读取摄像头1的当前帧,并将计数器加1。如果此时计数器的值等于N,则说明机器人完成了所有羊舍的消毒任务,机器人自动停机;如果计数器的值小于N,则继续执行消毒任务。

5)判断当前摄像头1是否检测不到车道线像素超过3 s。如果是,则说明机器人进入羊舍内部,即进入羊舍,关闭摄像头1,并等待1 s后打开摄像头0,开始下一轮循环,直至完成所有的消毒任务。

4 机器人测试与实验

4.1 DAENet模型实验

为了充分验证DAENet模型的性能,进行了模型训练和验证。实验硬件配置为Intel Xeon(R)CPU E5-2687W v2 3.40 GHz,显存11 GB的GTX 1080 Ti显卡。实验操作系统为Ubuntu 16.04,实验软件平台为Anaconda+Pycharm2021+Python3.8+Xftp7,训练框架为PaddlePaddle-gpu2.4.2。输入图像像素尺寸统一裁剪为1 024×512,batch size为4,调用4线程一共训练10 000次迭代,损失采用交叉熵损失函数(Cross Entropy Loss)。采用学习率衰减策略(Polynomial Decay)来控制学习率更新的步长。使用在羊场实地采集的4 306张图片组成的数据集进行模型训练。

实验结果表明,对于1 280×720分辨率的图像,DAENet的平均交并比(Mean Intersection over Union, mIoU)达到了0.945 3,训练过程中的mIoU如图9所示,证明了其在图像分割任务中具备较高的准确性。

注:浅蓝色为每个step的mIoU; 深蓝色线为平滑后的曲线。

图9 DAENet模型训练过程中的mIoU

Fig. 9 mIoU during training process of DAENet model

4.2 摄像头切换算法测试

将道路摄像头(以下简称摄像头0)置于机器人顶部,距离地面1 m,角度为‒20°;车道线摄像头(以下简称摄像头0)置于机器人前方,距离地面0.4 m,角度为‒45°,取时间。打开摄像头0与摄像头1,初始机器人行走在羊舍内道路上,调用摄像头0,进行摄像头切换算法的测试。使用图8的工作流程进行算法测试。

当机器人行驶在羊舍内时,利用摄像头0获取帧并调用分割算法。通过OpenCV库函数,每个帧的预测结果被实时地输出到屏幕上,将道路标记为RGB(0,128,0),背景标记为RGB(128,0,0)。图10a展示了机器人行驶在羊舍内道路上的原始摄像头图像;图10b展示了经过DAENet分割算法处理后的效果。

注:图b中绿色像素的RGB为(0,128,0),代表道路;红色像素RGB为(128,0,0),代表背景。

图10 羊舍内道路中心点计算图像

Fig. 10 Image for calculating the center points of roads inside the sheep shed

当机器人行驶在羊舍外时,切换至下方的摄像头(以下简称为摄像头1),并调用分割算法。在这种情况下,标记了道路为RGB(0,128,0),背景为RGB(128,0,0),车道线为RGB(128,128,0)。通过不断寻找车道线的中心点,机器人在羊舍外依然能够实现精准导航。图11a展示了机器人行走在羊舍外车道线上时的原始摄像头图像;图11b展示了DAENet分割算法处理后的效果。

注:图b中绿色像素的RGB为(0,128,0),代表道路;黄色像素RGB为(128,128,0),代表车道线。

图11 羊舍外车道线中心点计算图像

Fig. 11 Image for calculating the center points of lane lines outside the sheep shed

从实验结果中可以看出,当路况发生变化时,机器人能正确地切换道路摄像头与车道线摄像头。

4.3 中心点与偏移量计算算法测试

为验证中心点与偏移量计算算法的实际计算效果,将训练好的分割模型DAENet部署在NVIDIA Jetson Xavier NX计算机端,将该计算机端嵌入到机器人系统中,调用分割模型,取,。为保证算法的容错性,使机器人行走过程中在偏移量较小时不会产生较大摆动,设置当时,取。开启摄像头0,使用OpenCV将分割的结果展示在屏幕上,模型将摄像头获取到的帧分割为伪彩色图像,其中绿色(RGB为(0,128,0))代表道路,红色(RGB为(128,0,0))代表背景。调用道路中心点识别算法,计算出所有绿色像素即道路的中心点,并用白色像素标记在图上,计算该中心与图像中心的偏移量,如图12所示。

图12 羊舍道路分割结果

Fig. 12 Results of road segmentation in the sheep shed

对于连续的视频帧,取连续的8帧图片,同步输出每一帧的处理时间、帧数与实时的偏移量,输出结果如表1所示。

表1 羊舍道路分割过程连续视频帧的处理时间、帧率与实时偏移量

Table 1 Processing time, frame rate, and real-time offset for continuous video frames in the process of road segmentation in the sheep shed

经过实验结果的分析,偏移量在随着摄像头获取到的帧的不同而变化。在处理多帧视频流时,平均处理一帧图像所用的时间为0.04~0.055 s,帧率为20~24 f/s,可以满足实际工作的实时性。

4.4 机器人在羊场的整体测试

4.4.1 实验环境

实验场地位于安徽省阜阳市临泉县绿荣牧业发展有限公司。该养殖场总共包含12个羊舍,每两个羊舍之间相互平行,距离为15 m。整个羊场约有5 000头湖羊。每个羊舍中间设有一条过道,过道的路面为水泥路,表面凹凸不平,部分路面上有杂草和羊粪。羊舍过道两侧分别设置有圈舍,圈舍靠近过道的位置是料槽,工人使用电动上料车定期对羊进行喂食。本实验地设置为连续的两个相互平行的羊舍,完成喷药工作需要经过两条直路及一个弯路,共约140 m的长度。羊舍道路环境如图13a所示;料槽情况如图13b所示;弯路的车道线如图13c所示。

图13 羊舍自动导航喷药机器人的测试环境

Fig. 13 Test environment for sheep shed automatic navigation spraying robot

4.4.2 实验评价指标

精度指标。实验中要求语义分割模型的mIoU达到90%以上。

帧率指标。帧率反映了语义分割算法处理摄像头帧的速度,包括获取图像信息、调用中心点识别算法标记导航点的整个过程。由于摄像头的帧率为30 f/s,要确保实时分割的要求,帧率通常不应低于20 f/s。

可靠性指标。实验中考虑伸缩杆展开与折叠、喷药杆打开与关闭的时间,在切换摄像头的过程中加入了13 s的容错时间。为进一步提高容错性,考虑机械元件启动时间以及软件切换时间,要求路况发生变化时,从摄像头切换到喷药装置完全动作的时间不超过15 s。

稳定性指标。机器人在行驶过程中应确保不触及道路边缘、不发生碰撞并且无发生碰撞的趋势。具体评估标准是机器人行进过程中不碰撞料槽,且相对于道路或车道线的中心线偏差不超过0.3 m。

消毒效果指标。为了评估喷药覆盖圈舍地面的效果,要求药液覆盖率达到90%以上。

4.4.3 实验过程

将机器人的药箱注满药液,手动遥控自动导航喷药机器人移动到第1个羊舍入口。机器人开机,设置机器人自动行进速度为0.2 m/s,调用程序。初始情况设置摄像头0开启,摄像头1关闭,机器人开始行走,屏幕上同步打印左右轮速度,以实时监控机器人状态。将每一帧的FPS写入日志,以便在实验结束时计算机器人运行时的平均FPS。机器人在第1个羊舍入口开机作为实验开始,离开第2个羊舍作为实验结束。实验中观察机器人是否能够安全行驶。使用特殊标记物来标记机器人行进时的路线。实验结束后测量标记物相对于道路中心线或车道线中心线的偏差,计算最大偏差、最小偏差、平均偏差与标准偏差。记录从切换摄像头到喷药装置完全动作所用的时间。实验后查看平均帧率及圈舍地面药液的覆盖面积。机器人在羊舍内外的实验过程如图14a和14b所示;机器人运行时屏幕展示如图14c所示。

图14 自动导航喷药机器人实验过程

Fig. 14 Automatic navigation and spraying robot during test

4.4.4 实验结果

在实验过程中,机器人完成了两个羊舍的自动导航和消毒任务。在0.2 m/s的行进速度下,药箱里的药液能够满足两个羊舍的消毒任务。路况发生变化时,从摄像头切换到喷药装置完全动作的时间不超过15 s。记录了3次摄像头切换的时间,如表2所示。

表2 羊舍自动导航喷药机器人的喷药控制时间

Table 2 Spray control time for the sheep shed automatic navigation spraying robot

测量了机器人行进路线和中心线之间的偏差。对机器人的横向偏差进行统计分析,计算了最大偏差、平均偏差和标准偏差。

最大偏差是在一次实验中机器人的最大横向偏差。平均偏差是所有偏差量的平均值。标准偏差是所有偏差量相对于平均值的离散程度的度量,它代表机器人行进的稳定性,标准偏差越小,说明机器人行进的稳定性越高。记录如表3所示。

表3 羊舍自动导航喷药机器人行进的横向偏差

Table3 Lateral deviation of the sheep shed automatic navigation spraying robot

对表3的统计数据的分析结果表明,机器人行进的横向偏差不超过0.3 m,平均偏差为0.2 m~0.5 m,标准偏差为0.01~0.05。行走的稳定性可以满足实验指标要求。

实验后查看日志,计算出机器人行进时的帧率为22.4 f/s。

通过观察,几乎完全覆盖羊舍地面,覆盖率超过90%,如图15所示。喷药消毒效果达到实验指标要求。

图15 羊舍自动导航喷药机器人的喷药效果

Fig. 15 Spraying effectiveness of the sheep shed automatic navigation spraying robot

5 结 论

本研究设计了一个基于语义分割技术、以中心点识别算法为核心,并搭载折叠式喷药装置的羊舍自动导航喷药机器人。经过实地测试,得出以下结论。

1)通过引入SENet和基于场景改进的CCA注意力模块,提出了一种基于ENet的语义分割模型DAENet,进行以道路和车道线为目标的羊舍道路分割任务。模型的mIoU达到了0.945 3,证明了其在图像分割任务中具备较高的准确性。设计了道路中心点识别和车道线中心点识别两种算法来计算机器人行进过程中的导航点。设计了偏移量与速度计算算法,在得到道路中心点之后,计算其对于自身位姿的偏移量,通过该偏移量计算底盘左右轮的速度。设计了摄像头切换算法,使机器人在羊舍内外分别使用两台不同的摄像头,实现了摄像头的稳定切换,并依靠摄像头的切换控制喷药装置的开关。

2)在羊场实地测试中,机器人完成了两个羊舍的自动导航和消毒任务。实验中,机器人未碰撞路边料槽,相对于道路和车道线中心线偏移量均不超过0.3 m。在0.2 m/s的行进速度下,药箱里的药液能够满足两个羊舍的消毒任务。路况发生变化时,从摄像头切换到喷药装置完全动作的时间不超过15 s。机器人运行的平均帧率为22.4 f/s,对于信息的处理准确和实时性能够满足实验指标要求。通过观察,机器人喷药的覆盖率超过90%,达到实验指标要求。

利益冲突声明:本研究不存在研究者以及与公开研究成果有关的利益冲突。

为方便农业科学领域读者、作者和审稿专家学术交流,促进智慧农业发展,为更好地服务广大读者、作者和审稿人,编辑部建立了微信交流服务群,有关专业领域内的问题讨论、投稿相关的问题均可在群里咨询。 入群方法: 加小编微信17346525780备注:姓名、单位、研究方向,小编拉您进群,机构营销广告人员勿扰。

来源:智慧农业资讯一点号

相关推荐