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.
All the C++ code is placed in the namespace "dynamic_graph::sot". In the core library, the following classes are present:
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:
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).
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.
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.