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:demo:fetch_and_place [2019/10/18 11:01] arthurtutorials:demo:fetch_and_place [2020/09/22 23:26] – [Simple Plan] gkazhoya
Line 4: Line 4:
  
  
 +===== Motivation =====
  
 +The aim of the tutorial is to give an intuition about the complexity of robot mobile manipulation tasks and about the knowledge that is required to execute actions successfully.
  
 +The tutorial:
 +  - Gives an intuition of what knowledge does the robot need (and how much knowledge) to execute even a simple fetch and place, e.g., robot needs to answer questions such as "where should I stand?", "which grasp pose should I use?", etc.
 +  - Shows how many different things can go wrong, and teaches writing simple failure handling strategies.
 +  - Teaches how to call existing actions from the CRAM framework, i.e. how to use designators (but not program new ones).
 +  
  
 ===== Setting Up ===== ===== Setting Up =====
Line 439: Line 446:
  
 (defparameter *base-pose-near-counter* (defparameter *base-pose-near-counter*
-  (make-pose "base_footprint" '((-0.150d0 2.0d0 0.0d0) (0.0d0 0.0d0 -1.0d0 0.0d0))))+  (make-pose "map" '((-0.150d0 2.0d0 0.0d0) (0.0d0 0.0d0 -1.0d0 0.0d0))))
 </code> </code>
  
Line 493: Line 500:
    
 (defparameter *base-pose-near-counter* (defparameter *base-pose-near-counter*
-  (make-pose "base_footprint" '((-0.15 2 0) (0 0 -1 0))))+  (make-pose "map" '((-0.15 2 0) (0 0 -1 0))))
    
 (defparameter *final-object-destination* (defparameter *final-object-destination*
Line 1171: Line 1178:
                            (object ?perceived-bottle)))))                            (object ?perceived-bottle)))))
 </code> </code>
-You will see that PR2 will successfully grasp the bottle from the grasp pose that we defined.+You will see that PR2 will successfully grasp the bottle from the grasp pose that we defined. Another useful documentation on this point is [[http://cram-system.org/doc/package/cram_designators]]. Here you can understand further what the 'desig:an' does and why we use it. Designators are a very useful thing in cram, furthermore they are used in every high-level plan
  
 {{:tutorials:demo:diagonal_grasp.png?600|}} {{:tutorials:demo:diagonal_grasp.png?600|}}
Line 1212: Line 1219:
  
 Arthur got the following feedback from students: 3h isn't enough to complete the tasks, the intro of the tutorial was too long, designators should be explained. Maybe put a link to those topics at appropriate position. Arthur got the following feedback from students: 3h isn't enough to complete the tasks, the intro of the tutorial was too long, designators should be explained. Maybe put a link to those topics at appropriate position.
 +
 +Alina got the following feedback from students:
 +- an introduction to how to navigate and handle Emacs would have been nice at the start
 +- VM is too slow for some. Laptops's we can lend with everything pre-installed would be nice (be it VM or native doesn't matter)
 +- Too little time. Nobody finished Exercise 1
 +- visualization of poses could be done better (we used Rviz and "point clicked", but rotation remains a problem)
 +- Someone also suggested to do the following: Emacs crash course + basic shortcuts introduction, LISP introduction (just show some basic functions since they look very different to other languages. Like, variable definitions, let, if, mapcar (it's cool)) and then go to CRAM. (Maybe emphasize rather on plans/actions which look more like "natural language"?)
 +
 +Some questions the students had and some answers we weren't sure about
 +- What licence is cram uder (bsd?)
 +- Can it be used without ROS? -> no. unless someone writes something for it since it's open source
 +- How does the PR2 know that he dropped something
 +- Would the belief state work with multiple robots at the same time? -> yes?
  
  
 --></html> --></html>