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
Next revisionBoth sides next revision
tutorials:intermediate:simple_mobile_manipulation_plan [2019/07/08 18:08] – [Expanding Failure Management Capabilities] gkazhoyatutorials:intermediate:simple_mobile_manipulation_plan [2019/07/16 11:26] – [Some Useful Designators] ?grasp-pose -> ?grasp-pose-identifier amar
Line 44: Line 44:
       * <code lisp> (desig:a motion (type detecting) (object ?obj-desig)) </code> is a a motion that perceives and detects the specified object. It expects a key ''object'' with a value of type ''object-designator''       * <code lisp> (desig:a motion (type detecting) (object ?obj-desig)) </code> is a a motion that perceives and detects the specified object. It expects a key ''object'' with a value of type ''object-designator''
     * **Action Designators** - These describe the high-level actions which may consist of multiple calls to different low-level motion to carry out a small plan.     * **Action Designators** - These describe the high-level actions which may consist of multiple calls to different low-level motion to carry out a small plan.
-        * <code lisp> (desig:an action (type picking-up) (arm ?grasp-arm) (grasp ?grasp-pose) (object ?obj-desig)) </code> is an action that picks an object with the specified arm and grasp pose. It expects an ''object'' key with value of type ''object-designator'', an ''arm'' with the value of type keyword for the arm to choose, and a ''grasp'' key whose value specifies the keyword of the grasp pose to pick the object with.+        * <code lisp> (desig:an action (type picking-up) (arm ?grasp-arm) (grasp ?grasp-pose-identifier) (object ?obj-desig)) </code> is an action that picks an object with the specified arm and grasp pose. It expects an ''object'' key with value of type ''object-designator'', an ''arm'' with the value of type keyword for the arm to choose, and a ''grasp'' key whose value specifies keyword which is an identifier of the grasp pose to pick the object with.
         * <code lisp> (desig:an action (type placing) (arm ?grasp-arm) (object ?obj-desig) (target ?loc-desig)) </code> is an action that places the object specified to the target. It expects an optional key ''arm'' with the keyword of the arm to use, an ''object'' of type ''object-designator'' and a ''target'' key with the value of type ''location-designator''.         * <code lisp> (desig:an action (type placing) (arm ?grasp-arm) (object ?obj-desig) (target ?loc-desig)) </code> is an action that places the object specified to the target. It expects an optional key ''arm'' with the keyword of the arm to use, an ''object'' of type ''object-designator'' and a ''target'' key with the value of type ''location-designator''.
  
Line 494: Line 494:
  
 Since this is a simple tutorial in formulating and understanding mobile plans using CRAM, developing advanced plans and recovery behaviors is left up to you. Since this is a simple tutorial in formulating and understanding mobile plans using CRAM, developing advanced plans and recovery behaviors is left up to you.
 +
 +
 +<html><!--
 +THIS IS ONLY IN CRAM v0.8.0
 +
  
 === Useful Macros === === Useful Macros ===
Line 588: Line 593:
 </code> </code>
 This code will behave exactly like before but all the repetitive logic has been moved to this macro. The first two arguments are always the iterating list (in this case, the list containing possible grasp pose) and the number of retries. The keyword ''error-object-or-string'' can accept a warning string or just the plain error object and it will be used for logging. ''warning-namespace'' will accept the name in which the logging information is classified into. Since our method rethrows ''common-fail:object-unreachable'' we pass that along into ''rethrow-failure'', and if none is passed, it will rethrow the same error it received. This code will behave exactly like before but all the repetitive logic has been moved to this macro. The first two arguments are always the iterating list (in this case, the list containing possible grasp pose) and the number of retries. The keyword ''error-object-or-string'' can accept a warning string or just the plain error object and it will be used for logging. ''warning-namespace'' will accept the name in which the logging information is classified into. Since our method rethrows ''common-fail:object-unreachable'' we pass that along into ''rethrow-failure'', and if none is passed, it will rethrow the same error it received.
 +
 +
 +--></html>