in robogym/wrappers/randomizations.py [0:0]
def observation(self, observation):
# update nonfrozen observations for all markers.
if self._freeze_left <= 0:
for k in self._keys:
self._obs_buffer[k] = observation[k].copy()
# update freeze_left
self._freeze_left = max(self._freeze_left - 1, 0)
does_freeze = self.unwrapped._random_state.random_sample() < self._disappear_p
new_freeze_len = np.round(
self.unwrapped._random_state.exponential(scale=self._freeze_scale_steps)
)
self._freeze_left = (
1 - does_freeze
) * self._freeze_left + does_freeze * new_freeze_len
new_observation = OrderedDict()
for key in observation:
new_observation[key] = (
self._obs_buffer[key].copy() if key in self._keys else observation[key]
)
return new_observation