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

ROS2与Matlab入门教程-从Simulink生成独立的ROS2节点

说明:

  • 介绍如何从Simulink模型生成和构建独立的ROS2节点

先决条件:

步骤:

  • 配置代码生成模型

  • 配置模型以为独立的 ROS 2 节点生成 C++ 代码。该模型是在 ROS 2 上启用 ROS 的机器人的反馈控制示例中引入的比例控制器

  • 打开为 ROS 2 配置的机器人反馈控制模型 open_system("robotControllerROS2")。或者,调用

  • 在ROS选项卡下,在Prepare中,单击Hardware settings。在Hardware implementation窗格中,Hardware board settings部分包含特定于生成的 ROS 2 包的设置,例如要包含在 package.xml文件中的信息。将维护者名称更改为ROS 2 Example User

  • 该模型需要可变大小的数组。要启用此选项,请检查Code Generation > Interface > Software environment下的 variable-size signals

  • 在Solver窗格中,确保 Solver Type设置为Fixed-step,并将Fixed-step size设置为0.05。在生成的代码中,Fixed-step size 定义了用于模型更新循环的实际时间步长(以秒为单位)(请参阅Execution of Code Generated from a Model (Simulink Coder))。它可以做得更小(例如,0.001 或 0.0001),但对于目前的目的,0.05 就足够了

  • 将外部 ROS 包指定为依赖项:要将外部 ROS 2 包指定为生成的 ROS 2 节点的依赖项,请指定适当的工具链选项。在 Configuration parameters 中,在Code Generation > Toolchain Settings下,从下拉菜单中将Build configuration指定为Specify 。然后,您可以根据您希望与生成的 ROS 2 节点集成的外部 ROS 2 包指定所需的包、包含目录、链接库、库路径和定义

  • 单击确定

  • 生成 C++ ROS 2 节点

  • 在此任务中,您为独立的 ROS 2 节点生成代码,并自动构建并在主机上运行它

  • 在MATLAB中,将当前文件夹更改为您具有写入权限的位置

  • 在Simulation选项卡下的Prepare中,选择ROS Toolbox > ROS Network

  • 设置 ROS 2 网络的域 ID (ROS 2)。此示例使用域 ID 作为 25

  • 如果要部署到本地设备,请将环境变量设置ROS_DOMAIN_ID为值 25,setenv在 MATLAB 中使用

  • 设置 ROS 2 网络的 ROS 中间件(ROS 2)。此示例使用 ROS 中间件作为rmw_cyclonedds_cpp

  • 如果您要部署到本地设备,请将环境变量设置RMW_IMPLEMENTATION为rmw_cyclonedds_cpp,setenv在 MATLAB 中使用

  • 在ROS选项卡中,从Deploy 部分下拉菜单中,单击Build & Run。如果您收到有关总线类型不匹配的任何错误,请关闭模型,从基本 MATLAB 工作区中清除所有变量,然后重新打开模型。单击模型工具栏底部的查看诊断链接以查看构建过程的输出。

  • 代码生成完成后,当前工作文件夹中构建的 ROS 2 节点开始自动运行。在 Windows® 中运行时,会打开一个命令窗口。不要关闭窗口,而是使用Ctrl+C关闭 ROS 2 节点

  • 用于ros2 node列出所有运行节点的是 ROS 2 网络。robotControllerROS2应该在显示的节点列表中

ros2('node','list')

/robotControllerROS2
/ros_bridge
  • 验证部署的节点是否发布了关于 ROS 2 主题的数据/cmd_vel,以控制模拟机器人的运动
ros2('topic','list')

/clock
/cmd_vel
/gazebo/link_states
/gazebo/model_states
/imu
/joint_states
/odom
/parameter_events
/rosout
/rosout_agg
/scan
/tf

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

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


标签: ros2与matlab入门教程