ROS具有强大的分布式架构和网络通讯,可实现多机通信。
台式机:主机,用rviz监控和无线操作移动机器人; 名称:desktop
笔记本:从机,通过ROS实现移动机器人的自主定位和路径规划等程序;名称: laptop
两台电脑共用一个无线routor,处于同一个subnet中。
(1)查看IP地址
$ifconfig 查看IP地址:
台式机 IP:192.168.1.110
笔记本 IP: 192.168.1.111
eth0为有线,wlan0为无线
$hostname
台式机名: desktop
笔记本名: laptop
采用Zeroconf 名(hostname.local)代替机器的ip地址
$ ping ip
$ sudo service avahi-daemon restart (重新连接)
(2) 设置环境变量
$gedit ~./bashrc
台式机的配置:
export ROS_MASTER_URI=http://.local:11311
export ROS_IP=master.local
笔记本的配置:
export ROS_MASTER_URI=http://master.local:11311
export ROS_IP=slaver.local
(3)修改/etc/hosts文件
在rostopic list中可以看到topic后获取其数据。
$sudo gedit /etc/hosts 从第三行添加内容
desktop的hosts文件中添加 192.168.1.111 slaver
laptop的hosts文件中添加 192.168.1.110 master
重启网络:$sudo /etc/init.d/networking restart
(4)SSH远程操作
实现两机同步:sudo apt-get install chrony
sudo apt-get install openssh-server
笔记本ping台式机:
ssh laptop
ping desktop
参考:
(1) R. Patrick Goebel《ROS by example 1》
(2) 官网ROS Networking的基础教程
export ROS_MASTER_URI=http://master.local:11311export ROS_IP=nico.local