YouDuck.ai

域随机化

最后更新

域随机化指在训练时随机化仿真的物理参数,使策略不依赖任何一组特定参数。

microduck_rl 逐环境随机化这四个量:

随机化对象 为什么是它
电池电压 满电和快没电的鸭子,舵机能出的力矩不一样
负载下的电压跌落 多个舵机同时发力时电压会塌,直接影响步态
指令延迟 真实控制链路有延迟,策略必须对此鲁棒
摩擦力大小 个体差异与磨损

实现是 src/mjlab_microduck/actuator/ 里的 FrictionDRBamActuator

和「加噪声」的区别

这是最容易混的一点:

随机化物理参数:每个并行环境里的机器人本身就不一样——这台电压高一点,那台摩擦大一点。策略必须学会一套在整个参数分布上都成立的控制方式。

往观测里加高斯噪声:机器人是同一台,只是策略看到的读数有抖动。策略学会的是「忽略噪声」,而不是「适应不同的机器」。

后者对传感器噪声有用,但解决不了 sim2real 的核心问题——真机和仿真的差异不是噪声,是系统性的参数偏移。

代价

随机化范围越大,策略越鲁棒,但性能上限越低——它必须为最差的情况留余量。范围设多宽是一个需要实验的取舍,不是越大越好。