您可以使用Simulin万博1manbetxk连接到启用ROS的物理机器人或启用ROS的机器人模拟器,如露台.此示例显示如何配置Simulink以使用ROS连接到单独的机器人模拟器。万博1manbetx然后,它示出了如何从模拟机器人发送速度命令并接收位置信息。
您可以按照示例中的步骤来创建您自己的模型,或者您可以使用这个已完成的模型版本代替。
Open_System('robotrosconnecttorobotexample');
先决条件:开始使用ROS,与ROS发布商和订阅者交换数据,在Simulink®中开始使用ROS万博1manbetx.
启动一个基于ros的差动驱动机器人模拟器。模拟器接收和发送关于以下主题的消息:
发送nav_msgs / odometry.
消息/奥多姆
话题
收到geometry_msgs / twist.
/上的速度命令消息mobile_base /命令
或者/ cmd_vel
课题,基于ros的模拟器
您可以从两个选项中选择一个来设置基于ros的模拟器。
选项A: MATLAB®模拟器
使用简单的基于MATLAB的模拟器绘制机器人的当前位置在单独的数字窗口中。
输入罗斯尼特
在MATLAB命令行。这将创建一个本地ROS的主人使用网络地址(URI)http://localhost:11311
.
输入ExampleHelper万博1manbetxSimulinkRobotROS
要启动机器人模拟器:
注意:的geometry_msgs / twist.
速度命令消息在/上接收mobile_base /命令/速度
的话题。
选项B:凉亭模拟器
在凉亭中使用一个模拟的TurtleBot®。
看到在凉亭中添加、构建和删除对象参阅设置露台环境的说明。在虚拟机的Ubuntu®桌面中,点击“Gazebo Empty”图标。
请注意ROS Master的网络地址(URI)。它看起来像http://192.168.84.128:11311
,但具体的IP地址。
单击,验证是否正确设置了Gazebo环境叛逆
列表
在Ubuntu终端窗口中。您应该看到一个主题列表,包括/ cmd_vel
和/奥多姆
.
注意:的geometry_msgs / twist.
在/ cmd_vel主题上收到速度命令消息。
1.从模拟选项卡,选择ROS工具箱>ROS网络.
2.在活性氧大师(ROS 1)部分中,选择风俗
从这一点来网络地址下拉。
选项A(MATLAB模拟器):确保主机名或IP地址设置为localhost.
,和港口设置为11311.
.
选项B(凉亭模拟器):指定凉亭中ROS主的IP地址和端口号。例如,如果它是http://192.168.60.165:11311
,然后输入192.168.60.165
在里面主机名或IP地址盒子,11311.
在里面港口盒子。
创建一个发送控制命令(线速度和角速度)到模拟器的发布者。通过使用使这些速度可调滑块获得块。
ROS使用右手坐标系,所以x轴是向前的,y轴是向左的,z轴是向上的。控制命令使用geometry_msgs / twist.
消息,linear.x.
表示线性前进速度(单位为m/s)Angular.z.
表示Z轴周围的角速度(在Rad / s中)。
打开一个新的Simul万博1manbetxink模型。
从ROS工具箱>罗斯选项卡,在库浏览器中拖动发布块到模型。双击。
集主题来源领域从ROS网络中选择.根据模拟器选择主题,如下所示。
选项A (MATLAB模拟器):单击选择旁边话题中,选择/ mobile_base /命令/速度
,然后单击行.请注意,消息类型(geometry_msgs / twist.
)自动设置。
选项B(凉亭模拟器):点击选择旁边话题中,选择/ cmd_vel
,然后单击行.请注意,消息类型(geometry_msgs / twist.
)自动设置。
从ROS工具箱>罗斯选项卡中,删除空白消息块到模型。双击。
点击选择旁边消息类型并选择geometry_msgs / twist.
.
集样品时间来0.01
然后点击行.
从万博1manbetx>信号路由选项卡,在库浏览器中拖动总线分配块到模型。
连接味精
输出空白消息块的公共汽车
输入的总线分配块,公共汽车
输出到味精
输入的发布块。
从建模选项卡上,单击更新模型以确保总线信息被正确传播。忽略这个错误:“在总线分配块‘untitled/Bus Assignment’中选中的信号‘signal1’在输入总线信号中找不到”,如果它出现的话。下一步将解决此错误。
双击总线分配块。选择???
signal1
在右侧列表框中,单击删除.在左侧列表框中,展开线性和角度属性。选择线性>X和棱角>Z然后点击选择.点击行关闭块掩码。
添加A.常数块,Again块和两个滑块获得块。如图所示,将它们连接在一起,并设置gain价值-1.
设置线速度滑块的极限和当前参数为0.0
来2.0
,和1.0
分别。将转向增益滑块的相应参数设置为-1.0
来1.0
,和0.1
.
创建一个订户以接收发送给的消息/奥多姆
的话题。提取机器人的位置并在xy平面中绘制它的路径。
从罗斯工具箱>罗斯选项卡,在库浏览器中拖动订阅块到模型。双击。
集主题来源来从ROS网络中选择,然后单击选择旁边的话题盒子。为主题选择“/ odom”,然后单击行.请注意消息类型nav_msgs / odometry.
自动设置。
从万博1manbetx>信号路由选项卡,在库浏览器中拖动总线选择器块到模型。
连接输出端口订阅块到输入端口总线选择器块。在建模选项卡上,单击更新模型以确保总线信息被正确传播。
双击总线选择器块。选择???
signal1
和???
signal2
在右侧列表框中单击删除.在左侧列表框中,展开构成>构成>姿势并选择X和Y.点击选择接着行.
从万博1manbetx>汇在库浏览器中的选项卡,拖动一个xy图形块到模型。连接X
和Y
输出端口总线选择器块的输入端口xy图形块。
该图显示了已完成的模型。A.预先配置的模型是为了你的方便。
注意:出版商在此模型中的块使用/ mobile_base /命令/速度
与MATLAB模拟器选项一起使用的主题。对于凉亭模拟器选项,请选择/ cmd_vel
如图所示的主题以上.
从建模选项卡上,单击模型设置.在求解器窗格中,设置类型来固定步和固定的大小来0.01
.
设置模拟停止时间INF.
.
点击运行开始模拟。
在模拟器和XY图中,您应该看到机器人在一个圆圈中移动。
在模拟运行时,更改滑块获得阻止控制机器人。双击xy图形阻止并改变X
和Y
如果需要,轴限制。(您可以在模拟运行时进行此操作。)
若要停止模拟,请单击停止.