主要内容

通过ROS 2从Simulink®连接到一个支持ROS的机器人金宝app

这个示例向您展示了如何配置一个Simulink模型,以从单独的基于ROS的模拟器(如金宝appGazebo®)在ROS 2上发送和接收信息。

介绍

可以使用Simulink金宝app连接到支持ros的物理机器人或支持ros的机器人模拟器,例如露台.这个例子展示了如何:

  • 配置Simulink金宝app以使用ROS 2连接到单独的机器人模拟器

  • 向模拟机器人发送速度命令

  • 接收来自模拟机器人的位置信息

这是模型您将在本例中创建。

open_system (“robotROS2ConnectToRobotExample”);

先决条件:从ROS 2开始与ROS 2发布者和订阅者交换数据在Simulink®中开始使用ROS 2金宝app

任务1 -启动一个露台机器人模拟器

在本任务中,您将为差动驱动机器人启动一个基于ROS的模拟器,以及一个ROS桥,该桥通过ROS 2网络重放ROS消息。

  1. 启动Ubuntu®虚拟机桌面虚拟机与ROS 2旋律和Gazebo

  2. 在Ubuntu桌面上,点击“”露台空的图标,开始了凉亭的世界。

  3. 点击"ROS桥图标,在ROS和ROS 2网络之间传递信息。

模拟器接收和发送以下主题的消息:

  • 接收geometry_msgs /扭/cmd_vel主题上的速度命令消息。

  • 发送nav_msgs /测程法消息/奥多姆的话题。

任务2 -配置Simulink连接到R金宝appOS 2网络

  • 模拟选项卡准备画廊,点击ROS网络ROS工具箱

  • 配置ROS网络地址对话框,在Domain ID (ROS 2),设置ID25.这个ID值与Ubuntu虚拟机上ROS 2网络的domain ID相匹配,ROS网络中Gazebo的消息在Ubuntu虚拟机上被接收。

任务3 -发送速度命令给机器人

创建一个向模拟器发送控制命令(线速度和角速度)的发布者。通过使用使这些速度可调滑块获得块。

ROS使用右手坐标系,所以x轴是正向的,y轴是向左的,z轴是向上的。控件发送控制命令geometry_msgs /扭消息,linear.x表示线性前进速度(以米/秒为单位),和angular.z表示绕z轴的角速度(以弧度/秒为单位)。

  • 打开一个新的Simul金宝appink模型。

  • 应用程序选项卡,在控制系统,点击机器人操作系统

  • 机器人操作系统(ros)对话框中,单击选择ROS网络并选择机器人操作系统2 (ROS 2)

  • ROS工具箱>ROS 2选项卡,拖动发布模型块。双击。

  • 课题来源指定您自己的.输入/ cmd_vel主题字段。点击选择旁边消息类型中,选择geometry_msgs /扭从下拉列表中,单击好吧

  • ROS工具箱>ROS 2选项卡,删除一个空白的信息模型块。双击。

  • 点击选择旁边消息类型并选择geometry_msgs /扭

  • 样品时间0.01并点击好吧

  • 金宝app>信号路由选项卡,拖动总线分配模型块。

  • 的输出连接空白的信息块的公共汽车输入的总线分配块,公共汽车的输入的输出发布块。

  • 建模选项卡上,单击更新模型确保总线信息被正确传播。忽略以下错误:“在总线分配块中‘untitled/Bus Assignment’中选定的信号‘signal1’不能在输入总线信号中找到”。下一步将解决这个错误。

  • 双击总线分配块。选择???signal1在右侧列表框中单击删除.在左侧列表框中,展开两者线性属性。选择线性>x>z并点击选择.点击好吧关闭块掩码。

  • 添加一个常数块,获得块,两个滑块获得块。如图所示将它们连接在一起,并设置获得价值-1.

  • 设置线速度滑块的限制和当前参数为0.02.0,1.0分别。设置转向增益滑块的相应参数为-1.01.0,0.1

任务4 -接收机器人的位置信息

创建一个订阅者来接收发送到/奥多姆的话题。您还将提取机器人的位置,并在xy平面上绘制它的路径。

  • ROS工具箱>ROS 2选项卡,拖动订阅模型块。双击。

  • 课题来源从ROS网络中选择,然后单击选择旁边的主题盒子。选择“/odom”作为主题,点击好吧.请注意消息类型nav_msgs /测程法自动设置。

  • 金宝app>信号路由选项卡,拖动总线选择器模型块。

  • 连接味精的输出端口。订阅控件的输入端口总线选择器块。在建模选项卡上,单击更新模型确保总线信息被正确传播。

  • 双击总线选择器块。选择???signal1???signal2在右侧列表框中单击删除.在左侧列表框中展开构成>构成>位置并选择xy.点击选择然后好吧

  • 金宝app>选项卡中,拖动XY图模型块。连接XY的输出端口总线选择器控件的输入端口XY图块。

下图显示了完成的模型。一个预先配置的模型是为了方便您。

任务5 -配置和运行模型

  • 建模选项卡上,单击模型设置.在解算器窗格中,设置类型固定步固定的大小0.01

  • 设置模拟停止时间为

  • 点击运行开始模拟。

  • 在模拟器和XY图中,您应该看到机器人在圆周上移动。

  • 当模拟运行时,更改值滑块获得控制机器人的方块。双击XY图块并更改XY如果需要,轴限制(您可以在模拟运行时执行此操作)。

  • 要停止模拟,单击停止