高中Up主200天肝出偷懒机器人!可拎包,全场景跟随,已获百万播放

Posted QbitAl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高中Up主200天肝出偷懒机器人!可拎包,全场景跟随,已获百万播放相关的知识,希望对你有一定的参考价值。

博雯 萧箫 发自 凹非寺
量子位 报道 | 公众号 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

以上是关于高中Up主200天肝出偷懒机器人!可拎包,全场景跟随,已获百万播放的主要内容,如果未能解决你的问题,请参考以下文章

2021年底粉丝大馈赠,熬夜7天肝出这一份3000字性能测试学习笔记

想自学软件测试?字节大佬熬夜7天肝出这份超详细学习指南!

想自学软件测试?字节大佬熬夜7天肝出这份超详细学习指南!

阿里一线大牛花7天肝出的这份620页 “Xmind写测试点” 太清晰了

从功能测试到自动化测试,携程大牛熬夜7天肝出这份5000字工作感悟!

❤️熬夜7天肝出5万字禅道/缺陷报告/测试报告/接口测试及用例/Fildder超详细总结❤️