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 设备
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号