主要内容

从Simulink®生成一个独立的ROS 2节点金宝app

此示例显示了如何从Simulink®模型生成和构建独立ROS 2节点。金宝app您配置模型以为独立ROS 2节点生成C ++代码。然后,在主机上构建并运行ROS 2节点。

先决条件

配置代码生成模型

配置模型以为独立ROS 2节点生成C ++代码。该模型是在中引入的比例控制器ROS- enabled Robot Over ROS 2的反馈控制例子。

  • 打开机器人反馈控制模型配置为ROS 2。另外,电话Open_System(“RobotControllerRos2”)

  • 在下面ROS选项卡,在准备, 点击硬件设置。在里面硬件实现窗格,硬件板设置部分包含特定于生成的ROS 2包的设置,例如要包含在的信息package.xml.文件。改变维护者名称ROS 2示例用户

  • 该模型需要变量大小的数组。启用此选项,检查可变尺寸信号在下面代码>接口>软件环境

  • 在里面解算器窗格,确保求解器类型被设置为固定步骤和集合固定阶梯0.05。在生成的代码中,固定步长定义用于模型更新循环的实际时间步长(以秒为单位)(参见执行模型生成的代码(金宝appSimulink编码器))。它可以做得更小(例如,0.001或0.0001),但对于目前的用途,0.05就足够了。

  • 点击好吧

生成C ++ ROS 2节点

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

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

  • 在下面模拟选项卡,在准备, 选择ROS工具箱> ROS网络

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

  • ROS选项卡,从部署截面下拉部分,点击建立和运行。如果您收到关于总线类型不匹配的任何错误,请关闭模型,清除Base Matlab工作区的所有变量,然后重新打开模型。点击一下查看诊断链接在模型工具栏底部,以查看构建过程的输出。

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

ROS2节点列出所有运行的节点是ROS 2网络。RobotControllerros2.应在显示的节点列表中。

ROS2('节点''列表'
/ RobotControllerRos2 / ROS_BRIDGE

验证已部署的节点在ROS 2主题上发布数据,/ cmd_vel.,控制模拟机器人的运动。

ROS2('话题''列表'
/ clock / cmd_vel / gazebo / link_states / gazebo / model_states / imu / thern_states / odom / parameter_events / rosout / rosout_agg / scan / tf