假设最近我买了个turtlebot机器人来学ROS,就着这玩意儿:
机器人已经带了Autonomous Navigation
相关的代码,按着教程过了一遍感觉不过瘾————因为自己也不懂什么自动驾驶相关背景知识,过了也都是没印象。有没有什么简单的小demo,用来先熟悉一下ROS下的机器人开发,而不涉及具体感知\决策\控制相关的知识呢?那就来添加下一些ADAS功能吧,比如说变道辅助,碰撞预警。
调查
动手前,先调查一下这些功能在市面上乘用车是怎么做的。
变道辅助
盲点监测系统又叫并线辅助系统,英文简称BSM或者BLIS,是汽车上的一款安全类的高科技配置,主要功能是扫除后视镜盲区,通过微波雷达探测车辆两侧的后视镜盲区中的超车车辆,对驾驶者以提醒,从而避免在变道过程中由于后视镜盲区而发生事故。
### BLIS
沃尔沃的并线辅助叫盲点信息系统,简称BLIS。位于外后视镜根部的摄像头会对距离3米宽,9.5米长的一个扇形盲区进行25帧/秒的图像监控,如果有速度大于10公里/小时,且与车辆本身速度差在20-70公里/小时之间的移动物体(车辆或者行人)进入该盲区,系统对比每帧图像,当系统认为目标进一步接近时,A柱上的警示灯就会亮起,防止出现事故。如图4所示为并线时装有并线辅助汽车的工作状态。
### 侧向辅助系统
奥迪的并线辅助叫侧向辅助系统(Audi Side Assist),这套系统会在车速超过60公里/小时介入,依靠传感器的帮助,奥迪侧向辅助系统可以探测到侧后方最远50米处的车辆,若此时并线有潜在危险,后视镜上就会亮起警示灯。如果驾驶者在警示灯亮了之后仍打转向灯,警示灯会增加亮度并开始闪烁。在城市行驶时,这套系统确实很有帮助,能够提醒你注意后方的车辆以免发生危险,对于新手的行车安全尤其有帮助。
以上来自网络随手复制。看下来,沃尔沃是基于摄像头的实现,奥迪是基于雷达的实现。
奥迪实现大致如下描述: https://inews.gtimg.com/newsapp_bt/0/2198508980/641?tp=webp
碰撞预警
设计
做设计前,首先要明确,我们在turtlebot硬件上,所能依赖的传感器只有激光雷达。
对比上述乘用车ADAS实现所用的毫米波雷达,激光雷达的方案有下述技术优缺点:
优点:
- 信息量大:高精度、高分辨率,3D感知,覆盖更广。
缺点:
- 识别消耗的计算资源大
- 采样率(识别)低
另外还要注意的是,我们用turtlebot,算法检测行人,所获得的数据,主要是速度和航向,比起体积大/速度快的乘用车目标,误差要大的多。
变道辅助
碰撞预警
实现
改进
行人检测干扰
实际的使用中,我发现行人在算法上,会偶尔出现幅度1m/s的干扰,导致误触警报。
当然,这样会导致一个时延,有可能影响到实际使用。