2025 年的人形机器人赛场,焦点已经不是“能不能走”,而是“能不能全自主完成比赛”。这次被广泛讨论的中国人形机器人运动会,核心看点不在机器人外形多酷,而在规则把“全自主”写进了参赛前提:机器人要自己感知场地、自己规划路径、自己完成运动动作,而不是靠遥控器或预设脚本走完流程。
对搞技术的读者来说,这件事最值得关注的不是运动会本身,而是它背后暴露出来的完整技术栈:感知、决策、运动控制、仿真训练、实机部署、指标评估。这篇文章不聊赛事八卦,直接拆解“全自主运动”这项能力是怎么实现的、门槛在哪里、要准备哪些环境、怎么验证一台人形机器人是不是真的“全自主”。
如果你正在做人形机器人方向的科研、比赛、产品预研,或者准备评估某个机器人平台的能力边界,这篇文章可以直接收藏。我会按赛事技术分析的角度,把感知、规划、控制、训练、部署、评估、排错这条链路完整过一遍,并且给出通用检查清单和验证流程。
1. 核心能力速览
先从技术角度给这一届运动会相关的人形机器人能力做一个速览。和软件项目不同,人形机器人没有统一的“安装包”,能力分散在感知、决策、控制、训练和硬件层,所以下面这张表按技术模块拆,不写死具体型号和参数。
| 能力模块 | 说明 |
|---|---|
| 赛事形态 | 短跑、跨栏、足球、举重、格斗等运动项目,具体项目以各站比赛公布信息为准 |
| 核心能力 | 全自主运动、实时环境感知、行为决策、全身协调控制 |
| 感知方案 | 深度相机、激光雷达、IMU、关节编码器等多传感器融合 |
| 决策方案 | 强化学习策略、模仿学习、任务级行为树或状态机 |
| 控制方案 | 全身动力学控制、步态规划、柔顺控制、全身力矩分配 |
| 训练环境 | 仿真优先,常见框架包括 Isaac Sim、MuJoCo、PyBullet 等 |
| 实机平台 | 各厂商双足人形机器人,具体品牌和硬件参数以实际平台为准 |
| 数据需求 | 遥操作数据、仿真数据、真机运动数据混合训练 |
| 是否支持遥控 | 运动会强调全自主,不依赖遥控;保留安全急停机制 |
| 批量任务能力 | 多机协同可复用策略,训练阶段支持批量并行仿真 |
| 适合场景 | 科研验证、体育竞技赛事、工业巡检、物流搬运、服务引导 |
这里要特别说明:所有显存、算力、真机参数都不能脱离具体平台空谈。运动会的意义在于用统一规则横向对比不同机器人的“全自主运动能力”,而不是证明某一家厂商的硬件绝对领先。
2. 从“表演”到“比赛”:全自主能力的门槛在哪
人形机器人早期展示大多是预编程动作:把一段动作轨迹录好,机器人在特定位置复现。这种模式在固定舞台、固定灯光下很有效,但到了运动会场景,规则完全不同:场地可能有光照变化、对手会移动、障碍位置不固定、裁判指令也可能有差异。
全自主能力的本质,是把“人的决策”从闭环中拿掉。机器人必须自己回答三个问题:
- 我在哪?周围有什么?
- 下一步应该做什么动作?
- 怎么做这个动作才稳定?
对应到技术架构,就是一个经典的三层链路:感知层、决策层、执行层。
感知层负责回答第一个问题。机器人需要通过深度相机识别场地边界、跨栏位置、足球目标;通过 IMU 和关节编码器估计自身姿态;通过里程计或激光雷达判断自己在场地中的全局位置。任何一层感知出错,后续决策都会连锁失败。
决策层负责回答第二个问题。在比赛中,决策不是简单的“左转还是右转”,而是“距离栏架还有 0.8 米,当前速度 2 米每秒,是否需要调整步态”。“全自主”意味着这些判断要在毫秒级完成,而且不能依赖外部计算单元。
执行层负责回答第三个问题。决策层说“跨栏”,执行层要生成一个能在 0.3 到 0.5 秒内完成的跨步轨迹,同时保持质心不超出支撑多边形,关节力矩不超限。这背后是全身动力学控制问题。
所以“打破人类纪录”这个表述要理性看待。人形机器人在特定赛事规则下,用足式运动完成规定动作的成绩超过了人类参考标准,这更多是验证了机器人运动控制系统的稳定性与效率,不代表人形机器人整体运动能力已经超过人类顶尖运动员。但对人形机器人这个赛道来说,这个信号已经很重要:全自主足式运动从“实验室稳定行走到复杂竞技场景”,往前跨了一大步。
3. 环境准备与前置条件:机器人开发需要什么
如果你准备复现或跟进这条技术路线,环境准备会和普通深度学习项目很不一样。人形机器人开发涉及仿真、训练、真机部署三套环境,下面是通用检查清单。
3.1 系统与软件环境
| 检查项 | 通用要求 | 说明 |
|---|---|---|
| 操作系统 | Ubuntu 20.04 或 22.04 | 多数机器人驱动和仿真工具优先支持 Linux |
| Python 版本 | 3.8 到 3.10 | 具体以仿真框架和训练框架要求为准 |
| 仿真环境 | Isaac Sim、MuJoCo、PyBullet 等 | 用于策略训练和验证 |
| 训练框架 | PyTorch、TensorFlow | 强化学习策略训练常用 PyTorch |
| 机器人 SDK | 各厂商平台提供 | 实机部署时使用,按厂商文档安装 |
| 通信中间件 | ROS 1 / ROS 2 | 感知、规划、控制模块间通信 |
3.2 硬件算力要求
训练阶段建议使用 NVIDIA GPU。策略训练过程中,批量并行仿真环境会占用显存,显存越大,单轮训练能开的并行环境越多。实际显存占用建议以你选的仿真框架和策略网络规模为准,先用小网络小 batch 验证代码链路,再逐步加大规模。
真机部署阶段,算力依赖机器人本体携带的计算单元。全自主运动要求在板端运行感知模型和控制策略,所以板端算力决定了感知模型的复杂上限。
3.3 项目目录结构模板
建议按模块隔离项目目录,方便训练、部署、日志回溯:
humanoid_autonomous/ ├── sim_env/ # 仿真环境配置 ├── perception/ # 感知模块代码 ├── decision/ # 决策与规划模块 ├── control/ # 运动控制模块 ├── train/ # 训练脚本与配置 ├── deploy/ # 真机部署脚本 ├── configs/ # 参数配置 ├── logs/ # 运行日志 ├── data/ # 训练数据与测试数据 └── third_party/ # 第三方SDK和工具4. 关键技术拆解:全自主运动是怎么实现的
这一节是整篇文章的核心。人形机器人运动会之所以能办起来,底层靠的是这几年技术栈的成熟。拆开看,主要包括四条线:感知融合、运动控制、强化学习训练、策略迁移。
4.1 感知融合:机器人怎么“看见”世界
全自主运动的第一步是感知。双足机器人跑动时,相机画面会剧烈抖动,单纯依赖视觉很难保持稳定。所以实际方案都是多传感器融合:
- IMU:提供三轴加速度和角速度,用于姿态解算。
- 关节编码器:提供各个关节的角度和速度,用于状态估计。
- 深度相机:提供环境深度信息,用于障碍检测、目标定位。
- 激光雷达:提供全局点云,用于建图与定位。
感知模块的输出通常包括自身状态(质心位置、姿态、速度)和外部环境状态(障碍物位置、目标位置、场地边界)。这个输出直接送给决策模块。
# 感知融合通用示意:IMU + 关节编码器估计机器人状态 # 实际实现需要依据机器人 SDK 提供的数据接口调整 import numpy as np def estimate_body_state(imu_data, joint_data): orientation = imu_data["orientation"] angular_velocity = imu_data["angular_velocity"] joint_positions = joint_data["positions"] joint_velocities = joint_data["velocities"] body_state = { "orientation": orientation, "angular_velocity": angular_velocity, "joint_positions": joint_positions, "joint_velocities": joint_velocities, } return body_state感知延迟是全自主运动最大的敌人。如果从图像采集到状态输出延迟超过 50 毫秒,跑动中的步态调整就会明显滞后。因此实际系统都会做延迟分级:IMU 和关节数据走高频快通道,视觉目标检测走低频慢通道,决策层把两类数据按时间戳融合。
4.2 运动控制:让机器人“站得住”才能“跑得快”
双足机器人跑动时,每一步都是瞬间的失稳动态。控制层要解决的核心问题是:如何生成参考轨迹,以及如何让实际关节力矩跟踪这条轨迹。
常见控制思路包括:
- 步态规划:根据目标速度生成每一步的落脚点。
- 质心轨迹规划:把质心运动规划到支撑多边形内,保证动态稳定。
- 全身动力学控制(WBC):把线性预测控制生成的理想接触力映射到各关节力矩。
- 柔顺控制:对关节力矩做滤波和限制,避免冲击损坏硬件。
控制层的输出是每个关节的目标力矩或目标位置。运动会场景中,机器人在不同项目中会切换不同控制模式:短跑偏重腿部爆发力,举重偏重全身姿态稳定,足球偏重快速转向和腿部交互。
4.3 强化学习训练:怎么学会“会跑”
传统控制方法在平地上跑还能调参,但换到草地、跨栏、带球场景,人工调参工作量巨大。所以当前主流路线是强化学习训练策略。
训练流程通常会这样组织:
- 在仿真环境中构建机器人模型和场地模型。
- 定义动作空间:通常用目标关节位置或关节力矩作为策略输出。
- 定义状态空间:包括机身姿态、关节角度、关节速度、目标方向、障碍物距离等。
- 设计奖励函数:鼓励前进速度、保持稳定、减少能耗、避免摔倒。
- 使用 PPO 或 SAC 等算法训练策略。
- 通过域随机化提高策略对真实环境的适应能力。
训练循环的伪代码大概长这样:
# 强化学习训练循环示意,具体框架以 Isaac Labs / MuJoCo 接入为准 for epoch in range(num_epochs): obs_list, action_list, reward_list = [], [], [] for env_step in range(steps_per_epoch): action = policy(obs) next_obs, reward, done, info = env.step(action) obs_list.append(obs) action_list.append(action) reward_list.append(reward) # 用收集到的轨迹更新策略 update_policy(obs_list, action_list, reward_list)强化学习训练阶段最容易出现的问题是“仿真里跑得很好,真机上完全不行”。这和仿真建模精度、通信延迟、执行器响应特性都有关系。后面第五节会专门讲 sim-to-real 的问题。
4.4 策略迁移:从仿真到真机的“最后一公里”
仿真环境中机器人可以完美执行指令,但真机存在电机响应延迟、关节摩擦、质心偏差、通信抖动。策略迁移的目标是让仿真训练出的策略在真机上依然稳定。
常用手段包括:
- 域随机化:训练时随机化机器人的质量、摩擦系数、电机力矩延迟等参数,让策略适应不确定环境。
- 系统辨识:用真机运动数据反推仿真模型参数,让仿真更接近真机。
- 在线自适应:在真机部署时,用小型自适应网络实时修正策略输入,抵消模型偏差。
- 在真机上微调:先以低强度、慢速度运行收集数据,再用安全的强化学习算法在真机上做少量更新。
这一环是“全自主”最容易翻车的地方。很多机器人能完成训练时的路径,但换一块场地、换一个光照条件就跑不稳,问题往往出在策略泛化能力不足。
5. 全自主运动的功能测试与效果验证
不管用哪家平台,验证“全自主”不能只看一两次演示。需要建立一套可重复的测试流程,覆盖稳定性和抗干扰能力。
5.1 测试维度
| 测试项目 | 测试方法 | 判断标准 |
|---|---|---|
| 原地稳定站立 | 机器人静止站立 2 分钟 | 不摔倒,质心偏移小于设定阈值 |
| 直线全速跑动 | 在平地跑 20 米 | 不偏离跑道,平均速度达到目标 |
| 越障测试 | 在路径上放置固定障碍 | 自主识别障碍并完成越障,不接触障碍 |
| 抗扰动测试 | 跑动中施加侧向推力 | 2 秒内恢复稳定步态 |
| 视觉闭环测试 | 目标位置随机放置 | 机器人通过视觉自主调整方向并到达目标 |
| 断线安全测试 | 切断遥控链路 | 进入安全停机流程,不发生失控 |
| 长时运行测试 | 连续运行 10 分钟 | 关节温度、电流不超限 |
5.2 全自主判断标准
严格意义上的“全自主”,至少要满足以下条件:
- 感知、决策、控制全部在板端完成,不依赖外部服务器。
- 运动过程中没有人工介入,包括遥控、按键、语音指令。
- 面对环境变化能自主调整行为,而不是回到预设轨迹。
- 发生异常时能进入安全状态,而不是盲目继续运动。
如果测试过程中发现“看起来在自主运行,实际上有人偷偷按遥控”,那就是典型的伪自主。
5.3 测试日志与数据回溯
每次测试要记录完整的传感器数据和策略输出,方便失败后复盘。记录内容包括时间戳、状态估计、策略输出、关节反馈、人工备注。
# 测试日志记录示意 import csv import time with open("test_log.csv", "w", newline="") as f: writer = csv.writer(f) writer.writerow(["timestamp", "body_state", "action", "joint_feedback", "note"]) for step in test_steps: writer.writerow([ time.time(), body_state, action, joint_feedback, "manual_note" ])6. 性能观察:怎么评估机器人真的“跑得快、跑得稳”
在运动会场景里,“打破人类纪录”这个结果需要用数据支撑。运动成绩不能只看一块金牌,要同时看运动学数据和能耗数据。
6.1 运动学指标
- 平均速度:完成规定距离的总用时除以距离。
- 步频:单位时间内完成的步数。
- 步幅:每一步覆盖的有效距离。
- 质心波动幅度:跑动过程中质心高度变化越小,稳定性越好。
- 方向偏差:机器人实际轨迹与目标直线的横向偏差。
6.2 动力学指标
- 关节峰值力矩:判断是否触发过载保护。
- 关节峰值电流:反映电机负载情况。
- 能耗:单位距离消耗的电量,直接决定续航。
6.3 系统负载指标
真机运行时要同时关注板端计算单元的负载:
- CPU 占用率。
- GPU 占用率与显存占用(如果板端有 GPU)。
- 感知模块端到端延迟。
- 控制循环频率是否稳定。
# 通用系统监控模板,按实际板端系统调整 nvidia-smi --query-gpu=utilization.gpu,memory.used --format=csv -l 1 top -b -d 1 | grep -E "python|ros|robot"比较理想的状态是:GPU 占用和 CPU 占用留有 30% 以上余量,控制循环频率波动不超过设定值的 10%。如果系统负载长期接近 100%,机器人在复杂场景下的响应速度一定会下降。
7. 常见问题与排查方法
| 问题现象 | 可能原因 | 排查方式 | 解决方案 |
|---|---|---|---|
| 机器人原地站立时频繁抖动 | 控制增益过高或状态估计噪声大 | 查看关节角速度曲线,观察IMU姿态稳定性 | 降低控制增益,增加滤波平滑 |
| 跑动时方向持续偏左或偏右 | 机身质心标定不准或左右腿执行器特性不一致 | 对比左右关节反馈力矩 | 重新标定质心,做执行器一致性补偿 |
| 视觉识别目标不稳定 | 光照变化、曝光参数不匹配 | 查看感知模块输出和置信度 | 调整相机曝光和时间戳对齐方式 |
| 仿真表现好但真机摔倒 | sim-to-real 差距大 | 对比真机关节响应和仿真关节响应曲线 | 增加域随机化,做系统辨识后重训 |
| 跨栏动作总撞到栏架 | 感知延迟过高或步态触发点设置不合理 | 看感知时间戳和控制动作时间戳 | 降低感知延迟,调整触发距离 |
| 训练策略不收敛 | 奖励函数设计不当或状态空间不够 | 查看奖励曲线和状态分布 | 改进奖励函数,补充关键状态 |
| 板端计算负载过高 | 感知模型太大或控制频率过高 | 用性能工具定位高占用进程 | 换成轻量模型,降低推理频率 |
| 全自主测试中出现意外停止 | 安全策略误触发 | 查看安全状态机和急停日志 | 调整安全策略阈值,改进状态切换逻辑 |
这些排查过程的关键是先定位“是哪一层出问题”:感知层输出不对,就优先查传感器和时间戳;决策层输出不合理,就查状态空间和策略;执行层跟踪不上,就查控制频率、电机响应和通信延迟。三层分开排查,比从头到尾乱调参高效得多。
8. 最佳实践与合规边界
8.1 工程化实践
- 先小参数验证链路。第一次先跑通 5 米直行,再逐步增加距离和速度,不要直接跑 20 米跨栏。
- 保留一套最小可运行配置。把“能稳定站立、能直线慢跑”的配置文件单独保存,遇到改动导致动作异常时快速回滚。
- 数据严格分目录。仿真数据、真机数据、遥操作数据要分开存储,避免混合影响训练效果。
- 批量训练加日志和失败重试。训练并行环境数量多时,单个环境崩溃不应中断整个训练任务。
- 参数版本管理。策略权重、控制参数、仿真参数都要有版本记录,否则改一次步态就再也回不到之前的表现。
8.2 安全边界
- 真机测试必须有急停机制。不管是硬件急停按钮还是遥控急停,必须放在测试人员随时可触达的位置。
- 测试场地必须有安全防护。机器人失控时的冲击力足以伤人,护栏范围要大于机器人的运动范围。
- 测试前做关节限位检查。确认每个关节的软限位和硬限位一致,避免运动轨迹超出机械结构允许范围。
- 涉及人机交互、比赛对抗、人员围观等场景,必须制定安全预案,并由具备资质的操作人员负责。
- 使用开源代码、仿真模型、赛事素材时,要确认授权范围和商用边界,遵守相应开源协议。
8.3 内容发布与数据合规
涉及赛事画面、机器人运动数据、第三方 SDK 的视频或文章,发布前要做合规检查。涉及人脸、身份、场地地理位置等隐私信息的,必须先脱敏。涉及未公开的赛事技术细节,以官方公开信息为准,不传播内部测试数据。
9. 总结与下一步
这一届中国人形机器人运动会最值得关注的点,是把“全自主”从一句宣传语变成了可以横向对比的赛事规则。机器人能不能自己找路、自己跨栏、自己保持平衡,所有问题都放到比赛里统一检验。对做技术的人来说,这件事的分量不亚于一次新的技术迭代:它意味着感知、决策、控制的集成能力,已经成了人形机器人赛道的基础门槛。
如果你想跟进这条技术线,建议先从仿真环境入手。不用急着考虑真机,先用开源机器人模型在 Isaac Sim 或 MuJoCo 里复现一个简单的直线跑动任务,测试 PPO 训练流程是否走通。训练一个稳定直行的策略,通常比你想的更耗时,这也是最容易劝退新人的一步。
最容易踩的坑有三个:一是把仿真训练当成终点,忽略 sim-to-real 的迁移;二是在感知、控制、决策三块同时调参,导致问题无法定位;三是忽视安全设计,在测试中依赖“运气”而不是系统化验证。
后续可以继续扩展的方向包括:多机器人协同竞赛、动态障碍环境下的实时重规划、高动态跑跳动作的迁移、以及人形机器人在工业和服务场景中的实际落地。人形机器人运动会的意义不在于比赛本身,而在于它把实验室里的技术标准放到了公开赛场上,让“全自主”真正成为可测量、可验证、可对比的技术目标。