30 #ifndef EXOTICA_CORE_TASKS_H_ 31 #define EXOTICA_CORE_TASKS_H_ 33 #include <Eigen/Dense> 58 virtual ~
Task() =
default;
60 virtual void Initialize(
const std::vector<exotica::Initializer>& inits, std::shared_ptr<PlanningProblem> prob,
TaskSpaceVector& Phi);
69 double tolerance = 0.0;
80 virtual void Initialize(
const std::vector<exotica::Initializer>& inits, std::shared_ptr<PlanningProblem> prob,
TaskSpaceVector& Phi);
99 void ReinitializeVariables(
int _T, std::shared_ptr<PlanningProblem> _prob,
const TaskSpaceVector& _Phi);
101 inline void ValidateTimeIndex(
int& t_in)
const;
104 Eigen::VectorXd GetGoal(
const std::string& task_name,
int t)
const;
106 void SetRho(
const std::string& task_name,
const double rho_in,
int t);
107 double GetRho(
const std::string& task_name,
int t)
const;
109 Eigen::VectorXd GetTaskError(
const std::string& task_name,
int t)
const;
110 Eigen::MatrixXd GetS(
const std::string& task_name,
int t)
const;
112 std::vector<Eigen::VectorXd>
rho;
113 std::vector<TaskSpaceVector>
y;
115 std::vector<TaskSpaceVector>
Phi;
123 std::vector<Eigen::MatrixXd>
S;
132 virtual void Initialize(
const std::vector<exotica::Initializer>& inits, std::shared_ptr<PlanningProblem> prob,
TaskSpaceVector& Phi);
139 Eigen::VectorXd GetGoal(
const std::string& task_name)
const;
141 void SetRho(
const std::string& task_name,
const double rho_in);
142 double GetRho(
const std::string& task_name)
const;
144 Eigen::VectorXd GetTaskError(
const std::string& task_name)
const;
145 Eigen::MatrixXd GetS(
const std::string& task_name)
const;
161 virtual void Initialize(
const std::vector<exotica::Initializer>& inits, std::shared_ptr<PlanningProblem> prob,
TaskSpaceVector& Phi);
166 Eigen::VectorXd GetGoal(
const std::string& task_name)
const;
168 void SetRho(
const std::string& task_name,
const double rho);
169 double GetRho(
const std::string& task_name)
const;
179 #endif // EXOTICA_CORE_TASKS_H_ std::vector< TaskSpaceVector > y
std::vector< TaskMapPtr > TaskMapVec
std::vector< Hessian > hessian
std::vector< Eigen::VectorXd > rho
std::vector< Hessian > ddPhi_dxdu
const Eigen::Ref< const Eigen::MatrixXd > & MatrixXdRefConst
Eigen::internal::ref_selector< Hessian >::type HessianRefConst
std::vector< Eigen::VectorXd > ydiff
Eigen::Array< Eigen::MatrixXd, Eigen::Dynamic, 1 > Hessian
std::vector< TaskInitializer > task_initializers_
std::vector< Eigen::MatrixXd > dPhi_du
const Eigen::Ref< const Eigen::VectorXd > & VectorXdRefConst
Convenience wrapper for storing references to sub-matrices/vectors.
std::vector< Eigen::MatrixXd > S
std::vector< Hessian > ddPhi_ddu
std::map< std::string, TaskMapPtr > TaskMapMap
The mapping by name of TaskMaps.
std::vector< Hessian > ddPhi_ddx
std::vector< TaskIndexing > indexing
std::vector< TaskSpaceVector > Phi
std::vector< Eigen::MatrixXd > jacobian
std::vector< Eigen::MatrixXd > dPhi_dx