def build(self): testenv = Environment2D() # Add a shape to the 2D space. testenv.add_shapes( Line(np.asarray([-1, 0]), np.asarray([1, 0]), np.asarray([1, 0, 0, 1]))) # Set the agent's position to right of the circle. testenv.set_position(np.asarray([0.0, 2.0])) # Set rotation quanta in degrees. testenv.set_rot_amount(30) # Set the Forward and Right directions for the agent. testenv.set_directions(np.asarray([0.0, -1.0]), np.asarray([1.0, 0.0])) # Set the movement amount to 0.1 units per action. testenv.set_move_amount(0.4) return testenv
W = obs.shape[2]; # Convert the rest # TxNxC obs = obs.transpose([1, 0, 2, 3]).reshape([obs.shape[1], obs.shape[0] * obs.shape[2], obs.shape[3]]) # TxNxA acs = np.tile(acs.transpose([1, 0, 2]).reshape([acs.shape[1], acs.shape[0], 1, acs.shape[2]]), [1, 1, W, 1]) \ .reshape([acs.shape[1], acs.shape[0] * W, acs.shape[2]]) # TxNxS states = np.tile(states.transpose([1, 0, 2]).reshape([states.shape[1], states.shape[0], 1, states.shape[2]]), [1, 1, W, 1]) \ .reshape([states.shape[1], states.shape[0] * W, states.shape[2]]) return uvs, obs, acs, states testenv = Environment2D() # Add a shape to the 2D space. testenv.add_shapes( Line( np.asarray([-1,0]), np.asarray([1,0]), np.asarray([1,0,0,1])) ) # Set the agent's position to right of the circle. testenv.set_position( np.asarray([0.0,2.0]) ) # Set rotation quanta in degrees. testenv.set_rot_amount( 30 ) # Set the Forward and Right directions for the agent. testenv.set_directions( np.asarray([0.0,-1.0]), np.asarray([1.0,0.0]) ) # Set the movement amount to 0.1 units per action. testenv.set_move_amount( 0.4 ) #outputss = sample_lines( testenv ) outputss = sample_paths( testenv )