0.前提
在自动驾驶领域有许多关于驾驶安全的措施AEB和TTC就是为了驾驶安全而设计出来的。在这篇文章中我会讲解我对AEB和TTC算法的一些理解。本期ROS学习笔记同时也是ros竞速小车的学习笔记,我会将我的部分代码拿出来进行讲解,让大家更好的理解ttc和aeb。
1.AEB
AEB全称Automatic Emergency Braking(自动紧急制动)。
自动驾驶时代的AEB(主动刹车)系统 - 知乎 (zhihu.com)
1.作用
防止车辆发生碰撞,也就是在你撞到物体之前把车停下来。
全网唯一!华为、特斯拉、理想、蔚来、小鹏……14车同场比拼,关键时刻谁能保命?智驾大横评之AEB篇_哔哩哔哩_bilibili
有一个有意思的问题AEB 系统是什么类型的模型?是回归?深度网络?还是更简单的模型?
答案:二分类。
2.1 二分类(Binary Classification)-CSDN博客
在下方表格中哪个最让人讨厌?
我相信肯定是假好人对吧?换在自动驾驶上也是一样的道理,如果正常行驶的时候系统向你提供了一个假的积极反馈,那极有可能发生已成意外事故,这是需要我们极力去避免的。(这里的积极反馈我定义为无异常情况,消极反馈为异常情况,但在我查阅的资料中定义刚好为系统是否正常运行,此时情况刚好相反。)在本节AEB开头的视频中对各厂家的测试就是在检测各厂商AEB的假好人情况。在未来的文章中会讲解AEB的更多使用方法。
2.AEB触发机制
AEB的触发是与TTC进行关联的其实也就是车辆与物体的相对速度/减速度*反应时间(通常设定为0.25s)<= TTC时触发AEB
2.TTC
TTC测距碰撞算法 - 知乎 (zhihu.com)
TTC更多时候是辅助AEB系统的运行,及计算安全距离。在讲解我的TTC计算前我们得先知道ROS的激光雷达的是如何使用的。
这里:我给出了ros当中的雷达消息类型
在这张图中我们可较为清楚的知道一些消息指代的是什么。(注意这里angle_min的起始位置,因为小面讲解公式的时候会使用到。)
其实这里归结起来就是TTC=车与物体间的相对距离/车辆与物体间的相对速度。那好了为啥车辆与物体间的速度要乘以cos?还要有负号?
ok,根据上图左右不同的图像我来解释一下,雷达会检测到一个物体,物体与车辆间会出现一个角度,这个角度就是,但根据前面讲的雷达消息类型的angle_min可知S轴的负半轴为雷达监测起始位置以逆时针进行检测,但车辆是向前行驶,速度与物体间的夹角刚好为的互补角所以-cos出现,那检测最大是为什么?其实在我理解当中当障碍物出现在车辆后方的时候AEB是不运行的所以取0和相对速度最大值的作用就是消除后方AEB的效果。(注意激光雷达的检测角度增量不是以int整型数据来计算的,这样会出现死区)。
3.总结
最后附上我的不完美代码,因为我不是很能理解在速度计算上为什么只取了一个速度轴,也是因为我很久以前做过一个比较完美的代码不见了,我现在复现不出来了。(注意这里是为了我方便查找我的代码,所以不对外开放下载)
百度网盘 请输入提取码