网站首页  词典首页

请输入您要查询的论文:

 

标题 基于ROS的移动机器人SLAM研究与实现
范文

    曹家宁 陆馨妍 熊依琪

    

    

    

    摘要: 近年来,随着高新科学技术的不断发展,移动机器人的研究进展越来越迅速。其中移动机器人在未知环境下,实现同时定位与环境地图构建(SLAM,Simultaneous Localization and Mapping)过程是机器人研究的重要领域。本文简单介绍了ROS操作系统并研究了与 SLAM 问题相关的几类系统模型及Gmapping_slam、Hector_slam和Google开源的Cartographer_slam等相对成熟的slam算法。并对上述的三种 SLAM 算法在实际应用中的性能进行分析。

    关键词:移动机器人;ROS;SLAM

    中图分类号:TP311 ? ? ? ?文献标识码:A

    文章编号:1009-3044(2019)13-0199-02

    引言

    近些年,移动机器人的应用已渗透到各个行业中,如军事侦察、医学诊疗、物料搬运、社会服务、工业和农业生产等。正是由于如此广泛的应用,决定了移动机器人的工作场景既复杂又具很多不能确定的因素。因此移动机器人的定位能力、环境感知能力等对其完成任务的成功率、自身定位的准确率和自身性能的完善起到了至关重要的作用。移动机器人是否可以利用自身隨带的各种传感器采集到的周围环境信息来进行运动场景地图的创建,以及通过预设的一些指令完成相关指令规划的任务,在运行的过程中完成自主分析,自主决策,最终顺利到达目的地 ,这一问题已经成为研究学者们学习和钻研的关键。

    随着GPS技术的广泛应用,当移动机器人处于空旷、信号良好的室外环境时,上述问题可以利用高精度的GPS来解决。但在室内或一些复杂环境中,GPS的信号很不稳定时,就需要使用其他技术来解决移动机器人定位及环境地图创建问题。因此,研究学者们提出了SLAM。至今,SLAM已成为移动机器人研究领域的一项重要课题。

    1 ROS系统

    ROS(Robot Operating System,下文简称“ROS”)是一个适用于机器人的开源的元操作系统。它提供了操作系统应有的服务,包括硬件抽象,底层设备控制,常用函数的实现,进程间消息传递,以及包管理。

    1.1 ROS优势

    1.1.1多语言支持及开源环境

    ROS由于开发者使用的语言不同,因此ROS独立了开发语言,支持C++、python等多种语言。除了ROS提供的功能包之外,ROS还汇合了全球开源社区开发者实现的大量功能包。这些开源功能包与ROS一起创建了强大的开源生态环境。

    1.1.2 结构设计松耦合

    程序运行时是由多个松耦合的进程组成,每个ROS进程称之为节点(Node)。所有节点可以运行在一个处理器上,也可以通过ROS分布式特性运行在多个处理器上。在实际开发时,这种结构设计可以让开发者根据作品所需功能方便灵活地添加功能模块。

    1.2 ROS缺陷

    ROS的功能由各个节点组成,节点间通过消息机制通信,通讯环节消耗了很多计算资源。尤其是当所有节点运行在同一个处理器时,ROS仍然执行相应的消息分发,节点间的数据通信通过内存复制,使得系统必须选用高性能的处理器和存储系统以弥补速度的不足。

    2 SLAM相关模型

    2.1常用传感器模型

    2.1.1 激光传感器

    激光传感器通过激光来测量到被测物体的距离等参数。常用的测距方法是由激光器发出时间极短的脉冲激光发射到被测目标,回波返回,由光电探测器接收。根据主波信号和回波信号之间的时间间隔,就可以算出到待测目标的距离。

    2.1.2 视觉传感器

    视觉传感器探测范围较广、获取信息较激光传感器丰富,实际应用中常使用多个视觉传感器或者与其他传感器配合使用,通过科学合理的算法可以得到物体的点云、距离、色彩等诸多信息;还可通过SSD算法,根据一个镜头的运动图像来计算本地与目标的相对位移。

    2.2 栅格地图

    栅格图像,即光栅图像,是指在空间和亮度上都已经离散化了的图像。我们通过把一幅栅格图像考虑为一个矩阵,矩阵中的任一元素的坐标对应于图像中的一个点,而元素的值对应于该点的灰度级,矩阵中的元素叫作像素。

    栅格地图主要就是把地图离散化为一个个的单元(cell),每个单元占据 r*r 个像素,所以 r 的大小就代表了地图的分辨率。当 cell 为 free 时,该 cell 的灰度值就设为 255,也就是白色,当 cell 为 occupied 时,该 cell 的灰度值就设为 0 ,也就是黑色。初始时我们不知道 cell 具体的状态,我们就将其设为 100 ,也就是灰色。接下来我们设 mi为第 i 个 cell 是否occupied 的随机变量,那么 p(mi=1) 或 p(mi) 就表示第 i 个 cell 为 occupied 的概率,所以 p(mi)=1 就表示第 i 个 cell 为 occupied ,p(mi)=0 就表示第 i 个 cell 为 free 。

    2.3 坐标位姿模型

    与向量间的旋转类似,我们同样可以描述两个坐标系之间的旋转关系,再加上平移,统称为坐标系之间的变换关系。在机器人的运动过程中,常见的做法是设定一个惯性坐标(或者叫世界坐标系),可以认为它是固定不动的,如图中的[Xw,Yw,Zw]定义的坐标系。同时,传感器或机器人是一个移动坐标系,例如[Xc,Yc,Zc]定义的坐标系。相机视野中某个向量P,它的坐标为[Pc],而从世界坐标系下看,它的坐标为[Pw]。这时,就需要先得到该点针对机器人坐标系坐标值,再根据机器人位姿转换到世界坐标系中,这个转换关系由一个矩阵T来描述。

    3 ?2D SLAM 算法介绍与实现

    算法的输入一般是:机器人对周围环境的观测信息 z (激光雷达的扫描点、摄像头的图像等) 和 机器人的控制信息 u (运动过程中的前进转向等信息,一般对其积分后用里程计 odometry 来表示);算法的输出是:机器人的运动轨迹 x 和 周围的地图 m 。

    而我们要做的就是在给定 z 和 u 的条件下估计出 x 和 m:

    p(x,m|z,u)

    我们用概率形式来表示在存在各种误差的情况下,使用 z 和 u 来估计 x 和 m 的分布。并且在 2d SLAM 中, x 就是一个 [x,y,theta] 的三维随机变量, 如果 m 是栅格地图, m 就是一个 r*c 维的随机变量,其中 r 是地图的宽度, c 是地图的长度,所以我们可以用一个条件概率来解决我们的问题。

    3.1 Gmapping slam

    Gmapping是基于滤波SLAM框架和RBpf粒子滤波算法的常用开源SLAM算法,将定位和建图过程分离,先进行定位再进行建图。如图1。

    優点:Gmapping在构建室内小场景地图时拥有计算量小、精度高的特点。里程计可以提供机器人的位姿先验,算法有效利用里程计的信息,从而对激光雷达的频率要求变低。

    缺点:Gmapping牺牲空间复杂度保证时间复杂度,因此不适合构建大场景地图。此算法没有回环检测,在回环闭合时可能会造成地图错位。

    3.2 Hector slam

    Hector_Slam利用现代激光雷达系统的高更新率,并以传感器的扫描速率提供2D姿态估计。如图2。

    优点:不依赖里程计信息,空中无人机及地面小车在不平坦区域建图得以普及;利用高斯牛顿数学方法处理scan-matching匹配问题,获得激光点集会映射到已建地图的刚体变换。

    缺点:激光雷达的更新率要求较高,所建环境噪声较小。所以在建图过程中,需要移动机器人控制在速度比较低的条件下,建图效果才会比较理想;且在里程计数据比较精确的时候,无法有效利用里程计信息。

    3.3 Cartographer slam

    Cartographer_Slam基于激光雷达构建2D环境地图,分辨率精确至5cm。激光雷达返回的数据scans会以最佳的位置插入到submap中,这个最佳的位置假设在一定的时间内可以认为是很准确的。其中scan matching必须是和它相对应的submap进行匹配,因此它只和最接近的scan点集有关。这个系统结合了局部最优和全局最优的方法,都对激光雷达观测到的位置进行了优化。优化后的位置用[(ξx,ξy,ξθ)]表示,包括(x,y)坐标的转化和角度的旋转,实际上就是对scan点集的进一步优化。

    我们在学校实验室中用木纸板搭建了一个简单的地图环境,采用Jetson TX2硬件开发平台驱动激光雷达采集周围环境信息,并利用ROS分布式在同一局域网下在PC端运行Cartographer算法构建地图,通过上位机与下位机的stm32f103单片机进行串口通信控制小车底盘的移动,从而实现了小车环境的构建。如图3。

    4 结束语

    大体上讲,SLAM发展趋势有两大类:一方面是朝轻量级、小型化方向发展,让SLAM能够在小型移动终端上良好运行,然后考虑以它为底层功能的实际应用。在大部分场合中,我们的研发目标是实现机器人、AR/VR设备的功能,比如说导航、教学、娱乐,而SLAM是为上层开发应用提供机器人本身的位姿估计。在这些应用中,我们不希望SLAM占用太多的计算资源。另一方面则是利用高性能设备,实现精密场景理解等功能。我们的目的是准确地重建场景地图,而对于计算资源和设备的便携性没有多大要求。因此可以利用GPU,在这个方向和深度学习结合亦是计算机视觉的发展方向。

    参考文献:

    [1] 高博.视觉SLAM十四讲[M].北京:电子工业出版社,2016.

    [2] Google.Real-Time Loop Closure in 2D LIDAR SLAM .[R] ICRA ,2016

    [3] 王富.未知环境中移动机器人定位与建图技术的研究[D].黑龙江:哈尔滨工程大学,2013.

    [4] 梁明杰,闵华清,罗荣华.基于图优化的同时定位与地图创建综述[J].机器人,2013(6).

    [5] 顾其洋.基于ROS的家庭服务机器人SLAM的设计与实现[D].兰州:西北师范大学,2016.

    [6] 白佳奇.基于ROS的移动机器人改进视觉SLAM算法研究[D].天津:天津工业大学,2018.

    【通联编辑:唐一东】

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/11 4:36:20