1.PC端配置
1. PC端(主机)bashrc设置
打开.bashrc 文件,输入以下命令:
export ROS_IP=`hostname -I | awk '{print $1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
export ROS_MASTER_URI=http://`hostname -I | awk '{print $1}'`:11311
设置完成后保存,关闭当前打开的终端重新打开或者在当前打开的每个终端中重新加载一下.bashrc
source ~/.bashrc
获取 PC 的 IP 地址并记录下来
ifconfig
#或者
hostname -i
用ifconfig
的话,在输出的信息中找到如下行(不同版本可能略有差异,但是都会包含 netmask 和
broadcast 关键字)
inet 192.168.31.202 netmask 255.255.255.0 broadcast 192.168.31.255
192.168.31.202
即为PC的ip地址,请记住它,后面需要用到。
2.获取机器人端(从机)的ip
- 可用Advanced_IP_Scanner工具扫描,查看Name 若有raspberry pi 即是 树莓派的ip地址
- 另外,也可树莓派外接显示器(如果是在树莓派开机的状态下连接显示器,则需要重新启动树莓派显示器才有用),在终端输入:
hostname -i
或者
ifconfig
- 如果树莓派连接的是手机热点,则除了使用显示器获取ip外,还可以借助该方法,在手机上安装终端app,输入
ip neigh
即可查看连接到热点的ip。
注意:使用手机热点连接的情况下,关闭手机热点重新打开后,分配的ip地址会变,与原来不同。
2.机器人端配置(每一台机器人都需要)
登录每个机器人端,使用编辑器打开/etc/hosts
文件(操作/etc/hosts
文件需要管理员权限)
sudo vim /etc/hosts
在文件中增加下面这一行(如果已经存在 master_ip 行,则修改 IP 地址为你 PC的 IP 地址即可(在第一步中所获得的),例如 192.168.31.202
为我 PC 的 IP 地址)
192.168.31.202 master_ip
打开.bashrc 文件
vim ~/.bashrc
在文件末尾添加:
export ROS_IP=`hostname -I | awk '{print $1}'`
export ROS_HOSTNAME=`hostname -I | awk '{print $1}'`
export ROS_MASTER_URI=http://master_ip:11311
设置完成后保存,关闭当前打开的终端重新打开或者在当前打开的每个终端中重新加载一下.bashrc
source ~/.bashrc
3.多机器人系统网络连通性测试
配置完成后,便可在PC端使用ssh形式访问机器人端,如:
ssh xtark@192.168.101.134
为方便起见,可以在.bashrc文件中给ssh命令取别名,这样就不用每次输入这么长串的命令了。
alias xtark='ssh xtark@192.168.31.37'
以后直接在终端输入xtark
即可。
网络连通性测试:
- PC 端启动 roscore 节点:
roscore
- 每台机器人端分别检查有无话题,即在终端输入:
rostopic list
- 每台机器人都可以输出以下话题为工作正常:
/rosout
/rosout_agg