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节中进行了详细说明。
在安装软件之前,请确保具有两个基本的curl
和git
工具。如果没有,请运行以下命令安装缺少的工具:
ROS kinetic安装页面(http://wiki.ros.org/kinetic/Installation/Ubuntu)的介绍是很清楚明白的。它们对于笔记本电脑(amd64/i386)和Raspberry Pi(armhf架构)是相同的。在此处将全部介绍。
ROS Melodic安装页面网址是http://wiki.ros.org/melodic/Installation/Ubuntu。阅读网页会发现这些命令与Kinetic的命令相同,因为它们的编写方式不依赖于所选的Ubuntu版本。
按照以下步骤,在笔记本电脑中启动并运行ROS:
1)首先,添加ROS的源存储库:
此命令将ROS存储库源添加到系统。由于此类源依赖于Ubuntu版本,因此上面代码段中的内部命令$(lsb_release-sc)
输出版本,即针对Ubuntu 16.04 xenial或Ubuntu 18.04 bionic。
2)然后,设置密钥:
另外,可以使用curl
代替apt-key
命令。如果位于代理服务器后面,这将很有用:
如果没有获得要验证的密钥,则可能出于安全原因已对其进行了更改(自2020年2月起,该密钥仍处于活动状态)。如果出现类似情况,去官方安装页面http://wiki. ros.org/melodic/Installation/Ubuntu并找到那部分,其中键值0xC1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
需要更换。
3)更新源:
4)如果笔记本电脑上装有Ubuntu 16.04,请安装完整的ROS Kinetic堆栈,包括名为Gazebo的仿真器、导航和机器人感知软件包(推荐):
如果使用的是Ubuntu 18.04,请改为执行ROS Melodic的安装:
或者,可以安装仅包含ROS的桌面版本GUI工具(rqt,rviz
)。稍后,可以在需要时添加用于仿真(Gazebo)、导航和感知的软件包(请记住,这些软件包已经安装了上述步骤4中概述的完整版本):
另外,如果使用的是Ubuntu 18.04,则可以使用以下命令:
5)初始化rosdep
。这是使你能够轻松安装系统依赖项以供源代码编译的组件。为了在ROS中运行某些核心组件,它也是必需的:
6)为交互式Shell终端设置ROS环境:
另外,如果使用的是Ubuntu 18.04,请使用以下命令:
为了避免每次打开新终端时都必须运行此命令,请使用以下命令在.bashrc
文件的末尾添加该命令:
上面代码段中的第二个命令执行.bashrc
文件,刷新自定义设置。如果在Ubuntu 18.04中,只需将kinetic
更换为melodic
:
7)最后,安装rosinstall
,该命令行工具可轻松下载ROS软件包的许多源代码树:
注意,随着对机器人中的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桌面(建议初学者使用此版本,涵盖本书的内容),请使用以下命令:
- 如果希望安装基本版本,即ROS Base,并从Raspberry Pi获得更好的性能,请使用此命令(仅建议高级用户使用;目前,没有桌面GUI):
如本节开头所述,在本章中,仅需要一台笔记本电脑。物理机器人放在本书的第三部分,从第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的所有主要特色功能:工作空间、软件包、节点、消息/服务/行动等。
对于本书中的所有解释,始终提供在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):
然后,安装clang-format-3.8
软件包:
二进制安装包托管在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
文件的对应位置执行以下命令:
完成后,可以通过单击RoboWare Studio图标启动IDE。