書上和網上關於ubuntu下安裝ros的文章很多,但是很多介紹的不完整,並且ubuntu和ros之間其實是有版本對應關系的,並不是所有的ros都能安裝到所有的ubuntu上,(很多書上或者文章介紹用的都是hydro或者indigo,有的給出了ubuntu版本,有的沒有給出,而參考的人很多忽略了ubuntu版本,覺得都可以)而這一點,很多文章沒有提到,結果其他人參考的時候,無法安裝成功。
1. ubuntu和ros的版本對應關系
Ros發布時間 | Ros版本 | 對應的linux版本 |
2016.3 | ROS Kinetic Kame | Ubuntu 16.04 (Xenial) / Ubuntu 15.10 (Wily) |
2015.3 | ROS Jade Turtle | Ubuntu 15.04 (Wily) / Ubuntu LTS 14.04 (Trusty) |
2014.7 | ROS Indigo Igloo | Ubuntu 14.04 (Trusty) |
2013.9 | ROS Hydro Medusa | Ubuntu 12.04 LTS (Precise) |
2012.12 | ROS Groovy Galapagos | Ubuntu 12.04 (Precise) |
在這裏,我們選擇最新的ros和ubuntu組合進行安裝,ubuntu 16.04 64bit+ROS Kinetic。
2. 配置ubuntu的軟件中心,允許安裝不經認證的軟件
首先打开“软件和更新”对话框,具体可以在 Ubuntu 最左上角的搜索按钮中搜索。
打开后按照下图进行配置(确保你的"restricted", "universe," 和 "multiverse."前是打上勾的):
3. 添加國內的ubuntu源
如163和阿裏雲的的源,這樣從國內下載軟件,速度會很快。
修改/etc/apt/sources.list文件
在頭部添加如下內容:
deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
deb http://archive.canonical.com/ubuntu xenial partner
deb-src http://archive.canonical.com/ubuntu xenial partner
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
保存後,更新源,執行sudo apt-get update即可。
然後修改“軟件和更新”中的源代碼下載的源,如上圖中的清華大學的源。
4. 安裝ros
4.1 添加ros源
打开一个控制台(Ctrl + Alt + T), 输入如下指令:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
设置秘钥:(根据大家的反馈,我原来写的密钥少了一个6,现在这个密钥是对的了,并且不要再换源,否则还会有坑)
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116
然後執行sudo apt-get update刷新源的信息,否則後面就無法定位ros安裝包。
4.2 安裝ros系統
ROS kinetic 也有很多版本,這裏我們處於學習的目的,安裝完整版,即full版
sudo apt-get install ros-kinetic-desktop-full
報錯,如下:E 无法定位软件包 ros-kinetic-desktop-full,解決辦法:sudo apt-get update.
如果成功的話,會出現下圖所示的內容:
需要下載500多MB的內容,剩下就是等待啦。根據網速的不同,等待的時間不等。
安装完成后,可以用下面的命令来查看可使用的包:
$ apt-cache search ros-kinetic
到现在,ros是安装完了,但是還不能使用。需要先進行初始化。
4.3 初始化ros系統
在开始使用ROS之前还需要初始化rosdep,它可以方便在需要编译某些源码的时候为其安装一些系统依赖,同时也是某些ROS核心功能组件所必需用到的工具。
$ sudo rosdep init
$ rosdep update
然后初始化环境变量:
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
上面两句非常非常非常重要,很多小伙伴在日常的开发过程中,有的找不到 Package, 找不到node, 很多情况下都是没有添加source。
最后安装一个非常常用的插件:
$ sudo apt-get install python-rosinstall
好,到这里,所有安装就都完事啦。
为了保险,重启一下,测试一下ROS。
$ export | grep ROS
查看ROS相關環境變量是否設置成功。
5. 配置ROS
5.1配置setup.bash
將/opt/ros/kinetic/setup.bash添加到bashrc中,以便於直接快速啓動相關命令,
source /opt/ros//setup.bash
5.2 創建ROS的工作空間
下面我们开始创建一个catkin 工作空间:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
即使这个工作空间是空的(在'src'目录中没有任何软件包,只有一个CMakeLists.txt链接文件),你依然可以编译它:
$ cd ~/catkin_ws/
$ catkin_make
catkin_make命令在catkin 工作空间中是一个非常方便的工具。如果你查看一下当前目录应该能看到'build'和'devel'这两个文件夹。在'devel'文件夹里面你可以看到几个setup.*sh文件。source这些文件中的任何一个都可以将当前工作空间设置在ROS工作环境的最顶层,想了解更多请参考catkin文档。接下来首先source一下新生成的setup.*sh文件:
$ source devel/setup.bash
要想保证工作空间已配置正确需确保ROS_PACKAGE_PATH环境变量包含你的工作空间目录,采用以下命令查看:
$ echo $ROS_PACKAGE_PATH
顯示爲:/home/oldking/catkin_ws/src:/opt/ros/kinetic/share
到此你的工作环境已经搭建完成,接下来可以学习 ROS文件系统教程.