Docker与ROS分布式通信
主机:docker镜像文件从机:本电脑一、设置IP地址1.确定ROS多机系统均处于同一网络docker run -it 容器名 /bin/bash#进入容器主机:输入ifconfig注:若显示ifconfig: command not found,输入apt-get install net-tools从机:输入ifconfig2.分别在主从机的/etc/hosts文件中加入对方的IP地址和对应的计
主机:docker镜像文件
从机:本电脑
一、设置IP地址
1.确定ROS多机系统均处于同一网络
docker run -it -p 11311:11311 容器名 /bin/bash #进入容器
主机:输入ifconfig
注:若显示ifconfig: command not found,输入apt-get install net-tools
从机:输入ifconfig
2.分别在主从机的/etc/hosts文件中加入对方的IP地址和对应的计算机名
主机:输入vim /etc/hosts
注:若显示vim: command not found,输入apt-get install vim
在文件末尾添加从机IP地址和对应的计算机名
192.168.109.160 从机的hostname
从机:输入 sudo gedit /etc/hosts
在文件末尾添加主机IP地址和对应的容器ID
172.31.0.2 容器ID
还有从机IP和对应的计算机名
192.168.109.160 hostname
设置完毕后,分别在容器和主机下使用ping命令测试网络是否联通。如果双向网络都畅通,就说明底层网络的通信已经没问题。
注:若显示ping: command not found,输入apt-get install inetutils-ping -y
二、设置ROS_MASTER_URI
1.主机设置
在主机终端上输入:
vim ~/.bashrc
在文件末尾添加:
export ROS_MASTER_URI=http://容器ID:11311
export ROS_HOSTNAME=容器ID
保存后,输入:
source ~/.bashrc
2.从机设置
在主机终端上输入:
sudo gedit ~/.bashrc
在结尾处添加:
export ROS_MASTER_URI=http://容器ID:11311
export ROS_HOSTNAME=从机hostname
export ROS_IP=从机IP
然后保存文件,在终端输入
source ~/.bashrc
source /etc/init.d/networking
三、最终测试
首先在容器内启动ros节点,在从机(本机)输入rostopic list可查看到相关话题。
然后在从机(本机)启动launch文件,查看到对应的的节点关系图。
测试成功。
四、注意
docker运行后,VTD可能无法运行,这需要进一步的网络配置,后续会继续更新。
五、参考链接
更多推荐
所有评论(0)