机器人操控电脑,华为天才少年稚晖君再出手,直呼:项目不太难!
作者 | 张洁
出品 | CSDN(ID:CSDNnews)
不难发现,华为的天才少年稚晖君一发作品,便出精品。3月13日,他在B站、微博等平台发布了能动的电脑配件,说是电脑配件,其实是一个机器人,这真是让网友大开眼界了。
这个机器人可不是普通的机器人,它有着迷你的外观,小小的一只十分地惹人喜爱。充当电脑插件的同时,它还能向你做滑稽的表情。除此之外,它还会模仿你的动作,让你知道什么叫”模仿大师“。
说到稚晖君,相信很多人都对他有了一定的了解。除了“稚晖君“这个称号,他还被很多网友称为“华为天才少年”、“野生钢铁侠”,其实他的原名叫彭志辉。在2020年,他经过华为的七轮面试,最终拿到offer,成功入职华为。在2021年1月,他还获得B站“2021年度百大UP主”称号。之前的螃蟹号火星车、无人驾驶自行车、可以打游戏的充电宝等设计,让他在社交平台上走红,现在让我们来看看他的最新成果吧~
从圆形LCD想到设计机器人,再由”小可爱“确定把机器人做成配件
平时喜欢收集各种迷你小屏幕的稚晖君,一次偶然淘到了一块圆形的小LCD。对机器人感兴趣的他便心血来潮想到用这个圆形小块来做一个又硬又萌的机器人。
这位大佬的灵感来源于前几年很火的机器人Anki Vector、丰田的对话机器人Kirobo Mini 、索尼的音乐蛋Rolly、长得很像阿童木的迷你机器人Robi等,这些机器人的设计颇有意思,加上它们生涩的动作,格外地引人眼球。
这些”小可爱们“由于体积的原因,导致计算能力和续航都受到了很大的限制。因为它们只能实现固定程序的一些简单功能,比较单一化,而且扩展性和开放性都不强。要想实现稍微智能点的功能,比如语音对话,还得连接耳机,然后借助手机芯片和网络的力量来实现。显然,这不够实用。
所以稚晖君想着换一个思路,来设计一个无需充电,随时待机,又具备强大计算能力的桌面级迷你小机器人。经过验证,稚晖君发现这个想法是可以实现的,解决方法就是把机器人变成一个电脑配件。
对机器人进行结构、电路方面的设计
要想设计一个实用的机器人,首先这个机器人要能动起来,因此稚晖君采用了一套执行单元,并且搭载在小巧的机身内,运动自由度实现尽可能的大。其次他还通过USB和电脑进行取电和通信。最后,采用上文所提到的LCD显示屏做机器人头部的显示面板。
结构设计
稚晖君把设计风格设定为圆润可爱的科幻风,整个圆形屏幕作为全面屏的显示面板,双臂可动,而且分别有两个自由度。此外,身体和头部还各有一个自由度,可进行多方面旋转。
值得一提的是,这是稚晖君首次进行T-Spline曲面建模。为了在很小的机身下塞下6个自由度的舵机,他还尝试了一些很有创意的传动方案,比如机器人的手臂可以同时进行前后和左右旋转,但是这块的手臂只有一个硬币的尺寸,不可能在里面塞下一整个舵机的,因此只能把所有的驱动舵机塞进肚子里。
除此之外,华为的天才少年希望两个手臂可以进行反驱。
那么如何在这极限的尺寸之下,把两个舵机的动力传递到手臂,而且还要支持动力双向传递呢?
灵机一动,稚晖君想到了手臂前后的运动由一个舵机通过齿轮啮合进行传动,而另一个正交方向的运动由另一个舵机通过一个T形推杆进行传动。这个设计,正好填满了小机器人空荡荡的肚子。为了使机器人能够笔直地站立,还使用铝CNC加工的底座。
电路设计
稚晖君使用了Cortex-M4内核MCU STM32F4,用于驱动屏幕、控制舵机以及进行USB通信,由于芯片本身的USB功能只支持低速或者全速的USB。因此为了提高通信速率,稚晖君在电路上添加了高速的USB-PHY芯片,将理论通信速率提高到400Mbps。
经测试,实际最高速率也能达到将近300Mbps。
相较之下,主板的控制比较简单,只用了两层PCB就搞定了,体积做到了最小,和屏幕的面积一致。
除了主控板放在头部,这个小机器人的身体里面还放了一块传感器板,这上面搭载了一颗摄像头,以及一个红外手势传感器。稚晖君为了让舵机能进行反驱,还对市面上的舵机进行了一通魔改,设计了一个迷你的舵机驱动器,如下图所示。
有表情、能同步动作的机器人做好了
所有的硬件都准备齐全后,就该组装了,经过一系列的操作,一个又硬又萌的机器人诞生了,并取名为电子。它能接收电脑端服务给它发送的信息进行动画显示,而且可以控制各个关节进行运动。
为了进行更直观的交互,开发了一个电脑端的上位机。更有意思的是,稚晖君还在B站找到了一个昵称为oooooohmygosh的up主,并请其制作生动的表情包,真的是相当可爱。
让人想不到的是,稚晖君结合AHK脚本写了一个程序,把机器人当作一个额外的电脑输入设备,来模拟键盘的按键,把机器人的左右手设计成了按键,分别进行音量和亮度的调节。
此外,稚晖君还开发了两个程序,一方面是机身搭载摄像头和红外手持传感器,利用AI算法识别手势,由此实现机器人能够直接打开预先设定好的不同程序,或者切换桌面。
另一方面,他基于OpenPose开发了一款用于单目的人体关键点检测的程序,那这有什么用呢?如果有两台机器人,那么就可以把它当作视频聊天的摄像头设备。但与普通摄像头不同的是,它不仅能采集你的图像,而且还可以把你的脸显示在圆形显示屏上,甚至还可以同步动作。
开源到库
最后,设计者稚晖君的愿景是想要将这款小机器人作为一个工具机器人兼电脑配件,发挥一些更实用的功能。
与此同时,稚晖君还开源了其中运用到的Electron Player库,基于这个库,只需要极其简单的几行代码就能连接和控制机器人、设置播放内容等。
另外,他也在SDK中提供了更底层的Electron LowLevel库,方便开发者在自己所设计的程序中直接进行USB字节流级别的数据处理,并且获得各种传感器的原始数据。
开源地址:https://github.com/peng-zhihui/ElectronBot
不得不称赞的是,这个”天才少年“实在太厉害了,当是吾辈楷模!
在最近几年,他的每个设计都让很多网友惊呼不已,有很多网友还表示:一个人顶一个团队。虽然设计过程会耗费他大量的时间跟精力,但功夫不负有心人,得到的结果是非常满意的,非常期待他下个设计的到来。
视频链接:
https://weibo.com/1679186305/LjxP3rShK?pagetype=profilefeed
《新程序员003》正式上市,50余位技术专家共同创作,云原生和数字化的开发者们的一本技术精选图书。内容既有发展趋势及方法论结构,华为、阿里、字节跳动、网易、快手、微软、亚马逊、英特尔、西门子、施耐德等30多家知名公司云原生和数字化一手实战经验!