Feetech STS3215 舵机测试:回差、重复精度与扭矩

Views icon 13426
Testing of Feetech STS3215 Servomotor

九月,在开始编写控制器程序之前,我们进入了更细致的舵机测试阶段。我们开始测试 Feetech STS3215 C018 (减速比 1:345,12V,堵转扭矩 30 kg·cm),这是一款广泛用于开源机器人项目的热门舵机,例如 SO-ARM100 以及 Robonine parallel gripper。本文将主要关注它的性能表现。首先,我会回顾制造商提供的数据,这些数值将作为我们验证测试的基准。部分图片展示的是 Waveshare STS3215,它在技术上非常相似,甚至使用相同的固件版本。

12 位磁编码器

12 位磁编码器

Feetech STS3215 配备 12 位磁编码器,每旋转 360° 提供 4096 步(每步 0.088°)。与带滑动触点、会随时间退化的电位器式编码器相比,这种磁阻式设计消除了摩擦磨损。由于没有运动接触面,从而保证了可靠的闭环控制以及稳定的长期性能,不会出现编码器退化。

 

Feetech STS-3215:背面与齿轮

Feetech STS-3215:背面与齿轮

该舵机采用多级金属齿轮箱,旨在以经济实惠的方式提供高扭矩输出。根据 the datasheet,齿轮箱规格规定回差 ≤ 0.5°,这对于这一级别的舵机是典型值。采用金属齿轮而非塑料齿轮,以承受持续负载和重复运动循环。编码器被集成在齿轮级之前,以提供直接的电机反馈。齿轮箱采用 1:345 的减速比,使舵机能够将电机转速转换为适合机器人应用的高扭矩输出。高减速比和金属齿轮箱设计使该舵机不适用于反向驱动场景,因为外力很容易反向带动齿轮,导致不受控的运动以及可能的电机损坏。

性能包络图显示了 official datasheet 在 0 到 30 kg·cm 扭矩负载范围内输出功率、转速、效率和电流消耗的数值。转速随负载增加而线性下降,而输出功率在约 15 kg·cm 处达到峰值,随后在更大负载下回落。效率在 6–9 kg·cm 区间达到最大值(约 26%),这对经济型舵机级电机来说很典型。在整个工作范围内,电流消耗随所需扭矩线性上升。这些标称规格表明,尽管低成本设计固有的效率值并不高,但该舵机仍能提供可靠的功率管理,适合注重成本的机器人和自动化应用。

速度性能与精度测试

Feetech STS-3215 舵机在其额定速度的 100% 和 50% 下进行了测试。测量结果显示最高转速约为 46 RPM,精度为 ±2%,波动约为 7%。虽然在较低速度下观察到轻微的振荡,但整体运动保持稳定,并与制造商的规格一致。

这些结果证实,该舵机 0.22 s/60° 的标称空载速度与数据手册数值吻合良好,能够为机器人和运动控制应用提供足够的速度和响应性。

100% 速度设置。测得平均值为 45.6 RPM,典型偏差为 0.48 RPM。

100% 速度设置。测得平均值为 45.6 RPM,典型偏差为 0.48 RPM。

50% 速度设置。测得平均值为 21.9 RPM,典型偏差为 0.34 RPM。

50% 速度设置。测得平均值为 21.9 RPM,典型偏差为 0.34 RPM。

5% 速度设置。测得平均值为 2.3 RPM,观察到的变化约为 0.25 RPM。

5% 速度设置。测得平均值为 2.3 RPM,观察到的变化约为 0.25 RPM。

回差测量

促使我们重新考虑机械臂设计的关键特性之一就是回差。借助百分表,我们首先在 86 mm 力臂末端测得 1.3 mm 的线位移。由此我们计算出角回差为 0.0151 弧度(≈ 0.87°),明显高于数据手册规定的 0.5° 上限。这一偏差相当显著,因为关节处即便是很小的角度误差,也会在臂端转化为毫米级的偏移。

测试装置使用一根橡皮筋施加约 30 g 的张力,以确保加载一致,同时由百分表测量由此产生的位移。该方法提供了稳定的读数,且不会受到过大力或扭矩的影响。

此外,这部分回差似乎是由软件造成的:存在内置的 10 个编码器计数的死区,也就是说电机会忽略该范围内的微小指令。当臂伸展时,回差还表现为抖动或振荡——舵机难以精确返回目标位置,从而产生可见的振动。

重复精度测试

另一个重要参数是重复精度。Feetech STS3215 舵机的重复精度测试使用 10 cm 的垂直力臂,以 20 步为增量,每个方向三个循环,共三次完整迭代。结果表明,在受控条件下其表现稳定。

测试参数与结果:

  • 力臂配置: 10 cm 垂直臂
  • 测试方法: 20 步增量;每个方向 3 个循环;3 次完整迭代
  • 测得的末端偏差: ±0.3 mm
  • 等效角重复精度: ≈ 0.17° (≈10 arcmin)
  • 编码器分辨率: 12-bit = 0.088°
  • 一个编码器计数的线性等效值(在 10 cm 半径处): ≈ 0.153 mm
  • 观察到的偏差: ≈ 2 encoder counts
  • Notes: 弹簧探头补偿了机械间隙;可在负载下进一步完善或重复测试以提高精度
测得的平均绝对位置偏差约为 2 个编码器步,即 0.17 度

测得的平均绝对位置偏差约为 2 个编码器步,即 0.17 度

这表明,虽然测得的重复精度在几个编码器步以内,但 STS3215 舵机仍保持一致的定位表现,进一步的完善有望验证其在实际工作负载下的性能。

扭矩测试

我们还对 Feetech STS-3215 舵机进行了动态扭矩测试,采用不同的负载来评估其在运动状态下的实际表现。

测试配置:

  • 10 cm 力臂
  • 测试负载:1 kg、1.5 kg 和 2 kg

测试结果:

  • 在 1.5 kg 负载下:舵机保持稳定运行,连续运动 10 分钟后温度上升约 15 °C
  • 在 2 kg 负载下:舵机在运行数个循环后进入过载保护,暂时限制扭矩输出以防损坏
  • 性能在大约 15 kg·cm 之前保持稳定,与数据手册标明的额定扭矩高度吻合
10 kg·cm 负载下的动态扭矩测试显示,电流消耗远低于 1 A,而内部负载估计略高于 50%

10 kg·cm 负载下的动态扭矩测试显示,电流消耗远低于 1 A,而内部负载估计略高于 50%

在 10 kg·cm 负载的动态测试中,测得的平均绝对位置偏差为 22.5 个编码器步,相当于约 2 度

在 10 kg·cm 负载的动态测试中,测得的平均绝对位置偏差为 22.5 个编码器步,相当于约 2 度

在 15 kg·cm 负载的动态测试中,内部负载估计显示仍有少量剩余裕量,而电流消耗保持在预期范围内

在 15 kg·cm 负载的动态测试中,内部负载估计显示仍有少量剩余裕量,而电流消耗保持在预期范围内

在 15 kg·cm 负载的动态测试中,测得的平均绝对位置偏差为 30 个编码器步,即约 2.6 度。

在 15 kg·cm 负载的动态测试中,测得的平均绝对位置偏差为 30 个编码器步,即约 2.6 度。

此测试展示了舵机的动态扭矩能力以及其热保护和过载保护机制的有效性。长期在最大额定扭矩下持续运行可能会加速机械磨损。

接下来,我们考察了堵转扭矩——电机在静止位置不发生运动时所能保持的最大扭矩。

测试配置:

  • 10 cm 力臂置于 45° 角
  • 静态负载:约 3.5 kg(≈ 35 kg·cm 扭矩)

测试结果: 在长时间重载下,舵机偶尔进入过载保护模式,将扭矩输出降至约为标称能力的 20%。保护超时和安全扭矩上限均可通过控制器寄存器配置,使用户能够针对具体应用微调保护行为。测得的堵转扭矩略高于数据手册中 30 kg·cm 的数值,证实在正确配置的情况下 STS-3215 的表现优于其额定规格。

恒定负载下的温度

Test 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 太慢了。

回差补偿实验

我们的软件工程师 Boris 进行了一项额外实验,重点是使用双舵机预张紧方案来补偿回差。在该测试中,两个 Feetech STS-3215 舵机安装了 3D 打印的 PETG 力臂,并由一根张紧的绳索连接。每个舵机施加少量预载,有效消除了连杆中的机械间隙。

该方案虽然简单,却非常有效地展示了预张紧如何在实践中消除回差。当两个舵机施加相反方向的张力时,臂保持完全静止,证实机械间隙得到了完全补偿。该方法显著提高了定位稳定性和精度,对机器人关节、运动控制系统以及 DIY 自动化项目尤为有用。

要点:

  • 两个带 PETG 力臂的 STS-3215 舵机
  • 受控预张紧下的绳索连杆
  • 展示了通过预载补偿消除机械回差

规格与测试结果汇总

参数 / 测试方法 / 条件 测量结果 规格 / 数据手册值 备注 / 评论
工作电压 12 V 12 V 工作范围:4–14 V
静态(堵转)扭矩 力臂 10 cm,以 45° 角置于秤上 ~3.5 kg (35 kg·cm) 30 kg·cm 略高于额定值;长时间负载下进入保护
动态扭矩 在 10 cm 力臂上提升 1.5 kg 可承载负载,温升 +15 °C 10 分钟后温度上升 +15 °C;在 2 kg 负载下触发过载
空载速度(RPM) 在 100% 和 50% 速度下测量 最高约 46 RPM;精度 ±2%;波动约 7% 45 RPM (0.22 s/60°) 标准设置;运行略不平滑,但可以接受
编码器分辨率 通过 UART 读取寄存器 每转 4096 步(12 位) 12 位磁编码器(4096) 每步 0.088°
齿轮箱回差(自由游隙) 手动自由转动测量(百分表法) ~ 0,87° ≤ 0.5°
负载下的定位误差 1.5 kg 负载,10 cm 力臂,45° 角 20–30 个编码器值(1.8–2.6°) 负载下误差显著增大
重复精度(百分表) 10 cm 力臂垂直;20 步增量;每个方向 3 个循环;3 次迭代 在测量点处偏差 ±0.3 mm 弹簧探头补偿机械间隙;可进一步完善或在负载下进行测试
温升(静态负载测试) — 在 15 cm 力臂处加 1 kg 负载(≈15 kg·cm 扭矩);臂水平放置 10 分钟后温度升至 48 °C,并在 >1 小时内保持稳定,没有进一步升高 工作温度范围:–10 °C – 60 °C 静态负载下热表现稳定;远在额定工作限值之内
温升(摆动测试) — ±90° 范围;连续运动;初始温度 48 °C 50 分钟后达到 60 °C,稳定 20 分钟,随后在约 110 分钟后升至 71 °C,导致过热 过热保护阈值:70 °C 未观察到主动热关断——接近 70 °C 时需要手动切断。降低加速度会提高升温速度(accel = 2 → 过热;accel = 5 → 稳定在约 60 °C)。
通信接口 UART TTL,半双工 正常工作 38400 bps – 1 Mbps(默认 1 Mbps);可级联的多舵机连接
闭环控制 位置和速度反馈工作可靠 支持位置保持和速度控制
遥测 / 反馈 UART 读取:位置、速度、电流、电压、负载、温度 提供完整遥测
保护系统 过载、过流、过压、欠压、过温 正常工作 可通过寄存器配置超时和安全限值
固件死区 指令输入 < 10 个编码器步 未观察到运动 内置 10 计数死区
价格 / 配件 ~$15(舵机)+ ~$5(UART 适配器) 出色的性价比

总结

Feetech STS3215 展现出强劲的扭矩性能和稳定的 UART 通信,适用于中端机器人和自动化应用。然而,机械回差以及固件定义的死区(10 个编码器计数)会降低精细运动任务中的定位精度。

主要优点

  • 紧凑轻巧
  • 内置闭环控制(位置和速度)
  • 集成遥测和保护功能
  • 参数调节简单,采用 UART 协议
  • 支持多舵机菊花链连接
  • 足够的编码器精度(4096 步)
  • 可通过 PC 或微控制器直接控制

主要局限

  • 齿轮箱回差高于规格值
  • 固件无法由用户升级
  • 需要进行长时间负载测试以评估长期磨损
  • 有可闻的机械噪声