$search

KDL::ChainIkSolverVel_pinv_nso Class Reference
[Kinematic Families]

#include <chainiksolvervel_pinv_nso.hpp>

Inheritance diagram for KDL::ChainIkSolverVel_pinv_nso:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual int CartToJnt (const JntArray &q_init, const FrameVel &v_in, JntArrayVel &q_out)
virtual int CartToJnt (const JntArray &q_in, const Twist &v_in, JntArray &qdot_out)
 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)
virtual int setAlpha (const int alpha)
virtual int setOptPos (const JntArray &opt_pos)
virtual int setWeights (const JntArray &weights)
 ~ChainIkSolverVel_pinv_nso ()

Private Attributes

int alpha
const Chain chain
double eps
Jacobian jac
ChainJntToJacSolver jnt2jac
int maxiter
JntArray opt_pos
JntArray S
SVD_HH svd
JntArray tmp
JntArray tmp2
std::vector< JntArray > U
std::vector< JntArray > V
JntArray weights

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 24 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 
) [explicit]

Definition at line 42 of file chainiksolvervel_pinv_nso.cpp.

KDL::ChainIkSolverVel_pinv_nso::~ChainIkSolverVel_pinv_nso (  ) 

Definition at line 58 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 63 of file chainiksolvervel_pinv_nso.cpp.

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

Set null psace velocity gain

Parameters:
alpha NUllspace velocity cgain

Definition at line 137 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 132 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 127 of file chainiksolvervel_pinv_nso.cpp.


Member Data Documentation

Definition at line 112 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 100 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 109 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 102 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 101 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 110 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 114 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 105 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 103 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 107 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 108 of file chainiksolvervel_pinv_nso.hpp.

std::vector<JntArray> KDL::ChainIkSolverVel_pinv_nso::U [private]

Definition at line 104 of file chainiksolvervel_pinv_nso.hpp.

std::vector<JntArray> KDL::ChainIkSolverVel_pinv_nso::V [private]

Definition at line 106 of file chainiksolvervel_pinv_nso.hpp.

Definition at line 113 of file chainiksolvervel_pinv_nso.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


orocos_kdl
Author(s): Ruben Smits, Erwin Aertbelien, Orocos Developers
autogenerated on Fri Mar 1 16:20:15 2013