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
tutorials:demo:fetch_and_place [2021/11/03 16:44] arthurtutorials:demo:fetch_and_place [2021/12/13 10:42] (current) – [Tutorial 0: Getting into Emacs] arthur
Line 3: Line 3:
 This tutorial is from the "Demo Tutorials" category, which assumes no prior knowledge of Linux, ROS, Emacs, Lisp or robotics. This tutorial is from the "Demo Tutorials" category, which assumes no prior knowledge of Linux, ROS, Emacs, Lisp or robotics.
  
-Here is link to a video that walks through the first part of the tutorial with voice explanations:+===== Important Links ===== 
 + 
 +  * The {{ :tutorials:demo:cram_fall_school_2021.pdf |presentation slides}} give brief overview and introduction for this lecture and contain the most important informations on Emacs, our IDE for Lisp. 
 +  * The [[https://seafile.zfn.uni-bremen.de/f/a28c1de4acab4609b4f3/?dl=1|virtual machine (VM) file]] to run with VirtualBox. 
 +  * An explanation of the setup and first tutorial is also available with voice explanations (around 1h) as [[https://seafile.zfn.uni-bremen.de/f/c057cd48e1244d7997b8/|download]] or [[https://www.youtube.com/watch?v=0uJN-jRb7J4&feature=youtu.be|stream]], for those with spare time on another day. 
  
-https://seafile.zfn.uni-bremen.de/f/c057cd48e1244d7997b8/ 
-(or https://www.youtube.com/watch?v=0uJN-jRb7J4&feature=youtu.be) 
 ===== Motivation ===== ===== Motivation =====
  
Line 25: Line 28:
 ==== Technical Requirements ==== ==== Technical Requirements ====
  
-The VM image with VirtualBox has been successfully tested under Windows, MacOS and Ubuntu Linux+  * The VM image with VirtualBox has been successfully tested for Windows, MacOS and Ubuntu. 
- +  * Some kind of GPUdedicated or integrated, is required to visualize the running OS
-The machine on which you will be running the system needs a graphics cardit can be a built in laptop GPU as well. +  * At least 8GB of excess RAM for the VM is recommended4GB minimum. The more the better
- +
-We recommend to run the VM on a machine with 8 GB of RAM or more+
-(The VM itself needs 4 GB of RAM, so the host machine should have at least 5 GB but 8 GB or more would be optimal.)+
  
  
 ==== Install ==== ==== Install ====
- 
-TODO: Check for newer VB versions and update links. 
  
 First, download and install VirtualBox on your computer. First, download and install VirtualBox on your computer.
Line 54: Line 52:
 == Windows == == Windows ==
  
-Download [[https://download.virtualbox.org/virtualbox/5.2.32/VirtualBox-5.2.32-132073-Win.exe | version 5.2.32 for Windows Systems]], execute the .exe file and follow the installation instructions.+Download [[https://download.virtualbox.org/virtualbox/5.2.42/VirtualBox-5.2.42-137960-Win.exe | version 5.2.42 for Windows Systems]], execute the .exe file and follow the installation instructions.
  
 The CPU needs to support virtualization to run a VM on Windows. The virtualization can be enabled in the BIOS. To get into the BIOS settings restart your machine, hit the settings button while booting (try F2, F8 and F10) and go into the CPU settings. There is something like 'Intel Virtual Technology' or 'CPU Virtualization' which needs to be enabled. The CPU needs to support virtualization to run a VM on Windows. The virtualization can be enabled in the BIOS. To get into the BIOS settings restart your machine, hit the settings button while booting (try F2, F8 and F10) and go into the CPU settings. There is something like 'Intel Virtual Technology' or 'CPU Virtualization' which needs to be enabled.
Line 60: Line 58:
 == MacOS == == MacOS ==
  
-Download [[https://download.virtualbox.org/virtualbox/5.2.32/VirtualBox-5.2.32-132073-OSX.dmg | the .dmg installer for OS X systems]], execute the file and follow the instructions.+Download [[https://download.virtualbox.org/virtualbox/5.2.42/VirtualBox-5.2.42-137960-OSX.dmg | the .dmg installer for OS X systems]], execute the file and follow the instructions.
 Hint: If the VirtualBox installer fails with The **installation failed** where it encountered an //error that caused the installation to fail.// Go to System Preferences > Security & Privacy. Click the **‘Allow’** button at the bottom and re-run the installer.  Hint: If the VirtualBox installer fails with The **installation failed** where it encountered an //error that caused the installation to fail.// Go to System Preferences > Security & Privacy. Click the **‘Allow’** button at the bottom and re-run the installer. 
  
Line 66: Line 64:
 ==== VirtualBox Setup ==== ==== VirtualBox Setup ====
  
-TODO: Update VM image link. +First of all, download the Virtual Disk Image [[https://seafile.zfn.uni-bremen.de/f/a28c1de4acab4609b4f3/?dl=1|cram_vm.vdi here]]. It contains an Ubuntu 18.04 with ROS melodic pre-installed, as well as CRAM v0.7, the latest dev-version CRAM for Unreal, Urobosim for the Unreal interface, KnowRob as the knowledge hub, and Giskard, the motion planner
- +
-First of all, download the Virtual Disk Image [[https://seafile.zfn.uni-bremen.de/d/60fda63a3a4047aaa59b/|cram_vm.vdi here]]. It contains an Ubuntu 16.04 with ROS kinetic and CRAM v7.0 pre-installed.+
  
 Then, launch VirtualBox, which you installed in the previous step. Then, launch VirtualBox, which you installed in the previous step.
Line 82: Line 78:
   * the OS as 'Linux'   * the OS as 'Linux'
   * the version as 'Ubuntu (64-bit)'   * the version as 'Ubuntu (64-bit)'
-Choose the VM's memory size (RAM), depending on your machine's capacity, but less than 4GB could cause performance issues. +Choose the VM's memory size (RAM), depending on your machine's capacity, but less than 8GB will cause performance issues. 
-We suggest 4096 MB (or you can also give it 8192 MB as shown in the screenshot):+We recommend to offer as much as possible, when working with unreal. CRAM on it's own can get by with less.
  
 {{ :tutorials:demo:vm3setup.png?800 |}} {{ :tutorials:demo:vm3setup.png?800 |}}
Line 98: Line 94:
 {{ :tutorials:demo:vm4proc.png?800 |}} {{ :tutorials:demo:vm4proc.png?800 |}}
  
-Everything is set up. The VM can now be started. The Ubuntu 16.04 system should start and automatically log into the only account, with the username and password 'cram'. +Everything is set up. The VM can now be started. The Ubuntu 18.04 system should start and automatically log into the only account, with the username and password 'cram'.
- +
- +
- +
  
 +=== Last adjustments ===
  
 +There are two versions of CRAM available in the VM. By default, the setup is designed to connect and work with a project from the Unreal Engine, for intricate physics simulation. We don't need any of that for the upcoming tutorials, instead we change to the stable, standalone version of CRAM. In the VM, launch a terminal with Ctrl-Alt-T and open up the file ''.bashrc''.
  
 +<code>
 +nano .bashrc
 +</code>
  
 +Put a ''#'' symbol in front of the ''source'' command for day 1 & 2 of the FallSchool, and remove it from the line below, referring to day 3 of the FallSchool. Save and close the file and type ''source .bashrc'' to activate the changes in your current terminal. From now on the changes are applied on every newly opened terminal.
  
 +By doing so, the terminal uses a different ROS workspace. Sourcing a ROS workspace enables the terminal session to access everything from that workspace, like loading a programming environment, or changing a namespace.
  
 ===== Understanding the Basics ===== ===== Understanding the Basics =====
Line 123: Line 122:
 Alternatively, you can use a keyboard shortcut for starting a terminal: "''Ctrl + Alt + T''" Alternatively, you can use a keyboard shortcut for starting a terminal: "''Ctrl + Alt + T''"
  
-==== Emacs ====+ 
 +==== ROS ==== 
 + 
 +ROS stands for Robot Operating System. 
 +It is software that makes a robot programmer's life easier. 
 +For example, it allows programs written in different programming languages to talk to each other. 
 + 
 + 
 +==== Lisp ==== 
 + 
 +We are going to program our robot in the Lisp programming language. 
 + 
 +This language has a convenient command line. 
 +If you are curious why Lisp, [[http://cram-system.org/doc/package/why_lisp|go here]]. 
 + 
 + 
 + 
 +===== Tutorial 0: Getting into Emacs =====
  
 Emacs is one of the oldest text editors and one of the two most popular text editors in the Linux world. Emacs is one of the oldest text editors and one of the two most popular text editors in the Linux world.
Line 145: Line 161:
 To see useful key shortcuts for your Emacs IDE, [[http://cram-system.org/doc/ide?&#key_bindings|follow this link]]. To see useful key shortcuts for your Emacs IDE, [[http://cram-system.org/doc/ide?&#key_bindings|follow this link]].
  
 +{{ :tutorials:demo:emacs_intro.pdf |These slides}} contain a few important shortcuts, and introduce you to the popular 'Orc Battle' Lisp example from 'The Land of Lisp'.
  
-==== ROS ====+Run and play the orc-battle.lisp program to get a feeling for Emacs.
  
-ROS stands for Robot Operating System. +===== Tutorial 1: Simple Fetch and Place =====
-It is software that makes a robot programmer's life easier. +
-For example, it allows programs written in different programming languages to talk to each other.+
  
 +Head to the [[http://cram-system.org/tutorials/demo/fetch_and_place_2|exercise to create a simple fetch and place plan]].
  
-==== Lisp ====+===== Tutorial 2 & 3: Failure Handling =====
  
-We are going to program our robot in the Lisp programming language.+When you got the fetch and place plan go to the [[http://cram-system.org/tutorials/demo/fetch_and_place_3|exercise for failure handling]].
  
-This language has a convenient command line. +===== Tutorial 4Alternative Grasping Poses (Advanced) =====
-If you are curious why Lisp, [[http://cram-system.org/doc/package/why_lisp|go here]].+
  
 +Picking objects from different angles can be helpful in occluded environments. Go to the [[http://cram-system.org/tutorials/demo/fetch_and_place_4|exercises on grasping poses]] to find out more.
  
-===== Tutorial 1: Simple Fetch and Place ===== 
  
-Head to the [[http://cram-system.org/tutorials/demo/fetch_and_place_2|exercise to create a simple fetch and place plan]]. 
  
-===== Tutorial 2: Failure Handling =====+<html><!--
  
-When you have the fetch and place plan exercise on failure handling [[http://cram-system.org/tutorials/demo/fetch_and_place_3|exercise to create a simple fetch and place plan]]. 
  
 ===== Simple Fetch and Place ===== ===== Simple Fetch and Place =====
Line 1324: Line 1337:
  
  
 +--></html>