整个系统只需要一个master,选择一个机器来运行master提供topic寻址、参数服务器等功能。所有的节点必须通过环境变量ROS_MASTER_URI配置为使用同一个master。
master设置方法:
export ROS_MASTER_URI=”http:/wsh:11311”
其中wsh是我计算机的名称,此时我的计算机是master,其他计算机在终端输入此指令即可连接master. 可以通过下面介绍的ip和计算机名绑定的方法设置。
在机器之间,并且在所有端口之间,必须有完整的、双向的可连接性。Ubuntu上默认安装有ssh的客户端,但不包含服务器端,需要手动安装,
sudo apt-get install openssh-server
如果想去掉手动登录的过程,还需要生成密钥对并上传至服务器端:
ssh-keygen ssh-copy-id user@host
必须有一个机制使每个节点的名称(hostname)和它的ip地址相互绑定。在/etc/hosts中添加机器名称绑定,格式如下:
IP hostname hostname
sudo gedit /etc/hosts 添加master的IP
192.168.3.102 wsh
同样master里面要加入要连接此master的计算机的IP,如yxd
192.168.3.102 yxd
使用env.sh文件设置运行node的machine的所需环境,如下:
#!/bin/sh export ROSLAUNCH_SSH_UNKNOWN=1 #export ROS_MASTER_URI=wsh ./opt/ros/indigo/setup.sh exec "$@"
如有需要可更改运行节点的计算机名称。在/etc/hostname中更改即可。
由于/etc/hosts中需要将计算机名和IP绑定,所有最好设置IP地址为静态地址。
欢迎大家批评,指正,交流!
联系方式:
emai: [email protected]