工厂化循环水养殖鱼池清刷机器人的定位精度分析

2021-04-23 09:18胡勇兵李金刚
渔业现代化 2021年2期
关键词:里程计鱼池坡度

胡勇兵,倪 琦,黄 达,李金刚

(1 上海海洋大学工程学院,上海 201306;2中国水产科学研究院渔业机械仪器研究所,上海 200092)

工厂化循环水养殖作为工业化程度最高的一种先进水产养殖模式,虽在国内起步较晚,但无论是技术还是在产业应用上均取得了长足进步[1-3]。工厂化循环水养殖的鱼池规格一般有边长为3.75 m的方切角池和直径6.4 m的圆形池等,其材质一般为玻璃钢和混凝土。传统清洗方式需要人工手持板刷或者拖着水枪机四周环绕清刷,工作烦琐重复且池底易滑。为了节约人力成本和安全考虑,需要研发养殖过程中进行自动清洗池底的智能化机器人[4-7]。由于工厂化循环水养殖车间不同于室外环境,无法采用全球定位系统(GPS)定位策略,机器人移动导航和路径规划清扫难度也相应增加,因此实现机器人的精准定位是鱼池机器人具有自主运动的关键环节。其中,SLAM(Simultaneous Localization and Mapping)同步定位和地图构建技术[8-10]是指机器人配置传感器提取环境信息,在移动过程中完成环境地图的构建并不断修正自身位姿实现定位的过程,是实现机器人定位导航的关键技术,这对机器人的运动控制和路径规划任务完成具有重要意义。

目前室内移动机器人定位[11-12]研究一直是热点话题,寿佳鑫等[13]利用激光雷达实现了室内移动机器人的定位和导航;侯家林等[14]研制了基于双激光雷达的温室机器人导航系统;水下环境复杂,不像陆地上方便控制和观测,Wu等[15]阐述了水下机器人定位导航的方法以及李渝[16]提出了利用声呐来提取环境特征的SLAM算法研究;其中SLAM是实现机器人定位导航的关键技术,从传感器输入信号角度出发,SLAM技术分为基于距离传感器和基于视觉传感器两大类[17];早期Grisetti等[18]提出了改进的Rao-Blackwellized粒子过滤器的Gmapping算法利用RB粒子滤波对匹配进行优化;再到Kohlbrecher等[19]提出的Hector SLAM利用高斯牛顿法进行扫描匹配;近年Hess等[20]发表的Catographer在局部范围内扫描匹配实现了回环检测及全局优化;蒙特卡罗定位(Monte Carlo Localization,MCL)算法最早由 Dellaert等[21]提出,主要是利用粒子滤波结合移动机器人传感器和里程计进行定位,SLAM技术为机器人建图和定位研究提供了理论基础。

但是,针对养殖车间鱼池机器人的定位技术的研究还比较少。根据以上背景和国内外对于机器人定位技术的研究发展分析,结合工厂化循环水养殖车间的鱼池环境,设计了一款能够实现地图构建和定位的鱼池清刷机器人。

1 材料与方法

1.1 系统组成与工作原理

鱼池清刷机器人用于养殖车间的鱼池池底污染物清理,主要由机器人车体、驱动机构、清扫机构和激光雷达传感器等组成(图1)。鱼池清刷机器人搭载传感器提取鱼池环境特征,该传感器支持12 m半径测量范围,通过测量反射光的运行时间而确定目标的距离,连续360°扫描测距收集环境中目标点的数据信息,同时机器人携带的惯性传感器获取姿态、速度和方向信息,通过串口输出数据到电脑(PC)端。在机器人操作系统(Robot Operating System,ROS)平台上进行数据信息的处理和同步仿真机器人的位姿状态,实现即时构建地图和定位功能。

图1 鱼池清刷机器人组成结构图

1.2 试验设计与方法

1.2.1 试验条件

试验于2020年9—10月在中国水产科学研究院渔业机械仪器研究所如东试验基地的养殖车间里进行(图2),选择的区域为长3.75 m 、宽3.75 m的无水方切角形养殖鱼池,墙壁高度为1.5 m,池底坡度有8°~10°,面积约为12.9 m2。对照组为平整的地面,没有坡度,高度为0.5 m,形状尺寸规格同鱼池一致。

图2 鱼池清刷机器人样机试验

1.2.2 试验设计与测定指标

试验主要研究不同算法、鱼池坡度以及机器人移动速度等对定位精度的影响。首先实地勘测鱼池环境数据,在ROS平台的gazebo插件里搭建鱼池世界模型如图3(a)所示。考虑到鱼池的面积和传感器的精度,加载安装好的导航slam包,利用Gmapping算法进行实时仿真建图。选择上述试验环境,将机器人随机放置在鱼池任意位置。机器人上电后驱动电机和传感器正常运行,同时与PC端的ROS形成通信机制。通过机器人操作系统来控制机器人的行走速度,保持接收传感器发来的数据信息,在RVIZ插件里即时反映鱼池环境,结果如图3(b)所示。在建图过程中,控制机器人以0.1 m/s的速度移动。

图3 鱼池环境仿真和实时建图

在地图已知条件下,分别采用自适应蒙特卡罗定位(Adaptive Monte Carlo Localization,AMCL)算法和惯性里程计方法进行定位试验,试验环境相同,传感器能360°全方位检测。自适应蒙特卡罗定位[22-23]是MCL的扩展形式,在构建的地图中采用粒子来代表机器人的位姿,在重采样阶段自适应调整粒子数量以达到更准确的定位。惯性里程计方法是基于里程计的航迹推算方法进行定位,在机器人位姿初始值给定的前提下,基于内部传感器信息计算出每一时刻位姿相对于上一时刻位姿的距离以及方向角的变化,从而实现位姿的实时估计。在鱼池中随机选取10个位置,与上述ROS平台上构建的环境地图进行坐标匹配,并在池底贴上标记。开始时机器人放置在鱼池起始位置,在rviz界面适当调整机器人初始状态,在PC端显示的地图中随机选取一个定位目标点进行导航移动,待机器人停稳后测量记录下实际位姿误差数据。采用控制变量策略,分别在有坡度的鱼池中和平整的对照组场地,在考虑移动速度和障碍物的情况下进行定位试验。

根据PC端构建的地图和鱼池真实环境,以机器人当前到达的位置为中心,并从朝向角和位置坐标点两方面进行比较评价。a)角度误差:机器人到达位置的朝向与PC端预定朝向之间的角度差;b)距离误差:机器人到达位置的坐标点与PC端预定位置的坐标点之间的距离差。

1.2.3 软件操作平台与统计分析

所用电脑配置为:CPU为i5-8250U,主频为1.8 GHz,内存8 G,系统为 Ubuntu18.08,ROS版本为melodic。在实际测试中将传感器搭载在鱼池清刷机器人上进行定位试验,在ROS仿真平台的gazebo插件里搭建鱼池环境模型,在rviz插件里即时反映地图。试验数据用“平均值”表示,无显著性差异(P>0.05),用Excel软件对所有数据进行计算及绘制图表工作。

2 结果与分析

2.1 不同算法在鱼池定位中的比较

机器人在移动导航过程中,算法是影响定位的关键因素之一。本试验采用传统惯性里程计和AMCL两种方法,保持其他因素与基础试验组一致,进行不同算法对定位效果的试验研究。结果如图4所示,在选择惯性里程计的方法定位时,平均距离误差为10.67 cm,平均角度误差为6.8°;选择自适应蒙特卡罗全局定位算法时,平均距离误差为9.02 cm,平均角度误差为4.6°。由试验数据可知,AMCL较惯性里程计平均距离误差减少1.65 cm,平均角度误差减少2.2°,AMCL算法定位精准度更高。

图4 不同算法下的定位误差

2.2 鱼池坡度对定位精度的影响

为了方便鱼池污垢集中向中心排污口排出,工厂化循环水养殖车间鱼池池底都会有坡度存在。本试验将选择坡度为8°~10°的方切角鱼池,同时安排对照组进行定位效果的比较试验,保持其他因素与基础试验组一致。结果如图5所示,在有坡度的方切角鱼池中,平均距离误差为9.02 cm,平均角度误差为4.6°;在无坡度的对照组中,平均距离误差为6.29 cm,平均角度误差为3.9°。由试验数据可知,有坡度明显比对照组的定位误差更大(P<0.05),且各位置之间定位误差更散乱,因此坡度会影响到定位性能。

图5 有无坡度情况下的定位误差

2.3 移动速度对定位精度的影响

本试验将鱼池清洁机器人的移动速度分别设置成0.1 m/s、0.2 m/s和0.3 m/s三种速度,保持其他因素与基础试验组一致,分别进行目标位置点的定位试验。结果如图6所示,在移动速度为0.1 m/s时,平均距离误差为9.02 cm,平均角度误差为4.6°;在移动速度为0.2 m/s时,平均距离误差为9.65 cm,平均角度误差为4.3°;在移动速度为0.3 m/s时,平均距离误差为9.77 cm,平均角度误差为5°;由试验数据可知,速度对于定位精度没有显著影响(P>0.05)。

图6 不同速度下的定位误差

2.4 障碍物对定位精度的影响

在环境地图已知的条件下,移动定位过程中随机添加小型静态障碍物,测试障碍物的存在对定位精度的影响,保持其他因素与基础试验组一致。有无障碍物情况下的定位误差结果如图7所示。

图7 有无障碍物情况下的定位误差

在有障碍物的情况下,平均距离误差为9.61 cm,平均角度误差为5.7°;在无障碍物的情况下,平均距离误差为9.02 cm,平均角度误差为4.6°;由试验数据可知,障碍物对于定位目标点位置影响不大(P>0.05),但朝向角误差会出现偏大情况。

3 讨论

3.1 机器人定位算法的探讨

室内移动机器人拥有稳定可靠的定位是实现自主运动的关键环节[24]。在室外环境下,GPS导航系统是解决定位问题的有效途径[25]。一旦进入室内无线电波信号会非常差甚至失去,无法在室内正常使用,室内定位需要寻找其他解决方法。现阶段室内移动机器人定位主要是依据环境地图和给定的传感器获取环境信息,确定自身在环境地图中的位姿[11]。以激光雷达和里程计等为传感器的2D激光SLAM技术较为成熟[26],已经应用于多种工作场景,例如AGV(Automated Guided Vehicle)自动导航车等。目前视觉SLAM具有很大的发展空间,应用于低速的产品如清洁机器人等,徐晓苏等[27]研究了室内环境下视觉SLAM的定位效果。由于Hector SLAM对传感器的要求比较高,需具备高更新频率且测量噪声小的激光扫描仪。Catographer是基于图优化的方法,需要复杂的矩阵运算,计算量和内存需求大。而视觉SLAM中环境光对于视觉传感器影响大,暗处或者浑浊的区域无法工作。考虑到鱼池环境的面积、观测传感器的精度和适用范围,本研究采用Gmapping算法和激光雷达来实现地图构建。传统惯性里程计方法需要基于航迹推算确定机器人位置,由于里程计的累计误差会导致定位误差逐渐变大,影响定位精度。采用基本的蒙特卡罗算法时,小概率假设会因粒子贫乏而丢失导致定位失败。AMCL[22]能够解决机器人“绑架问题”(突然变换位置),克服粒子数贫乏和固定的问题,在运动模型中使用KLD(Kullback-Leibler Divergence)对粒子进行重新采样。本研究在已知环境地图下采用AMCL算法,在重采样阶段优化粒子数量提高机器人定位效果。由于目前鱼池机器人搭载的是激光雷达观测传感器,发射出的光信号在水中容易被散射吸收,无法准确探测到物体,现阶段只是在无水池底下进行试验,在未来的工作中水下SLAM技术是重点研究方向。

3.2 鱼池清刷机器人定位试验效果

本试验的影响因素从鱼池环境和机器人本体两部分进行分析。除了定位技术的优化选择是影响室内机器人的主要因素外,鱼池坡度和机器人系统也是造成定位误差的重要原因。本试验结果表明,相比较于传统惯性里程计的方法,采用AMCL算法能够有效提高定位精度。有坡度的鱼池平均定位误差会增加2.73 cm,平均角度误差增加0.7°,鱼池坡度对定位精度影响较大。鱼池清刷机器人在0.1 m/s、0.2 m/s和0.3 m/s三种速度情况下,平均定位误差差距不大,但在建图过程中用低速移动,建图效果更好,环境特征覆盖更全面。已知环境地图下,添加障碍物对于定位精度影响不大,因为AMCL算法在全局定位的同时,也会有局部规划器,能够实时发现障碍物的情况,但朝向角可能会出现较大误差,有时陷入局部死点。根据误差规律将定位误差分为随机误差和系统误差,随机误差是由试验对象与环境的相互作用引起的,叶敏等[28]对采摘机器人定位误差的研究中得出结论,环境下的随机误差是造成定位不准确的主要原因。本试验中鱼池存在坡度,池底会打滑或有阻碍机器人旋转的障碍物。针对地形问题,本研究中证实了坡度等环境因素会造成定位误差,但目前尚缺乏地形匹配模型来修正坡度对定位精度的影响。郭磊明[29]提出了一种利用地形坡度特征来确定机器人空间位置的方法,使用机器人地形倾斜模型提取机器人位姿信息实现机器人定位。后续研究中会在构建的地图模型中加入坡度特征,形成立体地图来修正机器人的位置。系统误差主要是由于系统设计的不完整和不可预期的机械特性引起,Borenstein等[30]经过长时间的实验发现里程计的系统误差来源主要是两驱动轮轮距的误差和轮径不相等。达兴鹏等[31]提出了一种里程计系统误差及激光雷达安装误差迭代标定方法,实现定位误差大幅度降低。里程计的累计误差不可避免,随着机器人的移动距离越远,转向动作越多,定位误差也越大。为了尽量减少系统误差,定位试验前都会检查机器人本身性能以及正确调整驱动机构和激光雷达,并且进行多次里程计校正准备试验。在这些影响因素下,基础试验组定位精度达到预期,基本满足试验要求。但是该机器人也存在一定问题,传感器的选择、里程计误差的校正和机器人系统结构的优化等需要进一步调试改进。

4 结论

Gmapping算法构建小场景地图时计算量小且精度高,能够真实反映鱼池环境。通过不同因素定位试验分析,在基础试验组条件下采用自适应蒙特卡罗定位算法,目标点定位平均距离误差为9.02 cm,平均角度误差为4.6°,机器人能够有效估计自身位姿,同时也能完成导航任务,为路径规划清扫任务提供参考。现阶段设计的鱼池清刷机器人定位试验主要在方切角形鱼池里展开,在后续研究中增加鱼池环境的复杂度,增强机器人的通用性和实际性,以期进一步提高鱼池清刷机器人的定位性能。

猜你喜欢
里程计鱼池坡度
室内退化场景下UWB双基站辅助LiDAR里程计的定位方法
三十年目睹之竿坑兴替
校园里的鱼池
Aqueducts
基于远程监控的道路坡度提取方法
放缓坡度 因势利导 激发潜能——第二学段自主习作教学的有效尝试
里程计技术发展综述
较厚透水层建鱼池的防渗施工处理
鳄鱼池
不同坡度的地膜烟揭膜培土试验