ROS Kinetic (Ubuntu 16.04)和Matlab2017a中的ROS如何设置网络完成互相通信?

本文介绍了如何在ROS Kinetic (Ubuntu 16.04)和Matlab2017a之间设置网络进行通信。通过详细步骤,包括配置ROS Master地址、修改环境变量以及在Windows和Ubuntu之间建立连接,实现了在两个系统间成功发送和接收ROS话题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我最近在学习标题中的两者通信,看了古月大神的帖子(http://www.guyuehome.com/1006),在matlab中可以了list到来自Ubuntu的话题,但一直苦于无法echo消息,matlab总是显示在忙。目前问题终于解决,特此写个笔记。

1. 介绍下我的配置
首先,我有两台电脑,每台电脑独自装一个系统,一个是ubuntu16.04(以下称为P1),另一个是win7(P2)。在P1终端中运行ifconfig,查看IP,在P2上依次点击网络与共享中心——更改适配器设置——本地连接——查看此连接的状态——详细信息,查看IP。这两个IP应当在同一局域网下,至于啥叫局域网,我也不太明白,但是如果你是以太网连的,两个IP的前三组应该是一样的,例如:
192.168.202.1 (假定是P1的ip)
192.168.202.2

$ ifconfig

2. 在P1上的设置

输入以下命令,打开.bashrc文件,在最后添加如下两行内容,设置ROS master的地址,保存后关闭,再在终端中source下刚才保存的文件,最后重新打开一个终端,运行roscore,检查倒数第四行是否与设置的保持一致。

export ROS_MASTER_URI=http://192.168.202.1:11311
export ROS_IP=192.168.202.1(IP地址一定要检查确保无误)

$ gedit ~/.bashrc

$ source ~/.bashrc

3. 配置P2
在脚本中写三行代码:

setenv('ROS_MASTER_URI','http://192.168.202.1:11311') % setting ROS_MASTER_URI
setenv('ROS_IP','192.168.202.2')  % setting global node's advertised address
rosinit    % start ROS master

保存,并运行。

4. 验证是否可以通信
在P1上运行节点

$ rosrun beginner_tutorials talkerr.py

我把ROS基础教程中的talker节点修改了下,发送的消息设置为Float32,如果你也修改记得修改文件可执行权限

在matlab command window输入:
rostopic list
rostopic echo /chatter
在这里插入图片描述
到此就实现我的目的了。希望对也遇到这个问题的小伙伴有帮助。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值