主机: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可能无法运行,这需要进一步的网络配置,后续会继续更新。
五、参考链接
1. ROS多机通讯(unable to communicate with master 解决)_kuai-的博客-CSDN博客https://blog.csdn.net/qq_43481884/article/details/108895044
2.(21条消息) ROS_MASTER_URI和ROS_IP的作用_Jili_nekosensei的博客-CSDN博客_ros_master_urihttps://blog.csdn.net/weixin_45664449/article/details/103578210?utm_medium=distribute.pc_relevant.none-task-blog-baidulandingword-2&spm=1001.2101.3001.4242
3.(21条消息) ROS多机通讯踩坑,(主机和从机之间可以订阅话题,但是看不到话题消息)_蒋程扬的博客-CSDN博客_ros多机通信订阅不到消息https://blog.csdn.net/qq_38441692/article/details/98205852
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)