前言:一定要在同一路由的局域网下进行,就是两台电脑的ip要像这样:192.168.191.4和192.168.191.8,只有最后一位不同,这样就能ping通了,否则ping不同。

一、查看ip和主机名

1.1 查看ip:

ifconfig 

-----------------------------------------

显示如下:

其中,lo是网线连接情况下的id,下边的wlp2s0是无线连接情况下的ip地址.

分别查看两台电脑的ip地址并用笔记本记录下来.一定要在同一局域网下进行!

1.2 查看主机名

hostname

分别查看两台电脑的ip地址并用记录下来.

这里说明一下,如果在"关于这台计算机"的选项里修改了名字后,导致没有了管理员权限,每次打开终端都会提示:To run a command.......

遇到这种情况,输入如下代码可以解决:

touch ~/.sudo as admin successful

二、修改host文件

2.1 打开host文件:

gksu gedit /etc/hosts

2.2 修改host文件

按照如下形式分别在两台电脑上添加ip和主机名:

2.3 重启网络:

两台电脑都需要重启网络。

sudo /etc/init.d/networking restart  

三、实现通信

3.1 在两台电脑上装上chrony包:

sudo apt-get install chrony 

3.2 在两台电脑上都安装ssh服务器:

sudo apt-get install openssh-server 

3.3 确认服务器是否已经启动:

ps -e|grep ssh 

如果看到sshd则说明ssh-server已经启动.

3.4 检测是否双向连通:

先ssh自己的主机名:

ssh one_name

然后ping另一台电脑的主机名:

ping tow_name

-----------------------------------------

显示如下:

接着在另一台机器操作:

ssh tow_name
ping one_name

-----------------------------------------

显示如下:

如果两台机器都出现如上结果,说明双向连通,只要有一个没出现下边的结果就是没有连接成功,而多级通信必须保证双向连通.

3.5 修改.bashrc文件

在两台电脑上都使用下面的命令来编辑.bashrc文件:

gedit ~/.bashrc

在A端这边的bashrc文件的最后添加:

export ROS_HOSTNAME=one_hostname
export ROS_MASTER_URI=http://one_hostname:11311  

-----------------------------------------

解析:

第一条是本机的主机名

第二条 是主机,也就是要运行roscore节点的电脑端的主机名

在B端这边的bashrc文件的最后添加:

export ROS_HOSTNAME=tow_hostname
export ROS_MASTER_URI=http://one_hostname:11311 

注意:两台机器的export ROS_MASTER_URI=http://one_hostname:11311这条是一样的.

四、验证

4.1 电脑A端

首先在主机,启动 ROS:$ roscore 然后运行:

rosrun turtlesim turtlesim_node

4.2 电脑B端

rosrun turtlesim turtle_teleop_key 

现在,你可以在电脑B端控制A上的小乌龟移动啦!

-END-

ROS-多机通信的更多相关文章

  1. ROS多机通信计算机网络配置

    以实现master和nico的互联共享信息为例 1 查看IP地址 $ifconfig 查看ip地址 可以看到 master的IP为192.168.1.10 nico的IP为192.168.1.103 ...

  2. [转]在ROS下使用zeroconf配置多机通信

    原文地址:http://www.corvin.cn/635.html,转载主要方便随时查阅,如有版权要求,请及时联系. 0x00 为何需要配置ROS多机通信 众所周知ROS是分布式系统,因此可以将机器 ...

  3. 与POS机通信时的3DES(双倍长)加密解密

    项目中有个SocketServer要和移动便携POS机通信,POS开发商就告诉我们他们用的3DES(双倍长)加密,给了个Key.数据和结果,让我们实现. c#用TripleDESCryptoServi ...

  4. Vmware虚拟机网络模式及虚拟机与物理机通信方法

    [转]http://www.cqeis.com/news_detail/newsId=1477.html Vmware虚拟机软件是一个“虚拟PC”软件,它使你可以在一台机器上同时运行二个或更多Wind ...

  5. ros与下位机通信常用的c++ boost串口应用

    一.首先移植c++ boost 库: 1. 先去 Boost官网 下载最新的Boost版本, 我下载的是boost_1_6_0版本, 解压. 2. 进入解压后目录: cd boost_1_6_0, 执 ...

  6. ros与下位机通信常用的c++ boost串口应用--22

    摘要: 原创博客:转载请表明出处:http://www.cnblogs.com/zxouxuewei/ 一.首先移植c++ boost 库: 1. 先去 Boost官网 下载最新的Boost版本, 我 ...

  7. UR机器人通信--上位机通信(python)

    一.通信socket socket()函数 Python 中,我们用 socket()函数来创建套接字,语法格式如下: socket.socket([family[, type[, proto]]]) ...

  8. CentOS安装etcd和flannel实现Docker跨物理机通信

    1.安装etcd yum install etcd systemctl stop etcd systemctl start etcd systemctl status etcd systemctl e ...

  9. etcd和flannel实现docker跨物理机通信

    实验目标 跨物理机的容器之间能直接访问docker通过Flannel可以实现各容器间的相互通信,即宿主机和容器,容器和容器之间都能相互通信 实验环境 192.168.3.50 //etcd.flann ...

随机推荐

  1. [Offer收割]编程练习赛40

    不到一个小时AK,虽然是VP的,舒服,第一次.都简单的一比,没什么可说的. 查找三阶幻方 #pragma comment(linker, "/STACK:102400000,10240000 ...

  2. JavaWeb中使用到的类与接口整理(一)servlet包

    javaweb学了半本,整理了一下Servlet技术模型.servlet容器模型.jsp技术模型中的类与接口,有助于理解web应用中的页面跳转和参数传递,目录: HttpServlet 可作Scope ...

  3. 前端-JQ思维导图

    看不清的朋友右键保存或者新窗口打开哦!喜欢我可以关注我,还有更多前端思维导图笔记

  4. 07 --C语言字符串函数

    1)字符串操作  复制 strcpy(p, p1)      复制字符串 strncpy(p, p1, n)  复制指定长度字符串 strdup(char *str)      将串拷贝到新建的位置处 ...

  5. 05 Django与Ajax

      一.Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互, ...

  6. Javaee 方法的构建和调用

    主类: package Szy02; public class Person { String name; int age; String sex; public Person(){ } public ...

  7. css超出不换行可滑动

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...

  8. EL表达式中,param和requestScope的区别

    在看param和requestScope之前,不妨先了解下在java下request的情况: 1. request对象通常用来接收客户端提交到服务端的数据,如:在servlet或者action中可以用 ...

  9. C++基础 (2) 第二天 C++相对C的改进 命名空间 引用

    1 昨日回顾 2内联函数 3 默认参数和占位参数 4函数重载 函数重载 就是可以定义多个相同名字的函数 6 类和对象的基本语法 7 类的封装和访问控制 还有一个结论: 封装有两层含义: 把属性和方法进 ...

  10. Elasticsearch 入门 - Modifying Your Data

    index/update/delete 均有大概1秒的缓存时间 Indexing/Replacing Documents curl -X PUT "localhost:9200/custom ...