欢迎大家关注我的B站:
偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com)
目录
对于自动驾驶汽车或机器人的路径规划,碰撞检测是其中非常重要的一个模块,因为碰撞检测不仅仍然是路径规划中的主要计算负担,而且还会影响与路径规划安全相关的准确性,这是两个难以平衡的关键指标。同时随着感知技术误差数量级越来越小,对于碰撞检测算法的实时性和准确性要求也就更高了。
下文将详细介绍碰撞检测中的各类算法
安全走廊基本就是自如其名,想要自动驾驶汽车与障碍物不撞,我们就可以把汽车或机器人限制在安全走廊内,这个走廊不与障碍物相交,那么在走廊中的汽车或机器人就是绝对安全的。这将可能出现的非凸问题转化为凸问题,更好解决。
同时这还有几个问题需要思考,如何生成安全走廊,以及安全走廊有什么特点。下面这张图就是生成安全走廊的过程,通过路径点向四个方向去迭代扩展最终找到合适的安全走廊。
其实这个安全走廊的概念最先是在无人机中应用的,无人机广泛应用三维的安全走廊
但安全走廊法显然是保守的,准确性不够,难以应用在高度受限的环境中。
自动驾驶碰撞检测问题可以抽象矩形与凸多边形(障碍物大多为凸多边形)之间是否相交
当对于两个凸边形是否相交,又可以转换为是否凸边形的每个顶点都在另一个凸边形之外,那么判断一个点是否在凸边形之外的计算几何算法就有很多,比如面积比较法等等
当一个点在凸多边形内部,则点与凸多边形某两相邻点组成的所有三角形面积之和为凸多边形的面积,当一个点在凸多边形外部,显然面积和大于凸多边形的面积
这种方法是游戏中或物理引擎中常用的,AABB是指一个东西的包围盒,但是它横平竖直的,而OBB是会随着这个东西而旋转,包围盒始终不变,显然AABB相对保守但是后续计算简单,OBB更精确但是后续计算复杂
?
同时,通过将车辆近似于AABB或OBB后,还需要应用分离轴定理进行碰撞检测,分离轴定理的意思就是,对于两个凸多边形,若存在一条直线将两者分开,则这两个多边形不相交
但是遍历所有的直线显然是不可行,因此经过分析,可以得出:受益于多边形的性质,对于两个都是多边形的物体,只需要依次在每条边的垂直线做投影即可