Matlab&Simulink与ROS的通讯(详细图文)

Matlab&Simulink与ROS的通讯(详细图文)_第1张图片Matlab&Simulink与ROS的通讯(详细图文)_第2张图片


前言

        总所周知,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&Simulink与ROS的通讯(详细图文)_第3张图片

第二步:配置Matlab环境

打开Matlab:输入setenv('ROS_MASTER_URI','http://192.168.153.130:11311')(Ubuntu的IP地址,运行ROS主节点后可以看到同样的信息),接着输入rosinit,注意输入ronsinit之前需要运行roscore,否则会无法连接上ROS。

 在Matlab环境里配置如下:

Matlab&Simulink与ROS的通讯(详细图文)_第4张图片第三步:运行Ros节点

这样matlab与Ros便建立好通信,接着运行乌龟示例进行说明:

首先,我们运行主节点:roscore

Matlab&Simulink与ROS的通讯(详细图文)_第5张图片

然后,打开一个新终端,运行海龟节点:$ rosrun turtlesim turtlesim_node

Matlab&Simulink与ROS的通讯(详细图文)_第6张图片

接着,快捷键Ctrl+Alt+T,运行一个键盘节点以控制海龟运动:$ rosrun turtlesim turtle_teleop_key

Matlab&Simulink与ROS的通讯(详细图文)_第7张图片

 紧接着,将鼠标放在最后打开的新终端上,按键盘的上下左右箭头便可以控制海龟移动,为了验证ROS和matlab是否可以通信,我们新开一个终端并显示一个话题信息

Matlab&Simulink与ROS的通讯(详细图文)_第8张图片

第四步:运行Matlab

同样的,此时在matlab命令窗口输入rostopic echo /turtle1/pose

Matlab&Simulink与ROS的通讯(详细图文)_第9张图片

 接着移动海龟,可以看到Ubantu上终端显示与Matlab命令窗口显示一致:

Matlab&Simulink与ROS的通讯(详细图文)_第10张图片

第五步:配置simulink模型和运行

        我们打开Simulink,并在simulink中新建模型,引入订阅(Subscirbe)模块 ,并加入Busselector来选择我们想观察的信号。

        双击Subscribe模块,选着Configure network addresses:

Matlab&Simulink与ROS的通讯(详细图文)_第11张图片

 Matlab&Simulink与ROS的通讯(详细图文)_第12张图片

 做好以上配置后,将simulink仿真时间改为inf,点击运行,并在ubantu上控制海龟移动,可以看到ubantu上的海龟pose同simulink 中一致

Matlab&Simulink与ROS的通讯(详细图文)_第13张图片

你可能感兴趣的:(Matlab/simulink,matlab,自动驾驶,开发语言)