ROS多机通信就是多个装有ROS的不同计算机之间共用同一个ROS主机(Master)实现节点与话题共享,本人经验建议当你遇到以下问题时候可以尝试使用多机通信解决:


Case①:
一个team多个成员共同开发一个ROS项目,但是不同成员可能安装的ubuntu版本与ROS版本不同,当需要将各个成员完成的模块进行集成调试时可以使用多机通信;

Case②: 
 当你要使用一个ROS包却发现使用软件源下载提示未发现软件包,这种问题的基本原因就是你要下载的包不匹配你的ubuntu版本(包括32位、64位区分)、ros版本,这种情况你可以找一台装有匹配的ROS版本的电脑(或者虚拟机再安装一个ubuntu及ROS),在两台计算机上进行交互调试。

    下面就直接开始设置,假设你有两台计算机A和B(在同一局域网下),现在要设置A为主机。

一、网络设置

1. 分别查看两台计算机IP与名称
//分别打开A、B两台计算机终端并在其中输入: $ ifconfig //查看ip $ hostname //查看name
    IP查看结果(当然点击右上角系统设置,直接打开网络也可以看到ip地址):

Name查看结果:

2. 查看计算机之间能否通信

    方法:在A、B计算机终端分别ping对方IP地址,命令如下:
//在A机终端输入:ping B机IP : $ ping 192.168.0.104 //IP根据自己实际情况 //B机终端同上
    若通信成功,可以看到显示接收到包的time,通常是0.3ms左右;

    若显示以下结果,则通常是物理连接的问题,检查你的网线跟路由器设置:

    From 192.168.1.2 icmp_seq=3 Destination Host Unreachable

3.修改A、B机hosts文件内容,并重启网络设置使其生效

    在A、B机上分别打开hosts文件终,端命令:
$ sudo gedit /etc/hosts

    然后在文件末添加A、B的IP与hostname(IP与hostname为上面步骤1查看的结果)并保存(其中红色区域为添加的部分,注意这里在A、B添加的内容是一样的,添加时候不带[]):





    添加完成后重启A、B两机网络设置,终端命令:
sudo /etc/init.d/networking restart
二、ROS环境设置



    分别在A、B两机上打开~/.bashrc 文件,在文件最后添加ROS主机与分机环境变量(这里A、B两机修改内容一样,add为修改内容),命令:
$ sudo gedit ~/.bashrc //打开hosts文件 export ROS_HOSTNAME=hostname_B #add export
ROS_MASTER_URI=http://hostname_A:11311 #add //hostname为上面步骤1的查看结果
    以下为本人电脑上设置,其中X230为主机:

三、通信测试

打开主机A,终端roscore启动ROS,在主机B中直接rostopic list 查看话题,如下图若可以查看到话题则表示成功:
























友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信