随着机器人技术的发展,ROS (Robot Operating System) 成为现今最流行的机器人操作系统。ROS 的庞大社区和图片化界面使得其易于开发和使用,同时也在学术与工业界得到广泛应用。但是,在进行 ROS 编程和开发的过程中,很多ROS用户不知道该如何正确地进行ROS上网配置。本篇文章将从多个角度为大家介绍ROS上网配置的详细步骤。
1. ROS上网配置背景
在ROS上网配置之前,我们需要先了解ROS软件包在下载、安装、使用等阶段都需要联网,特别是在Rosdep中使用的apt-get,如果操作系统在没有联网情况下调用,那会得到一个错误提示: `Could not resolve ...` 。
因此,建立一个好的上网配置,对于ROS软件包的使用和维护是至关重要的。
2. ROS上网配置方式
下面我们将介绍两种不同的ROS上网配置方法:
(1) 通过 Proxy 上网
一般情况下,公司、学校都会有局域网,如果要上网需要进行代理设置。使用代理进行上网自然也是可以的,但在 ROS 上有这样两个问题:
a. ROS使用curl工具,如果要使用代理,curl需要开启代理设置:
```bash
# 先判断curl当前是否支持代理
curl -V
# 如果不支持,需要重新安装curl
sudo apt-get install curl
# 如果curl支持代理
export http_proxy="http://proxy.example.com:8080"
export https_proxy="https://proxy.example.com:8080"
rosdep update #重新执行rosdep update操作
```
b. 使用 cURL 的 `easy` 接口,需要依赖 `libcurl3-gnutls` 和 `libcurl4-openssl-dev` 两个包。
```bash
# 安装依赖
sudo apt-get install libcurl3-gnutls
sudo apt-get install libcurl4-openssl-dev
```
(2) 直接上网
如果局域网做了强制代理,可以选择使用4G 网络或者外网 VPN 直接上网方式,以便给 ROS 进行网络配置。
如果确定使用了这种方式,那么ROS操作系统自带的 `rosdep` 配置会默认从国外的镜像中下载更新,下载速度非常快。
3. ROS上网配置要点
(1) 修改代理系统全局配置
为了让整个系统都能够在代理下联网,我们需要将代理地址和端口号配置到 ~/.bashrc 中。
(2) 设置ROS网络环境变量
ROS依赖于网络来获取软件包或源代码更新等操作,掌握ROS 的网络设置十分重要,ROS在网络设置上要分为两种情况:
1. 发布/订阅多机通信
ROS有自己的TCPROS协议,使用的是TCP/IP.
接下来,需要设置环境变量ROS_HOSTNAME和ROS_IP为本机的IP地址。
```bash
# 查看IP方法
ifconfig
# 设置环境变量ROS_HOSTNAME和ROS_IP
export ROS_HOSTNAME=192.168.1.104
export ROS_IP=192.168.1.104
```
2. 在ROS系统内部下载依赖
Rosdep是ROS使用的包依赖管理工具,能够自动下载和安装更新依赖。但是,我们需要给 Rosdep 设置代理。
```bash
# 设置http,https代理
export http_proxy="socks5://127.0.0.1:7890"
export https_proxy="socks5://127.0.0.1:7890"
```
(3) 实时更新网络环境
本地环境变化小,不一定需要实时更新网络环境,但是在到外地出差或者使用动态IP时,我们需要实时更新网络环境。
```bash
# 配置一个脚本,定时30秒更新一次IP和主机名
while sleep 30;do
export ROS_HOSTNAME=$(hostname -I)
export ROS_IP=$(hostname -I)
done &
```
4.
扫码咨询 领取资料