两个或者多个ros之间的信息通信

目录

两个或者多个ros之间的信息通信

【必做】

时间同步sudo apt-get install chrony

//来源参考
https://blog.csdn.net/LiKouSanYou/article/details/79358056

https://blog.csdn.net/u013832707/article/details/54340410
https://blog.csdn.net/u013832707/article/details/54340410

//ARM端和PC端ROS通讯

http://www.roswiki.com/read.php?tid=312&fid=9

//首先,配置主PC机(master):

//修改IP地址等,

$ hostname  //可以查看主机名

$ hostname rosxx  //临时修改主机名

$ sudo gedit /etc/hosts

//在文件中添加PC(listener)地址,如:

192.168.3.201  ros1  //pc1 hostname

192.168.3.202  ros2  //pc2 hostname

http://www.roswiki.com/read.php?tid=312&fid=9

好久没上论坛了,因为最近比较忙,现在有空发个帖,主要是ROS双机通讯的,网上有很多资料,不过我还是在我们论坛在写一下,想写详细点。 大家都知道,ROS是分布式系统,就是说ros可以把计算处理压力分担在各个电脑上,如何分担,就是通过局域网把每台运行着ROS系统的PC机连接起来,首先我们要配置,而且这种配置是很方便的在ROS中。

首先在PC机端,我把PC机作为主机,我用的LINUX的hostname是:ubuntu,然后我们打开linux下的文件: 
vim  /etc/hosts                 
//打开文件后,在里面添加一行: 
192.168.0.111    tegra-ubuntu     //大家注意这里添加的是ARM端,是ARM端的ip和ARM端的hostname,我没打错。用于寻找通讯对象。 
//然后保存,在我们的~/.bashrc里面添加 
    export ROS_HOSTNAME= ubuntu            //我主机名字 
    export  ROS_MASTER_URI=http://192.168.0.105:11311        //这里的ip是主机的,别搞错了, 
//这样我们重启下网络:
net /etc/init.d/networking restart  // 就可以了,主机算配置好了。 
在ARM端: 
    //我们在/etc/hosts文件下加入主机名字,ip 
  192.168.0.105  ubuntu       //注意这里的ip是我电脑的,大家要加自己电脑的!!! 
//然后打开.~/.bashrc 继续添加 

    export ROS_HOSTNAME= tegra-ubuntu            //ARM端名字 
    export  ROS_MASTER_URI=http://192.168.0.105:11311        //这里的ip是主机的,别搞错了, 

//然后重新启动网络,就可以了,大家试试,在一台电脑启动一个乌龟: 
rusrun turtlesim turtlesim_node 
//另外一台启动 
rosrun turtlesim turtle_teleop_key, 
//就可以实现遥控乌龟了

总结

多个ros间进行通信需要在同一个局域网络下,只有一个master_url的情况下进行通信