基于ROS的全向移动机器人建图技术研究

发表时间:2021/7/1   来源:《科学与技术》2021年第29卷3月7期   作者:1刘嘉雯 2牟强 3姚志广 4刘贵林 5李嘉宁 6
[导读] 采用树莓派4b作为上位机,Arduino作为下位机,搭建移动机器人系统。研究基于粒子滤波的Gmapping算法
        1刘嘉雯  2牟强  3姚志广  4刘贵林  5李嘉宁  6朱瑞鑫  7官源林
        1青岛理工大学 2青岛理工大学 3天津大学,精密仪器与光电子工程学院  4青岛理工大学  5青岛理工大学   6青岛理工大学 7青岛理工大学,机械与汽车工程学院
        摘要:采用树莓派4b作为上位机,Arduino作为下位机,搭建移动机器人系统。研究基于粒子滤波的Gmapping算法,在ros中利用Gmapping算法实现移动机器人建图功能,并用rviz工具可视化建图过程。通过实际环境测试,设计的全向移动机器人具有良好的建图精度。
        关键词:移动机器人;ros;Gmapping;建图;
        0 引言
        机器人操作系统ROS (Robot Operating System) 是斯坦福大学人工智能实验室和机器人公司Willow Garage合作研发的用于机器人开发应用的开源操作系统,具有可移植性强,兼容性高,灵活性好等特点[1]。同时定位与建图技术slam(Simultaneous Localization and Mapping)最早由Smith等人[2]提出,用以解决智能机器人在未知环境下实时定位和地图构建问题。
        本文主要研究slam中的Gmapping算法,使用Gmapping算法完成地图的构建,利用激光雷达、树莓派4b和Arduino等硬件搭建全向移动机器人系统,选择ros作为机器人操作系统,在实际环境下测试机器人的建图定位性能。
1 Gmapping算法
1.1 RBPF算法
        RBPF(Rao-Blackwellized particle fifilters)算法是Murphy等人[3]提出的一种有效解决slam问题的粒子滤波算法,RBPF算法的中心思想可描述为:
 

器人地图和位姿的联合后验分布概率。表示为机器人位姿的后验分布概率,是用来估计地图信息的后验分布概率。因为要解决机器
人同时定位和地图构建(slam)是比较难实现的,RBPF算法将slam问题分解为两部分:先求出机器人的位姿信息,在已知位姿信息的条件下计算当前地图信息。
        RBPF算法步骤如下:
        初始化:在初始时刻也就是t=0时,获得粒子数目为N,每个粒子权重为1/N。
        采样阶段:根据提议分布,从t-1时刻的粒子集合中获取t时刻的粒子集合,提议分布一般为里程计运动模型。
        计算粒子权重:计算每个粒子的权重,权重大小表示提议分布与真实分布的接近程度。
        重采样:根据每个粒子的权重分布,计算有效粒子数,然后重采样形成新的粒子集,重采样后每个粒子权重变为1/N。
        更新地图:根据机器人的位姿信息和观测数据计算每个粒子对应的地图估计。
1.2基于RBPF的Gampping算法
        传统RBPF算法实现时,采用里程计运动模型作为提议分布,这种模型精确度并不高,每一次采样得到的粒子权重差异都比较大,这导致需要更多的粒子来构建地图并且频繁执行重采样,采样粒子数目的增加会急剧增加内存的消耗,而重采样次数的增加会导致粒子退化,粒子退化主要表现在粒子多样性减少和正确粒子被丢弃的可能性增大。针对RBPF算法的缺陷,Gmapping算法在RBPF算法的基础上提出改进提议分布和自适应采样的方法,其中改进提议分布是为了减小粒子数,自适应采样是为了减小重采样次数[4]。
        改进提议分布:
        传感器数据精度(比如激光雷达)一般里程计数据精度高,也就是激光传感器的分布模型比里程计的更接近真实模型,因此Gmapping算法在采集下一代粒子时将最近观测到的一次激光雷达数据zt加入到提议分布来优化提议分布模型,提高模型精确度,有效解决需要过多粒子数的问题。Gmapiing改进的提议分布可表示为:
              

        自适应采样:
        用粒子滤波估计目标状况时,实际上只能用有限的粒子去近似真实分布,因此需要把权重小的粒子丢弃,保留权重大的粒子复制使粒子收敛到真实状态附近,这会导致频繁重采样,所以需要一个合理的有效粒子数目来决定是否进行重采样,有效粒子数目公式如下:

2全向移动机器人系统设计
        全向移动机器人系统构建如图1所示,系统软件层是基于上位机的树莓派4b,该操作系统采用Ubuntu16,安装的ros版本为kinetic。在实际应用中,因树莓派性能、内存和显示等问题,一般将树莓派通过SSH连接到PC端的Ubuntu虚拟机上,此外,建图导航可视化和仿真等功能在PC端上实现也更方便。系统硬件层由下位机(Arduino mega 2560)、思岚激光雷达A1、电源、全向轮底盘及其相关配件构成。通过串口通信的方式,实现软件层和硬件层的交互,有了通信协议后,上位机发送控制命令驱动下位机电机和激光雷达,搭建的移动电源可同时为Arduino和树莓派供电。

        搭建的三轮全向轮移动机器人实物如图2所示:

3 建图导航功能的实现
        Gmapping算法可在ros系统中下载,使用Gmapping建图需要里程计数据和激光雷达数据,里程计数据可由电机上的编码器采集。传感器采集到的数据通过串口发给上位机,但是上位机处理器并不知道他们的转换关系,而传感器一般都是固定在机器人身上不变的,所以可用tf工具发布机器人底盘和激光雷达、里程计、IMU的坐标变换,有了静态坐标关系后,机器人可根据得到的数据,判断周围环境并且进行定位。
        建图步骤如下:
        启动小车电源,树莓派SSH连接到PC端,PC端上SSH端口启动launch文件,启动键盘控制节点,运行Gmapping建图包,打开Rviz可视化工具,添加订阅的话题,利用键盘控制小车移动,尽量让小车的运动形成一个闭环,这样可以增加生成的地图的质量,生成的地图通过map saver命令保存到指定文件夹。
        移动机器人建图的实际环境和用Gmapping算法生成的地图如图3所示,实验结果证明该技术方案可行性。
        
        
        
        
      
4总结
        本文通过分析传统RBPF算法原理,指出RBPF算法的缺点,利用激光雷达比里程计精度高的优点,在计算时加入激光雷达数据,提高了模型精度,解决了粒子数过多的问题,提出自适应采样,设定一个阈值,当粒子的权重变化大于我们设定的阈值时才会执行重采样,减少了重采样次数,减缓粒子退化。以ros为平台,在实际环境下利用Gmapping算法建成的地图具有良好的精度。
        
参考文献
[1] Jason M.O’Kane.A Gentle Introduction to ROS[M].independently published,2013:1-30.
[2] Smith, R.C. and P. Cheeseman, On the Representation and Estimation of Spatial Uncertainty. International Journal of Robotics Research, 1986. 5(4): p. 56--68.
[3] A. Doucet, J.F.G. de Freitas, K. Murphy, and S. Russel. Rao-Blackwellized partcile fifiltering for dynamic bayesian networks. In Proc. of the Conf. On University in Artifical Intelligence(UAI), pages 176–183, Stanford, CA, USA, 2000.
[4] Giorgio G,Cyrill S.Improved Techniques for Grid Mapping With Rao-Blackwellized Particle Filters[J]. IEEE Transactions on Robotics: A publication of the IEEE Robotics and Automation Society,2007,23(1):34-46.



        基金项目:山东省自然科学基金项目,ZR2019PEE018
通讯作者.E-mail:guanyuanlin@qut.edu.cn
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: