Robot Operating System (ROS) 是一个得到广泛应用机器人系统的软件框架,它包含了一系列的软件库和工具用于构建机器人应用。从驱动到最先进的算法,以及强大的开发者工具,ROS 包含了开发一个机器人项目所需要的所有东西。且它们都是开源的。
ROS 虽然名为机器人操作系统,但它与我们一般概念中的操作系统,如 Windows,Linux,iOS 和 Android 这些不同。Windows,Linux,iOS 和 Android 这些操作系统为我们管理计算机的物理硬件资源,如 CPU、内存、磁盘、网络及外设,提供如进程、线程和文件这样的抽象,并提供如读文件、写文件、创建进程、创建线程及启动线程这样的操作。ROS 所工作的层级并没有这么低,它基于一般概念中的操作系统来运行,官方推荐基于 Ubuntu Linux 运行,并在 Ubuntu Linux 操作系统提供的抽象和操作的基础之上,提供了更高层的抽象,如节点、服务、消息、主题等,以及更高层的操作,如主题的发布、主题的订阅、服务的查询与连接等。同时 ROS 还提供开发机器人项目所需的工具和功能库。
ROS 发行版是一个版本标识的 ROS 包集合,这些与 Linux 发行版(如 Ubuntu)类似。ROS 发行版的目的是让开发者可以基于一个相对稳定的代码库来工作,直到他们可以平稳地向前演进。一旦发行版发布,官方就会限制对其的改动,而仅仅提供对于核心包的 bug fixes 和非破坏性的增强。
当前(2018-01-28) ROS 系统已经发布了多个版本。ROS 最新的一些版本如下:
ROS 系统版本 | 时间发布 | 支持时间 | |
---|---|---|---|
ROS Lunar Loggerhead | May 23rd, 2017 | May, 2019 | |
ROS Kinetic Kame | May 23rd, 2016 | LTS,April, 2021 (Xenial EOL) | |
ROS Jade Turtle | May 23rd, 2015 | May, 2017 | |
ROS Indigo Igloo | July 22nd, 2014 | LTS,April, 2019(Trusty EOL) | |
ROS Hydro Medusa | September 4th, 2013 | May, 2015 |
ROS 基本上保持每年一个新版本,每两年一个长期发行版的发布节奏。关于 ROS 版本发布的更多内容,如更多的发行版的介绍,发布的计划等,可以参考 ROS 官方站点的 Distributions 主页。
目前官方推荐使用最近的一个长期支持版本,即 ROS Kinetic Kame,求新的同时兼顾稳定性无疑应该采用这一版本,如果想要尝试最新的功能特性则可以使用最新的发行版 ROS Lunar Loggerhead。
ROS 的安装步骤如下。
配置 Ubuntu 仓库
配置 Ubuntu 仓库,以允许 “restricted”,”universe” 和 “multiverse”。打开 新立得包管理器,如下图:
选择 设置 -> 软件库(R),弹出如下对话框:
打开 “Ubuntu 软件” Tab 页,勾选 “restricted”,”universe” 和 “multiverse” 等选项,如上图所示。通常情况下,这些选项都是默认选中的,因此这一步一般不会遇到什么问题。
设置 sources.list
为 Ubuntu 的包管理器增加源,设置计算机接受来自于 packages.ros.org 的软件。
这一步会根据 Ubuntu Linux 发行版本的不同,添加不同的源。Ubuntu 的版本通过 lsb_release -sc
获得。
一旦添加了正确的软件库,操作系统就知道去哪里下载程序,并根据命令自动安装软件。
设置密钥
这一步是为了确认源代码是正确的,并且没有人在未经所有者授权的情况下,修改任何程序代码。通常情况下,当添加完软件库时,已经添加了软件库的密钥,并将其添加到操作系统的可信任列表中。
设置密钥的命令如下:
如果在连接密钥服务器时遇到了问题,可以尝试在上面的命令中用 hkp://pgp.mit.edu:80
或 hkp://keyserver.ubuntu.com:80
来替换。
安装
首先,需要确保包管理器的索引已经更新至最新:
ROS 中有非常多不同的库和工具。官方提供了四种默认的配置来安装 ROS。也可以独立地安装 ROS 包。
桌面完整安装(推荐采用):ROS,rqt, rviz,机器人通用库,2D/3D 仿真器,导航及 2D/3D 感知
|
|
这种方式的安装,所需要安装的包非常多。
桌面安装:ROS,rqt, rviz,机器人通用库
ROS-Base (Bare Bones):ROS 包,构建和通信库。没有 GUI 工具。
独立的包安装:可以安装一个特定的 ROS 包(用实际的包名来替换下面的命令中的 “PACKAGE”)。
如:
要找到可用的包,可以使用:
通常在做开发时,采用 桌面完整安装 比较方便一点,可以一股脑将所有有可能用到的软件包都安装进来。对于实际的机器,则通常采用 ROS-Base (Bare Bones) + 独立的包 的方式进行安装。
初始化 rosdep
在使用 ROS 之前,需要先初始化 rosdep
。rosdep
使得你可以为你想要编译的源码,以及需要运行的 ROS 核心组件,简单地安装系统依赖。
环境设置
如果在每次一个新的终端启动时,ROS 环境变量都能自动地添加进你的 bash 会话是非常方便,这可以通过如下命令来实现:
如果安装了多个 ROS 发行版,则 ~/.bashrc
必须只 source
当前正在使用的那一版的 setup.bash
。
如果你只想要修改当前 shell 的环境,则输入如下的命令来替换上面的命令:
构建包所需的依赖
到这一步,应该已经安装好了运行核心 ROS 包的所有东西。要创建和管理你自己的 ROS workspace,还有单独发布的许多的工具。比如,rosinstall 是一个常用的命令行工具,使你可以通过一个命令为 ROS 包简单地下载许多源码树。
要安装这个工具及其它的依赖以构建 ROS 包,则运行:
完成完整的 ROS 安装之后,可以对安装做一个简单的测试。可以通过 roscore
和 turtlesim
来做测试。
roscore
测试如下:
turtlesim
测试如下:
注意 turtlesim
的运行依赖于 roscore
的运行,因此在测试 turtlesim
需要同时运行 roscore
。
参考文档
ROS Distributions
Ubuntu install of ROS Kinetic
Done.
打赏
Done。