机器人挨了一拳,编码器却说关节转了——“URKL全球人形机器人自由格斗联赛” 拷问的不是抗摔,是位置反馈可信度
首发于公众号「如是有为」 · 查看原文

机器人挨了一拳,编码器却说关节转了——格斗赛真正拷问的不是抗摔,是位置反馈可信度
机器人被击中后,角度突变可能是真实转动、弹性扭转,也可能只是传感器伪跳变。单颗编码器只会报角度,不会告诉控制器这三者有什么区别。
2026年7月16日晚,深圳南山文体中心,众擎URKL全球人形机器人自由格斗联赛揭幕战开打。两台统一使用T800平台的全尺寸机器人,在八角笼里出拳、横扫、推搡、倒地,再站起来继续。
观众看的是“铁甲钢拳”,位置反馈工程师看到的却是另一件事:每次碰撞都在追问控制器——你刚收到的角度变化,到底是机器人真的动了,还是传感器被冲击骗了一下?
这个问题比“编码器会不会坏”更难。坏了容易诊断,最危险的是它没有掉线、CRC也没错、角度还在连续输出,只是其中某几帧已经不再代表真正的关节运动。
被揍一拳后,角度跳变其实有三种完全不同的来源
第一种是真实转动。冲击力矩确实把关节推走了,编码器读到的就是机器人真实姿态。这时如果控制器把读数当噪声删掉,反而会错过最需要救平衡的瞬间。
第二种是真实但短暂的弹性扭转。电机轴、谐波柔轮、联轴器、输出结构在冲击下发生扭转或弯曲,电机侧编码器确实看见了运动,但负载端并没有按同样角度移动;几毫秒后结构回弹,角度又回来了。这个读数不是假的,却也不能直接等同于整条腿的姿态。
第三种才是严格意义上的传感伪跳变。磁铁相对芯片发生径向平移或倾斜、PCB与外壳产生相对运动、磁场幅值突然变化,甚至供电和地弹在冲击大电流下扰动模拟前端。轴可能没有产生对应旋转,但SIN/COS矢量已经变了,角度算法只能照常给出一个新结果。
冲击加速度本身不能直接换算成角度误差;结果取决于磁铁直径、气隙、偏心灵敏度、安装刚度、悬臂长度、轴承游隙和芯片算法。没有具体结构与冲击台实测,不能报一个通用角度。

知识卡片1|同一个角度突变,可能对应三种不同物理过程。单颗编码器无法独自完成归因。
真正把问题放大的,不是位置环,而是速度差分
假设冲击造成一个持续3 ms、幅值0.5°的模拟角度台阶。这里明确是工程模拟,不是T800实测数据。
如果控制周期是1 ms,位置环看到的只是0.5°偏差;但速度由相邻位置做差得到,台阶出现的那一帧会被算成500°/s,台阶消失时又会出现一次方向相反的−500°/s。
v假= Δe冲击÷ Ts
于是同一个很短的位置台阶,会在速度通道里变成前后两记尖峰。带微分项的位置控制、速度反馈、状态观测器和碰撞恢复逻辑,都可能同时被触发。
控制器通常不会因为一个尖峰就数学意义上“发散”。更常见的后果是力矩限幅、环路振铃、保护误触发,或者在结构已经回弹后补上一记迟到的校正力矩。只有当延迟、饱和、积分累积和符号关系凑在一起,错误补偿才可能演变成持续失稳。

知识卡片2|模拟示例:0.5°角度台阶在1 ms差分周期下产生±500°/s速度尖峰,不代表赛事机器人实测结果。
为什么“结构已经回位,控制器才开始反击”
从冲击发生到驱动器真正输出补偿力矩,中间隔着传感器转换、数字滤波、总线传输、控制计算和PWM更新。假角度如果只存在两三毫秒,机械结构可能已经回弹,控制器却刚算完那一帧。
更隐蔽的是零点没有完全恢复。磁铁支架滑了一点、PCB固定点产生残余位移、连接器接触或供电基准改变,编码器可能留下一个持续偏置。此后控制器做的每一次计算都可以是正确的,只是坐标原点已经错了。
这时机器人可能没有当场倒下,而是在下一次迈步、转髋或起身时姿态开始偏。不能把这种现象直接说成“比赛里已经发生”,但它正是冲击台试验必须主动寻找的故障模式。
走路摔倒和格斗挨打,区别不只是冲击更大
跌倒触地同样可能非常剧烈,不能简单说出拳一定比摔倒频率更高。格斗真正改变的是冲击的方向、位置、相位和重复方式。
走路时,足底接触通常能被步态相位、足底力和IMU提前解释;格斗中的拳击、扫腿和推搡可能从任意方向、任意时刻打进来。一次冲击还会沿结构同时传到髋、膝、踝和躯干,而连续击打可能在前一次振动尚未衰减时再次加载。
所以格斗工况最难的不是“更大”,而是更难预测,也更难用单一传感器解释。
最危险的修复,是给编码器加一个“跳变就丢弃”
如果角度变化超过阈值就删除,确实能压掉部分伪跳变。但机器人被真正踢动时,角度也会快速变化;一刀切限幅可能把真实失衡当噪声,等于在最需要反馈的时刻把眼睛闭上。
低通滤波也一样。它可以降低高频噪声,却同时增加延迟。格斗中的恢复动作本来就快,如果为抗冲击把带宽压得太低,机器人会从“被假信号骗”变成“看见真实动作太晚”。
正确方向不是先删除数据,而是先给数据估算可信度:
编码器角度突变时,IMU是否看到了相符的角速度?
电机电流与外力矩是否支持这次运动?
电机侧与输出侧编码器是否同时变化?
SIN/COS幅值、诊断位和供电是否也在跳?
这些证据共同决定是跟随、短时外推、降低增益,还是进入保护。

知识卡片3|机械、传感、时间和控制四层同时做,才能避免把真实运动与传感伪跳变混为一谈。
格斗编码器应该怎么验收:先把轴锁死,再拿锤子说话
最关键的第一项不是笼统的“抗冲击多少g”,而是锁轴冲击下的表观角度误差。把真实旋转约束住,分别从轴向、径向和切向施加规定冲击,记录角度尖峰、恢复时间、零点残差和SIN/COS幅值变化。只有这样,才真正测到了传感器把非旋转扰动误报成角度的程度。
第二项是双编码器冲击试验:电机侧和输出侧同时采样,用两者差值观察减速器弹性扭转与回弹。
第三项是随机时刻、多方向、重复冲击,并把编码器、IMU、电流、足底力和PWM时间戳统一记录。第四项是冲击后的永久零点漂移,而不是只确认器件“还能通信”。
验收结果至少应该回答:最大表观角度尖峰是多少?多久恢复到允许误差带?是否留下永久偏置?重复冲击是否累积?误判期间控制器实际输出了多少错误力矩?
格斗赛真正暴露的,是位置反馈链里的责任缝隙
编码器的任务传统上只是给角度;控制器默认收到的角度代表真实旋转。但格斗冲击把这个默认前提撕开了:磁编码器看到的是磁场矢量,控制器需要的却是关节真实姿态,两者之间并不天然等价。
因此,问题不能只甩给编码器,也不能只甩给算法。机械安装要减少非旋转位移,编码器要输出幅值与诊断信息,驱动器要保留精确时间戳,控制器要用多传感器残差判断可信度。
八角笼真正测试的,不是机器人挨一拳会不会坏,而是它能不能知道:刚才动的是关节,还是自己的“眼睛”。信息边界本文不评价URKL赛事与T800整机控制性能。文中的0.5°、1 ms、500°/s均为解释差分效应的模拟参数,不是赛事机器人实测数据;公开报道未披露T800编码器方案和冲击测试数据。参考信息① 科技日报《人形机器人自由格斗联赛揭幕战在深圳打响》,2026-07-17。
② 深圳新闻网《首届人形机器人格斗赛深圳开打》,2026-07-16。
③ 人民网/中新社《URKL全球人形机器人自由格斗联赛揭幕赛打响》,2026-07-17。
如是有为|编码器 · 位置反馈 · 芯片

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