ROS机器人编程实践
上QQ阅读APP看书,第一时间看更新

3.3 配置ROS开发环境

在本节中,我们将介绍在笔记本电脑上如何安装和配置轻松使用ROS所需的工具。简而言之,在本章的实际练习开始之前,这些是需要完成的步骤:

1)确保计算机运行Ubuntu 16.04或Ubuntu 18.04。在撰写本书时,这两个都是LTS版本,具有最丰富的ROS软件包集合。

2)在笔记本电脑上安装并设置ROS。还提供了在Raspberry Pi(GoPiGO3机器人的CPU)中安装ROS的指南。但是,在本书的第二部分中,只需要笔记本电脑,因为我们将处理机器人的虚拟模型。本书的第三部分将讲解物理机器人的内容。

3)对于集成开发环境(Integrated Development Environment,IDE),我们将使用RoboWare Studio,它基于Microsoft通用IDE Visual Studio Code。我们在3.3.2节中提供了有关设置的说明。

因此,假设笔记本电脑具有所需的操作系统,那么现在让我们继续进行配置的第二步。

3.3.1 安装ROS

如果在Ubuntu 16.04下工作,则需要安装ROS的Kinetic发行版。另一方面,如果具有Ubuntu 18.04,则要安装的ROS的相应版本称为Melodic。请记住,这些选择已在3.1节中进行了详细说明。

在安装软件之前,请确保具有两个基本的curlgit工具。如果没有,请运行以下命令安装缺少的工具:

052-01

ROS kinetic安装页面(http://wiki.ros.org/kinetic/Installation/Ubuntu)的介绍是很清楚明白的。它们对于笔记本电脑(amd64/i386)和Raspberry Pi(armhf架构)是相同的。在此处将全部介绍。

009-03 ROS Melodic安装页面网址是http://wiki.ros.org/melodic/Installation/Ubuntu。阅读网页会发现这些命令与Kinetic的命令相同,因为它们的编写方式不依赖于所选的Ubuntu版本。

按照以下步骤,在笔记本电脑中启动并运行ROS:

1)首先,添加ROS的源存储库:

052-02

此命令将ROS存储库源添加到系统。由于此类源依赖于Ubuntu版本,因此上面代码段中的内部命令$(lsb_release-sc)输出版本,即针对Ubuntu 16.04 xenial或Ubuntu 18.04 bionic。

2)然后,设置密钥:

053-01

另外,可以使用curl代替apt-key命令。如果位于代理服务器后面,这将很有用:

053-02

009-03 如果没有获得要验证的密钥,则可能出于安全原因已对其进行了更改(自2020年2月起,该密钥仍处于活动状态)。如果出现类似情况,去官方安装页面http://wiki. ros.org/melodic/Installation/Ubuntu并找到那部分,其中键值0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654需要更换。

3)更新源:

053-03

4)如果笔记本电脑上装有Ubuntu 16.04,请安装完整的ROS Kinetic堆栈,包括名为Gazebo的仿真器、导航和机器人感知软件包(推荐):

053-04

如果使用的是Ubuntu 18.04,请改为执行ROS Melodic的安装:

053-05

或者,可以安装仅包含ROS的桌面版本GUI工具(rqt,rviz)。稍后,可以在需要时添加用于仿真(Gazebo)、导航和感知的软件包(请记住,这些软件包已经安装了上述步骤4中概述的完整版本):

053-06

另外,如果使用的是Ubuntu 18.04,则可以使用以下命令:

053-07

5)初始化rosdep。这是使你能够轻松安装系统依赖项以供源代码编译的组件。为了在ROS中运行某些核心组件,它也是必需的:

053-08

6)为交互式Shell终端设置ROS环境:

053-09

另外,如果使用的是Ubuntu 18.04,请使用以下命令:

054-01

为了避免每次打开新终端时都必须运行此命令,请使用以下命令在.bashrc文件的末尾添加该命令:

054-02

上面代码段中的第二个命令执行.bashrc文件,刷新自定义设置。如果在Ubuntu 18.04中,只需将kinetic更换为melodic

054-03

7)最后,安装rosinstall,该命令行工具可轻松下载ROS软件包的许多源代码树:

054-04

注意,随着对机器人中的Raspberry Pi与笔记本电脑之间的通信不断熟悉,可以从笔记本电脑进行所有桌面交互,并使Raspberry Pi仅执行特定于机器人的任务。这种方法将使GoPiGo3响应更快,因为在Raspberry Pi和ROS基本版本中拥有最小的Ubuntu服务器,该版本不包括GUI工具,仅包含核心软件包以及编译和通信库。

可以参考下一节,获取有关如何为机器人准备ROS环境的特定详细信息。

Raspberry Pi中的Ubuntu和ROS

由于将仅在Raspberry Pi中使用核心ROS软件包,因此建议安装最新的Ubuntu LTS版本,即Ubuntu Mate 18.04 Bionic(https://ubuntu-mate.org/download/)。这是因为,尽管几乎所有贡献的ROS软件包都可用于ROS Kinetic,但也确实在2018版的ROS Melodic中已经提供了核心软件包。因此,可以安心地在Ubuntu 18.04下的Raspberry Pi中安装此发行版。

前面已经提到,ROS Melodic安装页面上的说明(http://wiki.ros.org/melodic/Installation/Ubuntu)是很清楚明白。

按照下一个准则确定要安装的版本:

  • 如果要安装ROS桌面(建议初学者使用此版本,涵盖本书的内容),请使用以下命令:
054-05
  • 如果希望安装基本版本,即ROS Base,并从Raspberry Pi获得更好的性能,请使用此命令(仅建议高级用户使用;目前,没有桌面GUI):
054-06

如本节开头所述,在本章中,仅需要一台笔记本电脑。物理机器人放在本书的第三部分,从第6章开始。在该章中,我们将提供必要的详细信息并在Raspberry Pi中正确设置软件。

3.3.2 集成开发环境

在ROS wiki部分专门介绍集成开发环境(http://wiki.ros.org/IDEs)——在本书撰写时共有15个IDE。在所有这些选择中,由于如下因素,选择使用RoboWare Studio:

  • 它是Visual Studio Code(VSC)的分支,VSC是Microsoft的通用且可自定义的IDE,已在开发人员社区中广泛使用。它是开源的、轻巧的、易于使用的,并提供了许多有用的插件,从而可以根据自己的特定需求自定义IDE环境。RoboWare Studio建立在VSC代码之上,提供ROS开发功能。此外,IDE的插件面板是自定义的,因此可以轻松地按需安装ROS软件包。目前的版本是1.2.0,这是在2018年6月发布的。它的代码是开源的,它公开发行在GitHub上的TonyRobotics/RoboWare-Studio(https://github.com/TonyRobotics/RoboWare-Studio)。
  • RoboWare Studio具有开箱即用的功能,可以直接使用ROS的所有主要特色功能:工作空间、软件包、节点、消息/服务/行动等。

009-03 对于本书中的所有解释,始终提供在bash中执行的指令,因为这是命令ROS的本地方式。

至少在两种情况下(如RoboWare Studio之类的IDE)可能会有所帮助:

  • 开始学习ROS时,如果不太熟悉命令行,避免处理命令行的复杂性。
  • 在开发项目时,IDE有助于管理大量文件以及组成应用程序的ROS软件包。这样的软件包提供了诸如坐标转换、计算机视觉、机器人导航等功能。

无论如何,我们的建议是使用RoboWare Studio进行本书的第一轮学习,而对于第二轮,请直接转到bash。如果要跳过其中之一,则放弃IDE选项并继续使用命令行学习。练习bash命令是真正了解ROS工作原理的最佳方法,并且你肯定知道这不仅适用于ROS,而且适用于在Linux系统下运行的任何其他软件工具。

因此,从现在开始,使用选择的IDE来编辑文件,并始终使用ROS命令行(如果希望继续使用GUI界面,则可以使用RoboWare)。

安装RoboWare Studio

前提是你已经在计算机上安装了ROS,在安装所需的依赖后,在终端执行下面的命令代码,按照RoboWare Studio说明书中的说明(https://github.com/TonyRobotics/RoboWare/blob/master/Studio/RoboWare_Studio_Manual_1.2.0_EN.pdf):

055-01

然后,安装clang-format-3.8软件包:

056-01

二进制安装包托管在GitHub:https://github.com/TonyRobotics/RoboWare/blob/master/Studio。在Ubuntu中下载最新版本的RoboWare Studio,针对AMD64系统的链接如下:https://github.com/TonyRobotics/RoboWare/raw/master/Studio/roboware-studio_1.2.0-1524709819_amd64.deb。还可以在GitHub上查看可用的源代码(https://github.com/tonyrobotics/roboware-studio)。

安装非常简单,在下载.deb文件的对应位置执行以下命令:

056-02

完成后,可以通过单击RoboWare Studio图标启动IDE。