44 #include <visp3/core/vpConfig.h>
45 #include <visp3/core/vpMatrix.h>
46 #include <visp3/core/vpVelocityTwistMatrix.h>
47 #include <visp3/visual_features/vpBasicFeature.h>
48 #include <visp3/vs/vpAdaptiveGain.h>
49 #include <visp3/vs/vpServoException.h>
220 } vpServoIteractionMatrixType;
236 } vpServoInversionType;
276 #if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
497 vpMatrix computeInteractionMatrix();
502 unsigned int getDimension()
const;
851 const bool &useLargeProjectionOperator =
false);
898 const double &rho1 = 0.3,
const double &lambda_tune = 0.7);
966 this->forceInteractionMatrixComputation = force_computation;
978 void setInteractionMatrixType(
const vpServoIteractionMatrixType &interactionMatrixType,
979 const vpServoInversionType &interactionMatrixInversion = PSEUDO_INVERSE);
991 void setLambda(
double c) { lambda.initFromConstant(c); }
1007 void setLambda(
double gain_at_zero,
double gain_at_infinity,
double slope_at_zero)
1009 lambda.initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
1030 void setMu(
double mu_) { this->mu = mu_; }
1037 void setServo(
const vpServoType &servo_type);
1131 m_pseudo_inverse_threshold = pseudo_inverse_threshold;
1138 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 (e).
int signInteractionMatrix
vpMatrix WpW
Projection operators .
void setPseudoInverseThreshold(double pseudo_inverse_threshold)
vpVelocityTwistMatrix cVf
Twist transformation matrix between camera frame (c) and robot base frame (f).
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 base frame (f).
@ EYETOHAND_L_cVf_fVe_eJe
void set_cVf(const vpVelocityTwistMatrix &cVf_)
void set_cVf(const vpHomogeneousMatrix &cMf)
vpVelocityTwistMatrix get_cVe() const
vpVelocityTwistMatrix cVe
vpMatrix getI_WpW() const
void set_cVe(const vpVelocityTwistMatrix &cVe_)
vpColVector e1
Primary task .
unsigned int getTaskRank() const
vpVelocityTwistMatrix get_fVe() const
bool forceInteractionMatrixComputation
Force the interaction matrix computation even if it is already done.
void set_fVe(const vpHomogeneousMatrix &fMe)
vpServo & operator=(const vpServo &)=delete
void setForceInteractionMatrixComputation(bool force_computation)
vpVelocityTwistMatrix fVe
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_)
double getPseudoInverseThreshold() const
vpColVector v
Camera velocity.
vpMatrix J1p
Pseudo inverse of the task Jacobian.
vpMatrix getTaskJacobian() const
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 matrix (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
@ ALL
Print all the task information.
@ CONTROLLER
Print the type of controller law.
@ ERROR_VECTOR
Print the error vector .
@ FEATURE_CURRENT
Print the current features .
@ FEATURE_DESIRED
Print the desired features .
@ INTERACTION_MATRIX
Print the interaction matrix.
vpServo(const vpServo &)=delete
vpColVector sv
Singular values from the pseudo inverse.
vpMatrix getTaskJacobianPseudoInverse() const
vpServoIteractionMatrixType
vpMatrix getLargeP() const
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.