ros多机通讯无法连接问题

试了其他人的许多方法,一直都是能读到主机的目录,但连主机的小乌龟都无法控制,后来经过多次测试发现自己之前的理解是有很大偏差的。

  • 对于主机来说,修改.bashrc文件,添加以下:
export ROS_HOSTNAME=192.168.0.122(本机ip)
export ROS_MASTER_URI=http://192.168.0.122:11311

ROS_HOSTNAME后面填写的ip,就是在本机上roscore打开主机的地址

ROS_HOSTNAME和ROS_IP作用基本一样,不过如果同时设置ROS_HOSTNAME优先级高

ROS_MASTER_URI是告诉节点在哪里定位master,这里定位主机地址

 

  • 从机也只需修改.bashrc文件,添加:
#export ROS_HOSTNAME=192.168.0.×(从机本机ip)这行其实可以不填
export ROS_MASTER_URI=http://192.168.0.122:11311(注意里面依然是主机ip)

然后重新打开终端,正常通讯就可以了

  • 测试一下

主机:

$ roscore
$ rosrun turtlesim turtlesim_node

从机:

$ rosrun turtlesim turtle_teleop_key

此时就能正常操控小乌龟了

你可能感兴趣的:(ros,机器人)