in gym-compete/gym_compete/new_envs/sumo.py [0:0]
def _get_obs(self):
obs = []
dists = []
for i in range(self.n_agents):
xy = self.agents[i].get_qpos()[:2]
r = np.sqrt(np.sum(xy**2))
d = self.RADIUS - r
# print(r, d)
dists.append(d)
for i in range(self.n_agents):
ob = self.agents[i]._get_obs()
mydist = np.asarray(dists[i])
if self.n_agents == 1:
other_dist = np.asarray(self.RADIUS)
elif self.n_agents == 2:
other_dist = np.asarray(dists[1-i])
else:
other_dist = np.asarray([dists[j] for j in range(self.n_agents) if j != i])
ob = np.concatenate(
[ob.flat, np.asarray(self.RADIUS).flat,
mydist.flat, other_dist.flat,
np.asarray(self._max_episode_steps - self._elapsed_steps).flat
]
)
obs.append(ob)
return tuple(obs)