zoukankan      html  css  js  c++  java
  • 高精地图与自动驾驶(上)

    高精地图与自动驾驶(上)

    前言

    自动驾驶的实现主要有三个步骤:感知、决策规划、行车控制。这与你走路上班/上学的逻辑是相似的:眼睛看到画面,告诉大脑,然后你就知道了自己在哪里,以及要往哪个方向走,并指挥你的腿迈开步伐。

    在自动驾驶系统中,感知主要解决两个问题:车周围有什么,以及车在哪。车没有眼睛,我们就要赋予它“眼睛”。这就是它的环境感知系统,一般由视觉传感器(摄像头)、雷达(毫米波、超声波、激光)等多种传感器融合而成。

    在这些传感器的协同工作下,感知系统就可以知道,车辆周围都有哪些东西,比如车、人、路、树、墙、路牌等等。在将这些数据提供给决策系统后,决策系统根据算法,就知道车辆可不可以行驶,可以以最大多少的速度行驶,以及是否需要控制前轮转弯,并传输指定给行车控制系统。

    在特定条件下,感知系统也会直接传输数据给行车控制系统,这主要应用在AEB上,也就是紧急主动安全系统,以保证在最短的时间内对紧急情况进行响应。

    但这里有个问题,你走路之所以知道要怎么走,是因为你对这条路线很熟悉,脑子里有地图,知道接下来要怎么走。但车辆仅凭感知系统,是无法知道接下来应该如何行使的,就像你到了一个陌生的城市。

     

    这时候,就需要定位和地图了。

    自动驾驶系统中,车辆定位是及其关键的。它影响到几乎所有的环节。通过GPS(卫星定位)、IMU(惯性测量单元)以及车轮测程仪等,车辆可以清晰地知道自己所在的位置,当前的运动状态(时速,加速度)等。

    这时,感知系统就不仅知道了车周围有什么,还知道了车在哪条道路上,在往哪个方向行进。决策系统也知道了整片地区的道路信息,并会根据目的地规划合理的路线,以对行车控制做出指令。

    这就是一套完整的自动驾驶流程,在理想状态下,这些就足以让车辆载着你安全到达任何一个地方。

    但遗憾的是,以目前的技术水平,这种“理想状态”很难达到,因为车辆的感知和定位系统依然无法像人一样,可以识别出路上的所有信息,判断自己的准确位置,并且不受环境的影响。

    例如,在高楼林立的市中心,GPS信号可能会被阻挡,这时车辆就会丢失自己的位置信息,让自动驾驶行程中断。

    又或者,在雨雪天气,路上的车道线被积雪或积水覆盖,车辆仅凭环境感知系统难以实现车道的判别,从而可能导致事故征候。

    再或者,目前的感知系统,还难以识别路上的坑洞、减速带、较低矮的路肩等等,在高速行驶过程中如果漏判了这些东西的存在,也会导致相对严重的后果。

    更或者,在高速上下匝道时,有时会出现左右分流的车道,这时如果仅凭导航地图和环境感知,可能会让车辆出现快速变道的情况,乘坐体验会很差。

    在这种技术条件下,想要实现L3级以上的自动驾驶,就需要高精地图出场了。

    高精地图,顾名思义就是精度非常高的地图,一般来讲高精地图的精度都是分米级的,但它不仅仅是精度高,在数据的维度上相较普通的地图也更加丰富。

    本文介绍什么是高精地图、高精地图与自动驾驶的关系、高精地图是如何打造的、高精地图开发中存在的挑战和思考。

    一、什么是高精地图?

    在讲什么是高精地图之前,先来了解一下高精地图与自动驾驶的关系。

    一个问题是同一家厂商内部对于自动驾驶的实现时间都存在一些矛盾,当然这完全可以理解,毕竟自动驾驶是比较新的技术,所以变数很多。

    根据SAE International(国际自动机工程师学会,原美国汽车工程师学会)的划分,自动驾驶级别分为5级,也就是L1-L5。L3的应用比较典型的是高速公路上有监督的自动驾驶。

     从这个级别来看,业内的共识是,L3及以上,高精地图的支持是必选项,而在L3以下的辅助驾驶阶段,对于高精地图没有刚需。比如市场上一些已经具备自动驾驶功能的车型都是依靠摄像头、毫米波雷达等传感器实现一定程度的自动巡航功能。

    1、定义

    回到高精地图本身,这个名称的提法本身就不是很严谨。比如说,大家在提导航地图的时候,你很难说它就是“低精地图”。

     其实,高精地图是从国外引进的一个名词,英文名HD Map(high definition map),直译过来就是高分辨率地图。

    还有人将这种类型的地图命名为HAD Map,直译过来就是高度自动驾驶地图(highly automated driving map)。其实这个名称也不是很准确,因为很难说高度自动驾驶是从L3开始的还是从L4开始的。

    而德文对应的名称是:hoch genaue Karte,意为高可信度地图。

    命名就有这么多,可以想见业内人士在提高精地图的时候实际上也不是一个概念,所以需要来定义一下到底什么是高精地图。

    高精地图是一种用于自动驾驶的专题图,准确的叫法应该是“自动驾驶地图”。就像导航地图、政区图、地形图一样都是该地图关注的某一种专题内容或专题功能。

    2、内容构成

     高精地图其实是提供了一个自动驾驶环境的模型。车辆要想顺利进行自动驾驶,必须对其周边的环境进行构建,包含:

    • 移动物体:行人、车辆;
    • 互联设施:V2V、V2X等通信设施;
    • 高精动态驾驶环境:是否拥堵、哪里在施工、哪里有事故、哪里有交通管制、哪里有雨雪等;
    • 最底层的静态高精地图,也是目前阶段业界工作的重点。
    • 在静态高精地图中,包含了车道模型、定位对象(static objects)、道路属性和其他的定位图层:
    • 车道模型主要用于引导车辆从A地开到B地,包含车道的详细结构和连接关系;
    • 定位对象是路面、路侧及上方的各种物体,包括标志标牌、路面标志、龙门架、桥、杆、牌等等;
    • 道路属性则包括如导航图关联关系、GPS信号失锁区域等等信息。

    当前典型的高精地图代表是矢量高精地图,一些新的公司也称之为语义地图。内容大体如下:

     在车道模型中,也有很多重要的细节信息需要体现在高精地图中,包括车道中心线、车道线、车道变化属性点以及道路分离点和车道分离点。

    比如在车道变化属性点,车辆可以通过传感器探测到相关信息,然后再对比地图,便可清晰地知道自身处在什么样的位置。而且在路径规划的时候,车辆也知道在哪个位置进行并线是合理的。

    为了方便计算道路连接关系,还会将道路分成多个组(Sections)。

     车道模型还包含车道连接关系,也就是说车辆要去往一个目的地,需要经过哪几个车道的转换才能到达。

    高精地图中还有一些数学属性,包括道路的曲率、航向、坡度以及横坡。可以指导车辆执行转向、加减速。

     高精地图中还包含很多的定位对象(Object)用于实现车辆自定位。

    自动驾驶车辆自定位的典型方案是用车端的传感器识别各类静态地物,然后将这些物体与地图上记录的物体进行比对(Map matching),比对之后车辆就得到自己在道路上的精确位置和姿态。

    当然还有一些特殊的地物如斑马线、停止线、红绿灯等,控制着不同的路口和不同的方向,那么在数据中,需要把这些关联关系表达进去,让自动驾驶汽车在这些地方可以顺利做出决策。

    有了自动驾驶以后,导航地图依然会存在,但可能会变得比今天更简单一些。

    比如用户乘坐一辆自动驾驶汽车去往某个目的地,那么导航会规划一条行车路径交给自动驾驶系统,自动驾驶系统会依靠高精地图再规划出一条更为精细的路线图,实现从A地到B地。其中包括在哪并线,在哪需要出匝道。

     

     所以,在导航地图和高精地图之间建立连接关系,可以让导航系统和自动驾驶系统协同工作。

    3、高精地图的形态、部件和业界进度

    高精地图诞生初期,有一个业内非常重要的组织叫做NDS协会,一直在定义导航地图数据标准。通过统一标准降低开发难度,使车厂节约成本,同时图商的适配成本也会更低,竞争更充分。

    从2012年左右开始,NDS协会也开始定义自动驾驶地图。在NDS的定义中,高精地图更多还是矢量地图的形态。

    随着传感器的更广泛使用以及成本越来越低,对不同传感器也产生了不同高精定位的图层;同时随着很多新技术的产生,比如深度学习,自动驾驶地图也变得越来越多样化。

    这里面最典型的当然是Google,其自动驾驶技术无疑是非常领先的。但是Google向外界公布的信息很少,Google无人车前领导者Chris Urmson在2015年的一场公开演讲中展示的视频透露了其在自动驾驶地图方面的局部细节。

     

    可以看到,Google把路侧的一些静态物体用黑框标了出来,对人则是用一些蓝色的框进行标示,而对于移动的车辆,则用紫色的框进行标示,而中间部分橙色的圈状线则是多线激光镭达产生的原始激光点云。

    以前它用的是Velodyne的64线激光镭达,后来自己打造了成本更低的激光镭达。

    可以看出Google的自动驾驶地图中车道模型是存在的,其中的车道线、人行道都做了标示。Google应该是对多种形式的自动驾驶地图都有尝试,甚至是融合不同的解决方案。不仅仅在用激光镭达的占位图或反射率图,同时也使用矢量数据。

    NDS 成员HERE和都提供类似的高精地图,包含车道线、中心线、边线都非常精细,如下图:

     更为激进的如Mobileye的REM,也即“路书”(Roadbook)。CES 2016上,Mobileye就说其可以通过摄像头传感器生成路书,让车辆直接用路书去做自动驾驶。

    早前,Mobileye宣布和HERE地图达成合作,各种原因我们猜测是今天的自动驾驶地图还不能以一种全自动的方式去生成,仍然需要参与大量的人工。而且摄像头本身也有不少缺陷,比如很容易被遮挡,若干次采集也很难达到足够的大范围完备率。

     在Mobileye的REM地图中,有道路边缘线、车道中心线、车道边缘线以及静态物体的标示(白底红圈的圆点)。

    除了矢量高精地图,还有定位栅格图,包括激光镭达占位图、反射率图以及DEM(Digital Elevation Model)等。

     DEM图可以通过传感器的观测到周边环境再和原始数据进行对比而形成的,不考虑反射率,只考虑高度值。

    反射率图的原理在于:激光雷达扫描物体后得到反射率,因为不同的材质会有不一样的反射率、可以用于预先生成定位图层。通过扫描周边的环境,与预制的反射率图对比,车辆就能得到精确的自身位置。

    占位图(occupancy grid)相对简单,首先要找到地平面在哪里,标记出高出地面的位置。

    定位栅格图的另一个典型代表是来自欧洲的图商Tomtom。前两年,Tomtom发布了RoadDNA,其中包含矢量车道模型,但并不使用矢量Object定位。

     Tomtom的方案不分辨路侧具体是什么物体,而是把它们当成一种纹理。在使用激光镭达进行采集的时候,会得出这些物体与车之间的距离,从参考线到路侧障碍物的距离正射到参考线(比如最左车道的左边线),用灰度值代表距离生成定位用的栅格图。

    在一些地物比较稀疏的地方,这种方式优势明显。但是这种形态的地图还依赖激光镭达低成本化。

    博世推出了基于毫米波雷达的自定位解决方案。因为毫米波成本低、稳定性高、装配率高,基于毫米波雷达的自定位方案有望早于激光镭达方案投入到应用。

    2015年研发了基于摄像头的定位方案——“道路指纹”。其目的是想探索高精定位的原理和不同的方案。

     

      把摄像头拍摄的地面图像做正射等处理,将得到的纹理预存下来,等车辆拍摄同一位置,用同样的算法、生成正射图与预存正射图对比得到高精位置。

      4、高精地图与导航地图的差别

    从内容和形态上开,高精地图和导航地图存在着很大的差别,具体表现在以下的多个方面。

      很多人会问高精地图的容量会不会特别大,其容量并不会变大,反而要小于导航地图。

    从道路的模型来讲,导航地图只有一根线,到高精地图的时候,它就变成车道级别的了,几何形状似乎是变多了,但是在导航地图里有大量的POI、名称、水系、绿地等。

    按照NDS的规定,航空影像和卫星影像都集成到了导航地图里。单从纯矢量部分来看,高精地图的体积也比导航地图的容量小很多。

  • 相关阅读:
    CalISBN.java
    Int2BinaryString.java
    PrintNumber.java
    AllSame.java
    第一个程序
    将博客搬至CSDN
    sqoop 1.4.4-cdh5.1.2快速入门
    hadoop的关键进程
    HIVE快速入门
    公钥,私钥和数字签名这样最好理解
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/13065822.html
Copyright © 2011-2022 走看看