进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术

原创 阿波君 Apollo开发者社区 2019-04-03

敲黑板,本文需要学习的知识点有

  • 波段
  • 钟差
  • 基站
  • 授时
  • 惯性导航
  • 误差剔除

定位的目的是让自动驾驶汽车找到自身确切位置的方法,可以说,定位导航技术是整个自动驾驶技术的核心。在日常生活中,我们一直使用谷歌、百度、高德或者其他地图来确定自己的位置,其实质就是使用了卫星导航技术,手机终端接收卫星导航电文进行解算,计算出你此刻的位置。

但卫星导航定位精度误差在10米左右,这对于自动驾驶是致命的,完全不能满足自动驾驶的需求。如果驾驶的周围环境复杂,过桥洞,接收不了导航信号,遮蔽严重,如高楼、山脉,会产生多径效应,导航的精度可能会更差,有可能会超过50米。所以无人驾驶系统不能依赖卫星导航系统,因此需要借助其他方式方法来提高车辆在地图上的位置精度,这就要配合高精地图,融合惯导和视觉等技术。

先进的无人车方案肯定不能完全基于RTK,百度Apollo系统使用了激光雷达、RTK与IMU融合的方案,多种传感器融合加上一个误差状态卡尔曼滤波器使得定位精度可以达到5-10厘米,且具备高可靠性和鲁棒性,达到了全球*水平。市区允许最高时速超过每小时60公里。

上周阿波君为大家详细介绍了「Apollo自动定位技术——三维几何变换和坐标系」。

上周的「Apollo自动定位技术——三维几何变换和坐标系介绍」课程介绍了Apollo自定位技术中三维几何变换中的平移、旋转,判断刚体的位置和朝向。课程还让大家了解了无人驾驶定位中常用的几个坐标系,包括:地心惯性坐标系(ECI)、地心地固坐标系(ECEF)、当地水平坐标系、UTM(通用横轴墨卡托格网系统)坐标系、车体坐标系、IMU坐标系、相机坐标系和激光雷达坐标系等。各个坐标系都有其自身的优势和缺点,因此适用于不同的场合。

本周阿波君将与大家分享Apollo自动定位技术详解——百度无人车定位技术。下面,我们一起进入进阶课程第15期。

以下,ENJOY

百度无人车定位进化历程

下图给出了百度配置了多种传感器方案的一些无人车。

进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术
多种传感器方案的自动驾驶汽车

上面四幅图是百度做自动驾驶汽车的一些车型,比较早的有宝马、北汽,后来有奇瑞到现在的MKZ。这个系列的车叫探路者,意思是要去探索未知的路。

这套车的传感器配置非常贵,都用最好的惯导和最好激光雷达。其目的是用于探索一些新的算法,一些复杂的场景、有挑战的场景,主要是为了给工程师提供一个较好的平台,用更好的数据去开发更好的算法。

下面的四辆车分为两种车型,一种叫做无人驾驶微循环车,一种叫无人驾驶物流车。无人驾驶微循环车是和厦门金融合作,叫阿波龙。它配备了一个很便宜的惯导。激光雷达用了16线,再加上一些双目摄像头。右边的无人驾驶物流车,是和新石器一起开发的,一般情况下可以用于小区的无人快递车或者是广场上面去卖饮料的无人车。

百度自动驾驶使用的定位技术

自动驾驶中,在不同的传感器配置下,都需要做到定位的准确性。下面介绍在百度无人车系统中使用的定位技术,主要分为四个部分,GNSS定位技术,载波定位技术,激光点云定位技术和视觉定位技术。

GNSS定位技术

GNSS定位技术中最著名的是GPS。GPS最早是由美国建立的,有24颗GPS卫星,两个频率的波段。GPS具有定位、测速、授时等功能。

类似的系统还有北斗定位,俄罗斯的格罗纳斯和欧洲的伽利略定位。它们的原理是测距,有三颗卫星就可以交会两点,舍弃外部的空间点就可以得到自己测绘这个点。但是一般情况下,由于钟差,一般需要四颗卫星去做误差剔除。

GNSS定位其实是单点定位,没有用到基站,它的精度一般是5到10米。为了能够得到更精准的定位精度,引入了一些更好的方式,如载波定位技术。

载波定位技术

载波定位技术具体分为两类,RTK技术和PPP技术。它们都是为了确定载波的整周数,然后消除噪声,达到更精准的定位。

RTK的工作原理如下:卫星把观测数据给基站,也给车端的移动站。基站根据多个卫星的钟差计算出误差项,然后把误差项传递给车端,车端用这个误差项消除观测误差,得到精准的位置。它的问题是硬件成本高,需要建基站,需要4G通信的链路,需要基站传数据。

PPP可以简单理解为一个很强的单点,它有很多种基础基站的建设。这些基站通过卫星数据,把这些误差都在基站做分离处理,再传递给卫星。卫星已经做了误差的消除,再去对车端进行定位,得到一个非常高精度的定位信息。

二者的主要区别如下表所示:

进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术
载波定位技术

GNSS在无人车中的作用,大概可以分为三个部分,第一个部分是GPS授时。 第二是制作高精地图。第三是RTK在线定位,作为定位的一个模块使用。

GNSS的问题是可靠性,很容易受到电磁环境干扰。第二点就是对于比较差的环境,比如城市的高楼、峡谷、林荫路,对GNSS影响都很大。

激光点云定位技术

百度的激光点云定位模块结构如下图所示。

进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术
激光点云定位算法框架

激光点云定位系统包括两个模块:图像对齐和SSD HF。图像对齐模块主要是用于航向角的优化。点云定位里面会输出四个维度的信息,XYZ和Yaw(航向角)。

首先做航向角的优化,然后SSD-HF做XY优化,Z则由定位地图提供。定位地图是一种数据的的存储方式。激光点云定位的输入还包括预测位姿和实时点云数据。输出信息将会给融合算法,进行更加精确的定位。

视觉定位技术

视觉定位的输出也是XYZ和Yaw,即位置和朝向。视觉定位通过摄像头识别图像中具有语义信息的稳定特征并与地图做匹配,得到位置和朝向信息。视觉定位算法的流程图如下所示。

进阶课程 ⑮丨Apollo自动定位技术详解—百度无人车定位技术
视觉定位—算法流程

视觉定位的流程主要包含三个部分,一是3D特征地图的离线的生成,第二是图像特征的检测,最后是数据的整合输出。

首先是摄像头进行图像特征的检测,主要是进行车道线和杆状物的检测。通过GPS给出的初始位置,基于初始位置对3D地图和摄像头检查到的信息进行特征匹配。用IMU和轮速计去做姿势的预测,给出一个不错的姿势。最后的结果输出给融合模块,融合可以将GPS、视觉定位、IMU数据整合,优化定位结果并提供高频输出。

------END------