@@ -38,7 +38,7 @@ for a given problem. It is the basis for the stack of tasks operation.
38
38
<p>To give a more concrete example, the real-time control used by the Gepetto group for the humanoid robot HRP-2
39
39
is detailled.</p>
40
40
<p>
41
- Real-time control system are usually driven by a cyclic computational node which
41
+ Real-time control system are usually driven by a cyclic computational node which
42
42
needs to send a control reference value to each motors of a robot. To compute this
43
43
control reference values, sensor values need to be provided.
44
44
In the Stack-Of-Tasks special entities called Device are used to
@@ -52,13 +52,13 @@ This control vector is the result of a computation solving a control problem.
52
52
The entity in charge of solving this control problem is called "Solver" in the previous
53
53
figure.
54
54
In the SoT framework it is often cast as an optimization problem.
55
- This optimization problem is build using a control "Task" (not to be confused with the
55
+ This optimization problem is build using a control "Task" (not to be confused with the
56
56
general word task). A control "Task" regulates the difference with a "Feature" computed
57
57
on the current robot state and a "Desired Feature". For instance when walking, the regulated
58
- feature is the robot's Center-Of-Mass (CoM) position. The "Feature" is computed using a
58
+ feature is the robot's Center-Of-Mass (CoM) position. The "Feature" is computed using a
59
59
library using the robot model and the sensor value. The entity making this computation is "Dyn".
60
60
A walking pattern generator using foot-steps position given in advance generates the desired
61
- value for the CoM.
61
+ value for the CoM.
62
62
Note that the "Dyn" entity uses the sensor provided by the entity "Robot". </p>
63
63
64
64
<p>
@@ -90,7 +90,7 @@ See \ref scriptingabout
90
90
91
91
\subsection entity_definition General definition
92
92
Despite the fact that it looks very similar to a ROS node or a CORBA/OpenRTM server, an entity is simply a C++ object.
93
- The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 Hz\f$ or \f$ 1 kHz \f$)
93
+ The main idea is that this entity is providing mostly a data-driven functionnality working at very high rate (\f$ 200 Hz\f$ or \f$ 1 kHz \f$)
94
94
and should have a minimal computational time foot-print.
95
95
96
96
For this signals (or ports to use a more classical terminology) are providing a time dependency between data.
@@ -101,7 +101,7 @@ but in general the external data is based upon the sensor values provided by a "
101
101
For this reason the signal evaluations are realized through the cascade of dependencies and start from the evaluation of an input
102
102
signal of a periodic node (in general the device). This is realized inside a \b real-time thread.
103
103
104
- To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the entity
104
+ To add flexibility to a node, it is possible to add command with arguments to modify the internal behavior of the entity
105
105
or get information from the entity.
106
106
As a command is in general asynchronous and rare with respect to the data-flow scheme for the signals the command is in general
107
107
executed in a \b none-real-time thread.
@@ -123,8 +123,6 @@ the entities' names in the scripts; loading this file with the plugin loader wil
123
123
enable creation of this entity through the factory.
124
124
\li \ref tracerdoc
125
125
\li \ref tracerrealtimedoc
126
- \li ShellProcedure
127
- \li \ref shellfunctions_doc
128
126
129
127
\subsection specific_semantics Specific semantics with entities
130
128
@@ -152,10 +150,10 @@ The class \ref dynamicgraph::FactoryStorage is a singleton which register the en
152
150
\subsection pool Pool
153
151
The class \ref dynamicgraph::PoolStorage keeps track of the entities instanciated with the factory.
154
152
The entities are the graph nodes. Signals are constructed during the class instanciation, they do not live independently
155
- from the entities. Signals are the directed edges of the graph.
156
- The pool can write a file representing the graph of entities.
153
+ from the entities. Signals are the directed edges of the graph.
154
+ The pool can write a file representing the graph of entities.
157
155
158
- \subsection scriptingabout Building the graph
156
+ \subsection scriptingabout Building the graph
159
157
160
158
This package provides a scripting language allows entities to define their own commands, and
161
159
provides a basic framework to build dynamically the computational graph.
@@ -175,16 +173,6 @@ register them in the Pool, where they can be listed, accessed, and acted upon
175
173
(see PoolStorage documentation). Basic commands defined by entities include
176
174
signal connection graph file generation, help and name print, and signals.
177
175
178
- Finally, a shell (command-line) interface is made available thanks to the
179
- Interpreter class (see the file test_shell.cpp for an example). Objects deriving from
180
- Entity can expose their own commands by overriding the Entity's default
181
- commandLine() method. It is possible to load a plugin to register custom
182
- shell commands; see shell-functions and shell-procedure for an example.
183
-
184
- Some basic shell functions, and support for procedures, are also included.
185
- For a complete list of those, load the plugin shell-functions.so and type 'help'
186
- at the command line.
187
-
188
176
The singletons made available by including the corresponding headers in this
189
177
module are:
190
178
\li dynamicgraph::FactoryStorage
@@ -193,13 +181,6 @@ module are:
193
181
For an example of a program creating entities in C++, see the unit test
194
182
test_pool.cpp (in your package source directory/unitTesting).
195
183
196
- \subsection use_scripts Through scripts
197
- The program \ref dgshell_doc can be used to have scripting access to the dynamic-graph
198
- library, where you can execute scripts and commands, load plugins, create entities and connect signals.
199
-
200
- Here is a typical use case for programmers:
201
- \image html figures/use-case.png
202
-
203
184
\subsection Tutorial
204
185
A tutorial is available <a href="http://stack-of-tasks.github.io/dynamic-graph-tutorial/">here</a>
205
186
\section references References
@@ -217,25 +198,6 @@ IEEE Trans. on Robotics, 23(1):60-72, February 2007
217
198
218
199
\namespace dynamicgraph This is the namespace where every object and class of this library is located.
219
200
220
- \defgroup gshellfunctions Notes about the scripting language
221
- @{
222
- A couple of functions are built-in in the interpreter and provides low-level features such as file sourcing or
223
- plug-in loading.\n
224
- These functions are:\n
225
- \code plug <obj1.sig1> <obj2.sig2> \endcode plugs the signal sig1 of obj1 to the signal sig2 of obj2. sig1 and sig2
226
- have to be of the same type. sig1 has to be an output signal and sig2 an input signal.
227
- \code new <class> <object> \endcode instantiates an object object of class class. object has to be a free identifier and
228
- class an existing entity.
229
- \code destroy <object> \endcode deletes an instance previously created.
230
- \code run <script.txt> \endcode sources (i.e. read and interpret) an external file.
231
- \code loadPlugin <file.so> <directory> \endcode loads a plugin called file.so and located in the directory directory.
232
- \code unloadPlugin <path/file.so> \endcode unloads a plugin.
233
- \code help \endcode lists available functions.
234
- \code set <obj.signal> <value> \endcode defines an input signal to a specific, constant, value.
235
- \code get <obj.signal> <value> \endcode prints out a signal value.
236
- \code compute <obj.sig> <time> \endcode computes an output signal and sets the associated time to time.
237
- @}
238
-
239
201
\defgroup dgraph Core classes and objects
240
202
@{
241
203
@@ -258,8 +220,6 @@ Signals can be grouped together using dynamicgraph::SignalArray.
258
220
259
221
Signals implement a caching mechanism by storing the last computation time tick.
260
222
261
- Some signals can be plugged ("plug" script command) into one another or set through shell commands.
262
-
263
223
For more information, please see the individual signal pages.
264
224
265
225
\b Samples
0 commit comments