解决ROS系统 rosdep update超时问题的新方法(两种)

方法​​​​​​​一:

操作系统Ubuntu20.04

首先定位rosdep资源下载函数。从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python3/dist-packages/rosdep2/sources_list.py。我们修改这一函数,在try后面添加:

url="https://ghproxy.com/"+url

用同样的方法修改/usr/lib/python3/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL。
即将DEFAULT_INDEX_URL 进行如下替换:

DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

除此处外,下述文件中也含有github地址,分别是:

/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python3/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python3/dist-packages/rosdep2/rep3.py	39行
/usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py 68行 119行

对于第五个地址[https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]报错的问题, 在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行添加如下代码

gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url

最后执行

rosdep update

即可

方法二:

git clone https://github.com/ros/rosdistro.git

git clone到本地,记住目录,例如我git clone 到了路径 /home/robot/rosdistro/

查找 文件/usr/lib/python2/dist-packages/rosdep2/rep3.py 中的raw.githubusercontent.com,将 https://raw.githubusercontent.com/ros/rosdistro/master 替换成 file://+第1步中的路径,比如我的是:将 原来文件中的 REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml' 替换成 REP3_TARGETS_URL = 'file:///home/robot/rosdistro/releases/targets.yaml'

同第2步,查找文件/usr/lib/python2/dist-packages/rosdistro/init.py中的raw.githubusercontent.com,将 https://raw.githubusercontent.com/ros/rosdistro/master 替换成 file://+第1步中的路径,比如:将 原来文件中的 DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'替换成 DEFAULT_INDEX_URL = 'file:///home/robot/rosdistro/index-v4.yaml'

sudo rosdep init 重新生成/etc/ros/rosdep/sources.list.d/20-default.list,将该文件中的所有https://raw.githubusercontent.com/ros/rosdistro/master 也替换成 file://+第1步中的路径,比如我修改后的文件:

# os-specific listings first

yaml file:///home/robot/rosdistro/rosdep/osx-homebrew.yaml osx

# generic

yaml file:///home/robot/rosdistro/rosdep/base.yaml
yaml file:///home/robot/rosdistro/rosdep/python.yaml
yaml file:///home/robot/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/robot/rosdistro/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了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值