libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
Sem::ActionsManager Class Reference

Public Member Functions

 ActionsManager (Actions *actions, PlanParts *planparts)
 
bool isActionPossible (ActionType act_type, HRI_AGENT_TYPE agent_type, std::string &report)
 ActionsManager::isActionPossible. More...
 
std::vector< PlanningPartgetJointsForAction (ActionType act_type, HRI_AGENT_TYPE agent_type, bool is_hri)
 getJointsForAction uses Actions and PlanParts to retrieve set of joints to use. More...
 
Actionsactions () const
 
void setActions (Actions *actions)
 
PlanPartsplanParts () const
 
void setPlanParts (PlanParts *planParts)
 

Member Function Documentation

std::vector< PlanningPart > Sem::ActionsManager::getJointsForAction ( ActionType  act_type,
HRI_AGENT_TYPE  agent_type,
bool  is_hri 
)

getJointsForAction uses Actions and PlanParts to retrieve set of joints to use.

Parameters
act_type
agent_type
is_hri
Returns
a vector of PlanningPart, each of them is an alternative (e.g. left arm/right arm).
bool Sem::ActionsManager::isActionPossible ( ActionType  act_type,
HRI_AGENT_TYPE  agent_type,
std::string &  report 
)

ActionsManager::isActionPossible.

Parameters
act_type[in]
agent_type[in]
report[out]
Returns

possible reports (and reasons why it returns false):

  • "action <action type> not defined" : no definition found for this action (in json files)
  • "action <action type> is marked as not feasible by agents of type <agent type>" : the agent type is in the exlcude list, or not in the include list, and one of them exists;
  • "agent type <agent type> has no plan part for planning type <planning type> required for the action <action type>" : there is a planning part required by the action that is not defined for the agent type.
  • "ok" : if and only if return true

The documentation for this class was generated from the following files: