Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
tutorials:intermediate:semantic_environment_map [2016/01/15 15:29] – [Setting up] gkazhoya | tutorials:intermediate:semantic_environment_map [2016/01/15 16:35] – gkazhoya | ||
---|---|---|---|
Line 135: | Line 135: | ||
</ | </ | ||
+ | We can also ask for a location of an semantic map part: | ||
+ | <code lisp> | ||
+ | SEMANTIC-MAP-COSTMAP> | ||
+ | , | ||
+ | #< | ||
+ | #< | ||
+ | {100E276F63}> | ||
+ | | ||
+ | SEMANTIC-MAP-COSTMAP> | ||
+ | #< | ||
+ | | ||
+ | #< | ||
+ | #< | ||
+ | </ | ||
+ | A location description can be ambiguous, e.g., if we would like to have a location of an object of a certain semantic map part type: | ||
+ | <code lisp> | ||
+ | SEMANTIC-MAP-COSTMAP> | ||
+ | (let* ((object-of-type-cupboard (make-designator :object ' | ||
+ | | ||
+ | (format t "one solution: ~a~%" (reference location-of-cupboard)) | ||
+ | (format t " | ||
+ | one solution: #< | ||
+ | | ||
+ | #< | ||
+ | #< | ||
+ | another solution: #< | ||
+ | | ||
+ | #< | ||
+ | #< | ||
+ | </ | ||
+ | There are multiple objects of type cupboard, so we get multiple solutions. | ||
+ | |||
+ | In the example semantic map '': | ||
+ | |||
+ | Now, let's use the location costmap mechanism to ground locations on or in objects: | ||
+ | <code lisp> | ||
+ | SEMANTIC-MAP-COSTMAP> | ||
+ | #< | ||
+ | | ||
+ | #< | ||
+ | #< | ||
+ | </ | ||
+ | {{ : | ||
+ | The big red dot is the location sampled for this designator. | ||
+ | |||
+ | If we want a location on a specific object, not on all objects of a certain type, we can specify that using the '': | ||
+ | <code lisp> | ||
+ | SEMANTIC-MAP-COSTMAP> | ||
+ | (:name " | ||
+ | #< | ||
+ | | ||
+ | #< | ||
+ | #< | ||
+ | </ | ||
+ | {{ : | ||
+ | The marker array in RViz show a uniform distribution of all possible locations that satisfy the symbolic constraint in the designator. |