|
Orocos KDL
|
#include <chainiksolvervel_pinv_nso.hpp>
Public Member Functions | |
| ChainIkSolverVel_pinv_nso (const Chain &chain, const JntArray &opt_pos, const JntArray &weights, double eps=0.00001, int maxiter=150, double alpha=0.25) | |
| ChainIkSolverVel_pinv_nso (const Chain &chain, double eps=0.00001, int maxiter=150, double alpha=0.25) | |
| ~ChainIkSolverVel_pinv_nso () | |
| virtual int | CartToJnt (const JntArray &q_in, const Twist &v_in, JntArray &qdot_out) |
| virtual int | CartToJnt (const JntArray &, const FrameVel &, JntArrayVel &) |
| const JntArray & | getWeights () const |
| const JntArray & | getOptPos () const |
| const double & | getAlpha () const |
| virtual int | setWeights (const JntArray &weights) |
| virtual int | setOptPos (const JntArray &opt_pos) |
| virtual int | setAlpha (const double alpha) |
| int | getSVDResult () const |
| virtual void | updateInternalDataStructures () |
| Public Member Functions inherited from KDL::ChainIkSolverVel | |
| virtual | ~ChainIkSolverVel () |
| Public Member Functions inherited from KDL::SolverI | |
| SolverI () | |
| Initialize latest error to E_NOERROR. | |
| virtual | ~SolverI () |
| virtual int | getError () const |
| Return the latest error. | |
| virtual const char * | strError (const int error) const |
Additional Inherited Members | |
| Public Types inherited from KDL::SolverI | |
| enum | { E_DEGRADED = +1 , E_NOERROR = 0 , E_NO_CONVERGE = -1 , E_UNDEFINED = -2 , E_NOT_UP_TO_DATE = -3 , E_SIZE_MISMATCH = -4 , E_MAX_ITERATIONS_EXCEEDED = -5 , E_OUT_OF_RANGE = -6 , E_NOT_IMPLEMENTED = -7 , E_SVD_FAILED = -8 } |
| Protected Attributes inherited from KDL::SolverI | |
| int | error |
| Latest error, initialized to E_NOERROR in constructor. | |
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 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 mechanisms. IEEE Transactions on Systems, Man, and Cybernetics, 7(12):868–871, 1977
| KDL::ChainIkSolverVel_pinv_nso::ChainIkSolverVel_pinv_nso | ( | const Chain & | chain, |
| const JntArray & | opt_pos, | ||
| const JntArray & | weights, | ||
| double | eps = 0.00001, | ||
| int | maxiter = 150, | ||
| double | alpha = 0.25 ) |
Constructor of the solver
| 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 |
|
explicit |
| KDL::ChainIkSolverVel_pinv_nso::~ChainIkSolverVel_pinv_nso | ( | ) |
|
inlinevirtual |
not (yet) implemented.
Implements KDL::ChainIkSolverVel.
|
virtual |
Calculate inverse velocity kinematics, from joint positions and cartesian velocity to joint velocities.
| q_in | input joint positions |
| v_in | input cartesian velocity |
| qdot_out | output joint velocities |
Implements KDL::ChainIkSolverVel.
|
inline |
Request null space velocity gain
|
inline |
Request the optimal joint positions
|
inline |
Retrieve the latest return code from the SVD algorithm
|
inline |
Request the joint weights for optimization criterion
|
virtual |
Set null space velocity gain
| alpha | NUllspace velocity cgain |
|
virtual |
Set optimal joint positions
| opt_pos | optimal joint positions |
|
virtual |
Set joint weights for optimization criterion
| weights | the joint weights |
|
virtual |
Update the internal data structures. This is required if the number of segments or number of joints of a chain/tree have changed. This provides a single point of contact for solver memory allocations.
Implements KDL::ChainIkSolverVel.