pycram.designators.motion_designator
====================================

.. py:module:: pycram.designators.motion_designator


Classes
-------

.. autoapisummary::

   pycram.designators.motion_designator.MoveMotion
   pycram.designators.motion_designator.MoveTCPMotion
   pycram.designators.motion_designator.LookingMotion
   pycram.designators.motion_designator.MoveGripperMotion
   pycram.designators.motion_designator.DetectingMotion
   pycram.designators.motion_designator.MoveArmJointsMotion
   pycram.designators.motion_designator.WorldStateDetectingMotion
   pycram.designators.motion_designator.MoveJointsMotion
   pycram.designators.motion_designator.OpeningMotion
   pycram.designators.motion_designator.ClosingMotion
   pycram.designators.motion_designator.TalkingMotion
   pycram.designators.motion_designator.MoveTCPWaypointsMotion


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

.. py:class:: MoveMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Moves the robot to a designated location


   .. py:attribute:: target
      :type:  pycram.datastructures.pose.PoseStamped

      Location to which the robot should be moved



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


      Keep the joint states of the robot during/at the end of the motion



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: MoveTCPMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Moves the Tool center point (TCP) of the robot


   .. py:attribute:: target
      :type:  pycram.datastructures.pose.PoseStamped

      Target pose to which the TCP should be moved



   .. py:attribute:: arm
      :type:  pycram.datastructures.enums.Arms

      Arm with the TCP that should be moved to the target



   .. py:attribute:: allow_gripper_collision
      :type:  typing_extensions.Optional[bool]
      :value: None


      If the gripper can collide with something



   .. py:attribute:: movement_type
      :type:  typing_extensions.Optional[pycram.datastructures.enums.MovementType]

      The type of movement that should be performed.



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



   .. py:method:: __str__()


   .. py:method:: __repr__()


.. py:class:: LookingMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Lets the robot look at a point


   .. py:attribute:: target
      :type:  pycram.datastructures.pose.PoseStamped


   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: MoveGripperMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Opens or closes the gripper


   .. py:attribute:: motion
      :type:  pycram.datastructures.enums.GripperState

      Motion that should be performed, either 'open' or 'close'



   .. py:attribute:: gripper
      :type:  pycram.datastructures.enums.Arms

      Name of the gripper that should be moved



   .. py:attribute:: allow_gripper_collision
      :type:  typing_extensions.Optional[bool]
      :value: None


      If the gripper is allowed to collide with something



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



   .. py:method:: __str__()


   .. py:method:: __repr__()


.. py:class:: DetectingMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Tries to detect an object in the FOV of the robot

   returns: ObjectDesignatorDescription.Object or Error: PerceptionObjectNotFound


   .. py:attribute:: technique
      :type:  pycram.datastructures.enums.DetectionTechnique

      Detection technique that should be used



   .. py:attribute:: state
      :type:  pycram.datastructures.enums.DetectionState

      State of the detection



   .. py:attribute:: object_designator_description
      :type:  typing_extensions.Optional[pycram.world_concepts.world_object.Object]
      :value: None


      Description of the object that should be detected



   .. py:attribute:: region
      :type:  typing_extensions.Optional[pycrap.ontologies.Location]
      :value: None


      Region in which the object should be detected



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: MoveArmJointsMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Moves the joints of each arm into the given position


   .. py:attribute:: left_arm_poses
      :type:  typing_extensions.Optional[typing_extensions.Dict[str, float]]
      :value: None


      Target positions for the left arm joints



   .. py:attribute:: right_arm_poses
      :type:  typing_extensions.Optional[typing_extensions.Dict[str, float]]
      :value: None


      Target positions for the right arm joints



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: WorldStateDetectingMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Detects an object based on the world state.


   .. py:attribute:: object_type
      :type:  pycram.datastructures.enums.ObjectType

      Object type that should be detected



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: MoveJointsMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Moves any joint on the robot


   .. py:attribute:: names
      :type:  list

      List of joint names that should be moved 



   .. py:attribute:: positions
      :type:  list

      Target positions of joints, should correspond to the list of names



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: OpeningMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Designator for opening container


   .. py:attribute:: object_part
      :type:  pycram.object_descriptors.urdf.ObjectDescription.Link

      Object designator for the drawer handle



   .. py:attribute:: arm
      :type:  pycram.datastructures.enums.Arms

      Arm that should be used



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: ClosingMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Designator for closing a container


   .. py:attribute:: object_part
      :type:  pycram.object_descriptors.urdf.ObjectDescription.Link

      Object designator for the drawer handle



   .. py:attribute:: arm
      :type:  pycram.datastructures.enums.Arms

      Arm that should be used



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: TalkingMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Talking Motion, lets the robot say a sentence.


   .. py:attribute:: cmd
      :type:  str

      Talking Motion, let the robot say a sentence.



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



.. py:class:: MoveTCPWaypointsMotion

   Bases: :py:obj:`pycram.designator.BaseMotion`


   Moves the Tool center point (TCP) of the robot


   .. py:attribute:: waypoints
      :type:  typing_extensions.List[pycram.datastructures.pose.PoseStamped]

      Waypoints the TCP should move along 



   .. py:attribute:: arm
      :type:  pycram.datastructures.enums.Arms

      Arm with the TCP that should be moved to the target



   .. py:attribute:: allow_gripper_collision
      :type:  typing_extensions.Optional[bool]
      :value: None


      If the gripper can collide with something



   .. py:attribute:: movement_type
      :type:  pycram.datastructures.enums.WaypointsMovementType

      The type of movement that should be performed.



   .. py:method:: perform()

      Passes this designator to the process module for execution. Will be overwritten by each motion.



   .. py:method:: __str__()


   .. py:method:: __repr__()


