![]() |
ORCA: Optimization-based framework for Robotic Control Applications
|
The common base class for tasks and constraints. More...
#include <TaskBase.h>
Public Types | |
enum | State { Init = 0, Resized, Activating, Activated, Deactivating, Deactivated, Error } |
Represents the internal state of the task. More... | |
using | Ptr = std::shared_ptr< TaskBase > |
![]() | |
using | Ptr = std::shared_ptr< ConfigurableOrcaObject > |
using | ParamMap = std::map< std::string, ParameterBase *> |
Public Member Functions | |
TaskBase (const std::string &name, optim::ControlVariable control_var) | |
virtual | ~TaskBase () |
bool | isActivated () const |
bool | isComputing () const |
bool | setRobotModel (robot::RobotModel::Ptr robot) |
optim::ControlVariable | getControlVariable () const |
virtual bool | activate () |
virtual void | update (double current_time, double dt) |
virtual bool | deactivate () |
virtual void | print () const |
virtual bool | setProblem (std::shared_ptr< const orca::optim::Problem > problem) |
bool | hasProblem () const |
bool | hasRobot () const |
bool | dependsOnProblem () const |
bool | dependsOnWrench () const |
bool | dependsOnRobotJoints () const |
bool | dependsOnFloatingBase () const |
bool | hasWrench () const |
bool | isRobotInitialized () const |
State | getState () const |
void | setRampDuration (double ramp_time) |
double | getRampDuration () const |
double | getCurrentRampValue () const |
double | getStartTime () const |
double | getStopTime () const |
std::shared_ptr< const optim::Problem > | getProblem () const |
std::shared_ptr< const common::Wrench > | getWrench () const |
std::shared_ptr< const robot::RobotModel > | getRobot () const |
void | addChild (TaskBase::Ptr e) |
Add a child/slave task that will be updated BEFORE the parent task. More... | |
bool | hasParent () const |
Returns true if the task owned by a parent task. More... | |
bool | hasChildren () const |
Returns true if the task has children. More... | |
const std::string & | getParentName () const |
Returns the parent name if it exists, empty otherwise. More... | |
const std::string & | getPrintableName () const |
Returns the name that include parent name if present. More... | |
void | onResizedCallback (std::function< void(void)> cb) |
void | onActivationCallback (std::function< void(void)> cb) |
void | onActivatedCallback (std::function< void(void)> cb) |
void | onComputeBeginCallback (std::function< void(double, double)> cb) |
void | onComputeEndCallback (std::function< void(double, double)> cb) |
void | onDeactivationCallback (std::function< void(void)> cb) |
void | onDeactivatedCallback (std::function< void(void)> cb) |
![]() | |
ConfigurableOrcaObject (const std::string &config_name) | |
virtual | ~ConfigurableOrcaObject () |
template<class T > | |
void | addParameter (const std::string ¶m_name, Parameter< T > *param, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0) |
Returns true if all params added with have been set. More... | |
template<class T > | |
void | addParameter (const std::string ¶m_name, T ¶m, ParamPolicy policy=ParamPolicy::Required, std::function< void()> on_loading_success=0) |
ParameterBase * | getParameter (const std::string ¶m_name) |
Returns a param via its name. More... | |
void | printParameters () const |
Print all parameters to std::cout. More... | |
bool | configureFromFile (const std::string &yaml_url) |
Configure the task from YAML/JSON file. It must contain all the required parameters. More... | |
bool | configureFromString (const std::string &yaml_str) |
Configure the task from YAML/JSON string. It must contain all the required parameters. More... | |
bool | isConfigured () const |
const ParamMap & | getParameters () const |
void | onConfigureSuccess (std::function< void()> f) |
![]() | |
OrcaObject (const std::string &name) | |
virtual | ~OrcaObject () |
const std::string & | getName () const |
void | setName (const std::string &name) |
Public Attributes | |
orca::common::MutexRecursive | mutex |
The recursive mutex that is locked during the update function. It is up to the external user to lock this mutex to protect the task attributes. More... | |
Protected Member Functions | |
virtual void | resize () |
robot::RobotModel::Ptr | robot () |
std::shared_ptr< Wrench > | wrench () |
virtual void | onResize ()=0 |
virtual void | onResized () |
virtual void | onActivation () |
virtual void | onActivated () |
virtual bool | rampUp (double time_since_start) |
void | setRampValue (double new_val) |
virtual void | onCompute (double current_time, double dt)=0 |
virtual bool | rampDown (double time_since_stop) |
virtual void | onDeactivation () |
virtual void | onDeactivated () |
The common base class for tasks and constraints.
This class contains a model of the robot, the problem in which the tasks is currently being used, and a state machine. Although this class is called TaskBase, both tasks and constraints inherit from this.
using orca::common::TaskBase::Ptr = std::shared_ptr<TaskBase> |
Represents the internal state of the task.
TaskBase::TaskBase | ( | const std::string & | name, |
optim::ControlVariable | control_var | ||
) |
|
virtual |
|
virtual |
void TaskBase::addChild | ( | TaskBase::Ptr | e | ) |
Add a child/slave task that will be updated BEFORE the parent task.
|
virtual |
bool TaskBase::dependsOnFloatingBase | ( | ) | const |
bool TaskBase::dependsOnProblem | ( | ) | const |
bool TaskBase::dependsOnRobotJoints | ( | ) | const |
bool TaskBase::dependsOnWrench | ( | ) | const |
ControlVariable TaskBase::getControlVariable | ( | ) | const |
double TaskBase::getCurrentRampValue | ( | ) | const |
const std::string & TaskBase::getParentName | ( | ) | const |
Returns the parent name if it exists, empty otherwise.
const std::string & TaskBase::getPrintableName | ( | ) | const |
Returns the name that include parent name if present.
std::shared_ptr< const Problem > TaskBase::getProblem | ( | ) | const |
double TaskBase::getRampDuration | ( | ) | const |
std::shared_ptr< const RobotModel > TaskBase::getRobot | ( | ) | const |
double TaskBase::getStartTime | ( | ) | const |
TaskBase::State TaskBase::getState | ( | ) | const |
double TaskBase::getStopTime | ( | ) | const |
std::shared_ptr< const Wrench > TaskBase::getWrench | ( | ) | const |
bool TaskBase::hasChildren | ( | ) | const |
Returns true if the task has children.
bool TaskBase::hasParent | ( | ) | const |
Returns true if the task owned by a parent task.
bool TaskBase::hasProblem | ( | ) | const |
bool TaskBase::hasRobot | ( | ) | const |
bool TaskBase::hasWrench | ( | ) | const |
bool TaskBase::isActivated | ( | ) | const |
bool TaskBase::isComputing | ( | ) | const |
bool TaskBase::isRobotInitialized | ( | ) | const |
|
inlineprotectedvirtual |
void TaskBase::onActivatedCallback | ( | std::function< void(void)> | cb | ) |
|
inlineprotectedvirtual |
Reimplemented in orca::common::CartesianAccelerationPID, orca::common::Wrench, orca::task::WrenchTask, orca::task::JointTorqueTask, orca::task::CartesianTask, orca::task::JointAccelerationTask, orca::task::RegularisationTask< C >, orca::constraint::ContactExistenceConditionConstraint, and orca::constraint::JointPositionLimitConstraint.
void TaskBase::onActivationCallback | ( | std::function< void(void)> | cb | ) |
|
protectedpure virtual |
void TaskBase::onComputeBeginCallback | ( | std::function< void(double, double)> | cb | ) |
void TaskBase::onComputeEndCallback | ( | std::function< void(double, double)> | cb | ) |
|
inlineprotectedvirtual |
Reimplemented in orca::common::Wrench.
void TaskBase::onDeactivatedCallback | ( | std::function< void(void)> | cb | ) |
|
inlineprotectedvirtual |
Reimplemented in orca::task::GenericTask, and orca::task::RegularisationTask< C >.
void TaskBase::onDeactivationCallback | ( | std::function< void(void)> | cb | ) |
|
protectedpure virtual |
Implemented in orca::common::CartesianAccelerationPID, orca::constraint::GenericConstraint, orca::constraint::Contact, orca::common::Wrench, orca::task::WrenchTask, orca::constraint::LinearizedCoulombConstraint, orca::task::RegularisationTask< C >, orca::task::CartesianTask, orca::task::JointTorqueTask, orca::task::JointAccelerationTask, orca::constraint::ContactExistenceConditionConstraint, orca::constraint::JointLimitConstraint, and orca::constraint::DynamicsEquationConstraint.
|
inlineprotectedvirtual |
void TaskBase::onResizedCallback | ( | std::function< void(void)> | cb | ) |
|
virtual |
|
protectedvirtual |
Reimplemented in orca::task::GenericTask.
|
protectedvirtual |
Reimplemented in orca::task::GenericTask.
|
protectedvirtual |
|
protected |
|
virtual |
void TaskBase::setRampDuration | ( | double | ramp_time | ) |
|
protected |
bool TaskBase::setRobotModel | ( | robot::RobotModel::Ptr | robot | ) |
|
virtual |
|
protected |
|
mutable |
The recursive mutex that is locked during the update function. It is up to the external user to lock this mutex to protect the task attributes.