min_u = -0.2 * grav
    sys_params['max_u'] = max_u
    sys_params['min_u'] = min_u
    dynamics = partial(double_integrator, **sys_params)

    #model 2 (modified thrust)
    sys_params = {}  # parameters of dynamical system
    max_u = 0.8 * grav
    min_u = -0.8 * grav
    sys_params['max_u'] = max_u
    sys_params['min_u'] = min_u
    dynamics_2 = partial(double_integrator, **sys_params)

    # Construct avoid region, system should stay within hypercube
    cube_lims = np.array([[0, -3], [4, 3]])
    avoid_func = lambda x: hypercube_int(x, cube_lims=cube_lims)

    # Make MDP
    lamb = 0.1  #lambda
    my_world = Avoid(num_nodes,
                     s_lims,
                     num_nodes_a,
                     a_lims,
                     dynamics,
                     avoid_func,
                     lamb=lamb)

    my_world_2 = Avoid(num_nodes,
                       s_lims,
                       num_nodes_a,
                       a_lims,
Exemple #2
0
    grav = 9.81  # gravity
    sys_params = {}  # parameters of dynamical system
    max_u = 0.2 * grav
    min_u = -0.2 * grav
    sys_params['max_u'] = max_u
    sys_params['min_u'] = min_u
    dynamics = partial(double_integrator, **sys_params)

    # Construct avoid region, system should stay within hypercube
    cube_lims = np.array([[0, -3], [4, 3]])
    nose_lims = np.array([[1.75, -0.25], [2.25, 0.25]])
    lips_lims = np.array([[0, -3], [4, -2.5]])
    left_eye_center = np.array([0.75, 2])
    right_eye_center = np.array([3.25, 2])
    radius = 0.25
    avoid_func = lambda x: hypercube_int(x, cube_lims=cube_lims)
    face_func = lambda x: hypersphere_ext(x, np.array([2, 0]), 4)
    lip_func = lambda x: -hypercube_int(x, lips_lims)
    nose_func = lambda x: -hypercube_int(x, nose_lims)
    left_eye_func = lambda x: hypersphere_ext(x, left_eye_center, radius)
    right_eye_func = lambda x: hypersphere_ext(x, right_eye_center, radius)

    union_func = union(shapes=[left_eye_func, right_eye_func])

    # With discounting
    lamb = 0.1  # lambda
    my_world = Avoid(num_nodes,
                     s_lims,
                     num_nodes_a,
                     a_lims,
                     dynamics,