我们在用ROS系统开发过程中,经常会遇到一个问题:我自己的笔记本想通过网线或WIFI与服务器连接后,我想打开主机的rviz查看相应的显示效果,很不幸的是,还行不通,原因就是一个系统只存在一个Master,所以要让服务器端知道PC端Master在哪,实现ROS多机之间信息共享。
比如:
服务器端的计算机名及IP: robot 192.168.1.1
PC端的计算机名及IP:lzy 192.168.1.100
1.安装ssh服务
sudo apt-get install openssh-server
2.从机与主机连接
这里假如主从机通过wifi连接,在各自终端下运行以下命令确认计算机名及IP地址:
hostname
ifconfig
当完成连接后,可以在本机下新建终端,看能否ping通主机:
ping *robot*
或者ping 192.168.1.1
3.配置主从机IP
3.1 在PC端新建终端,然后运行:
sudo gedit /etc/hosts
在文件中添加服务器端IP地址和对应计算机名,中间用tab键隔开。
192.168.1.1 robot
3.2 在服务器端新建终端,然后运行:
sudo gedit /etc/hosts
在文件中添加PC端的IP地址及对应计算机名,中间用tab键隔开。
192.168.1.100 lzy
修改完成后,在各自终端下相互执行ping 对方计算机名或者IP看能否通讯。
4.配置bashrc
4.1 在服务器端,执行以下命令
sudo gedit ~/.bashrc
在末尾添加两行:
export ROS_HOSTNAME=服务器计算机名
export ROS_MASTER_URI=http://服务器计算机名:11311
4.2 在PC端,执行以下命令
sudo gedit ~/.bashrc
在末尾添加两行:
export ROS_HOSTNAME=本机的计算机名
export ROS_MASTER_URI=http://服务器的计算机名:11311
4.3 保存关闭后,在两机的终端分别运行
source ~/.bashrc
完成所有配置。