![]() |
Parasol Planning Library (PPL)
|
#include <GroupTask.h>
Public Types | |
Local Types | |
typedef std::vector< MPTask > | TaskSet |
A set of individual tasks. More... | |
typedef GenericStateGraph< Cfg, DefaultWeight< Cfg > > | IndividualRoadmap |
typedef GroupCfg< IndividualRoadmap > | GroupCfgType |
typedef TaskSet::iterator | iterator |
typedef TaskSet::const_iterator | const_iterator |
Public Member Functions | |
Property Accessors | |
RobotGroup * | GetRobotGroup () const noexcept |
Get the robot associated with this task. More... | |
void | SetRobotGroup (RobotGroup *const _r) |
const std::string & | GetLabel () const noexcept |
Get the semantic label for this task. More... | |
void | SetLabel (const std::string &_label) noexcept |
Set the semantic label for this task. More... | |
size_t | Size () const noexcept |
Get the number of individual tasks within this group task. More... | |
bool | Empty () const noexcept |
nonstd::status & | GetStatus () noexcept |
Get the status object for this task. More... | |
const nonstd::status & | GetStatus () const noexcept |
Individual Tasks | |
Access, modify, and iterate over the individual tasks. | |
size_t | GetNumGoals () const noexcept |
Get the number of goals in the longest (most goals) task. More... | |
void | AddTask (const MPTask &_t) |
iterator | RemoveTask (iterator _iter) |
iterator | begin () noexcept |
iterator | end () noexcept |
const_iterator | begin () const noexcept |
Get iterator to beginning of tasks. More... | |
const_iterator | end () const noexcept |
Get iterator to end of tasks. More... | |
Constraint Accessors | |
void | GetStartConstraintCenter (GroupCfgType &_center) const noexcept |
Constraint Evaluation | |
bool | EvaluateStartConstraints (const GroupCfgType &_cfg) const |
bool | EvaluatePathConstraints (const GroupCfgType &_cfg) const |
bool | EvaluateGoalConstraints (const GroupCfgType &_cfg) const |
bool | EvaluateGoalConstraints (const GroupCfgType &_cfg, const size_t _index) const |
Disassembly Items | |
RobotGroup * | GetEndEffectorGroup () const noexcept |
Get the optional manipulator robot group associated with this task. More... | |
RobotGroup * | GetManipulatorGroup () const noexcept |
Get the optional manipulator robot group associated with this task. More... | |
Robot * | GetEndEffectorRobot () |
Get the robot pointer for the (optional) end effector for the group task. More... | |
Robot * | GetManipulatorRobot () |
Get the robot pointer for the (optional) manipulator for this group task. More... | |
Construction | |
GroupTask (RobotGroup *const _robotGroup) | |
GroupTask (MPProblem *const _problem, XMLNode &_node) | |
virtual | ~GroupTask () |
static std::unique_ptr< GroupTask > | Factory (MPProblem *const _problem, XMLNode &_node) |
Describes a motion task for a group of robots as a set of individual tasks.
The individual tasks may be assigned to specific robots in the group, or they may be completable by any robot in the group.
typedef TaskSet::const_iterator GroupTask::const_iterator |
typedef GenericStateGraph<Cfg, DefaultWeight<Cfg> > GroupTask::IndividualRoadmap |
typedef TaskSet::iterator GroupTask::iterator |
typedef std::vector<MPTask> GroupTask::TaskSet |
A set of individual tasks.
|
explicit |
Create an empty task for a given robot.
_robotGroup | The robot group assigned to this task. |
Parse the set of task constraints described in an XML node and verify that tasks are assigned to robots in group.
_problem | The MPProblem for this task. |
_node | The XML node to parse. |
|
virtualdefault |
void GroupTask::AddTask | ( | const MPTask & | _t | ) |
Add an individual task.
_t | The individual task to add. |
|
noexcept |
Get iterator to beginning of tasks.
|
noexcept |
|
noexcept |
Check if there are no individual tasks.
|
noexcept |
Get iterator to end of tasks.
|
noexcept |
bool GroupTask::EvaluateGoalConstraints | ( | const GroupCfgType & | _cfg | ) | const |
Evaluate whether a configuration satisfies the final goal constraints.
_cfg | The configuration to check. |
bool GroupTask::EvaluateGoalConstraints | ( | const GroupCfgType & | _cfg, |
const size_t | _index | ||
) | const |
Evaluate whether a configuration satisfies the constraints for a designated goal.
_cfg | The configuration to check. |
_index | The goal index to check. |
bool GroupTask::EvaluatePathConstraints | ( | const GroupCfgType & | _cfg | ) | const |
Evaluate whether a configuration satisfies the path constraints.
_cfg | The configuration to check. |
bool GroupTask::EvaluateStartConstraints | ( | const GroupCfgType & | _cfg | ) | const |
Evaluate whether a configuration satisfies the start constraints.
_cfg | The configuration to check. |
|
static |
Generate a group task of the appropriate type.
_problem | The MPProblem for this task. |
_node | The XML node to parse. |
|
noexcept |
Get the optional manipulator robot group associated with this task.
Robot * GroupTask::GetEndEffectorRobot | ( | ) |
Get the robot pointer for the (optional) end effector for the group task.
|
noexcept |
Get the semantic label for this task.
|
noexcept |
Get the optional manipulator robot group associated with this task.
Robot * GroupTask::GetManipulatorRobot | ( | ) |
Get the robot pointer for the (optional) manipulator for this group task.
|
noexcept |
Get the number of goals in the longest (most goals) task.
|
noexcept |
Get the robot associated with this task.
|
noexcept |
|
noexcept |
|
noexcept |
Get the status object for this task.
GroupTask::iterator GroupTask::RemoveTask | ( | iterator | _iter | ) |
Remove an individual task.
_iter | An iterator to the task to remove. |
|
noexcept |
Set the semantic label for this task.
void GroupTask::SetRobotGroup | ( | RobotGroup *const | _r | ) |
Assign this task to another robot group. If the new group is different, all individual tasks will have their robot pointers cleared (since there is no universal means of mapping the individual tasks to the new robots).
_r | The destination robot which will receive this assignment. |
|
noexcept |
Get the number of individual tasks within this group task.