no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Next revision
tutorials:pycram:demo [2021/02/04 13:30] jdech
Line 1: Line 1:
 +====== Run the PyCRAM demos ======
 +There are two demos available for PyCRAM, the first shows the usage of the BulletWorld and its reasoning mechanisms. The Second can only be used with a real PR2 and shows how to use the ProcessModules, Motion Designator and the PyCRAM plan language.  
 +
 +===== Demo 1 =====
 +This demo shows the capabilities of the BulletWorld and its reasoning mechanisms. 
 +
 +==== Setup ====
 +To run the demo a few packages need to be installed, they are all available via PyPi.
 +If you already installed pip you can skip this, if not the pip version for Python3 can be installed with the following command.
 +<code> apt install python3-pip</code>
 +To install the required packages via pip the following command is used.
 +<code>pip3 install pybullet pathlib numpy</code>
 +
 +Now the Repository needs to be cloned.
 +<code>cd ~ && git clone https://www.github.com/cram2/pycram.git</code>
 + 
 +This demo needs the models of the PR2 and the kitchen of the Institute of Artificial Intelligence.
 +They need to be in the resources directory in the PyCRAM repo.
 +
 +<code>cd ~/pycram/resources</code>
 +<code>git clone git@github.com:PR2/pr2_common.git</code>
 +<code>git clone git@github.com:code-iai/iai_maps.git</code>
 +
 +
 +==== Start the IK service ====
 +To run the demo an external IK service is needed. To start this service a working ROS installation is needed, for a tutorial on how to install and setup ROS look [[http://wiki.ros.org/kinetic/Installation/Ubuntu|here]]
 +
 +<code>cd ~/pycram/launch </code>
 +<code>roslaunch ik_and_description.launch</code>
 +
 +==== Choose the robot ====
 +The launchfile in the previous section included a robot description of the PR2. But the demo can also use the Boxy robot of the Institute of Artificial Intelligence, for this to work the repo which contains the robot description has to be cloned first. 
 +
 +<code>git clone git@github.com:code-iai/iai_robots.git </code>
 +
 +Now you can choose which robot description to upload in the launch file. Note, in order for ROS to be able to find the robot description you have to build the iai_robots repo using catkin.
 +
 +==== Run the Demo ====
 +Now that all dependencies are installed and the IK service is running the demo can be executed.
 +For this open a new terminal and enter the pycram_pr2_bullet_world_demo in the PyCRAM repository.
 +<code>cd ~/pycram/demos/pycram_pr2_bullet_world_demo</code>
 +Now execute the run.py.
 +<code>python3 run.py</code>
 +
 +
 +===== Demo 2 ===== 
 +For this demo a real PR2 is needed. Furthermore, ROS1 is needed to communicate with the PR2.
 +It is meant to show what  is possible with the ProcessModules, Motion Designator and PyCRAM plan language. 
 +
 +==== Setup ====
 +Because ROS1 works mostly with Python2 and PyCRAM is written in Python3 a virtual environment is needed. 
 +To setup this virtual environment a few packages need to be installed. In Ubuntu this can be done with the following command:
 +<code>apt install python-pip python3-pip libbullet-dev python-virtualenv</code>
 +Libbullet is needed for the ROS1 geometry2 package which is used in this demo. 
 +
 +Now setup a new ROS workspace and pull the required packages. 
 +<code>mkdir -p ~/ros_ws/src</code>
 +<code>cd ros_ws/src </code>
 +<code>git clone https://www.github.com/ros/geometry</code>
 +<code>git clone https://www.github.com/ros/geometry2 </code>
 +<code>git clone https://www.github.com/cram2/pycram</code>
 +
 +Now the virtual environment can be created and activated. 
 +<code>virtualenv -p /usr/bin/python3 venv</code>
 +<code>source venv/bin/activate </code>
 +
 +With the virtual environment up and running the Python ROS packages can be installed. 
 +This can be done via pip.
 +<code> pip install -U rosdep rosinstall-generator wstool rosinstall ros-buildfarm rosdistro rospkg pyyaml catkin_pkg </code> 
 +
 +==== Run the Demo ====
 +Now the Demo can be run by simply executing the run.py srcipt.
 +<code>cd ~/ros_ws/src/pycram/demos/pycram_pr2_demo/src</code>
 +<code>python3 run.py</code>