KDL::ChainIkSolverVel_pinv_nso Class Reference

Implementation of a inverse velocity kinematics algorithm based on the generalize pseudo inverse to calculate the velocity transformation from Cartesian to joint space of a general KDL::Chain. More...

#include <chainiksolvervel_pinv_nso.hpp>

Inheritance diagram for KDL::ChainIkSolverVel_pinv_nso:
KDL::ChainIkSolverVel

List of all members.

Public Member Functions

virtual int CartToJnt (const JntArray &q_init, const FrameVel &v_in, JntArrayVel &q_out)
 not (yet) implemented.
virtual int CartToJnt (const JntArray &q_in, const Twist &v_in, JntArray &qdot_out)
 Calculate inverse velocity kinematics, from joint positions and cartesian velocity to joint velocities.
 ChainIkSolverVel_pinv_nso (const Chain &chain, double eps=0.00001, int maxiter=150, int alpha=0.25)
 ChainIkSolverVel_pinv_nso (const Chain &chain, JntArray opt_pos, JntArray weights, double eps=0.00001, int maxiter=150, int alpha=0.25)
 Constructor of the solver.
virtual int setAlpha (const int alpha)
 Set null psace velocity gain.
virtual int setOptPos (const JntArray &opt_pos)
 Set optimal joint positions.
virtual int setWeights (const JntArray &weights)
 Set joint weights for optimization criterion.
 ~ChainIkSolverVel_pinv_nso ()

Detailed Description

Implementation of a inverse velocity kinematics algorithm based on the generalize pseudo inverse to calculate the velocity transformation from Cartesian to joint space of a general KDL::Chain.

It uses a svd-calculation based on householders rotations.

In case of a redundant robot this solver optimizes the the following criterium: g=0.5*sum(weight*(Desired_joint_positions - actual_joint_positions))^2 as described in A. Liegeois. Automatic supervisory control of the configuration and behavior of multibody mechnisms. IEEE Transactions on Systems, Man, and Cybernetics, 7(12):868–871, 1977

Definition at line 46 of file chainiksolvervel_pinv_nso.hpp.


Constructor & Destructor Documentation

KDL::ChainIkSolverVel_pinv_nso::ChainIkSolverVel_pinv_nso ( const Chain chain,
JntArray  opt_pos,
JntArray  weights,
double  eps = 0.00001,
int  maxiter = 150,
int  alpha = 0.25 
)

Constructor of the solver.

Parameters:
chain the chain to calculate the inverse velocity kinematics for
opt_pos the desired positions of the chain used by to resolve the redundancy
weights the weights applied in the joint space
eps if a singular value is below this value, its inverse is set to zero, default: 0.00001
maxiter maximum iterations for the svd calculation, default: 150
alpha the null-space velocity gain

Definition at line 26 of file chainiksolvervel_pinv_nso.cpp.

KDL::ChainIkSolverVel_pinv_nso::ChainIkSolverVel_pinv_nso ( const Chain chain,
double  eps = 0.00001,
int  maxiter = 150,
int  alpha = 0.25 
)

Definition at line 44 of file chainiksolvervel_pinv_nso.cpp.

KDL::ChainIkSolverVel_pinv_nso::~ChainIkSolverVel_pinv_nso (  ) 

Definition at line 60 of file chainiksolvervel_pinv_nso.cpp.


Member Function Documentation

virtual int KDL::ChainIkSolverVel_pinv_nso::CartToJnt ( const JntArray q_init,
const FrameVel v_in,
JntArrayVel q_out 
) [inline, virtual]

not (yet) implemented.

Implements KDL::ChainIkSolverVel.

Definition at line 72 of file chainiksolvervel_pinv_nso.hpp.

int KDL::ChainIkSolverVel_pinv_nso::CartToJnt ( const JntArray q_in,
const Twist v_in,
JntArray qdot_out 
) [virtual]

Calculate inverse velocity kinematics, from joint positions and cartesian velocity to joint velocities.

Parameters:
q_in input joint positions
v_in input cartesian velocity
qdot_out output joint velocities
Returns:
if < 0 something went wrong

Implements KDL::ChainIkSolverVel.

Definition at line 65 of file chainiksolvervel_pinv_nso.cpp.

References KDL::SVD_HH::calculate(), KDL::Jacobian::columns(), KDL::ChainJntToJacSolver::JntToJac(), and KDL::Jacobian::rows().

int KDL::ChainIkSolverVel_pinv_nso::setAlpha ( const int  alpha  )  [virtual]

Set null psace velocity gain.

Parameters:
alpha NUllspace velocity cgain

Definition at line 139 of file chainiksolvervel_pinv_nso.cpp.

int KDL::ChainIkSolverVel_pinv_nso::setOptPos ( const JntArray opt_pos  )  [virtual]

Set optimal joint positions.

Parameters:
opt_pos optimal joint positions

Definition at line 134 of file chainiksolvervel_pinv_nso.cpp.

int KDL::ChainIkSolverVel_pinv_nso::setWeights ( const JntArray weights  )  [virtual]

Set joint weights for optimization criterion.

Parameters:
weights the joint weights

Definition at line 129 of file chainiksolvervel_pinv_nso.cpp.


The documentation for this class was generated from the following files:

Generated on Wed Nov 23 19:02:16 2011 for FreeCAD by  doxygen 1.6.1