为机械臂选择高性价比的电机

Views icon 5552
Choosing Electric Motors for the Robot Arm

在本文中,我想谈谈机械臂中最重要的部件——电机——是如何选定的。我先从 Trossen Robotics 在 Viper X 300 S 机械臂中所采用的方案讲起,它是 Aloha 2、Pi0 等研究项目中最受欢迎的方案之一。

Viper X 300 S 机械臂中的伺服驱动

ViperX 300 S 机械臂中的伺服驱动

ViperX 300 S 机械臂中的伺服驱动

首先,我们研究了 6DOF(六自由度)机械臂的现有方案。我重点关注的机械臂是 Viper X 300 S,因为它最初就被列入了 Aloha 2 的物料清单。厂商公开了部分文档和图纸,我觉得复用这些方案会是个很好的主意。

ViperX-300 6DOF 桌面机械臂

ViperX-300 6DOF 桌面机械臂

制造一款经济实惠的机械臂,主要难点在于找到价格亲民、扭矩又高的驱动器。在 Viper X 300 S 中,Trossen Robotics 使用了 DYNAMIXEL XM430-W350 堵转扭矩为 4 Nm 的伺服电机,价格为 $290, and DYNAMIXEL XM540-W270-T/R 堵转扭矩为 10 Nm 的伺服电机,价格为 $430. A total of 9 伺服电机 motors 才能造出这样一台机械臂,使得总成本达到 $3,590,这已经算不上经济实惠了。

ID 关节名称 伺服电机 波特率 价格
1 腰部 XM540-W270 1Mbps $430 
2 肩部 XM540-W270 1Mbps $430 
3 肩部(从动) XM540-W270 1Mbps $430 
4 肘部 XM540-W270 1Mbps $430 
5 肘部(从动) XM540-W270 1Mbps $430 
6 前臂旋转 XM540-W270 1Mbps $430 
7 腕部角度 XM540-W270 1Mbps $430 
8 腕部旋转 XM430-W350 1Mbps $290
9 夹爪 XM430-W350 1Mbps $290
合计 $3590

一位目前正在参与该项目的工程师(下文称为 Alan)针对一台总长 700 mm、负载能力 750 克的机械臂做了运动学计算。

ViperX 300 关节

ViperX 300 关节

版本 1.1 — 0.75 kg
惯量安全系数 — 1.5
关节 力臂,cm 负载 kg*sm kg*sm 末端重量 kg
底座 0 0 3 7
肩部 1 20 1,8 54,0 81 负载 0,75
肘部 2 20 1,5 30,0 45,0 夹爪 0,25
前臂 3 0 1,2 0 0 伺服电机 0,1
手部 -1 4 15 1,1 16,5 24,8
手部 — 2 5 0 1 0 0
夹爪 6 0 0,75 0 0

根据计算,机械臂底座处所需的驱动扭矩为 81 kg·cm,即总共 8 Nm。这意味着,如果在底座安装两台伺服电机、每台堵转扭矩为 4 Nm,应该就足够了。然而必须明白:如果一台伺服电机的堵转扭矩为 4 Nm,那么它能够稳定运行的峰值有效扭矩,通常只有该数值的一半左右,正如下图所示 Performance Graph.

XM430-W350 Performance Graph

XM430-W350 Performance Graph

必须把这一限制考虑在内,才能确保机械臂在不让电机过载的前提下应对所需的负载。

伺服驱动的类型

我开始研究经济型机械臂中都使用了哪些类型的电机。

  • 步进电机,例如 Nema 17、Nema 23。
    Nema 17 步进电机

    Nema 17 步进电机

  • PWM(脉冲宽度调制)电机,例如 Dsservo 160 kg·cm。
    Ds伺服电机 DS51160MG

    Ds伺服电机 DS51160MG

  • UART(通用异步收发器)电机,例如 Feetech STS 3215-C01。
    Feetech-STS3215

    Feetech-STS3215

我们将重点关注哪些关键指标?

  • 扭矩
  • 精度
  • 电流、电压
  • 反馈(温度、电流、位置传感器)
  • 重量
  • 成本

什么是电机扭矩?

扭矩 = 力 (F) × 距离 (d)

扭矩 = 力 (F) × 距离 (d)

电机扭矩是使电机旋转的力。你可以把它理解为帮助电机完成工作的“扭转力”。扭矩越大,电机就越容易加速并举起重物。这对汽车很重要:良好的扭矩有助于更好地加速和爬坡。

电机的扭矩定义为所施加的力与支点到该力作用点之间距离的乘积。公式如下:

扭矩 = 力 × 距离(或 M = F × d)。扭矩越大,这台电机能够驱动的力臂就越长。

定位精度

在机器人领域,这是最重要的指标之一,因为伺服驱动的任务就是在空间中精确地定位机械臂,能做得越精确越好。机械臂的主要特性是重复定位精度和绝对精度。

重复定位精度

这是指机械臂在多次循环后能够回到空间中同一点的能力。以毫米为单位衡量(例如 ±0.01 mm)。数值越小,动作重复的精度就越高。

绝对精度

这是指机械臂相对于全局坐标系到达空间中指定点的能力。以毫米为单位衡量(例如 ±0.1 mm)。由于运动学中误差的累积,绝对精度通常比重复定位精度差。

反馈传感器

位置传感器

  • 霍尔效应传感器:这类传感器用于确定转子的位置。它们借助磁体来判断电机的运动部件(转子)位于何处以及旋转的速度。
    霍尔效应传感器工作原理

    霍尔效应传感器工作原理

  • 旋转变压器:它们能够精确测定旋转角度。其作用类似于精准的“角度探测器”,指示电机转子的确切位置。
    旋转变压器工作原理

    旋转变压器工作原理

  • 电位器:这种装置类似于音量调节旋钮,会随着电机的运动改变电阻,从而指示其轴的位置。
    电位器工作原理

    电位器工作原理

  • 光电编码器:它们提供关于转子位置和速度的信息。想象一个带有缝隙的小轮子,光线穿过这些缝隙,我们通过计数这些闪光来确定电机转了多少圈以及它处于什么位置。
    光电编码器工作原理

    光电编码器工作原理

  • 磁性编码器:它们同样利用磁场来测量位置和速度。它们借助磁体来跟踪电机的位置,即使在恶劣条件下也能良好工作。
    磁性编码器工作原理

    磁性编码器工作原理

电流传感器

  • 电流测量传感器:它们测量电机消耗的电流,以评估负载。
    电流测量传感器工作原理

    电流测量传感器工作原理

温度传感器

  • 热电偶或热敏电阻:它们监测电机的温度,以防止过热。
    热电偶工作原理

    热电偶工作原理

步进电机

步进电机原理图

步进电机原理图

由于步进电机体积大、重量较大、扭矩较低且定位精度不高,我没有对它们做详细考察。

For example, the Nema 17 Bipolar 1.8° 36Ncm 可以与经济型 UART 伺服电机相比较 ST3215-C018 ,二者价格区间相近。Nema 17 重 280 克,扭矩为 36 N·cm(即 3.6 kg·cm),步距角为 1.8 度。

Nema 17 步进电机

Nema 17 步进电机

价格区间相近的伺服电机, Feetech ST3215-C018,重 55 克,扭矩为 30 kg·cm,定位精度为 0.09 度。

电机型号 质量/克  额定扭矩/kg 精度/度 价格/$
Nema 17 Bipolar 1.8deg 36Ncm 280 3,6 1,8 10,75
Feetech ST3215-C018 55 15 0,09 16.45

所以,如果按照我们为机械臂所考虑的关键特性——重量 × 扭矩 × 定位精度——来比较,差距将是 (280 / 55) × (15 / 3.6) × (1.8 / 0.09) ≈ 424 倍。当然,我们不能仅凭这 3 个参数来比较这两类电机,我们漏掉了转速、减速比、噪声、回差等若干其他因素。如果把它们加入对比表,差距就不会那么显著了。在某些场景下,Nema 电机可能是更好的选择。

PWM 对比 UART

伺服驱动器基本原理图

伺服驱动器基本原理图

我开始寻找价格亲民、扭矩又高的伺服电机。最先找到的是 Ds伺服电机 RDS51150,其扭矩高达 150 kg·cm,对这类伺服电机而言是非常高的数值。这类伺服电机的一个特点是带有基于电位器的位置传感器控制系统,由于电位器的精度和灵敏度有限,使得获取反馈和控制位置变得更加困难。

脉冲宽度调制原理

脉冲宽度调制原理

Dsservo 电机的工作特点是它们属于 PWM(脉冲宽度调制)电机。这是一种通过脉冲式地接通和断开来控制电流功率的方法。它们缺少用于传递轴当前位置的磁性编码器,也没有内置控制器。这类电机不适合用于对定位精度和反馈有要求的机器人系统。

我思考了如何弥补这些不足。我们找到了一款合适的磁性编码器 AS5600,具有 4600 个位置。此外,我们还需要一个能够基于 PWM 工作的控制器。

AS5600 磁性编码器

AS5600 磁性编码器

Alan 推荐了一位从事机器人工作的优秀程序员。他建议放弃 PWM,转而采用 UART(通用异步收发器)电机,因为软件控制和技术实现上的额外复杂性很可能并不划算。廉价 PWM 电机相比 UART 的可靠性也存疑,因为用于检测速度的内置电位器经常出现故障。

PWM UART
工作原理 模拟式:通过脉冲宽度调制来控制功率 数字式:通过串行接口传输命令
主要任务 平滑的速度调节(直流电机) 精确定位(伺服驱动)
精度 速度方面高,位置方面低 定位方面高(步进精度)
通信 单向(控制 → 电机) 双向(支持反馈)
硬件复杂度 最低(驱动器 + PWM 发生器) 高(带 UART 的控制器 + 协议)
能效 更高(直接功率控制) 较低(取决于协议和处理)
典型应用 电钻、风扇、伺服驱动 3D 打印机、CNC、机器人

对于 UART 电机,我们可以把它们串接在同一条总线上,获得位置、电流强度和电机温度的反馈。不过,扭矩相近的此类电机成本会高出许多。

我开始考察合适的 UART 电机,经过仔细研究后选定了以下型号:Feetech 30 kg 和 50 kg。按每批 100 件采购时,成本将为 $12 each.

伺服电机 Feetech STS3215-C018。扭矩与回差

Feetech STS3215 伺服电机

Feetech STS3215 伺服电机

这位工程师根据卖家网站上标注的扭矩数值准备了系统的运动学计算。此时 Alan 指出,电机所标的扭矩是堵转扭矩,即电机在负载下完全停转之前能够运行的最大扭矩。因此,我们不能用这个扭矩来考虑机械臂的举升能力,因为在这样的负载下它根本不会动。

扭矩、功率、效率、电流曲线图

扭矩、功率、效率、电流曲线图

链接中的图表 following graphs 帮上了忙,它显示真正值得关注的最大工作扭矩实际上只有所标数值的一半——这在曲线图中部可以看到。具体来说,图上标的是 15 和 25 kg·cm。这意味着,如果使用 700 mm 的力臂搭配两台 50 kg 的电机,我们能够达到的最大举升能力为 240 克,这是不够的。

上个月,Alan 订购了几个样品在家里测试。以下是我们注意到的情况。

Feetech STS3215 回差测量

Feetech STS3215 回差测量

伺服电机的回差是所标数值(≤0.5°)的两倍,参见 the technical documentation,在 160 mm 臂长下测得 3 mm,约相当于 1.072 度。

 

其次,我们测量了恒定负载下的温度。

 

测试 1:静态负载保持期间的过热检查。

静态负载过热测试。Feetech STS3215

静态负载过热测试。Feetech STS3215

带哑铃的机械臂被水平放置,在 15 cm 力臂上托起 1 kg 重物,产生 15 kg·cm 的扭矩。在 10 分钟内温度升至 48°C,并在一小时内保持稳定,没有进一步上升。

测试 2:±90 度范围内的摆动。温度测量

±90 度范围内的摆动。温度测试。Feetech STS3215

±90 度范围内的摆动。温度测试。Feetech STS3215

从 48°C 开始,温度在 50 分钟后达到 60°C。接下来的 20 分钟内温度没有上升。随后降低了摆动速度以加快升温(见下方说明)。又过了 40 分钟才达到 71°C,此时电机发生过热。

结论

  • 临界温度阈值:在 71°C 时电机开始出现故障,正如昨天和今天的实验所观察到的(两次)。看来没有内置热保护,因此达到该温度时需要手动关停。
  • 加速度对发热的影响:降低加速度反而提高了温度上升的速度。最初,在加速度为 5 时,温度达到了 60°C。把加速度降到 2 后,经过额外的时间出现了过热。明天的后续测试中,我们将测量在加速度为 5 时达到过热所需的时间,因为加速度为 2 对我们的应用来说太慢了。

关于电机暂时就讲到这里。我们在机器人方面的进展一定会在网站上更新发布!