一定能解决ROS系统 rosdep update超时问题de简单方法

rosdep update命令使用

该方法是可以跳过sudo rosdep init初始化命令设置的,前提是安装完ros,rosdep update是安装一些依赖库,比如在Cartographer、ORB-SLAM等算法需要使用到一些依赖库,是必须安装的,如果不是有需要的,只是使用ros一般依赖,是不需要rosdep update的


重点重复说明:(因为大家错的较多)

1、记录rosdistro存放地址,例如/home/LiFeiHong/rosdistro,自己的改成/home/你用户名/rosdistro,下面都是按照这样改,你最后报错如果出现LiFeiHong,说明你路径错了;

2、另外本方案在18.04和16.04测试都没问题,20.04Ubuntu版本可能需要对路径的python2.7改成python3.0


1.首先将下面仓库的内容clone到本地

方法一:
csdn资源直接下载rosdistro
方法二:

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

方法三:
如果git clone 速度较慢,可以直接拷贝https://github.com/ros/rosdistro.git到网页下载,速度提高,
不过需要记得将下载包名字rosdistro-master改称rosdistro

记录rosdistro存放地址,例如/home/LiFeiHong/rosdistro
如果是自己的改成/home/user/rosdistro,其中user表示用户名,下面都是按照这样改

2.修改/usr/lib/python2.7/dist-packages/rosdep2/rep3.py文件

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

注意:如果进去不到rosdep2文件夹,直接在usr文件夹下搜索rep3.py。就能查找到对应的路径,以下方法同样。
将REP3_TARGETS_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml’ 替换成 REP3_TARGETS_URL = 'file:///home/LiFeiHong/rosdistro/releases/targets.yaml'
注意LiFeiHong 改成你的用户名

3.修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py文件

cd /usr/lib/python2.7/dist-packages/rosdistro
sudo gedit __init__.py

将原来文件中的 DEFAULT_INDEX_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’ 替换成 DEFAULT_INDEX_URL = 'file:///home/LiFeiHong/rosdistro/index-v4.yaml'
注意LiFeiHong 改成你的用户名

4.配置20-default.list文件

如果者查看/etc/ros/rosdep/sources.list.d路径已经有20-default.list文件(之前已经运行过sudo rosdep init的原因),就直接跳过4.1步奏,运行4.2步奏,---------------------======

4.1、创建文件夹sources.list.d,并生成20-default.list 文件

 sudo mkdir -p /etc/ros/rosdep/sources.list.d  

生成20-default.list

cd /etc/ros/rosdep/sources.list.d  
sudo touch 20-default.list 

到这里已经生成/etc/ros/rosdep/sources.list.d/20-default.list文件-------------------======

4.2、打开20-default.list文件,将里面内容修改为下面的代码,注意内容/home/LiFeiHong修改为自己的记录路径

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

内容改成:

# os-specific listings first
yaml file:///home/LiFeiHong/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/LiFeiHong/rosdistro/rosdep/base.yaml
yaml file:///home/LiFeiHong/rosdistro/rosdep/python.yaml
yaml file:///home/LiFeiHong/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/LiFeiHong/rosdistro/releases/fuerte.yaml fuerte

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

注意的是yaml file://表示固定格式/home...表示文件目录,所以是yaml file:///
注意LiFeiHong 改成你的用户名

5.最后直接

rosdep update

出错注意:

一:

网络不需要代理,用代理而没有代理专属的ip(翻墙),反而不能下载(比如结果出现(https://ghproxy.com/file);
方法:在网络设置,关闭代理,或搜索linux关闭代理方法

二:

修改的路径所有路径不能有中文,空格或者特殊符号(@!*&…)。

三:

文件路径错误,代码出现No such file or directory等文字
解决方法:把下载的文件copy一下,然后粘贴到终端就可以看到你文件存放的路径。

相关文章

文章浏览阅读2.3k次,点赞4次,收藏22次。最近安装了CARLA预...
文章浏览阅读6.3k次,点赞5次,收藏15次。在清华镜像中下载U...
文章浏览阅读5k次。linux环境, python3.7.问题描述: 安装...
文章浏览阅读4.2k次,点赞4次,收藏17次。要安装这个 standa...
文章浏览阅读894次,点赞51次,收藏31次。在安卓使用vscode主...