从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。
配置发布程序块
打开一个新的Simul金宝appink模型。
来自ROS工具箱>ROS在库浏览器中的选项卡,拖动a发布块到模型。双击块。
放课题来源字段从ROS网络中选择.根据模拟器选择一个主题,如下所示。
选项A(MATLAB SIMULATOR):单击选择旁边的主题, 选择
/ mobile_base /命令/速度
,然后点击好吧.请注意消息类型(geometry_msgs /扭
)自动设置。选项B(露台模拟器):点击选择旁边的主题, 选择
/ cmd_vel.
,然后点击好吧.请注意消息类型(geometry_msgs /扭
)自动设置。
配置消息块
来自ROS工具箱>ROS在库浏览器中的选项卡,删除a空白的信息块到模型。双击块。
点击选择旁边的消息类型并选择
geometry_msgs /扭
.放采样时间到
0.01
并点击好吧.
配置信息输入
来自金宝app>信号路由在库浏览器中的选项卡,拖动a巴士作业块到模型。
连接
味精
的输出空白的信息街区到公共汽车
输入的输入巴士作业块,和公共汽车
输出到味精
输入的输入发布块。来自造型选项卡,单击更新模型确保总线信息正确传播。忽略错误,在输入总线信号中找不到总线分配块的“未列出/总线分配”中的“所选信号”信号1'“,如果出现。下一步将解决此错误。
双击巴士作业块。选择
???
信号1
在右侧列表框中,然后单击消除.在左边的列表框中,展开线性和Angular属性。选择线性>X和角>Z.并点击选择.点击好吧关闭块掩码。
添加一个常数块,获得块,两个滑块获得块。如图所示将它们连接在一起,并设置获得价值
-1。
设置线性速度滑块的限制和当前参数
0.0
到2.0
,1.0
分别。设置转向增益滑块的相应参数-1.0
到1.0
,0.1
.
从机器人接收位置信息
创建订阅服务器以接收发送到的消息/奥多姆
话题。提取机器人的位置并在XY平面中绘制它的路径。
配置订阅服务器块
来自ROS工具箱>ROS在库浏览器中的选项卡,拖动a订阅块到模型。双击块。
放课题来源到从ROS网络中选择,然后点击选择旁边的主题盒子。选择主题“/odom”,点击好吧.请注意消息类型
nav_msgs /测程法
自动设置。
读取消息输出
来自金宝app>信号路由在库浏览器中的选项卡,拖动a总线选择器块到模型。
连接的输出端口订阅块的输入端口总线选择器块。在里面造型选项卡,单击更新模型确保总线信息正确传播。
双击总线选择器块。选择
???
信号1
和???
signal2.
在正确的列表框中,然后单击消除.在左侧列表框中,展开姿势>姿势>位置并选择X和y.点击选择然后好吧.来自金宝app>下沉选项卡,拖动XY图块到模型。连接
X
和y
输出端口总线选择器块到输入端口XY图块。
该图显示了完成的模型。一个预先配置的模型包括在您方便的情况下。
笔记:出版商此模型中的块使用
/ mobile_base /命令/速度
主题使用MATLAB模拟器选项。对于“露台模拟器”选项,选择/ cmd_vel.
主题所示多于.
配置和运行模型
来自造型选项卡,单击模型设置.在里面解算器窗格,集类型到固定步骤和固定步长到
0.01
.设置仿真停止时间为
正
.点击跑开始模拟。
在模拟器和XY图中,您应该看到在圆圈中移动的机器人。
虽然模拟正在运行,但更改值滑块获得积木来控制机器人。双击XY图块并更改
X
和y
如果需要,轴限制。(您可以在仿真运行时执行此操作。)要停止模拟,请单击停止.