全文总字数:9571字
1. 研究目的与意义(文献综述)
1.研究目的及意义
随着机器人技术的发展,机器人的存在已对人类社会产生了巨大的影响,极大的发展了人类的生产力和方便了人们的生活。例如工厂中的机器人手臂能完成各种操作复杂的高精尖任务,海底勘探机器人能够代替人类去海底完成勘探任务,灾难救援机器人能够去往人类所不能达到的位置完成救援任务等等。可以想象,在不远的未来,机器人在人类社会中一定占据及其重要的一角,不可或缺。机器人领域作为德国工业4.0计划和中国2025计划都密切关注的领域,理应得到更多的关注和研究。
自主移动机器人作为机器人的一种,近些年快速发展,已取得一些成就,例如成熟的商业化产品扫地机器人和物流AGV机器人等等。机器人要想在未知环境中移动,必须具备实时定位与地图创建能力,同时这也是机器人完全自主运行的重要基础之一。移动机器人的地图以机器人的确切定位为基础创建,同时定位又依赖于具有足够精度的环境地图。因此,定位与地图创建彼此依赖,是鸡和蛋的关系。
SLAM是Simultaneous Localizationand Mapping的缩写,意为“同时定位与建图”。它是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程。SLAM作为机器人智能化运动的前提,因此SLAM是机器人研究中的一项重要内容。按照传感器种类和安装方式的不同,SLAM的实现方式和难度会有很大差异。按传感器来分,SLAM主要分为激光、视觉两大类。其中,因为激光SLAM拥有激光雷达数据处理速度快、精度高、可以高效响应场景变化的优点,所以比起视觉SLAM,激光SLAM要更为可靠与安全。激光SLAM技术在机器人的同时定位和地图的构建中具有广泛前景,例如越来越多的AGV制造商转向智能的激光SLAM导航技术研究。激光SLAM还在无人驾驶领域大有可为,随着城市物联网和智能系统的完善,无人驾驶必是大势所趋。无人驾驶利用激光雷达传感器(Velodyne、IBEO等)作为工具,获取地图数据,并构建地图,规避路程中遇到的障碍物,实现路径规划。激光SLAM还被运用于AR领域。AR通过电脑技术,将虚拟的信息应用到真实世界,真实的环境和虚拟的物体实时地叠加到了同一个画面或空间同时存在。在用到AR头显进行的游戏中,运用的空间感知定位技术里面会用到激光雷达和许多配套的光学传感器,通过SLAM技术(即时定位与地图构建),精准定位自己在三维空间中的位置,增强在游戏中的真实体验感。因此本课题对于机器人技术高速发展的今天具有十分重要的现实意义。
2.国内外研究现状
概率SLAM(probabilistic SLAM)起源于1986年在旧金山举行的 IEEE Robotics andAutomation Conference,这是机器人领域与人工智能领域研究结合的开端。
DieterFox[1]和 Sebastian Thrun[2]建立了移动机器人建模和算法分析的概率学基础,提出了机器人的概率学定位概念,为 SLAM 等移动机器人算法的发展奠定了基础。
SLAM早期的基本理论是以扩展卡尔曼滤波(ExtendedKalman Filter,EKF)为代表的滤波方法为主。1986年,概率论的相关理论被Peter Cheeseman 等人引入到机器人定位与建图领域,他们在论文中讨论了利用EKF方法构建基于地标的特征地图 [3]。此后,SLAM成为机器人领域的研究热点。EKF SLAM 的第一次实际应用在1991年,Leonard 和 Durrant-Whyte的论文中使用EKF方法构建了基于声呐的 SLAM 系统[4]。 2001 年,Williams等人提出了临时特征列表的概念[5],减小了特征检测误差对SLAM 精度的影响。2002 年,Patric Jensfelt 提出了里程计的偏差可以通过利用环境中的几何约束来修正,从而提高室内 SLAM 的精度[6]。山东大学的姜振煜在2019年的论文中提出了一种基于双地图的抗干扰的扩展卡尔曼SLAM框架,通过采用基于双地图的地图管理方法和严格地标选择方法达到消除“噪声地标”,并有效减少“噪点”的目的,从而提高地图构建及定位精度[12]。许柏杨和王冬青在2019的论文中提出一种改进的扩展卡尔曼滤波(EKF)方法来解决EKF算法在特征数量较大的场合如大范围环境中生成的特征图准确性不足且计算复杂度高的问题[13]。
另一种基于滤波的 SLAM 的主要形式是粒子滤波(Particle Filter,PF)。Rao(1945)和Blackwell(1947)最早提出通过采样,用参数浓度函数来表示随机变量,因此PF方法也被称为Rao-Blackwell Particle Filter(R-B 粒子滤波)。 2000 年Thrun将粒子滤波算法第一次引入到地图构建中[7], 2001 年Murphy 和 Russell将 R-B 粒子滤波算法正式引入到 SLAM领域[8]。在 2002 年Michael Montemerlo 等人提出了 FastSLAM 算法来避免EKF算法对数据关联错误敏感和计算复杂度高这两个重要缺点。Montemerlo 等人在 2003 年通过改进提议分布开发了 FastSLAM 的升级版本 FastSLAM 2.0。Robin Ping Guan等人提出了一种融合Gmapping分布和Kullback-Leibler散度来适应粒子数的移动机器人导航算法,与基准算法相比,该算法以较少的粒子数获得较高的定位精度。[15]熊艳在2016年的论文中针对FastSLAM算法存在的粒子滤波不一致和所需粒子数量大的问题,通过迭代无迹粒子滤波来精确设计提议分布,提出了一种改进迭代无迹粒子滤波的SLAM算法[10]。
Lu 和 Milois[9]在1997 年提出了基于图优化的 SLAM 算法。该方法通过构建出一种待优化的图,主要包含节点与连线。在待优化的图中,节点代表不同时间点的机器人姿态,节点之间的连线即边对应于两个相邻时刻的机器人姿态变换关系。该算法将建图转换为优化问题,定义好目标函数和约束条件,通过随机梯度下降、最小二乘等数学方法调整边与节点。在2016年,谷歌的Hess W等人[11]提出了基于图优化的激光SLAM算法Cartographer,该算法通过求解非线性最优化来解决移动机器人同时定位与建图问题,开辟了不同于滤波算法的另一种新思路。
2. 研究的基本内容与方案
1.设计的基本内容、目标、拟采用的技术方案
3.1基本内容和目标
论文所要进行的研究的目标主要包括以下5个方面。
(1)建立基于激光的智能型地面探索机器人的运动学模型。
(2)研究智能型地面探索机器人在实际环境的定位和建图过程。
(3)搭建ROS机器人操作系统。
(4)分析5种主流的基于激光SLAM。
(5)比较其在实际环境中完成定位与建图工作的效果。
论文研究的研究内容为本文进行 SLAM 研究使用的各种模型,包括坐标系统定义、环境模型、传感器模型、机器人运动学模型、环境地标动态模型。研究机器人激光SLAM定位及建图过程框架。搭建ROS系统及Gazebo的仿真实验环境,在其中测试分析主流的激光SLAM(Gmapping, HectorSLAM、Cartographer、 KartoSLAM、 CoreSLAM)在实际环境中完成定位与建图工作的效果,及比较算法完成定位及建图所花时间。
3.2拟采取的技术方案
论文对 SLAM 问题展开具体的描述,着重研究了移动机器人运动学模型、里程计模型以及传感器的观测模型,为 SLAM 算法的推导奠定了基础。 针对同步定位与地图构建的问题,论文对基于滤波器、基于图优化的 SLAM 算法的基本原理进行介绍,对以粒子滤波器、图优化为理论基础的五种典型 SLAM 解决方案进行研究,在论述其原理的同时给出详细的数学推导和流程模型。通过构建环境仿真 Gazebo 模型,对五种算法进行仿真验证,分析对比各自的优缺点以及对影响实验效果的重要参数进行分析。
(1)SLAM 问题的描述
SLAM是Simultaneous Localization andMapping的缩写,意为“同时定位与建图”。它是指运动物体根据传感器的信息,一边计算自身位置,一边构建环境地图的过程。移动机器人的地图以机器人的确切定位为基础创建,同时定位又依赖于具有足够精度的环境地图。因此,定位与地图创建彼此依赖,是鸡和蛋的关系,并非是两个独立的阶段。从本质上来说,SLAM 的问题也为机器人位姿以及观测信息的概率估计问题,考虑到系统控制的信息和传感器的观测信息都会不可避免存在噪声干扰的问题,可以将该问题建模成:
P(X, M|Z1:t,U)(3.1)
其中Z1:t表示机器人在由1到 t 时刻的观测信息,k 时刻的观测 Zk={ zk,1 , zk,2 …zk,j },其中zk,j表示在 k 时刻观测到的第 j 个特征路标;U={u1 , u2 …uk }示从 1 到 t 时刻的控制信息;M = {m0, m1,……,mn}所有地标的集合,X 表示机器人的位姿。一般来说,通过给出的t 1时刻状态估值P(X, M|Z1:t-1,U),控制信息ut 以及下一时刻的观测zt ,通过使用贝叶斯更新模型计算出在 t 时刻的状态估计。这一问题求解通常基于贝叶斯递归方法,在其运算过程需要用到系统的状态转移模型以及观测模型。
通常,系统的状态转移模型又称为运动模型,能够表示为:
xt=g(xt-1,ut) εt(3.2)
上式中t是运动模型的噪声,服从高斯分布。通过传感器接收的观测数据亦可用概率函数来表示,通常也称为观测模型。观测模型表示为:
zt=h(xt,M) δt(3.3)
其中t为运动模型噪声,服从高斯分布。
(2)机器人运动模型
由于受到噪声的影响以及存在大量没有建模的非内部物理作用的下,对移动机器人的运动进行精准的描述并不容易。在科学论证上,适当的概率模型能够更为精准地描述移动机器人运动以及对环境感知的不确定性.
本文采用双轮差分驱动方式的移动机器人。假设移动机器人两个驱动轮为刚体,两轮尺寸大小相同且都不存在变形情况,轴心连线与机器人前后的运动方向相互垂直,两轮只做纯滚动运动且忽略其厚度对机器人运动的影响。
设定底盘两轮轴线的对称中心位置为移动机器人质心,由点 M 表示,其中(xM,yM) 为机器人的质心在平面内的投影坐标,r 为驱动轮半径,d 为轮间距,θ为机器人的航向角,机器人的位姿向量为(xM,yM, θM),移动机器人左右驱动轮的旋转角速度分别表示wL,wR,可推导出下式:
(3.4)
通过设定的质心 M 作为参考点,机器人的运动学模型可以表示为:
由上式可得移动机器人由运动学模型计算出定位公式表达式为:
(3.6)
将上式离散化并且添加噪声模型,移动机器人的状态方程可以表示为:
(3.7)
式中,w(k) 是高斯白噪声,其均值为零,为系统的误差模型,T 为采样周期。而由上式可知,机器人左右轮的旋转角速度WL ,WR为移动机器人的控制分量,这与机器人的状态向量 x , y 以及形成典型的非完整约束问题。由此可知,机器人的方向改变通过调节两驱动轮的速度差,做圆周运动来实现。
(3)移动机器人里程计模型
由面分析可知,机器人位姿可表示为p=[x,y, θ ],系统运动模型建立过程中最常用到里程计模型,该模型用测量的距离代替速度控制,通过整合驱动轮的编码信息得到。移动机器人位可由状态方程估计得到,从初始位置开始,对其运动方程进行积分求解得到机器人当前位姿的估计值。因移动机器人控制系统为离散系统,存在固定的采样间隔t,可将式(3.6)离散化,通过里程计估计出移动机器人位姿的离散数学模型。里程计的定位通过检测固定间隔时间周期两轮转过的距离,计算出相对上一时刻的位姿变化量。
假如在采样间隔t内左右两轮转动的距离为wL和wR,则移动机器人在采样周期内移动的路程距离与旋转角度可表示为
(3.8)
对式(2.6)离散化得出移动机器人的位姿增量:
(3.9)
由此可得,移动机器人从 k 时刻到 k 1时刻位姿估计表达式为:
(3.10)
因此,若在移动机器人的初始位姿的前提下,根据式(3.10)可以求出相对前一时刻的相对位姿,而采样间隔 足够短,可求出机器人当前状态的位置信息以及航向角。在实际应用中,由于速度对时间积分来求得位置的估计时所产生的误差十分敏感,当移动机器人行驶距离以及时间增加时,里程计的累计误差会变得越来越大。通常我们可借助外部传感器如激光雷达、视觉等,对环境进行实时观测来修正移动机器人自身的位置以及姿态。
(4)激光SLAM系统框架
基于激光传感器的二维激光SLAM问题经过较长时间的研究,已经拥有较为成熟的解决方法。SLAM系统框架如图3-1所示,移动机器人首先根据里程计建立运动模型,将起始时刻的位姿作为初始位姿,在运动的过程中提取并处理传感器获取的信息来构建当前移动机器人位姿下的局部环境地图,然后不断地使用传感器观测来更新局部地图,同时使用传感器扫描特征与之前的地图进行特征匹配以更新移动机器人当前的位姿,最后进行数据关联将局部地图融合形成全局地图,完成移动机器人即时定位与地图构建的整个过程。
图3-1激光SLAM系统框架
(5)搭建ROS系统及Gazebo仿真环境
机器人操作系统(Robot Operating System, ROS)起源于斯坦福大学人工智能实验室,是提高机器人软件开发效率的一种工具,经过开发者与使用者的共同努力,ROS成为了机器人领域公认的学习与应用开发框架。ROS是各底层零部件相互连接的桥梁,而通信架构是ROS的灵魂,也是整个ROS正常运行的关键所在。ROS以节点作为进程的最小单元,将实现不同功能的多个节点组合起来完成一项工程,能够实现移动机器人的某项动作或任务。ROS通信架构包括各种数据的处理,进程的运行,消息的传递等。ROS的通信方式有四种: Topic话题通信、Service服务通信、Action动作通信、 Parameter Service参数服务通信。本文通过在记本上安装Ubuntu16.04操作系统及Kinetic版本的ROS系统进行试验。ROS系统自带Gmapping,HectorSLAM、 KartoSLAM算法包,可以很方便的调用这些算法。
本文使用的仿真实验为 Gazebo 物理仿真环境,PC 端操作系统为 ubuntu 16.04,ROS 版本是 Kinetic,在 Gazebo 中的信息可以和 ROS 之间进行话题通信,也可以与Rviz调用相互联系,能够方便地调试算法。先配置机器人模型为两轮移动机器人底盘模型,对移动机器人关节以及其连杆同框架的属性进行描述,配置差分控制器可以对移动机器人进行运动控制,同时定义其运动学、动力学、安全极限和类型。添加激光雷达仿真传感器,获取激光雷达的仿真数据,其测量最远距离为 5.5m。
其次,在 Gazebo 物理仿真环境创建仿真环境,使用 Building Editor 对墙壁信息进行搭建如图 3-2 所示,各个墙面的尺寸信息也在图中顺序标注,仿真环境面积为 120m2 。然后向环境中添加直接人物、障碍物等仿真模型。
该仿真环境能较好反应实际建图的情形,环境中存在障碍物以及人物的模型,环境占地尺寸为 1202m ,而激光雷达的测距是选用性能一般的国产激光雷达为模型,其测距范围最大值仅有 5.5 m ,符合客观世界如家用扫地机器人的工作环境,其建图精度也会存在与理想假设有较大的误差,符合移动机器人实际应用,对实验算法性能或参数的验证具有实际意义。
(6)分析测试5种算法
对Gmapping和CoreSLAM算法建立地图,重点分析粒子数对建立地图的影响,由于 Gmapping 和CoreSLAM是以粒子滤波算法为基础,实现建图的过程粒子需要不断地迭代与更新,所以为算法选用合适的粒子数能够保证较高的准确率的同时也具有较快的建图速度。在此次实验中,分别将粒子数设置为 10,20,30,60,80 进行地图的构建,测量地图中各个墙面其在上位机中显示的测量值,并于模型构建时的真实值作比较,计算绝对误差和相对误差,并比较不同粒子数的 Gmapping 和CoreSLAM算法在其建图过程中 CPU 的使用量。并比较分析以上算法建立地图的时间。
通过Hector-SLAM和 Cartographer-SLAM 和KartoSLAM算法完成建立的仿真环境地图的构建,测量地图中各个墙面其在上位机中显示的测量值,并于模型构建时的真实值作比较,求解出绝对误差以及相对误差,并进行分析。并比较分析以上算法建立地图的时间。
3. 研究计划与安排
时间 | 周数 | 内容 | 要求 |
3月1日-3月15日 | 2.5 | 文献阅读、开题报告 | 外文文献至少5篇,参考文献至少15篇 |
3月16日-3月26日 | 1.5 | Ros系统和python编程语言系统学习 | 查阅资料并掌握相关知识 |
3月27日-4月2日 | 1 | 相关思路的确定 | 参照相关论文方案确定思路 |
4月3日-4月30日 | 4 | 进行系统的整体设计 |
|
5月1日-5月14日 | 2 | 论文初稿 | 字数字数至少1.5万 |
5月14日-5月22日 | 1 | 论文修改、打印、装订 | 向老师请教,对论文进行修改 |
5月23日-5月31日 | 1 | 论文送审 | 上交论文,并准备答辩 |
6月 | 3 | 论文答辩 |
|
4. 参考文献(12篇以上)
1.参考文献
[1]dieter fox,wolframburgard,sebastianthrun.markovlocalizationformobile robotsindynamicenvironments[j].journalofartificialintelligenceresearch, 1999, 11:391-427.
[2] sebastian thrun.probabilistic algorithms in robotics [j]. ai magazine, 2000, 21(4): 93-109.
课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。