51 #include <visp3/core/vpMatrix.h>
52 #include <visp3/core/vpVelocityTwistMatrix.h>
53 #include <visp3/visual_features/vpBasicFeature.h>
54 #include <visp3/vs/vpAdaptiveGain.h>
55 #include <visp3/vs/vpServoException.h>
173 EYETOHAND_L_cVf_fVe_eJe,
201 } vpServoIteractionMatrixType;
208 } vpServoInversionType;
248 explicit vpServo(vpServoType servoType);
267 vpMatrix computeInteractionMatrix();
270 unsigned int getDimension()
const;
282 inline vpColVector getError()
const {
return error; }
298 inline vpMatrix getInteractionMatrix()
const {
return L; }
304 inline vpServoType getServoType()
const {
return servoType; }
309 vpMatrix getTaskJacobianPseudoInverse()
const;
310 unsigned int getTaskRank()
const;
317 inline vpColVector getTaskSingularValues()
const {
return sv; }
341 vpMatrix get_eJe()
const {
return eJe; }
346 vpMatrix get_fJe()
const {
return fJe; }
357 const bool &useLargeProjectionOperator =
false);
360 const vpColVector &jointMax,
const double &rho = 0.1,
361 const double &rho1 = 0.3,
const double &lambda_tune = 0.7)
const;
381 void setForceInteractionMatrixComputation(
bool force_computation)
383 this->forceInteractionMatrixComputation = force_computation;
393 void setInteractionMatrixType(
const vpServoIteractionMatrixType &interactionMatrixType,
394 const vpServoInversionType &interactionMatrixInversion = PSEUDO_INVERSE);
406 void setLambda(
double c) { lambda.initFromConstant(c); }
423 void setLambda(
const double gain_at_zero,
const double gain_at_infinity,
const double slope_at_zero)
425 lambda.initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
442 void setMu(
double mu_) { this->mu = mu_; }
444 void setServo(
const vpServoType &servo_type);
527 bool testInitialization();
540 void computeProjectionOperators();
575 vpServoType servoType;
581 std::list<vpBasicFeature *> featureList;
583 std::list<vpBasicFeature *> desiredFeatureList;
586 std::list<unsigned int> featureSelectionList;
593 int signInteractionMatrix;
595 vpServoIteractionMatrixType interactionMatrixType;
598 vpServoInversionType inversionType;
633 bool interactionMatrixComputed;
635 unsigned int dim_task;
639 bool forceInteractionMatrixComputation;