#include <mc_control/fsm/states/MetaTasks.h>
Classes | |
struct | TaskCriteria |
Public Member Functions | |
void | configure (const mc_rtc::Configuration &config) override |
void | start (Controller &) override |
bool | run (Controller &) override |
void | teardown (Controller &) override |
Public Member Functions inherited from mc_control::fsm::State | |
virtual | ~State () |
void | configure_ (const mc_rtc::Configuration &config) |
void | start_ (Controller &ctl) |
void | teardown_ (Controller &ctl) |
virtual void | stop (Controller &) |
virtual bool | read_msg (std::string &) |
virtual bool | read_write_msg (std::string &, std::string &) |
const std::string & | output () const noexcept |
const std::string & | name () |
void | name (const std::string &n) |
Protected Attributes | |
std::vector< std::string > | outputCrit_ |
std::map< std::string, TaskCriteria > | criterias_ |
bool | finished_first_ = false |
Protected Attributes inherited from mc_control::fsm::State | |
mc_rtc::Configuration | add_contacts_config_ |
mc_rtc::Configuration | remove_contacts_config_ |
mc_rtc::Configuration | add_contacts_after_config_ |
mc_rtc::Configuration | remove_contacts_after_config_ |
mc_rtc::Configuration | add_collisions_config_ |
mc_rtc::Configuration | remove_collisions_config_ |
mc_rtc::Configuration | add_collisions_after_config_ |
mc_rtc::Configuration | remove_collisions_after_config_ |
mc_rtc::Configuration | constraints_config_ |
mc_rtc::Configuration | tasks_config_ |
mc_rtc::Configuration | remove_posture_task_ |
mc_rtc::Configuration | config_ |
std::vector< mc_solver::ConstraintSetPtr > | constraints_ |
std::vector< std::pair< mc_tasks::MetaTaskPtr, mc_rtc::Configuration > > | tasks_ |
std::vector< mc_tasks::PostureTaskPtr > | postures_ |
Additional Inherited Members | |
Protected Member Functions inherited from mc_control::fsm::State | |
void | output (const std::string &o) |
Implements a generic tasks state
This tasks creates an arbitrary number of MetaTasks and executes them until completion criteria are fullfiled for each tasks.
The tasks in the state are configured through the "tasks" entry which a JSON object.
The keys are the name of the tasks and values are MetaTask objects as expected by MetaTaskLoader plus an optional "completion" criteria that represents one or more completion criteria.
The names of the tasks are only relevant for the state. You can override the actual task's name using the name entry in the Task's configuration.
If the "completion" entry is absent and if there is no existing completion entry for the related task then this task is added but not considered as part of the completion criteria (e.g. you can add a CoMTask and an EndEffectorTask but only care for the completion of the later).
When the "tasks" entry is read multiple times, the following ensues:
|
overridevirtual |
Called to configure the state.
This is called multiple times:
The default implementation simply loads the provided configuration into the config_
protected members. You can override this behavior to implement a more complex loading logic.
You can access this configuration either via the config_
variable
Reimplemented from mc_control::fsm::State.
|
overridevirtual |
Called every iteration until it returns true
Implements mc_control::fsm::State.
|
overridevirtual |
Called before the state starts being run
This will be called only once with the state fully configured.
Implements mc_control::fsm::State.
|
overridevirtual |
Called right before destruction
Implements mc_control::fsm::State.
|
protected |
Completion criterias as a map index by task name
|
protected |
True when the state has already been completed at least once
|
protected |
Completion criterias used to generate the state's output