后续任务:需要补充,阅读参考书的 6 7 8 / 9 10 / 12 / 13 14 15 / 17 / 18 19 20
基本情况
- 自动驾驶技术在异常环境中的可靠性一直都没有得到很好的解决。
- 无人驾驶或者移动机器人包括感知、定位和决策三个技术点,也包括适用于无人驾驶的边缘计算系统和一个无人驾驶云平台提供更高级的训练、统筹规划任务。
- 完全自动驾驶会比计算机辅助驾驶要更加可靠。
定位
卡尔曼滤波
可以使用卡尔曼滤波(Kalman Filter)整合GPS和IMU的优势。通过GPS和IMU可以为车辆定位提供既准确有足够实时的位置更新。
但是因为GPS受到环境影响比较大,同时IMU存在累积误差的问题,我们采用摄像头的立体视觉定位作为补充方案。再结合LiDAR对环境的“形状化描述”与高精度地图匹配,进行多传感器融合以达到更准确的定位。
视觉里程计算法
用于定位的视觉里程计算法,有两类:一类是基于拓扑与地标的算法,另一类是基于几何的视觉里程计算法。
- 第一类需要预先把所有的地标(像是某个路口的标志)组成一个精准的拓扑图,当无人车监测到某个地标时,便可以大致推断出自己所在的位置。
- 第二类有两种,单目视觉里程计和双目视觉里程计。
- 单目里程计的主要问题是无法推算出观测到的物体的大小,所以在使用的时候需要假设/推算出一个初步的大小,或者结合其他传感器。
- 双目里程计通过左右两图三角测量产生当前帧的视差图,然后可以使用Harris角点(Harris Corner Detector)作为特征点,根据RANSAC算法计算出特征点在帧与帧之间的对应关系,最后通过最小化特征点在两帧之间的重投影误差(reprojection error)来推算出汽车的运动,进而实现车辆的定位。
纯视觉定位算法本身对光线相当敏感,特别是在光线较弱时,图像会有很多噪点。同样的,在反光路面,这种算法也容易失效。
感知
物体识别
Object Recognition,包括yolo、rcnn等技术。
物体追踪
- MOT:Multi-Object Trackin,在识别出物体后,对物体进行跟踪。
- 追踪算法一般分为两步,第一步是生成多个追踪目标,第二步是关联不同时刻的目标为同一物体的多个实例,然后如此反复迭代。
- 2015年的基于马可夫决策过程(Markov Decision Process,MDP)的MOT算法,使用了SVM进行状态判断(替换了一般的概率状态变换),达到业界领先水平。
决策
行为预测
Action Prediction,预测其他司机的行为,采用概率分布的方法预测每一个可达位置集的相关概率。
路径规划
Path Planning,因为不合理的规划代价太严重,所以采用完全确定模型。又因为这样的做法需要的计算量太大,现阶段使用概率模型成为主要的优化方向。
避障机制
Obstacle Avoidance,我们会使用两层避障机制。第一层级是前瞻层级,对交通情况进行预测。第二层是实时反应层,使用雷达数据进行本地路径重规划,如果检测出前方障碍物,则立即执行避障操作。
补充
- 行业内比较统一的认识,无人驾驶可能会首先在矿卡领域落地,因为其封闭的场景及比较简单的交通参与要素。
- Kitti数据集是一个广泛使用的无人驾驶数据集,提供了自动驾驶的标准测试方法。
- 使用Spark构建分布式计算平台,使用OpenCL构建了异构计算平台,使用Alluxio作为内存存储平台。通过这三个平台的整合,可以为无人驾驶提供高可靠、低延迟及高吞吐的云端支持。自动驾驶仿真测试和高精度地图生成都会用到Spark分布式运算。
参考
- 《第一本无人驾驶技术书》
- Innovusion应用:无人矿卡