利用MATLABSimulink在自动加速路上做了两件大事

作者:皇冠app 发布时间:2021-02-17 17:24

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


皇冠app
© 2013 北京格林吉能源科技有限公司.版权所有