主要内容

从Simulink®生成一个独立的ROS 2节点万博1manbetx

此示例演示如何从Simulink®模型生成和构建独立的ROS 2节点。您可以配置一个模型来生成独立ROS 2节点的C++代码。然后,在主机上构建并运行ROS 2万博1manbetx节点。

先决条件

为代码生成配置一个模型

配置一个模型来生成一个独立的ROS 2节点的C++代码。ROS- enabled Robot Over ROS 2的反馈控制实例

  • 打开机器人反馈控制模型配置为ROS 2。另外,电话开放式系统(“机器人控制器2”).

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

  • 该模型需要可变大小的阵列。要启用此选项,请选中可变大小信号在下面代码生成>接口>软件环境.

  • 解算器窗格中,确保类型被设置为固定步长,并设置固定步长0.05。在生成的代码中,固定步长定义了用于模型更新循环的实际时间步长(以秒为单位)(请参见执行从模型生成的代码(万博1manbetxSimulink编码器)).它可以做得更小(例如,0.001或0.0001),但对于目前的用途,0.05就足够了。

  • 点击好吧.

生成C++ ROS 2节点

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

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

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

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

  • 如果部署到本地设备,请设置环境变量ROS\u域\u ID将值设置为25,使用环境变量.

  • 在里面ROS选项卡,从部署节下拉列表中,单击构建和运行. 如果您得到任何关于总线类型不匹配的错误,请关闭模型,清除基本MATLAB工作区中的所有变量,然后重新打开模型。点击查看诊断链接模型工具栏底部,以查看构建过程的输出。

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

使用ros2节点列出所有运行的节点是ROS 2网络。机器人控制器2应位于显示的节点列表中。

罗斯2(“节点”,“列表”)
/机器人控制器2/ros_桥

验证已部署的节点是否发布有关ROS 2主题的数据,/cmd_级,控制模拟机器人的运动。

罗斯2(“主题”,“列表”)
/clock/cmd_vel/gazebo/link_states/gazebo/model_states/imu/joint_states/odom/parameter_events/rosout/rosout_agg/scan/tf