in robosumo/envs/sumo.py [0:0]
def reset_model(self):
self._num_steps = 0
# Randomize agent positions
r, z = 1.15, 1.25
delta = (2. * np.pi) / self._n_agents
phi = self.np_random.uniform(0., 2. * np.pi)
for i, agent in enumerate(self.agents):
angle = phi + i * delta
x, y = r * np.cos(angle), r * np.sin(angle)
agent.set_xyz((x, y, z))
# Add noise to all qpos and qvel elements
pos_noise = self.np_random.uniform(
size=self.model.nq,
low=-self._init_pos_noise,
high=self._init_pos_noise)
vel_noise = self._init_vel_noise * \
self.np_random.randn(self.model.nv)
qpos = self.data.qpos.ravel() + pos_noise
qvel = self.data.qvel.ravel() + vel_noise
self.init_qpos, self.init_qvel = qpos, qvel
self.set_state(qpos, qvel)
return self._get_obs()