1 #include "header/endEffectorReachTask.h" 14 :
Task(dim, eqType, robotName,
"ENDEFFECTOR_REACHING_GOAL"){
29 setJacobian(robInfo->robotState.w_Jee_robot);
30 setReference(robInfo->transforms.wTgoalEE_eigen,
31 robInfo->robotState.
wTv_eigen*robInfo->robotState.vTee_eigen);
38 void EndEffectorReachTask::setJacobian(Eigen::Matrix<double, 6, TOT_DOF> w_J_robot){
40 J = CONV::matrix_eigen2cmat(w_J_robot);
44 int EndEffectorReachTask::setActivation(){
47 std::fill_n(vectDiag, 6, 1);
48 this->A.SetDiag(vectDiag);
61 void EndEffectorReachTask::setReference(Eigen::Matrix4d wTgoalxxx_eigen, Eigen::Matrix4d wTxxx_eigen){
63 CMAT::TransfMatrix wTgoalxxx_cmat = CONV::matrix_eigen2cmat(wTgoalxxx_eigen);
64 CMAT::TransfMatrix wTxxx_cmat = CONV::matrix_eigen2cmat(wTxxx_eigen);
66 CMAT::Vect6 errorSwapped = CMAT::CartError(wTgoalxxx_cmat, wTxxx_cmat);
68 CMAT::Vect6 error_priv;
69 error_priv.SetFirstVect3(errorSwapped.GetSecondVect3());
70 error_priv.SetSecondVect3(errorSwapped.GetFirstVect3());
71 this->error = error_priv;
73 error_priv = this->gain * error_priv;
76 error_priv.SetFirstVect3(FRM::saturateCmat(error_priv.GetFirstVect3(), 0.5));
77 error_priv.SetSecondVect3(FRM::saturateCmat(error_priv.GetSecondVect3(), 0.2));
79 this->reference = error_priv;
int updateMatrices(struct Infos *const robInfo)
VehicleReachTask::updateMatrices overriden of the pure virtual method of Task parent class...
Eigen::Matrix4d wTv_eigen
Transforms.
EndEffectorReachTask(int dimension, bool eqType, std::string robotName)
EndEffectorReachTask::EndEffectorReachTask Constructor of specific task simply calls the parent const...
ABSTRACT class task. Each task is a derived class of this class. It contains all the variable that th...