前几天刷GitHub,看到开源扫地机器人的项目,Raspberry Pi加 ROS2,3D 打印底盘。看着还不错,我就把仓库翻了一下。说实话很多细节我也没完全吃透,但有几个地方我觉得挺有意思,记下来分享给大家。
先说明一下:这项目现在还攒不出实物,BOM还在验证。但它的设计思路和现在的进度,是能看明白的。
01
一句话:一台你自己能攒出来、不依赖厂商云端的扫地机器人。
技术选型是这样的:

这些方案都不新,资料多、好搜。对没做过这类产品的朋友来说,这点挺重要,出了问题能查到答案。
下面是项目给的效果图,大概长这样:


圆形机身,顶部一个LiDAR塔,前面有碰撞传感器条,下面是刷子和轮子。跟市面上常见的扫地机形态差不多,没搞什么奇形怪状的东西。
为什么说它值得关注?因为市面上绝大多数扫地机都是封闭的,一旦厂家服务器关了,或者停止了固件维护,你几千块买的机器可能就成了昂贵的摆件。OOMWOO是把这台家电彻底拆碎了,从机械结构、传感器、主控,到上面的ROS2导航算法,全部开源。它想做的,是一台真正属于你、能自己修的机器人。
02
这个思路,其实现在很多产品也这样用,但这里再稍微提一下。扫地机器人的控制分两层:
上面一层:Raspberry Pi,跑 ROS2,负责建图、定位、规划路线、跟 Home Assistant 通信
下面一层:STM32 的 I/O 板,负责控制电机、读传感器

为什么要分开?因为 Raspberry Pi 跑的是Linux,Linux不是实时系统。你让它直接控制电机,系统一卡顿,电机响应就飘,走到墙角该减速的时候没减,就撞上去了。所以电机这种要准时准点的活,得交给单片机。
如果你自己想做个类似的东西,这个思路可以直接抄:树莓派管思考,单片机管手脚。中间一般用串口或者CAN通信。
03
咱们一般硬件项目的流程是:先把硬件做出来,再写软件。硬件一卡住,软件的人就干等着。这里的开源扫地机器人反过来了,先让软件跑起来,靠两个办法。
我翻了一下它的子项目,里面已经有个叫 oomwoo-one的机器人描述包,已经有 50 多个Star、14次Fork。说明虽然硬件还没出来,但已经有人在研究它、跑它的仿真模型了。


开源扫地机器人的硬件还没做出来,但找了两台现成的商用扫地机当临时开发平台。
怎么接进来的?一台是靠社区把它的控制芯片逆向出来,一台是靠社区成员自己写了驱动。接上之后,就能用 ROS2 控制它。
意思就是:硬件还没定型,软件不用干等。你可以先拿一台现成的扫地机在真机上跑软件、写逻辑,等后面自己的硬件出来再说。
再加上前面的仿真,整个思路就是:仿真先跑软件,现成机器再上真机验证。硬件和软件不用排队,可以同时推进。
04
项目选用了低成本2D LiDAR,不是3D的,也不是视觉方案。原因是扫地机就在室内平地上跑,2D LiDAR 扫一圈拿到房间轮廓,配合轮子里程计做SLAM就够用了,数据量小,Pi也扛得住。
可能有人会问:开源搞个扫地机,连轮子怎么转、地图怎么扫都要从头搞吗?其实不用。它底层复用的是ROS2生态里非常成熟的底盘方案,不只是某个平台的固件,而是直接兼容了Nav2、slam_toolbox 等社区通用的组件,并不是从零开始手搓一套导航系统。
你看图里左边那个圆盘,就是一个现成的测试底盘:两轮驱动、后万向轮,顶上装个 LiDAR;右边是电脑上的画面,底盘跑起来后,LiDAR 扫一圈,房间轮廓就在屏幕上画出来了。OOMWOO 就是直接在这些已经跑通的底层技术,底盘控制、建图的基础上,去设计它最终的吸尘、拖地机身的。

BOM 最近更新了一条:主刷驱动用齿轮电机加打印齿轮,不用GT2同步带了。
GT2同步带要张紧轮、要调张力、还会磨损打滑。打印齿轮直接啮合,结构简单,装配容易,零件少。
最后补充一句:
目前这项目还在早期,真正的实体机器做出来后,还要面对地毯、线缆、宠物毛发、电池续航、电机噪音等一系列现实问题。如果只是想买个扫地的工具,现成的商业产品肯定更省心。
但这项目最有意思的地方在于:它把原本完全封闭的一件家电,拆成了硬件、软件、算法和接口,变成了一个任何人都可以参与、魔改的开源工程。