< >
Home » ROS2与Matlab入门教程 » ROS2与Matlab入门教程-从Simulink生成CUDA ROS2节点

ROS2与Matlab入门教程-从Simulink生成CUDA ROS2节点

说明:

  • 介绍如何配置Simulink Coder以从Simulink模型生成和构建CUDA ROS2节点

  • 介绍如何配置一个模型来模拟和生成ROS2节点的CUDA代码,然后将CUDA ROS2节点部署到本地或远程设备目标

先决条件:

  • 安装和设置这些 MathWorks® 产品和支持包:Simulink Coder(必需)、Embedded Coder®(推荐)、GPU Coder™ 和 GPU Coder Interface for Deep Learning Libraries(深度学习必需)

  • 还可以为NVIDIA Jetson和NVIDIA DRIVE平台安装MATLAB Coder支持包(NVIDIA 硬件连接所需)

  • 具有支持 CUDA 的 NVIDIA GPU 的开发计算机

  • 目标设备可以是具有支持 CUDA 的 NVIDIA GPU 的本地主机,也可以是远程设备,例如 NVIDIA Jetson 板

  • 使用 GPU Coder 生成 CUDA 代码,必须安装 NVIDIA 图形驱动程序、CUDA 工具包、cuDNN 库和 TensorRT 库

  • 设置环境变量

步骤:

  • 验证您的开发计算机是否具有 GPU 代码生成所需的驱动程序、工具、库和配置

  • 在 MATLAB 命令行窗口中,输入:

gpuEnvObj = coder.gpuEnvConfig;
gpuEnvObj.BasicCodegen = 1;
gpuEnvObj.BasicCodeexec = 1;
gpuEnvObj.DeepLibTarget = "tensorrt";
gpuEnvObj.DeepCodeexec = 1;
gpuEnvObj.DeepCodegen = 1;
results = coder.checkGpuInstall(gpuEnvObj)
  • 输出具有代表性。您的结果可能会有所不同
Compatible GPU           : PASSED 
CUDA Environment         : PASSED 
    Runtime   : PASSED 
    cuFFT     : PASSED 
    cuSOLVER  : PASSED 
    cuBLAS    : PASSED 
cuDNN Environment        : PASSED 
TensorRT Environment     : PASSED 
Basic Code Generation    : PASSED 
Basic Code Execution     : PASSED 
Deep Learning (TensorRT) Code Generation: PASSED 
Deep Learning (TensorRT) Code Execution: PASSED 

results = 

  struct with fields:

                 gpu: 1
                cuda: 1
               cudnn: 1
            tensorrt: 1
        basiccodegen: 1
       basiccodeexec: 1
         deepcodegen: 1
        deepcodeexec: 1
    tensorrtdatatype: 1
           profiling: 0
  • 为仿真和 GPU 代码生成配置 Simulink 模型

  • 配置模型以生成 CUDA ROS 2 节点

  • 打开要为 GPU 代码生成配置的 Simulink 模型

  • 在Simulation选项卡的Prepare部分,展开库,然后在Configuration & Simulation下选择Model Settings

  • 从 Configuration Parameters 对话框的左窗格中,选择Hardware Implementation节点。将硬件板设置为Robot Operating System 2 (ROS 2)并指定硬件的设备供应商和设备类型。展开设备详细信息并验证是否选择了Support long long

请输入图片描述

  • 在Simulation Target节点中,选择GPU 加速。如果您的模型具有深度学习模块,则在Deep Learning下选择适当的Target library

请输入图片描述

  • 选择代码生成节点。在目标选择下,将语言设置为C++,然后选择生成 GPU 代码

请输入图片描述

  • 如果您的模型具有深度学习模块,请展开代码生成节点并选择接口节点。然后,在Deep Learning下为Target library选择适当的值

请输入图片描述

  • 选择GPU Code节点,然后在Libraries下启用cuBLAS、cuSOLVER和cuFFT

请输入图片描述

  • 代码生成和部署,要生成 CUDA ROS 2 节点并将其部署到 ROS 2 设备

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros2与matlab入门教程