Prevent division by zero in Ornstein–Uhlenbeck control noise.

PiperOrigin-RevId: 498753494
Change-Id: Ib43e165a4da524c12fab4ea05848b084b2e7713c
This commit is contained in:
Kevin Zakka
2022-12-31 10:28:11 -08:00
committed by Copybara-Service
parent eb8389fead
commit a173e01f42
4 changed files with 7 additions and 2 deletions
+2 -1
View File
@@ -136,7 +136,8 @@ def _physics_loop(simulate: Simulate, loader: Optional[_InternalLoaderType]):
# Inject noise.
if simulate.ctrlnoisestd != 0.0:
# Convert rate and scale to discrete time (OrnsteinUhlenbeck).
rate = math.exp(-m.opt.timestep / simulate.ctrlnoiserate)
rate = math.exp(-m.opt.timestep /
max(simulate.ctrlnoiserate, mujoco.mjMINVAL))
scale = simulate.ctrlnoisestd * math.sqrt(1 - rate * rate)
for i in range(m.nu):