63 using Ptr = std::shared_ptr<TaskBase>;
86 virtual void update(
double current_time,
double dt);
88 virtual void print()
const;
90 virtual bool setProblem(std::shared_ptr< const orca::optim::Problem > problem);
110 std::shared_ptr<const optim::Problem>
getProblem()
const;
111 std::shared_ptr<const common::Wrench>
getWrench()
const;
112 std::shared_ptr<const robot::RobotModel>
getRobot()
const;
150 std::shared_ptr<Wrench>
wrench();
156 virtual bool rampUp(
double time_since_start);
158 virtual void onCompute(
double current_time,
double dt) = 0;
159 virtual bool rampDown(
double time_since_stop);
164 std::shared_ptr<Wrench> wrench_;
166 void setParentName(
const std::string& parent_name);
167 void checkIfUpdatable()
const;
168 bool is_activated_ =
true;
170 double start_time_ = 0;
171 double stop_time_ = 0;
172 double ramp_value_ = 0;
173 bool activation_requested_ =
false;
174 bool deactivation_requested_ =
false;
176 std::shared_ptr<const optim::Problem> problem_;
177 std::shared_ptr<robot::RobotModel> robot_;
180 std::list< TaskBase::Ptr > children_;
182 std::function<void(void)> on_resized_cb_;
183 std::function<void(void)> on_activation_cb_;
184 std::function<void(void)> on_activated_cb_;
185 std::function<void(double,double)> on_update_begin_cb_;
186 std::function<void(double,double)> on_update_end_cb_;
187 std::function<void(void)> on_deactivation_cb_;
188 std::function<void(void)> on_deactivated_cb_;
192 std::string parent_name_;
193 std::string printable_name_;
194 double current_time_ = -1;
195 double current_dt_ = 0;
bool dependsOnProblem() const
Definition: TaskBase.cc:217
void onResizedCallback(std::function< void(void)> cb)
Definition: TaskBase.cc:463
Definition: TaskBase.h:74
Represents a set of parameters that can be loaded from a YAML file.
Definition: ConfigurableOrcaObject.h:14
virtual void print() const
Definition: TaskBase.cc:116
virtual void onActivated()
Definition: TaskBase.h:155
virtual void onActivation()
Definition: TaskBase.h:154
optim::ControlVariable getControlVariable() const
Definition: TaskBase.cc:280
bool isActivated() const
Definition: TaskBase.cc:106
double getRampDuration() const
Definition: TaskBase.cc:160
double getCurrentRampValue() const
Definition: TaskBase.cc:143
virtual bool rampDown(double time_since_stop)
Definition: TaskBase.cc:245
void onDeactivationCallback(std::function< void(void)> cb)
Definition: TaskBase.cc:476
virtual bool activate()
Definition: TaskBase.cc:308
bool hasWrench() const
Definition: TaskBase.cc:597
std::shared_ptr< Wrench > wrench()
Definition: TaskBase.cc:297
const std::string & getParentName() const
Returns the parent name if it exists, empty otherwise.
Definition: TaskBase.cc:60
virtual void onResized()
Definition: TaskBase.h:153
void onDeactivatedCallback(std::function< void(void)> cb)
Definition: TaskBase.cc:482
Definition: TaskBase.h:73
void onActivationCallback(std::function< void(void)> cb)
Definition: TaskBase.cc:445
bool hasChildren() const
Returns true if the task has children.
Definition: TaskBase.cc:50
virtual bool deactivate()
Definition: TaskBase.cc:488
void onComputeEndCallback(std::function< void(double, double)> cb)
Definition: TaskBase.cc:470
void onComputeBeginCallback(std::function< void(double, double)> cb)
Definition: TaskBase.cc:457
bool dependsOnWrench() const
Definition: TaskBase.cc:211
const std::string & getPrintableName() const
Returns the name that include parent name if present.
Definition: TaskBase.cc:65
std::shared_ptr< RobotModel > Ptr
Definition: RobotModel.h:111
std::shared_ptr< const optim::Problem > getProblem() const
Definition: TaskBase.cc:554
virtual void resize()
Definition: TaskBase.cc:250
inline::std::ostream & operator<<(::std::ostream &os, const TaskBase::State &s)
Definition: TaskBase.h:199
bool setRobotModel(robot::RobotModel::Ptr robot)
Definition: TaskBase.cc:180
bool dependsOnRobotJoints() const
Definition: TaskBase.cc:224
double getStopTime() const
Definition: TaskBase.cc:170
virtual void onCompute(double current_time, double dt)=0
State getState() const
Definition: TaskBase.cc:175
virtual void update(double current_time, double dt)
Definition: TaskBase.cc:331
virtual ~TaskBase()
Definition: TaskBase.cc:47
TaskBase(const std::string &name, optim::ControlVariable control_var)
Definition: TaskBase.cc:21
robot::RobotModel::Ptr robot()
Definition: TaskBase.cc:285
virtual void onDeactivation()
Definition: TaskBase.h:160
bool hasProblem() const
Definition: TaskBase.cc:587
Definition: TaskBase.h:69
bool isRobotInitialized() const
Definition: TaskBase.cc:133
void setRampDuration(double ramp_time)
Definition: TaskBase.cc:148
std::shared_ptr< const robot::RobotModel > getRobot() const
Definition: TaskBase.cc:291
void setRampValue(double new_val)
Definition: TaskBase.cc:138
double getStartTime() const
Definition: TaskBase.cc:165
bool hasRobot() const
Definition: TaskBase.cc:592
Definition: CartesianAccelerationPID.h:44
Definition: TaskBase.h:72
ControlVariable
Definition: ControlVariable.h:44
virtual void onDeactivated()
Definition: TaskBase.h:161
Definition: TaskBase.h:68
void addChild(TaskBase::Ptr e)
Add a child/slave task that will be updated BEFORE the parent task.
Definition: TaskBase.cc:89
bool dependsOnFloatingBase() const
Definition: TaskBase.cc:231
State
Represents the internal state of the task.
Definition: TaskBase.h:67
void onActivatedCallback(std::function< void(void)> cb)
Definition: TaskBase.cc:451
Definition: TaskBase.h:70
bool hasParent() const
Returns true if the task owned by a parent task.
Definition: TaskBase.cc:55
orca::common::MutexRecursive mutex
The recursive mutex that is locked during the update function. It is up to the external user to lock ...
Definition: TaskBase.h:146
std::shared_ptr< const common::Wrench > getWrench() const
Definition: TaskBase.cc:602
virtual bool setProblem(std::shared_ptr< const orca::optim::Problem > problem)
Definition: TaskBase.cc:511
The common base class for tasks and constraints.
Definition: TaskBase.h:59
virtual void onResize()=0
bool isComputing() const
Definition: TaskBase.cc:111
std::shared_ptr< TaskBase > Ptr
Definition: TaskBase.h:63
virtual bool rampUp(double time_since_start)
Definition: TaskBase.cc:240
Definition: TaskBase.h:71