前言

上一次的分享里,我对百度 Apollo 计划的技术框架做了介绍,如图。

Apollo1.0 封闭场地循迹自动驾驶

如果要完成 Apollo 1.0 的“封闭场地寻迹自动驾驶”功能,需要解决一个重要的问题:我(无人车)在哪?

“我在哪”这个问题,在 Apollo 1.0 的架构中完全依赖 GPS(全球定位系统) 和 IMU(惯性测量单元)。

今天的分享,我会用尽可能简单的语言,介绍GPS的原理及特性,并谈一谈,为什么无人车的定位不仅要依赖GPS,还依赖IMU。我会在下次的分享中,着重地介绍IMU的功能。


正文

GPS定位原理很简单

GPS是全球定位系统(Global Position System)的简称,常见于汽车、手机中。民用GPS的定位精度在10~20米之间,这是为什么用手机的GPS定位,有时候明明在陆地上,却被认为在河里的原因。

GPS定位的原理很简单,叫做三角定位法(Triangulation)。原理如图:

图片出处:https://www.nationalgeographic.org/photo/triangulation-sized/

装在无人车上的GPS接收机,首先量测无线电信号到达卫星的传播时间,再将传播时间乘以光速,即可得到当前GPS接收机到达卫星的距离,有了距离,就可以根据几何原理求得位置了。

图片出处:http://slideplayer.com/slide/5717261/

若已知GPS接收机到达1号卫星和3号卫星的距离,那么1号和3号卫星根据距离产生两个球体(图中绿色和蓝色的球体),两个球体的相交的部分为圆形,该圆形与地球表面靠近的任何一个点都有可能是当前无人车(GPS接受装置)的位置。

因此仅根据这两个距离信息,还无法确定当前无人车的具体位置。此时通过引入第三个卫星的距离,就能较为准确地确定无人车的位置。这就是三角定位法的原理。

GPS定位精度不太够

根据上面的介绍,只要得到无线电信号达到三颗卫星的传播时间,似乎就能计算得到无人车的位置。

可是工程问题永远没有理论计算那么简单!

空旷云层稀薄的情况下,无线电信号的传播时间乘以光速确实与实际的距离接近。

但无线电信号的传播时间多少会受到传播介质的影响的。诸如云层的稀薄情况、天气好坏等都会影响到传播时间,进而影响到距离的计算。距离不准,得到的定位结果当然也不准了。

为了降低天气、云层对定位的影响,工程师们引入了差分GPS的技术。如下图所示:

图片出处:http://what-when-how.com/gps-with-high-rate-sensors/carrier-smoothed-code-gps/

在地面上建基站(Base Station),基站在建立时,可以得到基站的精确位置信息(经纬度)。同时基站具有接收卫星信号的功能。

当基站的GPS接收机与车载GPS接收机相距较近时(<30km),可以认为两者的GPS信号通过的是同一片大气区域,即两者的信号误差基本一致。根据基站的精确位置信号传播的时间,反推此时天气原因导致的信号传播误差,之后利用该误差修正车载的GPS信号,即可降低云层、天气等对信号传输的影响。

使用差分GPS技术,可以使无人车的定位精度从10米级别提升至米级。

差分GPS可以解决定位的精度问题,但是解决不了遮挡反射问题。

当无人车在高楼林立的环境中行驶时,这就会发生如下问题。

图片出处:https://www.e-education.psu.edu/geog862/node/1721

1.信号丢失

GPS接收机在高楼周围,很容易失去某一方向、所有的卫星信号,仅依靠另外三面的卫星信号求得的定位结果,在精度上很难满足无人驾驶的需求。

2.多路径问题

在高楼周围也可能导致原本收不到的卫星信号,经过大楼楼体的镜面反射被接收到,这种信号被称为多路径信号(Multi-Path Signal)。从图中可以看出,根据多路径信号计算得到的距离会明显大于实际距离。而无人车是很难判断,当前接收到的信号是单路径还是多路径的。

鉴于以上各种原因,可以看出,单靠GPS这一种传感器,无人车在复杂场景中,很难实现精确定位。

GPS定位频率不太高

GPS定位的频率不怎么高,只有10Hz,即100ms才能定位一次。

通过一个简单的例子,说一说为什么10Hz不够高。

假设一辆汽车正以72km/h(20m/s)的速度在路上直线行驶,GPS定位的周期为100ms,则一个周期后,汽车相对于前一次定位的结果移动了20m/s * 0.1s = 2m,即两次的定位结果相距2米。

如果无人车行驶在一条有曲率的路上,那就意味着,每隔2m,才能根据自车所在的位置,进行一次控制(方向盘转角、油门开度等)的计算。这种控制频率下的车辆行驶效果如下图。无人车在实际轨迹两侧忽左忽右,无法精确地沿着轨迹行驶。

相对于理想情况下的控制方法,无人车的行驶轨迹应当如下图,保持极高频率的定位和控制,每走一小步,都重新进行控制的计算,并执行控制。

为了解决GPS频率太低所带来的问题,工程师引入了其他传感器信号(IMU、激光、视觉)用以提高无人车的定位频率。

这些辅助手段如何实现会在以后分享给大家。


小结

上面的分享不仅介绍了GPS的原理(三角定位)及特性(精度、频率),同时也从无人车控制的角度,讨论了为什么仅有GPS无法满足无人车的定位要求。

如果你想对GPS的信号接口有更为细致的了解,可以参看Apollo公开的proto文件。链接如下:ApolloAuto gnss.proto。我会在以后的软件部分着重分析这些proto文件,敬请期待。

我将在下一次分享中介绍IMU如何与GPS相辅相成,实现无人车的稳定定位。

好了\(^o^)/~,这篇分享基本上让大家对无人车所用到的GPS技术有了大致了解。

如果你觉得有收获,希望你能给个点个赞,如果能加个关注就更好啦~

感谢(・ω・)ノ!