|
5 | 5 | \subsection entity_definition General definition
|
6 | 6 | \image html entity.png
|
7 | 7 |
|
8 |
| -Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM server, an entity is simply a C++ object. |
9 |
| -The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 |
| 8 | +Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM |
| 9 | +server, an entity is simply a C++ object. The main idea is that this entity is |
| 10 | +providing mostly a data-driven functionnality working at very high rate (\f$ 200 |
10 | 11 | Hz\f$ or \f$ 1 kHz \f$) and should have a minimal computational time foot-print.
|
11 | 12 |
|
12 |
| -For this \subpage subp_signals (or ports to use a more classical terminology) are providing a time dependency between |
13 |
| -data. To implement this, an output signal is linked with a method of the entity. The method calls input signals or use |
14 |
| -other means to get the needed data. It might be provided by the connection with remote computers through a middleware, |
15 |
| -or specific protocols, but in general the external data is based upon the sensor values provided by a "Device" entity. |
16 |
| -For this reason the signal evaluations are realized through the cascade of dependencies and start from the evaluation |
17 |
| -of an input signal of a periodic node (in general the device). This is realized inside a \b real-time thread. |
18 |
| -
|
19 |
| -To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the |
20 |
| -entity or get information from the entity. As a command is in general asynchronous and rare with respect to the |
21 |
| -data-flow scheme for the signals the command is in general executed in a \b none-real-time thread. |
| 13 | +For this \subpage subp_signals (or ports to use a more classical terminology) |
| 14 | +are providing a time dependency between data. To implement this, an output |
| 15 | +signal is linked with a method of the entity. The method calls input signals or |
| 16 | +use other means to get the needed data. It might be provided by the connection |
| 17 | +with remote computers through a middleware, or specific protocols, but in |
| 18 | +general the external data is based upon the sensor values provided by a "Device" |
| 19 | +entity. For this reason the signal evaluations are realized through the cascade |
| 20 | +of dependencies and start from the evaluation of an input signal of a periodic |
| 21 | +node (in general the device). This is realized inside a \b real-time thread. |
| 22 | +
|
| 23 | +To add flexibility to a node, it is possible to add command with arguments to |
| 24 | +modify the internal behavior of the entity or get information from the entity. |
| 25 | +As a command is in general asynchronous and rare with respect to the data-flow |
| 26 | +scheme for the signals the command is in general executed in a \b none-real-time |
| 27 | +thread. |
22 | 28 |
|
23 | 29 | \subsection entity_classes Entity class
|
24 |
| -Entities are implemented as C++ classes and compiled as dynamic libraries. They can be loaded and instancied |
25 |
| -dynamically. It is therefore necessary to specify the location of their dynamical libraries. However given the time it |
26 |
| -might take to load the library, it is not advised to do that during a control-law computation. Entity instanciation |
27 |
| -also implies memory allocation which is also time consuming and thus not advised inside a real-time thread. |
| 30 | +Entities are implemented as C++ classes and compiled as dynamic libraries. They |
| 31 | +can be loaded and instancied dynamically. It is therefore necessary to specify |
| 32 | +the location of their dynamical libraries. However given the time it might take |
| 33 | +to load the library, it is not advised to do that during a control-law |
| 34 | +computation. Entity instanciation also implies memory allocation which is also |
| 35 | +time consuming and thus not advised inside a real-time thread. |
28 | 36 |
|
29 |
| -The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it is advised to |
30 |
| -check the install log or the CMakeLists.txt file to check the installation path). |
| 37 | +The entities will be placed in ${PREFIX}/lib/plugin (since this may change, it |
| 38 | +is advised to check the install log or the CMakeLists.txt file to check the |
| 39 | +installation path). |
31 | 40 |
|
32 | 41 | \subsection entities List of entities in this package
|
33 | 42 | Since most of the functionality in projects using the dynamic-graph framework
|
34 |
| -is exposed from entities, here is a short description of all the entities contained in |
35 |
| -this package. Note that most entities are contained in a binary file that closely matches |
36 |
| -the entities' names in the scripts; loading this file with the plugin loader will |
37 |
| -enable creation of this entity through the factory. |
| 43 | +is exposed from entities, here is a short description of all the entities |
| 44 | +contained in this package. Note that most entities are contained in a binary |
| 45 | +file that closely matches the entities' names in the scripts; loading this file |
| 46 | +with the plugin loader will enable creation of this entity through the factory. |
38 | 47 | \li \ref tracerdoc
|
39 | 48 | \li \ref tracerrealtimedoc
|
40 | 49 |
|
41 | 50 | \subsection specific_semantics Specific semantics with entities
|
42 | 51 |
|
43 |
| -It is possible to derive classes and apply specific semantic for the entities. In our case we are interested in |
44 |
| -specific control semantics: \li Tasks (more information <a |
45 |
| -href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00089.html">here</a>) \li Features (more information <a |
46 |
| -href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00030.html">here</a>) \li Solver (more information <a |
| 52 | +It is possible to derive classes and apply specific semantic for the entities. |
| 53 | +In our case we are interested in specific control semantics: \li Tasks (more |
| 54 | +information <a |
| 55 | +href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00089.html">here</a>) |
| 56 | +\li Features (more information <a |
| 57 | +href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00030.html">here</a>) |
| 58 | +\li Solver (more information <a |
47 | 59 | href="http://stack-of-tasks.github.io/sot-core/doxygen/HEAD/a00078.html">here</a>)
|
48 | 60 |
|
49 | 61 | */
|
0 commit comments