sudo rosdep init rosdep update安装ros最后两步骤出现问题

**

Ubuntu安装ROS无敌教程(2021年10月)

**

本教程前半部分基于wiki官网教程,后半部分是手动添加 rosdep update
1.安装Ubuntu
到官网下载 Ubuntu LTS的意思就是稳定版本 18.04 20.04 都是稳定版本,对应不用版本的ROS
http://releases.ubuntu.com/16.04/
十分建议下载官网的版本,速度还可
然后使用UltralSO制作启动安装U盘,官方下载
“https://cn.ultraiso.net/
然后有非常多的教程可供选择,分区里面有个很重要的地方,如果计算机需要休眠,一定要创建swap空间(内存的两倍即可)
2.安装ROS
首先打开ROS的wiki官网,有很多ROS版本,看你对应哪一个版本的Ubuntu,记得要换成国内的源,要不然安装很慢,教程里面有提到,请仔细观看
http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
以ROS kenitic为例,使用里面前四步教程,到rosdep init然后停下来
在这里插入图片描述
上面的两步,2021年在中国大陆不管怎么折腾,什么手机热点,在host里面加没有被屏蔽的网址等等,都不行了,归根结底是网站被屏蔽掉了,访问不了

sudo rosdep init

这一句的功能是从服务器raw.githubusercontent.com里面下载一个文件20-default.list文件到 /etc/ros/rosdep/sources.list.d 这个目录,有一定概率其实可以完成这一步,但是大部分情况是不行,我曾经手机热点成功过一次,但这种尝试很多次的方法不怎么靠谱,所有我们做的就是手动完成这一步,直接创建这个文件。
大部分是这个报错

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.

或者是这个报错

ERROR: default sources list file already exists:
	/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

这是已经偶然创建了20-default.list这个文件,没有关系,反正都是报错。
正常情况下20-default.list的文件内容如下,我们可以看到有五个网址,而这五个网址还是被屏蔽的,这也就是为什么rosdep update无法成功的原因

# 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

我们的思路就是把服务器上的东西都下载到本地来,把raw.githubusercontent.com换成本地的目录
我们需要的找几个文件是在https://github.com/ros/rosdistro上面
可以安装git 工具把文件克隆到本地,安装git工具执行

apt get install git 

克隆rosdistro目录

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

有的时候这一步很慢,那就直接在https://github.com/ros/rosdistro.git里面下载
在这里插入图片描述
下载完成之后得到一个压缩包rosdistro-master,为了方便后续操作,重命名为master,然后新建rosdistro,把master放入其中。
将rosdistro文件夹放到根目录下面,然后执行

sudo cp -r rosdistro /etc/ros

注意,直接放 /etc/ros是放不进去,这个位置的文件写有保护,必须在终端下操作。
完成了这一步执行

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

这时候把默认的https://raw.githubusercontent.com全部替换为 file://etc,修改完成后是这个样子,可以直接把这个复制进去,///是允许的

# os-specific listings first
yaml file:///etc/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx 
 
# generic
yaml file:///etc/ros/rosdistro/master/rosdep/base.yaml
yaml file:///etc/ros/rosdistro/master/rosdep/python.yaml
yaml file:///etc/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro file:///etc/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

然后就完成了 rosdep init 这一步,记得点保存
接下来是对ros里面其他指向raw.githubusercontent.com的网址进行替换,一共有三处,分别执行

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

利用Ctrl+F搜索https://raw.githubusercontent.com替换为 file:///etc
在替换的时候可能会看到这个

FUERTE_GBPDISTRO_URL = 'https://raw.github.com/ros/rosdistro/' \
                     + 'master/releases/fuerte.yaml'

里面的 \ + 是python连接语句的语法,没有什么特殊含义
最后执行

 rosdep date

成功
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值