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实现

Simulink、matlab 函数

[MATLAB&SIMULINK] 如何提取并处理Simscape Power System 中powergui的谐波分析数据

想要实现无人机控制算法二次开发,一定不要错过这个matlab工具包

怎么用matlab仿真啊?

MATLAB之simulink与command window窗口交互