ROS :一个开源机器人操作系统
Morgan Quigley ∗ , Brian Gerkey ? , Ken Conley ? , Josh Faust ? , Tully Foote ? , Jeremy Leibs ? , Eric Berger ? , Rob Wheeler ? , Andrew Ng ∗
∗计算机科学系,斯坦福大学,
† Willow Garage, Menlo Park, CA
‡计算机科学系,南加州大学
摘要— 本文概述了ROS,一个开源机器人操作系统。ROS不是传统意义上的流程管理和调度的操作系统;相反,它提供了异构计算集群的主机操作系统之上的结构化通信层。在本文中,我们将讨论ROS与现有机器人软件框架的关系,简要介绍一些使用ROS的可用应用软件。
I.简介
编写机器人软件是很困难的,特别是随着机器人技术的规模和范围不断扩大。不同类型的机器人可能会有非常不同的硬件,使得代码复用变得非常重要。除此之外,所需要的庞大的代码量可能令人望而生畏,因为它必须包含从驱动程序级软件开始的深层次堆栈,并通过感知,抽象推理等方式继续进行。由于所需的专业知识范围远远超出了任何一位研究人员的能力,机器人软件架构还必须支持大规模的软件集成工作。
为了迎接这些挑战,许多机器人研究人员,包括我们自己,以前已经创建了各种各样的框架来管理复杂性,并促进实验软件的快速原型设计,产生了目前在学术界和行业中使用的许多机器人软件系统·[1]。这些框架中的每一个都是为了特定目的而设计的,也许是为了回应其他现有框架的被忽视的弱点,或者将重点放在设计过程中被认为最重要的方面。
本文中描述的框架ROS也是在设计周期中进行权衡和优先排序的产物。我们认为,随着机器人系统越来越复杂,对于大型综合机器人研究的重视将在各种各样的情况下变得有价值。在本文中,我们讨论了ROS的设计目标,我们的实现方式如何,并演示了ROS如何处理机器人软件开发的几个常见用例。
ROS: an open-source Robot Operating System
Morgan Quigley ∗ , Brian Gerkey ? , Ken Conley ? , Josh Faust ? , Tully Foote ? , Jeremy Leibs ? , Eric Berger ? , Rob Wheeler ? , Andrew Ng ∗
∗ Computer Science Department, Stanford University, Stanford, CA
† Willow Garage, Menlo Park, CA
‡ Computer Science Department, University of Southern California
Abstract— This paper gives an overview of ROS, an open-source robot operating system. ROS is not an operating system in the traditional sense of process management and scheduling; rather, it provides a structured communications layer above the host operating systems of a heterogenous compute cluster. In this paper, we discuss how ROS relates to existing robot software frameworks, and briefly overview some of the available application software which uses ROS.
I. INTRODUCTION
Writing software for robots is difficult, particularly as the scale and scope of robotics continues to grow. Different types of robots can have wildly varying hardware, making code reuse nontrivial. On top of this, the sheer size of the required code can be daunting, as it must contain a deep stack starting from driver-level software and continuing up through perception, abstract reasoning, and beyond. Since the required breadth of expertise is well beyond the capabilities of any single researcher, robotics software architectures must also support large-scale software integration efforts.