def shmem_client_send_env_id(self):
"""
Multiplayer Scene can support multiple kinds of environments (robots, actors).
For example, Stadium supports Hopper and Ant.
On server side, environment of the same type should be created. To do
that, we send env_id over pipe.
Obervations, actions must have size matching that on server. So we open shared memory
files at this point, after server created those files based on knowledge it now has,
and sent "accepted" back here.
"""
os.write(self.sh_pipe_actready, (self.spec.id + "\n").encode("ascii"))
check = self.sh_pipe_obsready.readline()[:-1]
assert(check=="accepted")
self.sh_obs = np.memmap(self.prefix + "_obs", mode="r+", shape=self.observation_space.shape, dtype=np.float32)
self.sh_act = np.memmap(self.prefix + "_act", mode="r+", shape=self.action_space.shape, dtype=np.float32)
self.sh_rew = np.memmap(self.prefix + "_rew", mode="r+", shape=(1,), dtype=np.float32)
self.sh_rgb = np.memmap(self.prefix + "_rgb", mode="r+", shape=(self.VIDEO_H,self.VIDEO_W,3), dtype=np.uint8)
评论列表
文章目录