Example #1
0

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()