编程语言研究书库

Learn Robotics Programming — 全书拆解

Learn Robotics Programming — 全书拆解

30 秒导读: 这是一本「带你从零造一台机器人」的实战书—— 一块树莓派、两个电机、若干传感器,十七十八章之后,你手里是一台 会避障、会认路、会定位、会看脸、听得懂话的机器人。 它真正的价值不在某个零件,而在两条暗线: ① 「感知 → 思考 → 行动」这条回路怎么逐层闭环; ② 一套自建的 MQTT 服务架构,让硬件、行为、网页、语音全部说同一种消息语言。

本组文档是我们重写的完整拆解,十九章。读完不必看原书。

1. 先交代清楚:这是谁在什么时候写的

作者Danny Staple——英国机器人爱好者、orionrobots 主理人,Pi Wars 参赛者,序言作者 Kevin McAleer 称之为「有教学天赋的人」
版本Packt 第三版,2026 年 5 月(2018 年首版,2021 年二版)
定位面向「会一点 Python、想碰硬件」的 maker / 教育者 / 爱好者
硬件口径Raspberry Pi 4B + Inventor HAT Mini + 商用零件套件(2025–2026 年的市场快照,书里自己提醒型号会过时)

两件影响阅读的事,先说在前面:

第一,这是一本「工程纪律」浓度极高的入门书。 别的入门书教你让电机转; 它先教你为什么代码不能住在机器人身上(Git + 自动部署)、 为什么硬件要包成服务(换零件不改行为)、为什么参数要进配置存储(调参不重新部署)。 这些「不性感」的章节占了全书近三分之一——它们恰恰是这本书区别于玩具教程的地方。

第二,AI 在本书是「工具」,不是「主角」。 人脸检测、语音的识别与合成, 用的是三个现成的模型——靠大量例子训练出来的「认图认声」机器,下载即用,本书不训练, 第 14、16 章展开。而定位、避障、循线这些核心智能,全是经典算法: 比例控制、PID、蒙特卡洛滤波,直接写出来的数学。书里明说,连「用 AI 循线」都 「当时没有更划算」——这份克制是可信度的来源。

2. 全书一条主线(读完这一节,你就懂了这本书)

这本书是一条从头贯到尾的推理链:每一步都是被上一步的缺陷逼出来的。 不看后面任何一章,只读这一节,你就能把这本书讲给别人听。

① 什么是机器人:一台自己拿主意的机器

机器人 = 根据传感器输入自主做决定的机器——它和遥控玩具的分界线是「自主」。 拆开看,一切机器人都是三个方块:感知(传感器)→ 思考(控制器)→ 行动(执行器), 行动的结果又被感知读到,转成一个圈——这个圈叫反馈回路,是「自动」二字的全部机制。 (第 01 章)

② 造一台,先要「想得清楚」:方块图 → 零件清单

动手之前先画两张图:硬件方块图(什么零件、怎么连)和软件方块图(代码分几块、谁调谁)。 原则是从「这台机器人要干什么」反推零件,再用一票硬条件(能跑 Python、有 Wi-Fi、 带摄像头接口、供电 3 安培……)过滤候选。在纸上犯的错,不用花钱。 (第 02 章)

③ 让机器人「离得开人」:无头化

机器人不可能拖着键盘跑。解法是把树莓派配成无头(headless)系统: 不接屏幕键盘,系统烧进 SD 卡时就把 Wi-Fi、主机名、SSH 密钥预置好; 开机后通过网络远程操作。这一步顺便逼出了一个更深的设定——机器人必须学会自主, 因为你根本来不及敲命令。(第 03 章)

④ 让心血「丢不了」:代码的三个保险

几周写的代码,一次断电就全没。三层防线:代码住电脑上、机器人只收副本; Git 记下每次改动、改坏了能回滚;部署写成幂等脚本,SD 卡报废也能一键重建。 (第 04 章)

⑤ 接通「行动」:先让轮子转,再把轮子包成服务

电机通电容易,书里却在这里踩了一脚刹车:直接调电机的代码,换个驱动板就得重写。 于是把电机包成一个 MQTT 服务——行为代码不再碰硬件,只发消息 (「左轮 80%、右轮 40%」)。从此硬件换不换、行为都不用重写; 手机、网页、语音,谁都能发同样的消息。(第 05、06 章)

⑥ 给人留接口:开机自启 + 手机网页

服务要开机自己跑(systemd),状态要用一颗 LED 喊出来(「我好了」); 控制界面不装 App、用网页,摇杆推一推,机器人满场跑。 再加一个「启动器」服务,网页上的按钮就能指挥所有行为。(第 07 章)

⑦ 闭环第一圈:从「看不见」到「会躲墙」

接上距离传感器,机器人第一次「感知世界」。第一代避障是开关式的 (近了就急转,术语叫 bang-bang);第二代把转向力度做成距离的连续函数 (比例控制)——动作平滑了,但引出了新的病:振荡。 这本书对待病症的方式值得注意:不藏,先让你看见(数据曲线),再留到后面治。(第 08、09 章)

⑧ 治「走了多少」的病:编码器 + 闭环控制

时间驱动的机器人永远走不直——电机有差异、地面会变、电池会旧。 编码器把「轮子转了多少」变成数字,再换算成毫米;然后请出控制工程的瑞士军刀 PID 控制器:目标速度 − 实测速度 = 误差,误差喂给控制器,输出新的电机功率。 于是「走一米停」「走直线」「转 90 度」从许愿变成可复现的动作。 (第 10、11 章)

⑨ 治「我在哪」的病:不计算位置,而是养活一堆猜测

蒙特卡洛定位的思路一反直觉:机器人不去「算」自己在哪,而是同时养活 几千个「我可能在这」的猜测,让编码器数据推着它们走、让场地边界当裁判打分, 按分数重新抽签——好猜测被复制,坏猜测被淘汰。几轮下来,猜测聚成一团的地方, 就是它最可能在的地方。(第 12 章)

⑩ 给猜测更多裁判:每个传感器都是一个「观测模型」

边界裁判太苛刻(非内即外),机器人不开到墙边系统就不收敛(猜测聚不成团)。 于是给距离传感器建一个概率场裁判:把墙抹成高斯模糊的山脊, 每个猜测按「假如我在这,传感器该看到什么」打分,两个裁判的分数相乘—— 收敛从几分钟缩到二十秒。 同样的思路用到运动上:编码器里程与 IMU 航向按 7:3 互补, 各补各的短板。(第 13、17 章)

⑪ 更高级的感官:摄像头、耳朵

摄像头给机器人「眼睛」:神经网络认脸、颜色管线认物,检测数据走老规矩—— MQTT;两个 PID 把「脸在画面左」变成云台的转动。循线是整条链的毕业考: 图像管线(在电脑上离线调好) + 三项俱全的 PID,机器人沿黑线自己跑完全程。 语音让机器人「听得懂、会说话」:唤醒词 + 限定词表(识别器只许输出的词清单)的本地识别, 命令表一查,发 MQTT——语音没有特权,只是又一种遥控器。(第 14、15、16 章)

⑫ 走出去:还债、入圈、再造一台

最后一章先还安全债(密码明文、通信裸奔),再给地图: 社区、竞赛、制造技能、ROS 2、机器学习。然后回到第 1、2 章的方法论—— 「为什么做 → 铅笔草图 → 方块图 → 选件」——启动你的下一台机器人。 方法没变,变的是你已经有了一整套工具箱。(第 18 章)

一句话收尾

这本书用十八章演示了一件事: 机器人智能 = 简单的部件 + 诚实的反馈 + 一层层把「感知」翻译成「决定」的管道。 没有魔法,每一步都有出处、有曲线、有排错清单。

3. 十九章地图

这张表不用记任何术语 —— 每章后面写的是「读完你能回答什么问题」。

章读完你就能回答
01 机器人到底是什么什么才算机器人?洗衣机为什么算、遥控车为什么不算?
02 动手前的规划从零造一台机器人,第一步干什么?怎么保证买的零件装得上?
03 无头树莓派不插屏幕键盘,怎么配置和远程控制一台树莓派?
04 保护机器人代码SD 卡说坏就坏,怎么让几周的心血一次也不丢?
05 组装底盘塑料件、电线、电池,怎么不用焊枪装成一台能通电的车?
06 让机器人动起来为什么书里非要先把电机「包成服务」才许写行为?
07 用手机开机器人开机绿灯一亮、掏手机就开的「产品感」是怎么搭出来的?
08 距离传感器光学和超声波怎么选?64 个距离数怎么变成手机上的画面?
09 自主避障「见墙就躲」怎么写?为什么平滑的版本又会晃?
10 舵机与云台舵机和普通电机差在哪?脉冲宽度怎么变成角度?
11 编码器与里程计时间开车为什么必歪?「走一米、转 90°」靠什么变准?
12 蒙特卡洛定位机器人怎么在不知道自己位置的情况下,「猜」出自己位置?
13 IMU 与朝向保持陀螺、加速度计、罗盘各有什么用、各有什瞎?
14 机器人视觉不训练任何模型,怎么让机器人认脸、跟色块?
15 循线黑线在画面里怎么变成数字?PID 最后一块拼图(D)是干嘛的?
16 语音 Agent离线语音命令怎么做?唤醒词和限定词表为什么必要?
17 传感器融合概率场是什么?多个传感器的话怎么「相乘」而不是各说各话?
18 把路走下去这台机器人还欠哪些安全债?下一步该学什么、下一台怎么开始?
19 附录零件怎么找替代品?满手命令怎么串成一条流水线?

推荐顺序: 01 → 19 顺读即可,原书的顺序就是最好的学习曲线。 只想拿结论的:读本页第 2 节 + 09、12、17 三章。

4. 这本书覆盖什么、不覆盖什么

覆盖(而且讲得比多数材料清楚)——读完你能动手:

  • 机器人三大件与反馈回路的完整图景(电机、传感器、控制器各有哪些、怎么选);
  • 树莓派无头化、SSH 远程、Linux 服务管理的实操流程;
  • 一套可复用的机器人软件架构:MQTT 服务层 + 行为层 + 手机网页 + 语音,全说一种消息语言;
  • 控制工程入门三部曲:比例控制 → PI/PID → 抗积分饱和,每步都有曲线可看;
  • 里程计(编码器 → 毫米)与运动学(转弯 = 两轮各走各的弧);
  • 蒙特卡洛定位与传感器融合的动手实现(粒子、权重、重采样、概率场、互补滤波);
  • 计算机视觉两条路线(神经网络模型 + 经典图像管线)与循线毕设;
  • 本地语音命令(识别 + 合成 + 唤醒词 + 词表圈定);
  • 贯穿全书的工程纪律:版本控制、幂等部署、配置存储、可视化调试、排错清单。

不覆盖(别指望在这本里找):

缺什么说明
ROS / ROS 2全书刻意自建中间件(MQTT + systemd);ROS 只在最后一章作为「下一步」指路
SLAM、地图构建、路径规划定位止于「已知地图上的粒子滤波」;不建图、不规划 A*
深度学习训练三个 AI 模型全部下载即用;不训练、不微调、不讲网络结构进阶
实时系统与硬实时控制循环靠 sleep,延迟和抖动没有定量分析
户外与竞赛环境全程假设室内平地、家用 Wi-Fi、良好光照;电池续航只有采购约束没有设计
多机器人与通信安全单机单机器人;安全在最后一章还了第一笔债(凭据外置),TLS/登录只给路线

5. 我们的判断

判断(我们的,不是书里的): 这本书在今天的价值排序是—— ① 软件架构与工程纪律(不过时)> ② 经典控制与定位算法的动手实现(不过时)> ③ 具体型号与界面代码(正在过期)。 型号会死(书里自己承认)、网页库版本会漂,但「把硬件包成服务、把参数赶出代码、 给每个行为留窃听口」这三件事,对任何年代的机器人都成立。 如果拿它当教材,引②,照抄①,别抄③里的任何型号。 如果错,会错在: 若 ROS 2 生态继续吞掉中低端教育机器人(把 MQTT 这类自建总线挤成异类), 那么①里「自建中间件」的做法会从「通用工程能力」贬值成「特定生态外的手艺」, 教学价值仍在、直接迁移性会打折。

判断(我们的,不是书里的): 全书最值得带走的一句话其实是第 03 章那句副产物: 「无头化逼你想清楚自主行为——因为你根本来不及敲命令。」 这句话解释了为什么这本书一半篇幅在搭基础设施: 机器人开发的每一步「不方便」,都是在把人的角色从「司机」往「设计师」推。 如果错,会错在: 对于纯软件背景、只关心算法的读者,基础设施的占比会显得臃肿—— 那是定位差异,不是书写错了;这本书的读者画像从来是「maker」,不是算法工程师。

判断(我们的,不是书里的): 它对「AI 的克制」值得单独一记—— 人脸、语音用现成模型(消费 AI),定位、循线坚持手写经典算法(理解原理), 并且明说神经网络循线「当时没有更划算」。在「什么都往模型里塞」的年代, 这种「按问题选工具」的冷静是稀缺品。 如果错,会错在: 小语言模型与端侧(直接在机器人本地运行的)视觉的性价比曲线正在快速变化—— 若 2026 之后端侧 SLM/视觉模型成本骤降,书中「经典算法更划算」的多个判例会逐个失效; 但「先理解经典、再消费模型」的学习顺序本身不会失效。

6. 许诺兑现表

这份拆解里每一处「第 N 章讲」,都在这里记一行、逐行核过。

许诺在哪许诺了什么应兑现在哪核过了吗
本页 §2 ②方块图与选型过滤02 全章✓
本页 §2 ③无头化逼出自主设定03 §1、§7✓
本页 §2 ④三层防线与幂等重建04 §2–5✓
本页 §2 ⑤MQTT 服务层与换硬件不改行为06 §6–8✓
本页 §2 ⑥systemd、LED、launcher07 §3、4、8✓
本页 §2 ⑦bang-bang 与比例控制、振荡伏笔09 §5、6✓
本页 §2 ⑧编码器换算与 PID 到位11 §3–7✓
本页 §2 ⑨粒子滤波的猜测循环12 §2–9✓
本页 §2 ⑩概率场、相乘融合、互补滤波17 §3–6✓
本页 §2 ⑪视觉、循线、语音三件套14–16✓
本页 §2 ⑫安全债、社区、下一台18 §3–7✓
01 §2后面各章在回路图上的位置05–17 各章 §2✓
03 §4公钥认证省了什么03 §4 机制图✓
06 §1跑偏的病第 11 章治11 §1✓
08 §4电平红线与第 8 章选型08 §4、§6✓
09 §6振荡留给 PID 治11 §6、15 §6✓
12 §1多模型融合在 17 章17 §5✓
13 §9IMU 磁干扰由融合补17 §6✓

拆解写于 2026-10-19,依据 2026 年 5 月 Packt 第三版(ISBN 978-1-80324-698-7)。 原始书籍文件不入库,本组文档是我们自己的重写; 每条引用都可用 node scripts/book-verify.mjs learn-robotics-programming 回核。

On this page