
/*
 * Copyright (C) 2015 Fondazione Istituto Italiano di Tecnologia
 * Authors: See AUTHORS file.
 * CopyPolicy: Released under the terms of the LGPLv2.1 or later, see LGPL.TXT
 *
 */

// Definition of doxygen groups
/**
 * \defgroup iDynTreeCore %iDynTree core data structures
 *
 * iDynTree provides basic data structures to implement kinemanics and dynamics
 * algorithms.
 *
 */

/**
 * \defgroup iDynTreeModel %iDynTree model data structures
 *
 * Data structures and algorithm to model and implement algorithm
 * on multibody articulated systems.
 *
 */

/**
 * \defgroup iDynTreeSensors %iDynTree sensors data structures
 *
 * Data structures and algorithm to model sensors distributed on
 * multibody articulated systems.
 *
 */

/**
 * \defgroup iDynTreeModelIO %iDynTree model data structures
 *
 * Functions to read and write iDynTree models and sensors
 * in external formats (URDF at the moment).
 *
 */

/**
 * \defgroup iDynTreeEstimation Algorithms related to whole-body estimation.
 */

 /**
 * \defgroup iDynTreeRegressors Algorithms related to whole-body dynamics identification.
 */

/**
 * \defgroup iDynTreeHighLevel High level interfaces to access algorithms contained in iDynTree.
 */

/**
 * \defgroup iDynTreeExperimental Experimental classes, for which the interface is currently under active development and is not stable.
 *
 * The classes and function contained in this group are in active development and are expected to change between different iDynTree
 * releases without any support for backward compatibility.
 */

/**
 * \defgroup iDynTreeInverseKinematics Inverse kinematics algorithms.
 *
 * \warning This component is compiled only if iDynTree is compiled with the CMake flag
 *          IDYNTREE_USES_IPOPT set to ON .
 */


/**
 * \defgroup iDynTreeYARP Functions and classes for simplifying integration of %iDynTree and YARP.
 *
 * \warning This component is compiled only if iDynTree was compiled with the CMake flag
 *          IDYNTREE_USES_YARP set to ON .
 *
 */

/**
 * \defgroup iDynTreeICUB Functions and classes for simplifying integration of %iDynTree and ICUB.
 *
 * \warning This component is compiled only if iDynTree was compiled with the CMake flag
 *          IDYNTREE_USES_ICUB set to ON .
 *
 */


 /**
 * \defgroup iDynTreeDeprecated Deprecated functions and classes
 *
 * \warning The functions and classes in this component should not be used for new code.
 *
 */





/**
\mainpage Welcome to %iDynTree

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

\li Source code: https://github.com/robotology/idyntree
\li File an issue: https://github.com/robotology/idyntree/issues/new
\li Installation and Tutorials: https://github.com/robotology/idyntree/blob/master/README.md

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

This documentation is automatically generated from the C++ headers, and
can be used as a reference documentation for the classes and functions
contained in iDynTree .

%iDynTree is divided in several parts:
\li  \ref iDynTreeCore "Core" :  Basic data structures for kinematics and dynamics of rigid bodies.
\li  \ref iDynTreeModel "Model": Data structures and algorithms for modeling articulated body structures.
\li  \ref iDynTreeSensors "Sensors" : Data structures for modeling sensors distribude on articulated body structures.
\li  \ref iDynTreeModelIO "ModelIO" : Function to read and write %iDynTree models and sensors to external files (such as [URDF](http://wiki.ros.org/urdf) or [iKin DH parameters](http://wiki.icub.org/brain/classiCub_1_1iKin_1_1iKinLimb.html#a76c93aae76bb0f7ef9470b81d0da0e26) ).
\li  \ref iDynTreeEstimation "Estimation" : Algorithms related to whole-body estimation.
\li  \ref iDynTreeRegressors "Regressors" : Algorithms related to whole-body dynamics identification.
\li  \ref iDynTreeHighLevel "HighLevel"   : High level interfaces to access algorithms contained in %iDynTree.
\li  \ref iDynTreeYARP "YARP" : Function and classes for simplifying integration of %iDynTree with [YARP](http://yarp.it/).
<br>

As iDynTree is mainly developed to support the research effort of [iCub Facility department](https://www.iit.it/research/lines/icub) of the [Italian Institute of Technology](https://www.iit.it),
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 :

\li  \ref iDynTreeExperimental "Experimental" : Experimental data structures and algorithms, whose interface is not guaranteed to be stable.

iDynTree started as a tiny wrapper of code between [YARP](http://yarp.it/) and [KDL](https://github.com/orocos/orocos_kinematics_dynamics).
For this reason, in the repository there is still some legacy code, that should not be used by users, as it is going to be removed from iDynTree.

\li  \ref iDynTreeDeprecated "Deprecated" : Deprecated data structures and algorithms, that are going to be removed from iDynTree.


 *
 */
