ROS和MATLAB通信的一个测试

来源:互联网 发布:淘宝2016开学爆到活动 编辑:程序博客网 时间:2024/05/31 18:37

测试环境:Ubuntu版本:14.04,ROS版本:indigo,MATLAB版本:R2015b;
要求:ROS主机和MATLAB从机要在同一个局域网下。
Windows下的ip地址
ROS下的ip地址
windows下的ip地址查看方法:打开cmd命令窗,输入ipconfig;
Ubuntu下的ip地址查看方法:打开一个新的终端,输入ifconfig。
结果分别如上图所示。
在确认两台电脑处于同一个局域网后,即可开始我们的测试。

1.在ROS端打开一个终端,运行roscore;(先在matlab上初始化会使主机为MATLAB)

2.在MATLAB命令窗上运行如下命令,连接到ROS网络并创建结点

setenv('ROS_MASTER_URI','http://192.168.43.136:11311')rosinit

结果如下:
初始化结果

3.连接成功后,在MATLAB下用如下命令创建话题:

chatpub = rospublisher('/talker', 'std_msgs/String');msg = rosmessage(chatpub);

以上初始化指定了话题名和消息的类型;

4.接下来在消息中放入数据,并通过连接到ROS网络的结点话题发送消息:

latchpub = rospublisher('/talker', 'IsLatching', true);msg.Data = 'Hello, This is Matlab';send(chatpub,msg);

后两条命令可以重新写入内容,将会在持续向ROS发布消息;
5.MATLAB执行完以上命令后,在ROS下可使用echo命令查看消息内容:

rostopic echo /talker

使用rosnode list可以看到MATLAB的结点,rostopic list可以看到创建的/talker话题,rosrun rqt_graph rqt_graph可以查看结点间的关系图。
同样的ROS也可以向MATLAB发送消息实现相互的聊天功能,而MATLAB则可以利用上述方式实现ROS下海龟的运动控制,或者控制实体机器人的运动。

原创粉丝点击