def slamming_test(ser): for iteration in range(SLAMMING_ITERATIONS): for actuator in range(5): if iteration % 2 is 0: send_angles[actuator] = MIN_ACTUATOR_ANGLE else: send_angles[actuator] = MAX_ACTUATOR_ANGLE set_servo_angles(ser, send_angles) time.sleep(SLAMMING_DELAY) if __name__ == '__main__': ser = init_serial() print('Starting stress test') # # print('Starting sine test') # sine_test() # print('Finished sine test') # # time.sleep(1) # print('Starting vibration test') vibration_test(ser) print('Finished vibration test') # time.sleep(1) # # print('Starting slamming test')
def __init__(self): self.count = 0 self._seed() self.viewer = None # to be used later for rendering self.prev_state = None # Load camera config try: f_cam_conf = open(CAMERA_CONFIG_FILENAME, 'r') CAMERA_CONFIG.from_dict(json.load(f_cam_conf)) f_cam_conf.close() print('Loaded camera config from \'' + CAMERA_CONFIG_FILENAME + '\'') except IOError: print('Camera config not found, using default config\n') # print(json.dumps(camera_config.to_dict(), sort_keys=True, indent=4)) # Load tracking parameters self.ouc_params = capture.TrackParams() self.actuator_params = capture.TrackParams() try: ouc_params_f = open(OUC_PARAMS_FILENAME, 'r') self.ouc_params.from_dict(json.load(ouc_params_f)) ouc_params_f.close() print('Loaded OUC params from \'' + OUC_PARAMS_FILENAME + '\'') except IOError: print('OUC params not found, stopping...\n') exit(1) try: actuator_params_f = open(ACTUATOR_PARAMS_FILENAME, 'r') self.actuator_params.from_dict(json.load(actuator_params_f)) actuator_params_f.close() print('Loaded OUC params from \'' + ACTUATOR_PARAMS_FILENAME + '\'') except IOError: print('OUC params not found, stopping...\n') exit(1) self.camera_capture = None # Initialize hardware devices self.arena_camera = capture.init_camera(CAMERA_CONFIG) capture.camera_skip_frames(self.arena_camera, CAMERA_CONFIG) self.serial = hardware_interface.init_serial() zero_state = [0, 0, 0, 0, 0, 0, 0] self.previous_pos = zero_state # Observation Space # [object posx, object posy, actuator1 pos.y, ... , actuator5 pos.y, actuator1 speed.y, ... , actuator5 speed.y] high = np.array([np.inf] * 16) self.observation_space = spaces.Box(low=-high, high=high) # Continuous action space; one for each linear actuator (5 total) # action space represents velocity self.action_space = spaces.Box(-1, 1, (5, )) self.prev_shaping = None # for reward calculation self.time_previous = None self.ouc_ui_pos = (0, 0) self.actuators_ui_pos = [(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)] self._reset()