wbc
Task.hpp
Go to the documentation of this file.
1#ifndef WBC_CORE_TASK_HPP
2#define WBC_CORE_TASK_HPP
3
4#include "TaskConfig.hpp"
5#include "RobotModel.hpp"
6#include <Eigen/Core>
7#include <memory>
8
9namespace wbc{
10
14class Task {
15protected:
17
18public:
19
21 Task();
22
28 ~Task();
29
33 void reset();
34
38 virtual void update() = 0;
39
44 void setWeights(const Eigen::VectorXd& weights);
45
50 void setActivation(const double activation);
51
54
56 Eigen::VectorXd y_ref;
57
60 Eigen::VectorXd y_ref_world;
61
65 Eigen::VectorXd weights;
66
69 Eigen::VectorXd weights_world;
70
72 double activation;
73
75 Eigen::MatrixXd A;
76
78 Eigen::MatrixXd Aw;
79
81 uint nv;
82
84 uint nj;
85
88};
89
90
91using TaskPtr = std::shared_ptr<Task> ;
92
93} // namespace wbc
94
95#endif // WBC_CORE_TASK_HPP
Defines a task in the whole body control problem.
Definition TaskConfig.hpp:24
void reset()
Reset task variables to initial values.
Definition Task.cpp:31
Task()
Default constructor.
Definition Task.cpp:5
TaskType type
Definition Task.hpp:87
void setActivation(const double activation)
Set task activation.
Definition Task.cpp:48
double activation
Definition Task.hpp:72
Eigen::VectorXd weights_world
Definition Task.hpp:69
uint nv
Definition Task.hpp:81
Eigen::VectorXd weights
Definition Task.hpp:65
Eigen::MatrixXd A
Definition Task.hpp:75
~Task()
Definition Task.cpp:27
virtual void update()=0
Update Task matrices and vectors.
Eigen::VectorXd y_ref_world
Definition Task.hpp:60
RobotModelPtr robot_model
Definition Task.hpp:16
Eigen::VectorXd y_ref
Definition Task.hpp:56
void setWeights(const Eigen::VectorXd &weights)
Set task weights.
Definition Task.cpp:40
uint nj
Definition Task.hpp:84
Eigen::MatrixXd Aw
Definition Task.hpp:78
TaskConfig config
Definition Task.hpp:53
Definition ContactsAccelerationConstraint.cpp:3
std::shared_ptr< Task > TaskPtr
Definition Task.hpp:91
TaskType
Definition TaskConfig.hpp:10
std::shared_ptr< RobotModel > RobotModelPtr
Definition RobotModel.hpp:315