连接到Simulink®中支持ros的机器人金宝app

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

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

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

  • 从模拟机器人接收位置信息

您可以按照示例中的步骤创建自己的模型,也可以使用这个完成的模型版本代替。

open_system (“robotROSConnectToRobotExample”);

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

机器人模拟器

启动差动机器人的基于指令的模拟器。模拟器接收和发送以下主题的消息:

  • 接收geometry_msgs /扭/上的velocity命令消息mobile_base /命令主题

  • 发送nav_msgs /测程法消息/奥多姆主题

您可以从两个选项中选择一个来设置基于ros的模拟器。

选项A: MATLAB®中的模拟器

使用一个简单的基于matlab的模拟器在一个单独的图形窗口中绘制机器人的当前位置。

  • 输入rosinit在MATLAB命令行。这就创建了一个局部ROS的主人的网络地址(URI)http://localhost:11311.

  • 输入ExampleHelper金宝appSimulinkRobotROS启动机器人模拟器:

选项B: Gazebo模拟器

在Gazebo中使用一个模拟的TurtleBot®。

  • 看到在Gazebo中添加、构建和删除对象参阅设置露台环境的说明。在虚拟机的Ubuntu®桌面,点击“Gazebo空”图标。

  • 注意ROS主机的网络地址(URI)。它看起来像http://192.168.84.128:11311,但要使用您的特定IP地址。

  • 通过键入“。”来验证是否正确设置了Gazebo环境rostopic列表在Ubuntu终端窗口。您应该看到一个主题列表,包括/ mobile_base /命令/速度/奥多姆.

配置Simulink金宝app以连接到ROS网络

1.模拟选项卡上,选择ROS工具箱>ROS网络.

2.ROS大师(ROS 1)部分中,选择自定义网络地址下拉。

  • 选项A (MATLAB模拟器):确保主机名或IP地址被设置为本地主机,港口被设置为11311.

  • 选项B (Gazebo模拟器):在Gazebo中指定ROS主机的IP地址和端口号。例如,如果它是http://192.168.60.165:11311,然后输入192.168.60.165主机名或IP地址盒子,11311港口盒子。

向机器人发送速度指令

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

ROS使用右手坐标系,x轴向前,y轴向左,z轴向上。控件命令使用geometry_msgs /扭消息,Linear.X表示线性前进速度(单位为m/s)Angular.Z表示绕z轴的角速度(以rad/s表示)。

配置发布服务器块

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

  2. ROS工具箱>ROS在库浏览器的标签页,拖动a发布块到模型。双击。

  3. 课题来源字段选择ROS网络.点击选择旁边主题中,选择/ mobile_base /命令/速度,然后单击好吧.请注意消息类型(geometry_msgs /扭)是自动设定的。

配置消息块

  1. ROS工具箱>ROS在库浏览器的选项卡中,下拉a空白的信息块到模型。双击。

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

  3. 样品时间0.01并点击好吧.

配置信息输入

  1. 金宝app>信号路由在库浏览器的标签页,拖动a总线分配块到模型。

  2. 连接味精的输出空白的信息块的公共汽车输入的总线分配块,公共汽车输出到味精输入的发布块。

  3. 建模选项卡上,单击更新模型确保总线信息正确传播。忽略错误,“在输入总线信号中找不到总线分配块‘untitled/Bus Assignment’中选中的信号‘signal1’”,如果出现的话。下一步将解决此错误。

  4. 双击总线分配块。选择? ? ?signal1在右列表框中单击删除.在左侧列表框中,展开线性属性和角属性。选择线性>X>Z并点击选择.点击好吧关闭块掩码。

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

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

从机器人接收位置信息

创建订阅服务器来接收发送到的消息/奥多姆的话题。提取机器人的位置并绘制它在xy平面上的路径。

配置用户块

  1. ROS工具箱>ROS在库浏览器的标签页,拖动a订阅块到模型。双击。

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

读消息输出

  1. 金宝app>信号路由在库浏览器的标签页,拖动a总线选择器块到模型。

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

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

  4. 金宝app>在库浏览器的选项卡中,拖动XY图块到模型。连接XY的输出端口总线选择器的输入端口XY图块。

该图显示了完成的模型。A预先配置的模型为了您的方便已经包括在内了。

配置并运行模型

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

  2. 设置仿真停止时间为.

  3. 点击运行开始模拟。

  4. 在模拟器和XY图中,你都可以看到机器人在做圆周运动。

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

  6. 要停止模拟,单击停止.