机器人
作者: Víctor Mayoral-Vilches 和 Giulio Corradi,赛灵思公司
连载五:为什么是通过 ROS 2集成自适应计算?
机器人操作系统 (ROS) 是机器人应用开发的实际框架。在 Open Robotics 的维护和指导下,ROS 不仅是一种操作系统,也是一种框架。它由构建和管理机器人的不同工具构成,包括调试和可视化实用工具、编排工具、机器人库(如运动规划、导航、定位等),以及促进机器人系统开发的通信工具。
目前,原始版本的 ROS 文章已被引用 8,500 次以上,充分证明其在研究和学术领域得到广泛的认可,ROS 就诞生在这样的环境下。其主要目的是为开展前沿研发的用户提供所需的软件工具。在像 ROS-Industrial(简称 ROS-I)这样项目的支持下,ROS 在业界的热度持续增长。ROS-I 是一个开源计划,目的是将 ROS 软件的先进功能推广到工业应用。由于 ROS-I 联盟的带动,ROS 现已在业界成功部署。日前该联盟已拥有 80 多家成员,每年在欧洲、美国和亚洲举办会议,广聚数百位机器人专家和知名制造商。后者藉此机会,通过演示介绍他们自己的 ROS 驱动程序。
随着 ROS 超越学术层面开始进入工业和其他领域,ROS 的局限性也日渐凸显,如缺乏嵌入式支持和深度嵌入的原生支持,单机器人软件架构,无实时功能和缺乏安全性等。为了解决这些问题,Open Robotics 于 2014 年开始重新设计 ROS,由此 ROS 2 问世。ROS 2 通过将通信中间件与机器人逻辑分离,突破了大部分已知的局限性。具体而言,Open Robotics 选择“数据分发服务”(DDS) 作为初始通信中间件,并针对各种 DDS 解决方案构建适配器,同时对上层暴露 DDS 特性。尽管如此,ROS 核心层仍然保持免受通信中间件的影响。ROS 2 软件架构具体如 图 1 所示:
图 1:软件架构
上层建立在中间件抽象层 (rmw) 上,后者负责将 ROS 抽象转译成具体的中间件。ROS 客户端库 (rcl) 不会暴露任何具体中间件的实现细节(如 DDS)。这样一来,rcl 保持免受中间件的影响,且能够轻松扩展到其他需要不同传输方式的应用。
ROS 拥有数千名活跃用户,目前已是规模最大的机器人专家群体。ROS 因研究而诞生,现已演进发展有十多年的时间,在各种应用领域得到广泛采用,并且还能服务于工业需求。
ROS 不仅提供工具、库和惯例,而且还拥有不断扩大的机器人专家社区。从概念上讲,ROS 在大多数方面围绕着被称为 ROS 计算图的抽象。计算图内的每个节点都能开展机器人计算,并通过用底层通信中间件实现的通用点对点数据总线与其他节点交换信息。数据总线内的通信通道按话题组织。因此,机器人的总体行为取决于计算图,而计算图可以实现在一部或多部计算机上(以分布方式)。这就完成了第二次抽象,也就是将计算图映射到机器人中可用的计算基干形成 ROS 数据层图。数据层图代表的是物理分组和连接,用于在计算图中实现建模行为。简单地说,其捕获的是机器人的物理现实,包括通信总线、机器人组件(包括传感器和/或致动器),以及计算图与现有机器人组件中可用的计算基干间的映射。
ROS 计算图可以涉及一个或多个机器人,并且本质上是模块化的,能够以分布式或集中式的方式实现。图 2 所示的是 ROS 计算图(图 2 的上部分)和数据层图(图 2 的下部分)。表 1 是对一些最重要的ROS概念的总结。
(b)ROS 2 数据层图:表示用于在计算图中实现建模行为的物理分组和连接。
图2: ROS 抽象用于具备导航能力的 2 轮机器人
表 1:ROS 最相关概念的总结
要点总结: ROS 计算图是一种为机器人总体行为建模的数据结构,而数据层图捕获的则是机器人组件(用于在计算图中实现建模行为)的物理分组和连接。
全部0条评论
快来发表一下你的评论吧 !