roby 0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +29 -0
- data/History.txt +4 -0
- data/License-fr.txt +519 -0
- data/License.txt +515 -0
- data/Manifest.txt +245 -0
- data/NOTES +4 -0
- data/README.txt +163 -0
- data/Rakefile +161 -0
- data/TODO.txt +146 -0
- data/app/README.txt +24 -0
- data/app/Rakefile +8 -0
- data/app/config/ROBOT.rb +5 -0
- data/app/config/app.yml +91 -0
- data/app/config/init.rb +7 -0
- data/app/config/roby.yml +3 -0
- data/app/controllers/.gitattributes +0 -0
- data/app/controllers/ROBOT.rb +2 -0
- data/app/data/.gitattributes +0 -0
- data/app/planners/ROBOT/main.rb +6 -0
- data/app/planners/main.rb +5 -0
- data/app/scripts/distributed +3 -0
- data/app/scripts/generate/bookmarks +3 -0
- data/app/scripts/replay +3 -0
- data/app/scripts/results +3 -0
- data/app/scripts/run +3 -0
- data/app/scripts/server +3 -0
- data/app/scripts/shell +3 -0
- data/app/scripts/test +3 -0
- data/app/tasks/.gitattributes +0 -0
- data/app/tasks/ROBOT/.gitattributes +0 -0
- data/bin/roby +210 -0
- data/bin/roby-log +168 -0
- data/bin/roby-shell +25 -0
- data/doc/images/event_generalization.png +0 -0
- data/doc/images/exception_propagation_1.png +0 -0
- data/doc/images/exception_propagation_2.png +0 -0
- data/doc/images/exception_propagation_3.png +0 -0
- data/doc/images/exception_propagation_4.png +0 -0
- data/doc/images/exception_propagation_5.png +0 -0
- data/doc/images/replay_handler_error.png +0 -0
- data/doc/images/replay_handler_error_0.png +0 -0
- data/doc/images/replay_handler_error_1.png +0 -0
- data/doc/images/roby_cycle_overview.png +0 -0
- data/doc/images/roby_replay_02.png +0 -0
- data/doc/images/roby_replay_03.png +0 -0
- data/doc/images/roby_replay_04.png +0 -0
- data/doc/images/roby_replay_event_representation.png +0 -0
- data/doc/images/roby_replay_first_state.png +0 -0
- data/doc/images/roby_replay_relations.png +0 -0
- data/doc/images/roby_replay_startup.png +0 -0
- data/doc/images/task_event_generalization.png +0 -0
- data/doc/papers.rdoc +11 -0
- data/doc/styles/allison.css +314 -0
- data/doc/styles/allison.js +316 -0
- data/doc/styles/allison.rb +276 -0
- data/doc/styles/jamis.rb +593 -0
- data/doc/tutorials/01-GettingStarted.rdoc +86 -0
- data/doc/tutorials/02-GoForward.rdoc +220 -0
- data/doc/tutorials/03-PlannedPath.rdoc +268 -0
- data/doc/tutorials/04-EventPropagation.rdoc +236 -0
- data/doc/tutorials/05-ErrorHandling.rdoc +319 -0
- data/doc/tutorials/06-Overview.rdoc +40 -0
- data/doc/videos.rdoc +69 -0
- data/ext/droby/dump.cc +175 -0
- data/ext/droby/extconf.rb +3 -0
- data/ext/graph/algorithm.cc +746 -0
- data/ext/graph/extconf.rb +7 -0
- data/ext/graph/graph.cc +529 -0
- data/ext/graph/graph.hh +183 -0
- data/ext/graph/iterator_sequence.hh +102 -0
- data/ext/graph/undirected_dfs.hh +226 -0
- data/ext/graph/undirected_graph.hh +421 -0
- data/lib/roby.rb +41 -0
- data/lib/roby/app.rb +870 -0
- data/lib/roby/app/rake.rb +56 -0
- data/lib/roby/app/run.rb +14 -0
- data/lib/roby/app/scripts/distributed.rb +13 -0
- data/lib/roby/app/scripts/generate/bookmarks.rb +162 -0
- data/lib/roby/app/scripts/replay.rb +31 -0
- data/lib/roby/app/scripts/results.rb +15 -0
- data/lib/roby/app/scripts/run.rb +26 -0
- data/lib/roby/app/scripts/server.rb +18 -0
- data/lib/roby/app/scripts/shell.rb +88 -0
- data/lib/roby/app/scripts/test.rb +40 -0
- data/lib/roby/basic_object.rb +151 -0
- data/lib/roby/config.rb +5 -0
- data/lib/roby/control.rb +747 -0
- data/lib/roby/decision_control.rb +17 -0
- data/lib/roby/distributed.rb +32 -0
- data/lib/roby/distributed/base.rb +440 -0
- data/lib/roby/distributed/communication.rb +871 -0
- data/lib/roby/distributed/connection_space.rb +592 -0
- data/lib/roby/distributed/distributed_object.rb +206 -0
- data/lib/roby/distributed/drb.rb +62 -0
- data/lib/roby/distributed/notifications.rb +539 -0
- data/lib/roby/distributed/peer.rb +550 -0
- data/lib/roby/distributed/protocol.rb +529 -0
- data/lib/roby/distributed/proxy.rb +343 -0
- data/lib/roby/distributed/subscription.rb +311 -0
- data/lib/roby/distributed/transaction.rb +498 -0
- data/lib/roby/event.rb +897 -0
- data/lib/roby/exceptions.rb +234 -0
- data/lib/roby/executives/simple.rb +30 -0
- data/lib/roby/graph.rb +166 -0
- data/lib/roby/interface.rb +390 -0
- data/lib/roby/log.rb +3 -0
- data/lib/roby/log/chronicle.rb +303 -0
- data/lib/roby/log/console.rb +72 -0
- data/lib/roby/log/data_stream.rb +197 -0
- data/lib/roby/log/dot.rb +279 -0
- data/lib/roby/log/event_stream.rb +151 -0
- data/lib/roby/log/file.rb +340 -0
- data/lib/roby/log/gui/basic_display.ui +83 -0
- data/lib/roby/log/gui/chronicle.rb +26 -0
- data/lib/roby/log/gui/chronicle_view.rb +40 -0
- data/lib/roby/log/gui/chronicle_view.ui +70 -0
- data/lib/roby/log/gui/data_displays.rb +172 -0
- data/lib/roby/log/gui/data_displays.ui +155 -0
- data/lib/roby/log/gui/notifications.rb +26 -0
- data/lib/roby/log/gui/relations.rb +248 -0
- data/lib/roby/log/gui/relations.ui +123 -0
- data/lib/roby/log/gui/relations_view.rb +185 -0
- data/lib/roby/log/gui/relations_view.ui +149 -0
- data/lib/roby/log/gui/replay.rb +327 -0
- data/lib/roby/log/gui/replay_controls.rb +200 -0
- data/lib/roby/log/gui/replay_controls.ui +259 -0
- data/lib/roby/log/gui/runtime.rb +130 -0
- data/lib/roby/log/hooks.rb +185 -0
- data/lib/roby/log/logger.rb +202 -0
- data/lib/roby/log/notifications.rb +244 -0
- data/lib/roby/log/plan_rebuilder.rb +470 -0
- data/lib/roby/log/relations.rb +1056 -0
- data/lib/roby/log/server.rb +550 -0
- data/lib/roby/log/sqlite.rb +47 -0
- data/lib/roby/log/timings.rb +164 -0
- data/lib/roby/plan-object.rb +247 -0
- data/lib/roby/plan.rb +762 -0
- data/lib/roby/planning.rb +13 -0
- data/lib/roby/planning/loops.rb +302 -0
- data/lib/roby/planning/model.rb +906 -0
- data/lib/roby/planning/task.rb +151 -0
- data/lib/roby/propagation.rb +562 -0
- data/lib/roby/query.rb +619 -0
- data/lib/roby/relations.rb +583 -0
- data/lib/roby/relations/conflicts.rb +70 -0
- data/lib/roby/relations/ensured.rb +20 -0
- data/lib/roby/relations/error_handling.rb +23 -0
- data/lib/roby/relations/events.rb +9 -0
- data/lib/roby/relations/executed_by.rb +193 -0
- data/lib/roby/relations/hierarchy.rb +239 -0
- data/lib/roby/relations/influence.rb +10 -0
- data/lib/roby/relations/planned_by.rb +63 -0
- data/lib/roby/robot.rb +7 -0
- data/lib/roby/standard_errors.rb +218 -0
- data/lib/roby/state.rb +5 -0
- data/lib/roby/state/events.rb +221 -0
- data/lib/roby/state/information.rb +55 -0
- data/lib/roby/state/pos.rb +110 -0
- data/lib/roby/state/shapes.rb +32 -0
- data/lib/roby/state/state.rb +353 -0
- data/lib/roby/support.rb +92 -0
- data/lib/roby/task-operations.rb +182 -0
- data/lib/roby/task.rb +1618 -0
- data/lib/roby/test/common.rb +399 -0
- data/lib/roby/test/distributed.rb +214 -0
- data/lib/roby/test/tasks/empty_task.rb +9 -0
- data/lib/roby/test/tasks/goto.rb +36 -0
- data/lib/roby/test/tasks/simple_task.rb +23 -0
- data/lib/roby/test/testcase.rb +519 -0
- data/lib/roby/test/tools.rb +160 -0
- data/lib/roby/thread_task.rb +87 -0
- data/lib/roby/transactions.rb +462 -0
- data/lib/roby/transactions/proxy.rb +292 -0
- data/lib/roby/transactions/updates.rb +139 -0
- data/plugins/fault_injection/History.txt +4 -0
- data/plugins/fault_injection/README.txt +37 -0
- data/plugins/fault_injection/Rakefile +18 -0
- data/plugins/fault_injection/TODO.txt +0 -0
- data/plugins/fault_injection/app.rb +52 -0
- data/plugins/fault_injection/fault_injection.rb +89 -0
- data/plugins/fault_injection/test/test_fault_injection.rb +84 -0
- data/plugins/subsystems/README.txt +40 -0
- data/plugins/subsystems/Rakefile +18 -0
- data/plugins/subsystems/app.rb +171 -0
- data/plugins/subsystems/test/app/README +24 -0
- data/plugins/subsystems/test/app/Rakefile +8 -0
- data/plugins/subsystems/test/app/config/app.yml +71 -0
- data/plugins/subsystems/test/app/config/init.rb +9 -0
- data/plugins/subsystems/test/app/config/roby.yml +3 -0
- data/plugins/subsystems/test/app/planners/main.rb +20 -0
- data/plugins/subsystems/test/app/scripts/distributed +3 -0
- data/plugins/subsystems/test/app/scripts/replay +3 -0
- data/plugins/subsystems/test/app/scripts/results +3 -0
- data/plugins/subsystems/test/app/scripts/run +3 -0
- data/plugins/subsystems/test/app/scripts/server +3 -0
- data/plugins/subsystems/test/app/scripts/shell +3 -0
- data/plugins/subsystems/test/app/scripts/test +3 -0
- data/plugins/subsystems/test/app/tasks/services.rb +15 -0
- data/plugins/subsystems/test/test_subsystems.rb +71 -0
- data/test/distributed/test_communication.rb +178 -0
- data/test/distributed/test_connection.rb +282 -0
- data/test/distributed/test_execution.rb +373 -0
- data/test/distributed/test_mixed_plan.rb +341 -0
- data/test/distributed/test_plan_notifications.rb +238 -0
- data/test/distributed/test_protocol.rb +516 -0
- data/test/distributed/test_query.rb +102 -0
- data/test/distributed/test_remote_plan.rb +491 -0
- data/test/distributed/test_transaction.rb +463 -0
- data/test/mockups/tasks.rb +27 -0
- data/test/planning/test_loops.rb +380 -0
- data/test/planning/test_model.rb +427 -0
- data/test/planning/test_task.rb +106 -0
- data/test/relations/test_conflicts.rb +42 -0
- data/test/relations/test_ensured.rb +38 -0
- data/test/relations/test_executed_by.rb +149 -0
- data/test/relations/test_hierarchy.rb +158 -0
- data/test/relations/test_planned_by.rb +54 -0
- data/test/suite_core.rb +24 -0
- data/test/suite_distributed.rb +9 -0
- data/test/suite_planning.rb +3 -0
- data/test/suite_relations.rb +8 -0
- data/test/test_bgl.rb +508 -0
- data/test/test_control.rb +399 -0
- data/test/test_event.rb +894 -0
- data/test/test_exceptions.rb +592 -0
- data/test/test_interface.rb +37 -0
- data/test/test_log.rb +114 -0
- data/test/test_log_server.rb +132 -0
- data/test/test_plan.rb +584 -0
- data/test/test_propagation.rb +210 -0
- data/test/test_query.rb +266 -0
- data/test/test_relations.rb +180 -0
- data/test/test_state.rb +414 -0
- data/test/test_support.rb +16 -0
- data/test/test_task.rb +938 -0
- data/test/test_testcase.rb +122 -0
- data/test/test_thread_task.rb +73 -0
- data/test/test_transactions.rb +569 -0
- data/test/test_transactions_proxy.rb +198 -0
- metadata +570 -0
data/Manifest.txt
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
.gitignore
|
|
2
|
+
History.txt
|
|
3
|
+
License-fr.txt
|
|
4
|
+
License.txt
|
|
5
|
+
Manifest.txt
|
|
6
|
+
NOTES
|
|
7
|
+
README.txt
|
|
8
|
+
Rakefile
|
|
9
|
+
TODO.txt
|
|
10
|
+
app/README.txt
|
|
11
|
+
app/Rakefile
|
|
12
|
+
app/config/ROBOT.rb
|
|
13
|
+
app/config/app.yml
|
|
14
|
+
app/config/init.rb
|
|
15
|
+
app/config/roby.yml
|
|
16
|
+
app/controllers/.gitattributes
|
|
17
|
+
app/controllers/ROBOT.rb
|
|
18
|
+
app/data/.gitattributes
|
|
19
|
+
app/planners/ROBOT/main.rb
|
|
20
|
+
app/planners/main.rb
|
|
21
|
+
app/scripts/distributed
|
|
22
|
+
app/scripts/generate/bookmarks
|
|
23
|
+
app/scripts/replay
|
|
24
|
+
app/scripts/results
|
|
25
|
+
app/scripts/run
|
|
26
|
+
app/scripts/server
|
|
27
|
+
app/scripts/shell
|
|
28
|
+
app/scripts/test
|
|
29
|
+
app/tasks/.gitattributes
|
|
30
|
+
app/tasks/ROBOT/.gitattributes
|
|
31
|
+
bin/roby
|
|
32
|
+
bin/roby-log
|
|
33
|
+
bin/roby-shell
|
|
34
|
+
doc/images/event_generalization.png
|
|
35
|
+
doc/images/exception_propagation_1.png
|
|
36
|
+
doc/images/exception_propagation_2.png
|
|
37
|
+
doc/images/exception_propagation_3.png
|
|
38
|
+
doc/images/exception_propagation_4.png
|
|
39
|
+
doc/images/exception_propagation_5.png
|
|
40
|
+
doc/images/replay_handler_error.png
|
|
41
|
+
doc/images/replay_handler_error_0.png
|
|
42
|
+
doc/images/replay_handler_error_1.png
|
|
43
|
+
doc/images/roby_cycle_overview.png
|
|
44
|
+
doc/images/roby_replay_02.png
|
|
45
|
+
doc/images/roby_replay_03.png
|
|
46
|
+
doc/images/roby_replay_04.png
|
|
47
|
+
doc/images/roby_replay_event_representation.png
|
|
48
|
+
doc/images/roby_replay_first_state.png
|
|
49
|
+
doc/images/roby_replay_relations.png
|
|
50
|
+
doc/images/roby_replay_startup.png
|
|
51
|
+
doc/images/task_event_generalization.png
|
|
52
|
+
doc/papers.rdoc
|
|
53
|
+
doc/styles/allison.css
|
|
54
|
+
doc/styles/allison.js
|
|
55
|
+
doc/styles/allison.rb
|
|
56
|
+
doc/styles/jamis.rb
|
|
57
|
+
doc/tutorials/01-GettingStarted.rdoc
|
|
58
|
+
doc/tutorials/02-GoForward.rdoc
|
|
59
|
+
doc/tutorials/03-PlannedPath.rdoc
|
|
60
|
+
doc/tutorials/04-EventPropagation.rdoc
|
|
61
|
+
doc/tutorials/05-ErrorHandling.rdoc
|
|
62
|
+
doc/tutorials/06-Overview.rdoc
|
|
63
|
+
doc/videos.rdoc
|
|
64
|
+
ext/droby/dump.cc
|
|
65
|
+
ext/droby/extconf.rb
|
|
66
|
+
ext/graph/algorithm.cc
|
|
67
|
+
ext/graph/extconf.rb
|
|
68
|
+
ext/graph/graph.cc
|
|
69
|
+
ext/graph/graph.hh
|
|
70
|
+
ext/graph/iterator_sequence.hh
|
|
71
|
+
ext/graph/undirected_dfs.hh
|
|
72
|
+
ext/graph/undirected_graph.hh
|
|
73
|
+
lib/roby.rb
|
|
74
|
+
lib/roby/app.rb
|
|
75
|
+
lib/roby/app/rake.rb
|
|
76
|
+
lib/roby/app/run.rb
|
|
77
|
+
lib/roby/app/scripts/distributed.rb
|
|
78
|
+
lib/roby/app/scripts/generate/bookmarks.rb
|
|
79
|
+
lib/roby/app/scripts/replay.rb
|
|
80
|
+
lib/roby/app/scripts/results.rb
|
|
81
|
+
lib/roby/app/scripts/run.rb
|
|
82
|
+
lib/roby/app/scripts/server.rb
|
|
83
|
+
lib/roby/app/scripts/shell.rb
|
|
84
|
+
lib/roby/app/scripts/test.rb
|
|
85
|
+
lib/roby/basic_object.rb
|
|
86
|
+
lib/roby/config.rb
|
|
87
|
+
lib/roby/control.rb
|
|
88
|
+
lib/roby/decision_control.rb
|
|
89
|
+
lib/roby/distributed.rb
|
|
90
|
+
lib/roby/distributed/base.rb
|
|
91
|
+
lib/roby/distributed/communication.rb
|
|
92
|
+
lib/roby/distributed/connection_space.rb
|
|
93
|
+
lib/roby/distributed/distributed_object.rb
|
|
94
|
+
lib/roby/distributed/drb.rb
|
|
95
|
+
lib/roby/distributed/notifications.rb
|
|
96
|
+
lib/roby/distributed/peer.rb
|
|
97
|
+
lib/roby/distributed/protocol.rb
|
|
98
|
+
lib/roby/distributed/proxy.rb
|
|
99
|
+
lib/roby/distributed/subscription.rb
|
|
100
|
+
lib/roby/distributed/transaction.rb
|
|
101
|
+
lib/roby/event.rb
|
|
102
|
+
lib/roby/exceptions.rb
|
|
103
|
+
lib/roby/executives/simple.rb
|
|
104
|
+
lib/roby/graph.rb
|
|
105
|
+
lib/roby/interface.rb
|
|
106
|
+
lib/roby/log.rb
|
|
107
|
+
lib/roby/log/chronicle.rb
|
|
108
|
+
lib/roby/log/console.rb
|
|
109
|
+
lib/roby/log/data_stream.rb
|
|
110
|
+
lib/roby/log/dot.rb
|
|
111
|
+
lib/roby/log/event_stream.rb
|
|
112
|
+
lib/roby/log/file.rb
|
|
113
|
+
lib/roby/log/gui/basic_display.ui
|
|
114
|
+
lib/roby/log/gui/basic_display_ui.rb
|
|
115
|
+
lib/roby/log/gui/chronicle.rb
|
|
116
|
+
lib/roby/log/gui/chronicle_view.rb
|
|
117
|
+
lib/roby/log/gui/chronicle_view.ui
|
|
118
|
+
lib/roby/log/gui/chronicle_view_ui.rb
|
|
119
|
+
lib/roby/log/gui/data_displays.rb
|
|
120
|
+
lib/roby/log/gui/data_displays.ui
|
|
121
|
+
lib/roby/log/gui/data_displays_ui.rb
|
|
122
|
+
lib/roby/log/gui/notifications.rb
|
|
123
|
+
lib/roby/log/gui/relations.rb
|
|
124
|
+
lib/roby/log/gui/relations.ui
|
|
125
|
+
lib/roby/log/gui/relations_ui.rb
|
|
126
|
+
lib/roby/log/gui/relations_view.rb
|
|
127
|
+
lib/roby/log/gui/relations_view.ui
|
|
128
|
+
lib/roby/log/gui/relations_view_ui.rb
|
|
129
|
+
lib/roby/log/gui/replay.rb
|
|
130
|
+
lib/roby/log/gui/replay_controls.rb
|
|
131
|
+
lib/roby/log/gui/replay_controls.ui
|
|
132
|
+
lib/roby/log/gui/replay_controls_ui.rb
|
|
133
|
+
lib/roby/log/gui/runtime.rb
|
|
134
|
+
lib/roby/log/hooks.rb
|
|
135
|
+
lib/roby/log/logger.rb
|
|
136
|
+
lib/roby/log/notifications.rb
|
|
137
|
+
lib/roby/log/plan_rebuilder.rb
|
|
138
|
+
lib/roby/log/relations.rb
|
|
139
|
+
lib/roby/log/server.rb
|
|
140
|
+
lib/roby/log/sqlite.rb
|
|
141
|
+
lib/roby/log/timings.rb
|
|
142
|
+
lib/roby/plan-object.rb
|
|
143
|
+
lib/roby/plan.rb
|
|
144
|
+
lib/roby/planning.rb
|
|
145
|
+
lib/roby/planning/loops.rb
|
|
146
|
+
lib/roby/planning/model.rb
|
|
147
|
+
lib/roby/planning/task.rb
|
|
148
|
+
lib/roby/propagation.rb
|
|
149
|
+
lib/roby/query.rb
|
|
150
|
+
lib/roby/relations.rb
|
|
151
|
+
lib/roby/relations/conflicts.rb
|
|
152
|
+
lib/roby/relations/ensured.rb
|
|
153
|
+
lib/roby/relations/error_handling.rb
|
|
154
|
+
lib/roby/relations/events.rb
|
|
155
|
+
lib/roby/relations/executed_by.rb
|
|
156
|
+
lib/roby/relations/hierarchy.rb
|
|
157
|
+
lib/roby/relations/influence.rb
|
|
158
|
+
lib/roby/relations/planned_by.rb
|
|
159
|
+
lib/roby/robot.rb
|
|
160
|
+
lib/roby/standard_errors.rb
|
|
161
|
+
lib/roby/state.rb
|
|
162
|
+
lib/roby/state/events.rb
|
|
163
|
+
lib/roby/state/information.rb
|
|
164
|
+
lib/roby/state/pos.rb
|
|
165
|
+
lib/roby/state/shapes.rb
|
|
166
|
+
lib/roby/state/state.rb
|
|
167
|
+
lib/roby/support.rb
|
|
168
|
+
lib/roby/task-operations.rb
|
|
169
|
+
lib/roby/task.rb
|
|
170
|
+
lib/roby/test/common.rb
|
|
171
|
+
lib/roby/test/distributed.rb
|
|
172
|
+
lib/roby/test/tasks/empty_task.rb
|
|
173
|
+
lib/roby/test/tasks/goto.rb
|
|
174
|
+
lib/roby/test/tasks/simple_task.rb
|
|
175
|
+
lib/roby/test/testcase.rb
|
|
176
|
+
lib/roby/test/tools.rb
|
|
177
|
+
lib/roby/thread_task.rb
|
|
178
|
+
lib/roby/transactions.rb
|
|
179
|
+
lib/roby/transactions/proxy.rb
|
|
180
|
+
lib/roby/transactions/updates.rb
|
|
181
|
+
plugins/fault_injection/History.txt
|
|
182
|
+
plugins/fault_injection/README.txt
|
|
183
|
+
plugins/fault_injection/Rakefile
|
|
184
|
+
plugins/fault_injection/TODO.txt
|
|
185
|
+
plugins/fault_injection/app.rb
|
|
186
|
+
plugins/fault_injection/fault_injection.rb
|
|
187
|
+
plugins/fault_injection/test/test_fault_injection.rb
|
|
188
|
+
plugins/subsystems/README.txt
|
|
189
|
+
plugins/subsystems/Rakefile
|
|
190
|
+
plugins/subsystems/app.rb
|
|
191
|
+
plugins/subsystems/test/app/README
|
|
192
|
+
plugins/subsystems/test/app/Rakefile
|
|
193
|
+
plugins/subsystems/test/app/config/app.yml
|
|
194
|
+
plugins/subsystems/test/app/config/init.rb
|
|
195
|
+
plugins/subsystems/test/app/config/roby.yml
|
|
196
|
+
plugins/subsystems/test/app/planners/main.rb
|
|
197
|
+
plugins/subsystems/test/app/scripts/distributed
|
|
198
|
+
plugins/subsystems/test/app/scripts/replay
|
|
199
|
+
plugins/subsystems/test/app/scripts/results
|
|
200
|
+
plugins/subsystems/test/app/scripts/run
|
|
201
|
+
plugins/subsystems/test/app/scripts/server
|
|
202
|
+
plugins/subsystems/test/app/scripts/shell
|
|
203
|
+
plugins/subsystems/test/app/scripts/test
|
|
204
|
+
plugins/subsystems/test/app/tasks/services.rb
|
|
205
|
+
plugins/subsystems/test/test_subsystems.rb
|
|
206
|
+
test/distributed/test_communication.rb
|
|
207
|
+
test/distributed/test_connection.rb
|
|
208
|
+
test/distributed/test_execution.rb
|
|
209
|
+
test/distributed/test_mixed_plan.rb
|
|
210
|
+
test/distributed/test_plan_notifications.rb
|
|
211
|
+
test/distributed/test_protocol.rb
|
|
212
|
+
test/distributed/test_query.rb
|
|
213
|
+
test/distributed/test_remote_plan.rb
|
|
214
|
+
test/distributed/test_transaction.rb
|
|
215
|
+
test/mockups/tasks.rb
|
|
216
|
+
test/planning/test_loops.rb
|
|
217
|
+
test/planning/test_model.rb
|
|
218
|
+
test/planning/test_task.rb
|
|
219
|
+
test/relations/test_conflicts.rb
|
|
220
|
+
test/relations/test_ensured.rb
|
|
221
|
+
test/relations/test_executed_by.rb
|
|
222
|
+
test/relations/test_hierarchy.rb
|
|
223
|
+
test/relations/test_planned_by.rb
|
|
224
|
+
test/suite_core.rb
|
|
225
|
+
test/suite_distributed.rb
|
|
226
|
+
test/suite_planning.rb
|
|
227
|
+
test/suite_relations.rb
|
|
228
|
+
test/test_bgl.rb
|
|
229
|
+
test/test_control.rb
|
|
230
|
+
test/test_event.rb
|
|
231
|
+
test/test_exceptions.rb
|
|
232
|
+
test/test_interface.rb
|
|
233
|
+
test/test_log.rb
|
|
234
|
+
test/test_log_server.rb
|
|
235
|
+
test/test_plan.rb
|
|
236
|
+
test/test_propagation.rb
|
|
237
|
+
test/test_query.rb
|
|
238
|
+
test/test_relations.rb
|
|
239
|
+
test/test_state.rb
|
|
240
|
+
test/test_support.rb
|
|
241
|
+
test/test_task.rb
|
|
242
|
+
test/test_testcase.rb
|
|
243
|
+
test/test_thread_task.rb
|
|
244
|
+
test/test_transactions.rb
|
|
245
|
+
test/test_transactions_proxy.rb
|
data/NOTES
ADDED
data/README.txt
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
= Roby: a plan manager for robot control in Ruby
|
|
2
|
+
|
|
3
|
+
http://roby.rubyforge.org
|
|
4
|
+
http://www.rubyforge.org/projects/roby
|
|
5
|
+
http://github.com/doudou/roby (dev. repository)
|
|
6
|
+
|
|
7
|
+
<b>Note for Gem users</b> While using the normal RDoc generator, the
|
|
8
|
+
documentation generation process of Roby is a bit modified. In particular, the
|
|
9
|
+
plugin documentation is separated from the core documentation, and a clearer
|
|
10
|
+
template is used instead of the standard one. RubyGems does not support any
|
|
11
|
+
kind of customization in that area, so I would _strongly_ suggest that you use
|
|
12
|
+
the documentation provided at http://roby.rubyforge.org instead of the
|
|
13
|
+
RubyGem-generated one.
|
|
14
|
+
|
|
15
|
+
= What is Roby ?
|
|
16
|
+
|
|
17
|
+
Roby is a plan manager: it allows to represent, execute and adapt a plan, which
|
|
18
|
+
is a representation of the past, present and future activities of a robot along
|
|
19
|
+
with the information needed to verify that their executin is going well, and to
|
|
20
|
+
manage errors.
|
|
21
|
+
|
|
22
|
+
Roby is:
|
|
23
|
+
* a task/event model in which one can represent the activities (Roby::Task) and
|
|
24
|
+
the noticeable situations during execution (Roby::EventGenerator,
|
|
25
|
+
Roby::Task.event).
|
|
26
|
+
* a set of task relations describing the interactions between the activities
|
|
27
|
+
(Roby::TaskStructure).
|
|
28
|
+
* a set of event relations describing the reaction the system should have in
|
|
29
|
+
response to some situations (Roby::EventStructure).
|
|
30
|
+
* error management tools which allow to catch errors during execution and
|
|
31
|
+
repair them (i.e. let the system manage the error).
|
|
32
|
+
* a mean to modify the plan as it is being executed (Roby::Transaction)
|
|
33
|
+
* (G)UI tools for interacting/controlling the living system.
|
|
34
|
+
* all of that in a multi-robot context.
|
|
35
|
+
|
|
36
|
+
== Acknowledgments
|
|
37
|
+
|
|
38
|
+
This work has been supported by the DGA (http://www.defense.gouv.fr/dga) which
|
|
39
|
+
financed my PhD and the LAAS/CNRS (http://www.laas.fr), where I did it. It is
|
|
40
|
+
now supported by the DFKI (http://www.dfki.de) where I currently work and use
|
|
41
|
+
this plan manager.
|
|
42
|
+
|
|
43
|
+
== Related publications
|
|
44
|
+
|
|
45
|
+
Roby is the result of my PhD. As such, my PhD thesis can be considered as a
|
|
46
|
+
design document for the system. If you want an overview of the principles, you
|
|
47
|
+
can also refer to the two publications I did.
|
|
48
|
+
|
|
49
|
+
See {this page}[link:files/doc/papers_rdoc.html] for the list of publication
|
|
50
|
+
and the associated PDF files.
|
|
51
|
+
|
|
52
|
+
== Videos
|
|
53
|
+
|
|
54
|
+
The videos that are available show some capabilities of the system. Frankly you
|
|
55
|
+
will not be able to understand them unless you have already an idea on what is
|
|
56
|
+
going on. They are also referenced in other parts of the API documentation,
|
|
57
|
+
when it is meaningful.
|
|
58
|
+
|
|
59
|
+
See {here}[link:files/doc/videos_rdoc.html] for the available videos.
|
|
60
|
+
|
|
61
|
+
== Tutorials
|
|
62
|
+
|
|
63
|
+
A set of tutorials describe Roby's main features and let you experiment with
|
|
64
|
+
them:
|
|
65
|
+
1. the GettingStarted[link:files/doc/tutorials/01-GettingStarted_rdoc.html] tutorial makes
|
|
66
|
+
you start a brand new Roby application and explains its structure.
|
|
67
|
+
2. the GoForward[link:files/doc/tutorials/02-GoForward_rdoc.html] tutorial shows how to create
|
|
68
|
+
a simple task, how to start the Roby controller and how to interact with it
|
|
69
|
+
using a shell.
|
|
70
|
+
3. the PlannedPath[link:files/doc/tutorials/03-PlannedPath_rdoc.html] tutorial
|
|
71
|
+
shows how to create a (slightly) more complex plan, using the plan-generation
|
|
72
|
+
capabilities of Roby. It also shows some properties of that plan.
|
|
73
|
+
4. the EventPropagation[link:files/doc/tutorials/04-EventPropagation_rdoc.html]
|
|
74
|
+
tutorial describes how the plan execution actually goes, with examples from
|
|
75
|
+
Roby's plan execution display (requires to have QtRuby)
|
|
76
|
+
5. the ErrorHandling[link:files/doc/tutorials/05-ErrorHandling_rdoc.html]
|
|
77
|
+
tutorial shows how errors are represented in the system, and how it is possible
|
|
78
|
+
to handle and repair them.
|
|
79
|
+
6. {not really a tutorial}[link:files/doc/tutorials/06-Overview_rdoc.html], but
|
|
80
|
+
an overview of features that have not been presented in the first five
|
|
81
|
+
tutorials.
|
|
82
|
+
|
|
83
|
+
== License
|
|
84
|
+
|
|
85
|
+
Copyright 2006-2007, LAAS/CNRS <openrobots@laas.fr>
|
|
86
|
+
Copyright 2006-2008, Sylvain Joyeux <sylvain.joyeux@m4x.org>
|
|
87
|
+
Copyright 2008 DFKI <robotik-bremen@dfki.de>
|
|
88
|
+
|
|
89
|
+
This work is licensed under the CeCiLL-B license, which is a free software
|
|
90
|
+
license with the same spirit than the BSD license. See License.txt for details,
|
|
91
|
+
and License-fr.txt for the french version.
|
|
92
|
+
|
|
93
|
+
== Plugins
|
|
94
|
+
|
|
95
|
+
=== Core plugins
|
|
96
|
+
|
|
97
|
+
Two plugins are shipped with the Roby core:
|
|
98
|
+
fault_injection[link:../plugins/fault_injection/index.html] and
|
|
99
|
+
subsystems[link:../plugins/subsystems/index.html]. See their respective
|
|
100
|
+
documentation for description and usage.
|
|
101
|
+
|
|
102
|
+
Roby::Application#using(plugin_name) must be calledallows to enable the
|
|
103
|
+
plugins at initialization time. You can for instance put the following in
|
|
104
|
+
<tt>config/init.rb</tt>
|
|
105
|
+
|
|
106
|
+
Roby.app.using 'fault_injection'
|
|
107
|
+
|
|
108
|
+
=== External plugins
|
|
109
|
+
|
|
110
|
+
For now, only one plugins exists. This plugin allows to represent and control
|
|
111
|
+
seamlessly a Genom[http://softs.laas.fr/openrobots] functional layer in a Roby
|
|
112
|
+
plan. This plugin is not yet released, but if you're interested I can give you
|
|
113
|
+
directions on how to get it and install it. The documentation is available here[link:../plugins/genom/index.html]
|
|
114
|
+
|
|
115
|
+
= Installation
|
|
116
|
+
|
|
117
|
+
== External dependencies
|
|
118
|
+
* The Roby engine needs
|
|
119
|
+
* +utilrb+, which is available on RubyForge[http://utilrb.rubyforge.org] as a gem
|
|
120
|
+
* Facets, available on RubyForge[http://rubyforge.org/projects/facets] or as a gem
|
|
121
|
+
* ActiveSupport, available on RubyForge[http://rubyforge.org/projects/activesupport] or as a gem
|
|
122
|
+
* the Boost C++ library, including Boost/Graph[www.boost.org]
|
|
123
|
+
|
|
124
|
+
* the test suite needs also
|
|
125
|
+
* FlexMock, available on RubyForge[http://rubyforge.org/projects/flexmock]
|
|
126
|
+
|
|
127
|
+
* finally, the GUI requires {QtRuby >=
|
|
128
|
+
1.4.9}[http://rubyforge.org/projects/korundum], SVG export requires QtRuby to
|
|
129
|
+
be built with Qt >= 4.3
|
|
130
|
+
|
|
131
|
+
== Before installation
|
|
132
|
+
|
|
133
|
+
Whatever the way you install Roby, the only dependencies that you really have
|
|
134
|
+
to install yourself are boost (including boost/graph) and (optionally) QtRuby
|
|
135
|
+
(see above). If boost is not installed in a standard location, you will also
|
|
136
|
+
have to use the --with-boost-dir option to build Roby graph's extension.
|
|
137
|
+
|
|
138
|
+
Moreover, Roby uses {the jamis
|
|
139
|
+
template}[http://weblog.jamisbuck.org/2005/4/8/rdoc-template], which is
|
|
140
|
+
provided with the Roby sources (nothing needs to be done). If you want to use
|
|
141
|
+
another template, you can define the +ROBY_RDOC_TEMPLATE+ environment variable
|
|
142
|
+
before the installation. For instance, to use the standard RDoc HTML template,
|
|
143
|
+
do (for Unix-like shells):
|
|
144
|
+
|
|
145
|
+
ROBY_RDOC_TEMPLATE=html rake docs
|
|
146
|
+
|
|
147
|
+
== Installing the easy way
|
|
148
|
+
|
|
149
|
+
Roby is available on RubyForge as a gem. After having installed the C++
|
|
150
|
+
dependencies (boost with boost/graph), you can simply install it with
|
|
151
|
+
|
|
152
|
+
gem install roby
|
|
153
|
+
|
|
154
|
+
== Installing from source
|
|
155
|
+
|
|
156
|
+
First, install all the required dependencies. Then, get the sources either
|
|
157
|
+
from a release tarball or the RubyForge git
|
|
158
|
+
repository[http://rubyforge.org/projects/roby], or from the development
|
|
159
|
+
one[http://github.com/doudou/roby].
|
|
160
|
+
|
|
161
|
+
Once the source is installed, run
|
|
162
|
+
rake setup
|
|
163
|
+
|
data/Rakefile
ADDED
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
$LOAD_PATH.unshift File.expand_path('lib', File.dirname(__FILE__))
|
|
2
|
+
require 'enumerator'
|
|
3
|
+
require 'hoe'
|
|
4
|
+
require 'roby/config'
|
|
5
|
+
|
|
6
|
+
begin
|
|
7
|
+
require 'hoe'
|
|
8
|
+
namespace 'dist' do
|
|
9
|
+
hoe = Hoe.new('roby', Roby::VERSION) do |p|
|
|
10
|
+
p.developer 'Sylvain Joyeux', 'sylvain.joyeux@m4x.org'
|
|
11
|
+
|
|
12
|
+
p.summary = 'A plan-based control framework for autonomous systems'
|
|
13
|
+
p.url = p.paragraphs_of('README.txt', 1).join("\n\n")
|
|
14
|
+
p.description = p.paragraphs_of('README.txt', 2..18).join("\n\n")
|
|
15
|
+
p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
|
|
16
|
+
p.post_install_message = p.paragraphs_of('README.txt', 2).join("\n\n")
|
|
17
|
+
|
|
18
|
+
p.extra_deps << ['facets', '>= 2.0'] << 'activesupport' << ['utilrb', '1.2']
|
|
19
|
+
if p.respond_to? :need_rdoc=
|
|
20
|
+
p.need_rdoc = false
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
hoe.spec.extensions <<
|
|
24
|
+
'ext/droby/extconf.rb' <<
|
|
25
|
+
'ext/graph/extconf.rb'
|
|
26
|
+
|
|
27
|
+
hoe.spec.extra_rdoc_files =
|
|
28
|
+
hoe.spec.files.grep /(\.rdoc|\.cc|\.hh|\.rb|\.txt)$/
|
|
29
|
+
|
|
30
|
+
hoe.spec.description = hoe.summary
|
|
31
|
+
|
|
32
|
+
hoe.spec.rdoc_options <<
|
|
33
|
+
'--main' << 'README.txt' <<
|
|
34
|
+
"--inline-source" <<
|
|
35
|
+
"--accessor" << "attribute" <<
|
|
36
|
+
"--accessor" << "attr_predicate"
|
|
37
|
+
|
|
38
|
+
if !hoe.respond_to? :need_rdoc=
|
|
39
|
+
# This sucks, I know, but Hoe's handling of documentation is not
|
|
40
|
+
# enough for me
|
|
41
|
+
tasks = Rake.application.instance_variable_get :@tasks
|
|
42
|
+
tasks.delete_if { |n, _| n =~ /dist:(re|clobber_|)docs/ }
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
rescue LoadError
|
|
46
|
+
puts "cannot load the Hoe gem, distribution is disabled"
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
def build_extension(name, soname = name)
|
|
50
|
+
Dir.chdir("ext/#{name}") do
|
|
51
|
+
extconf = "ruby extconf.rb"
|
|
52
|
+
extconf << " --with-boost-dir=#{ENV['BOOST_DIR']}" if ENV['BOOST_DIR']
|
|
53
|
+
if !system(extconf) || !system("make")
|
|
54
|
+
raise "cannot set up #{name} extension"
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
FileUtils.ln_sf "../../ext/#{name}/#{soname}.so", "lib/roby/#{soname}.so"
|
|
58
|
+
end
|
|
59
|
+
def clean_extension(name, soname = name)
|
|
60
|
+
puts "Cleaning ext/#{name}"
|
|
61
|
+
Dir.chdir("ext/#{name}") do
|
|
62
|
+
FileUtils.rm_f ["#{soname}.so", 'Makefile', 'mkmf.log']
|
|
63
|
+
FileUtils.rm_f Dir.enum_for(:glob, '*.o').to_a
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
task :cruise => [:setup, :recore_docs, :test]
|
|
68
|
+
|
|
69
|
+
#########
|
|
70
|
+
# Test-related targets
|
|
71
|
+
|
|
72
|
+
desc 'run all tests'
|
|
73
|
+
task :test => ['test:core', 'test:distributed']
|
|
74
|
+
|
|
75
|
+
namespace 'test' do
|
|
76
|
+
desc 'run tests on the Core'
|
|
77
|
+
task 'core' => :setup do
|
|
78
|
+
if !system("testrb test/suite_core.rb")
|
|
79
|
+
puts "failed core suite"
|
|
80
|
+
exit(1)
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
desc 'run tests on Distributed Roby'
|
|
84
|
+
task 'distributed' => :setup do
|
|
85
|
+
if !system("testrb test/suite_distributed.rb")
|
|
86
|
+
puts "failed droby suite"
|
|
87
|
+
exit(1)
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
desc 'generate and build all the necessary files'
|
|
93
|
+
task :setup => :uic do
|
|
94
|
+
build_extension 'droby'
|
|
95
|
+
build_extension 'graph', 'bgl'
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
desc 'remove all generated files'
|
|
99
|
+
task :clean => 'dist:clean' do
|
|
100
|
+
clean_extension 'droby'
|
|
101
|
+
clean_extension 'graph', 'bgl'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
UIFILES = %w{relations.ui relations_view.ui data_displays.ui replay_controls.ui basic_display.ui chronicle_view.ui}
|
|
105
|
+
desc 'generate all Qt UI files using rbuic4'
|
|
106
|
+
task :uic do
|
|
107
|
+
UIFILES.each do |file|
|
|
108
|
+
file = 'lib/roby/log/gui/' + file
|
|
109
|
+
if !system('rbuic4', '-o', file.gsub(/\.ui$/, '_ui.rb'), file)
|
|
110
|
+
STDERR.puts "Failed to generate #{file}"
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
###########
|
|
116
|
+
# Documentation generation
|
|
117
|
+
#
|
|
118
|
+
# This redefines Hoe's targets for documentation, as the documentation
|
|
119
|
+
# generation is not flexible enough for us
|
|
120
|
+
namespace 'doc' do
|
|
121
|
+
require 'roby/app/rake'
|
|
122
|
+
Rake::RDocTask.new("core") do |rdoc|
|
|
123
|
+
rdoc.options << "--inline-source" << "--accessor" << "attribute" << "--accessor" << "attr_predicate"
|
|
124
|
+
rdoc.rdoc_dir = 'doc/rdoc/core'
|
|
125
|
+
rdoc.title = "Roby Core"
|
|
126
|
+
rdoc.template = Roby::Rake.rdoc_template
|
|
127
|
+
rdoc.options << '--main' << 'README.txt'
|
|
128
|
+
rdoc.rdoc_files.include('README.txt', 'TODO.txt', 'History.txt')
|
|
129
|
+
rdoc.rdoc_files.include('lib/**/*.rb', 'ext/**/*.cc')
|
|
130
|
+
rdoc.rdoc_files.include('doc/videos.rdoc', 'doc/papers.rdoc')
|
|
131
|
+
rdoc.rdoc_files.include('doc/tutorials/**/*')
|
|
132
|
+
rdoc.rdoc_files.exclude('lib/roby/test/**/*', 'lib/roby/app/**/*', 'lib/roby/log/gui/*')
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
Rake::RDocTask.new("tutorials") do |rdoc|
|
|
136
|
+
rdoc.options << "--inline-source" << "--accessor" << "attribute" << "--accessor" << "attr_predicate"
|
|
137
|
+
rdoc.rdoc_dir = 'doc/rdoc/tutorials'
|
|
138
|
+
rdoc.title = "Roby Tutorials"
|
|
139
|
+
rdoc.template = Roby::Rake.rdoc_template
|
|
140
|
+
rdoc.options << '--main' << 'README.txt'
|
|
141
|
+
rdoc.rdoc_files.include('README.txt', 'TODO.txt', 'History.txt')
|
|
142
|
+
rdoc.rdoc_files.include('doc/videos.rdoc', 'doc/papers.rdoc')
|
|
143
|
+
rdoc.rdoc_files.include('doc/tutorials/**/*')
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def plugins_documentation_generation(target_prefix)
|
|
147
|
+
task "plugins_#{target_prefix}docs" do
|
|
148
|
+
Roby::Rake.invoke_plugin_target("#{target_prefix}docs")
|
|
149
|
+
end
|
|
150
|
+
end
|
|
151
|
+
desc 'generate the documentation for all installed plugins'
|
|
152
|
+
plugins_documentation_generation ''
|
|
153
|
+
desc 'remove the documentation for all installed plugins'
|
|
154
|
+
plugins_documentation_generation 'clobber_'
|
|
155
|
+
desc 'regenerate the documentation for all installed plugins'
|
|
156
|
+
plugins_documentation_generation 're'
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
task 'docs' => ['doc:core', 'doc:plugins_docs']
|
|
160
|
+
task 'clobber_docs' => ['doc:clobber_core', 'doc:plugins_clobber_docs']
|
|
161
|
+
task 'redocs' => ['doc:recore', 'doc:replugins_docs']
|