《 无人驾驶原理与实践》一3.5基于SLAM的定位系统

举报
华章计算机 发表于 2019/06/02 23:53:23 2019/06/02
【摘要】 本书摘自《 无人驾驶原理与实践》一书中的第二章,第3.5节,编著是申泽邦 雍宾宾 周庆国 李良 李冠憬

3.5基于SLAM的定位系统

       实时定位与地图构建(SLAM)是一个很复杂的系统层次的概念,并不是特指一个具体的算法。它包括图像匹配处理模块、滤波处理、回环检测、图优化理论、矩阵运算等,是一个复杂的系统工程(如图311所示),本文只针对SLAM的基本原理和应用做初步的简介。

image.png

       SLAM示意图如图312所示,黑色边界即激光雷达探测到的障碍物边缘,表示此路不通,白***域是可行驶的自由区域,放射线一样的线条表示此处可能有窗户或门,激光雷达部分点散射了出去。通过扫描整个环境空间,可以形成一幅2D的激光雷达视角的地图。通过对环境的匹配对比,机器人或车辆就以此作为依据来判断目前在地图上所处位置。绿色线条是机器人和车辆规划和行驶的路线表示。

image.png

       SLAM主要适用于机器人等领域,通过激光或视觉摄像头扫描环境数据点构建地图,然后基于地图匹配的方式进行自身定位。在诸如无人清洁车、低速园区无人摆渡车、低速无人快递车等低速场景的自动驾驶应用中十分常见。对于高速自动驾驶,由于SLAM基于网格(Grid)进行计算,其庞大的计算开销、时延、数据存储等问题,以及无人车对实时控制、安全的高性能要求,导致其目前并不适宜应用在大面积范围、高速自动驾驶场景中。高速自动驾驶在地图定位方面使用的是高精度地图技术。本节及以下内容主要针对机器人领域和低速自动驾驶场景SLAM的应用做简要描述。 

351SLAM定位原理

       目前,主流的SLAM主要采用两种技术路线,一种是基于激光雷达点云数据的SLAM,公开的比较知名的算法框架有Gmapping、Hector SLAM等。这种SLAM技术的优点是建图测量精度较高,但激光雷达成本太高,量产商用可行性低。另外一种技术——基于视觉摄像头的SLAM也在同步发展中,公开的知名算法框架有ORBSLAM2、MonoSLAM、PTAM、LSDSLAM、DSO等。这种SLAM技术的优点是传感器成本低,但建图精度略低,受光线、环境干扰较大。
       其中,视觉SLAM根据所用的摄像头个数又分单目、双目SLAM。单目SLAM成本低,但由于无法测量深度、尺度等问题,导致精度不高。双目SLAM经过系统的标定后,可以通过计算得出深度信息。因此,从鲁棒性和可靠性来说,双目要比单目SLAM更好一些。一般来说,视觉SLAM都结合IMU等传感器使用,以更大程度地提高建图精度和姿态估计精度。
       近几年由于深度学习、人工智能技术的发展,在SLAM领域也有一些结合AI、深度学习、目标检测、语义分割等技术的SLAM技术出现,如语义SLAM等。通过这些方法可以从图像中获得更丰富的语义信息,这些语义信息可以辅助推断几何信息,如已知物体的尺寸就是一个重要的几何线索。
       SLAM定位的基本原理:通常情况下,机器人因为移动的不确定性而导致漂移问题,一个好的SLAM系统不仅能处理环境的不确定性,还能处理机器人自身轨迹的不确定性。
       如图313所示,假设一个机器人运动本体从原点x0(0, 0)沿X轴方向向前移动10m,那么理论上,它的位置应该是(10,0)。但工程实际上,由于测量设备的不准确性,诸如陀螺仪测量值不准、轮子打滑、测量设备零漂等原因,使得机器人并不能准确到达(10,0)位置。机器人到达的位置有可能是(98,0),也有可能是(101,0),这是由于运动本体的运动不精确性导致的。实际上从数学理论来说,x1的位置变量符合一个以(10,0)为中心的高斯分布,方差δ可能是01或02。如果机器人继续往前走而不纠正的话,误差会越来越大,直至系统失效。

image.png

       我们希望在给定初始值x0的位置为(0,0)时,让x1的位置尽可能准确。其实就是计算怎样最大化x1位置的似然估计。通过引进新的参考物,可以增加参考位置的可靠性(如图314所示)。打个比方,就像一个人在荒无人烟的沙漠中行走,如果有一棵大树作为参照物,他就能知道自己现在在哪,走了多远。这个参照物也就是我们常说的landmark(路标),记作L0。通过不断观察landmark,并实时更新当前位置,从而校正当前位置误差。但是,随着路标位置的丢失,定位的误差又会慢慢变大,因此,我们需要通过不断迭代新的landmark的观测值,来最大化当前位置的似然估计。

image.png

       根据前面所述,建立约束关系方程:
       初始位置约束方程:x0=0
       运动约束方程:x2-x1=10
       观测约束方程:x1-L0=20
       我们将上述约束方程条件,按照各个状态向量空间的顺序组成状态向量矩阵表达式,然后根据每一步新的测量更新,从而表达定位关系,这就是SLAM定位的原理。因此,SLAM依赖三个约束条件:
       1)初始位置约束,即x0初始位置的约束条件。
       2)运动状态约束,即基于初始位置条件下,x1、x2、x3等位置表达式的约束条件。
       3)观测约束,即landmark位置表达式。
       基于以上3个约束条件,SLAM可以结合EKF(扩展卡尔曼滤波)、PF(粒子滤波)等算法进行定位。首先获取所有的路标和机器人的初始位置条件以作为先决条件。然后通过位置矩阵方程,存储各个路标和机器人的各个位置坐标。最后通过不断迭代更新来进行位置更新,减少位置误差。

  

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。