两个ROS系统进行通信(网线直连)

       本人在做无人机的开发,由于电脑性能的原因,飞机上一台电脑控制和视觉都做的话很吃力,特别是需要用深度学习进行检测的时候。由于这个原因我打算用两台机载电脑完成任务,一个用于深度学习的检测(ubuntu16.04+kinetic),一个用于控制(ubuntu14.04+indigo),现要把两个机器用一根网线连接起来。连接过程踩了很多坑,鉴于网上资料很多,但很少人用网线直接连接,而且很多要么有问题要么作者并不清楚为什么要那样做,其中的一些细节如果疏忽了可能引起很奇怪的问题。下面按步骤来说一下整个连接过程。

一、设置静态IP

首先设置主机。注意选取合适的一方为主机。


依次点击 设置->Network->Wired->Options...->IPv4 Settings,Method选择Manual,点击add,然后填入三个部分,注意IP要在同一个网段,特别要注意勾选上Requare .......那个选项。从机上和这个修改步骤一样,只需要把Address改为192.168.2.12,其他两个不变,如果自己不会修改的话直接拷贝我的也没问题。

二、修改hosts文件

首先修改主机

打开终端输入 sudo gedit /etc/hosts ,将文件按照下图进行修改:


这里加入的是两个系统的IP(刚才设置修改的静态IP)和对应的域名,域名并不是很多博客所说的hostname,随便起个名字就好,但一定要注意千万不能一样,和上面的两个名字也不能一样!特别是两个系统的主机名如果一样的话,特别要注意这点。如果不知道怎么修改就按我起得ubuntu1和ubuntu2来,一般不会出错。

从机的修改步骤及结果和主机完全一样。

三、修改.bashrc文件

首先修改主机

进入home目录下,按ctrl+h,找到.bashrc文件,打开后在文件后面加入两个export,修改结果如下:


其中ROS_HOSTNAME就是刚才添加的域名ubuntu1(主机),ROS_MASTER_URI是刚才为主机设置的静态IP。

从机和主机的修改步骤一样,但注意ROS_HOSTNAME要换成ubuntu2(从机),ROS_MASTER_URI不变,仍然是主机的。修改结果如下:


此时就已经连接完成了,关掉打开的终端,用网线连接两台电脑,即可互相传送消息进行通信。

以上步骤中对于要修改的地方如果实在不会修改的话就直接拷贝我的修改数据,一般不会出现问题。

连接完成后用小乌龟测试下,主机运行节点管理器 roscore,另打开一个终端运行 rosrun turtlesim turtlesim_node

从机运行键盘发送命令的节点(不好意思,忽然忘记节点叫啥名字了哈哈),将鼠标定位在键盘发送命令的终端内即可通过前后左右键控制乌龟运动了。

其他的博客都没有用网线直接连接,期间问了很多人有的人说可以实现,有的说不行,抱着怀疑的态度折腾了两天终于实现了哈哈


评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值