
扫地机器人这玩意这几年几乎成了家庭标配。但你有没有想过它凭什么能自己认路、自己扫完整个屋子还能回去充电早几年的随机碰撞机型和现在的“弓字形全覆盖自动回充”机型差距根本不在电机和吸力而在导航系统。说白了扫地机器人就是一台在地上跑的微型自动驾驶车而它的“导航原理”才是整个产品真正的技术分水岭。这篇文章我想从一个做机器人算法的人的角度把扫地机器人导航的底层逻辑掰开揉碎讲清楚。内容覆盖从传感器选型、SLAM建图、路径规划到仿真验证的完整链路适合正在做机器人开发的工程师、想搞懂产品差异的硬件产品经理也包括纯粹好奇“它怎么这么聪明”的普通用户。你不需要有数学基础我会把关键原理用口语讲明白但涉及参数和算法的地方也绝不糊弄。1. 扫地机器人导航的整体架构从“盲人摸象”到“地图认知”1.1 早期随机碰撞导航为什么会被淘汰要说清楚现代导航原理得先理解早期产品为什么那么“蠢”。随机碰撞导航的逻辑非常简单机器人以随机方向直行撞到障碍物后随机转向继续前行。这个方案最大的问题是“效率不可控”同一块区域可能反复扫十几遍而另一个角落一次都没去过。随机碰撞本质上是一种“无模型控制”机器人对自身位置没有任何认知。你可以把它理解成蒙着眼睛在屋子里找钥匙最坏情况下需要无限长时间才能覆盖全部区域。实测下来随机碰撞机型的重复清扫率经常超过40%漏扫率也在20%左右而且清扫时长毫无规律同一个户型今天扫50分钟明天可能扫90分钟。所以从工程角度看淘汰随机碰撞不是“体验升级”而是“成本刚需”。当机器人的传感器和算力成本降到一定程度厂商自然会转向可建模、可规划的导航方案因为这意味着更短的清扫时间、更低的功耗、更好的用户体验。1.2 现代导航系统的三大模块感知、建模、规划现代扫地机器人导航系统可以拆成三个模块感知、建模、规划。感知层负责回答“我在哪、周围有什么”。传感器包括激光雷达LDS、视觉相机、超声波、ToF传感器、陀螺仪、轮式里程计等等。它们采集的是原始数据流比如激光点云、图像帧、加速度和角速度。建模层负责回答“这个空间长什么样”。核心是SLAM同步定位与建图。SLAM把传感器数据拼成一个统一的、一致的地图同时估计机器人在地图中的位姿。这个环节的输出通常是二维栅格地图每个栅格标记为空闲、占用或未知。规划层负责回答“接下来怎么走”。包括全局路径规划如弓字形全覆盖和局部路径规划如遇到拖鞋时实时绕行。规划层还要对接运动控制把路径转化为左右轮的转速指令。三个模块是流水线关系但实际工程中它们互相耦合。比如SLAM的地图质量严重影响路径规划的覆盖率而运动控制的误差又直接反馈到SLAM的前端里程计。很多新手做导航开发时只盯着某一个算法调参忽略了整条链路结果就是单看每个模块都没问题一跑整机就乱。2. 感知层传感器选型与数据融合的底层逻辑2.1 激光雷达TOF和三角测距的取舍激光雷达是当前扫地机器人最主流的导航传感器主要负责360度扫描房间轮廓输出二维点云数据。市面上家用机器人用得最多的方案有两种三角测距和ToF飞行时间。三角测距的原理是激光发射器投射一个光斑到物体表面反射光被一个CCD/CMOS图像传感器接收。根据光斑在成像平面上的位置利用三角形几何关系计算目标距离。它的优点是成本低、近距离精度不错缺点是测量范围有限一般有效距离在6米以内而且受环境光干扰较大。ToF的原理更直接发射激光脉冲测量反射光回来的时间乘以光速除以2得到距离。它不依赖几何关系所以远距离精度更好抗环境光能力更强但成本更高。在高大客厅、落地窗多、阳光直射的环境下ToF传感器明显更稳。扫地机器人选型时有个关键参数扫描频率。低端激光雷达一般是5Hz~10Hz高端能做到20Hz以上。扫描频率越高机器人在快速移动时点云畸变越小SLAM建图越准。如果你在拆机时看到雷达每分钟转速标识比如300转/分那么对应就是5Hz这个级别做建图可以但做高速运动避障会吃力。还有一个容易忽略的点激光雷达的安装高度。扫地机器人雷达一般装在机身顶部安装高度决定它能探测到的障碍物尺度。比如雷达离地8cm就能扫到大部分家具腿如果离地太高像电线、宠物粪便这类低矮物就扫不到必须靠其他传感器补偿。2.2 视觉导航为什么有的机器不用激光雷达视觉导航VSLAM是另一条技术路线。它用摄像头采集图像特征角点、ORB特征、光流等通过帧间匹配估算运动轨迹再通过多视图几何构建地图。优点是硬件成本低、信息量大能识别纹理和文字但缺点也很明显对光照敏感暗光、强逆光下特征容易丢失纯视觉方案在黑暗床底基本“失明”。为了弥补这个短板有些产品采用“视觉结构光”的方案。结构光投射红外点阵到物体表面相机根据点阵的形变来估算深度。它能在弱光环境下工作但不耐强光远距离精度差。所以现在多数视觉导航机器人实际上是多传感器融合的方案而不是单纯依赖视觉。视觉方案还有个天然优势可以识别具体物体类别。比如识别出“这是充电桩标识”或“这是数据线”能实现更智能的避障策略。而激光雷达只能告诉你“这里有个东西”无法告诉你“这是什么东西”。所以近两年“激光AI视觉识别”的组合越来越常见。2.3 陀螺仪与轮式里程计惯性辅助的关键作用只靠激光雷达或视觉做导航是不够的因为它们的采样频率有限而且运动太快时会丢帧。这时候就需要惯性测量单元IMU和轮式里程计来填充。IMU包含加速度计和陀螺仪加速度计测量三轴线加速度陀螺仪测量三轴角速度。通过对角速度积分可以得到角度变化对加速度积分可以得到位移增量但积分会累积漂移所以IMU只在短时间内提供可靠的相对运动估计。轮式里程计的原理更朴素电机编码器记录轮子转过的圈数乘以轮子周长得到轮子前进的距离左右轮转速差则可以推算转向角度。这个方案在平整地面很准但在地毯、瓷砖门槛、打滑场景下误差会迅速放大。真正工程上用的方案是将IMU、轮式里程计和激光/视觉数据进行松耦合或紧耦合融合。最常见的方法是扩展卡尔曼滤波EKF预测模型用IMU和轮速计积分出的位姿增量观测模型用激光匹配或视觉匹配的结果来修正累积漂移。这个过程就是常说的“航位推算绝对修正”。这里有一个关键参数传感器数据的时间戳同步。很多DIY导航项目建图漂移严重不是算法不行而是IMU是50Hz、激光是10Hz数据传输没有做时间对齐融合时相位差导致坐标对不上。做多传感器融合第一步永远是把时间戳对齐否则后面全白搭。3. SLAM建图扫地机器人是怎么把家“画”出来的3.1 前端里程计与扫描匹配建图是导航的地基。扫地机器人用的SLAM和自动驾驶有差别它以2D激光SLAM为主代表算法是Gmapping、Cartographer。SLAM系统的前端叫“里程计”作用是根据连续帧的激光点云估计机器人的相对运动。举个直观例子。机器人走到某个位置扫描了一次看到左边1米处有墙、前方0.5米处有桌腿往前走了一点再扫一次发现墙变成了0.8米、桌腿变成了0.4米。那么算法就能通过特征点的几何变化反推出机器人走了多远、转了多少度。这个估算过程叫“扫描匹配”常用方法有ICP迭代最近点和NDT正态分布变换。ICP的思路很直接找两帧点云中距离最近的点对计算一个旋转和平移变换让这两组点的距离和最小。NDT则是先把空间划分成网格每个网格内统计点的概率分布然后用优化方法寻找最优位姿变换。实际产品中NDT比ICP更稳健尤其在点云稀疏、噪声大的场景下不容易陷入局部最优。前端的输出是“相对位姿”也就是每一帧激光相对于上一帧的平移和旋转量。但是相对位姿一帧帧累积起来误差会不断叠加这就是“漂移”。比如每帧匹配有1%的位置误差走100帧之后累积误差就可能达到一帧距离的几十倍。所以前端必须配合后端优化来消除累积误差。3.2 后端优化与回环检测后端优化的作用是处理“累积漂移”。最常用的手段是图优化把机器人的每个历史位姿当作节点相邻位姿之间的变换当作边构建一个图结构。图优化的目标就是调整所有节点的位姿使所有边的误差总和最小。但光靠相邻帧约束还不够因为误差会沿着轨迹一路传递。真正的杀手锏是“回环检测”。回环检测的意思是当机器人绕了一圈回到曾经到过的地方时算法要能认出“这里我来过”然后把当前位姿和历史位姿做一次匹配。回环检测为什么重要试想一个200平米的房子机器人从客厅出发经过走廊、卧室、厨房最后绕回客厅。如果中间没有回环约束客厅那端的位姿可能已经漂移了半米地图上就会出现“两堵墙错位”的效果。一旦检测到回环优化算法就会像“拉橡皮筋”一样把漂移量分摊到整条轨迹上地图立刻变得闭合。不过扫地机器人空间相对小很多产品对回环检测的要求没有自动驾驶那么高但依然需要。家里环境往往是“回”字形走廊如果没有回环你会发现地图上出现重影或者墙角闭合不上。3.3 栅格地图与拓扑地图的选择SLAM建出来的地图通常分为栅格地图和拓扑地图两类。扫地机器人绝大多数用二维栅格地图简单来说就是把房间划分成很多小格子每个格子有三种状态空闲、占用、未知。栅格大小直接影响内存和精度。常见分辨率是5cm也就是每格5厘米见方一间100平米的房子大概需要40万个格子内存占用可以接受。分辨率太高如1cm能看出桌腿的细轮廓但内存和计算量会爆炸分辨率太低如20cm则障碍物边缘模糊机器人容易卡在窄缝里。这里有个实用的避坑经验扫地机器人的越障能力、机身宽度和栅格分辨率要联动考虑。比如机身宽度34cm过道只有35cm如果栅格分辨率为5cm算法可能把一个34cm宽的通道判成“可通过”或“不可通过”取决于边缘栅格的占用状态。很多时候机器人卡在某个区域出不来不是运动控制的问题而是地图分辨率把可用通道“抹掉”了。拓扑地图则更抽象用节点和连线表示空间连通关系适合做跨楼层导航或语义导航。但扫地机器人因为需要全覆盖清扫栅格地图依然是最自然的选择。有些高端产品会同时维护栅格地图用于规划、拓扑地图用于语义交互比如“去厨房”。3.4 动态物体干扰与地图更新策略SLAM建图时最大的敌人不是传感器噪声而是“动态物体”。激光雷达扫到的点云是瞬时快照如果一个地方刚才没人、现在站了个人就会形成一个“鬼影障碍”。家用环境里最常见的动态物体是人、宠物、移动的椅子、被风吹动的窗帘。针对它们产品一般有两套策略。第一套是“建图时静态假设”在首次快速建图阶段算法默认大部分物体是静止的个别动态点当作野值滤掉。第二套是“运行中持续更新”扫地机器人每次清扫都会用当前扫描和已有地图比对一致性低的栅格标记为动态并降低置信度。但过度更新也有风险。比如你为了通风把窗户打开窗帘被风吹动如果算法把窗帘区域标记为“动态可穿越”机器人就可能一头撞上去。所以工程上一般会给动态栅格设置“最小保持时间”只有连续多次观测到状态变化才允许更新地图。4. 路径规划与运动控制从“全屋覆盖”到“精准避障”4.1 全局规划弓字形清扫与分区覆盖有了地图下一步就是规划清扫路线。扫地机器人最经典的全局规划策略是“弓字形清扫”Boustrophedon也就是像牛耕地一样沿直线来回往复直到覆盖整个连通区域。弓字形规划有两个关键参数行距和前进方向。行距一般略小于吸尘口的宽度通常设定为吸尘口宽度的80%左右。如果吸尘口宽25cm行距就设置为20cm保证相邻路径之间有一定重叠避免漏扫缝隙。方向选择则优先沿墙壁方向因为这样能减少转弯次数同时与房间的主体走向对齐。为什么全覆盖不直接用“蛇形从头扫到尾”因为真实房间有墙、有家具不是一个规则的矩形。所以算法要先做“分区”把连通空间分割成若干子区域比如客厅、卧室、走廊分别划分。分区常用方法有梯形分解和Voronoi图扫地机器人一般用简化的梯形分解找到障碍物造成的“分界线”沿分界线的延长线把空间分成左右两边。每个分区独立执行弓字形清扫分区之间通过“衔接路径”连接。这里有个细节清扫顺序如何确定最简单的是贪心算法每次都选距离当前车位最近、且未清扫的分区。更智能的方案会考虑回充路径和“脏污检测”先扫大概率脏的区域。实测下来贪心排序虽然简单但在小户型里效果不比复杂算法差很多大户型才有明显差距。4.2 局部规划DWA算法与动态避障全局路径规划是静态的但家里处处是意外突然走过来的猫、掉在地上的拖鞋、从沙发上滑落的抱枕。所以还需要局部路径规划来实时躲避动态障碍物。扫地机器人最常用的局部算法是DWADynamic Window Approach动态窗口法。DWA的思想很巧妙它不直接计算一条复杂曲线而是在机器人当前速度空间里采样一组可能的“线速度和角速度组合”然后模拟每条速度组合在未来一小段时间内的轨迹再用评分函数选出一条最优轨迹。评分函数通常包含三个指标朝目标方向的程度方位角评分、与最近障碍物的距离安全评分、当前速度与目标速度的接近程度速度评分。最终轨迹是这三个评分加权求和的最大值。DWA参数调起来很看经验。采样速度个数太多会增加计算量太少又可能选不出安全轨迹。我见过不少翻车案例把“与障碍物的最小距离”权重调太低机器人贴着障碍物走很容易刮擦调太高机器人在空旷区域也会扭扭捏捏路径蜿蜒。好的做法是先固定安全距离阈值再调速度评分最后调目标朝向权重。4.3 悬崖检测、碰撞缓冲与传感器融合避障策略真正的避障不只是“绕过”还包括各种补充传感器。扫地机器人有三大避障硬件悬崖传感器、碰撞缓冲器、沿墙传感器。悬崖传感器通常用红外对射或ToF朝地面探测。当机器人在楼梯边缘传感器检测到地面反射距离突变就会判定为“前方是悬崖”立即停止前进并转向。这里有个坑黑色地毯会吸收红外光导致传感器误判为“悬崖”有些机器人在黑色地毯上会莫名倒退。解决办法是把红外传感器和轮子下沉检测融合起来只有两个信号同时触发才判定为悬崖。碰撞缓冲器是最后一道防线。机器人前面的缓冲条内一般有霍尔传感器或微动开关撞到障碍物时触发反馈。但现代导航机器人应该是“尽量不碰撞”如果经常触发碰撞说明激光雷达没扫到低矮障碍物或者局部规划的参数太激进。沿墙传感器用于贴边清扫。多数产品用侧向的红外或ToF传感器保持机器人与墙面固定距离一般10~15mm。沿墙清扫最容易漏的是墙角所以高端产品在墙角处会执行“扭屁股”动作原地旋转一个小角度把吸尘口对准墙角先把墙角的灰尘吸掉再继续前进。多传感器融合的避障策略本质上是一个“表决系统”激光雷达负责测距、视觉负责分类、红外负责近距离、碰撞器负责兜底。一个优秀的产品会让这些传感器互相验证而不是单靠某一个。比如视觉识别到“这里是数据线”但激光雷达又显示可以通过那机器人应该保守处理减慢速度并降低吸力而不是直接压过去。4.4 脱困策略与多楼层地图管理脱困是扫地机器人绕不开的项目。我实测过不少机型最常见的被困场景有三类一是机身卡在椅子腿之间二是骑上地毯边缘打滑三是被线缆缠住。算法层面的脱困思路通常分三级。第一级是调整局部规划参数比如缩小转弯半径、增大安全距离尝试绕开障碍物。第二级是执行预设脱困动作后退一段距离、原地旋转90度、继续前进。第三级是触发“返航重定位”机器人回到最近已知位置重新规划一条新路线。多楼层地图管理也是近年来的标配需求。一台机器要扫楼上楼下就不能只存一张图。工程上一般用“地图ID重定位描述子”来管理每层建一次图保存为独立ID机器人通过激光扫描匹配来判断自身在哪个楼层然后自动加载对应地图。这里要注意楼层之间的相似布局容易误判比如楼上楼下的卫生间位置一样这时就要结合IMU判断是否经过了楼梯坡度变化。5. 仿真训练与实测用Mujoco验证导航算法5.1 为什么要在仿真环境里训扫地机器人看到热搜里有人问“扫地机器人用MuJoCo可以吗”我的回答是不但可以而且是目前性价比最高的验证方式。MuJoCoMulti-Joint dynamics with Contact是一个高效的物理仿真引擎原本主要用于机械臂和足式机器人研究因为它对接触动力学、关节约束和摩擦模拟得非常精确。扫地机器人本质上是一个“带轮子的接触式系统”轮子与地面之间的摩擦、撞到障碍物时的碰撞响应正好是MuJoCo擅长模拟的部分。在仿真里做导航算法开发有几个实打实的好处第一不用等样机算法迭代速度提高一个数量级第二场景参数可控想模拟大理石、木地板、短毛地毯、过门石都可以直接改摩擦系数第三可以批量跑测试一个晚上跑几千次随机户型清扫这在实机上是不可能完成的。当然仿真也有替代不了的短板。传感器噪声的建模再真实也和真实激光雷达的反射特性有差异扫地机器人实际遇到的灰尘扬尘、光线反射、线缆缠绕等复杂情况很难完全复现。所以正确的姿势是用仿真做快速迭代和回归测试用实机做最终验收。5.2 搭建MuJoCo扫地机器人仿真环境的步骤要点用MuJoCo搭一个扫地机器人仿真环境我建议按下面几步来做。不用一步到位先跑通最小系统再逐步加细节。第一步是建立机器人模型。定义机身的惯性参数、左右驱动轮、万向轮、激光雷达安装位置。MuJoCo用的是MJCF格式的XML描述文件里面可以给每个body加mesh、joint、geom。轮子和地面之间的接触模型是最关键的要设置合适的摩擦系数地板一般设为0.8左右地毯可以设到1.2甚至更高。第二步是加入传感器模型。MuJoCo本身没有激光雷达传感器插件但你可以通过ray-casting实现。具体做法是在每个仿真步长里从雷达安装点向360度方向发射射线记录命中的物体距离加上高斯噪声就得到了模拟的2D点云数据。射线数量一般设360根或者720根角度分辨率1度或0.5度和真实雷达保持一致。第三步是运动控制接口。扫地机器人是差速驱动模型控制量是左右轮速度。MuJoCo里可以通过velocities actuator或者位置控制去驱动轮子但要注意轮子转速饱和限制和加速度限制这样可以模拟真实电机不能瞬间加速的物理约束。第四步是搭建环境场景。可以用obj文件导入真实户型图也可以在MuJoCo里用几何体拼出家具。建议先拿一个简单的房间测试比如4m×4m房间、两把椅子、一个沙发模型跑通流程之后再换成复杂户型。第五步是接入算法层。你需要一个控制循环在每一个控制周期读取雷达点云和IMU数据用SLAM算法建图定位输出左右轮速度指令再写入MuJoCo的actuator。SLAM和路径规划可以用Python实现MuJoCo的Python绑定接口dm_control或mujoco足够支持实时控制。我做仿真时踩过最大的坑是模拟步长。步长太大轮子接触地面的瞬间容易穿透步长太小仿真速度太慢。对于扫地机器人这种低速轮式平台建议仿真步长设置为1ms到2ms跑起来不会太慢物理效果也够真实。5.3 从仿真到实机的“坑”sim-to-real transfer仿真做得再好看最终都要回到实机验证。从MuJoCo转到真实扫地机器人我最想提醒你的是三个“代沟”。第一个是传感器噪声模型。仿真里加的高斯噪声太理想化了真实激光雷达在不同材质、不同角度下测距误差完全不同。黑色哑光家具会“吃掉”激光信号镜面会产生错误的反射点。建议在仿真阶段就加入“材质相关的噪声模型”比如对不同表面设不同的标准差。第二个是执行器的延迟和响应差异。仿真里你下达“左轮0.3m/s”轮子立刻就到了这个速度。真实电机需要几百毫秒才能达到而且存在控制死区。如果你不做延迟补偿在仿真里调试好的避障参数实机一变障就会频繁急转向。第三个是地形的复杂性。仿真里地面是理想的平面真实家里有地毯边、门槛、瓷砖缝。建议在仿真里增加一段“不平整地形”做压力测试或者在实机测试阶段刻意从简单户型开始逐步增加挑战。5.4 实测视频怎么拍才能暴露真实导航问题“扫地机器人视频”这个热词说明大家不光看参数更爱看实际表现。作为开发者拍实测视频不是为了好看是为了暴露问题。我自己的实测流程分三步。第一步固定机位拍全局视角记录机器人完整清扫过程。全局视角能直接看出覆盖率、重复率、卡困行为。注意机位要能看到整个客厅避免盲区。第二步是跟拍视角重点拍细节动作。比如机器人在桌腿附近怎么调整、在门槛前怎么越障、在悬崖边怎么反应。这些特写镜头才方便后续逐帧分析算法行为。第三步是记录传感器数据。光拍视频不够最好同时在电脑上录制雷达点云、地图构建过程、路径轨迹的实时可视化。视频和数据的叠加画面调试效率远高于纯看视频。我当时做实测时每次跑完都会把“地图轨迹传感器事件”合成一张长图哪里漏扫、哪里重复、哪里停顿一眼就能定位问题。6. 常见问题与排查技巧实录6.1 建图重影、地图偏移的原因排查建图重影是最常见的导航问题表现是地图中同一面墙出现两条影子或者地图里有错位的轮廓。导致这类问题的原因多数是以下四个。传感器数据时间戳不同步是最容易被忽略的。激光雷达、IMU、轮速计如果各发各的融合算法拿到的是一堆“错位”的数据。排查方法很容易打印出每个传感器最新数据的接收时间看它们的时间差是否稳定在几个周期以内。轮子打滑导致里程计积分异常也是常见原因。打滑时轮速计告诉算法“我走了20cm”但实际只走了10cm。排查方法是观察机器人直线行走时地图上的轨迹是否笔直如果轨迹某段突然弯曲说明轮子已经打滑。激光雷达安装松动会造成更隐蔽的偏移。雷达罩固定不牢机器人轻微晃动就会让雷达和机身坐标系之间产生相对运动建出的地图会整体旋转或变形。排查方法很简单开机后固定机身旋转雷达看点云正常情况点云应该稳定不跳变。回环检测失效也会导致地图不闭合。如果机器人绕完一圈回到原点但地图没有首尾相接说明回环检测模块没有正确触发。排查时先看回环候选帧的数量如果为0大概率是地图的相似度阈值设置太严格。6.2 漏扫、重复清扫率高的调优方向漏扫和重复清扫率高往往是一体两面核心都要从规划和定位两方面去找。规划层面的原因是弓字形行距设置过大或者分区顺序选择不合理。建议把行距调到吸尘口宽度的70%到80%略减小覆盖密度你的漏扫率能明显下降。定位层面的原因是机器人的位姿估计不准确走了几步之后实际位置和地图位置的偏差越来越大导致弓字形轨迹斜着飘中间留下一大片没扫的区域。解决办法一是检查IMU校准是否正确二是检查轮速计的左右轮一致性。如果两个轮子的实际周长有差异机器人会“跑偏”需要做轮径校准。重复清扫率高还有一个原因是重定位失败后触发了“回原点重扫”逻辑。有些产品在建图地图置信度不够时会保留原地图但机器人已经不知道自己在哪了于是选择“重扫整层”。这种情况要做的是加强回环检测而不是调规划。6.3 导航关键参数速查表下面是一张我日常调试用的参数速查表大家可以直接抄作业不同产品参数略有差异但思路通用。参数建议范围说明激光雷达扫描频率10Hz~20Hz太低建图畸变大太高成本上浮栅格地图分辨率5cm~10cm5cm精度高、计算量大10cm省资源弓字形行距吸尘口宽度的70%~80%保证相邻路径有重叠DWA避障安全距离5cm~15cm毛发类地面调大光滑地面调小沿墙距离10mm~15mm太近刮蹭墙壁太远漏扫墙边回环检测距离阈值0.3m~0.5m小于这个距离视为同一位姿IMU频率100Hz~200Hz低于50Hz会造成运动估计退化轮式里程计频率20Hz~50Hz配合IMU做航位推算6.4 一些日常使用和调教建议最后说几个可能对非研发人员也有用的点。第一家里的地面状态对导航影响非常大扫地机器人建图前建议把地面上的零散物品收拾干净先建一次“干净版”地图之后再允许它在日常状态下清扫第二如果发现机器人总是卡在某个固定位置可以先查看地图里那个位置的栅格占用情况往往是有低矮障碍物没被建图扫到直接在App里设置虚拟墙更省事第三多楼层用户一定确认每层地图独立保存否则机器人到了二层还拿一层的地图规划会发生“对着墙猛冲”的行为。导航这件事看起来只是“扫地”过程中的一个中间环节但它决定了扫地机器人是“家电”还是“机器人”。我个人的体会是把导航原理吃透远比纠结某款吸力多少Pa更有价值因为导航才是决定清扫效率、覆盖率和用户体验的根本框架。就算你是普通用户下次再看到参数页上的“LDS激光导航”“视觉融合避障”这些词也会知道它们背后意味着什么。如果你正准备入坑机器人开发MuJoCo仿真加一套小车的玩法确实是成本最低的起点。先跑通建图再跑通避障最后试试全覆盖路径规划你就能理解为什么真实产品里导航系统的坑永远填不完——因为这个问题的本质是如何在有限传感器和计算资源下让一台不知道自己在哪的机器搞清楚自己是谁、在哪、要去哪。