ARTICLE · 1042329
oomwoo · 1.1万星:110个文件里66个是文档,装配说明还是占位符
我是冲着装配说明去的,结果打开那个文件,第一行写着「暂未提供,这是一个占位页」。
项目叫 oomwoo,一台你自己动手造的开源扫地机器人。GitHub 上 11024 个星标,Apache-2.0,主页写着不连云、不锁厂商,树莓派计算模块跑 ROS 2,激光雷达建图,该有的都列着。README 里那句承诺写得很具体:早期装配说明会在 2026 年秋天放出来。
今天 9 月 20 日,秋天已经开始了。所以我把仓库拉下来,从头翻了一遍。
仓库里没有机器人
这句听起来像抬杠,但数出来就是这样。整个主分支 110 个文件,其中 66 个是 Markdown 文档,Python 脚本 16 个,C 源码 1 个,剩下是图片和配置。

按扩展名数一遍
没有固件,没有主控程序,没有一个能编译出来烧进板子的东西。那 16 个 Python 文件里还有一个是给仓库首页画星标增长曲线用的。
不是作者藏着掖着。README 里的交付清单是公开打勾的,打上勾的有四项:开发环境和机器人描述包、一台临时顶替的现成扫地机、物料清单的粗版、以及扫描好的外购件模型。没打勾的也是四项:可 3D 打印的文件、树莓派上的软件、电机 PCB 板、PCB 固件。而且这几项都指向别的仓库,主仓库本身确实不放代码。
那个装配说明的占位页写得很坦白,原话是这个项目「目前处于设计和征求意见阶段,不是自己动手造的阶段」。它还说第一版物料清单的目标时间是「七月中旬左右」,用的是过去式的目标,读起来像是已经错过了。
但物料清单是真的
翻到 BOM.md 的时候我改了主意。这份清单有 40 行,不是那种「电机若干、传感器若干」的敷衍列法。
举几个实际的:驱动轮总成写明包含电机、编码器、悬挂、轮胎、线缆和跌落传感器,24 到 33 美元。吸尘风机给了五个档位选项,从 2 千帕到 36 千帕,最后一档直接标了「石头 Saros 20 的风机」,34 到 45 美元。激光雷达列了四种方案,每种都注明了 PCB 上的丝印型号,以及这颗雷达原本装在哪些型号的扫地机上,追觅 L10s、小米 X10+、3irobotix 的 Delta-2A,配着能买到的渠道。
看懂这份清单在干什么:它整台机器都是拿现成扫地机的原厂配件拼的。万向轮直接用 Roomba 的,充电触片是镍带自己剪,拖布盘 3D 打印,计算模块用树莓派 CM4 或 CM5。真正需要自己做 PCB 的只有壁障传感器、回充红外接收和几块 IO 板。
这个思路挺聪明的。扫地机的零件因为售后市场巨大,在电商上便宜得离谱,而且规格稳定。整台料算下来两三百美元的量级。所以这个项目不是没想清楚,它是硬件侧想得比软件侧远得多。
已经有人把活干了,只是不在你想的地方
仓库里最大的那个目录叫 contributions,86 个文件。它的组织方式是一块任务板:22 个待做模块各占一个目录:建图清扫、回充流程、越障、爬楼、集尘盒、吸尘风机、ESP32-P4、MCU 固件、URDF 仿真环境、健康监控等等。谁想做哪个,就在那个目录下开一个以自己用户名命名的子目录,把设计文档和代码放进去。

22 个模块,9 个认领者
数下来出现过的认领者有 9 个用户名。但真正写出代码的高度集中:17 个和机器人有关的源文件里,13 个出自同一个人。其余几位交的多是设计文档。
我原以为这些代码是空架子,点开才发现不是。有个模块专门定义主控和单片机之间的串口协议,里面有一份协议规格的 JSON:帧头是 ASCII 的 OW,小端序,校验用 CRC-16/CCITT-FALSE,16 条消息定义好了:心跳、急停、清除锁存故障、驱动设定、清扫电机、雷达电机、灯效,以及回来的应答、拒绝、握手、快速遥测、安全事件、电源遥测、诊断、安全状态。
配套还有 23 组golden 测试向量,就是把每条消息该编成什么字节序列钉死。更让我意外的是其中两条消息被明确标成「未冻结」,理由写着:电池、充电器、电流和热学字段的语义需要等板子实际点亮测过才能定。在还没有板子的阶段,主动声明哪些字段不许当准,这是干过硬件的人才会写的东西。
这些代码是纯 Python,不依赖 ROS,也不需要任何硬件,所以能直接跑。我跑了。
| $ python3 -m pytest \ contributions/io-board-interface/.../tests \ contributions/dock-cycle/.../tests -q.................... [100%]20 passed in 0.09s$ python3 -m pytest \ contributions/recovery-safety/.../test -q............. [100%]13 passed in 0.04s |

33 项测试全过,总共花了 0.13 秒
还有一个模拟单片机的脚本,直接吐出协议帧:开头 4f 57 就是 OW 那两个字节,后面跟序号、消息类型、长度、载荷和校验。
| $ python3 tools/sim_mcu.py --count 34f 57 01 00 00 00 01 80 13 00 ...4f 57 01 00 01 00 01 80 13 00 ...4f 57 01 00 02 00 01 80 13 00 ...4f 57 01 00 03 00 02 80 05 00 ...4f 57 01 00 04 00 05 80 08 00 ... |
33 项测试、0.13 秒、全绿。对着一台还不存在的机器人。
这是我今天翻下来觉得最有意思的一点:一个 1.1 万星标的项目,实际交付出来的东西是一份能下单的料表、一份定义清楚的串口协议,和一块任务板。机器人本身一个零件都还没装上去。
那要不要现在动手
如果你是奔着「照着做一台」来的,现在不行,秋天的承诺至少到 9 月 20 日为止还没兑现,装配说明依然是占位页。想等就点个关注,那个占位页自己也是这么建议的。
如果你是想参与,那现在反而是最好的时候——22 个模块里大部分还没人碰,而且协议和接口已经有人定下来了,接上去不用从零猜。顺带一提,这些测试不用买任何硬件就能跑,先跑一遍比读十页文档快。
我更在意的其实是另一件事。这个项目把星标数当成了进度的证明,首页甚至自动生成星标增长曲线。但 1.1 万个星标和 9 个认领者放在一起看,比例是一千比一。开源硬件难的从来不是有多少人想要,是有多少人愿意去画那块 PCB。
你手上有没有那种星标很多、但打开发现还没开始的项目?评论区说一个。
参考资料
项目:https://github.com/makerspet/oomwoo(2026-09-20 克隆,11024 星标,Apache-2.0)
物料清单:仓库内 BOM.md;装配说明占位页:docs/BUILD_INSTRUCTIONS.md
测试为本机 Python 3.12 实跑,未接任何硬件