Difference between revisions of "UPMC iCub project/XDE-simulator-dev"

From Wiki for iCub and Friends
Jump to: navigation, search
Line 24: Line 24:
 
</code>
 
</code>
  
* [[UPMC iCub project/XDE-simulator|'''XDE''': installation]]
+
* '''XDE''': [[UPMC iCub project/XDE-simulator|installation]]
* [[UPMC iCub project/Installing ORC|'''ORC''': installation]]
+
* '''ORC''': [[UPMC iCub project/Installing ORC|installation]]
  
 
* '''XDE-core'''
 
* '''XDE-core'''
Line 109: Line 109:
 
   cd XDE-Resources
 
   cd XDE-Resources
 
   mkdir build
 
   mkdir build
 +
Before doing the standard ccmake/make chain, you must check the content of the cmake file CMakeLists.txt, in particular check the execute_process command, and verify that it is installing into dist-packages.
 +
If not, change the code as below.
 +
<code>
 +
EXECUTE_PROCESS(
 +
  COMMAND "${PYTHON_EXECUTABLE}" "-c"
 +
  "import sys, os; print os.sep.join(['lib', 'python' + sys.version[:3], 'dist-packages'])"
 +
  OUTPUT_VARIABLE PYTHON_SITELIB
 +
  OUTPUT_STRIP_TRAILING_WHITESPACE
 +
  ERROR_QUIET)
 +
</code>
 +
This avoid a known issue with ipython, it is going to be fixed - so probably you won't have this issue.
 +
Then you can finally do the ccmake/make thing: please do not change the install location in this case! I tried installing it in my usual /home/icub/software location, it doesn't work.
 +
So stick to the usual installation path.
 
   cd build
 
   cd build
 
   ccmake ..      // DO NOT CHANGE THE INSTALL PATH HERE!
 
   ccmake ..      // DO NOT CHANGE THE INSTALL PATH HERE!
 
   make
 
   make
 
   sudo make install
 
   sudo make install
In this case you may need to check that XDE-Resources can be correctly found by python. So, in a terminal, type:
+
You may need to check that XDE-Resources can be correctly found by python. So, in a terminal, type:
 
   ipython
 
   ipython
 
   import xde_ +TAB
 
   import xde_ +TAB
 
If you only see  
 
If you only see  
 
   xde_robot_loader  xde_world_manager
 
   xde_robot_loader  xde_world_manager
It means you encountered a little bug, or you probably configured cmake to install in a different location than the default one. This is a known issue.
+
It means you encountered a little bug, or you probably configured cmake to install in a different location than the default one.
 
In this case you need to redo the ccmake step, and make and make install in the default location.
 
In this case you need to redo the ccmake step, and make and make install in the default location.
 
To verify, the install log should tell you something like:
 
To verify, the install log should tell you something like:
Line 126: Line 139:
 
   -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/core.py
 
   -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/core.py
 
   -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/__init__.py
 
   -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/__init__.py
 
+
Note that the python files go to dist-packages.
  
 
Some documentation can be built by:
 
Some documentation can be built by:

Revision as of 14:08, 14 November 2013

If you want to develop robot controllers in XDE, you may need to prepare your machine by installing two further components: XDE-core, which is a set of development files of XDE used for developers, and ORC. XDE-core is, as XDE, not open-source.

Once you have XDE-core and ORC, you can install the modules developed in ISIR for developing controllers in XDE. In this case the code can be downloaded on github.

Preparation

Linux

We hereby assume you have Ubuntu 12.04.

Dependencies:

  • System dependencies

The basics for XDE-core sudo apt-get install libeigen3-dev g++ python-dev cmake git These are necessary for XDE-ISIR modules sudo apt-get install swig python-matplotlib

  • XDE-core

To retrieve the last developers packages, ask Sovannara Hak.

  • XDE-ISIRController

To retrieve the latest ISIR Controller for XDE based on C++ ask Joseph Salini.

  • XDE-ISIR modules

You will need to retrieve some modules from the github repository https://github.com/xde-isir Create a folder, for example xde-isir, where you can put all he modules. Each will be compiled separately.

  cd /home/icub/software/src/xde-isir
  git clone https://github.com/XDE-ISIR/XDE-Observers.git
  git clone https://github.com/XDE-ISIR/XDE-DocPythonAPI.git
  git clone https://github.com/XDE-ISIR/demo-spacemouse.git
  git clone https://github.com/XDE-ISIR/XDE-ZMPy.git
  git clone https://github.com/XDE-ISIR/RTEKukaFRIClient.git
  git clone https://github.com/XDE-ISIR/orocos_toolchain_xde.git
  git clone https://github.com/XDE-ISIR/XDE-Resources.git
  git clone https://github.com/XDE-ISIR/XDE-ISIRController.git 
  git clone https://github.com/XDE-ISIR/XDE-RobotLoader.git
  git clone https://github.com/XDE-ISIR/XDE-WorldManager.git
  git clone https://github.com/XDE-ISIR/XDE-Spacemouse.git
  git clone https://github.com/XDE-ISIR/XDE-ISIR.git
  git clone https://github.com/XDE-ISIR/XDE-DocExamples.git

Note that XDE-ISIRController in this case has the same name of the one downloaded in the previous step, but it is different. The previous is in C++ and makes the controller available in C++ to XDE, whereas the one you get from git is the python version, that calls the C++ version to accelerate some parts of the simulation.

Installation

Linux

  • XDE-Core

Go in the folder where you have put xde-core, for example

  cd /home/icub/software/src/xde-core

and install the package:

  dpkg -i xdecore_3.99.5.0_amd64.deb

Check that LGSM library is included, this

  pkg-config --cflags eigen3

should return

  -I/usr/include/eigen3 -I/usr/include/eigen3/unsupported

If this is not the case, then you need to copy or modify the file eigen3.pc in your $PKG_CONFIG_PATH. Install the developer package:

   sudo dpkg -i --force-all  xdecore-dev_3.99.5.0_amd64.deb

Now you have to create a file xdecore.pc and put it your $PKG_CONFIG_PATH. In my case, $PKG_CONFIG_PATH=/home/icub/software/lib/pkgconfig.

   cd $PKG_CONFIG_PATH
   touch xdecore.pc

Copy-paste this into the file: prefix=/usr libdir=${prefix}/lib includedir=${prefix}/include/xdecore

Name: xdecore Description: XDE core library Version: 3.99.5.0 Requires: eigen3 Libs: -L${libdir} -lXDECore Cflags: -I${includedir}

  • XDE-ISIRController

Go into the folder where you put XDE-ISIRController, for example

  cd /home/icub/software/src/XDE-ISIRController

Create the usual build folder, enter it and compile through cmake:

  mkdir build
  cd build
  ccmake ..
  make
  make install

This will install libXDE-ISIRModel-gnulinux.so (in my case, it is located in: /home/icub/software/lib/libXDE-ISIRModel-gnulinux.so).


  • XDE-ISIR modules

Now these modules have to be compiled one by one, and in some cases in a different way.

  • XDE-WorldManager
  cd XDE-WorldManager
  python setup.py develop
  • XDE-RobotLoader
  cd XDE-RobotLoader
  python setup.py develop
  • XDE-Resources
  cd XDE-Resources
  mkdir build

Before doing the standard ccmake/make chain, you must check the content of the cmake file CMakeLists.txt, in particular check the execute_process command, and verify that it is installing into dist-packages. If not, change the code as below. EXECUTE_PROCESS(

 COMMAND "${PYTHON_EXECUTABLE}" "-c"
 "import sys, os; print os.sep.join(['lib', 'python' + sys.version[:3], 'dist-packages'])"
 OUTPUT_VARIABLE PYTHON_SITELIB
 OUTPUT_STRIP_TRAILING_WHITESPACE
 ERROR_QUIET)

This avoid a known issue with ipython, it is going to be fixed - so probably you won't have this issue. Then you can finally do the ccmake/make thing: please do not change the install location in this case! I tried installing it in my usual /home/icub/software location, it doesn't work. So stick to the usual installation path.

  cd build
  ccmake ..      // DO NOT CHANGE THE INSTALL PATH HERE!
  make
  sudo make install

You may need to check that XDE-Resources can be correctly found by python. So, in a terminal, type:

  ipython
  import xde_ +TAB

If you only see

  xde_robot_loader  xde_world_manager

It means you encountered a little bug, or you probably configured cmake to install in a different location than the default one. In this case you need to redo the ccmake step, and make and make install in the default location. To verify, the install log should tell you something like:

  ...
  -- Installing: /usr/local/share/xde-resources/urdf/icub_simple.dae
  -- Installing: /usr/local/share/xde-resources/urdf/icub_simple_collision.dae
  -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/core.py
  -- Installing: /usr/local/lib/python2.7/dist-packages/xde_resources/__init__.py

Note that the python files go to dist-packages.

Some documentation can be built by:

  cd xde-isir
  cd XDE-DocExamples
  make html

which will create a browsable html documentation in build/html. In source/examples you can find some examples with scripts.


Usage

Linux

The general way to run scripts in XDE is

  runxde.sh my_script.py

If you installed XDE correctly, you should be able to have runxde.sh in the PATH (so you can use the autocompletion in your terminal).