主要内容

从Simulink®连接到启用ROS的机器人金宝app

您可以使用Simulin金宝appk连接到启用了ros的物理机器人,或者连接到启用了ros的机器人模拟器,例如凉亭.这个例子展示了如何配置Simulink来使用ROS连接到一个独立的机器人金宝app模拟器。然后,它展示了如何发送速度命令和接收来自模拟机器人的位置信息。

您可以按照示例中的步骤创建自己的模型,或者您可以使用此完成版本反而。

open_system (“robotROSConnectToRobotExample”);

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

机器人模拟器

为差动驱动机器人启动基于ROS的模拟器。模拟器接收并在以下主题上发送消息:

  • nav_msgs /测程法给这件事的消息/奥多姆主题

  • 接收geometry_msgs /扭速度命令消息上/mobile_base / command./ cmd_vel.主题,基于基于ROS的模拟器

您可以选择两个选项之一,用于设置基于ROS的模拟器。

选项A:Matlab®中的模拟器

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

  • 进入rosinit在matlab命令行。这会创造一个本地罗斯大师的网络地址(URI)http:// localhost:11311

  • 进入examplehelper金宝appsimulinkrobotros.启动机器人模拟器:

  • 笔记:geometry_msgs /扭在/中收到速度命令消息mobile_base /命令/速度话题。

选择B:露台模拟器

在凉亭中使用模拟的turtlebot®。

  • 在凉亭中添加,构建和删除对象有关设置凉亭环境的说明。在虚拟机的Ubuntu®桌面中,单击“凉亭空”图标。

  • 注意ROS主机的网络地址(URI)。它看起来像http://192.168.84.128:11311,但你的具体IP地址。

  • 验证是否通过键入较正地设置了凉亭环境rostopic列表在Ubuntu终端窗口中。您应该看到一个主题列表,包括/ cmd_vel./奥多姆

  • 笔记:geometry_msgs /扭Velocity命令消息是在/cmd_vel主题上接收的。

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

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

2。在里面ROS Master(ROS 1)部分,选择自定义网络地址下拉。

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

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

发送速度命令给机器人

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

ROS使用右手坐标系,因此X轴是向前的,y轴左侧,z轴提升。使用a发送控制命令geometry_msgs /扭消息,在哪里线性的。X表示线性前向速度(在M / s中)和角。Z.表示绕z轴的角速度,单位为rad/s。

配置发布程序块

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

  2. 来自ROS工具箱>ROS在库浏览器中的选项卡,拖动a发布块到模型。双击块。

  3. 课题来源字段从ROS网络中选择.根据模拟器选择一个主题,如下所示。

  • 选项A(MATLAB SIMULATOR):单击选择旁边的主题, 选择/ mobile_base /命令/速度,然后点击好吧.请注意消息类型(geometry_msgs /扭)自动设置。

  • 选项B(露台模拟器):点击选择旁边的主题, 选择/ cmd_vel.,然后点击好吧.请注意消息类型(geometry_msgs /扭)自动设置。

配置消息块

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

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

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

配置信息输入

  1. 来自金宝app>信号路由在库浏览器中的选项卡,拖动a巴士作业块到模型。

  2. 连接味精的输出空白的信息街区到公共汽车输入的输入巴士作业块,和公共汽车输出到味精输入的输入发布块。

  3. 来自造型选项卡,单击更新模型确保总线信息正确传播。忽略错误,在输入总线信号中找不到总线分配块的“未列出/总线分配”中的“所选信号”信号1'“,如果出现。下一步将解决此错误。

  4. 双击巴士作业块。选择???信号1在右侧列表框中,然后单击消除.在左边的列表框中,展开线性和Angular属性。选择线性>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. 双击总线选择器块。选择???信号1???signal2.在正确的列表框中,然后单击消除.在左侧列表框中,展开姿势>姿势>位置并选择Xy.点击选择然后好吧

  4. 来自金宝app>下沉选项卡,拖动XY图块到模型。连接Xy输出端口总线选择器块到输入端口XY图块。

该图显示了完成的模型。一个预先配置的模型包括在您方便的情况下。

  • 笔记:出版商此模型中的块使用/ mobile_base /命令/速度主题使用MATLAB模拟器选项。对于“露台模拟器”选项,选择/ cmd_vel.主题所示多于

配置和运行模型

  1. 来自造型选项卡,单击模型设置.在里面解算器窗格,集类型固定步骤固定步长0.01

  2. 设置仿真停止时间为

  3. 点击开始模拟。

  4. 在模拟器和XY图中,您应该看到在圆圈中移动的机器人。

  5. 虽然模拟正在运行,但更改值滑块获得积木来控制机器人。双击XY图块并更改Xy如果需要,轴限制。(您可以在仿真运行时执行此操作。)

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