两个或者多个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的情况下进行通信