ROS
定义
ROS 指一套用于构建机器人应用的开源软件库与工具集合,由框架、工具、功能包和开发者社区等部分组成[2]。按官方文档的说法,ROS 提供操作系统应具备的硬件抽象、底层设备控制、常用功能实现、进程间消息传递和包管理,并提供获取、编译、编写及跨计算机运行代码所需的工具与库[1]。
名称中的「操作系统」并不表示它与 Linux 一类内核处于同一层次。官方文档明确指出,ROS 并非传统意义上的操作系统,而是帮助开发者跨平台、跨语言创建机器人的一组工具和库[2]。其设计目标在于支持机器人研究与开发中的代码复用,使不同团队编写的功能可以彼此调用[1]。
原理
ROS 把机器人程序拆分为若干可独立运行的进程,称为节点(node)。节点之间通过话题(topic)、服务(service)与动作(action)三类接口交换数据,并共用参数服务器保存配置[2]。这一框架相当于机器人各部件之间以及部件内部的「管路」,例如把摄像头数据送往处理节点,或把规划系统的指令转给电机控制器[2]。
ROS 1 采用基于中心节点的通信方式,由一个主节点负责登记各节点的名称与话题[5]。ROS 2 改用 DDS 作为底层通信中间件,节点通过分布式发现机制自动找到彼此并建立数据通道,不再需要中心协调节点[5]。DDS 提供可靠性、历史深度、期限等服务质量(QoS)策略,开发者可以按传感器特性为不同话题分别设定[5]。
在软件组织上,ROS 以功能包为基本单位,一个包可包含节点程序、依赖库、数据集与配置文件,并借助编译工具完成构建[6]。功能包之上还有面向具体任务的能力包,例如机械臂操作、运动规划与感知,开发者可直接调用而不必从零编写[2]。工具层则提供可视化、数据记录与回放、节点管理等手段,方便调试与测试[2]。
发展历程
ROS 的工作于 2007 年 11 月启动,最初是 Willow Garage 公司为 PR2 个人机器人准备的开发环境,由该公司与斯坦福大学的研究人员共同推进[7][3]。当时的目标是提供一套工具,使研究者能在 PR2 上开展新的研发项目,同时通过消息接口定义抽象层次,让软件可以移植到其他机器人上[7]。
2009 年,研究团队发表介绍 ROS 的论文,系统对外公开了这套框架[4]。2010 年 1 月,ROS 1.0 发布,同年 3 月代号 Box Turtle 的发行版问世,此后按约半年一次的节奏推出新版本[4][6]。2011 年,低成本移动平台 TurtleBot 出现,为开发者提供了可搭载多种传感器的通用底盘[4]。
2012 年,Willow Garage 分设 开源机器人基金会(OSRF),接手 ROS 的维护工作,该基金会后来改称 Open Robotics[4]。Willow Garage 本身于 2014 年 2 月停止运营,同年 ROS 的管理职责移交基金会[8]。ROS 2 于 2014 年首次公布,2017 年 12 月发布第 1 个正式版本[9][8]。2022 年底,Open Robotics 的多数业务被 Alphabet 旗下的 Intrinsic 收购,基金會仍掌握 ROS 的商标与网站[9]。
ROS 2 的发行版以约半年为周期更新。2024 年 5 月 23 日发布的 Jazzy Jalisco 是第 10 个版本,属长期支持版本,支持期至 2029 年 5 月底[10][11]。该版本起每个 ROS 2 发行版都对应推荐的 Gazebo 仿真器版本[11]。ROS 1 已停止开发,不再计划推出新版本,ROS 2 为当前持续开发的分支[2]。
应用
在物流领域,ROS 用于仓库中的货物搬运,提供导航、建图、运动控制以及多台机器人之间的协调[2]。在制造业,它支撑借助视觉系统完成的自动抓取与放置等作业;在医疗场景中,则用于辅助护理流程的机器人系统[2]。机械臂控制、运动规划和环境感知等能力包可直接组合进上述应用[2]。
研究领域是 ROS 的另一主要使用场景。2015 年美国国防高级研究计划局机器人挑战赛的 23 支决赛队伍中,有 18 支使用 ROS,14 支使用 Gazebo 仿真器[4]。ROS 已被用于轮式机器人、人形机器人、工业机械臂、地面车辆、飞行器和水面载具等多种平台,并进入农业机器人、商用清洁机器人等产品[7]。教育方面,开源硬件平台 TurtleBot 以 ROS 为软件基础,用于机器人教学[12]./
参考资料
- cn/ROS/Introduction [引用日期2026-10-29]
- About ROS [引用日期2026-10-29]
- ROS: towards open source in robotics [引用日期2026-10-29]
- Happy birthday ROS: A decade of open-source robotics [引用日期2026-10-29]
- pdf [引用日期2026-10-29]
- ROS——机器人世界的Android [引用日期2026-10-29]
- Why ROS 2? [引用日期2026-10-29]
- How To Start a Robot Revolution: Part 1 [引用日期2026-10-29]
- About ROS [引用日期2026-10-29]
- ROS 2 Jazzy Jalisco Released — Open Robotics [引用日期2026-10-29]
- OSRF releases ROS 2 Jazzy Jalisco [引用日期2026-10-29]
- ROS Developer Documentation [引用日期2026-10-29]