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;
308 VP_EXPLICIT
vpServo(vpServoType servo_type);
492 vpMatrix computeInteractionMatrix();
497 unsigned int getDimension()
const;
846 const bool &useLargeProjectionOperator =
false);
893 const double &rho1 = 0.3,
const double &lambda_tune = 0.7);
961 this->forceInteractionMatrixComputation = force_computation;
973 void setInteractionMatrixType(
const vpServoIteractionMatrixType &interactionMatrixType,
974 const vpServoInversionType &interactionMatrixInversion = PSEUDO_INVERSE);
986 void setLambda(
double c) { lambda.initFromConstant(c); }
1002 void setLambda(
double gain_at_zero,
double gain_at_infinity,
double slope_at_zero)
1004 lambda.initStandard(gain_at_zero, gain_at_infinity, slope_at_zero);
1025 void setMu(
double mu_) { this->mu = mu_; }
1032 void setServo(
const vpServoType &servo_type);
1126 m_pseudo_inverse_threshold = pseudo_inverse_threshold;
1133 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)
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.
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.