# 云深处绝影 Lite3 / X30 强化学习步态策略 Sim2Real 迁移时小腿关节高频抖动

> 原文链接：https://robotics.hellobike.com/pitfalls/deep-robotics-lite3-rl-policy-pd-oscillation
> 频道：pitfalls | 更新日期：2026-10-21 | 标签：云深处, 绝影Lite3, 绝影X30, Sim2Real, 强化学习, PD增益
> 核心摘要：从 Lite3_rl_training 迁移策略至真机时，因执行器延迟未建模及观测角速度噪声放大导致小腿高频震颤的排查与滤波方法。

# 云深处绝影 Lite3 / X30 强化学习步态策略 Sim2Real 迁移时小腿关节高频抖动

## 硬件与软件环境
- **机型**：云深处 绝影 Lite3 / X30 四足机器人（12 自由度）
- **训练仓库**：`DeepRoboticsLab/Lite3_rl_training`（Isaac Gym / RSL-RL）

## 故障现象与报错
策略在 Isaac Gym 仿真中行走平稳，但通过 UDP/SDK 部署到绝影 Lite3 真机后：
1. 机器人站立或迈步腾空阶段，四个小腿（Shank/Calf）关节出现明显的 **20～40Hz 高频机械抖动与异响**；
2. 严重时触发底层驱动器过流或过温保护自动趴下。

## 根因分析
1. **仿真未开启通信与执行器延迟域随机化（Latency Domain Randomization）**：真机从上位机推理、UDP 通信到底层电机 FOC 环响应存在约 **8～15 ms** 的链路延迟；无延迟训练出的策略倾向于输出大幅度高频修正动作。
2. **动作平滑惩罚（Action Rate / Smoothness Reward）权重不足**：策略网络直接将带编码器量化噪声的关节角速度 `dof_vel` 乘以缩放系数输入 MLP，形成高频正反馈振荡环。

## 解决步骤
1. **在训练端启用 0～20ms 随机动作延迟与刚度随机化**：
   在 `legged_robot_config.py` 中开启 `domain_rand.randomize_Kp_factor = True`（0.85～1.15）、`randomize_Kd_factor = True`，并将前 1～2 步历史动作加入延迟队列模拟真机通信滞后。
2. **真机部署侧对输出目标角度加一阶指数滑动平均（EMA）滤波**：
   在 C++/Python 真机推理循环（通常 50Hz，底层插值 500Hz/1000Hz）中，对策略输出的 `action_t` 做平滑：
   ```python
   filtered_action = 0.7 * raw_action + 0.3 * prev_filtered_action
   target_q = default_dof_pos + action_scale * filtered_action
   ```
   同时将小腿关节的真机阻尼 `kd` 在仿真值基础上微调上浮 15%～20%（如从 `0.8` 调至 `1.0`），即可彻底消除腾空相高频震颤。

## 原始参考来源 (Sources)

- [GitHub DeepRoboticsLab/Lite3_rl_training](https://github.com/DeepRoboticsLab/Lite3_rl_training)