进阶无人驾驶—百度Apollo定位技术
课程简介
课程讲解无人车的定位技术,为学习者讲解无人车定位的概念、方法以及百度Apollo无人车定位的技术,希望大家在学习的过程中有所收获,并在该平台上积极活跃贡献自己的智慧。
一、技术入门
首先讲到定位,我们就能知道其目的是通过一些定位设备知道我们在地图上的位置和姿态,从而进行下一步的步骤。
同样的我们不但要知道一个无人汽车的位置和姿态,更要知道无人车的详细情况,如下图所示:
项目 | 内容 | 自由度 |
---|---|---|
位置 | X、Y、X | 3 |
姿态 | Yaw、Pitch、Roll | 3 |
速度 | Vx、Vy、Vz | 3 |
加速度 | ax、ay、az | 3 |
角速度 | wx、wy、wz | 3 |
这些数据也是通过置信度来确定该数据对于无人车的描述是否合理。
同样的,我们也会对自动驾驶汽车定位系统的指标进行以下要求:
项目 | 指标 | 理想值 |
---|---|---|
精度 | 误差均值 | <10cm |
鲁棒性 | 最大误差 | <30cm |
场景 | 覆盖场景 | 全天候 |
超过这些值的范围,将会对无人车的正常行驶造成影响,所以应该尽量将范围控制在以上要求内。
当然我们知道对于以一个车来说,感知环境很难,不像人一样,通过眼睛和耳朵便能很清晰明了的了解环境信息。而计算机得到的值,不过就是一些数据,0-255之间的颜色数据,所以想要得到物体信息,还需要很多算法来处理才可。
现在我们已经知道了定位对于无人车的重要性,那么我们就可以思考一下,我们该如何定位?
以上的内容我在前面也详细的讲解过,在此就当是回顾内容知识点了。
基于电子信号定位:GNSS、Wifi、Cell Phone、FM radio、UWB
航迹推算:IMU、Odometry
环境特征匹配:LiDAR、Radar、Camera
同样的我们也会基于基站运用差分技术,从而提高定位的精度,以达到足够无人驾驶车的使用标志内。
当然差分定位也有很多优缺点,例如:
优势 | 劣势 |
---|---|
全球、全天时、全天候 | 基站布设成本高:硬件+人力 |
高精度 | 强依赖可视卫星 |
易受电磁环境干扰 | |
GNSS信号遮挡引起多径效应 |
激光定位
激光定位根据激光雷达收集的数据和点云图进行匹配,得出各个区域的概论,最终确定它的概率地图,从而得到定位数据。
视觉定位
因为视觉定位是依靠摄像机采集的数据,因为环境的光亮等变化的情况比较大,很容易对结果产生影响。所以我们必须对采集定位的物体具有独特性和不变性。例如:
根据高精度地图包含的数据和摄像机收集的数据进行匹配,研究数据重合度,从而得出结果。
惯性导航
大家都知道,惯性导航是利用已有的数据对下一步定位的预测和估算,同样的用于惯性导航的设备也是参差不齐,例如下图:
上面讲了很多定位技术,当然一个技术显然不能支持定位的功能,所以我们必须把多传感器融合起来,达到更高精度的效果,这样就产生了以下的融合模式:
可以看到LiDAR等传感器的数据经过处理送入KF进行融合,并产生最终的位置信息。
二、基础知识
上面回顾了定位的知识点,现在我们就通过我们已有的数学知识,对定位的基础知识进行学习和回顾。
首先我们要知道三维几何变化的知识:
我们用的最多的是右手系。我们习惯于它的思维模式,然后我们就可以对二维旋转的知识点进行学习了。
图中右侧有一个例子,是对二维旋转的示范,可以看到它的计算过程也是很简单,没有太多的难点。
那么三维旋转会不会也一样简单呢?让我们看看三维旋转的过程便能一探究竟了。
其实,三维旋转的过程也是十分简单的,不过就是对于各个轴进行旋转而已。
但是这样的旋转显然不满足我们对实验的要求,所以我们加入了欧拉角和四元数的研究。
欧拉角和四元数的解释如图所示,加入这两个性质后,旋转的范围也会增加和简单起来。
当然除了旋转还有平移的情况,但这种情况也是十分简单的,就不作过多的讲解了。
下面我们就对刚体的朝向与位置进行学习,我们可以把无人车当成一个刚体,便能够对其进行研究。
我们通过建立坐标系,将刚体放入局部范围内,得到定位后,我们便可以对其进行研究和拓展了。
接着我们学习地心惯性坐标系:
可以看到是基于地球做出的坐标系,从而对汽车进行定位,它的特点也理论出来,就不做过多赘述。
因为地心坐标系在对汽车进行定位时,会有很大误差,所以我们会利用大地坐标系对其进行误差消除。
还有很多坐标系的类型,也是对地球的区域进行不同的划分,从而通过代号的定义来明确汽车的位置,经过特有的换算方式对其坐标进行换算。
接下来我们了解一下车体坐标系的介绍:
我们以车为圆心建立坐标系,对环境的物体进行坐标描述,从而产生定位的功能。
还有IMU坐标系、相机坐标系、激光雷达坐标系这里讲解的不够详细,如果有兴趣了解,可以学习学习。
下面是对各个坐标系的融合利用,从而提高定位的精度:
我们可以看到,各个坐标系进行旋转关系进行融合,再经过例如四元数等处理,就可以得到最终的定位结果了。
三、百度无人车定位技术
这幅图就伴随着百度无人车的研究历程缓缓而来,我们一目了然的看清楚了百度的艰辛历程,虽然我们体会不到,但我们知道这样的过程注定是不平凡的。
让我们一起学习这些知识吧,如果你也梦想成为一名无人驾驶车的研究工程师的话。
首先是GPS:
当然除了GPS定位系统,我们还要诸如中国的北斗,欧洲的伽利略等定位系统。都是可以考虑和使用的。
接着我们对GPS定位原理进行学习,其原理介绍如下所示:
当然为了提高精度,我们加入了载波定位系统,以下是对该系统的详细介绍:
载波技术的目的就是消除信号误差,从而达到提高精度的目的,来弥补GPS定位的不足。
为了更好的了解载波性能的技术,我们对该技术所包含的误差等进行分析,从而深入其精髓。
量级(m) | RTK | PPP | |
---|---|---|---|
卫星轨道误差 | 2.1 | 站间单差 | IGS精密轨道 |
卫星钟差 | 2.1 | 站间单差 | IGS精密钟差 |
电离层 | 4.0 | 站间单差 | 双频消除或模型校正 |
对流层 | 0.7 | 站间单差 | 模型校正+设参估计 |
多径 | ~ | ~ | ~ |
接着我们讨论一下GNSS在无人车中的作用;
一、GPS授时:为无人车提高纳秒(ns)级的授时精度。
二、HD-MAP制图:利用更精细化的信息收集模块去做高精度地图才会使信息更详细化。
三、RTK在线定位。
了解了GNSS作用,我们来了解激光点云定位算法,如图所示,便是算法的整体框架。
可以看到图中有两个模块:图形对其和SSD-HF,然后通过优化算法对其进行处理,最终得出结果。
可以看到百度的地图包含两个值,分别是反射值和高度值。我们对定位地图进行划格划分,取出其中的红色格子,得到两个地图块,分别是中间和右边的图,他们都存储了各自的地图值信息。
诸如我们对一个区域进行取值,可以看到有图所示的数据值,结果经过平方差总和的计算可以得到概率,用颜色表现出来。
视觉定位概述
回顾了视觉定位的基本知识,那我们就来看看算法流程吧。
学了那么多,现在可以一目了然的对视觉定位的整个流程。当然知道了流程,我们就得知道内容,那么我们就先对特征匹配进行回顾学习吧。
可以看到外面利用了粒子滤波的技术,以计算其位姿概率。
捷联惯性导航及组合导航技术
下面我们对捷联内容进行介绍:
了解了概述,我们便可以了解IMU单元的特点如下:
这种惯性导航系统第一个任务就是:初始校准,就是说我们需要把整个载体坐标系和世界坐标系进行对应起来,包括位置,姿态等内容。其内容如下所示:
进行了初始校准后,我们就进入了惯导结算:就是对输入的信息进行处理,如下所示:
就是递推过程,通过已有的各个汽车姿态数据,对下一步结果进行分析预测。
我们有了这么多的导航方式,我们就可以将他们进行融合,从而提高基准度。
如下所示:
我们将两种以上的非相似的导航系统融合叠加起来,就能弥补单个导航系统的缺陷,达到互利双赢的结果。我们有了这样的想法,就可以得出一个组合后的系统框架:
我们将误差信息输入滤波器中,处理到存在误差的值,从而做出一些补偿,以减少缺陷带来的误差值。
如果大家对这些内容感兴趣的话,可以玩一下Apollo的代码库。
例如:
http://apollo.auto/
https://github.com/ApolloAuto/
等网站学习,并提供自己超凡的思想,谢谢大家,本次学习到此结束,期待下节课我们相见。