第二篇:ROS机器人网络通信方面的配置

第二篇:ROS机器人网络通信方面的配置

  • 简介
  • 本地局域网配置
  • 利用蒲公英VPN来实现异地组网

简介

此篇包含两个方面:
一方面是最简单的局域网,这种不需要太多的配置就能完成,缺点是只能在同一个网段下跑,优点是反应速度快,反馈比较灵敏
另一方面是通过异地组网的方式来构成模拟网段,配置较为繁琐,反应速度吃网速且有延迟,但优点是只要工控机和上位机联网就能直接通信工作,可以全国甚至全球来实现远程操作的功能(5G到来时就能满足精确度需求)
下面开始介绍这两种方式

本地局域网配置

这个的话使用最简单,有两种配置方法:
第一种是拿个手机开个热点,让上位机和工控机都连这个热点,在手机的热点配置可以直接查到2者的ip地址
第二种是二者都连上一个私有WIFI(不是公网的那种)
Windows打开CMD终端输入:ipconfig查看自己的ip地址
Ubuntu在终端输入:ifconfig查看自己的ip地址
了解到自己的ip地址后,执行以下操作:

1.上位机输入hostname,查看上位机的名字
2.打开上位机的bashrc,检查里面的ip

ROS_IP是你上位机的ip
ROS_HOSTNAME是你的上位机名字.local
ROS_MASTER_URI是工控机的ip
sudo gedit ~/.bashrc		#在这里面改
#export ROS_IP='hostname -I'
#export ROS_HOSTNAME='你上位机的hostname.local'
#export ROS_MASTER_URI=http://xxx.xxx.xxx.xxx:11311			#这里面的ip要换成‘工控机’的ip

更改完保存退出,在新的终端source一遍

source ~/.bashrc
之后进入工控机的网络配置

3.SSH到工控机来操作工控机的终端,若SSH出现拒绝,可能是服务没开或者名字重复
(1)启动SSH服务:https://blog.csdn.net/zhe_csdn/article/details/90053018
(2)跳过SSH检测重复性:

sudo vim ~/.ssh/config
#按i进入编辑模式
#输入以下内容:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
#之后用vim命令保存即可(先按ESC退出编辑模式,再输入':wq!')

之后拿上位机使用ssh远程连接工控机(自此之后就可以远程操作了)

ssh  [email protected]     				   #xxx为工控机的名字(工控机终端最左边那个,不是hostname),后填工控机的ip地址,例如[email protected]
#输入密码
#进入bashrc文件里改
sudo vim ~/.bashrc 		#进去先按i进入编辑模式
#也是找这几个参数,直接把这三行替换成我这个)
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

#改完之后也是保存并退出(退出方式为先按ESC,在输入‘:wq!’退出)
source ~/.bashrc    #最后source一遍

利用蒲公英VPN来实现异地组网

蒲公英VPN是一个能将不同的联网用户集中整合成模拟局域网的一个软件,这里要注册个帐号,上位机和工控机都去官网安装它,然后在上位机和工控机都等录这个帐号,登录成功后即可在控制台或者上位机查到这二者的IP地址,就可以按照如下步骤配置网络了:

1.登录蒲公英VPN,输入与工控机相同的帐号密码
2.前往蒲公英的控制台,检查上位机和工控机是否连上VPN以及查看他们的IP是否有变动:点此进入控制台
3.输入hostname,查看上位机的名字
4.检查上位机的bashrc,如果发现ip变化需要更改

ROS_IP是在蒲公英查到的上位机的ip
ROS_HOSTNAME是你的上位机的名字.local
ROS_MASTER_URI是蒲公英查到的工控机的ip

sudo gedit ~/.bashrc		#在这里面改
 # ROS_IP=XXX.XXX.XXX.XXX
 #ROS_HOSTNAME='你电脑的hostname.local'    
 #ROS_MASTER_URI=http://xxx.xxx.xxx.xxx:11311

5.之后拿上位机使用ssh远程连接工控机

ssh  [email protected]     				   #xxx为工控机的名字(最左边那个),后填工控机的ip地址
sudo vim /etc/hosts
#找到一排空白行,输入
XXX.XXX.XXX		XXX.local        			 #前为上位机ip地址,后为上位机的名字,之后保存并退出
#修改完进入bashrc文件里改
sudo vim ~/.bashrc
#也是找这几个参数,把蒲公英里拿到的工控机ip更换并输入进去)
# ROS_IP=xxx.xxx.xxx
# ROS_HOSTNAME=xxx.xxx.xxx
# ROS_MASTER_URI=http://xxx.xxx.xxx:11311

#改完之后也是保存并退出
source ~/.bashrc    #最后source一遍

自此,网络方面就配置完成了,在工控机roscore打开的情况下在上位机打开rviz没报错就说明成功

你可能感兴趣的:(ROS,机器人,Linux)