pycram.robot_plans.actions.base
===============================

.. py:module:: pycram.robot_plans.actions.base


Classes
-------

.. autoapisummary::

   pycram.robot_plans.actions.base.ActionDescription


Module Contents
---------------

.. py:class:: ActionDescription

   Bases: :py:obj:`pycram.has_parameters.HasParameters`


   Base class for everything that contains potentially parameters for a plan.


   .. py:attribute:: execution_data
      :type:  pycram.datastructures.dataclasses.ExecutionData

      Additional data that  is collected before and after the execution of the action.



   .. py:attribute:: _plan_node
      :type:  pycram.plan.PlanNode
      :value: None



   .. py:attribute:: _pre_perform_callbacks
      :value: []



   .. py:attribute:: _post_perform_callbacks
      :value: []



   .. py:property:: plan_node
      :type: pycram.plan.PlanNode



   .. py:property:: plan_struct
      :type: pycram.plan.Plan



   .. py:property:: world
      :type: semantic_digital_twin.world.World



   .. py:property:: context
      :type: pycram.datastructures.dataclasses.Context



   .. py:property:: robot_view
      :type: semantic_digital_twin.robots.abstract_robot.AbstractRobot



   .. py:method:: __post_init__()


   .. py:method:: perform() -> typing_extensions.Any

      Full execution: pre-check, plan, post-check



   .. py:method:: plan() -> typing_extensions.Any
      :abstractmethod:


      Symbolic plan. Should only call motions or sub-actions.



   .. py:method:: validate_precondition()
      :abstractmethod:


      Symbolic/world state precondition validation.



   .. py:method:: validate_postcondition(result: typing_extensions.Optional[typing_extensions.Any] = None)
      :abstractmethod:


      Symbolic/world state postcondition validation.



   .. py:method:: pre_perform(func) -> typing_extensions.Callable
      :classmethod:



   .. py:method:: post_perform(func) -> typing_extensions.Callable
      :classmethod:



