#include <chainiksolvervel_pinv_nso.hpp>

Public Member Functions | |
| virtual int | CartToJnt (const JntArray &q_in, const Twist &v_in, JntArray &qdot_out) |
| virtual int | CartToJnt (const JntArray &q_init, const FrameVel &v_in, JntArrayVel &q_out) |
| ChainIkSolverVel_pinv_nso (const Chain &chain, JntArray opt_pos, JntArray weights, double eps=0.00001, int maxiter=150, int alpha=0.25) | |
| ChainIkSolverVel_pinv_nso (const Chain &chain, 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 |
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.
| 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
| 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 |
||
| ) | [explicit] |
Definition at line 44 of file chainiksolvervel_pinv_nso.cpp.
Definition at line 60 of file chainiksolvervel_pinv_nso.cpp.
| 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.
| q_in | input joint positions |
| v_in | input cartesian velocity |
| qdot_out | output joint velocities |
Implements KDL::ChainIkSolverVel.
Definition at line 65 of file chainiksolvervel_pinv_nso.cpp.
| 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::setAlpha | ( | const int | alpha | ) | [virtual] |
Set null psace velocity gain
| 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
| 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
| weights | the joint weights |
Definition at line 129 of file chainiksolvervel_pinv_nso.cpp.
int KDL::ChainIkSolverVel_pinv_nso::alpha [private] |
Definition at line 112 of file chainiksolvervel_pinv_nso.hpp.
const Chain KDL::ChainIkSolverVel_pinv_nso::chain [private] |
Definition at line 100 of file chainiksolvervel_pinv_nso.hpp.
double KDL::ChainIkSolverVel_pinv_nso::eps [private] |
Definition at line 109 of file chainiksolvervel_pinv_nso.hpp.
Jacobian KDL::ChainIkSolverVel_pinv_nso::jac [private] |
Definition at line 102 of file chainiksolvervel_pinv_nso.hpp.
Definition at line 101 of file chainiksolvervel_pinv_nso.hpp.
int KDL::ChainIkSolverVel_pinv_nso::maxiter [private] |
Definition at line 110 of file chainiksolvervel_pinv_nso.hpp.
JntArray KDL::ChainIkSolverVel_pinv_nso::opt_pos [private] |
Definition at line 114 of file chainiksolvervel_pinv_nso.hpp.
JntArray KDL::ChainIkSolverVel_pinv_nso::S [private] |
Definition at line 105 of file chainiksolvervel_pinv_nso.hpp.
SVD_HH KDL::ChainIkSolverVel_pinv_nso::svd [private] |
Definition at line 103 of file chainiksolvervel_pinv_nso.hpp.
JntArray KDL::ChainIkSolverVel_pinv_nso::tmp [private] |
Definition at line 107 of file chainiksolvervel_pinv_nso.hpp.
JntArray KDL::ChainIkSolverVel_pinv_nso::tmp2 [private] |
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.
JntArray KDL::ChainIkSolverVel_pinv_nso::weights [private] |
Definition at line 113 of file chainiksolvervel_pinv_nso.hpp.