Skip to content

arocchi/idyntree

 
 

Repository files navigation

iDynTree Build Status

iDynTree is a C++ library of algorithms related to robots dynamics, specifically designed for free floating robots.

Installation

iDynTree is developed in the context of the CoDyCo European Project. For this reason it is usually installed throught the codyco-superbuild, an easy way to download, compile and install the CoDyCo software on multiple operating systems, using the CMake build system and its extension YCM. For more informations on the superbuild concept, please check YCM documentation.

If you are not interested in installing all the CoDyCo software it is still possible to install iDynTree without installing the rest of the CoDyCo software. For this reason a superbuild to install iDynTree and all its dependencies is available at: https://github.com/robotology-playground/iDynTree-superbuild . Please check the README of that repo for information on how to install iDynTree and all its dependencies.

Bindings

To compile bindings to iDynTree in several scriping languages, you should enable them using the IDYNTREE_USES_PYTHON, IDYNTREE_USES_LUA, IDYNTREE_USES_MATLAB CMake options.

Several examples for using the bindigs are available in https://github.com/robotology-playground/idyntree/blob/master/doc/geometric_classes.md .

Then, properly accessing bindings to iDynTree can require some additional steps.

Python

You should add to the PYTHONPATH enviromental variable the install path of the iDynTree.py file. For a typical installation of the codyco-superbuild, this will require adding to the .bashrc a line similar to this:

export PYTHONPATH=$PYTHONPATH:~/src/codyco-superbuild/build/install/lib/python2.7/dist-packages/

Matlab

You should add to Matlab path the {CMAKE_INSTALL_PREFIX}/mex directory. By default this directory should be /usr/local/mex, or if you used a YCM superbuild something like SUPERBUILD_BUILD_DIRECTORY/install/mex.

Matlab bindings modifications

All the other bindings (Python,Lua, ...) are generated by SWIG and compiled on the fly by the user, by enabling the IDYNTREE_USES_LANGUAGE option. The Matlab bindings are an exception because they rely on an experimental version of Swig, developed for providing Matlab bindings for the casadi project. For this reason, usually the Matlab bindigs are not generated by the users, but by iDynTree developers that have a special experimental Swig version installed. The bindings code is then committed to the repository, and the IDYNTREE_USES_MATLAB option simply enables compilation of the bindings. If you want to regenerate the Matlab bindings, for example because you modified some iDynTree classes, you can install the experimental version of Swig with Matlab support at https://github.com/casadi/casadi/wiki/matlab (just follow the first 4 points in the guide) and then enable Matlab bindings generation with the IDYNTREE_GENERATE_MATLAB options.

Dependencies

Build dependencies
Core
Optional

Reference paper

A paper describing the algorithms implemented in iDynTree and their use in a real world scenario can be downloaded here . If you're going to use this library for your work, please quote it within any resulting publication:

F. Nori, S. Traversaro, J. Eljaik, F. Romano, A. Del Prete, D. Pucci "iCub whole-body control through force regulation on rigid non-coplanar contacts", Frontiers in Robotics and AI, 2015.

The bibtex code for including this citation is provided:

@ARTICLE{10.3389/frobt.2015.00006,
  AUTHOR={Nori, Francesco  and  Traversaro, Silvio  and  Eljaik, Jorhabib  and  Romano, Francesco  and  Del Prete, Andrea  and  Pucci, Daniele},
  TITLE={iCub Whole-body Control through Force Regulation on Rigid Noncoplanar Contacts},
  JOURNAL={Frontiers in Robotics and AI},
  VOLUME={2},
  YEAR={2015},
  NUMBER={6},
  URL={http://www.frontiersin.org/humanoid_robotics/10.3389/frobt.2015.00006/abstract},
  DOI={10.3389/frobt.2015.00006},
  ISSN={2296-9144}}

About

Dynamics Library designed for Free Floating Robots

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.1%
  • CMake 4.6%
  • MATLAB 3.1%
  • Other 0.2%