in robosumo/envs/agents.py [0:0]
def get_obs(self):
# Observe self
self_forces = np.abs(np.clip(
self.get_cfrc_ext(), -self.CFRC_CLIP, self.CFRC_CLIP))
obs = [
self.get_qpos().flat, # self all positions
self.get_qvel().flat, # self all velocities
self_forces.flat, # self all forces
]
# Observe opponents
for opp in self._opponents:
body_ids = [
opp.body_name_idx[name]
for name in ['torso']
if name in opp.body_name_idx
]
opp_forces = np.abs(np.clip(
opp.get_cfrc_ext(body_ids), -self.CFRC_CLIP, self.CFRC_CLIP))
obs.extend([
opp.get_qpos()[:7].flat, # opponent torso position
opp_forces.flat, # opponent torso forces
])
return np.concatenate(obs)