|
|
| MPTask (Robot *const _robot) |
|
| MPTask (MPProblem *const _problem, XMLNode &_node) |
|
| MPTask (const MPTask &_other) |
| Copy.
|
|
| MPTask (MPTask &&_other) |
| Move.
|
|
| ~MPTask () |
|
|
MPTask & | operator= (const MPTask &_other) |
| Copy.
|
|
MPTask & | operator= (MPTask &&_other) |
| Move.
|
|
|
Robot * | GetRobot () const noexcept |
| Get the robot associated with this task.
|
|
void | SetRobot (Robot *const _r) |
|
const std::string & | GetLabel () const noexcept |
| Get the semantic label for this task.
|
|
void | SetLabel (const std::string &_label) noexcept |
|
nonstd::status & | GetStatus () noexcept |
| Get the status object for this task.
|
|
const nonstd::status & | GetStatus () const noexcept |
|
bool | Empty () const noexcept |
|
size_t | GetNumGoals () const noexcept |
| Get the number of goals in this task.
|
|
|
The task will take ownership of any added constraints and delete them when necessary.
|
void | SetStartConstraint (std::unique_ptr< Constraint > &&_c) |
|
void | AddPathConstraint (std::unique_ptr< Constraint > &&_c) |
|
void | AddGoalConstraint (std::unique_ptr< Constraint > &&_c) |
|
const Constraint * | GetStartConstraint () const noexcept |
| Get start constraint.
|
|
const ConstraintSet & | GetPathConstraints () const noexcept |
| Get all path constraints.
|
|
const ConstraintSet & | GetGoalConstraints () const noexcept |
| Get all goal constraints.
|
|
void | ClearGoalConstraints () |
| Remove all goal constraints.
|
|
void | SetCapability (const std::string &_capability) |
|
const std::string & | GetCapability () const noexcept |
|
|
Store and fetch estimated times for beginning and completing this task.
|
void | SetEstimatedStartTime (const double _time) noexcept |
|
void | SetEstimatedCompletionTime (const double _time) noexcept |
|
double | GetEstimatedStartTime () const noexcept |
| Get the estimated start time for the task.
|
|
double | GetEstimatedCompletionTime () const noexcept |
| Get the estimated completion time for the task.
|
|
void | SetReleaseWindow (const std::pair< double, double > _release) noexcept |
| Set release window.
|
|
void | SetDeadlineWindow (const std::pair< double, double > _deadline) noexcept |
| Set deadline window.
|
|
std::pair< double, double > | GetReleaseWindow () const noexcept |
| Get the release window.
|
|
std::pair< double, double > | GetDeadlineWindow () const noexcept |
| Get the deadline window.
|
|
|
bool | EvaluateCapability (const Robot *const _r) const |
|
bool | EvaluateStartConstraints (const Cfg &_cfg) const |
|
bool | EvaluatePathConstraints (const Cfg &_cfg) const |
|
bool | EvaluateGoalConstraints (const Cfg &_cfg) const |
|
bool | EvaluateGoalConstraints (const Cfg &_cfg, const size_t _index) const |
|
Describes a motion task for a single robot in terms of start/goal conditions and constraints on allowable trajectories.
Tasks are defined by a robot and three sets of constraints:
- Start constraints describe the conditions required to start a task.
- Path constraints describe restrictions that must be observed throughout a valid solution.
- Goal constraints describe the conditions that must be met to complete a task. A specific robot may be assigned to perform the task, or null may be used to indicate that any robot may perform it. A specific capability may also be required.
- Todo:
- We should remove the capability here and redefine it as a constraint (since the constraints should fully define the task). The fact that a capability is or is not required should generally be discerned from the problem, while a capability constraint would more likely represent a deliberate restriction that is not strictly required (perhaps to express an operational preference). We will also eventually encounter cases where multiple capabilities are required to satsify a task.
- Todo:
- Support the use of path constraints in the library code, which currently doesn't care about this.