博雯 萧箫 发自 凹非寺
量子位 报道 | 公众号 QbitAI
难以想象,这竟然是一个18岁高中生独立做出来的机器人!
无论室内外,都能实现跟踪:
就连在黑夜里跟着走,也No problem:
当坐骑也完全没问题:
原理确定、外形设计、电路连接、代码编写,所有工作耗时200天。
而且,全部由这位叫做凌十七的B站Up主一人完成!
视频上传不到3天,就斩获近百万播放量。
本来,自主导演的机器人故事和硬核DIY机器人全流程已经足够惹眼。
在视频即将结束时,Up主还掏出乐器,为这一项目献曲一首,直接引爆了弹幕:
请问还有什么是您不会的呢?
六边形战士!
宝藏男孩?!
从程序员,到导演,到音乐爱好者,多种身份无缝切换!
这到底是怎样的一位Up主?
这又是怎样的一个机器人?
从建模到制作,全自主设计
要做一个什么样的机器人呢?
凌十七给出了他心目中的标准:
钢结构,塑料外壳。
能跟随,能跑,能装东西,能拉着走,关键……还能坐。
画好了设计图,18岁的少年沉吟道:可行。
那就开始,第一步:建模!
大家来感受一下这个建模工作量:
拉近了看,整个机身的设计并非粗糙直白的几何形状,而是参考人体工学,从稳定性和实用性等方面进行了设计:
建模完成后,就迎来了下一个头秃程度不输建模的环节——
外壳制作。
让模型从电脑来到现实里,凌十七选用以水洗树脂为材料进行3D建模。
这听起来似乎不需要过多的操作,只要坐在机器前等着收成品就好:
但实际尝试起来,问题可就太多了:
使用水洗树脂作为打印耗材可能会出现开裂问题
在成品外壳过薄时会出现更严重的变形,进而导致无法安装
超大尺寸的零部件对于组装精度的要求非常高
这中间没有捷径,只有一次次进行地尝试、调整、再尝试、再调整。
样子成型了,接下来就是给零部件们上补土。
这道工序能在统一底色的同时,填补了打印表面出现的不平整。
然后就是外表制作的最后一步,刷漆:
现在,“很没有技术含量,非常无聊且浪费时间”的外壳制作环节完成了。
再来看机器人的眼睛,凌十七所选用的二维激光雷达:
他一共使用了两个雷达,并都根据通信规则重写了解包算法。
好,接下来就是去制作机器人的心脏了!
凌十七选择了单片机作为主控设备,来控制无刷电机和舵机,并进行遥控、驱动和跟随速度方向的最终判断:
然后将树莓派作为跟踪算法输出设备,串口传输数据给单片机:
这里的单片机和树莓派都由一个统一的10A降压模块供电。
但由于树莓派USB可提供的电流非常小,而雷达又是直接从USB端口拉供电的,所以一开始常常会陷入无限重启的状态中。
因此,凌十七把雷达中的电路供电压(VCC)单独引到了5V,解决了这个问题。
至于完整的跟踪功能,凌十七一共用了250行代码来实现。
和外壳制作相比,代码书写称得上是“很有技术含量,非常不无聊且花费时间”了。
毕竟,在最后列出来的已解决的问题中,程序方面的例子是最多的:
要能在硬件支持范围之外跟踪目标,因此限制了跟踪角度,超出后重新寻找目标;
要防止在丢失目标时乱跑,因此就通过程序使在探测到目标距离过长时停止跟踪;
还要能够及时与单片机通信,防止通信过多丢失数据,以及非线性的转向算法……
而最终,设计图里所提到的功能,已经基本实现了。
除了开头提到的功能外,存储东西也完全没问题:
站在自己这十分有说服力的杂乱地面上,凌十七这样表示:
这是我这辈子目前开发过最难的项目。
机器人背后的故事
没错,从0到1打造一个机器人,对于机器人专业的学生来说也许不难,但对于高中生而言,需要自学从编程、电路到自动控制的所有技术知识。
软件上,所有程序和软硬件代码都需要自行调试、优化,算法上修过的bug可以说是“不计其数”:
硬件上,在对机身进行建模时,凌十七虽然专门学习了相关的设计方法:
但自己动手做的时候,仅仅是外壳设计这个“看起来没啥技术含量”的工作,就耗费了相当长一段时间,坏过好几个外壳:
可想而知,除了外壳,在建模和设计上还有多少需要更换的零部件。
凌十七自己也表示,最后产出的零件垃圾甚至“能再造一台机器人”出来:
后来好不容易做好后,机器人又损坏了一次。
2020年8月开始设计、10月制作,但在12月份进行户外拍摄的时候,这个机器人的“头部”意外掉了。
由于脖子连接处的舵机很不牢靠,最初只是搭在机器人身上,很容易取下来,导致虽然在家中实验时没出现任何问题,但在不平坦的路面上却无法hold住,最终坏了。
了解这一情况后,凌十七改进了机器人结构,全部采用螺丝固定,就没有再出现类似的问题。
但也正是因为这件事,项目被迫中止了一段时间,后来拆除接近1/3的机器人外壳,重新制作后,才于2021年4月左右完成。
当然,也并非只调整了外壳,这次改装也对软件进行了重新升级。
雷达上,加入了三四个算法,主要是为了优化通信和雷达的无效数据,还有几个是为了排除跟踪时可能出现的误导、或是某些严重影响运行效果的情况;
驱动算法上,也经过了参数调整优化,但这一操作并不规范,基本是在试错,如果进行更正式的项目的话,可能会算好一个正规的模型,再进行编程。
所有算法都是凌十七自行编写的,没有参考其他算法:
毕竟没见过类似产品,而且在确定原理的时候,脑子里就已经想好逻辑了,所以也没想过要找别人的代码。
经过9个月打磨的机器人,从各方面来说都较为优秀,不过对于凌十七来说,还是有可以继续改进的地方。
一方面,机器人并不能做出表情,所有视频中的表情都是后期处理上去的,也就是特效制作。
凌十七表示,原本是想外包特效,结果发现外包能力不足,做出来的特效太拉垮……所以就自己学着去做了,效果确实要更好。
当然,直接显示表情也是可以做到的,只是“目前市面上已经有很成熟的算法了”,因此他没有考虑作为机器人的“亮点”来完成。
另一方面,从机器人本身来说,物理稳定性不好;而避障算法所采用的两代激光雷达,也都受光照影响,效果与预期有差距,户外的表现不够好。
如果有时间再优化的话,凌十七打算将两个激光雷达和摄像头进行结合,会让户外跟踪更加稳定。
至于为什么要做这个机器人?
凌十七表示,最初是想找个人帮忙拎设备(如录视频所用的三脚架、摄像机),后来意识到,这件事可以“不必由人来完成”。
要是能做个自动拉货车,还能当代驾,岂不美哉。
虽然后期确实投入了巨大的精力,但从完成度来看,效果还是非常不错的。
而机器人小D(Devil)的名字,则来源于一首名为《Devil Swing(Remix)》的歌。
也正是因为这个项目,让凌十七决心从电子工程转专业(此前已被佐治亚理工学院录取),去学习AI和机器人。
△原本想要学习的专业
在接受量子位采访中,凌十七表示,自己通过这个项目意识到,以后可能是算法的天下,所以想把重心更多地放到编程上。
“想转专业去搞AI&机器人”
凌十七来自上海师范大学附属中学(上师大附中),前16年也与其他中学生一样,“基本在应对考试中度过”。
高一,凌十七通过竞赛接触到机器人,从此打开了新世界的大门。
视频中可见,除了在“机器人综合技能”和“电子控制项目”比赛中获得一等奖以外,凌十七还发明了一种“激光定位特殊用途使用的遥控装置”,并斩获多个奖项。
凌十七表示,虽然这些比赛“含金量不高”,但成功激起了他对机器人的兴趣:
当我第一次发现,我能让自己以外的事物按照我的意志运行的时候,何其感动,何其震撼,就感觉一切从未如此充满意义。
机器人就是照亮我人生道路的第一道光。
他于2019年开始上传视频,并于2020年初制作了一把小刀,带电路、能发光的那种,播放量一下子从几万冲上了一百多万:
接下来的一个视频中,这把小刀直接进化成了能喷火、变色的光剑,播放量达到了200W+,也坐实了“手工UP主”的名声:
在那之后,机器人小D一打造就是9个月,转眼来到2021年。
期间,凌十七一度有过想要放弃的念头,“感觉再搞下去自己就要不正常了”,但最终还是坚持了下来。
也正是在这个项目中,他找到了自己未来前进的方向。
对于这个机器人,不少大V激情转发:
B站官方也热烈鼓励:
值得一提的是,凌十七的技能点并不仅限于机器人、导演和弹琴,据他的高中同学表示,画画、编曲等等技能点也已经点亮。
对于未来,凌十七表示,更有可能去创业,做产品或是搞创作。如果投身科研的话,大概率会想要研究通用人工智能(AGI)方向。
虽然这个机器人还没有涉及AI方向的算法,不过凌十七表示,已经打算开始从CV学起,做一些相关的AI小项目,例如物体、形状识别等算法。
他会在AI领域擦出什么样的火花?
让我们拭目以待。
视频地址:
https://www.bilibili.com/video/BV1s44y1173e
文章转自公众号:量子位。
仅做学术分享,如有侵权,我们将第一时间删除。
觉得还不错就给我一个小小的鼓励吧!