学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess万博1manbetx

将MATLAB和Simulink中的算法部署到NVIDIA驱动AGX万博1manbetx

这是第二邮递我们俩的关于MathWorks平台的系列部分s万博1manbetx支持使用NVIDIA的AV开发者驾驶Sim卡和将算法部署到NVIDIA硬件(见第1部分).在这篇文章中,我们将介绍如何将在MATLAB和Simulink中创建的算法部署到NVIDIA万博1manbetx驱动AGX.

万博1manbetxSimulink提供了一个环境,用于集成和运行控制逻辑模拟和车辆动力学和环境模型。这使T他需要对整个系统进行测试Y在设计过程中。然后可以使用GPU编码器和嵌入式编码器部署到现代NVIDIA GPU,包括NVIDIA驱动平台.

为了说明这个工作流,考虑一个公路车道跟驰系统那个引导车辆在标记车道内行驶。系统通常使用视觉处理算法从摄像头检测车道和车辆。控制器使用车道检测、车辆检测和设定速度来控制转向和加速。

可以运行系统级模拟,以查看它是否正确识别道路上的车道标记和车辆。

在视觉检测器子系统内部,输入视频被送入两个并行运行的深度学习网络,以检测左右车道标记和迎面而来的车辆。在显示输出视频之前,预处理和后处理子系统为两个深度学习网络准备输入视频数据,注释车道标记,并在检测到的车辆周围绘制边界框。

使用从测试车辆捕获的视频,可以在主机CPU上运行视觉检测器子系统的模拟,以确保其正确识别车道标记和进入车辆。

在本例中,在CPU上运行模拟时,帧速率会出现波动。开发人员可以切换到桌面NVIDIA GPU以加速模拟。输出结果保持不变,帧率显著提高。

什么时候满意的通过仿真结果,开发者可以从同一Simulink模型中生成英伟达驱动程序的代码,嵌入式编码器生成优化的C/C++代码,在Garm处理器上运行,GPU编码器为CUDA内核生成CUDA内核。万博1manbetx库达马洛克调用),在CPU和GPU内存之间移动数据(使用cudaMemcpyToSymbol调用),并调用CUDA内核,所有这些都在代码中的适当位置。

英伟达编码程序然后调用英伟达工具链编译并下载完整的应用程序在NVIDIA驱动器上。使用Simulink在板上启动应用程序,处理的视频从SDVI视频显示窗口上的英伟达驱动器返回。帧速率不如在桌面GPU上运行模拟那么快,但如果嵌入式GPU资万博1manbetx源更为有限,这是可以预期的。

通过建立该工作流,Simulink模型可以继续调整,并且可以在万博1manbetx几分钟内看到英伟达GPU上运行的变化。仿真使该过程能够更早地发现和修复错误,GPU编码器和嵌入式编码器提供了一个自动化的工作流来运行NVIDIA驱动器上的整个应用程序。

了解更多有关如何使用不同MathWorks平台进行自动驾驶开发的信息,以及其他AV开发者如何在其开发中使用MathWorks平台,登记MATLAB博览会4日th和5th2021年5月。这些活动包括来自其他MathWorks用户的演讲在里面自动驾驶包括:

  • 博世
  • 康明斯
  • 通用汽车
  • 助焊剂汽车
  • 保时捷工程
  • 雷诺日产
  • 争论
  • 采埃孚

技术的介绍来自MathWorks工程师关于自动驾驶,包括:

  • MATLAB中的新功能,万博1manbetx跑路者自动驾驶
  • 自动驾驶传感器融合算法的设计与评价
  • 为自动驾驶测试开发虚拟场景
  • 公路换道运动规划器的研制操纵
|

评论

如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。