← 返回博客

个人博客

导航与避障:机器人怎么从 A 走到 B

前情提要 上一回第 30 篇《三道难关与未来:泛化、安全、成本》把具身智能的拦路虎归结成了三道难关——机器人得能"换个场景还认得路"(泛化)、"做事不伤人也不伤己"(安全)、"成本得降到买得起"(成本)。但再宏伟的蓝图,落地的第一步往往是"先别撞、先走到目的地"——本篇就讲这件最日常却最不简单的事:导航与避障。

你有没有想过,让一个机器人"从客厅这头走到那头",到底难在哪?

对人来说,这几乎不叫事。你眼睛一扫,脑子里自动浮现出"先直走、绕过茶几、再拐弯"的路线;脚下边走边微调,看见猫窜过来顺手让一下——全程不用过脑子。可一旦把这事交给机器人,它得把"我在哪、往哪走、怎么不撞"三件事同时算清楚,缺一不可。而且人还会"将心比心":你知道椅子不会自己跑,却会提防一个正低头看手机走过来的人;机器人没有这种生活常识,它得用纯粹的传感器和计算,把这件你闭着眼都能做的事,重新学一遍。

这一篇,我们就来拆开看:机器人是怎么从 A 走到 B 的。

第一步:知道"我在哪"

机器人没有"天生知道自己在哪"的超能力。你可能想:装个 GPS 不就行了?可 GPS 到了室内、隧道、地下车库就基本失灵——信号被墙挡住,找不到卫星。所以机器人得靠自己身上的传感器,边走边画地图、边定位自己。

这背后有个直觉,我们在第 8 篇《深度与三维:机器人怎么知道"多远"》里提过。那篇讲 SLAM(同步定位与建图)时说,机器人用激光雷达或摄像头,不断测量"前方墙离我多远、左边门框在哪",再把一次次的观测拼起来。你可以把它想象成在漆黑山洞里举着手电走:手电每次只能照亮眼前一小片,你每走几步,就把新看到的那块岩壁,悄悄画进脑中的洞穴草图里;同时,你也能从"这块石头我刚见过"反推出"我大概走到哪了"。SLAM 干的就是这件事——一边认路,一边记下自己走到了哪,名字吓人,核心就这一句。而且这套活儿是反复做的:每看到一个熟悉的墙角,就校准一次位置;每走一段,就补全一段地图,地图越画越全,定位也越来越准。

定位准了,机器人才算有了"出发的坐标"。坐标要是飘了,后面规划得再漂亮也是白搭——就像你明明站在客厅,脑子里却以为自己在厨房,那往哪走都是错。这也是为什么扫地机偶尔会原地转一小圈"重新认认门"——它发现眼前画面和地图对不上,就停下来重新校准,免得越走越偏。

第二步:知道"哪里好走、哪里别去"

光知道自己在哪还不够。人看地图会本能地想"这条路近但堵车,那条绕远但顺畅"。机器人也得给环境打打分。

它脑子里存着一张"代价地图":把地面切成一格一格,给每格标上一个"难走程度"。平地是低分,畅通无阻;地毯稍高一点,轮子容易打滑;台阶、门槛直接高到离谱,意思基本是"别来"。甚至一摊水渍、一片拥挤的人群,也会被临时标成高分——谁也不想碾过水坑或撞进人堆。这样一来,"哪里好走、哪里别去"就变成了一张带分数的图,后面的规划才有依据。

你可以把代价地图想成一张"舒服度热力图":颜色越冷(分越低)越好走,越暖(分越高)越要绕着走。它和普通地图最大的不同,是普通地图只告诉你"路在哪",代价地图还告诉你"哪条路走起来最省心"。而且代价地图是能随时更新的:扫地机刚才撞了一下桌腿,就会把那附近悄悄调高几分,下次乖乖绕着走。代价地图还有一个妙处:它把"好不好走"压成了一个个数字,规划时谁分低就走谁,机器人不必真的去撞一下才长记性。

flowchart LR n1["知道自己在哪"] --> n2["地图与代价图"] --> n3["规划路径"] --> n4["沿路走+实时避障"] --> n5["到达 B"]

第三步:规划一条"不撞、不绕远、好走"的路

有了坐标,也有了打分的地图,接下来就是找路。

直觉上分两层。先看全局:从 A 到 B 大概走哪条"主干道"最顺?机器人会在那张代价地图上,从起点朝终点扫一遍,挑一条总分最低、也就是最省力不绕远的路线——就像你出门前先想好"走大路还是穿小巷"。这层规划冷静、周全,但它假设世界在规划那一刻是静止的,所以稍微有点"慢节拍"。

然后再看脚下:真走起来,眼前突然多了把椅子,就得局部避开,别硬撞。这里不聊复杂公式,你只要记住一句话——好规划是"先定大方向,再躲眼前坑"。举个生活的例子:你从工位去茶水间,先决定走走廊主路(这是全局),路上有人挡道再侧个身挤过去(这是局部)。机器人用同样的分工,既不会困在眼前的小障碍里钻牛角尖,也不会因为只盯大局而撞上鼻尖前的桌子。全局定好主干,局部负责微调,两层配合,路线才既不傻绕、也不撞墙。

不过光会规划还不够。世界是动的:刚才畅通的过道,下一秒可能有人推着车过来;你以为空着的电梯口,转眼就堵了。规划出的路,是"计划",不是"保证"。这就要靠下一步来兜底。

第四步:边走边让,实时避障

这就到了最考验功夫的环节:实时避障。

想象你正沿着计划好的路线走,突然一个孩子从拐角冲出来。你不会停下来重算整张地图,而是脚下一错、身子一偏,先让开再说——这种"来不及细想、先就地微调"的反应,正是实时避障。机器人也一样:它持续盯着周围,一旦发现逼近的障碍,就在原路线旁边做局部修正,绕开再回到主干道。它像在身体周围撑起一个无形的"安全气泡",气泡快碰到东西就自动往反方向挪一点;如果障碍只是路过,气泡缩回去,它又贴回原路线;如果障碍赖着不走,局部规划才会向全局告急,请上层重新选路。这整个过程快到肉眼几乎看不出它在犹豫——这正是"实时"二字的分量:不是停下拉长脑子想,而是一边走一边把路让出来。

这和第 19 篇《行走与平衡》里讲的一脉相承。那篇说,机器人走路不只是迈腿,更要时刻维持动态平衡——遇到突发扰动,身体得自己稳住、脚步得自己调顺,才不至于摔。导航里的"边走边躲",本质就是这种动态维持能力,被搬到了更宏观的尺度上:不只是稳住身体不倒,还要稳住"整条路线不被撞"。行走是脚下的平衡,避障是路线上的平衡,根子上是同一套"边动边稳"的功夫。

收束:导航是感知、思考、行动的最日常样子

把上面的串起来:导航 = 知道自己在哪里(定位)+ 知道哪里好走(地图与代价图)+ 边走边躲(规划加实时避障)。这三步合在一起,恰好是具身智能里"感知—思考—行动"闭环最朴素、也最日常的体现——眼睛和传感器在感知,大脑在思考路线,腿脚在行动,而且三者一刻不停地在互相呼应:感知到新障碍,思考立刻重排路线,行动马上让开,再贴回去。

下次你看见扫地机器人绕着拖鞋走、仓储里的搬运小车在货架间穿梭,就知道背后跑着的就是这一整套逻辑。它不需要多聪明,但必须把这"三件套"做得又稳又快。而对我们来说,能稳稳"从 A 走到 B",只是机器人真正干活的前半程——走到了,还得伸手把事办了。

读后小测

「3 句话复述」 1. 机器人靠自身传感器边走边定位,GPS 在室内和隧道里会失灵,所以它得像摸墙认路一样自己拼出"我在哪"。 2. 它用代价地图给每块地打"难走分",再规划一条不撞、不绕远、好走的路,但世界在动,计划不是保证。 3. 遇到突发的障碍,机器人会做局部微调边走边让,导航其实就是"知道在哪加知道哪好走加边走边躲"的感知思考行动闭环。

「1 件动手小事」 今天在家或办公室走一段路时,刻意留意一下自己:你是怎么知道"现在站在哪"的?又是怎么提前绕开椅子、人和门槛的?把你下意识做的这几步写下来,对照文章看看,机器人用的正是同一套思路——只是把你的直觉换成了传感器和打分地图。

下一回,第 32 篇《灵巧手与精细操作:为什么五指手这么难》:你会看到"走到位"只是前半程,真正功夫在伸手把东西稳稳拿起来、在手里调顺。