====== CRAM Tutorials ====== You can find the source code to most of the CRAM tutorials on [[https://github.com/cram2/cram/tree/master/cram_tutorials|GitHub]]. **Please pay attention at the version tag next to the tutorials. The current CRAM version on the master branch and in the installation instructions is v0.7.0. The development branch is v0.8.0, use only if you are an expert in CRAM. The tutorials that have an older version tag that are not maintained will probably not work with v0.7.0.** ===== EU Robotics Week 2023 ===== Hands-on Robot Control in CRAM [[https://binder.intel4coro.de/v2/gh/artnie/pycram.git/binder|Enter the cloud!]] Find {{ :tutorial:iros_cram_tutorial.pdf |the presentation slides here}}. ===== IROS 2023 Tutorial ===== **Everyday Activity Robot Manipulation in an Interactive Learning Environment** - Hands-on Robot Control in CRAM At IROS 2023 in Detroit we are presenting the Plan Executive CRAM in our interactive learning environment. [[https://binder.intel4coro.de/v2/gh/artnie/pycram.git/binder|Enter the cloud!]] Find {{ :tutorial:iros_cram_tutorial.pdf |the presentation slides here}}. ===== Fall School 2023 ===== The Fall School 2023 Monday will introduce the CRAM plan executive with the recent re-implementation in PyCRAM. {{ ::fallschool23_pycram.pdf |Here}} is the presentation of the CRAM plan executive. [[https://binder.intel4coro.de/v2/gh/IntEL4CoRo/pycram.git/fallschool2023|Enter the JupyterHub here]]. Then download [[https://github.com/artnie/pycram/blob/fall-school-tutorial/examples/fs_pick_and_place.ipynb|the lecture file.]] In the JupyterHub, navigate to src/pycram/examples, upload the downloaded file and open it. You will be led through multiple examples on how to work with PyCRAM, in order to control a robot from a high-level perspective. Enjoy the lectures! ===== Fall School 2021 ===== This tutorial category contains short demonstrations of some things that one can do with CRAM, which assumes no prior knowledge of Ubuntu, ROS, Emacs, Lisp or robotics. If after going through these tutorials, you find out that the system is cool and you'd like to learn more about it, you can go ahead and start with Beginner Tutorials (see below) if you have ROS experience, or roslisp tutorials (see under External tutorials section below) if you do not. * [[tutorials:demo:fetch_and_place|Jump-Start tutorial via VM: Simple fetch and place (for EASE Fall School)]] (v0.7.0) ===== Beginner tutorials ===== (tested with v0.8.0) * [[tutorials:beginner:package_for_turtlesim|Creating a CRAM package]] * [[tutorials:beginner:controlling_turtlesim_2|Controlling turtlesim from CRAM]] * [[tutorials:beginner:simple_plans|Implementing simple plans to move a turtle]] * [[tutorials:beginner:cram_prolog|Using Prolog for reasoning]] * [[tutorials:beginner:motion_designators|Creating motion designators for the TurtleSim ]] * [[tutorials:beginner:process_modules_2|Creating process modules ]] * [[tutorials:beginner:assigning_actions_2|Automatically choosing a process module for a motion ]] * [[tutorials:beginner:location_designators_2|Using location designators with the TurtleSim ]] * [[tutorials:beginner:high_level_plans|Writing plans for the TurtleSim]] * [[tutorials:beginner:failure_handling|Implementing failure handling for the TurtleSim]] * [[tutorials:beginner:testing|Writing tests]] ===== Intermediate tutorials ===== (tested with v0.8.0) * [[tutorials:intermediate:performing_plans|Performing Action Designators]] (v0.8.0) * [[tutorials:intermediate:events|Triggering and handling (custom) events]] (v0.8.0) * [[tutorials:intermediate:costmaps|Location costmaps]] (v0.8.0) * [[tutorials:intermediate:bullet_world|Bullet world demonstration: using specialized inference mechanisms and projection]] (v0.8.0) * [[tutorials:intermediate:simple_mobile_manipulation_plan|How to write a simple mobile manipulation plan (with PR2 robot)]] (v0.8.0) * [[tutorials:advanced:cram-rigid-body|Adding a new rigid-body]] (v0.8.0) (in construction) * [[tutorials:advanced:cram-writing-designators | Adding new designators]] (v0.8.0) (in construction) ===== Advanced tutorials ===== * [[tutorials:intermediate:pepper_shopping|Pepper robot shopping assistant]] (v0.8.0) * [[tutorials:intermediate:json_prolog|Using JSON Prolog to communicate with KnowRob]] (v0.7.0) * [[tutorials:advanced:unreal|Using data acquired in VR on the robot]] (v0.8.0) (in construction) * [[tutorials:intermediate:fetch_deliver_plans|How fetch and deliver plans are implemented]] (v0.7.0) * [[tutorials:advanced:new-robot|Introducing a new robot to CRAM]] (v0.7.0) * [[tutorials:advanced:unreal-engine|Using CRAM in Unreal Engine]] (v0.8.0)(in construction) * [[/tutorials/advanced/jupyter|Setting up Jupyter to work with ROSLisp and CRAM]] (v0.8.0) ===== Outdated tutorials ===== * [[tutorials:intermediate:new_actions|Implementing new types of actions]] (in construction) (v0.6.0) * [[tutorials:intermediate:semantic_environment_map|Semantic environment maps in CRAM]] (v0.6.0) * [[tutorials:intermediate:moveit|Using MoveIt! from CRAM]] (v0.2.0) * [[tutorials:intermediate:collisions_and_constraints|Collisions and Constraints in MoveIt!]] (v0.2.0) * [[tutorials/advanced:plans|Writing plans with policies]] (v0.1.0) * [[tutorials:advanced:task_trees|Plan transformations: task trees, code replacement, and serialization]] (v0.2.0) ===== External tutorials ===== * [[http://wiki.ros.org/roslisp/Tutorials|Roslisp Tutorials]] * [[http://wiki.ros.org/tf/Tutorials|Tf Tutorials]] * [[http://wiki.ros.org/visualization/Tutorials|Visualization Tutorials]] * [[http://wiki.ros.org/catkin/Tutorials|Catkin Tutorials]] ===== Robocup ===== * [[tutorials:robocup:robocup|Add new Giskard constraints]] (v0.8.0) * [[tutorials:robocup:robocup-cml|CML]] (v0.8.0) * [[tutorials:robocup:robocup-cleanup|CLEANUP]] (v0.8.0) * [[tutorials:robocup:robocup-serve|SERVE BREAKFAST]] (v0.8.0) * [[tutorials:robocup:robocup-store|STORING GROCERIES]] (v0.8.0) * [[tutorials:robocup:robocup-context|Generate context]] (v0.8.0)