参考:


网上查到的普遍流程是:

  1. ifconfig查自身ip地址
  2. /etc/hosts中加入对方主机的ip地址与主机名
  3. ping测试通信是否正常
  4. ~/.bashrc中加入ROS主机名地址与自身名
  5. 测试

其中如果第4步中如果不使用主机名(export ROS_HOSTNAME=本设备命名),而使用ip地址,其实是不用进行第2步在hosts中修改的

下面是我的设置过程:


设置过程

两台电脑连入同一个局域网,分别查询自身ip地址

# ifconfig前,需要sudo apt install net-tools
# 如未安装,可使用 ip add 命令/ ip a 命令
ifconfig

两台电脑分别在~/.bashrc进行设置

sudo gedit ~/.bashrc

主机在~/.bashrc文件最后添加:

export ROS_IP=http://本机IP地址:11311
export ROS_MASTER_URI=http://主机IP地址:11311
# 如
# export ROS_IP=http://192.168.2.13:11311
# export ROS_MASTER_URI=http://192.168.2.13:11311

从机在~/.bashrc文件最后添加:

export ROS_IP=http://本机IP地址:11311
export ROS_MASTER_URI=http://主机IP地址:11311
# 如
# export ROS_IP=http://192.168.2.56:11311
# export ROS_MASTER_URI=http://192.168.2.13:11311

也就是:
①所有的ROS_IP都是本机的IP,
②所有的ROS_MASTER_URI都是主机的IP

需要注意的是,主机地址是http,而不是https!!!

测试,主机运行roscore,主机、从机运行rostopic list,如果收到ros话题说明连接正常

如果连接失败,可以考虑以下几个方法:
 ping 主机ip地址,测试是否通信正常
 source ~/.bashrc
③ 检查拼写是否有误