自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记

参考Coursera 自动驾驶课程 collision checking

本文为该课程的学习笔记

 1.学习目标 

理解碰撞检查里的难点;知道什么时候用怎么用基于长条基于圆的碰撞检查;了解不完全信息和离散化误差造成的一些危害,并了解我们如何使用保守近似来缓解这些问题。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第1张图片

2.碰撞检查的挑战 

一个具有挑战性的计算密集型问题(实时性);需要关于环境的完美信息;需要保守的近似,必须对噪声具有鲁棒性。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第2张图片

3.条带计算

车身用矩形近似,沿着路径一系列车辆状态[x,y,θ],求出每个状态车辆在地图上占据区域(footprint,脚印)的集合,集合即为待碰撞检测的条带。基于条带碰撞检测的方法就是,求出条带后,然后求出所有的条带的占据栅格,看是否与栅格地图上的障碍物重叠。若重叠,则碰撞。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第3张图片

4.离散示例

首先初始状态[x,y,θ]在[0 0 0],坐标通常指的是车辆后轴中心的坐标。

比如现在有一个中间状态(脚印footprint)[1.0,2.0,Pi/2],就将车辆轮廓矩形中的所有点通过平移旋转得到该状态下的新的脚印。初始车辆占据格为(0 0)(0 1)(0 2) 

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第4张图片 旋转平移后车辆占据格变为(1 2)(1 3)(1 4),脚印的每一个点都要同步旋转平移,当路径点很密集时同样计算量很大。自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第5张图片

5. Lattice规划器条带

对于Lattice规划器,基于条带(脚印集合占据区域)的方法很适用,条带可以离线计算,然后在线时通过查表进行碰撞检测。

此外,由于我们的信息不完善,在计算swath时使用精确的足迹footprints可能是危险的,因为没有为障碍物的感知误差设置缓冲。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第6张图片

6.基于条带方法的不足点

需要提升计算速度,需要提升对噪声的鲁棒性,用保守的近似来解决这些问题,加速算法的同时也不能牺牲路径的质量。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第7张图片

7.车身的保守近似

保守的近似可能报告一个并不会发生的碰撞,但绝不会漏报一个事实上会发生的碰撞。

比如下图的用三个重叠的圆近似车身就是一种保守近似。三个圆占据的区域比车身实际占据区域要更大。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第8张图片

8.基于圆的碰撞检查

圆的近似是有效的,因为圆的碰撞检测很快,只要计算占据栅格中障碍物点到圆心的距离是否小于半径。小于半径则说明有碰撞产生,否则没有。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第9张图片

9.离散分辨率

碰撞检查的精度被分辨率影响,中间状态点越多,碰撞检查越精确,同时计算量也越大。

自动驾驶轨迹规划中的碰撞检测-Coursera Self-Driving Car课程学习笔记_第10张图片

 总结

学到两种碰撞检测方法

基于条带的碰撞检测Swath based method:求出条带后,然后求出路径上所有状态的条带的占据栅格,看是否与栅格地图上的障碍物重叠。若重叠,则碰撞。

基于圆的碰撞检测方法Circle based method: 将车身用三个重叠圆代替,对于每个状态,可以计算障碍物栅格点到圆心的距离是否大于半径来进行碰撞检测,三个圆的并集需包含车身。

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