Matlab&Simulink与ROS的通讯(详细图文)
Posted 橙子CK
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Matlab&Simulink与ROS的通讯(详细图文)相关的知识,希望对你有一定的参考价值。
前言
众所周知,Matlab&Simulink是强大的数据处理和算法设计工具,并且提供了与ROS的交互接口,可使两者建立连接实现Windows与Ubantu系统的信息交互,同时通过Matlab/Simulink还可设计开发诸如机器视觉、运动控制等机器人应用算法,实现算法在ROS中的快速原型及集成,加速机器人复杂算法设计流程和验证工作。基于ROS系统的通讯机制,Matlab/Simulink可作为ROS master或普通节点,分别实现在ROS中对节点的管理和通讯。
所需知识:ROS、Ubantu、Matlab、Simulink相关知识。
第一步:获取ubantu地址
在Ubantu系统下获取IP,打开一个终端输入ifconfig,与windows 的ipconfig稍有不同,接着你就可以看到虚拟机的IP地址:
第二步:配置Matlab环境
打开Matlab:输入setenv('ROS_MASTER_URI','http://192.168.153.130:11311')(Ubuntu的IP地址,运行ROS主节点后可以看到同样的信息),接着输入rosinit,注意输入ronsinit之前需要运行roscore,否则会无法连接上ROS。
在Matlab环境里配置如下:
第三步:运行Ros节点
这样matlab与Ros便建立好通信,接着运行乌龟示例进行说明:
首先,我们运行主节点:roscore
然后,打开一个新终端,运行海龟节点:$ rosrun turtlesim turtlesim_node
接着,快捷键Ctrl+Alt+T,运行一个键盘节点以控制海龟运动:$ rosrun turtlesim turtle_teleop_key
紧接着,将鼠标放在最后打开的新终端上,按键盘的上下左右箭头便可以控制海龟移动,为了验证ROS和matlab是否可以通信,我们新开一个终端并显示一个话题信息
第四步:运行Matlab
同样的,此时在matlab命令窗口输入rostopic echo /turtle1/pose
接着移动海龟,可以看到Ubantu上终端显示与Matlab命令窗口显示一致:
第五步:配置simulink模型和运行
我们打开Simulink,并在simulink中新建模型,引入订阅(Subscirbe)模块 ,并加入Busselector来选择我们想观察的信号。
双击Subscribe模块,选着Configure network addresses:
做好以上配置后,将simulink仿真时间改为inf,点击运行,并在ubantu上控制海龟移动,可以看到ubantu上的海龟pose同simulink 中一致
以上是关于Matlab&Simulink与ROS的通讯(详细图文)的主要内容,如果未能解决你的问题,请参考以下文章
毕业设计/matlab系列基于DCT的数字图像水印matlab&simulink实现
[MATLAB&SIMULINK] 如何提取并处理Simscape Power System 中powergui的谐波分析数据