☰
自己动手攒一台扫地机器人:三条路线全解析
2026/10/7 16:09:32 网站建设 项目流程

如果你想拥有一台真正属于自己的扫地机器人,可能并不需要等到什么大促再去抢一台旗舰成品机。市面上既有买来就直接用的现成扫地机器人,也有“半成品”级别的开源套件,更可以像攒电脑一样,从电机、传感器、轮子、控制板一步步攒出一台专属于你自己的机器。这篇文稿讲的就是三条路线加一张攒机路线图:怎么买、怎么改、怎么从零开始攒,以及中间踩坑的经验和我的建议。对DIY玩家、电子爱好者、想做机器人入门项目的学生朋友来说,不管你之前有没有基础,都能照着往下走一段。

我先把结论放前面:三条路线的名字分别叫“成品机路线”“套件组装路线”“完全攒机路线”。它们不是互相替代的关系,而是适合不同阶段的人。如果你以前没碰过单片机,却想快速了解扫地机器人的导航逻辑,买一台成品机拆开看是成本最低的学习方式;如果你有点编程基础,但不熟悉机械结构,套件路线会让你少走很多弯路;如果你就是想从头到脚都握在自己手里,那完全攒机路线才是真正的归宿。

这三条路,我都走过一遍,也都在上面花过冤枉钱。下面按路线、部件、实操、排障和成本这条顺序展开,需要的直接抄作业。

1. 三条路线到底怎么选:成品机、套件升级、还是完全自攒

1.1 成品机路线:省心,但不一定真的“拥有”

成品机是大多数人的认知入口。你把它买回家,充满了电,按一下开始键,它就会自己沿着墙角跑、回充、拖地。没错,这是最省心的方式,但我建议你在下单前先把它当成一次学习,而不是一次消费落地的瞬间。

现在市面上的成品扫地机器人,从工作逻辑上可以分成几类:随机碰撞型、激光导航型、视觉导航型。随机碰撞型靠单片机碰撞传感器和陀螺仪“扫大街”,走一个不重复的随机路径,适合小户型;激光导航型通过顶部的旋转雷达建图,路径更规整,但雷达对环境光有一定要求;视觉导航型用摄像头识别天花板特征,成本低,但暗光环境下表现会变差。你买的时候宣传页只会写“智能规划”三个字,但实际背后的技术栈差别很大。

我个人的建议是,如果你选择成品机,最好选带物理回充底座、有悬崖传感器、有拖布自清洁和可拆卸尘盒这几个特性的。这些不是高端卖点,而是你后面做对比和拆解时的锚点。买回来之后不要急着用,先找一个空房间,让它跑一遍,观察它在桌腿、地毯边缘、插座线缆附近是怎么处理的,再打开App看它的运行轨迹。这个过程能让你建立第一手直觉:什么环境信息重要,什么算法需要处理,为什么扫地机器人有时还会撞墙。这些直觉,会直接影响到后面你自己攒机时选传感器和写逻辑。

成品机路线的短板也很明显:你买到的是一整套封闭系统。想调整它的扫拖策略?想改自动回充的判断逻辑?想换一个更好用的地平线传感器?都被锁定死了。而且一旦某个模块损坏,部分品牌的维修成本已经逼近主机价格的一半。也就是说,这条路线帮你解决了时间和上手门槛,但牺牲了几乎所有可玩性和可控性。

1.2 套件组装路线:半DIY,适合第一次想动手的人

第二条路线是买一套机器人开发套件,自己回来组装。你不需要自己画底盘、不需要自己选主控型号、也不需要自己解决减速电机的固定孔位,但你需要自己接线、自己写避障逻辑、自己配置导航算法。我用过的套件里,最常见的是基于Arduino或ESP32的智能小车套件,再配一个激光雷达模块和一个万向轮结构。这类套件的门槛是“会拼乐高的大小朋友+愿意看几页英文文档”。

套件路线最大的好处是安全感足:底盘和驱动模块都开好孔了,电源模块留好了接口,传感器有现成的库函数。你在这条路线上主要学的是代码和调试,而不是机械干涉和电路layout。我第一次做扫地机器人就是走这条路线的,具体是买了一个四轮小车底盘,装上了超声波测距模块,再用一块L298N驱动板把两个直流减速电机接起来。当时只写了十几行Arduino代码,效果就已经让我真实感慨“原来扫地机器人就可以这么简单”——当然,它当时只能躲开正前方的障碍物,不能转弯,也不能回充,但那份成就感是真的。

不过套件路线的“天花板”也比较低。很多套件的底盘轴距短、负载低,如果再装一个RPLIDAR雷达、一个大容量电池,整机重量上去之后,电机扭矩就跟不上了。传感器接口也会遇到冲突,比如同时使用超声波、红外悬崖模块和编码器时,Arduino的GPIO不够用,就得换主控。所以如果你决定走套件路线,我的建议是:不要为了便宜去买传感器数量固定的“全家桶”,尽量选择能够自由扩展接口的套件,比如预留了IIC、UART、GPIO扩展排针的型号。

1.3 完全攒机路线:从螺丝到算法都是你的

第三条路线,也是这篇文稿最核心的部分,是“完全攒机”。什么叫完全攒机?就是你像配一台游戏电脑一样,去单独选择主板(主控)、电源(电池和稳压模块)、显卡(算力平台)、外设(传感器),甚至定制底盘。这条路线的所有决策权重都在你手里,你让这台扫地机器人长什么样子、用多大轮子、把雷达放在哪、回充逻辑怎么写,都由你来定。

完全攒机的技术栈,其实并不神秘。主控选型上有三个层次:最轻量级的ESP32,适合做一个“能跑能躲”的扫地机器雏形,支持WiFi和蓝牙,但算力有限;中间档是树莓派4B或者树莓派Zero 2W,跑轻量级Linux,可以接入标准USB激光雷达,也能跑Gmapping和简单路径规划;再往上一点是Jetson Nano这类带GPU的板子,可以跑视觉方案,但也意味着更大的供电负担和散热需求。传感器层面,通常需要轮式里程计、碰撞/触发传感器、悬崖传感器、IMU(惯性测量单元)、以及一个用于建图的核心雷达,这几个部分缺一不可。

底盘也不是劝退的地方,网上有卖现成的麦克纳姆轮底盘、差速驱动底盘,也有人用铝型材自己搭,更有狠人拿厚亚克力板和3D打印件开模。我第一次完全攒机用的就是一块七块钱的透明亚克力板,自己拿尺子和电钻开的孔,轮子用的是直径6.5cm的橡胶轮,两个N20减速电机加一个万向轮。丑是真的丑,但跑起来的那一刻,你会觉得整个科技领域的魅力都在那一堆零件里。

完全攒机路线要付出的代价是时间和反复试错。你需要自己能看懂原理图,能解决电源干扰导致的电机乱转,还要会调算法参数。对于零基础的人,我建议不要把目标一开始就定成“做一台完整的扫地机器人”,拆成四个里程碑更实际:能跑起来、能遥控、能避障、能自动回充。每完成一个里程碑,你都离“拥有一台自己的扫地机器人”更近一步。

2. 攒机路线图:先拆需求,再上部件

2.1 把需求写成一条一条的,比直接挑芯片型号更重要

网上很多教程一上来就列物料清单,告诉你买什么雷达、什么驱动板、什么单片机。但你照着买回来之后,会发现很多参数用不上,有些传感器连接口都定义不清楚。所以我的习惯是先从需求出发,把“我要一台什么样的扫地机器人”翻译成可量化的指标。

给一个我常用的需求模板,你直接照着填空就可以:

  • 清扫面积:一般是20平方米到120平方米之间,这决定你需要多大的电池和地图范围。
  • 自主性:是只需要随机避障,还是需要走栅格地图规划路径,还是需要自动回充后继续打扫。
  • 外形尺寸:要不要进沙发底下、床底,决定了你的底盘高度和雷达安装方式。
  • 负载能力:要不要拖地,水箱和拖布模块有多重,需要电机多大扭矩。
  • 预算范围:预算决定了你的主控和雷达能到什么档位。
  • 调试时间:你能接受几天的调试周期,决定了选开源库还是自己写逻辑。

把这些需求写下来之后,很多问题会自动明确。比如说,如果只需要清理40平方米的客厅,那就不需要上太贵的激光雷达,一个超声波测距加碰撞传感器就能完成基本任务;但如果要扫全屋,那没有地图规划就会非常低效,还是得老老实实上SLAM方案。这一个步骤看起来简单,但能帮你省下大量买错部件的钱。

2.2 核心部件选型:每个模块都在干什么

扫地机器人的核心部件,虽然名称不同,但其职责基本固定。我先列一张常用选型对照表,再逐个拆开讲解。

模块常用型号/方案职责注意事项
主控ESP32 / 树莓派4B / Jetson运行避障逻辑或SLAM算法ESP32算力低,官方库少
驱动电机N20减速电机 / TT电机 / 带霍尔编码器电机驱动轮子并输出里程信息全向轮与差速轮逻辑不同
电机驱动板L298N / TB6612 / DRV8833放大控制信号,驱动电机L298N压降大,发热明显
建图雷达RPLIDAR A1/A2 / 激光测距模块获取周围点云数据进行建图匹配不能用普通测距模块替代
碰撞传感器微动开关 / 双路循迹红外辅助判断被障碍物卡住成品机一般做在内部
悬崖传感器红外反射传感器 / 超声传感器防止从台阶或桌面掉下去红外受表面颜色影响大
电流检测模块INA219 / ACS712监测电机堵转、电池电量大电流采样用ACS712更直接
电池18650动力电池组 / 3S锂电池整机供电加一个低压保护板,否则等着废电池
充电底座红外引导+金属触点方案自动回充比完全靠随机对接可靠得多
软件框架Arduino库 / ROS1/ROS2 / 自写状态机调度所有模块从简到繁渐进,不要一步到位

从“扫地机器人”这个关键词出发,最容易被忽略的是轮式里程计和悬崖传感器。轮子上的霍尔编码器不是用来炫技的,它在没有雷达的环境下就是判断“我走了多远”的主要来源,SLAM算法里叫odom。悬崖传感器看似简单,但当你的机器从桌面上掉下来的时候,有没有它完全是两种结局。所以这两个模块的钱是最不能省的。

2.3 供电、底盘和控制的基本计算

完全攒机之前,先把物理需求做一遍计算。绝不需要微积分,最简单的初中物理就够用。我拿当时那台只用N20电机的小机器人举例。

假设整车质量m=2公斤,轮子与地面的滚动摩擦系数大约取0.1,那么需要的牵引力大约是F=mg×0.1≈2N(牛顿)。如果选N20减速电机,通常它的输出扭矩为0.3—0.8kg·cm,也就是大约0.03—0.08N·m。配合直径6.5cm的轮子,轮子半径约0.0325m,单轮最大可提供的推力大约是0.08/0.0325≈2.46N,两个轮子就足够推动整车。这个计算说明了一件事:不是所有机器人都需要大扭矩电机,关键是匹配整车重量。

供电计算更是实用,别只看电池标称容量。假设你选的是2节18650锂电池串联,标称电压7.4V,容量2600mAh,电机堵转电流按1A一只算,两个电机同时堵转时耗电约2A,再带上雷达和主控大约再加0.5A,整机峰值电流接近2.5A。如果你希望连续运行60分钟,那么电池容量至少要3Ah以上,三节或者四节并联是更稳妥的答案。这里有一个我踩过的坑:如果只按巡航电流计算,续航数字会非常好看,但一旦遇到地毯、门槛、杂物堆等场景,电机瞬间电流会拉高,电池容量不足就会导致主控复位,扫到一半它自己黑屏重启。

控制层面的计算主要是“比例控制”(P控制)。简单来说,如果你想让它直走,就用左右轮的编码器差值做反馈,差值为正就往左修正,差值为负就往右修正,修正系数需要实际调。你不需要一开始就把PID全家桶搬出来,我建议只做“直行修正+转弯等待”两项逻辑,等这两项稳定了,再考虑更复杂的闭环。

3. 关键环节:从底盘到SLAM的落地过程

3.1 先让底盘动起来,再谈“规划”这件事

很多新手拿到套件的第一个动作就是去下载SLAM代码,结果堆积了一堆依赖库,编译错误一个接一个,最后连最基本的电机pwm测试都没做。这就叫做顺序错了。正确顺序是:先手动通电,用最简单的一串代码控制电机正反转,确认你的驱动板接线没有反;然后写一个转速固定函数,让两个轮子能以接近相同的转速转动;接着再让机器人走直线,测量一段距离实际耗时多少。

这个阶段最大的经验教训就是不要迷信PWM百分比。比如你给两个电机都写50%的PWM,它们转速不一定相同,因为直流电机的减速箱摩擦力不完全一致,两个轮子的地面接触也略有差异。可以用“直行偏差测试”来感知:让车跑3米,看它偏了多少厘米,然后在固件里写入一个固定修正量。这一步做得好不好,直接决定了后面雷达建图是不是会发生漂移。

底盘结构方面,差速驱动是扫地机器人最经典的结构,两个驱动轮分布在底盘两侧,前面或后面加一个万向轮。它的好处是转向灵活,控制逻辑简单,左右轮速度相同就是直行,一快一慢就是转弯。麦克纳姆轮能做斜向平移,但机械损耗大,刹车控制繁琐,用在扫地机器人上属于给自己加难度。我劝新手不要被“全向移动”四个字唬住,先把差速轮玩明白。

3.2 传感器组到底怎么装:位置比型号更关键

传感器不是买回来就能用的,它在底盘上的安装角度和高度,直接决定了信号质量。

先讲悬崖传感器。这玩意儿是用来判断“底下是空的”的情况,比如桌子边缘或者复式楼梯口。常见方案是向下方发射红外,然后读取反射光强度。当地面存在时,反射光强,判断为“安全”;到了边缘,反射光变弱,判断为“危险”。听起来很简单,但如果你把传感器装得太贴近地面,即使没有台阶,它也可能因为地砖反光弱而误报;如果装得离地太高,它又可能看不到低矮的深色门槛。我试过几次之后得出的经验是:传感器探头离地大约1-2厘米,先用白色、深色、亮面地砖分别测一遍阈值,然后取中间值作为判断线。

然后是碰撞传感器。扫地机器人不可能完全只靠雷达避开所有东西,尤其是低矮的电视柜、床脚这些在雷达扫描平面以下的目标,物理碰撞检测是兜底方案。装碰撞传感器时不要只装正前方,左右两侧最好也覆盖到,否则从侧面刮到桌脚,机器人会一直空转,给你的感觉是它在卡住,但你看不到任何报错。

激光雷达的安装更要讲究。它需要一个水平的环境视野,不能太低,否则扫到的全是椅子腿;也不能太高压过机壳,否则回充底座的红外信号会被雷达支架挡住。实际装机时,我建议把雷达装在旋转中心附近,并且让雷达的零点对准机器人正前方。这个校正很容易被忽略,但一旦偏了,建图出来的轮廓就会整体旋转一个角度,在后续路径规划时你会越看越头大。

3.3 主控和软件:让“能跑”变成“会干活”

当底盘和传感器都调通了,就可以把主控升级到一个能跑SLAM的平台。这里我聊两条典型软件路线。

低端路线是用ESP32写一个状态机:平时直行,撞到障碍物后右转90度,遇到悬崖传感器报警就后退再转向,同时用编码器统计大概走了多远,电量低时自动朝回充座方向跑。这套逻辑不是算法上的完美规划,但你有完全的主控权,而且代码量少,适合理解扫地机器人的基本行为模式。

更高一档是ROS2加Cartographer或者Gmapping。主控建议直接用一台树莓派4B,再接一个USB口的小型雷达,跑起cartographer节点,同时把轮式里程计和IMU数据通过串口喂给ROS2。这个过程在你第一次跑通的时候会觉得有点复杂,因为要配置urdf、tf变换、激光的frame_id,还有订阅的话题名。我的建议是,第一次照着官方turtlebot3教程改配置就行,别自己发明话题命名,先用默认,跑通之后再去改自己喜欢的名称和习惯。

当地图建出来之后,还需要一个路径规划模块。简单来说就是让机器人自己算一条从A点到B点不撞墙的路径。ROS2的navigation2堆栈已经把这个封装好了,但你需要给它正确的costmap参数。最关键的几个参数是:膨胀半径不要设太大,否则机器人会在宽敞的客厅中间不敢接近任何墙边,扫地漏一条缝;机器人本体半径要按底盘最大半径填,不能光填轮子半径,因为如果你只有轮子小雷达就会磕到机身前端突出物。这些参数我调了很多次才找到手感。

3.4 回充和拖地模块:像“扫地机器人”的分界线

如果一台机器只会跑,不会自己回充,你在使用体验上会打大折扣。自动回充的实现思路很多,最简单可靠的是“红外引导+接触对接”。在充电底座上装两个红外发射管,一个宽角一个窄角,机器人的充电触板上装两个红外接收器,当检测到宽角信号时先转向底座方向,再接窄角信号做最终对准,触碰到充电触点后,再通过驱动板检测电压变化,进入充电状态。

这个过程中最容易出问题的位置是充电座位置的选择。不要把充电座放在窗边,因为光线强的时候红外信号会被干扰;也不要放在容易被机器人撞移位的轻薄门帘边上。充电座的正面必须留出至少50厘米的净空,两侧留出20厘米,否则机器人在接近时会反复横跳,最后要么对准不了,要么直接把充电座干翻。

拖地模块则是另一个层面的工程问题。它意味着你的底盘上多了一个水箱和拖布结构,整车负载直接上升,转弯半径和摩擦力中心都会变化。我个人的体验是:功能验证阶段先做“扫地”,等路径和回充逻辑都稳定了,再考虑拖地。如果你一上来就同时搞定扫拖,大概率会在测试中间分不清到底是传感器的问题还是负载的问题,排查起来特别痛苦。

4. 攒机最容易翻车的几个地方

4.1 电机驱动电流不足,机器人卡一下就没反应了

这是我自己在完全攒机时踩得最狠的坑。当时选了一块相对便宜的L298N驱动板,规格书上写“最大电流2A”,我以为绰绰有余,结果在测试时发现,当两个电机同时启动,再遇上机器人爬过一块地毯,瞬间电流一叠加,驱动板进入过热保护,PWM输出直接掉到零,机器人就愣在原地不动了。最开始我还以为是编码器出了问题,反复检查发现驱动板外壳已经烫手。

正确做法是选电流余量充足的驱动方案,比如TB6612FNG这类MOS管方案,压降低,发热小;或者用DRV8833,堵转电流减半之后依然能稳定输出。如果你手里只有L298N,那就把逻辑电压和电机电压分开供电,电机电源单独走一个大线径导线,尽量不要从主控板的5V引脚取电。实际测试时记得用万用表钳流表看一下堵转电流值,选驱动板的原则是:额定电流至少是工作电流的1.5倍。

4.2 传感器数值“忽高忽低”,问题往往出在标定和电平转换上

传感器读数不稳定,不一定就是元件坏了。首先是供电问题,很多传感器的参考电压来自主控板的3.3V或5V,如果电池电压波动过大,传感器参考电平也会跟着波,出来的数值就跳来跳去。解决方法是给传感器加一个稳压模块,或者在主控输入引脚前加RC滤波电容。其次是标定问题,超声波传感器和红外传感器都有各自的返回阈值,同样的障碍物,在不同距离下读数并不会呈线性变化,所以你不能靠单一阈值判断所有情况,应该先用串口输出打印数值,再决定阈值区间。

还有一个容易踩到的是电平转换。3.3V的主控和5V的传感器直接接串口,一般不会立刻烧坏,但长期使用容易出偶发掉包,表现就是有时能收到完整数据,有时全是乱码。正确做法是用IIC线或串口加一个逻辑电平转换模块,两块板子十块钱不到,能省你一整天的排查时间。

4.3 电池续航和充电逻辑:显示不对会误导整个调试

电池显示不准确,会直接影响回充逻辑的判断。很多DIY方案只用电阻分压测电池电压,但当负载突然变大时,电池电压会有波动,主控可能会误判成“电量不足”,触发回充,回充之后又发现电量还有不少,于是又自己跑出去扫,往复循环。

我的经验是加一个电流检测模块,比如INA219,它能同时读电压和电流,再通过软件做低通滤波,用“后端电压稳定值”作为判断依据,而不是读瞬时值。同时在充电过程中,要设置一个回充“迟滞区间”,比如充电到4.1V才算充满,放电到3.5V才开始低电量报警,中间留0.6V的缓冲范围,避免在临界电压附近反复横跳。

4.4 常见问题速查表

故障现象可能原因排查方法
轮子不动驱动板电源脚接反或PWM为0用万用表测电机两端电压
直行偏航严重左右轮转速不一致、胎压不同做3米直线测试并加修正量
雷达建图出现断层雷达安装不水平,或者里程计漂移检查雷达支架,先测直线再测地图
悬崖传感器总是误报传感器离地高度不对改安装高度,重新标定反射阈值
回充座对接不上红外信号被杂物或强光干扰用挡板遮挡环境光,调整底座朝向
机器人撞上低矮物体碰撞传感器覆盖不全增加左右侧碰撞微动开关
系统频繁重启电池容量不足、供电瞬断换并联电池组,加稳压电容模块
毛刷或边刷卡手安装角度不对、灰尘缠绕停机清理,加装挡尘毛刷

以上的每一个问题,我都至少花了大半天才定位到根因。多码一些调试日志真的非常重要,你可以在主控程序里定期把“当前状态、电池电压、传感器状态、里程计数值”打印到串口,或者写到SD卡上。没有日志就去猜原因,大概率是雾里看花。

5. 三条路线的成本账,与我的最终建议

5.1 造价对比

先说结论:完全攒机不一定便宜,套件路线也不一定比成品机划算很多,关键要看你已有的工具和空闲时间。

成品机路线,如果选带激光导航和自动回充的中端型号,目前市场上价格大概在2000块到4000块之间。它的溢价里有软件研发、结构设计、售后和品牌服务。如果你的时间很贵,那这条路线最划算,因为第二天就能用上。

套件组装路线,一套带电机、驱动板、传感器、亚克力底盘的机器人套件大约500块到1000块,再加一个入门级雷达可能总共要1200块左右,但还需要搭一套电脑环境做算法编译,再加上调试时间,整体投入就很难用钱衡量了。如果选带ROS2官方支持的底盘套件,价格会贵一些,可能直接到3000块,但这已经是半成品里的“高配”了。

完全攒机路线,按我这台反复拆装的机器来算:主控板加电机驱动和传感器大约300块,N20电机带轮子两个大约250块,18650电池加充电模块大约150块,一个二手激光雷达大约400块,再加上螺丝、打印件、线材、底盘板材,加起来差不多1200块到2000块之间。如果再算上你可能毁掉的一块主控板或者烧掉的一组电池,预算是要做到2500块的准备。

5.2 如果你想继续扩展,可以从这几步接着走

完全攒机并不意味着终点。一台能跑、能避障、能回充的扫地机器人,其实已经是绝佳的机器人学习平台。你可以给它加一个语音传感器,用语音说“去厨房扫地”,这在技术上不过是在路径规划前端接一个语音识别节点;你可以加一个摄像头,把抓拍到的画面上传到本地服务器,变成一个会巡更的小机器人;你甚至可以把底盘拆掉,换一套六足机器人套件,跑同一套建图算法,体验不同运动模型对算法的影响。

从我个人的体验来看,如果你决定走完全攒机路线,第一台的目标不要定得太宏大。设置成“能在十平方米内完成避障回充”就是巨大胜利。我第一台扫地机器人用了整整三个周末才达到并不完美的“能跑通一圈加回充”状态,中间还烧了一块驱动板。现在回头看,那些看似浪费时间的调试,才是攒机路线最值钱的部分。每排除一个故障,你对这个机器人系统的理解就会深一层,这比手里多一台能干的成品机器更有意思。

如果非要给一个选型建议,我的说法是:如果你只是想让它把地扫干净,买成品机;如果你想低成本体验“机器从无到有”的感觉,套件路线最甜;如果你想彻底搞懂扫地机器人每一毫米误差是怎么来的、每个传感器为什么这样装,那就从攒机路线开始。无论你选哪条路,都建议把“扫地机器人”当成一个系统来学,而不是一台家电。螺丝刀拿起来之后,你会发现它远比你想象中更能教给你东西。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询