第一章 那个撞了拖鞋的扫地机器人:我们的故事从一次“迷路”开始
2023年冬夜十点的玄关,我拎着加班后凉透的奶茶推开门,首先撞进视野的不是暖黄的客厅灯,而是那个圆滚滚的白色扫地机器人——它正卡在我随手扔的棉拖鞋旁,旁边散落着半袋没来得及收的瓜子壳,顶部的指示灯一闪一闪,像极了做错事等着挨骂的小狗。这是我第三次在玄关找到卡住的家政机器人,前两次分别是卡在餐桌细腿旁、卡在阳台的地毯边沿,每一次都要我蹲下来把它抠出来,顺便还得收拾它撞翻的猫砂盆、碰掉的绿萝叶片。我忍不住吐槽:“都说你是智能机器人,怎么比我家猫还笨?”话音未落,手机APP弹出一条通知:“本次清扫已完成,共清理地面垃圾23g,避障12次。”我愣了半天,突然想起半年前刚买它的时候,这货可是个没头苍蝇,扫个十平米的客厅能撞八次桌腿,扫完整个家得跑两个多小时,还经常卡在各种犄角旮旯里等我“救援”,怎么现在突然就学会绕开拖鞋、避开桌腿了?
这种“笨 robot 变聪明”的体验,几乎每个用过扫地机器人的家庭都经历过。十年前我们吐槽它是“人工智障”,现在它已经能自动识别地毯、避开数据线、甚至能记住你家的家具摆放,扫完地还能自己回充电桩。这种变化的背后,其实藏着所有自主机器人能独立工作的核心秘密——它们必须搞清楚的三个终极问题:“我在哪?”“我要去哪?”“我怎么去?”这三个看起来像哲学问题的问题,恰恰是机器人从“瞎跑”到“聪明”的分水岭,也是本书要讲的所有内容的核心。
要搞清楚这三个问题,我们不妨先回到机器人技术的早期,看看最开始的机器人到底有多“笨”。2002年,美国iRobot公司推出了第一款面向普通家庭的扫地机器人Roomba,当时定价只要199美元,比市面上任何一个清洁设备都便宜,所以一上市就卖爆了,全球累计销量超过3000万台。但如果你现在拿到一台第一代Roomba,肯定会惊掉下巴:它没有摄像头,没有激光雷达,甚至没有简单的定位模块,整个机身只有三个碰撞传感器和几个红外避障传感器,工作原理简单到离谱——往前跑,撞到东西就转个随机角度,继续往前跑,没电了就随机乱跑找充电桩。
 > *电子版侧边栏提示:点击可观看第一代Roomba的工作演示视频,你会发现它撞桌腿的频率比扫地还高*
那时候的用户给Roomba起了无数外号:“碰碰车”“家庭新宠物”“没头苍蝇”,网上到处都是它的段子:有人吐槽它扫个客厅要两个小时,最后卡在餐桌下面出不来;有人说它把自己卡在窗帘和墙的缝隙里,转了一晚上圈;还有更惨的用户,它把刚放在地上的玻璃杯碰掉摔碎,把猫的窝推翻了吓得猫躲在衣柜顶上三天不下来。那时候根本没有什么“智能避障”的概念,所有的扫地机器人都是靠“撞”来探路的,撞得多了,自然就知道哪里不能走——但这种“笨办法”的效率低到离谱,扫一百平米的房子要三个小时,还经常需要人工救援。
为什么早期的机器人这么笨?因为它们根本解决不了“我在哪”这个问题。没有定位能力,机器人就不知道自己现在在家的哪个位置,扫过的地方记不住,没扫的地方找不到,跑着跑着就忘了自己从哪来的,只能瞎撞。你可能会问:给它装个GPS不就行了?但问题是在室内,GPS信号要么没有,要么误差有几米甚至几十米,根本没法用。那给家里装个定位基站?成本太高了,普通家庭根本承受不起。所以很长一段时间里,消费级机器人都卡在“定位”这个问题上,只能靠随机碰撞这种“笨办法”凑合用。
直到2010年左右,两个关键技术的成本下降,才让机器人真正“变聪明”的可能。第一个是激光雷达的成本从几千块降到了几百块,终于能装在消费级机器人上了;第二个是家用电脑的处理器性能提升,终于能跑得动复杂的地图构建算法。这时候,一项叫“SLAM”的技术开始从实验室走向消费市场,彻底改变了机器人的“智商”。
你可能会问:SLAM是什么?听起来像某种进口零食的名字。它的全称是“同步定位与建图”(Simultaneous Localization and Mapping),缩写就是SLAM。用大白话讲,就是机器人一边画家里的地图,一边在地图上找自己现在的位置。举个例子:你刚买了个扫地机器人,第一次开机的时候,它会开着激光雷达在屋里转,激光雷达会每秒发射几百束激光,打到周围的墙壁、家具、拖鞋上,再反射回来,通过计算激光往返的时间,就能知道周围物体离它有多远。它一边走一边记录这些距离信息,慢慢就拼出了整个家的地图,同时它还能在地图上实时标出自己现在的位置——就像你拿着手机导航,一边看地图,一边知道自己现在在哪个路口一样。
 > *电子版侧边栏提示:点击可查看SLAM技术的动态演示,看懂机器人是怎么一边建地图一边定位的*
有了SLAM技术,机器人就解决了“我在哪”这个问题。它扫过的地方会在地图上标成“已清扫”,没扫的地方会标成“未清扫”,不会重复扫,也不会漏扫;它知道自己现在在地图的哪个位置,就不会瞎跑,更不会卡在桌腿旁边转圈。这就像你拿到了一张完整的地图,还知道自己现在在哪,肯定不会迷路,也不会走回头路。
解决了“我在哪”,接下来就要解决“我要去哪”的问题。最早的机器人没有任务规划能力,就是瞎跑,有时候扫到一半就跑到阳台去晒太阳能,或者围着猫窝转圈玩,根本不知道自己的任务是什么。现在机器人有了完整的地图,就能根据用户的需求规划任务:比如用户说“今天扫客厅和卧室”,机器人就会把地图上的“客厅区域”和“卧室区域”标成待清扫区域,再按照优先级排序,比如先扫容易脏的客厅,再扫卧室,最后清扫边角。这就是“规划模块”要解决的问题,相当于机器人的“大脑”,负责决定“我要去哪”“先做什么后做什么”。
但光知道“我要去哪”还不够,还得知道“我怎么去”最合理。比如机器人要从客厅的A点走到B点,中间有餐桌的桌腿、地上的拖鞋、还有猫窝,它不能硬撞过去,得规划一条不碰障碍物的最短路线,或者是最省电的路线,或者是最省时间的路线。这种“从A到B怎么走最合适”的问题,就是“路径规划”要解决的。路径规划不是只算一次就行,机器人一边走,周围的环境可能会变——比如你突然把椅子挪了,或者猫突然趴在了地上,机器人就得实时重新规划路线,绕开新的障碍物。这就像你用导航开车,前面突然堵车了,导航会实时给你重新规划一条路线,避开拥堵路段,道理是一样的。
规划好路线之后,最后一步就是“我怎么去”的执行问题。比如机器人规划好要往左转30度,往前开10厘米,那它的轮子就得精准地转对应的角度,不能转成45度,也不能只开5厘米;如果前面突然出现一个障碍物,规划说要减速,那它就得立刻停下来,不能撞上去。这种把“规划好的路线”精准执行出来的能力,就是“运动控制”要解决的,相当于机器人的“腿”和“执行力”,负责让机器人按照大脑的指令,稳稳地走到目的地。
现在回头看扫地机器人的变化,你就会发现,它从“笨头笨脑”到“灵活避障”,其实就是慢慢解决了那三个核心问题:先有了SLAM技术,解决了“我在哪”,不会瞎跑了;再有了路径规划技术,解决了“我要去哪”“怎么走最合理”,不会乱跑、不会走回头路了;最后有了运动控制技术,解决了“我怎么去”,能精准地按照路线走,不会撞到东西了。这三个技术——SLAM、路径规划、运动控制,就是贯穿全书的核心概念,也是所有自主机器人都必须掌握的核心技术。
 > *电子版侧边栏提示:点击可查看高清大图,清晰对应三大问题、三大模块和三大核心技术的逻辑关系*
你可能会说:这不就是扫地机器人的技术吗?和我有什么关系?其实这三个问题的通用性远超你的想象:不管是商场里给你送餐的机器人,还是工厂里搬运货物的机器人,甚至现在正在路上跑的自动驾驶汽车,还有火星上探索火星表面的探测车,核心要解决的都是这三个问题。
比如火星探测车,在火星上没有GPS信号,也没有基站,所以首先要解决“我在哪”的问题:它要靠SLAM技术,一边拍火星表面的照片,一边建火星表面的地图,同时定位自己的位置,不能跑丢了;然后地面控制中心会告诉它要去哪个探测点,它要解决“我要去哪”的问题,规划一条避开岩石、坑洞的路线;最后要解决“我怎么去”的问题,控制轮子的转速和方向,在松软的火星土壤上不陷进去,稳稳地走到目的地。你看,不管是地上的扫地机器人,还是天上的配送无人机,还是火星上的探测车,核心逻辑都是一样的,都是围绕“我在哪”“我要去哪”“我怎么去”这三个问题展开的。
再比如现在很多人都在关注的自动驾驶汽车,逻辑也是一模一样:首先要用摄像头、激光雷达、毫米波雷达这些传感器,解决“我在哪”的问题,知道自己在马路的哪个位置,周围有什么车、什么人、什么障碍物;然后要规划行驶路线,知道“我要去哪”,是往前开还是转弯,遇到红灯要停,遇到行人要避让,这就是路径规划要解决的;最后要控制油门、刹车、方向盘,精准地执行规划的路线,该快的时候快,该慢的时候慢,该停的时候立刻停,这就是运动控制要解决的。你平时坐的自动驾驶汽车,能不能安全把你送到目的地,核心就是这三个问题解决得好不好。
我有个做机器人算法的朋友,他经常说一句话:“所有看起来酷炫的机器人,本质上都是在解决‘我在哪’‘我要去哪’‘我怎么去’这三个问题,区别只是应用场景不一样,传感器不一样,算法精度不一样。”比如工业机器人,场景是固定的工厂,所以“我在哪”的问题好解决,只要装个定位标,精度能到毫米级;而火星探测车的场景是未知的火星表面,所以“我在哪”的问题要难得多,要应对复杂的地形和未知的环境。但核心逻辑是完全一样的。
现在你已经知道了自主机器人的三个核心问题,以及对应的三大模块和三大核心技术,是不是觉得那些看起来高深的术语,其实也没那么难懂?后面的章节,我们会一步步拆解这三个问题,带你从零开始搞懂机器人是怎么“看”世界、怎么“走”路的。
第二章我们会先从“看”的问题讲起,带你认识机器人的“眼睛”:激光雷达、摄像头、超声波传感器这些常见的传感器,到底是怎么工作的,各自能看到什么,有什么优缺点;然后我们会讲SLAM技术的核心逻辑,不用复杂的公式,只用大白话给你讲清楚,机器人是怎么一边建地图一边定位的,为什么在没有GPS的室内也能不迷路。
如果你家里也有个曾经“笨头笨脑”现在变聪明的扫地机器人,不妨下次它工作的时候蹲下来看看:它头顶上那个转来转去的激光雷达,就是它的“眼睛”,正在扫描周围的环境;它手机APP里显示的那张你家地图,就是它自己画出来的“导航图”;它绕开拖鞋、避开桌腿的动作,就是它的“大脑”和“腿”配合的结果。这些看起来普通的动作背后,藏着人类科技最浪漫的部分:我们让机器学会“看”,学会“走”,最终是为了让它能帮我们做更多的事,让我们从繁琐的家务、重复的劳动里解放出来,有更多的时间去做自己想做的事。
那天晚上我把卡在拖鞋旁边的扫地机器人抠出来之后,它回到充电桩,自动开始清理尘盒,我坐在沙发上喝奶茶,看着它在客厅里灵活地绕开猫窝、拖鞋、数据线,有条不紊地清扫每一个角落,突然觉得这小小的圆滚滚的机器人,其实一点都不“笨”。它只是需要学会那三个问题而已,就像我们小时候学走路,先学会站稳(感知),再学会找方向(规划),最后学会迈腿(控制),慢慢就能跑能跳,想去哪就去哪了。
> 【本章小结】 > 1. 自主机器人必须解决三大核心问题:“我在哪?”(定位)“我要去哪?”(任务规划)“我怎么去?”(路径规划与执行) > 2. 三大核心模块对应三大问题:感知模块解决“我在哪”,规划模块解决“我要去哪”“怎么走最合理”,控制模块解决“我怎么去” > 3. 三大贯穿全书的核心技术:SLAM(同步定位与建图,感知模块核心)、路径规划(规划模块核心)、运动控制(控制模块核心) > 4. 所有自主机器人(扫地机器人、送餐机器人、自动驾驶汽车、火星探测车等)的核心逻辑都是围绕这三个问题展开的
> 【思考题】 > 1. 你家的扫地机器人有没有过“卡壳”的经历?它当时卡在了什么地方?你觉得它为什么会被卡住? > 2. 如果让你给一个机器人设计让它能在家里不迷路的功能,你会给它装什么“眼睛”?怎么让它知道自己在哪里?
#扫地机器人 #自主导航 #SLAM #路径规划 #运动控制 #机器人科普
2023年冬夜十点的玄关,我拎着加班后凉透的奶茶推开门,首先撞进视野的不是暖黄的客厅灯,而是那个圆滚滚的白色扫地机器人——科沃斯T9,它正卡在我随手扔的棉拖鞋旁,旁边散落着半袋没来得及收的瓜子壳,顶部转得飞快的激光雷达磨得发花,那是我上个月三岁的小侄女拿马克笔给它“化妆”留下的痕迹,手机APP里的地图上还标着我手动设置的“猫窝重点清扫区”,旁边写着“此处猫毛多,吸力调至最大”。这是我第三次在玄关找到卡住的家政机器人,前两次分别是卡在餐桌细腿旁碰掉了我新买的口红,卡在阳台的长绒地毯边沿把猫砂盆推翻了半米远,吓得我家猫躲在衣柜顶上三天没下来,我忍不住吐槽:“都说你是智能机器人,怎么比我家猫还笨?”话音未落,手机APP弹出一条通知:“本次清扫已完成,共清理地面垃圾23g,避障12次。”我愣了半天,突然想起半年前刚买它的时候,这货可是个没头苍蝇,扫个十平米的客厅能撞八次桌腿,扫完整个家得跑两个多小时,还经常卡在各种犄角旮旯里等我“救援”,怎么现在突然就学会绕开拖鞋、避开桌腿了?
这种“笨robot变聪明”的体验,几乎每个用过扫地机器人的家庭都经历过。十年前我们吐槽它是“人工智障”,现在它已经能自动识别地毯、避开数据线、甚至能记住你家的家具摆放,扫完地还能自己回充电桩。这种变化的背后,其实藏着所有自主机器人能独立工作的核心秘密——它们必须搞清楚的三个终极问题:“我在哪?”“我要去哪?”“我怎么去?”这三个看起来像哲学问题的问题,恰恰是机器人从“瞎跑”到“聪明”的分水岭,也是本书要讲的所有内容的核心。
要搞清楚这三个问题,我们不妨先回到机器人技术的早期,看看最开始的机器人到底有多“笨”。2002年,美国iRobot公司推出了第一款面向普通家庭的扫地机器人Roomba,当时定价只要199美元,比市面上任何一个清洁设备都便宜,所以一上市就卖爆了,全球累计销量超过3000万台。但如果你现在拿到一台第一代Roomba,肯定会惊掉下巴:它没有摄像头,没有激光雷达,甚至没有简单的定位模块,整个机身只有三个碰撞传感器和几个红外避障传感器,工作原理简单到离谱——往前跑,撞到东西就转个随机角度,继续往前跑,没电了就随机乱跑找充电桩。
 > *电子版侧边栏提示:点击可观看第一代Roomba的工作演示视频,你会发现它撞桌腿的频率比扫地还高*
那时候的用户给Roomba起了无数外号:“碰碰车”“家庭新宠物”“没头苍蝇”,网上到处都是它的段子:我闺蜜家2010年买的第二代Roomba,当时她家刚铺了那种5厘米厚的长绒地毯,Roomba每次开上去就会陷进去,轮子空转十分钟都出不来,最后她家干脆把全屋的地毯都收进了储藏室,至今没再铺过;还有个国外的极客玩家,给Roomba装了个微型摄像头和计数模块,办了一场“Roomba马拉松”,最后那只打了鸡血的机器人跑了42公里,绕着自己的小房子跑了200多圈,拿了冠军,主人还得专门给它换了三次电池。那时候根本没有什么“智能避障”的概念,所有的扫地机器人都是靠“撞”来探路的,撞得多了,自然就知道哪里不能走——但这种“笨办法”的效率低到离谱,第一代Roomba清扫100平米的房子需要3小时,覆盖率只有60%,也就是说有40%的地方它根本扫不到,还经常需要人工救援,很多人买回去用了半个月就扔在储物间吃灰。
为什么早期的机器人这么笨?因为它们根本解决不了“我在哪”这个问题。没有定位能力,机器人就不知道自己现在在家的哪个位置,扫过的地方记不住,没扫的地方找不到,跑着跑着就忘了自己从哪来的,只能瞎撞。你可能会问:给它装个GPS不就行了?但问题是在室内,GPS信号要么被墙壁挡住完全没有,要么误差有几米甚至几十米,我之前在商场用手机导航找奶茶店,GPS直接把我导到了隔壁的服装店里,误差有5米远,在只有几米宽的家里,这种误差根本没法用。那给家里装个定位基站?2010年的时候,工业级的室内定位基站一套要几万块,普通家庭根本承受不起,所以很长一段时间里,消费级机器人都卡在“定位”这个问题上,只能靠随机碰撞这种“笨办法”凑合用。
直到2010年左右,两个关键技术的成本下降,才让机器人真正“变聪明”的可能。第一个是激光雷达的成本从几千块降到了几百块,终于能装在消费级机器人上了;第二个是家用电脑的处理器性能提升,终于能跑得动复杂的地图构建算法。这时候,一项叫“SLAM”的技术开始从实验室走向消费市场,彻底改变了机器人的“智商”。
你可能会问:SLAM是什么?听起来像某种进口零食的名字。它的全称是“同步定位与建图”(Simultaneous Localization and Mapping),缩写就是SLAM。用大白话讲,就是机器人一边画家里的地图,一边在地图上找自己现在的位置。我给你打个比方:你蒙着眼睛走进一个陌生的房间,你一边走一边伸手摸周围的墙壁、桌子、椅子,记下来“我现在摸到了桌子,桌子在我的右手边,距离我半米”,走几步再摸一下,“现在我在桌子前面,距离墙壁一米”,你一边走一边记这些信息,慢慢就在脑子里画出了这个房间的地图,同时你也能大概知道自己现在在房间的哪个位置——这就是SLAM的本质,机器人就是那个蒙着眼睛的人,激光雷达就是它的手。
 > *电子版侧边栏提示:点击可查看SLAM技术的动态演示,看懂机器人是怎么一边建地图一边定位的*
我家的第一台扫地机器人刚买回来的时候,第一次建图就把卫生间的位置标歪了,把卫生间的门标在了墙上,后来我手动把地图拖正之后,它第二次扫描就自动修正了,这就是SLAM里的“闭环检测”功能:机器人走了一圈回到原来的位置,发现之前标的地图和现在的对不上,就会自动修正误差,就像你蒙着眼睛走了一圈回到原点,发现之前记的墙的位置和现在摸到的对不上,就会调整脑子里的地图,不会一直错下去。当然,机器人不像人一样有脑子,它靠的是算法:一边靠轮子的转速算自己走了多远(这个叫“里程计”,就像你走路数步数),一边靠激光雷达测周围物体的距离,两个数据对比,发现里程计算的距离和激光雷达测的距离对不上,就知道走歪了,自动修正。
> 侧边栏:SLAM的两种流派 > 机器人领域的SLAM算法主要分成两个流派:滤波派和优化派。用大白话讲,滤波派就是“走一步算一步”,每走一步就根据当前的观测数据更新一次位置和地图,优点是实时性高,适合需要快速反应的场景,比如机器人避障;优化派就是“走完一圈再整体算一遍”,等机器人走完一圈回到原点,把所有数据放在一起整体优化,得到的地图和定位精度更高,适合精度要求高的场景,比如火星探测。现在的机器人基本都是两个流派结合,既保证实时性,又保证精度。
有了SLAM技术,机器人就解决了“