除了地图标准问题外,定位也是面临难题。地图和定位是一体的,没有高精度定位,高精度地图毫无意义。
有关无人车的定位有两种,一种称之为绝对定位,不依赖任何参照物和任何先验信息,直接给出无人车相对地球坐标或者说WGS84坐标系,也就是坐标(B,L,H),其中B为纬度,L为经度,H为大地高即是到WGS-84椭球面的高度。另一种是相对定位,即有参照物或先验信息的定位。有像Mobileye这样的视觉众包定位REM,视觉对光线变化很敏感,光线每时每刻都在变化,数据的一致性几乎不可能,逆光与背光完全不一样,某国产轿车逆光下ADAS系统几乎完全失效,因此准确度很低。也有基于激光雷达先验信息的定位,准确度极高,但成本也极高,且不可能大范围(几百公里)使用。此外,相对定位无法与标准的高精度配合使用,两者的坐标系、数据格式、接口、时间轴完全不同,标准的传统高精度地图必须有绝对定位。
绝对定位是不可缺少的,特别是全局规划。而目前绝对定位只能用卫星定位,而卫星定位除了QZSS,其余都无法做到自动驾驶的车道级定位。这是L3/L4的瓶颈之一。
卫星定位系统的英文是 Global Navigation Satellite System (GNSS),虽然直接翻译过来是导航卫星系统,但它真正提供的能力是定位,能定位后,导航就变得相对简单了。卫星定位的原理,是利用卫星播发时间信号,当设备接收到后,可以根据信号发射时间和本地时间,计算出信号传输时间,再结合光速获得卫星-设备距离。
有了多颗卫星的信号,可以列出一组方程,求解 4个未知数:设备的三维坐标 x/y/z,以及本地时间与 GNSS 系统的时间差。
公式中的代表卫星 j 的三维坐标,这个坐标可以通过卫星星历计算获得。星历是描述卫星运行轨道的一组参数,卫星轨道是一个椭圆,通过几个参数和时间,可以唯一确定卫星的准确位置。
星历的获取有两种方式,一种是卫星直接播发,这种方式的好处是定位过程不依赖卫星信号以外的任何输入,即使没有网络也可以定位成功,但问题是卫星链路带宽很小,要下载完整星历,需要 30 秒左右的时间,早期的手机和一些车载设备定位过程很慢,就是由于这个原因。另一种方式,是通过互联网播发,这种方式叫 A-GNSS,具体的传输协议叫 SUPL (Secure User Plane Location),这种数据一般不对应用层透出,在手机上,操作系统会在底层定时请求 SUPL 数据,然后将获得的星历注入 GNSS 芯片。有了 A-GNSS,设备就可以在秒级获得定位,不需要任何等待过程,目前所有的手机都支持这种方式。A-GNSS 的服务提供商,主要是通信运营商,以及一些定位服务商,比如谷歌、千寻位置等。
卫星不间断地向地面广播信号,这个信号主要包括以下信息:
- 卫星编号。用于从星历中查找卫星轨道,再结合时间戳获得当前卫星位置
- 当前时间戳。用于获得卫星位置,另一方面计算伪距。伪距是(本地时间-信号发射时间)*光速,之所以叫伪距,是因为本地时间与卫星时间不同步,所以这个距离并不是真正的设备-卫星距离。需要精度很高的时钟。
- 星历数据。用于计算卫星位置。
像其他所有的通信技术一样,这些信息也是以报文的形式发送的,以 GPS 为例,卫星会每隔 6 秒发出一个包,而这个包会分解为数据位-CA 码序列-载波波形,通过天线发射到地面。地面设备持续锁定卫星,在解算时,计算每颗卫星当前时刻的时间戳(用最近一次收到的时间戳加上报文偏移量),然后进行位置解算。
星历是描述卫星运行轨道的一组参数,卫星轨道是一个椭圆,通过几个参数和时间,可以唯一确定卫星的准确位置。载波的频率是 1.5G 左右,波长 20 厘米左右,比移动通信的波长稍长一些,所以信号的穿透性还是比较好的(波长越长,越容易绕开障碍物),可以穿透比较薄的墙壁或屋顶,所以在一些情况下即使无法直接看到天空,也是能定位的。但是卫星信号是从上往下,在室内很难穿越多层建筑。
有个关键数据叫卫星仰角,如果仰角不超过48度,卫星发出的信号由于受地面高层建筑物的遮挡,实际只能覆盖城市面积的30%,不仅覆盖面积小,且定位精度也低。而日本的“QZSS准天顶卫星”的仰角在70度(东京地区达85度),覆盖率可达120%。在中国,北斗主要考虑南方较多,在南方的高仰角北斗卫星较多,自动驾驶就好做一些。
卫星信号从发射到被设备接收,需要经过大气层,其中,大气电离层有数千公里厚,这部分大气非常稀薄,但是存在大量被电离的电子,这部分电子会让电磁波变慢一点,从而产生延迟。在对流层,也会产生一定的延迟。在地表附近,由于各种建筑、山体、水面的影响,卫星信号可能被反射或折射(多径效应),产生延迟。
在卫星信号发射侧和接收侧,也有很多系统相关的误差,比如时钟偏差、处理延迟等,这些延迟加上传输延迟,使得卫星信号的传输时间,并不是准确的等于物理距离/光速,另一方面,卫星的星历也有误差,卫星位置和真实位置存在偏差,最终造成了定位结果产生偏差。
要提升定位精度,需要想办法消除这些误差,主要有以下几种方案。
1. 双星(双模)GNSS
这里不是GPS双频。GPS双频定位是指同时使用GPS的L1波段和L5波段进行定位的技术,实际应该叫双波段。双频定位只能消除电离层误差,无法消除如多径误差等,因此在空旷环境下可以提高定位精度,在城市建筑密集区定位精度提升预计不明显。这个很容易混淆,现在又提出多频,即Multi Frequency Global Navigation Satellite System。还有多波段。
所谓的"双星或多星或多频"定位,就是同时利用GPS和GLONASS或GPS和BEIDOU来进行定位。欧洲人表示不服,为什么没有Galileo?技术上讲,"双星"可以是GPS、GLONASS、Beidou、Galileo中任意两种的组合。但是经过长期测试,大家都知道谁好谁坏了,因此实际中一般用的是GPS+GLONASS,或者GPS+Beidou(主要是国内在用),性能和成熟度等方面 GPS>GLONASS>Beidou>Galileo。还有三星定位同时使用GPS+GLONASS+Beidou进行定位。"双星"或"三星"定位的好处:可以增加系统冗余,在同一时刻同一位置可以搜索到更多的卫星,从而可以提高定位精度。
GPS、GLONASS、BDS、Galileo都采用自己的时间和坐标系统,不同系统见观测量的时间和坐标系统有差异,要进行坐标转换,并虚求解不同系统时间的偏差,因此多引入一个导航系统就需要多增加一个求解参数。不过这个纯粹是数学算法,基本不增加成本。但是射频、变频、天线和基带都需要特别设计,北斗加GPS的频点接近,基本只需要改基带的软件。但GLONASS不行,需要经过不同的变频通道变换到中频,这会大大增加成本。射频是中国的弱项,因为这需要长期的经验积累,双模多模GNSS基本上被NovAtel垄断,NovAtel一般只提供板卡,整机大概要1.2-2万元人民币不等,板卡有3、6、7三个系列,现在主推的都是7系列,典型如OEM719板卡,价格大约700-800美元(近期似乎有涨价),顺便说下,北斗星通是NovAtel板卡主要经销商。
量产车未有使用双频GNSS的,因为价格有点高了。
通常只有demo无人车才会用双模GNSS接收机,例如百度一直用NovAtel的ProPak6,天线是NovAtel GPS-703-GGG-HV,现在ProPak6是老产品,打折后大约要2万人民币。
单点双频可做到1.2米级的定位,RMS是1 sigma或1倍标准差,如果结果是无偏的,概率为67%。也就是说67%的情况下定位可到1.2米,其余情况就做不到了,可能是2米,也可能3米。缺点就是太贵了,还有装一个露在外面的天线,这恐怕是量产车无法接受的。
特斯拉里的定位是GPS模块是NEO-M8L-01A-81,水平精度圆概率误差(CEP)为2.5米,有SBAS辅助下是1.5米,接收GPS/QZSS/GLONASS/北斗,CEP和RMS是GPS的定位准确度(俗称精度)单位,是误差概率单位。就拿2.5M CEP说吧,意思是以2.5M为半径画圆,有50%的点能打在圆内,也就是说,GPS定位在2.5M精度的概率是50%,相应的RMS(66.7%)2DRMS(95%)。当然很多商家为了参数好看,只给出CEP。实际95%概率情况下是6米精度,有SBAS辅助95%概率是3.6米精度。已经远超一个车道了。冷启动26秒,热启动1秒,辅助启动3秒。显然,这是无法实现车道级定位的。
2. 地基/星基增强(SBAS)
星历误差、卫星时钟误差、甚至是电离层和对流层误差都是可以观测或建模的,一旦计算出了实时的误差值,就可以通过一个单独的通道进行播发,接收设备在定位过程中使用这些修正项,就可以提升定位精度。播发的通道一般有两种,一种是直接通过卫星播发,称为 SBAS(Satellite-Based Augmentation System),好处是覆盖广,但设备需要增加额外的信号接收通道;通常需要专用卫星。另一种是地基增强,比如通过移动互联网,这需要设备具备联网能力。这就意味着有通讯带宽和延迟的问题,还有移动信号强弱的影响。
这些增强方式对于精度提升是有限的,还是有很多误差项无法消除,比如电离层误差。
3. RTK
RTK 是 Real-time kinematic 的缩写,是一种差分定位。其原理是利用一个参考站提供基准观测值,然后用设备的观测值与基准站的观测值进行差分,差分后可以消掉星历误差、卫星钟差、电离层误差,再进行星间差分后可以进一步消除掉设备的钟差,最终可以算出设备相对基准站的相对坐标,如果基准站位置已知,就可以完成准确的绝对坐标,精度可以达到厘米级甚至毫米级。
RTK 能提升精度的另一个原因是引入了载波相位观测,相比伪距观测值,载波相位观测值的误差更小。使用 RTK,需要在附近 20km 内有参考站(距离太远,电离层误差不一样,做差分无法完全消除误差),同时需要持续不断地获得参考站的观测数据(一般通过互联网传输,使用 RTCM 协议),因此相对普通的定位,RTK 定位成本较高。RTK 服务一般由专业服务商提供,如千寻位置、六分科技,这些服务商在全国范围内部署了数千个基准站,持续对订阅用户播发数据。
不过RTK也有缺点,那就是播发数据一般要依赖无线通信网,也就是手机。4G的延迟一般在165毫秒以上,已经难以做高精度定位,5G会比较好。通常RTK都是和地基增强在一起,即CORS(Continuous Operation Reference Stations )即连续运行参考站系统,网络CORS主流技术有四种,分别是VRS、主辅站技术(i-MAX)、区域改正参数(FKP)技术和综合误差内插法技术。其中VRS技术市场占有率最高,是目前公认的主流,VRS由天宝公司发明。南方公司则对VRS进行了改进,命名为NRS,本质上还是VRS。
RTK缺点也是很明显的。RTK确定整周模糊度的可靠性为95~99%,在稳定性方面不及全站仪,这是由于RTK较容易受卫星状况、天气状况、数据链传输状况影响的缘故。首先,GPS在中、低纬度地区每天总有两次盲区(中国一般都是在下午),每次20~30分钟,盲区时卫星几何图形结构强度低,RTK测量很难得到固定解。其次,白天中午,受电离层干扰大,共用卫星数少,因而初始化时间长甚至不能初始化,也就无法进行测量。根据实际经验,每天中午12点~13点,RTK测量很难得到固定解。
4. PPP定位
PPP (precise point positioning) 的原理是对每一种误差进行准确建模,最终求解出卫星和设备之间的准确距离。为了确定准确的误差,PPP 定位时需要不断的迭代内部参数,而且,一些卫星的误差只有当卫星位置变化后才能体现出来,所以 PPP 需要比较长的收敛时间,一般需要 30 分钟才能收敛到理想的精度,显然这无法用在汽车领域。
5. QZSS
早在1972 年,当时的日本电波研究所(现为信息与通信研究所) 就提出了准天顶卫星系统的概念,论证了这种系统很适合日本这样地处中纬度、国土狭长的国家;2002年11月1日正式成立了新卫星商业公司Advanced Space Business Corporation (ASBC),共有43家企业出资,三菱电机公司、 日立制作所和丰田汽车公司等7家企业持股占77%。
但是事情并不顺利,最后还是由日本政府内务省出面接管QZSS项目。日本政府接管后,在2010年9月11日,发射第一颗卫星Michibiki,2011年6月1日,正式提供导航服务。2017年6月1日,发射第二颗卫星,2017年8月10日,发射第三颗卫星,2017年10月10日,发射第四颗卫星。日本计划在2023年,将QZSS的导航卫星数量增加为7颗,届时将不再依赖美国GPS,即可提供位置信息。2023年-2026年,不加任何地基增强的空间信号测距误差为2.6米,2027年-2036年,误差为1米,2036年以后,误差为0.3米。
QZSS之所以能实现高精度定位,主要来自两个信道的增强,一个是L1-SAIF,另一个是LEX。
L1-SAIF可以达到亚米级精度,一般来说,最高38厘米。LEX可以达到2厘米精度。
L1-SAIF不仅包含时钟矫正、轨道矫正、电离层矫正,还包括有首次定位加速,同时还有日本本土大约1200个GPS地面观测站网络点的GEONET数据。L1-SAIF的码率为250bps。QZSS的LEX信息格式,数据为1695字节,包头为49字节,包尾为256字节的里德所罗门校验纠错码。LEX的信号调制,short code的时间只有4毫秒,平方波则比较长,有820毫秒。也就是说星历的接收从30秒缩到10毫秒左右。目前的GPS接收机可以接收到QZSS信号,但无法解调出LEX信息。不过只需要在软件上做改动,即可实现这个功能。
QZSS接收上不需要增加任何硬件成本,只增加软件成本,苹果手机就支持QZSS。
QZSS廉价、高效、广播方式没有带宽的瓶颈,也没有延迟,是最适合自动驾驶的一种技术。日本国土狭长,7颗星覆盖率就可超过100%,对中美这样的大方块国家,恐怕得几十颗低轨道卫星。这种基础工作,恐怕最少要花十年以上的时间才能决策批准并实施。
6. 天宝RTX
Trimble RTX技术得益于在GNSS定位领域30多年的技术积累,Trimble在2011年推出了全球精密定位服务(RTX),并且逐步完善定位服务性能。Trimble RTX全球跟踪基站网络在全球部署了120个左右的跟踪基站,对GNSS观测值进行实时跟踪和存贮,将GNSS观测值实时发送给分别位于欧洲和美国的控制中心,控制中心对全星座精密卫星轨道、钟差和大气建模,得到全球精密定位改正数。全球精密位置改正数通过L波段卫星(天宝自己的卫星)或者网络的方式广播给服务授权的终端用户。
典型应用就是凯迪拉克的超级巡航。天宝RTX分为4个等级,价格各不相同,硬件差别比较小。凯迪拉克用的可能是ViewPoint RTX,且凯迪拉克由于没有使用天宝的L2波段卫星通讯,估计服务费很低,一年估计几十美元,甚至更低。如果使用天宝的L2波段卫星,像CenterPoint每年的费用大约2-3千美元。精度可以做到厘米级定位。
最后还要考虑GPS信号有丢失的可能,特别是在高楼林立的市区。这就需要加入IMU,惯性测量单元。IMU有两个作用,一个是在GPS信号丢失或者很弱的情况下,暂时填补GPS留下的空缺,用积分法取得最接近真实的定位。所以市区的无人驾驶,惯性导航系统必不可少。另一个作用是配合激光雷达,GPS+惯性导航系统为激光雷达的空间位置和脉冲发射姿态提供高精度定位,建立激光雷达云点的三维坐标系。可用于定位,与其他传感器融合时,也需要统一到一个坐标系下。定位是最常用的,通过 IMU、惯性导航系统、编码器和 GPS,得到一个预测的全局位置。当激光雷达实时扫描单次的点云数据后,结合单次的点云数据进行匹配,并进行特征提取。这些特征包括路沿、车道线、高度等周围点线面的特征。对于高精度地图,提取过特征与实时提取的特征进行匹配,最终得到精准的车本体速度,这是激光雷达的定位过程。
高精度的IMU如百度阿波罗用的NovAtel IMU-IGM-A1,售价大约20万人民币。当然可以不用这么贵的,高速自动驾驶很少建筑物遮盖,就基本不需要这么贵的IMU。
卫星广播形式是自动驾驶高精度绝对定位的最佳选择,日本能做到,但中美这种幅员辽阔的大国使用成本太高了。退而求其次是CORS地面站增强,也就是千寻位置这种的,千寻的称为FindAUTO。
千寻位置推荐的硬件组合如上图,一般来说至少STA8100级才能用于智能驾驶,STA8090只能用于智能网联,整机价格(包括4G)估计不超过2000元。目前FindAUTO可能还没收服务费。但是免费是不可能长久的。参考千寻亚米级测绘定位服务FindM Pro,包年服务费是300元人民币,智能驾驶应该也是这个价。当然这个价格里不包括4G联网费用。这需要一直保持4G在线,这笔费用是不低的,如果要做L3级自动驾驶,4G平均200毫秒左右的延迟,如果车时速是72公里,200毫秒就是4米,超出一个车道了,所以5G才能做L3级自动驾驶。
再退一步是双模接收机,缺点是价格有点高了,基本上都上万了,或者用国产板卡,价格也要五六千左右,性能就差不少了。用在量产车上还是不行。
总体而言,千寻位置是最适合中国国情的,不过要上L3自动驾驶,5G必不可少。