外观
踩坑github.com7 天前
云深处绝影 Lite3 / X30 强化学习步态策略 Sim2Real 迁移时小腿关节高频抖动
硬件与软件环境
- 机型:云深处 绝影 Lite3 / X30 四足机器人(12 自由度)
- 训练仓库:
DeepRoboticsLab/Lite3_rl_training(Isaac Gym / RSL-RL)
故障现象与报错
策略在 Isaac Gym 仿真中行走平稳,但通过 UDP/SDK 部署到绝影 Lite3 真机后:
- 机器人站立或迈步腾空阶段,四个小腿(Shank/Calf)关节出现明显的 20~40Hz 高频机械抖动与异响;
- 严重时触发底层驱动器过流或过温保护自动趴下。
根因分析
- 仿真未开启通信与执行器延迟域随机化(Latency Domain Randomization):真机从上位机推理、UDP 通信到底层电机 FOC 环响应存在约 8~15 ms 的链路延迟;无延迟训练出的策略倾向于输出大幅度高频修正动作。
- 动作平滑惩罚(Action Rate / Smoothness Reward)权重不足:策略网络直接将带编码器量化噪声的关节角速度
dof_vel乘以缩放系数输入 MLP,形成高频正反馈振荡环。
解决步骤
- 在训练端启用 0~20ms 随机动作延迟与刚度随机化: 在
legged_robot_config.py中开启domain_rand.randomize_Kp_factor = True(0.85~1.15)、randomize_Kd_factor = True,并将前 1~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_actionkd在仿真值基础上微调上浮 15%~20%(如从0.8调至1.0),即可彻底消除腾空相高频震颤。
来源
本页事实对应的公开页面,以原文为准。
- GitHub DeepRoboticsLab/Lite3_rl_training访问 2026-10-21