Prevent division by zero in Ornstein–Uhlenbeck control noise.
PiperOrigin-RevId: 498753494 Change-Id: Ib43e165a4da524c12fab4ea05848b084b2e7713c
This commit is contained in:
committed by
Copybara-Service
parent
eb8389fead
commit
a173e01f42
+1
-1
@@ -330,7 +330,7 @@ void PhysicsLoop(mj::Simulate& sim) {
|
||||
// inject noise
|
||||
if (sim.ctrlnoisestd) {
|
||||
// convert rate and scale to discrete time (Ornstein–Uhlenbeck)
|
||||
mjtNum rate = mju_exp(-m->opt.timestep / sim.ctrlnoiserate);
|
||||
mjtNum rate = mju_exp(-m->opt.timestep / mju_max(sim.ctrlnoiserate, mjMINVAL));
|
||||
mjtNum scale = sim.ctrlnoisestd * mju_sqrt(1-rate*rate);
|
||||
|
||||
for (int i=0; i<m->nu; i++) {
|
||||
|
||||
Reference in New Issue
Block a user