29 #include "Eigen/Dense"
30 #include <Qontrol/Model/GenericModel.hpp>
31 #include <Qontrol/Utils/Size.hpp>
32 #include <Qontrol/Problem/ResolutionStrategy.hpp>
33 #include <Qontrol/Problem/ReferenceFrame.hpp>
62 GenericTask(std::string name,
int task_dimension,
int optim_vector_dimension)
63 : name_{name}, task_dimension_{task_dimension},
64 optim_vector_dimension_{optim_vector_dimension},
65 resolution_strategy_{ResolutionStrategy::Weighted},
66 controled_frame_name_{
""},
67 subStateMatrix_{Eigen::MatrixXd::Zero(optim_vector_dimension_,optim_vector_dimension_)},
68 reference_frame_{ReferenceFrame::LOCAL} {
69 resize(task_dimension_, optim_vector_dimension);
88 std::shared_ptr<Model::GenericModel> model_ptr)
89 : name_{name}, task_dimension_{task_dimension},
90 optim_vector_dimension_{model_ptr->getNrOfDegreesOfFreedom()},
91 model_ptr_{model_ptr},
92 resolution_strategy_{ResolutionStrategy::Weighted} ,
93 controled_frame_name_{model_ptr->getTipFrameName()},
94 subStateMatrix_{Eigen::MatrixXd::Zero(optim_vector_dimension_,optim_vector_dimension_)},
95 reference_frame_{ReferenceFrame::LOCAL} {
96 resize(task_dimension_, optim_vector_dimension_);
116 void resize(
int input_size,
int output_size);
124 void setE(Eigen::MatrixXd E);
132 void setf(Eigen::VectorXd f);
193 Eigen::MatrixXd getJacobianGHC();
195 int getTaskDimension();
197 void setResolutionStrategy(ResolutionStrategy resolution_strategy);
199 void setControledFrameName(std::string frame_name);
201 void setReferenceFrame(ReferenceFrame reference_frame);
203 void setSubStateMatrix(Eigen::MatrixXd &subStateMatrix);
207 std::shared_ptr<Model::GenericModel> model_ptr_;
211 Eigen::MatrixXd selection_matrix_;
212 Eigen::MatrixXd weighting_matrix_;
214 int optim_vector_dimension_;
215 ResolutionStrategy resolution_strategy_;
216 Eigen::MatrixXd subStateMatrix_;
217 std::string controled_frame_name_;
218 ReferenceFrame reference_frame_;