in gym_pusht/envs/pusht.py [0:0]
def _setup(self):
self.space = pymunk.Space()
self.space.gravity = 0, 0
self.space.damping = self.damping if self.damping is not None else 0.0
self.teleop = False
# Add walls
walls = [
self.add_segment(self.space, (5, 506), (5, 5), 2),
self.add_segment(self.space, (5, 5), (506, 5), 2),
self.add_segment(self.space, (506, 5), (506, 506), 2),
self.add_segment(self.space, (5, 506), (506, 506), 2),
]
self.space.add(*walls)
# Add agent, block, and goal zone
self.agent = self.add_circle(self.space, (256, 400), 15)
self.block, self._block_shapes = self.add_tee(self.space, (256, 300), 0)
self.goal_pose = np.array([256, 256, np.pi / 4]) # x, y, theta (in radians)
if self.block_cog is not None:
self.block.center_of_gravity = self.block_cog
# Add collision handling
self.collision_handeler = self.space.add_collision_handler(0, 0)
self.collision_handeler.post_solve = self._handle_collision
self.n_contact_points = 0