【免费下载链接】GEAR-SONIC
GEAR-SONIC 是 NVIDIA 推出的自然人形机器人全身控制(Whole-Body Control)基础模型,仅凭一套统一策略就能驱动 Unitree G1 完成行走、跑步、跳跃、匍匐与双手操作。它的关键,就藏在训练配置中的奖励函数(rewards)、终止条件(terminations)与域随机化(domain randomization)三者的协同设计里。本文带你完整拆解这三者如何共同塑造出一个"既精准跟踪、又丝滑自然、还 sim-to-real 鲁棒"的运动策略。
一、先看整体:策略网络在整个管线中的位置
上图是 SONIC 的端到端数据流:输入接口(键盘/手柄/VR)或 Kinematic Planner 生成运动参考,Motion Manager 组织成多帧未来目标,最后交给由强化学习训练出的Policy网络输出关节动作。Policy 的"性格"——多精准、多平滑、多抗扰动——完全由训练时的奖励、终止与随机化配置决定。
三个官方 checkpoint 均附带完整训练配置,可直接打开研读:
- 默认版:sonic_release/config.yaml
- 低延迟遥操版:low_latency/config.yaml
- v1.1 版:sonic_v1_1/config.yaml
训练平台为 Isaac Lab(
sim_type: isaacsim),采用 PPO + 4096 并行环境(num_envs: 4096),sim_dt: 0.005、decimation: 4,对应 50 Hz 控制频率。
二、跟踪误差奖励:用"高斯衰减"搭出容差漏斗
SONIC 的奖励主体是 6 项"跟踪误差"奖励,全部以高斯衰减形式计算(误差越小奖励越接近 1,std即容差带宽):
| 奖励项 | 权重 | std(容差) | 作用 |
|---|---|---|---|
tracking_vr_5point_local | +2.0 | 0.1 | 躯干 + 双腕等 5 个关键点位置,权重最高 |
tracking_relative_body_pos | +1.0 | 0.3 | 14 个身体部位相对位置 |
tracking_relative_body_ori | +1.0 | 0.4 | 身体部位相对朝向 |
tracking_body_linvel | +1.0 | 1.0 | 身体线速度 |
tracking_body_angvel | +1.0 | 3.14 | 身体角速度 |
tracking_anchor_pos/tracking_anchor_ori | +0.5 | 0.3 / 0.4 | 骨盆(锚点)位置与朝向 |
tracking_vr_2wrists_local_ori | +0.4 | 0.1 | 双腕朝向(低延迟版 / v1.1) |
权重梯度设计意图一目了然:上肢关键点(操作精度)> 身体相对位姿 > 整体速度 > 骨盆锚点;std则按任务难度从 0.1(腕部毫米级精度)放宽到 3.14(角速度大幅容差),形成一条"容差漏斗"。
完整定义见 low_latency/config.yaml#L624-L737。
三、防抖惩罚:让动作"丝滑"而不是"抽搐"
高跟踪权重天然会催生高频抖动——策略用快速小幅摆动去"硬凑"误差。SONIC 用一组负权重平滑项与之对冲:
| 惩罚项 | 权重 | 关键参数 | 抑制对象 |
|---|---|---|---|
anti_shake_ang_vel | −0.005 | 阈值 1.5,作用于左右腕 +head_link | 腕部/头部高频抖动(遥操观感的关键) |
action_rate_l2 | −0.1 | 全关节 | 相邻步动作跳变,整体平滑 |
feet_acc | −2.5e−6 | 仅*ankle*关节 | 脚踝加速度冲击,减少顿挫 |
undesired_contacts | −0.1 | 力阈值 1 N,脚/腕/肘豁免 | 膝、肘、躯干等意外落地碰撞 |
joint_limit | −10.0 | 全部 29 自由度 | 逼近期望限位,最强硬约束 |
energy_consumption | −0.0001 | 全机器人 | 能耗(低延迟版特有) |
注意anti_shake_ang_vel的"阈值 1.5":只有当腕/头角速度显著超过参考的部分才被惩罚,慢动作不受影响。这正是"跟踪精度"与"观感自然"之间的精细权衡——5 点位置拿 2.0 的高权重保精度,防抖拿 1.5 的高阈值保自然。
四、终止条件:五道"失败边界"闸门
奖励告诉策略"哪里更好",终止条件则定义"哪里算失败",episode 立即结束并重置,形成离散负信号:
| 终止项 | 阈值 | 触发逻辑 |
|---|---|---|
anchor_pos | 0.15 m(自适应) | 骨盆相对参考高度偏差过大(摔倒/下坠) |
anchor_ori_full | 0.2 rad | 骨盆朝向倾斜过度 |
ee_body_pos | 0.15 m(自适应) | 双脚或双腕偏离参考位 |
foot_pos_xyz | 0.2 m | 双脚位置偏差超限 |
time_out | — | 动作片段正常播完(非失败) |
见 low_latency/config.yaml#L738-L786。
亮点是threshold_adaptive: true配合down_threshold: 0.75与root_height_threshold: 0.5:当参考动作本身"趴得低"(如匍匐、下蹲起身)时,绝对高度差阈值会自适应放宽,避免策略被"合理但贴地"的动作误杀。配合 10 sepisode_length_s,让低难度片段能完整跑通以积累正样本。
五、域随机化:铺平 Sim-to-Real 的"鲁棒性保险"
奖励与终止定义了任务本身,域随机化则保证策略在真机上面对传感器噪声、执行器漂移、载荷变化时依然可靠。SONIC 的随机化分两层:
1) 物理层事件(events,启动时生效):
| 事件 | 随机范围 | 应对的真实差异 |
|---|---|---|
physics_material | 静摩擦 0.3–1.6、动摩擦 0.3–1.2、恢复系数 0–0.5 | 地毯 / 瓷砖 / 木地板 |
add_joint_default_pos | 全关节 ±0.01 rad | 关节零点装配漂移 |
base_com | 躯干质心 x ±0.025、y/z ±0.05 m | 电池与载荷分布 |
randomize_rigid_body_mass | 手腕 / 躯干质量 ×0.8–2.5 | 手持工具、背包 |
2) 外力扰动(仅训练时生效,train_only_events):
push_robot:每 4–6 秒给基座注入一次随机速度(x/y ±0.5、z ±0.2 m/s,yaw 角速度 ±0.78 rad/s),模拟人碰撞、踢碰等意外;评估时关闭,避免干扰评测。
3) 参考命令增广(commands.motion):位置 ±0.05 m、yaw ±0.2 rad、速度 ±0.5 m/s、关节 ±0.1 rad,并开启freeze_frame_aug(冻结帧增广)与 0.5 概率上肢姿态融合,让策略学会"容忍不完美参考"。见 low_latency/config.yaml#L787-L880 与 low_latency/config.yaml#L337-L380。
此外,训练启用修正版自适应采样(adaptive_sampling,bin_size: 50、uniform_sampling_rate: 0.1、pre_failure_sample_window: 200):失败会被归因到重置前跟踪的动作游标所在片段,系统自动对高失败率片段加权过采样——难例学得快,收敛效率显著提升。
六、三者协同:一套"塑形 — 边界 — 鲁棒"闭环
把三层设计叠在一起看,分工非常清晰:
- 奖励函数做连续塑形:高斯衰减 + 权重梯度,把"像人一样自然"量化为可微的优化目标;
- 终止条件设离散边界:摔倒、倾倒、脚腕失控立即断 episode,防止策略学到"晃着也能活"的坏梯度;
- 域随机化拓宽分布:摩擦、质量、外力、参考噪声全维度扰动,迫使策略学到对失配鲁棒而非"背答案"。
三者互为制衡:没有终止,奖励会奖励"摇摇晃晃但不倒"的投机解;没有防抖惩罚,高跟踪权重必然产出抽搐动作;没有域随机化,训练曲线漂亮的策略一上真机就翻车。GEAR-SONIC 正是靠这套闭环,让一个策略统一覆盖行走、奔跑、匍匐、跳跃与双手协作,成为可落地的人形全身控制基础模型。
七、相关文件速查
| 文件 | 用途 |
|---|---|
| low_latency/config.yaml | 低延迟变体完整训练配置(奖励 / 终止 / 事件) |
| low_latency/observation_config.yaml | 低延迟观测定义 |
| low_latency/model_config.yaml | 低延迟网络结构 |
| sonic_release/config.yaml | 默认变体训练配置 |
| sonic_v1_1/config.yaml | v1.1 头向归一化变体配置 |
| config.json | 官方发布清单(下载入口) |
【免费下载链接】GEAR-SONIC
相关推荐
WeClone重复惩罚机制:repetition_penalty防止循环响应
WeClone重复惩罚机制:repetition_penalty防止循环响应 在大语言模型的实际应用中,重复响应(Repetitive Response)是一个
人工智能大模型微调LoRA240+ 国家邮编格式如何校验?libaddressinput RE2 正则引擎实战解析
240+ 国家邮编格式如何校验?libaddressinput RE2 正则引擎实战解析 引言:一个让开发者头疼的全球难题 🌍 不同国家的邮编格式差异巨大:美
rLLM奖励函数设计:如何为智能体定制高效奖励机制
rLLM奖励函数设计:如何为智能体定制高效奖励机制 在强化学习驱动的大语言模型(rLLM)项目中,奖励函数设计是决定智能体学习效果的关键因素。本文将深入探讨rL
AI Agent强化学习大模型模型评测
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考