ROS安装的爬坑之路
背景
自我感觉应该是经历了ros安装的大部分坑吧,迷迷糊糊的爬了出来,现在写一篇博客总结一下,使用的是Ubantu 16.04
铺垫
由于先安装的是windows10和ubantu16.04的双系统,所以在刚开始的时候我们需要更换ubantu系统中的国内源,个人推荐阿里源,中科源,然后笔者是小白,所以尽可能专业的用自己曲折的经历来给大家一个借鉴
Ubantu16.04更换国内源
1 备份原始源文件source.list
在桌面打开终端,执行命令:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
2.修改源文件sources.list
(1)终端执行命令:
sudo chmod 777 /etc/apt/sources.list 更改文件权限使其可编辑;
sudo gedit /etc/apt/sources.list 打开文件进行编辑;
(3)删除原来的文件内容,复制下面的任意一个到其中并保存(常用的是阿里源和清华源,推荐阿里源);
阿里源
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
3.更新源
桌面终端执行命令:
sudo apt update更新软件列表,换源完成。
在每一次换源或添加环境后都需要进行一次
开始安装ros啦
首先官方教程摆上来
ROS官方教程(中文版):link
由于笔者是16.04的版本,所以安装的是kinetic
建议小白还是安装完整版啦,省事
命令如下
1.设置仓库
2.设置源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
官网源,下载速度较慢,推荐中科大
中科大
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'
3.设置key
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
4.更新
sudo apt-get update
5.正式安装
sudo apt-get install ros-kinetic-desktop-full
可能会出现无法定位软件安装包的情况,这时最好检查一下自己的版本有没有不符
初始化rosdep
这个地方可能会遇到很多的问题
sudo rosdep init
出现问题
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.
首先,先判断自己是下列哪一种情况
1.网络受限制,无法通过浏览器登录网址,这也是笔者的情况,只能科学上网啦嘿嘿
2.可以登录网址,可以考虑自己在对应目录下写一个文件20-default.list,由于网址对应的是文本,所以还是很容易的
如下
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 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
保存,关闭文件。
在终端运行:
rosdep update
咳咳,这应该是最不正规的
正规的两种解决方法可以参考如下
1
执行以下命令后再运行sudo rosdep init
sudo apt-get install ca-certificates
2
sudo c_rehash /etc/ssl/certs
sudo -E rosdep init
rosdep update 中会出现的问题
1
error loading sources list:the read operation timed out
这个参照前辈们的解决方案
更改 /usr/lib/python2.7/dist-packages/rosdep2/下的三个文件sources_list.py、gbpdistro_support.py、rep3.py
中的DOWNLOAD_TIMEOUT = 15.0值,改大一点
实现如下
sudo vim /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
以其中一个为例,其他两个也如此,找到文本中DOWNLOAD_TIMEOUT,改大一点即可,实测有效
2
这个问题我也不用说了
各种问题,大家都可以多试几次
如果始终解决不了,那很有可能是软件源的配置问题
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
如下即可实现,感谢这位前辈,笔者的问题就是这样解决的
接下来就是一些收尾的基础配置了
1.环境配置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
2.安装rosinstall,便利的工具
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
卸载Kinetic
用apt-get方式安装Kinetic的,卸载使用如下命令:
sudo apt-get remove ros-kinetic-*