Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:pycram:designator [2021/06/18 09:06] – [Motion Designator] jdechdoc:pycram:designator [2021/06/18 10:16] jdech
Line 105: Line 105:
  
 ===== Action Designator ===== ===== Action Designator =====
-Action designator are a high level representation of movements which compose different motion designator. For example the is the transport action designator which transports an object from one position to another. This includes going to the location of the object, detecting the object, picking it up, moving to the target location and placing the object.  +Action designator are a high level representation of movements which compose different motion designator. One example for this is the transport action designator which transports an object from one position to another. This includes going to the location of the object, detecting the object, picking it up, moving to the target location and placing the object.
- +
-Action designator work much like motion designator in that both hold a description which has all properties needed for execution. Action designator descriptions also have a grounding method which interferes missing properties.  +
- +
-The main difference between action and motion designator is that action designator do not call a process module if they are performed, instead they call a function which is set while the designator is grounded. This function is the plan that composes the motions needed for executing the described movement.   +
    
 The currently available action designator descriptions are: The currently available action designator descriptions are:
Line 127: Line 123:
     * OpenActionDescription     * OpenActionDescription
     * CloseActionDescription     * CloseActionDescription
 +
 +=== Perform === 
 +Like motion designator, action designator also have a perform method which executes the behaviour described in the designator. 
 +
 +The main difference between action and motion designator is that action designator do not call a process module if they are performed, instead they call a function which is set while the designator is grounded. This function is the plan that composes the motions needed for executing the described movement. 
 +
 +An example on how to perform an action designator can be seen below.
 +<code>
 +from pycram.action_designator import ActionDesignator, MoveTorsoActionDescription
 +
 +ActionDesignator(MoveTorsoActionDesignator(position=[1, 1, 0])).perform() </code>
 +
 +The perform method will firstly call the ground method of the description to ensure that all necessary properties are present and then execute the function set while grounding the designator. 
 +
 +=== Grounding === 
 +Grounding is similar to the resolving of motion designator, both inference missing properties or insert standard values. The difference is that the grounding returns another action designator instead of a dictionary and that while inferencing the properties the grounding method assigns a function which is executed when the designator is performed. 
 +You can see an example of how to ground an action designator below. 
 +
 +<code>
 +from pycram.action_designator import ActionDesignator, MoveTorsoActionDescription
 +
 +MoveTorsoActoinDescription(position=[1, 1, 0]).ground()</code>  
 +
 +As you can see, the grounding method is part of the description. 
 +
 +The grounding method will also be called when performing an action designator before executing the actual behaviour of the designator.