/* * Copyright 2010, * François Bleibel, * Thomas Moulard, * Olivier Stasse, * * CNRS/AIST * * This file is part of dynamic-graph. * dynamic-graph is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation, either version 3 of * the License, or (at your option) any later version. * dynamic-graph is distributed in the hope that it will be * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. You should * have received a copy of the GNU Lesser General Public License along * with dynamic-graph. If not, see <http://www.gnu.org/licenses/>. */ /** \mainpage The dynamic-graph aims at building computational graphs for real-time control. It provides the basic software functionnalities. A more detailed introduction is available at \subpage subp_concept_intro. The installation instruction are given at \subpage subp_installation. The software graph structure is detailled in \subpage p_graph For debugging your entities detailed instructions are given in \subpage debug For citing the software in your research work please refer to \subpage subp_references \namespace dynamicgraph This is the namespace where every object and class of this library is located. \defgroup debug Debugging \defgroup dgraph Core classes and objects @{ Classes, entities and binaries that make up the core of the dynamic-graph library are listed here. @} \defgroup signals Signals @{ This part provides the mechanism to transfer information from one entity to another. There are three main types of signals, all deriving from the common class dynamicgraph::SignalBase : \li dynamicgraph::Signal : a "normal" signal, passing data around \b by \b value \li dynamicgraph::SignalPtr : a signal used for efficient passing of large data, by reference (or rather, C pointers)* \li dynamicgraph::SignalTimeDependent : a signal that enforces a time dependency between other signals, making sure its inputs are up to date on access, using a incrementing time tick as reference. \n* Note: this may cause a problem if this package is used in a multithreaded program. Signals can be grouped together using dynamicgraph::SignalArray. Signals implement a caching mechanism by storing the last computation time tick. For more information, please see the individual signal pages. \b Samples \li The following code ensures the jacobian output signal uses up-to-date values for its computations, when accessed. \code // This signal returns the Jacobian of the current value // according to the robot state dg::SignalTimeDependent<ml::Matrix,int> jacobianSOUT; (...) jacobianSOUT.addDependency( positionSIN ); jacobianSOUT.addDependency( articularJacobianSIN ); \endcode @} */