Exemplo n.º 1
0
def get_controller(controller_name):
    """
    Gets the correct controller from controllers.py

    Parameters
    ----------
    controller_name : string

    Returns
    -------
    :obj:`Controller`
    """
    if controller_name == 'workspace':
        # YOUR CODE HERE
        Kp = vec(0, 0, 0, 0, 0, 0)
        Kv = vec(.5, .5, .5, 2, 2, 2)
        controller = PDWorkspaceVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'jointspace':
        # YOUR CODE HERE
        Kp = vec(5,   10,  2.5, 7.5, 1.5,  4,   3)
        Kv = vec(0.4, 1.6, 0.2, 1.2, .12, .32, .24)
        controller = PDJointVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'torque':
        # YOUR CODE HERE
        Kp = None
        Kv = None
        controller = PDJointTorqueController(limb, kin, Kp, Kv)
    elif controller_name == 'open_loop':
        controller = FeedforwardJointVelocityController(limb, kin)
    else:
        raise ValueError('Controller {} not recognized'.format(controller_name))
    return controller
Exemplo n.º 2
0
def get_controller(controller_name, limb, kin):
    """
    Gets the correct controller from controllers.py

    Parameters
    ----------
    controller_name : string

    Returns
    -------
    :obj:`Controller`
    """
    if controller_name == 'workspace':
        # YOUR CODE HERE
        Kp = None
        Kv = None
        controller = WorkspaceVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'jointspace':
        # YOUR CODE HERE
        Kp = None
        Kv = None
        controller = PDJointVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'torque':
        # YOUR CODE HERE
        Kp = None
        Kv = None
        controller = PDJointTorqueController(limb, kin, Kp, Kv)
    elif controller_name == 'open_loop':
        controller = FeedforwardJointVelocityController(limb, kin)
    else:
        raise ValueError(
            'Controller {} not recognized'.format(controller_name))
    return controller
Exemplo n.º 3
0
def get_controller(controller_name):
    """
    Gets the correct controller from controllers.py

    Parameters
    ----------
    controller_name : string

    Returns
    -------
    :obj:`Controller`
    """
    if controller_name == 'workspace':
        # YOUR CODE HERE
        Kp = np.array([0.7, 0.5, 0.7, 0.7, 0.7, 0.7])
        Kv = np.ones(7) * 0.01
        Kv = np.zeros(6)
        controller = PDWorkspaceVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'jointspace':
        # YOUR CODE HERE

        Kp = np.array([0.5, 0.65, 0.65, 0.65, 0.1, 0.1, 0.65])
        Kv = np.ones(7) * 0.01

        controller = PDJointVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'torque':
        Kp = np.array([100, 100, 100, 100, 100, 100, 100]) * 1.5
        Kv = np.array([25, 25, 25, 25, 25, 25, 25]) * 0.75
        controller = PDJointTorqueController(limb, kin, Kp, Kv)
    elif controller_name == 'open_loop':
        controller = FeedforwardJointVelocityController(limb, kin)
    else:
        raise ValueError(
            'Controller {} not recognized'.format(controller_name))
    return controller
Exemplo n.º 4
0
def get_controller(controller_name):
    """
    Gets the correct controller from controllers.py

    Parameters
    ----------
    controller_name : string

    Returns
    -------
    :obj:`Controller`
    """
    if controller_name == 'workspace':
        # YOUR CODE HERE
        # start pos: [0.5839751304446147, 0.629241775857017, 0.4323214883062389]
        Kp = [1., 0.7, 1., 0., 0., 0.]
        Kv = [0., 0., 0., 0., 0., 0.]
        controller = PDWorkspaceVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'jointspace':
        # YOUR CODE HERE
        Kp = [0.1, 0.1, 0.1, 0.05, 0.05, 0.05, 0.05]
        Kv = [0., 0., 0., 0., 0., 0., 0.]
        controller = PDJointVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'torque':
        # YOUR CODE HERE
        Kp = [20., 20., 20., 10., 10., 10., 5.]
        Kv = [5., 3., 5., 3., 1., 1., 1.]
        controller = PDJointTorqueController(limb, kin, Kp, Kv)
    elif controller_name == 'open_loop':
        controller = FeedforwardJointVelocityController(limb, kin)
    else:
        raise ValueError(
            'Controller {} not recognized'.format(controller_name))
    return controller
Exemplo n.º 5
0
def get_controller(controller_name):
    """
    Gets the correct controller from controllers.py

    Parameters
    ----------
    controller_name : string

    Returns
    -------
    :obj:`Controller`
    """
    if controller_name == 'workspace':
        # YOUR CODE HERE
        # limb and kin get set in call to main
        kp_ind = .1
        kv_ind = 0
        Kp = np.array([kp_ind, kp_ind, kp_ind, kp_ind, kp_ind, kp_ind])  #1
        Kv = np.array([kv_ind, kv_ind, kv_ind, kv_ind, kv_ind, kv_ind])
        controller = PDWorkspaceVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'jointspace':
        # YOUR CODE HERE
        Kp = np.array([1, 1, 1, 1, 1, 1, 1])
        Kv = np.array([0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1])
        controller = PDJointVelocityController(limb, kin, Kp, Kv)
    elif controller_name == 'torque':
        # YOUR CODE HERE
        kp_ind = 15
        Kp = np.array([30, 30, kp_ind, kp_ind, kp_ind, 10, 10])
        Kv = np.array([3, 1, 1, 1, 1, 1, 1])
        controller = PDJointTorqueController(limb, kin, Kp, Kv)
    elif controller_name == 'open_loop':
        controller = FeedforwardJointVelocityController(limb, kin)
    else:
        raise ValueError(
            'Controller {} not recognized'.format(controller_name))
    return controller