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
tutorials:intermediate:costmaps [2022/04/27 13:45] – [Using your own Orientation Generator] schimpftutorials:intermediate:costmaps [2022/04/27 13:55] – [Setup] schimpf
Line 16: Line 16:
  
 ===== Setup ===== ===== Setup =====
 +    *set up the environment in our terminal by calling the launch file:
  
-  * launch the map-server in a terminal with <code> roslaunch iai_maps map.launch </code>+        roslaunch cram_bullet_world_tutorial world.launch 
  
-  * load cram_occupancy_grid_costmap in the REPL+    *load cram_bullet_world_tutorial in the REPL 
 + 
 +    *start a node in REPL with (roslisp-utilities:startup-ros)
  
-  * start a node in REPL with (roslisp-utilities:startup-ros) 
  
   * define costmap parameters:   * define costmap parameters:
Line 27: Line 29:
 <code lisp> <code lisp>
 (prolog:def-fact-group costmap-metadata () (prolog:def-fact-group costmap-metadata ()
-  (prolog:<- (location-costmap:costmap-size 10 10)) ; in meters +  (prolog:<- (:costmap-size 10 10)) ; in meters 
-  (prolog:<- (location-costmap:costmap-origin -5 -5)) +  (prolog:<- (:costmap-origin -5 -5)) 
-  (prolog:<- (location-costmap:costmap-resolution 0.05)) +  (prolog:<- (:costmap-resolution 0.05)) 
-  (prolog:<- (location-costmap:costmap-padding 0.01))) ; padding to occupancy map obstacles+  (prolog:<- (:costmap-padding 0.01))) ; padding to occupancy map obstacles
 </code> </code>
  
Line 143: Line 145:
   (car (prolog:prolog `(and (location-costmap:desig-costmap ,*behind-designator* ?cm))))))   (car (prolog:prolog `(and (location-costmap:desig-costmap ,*behind-designator* ?cm))))))
 </code> </code>
 +The code can also be used to visualize the other costmap functions in this tutorial.
  
 {{:tutorials:intermediate:location-costmap-tutorial-behind-2.png?400|}} {{:tutorials:intermediate:location-costmap-tutorial-behind-2.png?400|}}
Line 162: Line 165:
      ?costmap)))      ?costmap)))
 </code> </code>
 +
 +The visualized costmap looks like this:
 +
 {{:tutorials:intermediate:location-costmap-gaussian-costmap.png?400|}} {{:tutorials:intermediate:location-costmap-gaussian-costmap.png?400|}}
   * using range costmap function:   * using range costmap function:
Line 175: Line 181:
      ?costmap)))      ?costmap)))
 </code> </code>
 +
 +The visualized costmap looks like this:
 +
 {{:tutorials:intermediate:location-costmap-tutorial-range-costmap.png?400|}} {{:tutorials:intermediate:location-costmap-tutorial-range-costmap.png?400|}}
 +  * using range costmap function inverted:
 <code lisp> <code lisp>
 (prolog:def-fact-group tutorial-rules (location-costmap:desig-costmap) (prolog:def-fact-group tutorial-rules (location-costmap:desig-costmap)
Line 186: Line 196:
      ?costmap)))      ?costmap)))
 </code> </code>
 +
 +The visualized costmap looks like this:
 +
 {{:tutorials:intermediate:location-costmap-tutorial-range-costmap-invert.png?400|}} {{:tutorials:intermediate:location-costmap-tutorial-range-costmap-invert.png?400|}}
 ===== Using your own Z coordinate function ===== ===== Using your own Z coordinate function =====
Line 212: Line 225:
 </code> </code>
 The end result is that all the poses generated will now have a z-coordinate of 1.0 units. The end result is that all the poses generated will now have a z-coordinate of 1.0 units.
 +
 +The visualized costmap using the bullet world looks like this: 
  
 {{:tutorials:intermediate:location-costmap-tutorial-consistent-height.png?400|}} {{:tutorials:intermediate:location-costmap-tutorial-consistent-height.png?400|}}
Line 274: Line 289:
 </code> </code>
  
 +The visualized costmap using the bullet world looks like this:
 + 
 {{:tutorials:intermediate:location-costmap-tutorial-orientation-generator.png?400|}} {{:tutorials:intermediate:location-costmap-tutorial-orientation-generator.png?400|}}