TUhjnbcbe - 2021/2/15 18:50:00
大数据文摘出品作者:牛婉杨还记得今年3月火遍b站的技术宅稚晖君吗?他的一则自制迷你电视的视频在b站有着万的播放量,更是超越众多二次元视频荣登全站排行榜第5名。为什么这则视频这么火?因为这个电视相当“硬核”,内行外行看了都觉得厉害的那种。其实这是个长成电视模样的迷你Linux电脑,连个鼠标就能用!而且它还集人脸识别、语音助手等AI技术于一体,可以检测到人脸,还能用语音唤醒,充当一个迷你的语音助手。稚晖君,一位自称野生钢铁侠的AI算法工程师,他自己也做过不少机器人项目。前不久,他带着新的作品来了,他自制了一款FOC(Field-OrientedControl)驱动器。这块驱动器的厉害之处就在于,是稚晖君独自一人耗时三个月制成,软硬件通通由他一人开发。而且这块驱动器有“机器人心脏”之称,就连业界在制作机器人的时候也常会用到此方法来做驱动,比如MITMiniCheetah四足机器人的驱动单元中就用到了FOC制作的基础部件。不仅如此,这块驱动器还被稚晖君称为“全能开发板”,除了应用在机器人领域,还能用来模拟各种物理效果!话不多说,一起来看看。驱动器变身全功能开发板,理论上能承载“机械外骨骼”稚晖君表示,这个驱动器可以驱动市面上几乎所有类型的无刷电机,而且可以添加很多自定义功能。这就是驱动器的全貌~带有CAN、USB、IC等通信接口,单路最大驱动电流超过A。除此之外,还有一块小小的OLED屏幕,分辨率为18x80。迷你版双通道无刷电机驱动器这块板子能干嘛呢?它可以同时驱动两个无刷电机和两个舵机。有点难懂?来看下面的例子。比如通过控制电机1(下方),电机0(上方)也能随之驱动:上面这个是最基础的,稍微调整一下,还可以变成单向驱动的棘轮。如下图所示,电机0可以跟随电机1在顺时针方向同步旋转,而电机0却无法逆时针回转,它只能做单向间歇运动。看了这么多,那这两个电机有什么用途?接下来就要展示这个板子最酷的成果了——模拟机器人零件之间的协作,展示一下机器人是怎么动起来的。现在这两个电机彼此之间是没有感应的,也就是说,当其中一方受到阻力,另一方是不知道的,显然这样是做不成机器人的。所以需要做一些调整,让其中一方感受到力的反馈。于是,稚晖君又在固件里面新建了一个用户APP,把电机1的位置同步到电机0,同时把电机0的力矩缩小5倍之后同步给电机1。从下图中可以看到,电机1收到电机0的反馈后能明显感到阻力~所谓的机械战甲、机械外骨骼就是人用肢体动作控制机器人外壳做出一模一样的动作。看到稚晖君展示的效果,是不是觉得有内味儿了~稚晖君做了这样一个驱动器,明显是要搞事情啊!没错,这块板子就是稚晖君为后面的一个机器人项目准备的零件之一,这块板子将作为“机器人的心脏”。他之前还开发了一款夸克核心版,将作为这个机器人项目的“大脑”。左手“心脏”,右手“大脑”让我们小小的期待一下稚晖君的这个机器人项目吧~话说回来,再看看稚晖君是怎么做成这块板子的吧。花费三个月,经历数次失败,终于做出这块“机器人的心脏”稚晖君感叹道,这是他在所有设计中,做的最曲折的一块板子,花了将近3个月的时间。因为这个是电流达到几十安的大功率器件,焊好的板子不能有一点bug,否则就废掉了。稚晖君做废的板子~一次次的失败也让稚晖君感到十分沮丧,但他并没有放弃,经过软硬件几十次的修复,终于成功的做出了这款FOC矢量控制驱动器~稚晖君表示,这款驱动器的硬件设计参考了VESC和ODrive,在此基础上他进行了一些改进,也添加了很多功能。改进后的板子长这样??迷你版双通道无刷电机驱动器别看板子这么小,接口可真不少,带有CAN、USB、IC等通信接口,单路最大驱动电流超过A。除此之外,还有一块小小的OLED屏幕,分辨率为18x80。最重要的是,这款驱动器还带有两路可配置的PWM输出,也就是说这个板子可以同时驱动两个无刷电机和两个舵机。这块板子只是稚晖君的其中一种设计,他还设计了一种分立叠板式的驱动器。分立式设计的好处就是可以把控制电路和驱动电路分离,如果想换成更大功率的电机,替换下面的驱动电路的可以了。但他也表示,自己还是喜欢第一种的一体式设计。文摘菌在这里也给出原视频,感兴趣的同学可以看看~除了机器人领域,这块驱动器还可以用来模拟各种物理效果稚晖君称,这款驱动器的电路设计其实不算很复杂,其核心在于FOC算法和固件代码的实现。FOC(Field-OrientedControl),直译是磁场定向控制,也被称作矢量控制(VC,VectorControl),是目前无刷直流电机(BLDC)和永磁同步电机(PMSM)高效控制的最优方法之一。FOC旨在通过精确地控制磁场大小与方向,使得电机的运动转矩平稳、噪声小、效率高,并且具有高速的动态响应。FOC算法可以对无刷电机进行力矩、速度和位置三个闭环控制,FOC驱动器可以驱动无刷电机在极地的转速下保持力矩,而且超高转速也完全能hold住。这也是无刷电机被广泛用于机器人项目的重要原因。更多关于FOC算法以及相关理论实现,可以在稚晖君的博客看到??