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 & | 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} \).
|
| 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} \).
|
| 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} \).
|
| 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} \).
|
|
| 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.
|
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
◆ ChainJntToJacDotSolver()
| KDL::ChainJntToJacDotSolver::ChainJntToJacDotSolver |
( |
const Chain & | chain | ) |
|
|
explicit |
◆ ~ChainJntToJacDotSolver()
| virtual 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
◆ 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
◆ 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
◆ 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
◆ 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
◆ JntToJacDot() [2/2]
| virtual int KDL::ChainJntToJacDotSolver::JntToJacDot |
( |
const KDL::JntArrayVel & | q_in, |
|
|
KDL::Twist & | jac_dot_q_dot, |
|
|
int | seg_nr = -1 ) |
|
virtual |
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
◆ setBodyFixedRepresentation()
| void KDL::ChainJntToJacDotSolver::setBodyFixedRepresentation |
( |
| ) |
|
|
inline |
JntToJacDot() will compute in the Body-fixed representation (ref Frame: end-effector, ref Point: end-effector).
- Returns
- void
◆ setHybridRepresentation()
| void KDL::ChainJntToJacDotSolver::setHybridRepresentation |
( |
| ) |
|
|
inline |
JntToJacDot() will compute in the Hybrid representation (ref Frame: base, ref Point: end-effector).
- Returns
- void
◆ setInertialRepresentation()
| void KDL::ChainJntToJacDotSolver::setInertialRepresentation |
( |
| ) |
|
|
inline |
JntToJacDot() will compute in the Inertial representation (ref Frame: base, ref Point: base).
- Returns
- void
◆ 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
◆ strError()
| virtual 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.
◆ updateInternalDataStructures()
| virtual 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.
◆ BODYFIXED
| const int KDL::ChainJntToJacDotSolver::BODYFIXED = 1 |
|
static |
◆ 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 |
◆ HYBRID
| const int KDL::ChainJntToJacDotSolver::HYBRID = 0 |
|
static |
◆ INERTIAL
| const int KDL::ChainJntToJacDotSolver::INERTIAL = 2 |
|
static |
The documentation for this class was generated from the following file: