难以想象,这竟然是一个 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 领域擦出什么样的火花? 让我们拭目以待。 下面是视频: