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
@@ -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 (Ornstein–Uhlenbeck).
|
||||
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):
|
||||
|
||||
Reference in New Issue
Block a user