当前位置: 首页 > 科技观察

华为小伙子志辉,自己做了一个硬体机器人,开源了五个小时,在GitHub上获得了317个star

时间:2023-03-18 14:23:33 科技观察

还记得上一个缝葡萄的“全栈自研”钢铁侠机械臂Dummy吗?3个月没更新的华为“神童”智辉老师最新视频来啦!虽然车票弹了一会儿,但他还是来了。网友纷纷表示:“失踪者归来”。这个项目叫做ElectronBot,是一个分支项目。志辉老师说整体难度不高。先看看整体效果如何?“电子”机器人是如何制造出来的?在开始项目之前,志辉先生简单介绍了选择这个项目的动机。他开玩笑说:“这是一个拿起鼠标垫想搭配电脑的故事。”众所周知,志辉先生热衷于收藏各种“屏风”。这一次,他不知从哪里弄来了一块圆形的液晶屏。灵光一闪,君之辉的DNA动了。简单的手表和吊坠已经不能满足他了。他打算做一个新奇的、“又萌又硬”的机器人。他的部分灵感来自于早年流行的“AnkiVector”,丰田推出的对话机器人“KiroboMini”,索尼推出的音乐蛋“Rolly”,以及外形酷似铁臂阿童木的迷你机器人“Robi”等。不过,志辉先生表示,这些机器人的功能过于单一,可扩展性和开放性不强。他计划自己设计一个桌面微型机器人。上述微型机器人受限于体积等因素,计算能力不强。而想要实现稍微智能一点的交互,还得依赖手机的芯片。智汇君锐评价:“不够优雅,不够实用。”他想设计一款不需要充电、时刻待命、拥有强大计算能力的机器人。他想到了一种方法,将机器人设计为计算机的附件。然后就可以在电脑上获取应用程序,拥有强大的计算能力,随时连接USB充电。有这么好的东西,机器人听了直接点了点头。因为液晶屏是圆形的,所以新鲜出炉了一个圆润可爱的科幻风机器人原型。志辉先生表示,这是他第一次尝试使用T-Spline曲面建模。完成的机器人有两个自由度的可移动手臂,身体和头部各有一个自由度。而智辉君能对付他,6个舵机他真的很拿手。这可不容易,机身这么小,智辉老师想了很多有创意的传动方案。他希望机器人的手臂可以前后左右同时转动,但是手臂的位置不够塞一个舵机,所以舵机只能装在肚子里。同时,志辉先生也希望手臂的两个角度可以对调,这样弹簧、扭簧之类的东西就只能通过了。为了在小身材中解决舵机向小臂传递动力的问题,实现动力的双向传递,他设计了一种独特的结构。小臂的前后运动由一个舵机通过齿轮啮合传递,另一个正交方向的运动由另一个舵机通过T形推杆传递。别看这机器人小,肚子里没有多余的空间,全是君知会。真是强迫症的福音。机器人的底座使用铝材CNC加工而成。下一步是进入电路设计阶段。志辉先生使用的是Cortex-M4内核的MCU,STM32F4。用于驱动屏幕和控制舵机和USB通信。由于芯片本身的USB功能只支持全速或低速USB,智汇在电路中加入了高速USB-PHY芯片,成功将理论通信速率提升至400Mbps。最后实际最大通讯速率也是300Mbps。这个速度远高于UART、I^{2}C、SPI等短总线。这也为后续的软件开发提供了更多的可能性。主控板设计比较简单,两层PCB即可。这样,体积被最小化并与屏幕区域保持一致。机器人身体内部还有一块传感器板,包括摄像头和红外手势传感器。还有一个驱动板。因为市面上的舵机只能接收PWM信号进行角度控制。这就是问题所在。在这种情况下,我们只能发送命令使舵机运动,而无法接收命令来了解其运动状态。同时,如果想让舵机反向驱动,就必须让舵机随时切换输出扭矩。虽然传统的舵机做不到这一点,但也帮不了聪明伶俐的智慧先生。他对市面上传统的3g舵机进行改造,设计了微型舵机驱动器。这个小驱动器支持I^{2}C总线通讯,PID闭环控制,位置反馈,还可以设置最大输出力矩,掉电存储参数等。这样,原来的6个普通舵机就变成了6款火爆的智能舵机,智慧老师的小技巧。至此,所有的硬件都应该都到齐了,是时候组装了。看完智慧君的组装过程,小编不得不感叹,谁说科技男是直男,就是对你不娇气。整个组装过程对于普通人来说确实是一头雾水。志辉先生将自己设计的小机器人命名为Electron。Electron通过USB数据线连接到计算机,作为计算机的附件。也就是说,这个机器人叫做“电子”,而通过USB连接的电脑就是“电子”的“大脑”,简称……“电脑”!?如果只是作为播放器使用的话,这个机器人和之前说的那些没有太大的区别。毕竟,智辉先生设计它的初衷是想把它作为一个工具机器人和电脑配件来使用,让它发挥一些更实用的功能。他为电子开发了一个完整的、多层次的开放式SDK。顶层是ElectronStudio,是纯图形交互。如果你想用自己的程序控制electron,智汇君也提供了ElectronPlayer库。只需通过极其简单的代码,就可以链接控制机器人,还可以设置播放内容。如果想更硬核的进行二次开发,智汇君还提供了更底层的ElectronLowLevel库。对此,智辉老师还举了个例子,通过调节机器人的右手来控制电脑的音量和亮度。使用安装在机器人身上的摄像头和红外手持传感器,开发了一个通过人工智能算法识别手势的程序。当摆出不同的手势类型时,您可以打开预设程序或切换桌面。其中一个最有趣的应用是志辉先生基于OpenPose开发的一个程序,用于单一用途的人体关键点检测。如果有2个机器人,可以录像,也可以通过手势控制机器人的动作。志辉先生还给这个应用起了一个特殊的名字“量子纠缠”。最后,智辉老师还做了一个电子产品的收纳盒,太精致了。代码开源视频最后,智辉老师附上了软硬件开源地址:https://github.com/peng-zhihui/ElectronBot才发布几个小时,就已经有90个star和6个叉子。不得不说,天才少年太强了。具体使用说明,志辉老师说以后再补充,先补觉了。包括他之前做的自动驾驶自行车和机械臂,每一个项目都会消耗很大的能量,志辉先生也有自己的工作。