机器人领主
一、引言:为什么要自己做关节电机?
一体化的机器人关节电机(有时候也称为关节模组),是机器人最核心的元件之一,通常在一个人形机器人中,就有20个以上的关节电机。
采购时单个成本可能上千甚至更多,但如果自主研发,批量加工情况下,成本应该可以降到100出头。所以估计后面很多机器人公司,都会选择自主研发制作电机。
为了后面找到月薪3000的工作,最近做了一个集电机、减速器、驱动器的一体化关节电机,完成后的实物如下图所示。

图1-1:关节电机实物图(24V供电、减速后,峰值扭矩大概12牛米、转速300RPM)
电机做出来以后,很多人问电机的参数相比于宇树的或者xx机器人的电机怎么样?
其实怎么说呢,这不是重点,只要你愿意,你可以做市面上任何参数的电机,因为电机都遵循同样的物理规律,只是在工程上有非常多的细节。比如你想做一个和宇树性能参数差不多的电机,那就设计一个像他们那样的电机好了,技术路线都是差不太多的。
那么本项目中的关节电机用的技术路线是什么样的呢?
二、技术方案总览
通常关节电机的技术方案涵盖电磁设计、机械结构设计、电子硬件设计和软件固件设计四个主要领域。本项目中,各个环节所采用的核心工具和技术选型如下:

表2-1:技术方案总览
那么为什么选择这样技术路线呢?
三、电磁设计:Motor-CAD与Maxwell协同仿真
3.1 电磁设计软件选型对比
电机电磁设计是整个关节电机设计的起点和核心。因此首先需要对电机学的知识(含电磁知识)有一定的了解,然后再使用仿真软件进行仿真。目前主流的电机电磁仿真软件各有特点,以下是几种常见方案的对比:

表3-1:电磁仿真软件对比
3.2 为何选择Motor-CAD + Maxwell组合
本项目采用Motor-CAD和Maxwell双软件协同的设计流程,这种组合发挥了两者的优势:
1:Motor-CAD用于初期概念设计和快速参数扫描。其参数化电机模板让设计者可以快速建立电机模型,快速评估不同槽极配合、磁钢厚度、绕组方式对性能的影响。
2:Maxwell用于后期精细化分析和性能验证。当Motor-CAD确定了基本方案后,使用Maxwell进行详细的瞬态仿真,精确计算齿槽转矩、反电势波形等关键参数。
3.3 电磁设计流程
电磁设计的基本流程如下:
1、需求分析:明确额定转矩、转速、电压、尺寸约束等基本参数(本项目设计的额定扭矩5NM,最大扭矩12NM,转速300RPM,电压24V)
2、拓扑选择:确定永磁同步电机(PMSM)的具体形式,本项目使用外转子表贴式
3、Motor-CAD参数扫描:优化槽极配合、磁钢参数、气隙长度等
4、Maxwell精细仿真:验证齿槽转矩、磁密分布、损耗特性
6、迭代优化:根据仿真结果调整设计,直到满足指标

图3-1:Motor-CAD电机模型

图3-2:Maxwell仿真图
四、关节电机结构设计
关节电机的结构包含电机本体、减速器和外壳等。
4.1 整体结构设计要点
关节电机的整体结构设计需要考虑紧凑性(在满足性能要求的前提下,尽可能缩小外形尺寸)、安装接口(输出法兰和安装法兰的标准化设计)、线缆出口(电源线、信号线的合理布置)等等。下面是设计的关节电机结构爆炸图

图4-1:关节电机结构爆炸图
通常电机本体和外壳之类的建模有很多的软件可以使用,我比较熟悉SolidWorks,所以选择了它,大家可以选择自己熟悉的工件。SolidWorks是目前应用最广泛的三维机械设计软件之一,也比较容易上手。一些加工图纸的绘制,用的是AutoCAD(也可以是SolidWorks直接出工程图编辑)。
4.2 行星减速器设计
对于机器人关节电机,集成减速器是必不可少的组成部分。在机器人关节电机中,行星减速器是使用最多的,当然可供选择的还有谐波减速器、RV减速器、蜗轮蜗杆等。他们的特点如下表所示:

表4-1:常见减速器类型对比
综合考虑减速比需求、传动效率、成本和可加工性,本项目选择行星减速器作为减速方案。相比谐波减速器和RV减速器,行星减速器的齿轮可以自行设计加工,便于定制化,且传动效率较高。
行星减速器的设计软件,当然也可以用SolidWorks之类的,不过还是建议使用更加专业的软件,比如KISSsoft。
KISSsoft是专业齿轮传动设计软件,广泛应用于各类齿轮和传动系统的设计计算。在行星减速器设计中,KISSsoft提供了行星轮系的参数优化(包括齿数配比、变位系数等)、齿面接触应力和齿根弯曲应力校核、齿轮修形设计、寿命预测和可靠性分析、3D齿轮几何输出等关键功能,输出的几何模型可以直接在SolidWorks中进行装配。

图4-2:KISSsoft行星减速器设计界面
五、驱动系统设计
一体化的驱动器,是关节电机必备的,因此驱动器必须配合电机本体来设计。在网上有非常多的电机控制开源方案,虽然没有可以直接用的,但是能参考的很多。
别裁伪体亲风雅,转益多师是汝师。
网上典型的开源方案有VESC、ODrive、SimpleFOC等等

表5-1:电机驱动方案对比
本项目在VESC的基础上,结合其他项目的优点进行开发。VESC是由本杰明开发的开源电子调速器项目,最初用于电动滑板等个人电动交通工具,因其优秀的性能和开源特性,被广泛应用于各类电机驱动场合。
5.1 驱动器硬件设计
VESC的硬件原理图和PCB是用KiCad设计的,这是一款开源的EDA套件,不过我用的不多,我比较熟悉立创EDA和Altium Designer,因此本项目的原理图和PCB是采用Altium Designer画的。
在设计驱动硬件时,需要注意以下几点:功率级设计(根据电机额定电流选择合适的MOSFET和驱动芯片)、电流采样(采用高精度分流电阻)、电源管理(多路稳压供电设计)、通信接口(CAN、UART等多种通信方式)、保护电路(过流、过压、过温保护)
最终在Altium Designer中设计的PCB如下图所示:

图5-1:驱动板PCB图(实物图懒得拍了)
5.2 嵌入式软件(固件)开发
原生的VESC固件基于ChibiOS实时操作系统,使用GCC工具链编译。本项目将固件移植到Keil MDK开发环境,主要出于以下考虑:我对Keil更加熟悉。
固件的核心功能包括FOC电流环控制、速度环控制、位置环控制、编码器接口、通信协议栈等。移植过程中保留了VESC成熟的控制算法,同时针对具体应用进行了优化调整。
当然实际中,还需要根据驱动器的硬件和电机本身开发特定的算法,比如双编码器如何融合、多圈位置控制机器人关节电机需要新增的功能。至于各种通信控制的命令,都比较容易定制。
5.3 上位机软件开发
上位机主要是调试的时候用得多,在实际的机器人上,是不用上位机的,而是直接使用CAN通信进行控制。但在调试的时候,有上位机还是要方便很多。
上位机软件参考VESC Tool开发,这是一个基于Qt的C++工程,因为我本身也比较熟悉这块,就顺便把上位机软件改一下,更方便调试。调试的主要功能包括:电流、速度、多圈位置控制、电机参数配置(相电阻、相电感、磁链常数等)、控制参数整定(PID参数调节)、实时数据监控(电流、速度、位置、温度等)、波形显示(各物理量的实时曲线)、固件升级(通过通信接口更新固件)。

图5-2:上位机软件界面
六、位置反馈系统:双磁编码器方案
6.1 为何采用双编码器
关节电机的经过减速器后,如果要确定断电后的位置,就需要在减速后的轴上装编码器,才能得到断电后的位置,否则只在电机减速前的轴上,是无法知道确定位置的。
本项目采用双磁编码器方案,其中一个编码器与VESC驱动板设计在同一块电路板上,另一个编码器的电路板需要单独设计,因为减速器轴的磁环离驱动板比较远。不过现在也有其他关节电机把双编码器都设计在一块电路板上,但那需要在电机结构上进行修改,单独加齿轮减速。单编码器和双编码器的对比如下:

表6-1:单编码器与双编码器方案对比
6.2 磁编码器选型
本项目两个位置都采用磁编码器,其中电机轴上使用的MT6816,减速器轴上用的是MT6708,分辨率都是14位。磁相比光学编码器具有以下优点:体积小巧,便于在紧凑空间中安装;抗污染能力强,不怕灰尘和油污;无接触式测量,寿命长;成本相对较低;支持多圈绝对位置(配合减速比计算),下图中标出的是第二编码器电路板,第一编码器在图中的绿色驱动板上。

图6-1:图中标出的是第二编码器,第一编码器在绿色驱动板上
七、小结
本文介绍了从零开始设计制作机器人关节电机的主要流程,涵盖了电磁设计、机械结构、电子硬件和软件固件四个主要方面。写到这里已经快四千字了,再长就不会有人看了(估计能看到这里的也不一定有,创作不易,需要点赞),绝大部分细节都没法在一篇文章里讲清楚,所以只大概讲了下技术路线。
对一个项目来说,用什么技术路线是最重要的,需要综合考虑了项目需求、开发效率、成本控制和技术可行性等多方面因素,合理的路线可以事半功倍。
如果有企业想把我做的这个关节电机方案量产,或者想定制其他参数的关节电机,也可以与我联系(可提供全部技术资料)。如果在企业想开拓新方向的,这也是一个可以考虑的方向。
至于我自己为什么不量产,因为能做出来和能卖出去是两回事。有很多物美价廉的好产品,但就是卖不出去。不过肯定有人可以卖出去。