使用ROS连接两台电脑时,只能看到对方设备的IP,但是订阅不到ros消息

ROS连接两台设备

利用Ros通信,两台电脑需要处于同一局域网下.

1、查看主机/从机 ip hostname

$ ifconfig           查看ip
如果电脑连接的时有线网,则显示结果中,etho 部分的 inet addr 后面就是该电脑的 IP 地址;

如果电脑连接的是无线,则 wlan0 部分的 inet addr 后就是 IP 地址。

$ cat /etc/hostname           查看hostname


2、修改hosts文件内容

$ sudo gedit /etc/hosts   注意hosts别打错了= =
A电脑(主机)

127.0.0.1     localhost
127.0.1.1     hostname_A

IP_A            hostname_A
IP_B            hostname_B

B电脑(从机)

127.0.0.1     localhost
127.0.1.1     hostname_B

IP_B            hostname_B
IP_A            hostname_A

3、修改bashrc文件内容

$ sudo gedit ~/.bashrc
在文件最后一行添加如下代码

A设备:

export ROS_MASTER_URI=http://hostname_A:11311

export ROS_HOSTNAME=hostname_A

B设备:

export ROS_MASTER_URI=http://hostname_A:11311

export ROS_HOSTNAME=hostname_B


4、测试

A:

$ roscore
$ rosrun turtlesim turtlesim_node

B:

$ rosrun turtlesim turtle_teleop_key
then, 就可以在从机B上用键盘控制主机A上小乌龟的移动啦
 

问题:

B设备上只能看见A设备的相关topic和node,但是无法通过ros通信

经过排查发现,由于之前A设备配置过ROS_MASTER_URI和ROS_HOSTNAME,用的都是localhost,单机时一点问题都没有,因为这个设备对应127.0.0.1,当多台设备是就使roscore挂载到了127的ip上,导致无法通信,所以应该挂载到真实局域网的ip上。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Op_chaos

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值