自动驾驶技术——初学者笔记2:自动驾驶算法简介

最近正在研读工信出版社的《第一本无人驾驶技术书》,这里做一下笔记。
自动驾驶系统主要由三部分组成,算法端,用户操作系统和云端。这一章简单学习算法端。
简单说来就是从传感器的原始数据中提取出来有意义的信息,用以了解周围的环境,并根据周围的环境做出决策。黄标展示出了算法端的组件:传感,感知和决策。

1.1 传感

传感是通过自动驾驶中的多个传感器,获取周围的数据。自动驾驶的传感器包括以下几种:
GPS/LMU
IMU是惯性测量单元,一般由陀螺仪和三个方向的加速度计组成,可以获取到车辆的姿态以及加速度,可以用以推断车辆位置。
这两者中,GPS精度高,但频率仅有10Hz。IMU(惯性测量单元)准确度随着时间进行降低,但他的更新频率高达200Hz。通过整合GPS和IMU数据,可以得到足够准确和实时的定位信息。

IDAR
激光雷达用于绘制地图,定位和避障。
雷达准确率非常高,可以完成高精度地图,并对地图完成移动车辆的定位。常被用于主传感器。

摄像头
广泛用于物体识别和跟踪,比如道线检测,路灯检测,人行道等。一般至少8个摄像头。担其数据量巨大,每秒高达1.8GB。

雷达和声呐
可以测距离,距离变化率,径向速度,方位,高度等。期数据不需要过多处理,比依赖主计算流的引入,常被用于最后一道保障,比如进击刹车,预张紧安全带等。

1.2 感知

通过整合传感中的数据,充分了解周遭的情况。这里所谓的周遭环境,主要指的是:定位、物体识别和追踪。
定位
前面说到定位主要靠的是精度高的GPS和实时性高的IMU的信息。一般通过卡尔曼滤波(通过卡未满滤波过滤掉噪声,需要学习其中的5个公式)整合两组数据的优势,提供准确的信息。但是这样还不够:这样的精度仍然只有1m;GPS存在多路径干扰(接收器在接收卫星信号时,同时也会接收到其他物体反射的卫星信号,造成1米以上的误差),将引入噪声;GPS在隧道等不好工作。
因此有基于视觉的定位的补充方案:首先对立体图像进行三角剖析(需要学习基本的拓扑数学),用视图差(视察角度和基线)获取深度信息;通过匹配连续帧的显著特性,建立相关性,估算这两帧之间的运动情况;通过比较捕捉到的显著特性和已知地图上的点,计算车辆当前位置。但是基于图像的定位,对于光照要求很高。
所以如前面所说,激光雷达成为了车辆定位的主传感器。激光雷达产生的点云,可以实现对环境的“形状化描述”,再通过粒子滤波(和卡尔曼滤波不同,需要学习)关联已知地图,可以实现10cm以内的精准定位。但也有缺点,就是当环境中悬浮粒子较多时,会干扰点云成像。所以最终通过以上三种方法进行数据融合,完成可靠的定位。

物体识别与跟踪
通过深度学习可以达到较为显著的物体识别和跟踪。
CNN(卷积神经网络)被广泛运用于此。(需要恶补学习)

1.3决策

车辆的动作规划由行为预测、路径规划以及避障极致结合实现。
行为预测
使用采集的随机模型,产生车辆行为的集合,采用概率分布的方法预测每一个行为的相关概率。

路径规划
使用完全确定模型,搜索所有可能的路径,并使用代价函数(需要重点学习)确定最佳路径。但完全确定模型对性能要求太高,一般使用概率性模型(统计学知识,需要恶补)成了一个优化方向

避障
两个层级:
交通情况的前瞻层级:通过现有的交通情况,估计碰撞发生的时间和最短碰撞距离。基于此重新规划路线。
实时反映层级:如果第一层级失效,则根据雷达数据再次进行本地路径的重新规划,一旦雷达检测到障碍物,立即避障。

你可能感兴趣的:(自动驾驶)