文档

从Simulink®连接到一个支持ros的机器人金宝app

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

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

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

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

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

open_system (“robotROSConnectToRobotExample”);

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

机器人模拟器

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

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

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

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

选项A:模拟器在MATLAB®

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

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

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

选项B: Gazebo Simulator

在Gazebo中使用一个模拟TurtleBot®

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

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

  • ,验证Gazebo环境是否已正确设置rostopic列表在Ubuntu终端窗口。您应该看到一个主题列表,包括/ mobile_base /命令/速度而且/奥多姆

配置Simulink金宝app接入ROS网络

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

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

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

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

向机器人发送速度指令

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

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

配置发布服务器块

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

  2. ROS工具箱>ROS选项卡中,拖动一个发布块到模型。双击。

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

配置消息块

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

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

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

配置信息输入

  1. 金宝app>信号路由选项卡中,拖动一个总线分配块到模型。

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

  3. 建模选项卡上,单击更新模型以确保总线信息被正确传播。忽略错误,“在总线分配块'untitled/总线分配'中选择的信号'signal1'无法在输入总线信号中找到”,如果它出现了。下一步将解决这个错误。

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

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

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

从机器人接收位置信息

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

配置订阅服务器块

  1. ROS工具箱>ROS选项卡中,拖动一个订阅块到模型。双击。

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

读消息输出

  1. 金宝app>信号路由选项卡中,拖动一个总线选择器块到模型。

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

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

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

此图显示了完成的模型。一个预先配置的模型包括您的方便。

配置并运行模型

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

  2. 设置仿真停止时间为

  3. 点击运行开始模拟。

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

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

  6. 单击,停止模拟停止