Welcome to iDynTree reference documentation.

iDynTree is a library of robots dynamics algorithms for control, estimation and simulation.

iDynTree is a library of robots dynamics algorithms for control, estimation and simulation. iDynTree is specifically designed for free-floating robots, but it is possible to use it also with fixed-base robots.

This is iDynTree's reference documentation, that is automatically generated from the C++ headers. It contains specific details for each class, method and function contained in iDynTree.

For how to install iDynTree and tutorial on how to use iDynTree, please check the README at https://github.com/robotology/idyntree/blob/master/README.md . If you have a problem using iDynTree or you do not understand something in iDynTree documentation, please file an issue: https://github.com/robotology/idyntree/issues/new

iDynTree is written in C++ language, but thanks to SWIG it is possible to use the iDynTree algorithms in several other languages. Support and documentation is provided in particular for C++, Matlab, Python and Lua. If you are interested in using iDynTree with another programming language, feel free to create a new issue requesting support for it.

iDynTree is divided in several parts:

  • Core : Basic data structures for kinematics and dynamics of rigid bodies.
  • Model: Data structures and algorithms for modeling articulated body structures.
  • Sensors : Data structures for modeling sensors distribude on articulated body structures.
  • ModelIO : Function to read and write iDynTree models and sensors to external files (such as URDF or iKin DH parameters ).
  • Estimation : Algorithms related to whole-body estimation.
  • HighLevel : High level interfaces to access algorithms contained in iDynTree.


iDynTree has a few classes that are particular used, those are linked in the following for quick access:

As iDynTree is mainly developed to support the research effort of Artificial and Mechanical Intelligence research line of the Italian Institute of Technology, some parts of it are activly developed and their interface can abroutly change between iDynTree releases. Until this components are ready to be integrated in a proper part of iDynTree, we keep them in the "experimental" part of iDynTree :

  • Experimental : Experimental data structures and algorithms, whose interface is not guaranteed to be stable.