Computes the Jacobian time derivative (Jdot) by calculating the partial derivatives regarding to a joint angle, in the Hybrid, Body-fixed or Inertial representation.  
 More...
#include <chainjnttojacdotsolver.hpp>
 | 
| const Twist &  | getPartialDerivative (const Jacobian &J, const unsigned int &joint_idx, const unsigned int &column_idx, const int &representation) | 
|   | Computes \( \frac{\partial J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \).  More...
  | 
|   | 
| const Twist &  | getPartialDerivativeBodyFixed (const Jacobian &ee_J_ee, const unsigned int &joint_idx, const unsigned int &column_idx) | 
|   | Computes \( \frac{\partial {}_{ee}J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \).  More...
  | 
|   | 
| const Twist &  | getPartialDerivativeHybrid (const Jacobian &bs_J_ee, const unsigned int &joint_idx, const unsigned int &column_idx) | 
|   | Computes \( \frac{\partial {}_{bs}J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \).  More...
  | 
|   | 
| const Twist &  | getPartialDerivativeInertial (const Jacobian &bs_J_bs, const unsigned int &joint_idx, const unsigned int &column_idx) | 
|   | Computes \( \frac{\partial {}_{bs}J^{i,bs}}{\partial q^{j}}.\dot{q}^{j} \).  More...
  | 
|   | 
 | 
| 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
 
 } | 
|   | 
| int  | error | 
|   | Latest error, initialized to E_NOERROR in constructor.  More...
  | 
|   | 
Computes the Jacobian time derivative (Jdot) by calculating the partial derivatives regarding to a joint angle, in the Hybrid, Body-fixed or Inertial representation. 
This work is based on : Symbolic differentiation of the velocity mapping for a serial kinematic chain H. Bruyninckx, J. De Schutter doi:10.1016/0094-114X(95)00069-B
url : http://www.sciencedirect.com/science/article/pii/0094114X9500069B 
Definition at line 48 of file chainjnttojacdotsolver.hpp.
 
◆ ChainJntToJacDotSolver()
  
  
      
        
          | KDL::ChainJntToJacDotSolver::ChainJntToJacDotSolver  | 
          ( | 
          const Chain &  | 
          chain | ) | 
           | 
         
       
   | 
  
explicit   | 
  
 
 
◆ ~ChainJntToJacDotSolver()
  
  
      
        
          | KDL::ChainJntToJacDotSolver::~ChainJntToJacDotSolver  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
virtual   | 
  
 
 
◆ getPartialDerivative()
  
  
      
        
          | const Twist & KDL::ChainJntToJacDotSolver::getPartialDerivative  | 
          ( | 
          const Jacobian &  | 
          J,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          joint_idx,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          column_idx,  | 
         
        
           | 
           | 
          const int &  | 
          representation  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Computes \( \frac{\partial J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \). 
- Parameters
 - 
  
    | bs_J_bs | The Jacobian expressed in the base frame with the end effector as the reference point  | 
    | joint_idx | The indice of the current joint (j in the formula)  | 
    | column_idx | The indice of the current column (i in the formula)  | 
    | representation | The representation (Hybrid,Body-fixed,Inertial) in which you want to get dJ/dqj .qdotj  | 
  
   
- Returns
 - Twist The twist representing dJi/dqj .qdotj 
 
Definition at line 125 of file chainjnttojacdotsolver.cpp.
 
 
◆ getPartialDerivativeBodyFixed()
  
  
      
        
          | const Twist & KDL::ChainJntToJacDotSolver::getPartialDerivativeBodyFixed  | 
          ( | 
          const Jacobian &  | 
          ee_J_ee,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          joint_idx,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          column_idx  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Computes \( \frac{\partial {}_{ee}J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \). 
- Parameters
 - 
  
    | bs_J_ee | The Jacobian expressed in the end effector frame with the end effector as the reference point  | 
    | joint_idx | The indice of the current joint (j in the formula)  | 
    | column_idx | The indice of the current column (i in the formula)  | 
  
   
- Returns
 - Twist The twist representing dJi/dqj .qdotj 
 
Definition at line 175 of file chainjnttojacdotsolver.cpp.
 
 
◆ getPartialDerivativeHybrid()
  
  
      
        
          | const Twist & KDL::ChainJntToJacDotSolver::getPartialDerivativeHybrid  | 
          ( | 
          const Jacobian &  | 
          bs_J_ee,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          joint_idx,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          column_idx  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Computes \( \frac{\partial {}_{bs}J^{i,ee}}{\partial q^{j}}.\dot{q}^{j} \). 
- Parameters
 - 
  
    | bs_J_ee | The Jacobian expressed in the base frame with the end effector as the reference point (default in KDL Jacobian Solver)  | 
    | joint_idx | The index of the current joint (j in the formula)  | 
    | column_idx | The index of the current column (i in the formula)  | 
  
   
- Returns
 - Twist The twist representing dJi/dqj .qdotj 
 
Definition at line 144 of file chainjnttojacdotsolver.cpp.
 
 
◆ getPartialDerivativeInertial()
  
  
      
        
          | const Twist & KDL::ChainJntToJacDotSolver::getPartialDerivativeInertial  | 
          ( | 
          const Jacobian &  | 
          bs_J_bs,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          joint_idx,  | 
         
        
           | 
           | 
          const unsigned int &  | 
          column_idx  | 
         
        
           | 
          ) | 
           |  | 
         
       
   | 
  
protected   | 
  
 
Computes \( \frac{\partial {}_{bs}J^{i,bs}}{\partial q^{j}}.\dot{q}^{j} \). 
- Parameters
 - 
  
    | ee_J_ee | The Jacobian expressed in the base frame with the base as the reference point  | 
    | joint_idx | The indice of the current joint (j in the formula)  | 
    | column_idx | The indice of the current column (i in the formula)  | 
  
   
- Returns
 - Twist The twist representing dJi/dqj .qdotj 
 
Definition at line 197 of file chainjnttojacdotsolver.cpp.
 
 
◆ JntToJacDot() [1/2]
Computes \( {}_{bs}\dot{J}^{ee} \). 
- Parameters
 - 
  
    | q_in | Current joint positions and velocities  | 
    | jdot | The jacobian time derivative in the configured representation (HYBRID, BODYFIXED or INERTIAL)  | 
    | seg_nr | The final segment to compute  | 
  
   
- Returns
 - int 0 if no errors happened 
 
Definition at line 65 of file chainjnttojacdotsolver.cpp.
 
 
◆ JntToJacDot() [2/2]
Computes \( {}_{bs}\dot{J}^{ee}.\dot{q} \). 
- Parameters
 - 
  
    | q_in | Current joint positions and velocities  | 
    | jac_dot_q_dot | The twist representing Jdot*qdot  | 
    | seg_nr | The final segment to compute  | 
  
   
- Returns
 - int 0 if no errors happened 
 
Definition at line 55 of file chainjnttojacdotsolver.cpp.
 
 
◆ setBodyFixedRepresentation()
  
  
      
        
          | void KDL::ChainJntToJacDotSolver::setBodyFixedRepresentation  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ setHybridRepresentation()
  
  
      
        
          | void KDL::ChainJntToJacDotSolver::setHybridRepresentation  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ setInertialRepresentation()
  
  
      
        
          | void KDL::ChainJntToJacDotSolver::setInertialRepresentation  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
inline   | 
  
 
 
◆ setLockedJoints()
      
        
          | int KDL::ChainJntToJacDotSolver::setLockedJoints  | 
          ( | 
          const std::vector< bool > &  | 
          locked_joints | ) | 
           | 
        
      
 
 
◆ setRepresentation()
      
        
          | void KDL::ChainJntToJacDotSolver::setRepresentation  | 
          ( | 
          const int &  | 
          representation | ) | 
           | 
        
      
 
Sets the internal variable for the representation (with a check on the value) 
- Parameters
 - 
  
    | representation | The representation for Jdot : HYBRID,BODYFIXED or INERTIAL  | 
  
   
- Returns
 - void 
 
Definition at line 218 of file chainjnttojacdotsolver.cpp.
 
 
◆ strError()
  
  
      
        
          | const char * KDL::ChainJntToJacDotSolver::strError  | 
          ( | 
          const int  | 
          error | ) | 
           const | 
         
       
   | 
  
virtual   | 
  
 
Return a description of the latest error 
- Returns
 - if error is known then a description of error, otherwise "UNKNOWN ERROR" 
 
Reimplemented from KDL::SolverI.
Definition at line 241 of file chainjnttojacdotsolver.cpp.
 
 
◆ updateInternalDataStructures()
  
  
      
        
          | void KDL::ChainJntToJacDotSolver::updateInternalDataStructures  | 
          ( | 
           | ) | 
           | 
         
       
   | 
  
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::SolverI.
Definition at line 46 of file chainjnttojacdotsolver.cpp.
 
 
◆ BODYFIXED
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::BODYFIXED = 1 | 
         
       
   | 
  
static   | 
  
 
 
◆ chain
  
  
      
        
          | const Chain& KDL::ChainJntToJacDotSolver::chain | 
         
       
   | 
  
private   | 
  
 
 
◆ E_FKSOLVERPOS_FAILED
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::E_FKSOLVERPOS_FAILED = -102 | 
         
       
   | 
  
static   | 
  
 
 
◆ E_JAC_DOT_FAILED
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::E_JAC_DOT_FAILED = -100 | 
         
       
   | 
  
static   | 
  
 
 
◆ E_JACSOLVER_FAILED
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::E_JACSOLVER_FAILED = -101 | 
         
       
   | 
  
static   | 
  
 
 
◆ F_bs_ee_
  
  
      
        
          | Frame KDL::ChainJntToJacDotSolver::F_bs_ee_ | 
         
       
   | 
  
private   | 
  
 
 
◆ fk_solver_
◆ HYBRID
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::HYBRID = 0 | 
         
       
   | 
  
static   | 
  
 
 
◆ INERTIAL
  
  
      
        
          | const int KDL::ChainJntToJacDotSolver::INERTIAL = 2 | 
         
       
   | 
  
static   | 
  
 
 
◆ jac_
  
  
      
        
          | Jacobian KDL::ChainJntToJacDotSolver::jac_ | 
         
       
   | 
  
private   | 
  
 
 
◆ jac_dot_
  
  
      
        
          | Jacobian KDL::ChainJntToJacDotSolver::jac_dot_ | 
         
       
   | 
  
private   | 
  
 
 
◆ jac_dot_k_
  
  
      
        
          | Twist KDL::ChainJntToJacDotSolver::jac_dot_k_ | 
         
       
   | 
  
private   | 
  
 
 
◆ jac_i_
  
  
      
        
          | Twist KDL::ChainJntToJacDotSolver::jac_i_ | 
         
       
   | 
  
private   | 
  
 
 
◆ jac_j_
  
  
      
        
          | Twist KDL::ChainJntToJacDotSolver::jac_j_ | 
         
       
   | 
  
private   | 
  
 
 
◆ jac_solver_
◆ locked_joints_
  
  
      
        
          | std::vector<bool> KDL::ChainJntToJacDotSolver::locked_joints_ | 
         
       
   | 
  
private   | 
  
 
 
◆ nr_of_unlocked_joints_
  
  
      
        
          | unsigned int KDL::ChainJntToJacDotSolver::nr_of_unlocked_joints_ | 
         
       
   | 
  
private   | 
  
 
 
◆ representation_
  
  
      
        
          | int KDL::ChainJntToJacDotSolver::representation_ | 
         
       
   | 
  
private   | 
  
 
 
◆ t_djdq_
  
  
      
        
          | Twist KDL::ChainJntToJacDotSolver::t_djdq_ | 
         
       
   | 
  
private   | 
  
 
 
The documentation for this class was generated from the following files: