学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#studentsuccess金宝app

将MATLAB和Simulink中的算法部署到NVIDIA驱动AGX金宝app

这是第二个帖子我们俩的- - - - - -关于MathWorks平台的部分系列文章年代金宝app支持使用NVIDIA的AV开发者开车Sim卡和将算法部署到NVIDIA硬件请参阅第1部分。).在这篇文章中,我们将介绍如何将在MATLAB和Simulink中创建的算法部署到NVIDIA金宝app驱动AGX

金宝appSimulink提供了一个环境,用于集成和运行控制逻辑模拟和车辆动力学和环境模型。这使t他要测试整个系统,厄尔y在设计过程中。然后可以使用GPU编码器和嵌入式编码器部署到现代NVIDIA GPU,包括NVIDIA驱动平台

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

运行系统级仿真,可以看到它正确识别车道标志和道路上的车辆。

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

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

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

什么时候满意利用仿真结果,开发人员可以从相同的Simulink模型中生成针对NVIDIA DRIVE的代码。金宝app嵌入式编码器生成在ARM处理器上运行的优化的C/ c++代码,而GPU编码器为CUDA核生成CUDA内核。GPU编码器负责在GPU上分配内存(使用库达马洛克调用),在CPU和GPU内存之间移动数据(使用cudaMemcpyToSymbol调用),并调用CUDA内核,所有这些都在代码中的适当位置。

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

建立了这个工作流后,Simulink模型可以继续进行调整,在几金宝app分钟内就可以在NVIDIA gpu上看到这些变化。仿真能够在过程早期发现和修复bug, GPU编码器和嵌入式编码器提供了一个自动化的工作流来运行NVIDIA DRIVE上的整个应用程序。

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

  • 博世
  • 康明斯
  • 通用汽车
  • 通汽车
  • 保时捷工程
  • 雷诺日产
  • TuSimple
  • ZF

技术介绍从MathWorks工程师有关自动驾驶的资料包括:

  • MATLAB的新功能,金宝app走鹃自动驾驶
  • 自动驾驶传感器融合算法的设计与评估
  • 为自动驾驶测试开发虚拟场景
  • 为高速公路变道开发一个运动规划器操纵
|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。