Skip to content

什么是 ROS2

在正式开始写代码之前,我们必须先解决一个最基础、也是最容易被误解的问题

ROS2 到底是什么?

如果这个问题没想清楚,后面学得越多,反而越容易混乱。


1.1 ROS2 的官方定义

ROS2 的全称是 Robot Operating System 2,中文常翻译为 机器人操作系统 2

非常重要

  ROS2 不是操作系统。

它不是 Windows,也不是 Linux,更不是 Ubuntu。

真正的操作系统是 Linux,而 ROS2 是运行在操作系统之上的机器人软件开发框架。

一句话理解

  ROS2 是一套 帮助你更高效开发机器人软件的工具和规则集合

它并不直接控制硬件,而是为你提供:

  • 模块化的软件结构

  • 统一的通信机制

  • 大量可复用的开源功能


1.2 用大白话理解 ROS2(重点)

假设你要做一个机器人,这个机器人需要:

  • 用摄像头“看”世界

  • 用雷达感知障碍物

  • 控制轮子或电机运动

  • 同时还要把这些信息组合起来,做出决策

如果完全从零开始写代码,你会遇到:

  • 各种传感器数据格式完全不同

  • 各个模块之间不知道怎么通信

  • 程序一复杂就高度耦合,改一处崩一片

  • 每换一个硬件,就要重写大量代码

这些问题并不是你一个人的问题,而是整个机器人领域长期存在的痛点

ROS2 在干什么

  ROS2 的目标不是让你写更多代码,而是 让你少写重复代码

它主要帮你做了三件事:

  1. 提供现成的功能包

  类似手机里的 App,有人已经帮你写好了摄像头、导航、控制等功能。

  1. 定义统一的通信方式

  各个模块只要遵守 ROS2 的通信规则,就可以协同工作。

  1. 配套大量开发和调试工具

  从命令行到图形界面,从仿真到数据回放,都已经准备好。


1.3 一个形象的比喻

如果把开发机器人比作 盖房子

  • Linux 是地基

  • ROS2 是脚手架 + 工具箱 + 标准建材

  • 你的代码 是房子的设计和装修

对比理解

  - 没有 ROS2:你要自己挖矿、炼钢、烧砖

  - 有 ROS2:材料、工具、模板都是现成的

你只需要专注一件事:

👉 这个机器人要完成什么功能?


1.4 ROS2 的核心特点

下面这些特点,你现在不需要完全理解,但必须有概念

模块化设计

ROS2 把系统拆成很多独立运行的模块,叫 节点(Node)

  • 每个节点只负责一件事

  • 节点之间通过消息通信

  • 某个节点出问题,不会拖垮整个系统

分布式架构

ROS2 的节点可以:

  • 在同一台电脑上运行

  • 也可以分布在多台设备上,通过网络通信

跨平台支持

ROS2 原生支持:

  • Linux

  • Windows

  • macOS

现实建议

  虽然跨平台,但 Linux(Ubuntu)支持最好,也是学习首选。

实时性与安全性

相比 ROS1,ROS2 在设计之初就考虑了:

  • 实时系统需求

  • 通信安全(加密、认证)

这使 ROS2 不再只是实验室工具,而是可以进入真实工程环境。


1.5 为什么要学习 ROS2

如果你在犹豫“要不要学 ROS2”,可以从这几个角度看:

  • 行业事实

  机器人相关岗位,ROS 已经是默认技能要求。

  • 资源丰富

  教程、文档、开源代码、社区都很成熟。

  • 实用性强

  学校项目、实验室课题、工程原型大量基于 ROS。

  • 附带收益高

  会顺带提升 Linux、Python/C++、软件工程能力。

现实结论

  会 ROS2,不一定让你立刻变强;

  但 不会 ROS2,你在机器人方向一定很被动


本章小结

通过这一章,你应该已经明白:

  • ROS2 不是操作系统,而是机器人软件开发框架

  • 它的核心价值是 复用、通信、工程化

  • ROS2 是当前机器人领域的事实标准

  • 学 ROS2,本质是在学如何构建复杂系统


下一章预告

下一章我们会回答一个更现实的问题:

ROS2 到底能干什么?

你会看到 ROS2 在真实机器人系统中的位置,以及一个完整机器人软件架构是如何被拆解和组合的。


评论区