| 99 | self.resets_tensor = gymtorch.wrap_tensor(self.task.resets_tensor, counts=(self.task.num_envs,)) |
| 100 | |
| 101 | def step(self, actions): |
| 102 | self.task.render(False) |
| 103 | actions_clipped = torch.clamp(actions, -self.clip_actions, self.clip_actions) |
| 104 | actions_tensor = gymtorch.unwrap_tensor(actions_clipped) |
| 105 | |
| 106 | self.task.step(actions_tensor) |
| 107 | |
| 108 | return torch.clamp(self.obs_tensor, -self.clip_obs, self.clip_obs), self.rewards_tensor, self.resets_tensor, [] |
| 109 | |
| 110 | def reset(self): |
| 111 | actions = 0.01 * (1 - 2 * torch.rand([self.task.num_envs, self.task.num_actions], dtype=torch.float32, device=self.rl_device)) |