这个up主花三个月自制硬核“机器人心脏”,可承载机械战甲

戏子无情 提交于 2020-10-25 10:36:33

  

  大数据文摘出品

  作者:牛婉杨

  还记得今年3月火遍b站的技术宅稚晖君吗?他的一则自制迷你电视的视频在b站有着397万的播放量,更是超越众多二次元视频荣登全站排行榜第5名。

  为什么这则视频这么火?因为这个电视相当“硬核”,内行外行看了都觉得厉害的那种。

  其实这是个长成电视模样的迷你Linux电脑,连个鼠标就能用!而且它还集人脸识别、语音助手等AI技术于一体,可以检测到人脸,还能用语音唤醒,充当一个迷你的语音助手。

  稚晖君,一位自称野生钢铁侠的AI算法工程师,他自己也做过不少机器人项目。前不久,他带着新的作品来了,他自制了一款FOC(Field-Oriented Control)驱动器。

  这块驱动器的厉害之处就在于,是稚晖君独自一人耗时三个月制成,软硬件通通由他一人开发。而且这块驱动器有“机器人心脏”之称,就连业界在制作机器人的时候也常会用到此方法来做驱动,比如MIT Mini Cheetah四足机器人的驱动单元中就用到了FOC制作的基础部件。

  

  不仅如此,这块驱动器还被稚晖君称为“全能开发板”,除了应用在机器人领域,还能用来模拟各种物理效果!

  话不多说,一起来看看。

  驱动器变身全功能开发板,理论上能承载“机械外骨骼”

  稚晖君表示,这个驱动器可以驱动市面上几乎所有类型的无刷电机,而且可以添加很多自定义功能。

  这就是驱动器的全貌~ 带有CAN、USB、I2C等通信接口,单路最大驱动电流超过100A。除此之外,还有一块小小的OLED屏幕,分辨率为128x80。

  

  迷你版双通道无刷电机驱动器

  这块板子能干嘛呢?它可以同时驱动两个无刷电机和两个舵机。有点难懂?来看下面的例子。

  比如通过控制电机1(下方),电机0(上方)也能随之驱动:

  

  上面这个是最基础的,稍微调整一下,还可以变成单向驱动的棘轮。如下图所示,电机0可以跟随电机1在顺时针方向同步旋转,而电机0却无法逆时针回转,它只能做单向间歇运动。

  

  看了这么多,那这两个电机有什么用途?接下来就要展示这个板子最酷的成果了——模拟机器人零件之间的协作,展示一下机器人是怎么动起来的。

  现在这两个电机彼此之间是没有感应的,也就是说,当其中一方受到阻力,另一方是不知道的,显然这样是做不成机器人的。所以需要做一些调整,让其中一方感受到力的反馈。

  于是,稚晖君又在固件里面新建了一个用户APP,把电机1的位置同步到电机0,同时把电机0的力矩缩小5倍之后同步给电机1。从下图中可以看到,电机1收到电机0的反馈后能明显感到阻力~

  

  所谓的机械战甲、机械外骨骼就是人用肢体动作控制机器人外壳做出一模一样的动作。看到稚晖君展示的效果,是不是觉得有内味儿了~

  稚晖君做了这样一个驱动器,明显是要搞事情啊!没错,这块板子就是稚晖君为后面的一个机器人项目准备的零件之一,这块板子将作为“机器人的心脏”。他之前还开发了一款夸克核心版,将作为这个机器人项目的“大脑”。

  

  左手“心脏”,右手“大脑”

  让我们小小的期待一下稚晖君的这个机器人项目吧~

  话说回来,再看看稚晖君是怎么做成这块板子的吧。

  花费三个月,经历数次失败,终于做出这块“机器人的心脏”

  稚晖君感叹道,这是他在所有设计中,做的最曲折的一块板子,花了将近3个月的时间。因为这个是电流达到几十安的大功率器件,焊好的板子不能有一点bug,否则就废掉了。

  

  稚晖君做废的板子~

  一次次的失败也让稚晖君感到十分沮丧,但他并没有放弃,经过软硬件几十次的修复,终于成功的做出了这款FOC矢量控制驱动器~

  稚晖君表示,这款驱动器的硬件设计参考了VESC和ODrive,在此基础上他进行了一些改进,也添加了很多功能。改进后的板子长这样

  

  迷你版双通道无刷电机驱动器

  别看板子这么小,接口可真不少,带有CAN、USB、I2C等通信接口,单路最大驱动电流超过100A。除此之外,还有一块小小的OLED屏幕,分辨率为128x80。

  最重要的是,这款驱动器还带有两路可配置的PWM输出,也就是说这个板子可以同时驱动两个无刷电机和两个舵机。

  这块板子只是稚晖君的其中一种设计,他还设计了一种分立叠板式的驱动器。分立式设计的好处就是可以把控制电路和驱动电路分离,如果想换成更大功率的电机,替换下面的驱动电路的可以了。

  但他也表示,自己还是喜欢第一种的一体式设计。

  除了机器人领域,这块驱动器还可以用来模拟各种物理效果

  稚晖君称,这款驱动器的电路设计其实不算很复杂,其核心在于FOC算法和固件代码的实现。

  FOC(Field-Oriented Control),直译是磁场定向控制,也被称作矢量控制(VC,Vector Control),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。

  FOC算法可以对无刷电机进行力矩、速度和位置三个闭环控制,FOC驱动器可以驱动无刷电机在极地的转速下保持力矩,而且超高转速也完全能hold住。这也是无刷电机被广泛用于机器人项目的重要原因。

  http://pengzhihui.xyz/2020/07/02/foc/#more

  最后,再来感受一下稚晖君口中的这块“全能驱动器”。之所以全能,是因为除了机器人领域,力矩控制还可以用来模拟各种物理效果。

  比如,可以将这个无刷电机模拟成各种旋钮的效果

  可以把它调整为带弹簧的旋钮:

  

  如果设置一定的阻尼,弹簧就可以这样慢慢回弹:

  

  还能变成多档开关的效果:

  

  最后,还可以让它放飞自我:

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!