ROS安装,解决sudo rosdep init和rosdep update超时错误

应学习要求,需要用到ROS,故记录ROS安装的过程,以便后续学习。本文使用系统为Ubuntu 16.04,ROS版本为kinetic。


1.在虚拟机上安装Ubuntu后,将软件源更换为国内源,清华源,中科大源和阿里源等都可,本文采用中科大源。首先修改源文件,打开终端,输入 sudo gedit /etc/apt/sources.list ,将以下内容覆盖原文件内容。

中科大源  

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

之后执行更新源:sudo apt-get update

2.安装ROS,首先添加安装源,依旧采用中科大镜像,操作如下。

(1)添加源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

(2)添加密匙

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key    421C365BD9FF1F717815A3895523BAEEB01FA116

(3)更新

sudo apt-get update

(4)安装ROS(桌面完整版)

sudo apt-get install ros-kinetic-desktop-full

大概几分钟就可以下载完,之后进行下一步

 

3.ROS安装完成后,需进行初始化,命令行输入 sudo rosdep init ,这个命令主要是下载一个叫20-default.list的文件。但在实际初始化中,我会报错,这时连接手机热点多试几次可以成功。如果成功不了,则进行手动创建(好家伙我下不了,那我自己创建不就行了)。

逐级创建目录/etc/ros/rosdep/sources.list.d/,因为ubuntu中没有ros这个目录。并在此目录下创建20-default.list文件,之后用命令行打开这个文件。

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

将以下内容复制到此文件并保存。

# 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

 

3.而rosdep update命令是通过上述的20-default.list文件中的地址下载配置文件,但因为网站原因,总是会报超时错误,于是我开始慢慢的寻找解决方法(你能翻墙就当我没说),网上有人使用添加最新的ip地址在hosts文件中,也有人使用代理网站,但对于我来说都失败了。最后,我将rosdep update命令所下载的文件直接本地下载到虚拟机中,然后修改20-default.list这个文件。具体过程如下。

(1)下载网盘中的文件后,将该文件放到 /etc/ros 文件夹中。

链接:https://pan.baidu.com/s/1CihkNRbTmwM91c-xDCVaug 
提取码:skat

(2)打开20-default.list文件,将以下内容覆盖原内容,保存退出。

# os-specific listings first
#yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
yaml file:///etc/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
 
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

(3)执行sudo gedit usr/lib/python2.7/dist-packages/rosdistro/__init__.py,ctrl+F查找“DEFAULT_INDEX_URL”,找到具体位置后,按以下代码修改。

# index information

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

DEFAULT_INDEX_URL = 'file:///etc/ros/rosdistro/master/index-v4.yaml'

保存退出后执行rosdep update,出现以下打印信息,则成功了。最好还是连接手机热点,多试几次一般会成功。

 

4.初始化环境变量

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

source ~/.bashrc

 

到这里ROS基本已经安装好了,让我们运行roscore测试一下。结尾出现“started core service [/rosout]”就ok了。

 

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值