MATLAB File Help: HebiKinematics/getInverseKinematics
HebiKinematics/getInverseKinematics
  getInverseKinematics (getIK) calculates positions for a 
  desired end effector pose.  
 
    This method computes the joint positions associated to a 
    desired end-effector configuration. The end effector is 
    assumed to be the last body in the kinematic chain. 
 
    getInverseKinematics uses a gradient-descent based local 
    optimizer to find a valid configuration.  
 
    'InitialPositions' ('Initial') provides the seed for the
    numerical optimization. IT IS HIGHLY RECOMMENDED THAT YOU 
    SPECIFY SEED POSITIONS, AND A FUTURE VERSION OF THE API
    WILL MAKE THIS A REQUIRED PARAMETER.       
 
    There are a variety of optimization criteria that can be 
    combined depending on the application. Available parameters 
    include:
 
       Parameter       EndEffector Target      Size / Units
 
       'XYZ'           xyz position in [m]     3x1 in [m]
 
       'TipAxis'       z-axis orientation      3x1 unit vector
                       of the last body in
                       in chain [unit vector]
 
       'SO3'           3-DoF orientation       3x3 rotation 
                                                   matrix
 
       Note that 'XYZ' supports NaN for dimensions that 
       should be ignored. For example, a planar arm may use
       the target position of [x y NaN].
 
       All target positions and orientations are expressed in
       the base frame.
 
    'MaxIterations' ('MaxIter') sets the maximum allowed
    iterations of the numerical optimization before returning.
    This can prevent IK from taking a long time to run, at the
    expense of solutions that are potentially less accurate.
    The default value is 150 iterations. 
 
    Examples:
       % Inverse kinematics for a 3-DoF arm, specifying initial 
       % joint angle positions.
       xyz = [0.2 0.1 0.0];
       initialJointAngs = [0 -pi/4 pi/2];
       waypoints = kin.getInverseKinematics( 'XYZ', xyz, ...
                     'IntialPositions', initialJointAngs );
 
       % Inverse kinematics for a 5-DoF arm, specifying initial 
       % joint angle positions.
       xyz = [0.2 0.1 0.0];
       tipAxis = [0 0 -1];  % end effector points straight down
       initialJointAngs = [0 -pi/4 pi/2 pi/4 0];
       waypoints = kin.getIK( 'XYZ', xyz, ... 
                              'TipAxis', tipAxis, ...
                              'initial', initialJointAngs );
 
       % Inverse kinematics for full 6-DoF arm, using the
       % latest feedback as the seed position for IK.     
       xyz = [0.3 -0.1 0.2];
       rotMatrix = eye(3);
       fbk = group.getNextFeedback();
       positions = kin.getIK( 'XYZ', xyz, ...
                              'SO3', rotMatrix, ...
                              'initial', fbk.position );
See also
Method Details
Access public
Sealed false
Static false