赛车休息室

学生竞赛的最佳实践和团队合作

从MATLAB和Simulink部署算法到NVIDIA DRIVE AGX金宝app

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

金宝appSimulink提供了一个环境来集成和运行控制逻辑与车辆动力学和环境模型的仿真。这使t他将整个系统进行测试y在设计过程中。GPU编码器和嵌入式编码器可以用于部署到现代的NVIDIA图形处理器,包括NVIDIA驱动平台

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

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

在视觉检测子系统内部,输入的视频被馈给并行运行的两个深度学习网络,以检测左、右车道标志和迎面车。预处理和后处理子系统为两个深度学习网络准备输入的视频数据,对车道标记进行标注,并在被检测车辆周围绘制边界框,然后显示输出视频。

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

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

满意根据仿真结果,开发人员可以从相同的Simulink模型生成针对NVIDIA DRIVE的代码。金宝appEmbedded Coder生成优化的C/ c++代码运行在ARM处理器上,而GPU Coder生成CUDA内核为CUDA核心。GPU编码器负责在GPU上分配内存(使用cudaMalloc),在CPU和GPU内存之间移动数据(使用cudaMemcpyToSymbol调用),以及调用CUDA内核,所有这些都在代码的适当位置。

然后,GPU Coder调用NVIDIA工具链来编译和下载NVIDIA DRIVE上的完整应用程序。使用Simu金宝applink在板上启动应用程序,处理后的视频从NVIDIA DRIVE在SDL视频显示窗口中返回。帧率不像在桌面GPU上运行模拟那样快,但考虑到更多资源受限的嵌入式GPU,这是意料之中的。

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

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

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

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

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

评论

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