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
tutorials:intermediate:new_actions [2019/01/02 17:09] – [Implementing new types of actions] vanessatutorials:intermediate:new_actions [2019/01/02 17:46] (current) – [Pick-action-designator] vanessa
Line 162: Line 162:
  </code>  </code>
  
 +Here also failure-handling takes place. At least all low-level-failures should be caught here.
  
 ====== Pick-action-designator ====== ====== Pick-action-designator ======
Line 178: Line 178:
                                                           ?left-grasp-poses ?right-grasp-poses                                                           ?left-grasp-poses ?right-grasp-poses
                                                           ?left-lift-poses ?right-lift-poses))                                                           ?left-lift-poses ?right-lift-poses))
-    ;; extract info from ?action-designator+</code> 
 + 
 +First extract all information from ?action-designator
 +     
 +<code lisp>
     (spec:property ?action-designator (:type :picking-up))     (spec:property ?action-designator (:type :picking-up))
     (spec:property ?action-designator (:object ?object-designator))     (spec:property ?action-designator (:object ?object-designator))
Line 188: Line 192:
         (man-int:robot-free-hand ?_ ?arm))         (man-int:robot-free-hand ?_ ?arm))
     (lisp-fun man-int:get-object-transform ?current-object-desig ?object-transform)     (lisp-fun man-int:get-object-transform ?current-object-desig ?object-transform)
-    ;; infer missing information like ?grasp type, gripping ?maximum-effort, manipulation poses+     
 +    </code> 
 +     
 +Infer missing information like ?grasp type, gripping ?maximum-effort, manipulation poses. Then calculate the object facing, because the system needs to know how the object, that will be picked up, is facing so that the rotation is correctly and the transformation from gripper to object will be properly. 
 +  
 +   <code lisp> 
 + 
     (lisp-fun man-int:calculate-object-faces ?object-transform (?facing-robot-face ?bottom-face))     (lisp-fun man-int:calculate-object-faces ?object-transform (?facing-robot-face ?bottom-face))
     (-> (man-int:object-rotationally-symmetric ?object-type)     (-> (man-int:object-rotationally-symmetric ?object-type)
Line 215: Line 225:
  
  
-First all of the information from the ?action-designator will be extract. After that  all information that are missing from the ?action-designator will be inferred. <code lisp>     (lisp-fun man-int:calculate-object-faces ?object-transform (?facing-robot-face ?bottom-face)) +    
-    (-> (man-int:object-rotationally-symmetric ?object-type) +
-        (equal ?rotationally-symmetric t) +
-        (equal ?rotationally-symmetric nil)) +
-    (-> (spec:property ?action-designator (:grasp ?grasp)) +
-        (true) +
-        (and (lisp-fun man-int:get-object-type-grasps ?object-type ?arm ?object-transform ?grasps) +
-             (member ?grasp ?grasps))) </code>    +
-              +
-The system needs to know how the object, that will be picked up, is facing so that the rotation is correctly and the transformation from gripper to object will be properly.+
 ====== Get-trajectory ====== ====== Get-trajectory ======