Sot-core library (libsot-core.[dll|so])

For developers, this is the core library that your project has to be linked with. More...

For developers, this is the core library that your project has to be linked with.

It defines the related algorithms and entities using the dynamic-graph framework.

What's in the box?

All the C++ code is placed in the namespace "dynamic_graph::sot". In the core library, the following classes are present:

Stack of Task solvers

A hierarchical inequality solver, sot::SolverHierarchicalInequalities, is present. For the maths, see Mansard2007.


The library defines the following classes of exceptions that derive from std::exception:

Signal cast helpers

Using the dynamic-graph module's signal_disp<T>, signal_cast<T> or signal_trace<T> methods, involves a cast to or from a stringstream object (i.e. for all practical purposes, a string). For the objects defined in sot-core (T = sot::*), most of these casts are defined. Hence you can display sot::VectorQuaternion or sot::MatrixTwist objects as strings, or set them from the command line (using a script interpreter from the dynamic-graph package).


The class dynamicgraph::sot::FeatureAbstract is the base class for features. all other classes are in entity python modules. For more information on what is a feature, see the documentation of class dynamic_graph::sot::FeatureAbstract.


Tasks are the hierarchical element of the stack of tasks.

A task computes a value and a Jacobian as output signals. Once stacked into a solver, the solver will compute the control vector that makes the task value converge toward zero in the order defined by the priority levels. For more information see the documentation of class dynamicgraph::sot:TaskAbstract.

Mathematical base

The following classes encapsulate common mathematical objects, and are all defined in the core library; see each individual class documentation for reference.


The core library also contains functions for adaptation and extension of the dynamic-graph shell; see additional-functions.cpp, factory.cpp and pool.cpp directly for these. In a nutshell, a typical user shouldn't need these. See Factory for additional information.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines