ADAS —— 高级驾驶员辅助系统,包含一系列硬件和软件组件,自动起到驾驶员的多项作用。目前,常见的车辆 ADAS 功能包括自适应巡航控制、盲点检测、变道检测、自动车道跟随和自动紧急制动。
本文将涵盖三个内容:为什么 ADAS 如此重要?ADAS 功能是如何设计的?如何使用 MATLAB 与 Simulink 助力 ADAS 开发?
为什么 ADAS 如此重要?
ADAS 可通过最大限度降低人为错误来提高道路交通安全性。一些 ADAS 系统会在出现不安全的路况时(例如驾驶员盲点处出现一辆车,导致变道可能发生危险时)发出警示,从而强制驾驶员执行安全驾驶习惯。还有一些 ADAS 系统实现了驾驶行为的自动化,如通过自主紧急制动避免碰撞。
事实上,根据波士顿咨询公司的一项研究,在美国,ADAS 可预防 28% 的车祸,每年避免 9900 起死亡。
ADAS 级别
根据国际自动机工程师学会的定义,驾驶自动化有五个级别。现在路上能看到的大部分汽车的 ADAS 功能介于 0 到 3 级之间。身处自动驾驶行业前沿的公司则在努力实现 4 级和 5 级自动驾驶。
SAE J3016™ 自动驾驶等级
随着安全性、网络安全和政策问题的解决,全自动驾驶汽车可能会成为现实。
ADAS 功能是如何设计的?
下面我们以自适应巡航控制为例说明 ADAS 功能的设计过程。使用此 ADAS 功能时,汽车在接近前方车辆时会减速;如果前方车辆移至安全距离之外,汽车会加速到巡航速度。
自适应巡航控制 (ACC) 设计工作的第一步是从汽车上安装的传感器采集数据。自适应巡航控制需要用到相机和雷达传感器。相机用于检测视线范围内的其他目标(车辆、行人、树木等),雷达则用于计算我方汽车与这些目标之间的距离。
从传感器采集数据后,我们把重点转向 ADAS 算法开发。自适应巡航控制可分为 3 步:
步骤 1、2、3 分别与以下内容对应:
检测前方是否有车辆的感知算法计算与前车之间距离的雷达算法根据测定距离调整汽车速度的控制算法。
我们在此以 ACC 为例解释 ADAS,不过选择传感器、然后根据传感器数据设计算法是一种通用方法,适用于所有 ADAS 功能。
传感器的重要性
ADAS 功能中最常用的三种传感器类型是相机、雷达以及激光雷达。
相机
相机适合用于与检测相关的 ADAS 任务。车辆侧边的相机可用于检测盲点。位于前方的相机可检测车道、其他车辆、路标、行人以及骑车人。相关 ADAS 检测算法一般使用传统计算机视觉和深度学习算法进行构建。相机的优势有:
可提供极佳的目标检测数据成本相对较低 - 对于制造商而言,价格低意味着可以更低成本测试多种类型的相机选择颇多 - 开发人员可对鱼眼、单目和针孔等类型的相机进行测试并从中选择具备充分研究 - 相机是三类传感器中历史最悠久的,也得到了最充分的研究。
与其他传感器类型的数据相比,相机数据的缺点是不太适合用于检测与目标之间的距离。因此,ADAS 开发人员通常会将相机与雷达搭配使用。
雷达
雷达传感器会发射高频波,并记录波从环境中的目标上反射回来的时间。这种数据可用于计算与目标之间的距离。ADAS 中的雷达传感器通常安装于车辆前部。
雷达可在不同的天气条件下工作,这使其成为实现自动紧急制动和自适应巡航控制等 ADAS 功能时非常实用的传感器选项。
雷达传感器数据非常适合距离检测算法,但并不太适合对检测到的目标进行分类的算法。因此,ADAS 开发人员通常将雷达与相机搭配使用。
激光雷达
激光雷达(光学检测和距离测定)传感器向环境发射激光并记录信号返回的时间。返回的信号将被重构以创建显示激光雷达周遭环境的三维点云。激光雷达数据可用于计算传感器与三维点云中目标之间的距离。
ADAS 应用中会用到两种类型的激光雷达传感器:
机械(旋转)激光雷达 - 机械激光雷达安装在车辆顶部,它会在采集数据同时旋转以生成环境的三维点云地图。固态激光雷达 - 这是一种比较新型的激光雷达,没有移动部件。长远来看,固态激光雷达的速度、成本以及准确性都有望优于机械激光雷达。然而,商用传感器的设计面临安全性和检测范围方面的工程问题。
激光雷达数据可用于实现 ADAS 中的距离检测和目标分类功能。不过,与相机数据和雷达数据相比,激光雷达数据的处理需要更强的计算能力,这也给 ADAS 算法开发人员带来一些挑战。
使用仿真开发 ADAS 算法
在硬件上进行测试成本高昂,所以工程师们会先使用虚拟仿真技术来测试其 ADAS 解决方案。仿真环境既可以是二维的,也可以是三维的。
二维仿真可用于相机与雷达的 ADAS 算法的开发和测试。我们首先创建包含道路、行人、骑车人和其他车辆的虚拟场景。然后将我们的车辆放入场景,并将虚拟的相机和雷达传感器装载在车辆上。接下来就可以对汽车的运动进行编程,从而生成虚拟传感器数据以进行 ADAS 算法的开发和测试。
三维仿真建立在二维仿真的基础上,不仅支持测试相机和雷达,还可测试激光雷达。三维环境的复杂度相对较高,所以需要更强的算力。
在仿真环境中完成 ADAS 算法的开发工作后,下一个阶段是硬件在环 (HIL) 测试。该阶段需要将真实汽车硬件(如真实制动系统)连接到仿真环境,以对 ADAS 算法进行测试。HIL 测试能够让我们对车辆的 ADAS 组件在现实世界中的运作情况有很好的了解。
除此以外,还有驾驶员在环等其他 ADAS 测试,而车载测试则是最终的测试,该阶段将考察所有部件组合在一起时车辆的性能表现。这是成本最高的 ADAS 测试,但同时也是结果最准确的测试,它是车辆投产前必不可少的环节。
借助 MATLAB 与 Simulink 构建 ADAS 功能
MATLAB® 与 Simulink® 可在 ADAS 开发工作流的各个阶段提供支持:
分析数据合成驾驶场景设计 ADAS 规划与控制算法设计感知算法部署算法集成和测试
分析数据
MATLAB 让您可以在 ADAS 开发过程中访问、可视化以及标注实时或记录的驾驶数据。MATLAB 还支持来自 HERE HD Live Maps、OpenStreetMap 和 Zenrin Japan Maps 的地理地图数据。这些数据经常用于 ADAS 算法开发与验证工作。
真值标注器用于在视频、图像序列或激光雷达点云中以交互方式标注真值数据
合成驾驶场景
MATLAB 支持您在虚拟场景中开发和测试 ADAS 算法,针对控制、传感器融合及运动规划算法可使用立方体模拟环境,针对感知算法则可使用虚幻引擎环境。您还可使用 RoadRunner 来设计逼真的三维场景。
驾驶场景设计器可用于 ADAS 应用中的场景设计、传感器配置以及合成数据生成
设计 ADAS 规划与控制算法
MATLAB 提供许多自动驾驶参考应用,可作为自行设计 ADAS 规划和控制算法的起点。
在鸟瞰图中直观显示高速公路驾驶场景中各条可能轨迹的评估
设计感知算法
MATLAB 提供了使用相机、雷达和激光雷达数据开发感知算法的工具。您可使用计算机视觉、深度学习、雷达与激光雷达处理以及传感器融合等进行算法开发。
借助 MATLAB 使用预训练的 R-CNN 检测停车标志
部署 ADAS 算法
MATLAB Coder™、Embedded Coder® 和 GPU Coder™ 等工具箱可帮助您自动生成代码,并将 ADAS 算法部署到嵌入式设备和面向服务的架构中(如 ROS 和 AUTOSAR)。
一块 NVIDIA Jetson TX2 开发板 可使用 GPU Coder 为其生成 CUDA 代码
集成和测试
您可借助 Simulink 工具来集成并测试感知、规划和控制系统。使用 Requirements Toolbox™,您可以捕获和管理 ADAS 需求。您也可以使用 Simulink Test™ 以并行方式运行测试用例,并实现测试工作的自动化。
高速公路车道跟随参考应用需求测试
活动推荐:
华车展ICVS将于2022.9.26-29 苏州国际博览中心举办中国智能汽车及自动驾驶博览会,同期举办:中国智能汽车产业链展,展会规模超30,000㎡、参展品牌500+、共计30,000+专业观众到场,同期还有100场行业大咖演讲。点击ICVS自动驾驶商业化主页—>进入菜单栏展会报名页面,即可免费领取参观门票,现阶段报名还将获取更多福利。