解决ROS安装中rosdep init 和rosdep update失败的方法

38 篇文章 5 订阅
31 篇文章 43 订阅

实验室新进一批设备,需要配置 ubuntu 系统,安装 ROS 。
在 ROS 安装过程中,有一步:

sudo rosdep init
rosdep update

因国内服务器,无法科学上网,总是出现超时,初始化失败。
往常我们也配置过 ROS ,在这一步失败就忽略了,但同门提出过安装完某功能包无法使用,初始化失败的情况,可能是 ROS 安装时这一步未完成引起的,本次 ROS 安装决定试着解决这一问题,防止以后出现一些 “后遗症”。

网上有很多修改 hosts 文件添加连接 ip 地址,解决 rosdep update 超时问题的方法,经过多番尝试均失败收场。心情焦躁上头时,发现一篇博客修改 rosdep 源码中下载资源的函数,有了效果。现贴上链接,做一些总结。
解决ROS系统 rosdep update超时问题的新方法


网站https://ghproxy.com/支持 github 的资源代理,我们用此代理加速 rosdep 对Github Raw的访问,进而解决 rosdep update 超时问题。
首先定位 rosdep 资源下载函数。从报错信息中得知,该函数名为 download_rosdep_data ,位于 /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 。我们修改这一函数,添加:

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

应用ghproxy的代理服务。

sources_list.py文件中download_rosdep_data函数
用同样的方法修改 /usr/lib/python2.7/dist-packages/rosdistro/__init__.py 里面的 DEFAULT_INDEX_URL ,即在 https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml 之前加上 https://ghproxy.com/

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

在地址前添加 https://ghproxy.com/ 前缀来应用代理服务
以此修改方法,还要修改几处文件

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py   36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py   72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py	    39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py    68119

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行 添加如下代码

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

待以上修改完成后,再次 rosdep update 即可通过。

参考链接:https://blog.csdn.net/leida_wt/article/details/115120940


2021-9-17
若是高版本的(如 noetic 、foxy ),因为已经默认使用 python3 解释器,在 python2.7 文件夹里找不到相应的文件,可以去 python3 文件夹中修改对应的文件,同样是可以的,亲测有效。

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值