0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于MATLAB 的自动驾驶之路分析和介绍

MATLAB 来源:djl 2019-09-12 16:00 次阅读

自动驾驶是目前比较热门的话题,包含的技术领域五花八门,例如:雷达、摄像头、汽车电控、激光雷达、物体识别、高精度地图、导航技术等等。小编特邀 MathWorks 行业技术专家来聊一聊 MathWorks 这几年的自动驾驶之路,分享最新的技术投入和应用亮点。

MathWorks 对自动驾驶技术的投入可以总结为以下几个阶段:

关于MATLAB 的自动驾驶之路分析和介绍

2015:SCANIA AEB 系统

2015 年,瑞典著名的重卡生产商 SCANIA 发布了用 MATLAB/Simulink 设计的 AEB(自动紧急刹车)系统,看动画:

在这个案例中,SCANIA 利用 MATLAB/Simulink 做了两件大事:

一是设计了数据融合(Sensor Fusion)系统。AEB 把摄像头和雷达采集的数据进行整合,同时使用车辆前部安装的雷达和摄像头来扫描前方区域的物体。系统利用每个传感器的独特优势获取更精确的环境模型。

雷达的优势在于确定物体的距离、相对速度,但在确定物体的形状或横向位置方面较弱。摄像头主要优势在于辨识物体类别,主要缺点在于在黑暗环境下难以工作,以及对速度估计不准确。SCANIA 构建了一个传感器融合系统,可将两个传感器中的数据进行匹配合并。传感器融合系统一旦在主道上发现物体,会将该物体的位置和预计路径传递给 AEB,AEB 将确定何时警告驾驶员或采取制动措施。

二是设计了整个回放测试系统。SCANIA 的车队在超过 150 万公里的驾驶里程中,所记录的实际交通数据超过了 80TB。这 150 万公里的实测数据,为每次更新发布的新功能提供了海量测试场景和数据。

为了进一步提高仿真运行速度,研发团队编写了 MATLAB 脚本,在服务器集群进行多核并行计算和仿真,最多同时可以运行300个仿真实例。通过这一方法,将仿真 150 万公里交通数据的时间减少到 12 小时。在仿真中发现值得关注的新场景时,会在 Simulink 中重新运行仿真并进行深度分析。

2016:传感器融合示例

坦率地讲,SCANIA 的这个案例激发了 MathWorks 的开发灵感。2016 年在波士顿的年度大会上,来自美国底特律的应用工程师展示了他用 MATLAB 脚本开发的一个前车碰撞预警(FCW)的演示案例。这个演示案例就是后来 ADST(自动驾驶工具箱)的原型。这个原型中包含的 2 个关键点:可视化、数据融合,都成了 ADST 的产品亮点。

关于MATLAB 的自动驾驶之路分析和介绍

还有一家公司——德国大陆集团(Continental)——用 MATLAB 也是炉火纯青。MATLAB 既然是好工具,我就用工具来代替大量人工重复劳动。2014 年,Continental 在研发一款自动驾驶摄像头的时候,使用 MATLAB 来自动化标注物体和道路标志,这些自动化的方法显著地提高了摄像头的机器学习效率。这一灵感也最终由 MathWorks 工程师实现在 ADST 的功能中:GroundTruth Labelling (真值标定)。

关于MATLAB 的自动驾驶之路分析和介绍

R2017a:ADST - 自动驾驶系统工具箱

2017 年 3 月,MathWorks 在 MATLAB R2017a 发布了 ADST(自动驾驶系统工具箱),包括 3 个核心功能点:

可视化

数据融合

真值标定

行业技术专家强调:可视化是数据分析的第一步。

大家先一起看看汽车雷达和摄像头的数据长什么样。以雷达为例:下面两个数据表格显示了在什么时间戳,有多少个识别物体,物体的方位、速度等数据信息

关于MATLAB 的自动驾驶之路分析和介绍

让我们看一段 MATLAB 处理数据并实现可视化的动画:

关于MATLAB 的自动驾驶之路分析和介绍

关于MATLAB 的自动驾驶之路分析和介绍

通过 MATLAB 自带的 API 和函数,用户可以比较容易地将雷达和摄像头的传感器数据,进行人眼可视化。上图左边是原始的摄像头画面,右边蓝色的三角代表摄像头识别的目标,红颜色代表雷达识别的目标。通过可视化,人眼可以看到雷达和摄像头的信号有一定的偏差,那么自然就会问另外一个问题,车载电子设备到底以哪个为准呢?这就自然引入 ADST 的另外一个功能 – Sensor Fusion(传感器融合)。

理解传感器融合有几个关键词:多目标追踪(Multi-ObjectTracking),卡尔曼滤波器(KalmanFilter)和代价矩阵(CostMatrix)。

关于MATLAB 的自动驾驶之路分析和介绍

上图简单介绍了一个传感器融合的过程——从传感器的捕获(detection)到最终被确认为追踪物体(track):

物体被传感器(视觉、雷达等)捕获,形成 detection

Track manager 先为该detection分配一个 track

Tracking filter 通过卡尔曼滤波器不断估计 detection 的 track

Track manger 通过代价矩阵将 detection 分配更新到 track

目标 detection 消失后,track 被删除

MATLAB 自带的多目标追踪,可以追踪最多 120 个运动中的目标。每个目标的最终的 track 可能既不是雷达的位置,也不是视觉的位置,而是最终 track 算出来的位置。下图展示了代价矩阵的示意图,将 detection 分配到 track 的过程用到了 Hungarian Assignment Algorithm。

关于MATLAB 的自动驾驶之路分析和介绍

MATLAB 自带了前向碰撞告警(FCW)例子可以帮助用户理解传感器融合的使用。

关于MATLAB 的自动驾驶之路分析和介绍

上图为 FCW 的数据融合处理流程,基本的逻辑是将雷达杂波信号滤除后,进行多目标的追踪和更新,在识别到最关键目标(Most Important Object)后,根据前向距离进行刹车告警。

让我们看看该样例的运行动画:

关于MATLAB 的自动驾驶之路分析和介绍

蓝色三角形的视觉识别目标和红色圆形的雷达识别目标,在消除了雷达杂波(大部分为只有红色圆型的目标,以及在其他车道的目标)后,通过数据融合形成目标追踪。看到的灰色方框即为运动物体的追踪。

上图左边的视频录像是一个实际路况的采集视频,样例还提供了相应的视觉和雷达的object list。有人会问:在数据融合设计早期的时候,我只有一个 idea,还没有具体的 object list ,那如何才能验证我的算法呢?MATLAB 还提供了另外一个 Sensor Fusion 的样例,看动图:

关于MATLAB 的自动驾驶之路分析和介绍

这个样例和上面有实际环境的样例有几点不同:

车辆和道路都是可以像搭积木一样,通过 MATLAB 脚本快速搭建测试场景

在这个模拟环境中可以模拟雷达(radarDetectionGenerator)和视觉(visionDetectionGenerator)的传感器。

好处不言而喻:快速验证idea。

随着自动驾驶工具箱发布的,还有一个广受欢迎的功能——真值标定(ground truth labelling)。

首先给出定义:在机器学习中 ground truth 表示有监督学习的训练集的分类准确性,用于证明或者推翻某个假设。很多视觉识别算法是用的机器学习。机器学习的认知基础就是真值。真值标定的功能有两点:

采用大量真值来训练机器学习算法

利用真值来检验现有的识别算法

真值标定的输入一般是视频文件。真值标定既可以手动一帧一帧地标定,也可以半自动化标定后再手工修正,最终可以将结果保存成真值数据库。让我们看一段半自动标定的动画:

关于MATLAB 的自动驾驶之路分析和介绍

最终标定出来的真值数据如下图所示:就像电影的字幕类似,几分几秒,在画面的什么方位,是什么物体:

关于MATLAB 的自动驾驶之路分析和介绍

ADST 在发布后,受到汽车电控工程师和自动驾驶研发人员的广泛使用。MathWorks 工程师在和他们交流后发现,他们有一个共同的兴趣点:ADST 的功能大部分集中于前端(可视化、真值标定、传感器融合),有没有将前端的识别和融合结果和后端的汽车电控结合起来的案例?其实这也反映了市场热点从 ADAS(高级驾驶辅助系统)向 AD(自动驾驶)过渡。ADAS 侧重于告警,而 AD 侧重于控制。

R2017b:闭环控制示例

随着MATLAB R2017b的发布,MathWorks推出了一个自适应巡航(ACC)的案例,包括:

Simulink 模型:包含传感器融合、传感器模型、可视化、控制器模型、车辆模型、模拟道路场景和环境模型

控制器引入了两种参考设计:PID 和 MPC(Model Predictive Control)

代码自动生成

关于MATLAB 的自动驾驶之路分析和介绍

让我们看一下运行的动画:由于紫车车辆强行并线到蓝色车辆(被控车辆),在 ACC 的作用下蓝色车辆的速度下降直到紫色车辆离开本车道。

关于MATLAB 的自动驾驶之路分析和介绍

这里用到的速度控制是经典的 PID 控制。众所周知,PID 的好处是简单、易懂、占用资源少,但是在自动驾驶的复杂环境下,想要对车辆进行精准控制,可以考虑更加复杂的先进控制方法,比如 MPC(ModelPredictive Control)。从另外一个角度来看,MPC 过去没有流行的原因之一就是受限于硬件资源和成本。目前,在自动驾驶技术和需求的推动下,汽车控制器必须变得越来越强大,使得 MPC 变得可能。下图给出了在 ACC 的环境下,使用 PID 和 MPC 的对比:MPC 比 PID 控制的更加精准、快速。

关于MATLAB 的自动驾驶之路分析和介绍

有了 ACC 这个例子,用户可以在 MATLAB/Simulink 统一平台下做如下事情:传感器融合、传感器模型、可视化、控制器设计和代码生成、车辆模型、模拟道路场景和环境模型。但在实践中发现,用户对模拟道路场景和环境模型要求其实很高:

MATLAB 虽然可以创建道路场景,但是必须用脚本编程,比较麻烦。

更希望看到虚拟现实场景。

R2018a:unreal 集成

2018 年 3 月,针对第一点,MATLAB R2018a 推出了 Driving Scenario Designer的 App,直接可以画道路、车辆和简单传感器模型:

关于MATLAB 的自动驾驶之路分析和介绍

针对第二点需求,MATLAB R2018a 推出的 Vehicle Dynamics Blockset 可以和 unreal 游戏引擎集成,并自带了一个免费版的 unreal。当然 Vehicle Dynamics Blockset 主要功能是提供了车辆横向动力学的模块,免费版 unreal 只是用于 3D 显示。相信对于自动驾驶控制器设计人员,在设计例如 ACC(自适应巡航),LKA(自动车道保持)等自动驾驶功能时候,Vehicle Dynamics Blockset 一定能发挥强大的作用。

让我们再回头看看 MATLAB的自动驾驶之路:从用户案例中的启发,到推出自动驾驶工具箱;通过和用户的沟通逐步加入的车辆控制部分和 unreal 集成。

当然,自动驾驶永远在路上,MATLAB/Simulink 也在激光雷达点云处理、驾驶路径规划和跟随等方面持续推出更多的功能和应用案例,例如:

实时车辆数据融合和显示。通过和用户的深入交流,技术专家了解到用户的兴趣点多集中于:车辆上安装了摄像头和雷达后,在实时运行的同时,如何实现数据融合并显示结果?

MathWorks工程师通过 Automated Driving System Toolbox、Vehicle Network Toolbox、Instrument Control Toolbox、MATLAB Coder、Embedded Coder 等工具箱,已经实现在车辆上做实时驾驶的数据融合和数据显示:

关于MATLAB 的自动驾驶之路分析和介绍

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2526

    文章

    48108

    浏览量

    740108
  • 可视化
    +关注

    关注

    1

    文章

    1021

    浏览量

    20556
  • 自动驾驶
    +关注

    关注

    773

    文章

    13046

    浏览量

    163226
收藏 人收藏

    评论

    相关推荐

    未来已来,多传感器融合感知是自动驾驶破局的关键

    的Robotaxi运营。这标志着L4级自动驾驶迎来了新的里程碑,朝着商业化落地迈进了一大步。中国的车企也不甘落后:4月7日,广汽埃安与滴滴自动驾驶宣布合资公司——广州安滴科技有限公司获批工商执照。广汽埃安
    发表于 04-11 10:26

    LabVIEW开发自动驾驶的双目测距系统

    精确的距离信息,从而提高车辆的主动安全性能。这一系统的开发和应用有望在自动驾驶领域取得更多突破性进展。 ​ 这是LabVIEW的一个功能介绍,更多的使用方法与开发案例,欢迎登录官网,了解更多信息。有需要LabVIEW项目合作开发,请与我们联系。
    发表于 12-19 18:02

    自动驾驶“十问十答”

    说起自动驾驶, 大家现在已经不陌生, 但是关于自动驾驶你又了解多少呢? 今天小编总结了关于自动驾驶的 “十问十答” , 带你了解更多
    的头像 发表于 11-29 07:40 295次阅读
    <b class='flag-5'>自动驾驶</b>“十问十答”

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    是一种模型,旨在同时执行自动驾驶场景中的不同任务,同时实现优异的性能和效率。这些任务包括对象检测、分割、车道检测、可行驶区域分割和深度估算,这些都是自动驾驶感知模块的重要组成部分。 三、代码实现
    发表于 09-26 16:43

    自动驾驶举步维艰的求真之路

    止步,一代又一代汽车工程师的努力,都只为了一个目的,那就是“解放人类双手”。而到了百年之后的2023年,自动驾驶似乎离我们依旧还有很远,自动驾驶的破局之路依旧遥遥无期。 在追寻真理的路上,必将困难重重,而追求真理的过
    的头像 发表于 07-31 15:49 611次阅读
    <b class='flag-5'>自动驾驶</b>举步维艰的求真<b class='flag-5'>之路</b>

    MATLAB自动驾驶工具箱使用

    1. 打开工具箱 MATLAB R2017a及以后的版本才有自动驾驶工具箱。 在MATLAB的APPS中选择AUTOMOTIVE下面的Driving Scenario Designer 也可以命令行
    发表于 06-07 11:40 1次下载
    <b class='flag-5'>MATLAB</b><b class='flag-5'>自动驾驶</b>工具箱使用

    案例研究:什么是自动驾驶

    自动驾驶,是一个根植于人类内心深处的梦想。随着科技的发展,近年来,自动驾驶已逐步成为现实。纵使如此,它仍然面临不小的挑战。本文结合案例对自动驾驶展开了梳理分析,一起来看看~ 摘要: 手
    发表于 06-06 11:46 1次下载
    案例研究:什么是<b class='flag-5'>自动驾驶</b>

    初识自动驾驶系统

    推进。因此可以预见,未来自动驾驶方向将会吸引更多的企业和人才加入。本篇文章对于自动驾驶及相关技术进行初步介绍,适用于入门或科普。 自动驾驶(auto pilot)是指车辆能够依据自身设
    发表于 06-06 11:21 0次下载
    初识<b class='flag-5'>自动驾驶</b>系统

    从零开启自动驾驶工程师之路(一)

    序言:伴随着电动汽车行业崛起的还有各家公司对自动驾驶人才的渴求,可以说这类岗位目前还是一片蓝海,对人才 求贤若渴。但实际上市场上这类人才又屈指可数,因此写作这一系列文章,一来是为入门者推荐正规质优
    发表于 06-06 10:58 0次下载
    从零开启<b class='flag-5'>自动驾驶</b>工程师<b class='flag-5'>之路</b>(一)

    MATLAB自动驾驶(1)预构建场景库

    驾驶场景设计器应用提供了一个预构建的场景库,其中包括了常见的一些自动驾驶测试场景,减少了测试开发的时间。文章来源为MATLAB例程, 个人学习而已。 打开步骤: 第一步:在 MATLAB
    发表于 06-06 10:31 0次下载
    <b class='flag-5'>MATLAB</b><b class='flag-5'>自动驾驶</b>(1)预构建场景库

    自动驾驶中的机器学习

    自动驾驶技术中的应用。 为了让读者更好地理解自动驾驶中的机器学习算法,本文会首先介绍有关该设备和自动驾驶技术的运行原理,然后介绍机器学习
    发表于 06-06 10:06 0次下载
    <b class='flag-5'>自动驾驶</b>中的机器学习

    自动驾驶介绍、应用、前景

    自动驾驶介绍、应用、前景
    发表于 06-02 16:17 0次下载
    <b class='flag-5'>自动驾驶</b><b class='flag-5'>介绍</b>、应用、前景

    Matlab自动驾驶工具箱使用简介

    一、自动驾驶工具箱 三个依次是 驾驶场景和传感器模块库 车辆控制模块库 3D仿真模块库 二、自动驾驶模块 自动驾驶模块位于模型预测控制工具箱中的自动
    发表于 06-02 14:19 0次下载
    <b class='flag-5'>Matlab</b><b class='flag-5'>自动驾驶</b>工具箱使用简介

    自动驾驶算法软件架构介绍

    自动驾驶技术是一个庞大的工程体系,软件架构、功能算法、控制规划、感知识别、建图定位、电气架构、车载控制器、验证 体系等等,有太多的角度可以去切入。对于自动驾驶功能与算法开发,自动驾驶功能的分级
    发表于 06-01 14:41 1次下载
    <b class='flag-5'>自动驾驶</b>算法软件架构<b class='flag-5'>介绍</b>

    00021 阿克曼ROS自动驾驶小车,让自动驾驶触手可及! #自动驾驶 #机器人 #编程

    自动驾驶
    学习电子知识
    发布于 :2023年05月22日 19:42:03