系统:ubuntu 16.04
主要问题:
rosdep update时频繁出现time out,无法正常运行。
初步考虑应该是国内连接外网(raw.githubusercontent.com)受限的原因,导致下载部分文件出现time out问题。
在网上找了很久,主要解决方法有2种。
1.采用手动下载相关文件的方式,先下载离线文件,再修改/home/xxx/Downloads/rosdistro/rosdep/sources.list.d/20-default.list文件内容,更改以下文件中的url使其指向本地存储。
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
具体操作见这个链接:https://zhuanlan.zhihu.com/p/405920122
2.另一种方法是更换国内镜像源,主要参考这个博主,也是我最终采用的方法。
https://blog.csdn.net/qq_40157728/article/details/121810420
以下是我的处理方法:
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
将上述三个文件中的 “raw.githubusercontent.com/ros/rosdistro/master” 替换为国内镜像网址“gitee.com/ssonic/rosdistro/raw/master”
此时进行rosdep update,出现如下情况:
注意到部分文件的下载地址已经改为镜像网址,但是index.yaml仍然来自原github网址。
于是找到下面的文件,同样将其中的“raw.githubusercontent.com/ros/rosdistro/master” 替换为国内镜像网址“gitee.com/ssonic/rosdistro/raw/master"
sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py
将源代码中如下形式:
DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
更改为:
DEFAULT_INDEX_URL = 'https://gitee.com/ssonic/rosdistro/raw/master/index-v4.yaml'
更改完全部文件后,将原来的20-default.list文件删除再重新执行sudo rosdep init
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep init
rosdep update
再次运行rosdep update,问题得到解决: