您的位置:首页 >新闻 >

u-blox梅景浩:自动驾驶中的GNSS高精度定位

2020-08-28 11:16:03来源:盖世汽车

8 月 25 日,由盖世汽车主办、中国智能网联汽车产业创新联盟自动驾驶地图与定位工作组协办的“2020 第二届自动驾驶地图与定位大会”隆重召开。本次会议主要聚焦高精地图、高精度定位等自动驾驶关键技术,共探产业未来发展之路。下面是u-blox中国区资深市场经理梅景浩在本次论坛上的发言。

自动驾驶,GNSS定位

U-blox中国区资深市场经理 梅景浩

首先我介绍一下u-blox,u-blox是一家总部在瑞士的公司,已经成立20多年了,在全球有1千多名员工,它是以GPS的产品起家,我们现在已经有了三条产品线,一个是定位产品线,一个是移动通信产品线,还有一个是短距离产品线,这三条产品线都在汽车上有广泛的应用,其中应有最多的是我们的定位产品,到2019年我们的定位接收机总计销售了5亿片。

我们今天来讨论一下GNSS的精度主要来自于哪里。这里有一个比较简单的关于定位原理的描述,图的左边和右边分别有一个信号发射塔,发射出来信号就是图上蓝色的箭头,图右边的发射塔发射出来一个橘黄色的信号,这两个信号都会被接收机接收到,当这两个塔同时发射信号的时候, 接收机接收到信号会出现时间差,这就表征了接收距离上的差值。根据这个差值, 并且当我们已知这两个发射塔位置的时候,就可以根据右下角的公式算出来接收机的位置. 当然这里是一维的结果. 这就是定位最基本的原理. 现在我们GPS的定位是这样算的,包括手机无线定位也是这样的原理,现在各种室内定位方案也是根据信号传输时间来做的。

再进一步解释一下GNSS定位系统,因为它要在一个3D空间里面去找到它的经度纬度以及它的海拔高度,同时因为GPS接收机并不知道自己准确的时间,所以说还有一个时间的差值,总共有4个未知数,那至少需要有4颗卫星来列带有4个未知数的方程,获得一个准确的定位解.但是在实际的应用中, 因为天上的卫星距地球的高度是非常高的,卫星的高度在2万公里以上,那意味着什么呢?它们的高度是地球的赤道周长的一半还要多,所以卫星信号到达地面的时候,它的功率是非常低的.低到什么程度呢?低到现在手机信号的万分之一甚至更低,这样的话就对GPS的信号接收造成了比较大的挑战。如果要达到一个比较高的定位精度的话,单靠4颗卫星是很难的,通常需要更多的卫星才能达到比较高的精度。

这里我们说一下GNSS是如何在这么弱的信号下面来获取位置的. 首先是发射端的信号,它经过了扩频,变成了1.023Mbps的码流,然后在1.5G上面进行调制.接收端是一个逆向的过程,BPSK信号经过解调,恢复出基带信号,1.023Mbps,利用这个码元,在码相位上面进行追踪,这样的话就可以得到比较准确的时间信息,利用时间信息和时间信息的差值,我们可以算出来接收机的位置。

这里有一个问题就是在GPS的信号结构中,一个码源的长度对应的时间是比较短的,但是因为光速很高,码元换算出来距离的话就变得非常长,293米. 我们利用相位跟踪技术,可以做到GPS的精度是3米左右,这也是传统的手机以及车载导航里面的定位精度,这是GPS本身设计的精度. 但是这个精度对于自动驾驶是不够的,我们用一个3米左右的尺子去量我们的道路,这样显然不够,必须要做到分米级的定位精度。

这个时候我们必须要在其他的地方想办法,我们的GNSS专家们想出来的办法就是载波技术,一个1.5G载波的波长大概是19厘米,在载波上做相位追踪可以做到更高的精度,就是我们常说的厘米级精度。但是刚才我们有提到过, 之所以要用扩频技术是因为我们的信号接收功率是非常低的,如果不做扩频的话很难达到好的效果。如果我们在载波这一级进行计算,就没有扩频的优势了,扩频的增益就全都没有了。所以通过载波虽然解决了定位精度的问题,也必然引入另外一个问题, 就是信号强度,要在信号比较好的时候才能把载波恢复出来。

刚才我们讨论的是GPS怎么样才能达到一个更好的解析度,除此以外GPS本身在整个传输过程当中并不是很理想,存在各种各样的传输误差,我们把误差做了一个总结,大概分为两部分,第一部分是共性的误差,就是和卫星发射相关的误差,这是肯定会遇到的. 其中一个是卫星轨道的误差,卫星轨道会有漂移,这个误差大概在2.5米左右,同时卫星上发射信号的时钟也会有一些误差,这个误差大概在1.5米。

卫星发射之后会经过地球大气层,大气层中会有两个方面的误差,一个是由于电离层造成的误差,电离层就是地球的外层大气受到太阳风的影响,被太阳风电离形成了一个电离层,它很高,并且是在不断变化的,因为太阳风在不断变化,各个区域是不均匀的,当前位置的电离层可能和几十公里外的电离层不一样,它的误差大概在5米左右。另外就是对流层,这个层也会带来一些误差,主要是因为天气现象带来的折射和延迟造成的,它在1米左右,这些误差在一定的范围之内是均匀的,我们可以说是在几十平方公里的一个范围内是比较均匀的。

还有一部分是跟微观环境相关的误差,一个是由于地形地貌导致的多径误差,这个是导航和自动驾驶中主要考虑的因素,因为它的误差比较大,而且在城市环境中这个误差很难避免,误差范围可能在2到20米,有的情况下甚至可以到达上百米. 另外一个是接收机的噪声,一个好的接收机噪声可能在0.5米左右,这是我们现在对系统中误差的分析。

总结一下,首先要能达到比较高精度要用载波技术。同时为了获得更高精度我们必须尽量减少这里所列出的误差。

我们来看看如何解决第一部分这些通用误差,通用误差的解决方法一般分为两大类,一类是OSR,也就是观测域的校正服务,现在大家比较熟悉的RTK服务就是属于这一类. 这一类的它的做法是什么呢?首先在地面上建很多个观测站,这些观测站的位置是已知的,根据这些已知的观测站接收下来信号,就知道卫星信号传输的时候它应该的传输时间和实际观测到的传输时间,这两个传输时间的差值就是修正信息,这就是常见RTK方法。这个做法是比较简单粗暴一点的,直接就把所有的误差放在一起,不区分误差是由卫星引起的还是其他引起的,就放在一起形成一个修正数据,针对每个卫星的修正数据通过网络发送到移动端,移动端不管是车还是其他的设备,把误差进行修正,就可以得到一个比较高精度的定位。

这个办法是比较简单有效的,但是有一个要注意的问题,因为它是区域性, 只给出当前位置对流层、电离层的状态修正值是怎么样的,它无法给出针对比较大区域的修正值. 也就意味着,当一个车开几百公里的时候必须要经过多个不同的参考站进行修正,这个时候车必须要把自己的位置上报给RTK服务,RTK服务给出来针对当前位置定制化的修正数据,所以负荷比较大.比如说上海这样的大型城市里面有那么多车在走,可能对于通信网络、服务器定制化的数据发送都会造成比较大的压力。另外一个遇到的问题是覆盖度. 在人员密集的地方应该没问题,基本上都会覆盖到。但是在人员不是那么密集的地方,第一个是RTK本身基站的覆盖可能不是很完整的,移动新网络的覆盖也不一定完整,这两者都会造成缺失RTK的修正数据。

除了OSR的方式以外还有另外一种方式,我们叫它SSR,是针对状态空间域的修正. 它对于整个区域范围、整体状态做一个描述. 它同样要建一些基站,比RTK要少不少,SSR服务商会根据这些基站来综合建立一个比较宽泛的范围中,比如说整个中国的修正模型,把这个模型的参数提取出来,通过IP网络或者通过卫星进行广播拨发. 它不再是定制化的数据,而是普适的,对于整个区域都是有效的数据。在接收机端通过L-band卫星接收机把所有的参数接收后,代入模型去恢复出来当前接收机位置所需要的数据进行修正,可以得到一个比较准确的位置。

SSR的好处是覆盖比较好,进行卫星信号广播就可以覆盖广大的区域。其次它也可以做到比较准确的精度,不需要双向通信,对于隐私起到了保护的作用. 现在,它有一个还不是很好的地方,就是每一家SSR服务商提供的模型和算法都是自有的,不像RTK一样有一个通用的接口格式。

根据SSR服务播发的数据,它可以分为PPP、PPP-AR和PPP-RTK,PPP-AR是全球的覆盖方案,它的定位时间大概在30分钟左右,可以达到的精度是20厘米. PPP-RTK比较适合我们现在自动驾驶应用,实现大陆级的覆盖,能够在10秒钟左右做到5到20厘米的定位精度,这个我们认为在汽车上面是足够的。

所以说我们认为PPP-RTK是比较适合车载的SSR服务。针对这一技术我们推出了我们的NEO-D9S的接收机,它能够接收到L-band卫星信号,根据不同的参数配置可以接收不同频段的信号, 配置起来很灵活.同时它的尺寸比较小,功耗也比较低,比较适合大规模的市场应用。

接下来看一下在自动驾驶的场景下面,整个接收机的框架大概是什么样子的。这里首先是一个SSR的校正服务,校正服务可以通过Internet或者卫星广播出去,D9S接收机将卫星广播的信号进行接收,送到应用处理器里面去做模型恢复和算法计算,然后把得到的修正数据传送给GNSS接收机. GNSS接收机可以利用这个数据获得高精度定位。这是在卫星信号比较好但是通信网络信号不是很好的情况下使用. 如果在一个城市环境中,遮挡比较厉害,这时可能移动通信网络的效果更好,我们可以用移动网络将信号接收下来,做相同的解码和定位操作.这样比较适合自动驾驶系统,因为校正数据有比较好的的覆盖,不同传输方式互为备份。

我们刚才讨论了通用的误差修正,而在一个城市环境里面,在一些比较有挑战的环境下面,如何解决多径误差呢?前面提到过,对于RTK或者SSR算法来说要达到高精度必须要用到载波相位,必须用非常好的信号. 第一个它的信号强度要高,第二它不应该是一个经过反射的信号,经过反射以后信号就不准了,信号的传输距离变了。另外一个要求是双频信号,这样对它的定位精度和收敛时间都是有比较大的帮助。

现在市面上有两种方案,一种是L1+L2的双频方案,一种是L1+L5的双频方案,我们推荐的是跨越了L2和L5的option A方案. 在L2上面它接收了GPS和GLONASS的卫星, 这里有两点提到的,在GLONASS的信号里面只有L2信号,而没有L5信号的,对于GPS来说L2的信号是比较成熟的,L5的信号还在建设中,所以L2的信号更多一些。在L5上面 我们支Galileo的E5b和北斗的B2I以及我们未来会支持的B2b信号。通过这样的一个option A,其实我们可以达到4个系统里面每个系统都是双频信号进行接收的,这样接收的卫星数量可以达到最多。

在典型的城市环境下,RTK要做到直射的信号达到9个甚至更多,这样才能达到比较良好的接收效果。我们计算了一下在欧洲的城市环境下面,不是很高的楼那种环境,我们能够看到天上的卫星数量:

曲线上面的这一条浅红色是我们现在的option A能够接收到的卫星数量,这个里面还不包括今年北斗会正式运营的B2b信号,等到北斗B2b信号出来了以后整体的卫星数量还要比现在的这一条线更高一些。下面的红线是option B,它是L1+L5的方案,这里面缺乏了一部分的GPS双频信号全部GLONASS的双频信号,这样对于高精度的RTK不是非常友好。

这里面很多人会问两个问题。第一个问题就是为什么大家都在问L5的信号?我觉得L5的信号大家知道比较多是从手机先开始的,因为手机是在码相位那一级进行处理,L5上面的确会有一些帮助,但是对于RTK来说,是否L5并不重要.它必须要用直射信号,它对于码相位并不是很关心,它要用载波相位,这个时候我们觉得第一重要的还是卫星的数量,尤其是城市环境下面,受遮挡环境下面的双频卫星数量,因为城市环境下卫星数量是不足的。

同时还有另外一个问题,是不是卫星数量越多越好呢?可以说卫星数量的确是越多越好,但是这个里面也有边际效应的考虑. 如果卫星数量超过了一定的数值,比如说超过20个,我们统计下来卫星数量增加带来的效益是可以忽略不计的,这个时候我们要去选取那些信号最好的卫星以及它的几何构形,就是在天上分布,最优的卫星,这样可以提高定位精度。所以通过我们的频段和星系的选择可以部分解决城市道路的遮挡问题。

这里我们有一个测试数据,这是我们在欧洲做的测试,在一个稍微开阔一点的城市环境里面做的测试,右图是我们现在北斗在全球的覆盖,在中国、欧洲以及美洲绝大部分的地区达到了6颗或者以上的卫星, 可以做到基本的定位了,所以说北斗全球覆盖其实是蛮好的. 我们在欧洲做测试的时候可以看出来如果GPS+GLONASS和GPS+GLONASS+Galileo+北斗进行对比的话,这个区别还是很明显的。不仅定位精度了有了提升,RTKfixrate有了明显的提升.所以我们推荐尽量用多系统解决方案,尤其是北斗和Galileo两个新系统,很多人现在觉得这两个系统还没有完善,但实际使用中的效果非常好.

除了多星系多频段意外,我们还在系统里增加了惯导方案,通过使用陀螺仪,加速计,轮速脉冲和我们专有的汽车动态模型,这样的惯导方案可以在信号比较弱和信号中断的情况下持续获得车道级的定位,这就是我们的ZED-F9K解决方案,外面的展台有相关的介绍,大家可以去参考一下。

这里是我们有一个在不同场景下面的测试数据,我们的ZED-F9K在开阔环境下可以达到一个厘米级的定位精度,CEP95是0.13米,这个对于自动驾驶肯定是足够了的。在城市环境下(中间这张图)是在欧洲的一个小镇上面,当地的建筑物大概在五六层,但是建筑物之间的距离比较窄,大概就是双向单车道,再加上旁边人行道这样的宽度,所以说天空的可视度并不是很高,这样的环境下可以看到CEP 95是在0.54米,也是可以支持自动驾驶的。

最右边一张图是在巴黎的现代化区域,那边的GPS信号其实很多时候是受遮挡非常严重的,没有办法进行定位的,这个时候我们会切换到纯惯导的定位,CEP95精度是1.7m,这个时候综合其他的视觉或者是高精度地图的辅助融合定位算法, 也可以很好的进行定位。

综合一下,通过我们的多星多频GNSS系统和惯导,配合地基或者星基增强服务,我们u-blox可以提供整体的解决方案,做到一个自动驾驶可用的分米级车道定位。

谢谢大家!