解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法

Posted 非晚非晚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法相关的知识,希望对你有一定的参考价值。

安装ros的最后一步rosdep init和rosdep update经常会遇到超时问题,原因是这两步需要访问境外服务器。细心的网友会发现,之前奏效的方法现在成功的概率很小甚至失败。最近有一平台也需要部署ROS环境,也是搜索了很久才发现最新的方法,现在记下来供后来人参考。

1. 老方法

先来总结一下以前的方法,如果你也试过这些方法,可以忽视,直接跳到新方法。

  • 老方法一:修改/etc/hosts

可以通过网站https://www.ipaddress.com 搜索“raw.githubusercontent.com”服务器的ip地址,然后在/etc/houts文件中添加相应的ip,如下在文件末尾增加一行。

151.101.84.133 raw.githubusercontent.com

以前这个方法百试百灵,现在不行了。

  • 老方法二:使用手机热点

有时候将电脑连自己手机的热点,也可以成功,只不过需要多试几次。

  • 更换地址

把“20-default.list”文件中所有yaml链接里的“raw.githubusercontent.com”替换为“raw.github.com”

  • 修改“/etc/resolv.conf”文件

添加谷歌的域名服务器

nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

2. 新方法

网站https://ghproxy.com/支持github的资源代理,亲测有效,我们将用此代理加速rosdep对Github的访问,进而解决rosdep update失败问题。只需要添加代理网址即可。

  • 修改位置1:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

把以下行添加到脚本中的download_rosdep_data()函数中。

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

效果如下:

  • 修改位置2:/usr/lib/python2.7/dist-packages/rosdistro/init.py

将DEFAULT_INDEX_URL 的内容进行替换,即注释原来的内容,替换为下列内容:

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

效果如下:

  • 修改位置3:

这一次修改有四个文本,5处位置,把含有github的地方前面都加上https://ghproxy.com/,即都修改为:https://ghproxy.com/https://github…

/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 68行 119行

拿第一个举例,效果如下:


好了,烦恼终于解决了,可以愉快的使用了!

以上是关于解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法的主要内容,如果未能解决你的问题,请参考以下文章

ROS的 sudo rosdep init 的报错终极解决方案

[ros环境]sudo rosdep init报错raw.githubusercontent.com被down的终极解决办法

安装ROS,在进行sudo rosdep init报错

sudo rosdep init 报错 ERROR:cannot download default sources list from:raw.githubusercontent.com

ROS中V-REP安装和编译的问题解决

蓝桥ROS课程版本不匹配和功能包缺失报错解决