机器人腱伸长 0.2 毫米,指尖却偏了 1.7 毫米——你的"编码器"只看得到绳的这一头
首发于公众号「如是有为」 · 查看原文

齿轮传动里"电机角 ÷ N = 关节角"基本成立,几何速度比是常数。腱不是:它有弹性、有预张力、会蠕变,绕过滑轮的摩擦还方向相关——变的不是几何比,是电机角和关节角之间那个负载相关的偏差 δ。而且腱伸长与指尖误差不是 1:1,中间隔着两级放大。最后你会撞见一个咬住自己尾巴的环。
先看一张 1X 官方放出来的传动特写。
1X(1X Technologies)是 OpenAI 投资的人形机器人公司,前身 Halodi Robotics,2014 年起步于挪威,主力产品是家用双足人形机器人 NEO。2026 年 7 月,它给 NEO 发布了一只 25 自由度的腱驱动灵巧手——手指力控、可反驱、带触觉,主打"接近人手"。下面这张,就是这只手的传动特写。

图源:1X 官方(版权归 1X,评述性引用)。注意:这张特写只证明得了末端是腱—滑轮传递,证明不了"没有别的传动或传感结构"——那都在取景框之外。
一颗大直径电机,一根绳,绕过两个滑轮。
看到这张图的时候,我脑子里冒出来的第一句话是:
那不是齿轮。
这句话听起来像废话。但它的工程后果,大得吓人。
因为所有做伺服的人,脑子里都刻着一个默认前提:
θjoint = θmotor ∕ N
电机在哪,我就知道关节在哪。这个前提在齿轮传动里基本成立——齿数比刻在金属上,除了背隙,几何速度比是常数。但换成一根绳,它就不成立了。
01 绳会干四件齿轮不会干的事
它有弹性。你一使劲,它就长。
它有预张力。装配时拧多紧,会一直跟着你。
它会蠕变。跑上几十万次,它就回不到原来的长度了。
它的摩擦是方向相关的。正着拉和反着放,不是一笔账。
说准确一点:变的不是那个几何速度比——在特定构型下它仍可近似为常数。变的是"电机角"和"关节角"之间,那个负载相关的偏差:
θjoint ≈ θmotor ∕ N − δ(张力, 温度, 磨损, 方向, 时间)δ = 腱的顺应性与迟滞

图1:同一个前提,两种命运。左边刚性齿轮,电机角除以 N 就是关节角,关系钉死在金属上;右边中间多了一段会伸缩的绳,电机和关节之间那条线,就断了。(原创示意图)
电机侧的编码器,永远只看得到绳的这一头。
02 别以为"腱伸长 0.2 mm"就等于"指尖偏 0.2 mm"
这是最容易想当然的一步。中间隔着两级换算。第一级——腱的线位移,先换算成关节角:
Δθj ≈ Δlt ∕ rt
rt 是腱轮半径,这一步是量纲换算——把毫米变成弧度。注意那个半径:通常只有几毫米。第二级——关节角,再映射到指尖:
Δxtip ≈ J(θ) · Δθ
J 是手指的雅可比,量级由指节长度决定——几十毫米。这一步不是简单乘一个常数——它取决于当前构型、是哪个关节出的误差、误差方向、多关节误差会不会互相抵消。所以不能笼统说"到指尖就是被放大的"。
但在最常见的单关节近似下,量级是这样的:
Δxtip ≈ (Leff ∕ rt) · Δlt
举个例子:腱轮半径 6 mm、有效力臂 50 mm——比值约 8.3。
腱伸长 0.2 mm → 关节偏约 1.9° → 指尖偏约 1.7 mm

图2:这笔账怎么被放大 8.3 倍——绳上那 0.2 毫米,先除以只有 6 毫米的腱轮半径换成 1.9° 的转角,再乘上 50 毫米的指尖力臂,就是 1.7 毫米。腱轮很小、力臂很长,放大就发生在这个比值里。(原创示意图;参数为典型量级示例,非任何厂商实际值)
腱轮只有几毫米,指尖力臂却有几十毫米。
这只是一个算例,不是定律。具体比例取决于几何——而这些参数,做手的公司通常不公开。
03 正着拉和反着放,不是一笔账
还有一层,是齿轮完全没有的。绳绕过滑轮的时候,效率是方向相关的。
① 绳自己的弯折内摩擦。编织绳在滑轮上弯过去、再弯回来,纤维之间互相错动、耗散能量——拉紧和放松,这个耗散不对称。
② 若有任何固定导向面(而不是滚动轴承),还要叠加 capstan 效应:张力沿包角指数放大 eμβ。指数,不是线性。
同一个关节角度,“我正在推"和"我正在放”,电机侧看到的电流不一样。
于是力觉输出里,多了一个方向相关的迟滞环。而最阴的一点是:如果你的标定是"双向跑一圈取平均"做的——从最终那条误差曲线上,它就消失了。
原始的正反转数据里它还在。前提是你留了。
04 然后你会撞见一个咬住自己尾巴的环
把上面的东西连起来,会看到一件很漂亮、也很难受的事:
力估计,需要准确的关节角度。
准确的关节角度,需要知道腱变形了多少。
腱的变形,跟着张力走。
而张力……恰恰是从力估计来的。
角度 → 力 → 张力 → 腱变形 → 角度。

图3:你要的两个量,互为对方的输入。要算力,得先知道关节角;要知道关节角,得先知道腱变形了多少;腱变形跟着张力走;而张力,又是从力估计来的。(原创示意图)
它不是"编码器精度不够"这么简单——它是一个耦合回路:你要的两个量,互为对方的输入。解这个环,无非三条路:
① 在关节侧独立测角度,把环剪断。关节角直接观测,不依赖张力估计。代价:十几毫米的关节里塞传感器 + 多路走线。
② 用状态观测器联合估计。拿电机角、电流、运动响应和腱刚度模型,同时估出关节位置、腱变形和外力。代价:模型误差会一起进到角度和力里。
③ 建一个准确的腱模型,前馈掉。代价:这个模型会随磨损和温度过期——回到蠕变那个问题。
注意 ② 是能走通的——环不是"没有独立传感器就闭不上"。真正的差别在这里:
有独立观测,环靠"测"来闭。
05 下次评审,问这三个问题
1腱的变形,靠什么观测或补偿?关节侧编码器?张力检测?双编码器差值?还是纯靠模型?总得有一个。
2正着推和反着放,测出来的力差多少?如果你的标定是双向平均做的,你根本不会看到这个数。
3几百万次循环后,出厂标定的"电机角 → 关节角"映射还成立吗?腱在长期载荷下会蠕变、编织整定、端部沉降、残余伸长。有没有在线重标机制?
齿轮箱不只是在放大力矩。
刚性齿轮传动,还给了"电机在哪"和"关节在哪"之间,一套相对稳定的几何关系。
换成一根柔性腱,你减少的不只是摩擦。
那套关系,开始随负载、方向和时间变化。
— 知识卡片 —

边界说明
· 配图引自 1X 官网(版权归 1X,评述性引用)。这张特写只证明得了末端是腱—滑轮传递,证明不了"没有别的传动或传感结构"——那都在取景框之外。
· “腱轮 6 mm / 力臂 50 mm / 约 8.3 倍"是典型量级示例,不是任何厂商参数。第二级的雅可比映射并不必然是放大(取决于构型、出误差的关节、误差方向)。
· 腱驱动的顺应性、摩擦和蠕变会拖垮"仅靠电机编码器估关节位置"的精度——这是机器人手领域的公认问题,双编码器是文献里已有的路线之一。
· fig1 / fig2 / fig3 为原创示意图,用于把推理链画清楚;图中数字为典型量级示例,非任何厂商实测值。
微信公众号|如是有为 · 机器人 · 编码器

关注公众号「如是有为」
微信扫一扫,新文章先在公众号发出。