ROS安装——rosdep init、rosdep update失败解决方案

综述

按照ROS官方论坛的步骤,安装ROS的最后几个步骤是

sudo rosdep init
rosdep update

但是偶尔因为网络问题出现失败的问题,本文记录本人在安装ROS过程中的解决方法。

sudo rosdep init

这个语句的作用是在目录/etc/ros/rosdep/sources.list.d下生成文件20-default.list,也就是说,你直接在这个文件夹下面创建这个文件就可以,并且这个文件在github上是直接有的。
在该库的rosdep/sources.list.d目录下就是20-default.list文件,把它用管理员权限复制到/etc/ros/rosdep/sources.list.d就可以。
一开始/etc/ros/rosdep/sources.list.d文件夹是不存在的,需要创建

cd /etc
sudo mkdir ros
cd ros
sudo mkdir rosdep
cd rosdep
sudo mkdir sources.list.d
sudo cp <下载好的20-default-list.d文件的路径> ./

之后修改一下20-default-list.d文件和几个python文件的路径,使得执行rosdep update命令的时候不需要联网,也就解决了ROS安装过程中的网络的问题。
首先要把上述github的代码全部下载下来。

修改20-default-list.d文件

这个文件就是刚刚在/etc/ros/rosdep/sources.list.d下面的文件,没有修改之前是这样的:

# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

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

需要修改的是其中没有加注释的五条语句,以第一条

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

为例,实际上就是把前面从GitHub上下载好的代码文件的路径替换上述的路径,把https改成file,上述语句修改完就是

yaml file://<下载好的代码的路径>/rosdep/base.yaml

比如我修改成

yaml file:///home/user1234/Downloads/rosdistro-master/rosdep/osx-homebrew.yaml osx

注意file:后面是三个斜杠,需要找准对应的文件路径,就可以了。

python文件的修改

这里我只需要修改两个文件,在网上搜索的时候好像看到还需要额外修改三四个文件,但是原理都一样,如果你按照我的方法修改不行,可以自行查找是不是还需要修改其他的文件,这里我需要修改的文件是
1、/usr/lib/python3/dist-packages/rosdep2/rep3.py
2、/usr/lib/python3/dist-packages/rosdistro/init.py
其中对第一个文件的修改是第三十九行

REP3_TARGETS_URL = ...

也是修改成已经下载好的代码里面的对应文件的路径就行。
对第二个文件的修改是第六十八行
修改完之后直接运行

rosdep update

一般都不会出现太大问题,其他的方法像修改网络配置,个人觉得太麻烦,这种方法应该是最稳妥的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值