Feetech STS3215 舵机测试:回差、重复精度与扭矩
九月,在开始编写控制器程序之前,我们进入了更细致的舵机测试阶段。我们开始测试 Feetech STS3215 C018 (减速比 1:345,12V,堵转扭矩 30 kg·cm),这是一款广泛用于开源机器人项目的热门舵机,例如 SO-ARM100 以及 Robonine parallel gripper。本文将主要关注它的性能表现。首先,我会回顾制造商提供的数据,这些数值将作为我们验证测试的基准。部分图片展示的是 Waveshare STS3215,它在技术上非常相似,甚至使用相同的固件版本。
12 位磁编码器
Feetech STS3215 配备 12 位磁编码器,每旋转 360° 提供 4096 步(每步 0.088°)。与带滑动触点、会随时间退化的电位器式编码器相比,这种磁阻式设计消除了摩擦磨损。由于没有运动接触面,从而保证了可靠的闭环控制以及稳定的长期性能,不会出现编码器退化。
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。
50% 速度设置。测得平均值为 21.9 RPM,典型偏差为 0.34 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 度
这表明,虽然测得的重复精度在几个编码器步以内,但 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 负载的动态测试中,测得的平均绝对位置偏差为 22.5 个编码器步,相当于约 2 度
在 15 kg·cm 负载的动态测试中,内部负载估计显示仍有少量剩余裕量,而电流消耗保持在预期范围内
在 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
带哑铃的臂被水平放置,在 15 cm 力臂处保持 1 kg 重物,由此产生 15 kg·cm 的扭矩。在 10 分钟内,温度升至 48°C,并在一小时内保持稳定,没有进一步升高。
测试 2: ±90 度范围内的摆动。温度测量
±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 或微控制器直接控制
主要局限
- 齿轮箱回差高于规格值
- 固件无法由用户升级
- 需要进行长时间负载测试以评估长期磨损
- 有可闻的机械噪声
想问下你们的扭矩是怎么标定的呢 是用力臂加砝码那种土办法还是上了专门的扭矩传感器?我自己测出来跟官方标称差挺多的
我们用的是标定过的扭矩传感器加测试夹具。官方标称通常是峰值堵转扭矩,连续可用扭矩会低不少,这可能就是你测出来偏差的原因。
正是我需要的。
我用它做了个六轴的小臂 末端负载稍微大一点最后一个关节就开始抖 应该就是你说的扭矩不够加上间隙累积 这篇算是给我解了惑 之前一直以为是我代码的问题 折腾了好几天 原来是硬件本身的局限
买过 不推荐 间隙太大做精密的不行
性价比拉满 这个价位能有这个表现真的yyds
请教一个问题 STS3215的位置反馈分辨率到底是多少 我看手册写的是12位但实际读数感觉没那么细
是12位磁编码器,每圈4096步,约0.088°/步。实际感觉没那么细,通常是齿轮回程间隙和噪声叠加在读数上,而不是编码器本身的分辨率不够。
感谢详细的回答。
全金属齿轮版本你们测了吗 跟普通版差距大不大
这篇测的是标准版。金属齿轮版本回程间隙和耐久确实更好,但价格高一截,普通负载下标准版够用了,我们后续会单独出一篇金属版对比。
数据很详细,感谢分享,收藏了。
这个测评太及时了 我刚入手两个3215准备做机械臂 看完心里有底多了 谢谢博主!!!
我们实验室买了一批 良品率有点感人 12个里面有2个开机就报错 不知道是不是个例
便宜大碗 学生党表示扛得住 就是塑料齿轮有点慌
扭矩数据参考价值很大,机械臂选型省了我不少事。
请问你们测回程间隙的时候是在空载还是带负载的情况下测的?这两种状态下STS3215的间隙差别大不大
我们是在保持位置时测的回程间隙,STS3215实测约0.567°,是这次对比里偏大的一个。带负载时受力变形会让感受到的间隙更明显,但数据手册规格是≤0.5°。
想问下温度保护触发之后是自动恢复还是要断电重启 我跑着跑着舵机就不动了
过温保护触发后会降扭甚至停转,温度降下来后一般能自动恢复输出,不需要断电。如果一直不动可能是触发了堵转保护,这种需要清除报警或重新上电。
懂了,感谢回复。
重复精度可以。扭矩一般。整体还行吧。
想请教博主 多个3215串在一条总线上 ID地址怎么分配比较好 我接了8个之后通信偶尔会丢包是不是供电不够
ID用配套上位机逐个单独设置,避免地址冲突。丢包多半是总线供电压降导致的,8个舵机峰值电流不小,建议加粗供电线并就近多点供电,信号线也尽量短。
现在清楚了,谢谢。
想问问 这个舵机的总线协议是半双工的吗 我用单片机串口接的时候老是收发冲突
对,STS3215用的是单线半双工串口。你需要在发送完指令后及时切换到接收模式,通常加一个收发使能控制脚或者用专门的半双工驱动芯片就能解决冲突。
现在清楚了,谢谢。
中规中矩的一款舵机 没惊喜也没大坑
说实话我对这个数据是有点怀疑的,因为我自己手上的三个3215,测出来的重复精度差异非常大,有一个特别好基本没间隙,另外两个晃得厉害,所以我觉得这东西的一致性才是真正需要关注的点,单看一个样本的测评意义不是特别大,建议博主多买几个做个批次对比
这种实测对比文章真的太需要了 网上全是参数党 谢谢你们真的上手测
这玩意便宜是便宜 一分钱一分货 别指望它能干工业级的活
测得真细致。重复定位那段尤其有用。
博主你好 想咨询一下你们测试用的供电是几伏的 我看3215支持6到8.4V 不同电压下扭矩和速度差别明显吗 想知道用2S还是直接稳压到7.4
STS3215的工作电压实际是4到14V,我们文中是在12V下测的(堵转扭矩约30kg·cm)。电压越高扭矩和速度越大,7.4V(2S)完全在范围内、可用,只是扭矩和速度会比12V低一些。
有道理,谢谢。
绝了 没想到这么便宜的总线舵机精度还行
请问下你们有没有测过它的空程响应延迟 就是发指令到舵机开始动之间那个时间 我做闭环控制对这个比较敏感
这个延迟主要取决于半双工串口的波特率和指令周期,而不是固定值。做高带宽闭环建议提高波特率、缩短指令间隔,并注意它是高减速比(1:345)不可反驱的结构,机械响应本身也有惯性。
看完感觉还是水分有点大 厂家标称45度每秒到底是空载吧 带载之后掉得没法看
数据扎实,图表清晰,比那些云测评强多了。
看完整篇 感觉这个舵机最大的问题还是发热 长时间高负载它温度上来之后扭矩掉得厉害 这点你们有没有做长时间的连续运行测试呀 比如跑半小时看温度曲线
确实,长时间高负载下温度上来后会触发过温保护(约70℃)降扭,这是它的短板。内部温升明显的更多是大扭矩的STS3250,STS3215在同等负载下相对好一些。
非常感谢解答。