介绍

欢迎! 这是一本关于多机器人系统的书。 为什么? 因为它代表着未来!

机器人变得越来越便宜、功能越来越强大,并且在许多“现实生活”场景中越来越有用。 因此,我们看到越来越多的机器人需要共享空间并共同完成任务。 在本书中,我们将介绍机器人操作系统 2 (ROS 2) 以及机器人中间件框架 (RMF),它建立在 ROS 2 之上,并试图简化复杂多机器人系统的创建和操作。

本章介绍了 ROS 2 和用于集成多个机器人的 RMF 系统的动机和目标。

ROS 2

机器人操作系统 (ROS) 是一套用于构建机器人应用程序的软件库和工具。 从驱动程序到最先进的算法,再到强大的开发工具,ROS 可满足您下一个机器人项目的需求。 而且,ROS 全部都是开源的。

自 2007 年 ROS 启动以来,机器人和 ROS 社区发生了很大变化。 ROS 1 最初只是“ROS”,最初是作为 Willow Garage PR2 机器人的开发环境而诞生的,这是一款用于高级研究和开发的高性能移动操控平台。 ROS 的最初目标是为 tdaools 用户提供使用该机器人进行新颖研究和开发项目所需的软件。 同时,ROS 1 开发团队知道 PR2 不是世界上唯一的机器人,也不是最重要的机器人,因此他们希望 ROS 1 也能在其他机器人上发挥作用。 最初的重点是定义抽象级别(通常通过消息接口),以便将大部分软件在其他地方重复使用。

ROS 1 满足了 PR2 的使用情况,但也适用于种类繁多的机器人。 这包括与 PR2 类似的机器人,也包括各种尺寸的轮式机器人、有腿的人形机器人、工业手臂、户外地面车辆(包括自动驾驶汽车)、飞行器、地面车辆等。 ROS 1 的采用也发生了令人惊讶的转变,发生在最初关注的主要是学术研究界以外的领域。 基于 ROS-1 的产品纷纷上市,包括制造机器人、农业机器人、商业清洁机器人等。 政府机构也在更密切地关注 ROS 在其现场系统中的使用;例如,NASA 预计将在部署到国际空间站的 Robonaut 2 上运行 ROS。 所有这些应用程序无疑以意想不到的方式发展了 ROS 平台。 尽管 ROS 1 表现良好,但 ROS 1 团队相信,通过正面解决他们的新用例,他们可以更好地满足更广泛的 ROS 社区的需求。 于是,ROS 2 诞生了。

ROS 2 项目的最初目标是适应不断变化的环境,利用 ROS 1 的优点并改进缺点。 但也有希望保留 ROS 1 的原貌,继续工作并不受 ROS 2 开发的影响。 因此,ROS 2 被构建为一组并行的软件包,可以与 ROS 1 一起安装并与之互操作(例如,通过消息桥)。

在撰写本文时,我们已经发布了第 13 个也是最后一个 ROS 1 官方版本, Noetic Ninjemys, 以及 ROS 2 的第一个 LTS 版本, Foxy Fitzroy.

在网络上可以找到大量且不断增长的 ROS 2 资源。 ROS 索引页面是一个很好的起点 ROS 2 以及本书的 ROS 2 章节中的进一步内容。

祝您旅途愉快!

机器人中间件框架 (RMF)

暂时想象一下任何大型建筑。 它可以是购物中心、住宅区、大学大楼、工作场所、机场、医院、酒店等。 物品是否在建筑物内交付? 大楼地面是否定期清洁? 对于大多数建筑物来说,这两个问题的答案都是“是”。

现在,让我们想想当机器人开始执行这些任务时会发生什么。 在当今的机器人市场上,您可以购买到优秀的送货机器人,也可以购买到优秀的扫地机器人。 但是,如果在建筑物内运送物品的同时清洁地板怎么办? 当人类执行清洁和送货任务时,这种情况是微不足道的:推着推车的送货员和清洁地板的保管员快速一瞥就可以快速达成妥协。 一个人或两个人会找到一种方法来稍微改变他们的任务时间,以完成这两项任务。

不幸的是,机器人在抽象推理、计划和非正式沟通方面的能力远不及人类! 机器人中间件框架 (RMF) 试图避免这种情况的发生。 在当今的市场中,如果所有机器人都是从同一制造商购买的,那么这种单一供应商系统中的机器人将知道彼此的存在并避免彼此冲突。 然而,多供应商、多机器人系统仍然是一个悬而未决的问题,我们预计多供应商机器人部署将成为未来所有大型建筑的常态。 为了解决这种情况,RMF 提供了一套约定、工具和软件实现,允许多个机器人车队相互操作并与共享的建筑基础设施(例如电梯、门、走廊和其他交通自然“瓶颈”)进行互操作流程和任务。

如果没有适当的多供应商机器人框架,当建筑运营商和最终用户被迫使用单一系统或平台提供商时,他们可能会面临重大但隐藏的风险。 隐藏的风险可能会迫使最终用户限制对单一提供商的未来解决方案的选择,以最大限度地降低运营风险并避免多余的集成成本。 随着机器人部署的范围和规模的增加,这个问题变得更加严重,让客户觉得除了继续使用当前的供应商之外没有什么好的选择,并阻止市场新进入者使用机器人。

除了与不同提供商扩展部署的成本风险增加之外,还存在共享资源(例如电梯、门口、走廊、网络带宽、充电器、运营中心屏幕“不动产”以及 IT 人员等人力资源)的固有冲突。和维修技术人员。 随着机器人规模的增加,运营团队考虑管理大型、异构、多供应商的机器人环境变得更加麻烦。

这些问题陈述是 RMF 发展的根本动机。

在前面的“清洁和送货”场景中,RMF 可以充当交通控制器,帮助送货机器人和清洁机器人根据每个任务的相对优先级和重要性协商完成这两项任务的方式。 如果清洁任务很紧急(可能在繁忙的走廊发生泄漏),RMF 可以通过另一组走廊来安排交付任务。 如果送货任务时间紧迫,RMF 可以指示清洁机器人暂停工作并让开,直到送货机器人清理走廊。 当然,这些解决方案是显而易见的,并且可以针对这种特定的“清洁和交付”走廊共享场景轻松手写。挑战来自于尝试在许多场景中通用,同时还尝试“面向未来”以允许扩展到当前未知的机器人、应用程序和任务领域。

本书的其余部分将深入探讨这些细节,以展示 RMF 如何尝试预见和防止资源冲突并提高多供应商、多机器人系统的效率。 这里没有魔法! 所有实现都是开源的,可供检查和定制。

我们要感谢新加坡政府对启动这一雄心勃勃的研发项目的远见和支持,“标准化机器人中间件框架的开发 - RMF 详细设计和通用服务、大规模虚拟测试场基础设施和仿真建模 ”。该项目得到了卫生部(MOH)和国家机器人计划(NRP)的支持。

本材料中表达的任何意见、调查结果和结论或建议均为作者的观点,并不反映 NR2PO 和卫生部的观点。

那么什么是RMF呢?

RMF 是构建在 ROS 2 之上的可重用、可扩展的库和工具的集合,可实现任何类型机器人系统的异构队列的互操作性。 RMF 利用标准化通信协议来部署机器人的基础设施、环境和自动化,以优化关键资源(即机器人、电梯、门、通道等)的使用。 它通过资源分配和通过 RMF 核心防止共享资源冲突,为系统增添了智能,本书稍后将对此进行详细描述。

RMF 足够灵活且强大,几乎可以在任何通信层上运行并与任意数量的物联网设备集成。 RMF 架构的设计方式允许随着环境中自动化水平的提高而进行扩展。 系统和用户可以通过 API 和可定制的用户界面与 RMF 进行交互。 一旦部署在环境中,RMF 将通过允许共享资源和最小化集成来节省成本。 这是机器人开发人员和机器人客户一直在寻找的东西。 简而言之,RMF 如下:

RMF Book Architecture Diagram

RMF 如何创造奇迹?

我们将在本书后面的章节中更详细地探讨每个功能领域,但现在我们还想介绍一些在开发和与 RMF 集成时有用的其他实用程序。

RMF 演示

The demos 是 RMF 在各种环境中的功能演示。 该存储库可作为与 RMF 工作和集成的起点。

流量编辑器

Traffic Editor 是一个 GUI,用于创建和注释 RMF 中使用的平面图。 通过流量编辑器,您可以创建用于 RMF 的流量模式,并引入仿真模型来增强您的虚拟仿真环境。 可以轻松导出 .yaml 文件以在 Gazebo 中使用。

Free Fleet

Free Fleet 是一个开源机器人车队管理系统,适用于没有自己的车队管理器或更愿意使用开源车队管理实用程序并为其做出贡献的机器人开发人员。

RMF 时间表可视化工具

visualizer 是一个基于 rviz 的“rmf_core”可视化工具和控制面板。 它旨在成为 RMF 开发人员的功能工具。

RMF Web UI

rmf-web 是一个可配置的 Web 应用程序,可提供对 RoMi-H 系统的整体可视化和控制。 与前面提到的日程可视化工具相比,仪表板的设计更加“操作员友好”。

RMF Simulation

rmf_simulation 包含模拟 RMF 的模拟插件。插件可在gazeboignition中使用。

Simulation Assets

开源且可分发 simulation assets 创建和共享以加速模拟工作。