Template Class ActionState
- Defined in File action_state.hpp 
Inheritance Relationships
Base Type
- public yasmin::State
Class Documentation
- 
template<typename ActionT>
 class ActionState : public yasmin::State
- A state class for handling ROS 2 action client operations. - This class encapsulates the behavior of a ROS 2 action client within a YASMIN state. It allows the creation and management of goals, feedback, and results associated with an action server. - Template Parameters:
- ActionT – The type of the action this state will interface with. 
 - Public Functions - 
inline ActionState(std::string action_name, CreateGoalHandler create_goal_handler, std::set<std::string> outcomes, int wait_timeout = -1, int response_timeout = -1, int maximum_retry = 3)
- Construct an ActionState with a specific action name and goal handler. - This constructor initializes the action state with a specified action name, goal handler, and optional timeout. - Parameters:
- action_name – The name of the action to communicate with. 
- create_goal_handler – A function that creates a goal for the action. 
- outcomes – A set of possible outcomes for this action state. 
- wait_timeout – (Optional) The maximum time to wait for the action server. Default is -1 (no timeout). 
- response_timeout – (Optional) The maximum time to wait for the action response. Default is -1 (no timeout). 
- maximum_retry – (Optional) Maximum retries of the action if it returns timeout. Default is 3. 
 
- Throws:
- std::invalid_argument – if create_goal_handler is nullptr. 
 
 - Construct an ActionState with a specific action name and goal handler. - This constructor initializes the action state with a specified action name, goal handler, and optional timeout. - Parameters:
- action_name – The name of the action to communicate with. 
- create_goal_handler – A function that creates a goal for the action. 
- outcomes – A set of possible outcomes for this action state. 
- callback_group – (Optional) The callback group for the action client. 
- wait_timeout – (Optional) The maximum time to wait for the action server. Default is -1 (no timeout). 
- response_timeout – (Optional) The maximum time to wait for the action response. Default is -1 (no timeout). 
- maximum_retry – (Optional) Maximum retries of the action if it returns timeout. Default is 3. 
 
- Throws:
- std::invalid_argument – if create_goal_handler is nullptr. 
 
 - 
inline ActionState(std::string action_name, CreateGoalHandler create_goal_handler, ResultHandler result_handler = nullptr, FeedbackHandler feedback_handler = nullptr, int wait_timeout = -1, int response_timeout = -1, int maximum_retry = 3)
- Construct an ActionState with result and feedback handlers. - This constructor allows the specification of result and feedback handlers. - Parameters:
- action_name – The name of the action to communicate with. 
- create_goal_handler – A function that creates a goal for the action. 
- result_handler – (Optional) A function to handle the result of the action. 
- feedback_handler – (Optional) A function to handle feedback from the action. 
- wait_timeout – (Optional) The maximum time to wait for the action server. Default is -1 (no timeout). 
- response_timeout – (Optional) The maximum time to wait for the action response. Default is -1 (no timeout). 
- maximum_retry – (Optional) Maximum retries of the action if it returns timeout. Default is 3. 
 
- Throws:
- std::invalid_argument – if create_goal_handler is nullptr. 
 
 - 
inline ActionState(std::string action_name, CreateGoalHandler create_goal_handler, std::set<std::string> outcomes, ResultHandler result_handler = nullptr, FeedbackHandler feedback_handler = nullptr, int wait_timeout = -1, int response_timeout = -1, int maximum_retry = 3)
- Construct an ActionState with outcomes and handlers. - This constructor allows specifying outcomes along with handlers for results and feedback. - Parameters:
- action_name – The name of the action to communicate with. 
- create_goal_handler – A function that creates a goal for the action. 
- outcomes – A set of possible outcomes for this action state. 
- result_handler – (Optional) A function to handle the result of the action. 
- feedback_handler – (Optional) A function to handle feedback from the action. 
- wait_timeout – (Optional) The maximum time to wait for the action server. Default is -1 (no timeout). 
- response_timeout – (Optional) The maximum time to wait for the action response. Default is -1 (no timeout). 
- maximum_retry – (Optional) Maximum retries of the action if it returns timeout. Default is 3. 
 
- Throws:
- std::invalid_argument – if create_goal_handler is nullptr. 
 
 - Construct an ActionState with a specified node and action name. - This constructor allows specifying a ROS 2 node in addition to the action name and goal handler. - Parameters:
- node – A shared pointer to the ROS 2 node. 
- action_name – The name of the action to communicate with. 
- create_goal_handler – A function that creates a goal for the action. 
- outcomes – A set of possible outcomes for this action state. 
- result_handler – (Optional) A function to handle the result of the action. 
- feedback_handler – (Optional) A function to handle feedback from the action. 
- callback_group – (Optional) The callback group for the action client. 
- wait_timeout – (Optional) The maximum time to wait for the action server. Default is -1 (no timeout). 
- response_timeout – (Optional) The maximum time to wait for the action response. Default is -1 (no timeout). 
- maximum_retry – (Optional) Maximum retries of the action if it returns timeout. Default is 3. 
 
- Throws:
- std::invalid_argument – if create_goal_handler is nullptr. 
 
 - 
inline void cancel_state()
- Cancel the current action state. - This function cancels the ongoing action and waits for the cancellation to complete. 
 - 
inline void cancel_done()
- Notify that the action cancellation has completed. - This function is called to notify that the action cancellation process has finished. 
 - Execute the action and return the outcome. - This function creates a goal using the provided goal handler, sends the goal to the action server, and waits for the result or feedback. - Possible outcomes include: - basic_outcomes::SUCCEED: The action succeeded.
- basic_outcomes::ABORT: The action was aborted.
- basic_outcomes::CANCEL: The action was canceled.
- basic_outcomes::TIMEOUT: The action server was not available in time.
 - Parameters:
- blackboard – A shared pointer to the blackboard used for communication. 
- Returns:
- A string representing the outcome of the action execution. 
 
 - Protected Attributes - 
rclcpp::Node::SharedPtr node_
- Shared pointer to the ROS 2 node.