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

From Wiki for iCub and Friends
Jump to: navigation, search
Line 14: Line 14:
  
 
'''Dependencies''':
 
'''Dependencies''':
* System dependencies
+
* '''System dependencies'''
 
The basics for XDE-core
 
The basics for XDE-core
 
<code>
 
<code>
Line 24: Line 24:
 
</code>
 
</code>
  
* [[UPMC iCub project/XDE-simulator|XDE: installation]]
+
* [[UPMC iCub project/XDE-simulator|'''XDE''': installation]]
* [[UPMC iCub project/Installing ORC|ORC: installation]]
+
* [[UPMC iCub project/Installing ORC|'''ORC''': installation]]
  
* XDE-core
+
* '''XDE-core'''
 
To retrieve the last developers packages, ask [http://www.isir.upmc.fr/?op=view_profil&id=262 Sovannara Hak].
 
To retrieve the last developers packages, ask [http://www.isir.upmc.fr/?op=view_profil&id=262 Sovannara Hak].
  
* XDE-ISIRController
+
* '''XDE-ISIRController'''
 
To retrieve the latest ISIR Controller for XDE based on C++ ask Joseph Salini.
 
To retrieve the latest ISIR Controller for XDE based on C++ ask Joseph Salini.
  
* XDE-ISIR modules
+
* '''XDE-ISIR modules'''
 
You will need to retrieve some modules from the github repository https://github.com/xde-isir
 
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.
 
Create a folder, for example xde-isir, where you can put all he modules. Each will be compiled separately.
Line 56: Line 56:
 
=== Linux ===
 
=== Linux ===
  
* XDE-Core
+
* '''XDE-Core'''
 
Go in the folder where you have put xde-core, for example
 
Go in the folder where you have put xde-core, for example
 
   cd /home/icub/software/src/xde-core
 
   cd /home/icub/software/src/xde-core
Line 86: Line 86:
 
</code>
 
</code>
  
* XDE-ISIRController
+
* '''XDE-ISIRController'''
 
Go into the folder where you put XDE-ISIRController, for example
 
Go into the folder where you put XDE-ISIRController, for example
 
   cd /home/icub/software/src/XDE-ISIRController
 
   cd /home/icub/software/src/XDE-ISIRController
Line 98: Line 98:
  
  
* XDE-ISIR modules
+
* '''XDE-ISIR modules'''
 
Now these modules have to be compiled one by one, and in some cases in a different way.
 
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
 +
  cd build
 +
  ccmake ..      // DO NOT CHANGE THE INSTALL PATH HERE!
 +
  make
 +
  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:
 +
  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. This is a known issue.
 +
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
  
  

Revision as of 12:56, 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
  cd build
  ccmake ..      // DO NOT CHANGE THE INSTALL PATH HERE!
  make
  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:

  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. This is a known issue. 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


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).