学生休息室

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

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

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

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

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

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

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

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

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

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

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

建立此工作流后,可以继续调整Simulink模型,并且可以在几金宝app分钟内看到运行在NVIDIA gpu上的更改。模拟能够在过程的早期发现和修复错误,GPU Coder和嵌入式Coder提供了在NVIDIA DRIVE上运行整个应用程序的自动化工作流程。

了解如何使用不同的MathWorks平台进行自动驾驶开发,以及其他AV开发人员如何在开发过程中使用MathWorks平台,登记MATLAB世博会4日th和5th2021年5月。活动包括其他MathWorks用户的演讲自动驾驶包括:

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

技术演讲来自MathWorks工程师自动驾驶包括:

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

评论

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