算法部分包括:从传感器采集的原始数据里感知和抽取有意义的信息;理解信息来定位车辆位置和了解当前的环境;决定采用什么行动来让车辆可靠安全地抵达目的地。 感知 通常,一辆自主驾驶汽车包括多个主要的传感器。因为每种类型的传感器都有自己的优缺点,所以必须组合使用来自多个传感器的数据。常见的传感器类型包括如下几种: 1. GPS/IMU(全球定位系统和惯性测量单元): GPS和IMU系统通过高频(例如200Hz)收集惯性变化和地理位置估计来帮助自主驾驶汽车定位自身。尽管GPS是一个相当精确的定位传感器,但它的更新频率是10Hz,无法提供实时的信息。经管IMU的准确度随着时间变长而降低,从而导致不能长时间地依赖于它提供精确的位置信息。但它能提供更快的更新频率(200Hz或更高),这就能满足实时的需求。通过结合GPS与IMU,就可以提供实时且准确的车辆定位信息。 2. LIDAR(激光雷达): LIDAR被用于绘图、定位以及避障。它的工作原理是通过发射激光,并测量反射回来的时间来测量自身与其他物体的距离。它的准确度很高。因此在大多数自主驾驶实现里,它都是主要的传感器。LIDAR可以被用于生成高清晰度地图、比对移动中的车辆和地图的位置以及探测前方的障碍物等。通常一个LIDAR单元(比如Velodyne的64束激光器)会以10Hz的频率扫描,每秒采集大约一千三百万的读数。 3.摄像头: 摄像头主要是用于物体识别和物体追踪的任务,比如车道探测、信号灯探测和行人探测等。为了增强自主驾驶车辆的安全性,通常的实现是在车身前后安装八个甚至更多的摄像头,用于探测、识别和追踪前后左右的物体。这些摄像头的工作频率一般是60Hz,总计会在一秒钟产生约1.8GB的原始数据。 4. 雷达和声呐: 雷达和声呐系统是规避障碍物的最后一道防线。由它们产生的数据显示了车辆与前方最近的物体间的距离。当检测到前方有物体并可能有碰撞的危险时,自主驾驶汽车可以通过刹车或是转向来进行规避。因此由雷达和声呐产生的数据并不要求多少处理,通常是直接输出给控制处理器(没有通过主要的计算管道)来完成紧急的任务,比如急转、刹车或是预先拉紧安全带等。 理解 第二步,传感器收集的数据被发送给理解子系统来了解车辆的周围环境。自主驾驶车辆的理解系统的三大主要任务就是定位、物体探测和物体跟踪。 定位 GPS和IMU都可以被用于定位。GPS提供相当精确的定位,但更新速度较慢;而IMU可以提供快速更新,但精度较差。我们可以使用卡尔曼滤波来组合这两者的优点,提供精确且及时的位置更新。如图3所示,IMU每5ms推测一次车辆的位置,但随着时间的流逝,错误逐渐累积。不过每100ms,我们就可以得到GPS提供的更新,从而能纠正IMU的错误。通过使用这个推测与更新模型,就能得到GPS和IMU共同产生的快速且精确的定位结果。 不过我们不能仅仅依赖于这个组合方法得到的定位结果。这主要是因为三个原因:1)定位结果的精度仅有1米;2)GPS的信号会有多路的问题,即GPS信号可能会被建筑物反射,从而引入很多的噪音;3)使用GPS要求车辆上方空间无遮拦,因此无法在封闭空间里工作,比如隧道。
图3 GPS和IMU定位。图片由Shaoshan Liu友情提供 摄像头也能被用于定位。基于视觉的定位过程遵循如下简化的管道:1)通过三角定位双目图像对,就可以获得一个视差图。它可以用来推导出图像里每个点的深度信息;2)通过比对连续两帧立体图像里的显著特征,就能够估算出两帧图片间的移动;3)通过比较视频图片里的显著特征和已知的地图,就推导出车辆的当前位置。然而,基于视频的定位方法对于光线非常敏感。因此这个方法单独使用时也不够可靠。
图4 双目图像测距法。图片由Shaoshan Liu友情提供 (责任编辑:本港台直播) |