1.2 在桌面系统中安装ROS
我们假设你现在使用的是一台安装Ubuntu 16.04或者Ubuntu 18.04 LTS系统的设备,它配置了Intel Core i5 @3.2 GHz的处理器,8GB的内存或者性能相同的硬件。因此我们必须掌握Linux以及命令行工具的基本知识。如果你需要学习或者更新这些知识的话,可以到互联网上查找相关的学习资源,也可以查阅一些关于这些内容的书籍。
在本节中,我们将研究ROS发行版以及其对应支持的操作系统,这些内容将帮助我们根据需求选择正确的组合。
1.2.1 ROS发行版
ROS发行版就是一套ROS功能包集合,它与Linux发行版十分相似。ROS发行版的目的是让开发人员在开始下一步工作之前可以针对相对稳定的代码库进行工作。每个发行版会维护一组稳定的核心功能包,直到该发行版的生命周期结束。
目前最新的推荐ROS发行版是Kinectic Kame,它将一直被支持到2021年5月。而最新的ROS发行版为Melodic Morenia,于2018年5月23日发布,将被支持到2023年5月。不过这个最新的ROS版本存在一个问题:它不支持目前大部分的功能包文件。而这些包还需要一些时间才能完成从之前版本到最新版本的移植,所以我们并不推荐使用这个版本。在ROS网站上可以找到发行版列表(见图1-1)。
图1-1 发行版列表
1.2.2 支持的操作系统
ROS在设计上与Ubuntu系统是完全兼容的,而且按照计划,ROS发行版是与Ubuntu的发行版对应的。此外,Ubuntu ARM、Gentoo、macOS X、Arch Linux和OpenEmbedded也都实现了对ROS的部分支持。表1-1给出了ROS的各种发行版以及它们支持的操作系统。
表1-1
正如在1.2.1节讨论过的,这里有多个ROS发行版可供下载和安装。我建议使用其中有LTS标识的版本,这表示它是最稳定的,同时也是得到了最大支持的版本。
如果你需要使用ROS的最新特性,则可以选择使用最新版本。不过你可能无法立刻使用完整的功能包文件,因为它们从前一个发行版迁移到这个版本需要一定时间。
在本书中我们将会使用两个LTS发行版—— ROS Kinetic和ROS Melodic来完成所有实验。图1-2给出了这两个ROS的选择界面。
图1-2 两个ROS的选择界面
我们可以在ROS网站获得每个发行版的完整安装说明。在这个网站的导航栏中依次单击Getting Started|Install,打开的新页面中将显示最新ROS发行版的图形列表。
1.2.3 如何完成
在下面的内容中我们将会介绍如何安装最新的ROS发行版。
1.配置Ubuntu软件库(repositories)
配置Ubuntu的软件库时,我们首先要在Ubuntu的查找工具栏中找到Software & Updates,然后在Ubuntu Software中的main、universe、restricted和multiverse选项前进行勾选,如图1-3所示。
图1-3 软件与更新(Software & Updates)选项卡
2.配置source.list文件
接下来我们需要设置桌面系统接受来自packages.ros的软件,ROS软件库服务器的信息必须要添加到/etc/apt/source.list中:
$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -
sc) main" > /etc/apt/sources.list.d/ros-latest.list'
3.设置密钥
在向Ubuntu软件库管理器中添加一个新的软件库的时候,我们必须通过添加密钥的方式来使操作系统信任来自它的包。为了确保能够从授权的服务器进行下载,在开始安装之前,我们应该向Ubuntu中添加如下的密钥:
$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv- key 421C365BD9FF1F717815A3895523BAEEB01FA116
4.安装ROS Kinetic
现在,我们开始在Ubuntu上安装ROS Kinetic功能包。第一步是使用以下命令来更新功能包列表:
$ sudo apt-get update
在ROS中有许多不同的库和工具,这里提供了4种不同的配置方式。
(1)桌面完整版(Desktop-Full)安装(推荐):
$ sudo apt-get install ros-kinetic-desktop-full
(2)桌面版(Desktop)安装:
$ sudo apt-get install ros-kinetic-desktop
(3)基础版(ROS-Base)安装:
$ sudo apt-get install ros-kinetic-ros-base
(4)独立ROS功能软件包(Individual Package)安装:
$ sudo apt-get install ros-kinetic-PACKAGE
5.安装ROS Melodic
现在,我们开始在Ubuntu 18.04上安装ROS Melodic功能包。第一步是使用以下命令来更新包列表:
$ sudo apt-get update
在ROS中有许多不同的库和工具,这里同样也提供了4种不同的默认配置。
(1)桌面完整版(Desktop-Full)安装(推荐):
$ sudo apt-get install ros-melodic-desktop-full
(2)桌面版(Desktop)安装:
$ sudo apt-get install ros-melodic-desktop
(3)基础版(ROS-Base)安装:
$ sudo apt-get install ros-melodic-ros-base
(4)独立ROS功能软件包(Individual Package)安装:
$ sudo apt-get install ros-melodic-PACKAGE
6.初始化rosdep
在使用ROS之前,你需要执行rosdep的初始化操作。这样在进行编译的时候,它会帮助你轻松地安装好系统依赖项和在ROS中运行所需的核心组件。
$ sudo rosdep init $ rosdep update
配置环境
干得不错!我们已经完成了ROS的安装。现在大部分的ROS脚本和可执行文件都安装在目录/opt/ros/<ros_version>中。
我们需要将ROS环境变量添加到bash会话中才能访问这些脚本和可执行文件。下面给出了使用source命令为ROS Kinetic添加bash文件的命令。
$ source /opt/ros/kinetic/setup.bash
如果使用ROS Melodic,则需要进行如下设置:
$ source /opt/ros/melodic/setup.bash
如果每次在启动新的shell时,ROS环境变量都可以自动添加到bash会话,这对于我们来说会很方便。
对于ROS Kinetic来说,需要进行如下配置:
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc $ source ~/.bashrc
而如果是ROS Melodic,则需要使用如下配置:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc
如果我们不止安装了一个ROS发行版,那么需要使用source命令来将当前使用版本的setup.bash添加到~/.bashrc中。
$ source /opt/ros/<ros_version>/setup.bash
7.获得rosinstall
rosinstall是ROS中常用的一个命令行工具,它能够帮助我们轻松地使用单个命令从多个源下载ROS包。
这个工具是基于Python的,我们可以使用下面命令来安装它:
$ sudo apt-get install python-rosinstall
8.Build Farm的状态
ROS包是由ROS Build Farm构建而成的。
好了,恭喜你已经完成了ROS的安装。接下来执行下面的命令来检查安装是否正确。
打开一个新的命令行(shell)窗口运行roscore:
$ roscore
然后在另一个命令行(shell)窗口中打开一个turtlesim节点:
$ rosrun turtlesim turtlesim_node
如果一切正常的话,我们就会看到如图1-4所示的界面。
图1-4 ROS执行演示