一、前言
首先,本教程只负责告诉你如何在一套流程下来能100%安装好ROS,并不会教你如何装双系统或者是Ubuntu单系统,因此这一步请自行查看其他博客,过程有些麻烦但并不是绝对的不可能实现。
二、安装ROS前的基本需知
!!!请一定使用中科大开源网站提供的Ubuntu16.04镜像源!!!切记!!
关于Ubuntu16.04.6-desktop-amd64.iso的下载地址
百度网盘:/s/1KSl57V5MalQyW8gz6FjV4A
提取码:6iq5
或者进入中科大的开源网站:http://mirrors./
到这里下载好iso文件,然后按照其他的博客的教程做好启动盘,安装好Ubuntu系统,启动进入桌面后就可以开始安装ROS-Kinetic了。
三、安装步骤
接下来按照我说的每一步操作就可以了
1.更换源!更换成中科大的源!!!!
可以鼠标右键==>终端,也可以快捷键Ctrl+Alt+T打开终端。然后依次输入以下命令:
cd /etc/apt/sudo cp sources.list sources.list.baksudo gedit sources.list
这样,就可以打开默认的Ubuntu16.04设置的依赖源的文件,由于先前的cp命令已经将原有的进行了拷贝,因此现在将里面的所有内容全部删除,换成以下中科大的源:
deb https://mirrors./ubuntu/ xenial main restricted universe multiversedeb https://mirrors./ubuntu/ xenial-security main restricted universe multiversedeb https://mirrors./ubuntu/ xenial-updates main restricted universe multiversedeb https://mirrors./ubuntu/ xenial-proposed main restricted universe multiversedeb https://mirrors./ubuntu/ xenial-backports main restricted universe multiversedeb-src https://mirrors./ubuntu/ xenial main restricted universe multiversedeb-src https://mirrors./ubuntu/ xenial-security main restricted universe multiversedeb-src https://mirrors./ubuntu/ xenial-updates main restricted universe multiversedeb-src https://mirrors./ubuntu/ xenial-proposed main restricted universe multiversedeb-src https://mirrors./ubuntu/ xenial-backports main restricted universe multiverse
然后保存文件,退出。
2.用先前的方法打开新的终端,输入
sudo apt-get update
然后系统会非常快的将需要的软件包和一些关系依赖进行更新,由于更换了源,因此大概两分钟左右(或者更快)就能完成。如果不更新源,会遇到非常多的下载失败,导致后续安装非常容易失败。
3.重启Ubuntu系统
4.进入“系统设置”,配置Ubuntu仓库,如果看到界面如下图,即该勾选的选项都勾选上了,那么就可以下一步了。否则,勾选以后,按照提示重新进行一次
sudo apt-get update
按照中科大的iso文件安装的Ubuntu16.04一般这里选项都是勾选了的,所以这一步稍微留心点就行了。
5.安装源。这里我由于我们使用国内的ROS源,不使用国外的源。因为网速的限制和一些访问协议的问题,如果使用国外的源,会有很多软件包下载失败。我这里只列出中国的ROS源。
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors./ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'
6.设置Key
sudo apt-key adv --keyserver 'hkp://:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
7.更新
sudo apt-get update
**8.**安装。这里直接安装Desktop-full(包含ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception)
sudo apt-get install ros-kinetic-desktop-full
9.解决依赖————非常重要!!!!!
这个过程是必出现问题的。
(1)sudo rosdep init命令报错,错误如下:
ERROR: cannot download default sources list from:/ros/rosdistro/master/rosdep/sources.list.d/20-default.listWebsite may be down.
这个问题有两种解决办法:
第一种,如果你是希望通过执行这个命令成功来进行下一步的,那么进行如下操作:
打开新终端,输入以下命令
sudo gedit /etc/resolv.conf
将原有的nameserver这一行注释,并添加以下两行:
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
(放心,每次重启你的Ubuntu系统都会重新使nameserver回到你自己的原来的域名)
保存文件并退出,这时候再输入
sudo apt-get update
执行完后再输入
sudo rosdep init
应该就能成功了。如果还不成功可以连上手机的热点试试,成功后会有命令提示你可以输入rosdep update进行下一步了。
第二种方法:那个很长的一段网址上的内容其实是一段文本文件,里面写着另外的一些文件下载网址,因此这种方法是直接越过命令,自己创建好那个文本文件,然后执行rosdep update。过程如下:
用命令行创建一个目录/etc/ros/rosdep/sources.list.d
sudo mkdir -p /etc/ros/rosdep/sources.list.d
在终端定位到这个新目录
cd /etc/ros/rosdep/sources.list.d
新建文件"20-default.list",并进入编辑
sudo gedit 20-default.list
替换成如下内容:
# os-specific listings firstyaml /ros/rosdistro/master/rosdep/osx-homebrew.yaml osx# genericyaml /ros/rosdistro/master/rosdep/base.yamlyaml /ros/rosdistro/master/rosdep/python.yamlyaml /ros/rosdistro/master/rosdep/ruby.yamlgbpdistro /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
保存退出,也可以进行下一步的操作了。
(2)rosdep update命令报错,其中基本上的无法Hit的原因。
解决方法就是前面提到的更换域名的方式。但是,这里即使更换域名了,也可能出现只有部分Hit成功,其他Error的情况。那么解决办法只有一个,更换成手机热点,多试几次了。博主就是这么弄好的,大概有20多次的重复这个命令。
rosdep update
一定要重复到出现下面图片那样的状况,这一步才算成功:
10.环境变量的配置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrcsource ~/.bashrc
11.安装rosinstall
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
按照以上步骤,ROS过程应该是能装好的,毕竟是我这个经过了2周的踩坑填坑过程的人总结了很多方法后得出来的应该是比较靠谱的过程了。流畅的话大概两个小时左右就能装好了,希望对大家有帮助!