清杉科技官网
首页 > 新闻中心

SLAM建图构建算法


SLAM建图构建算法概述

SLAM 是一个庞大的理论体系,涉及传感器处理、贝叶斯滤波、非线性优化、地图的表示、图形处理等各方面的相关理论。早期 SLAM 的基本理论是以扩展卡尔曼滤波(Extended Kalman FilterEKF)为代表的滤波方法为主。


如下图所示表示了一种典型的 SLAM 系统建图方法,系统主要由前端(front-end)和后端(back-end)两个部分组成,前端根据传感器观测到的环境信息估计车辆的位姿,然后将车辆的位姿信息传递给后端进行优化估计,得到具有全局一致性的地图,最后得到整体的 SLAM 估计。SLAM 的前端算法包括了特征提取和数据关联两部分。特征不但可以用来确定机器人的位置,而且可以用来进行闭环检测,从而构建具有全局一致性的环境地图。因此特征提取是 SLAM 研究中非常重要的一个环节。


目前在 SLAM 的研究中,前端主要是以滤波的方法获得车辆位姿的更新信息,后端则大多是基于优化的方法对机器人全局的位姿和地标信息进行优化。基于视觉感知的SLAM基础建图构建SLAM算法构建中,前视摄像头/激光雷达化身智能采集终端,众包生产动态高精地图数据,动态高精地图的本质是实时交通数据的时空载体,众包数据是高频更新的核心。主要通过如下几个步骤进行实时建图:

1)实时构建高精度地图:即基于视觉或激光点云数据建图,并与云端融合冷启动从0-1构建全路网高精地图提升高精地图“广度”。

2)更新高精地图元素:通过要素关联与变化检测发现地图元素的变化并实时更新,以确保高精地图的“鲜度”;

3)自建 “ 记忆地图 ”:通过自建局部记忆地图支持记忆泊车、园区记忆式自动驾驶“记忆地图”提升驾驶体验;

4)上报事件型动态信息:通过事件型动态信息采集与上报(施工、拥堵、事故等)构建高精地图“动态信息层”。


如上图表示了一种典型的视觉SLAM技术方案框图,其中整个智能驾驶摄像头(包含前视、侧视、环视以及后视摄像头等)形成SLAM的输入数据端,使用单目相机的 SLAM 称为单目视觉 SLAM,单目相机使用一个摄像头进行移动机器人的定位,由于单目摄像头只能获取周围环境的二维信息,无法给出物体的深度信息,因此会带来尺度不确定的问题。使用双目相机的 SLAM 称为双目视觉 SLAM,也称为立体视觉 SLAM,它可以通过比较两个摄像头图像的差异判断物体的远近,获得物体的深度信息。通过中央处理器对输入图像进行感知、分割、检测、跟踪等操作,输出给导航网络端进行语义建图及匹配定位,同时通过目标识别形成相应的ADAS系统目标属性。最后分两方面进行输出:其一是通过太网连接高精地图盒子,其接收到相应的局部地图建图结果后,更新地图底图。其二是通过输出给MCU(微处理器单元)进行融合定位及车辆控制。这里需要注意的是MCU通过CAN网络也接收了诸如GNSSIMU等相关信息,并输入给AI芯片进行建图优化和确认。同时,先进的SLAM方案通过云端多源 V2X 感知部署,打造安全出行解决方案。一方面,通过创新模式与路方合作,利用既有道路信息基础能力,有效整合路侧信息,通过个体级车辆的交通场景感知算法,实施云端 V2X 信息处理,通过导航地图优势,为实时建图提供统一入口。另一方面,由于车路协同系统中将产生大量数据采集和处理,为进一步挖掘相关数据价值,提升智慧出行效率。基于大数据和人工智能能力,可以对相关数据进行人工智能模型训练,从而进一步提高建图能力,优化建图精度。如下图是一种典型的将云端数据纳入到建图过程中的例子。


基于激光雷达的SLAM基础建图构建除了如上所述的视觉SLAM建图以外,还包括了激光雷达数据建图。激光雷达虽然比相机要贵很多,但因其测量精度高,测量性能稳定,目前在工业中应用更加广泛。激光雷达不能直接给出车辆的位置变化,但它能提供周围物体的距离信息,可以用于车辆的实时定位、避障等场合。


早期的激光雷达主要是利用三角测距的原理进行测距,后来发展出基于飞行时间法(Time  Of  FlightTOF)测距原理的激光雷达。TOF 测距原理比较简单,通过记录激光从发射出去到被接收所经历的时间可以计算出激光所走过的距离,从而得到激光雷达周围环境的距离信息。针对激光雷达和相机,目前都已经有很多非常知名的开源算法的实现。在激光 SLAM 领域目前的很多开源算法都是使用 2D 激光雷达实现 SLAM。如谷歌公司在 2016 年开源的Cartographer SLAM 算法是一个跨平台的激光 SLAM 方案,能够同时实现 2D 激光和 3D 激光的实时 SLAM。在视觉 SLAM 领域也出现了许多优秀的开源方案。如Davison 等人在 2007 年提出的单目视觉 SLAM 系统 MonoSLAM 是第一个实时的单目 SLAM,它以扩展卡尔曼滤波为基础,把相机的当前状态和所有路标的信息作为状态量来更新均值和协方差信息。SLAM 的理论在国外发展的比较早,理论比较成熟,国内在这方面起步比较晚,大部分研究都集中在 SLAM 的工程应用上,重点解决工程应用中的一些实际问题。SLAM 的前端算法包括了特征提取和数据关联两部分。特征不但可以用来确定机器人的位置,而且可以用来进行闭环检测,从而构建具有全局一致性的环境地图。因此特征提取是 SLAM 研究中非常重要的一个环节。激光雷达扫描后会获得一组由环境中的物体反射回来的点云,对于激光雷达的扫描点云,常用的特征有点、线段、平面等。点特征是日常环境中常见的一种特征,通常会从环境中提取角点、交叉点或墙的端点等一些特殊的点作为特征点。线段特征是室内移动机器人定位、导航时广泛使用的一种特征,它在结构化环境中容易获取,特征之间也容易建立约束,对激光雷达的数据关联和闭环检测来说都是一种非常好的特征。面特征主要应用于室外环境中 3D 激光雷达扫描匹配,如无人车行驶在城市环境中可以利用 3D 激光雷达提取到大量的曲面和平面特征来定位。由于线段特征具有容易识别、鲁棒性好等优点,在 2D 激光 SLAM 中应用比较广泛。下面将对激光雷达点云建图中一种基本的线段拟合防范进行简单说明。


如上图表示激光雷达扫描得到的点云离散数据,针对线段特征提取的主流方法主要是采用分割-合并方法(Spilt-and-MergeSM),且许多线段特征的提取方法都是分割-合并方法的变形。分割-合并的基本过程就是对点云进行聚类,聚类过程中分别设定一定的阈值进行分割-合并-分割-合并依次循环的过程,从而实现线段的有效提取。在分割阶段,首先从给定的点集中拟合出一条直线。然后找出点集中到拟合直线距离最远的点,计算该点到拟合直线的距离作为拟合误差,如果拟合误差大于设定的距离阈值,则从点集中按照某种规则找出一个点,将直线从该点处进行分割。不断重复这个过程直到拟合误差小于设定的距离阈值则不再分割。在合并阶段,如果相邻的两条线段的拟合误差小于距离阈值,就将这两条相邻线段合并成一条线段。总结激光SLAM发展至今已经有比较丰富的理论研究成果,激光测距的原理比较简单,测量精度高,测量距离比较远,稳定性、可靠性也都比较高,但其成本较大,目前激光雷达有向低成本发展的趋势。但在实际的应用中仍然存在定位精度不够、地图构建不准确等问题,给机器人执行相关任务带来了一定的障碍。与激光雷达相比,相机的成本要低很多,且能提供更多的信息,也更能满足人们对机器人的想象。但目前相机仍存在着测量范围小、测量噪声大、易受日光干扰等问题。视觉定位与建图带来的驾驶功能提升使得视觉定位在单车视觉感知局限得以解决。


CopyRight © 2023 tsingsens.com All Rights Reserved. 清杉科技 版权所有 京ICP备2021007968号-1