一、机器人系统概述:从定义到生态
大家好,我是你们这门课的主讲。做了十几年机器人系统,从最早的工业机械臂到现在的服务机器人,踩过的坑不少。今天咱们先聊聊基础——机器人到底是什么,它从哪来,又由哪些部分组成。
1.1 机器人的定义与发展简史
先问个问题:什么是机器人?
你可能会说,能动的、能干活的机器。但严格来说,国际标准化组织(ISO)的定义是:一种可编程的、能在两个或多个轴上进行运动的机械装置。说白了,它得能感知环境、做出决策、执行动作。
发展简史其实挺有意思的:
- 1940s-1950s:工业机器人萌芽。我记得最早是乔治·德沃尔搞出了可编程的机械臂原型。
- 1960s:Unimate 机器人进入通用汽车生产线。那时候的机器人,说白了就是个会重复动作的铁疙瘩。
- 1970s-1980s:传感器开始加入,机器人有了“感觉”。我在项目里见过老式的示教器,那玩意儿操作起来真叫一个痛苦。
- 1990s-2000s:移动机器人兴起,扫地机器人、火星车都来了。
- 2010s至今:AI 加持,机器人开始“长脑子”了。
核心观点:机器人发展的本质,是从“能动的机器”走向“能思考的机器”。
1.2 机器人三大定律——不只是科幻
阿西莫夫在1942年提出的三大定律,虽然写在小说里,但做机器人系统的人必须懂:
- 第一定律:机器人不得伤害人类,或因不作为让人类受到伤害。
- 第二定律:机器人必须服从人类命令,除非与第一定律冲突。
- 第三定律:机器人应保护自身存在,除非与第一、第二定律冲突。
你可能会问:这跟写代码有什么关系?
关系大了。我在做医疗机器人项目时,安全逻辑的优先级设计就参考了这套思想——人的安全永远高于任务执行。代码里如果出现“为了完成任务而忽略安全”的逻辑,那一定是架构设计出了问题。
注意:三大定律不是法律条文,而是设计原则。实际工程中,安全冗余、故障降级、急停逻辑都比“服从命令”优先级高。
1.3 机器人系统组成:机械、电气、软件
一个完整的机器人系统,说白了就是三块:骨架(机械)、神经(电气)、大脑(软件)。我习惯用一张图来理解:
具体来说:
| 子系统 | 核心组件 | 我的经验 |
|---|---|---|
| 机械系统 | 本体结构、关节、传动机构、末端执行器 | 刚度与重量的平衡最难。我做过一个机械臂,为了轻量化用了太多铝合金,结果末端抖动严重。 |
| 电气系统 | 电机、驱动器、传感器、控制器、电源 | 传感器选型别只看精度,还要看抗干扰能力。我曾经被一个廉价IMU坑了整整两周。 |
| 软件系统 | 操作系统、中间件、算法库、应用层 | 软件架构决定了你能走多远。一开始图省事写死逻辑,后面改起来想哭。 |
1.4 主流机器人操作系统:ROS/ROS2
说到软件,就绕不开 ROS(Robot Operating System)。
ROS 不是真正的操作系统,它是个分布式通信框架。你想想看,一个机器人可能有激光雷达、摄像头、电机控制器、路径规划模块……它们之间怎么通信?ROS 就是干这个的。
小提示:ROS 的核心机制是“节点-话题-服务”模型。节点之间通过话题发布/订阅消息,或者通过服务进行请求/响应。这个设计让模块解耦得非常干净。
ROS 和 ROS2 的区别,我整理了一张表:
| 特性 | ROS 1 | ROS 2 |
|---|---|---|
| 通信中间件 | 自定义 TCPROS/UDPROS | DDS(数据分发服务) |
| 实时性 | 不支持 | 支持(通过 DDS 的 QoS) |
| 跨平台 | 主要 Linux | Linux、Windows、macOS、RTOS |
| 安全性 | 无内置安全机制 | 支持加密和认证 |
| 节点发现 | 依赖 ROS Master | 分布式发现,无单点故障 |
| 生命周期管理 | 手动管理 | 内置节点生命周期管理 |
我个人建议:新项目直接上 ROS2。为什么?
- ROS1 的 Master 一旦挂了,整个系统就瘫了。我在一个仓库巡检机器人项目里吃过这个亏。
- ROS2 的 DDS 天生支持分布式,而且实时性更好。
- ROS1 官方已经停止更新了,社区都在往 ROS2 迁移。
避坑指南:我曾经在一个项目里为了省事,把 ROS1 和 ROS2 混用,结果通信桥接搞得一塌糊涂。如果你不是非用不可,别这么干。
最后说一句:ROS 不是万能的。它适合做原型验证和中小型系统,但如果你做的是工业级产品,尤其是对实时性和可靠性要求极高的场景,可能需要自己定制通信方案。不过,作为学习起点,ROS/ROS2 是最好的选择。
嗯,这一章就到这里。记住:机器人系统是机械、电气、软件三者的融合,缺一不可。后面我们会一步步深入每个模块。