1.2 ROS概述
ROS是一个开源的、灵活的机器人软件框架,用于机器人应用程序编写。ROS提供了一个硬件抽象层,开发者可以在其中构建机器人应用程序,而不必担心底层硬件。ROS还提供不同的软件工具来可视化和调试机器人数据。ROS框架的一个核心是消息传递中间件,在这个中间件中,进程可以相互通信和交换数据,即使它们运行在不同的机器上。ROS消息传递可以是同步的,也可以是异步的。
ROS中的软件以功能包的形式组织,具有良好的模块性和可重用性。使用ROS消息传递中间件和硬件抽象层,开发人员可以创建大量的机器人功能,例如,地图构建和导航(在移动机器人中)。ROS中的几乎所有功能对机器人而言都是“不可知”的(即基于标准接口封装起来的),因此所有类型的机器人都可以使用它。新的机器人可以直接使用那些功能包,而无须修改功能包中的任何代码。
ROS在大学里有着广泛的合作关系,许多开发人员对ROS的发展做出了贡献。可以说ROS是一个由全世界开发者支持的社区驱动项目。这个活跃的开发者生态系统将ROS与其他机器人框架区分开来。
简而言之,ROS是管道(或通信,即通信机制)、(开发)工具、(应用)功能和生态系统的组合,这些功能如图1.1所示。
ROS项目于2007年在斯坦福大学以Switchyard为名启动,随后在2008年由一家名为Willow Garage的机器人研究初创公司进行开发。ROS的主要开发工作由Willow Garage完成。2013年,Willow Garage的研究人员成立了开源机器人基金会(Open Source Robotics Foundation,OSRF)。ROS现在由OSRF积极维护。下面,让我们介绍几个ROS发行版。
图1.1 ROS“公式”(图片来源:ros.org。基于知识共享授权协议CC-BY-3.0:https://creativecommons.org/licenses/by/3.0/us/legalcode)
下面是两个组织的网址。Willow Garage:http://www.willowgarage.com/。OSRF:http://www.osrfoundation.org/。