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>
169 EYETOHAND_L_cVf_fVe_eJe,
197 } vpServoIteractionMatrixType;
204 } vpServoInversionType;
244 explicit vpServo(vpServoType servoType);
263 vpMatrix computeInteractionMatrix();
266 unsigned int getDimension()
const;
305 vpMatrix getTaskJacobianPseudoInverse()
const;
306 unsigned int getTaskRank()
const;
344 double getPseudoInverseThreshold()
const;
355 const bool &useLargeProjectionOperator =
false);
358 const vpColVector &jointMax,
const double &rho = 0.1,
359 const double &rho1 = 0.3,
const double &lambda_tune = 0.7);
381 this->forceInteractionMatrixComputation = force_computation;
391 void setInteractionMatrixType(
const vpServoIteractionMatrixType &interactionMatrixType,
392 const vpServoInversionType &interactionMatrixInversion = PSEUDO_INVERSE);
404 void setLambda(
double c) { lambda.initFromConstant(c); }
421 void setLambda(
double gain_at_zero,
double gain_at_infinity,
double slope_at_zero)
423 lambda.initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
440 void setMu(
double mu_) { this->mu = mu_; }
442 void setServo(
const vpServoType &servo_type);
521 void setPseudoInverseThreshold(
double pseudo_inverse_threshold);
527 bool testInitialization();
Adaptive gain computation.
class that defines what is a visual feature
Implementation of column vector and the associated operations.
Implementation of an homogeneous matrix and operations on such kind of matrices.
Implementation of a matrix and operations on matrices.
vpColVector q_dot
Articular velocity.
unsigned int rankJ1
Rank of the task Jacobian.
vpMatrix eJe
Jacobian expressed in the end-effector frame.
int signInteractionMatrix
vpMatrix WpW
Projection operators .
vpVelocityTwistMatrix cVf
Twist transformation matrix between Rf and Rc.
vpMatrix J1
Task Jacobian .
vpServoType getServoType() const
vpMatrix getInteractionMatrix() const
bool errorComputed
true if the error has been computed.
vpMatrix fJe
Jacobian expressed in the robot reference frame.
void set_cVf(const vpVelocityTwistMatrix &cVf_)
void set_cVf(const vpHomogeneousMatrix &cMf)
vpVelocityTwistMatrix get_cVe() const
vpVelocityTwistMatrix cVe
Twist transformation matrix between Re and Rc.
void set_cVe(const vpVelocityTwistMatrix &cVe_)
vpColVector e1
Primary task .
vpVelocityTwistMatrix get_fVe() const
bool forceInteractionMatrixComputation
Force the interaction matrix computation even if it is already done.
void set_fVe(const vpHomogeneousMatrix &fMe)
void setForceInteractionMatrixComputation(bool force_computation)
vpVelocityTwistMatrix fVe
Twist transformation matrix between Re and Rf.
void set_eJe(const vpMatrix &eJe_)
bool taskWasKilled
Flag to indicate if the task was killed.
std::list< vpBasicFeature * > featureList
List of current visual features .
bool iscJcIdentity
Boolean to know if cJc is identity (for fast computation)
vpMatrix I_WpW
Projection operators .
void set_fVe(const vpVelocityTwistMatrix &fVe_)
vpColVector v
Camera velocity.
vpMatrix J1p
Pseudo inverse of the task Jacobian.
void setLambda(const vpAdaptiveGain &l)
vpMatrix I
Identity matrix.
void set_fJe(const vpMatrix &fJe_)
std::list< vpBasicFeature * > desiredFeatureList
List of desired visual features .
vpColVector getTaskSingularValues() const
bool m_first_iteration
True until first call of computeControlLaw() is achieved.
vpMatrix L
Interaction matrix.
vpServoType servoType
Chosen visual servoing control law.
vpServoIteractionMatrixType interactionMatrixType
Type of the interaction matrox (current, mean, desired, user)
double m_pseudo_inverse_threshold
Threshold used in the pseudo inverse.
vpColVector getError() const
void setLambda(double gain_at_zero, double gain_at_infinity, double slope_at_zero)
vpVelocityTwistMatrix get_cVf() const
std::list< unsigned int > featureSelectionList
vpColVector sv
Singular values from the pseudo inverse.
vpServoIteractionMatrixType
bool interactionMatrixComputed
true if the interaction matrix has been computed.
void set_cVe(const vpHomogeneousMatrix &cMe)
unsigned int dim_task
Dimension of the task updated during computeControlLaw().
vpServoInversionType inversionType
vpAdaptiveGain lambda
Gain used in the control law.