pycram.datastructures.grasp
===========================

.. py:module:: pycram.datastructures.grasp


Classes
-------

.. autoapisummary::

   pycram.datastructures.grasp.GraspDescription
   pycram.datastructures.grasp.PreferredGraspAlignment


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

.. py:class:: GraspDescription

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


   Represents a grasp description with a side grasp, top face, and orientation alignment.


   .. py:attribute:: approach_direction
      :type:  pycram.datastructures.enums.Grasp

      The primary approach direction. Must be one of {Grasp.FRONT, Grasp.BACK, Grasp.LEFT, Grasp.RIGHT}.



   .. py:attribute:: vertical_alignment
      :type:  typing_extensions.Optional[pycram.datastructures.enums.Grasp]
      :value: None


      The vertical alignment when grasping the pose, or None if not applicable. Must be one of {Grasp.TOP, Grasp.BOTTOM, None}.



   .. py:attribute:: rotate_gripper
      :type:  bool
      :value: False


      Indicates if the gripper should be rotated by 90°. Must be a boolean.



   .. py:method:: __post_init__()


   .. py:method:: __hash__()


   .. py:method:: as_list() -> typing_extensions.List[typing_extensions.Union[pycram.datastructures.enums.Grasp, typing_extensions.Optional[pycram.datastructures.enums.Grasp], bool]]

      :return: A list representation of the grasp description.



.. py:class:: PreferredGraspAlignment

   Description of the preferred grasp alignment for an object.


   .. py:attribute:: preferred_axis
      :type:  typing_extensions.Optional[pycram.datastructures.enums.AxisIdentifier]

      The preferred axis, X, Y, or Z, for grasping the object, or None if not specified.



   .. py:attribute:: with_vertical_alignment
      :type:  bool

      Indicates if the object should be grasped with a vertical alignment.



   .. py:attribute:: with_rotated_gripper
      :type:  bool

      Indicates if the gripper should be rotated by 90° around X.



