提到人形机器人运动会,很多人第一反应是“机器人比赛就是看谁的算法更聪明”。但现实往往更残酷:当一个参赛机器人明显掌握不好平衡,动作像随时会倒,甚至主控端已经切到远程操控,操作员拼命在后台做姿态修正,最终还是眼睁睁看着机器人摔在赛道上,这时候你会意识到,人形机器人比赛的输法,很多时候不是输给对手,而是输给物理规律。
“遥操也没办法”这个现象,放在机器人圈里并不意外。远程操控能解决的是决策问题,操作员可以替机器人判断目标、规划路径、躲避障碍,但操作员无法替电机输出扭矩,无法替电池维持电压,无法替关节轴承承受冲击。换句话说,遥操接管的是大脑,不是肌肉;如果肌肉本身撑不住,再好的大脑也救不回来。
这篇文章适合两类人看。一类是刚接触人形机器人、想理解这类比赛为什么总是“摔得很难看”的爱好者;另一类是正在做人形机器人或双足机器人开发,想搞清楚测试时能跑、一到比赛就废的工程师。我想重点拆一件事:为什么远程操控也无法兜底,以及我们到底应该从这种“最绝望的输法”里学到什么。
1. 为什么“遥操”也不能解决人形机器人的输局
1.1 遥操只是接管决策,不是接管物理
先说一个经常被误解的点。很多人以为遥操作等于“人在后面像玩游戏一样控制机器人”,只要操作员反应够快,机器人就能像人一样完成动作。这个理解有一定道理,但只对了一半。
遥操确实可以接管决策。比如机器人走到某个位置后,不知道下一步该跨左脚还是右脚,操作员可以通过手柄或操控台下发指令;又比如赛道上突然出现一个障碍物,机器人自带的视觉识别不够稳定,操作员可以看一眼回传画面,手动规划绕行路线。这些都属于决策层面的干预。
但机器人最终能不能站稳、能不能迈出那一步、能不能在落地瞬间把重心稳住,靠的是关节电机、减速器、驱动器、足底传感器、姿态控制器、结构刚度和电池输出能力。操作员在远端再怎么推手柄,下发到执行器的只是一条目标指令,剩下的动态响应还是要靠机器人本体完成。如果本体在某个瞬间已经失去平衡,指令再正确也没有用,因为物理上的倾覆力矩不会因为“操作员想让它站稳”就消失。
这就是“遥操也没办法”的最本质原因:遥操可以改变机器人的意图,但改变不了机器人的物理能力。
1.2 最绝望的输法,其实是三种失效叠加
在类似“世界人形机器人运动会”这种比赛里,最常见的绝望输法不是某一个环节崩溃,而是三个环节同时出问题。
第一是硬件失效。关节过热、电机堵转、电池压降、螺丝松动、足底打滑,这些都是比赛现场的高频问题。这类问题最麻烦,因为操作员在远端根本看不到,等反应过来时机器人已经倒了。
第二是控制失效。机器人原本的步态算法在实验室环境里还能维持平衡,但赛场的灯光、地面材质、摩擦系数、观众的震动都不太一样,控制器没有泛化到这种场景,于是一步比一步歪,最后彻底失控。
第三是操控链路失效。哪怕硬件和控制都还行,操作员看到的画面如果是 300 毫秒前的画面,指令发到机器人再到机器人执行,又有几百毫秒延迟,操作员每次修姿都在“补昨天的作业”,机器人自然越走越飘。
当这三种失效叠加在一起,比赛就会出现名场面:操作员满头大汗地在后台做修正,机器人却像喝醉一样往边上倒。观众看到的是“遥控也救不回来”,开发者看到的是“整个链路都在掉链子”。
2. 机器人本体才是第一个短板:硬件上限决定比赛上限
2.1 关节能不能扛住比赛动作,不是看宣传参数
人形机器人比什么?表面看是比走、跑、跳、踢球、跨障碍,本质比的是关节功率密度、结构刚度和动态平衡能力。
很多人买机器人或看比赛时,只盯着电机峰值扭矩、最大转速、自由度数量这些参数。但真正到比赛现场,决定胜负的往往是这些参数的“持续输出能力”。一个关节电机可以在空载状态下转得飞快,可以在实验室单次测试中爆发出高扭矩,但它能不能在连续进行 20 个动作后依然保持稳定输出,完全是另一回事。
实测时最明显的问题是关节过热。人形机器人的关节电机通常集成在髋、膝、踝等位置,空间小,散热差。连续行走、转身、下蹲、起跳之后,电机温度会快速上升,扭矩输出下降,控制器的模型参数还按常温状态计算,结果就是实际动作和预期动作偏差越来越大。操作员如果在远端此时介入,给一个更大的角度指令,电机不但不配合,还可能触发过温保护,直接锁死。
所以我一般建议,看一台人形机器人能不能打比赛,先别听它跑多快、跳多高,先看连续工作 10 分钟后的关节温度、电流波动和动作重复精度。这三个数据比峰值参数更能说明问题。
2.2 平衡、落地和姿态恢复:小误差在赛场上被放大
另一个容易被低估的短板是平衡和姿态恢复能力。
实验室里常见的测试是让机器人原地站立、缓慢行走、在平整地面上走直线。这些测试都有同一个特点:初始条件理想、地面平整、没有连续扰动。但比赛不是这样,比赛要求的是连续动作切换,要求机器人在一个动作完成后立刻进入下一个动作,中间几乎没有稳定时间。
一个非常小的姿态误差,比如落地时踝关节偏了 2 度,在单步测试中可能看不出来,因为下一步还没迈出。但在连续行走中,这个 2 度误差会让重心横向偏移一点,下一步会为了补偿这个偏移再偏一点,几步之后,误差叠加到控制器再也拉不回来的程度,机器人就倒了。
这种叠加误差,操作员在远端很难发现。画面里的机器人看起来只是稍微有点晃,但控制端的状态机可能已经被迫不断切换姿态,系统已经进入了“越调越乱”的死循环。
因此,如果你在做双足人形机器人,建议把“姿态恢复能力”当成一个独立指标来测:故意推它一下,看它多久能回到稳定状态;在倾斜地面上走两步,看它能不能自动调整步态。这些测试比单纯测最大行走速度更有价值。
3. 操控链路里藏着第二短板:延迟、画面和操作者判断
3.1 操控延迟会让操作者永远慢半拍
当机器人硬件撑得住,控制算法也在线时,遥操链路反而会变成最大拖累。
遥操的典型链路是:机器人端摄像头采集画面,把视频压缩编码,通过网络回传到操作端;操作员看到画面,理解当前状态,通过手柄下发指令;指令再通过网络传给机器人,机器人解码后交给运动控制器执行。
每一段都有延迟。视频编码需要时间,网络传输需要时间,操作员反应需要时间,指令下发和运动控制器响应还需要时间。哪怕每个环节只有几十毫秒,加起来也会达到 200 到 500 毫秒。对人来说,这种感觉就像在打一个延迟极高的网络游戏,你看到角色快摔了再按跳,角色根本跳不起来。
最要命的是,人会自动预测。操作员看到画面时,机器人其实已经处于更晚的状态。操作员根据“旧画面”做出的判断,应用到“新机器人”身上,往往会过量或过晚。过量修正导致机器人晃动更大,过晚修正导致机器人错过最佳稳定窗口。
所以在赛场上有一种典型画面:操作员为了救机器人,不断快速切换动作指令,机器人反而像被反复拉扯,最终摔倒。这不是操作员手笨,是延迟链路让操作员根本没办法做精细修正。
3.2 操作员看到的现场,不是机器人真正面对的现实
除了延迟,画面信息本身也不完整。
比赛现场的机器人摄像头通常装在头部或胸口,视角和人的眼睛不一样,看不到自己的脚、看不到足底和地面的接触点、看不到关节的真实角度。操作员以为自己看到了机器人的全貌,其实看到的只是一个局部画面。
更麻烦的是,很多遥操系统没有力反馈。操作员推手柄的力度和机器人关节受力的真实大小完全不成比例。机器人脚底已经踩到不平整地面,操作员感觉不到;机器人踝关节已经在极限扭矩附近,操作员也不知道。他只能靠画面猜测,而画面恰好又看不出来。
这种情况下,操作员能做的其实是“高层级指令”:告诉机器人往前走、往左转、停下来。至于每一步迈多大、重心压多低、落脚点选在哪,还是得靠机器人自带算法。如果自带算法不够强,遥操并不能补齐这个短板。
4. 测试能走、比赛就摔,稳定性测试要怎么设计
4.1 从“单次成功”到“连续稳定”之间隔着什么
很多人抱怨:我在实验室里测试,机器人明明能走 5 米不摔,为什么比赛一上场就走两步就倒?
这里要区分两个概念:单次成功率和连续稳定性。单次成功率是“试 10 次能成 5 次”,连续稳定性是“连续 100 次都不摔”。比赛要求的是后者,哪怕任务只有 1 分钟,你也必须保证整个 1 分钟内不中断。
从单次成功到连续稳定,中间隔着四件事:
第一,误差累计控制。每一步的微小误差能不能在下一步被纠正,而不是持续叠加。第二,外部扰动适应。地面不平、观众震动、灯光变化、温度变化,都会影响传感器和控制器。第三,极限状态恢复。一旦出现大扰动,机器人有没有应急预案,比如急停、跨步、下蹲。第四,长时间性能衰减。电池电压下降、电机升温之后,动作参数是否需要同步调整。
如果你的测试只做了“平地上走 5 米”,那你根本不知道机器人在连续任务中会怎么表现。比赛里的机器人摔倒,很多时候不是某一个动作出了大错,而是连续的小偏差把状态推到了悬崖边。
4.2 用回放和日志找出失败发生的真实环节
遇到这种“单次能成、连续就摔”的问题,最忌讳的做法是不断改控制器参数碰运气。正确做法是把失败现场完整复现出来,然后分层分析。
我建议至少记录三类数据。第一类是机器人端状态日志,包括每个关节的角度、力矩、电流、温度、机身姿态角、足底压力,按时间戳保存。第二类是操控指令日志,包括操作员什么时候按了什么键、下发过什么目标、指令在链路里花了多少毫秒。第三类是摄像头回传视频,最好同时记录原始画面和叠加了状态数据的画面。
拿到这三类数据之后,再按时间轴对齐,就能看到失败到底发生在哪一层。比如机器人摔倒前 200 毫秒,关节电流异常升高,说明硬件输出可能到了极限;如果电流正常但姿态角持续偏移,说明控制器没有及时校正;如果机器人端一切正常,但指令到达的时间比预期晚了 300 毫秒,那问题就在通信链路。
这个排查顺序非常重要。很多团队一失败就怀疑步态算法,结果查了半天发现是网络延迟抖动,或者电机过温导致扭矩不足。没有日志,这些问题只能靠猜。
5. 想避免“最绝望的输法”,开发时优先做这几件事
5.1 先砍动作范围,把单步和慢速走稳
如果你正在做人形机器人,并且希望它能参加比赛或执行真实任务,我的第一个建议是:不要贪动作幅度。
人形机器人最容易摔倒的动作不是大步跨越,而是“想做大动作却做不到位”。膝盖没有足够扭矩,却要跳起来;踝关节活动范围不够,却要快速转向;电池功率不够,却要连续快走。这些动作一旦做不干净,姿态就会出现很大的偏差。
更务实的路线是:先把单步站稳,再走慢速直线,再走连续转弯,最后再尝试跑跳。每一步都要用密集的连续测试去验证,而不是只要“能完成一次”就算通过。
把动作范围砍小之后,本体受到的冲击更小,控制器更容易维持稳定,遥操链路即使有延迟,操作员也有更多容错空间。比赛丢一点速度分,但至少不会因为摔倒丢完所有分。
5.2 把遥操链路做成可诊断、可回放、可限幅的系统
遥操链路为什么在比赛中容易拖后腿?因为它平时很少被“考试”。很多团队在开发时只验证了“操作员可以远程发指令”,却没有验证“延迟超过多少毫秒时操作员还能不能控住”。
建议把遥操链路当成和运动控制一样重要的模块来设计。至少要有三个能力:
第一,延迟可视化。操作员界面里直接显示当前端到端延迟,一旦延迟超过阈值就给出警告,而不是让操作员在不知情的情况下继续操控。第二,指令限幅。远程指令的角速度、步伐大小、加速度不能超过机器人本体的安全边界,防止操作员在紧张时给出过于激进的动作指令。第三,回放能力。把操作员的第一视角、第三人视角、机器人状态数据和操控指令全部同步录制,便于赛后复盘。
这三个能力不一定能让你赢,但能让你在输了之后知道为什么输。对开发迭代来说,这比现场瞎猜有价值得多。
5.3 设定适合自己机器人的验收标准
很多团队对机器人“行不行”没有清晰判断标准,只是觉得“看起来能走应该就行”。一旦到了比赛现场,问题就暴露了。
我建议在开发阶段就定义几个可量化的验收标准。
- 连续行走成功率:在指定场地里连续完成 10 次任务,至少成功几次才算合格。
- 单次最大扰动:机器人能承受多大推力或多大地面倾斜角度而不倒。
- 延迟容限:在 200 毫秒、300 毫秒、500 毫秒延迟下,操作员还能不能完成基础任务。
- 长时间稳定性:电池从满电到低电量的过程中,任务成功率是否会明显下降。
- 恢复能力:发生小滑倒或碰触后,机器人能不能迅速回到稳定状态继续执行任务。
下表可以作为一个基础参考模板:
| 验收项 | 推荐测试方式 | 合格判断 | 说明 |
|---|---|---|---|
| 连续行走 | 10 米直线往返,连续 10 次 | 成功率 >= 80% | 单次成功不算数 |
| 抗扰动 | 侧面推力或斜板行走 | 不摔倒且能恢复 | 推力要限制在安全范围 |
| 延迟容限 | 模拟 200/300/500ms 延迟 | 仍能完成基础任务 | 延迟越高,任务成功率越低是可预期的 |
| 长时间工作 | 连续运行 15 分钟 | 关节温度可控,成功率不显著下降 | 关注电池压降和电机升温 |
| 姿态恢复 | 外力推倒前诱发,自动找回平衡 | 5 秒内恢复或触发保护 | 防止失控连锁反应 |
不同机器人的参数肯定不一样,没办法套用同一个数值。但必须有这样一套验收逻辑,而不是“跑起来就算成功”。
6. 比赛输掉后,按这个顺序排查更省时间
6.1 先查硬件日志,再查操控记录
比赛完如果机器人摔了,别急着说“算法不行”或“操作员不会控”。按下面的顺序排查,能更快定位问题。
第一步,先看机器人端日志。重点看摔倒前 2 秒内的关节电流、扭矩、温度、电机状态、电压和姿态角。如果某个关节的电流冲到上限且持续不降,大概率是电机堵转或机械卡死。如果电压在摔倒前快速下降,大概率是电池输出能力不足。
第二步,再看控制日志。机器人是否收到了操作员指令,控制器有没有拒绝执行,有没有触发安全保护,状态机是否在连续切换。很多时候控制器收到了指令但任务优先级处理不过来,导致指令堆积,机器人动作变得混乱。
第三步,再看通信链路。统计比赛期间网络延迟的分布情况,看有没有明显的时间段延迟超过正常范围。如果摔跤瞬间恰好是延迟抖动最高的时候,那问题就在链路。
第四步,最后看比赛流程。是不是主办方临时调整了任务顺序,场地摩擦系数和测试时差别很大,机器人在上一轮动作中已经积累了一些损伤,只是还没表现出来。
6.2 常见失败现象与优先排查项
| 失败现象 | 优先排查项 | 次要排查项 |
|---|---|---|
| 机器人走着走着逐渐歪倒 | 步态误差累计、足底打滑 | 视觉/激光定位偏差、场地不平 |
| 启动加速时突然倾倒 | 电机输出扭矩不足、姿态前倾控制 | 电池瞬时压降、传动间隙 |
| 原地站立但频繁抖动 | 姿态传感器噪声、控制器增益过高 | 关节振动、连接件松动 |
| 接到遥操指令后动作明显延迟 | 网络延迟抖动、视频编码耗时 | 操作端计算负载、机器人端指令队列 |
| 大动作后无法站稳 | 重心规划不足、腿部件刚度不够 | 落地冲击超过关节扭矩上限 |
| 远程画面正常但机器人不执行 | 指令协议不匹配、急停信号触发 | 通信丢包、安全权限设置 |
这里要特别提醒一个点:不要把“看起来没倒下”当成“控制系统没问题”。有时候机器人虽然没有摔倒,但每一步都在失衡边缘,只是在靠运气和时间赛跑。这种状态在比赛里非常危险,因为比赛任务往往是连续多轮的,运气不能保证一直站在你这边。
7. 结尾:这类比赛的价值不是分出胜负,而是暴露问题
回到文章开头那个画面:操作员已经切换到远程操控,手速拉满,机器人还是摔在赛道上。表面上看,这很绝望,但换个角度看,这正是人形机器人技术现状最真实的一次展示。
人形机器人离“像人一样行动”还有很远。视觉理解能靠大模型快速进步,语言交互也能靠数据堆出来,但运动控制必须一步一个脚印地走。电机能不能输出足够的扭矩,关节能不能扛住连续冲击,控制器能不能在几十毫秒内做出正确的姿态修正,遥感链路能不能把延迟降到可操作的范围,这些都是硬工程问题,不是单纯靠一个聪明的算法就能解决的。
所以我更愿意把这种“最绝望的输法”当成一次非常好的压力测试。它帮助我们划清了理想和现实之间的边界:遥操可以增加一个决策渠道,但不会改变机器人的物理上限;算法可以提升控制质量,但无法弥补硬件结构的不足;测试阶段能走,不代表比赛阶段能站得住。
如果你自己也在做这类机器人,我的建议是:先别急着追求高难度动作,也别把远程操控当成救命稻草。把单步走稳,把连续任务跑通,把日志和回放体系搭好,再把延迟阈值摸清楚。做到这几点,哪怕比赛还是输了,你也能清清楚楚知道输在哪个环节。这比什么都重要。