深度解析塑造未来的技术文章。

为什么机械臂不能简单地缩小工业电机

电机的物理特性会随尺寸剧烈变化。缩放定律解释了机器人执行器为何难造,以及人形机器人的动作为何显得怪异。

工作台上一台巨大的工业电机旁边,放着一个过热的微型机器人关节

每隔几个月,就会有一段人形机器人的演示视频火遍网络。Boston Dynamics 的 Atlas 做后空翻,Tesla 的 Optimus 分拣物品,Figure 的机器人码放货架。这些演示确实令人印象深刻,但仔细看就会发现一个问题:动作都很慢、很谨慎、很小心翼翼。这些机器人能举起相当重的负载,却接不住迎面扔来的球;能走路,却跑不快;能抓握物体,却做不了需要手指快速精准运动的事情。

原因不在软件,而在物理学。具体来说,是电机随尺寸缩放时的物理规律。支配电机行为的缩放定律会随尺寸发生剧烈变化,而这些变化恰恰解释了当前机器人执行器的大部分局限。理解这些缩放定律对任何从事机器人研发的人都至关重要,它也揭示了一个事实:造出一台动作像人一样的机器人,从根本上说比单纯把现有机器人做大或做小难得多。

平方立方定律再次登场

平方立方定律指的是:物体放大时,体积增长的速度快于表面积。它对电机的影响很具体。电机扭矩与体积成正比(大致与线性尺寸的立方相关),而电机的散热能力与表面积成正比(与线性尺寸的平方相关)。电机尺寸放大一倍,扭矩能提升到 8 倍,但散热能力只能提升到 4 倍。

这就是大型电机相对高效的原因。工业机器人臂的电机相对于其发热量,拥有充足的表面积,因此可以在高占空比下运行而不过热。但如果把这种电机缩小到机器人手指上,热问题就反过来了:电机产生的扭矩很小,散热面积却更小。小型电机在持续负载下会很快过热。

Motor scaling (approximate):
Motor diameter    Torque (relative)    Heat dissipation (relative)
100mm (arm)       1.0x                 1.0x
50mm (wrist)      0.125x               0.25x
25mm (finger)     0.016x               0.063x
10mm (fingertip)  0.001x               0.01x
The ratio of torque to heat dissipation:
100mm: 1.0   (can run continuously)
50mm:  0.5   (needs duty cycling)
25mm:  0.25  (overheats quickly under load)
10mm:  0.1   (barely usable for sustained force)
Small motors are proportionally weaker AND hotter.

惯量问题

另一个关键的缩放问题是惯量,也就是对转速变化的抵抗能力。电机转子有质量,质量就有惯量。要让机器人关节快速运动,电机就必须加速和减速转子,所需扭矩与转子的转动惯量成正比。

问题在于,在很多机器人执行器中,转子的惯量远大于负载的惯量。电机耗费的能量,更多是用来带动它自己,而不是它真正要驱动的部件。这就像用一支十磅重的笔写字:你能把笔移动起来,但无法做出快速精准的动作,因为你一直在和笔的惯性较劲。

这对机械臂尤其糟糕。肩部的电机不仅要带动负载,还要带动肘部和腕部的电机。每个关节都会增加惯量,而所有上游关节都必须克服这部分惯量。这种层层累积的惯量,正是机械臂越长越慢、越长越不精准的原因,也和限制起重机吊臂长度的基本约束如出一辙。

齿轮比:一种权衡

增加齿轮是解决电机扭矩不足的标准办法。100:1 的齿轮比会把扭矩放大 100 倍,同时把转速降到原来的 1/100。这样一来,小型高速电机也能为沉重的关节提供足够的扭矩。

代价是可反驱性,即从输出端反向推动电机的能力。高减速比的电机由于齿轮系中的摩擦,从输出端几乎是锁死的。这意味着机器人感受不到施加在自己身上的外力。如果有人撞到机械臂,机械臂不会让开,而是变成一个刚性障碍物。这既是安全问题(机器人可能伤人),也是功能问题(机器人无法完成需要力觉反馈的任务,比如把插头插进插座)。

低齿轮比可以保留可反驱性,电机能感知外力并做出响应。但齿轮比低意味着电机必须自己输出全部所需扭矩,这就需要更大、更重的电机,而电机变重又会增加惯量,进而需要更大的扭矩,形成一个恶性循环。

现代机器人如何应对

机器人设计者会用多种技术绕过电机缩放的限制。

  • 准直驱。采用大直径、薄型电机配合低齿轮比(5:1 至 10:1)。大直径能在不增加高惯量的情况下提供扭矩(转动惯量取决于质量分布,而不仅仅是质量)。低齿轮比则保留了可反驱性。MIT 的 Cheetah 机器人以及许多近期的人形机器人都采用了这一方案。
  • 串联弹性执行器(SEA)。在电机和关节之间加一个弹簧。弹簧能吸收冲击力(保护电机和外部环境),提供能量存储(对行走很有用),还能通过测量弹簧形变来实现力的测量。大多数足式机器人都使用 SEA。
  • 腱绳驱动系统。把电机移到身体上,通过线缆(腱绳)连接到关节。这样就把电机的质量从四肢上移走,大幅降低惯量。人手就是这样工作的:让手指运动的肌肉位于前臂,通过肌腱连接。多款灵巧机器人手也采用了同样的原理。
  • 液压执行器。在高力输出的场景中,干脆完全绕过电机。液压缸的功率密度(单位重量的输出力)非常出色,而且天然具有可反驱性。Boston Dynamics 最初的 Atlas 就是液压驱动的。缺点是:液压系统又脏又吵,结构也复杂。

为什么人形机器人动作慢

考虑到这些限制,当前人形机器人缓慢而谨慎的动作就说得通了。快速动作需要高加速度,高加速度需要克服转子惯量,克服惯量需要巨大的扭矩,而巨大的扭矩要么依赖大电机(惯量更大),要么依赖高齿轮比(失去可反驱性)。物理规律把它们困住了。

人类用的是另一种解法:我们的肌肉在本质上是完全不同的执行器。肌肉的惯量几乎为零(因为它是柔软的),天然具有顺应性(像弹簧一样工作),并且无需机械齿轮就能产生力。人手有 34 块肌肉,控制 27 块骨骼,能以极高的精度、速度和力度敏感性运动。用电机和齿轮复刻这一切,原则上是可行的,但需要为生物系统天生就能解决的每一个缩放问题设计工程方案。

这就是为什么灵巧操作,比如拿起一个生鸡蛋而不把它捏碎、穿针引线、系鞋带,至今仍是机器人领域最难解决的问题之一。得益于机器学习,理解和规划这些任务的软件正在快速进步。但硬件,也就是能够匹配人手速度、精度和力度敏感性的执行器,仍在追赶之中。

软件开发者的启示

如果你从事机器人软件开发,无论是运动规划、控制系统还是感知,理解执行器的物理特性都会改变你写代码的方式。你不能命令机器人关节的运动速度超出电机扭矩与惯量之比所允许的范围。如果执行器具有可反驱性,你就不能假设刚度无限大。如果电机很小,你也不能忽视热极限。

最好的机器人软件会顺应硬件的限制,而不是无视它们。尊重扭矩限制的轨迹规划器,比那些先生成最优轨迹、再交给控制器去截断的方案,能产生更平滑、更快速的运动。能够对电机动力学建模的控制系统,比把电机当作理想扭矩源的控制系统,能实现更好的力控。

电机的缩放定律提醒我们:硬件约束决定了软件的可能性边界。下次你看到一段人形机器人演示,并疑惑它为什么动作如此小心翼翼时,请记住:软件或许已经准备好更快的动作,但小型电机的物理规律并不允许。要让机器人像人一样运动,不仅需要更好的 AI,更需要根本性更好的执行器,而这是一个物理问题,而非软件问题。