rosdep update失败的解决方法

文章目录

  • rosdep
  • 方法一
  • 方法二
  • 方法三(推荐)

rosdep

不管是安装哪个版本的ros,最后执行的两步都是:

sudo rosdep init
rosdep update

不过,大概率会出现下面的错误:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

上面的错误意味着rosdep配置失败。

事实上,在实际使用过程中,即使不执行上面的两步也并不会影响ros开发环境的使用,但如果执着于搭建完整的ros开发环境的话,可以使用后面的方法来解决rosdep错误。

那么这个rosdep有什么用呢?

其实,rosdep是一个用于安装系统依赖项的命令行工具。比如我们创建了一个工作空间,然后创建了ros包,该ros包需要依赖串口包、地图包等等,那么可以手动依次下载依赖包,也可以使用下面的rosdep命令自动下载相关依赖:

rosdep install --from-paths src --ignore-src -r -y

方法一

最简单粗暴的方式。

rosdep配置失败的原因就是境外资源被屏蔽,无法访问,如果具备条件的话,此问题应可顺利解决。

方法二

修改host文件,添加域名与ip的映射。

  1. 找一个IP地址查询工具,然后输入raw.githubusercontent.com,查询其对应的真实ip地址,这里可以查询
    rosdep update失败的解决方法_第1张图片
  2. 修改host文件,添加映射

sudo gedit /etc/hosts

rosdep update失败的解决方法_第2张图片

  1. 修改完host文件后,重新执行rosdep初始化和update,如果过程中还是遇到错误,多执行几次或者更换网络再执行,此问题应可解决

方法三(推荐)

手动下载、配置,100%成功。

下面步骤中的rosdistro文件是从github中下载,如果github访问也有问题的话,可以自行搜索rosdistro并下载,gitee上也有资源可以下载。

  1. 从github上下载rosdistro文件夹到本地,记好下载到的目录,下面需要用到

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

  1. 修改20-default.list文件,/home/xxx对应上面rosdistro下载到的目录,后面的步骤指的均是此目录

sudo gedit /home/xxx/rosdistro/rosdep/sources.list.d/20-default.list

将文件中的网址https://raw.githubusercontent.com/ros/rosdistro/master修改为下载目录file:///home/xxx/rosdistro

  • 修改前:
    rosdep update失败的解决方法_第3张图片
  • 修改后:
    rosdep update失败的解决方法_第4张图片
  1. 修改sources_list.py文件
    注意:当前配置的ubuntu系统为20.04,ros版本noetic,所以下面的目录中包含python3这个目录,如果是其他版本的ros,这个目录可能是python2.7或者其他,意思是sources_list.py文件所在的路径可能与下面的路径并不完全一致。

sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py

修改第72行

#DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
  1. 修改_init_.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py

修改第39行

#REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
  1. 修改__init__.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py

修改第68行

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
  1. 执行rosdep update

sudo rosdep init
rosdep update

☝ ★★★ — 返回 《ROS机器人开发笔记汇总》总目录 — ★★★ ☝

你可能感兴趣的:(ROS机器人开发笔记,ROS,rosdep,rosdep,init,rosdep,update,ros安装)