ROS教程 - 多台计算机 网络 设置
本文主要参考ROS官网教程 和 白巧克力亦唯心的博文:
ROS设计的灵魂就在于其分布式计算。一个优秀的节点不需要考虑在哪台机器上运行,它允许实时分配计算量以最大化的利用系统资源。(有一个特例——驱动节点必须运行在跟硬件设备有物理连接的机器上)。在多个机器人上使用ROS是一件很简单的事,你只需要记住一下几点:
- 你只需要一个master,只要在一个机器上运行它就可以了。
- 所有节点都必须通过配置 ROS_MASTER_URI连接到同一个master。
- 任意两台机器间任意两端口都必须要有完整的、双向连接的网络。
- 每台机器都必须向其他机器广播其能够解析的名字。
一、获取两台机器的IP 和 主机名,并配置hosts文件
首先利用ifconfig和hostname命令查看两台电脑的IP和主机名,在此,假设这两台电脑主机名分别为marvin和hal,分别在对应的电脑终端输入以下两条命令可以查看对应IP和主机名:
ifconfig
hostname
为了让两台电脑都识别对方IP以及和对方的hostname对应上,在这里我们配置/etc/hosts 映射文件,/etc目录下包含很多配置文件,可以参考Linux教程了解该文件相关信息,如果不配置该文件,ping的时候需要用IP地址,无法直接ping主机名。
由于hosts文件是只读文件,因此修改是需要sudo以后才能修改,如果是ubuntu等有gedit编辑器的系统可以通过如下命令修改:
gksu gedit /etc/hosts
如果没有gedit等可视化界面,则一般采用vim修改(如果没有vim,一般也有vi的),可以:
sudo