学生休息室

分享技术和现实生活的例子,学生如何在他们的日常项目中使用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驱动平台

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

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

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

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

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

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

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

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

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

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

技术演讲从MathWorks工程师关于自动驾驶包括:

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

コメント

コメントを残すには,ここをクリックしてMathWorksアカウントにサインインするか新しいMathWorksアカウントを作成します。