一个机器人由哪些部分组成:感知、决策、执行
- 用「感知→决策→执行」一条主线把任意机器人拆开
- 说清信息从传感器流到电机的完整数据通路
- 看懂 sense-think-act 主循环,并避开新手最容易踩的供电坑
第一次拆「机器人」这个词,很多人会卡在一个错觉上:以为它是个高深的整体,得先学完一堆才能动手。
不是的。任何机器人——扫地机、机械臂、四足狗、还是你即将搭的那台 ESP32 避障小车——都能被切成三块:感知、决策、执行。这三块按这个顺序串成一个圈,机器人就活了。差别只在每块做得多深:扫地机的「感知」可能是几个红外加一个陀螺仪,自动驾驶的「感知」是激光雷达加摄像头加毫米波。骨架一样,血肉不同。
这篇就把这三块逐个拆给你看,讲清它们各自解决什么、新手怎么选、在小车上对应哪个零件。读完你不再把机器人当黑盒,而是能指着任意一台说出「它的感知是什么、决策跑在哪、执行靠什么」。
这篇会反复提到电机和电池。电机堵转瞬间电流能飙到额定值的好几倍,锂电池短路会鼓包甚至起火。动手前请先读锂电池安全,全程「先断电再接线」。
主线:感知 → 决策 → 执行
先把整张图钉在脑子里:
外部世界 →【感知】传感器 →【决策】主控算法 →【执行】电机/舵机 → 改变外部世界 → ……(回到感知)
这是一个闭环。机器人之所以不是遥控玩具,就在于它能自己「看一眼→想一下→动一下」,然后再看再想再动,循环不止。这个循环工程上叫 sense-think-act(感知-思考-执行)。记住这六个字,你就抓住了机器人的本质。
下面这张表是全篇的地图,先扫一眼,后面逐行展开:
| 子系统 | 它负责什么 | 典型器件 | 本站对应 |
|---|---|---|---|
| 感知 | 把物理世界变成数字信号 | 超声测距、IMU 姿态、编码器、摄像头、循迹模块 | 传感器总览 |
| 决策 | 根据感知数据算出「该怎么动」 | MCU(ESP32)、SBC(树莓派)、控制算法/状态机 | 机器人入门 |
| 执行 | 把决策变成物理动作 | 直流电机、舵机、电机驱动板、电源 | 电机驱动 |
感知:机器人的「眼耳」
感知解决一个问题:机器人怎么知道周围发生了什么。没有感知,机器人就是个按固定程序傻转的电动玩具,撞墙也不会停。
感知层就是各种传感器,每种回答一个具体问题:
- 测距类——「前面多远有障碍?」最常见的是超声波模块 HC-SR04,几块钱,发一道超声波再听回声,算出距离。小车避障的「眼睛」基本就靠它。详见 HC-SR04 超声波测距。
- 姿态类(IMU)——「我现在是平的还是歪的?转了多少度?」MPU6050 这类六轴模块测加速度和角速度,平衡车、无人机离不了它。详见 MPU6050 姿态传感器。
- 编码器——「轮子转了几圈?」装在电机轴上,数脉冲,让主控知道实际跑了多远、转速多少。想精确控制速度,这是闭环的前提。
- 视觉——「这是什么东西?」摄像头加上算法,能识别颜色、二维码、人脸甚至物体。这是感知里最「重」的一块,通常需要算力更强的主控,后面加视觉那节再聊。
- 循迹——「我有没有压着黑线走?」红外对管检测地面黑白,循迹小车的入门感知。
新手选型观点:别一上来堆传感器。一台能跑通闭环的避障小车,一个 HC-SR04 就够了。先把「一个传感器→主控→电机」这条链路打通,再加第二个。贪多的结果往往是接线一堆、一个都不工作。
在 ESP32 小车上,感知层就是你插在某几个 GPIO 上的那些模块——超声波接两个脚(Trig/Echo),IMU 走 I2C 两根线。它们的共同点:把物理量变成 ESP32 能读的电信号或数字。
决策:机器人的「大脑」
决策解决:拿到感知数据后,到底该怎么动。这是机器人真正「聪明」的地方,也是代码住的地方。
决策跑在主控上,主控分两档:
- MCU(微控制器)——以 ESP32、STM32 为代表。便宜、省电、开机即用、实时性好,适合跑控制算法和状态机。小车、平衡车、机械臂这类「动作明确」的机器人,MCU 完全够。本站默认用 ESP32。
- SBC(单板计算机)——以树莓派为代表,本质是台小电脑,能跑 Linux、接摄像头、做视觉甚至大模型推理。算力强但贵、费电、启动慢。需要「看懂世界」时才上它。
决策层里跑的「思考」逻辑,新手会遇到三种,由浅入深:
- 状态机——「如果……就……」的升级版。比如避障小车:
正常前进状态下若测到障碍 < 20cm,就切到转向状态;转够了再切回前进。清晰、好调试,90% 的入门机器人靠它。 - 控制算法(PID)——当你要「精确」而不只是「能动」时登场。比如让小车稳稳跑在某个速度,而不是忽快忽慢。这就要用编码器反馈 + PID 调节,详见 PID 控制入门。
- 大模型当大脑(进阶)——让机器人理解自然语言指令、自己规划动作。这是 AI 时代机器人最让人兴奋的方向,但它跑在 SBC 或云端,且不能替代底层控制。我们单独开一篇 给机器人装个大模型大脑 讲。
在 ESP32 小车上,决策就是你烧进去的那段 Arduino 代码——读传感器、判断、给电机下指令。
执行:机器人的「手脚」
执行解决:怎么把「该往左转」这个决定变成轮子真的往左转。
执行层有三个角色,缺一不可:
- 电机/舵机——直流电机管「转」(驱动轮子,详见 电机基础 和 电机类型);舵机管「精确转到某个角度」(机械臂关节、转向,详见 舵机控制)。
- 电机驱动板——主控的 GPIO 只能输出几毫安,根本带不动电机。中间必须夹一块驱动板(如 L298N、TB6612)放大电流、控制正反转和调速。这是新手最容易漏掉的一环,详见 电机驱动板。
- 电源——给整套系统供电。看着不起眼,却是新手第一大坑,下面单独说。
数据通路:一台避障小车,信息怎么流
光分块还不够,关键是看信息怎么从传感器一路流到电机。拿避障小车走一遍:
①超声波测得「前方 15cm 有障碍」
↓(GPIO 读入数字)
②ESP32 主控判断「15 < 20,危险」→ 状态机切到「转向」
↓(GPIO 输出控制信号)
③驱动板收到「左轮停、右轮转」→ 放大电流驱动电机
↓
④小车原地左转,避开障碍 → 重新测距(回到①)
这一圈就是 sense-think-act 的实物版。注意第②到第③之间那块驱动板——决策给出的是「弱信号指令」,执行需要的是「大电流」,驱动板是它俩之间的翻译官,没它整条链路就断在主控这头。
写成主循环代码,长这样(示意伪代码,完整可运行实现见 避障小车实战):
void loop() {
// —— SENSE 感知 ——
int dist = readUltrasonic(); // 读超声波,单位 cm
// —— THINK 决策 ——
if (dist < 20) { // 状态机:危险
motorState = TURN;
} else {
motorState = FORWARD;
}
// —— ACT 执行 ——
if (motorState == TURN) {
setMotor(LEFT, 0); // 左轮停
setMotor(RIGHT, 150); // 右轮转 → 原地左转
} else {
setMotor(LEFT, 150);
setMotor(RIGHT, 150); // 双轮前进
}
delay(50); // 循环节奏,约 20 次/秒
}
读懂这二十行,你就读懂了机器人。它就是 sense → think → act 反复跑。把 readUltrasonic 换成读 IMU、把 if 换成 PID、把 setMotor 换成控制舵机,你就有了别的机器人。结构不变,只换零件。
你应该理解了什么
- 任何机器人都是 感知 → 决策 → 执行 闭环,工程上叫 sense-think-act。
- 感知 = 传感器(测距/IMU/编码器/视觉/循迹),把物理世界变成数字。
- 决策 = 主控 + 算法(MCU/SBC 上跑状态机/PID/大模型),算出该怎么动。
- 执行 = 电机/舵机 + 驱动板 + 电源,把决定变成动作。
- 主控带不动电机,中间必须有驱动板;整套系统必须有干净的电源。
常见误区排查表
| 现象 | 多半是 | 怎么办 |
|---|---|---|
| 电机一转,主控就重启/死机 | 供电问题(电机抢走电流,主控掉压) | 给主控和电机分开供电,见下方强调 |
| 主控代码没问题,电机却不转 | 漏了驱动板,或主控直接接电机 | 中间加 L298N/TB6612 驱动板 |
| 传感器读数乱跳 | 共地没接,或电源不稳 | 所有模块共地(GND 连一起),稳压供电 |
| 小车只会直走不会避障 | 感知数据没进决策,或阈值写错 | 串口打印 dist,确认读数真的变化 |
| 舵机抖个不停 | 供电不足或信号线干扰 | 舵机单独供电,信号线远离电机线 |
单独强调供电:新手十有八九栽在第一行。电机一启动会瞬间拉走大电流,如果它和主控共用一节电池、还串在一起,电压会被拉低到主控的复位线以下——表现就是「电机一转,ESP32 就重启」,程序从头跑,小车抽搐。
解法:供电分离。电机走一路电(经驱动板),主控走另一路(或加大电容、用稳压模块隔开),两路只在 GND 共地。这件事稳压电路那篇讲得更细。记住一句话:机器人不动了,先怀疑电,再怀疑代码。
延伸:给小车装眼睛和大脑
把三块跑通后,有两个升级方向:
- 加视觉——把超声波换成/补上一个摄像头,小车就能认颜色、追物体、识别二维码。代价是感知数据量暴增,MCU 往往扛不住,得换树莓派这类 SBC,或用 ESP32-CAM 这种带摄像头的型号。入门看 传感器与 AI。
- 加大模型当大脑——让机器人听懂「帮我把红色方块推到左边」这种人话,自己拆解成动作。这是 AI 时代机器人的杀手锏,但大模型跑在算力更强的地方,且只管「想」,底层的「动」仍然是本篇这套执行链路。预告专篇 给机器人装个大模型大脑。
动手挑战
不用真搭车,先在纸上拆一台你熟悉的机器人——扫地机器人。试着回答:
- 它的感知有哪些?(提示:它怎么知道撞墙了、怎么知道哪儿没扫过)
- 它的决策大概跑在 MCU 还是 SBC 上?为什么?
- 它的执行有几种电机?(轮子、滚刷、风机各算一种)
把答案写下来。能拆清扫地机,你就能拆清任何机器人。
小结·下一步
机器人不神秘,它就是 感知→决策→执行 这个圈反复跑。看懂了这个骨架,后面学每个零件你都知道它住在哪一块、为什么需要它。
下一步,我们钻进「执行」这块最先要搞懂的零件——电机。直流电机、舵机、步进电机各管什么、怎么选,去看 机器人用哪种电机。