基于改进RBPF算法的轮式机器人SLAM导航系统设计

2022-04-25 11:49王险峰邱祖泽丁子琳杨浩伟
计算机测量与控制 2022年4期
关键词:轮式功能模块激光雷达

王险峰,邱祖泽,丁子琳,赵 通,杨浩伟

(东北石油大学 计算机与信息技术学院,黑龙江 大庆 163318)

0 引言

人工智能技术与机器人技术已经成为当前社会中不可或缺的一部分,机器人与自主学习功能的相互融合便成为未来的主要发展方向之一。在每个行业中高度的智能化机器人设备均可以起到促进效率、提升工作质量的效果,例如工业领域的自主化流水线生产、监测领域的智能数据监测等。对于这些高智能化发展的机器人能够精准识别出实时所处的环境和位置是帮助人们生产生活的重要前提,这也是科研人员一直所追求的智能机器人成果之一。传统轮式机器人主要在SLAM技术的引导下实现对真实环境相关数据的监测和提取,然后通过机器人自身的激光雷达处理数据完成规划目标路径的任务,从而达到智能导航的目的。SLAM技术还可以为机器人搭建一套未知地形的地图资源共享平台,帮助机器人中的各个激光雷达更好地实现定位功能。

轮式机器人SLAM导航系统的研究已经有将近40年的历史,传统方法对于此类机器人自动导航系统的研究主要基于卡尔曼滤波算法,利用这种算法对机器人周边线性高速噪声系统进行优质处理,再通过其他不同种类的算法进行非线性系统的设计与数据处理,可以截取算法中产生的误差。例如文献[1]中提出的基于滤波算法的导航系统,这种系统下的轮式机器人SLAM技术与卡尔曼滤波直接共享位置信息,利用粒子群的分布表示导航系统中障碍的存在位置,以粒子滤波的方式表示轮式机器人可以通行的路径,这种系统在较为复杂的地形中更容易应用。文献[2]中提出的是基于软件库cartographer的导航系统,此系统利用激光计算机器人所在环境到目的地之间的距离,然后采用后端非线性优化方式验证距离数据的真实性与准确性,最后在软件库中搭建地形图场景平台,减少轮式机器人SLAM导航系统提供的路径误差。文献[3]提出基于多自适应神经模糊推理的移动机器人导航系统。分别将3个红外距离传感器安装在机器人的前、左和右侧,读取环境中的前、左前和右前静态和动态障碍物。将该传感器数据信息作为输入值输入到 MANFIS 架构中,为机器人的左右电机生成适当的速度控制命令。

上述方法均具有一定的有效性,但对轮式机器人S导航过程中的路障采集精度仍有待提升。本文将主要研究基于改进RBPF算法的轮式机器人SLAM导航系统,利用改进RBPF算法的数据特征优化传统导航系统中存在的缺陷。

1 基于改进RBPF算法的轮式机器人SLAM导航系统硬件设计

本文研究的基于改进RBPF算法的轮式机器人SLAM导航系统硬件主要由导航功能模块、底盘驱动模块、控制模块组成,系统硬件结构如图1所示。

图1 基于改进RBPF算法的轮式机器人SLAM导航系统硬件

1.1 导航功能模块设计

导航功能模块是由多方面的硬件结构共同组成的,主要包括负责功能数据采集的传感器结构和负责数据处理的处理器结构,两者相互配合从而形成了较为完整的导航功能模块。本文首先介绍传感器硬件结构,传感器在轮式机器人中是极其重要的数据感知和采集手段,可以为导航功能模块提供稳定且精准的环境数据,传感器中一般会存在一定的算法来保障导航功能模块的精准性。

传感器采用RPLIDAR A1型激光雷达,传统的超声波激光雷达大多方向性差、监测范围有限,甚至还存在数据错漏现象,而本文选用的RPLIDAR A1型激光雷达按顺时针旋转,可实现360度全方位扫描,感知环境信息不受光线影响,在光线不足的地方同样也能完成导航任务[4-5]。其能够为导航功能模块中的数据处理单元提供优质的可感知单元。这种传感器还可以在SLAM算法基础上引用改进RBPF算法,具有更广泛的算法空间,这也是本文选用此款传感器的主要原因。其基本参数如表1所示。

表1 RPLIDAR A1型激光雷达参数

处理器是导航功能模块的核心结构,负责处理激光雷达上传的全部内容。本文采用的处理器为嵌入式处理单元,配置了i7 6700芯片,可以在芯片中安装多种类算法,芯片在进行算法计算过程中还可以处于低功耗处理状态,并对外提供丰富的数据接口,保障数据量计算与交互的同时运行。

1.2 底盘驱动模块设计

轮式机器人的底盘可以实时控制机器人的运动速度,一个良好的底盘驱动可以精准进行差速控制,大多数底盘驱动由两个主动轮子和多个从动轮子组成,每个主动轮具有独立的驱动模块,能够为主动轮提供稳定可靠的动力,而从动轮主要是起到改变方向、辅助支撑的作用,跟随主动轮的驱动方向来改变整个机器人的运动方向。

带齿轮的底盘驱动是以齿轮作为动力的传输结构,可以将主动轮轴与从动轮轴相互拉开距离,保证轮式机器人的多个轮子在运动过程中不相互影响且可以起到相互辅助的作用,这样的设计结构极大减少了底盘总占用面积,从而为轮式机器人提供了更广泛的运动空间。本文还在底盘中增加了悬挂系统,悬挂系统具有增强动力的作用,再在悬挂系统中添加改进RBPF算法,使悬挂系统也具备数据识别功能,针对不同的路况提供相应的动力供给量[6-7]。

底盘驱动结构电路如图2所示。

图2 底盘驱动结构电路图

1.3 控制模块设计

本文在控制模块中安装了扩展卡尔曼滤波器,将此装置中扩展卡尔曼滤波算法和改进RBPF算法相配合,扩展卡尔曼滤波算法用来估计导航地图环境特征位置,改进RBPF算法用来估计机器人所处的位置,通过两者相互配合,形成了能够处理不确定性高斯噪声的新算法。

传统机器人的SLAM算法中含有大量的噪音,从而影响了控制模块的数据判断,为此本文设计的新算法可以较大程度地减少控制模块的数据判断误差,机器人会根据控制模块对外输出数据来决定实时运动状态,控制模块再通过扩展卡尔曼滤波装置对激光雷达采集数据进行信息融合,制定机器人下一阶段的运动目标。控制模块电路如图3所示。

图3 控制模块电路图

2 基于改进RBPF算法的轮式机器人SLAM导航系统软件设计

2.1 改进RBPF SLAM算法

传统的RBPF算法中只将里程计信息作为提议分布,机器人在运动的过程中偶尔会发生轮子打滑或漂移的情况,在该情况下里程计所记录的信息会发生较大误差,从而得到的提议分布与现实后验概率分布差距较大。本文中改进的RBPF算法将高测量精度的激光雷达信息与里程计信息进行整合优化,得到更能靠近现实后验概率分布的提议分布。改进后的提议分布为:

(1)

然而提议分布中的似然函数无法直接获得,因此不能对其进行采样。解决方法是把提议分布近似看作为高斯分布:

(2)

(3)

(4)

改进后的RBPF SLAM算法能够自主适应不同运动模式下的提议分布,且能够在普通的粒子运动模型中提取较高权重的粒子,使机器人时刻处于平稳状态,如下所示为较高权重粒子的计算方式[8-10]:

(5)

利用算法公式进行权重计算时,加入激光雷达信息会减小权重方差,此时的粒子分布群出现顶峰值,再使用滤波器对粒子群进行发散,便可以调控运动模型与周围环境之间的1∶1比例关系[11-13]。检测实际机器人运动场景和预测场景之间的差异,然后持续进行重采样,评估粒子数是否达到表示路径的标准[14-16]。

改进后的RBPF SLAM算法具体实现步骤如图4所示。

图4 改进后的RBPF SLAM算法实现步骤

2.2 基于改进RBPF SLAM算法的机器人SLAM导航流程实现

改进的RBPF SLAM算法在轮式机器人导航中运行首先需要对每个粒子进行卡尔曼过滤,将过滤后的粒子传送到计算矩阵中,等待后期的算法计算;其次是要选择权重值较高的粒子初步判断机器人现阶段所在的位置,根据外部地形环境等因素聚集粒子到特殊位置,并防止这些粒子出现大量的离散状态,尽量控制粒子在有限的空间内分布[17];然后对有限空间中的粒子进行统计,为卡尔曼的深度过滤提供数据保障,所统计的粒子数必须是在一个独立的粒子群中,当粒子群中统计的数据量在正常范围区间,则证明改进的RBPF SLAM算法适用于该轮式机器人导航系统,若粒子群数据量较少或过多,则证明改进的RBPF SLAM算法不适应该轮式机器人导航系统[18-20]。改进的RBPF SLAM算法在轮式机器人导航中运行过程如图5所示。

图5 改进RBPF SLAM算法在导航中运行过程

根据图5可知,本文设计的算法实现程序是在普通的粒子权重中提取高质量的粒子,以便组成更高质量的粒子群,这样的卡尔曼滤波才会实现路径的距离筛选和障碍物的识别,保障算法结果的精准性。

3 实验结果与分析

3.1 实验场地设置以及实验过程

本文设计的实验主要针对本文所设计导航系统下的轮式机器人能否在复杂的路径环境中实现精准避障以及减少运动误差等项目,从这些项目中还对系统设计的完整性和功能性进行判断。

本次实验环境为计算机学院实验楼1楼的走廊过道,在过道的3 m*4 m的区域上布置了8张椅子作为大障碍物,2个纸箱子作为小障碍物。大障碍物的体积为64 000 cm3,小障碍物的体积为5 850 cm3。为了方便地控制机器人,需要在笔记本电脑和轮式机器人的上位机配置相同的ROS系统,笔记本电脑通过ROS系统与机器人进行通信。

首先将轮式机器人放到起始点,如图6所示。然后启动轮式机器人初始化程序,加载改进RBPF SLAM算法导航程序,改进RBPF SLAM算法利用激光雷达与里程计信息实时更新导航地图。通过笔记本电脑端发送目的地坐标,轮式机器人接收到坐标信息后会进行从起始点到目的地之间的路径规划,当轮式机器人靠近路障时,导航系统识别到该障碍物并绕开,如图7所示。绕开路障后,轮式机器人会继续沿着导航系统的规划路径运动,当导航系统判断达到目的地的位置时就会退出导航程序,机器人停止运动,如图8所示。

图6 轮式机器人初始状态

图7 轮式机器人运动过程

图8 轮式机器人到达目的地

3.2 实验结果对比与分析

在完成了本文提出的改进RBPF SLAM算法的导航实验后,在相同的实验环境中使用同一个轮式机器人来完成基于滤波算法系统的导航实验以及基于软件库系统的导航实验。为了统一控制变量,不同导航系统中的算法计算的初始粒子数均设置为100,所计算出的结果将会以特有的格式储存在系统文件中,保证每组计算数据的类型一致。

本文先分析不同导航系统下轮式机器人的避障效果,实验中用A代表机器人在路径中的初始位置,D点代表机器人的目的地,C、B两点均代表机器人因不同导航引导而产生的路径偏差,设定实验环境中的轮式机器人运动速度保持一致,3种系统下的路径引导结果如图9所示。

图9 不同导航系统下的路径选择情况

根据图中的路径结果可知,本文系统下轮式机器人选择的路径最短,能够在躲避障碍物的前提下完成最短路径的规划,而其他两种系统下的轮式机器人虽然也能够躲开障碍物,但是所选择的路径在不同程度上长于本文系统,因为本文系统所采用的改进的RBPF SLAM算法能够对粒子群进行最高权重的筛选和多次选择,能够判断出到达目的地的最佳距离,所以本文系统具有更加高效的避障能力。

接着对3种系统下轮式机器人内部算法数据储存空间中的数据误差进行对比,实验中随着机器人运动时间的增长,误差也会随之累积,对外则表现出导航界面中出现错误点的数量增长,3种导航系统算法下的误差累积对比结果如图10所示。

图10 算法误差对比结果

根据图10中的对比结果可知,本文系统下的算法误差导致的错误点数量在相同的运动时间内,出现次数最少,相比其他两种系统平均每10分钟少1~3个错误点。原因是本文所采用的算法基于控制模块与导航功能模块与算法之间建立了数据共享机制,加强了算法运算过程中的错误识别率,进而减少了误差的累积。

4 结束语

本文提出的基于改进RBPF算法的轮式机器人SLAM导航系统较为注重粒子权重在卡尔曼滤波过程中的筛选阶段,提高了导航系统的数据真实性,减少了不必要软件程序的运行,还可以提升算法对于粒子的重复应用。

本文设计的基于改进RBPF算法的导航系统只有在算法得到保障的前提下才可以运行,即需要测量精度高的激光雷达和比较平坦的地面。虽然具有较高的计算效率,但是实现过程中比较繁琐,所以在后续的研究任务中,还可以将算法的作用作为重点研究内容,用于提升导航数据的可应用程度。

猜你喜欢
轮式功能模块激光雷达
激光雷达实时提取甘蔗垄间导航线
法雷奥第二代SCALA?激光雷达
轮式拖拉机前驱动桥使用调整
融合激光雷达与超声波数据的障碍物检测方法
Ouster发布首款全固态数字激光雷达
轮式突击炮
车载/轮式自行榴弹炮
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
高校二手交易网络平台功能及技术框架分析与设计