此示例显示了如何从Simulink®模型生成和构建独立ROS 2节点。金宝app您配置模型以为独立ROS 2节点生成C ++代码。然后,在主机上构建并运行ROS 2节点。
此示例需要Simulink Coder™和嵌金宝app入式编码器™。
使用说明下载虚拟机开始使用凉亭和模拟乌龟机器人。
请参阅ROS 2模型构建失败ROS 金宝appSimu金宝applink支持和限制。
为确保您拥有合适的第三方软件,请参阅ROS系统要求。
配置模型以为独立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就足够了。
点击好吧。
在此任务中,您将为独立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