ROS在多机器人上的运行
查看各台主机上的ip地址
主要有一下两种查询方式:
1. 点击网络链接图标,然后点击,网络信息,得到下图:
从上图可以看到本机的ip地址等网络信息。
2. 利用ifconfig -a 从终端查看网络信息,如下图所示:
根据以上两种方式,我们可以得到要同时运行ros的各个主机上的ip, 然后我们把ip地址和对应的主机名,加到初本机外的其他电脑的hosts文件中(/etc/hosts)中。
3. 查看主机之间是否连通
利用ping指令分别ping对方的电脑
例如在gaoyajun-desktop上执行:ping gaoyajun-laptop
双向执行,确保双向连通。
安装ssh
ubuntu默认没有安装ssh,执行一下指令,安装ssh:
sudo apt-get install openssh-server
在每台主机上安装了ssh之后,执行以下指令测试ssh:
ssh 用户名@主机名
如果没有错误,则就登陆到了指定电脑的执行账户上了。按ctrl d退出。
修改ROS环境变量
我们只需要在各台主机的.bashrc文件上加上ROS_HOSTNAME和ROS_MASTER_URI环境变量:
如下:export ROS_HOSTNAME=本机名1
export ROS_MASTER_URI=http://主机名2:11311
注:主机名1为本机的主机名,主机名2为要运行roscore的主机名,当然用主机名的时候,前提是你已经把映射写到了hosts文件里,如果没有写入的话,用ip地址,所以的主机用一个roscore即可!
测试
首先在主机1上运行roscore,然后即可在主机2上运行rosrun指令,如果主机2没有报错,说明配置成功。当在主机1上要运行主机2的包的时候,需要先用ssh指令登陆到主机2上,然后执行指令即可。