Table of Contents
本文以wiki_ROS 的官方教程为参考,总结了ROS安装的详细步骤,并且给出了常见的报错解决方案,wiki_ROS官方教程:http://wiki.ros.org/kinetic/Installation/Ubuntu
正文
在正式安装前,首先确认自己的ubuntu版本,本文以Ubuntu16.04下安装ROS Kinetic为例。
(1)更换Ubuntu软件源
由于国内的网络原因,需要先更换Ubuntu的软件源为国内源,使用清华大学开源软件镜像站:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/选择自己对应的Ubuntu版本,拷贝list文件。
a.备份系统默认源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
b.打开软件源文件
sudo vim /etc/apt/sources.list
c.将以下内容替换,注意在清华网选择合适自己的版本。
之后使用命令:
sudo apt-get update
更新源,更新之后,软件源替换为国内源,在apt-get下的下载速度会有显著的提升。
(2)添加Ubuntu的ROS镜像源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
之后添加公钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
之后记得 sudo apt-get update
(3)正式安装
使用命令:
sudo apt-get install ros-kinetic-desktop-full
安装过程需要等待一段时间
(4)配置ROS
使用命令:
sudo rosdep init rosdep update
(5)ROS环境配置
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
ROS环境配置,使得每次打开一个新的终端,ROS环境变量都能自动配置好。要用echo语句将双引号中的命令添加到bash会话中。因为source /opt/ros/kinetic/setup.bash只在当前终端有作用,具有单一时效性。
(6)安装rosinstall
rosinstall是ROS中一个独立分开的常用命令行工具,可以通过一条命令就可以给某个ROS软件包下载很多源码树。在ubuntu上安装这个工具,运行:
sudo apt-get install python-rosinstall
常见问题
如果遇到更新源sudo apt-get update时报错
sudo apt-get update E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) E: Unable to lock directory /var/lib/apt/lists/
表明当前有某个进程正在apt-get,然而我并没有使用任何命令,于是需要kill掉进程。
解决方法是:
sudo rm /var/lib/apt/lists/lock
执行sudo rosdep init 出现错误
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.
解决:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo apt-get update
sudo rosdep init
rosdep update
解决rosdep update 报错
https://blog.csdn.net/Draonly/article/details/103448878
解决方法:
sudo apt-get update && sudo apt-get install python-rosdep sudo rosdep init rosdep update
如果上述的方法无效,在Ubuntu system setting 中找到源替换,换成阿里的源之后在执行rosdep update应该可以解决,我是这么解决的。
转存失败重新上传取消正在上传…重新上传取消转存失败重新上传取消正在上传…重新上传取消