ros主从机通信

1、查看主从机的ip,并互相ping(主机为A,从机为B)

ip查看指令ifconfig
假设:
A的ip为:192.168.0.1
B的ip为:192.168.0.2

互相ping对方,只有ping通了才能实现通信

2、互相修改hosts文件

首先查看各自的hostname,在终端里输入hostname即可
假设:
主机A的hostname为:hostA
从机B的hostname为:hostB

然后修改主从机的 /etc/hosts 文件
主机A:
添加从机的相关信息

192.168.0.2 hostB

从机B:
添加主机的相关信息

192.168.0.1 hostA

3、设置主从机的.bashrc文件(zsh对应的.zshrc文件)

分别修改主从机的.bashrc文件
主机A添加:

export ROS_HOSTNAME=hostA
export ROS_MASTER_URI=http://192.168.0.1:11311 ##主机的ip
export ROS_IP=192.168.0.1  ##主机的ip

从机B添加:

export ROS_HOSTNAME=hostB ##这个不设置,可能出现主机无法打印从机信息
export ROS_MASTER_URI=http://192.168.0.1:11311 ##主机的ip
export ROS_IP=192.168.0.1 ##我的测试里主机的ip和从机的ip都可以,去掉也可以

4、测试

要实现双向的通信测试,不止要通过 rostopic list 指令查看是否有接收调对方的topic,还要通过rostopic echo /“topicname” 打印一下,(有时候列表有显示,但所打印不了,同样无法实现双向的控制)
测试方法:1、主从机各自发送topic,互相显示topic内容;2、使用小乌龟教程,互相作为控制和显示端,进行测试。

小乌龟为例:
1、在主机中启动roscore

2、
在主机中启动显示程序:
rosrun turtlesim turtlesim_node
在从机中启动控制程序:
rosrun turtlesim turtle_teleop_key
在从机中输入上下左右健,看小乌龟是否动作

3、
在从机中启动显示程序:
rosrun turtlesim turtlesim_node
在主机中启动控制程序:
rosrun turtlesim turtle_teleop_key
在主机中输入上下左右健,看小乌龟是否动作

双向控制都可以,证明设置成功

参考:
ROS 的工作过程及通信原理
一遍成功的ROS主从机详细配置
ROS中设置多机通信(主从机配置)的方法以及常见问题(节选自ROS2GO手册)

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值