热度还在继续

距离发布刚过去三天,这只鸭子的声量不减反增。

打开网易新闻 查看精彩图片

几个新角度,帮你理解它火得有多离谱:

  • 同一周,北京在办第二届机器人奥运会,人形机器人们在跑道上冲刺、格斗、踢腿,视频刷屏全网。而大洋彼岸,全球科技圈讨论最多的机器人,却是一只只会摇摇摆摆走路、卖 399 美元的鸭子

  • 拉个价格参照:波士顿动力的机器狗 Spot 起价 7.5 万美元,大学实验室常用的同尺寸研究机器人普遍一两万欧元起。这只鸭子把入门价砍掉了两个数量级;

  • 国内科技媒体这几天也开始跟进刷屏,讨论焦点已经从"好可爱"转向"这玩意儿的软件栈是真的能学"。

我们想在热闹之外,把"能学"两个字落到实处。上篇文章讲了四个知识点:七个器官、恢复路径、50Hz 循环、意图与安全层。今天往深处走一步,回答一个更根本的问题:

这 6.5 万行代码,是用什么语言写的?为什么?

第 2 课:鸭子的大脑,说的是 Rust

先说答案:不是 Python,也不是 C++,而是一门 2015 年才发布 1.0 的年轻语言--Rust

打开网易新闻 查看精彩图片

为什么?三个理由,每一个都和"走路"这件事生死相关。

理由一:鸭子不能"卡顿"。

AI 时代大家默认机器人该用 Python 写。但 Python 有个致命伤:它靠"垃圾回收器"自动清理内存,而回收的时机不可预测--程序可能在你毫无防备时被暂停几毫秒甚至几十毫秒。

普通软件卡一下无所谓。但鸭子的控制循环 20 毫秒一帧,任何一次随机停顿都意味着传感器数据过期、指令迟到,后果就是重心失衡、摔倒在地。Rust 没有 garbage collector:每一块内存何时释放,在编译时就确定好了,运行耗时完全可预测。对硬实时系统,这是决定性的一票。

理由二:编译器当安检员,规则变成物理定律。

还记得上节课的第四个知识点吗--"谁都不能直接命令电机"。在代码里,这条规则是怎么落实的?

不是靠文档约定,不是靠代码评审,而是靠 Rust 独有的所有权机制:电机总线的"钥匙"被安全层独占持有,项目里任何其他代码想绕过安全层去碰电机,程序根本编译不过

注意这和"程序员自觉遵守规范"的区别:前者是纪律,后者是物理定律。纪律会松,定律不会。

理由三:消灭"十亿美元的错误"。

空指针的发明人自己把它称为"十亿美元的错误"--无数软件崩溃的根源。机器人软件里一个没处理的空值,可能就是一次意外断电或失控。Rust 从语言层面取消了这个坑:函数可能失败就必须显式声明,调用者必须处理,否则--还是编译不过。

课末彩蛋:这 19 个代码模块像一盒乐高,全部装在一个"Cargo 工作区"里,一条命令就能构建整个项目。上节课的"七个器官",就是从这盒乐高里挑出来的七个。

课后小任务(10 分钟)

  1. 打开 GitHub 仓库pollen-robotics/microduck,找到根目录的Cargo.toml文件,看一眼members列表--那就是鸭子的整盒乐高;

  2. 记住今天的三个理由:没有垃圾回收、所有权锁死电机、强制处理失败。

群还在等你

我们攒的共学群,走的是"业余时间、步步为营"的节奏。群里有人提问、有人补充、有人凌晨还在翻代码--这种氛围,一个人对着屏幕是学不出来的。

下篇文章会进入它的"神经和肌肉"。不管你是零基础的好奇党,还是写代码的老手,进来一起聊。碰上卡点,群里总能凑出答案。