• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

rosdep update time out及失败解决方案

人工智能 吴凯荣 1725次浏览 0个评论

rosdep update time out及失败解决方案

在此之前,我已经撰写了一篇名为 sudo rosdep init Error ROS安装问题解决方案 博客并提供了各类解决方案,这些方案是在2020年4月29日提出并经过了一定的质检,可谓屡试不爽;本以为该问题已经被解决,直到今年把师兄的系统搞崩重装系统后发现该问题已经无法通过之前的办法解决。

于是痛定思痛,整理了一篇新的解决方案以应用该问题。

问题简述

操作系统:Ubuntu16.04

ROS版本:Kinetic

笔者在上述问题出现时,尝试在Melodic和Kinetic版本中,通过虚拟机进行了早期博文各类方法的尝试,最终仍然未能成功。其中问题出现的现象依然与早期相似;

在进行ROS安装过程中,我们要更新rosdep,于是首先在终端中键入如下命令

sudo rosdep init

终端反馈如下

ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

该命令的作用是从目标网址中下载 20-default.list 文件,但由于网络或者其他原因,我们无法访问目标网站;

于是参考上一期的博客总结解决方案如下

解决方案

解决步骤 0x01 —— sudo rosdep init

此解决方案的原理是基于手动完成sudo rosdep init的步骤,通过自行创建目标文件 20-default.list

步骤一:首先打开一个终端,执行以下指令创建root并切换至root用户

sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list

步骤二:将以下内容复制进20-default.list文件中

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

步骤三:打开新的终端键入如下命令

rosdep update

如果你在终端上述命令完成了更新,那么教程到此对您来说便已结束,但如果你遇到如下的情况,在 rosdep update 中终端提示 urlopen error timed out,那么你可以阅读解决方案 0x02 对该问题进行解决

rosdep update time out及失败解决方案

解决步骤 0x02 —— rosdep update timed out

步骤一: ping 目标网站查看延时

ping raw.githubusercontent.com

rosdep update time out及失败解决方案

从上图中我们可以看到延时大概在 2000ms 左右

步骤二: Ctrl + C 退出 rosdep update 定位更新代码文件

在运行 rosdep update 的终端中键入 Ctrl + C 退出

rosdep update time out及失败解决方案

此时可以终端反馈中看到如下路径指向

/usr/lib/python2.7/dist-packages/rosdep2/main.py

至此完成了问题定位

解决步骤 0x03 —— 修改等待时间常数

步骤一:此时根据解决步骤0x02 的结论进入如下目录

/usr/lib/python2.7/dist-packages/rosdep2

rosdep update time out及失败解决方案

步骤二:修改 sources_list.py 、 gbpdistro_support.py 、 rep3.py

在当前目录右键启动终端依次键入如下指令修改 DOWNLOAD_TIMEOUT 的值

默认情况下 DOWNLOAD_TIMEOUT = 15.0

结合解决步骤 0x02 中得到的延时结果,此处设定如下 DOWNLOAD_TIMEOUT = 10000.0

# sources_list.py
sudo gedit sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

# gbpdistro_support.py 
sudo gedit gbpdistro_support.py 
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 

# rep3.py
sudo gedit rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

rosdep update time out及失败解决方案

rosdep update time out及失败解决方案

rosdep update time out及失败解决方案

至此,你已经完成了时间常数的修改。

解决步骤0x04 —— rosdep update 成功

当你完成了解决步骤 0x01 – 0x03 你已经完成了本教程 90% 的工作了。

此时你只需启动终端键入如下命令,享受成功的快乐

rosdep update

rosdep update time out及失败解决方案

rosdep update time out及失败解决方案

PS: 如果在上述步骤你仍然遇到提示 error 或者 timed out 的情况,请务必使用手机热点进行更新。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明rosdep update time out及失败解决方案
喜欢 (0)

您必须 登录 才能发表评论!

加载中……