无论是L2+还是L5都离不开高精度激光雷达地图。一家不到50人的公司已经实现了高精度地图全球首次量产车搭载,这就是卡迪拉克的超级巡航。这家小公司就是Ushr。
这家小公司足以令全球任何一家图商汗颜,HERE、TOMTOM和谷歌都得在USHR面前俯首称臣。这家小公司用一年半的时间,覆盖了北美超过22万英里高速公路的高精度激光雷达地图,基本上覆盖了北美的主干道。不过这些激光雷达地图并非USHR采集的,USHR是一家地图软件公司,而非采集公司,USHR也只有40个人,USHR的核心业务是设计激光雷达数据处理软件,抽出道路特征,绘制道路模型,同时压缩激光雷达数据以达到车用级体积。
USHR的前身GeoDigital主要业务是给各地政府提供激光雷达地图或DEM数字高程模型,拥有很多免费的激光雷达地图资源。2017年9月,USHR获得了1000万美元的A 轮投资。USHR是一家加拿大公司,前身是GeoDigital International公司,成立自1987年,主要从事LIDAR测绘分析软件的开发。在2015年,公司看到无人驾驶的机遇,特别成立了无人驾驶事业部,并在2015年9月邀请到哈曼国际Infotainment事业部总经理Chris Thibodeau来领导无人驾驶事业部。Chris Thibodeau之前在福特和通用都任职过,在福特任车联网用户界面规划,在通用任车联网电子电器总架构师。
GeoDigital International 2014年底就与通用接触探讨使用激光雷达高精度地图,2015年9月正式开始为通用服务,一年半完成了北美主要高速公路的激光雷达高精度地图。2017年9月得到通用的投资,2017年12月获得第二个大客户,就是瑞萨。
USHR的技术路线跟三菱的MMS非常接近。
上图为日本三菱的MMS系统,其内容和USHR高度重合,都是利用激光雷达生成道路级拓扑地图,同时用深度学习识别路标,USHR做到每隔0.5米检测一次路标。MMS系统已经商业化大量推广,日本在2016年6月成立了DynamicMap Planning公司,该公司股东包括日本9大汽车公司,三菱电机和地图开发商Zerin。其中核心技术源自三菱电机的MMS(Mobile MappingSystem)。2017年6月日本政府机构INCJ加入并成为第一大股东,持股比例达33.5%,三菱电机持股14%,地图开发商Zenrin公司持股12%,地图开发商PASCO持股12%,地图发行商为AisanTechnology持股10%,Increment持股8%,丰田地图大师持股8%,其余股份为9大车厂,公司也更名为Dynamic Map Platform。
高精度地图或者说L3级智能汽车需要的地图应该是什么样的地图?相比服务于GPS导航系统的传统地图而言,高精地图首先是要路面特征的高度精准,其次是路沿、隔离栅、人行道、交通标志等道路附属物的尽量全面的信息。最后是实时性,要尽可能地升级地图信息。L5级则需要V2X地图配合,V2X将是地图的一部分,如上图所示。
不仅有真实的特征,还有虚拟的特征。
卡迪拉克超级巡航里的高精度地图实际主要作用非常有限,主要是提供车前方道路的曲率和海拔高度变化信息,配合车载的GPS和IMU达到随道路曲率自动调整驾驶方向角的效果,使车一直保持车道中间,当然也根据道路曲率调整车速。不过即便是这点足以秒杀特斯拉了,特斯拉是用LKA车道保持系统,被动做出调整,调整的幅度有限,曲率比较小的路段就无法使用,并且高度依赖车道线,车道线痕迹不明显,道路有积水或积雪覆盖,林荫道等无法识别出车道线的道路无法使用LKA和自适应巡航。而超级巡航可以在无法识别车道线的情况下主动调整航向角。
通用卡迪拉克的超级巡航特别使用了天宝的专业级GPS,可以确保精度达到3米。用摄像头加激光雷达地图做车道线级定位的研究自1997年就开始了,2007年斯坦福的Map-Based Precision VehicleLocalization in Urban Environments。福特赞助的,Ryan W.Wolcott 和 Ryan M. Eustice的VisualLocalization within LIDAR Maps for Automated Urban Driving,这两篇的知名度颇高,都是利用摄像头在激光雷达地图里高精度定位。
定位需要使用大量的概率运算,如蒙地卡罗定位法,对运算资源需求比较多,超级巡航上应该没有使用,毕竟超级巡航只是L2阶段,只做自适应巡航,不需要做车道线级定位,不过无人车就需要了。蒙地卡罗定位法是可以实现实时定位的,关于蒙地卡罗定位法最详细的解释莫过于1999年的F. Dellaert,D. Fox,W.Burgard和 S. Thrun.的 Monte Carlolocalization for mobile robots这篇论文。
The particlefilter maintains a three-dimensional pose vector (x, y, and yaw); roll andpitch are assumed to be sufficiently accurate as is. The motion prediction inthe particle filter is based on inertial velocity measurements, as stated inSect. II-A.
Measurementsare integrated in the usual way, by affecting the importance weight that setsthe resampling probability. As in the mapping step, a local ground planeanalysis removes measurement that correspond to non-ground objects. Further, measurementsare only incorporated for which the corresponding map is defined, that is, forwhich a prior reflectivity value is available in the map. For each measurementupdate, the importance weight of the k-th particle is given by.
简单地说,蒙地卡罗定位法是一个Particle滤波器,滤波器保留一个3D的姿态向量(x、y、Yaw)。车辆急刹车、急加速、急拐弯形成的Roll和Pitch由IMU获得,并假定它是正确可靠的。滤波器中的移动预测来自IMU。建图测量和定位通常是集成在一起的,由重要性权值设置再取样的概率。每建图一步,利用一个内部的已经完成的高清地图数据库来分析对应的移除的地面上物体的测量值,高清地图数据库中激光雷达对路面的反射强度值是必须提供的。重要权值为:
再利用皮尔森积矩相关系数(Pearsonproduct-moment correlation coefficient)分析两个变量线性相关程度。公式如下:
为减少偏差,实际再取样的频率低于测量/姿态数据的升级频率。为了避免大的错误,同时也要引入GPS做补充。当然也可以不用GPS,这种方法也适用于雨天。
高精度地图之所以难以应用,主要是数据压缩的难题,高精度的地图是激光雷达的云点,激光雷达的3D 云点存储格式常见的有两种,一种是国际标准组织的ASTM E57,另一种是美国摄影测量与遥感协会的LAS格式。LAS还有LASzip压缩格式。这种压缩格式的压缩比率大约是10比1。一般激光雷达可覆盖方圆100米范围,假设每个反光强度可以用一个字节记录,那么每次典型激光雷达扫描可产生4MB数据。扫描会包括公路旁边的树木及房屋,但无人车行驶并不需要这些数据,只需记录公路表面和路两边大约5米的数据即可。
高速公路双向4车道的宽度大约30米,还要向路边延伸大约5米,就可以通过数据处理把非公路表面的数据过滤掉,这样每次扫描的数据量会下降到1.5MB。在过滤数据的基础上,还可以使用无损压缩算法。经过这些处理后,1TB硬盘就可以存下大约5万公里的高速公路高精地图数据,而我国高速公路总里程是13.1万公里,这还没计算非高速公路的道路。即便是1TB也是太大了,ITB的车规级固态硬盘价格会是非常惊人的,更何况固态硬盘的价格近期一直上涨,短期内没有降价的可能。
USHR的数据压缩算法不得而知,不过跟三菱的MMS系统应该差别不大。
USHR的高精度地图的第一步是用激光雷达采集数据,可视化或图形SLAM之后抽出道路特征,绘制道路模型。道路模型包括以下内容。
用激光雷达构建道路模型一般分三步走,第一步识别道路边缘,抽出道路,也就是Road Surface Segmentation。第二步,抽出道路表面标记,即Road Marking Extraction。第三步,构建地图或模型。也可以参考以下论文,Road Surface Segmentation流程见下图。
Road Surface Segmentation最常见的方法就是用激光雷达来做,算法非常成熟,鲁棒性远高于视觉,消耗运算资源也远低于视觉。
上表为常见的使用激光雷达做Road SurfaceSegmentation的方法,其中利用点密度与高度滤波器的方法最为成熟,简单明了,消耗运算资源最小。缺点是在非常陡峭的路段无法使用,因为高度变化过于剧烈。还好,结构化道路都不会有陡峭到无法识别的地步。还用使用RANSAC平面拟合法也比较优秀,也可以对应非结构化道路、陡峭和急弯路段。考虑到德尔福和英特尔、Mobileye、宝马结盟,对RANSAC运用应该更熟练,更有可能是RANSAC法。
用点云密度与高度滤波器的方法简单原理如上公式。Sslope 是连续两个点的斜率,ST 是自定义的斜率阈值,Gi 指两个扫描点之间的高度差值,Gmin 是最小高度阈值,Gmax 是最大高度阈值。
(Xi, Yi, Zi) 和 (Xi+1, Yi+1, Zi+1) 是连续两个点的坐标,用此方法计算出连续两个点的斜率和高度差值。就可以计算出路沿。如下图。
RANSAC为RandomSample Consensus的缩写,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。它于1981年由Fischler和Bolles最先提出。用在激光雷达领域,是根据激光雷达灰度成像点增强,在平面拟合出道路边缘。
第二步是抽出道路标记。
抽出道路标识的常见算法见上表。一般路段,用简单的激光反射强度滤波即可。复杂路段可以加上距离滤波器,流程如下图。语义识别可以用简单的模型库,道路上的语义信息毕竟很少。当然也可以用深度学习。
最后,对于路上竖立的离车比较远的物体,可以用一种下取样就是VOXEL的方法来提高运算效率。很多时候我们不需要有太高的分辨率,因为点云过多会造成计算变慢,并且更加消耗计算资源,所以我们需要把点云变稀,voxel就是一个很好的方法。voxel就是三维的pixel,也就是把点云画出网格,然后每个网格内保留一个点就可以了。网格的大小可以自己定义,这就相当于一个downsample(下采样) 。当然如果激光雷达线数低,点云数据就接近VOXEL了。