启程:我的第一个机器人伙伴 / Setting Off: My First Robot Buddy
十二岁生日那天,Leo拆开那个印着机器人图案的快递盒时,还以为是爸妈给他买了最新款的无人机——直到他把所有零件倒在餐桌上,看见一堆亚克力底盘、直流电机、螺丝钉和一块巴掌大的蓝色主控板,才反应过来这是爸妈瞒着他买的入门级机器人套件。包装盒上的英文说明书写着`DIY Robot Kit for Beginners`,旁边还贴了个手写的便签,是爸爸的字迹:“生日礼物,自己拼,自己调,比玩手机有意思。”
餐桌上散落的零件带着新塑料的清爽味,Leo把说明书摊开,对着上面的英文零件清单一个个核对:2个TT直流电机(TT DC Motor)、1个9V电池盒(9V Battery Holder)、1个超声波传感器(Ultrasonic Sensor)、2个碰撞开关(Bump Switch),还有一堆红黑相间的杜邦线(Dupont Wire)。这是他第一次接触机器人,之前他只在科幻电影里见过能走路、会说话的机器人,从来没想过自己真的能拼一个出来。
拼底盘花了四十分钟,Leo把螺丝拧得歪歪扭扭,还差点把电机装反,好不容易把两个轮子固定在底盘上,接上电池的那一刻,他紧张得手都出汗了。可刚按下主控板上的启动键,机器人猛地往前一窜,把他刚倒的可乐杯撞翻,深褐色的液体顺着餐桌边缘流下来,滴在他刚拼好的底盘上,电路板发出“滋滋”的声响,吓得他赶紧拔了电池。
“怎么回事?”爸爸端着切好的蛋糕走过来,看见满桌的狼藉也没生气,反而笑着问。 Leo耷拉着脑袋:“我也不知道,一通电就乱跑,是不是电机装反了?” 爸爸拿起底盘看了看,又翻了翻说明书:“你试试把左右电机的杜邦线交换一下?有时候接线接反了,两个电机的转向就会不一样,机器人就会原地打转。” Leo半信半疑地把两根接在电机上的杜邦线拔下来交换位置,重新接上电池按下启动键——这次机器人没有往前窜,而是像个陀螺一样原地转了起来,轮子磨得地板吱呀响,把桌上的橡皮、铅笔都甩到了地上,转了整整十秒钟才停。 “哈哈,这回是程序写错了!”Leo恍然大悟,他刚才写的代码里,给左右电机的转速设成了不一样的值,本来想让机器人走曲线,结果接反线之后,两个电机的转向相反,就原地打转了。他赶紧坐到电脑前,打开Arduino编程软件(Arduino:一款开源的电子原型平台,全球有数百万爱好者用它做机器人、智能家居等项目),把代码里的转速参数改成一样的,重新上传程序。 这次机器人终于往前走了,可没走两步就斜着撞到了椅子腿上,原来电池电量不足,两个电机的转速还是不一样。Leo换了块新电池,重新测试,这次机器人走得直了,可前面没有任何避障装置,它就像个瞎子一样,撞到椅子腿弹回来,转个方向接着撞,没两分钟就把餐桌上的餐巾纸盒撞到了地上。
> 💡 小贴士(电子版侧边栏):你现在看到的这个翻车场景,其实是所有机器人爱好者的“入门必修课”:90%的新手第一次拼机器人都会遇到接线错误、程序bug、避障失败的问题,连顶尖的机器人工程师做实验的时候也经常翻车,翻车才是机器人学习的常态哦!
Leo气得把螺丝刀扔在桌上,一屁股坐在椅子上:“机器人也太难了吧!动不动就乱撞,什么时候才能听话啊?” 爸爸递给他一块蛋糕,笑着说:“你刚才说机器人要‘听话’,首先得让它能‘看见’东西吧?不然它当然会乱撞。其次它得知道‘要去哪’,最后得真的能‘走到那’,你觉得这三个部分是不是缺一不可?” Leo咬着蛋糕想了一会儿,突然眼睛亮了:“对哦!首先它得知道周围有什么,不然就会撞到东西,这是‘感知’;然后它得知道我要它去哪,比如我要它从客厅走到卧室,它得自己算路线,不能乱跑,这是‘规划’;最后它得真的能按照规划的路线走,不会走歪,这是‘控制’!原来机器人动起来需要这三个部分啊!” 爸爸点点头:“没错,感知、规划、控制,就是机器人学的三大核心模块,所有的机器人,不管是能上天的无人机,还是能下水的探测车,还是你手里这个几十块的小套件,都是靠这三个部分工作的。你今天遇到的这些翻车问题,其实都是这三个模块没配合好的结果:接线错误是控制模块的问题,程序bug是规划模块的问题,没有避障是感知模块的问题。”
1.1 机器人的三大超能力 / The Three Superpowers of Robots
Leo看着桌上还在原地打转的机器人,突然觉得它好像也不是那么笨了——它只是没有“眼睛”,不知道前面有椅子,也没有“大脑”,不知道要避开障碍物,更没有“平衡感”,不知道走直线的时候要调整轮子的转速。如果把这三个能力补上,这个几十块的小铁盒子,说不定真的能变成他的专属伙伴。
爸爸拿过他的机器人,指着上面的部件给他讲:“你看,这个前面的小开关就是碰撞传感器,属于感知模块的一部分,相当于机器人的‘触觉’,碰到东西就会触发信号;这个蓝色的主控板就是机器人的‘大脑’,负责处理感知到的信息,规划下一步要做什么;这两个电机就是执行器,属于控制模块的一部分,相当于机器人的‘手脚’,接到大脑的指令就会转,让机器人动起来。” Leo凑过去看,发现主控板上还有很多小针脚,说明书上说可以接摄像头、激光雷达、红外传感器,这些都是感知模块的部件,相当于机器人的“眼睛”“耳朵”“鼻子”。
> 🤪 趣味冷知识:其实机器人最早的“感知”不是用电做的,是古希腊人发明的自动人偶:工匠会在人偶里装水压装置,人偶手里拿着个杯子,客人倒酒的时候,水压会推动杯子自动递到客人面前,相当于用机械结构实现了“感知倒酒动作→规划递杯动作→控制手臂动作”的完整流程,距今已经有2000多年的历史了。
爸爸接着说:“咱们平时玩的乐高机器人、家里用的扫地机器人、网上卖的无人机,还有
爸爸接着说:“咱们平时玩的乐高机器人、家里用的扫地机器人、网上卖的无人机,还有现在很火的人形机器人,其实都是靠这三个部分工作的。就拿你上周在张明家玩的乐高Spike机器人来说,它能走能跑还能抓东西,前面有个颜色传感器,就是它的‘眼睛’,能识别红、绿、蓝三种颜色;中间的Spike主控板就是它的‘大脑’,收到颜色传感器的信号之后,会判断如果是红色就左转,绿色就右转,蓝色就停下来抓东西;后面的两个电机就是它的‘手脚’,接到主控板的指令就会转,带着机器人走。你上次看张明让机器人沿着地上的黑线走,其实就是颜色传感器识别到黑线的反光和地板不一样,把信号传给主控板,主控板规划路线,控制电机调整方向,机器人就沿着黑线走了,是不是就是这个道理?” Leo点点头,他上次确实看张明的乐高机器人沿着黑线跑,觉得很神奇,原来就是这么回事。
“再说你奶奶家那个扫地机器人,你上次看它在客厅里转来转去扫地,它前面有个小圆盘一样的激光雷达(LIDAR:Light Detection and Ranging,激光探测与测量,通过发射激光束测量距离,是机器人最常用的3D感知设备之一),就是它的‘眼睛’,每秒能转好几圈,扫描周围几百个点,就能画出整个客厅的地图,这就是感知模块在工作;然后它的主控板会根据地图规划‘弓’字形的清扫路线,不会漏扫也不会重复扫,这就是规划模块;最后它控制两个轮子的电机,按照规划的路线走,遇到障碍物就绕开,这就是控制模块。你上次把乐高小人放在地上,它绕开了,就是因为激光雷达感知到了乐高小人,规划了绕路的路线,控制电机转了方向。” Leo突然想起上次扫地机器人把奶奶的拖鞋推到沙发底下的事,忍不住笑了:“那它上次把拖鞋推走,是不是规划模块出问题了?没识别出来是拖鞋,以为是障碍物,推的时候没控制好力度?” 爸爸笑着点头:“没错,这就是三大模块配合不好的结果,感知模块把拖鞋识别成了普通障碍物,规划模块算出来要推着走,控制模块没控制好电机的力度,就把拖鞋推到沙发底下了。现在新的扫地机器人加上了视觉识别模块,能认出拖鞋、袜子、电线这些容易卡住的物体,就不会乱推东西了。2023年全球卖了超过3000万台扫地机器人,其中70%都带激光雷达和视觉识别,比前几年的‘瞎子’机器人聪明多了。”
“还有你上次在公园玩的那个大疆Mini无人机,你能用手机控制它飞,它上面的摄像头、GPS、IMU(惯性测量单元:Inertial Measurement Unit,能感知加速度、角速度的传感器,相当于机器人的‘内耳前庭’,能感知自身倾斜、加速、旋转的状态,是飞行机器人必备的感知部件)就是它的感知模块,能知道自己飞了多高、飞了多远、前面有没有树;手机上的APP就是规划模块,你点哪里它就规划路线飞到哪里;四个电机就是控制模块,通过调整四个电机的转速,让无人机保持平衡、往前飞、转弯、降落。你上次让它飞过小树林,它没撞到树枝,就是摄像头感知到了树枝,规划了绕路的路线,控制电机调整了方向。无人机要稳定飞行,控制模块的响应速度必须非常快,每秒要调整几十次电机转速,差一点就会摔下来,你上次看见邻居小孩的无人机撞到树上,就是控制模块的响应太慢了,没来得及调整方向。”
Leo越听越入迷,他想起自己刚才拼的机器人,只有两个碰撞开关当感知,主控板只能跑最简单的代码,电机还是最便宜的TT电机,连舵机都没有,和这些扫地机器人、无人机比,简直是个“原始人”。他忍不住问:“那这三个模块是不是缺一不可?少一个机器人就不能动?” “当然,你可以把机器人想成一个人:”爸爸拿起桌上的苹果比划着,“感知模块就是人的五官,眼睛看路、耳朵听声音、手摸东西,要是没有五官,就是个瞎子聋子,肯定会撞到东西;规划模块就是人的大脑,知道要去哪、怎么走、遇到危险怎么躲,要是没有大脑,就是植物人,不会动;控制模块就是人的手脚,大脑说要抬手,手就抬起来,大脑说要走路,脚就走,要是没有手脚,就是瘫痪,动不了。这三个部分配合起来,机器人才能正常工作。” 为了让Leo更明白,爸爸拿他自己举例:“你早上起床去上学,其实就是个活机器人:你的眼睛和耳朵是感知模块,看路、听车的声音;你的大脑是规划模块,算着时间要几点出门、走哪条路不堵车、要不要带伞;你的腿和脚是控制模块,按照大脑的指令走路、骑车。要是你走路的时候玩手机,就是感知模块‘罢工’了,肯定会撞到电线杆;要是你记错了上课时间,走错了路,就是规划模块‘出bug’了;要是你腿抽筋走不动,就是控制模块‘故障’了,是不是特别好理解?” Leo拍了下桌子:“对哦!我之前怎么没想到,我自己就是个机器人啊!”
爸爸笑着点头:“没错,机器人本来就是人类模仿自己造出来的,很多机器人的原理都是模仿人的器官和工作方式。你看现在的人形机器人,有摄像头当眼睛,有麦克风当耳朵,有机械手当手,有轮子或者腿当脚,和人的结构特别像。不过机器人也有比人强的地方,比如它的传感器能测到人测不到的数据,比如红外线、紫外线,它的计算速度比人快几万倍,它的力气比人大几十倍,不会累,不会疼,适合干人干不了的活。” > 🤪 趣味冷知识:现在最先进的人形机器人,已经能完成很多和人一样的动作了,比如波士顿动力的Atlas机器人,能跑能跳能翻跟头,还能扛着几十公斤的东西走平衡木,比很多体操运动员还厉害,不过它现在还不能自己做饭,因为它的“手”还不够灵活,规划模块还没法处理做饭这么复杂的任务。
接下来爸爸给Leo讲了机器人的发展历史,不是枯燥的年份,而是像讲故事一样: “
爸爸话音刚落,Leo已经凑到手机前翻出上周在张明家拍的乐高机器人视频:那个红白相间的小机器人正沿着地上的黑色胶带稳稳移动,前面装着的颜色传感器时不时闪一下绿光,碰到胶带交叉口还会自动选方向。“那乐高机器人也是这三个模块?那为什么它那么聪明,能沿着黑线走?” “当然,只是它的模块更小更简单而已。”爸爸点开视频里的特写,指着乐高机器人前面的颜色传感器,“你看这个,就是它的‘眼睛’,能识别黑线和地板的颜色差,把信号传给主控板,主控板就是它的‘大脑’,提前写好规则:如果传感器看到黑线在左边,就让左边的电机转慢一点,右边的电机转快一点,机器人就往左拐;如果黑线在右边,就反过来。最后两个电机就是‘手脚’,按照指令转,机器人就沿着黑线走了。你上次看张明让机器人爬坡、过桥,也是提前在代码里写好了遇到坡道要怎么调整电机转速,和咱们今天给机器人写避障代码是一个道理。”
接下来爸爸给Leo讲了机器人的发展历史,不是枯燥的年份,而是像讲故事一样: “咱们现在玩的这些机器人套件,其实是几十年来无数工程师一点点攒出来的技术。最早提出‘robot’这个词,是1920年捷克作家卡雷尔·恰佩克写的科幻剧本《罗素姆万能机器人》,里面的robot来自捷克语的‘robota’,意思是‘被奴役的苦力’,剧本里的机器人本来是给人干活的,后来造反统治了人类,这个剧本当时火遍了欧洲,直接把‘robot’这个词带到了全世界,现在所有国家的语言里都直接用这个词,中文翻译成‘机器人’,就是‘像人的机器’的意思。” Leo忍不住笑:“原来机器人一开始就是干苦力的啊,和我手里的这个套件一样,也是干活的。” “没错,1942年科幻作家阿西莫夫在小说《环舞》里提出了‘机器人三定律’,现在还是所有机器人设计的底层规则:第一定律,机器人不得伤害人类,或因不作为使人类受到伤害;第二定律,机器人必须服从人类给它的命令,除非命令和第一定律冲突;第三定律,机器人在不违反第一、第二定律的情况下要尽可能保护自己的生存。你家的扫地机器人不会故意撞你,你让它‘撞碎那个杯子’它也不会听,就是工程师提前把这三定律写进了它的规划算法里,相当于给机器人定了‘不能干坏事’的规矩。” 爸爸接着翻出手机里的一张老照片,照片里是个两吨重的铁疙瘩,胳膊有四五米长,像个工业怪兽:“1959年,美国工程师乔治·德沃尔发明了第一台可编程工业机器人‘Unimate’,在通用汽车的工厂里用来搬运高温的铸件,代替工人干又累又危险的活。这个机器人就是现在所有工业机器人的老祖宗,它没有摄像头,没有复杂的算法,感知只有几个限位开关,规划就是提前写死的固定程序,控制就是简单的继电器开关,只能干‘抬手-放东西’这一种动作,但已经比工人强多了,不会累,不会烫伤,搬铸件的效率是工人的3倍。” “那它是不是很笨?只能干一种活?”Leo问。 “对,就像你只会写‘让电机转’的代码,只能让机器人往前走,不能转弯不能避障一样。不过很快工程师就给它升级了,1969年斯坦福大学造出了第一台能自主移动、自主感知的机器人‘Shakey’,它有个小轮子能自己走,前面装了摄像头、碰撞传感器、超声波传感器,能自己‘看’到前面的椅子、箱子,自己规划路线绕过去,还能听懂简单的指令,比如‘去那个房间拿个盒子’。不过它特别笨重,走一步要算好几分钟,走十米要半小时,经常算到一半就没电了,但它是现在所有扫地机器人、自动驾驶汽车的鼻祖,证明机器人真的能自己‘看’路、自己‘想’路线。” Leo眼睛亮了:“那现在的小机器人比它聪明多了?我手里的这个套件,算力是不是比Shakey强?” “当然,你现在用的Arduino主控板的算力,是Shakey主控板的1000倍还多,而且体积只有它的十分之一,成本只要几十块。2000年以后,机器人开始进入普通人的生活,2002年第一台家用扫地机器人诞生,2010年大疆的无人机开始卖到全世界,2020年以后大模型和机器人结合,机器人能听懂自然语言,能自己学新技能,你现在学的入门套件,其实就是几十年前那些顶尖机器人原理的简化版,现在的初中生就能玩,放在几十年前,只有顶尖的工程师才能碰得到这些技术。” > 🤪 趣味冷知识:Shakey机器人现在还在斯坦福大学的计算机博物馆里公开展示,如果你以后去美国旅游,可以去看看这个“机器人老祖宗”,它的大小和现在的扫地机器人差不多,不过重了10倍,走起来还哐哐响,旁边还放着它当年用的磁鼓存储器,存个100MB的文件要装一整个柜子。
爸爸接着给Leo讲机器人的分类,不是按长相分,是按用的场景分:“咱们刚才说的扫地机器人、乐高机器人、工业机械臂、无人机,其实分三类,占了全世界1000多万台机器人的全部:” 第一类是工业机器人,占90%以上,大部分都是机械臂,没有头没有脚,只有一个能转的胳膊,专门干工厂里的活:焊汽车车身、装手机零件、搬重物、喷漆。比如特斯拉的超级工厂里,有上千台机械臂在焊车身,一天能焊几百辆汽车,精度到0.01毫米,比最熟练的工人还准,还不会累,不用休息,也不会得职业病。工业机器人的三大模块都特别成熟:感知模块用摄像头、力传感器,能精准定位零件的位置,差0.1毫米都能感知到;规划模块用提前写好的固定程序,算好每一步的动作,不会出错;控制模块用高精度的伺服电机,能精确控制胳膊转多少度、用多大力,不会把 fragile 的零件捏碎。 第二类是服务机器人,占大概8%,就是给普通人服务的,你平时在商场、家里、医院见到的都是这类:家里的扫地机器人、餐厅里的送餐机器人、商场里的引导机器人、医院里的消毒机器人、家里的智能音箱,还有现在正在测试的人形机器人,都属于服务机器人。服务机器人的三大模块更灵活:感知模块要能识别人的脸、听懂人话、感知到障碍物;规划模块要能处理突发情况,比如送餐机器人遇到人挡路会绕开,遇到电梯门开了会等电梯;控制模块要更安全,不会撞到人,不会把餐盘摔碎。 第三类是特种机器人,占不到2%,是干特殊场景的活,普通人平时见不到:比如咱们国家上个月刚从火星传回来照片的“祝融号”火星探测车,能在火星零下100度的环境下工作,自己规划路线避开火星上的石头、坑,还能挖土壤、放仪器测成分;还有水下探测机器人,能去马里亚纳海沟11000米深的地方拍照片、采样本,人下不到那么深的地方,只能靠机器人;还有救灾机器人,能进火灾现场、地震废墟里找人,不用消防员冒生命危险;还有手术机器人,能帮医生做微创手术,精度到0.1毫米,不会抖,比人手还稳,做眼科手术的时候,能精准到不伤害到一根神经。 Leo听得入迷,忍不住问:“那机器人是不是都长那个样子?电影里的机器人都是人形的啊。” 爸爸笑着摇头:“电影里的机器人是为了好看,现实里的机器人是为了好用,什么形状适合干什么活就设计成什么形状:扫地机器人做成圆盘的,能原地转,不会卡在角落;工业机械臂做成胳膊的形状,适合拿东西、焊东西;无人机做成四旋翼的,能飞,适合拍照片、送快递;火星探测车做成六轮子的,能在松软的火星土壤上走,不会陷进去。99%的机器人都不是人形的,只有少数研究用的人形机器人,是为了以后能帮人做家务、照顾老人,才做成人形的,方便用门、拿杯子、按开关。”
接下来爸爸要给Leo的机器人升级了,他从套件里拿出那个还没用的超声波传感器,告诉Leo这个是感知模块的核心部件,能发出人听不到的超声波,碰到障碍物会反弹回来,就能算出来离障碍物有多远,相当于给机器人加上了“眼睛”。 “咱们现在给机器人写个简单的避障代码,逻辑特别简单,你肯定能懂:”爸爸边写边给Leo讲,“第一步,感知模块工作:让超声波传感器测前面的距离;第二步,规划模块工作:如果距离大于20厘米,就让机器人往前走,如果小于20厘米,就让机器人停下来,转个90度的方向;第三步,控制模块工作:按照规划的指令,调整左右电机的转速,让机器人往前走或者转弯。” 写好的代码只有几十行,每个部分都标了是哪个模块的功能,Leo把代码上传到主控板,把机器人放在地上,前面放了个马克笔杯,按下启动键——机器人稳稳地往前走着,离杯子还有20厘米的时候突然停下来,转了90度,接着往前走,一点没碰到杯子。Leo兴奋得跳起来,拍着手喊:“成功了!它自己绕开了