如果你手里正好有一台吃灰的扫地机器人,或者你正准备下单买一台,我的建议是:先别急着刷购物车。市面上绝大多数扫地机器人,买回来你只是租了一张“使用许可证”——固件是闭源的,清扫逻辑是厂商替你想好的,想加个集尘仓、想让它先扫卧室再扫客厅、想去掉云端依赖,你会发现根本没地方下手。
于是这几年我一直在折腾一件事:怎么才能真正“拥有”一台扫地机器人。折腾到后面我总结出了三条差异极大的路线:成品机魔改、开源底盘组装、从零自研。这三条路线分别对应不同预算、不同动手能力和不同期待值。再加上我自己反复测试后整理出来的一张扫地机器人攒机路线图,这篇文章就是给你拆开揉碎讲清楚的。不管你是第一次接触DIY,还是已经玩过几块开发板,应该都能找到适合自己切入的那个点。
1. 为什么放着现成的不买,偏要自己攒一台扫地机器人
1.1 买来的扫地机器人,到底“拥有”了什么
一台量产扫地机器人,本质上是一个高度封装的自动化系统:传感器、主控、电机、清扫机构、充电管理全都被焊死在了一块主板上,软件层面只有厂商提供的App界面和云端策略。你拥有它的外壳,但你没有权限改它的算法,也没法知道它为什么在某些区域反复清扫、在另外一些区域干脆漏扫。
我自己拆过几台主流品牌的机器,打开之后发现大多数控制逻辑都跑在云端,本地端只负责执行。换句话说,如果厂商服务器出问题,或者品牌方调整了策略,你手里的机器行为可能随时变化。这种“用户”体验,对想深入理解机器人技术的我们来说,是不够的。真正意义上的“拥有一台扫地机器人”,应该像拥有一台自己攒的台式机:每个零件你都知道为什么选它,每行控制逻辑你都看得懂,出故障了你能直接定位到是哪个模块的问题。
1.2 DIY扫地机器人到底是在DIY什么
很多人一听“自制扫地机器人”就以为是要自己画电路板、自己写SLAM算法,门槛高得吓人。实际上DIY的深度可以自由选择,它本质上是在DIY四层东西:
第一层是底盘与运动:驱动轮、万向轮、电机减速箱、编码器,决定了这台机器能不能走直、能不能原地转弯。 第二层是感知:激光雷达、ToF测距、超声波避障、悬崖传感器、尘土传感器,决定了它能不能“看见”房间。 第三层是决策:主控板上的建图、定位、路径规划算法,决定了它是不是真的在“扫地”而不是在“撞运气”。 第四层是清扫执行机构:边刷、滚刷、风机、尘盒、集尘模块,决定了扫得干不干净。
三条路线最大的区别,就是你要亲手触及这层里的多少层。买现成的是四层全黑盒;魔改是只碰执行机构和外围接口;开源底盘组装是从底盘到决策都碰一遍;从零自研则是四层全透明。
1.3 三条路线的总体对比
动手之前先知道自己站在哪条起跑线,这比什么都重要。我把三条路线对多个环节做了比较:
| 对比维度 | 路线一:成品机魔改 | 路线二:开源底盘组装 | 路线三:从零自研 |
|---|---|---|---|
| 技术门槛 | 极低,会拆螺丝、会看接口即可 | 中等,需要了解基础电子和Linux | 较高,涉及嵌入式、传感器融合和算法 |
| 预算范围 | 几百元(不含成品机成本) | 1000至3000元 | 3000元以上 |
| 时间投入 | 一个周末 | 一到两周碎片时间 | 一个月以上持续迭代 |
| 获得能力 | 理解外围模块接线与改造边界 | 理解建图导航和基础机器人架构 | 软硬件全栈掌握 |
| 最终效果 | 取决于原机底子,扩展能力受限 | 接近中端商用扫地机的清扫效果 | 完全定制,可无限扩展 |
这条路线图不是互斥的,我周围不少朋友都是从路线一入门,玩着玩着发现不够劲,转到路线二,最后被逼到路线三。下面我按顺序把每条路线的关键技术节点都拆开讲。
2. 第一条路线:成品机魔改,用最小的成本撬开节奏
2.1 魔改前必须做的三件准备
如果你手头有一台能正常工作的扫地机器人,想快速获得“掌控感”,魔改是最合适的入口。但别一上来就用电烙铁捅主板,魔改前的准备工作直接决定了你会不会把机器改废。
第一件事是找到拆机图和维修手册。各品牌的扫地机结构差异很大,尤其是传感器排线和主控板接口定义,你需要知道哪些插头是干什么的。很多机器的主板上会丝印标注UART、I2C、PWM接口,这比你自己拿万用表量靠谱得多。第二件事是准备工具:飞线、杜邦线、电烙铁、数字万用表、USB转TTL串口模块、降压模块,这几样基本覆盖绝大多数魔改需求。第三件事是明确“我只改外围,不碰主控固件”。量产机的固件一般没有开放刷机通道,强行刷非官方固件很容易变砖,你只需要在主控板预留的接口上接自己的外部模块,就可以获得很大一部分DIY乐趣。
2.2 四个最值得做的魔改方向
根据我自己和几个同好的实践经验,效率最高的魔改方向有以下四个:
第一个方向是接入家庭自动化平台。很多扫地机的主板上预留了串口调试接口,通过USB转TTL连接,可以实时读到机器状态数据,包括当前坐标、电量、工作模式。再把数据转发到家庭自动化平台里,就能做到远程启停、根据房间有人没人自动切换模式、甚至和家里的智能门锁联动——进门触发全屋清扫。这个改动的难度很低,风险也小,但它会彻底改变你对这台机器的使用方式。
第二个方向是加装集尘模块。原机尘盒容量小,每天清一次很烦人。你可以利用机器顶部的出风口位置加装一个外置集尘桶,通过一个电磁阀和管道连接到尘盒入口。改造的关键是:风机风压不能牺牲太多,管道要尽量短粗,同时给原机风机加装一个PWM调速器,保证主刷转动速度和吸力之间的平衡。我实测下来,同样的尘盒体积,加了外置集尘后单次清扫面积能提升一倍以上。
第三个方向是给机器增加传感器。原机通常只有沿墙传感器和防跌落传感器,没有尘土传感器。你可以把带模拟输出的粉尘传感器放在吸尘口附近,读到灰尘浓度,再通过串口把数据转发给家庭自动化平台,实现“灰尘浓度超标时自动回扫当前区域”。这比定时清扫科学得多。
第四个方向是电池扩容。大部分扫地机的原装电池组都留有余量,外壳内部有大片空间,你可以更换更高容量的锂电池组,或者并联一组电池到原电池接口上。但这里我要提醒一句:并联电池必须保证电压完全一致,最好通过BMS(电池管理系统)做二次保护,否则充电时电流不均会发热起火。我一位朋友就是图省事直接并联,结果充电时保护板触发锁定,整组电池报废。
2.3 魔改的边界在哪里
魔改最需要克制的地方,是不要试图改变原机的核心清算逻辑。我曾见过有人想绕过原机主控直接驱动电机,结果破坏了原机的电流采样回路,导致机器误判堵转疯狂反转。魔改的边界是:你可以增加外围传感器和执行器,但尽量不要动原机的电机控制回路和充电管理回路。这两个模块是你居家安全的第一道防线,出了问题不只是机器坏,还可能烧房子。
另外原机固件升级是大坑。魔改之后,如果你不小心点了App里的固件升级,厂商很可能会通过云端校验接口状态,一旦发现异常直接禁用某些功能。我自己就碰到过升级后第三方传感器模块失效的情况,原因就是厂商在新固件里改了串口协议。所以魔改机建议关掉自动升级,保留在稳定版本上。
3. 第二条路线:开源底盘加主控板,搭出一台能学会认路的扫地机
3.1 为什么这条路线是“最值得投入”的中间态
成品机魔改的天花板很明显:你只能在人家设计好的框架里做增量,改动不了核心算法。如果你对扫地机器人的期望是“它真的能自己认路、自己规划路径、扫完自动回家充电”,那你需要的东西远不止传感器和电机——你需要一套完整的建图导航系统。这就是路线二诞生的原因:买一个带编码器的差速底盘,自己配一块主控板,跑一套开源导航框架,把一台机器人该有的四个层次全部打通。
路线二和路线一的本质区别在于:路线一是“改装”,路线二是“组装”。路线二里没有任何一个部件叫“扫地机器人”,你手里是一堆零件,但当你把它们组合起来,你会发现你获得的不只是一台扫地机器人的功能,而是一套可以迁移到任何自主移动平台上的通用能力。这套能力以后做割草机器人、送餐机器人、巡检小车都能用。
3.2 一张路线二的核心硬件清单
我按照“攒机”的思路,把路线二所需的硬件模块列在下面这张表里,每一项都标注了选型思路而不是具体型号,因为市场上的具体型号迭代太快,记住选型逻辑比记住型号更长远。
| 模块 | 选型思路 | 关键参数与注意事项 |
|---|---|---|
| 差速底盘 | 双驱动轮加万向轮的结构,带霍尔编码器 | 轮子直径不宜太小,至少10厘米;编码器分辨率要在500线以上,否则里程计精度不足 |
| 主控板 | 带Wi-Fi的单板计算机,能跑完整Linux系统 | 至少1GB内存,存储16GB起步,接口要预留GPIO、USB、串口 |
| 激光雷达或ToF | 推荐单线激光雷达,360度扫描建图 | 测量距离8到12米即可;注意转速标定,选带角度补偿的版本 |
| 超声波避障 | 3到5个探头,覆盖正前方和两侧 | 探头安装角度要略向下倾斜,防止漏检矮脚家具 |
| 驱动模块 | 双路大功率电机驱动,支持PWM调速 | 额定电流要大于电机堵转电流的1.5倍,做好散热 |
| 电池电源 | 3S锂电加BMS,再加多路DCDC降压模块 | 主控、传感器、驱动、风机要分路供电,避免互相干扰 |
| 清扫机构 | 两个边刷加一个滚刷加一台风机,配独立尘盒 | 边刷电机选空心杯减速电机;风机一定要带软启动,后面细说 |
| 充电路径 | 充电座发射红外信号,机器上装红外接收阵列 | 接收管至少3个呈三角形排列,提高对接成功率 |
这套清单的预算丰俭由人。底盘和主控是大头,其他模块可以逐步加装。我第一次搭这套系统时病急乱投医,买了个不带编码器的便宜底盘,结果是走的距离全凭猜,建图效果惨不忍睹。编码器看着不起眼,但它和IMU(惯性测量单元)一起构成了扫地机器人的“里程感”,没有它整个SLAM系统等于瞎了眼。
3.3 软件层面的骨架:建图、定位、规划、控制
路线二的软件部分,很多人以为要自己从零写SLAM算法,其实完全不需要。成熟的机器人开源框架提供了从传感器数据到运动控制的完整管线,我们要做的只是“接线”和“配置”。
整个软件系统可以分四层来看:
建图是第一步。激光雷达扫描房间轮廓,主控上的SLAM算法把这些扫描结果拼成一幅二维占据栅格地图。扫地机上的地图和你手机地图不一样,它是一小格一小格的网格,每个格子标记着“可通行”“有障碍”“未知区域”,路径规划就是在这张网格上找路。
定位是第二步。机器人在房间里走了一圈之后,如何知道“我现在在这张地图的哪个位置”就是定位问题。最常见的做法是里程计融合IMU和雷达匹配,专业叫法是“蒙特卡洛定位”,说人话就是:机器人同时准备几百个“猜测位置”,每走一步观测一次周围的环境,根据哪组猜测跟实际观测最匹配,逐步收敛到真实位置。
规划是第三步。从起点到目标点的大路径,用A*之类的全局规划算法完成;躲避突然出现的障碍物,用局部规划器实时调整。
控制是第四步。规划器输出的是目标速度和转角,控制层再把速度和转角映射成左右两个驱动轮各自的转速。差速底盘的运动学很直观:两轮同速前进是直行,左轮快右轮慢是左转,两轮反向是原地旋转。
我建议的软件开发顺序是:先在主控上能接收到底盘编码器的数据,能遥控机器走直线和转弯;再启动建图,手推着机器在房间里走一圈生成地图;然后开启定位和导航功能,让机器从一个点自动走到另一个点;最后才是编写清扫逻辑——一遍沿墙清边,一遍弓字型覆盖中间区域,遇到低电量就中断清扫返回充电座。
3.4 一个大批新手都会掉进去的坑:里程计漂移
路线二里最容易让人沮丧的问题,不是硬件装不起来,而是软件显示的地图歪歪扭扭。我一开始用的底盘轮子是普通橡胶轮,瓷砖地面上表现很好,可一进卧室的地毯区域,轮子轻微打滑,地图就走样了,明明是一条直线,画出来却是一个弧线。
这个问题本质是里程计误差叠加造成的。轮胎打滑时编码器仍然记录转了几圈,但实际前进距离小于理论值,微小的误差在几十米的路程里不断累积,最后地图就拧成了麻花。解决方案有两条路:硬件上换带更高摩擦系数的轮子,或者给从动轮加装一个独立编码器,用从动轮的真实滚动距离来修正驱动轮的里程计;软件上引入IMU数据,IMU提供角速度信息,可以显著抑制转向时的角度漂移。我自己最终的做法是两者结合:换了一对软胶轮,同时把IMU数据接入里程计模型做滤波,效果立竿见影,地图边界终于和真实房间对齐了。
4. 第三条路线:从底盘电路到SLAM,完全自研一台扫地机器人
4.1 全自研的“拥有感”到底从哪里来
路线三是把扫地机器人的四个层次——底盘造型、感知硬件、决策算法、清扫执行——全部握在自己手里。这条路线的产物往往不是一台漂亮的产品级扫地机器人,而是一台集成度不高但每一个螺丝钉都有明确存在理由的实验平台。但正是这种“从头到尾都能解释为什么”的透明感,才让人真正理解一台清扫机器人是怎么工作的。
我在做全自研时最大的感受是:买现成的底盘,你只是知道了“差速运动”这个概念;当你从四根铝型材、两个电机支架、三个3D打印件开始搭出一台能稳定走直线的底盘时,你才真正明白了什么叫“重心”、什么叫“轮距”、什么叫“阿克曼与差速的区别”。
4.2 硬件自研的三个核心任务
第一个任务是底盘与清扫机构设计。驱动轮要放在底盘偏后面的位置,这样前面的空间可以空出来装清扫模块和传感器;万向轮放在前侧,负责支撑和转向。两个驱动轮之间的距离(轮距)很关键——轮距越小,原地旋转越灵活,但高速直线跑起来越容易晃。扫地机器人不需要高速,所以轮距可以适当收窄换取机动性。边刷的位置也有讲究:左侧边刷负责把墙根的垃圾扫向滚刷路径,滚刷再把垃圾卷进尘盒,整个进风道设计要尽量直、尽量短,弯道越多风压损失越大,吸力就大打折扣。
第二个任务是电池与电源策略。自研机的电源管理是很多人的噩梦。我给出一个估算公式:驱动电机正常工作平均电流1.5安培,滚刷电机0.5安培,边刷两个合计0.3安培,风机1.5至2安培,主控板3至5瓦对应0.6至1安培,整机电流大约4到5安培。如果配6000毫安时的3S锂电池,理论续航是6安时除以4.5安培,约1.3小时。实际留出20%的余量,能跑一小时左右就比较理想了。这个阶段最容易忽略的是各模块的浪涌电流:风机启动瞬间电流可能飙到正常工作电流的三倍,如果所有模块共用一个电源轨,主控分分钟被低压复位。所以分配电路上必须分路:主控用一路独立DCDC,电机驱动用另一路大电流电源,传感器用电量小但也要稳压。
第三个任务是主控接口选型。我的经验是不要试图用一个开发板包打天下,虽然现在很多板子接口丰富,但资源冲突会让你调到头秃。合理的分工是:主计算单元负责建图、导航和上层逻辑,通过串口与电机驱动板通信;电机驱动板负责PID闭环控制两个轮子的转速;激光雷达走串口或USB;IMU走I2C;悬崖传感器、防撞传感器这类开关量信号接GPIO;边刷、滚刷、风机走PWM引脚。
4.3 SLAM是绕不开的敌人,但没有想象中可怕
全自研路线里,最唬人的词就是SLAM。我用人话翻译一下:你戴着眼罩在自家客厅里走路,不知道房间的尺寸,只能靠脚下步伐数感觉走了多远,靠伸出去的手感知墙壁在哪里,走了一圈之后心里大概拼出一张房间草图。SLAM干的就是这件事,只不过把“脚步”换成了里程计,把“手”换成了激光雷达或摄像头,把“脑补”换成了概率计算。
具体实现时,经典而可靠的组合是:单线激光雷达提供环境观测,IMU提供角速度,轮式里程计提供位移增量,三者输入给SLAM算法,前端做帧间匹配,后端做全局优化,回环检测负责把“走了几圈”之后发现的地图误差拉回来。这里有个很实在的建议:如果你不是数学狂人,不要在入门阶段自己写核心SLAM算法,先跑通成熟的开源实现,理解整个数据流,未来再按需替换成自己的变体。
路径规划也一样,全覆盖路径规划的核心思想就八个字“弓字遍历、沿边收尾”。规划器在地图上画出一行一行的平行“犁地”路径,每次到边界之后旋转180度,再从下一行扫回来,这叫弓字形覆盖。而墙角、桌腿这些障碍物周围会有盲区,需要额外执行沿墙绕行,把周边死角清理干净。把这两个逻辑编写成状态机,和底层导航模块对接,一台真正能“扫干净”的机器人就立起来了。
4.4 自动回充是怎么实现的
自动回充看起来是高端功能,其实原理很简单。充电底座上放一个红外发射器,发射出特定频率的调制信号;扫地机前部装一排红外接收管。当电量低于设定阈值或者清扫完成时,机器人先利用地图导航回到充电座的附近区域,然后原地旋转寻找红外信号,找到后根据信号强度判断方向,慢慢对准充电极片推进,直到机械锁扣扣上,充电回路导通。
我这个阶段踩过不少坑,重点说一下红外接收管的布置:如果只装一个接收管,机器人从侧面接近充电座时根本测不出来,会一头撞歪。后来我改成三个接收管,在机器人前方呈倒三角排列,通过比较三个管子的信号强度差异判断相对角度,对接成功率从不到50%提升到接近100%。另外充电座的红外信号发射范围有限,路线规划时最好让机器人最后一段朝向充电座正面直线靠近,不要斜着进。
5. 攒机路线图:三条路线怎么选、怎么转、怎么花预算
5.1 一张“从零到能动”的里程碑清单
无论选哪条路线,都可以把攒机过程划分成六个里程碑,每完成一个里程碑你就获得一个新能力:
- 电力系统建立:电池组、DCDC、分路供电正常,主控板亮起,所有模块能从同一块电池取电而不互相干扰。
- 运动系统打通:两个驱动轮能分别正反转,编码器读数正确,机器能走直线、能原地转圈。
- 感知系统接入:激光雷达能输出有效扫描帧,通过可视化工具能看到房间轮廓;悬崖传感器和超声波避障触发时中断标记正确。
- 建图与定位跑通:手推或遥控机器人转一圈,地图成功生成,机器人能在地图上显示自己的位置且误差在可接受范围内。
- 自动清扫流程完成:机器人能按弓字形遍历房间,能沿墙扫边,能完成区域覆盖率统计。
- 自主回充与断点续扫:电量不足时自动返回充电座,充满后能回到之前的未清扫区域继续作业。
这六个里程碑是通用的,哪怕是成品机魔改路线,也可以对照着看自己缺了哪一层的能力。
5.2 预算怎么做才不浪费
预算规划是攒机最容易失守的环节。我帮你按“低配、中配、高配”拆一下:
| 配置级别 | 底盘与运动 | 主控与传感器 | 清扫与电源 | 合计预算(约) |
|---|---|---|---|---|
| 低配 | 二手或国产差速底盘,约250元 | 入门开发板加单线雷达,约600元 | 边刷风机套件加锂电池,约300元 | 约1150元 |
| 中配 | 品牌编码器底盘,约600元 | 性能主控加单线雷达加IMU,约1200元 | 全清扫模组加分路电源,约600元 | 约2400元 |
| 高配 | 定制底盘带悬挂和双编码器,约1200元 | 更强主控加雷达加视觉传感器,约2500元 | 独立风机驱动加全套传感,约1200元 | 约4900元 |
我的建议是预算不要一次砸满。第一台机器用低配方案跑通全流程,你就知道自己真正缺的是什么。曾经有个朋友上来就买了高配整套,结果因为基础问题太多,大部分高级硬件吃灰,最终也没跑起来。
5.3 三条路线如何互相转轨
攒机过程最大的好处是你可以“滑轨”。我的实际经验是:从路线一出发,做了两个月魔改,对原机的主控限制越来越烦,决定拆卸原机主板,只留外壳、底盘和清扫机构,换成自己的主控和导航算法,这就自然滑到了路线二。再往后觉得现成电机驱动板满足不了精细控制,于是在PCB开源社区找了方案自己打板,自研电机驱动和电源管理模块,就正式踏上了路线三。
反过来走也成立。我自己最初没敢直接全自研,就是先用路线二跑通了软件逻辑,后来才把所有经验推倒重做,走了路线三。这种转轨之所以顺畅,是因为三个路线的核心能力高度重叠——传感器接线、串口通信、PID控制、地图概念,在任何一条路线上学到的东西都能转移到另一条。
5.4 这块路线图带给你的“迁移能力”
攒一台扫地机器人,最终留下的最大财富不是那台机器,而是一套可复制的方法论。差速底盘和导航算法是几乎所有地面移动机器人的地基。你只需要把清扫机构换成割草电机,把地图从室内栅格换成室外轨迹,就能往割草机器人方向延伸;把激光雷达换成RTK定位模块,把卧室客厅换成厂房仓库,就是一台巡检小车;把轮式底盘换成麦克纳姆轮,就是一台可以全向移动的服务机器人底盘。
这正是我喜欢这张攒机路线图的地方:它表面上指向一台扫地机器人,实际上指向的是整个自主移动机器人领域的入门路径。路线一让你热手,路线二让你懂系统,路线三让你真正掌控每一个细节。
6. 攒机路上的翻车现场与我的维修心得
6.1 我踩过的几个真实大坑
第一个坑是接口电平不匹配烧板。我早期做传感器接线时,把一个5伏供电的超声波模块信号输出直接接到了3.3伏逻辑电平的主控GPIO上,结果一连上就闻到糊味,主控的片上IO直接击穿。事后检查才知道这类模块的数字输出是高电平5伏,而主控引脚容忍电压只有3.3伏,必须加电平转换模块或者用电阻分压。10分钟可以避免的损失,我花了三天才定位到原因。所以接线前一定要查模块手册的输出电平,不要想当然。
第二个坑是里程计打滑导致的地图扭曲。这个前面也提过,这里给个具体的排查方法:如果你的激光雷达建图边角总对不上,先别怀疑雷达和算法,让机器人缓慢走一段两米直线,然后推回起点,看编码器反馈的净位移是否接近零。如果回不到零,说明存在打滑空转,先从轮子和地面摩擦入手。
第三个坑是风机把电压拉崩。我一开始电源设计不合理,把风机和主控接在同一路DCDC上,风机启动时瞬间大电流把输出电压拉到4.5伏以下,主控瞬间重启,扫地机扫到一半就原地“睡觉”。排查过程极其崩溃,最后我在风机供电前加了一路软启动电路——PWM占空比在几百毫秒内从0逐渐升到100——完美解决。软启动不只是一个高端功能,它是在小电源系统上驱动大功率设备的必需品。
第四个坑是充电对接总是歪。前期我为了省红外接收管只装了一个,结果机器人从侧面接近充电座经常撞偏。后来在机器人左右两侧各装一个接收管,同时加装了末端速度控制,对接前最后半米降速到每秒10厘米以下,问题迎刃而解。低速对接是自动回充可靠性的关键,很多人忽略这一点。
6.2 模块级测试至上
我全部项目里学到的最大教训,是所有故障排查都要先做模块级测试再做整机联调。在把四个模块连接到一起之前,先逐个验证每个模块单独工作是否正常:电机接上电池单独转一遍,看编码器数据是否随转动次数同步增加;激光雷达插上串口单独扫描一圈,看有没有盲区;风机单独通电,看风口有没有异常振动。模块测试全部通过后,再逐一并线联调。这套顺序帮我节省了至少一半的排查时间。如果一上来就整机联调,一旦出了问题,你根本分不清是电源波动、接线错误还是软件配置有问题。
6.3 软件层面的自我救援:日志是最值得的投资
在嵌入式软件里,日志系统看起来不起眼,但它是我全自研时最值得的投资。刚开始我嫌日志影响效率,用串口打印几条状态就完事,结果导航失败时完全没有头绪。后来我把扫描帧率、里程计原始值、IMU姿态、规划目标、控制输出、电源电压全部按时间戳记录到本地文件,问题定位时间缩短了一个数量级。
具体配置时,日志级别要分三档:Debug记录完整传感器流数据,Info记录规划切换和关键状态点,Error只记录故障事件。正常运行时只保留Error和关键Info,需要排障再临时打开Debug。这样既不影响性能,又能在出问题时快速定位。比如有一次机器总在同一个位置卡住,我用Debug日志一对比发现是那个位置有个家里的地毯边缘导致超声波的反射噪声剧烈波动,局部规划器每次都被吓退。这种问题不看日志根本复现不出来。
6.4 我最终留下的那台“不完美”的机器
做完路线三之后,我手里那台自研扫地机器人算不上体面:3D打印的机身有不少打磨痕迹,电线用扎带绑得东倒西歪,清扫覆盖率大概比商用机差一截。但它能按照我写的逻辑路径扫完整个客厅,低电量会自己回去充电,充电后能回到中断点续扫。更重要的是,我知道它每一个行为背后的“为什么”——为什么在桌腿附近要减速,为什么从瓷砖进入地毯时功率会提升,为什么打扫了两个小时后它会主动要求回充。
这就是“拥有一台自己的扫地机器人”和“使用一台扫地机器人”的本质区别。前者建立在理解之上,理解建立在控制权之上,控制权建立在你亲手花出去的时间之上。
如果你现在正要入坑,我的建议是别急着冲最难的路线三。先从路线一的热身开始,或者小成本走一遍路线二的骨架,把里程计、雷达和导航的数据流跑通,再去考虑自制主板和算法。扫地机器人攒机这条路,终点从来不只是一台机器,它是你打开机器人技术大门的一把钥匙——门后面可以通向的功能,远比“扫地”这两个字丰富得多。