roby 0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (240) hide show
  1. data/.gitignore +29 -0
  2. data/History.txt +4 -0
  3. data/License-fr.txt +519 -0
  4. data/License.txt +515 -0
  5. data/Manifest.txt +245 -0
  6. data/NOTES +4 -0
  7. data/README.txt +163 -0
  8. data/Rakefile +161 -0
  9. data/TODO.txt +146 -0
  10. data/app/README.txt +24 -0
  11. data/app/Rakefile +8 -0
  12. data/app/config/ROBOT.rb +5 -0
  13. data/app/config/app.yml +91 -0
  14. data/app/config/init.rb +7 -0
  15. data/app/config/roby.yml +3 -0
  16. data/app/controllers/.gitattributes +0 -0
  17. data/app/controllers/ROBOT.rb +2 -0
  18. data/app/data/.gitattributes +0 -0
  19. data/app/planners/ROBOT/main.rb +6 -0
  20. data/app/planners/main.rb +5 -0
  21. data/app/scripts/distributed +3 -0
  22. data/app/scripts/generate/bookmarks +3 -0
  23. data/app/scripts/replay +3 -0
  24. data/app/scripts/results +3 -0
  25. data/app/scripts/run +3 -0
  26. data/app/scripts/server +3 -0
  27. data/app/scripts/shell +3 -0
  28. data/app/scripts/test +3 -0
  29. data/app/tasks/.gitattributes +0 -0
  30. data/app/tasks/ROBOT/.gitattributes +0 -0
  31. data/bin/roby +210 -0
  32. data/bin/roby-log +168 -0
  33. data/bin/roby-shell +25 -0
  34. data/doc/images/event_generalization.png +0 -0
  35. data/doc/images/exception_propagation_1.png +0 -0
  36. data/doc/images/exception_propagation_2.png +0 -0
  37. data/doc/images/exception_propagation_3.png +0 -0
  38. data/doc/images/exception_propagation_4.png +0 -0
  39. data/doc/images/exception_propagation_5.png +0 -0
  40. data/doc/images/replay_handler_error.png +0 -0
  41. data/doc/images/replay_handler_error_0.png +0 -0
  42. data/doc/images/replay_handler_error_1.png +0 -0
  43. data/doc/images/roby_cycle_overview.png +0 -0
  44. data/doc/images/roby_replay_02.png +0 -0
  45. data/doc/images/roby_replay_03.png +0 -0
  46. data/doc/images/roby_replay_04.png +0 -0
  47. data/doc/images/roby_replay_event_representation.png +0 -0
  48. data/doc/images/roby_replay_first_state.png +0 -0
  49. data/doc/images/roby_replay_relations.png +0 -0
  50. data/doc/images/roby_replay_startup.png +0 -0
  51. data/doc/images/task_event_generalization.png +0 -0
  52. data/doc/papers.rdoc +11 -0
  53. data/doc/styles/allison.css +314 -0
  54. data/doc/styles/allison.js +316 -0
  55. data/doc/styles/allison.rb +276 -0
  56. data/doc/styles/jamis.rb +593 -0
  57. data/doc/tutorials/01-GettingStarted.rdoc +86 -0
  58. data/doc/tutorials/02-GoForward.rdoc +220 -0
  59. data/doc/tutorials/03-PlannedPath.rdoc +268 -0
  60. data/doc/tutorials/04-EventPropagation.rdoc +236 -0
  61. data/doc/tutorials/05-ErrorHandling.rdoc +319 -0
  62. data/doc/tutorials/06-Overview.rdoc +40 -0
  63. data/doc/videos.rdoc +69 -0
  64. data/ext/droby/dump.cc +175 -0
  65. data/ext/droby/extconf.rb +3 -0
  66. data/ext/graph/algorithm.cc +746 -0
  67. data/ext/graph/extconf.rb +7 -0
  68. data/ext/graph/graph.cc +529 -0
  69. data/ext/graph/graph.hh +183 -0
  70. data/ext/graph/iterator_sequence.hh +102 -0
  71. data/ext/graph/undirected_dfs.hh +226 -0
  72. data/ext/graph/undirected_graph.hh +421 -0
  73. data/lib/roby.rb +41 -0
  74. data/lib/roby/app.rb +870 -0
  75. data/lib/roby/app/rake.rb +56 -0
  76. data/lib/roby/app/run.rb +14 -0
  77. data/lib/roby/app/scripts/distributed.rb +13 -0
  78. data/lib/roby/app/scripts/generate/bookmarks.rb +162 -0
  79. data/lib/roby/app/scripts/replay.rb +31 -0
  80. data/lib/roby/app/scripts/results.rb +15 -0
  81. data/lib/roby/app/scripts/run.rb +26 -0
  82. data/lib/roby/app/scripts/server.rb +18 -0
  83. data/lib/roby/app/scripts/shell.rb +88 -0
  84. data/lib/roby/app/scripts/test.rb +40 -0
  85. data/lib/roby/basic_object.rb +151 -0
  86. data/lib/roby/config.rb +5 -0
  87. data/lib/roby/control.rb +747 -0
  88. data/lib/roby/decision_control.rb +17 -0
  89. data/lib/roby/distributed.rb +32 -0
  90. data/lib/roby/distributed/base.rb +440 -0
  91. data/lib/roby/distributed/communication.rb +871 -0
  92. data/lib/roby/distributed/connection_space.rb +592 -0
  93. data/lib/roby/distributed/distributed_object.rb +206 -0
  94. data/lib/roby/distributed/drb.rb +62 -0
  95. data/lib/roby/distributed/notifications.rb +539 -0
  96. data/lib/roby/distributed/peer.rb +550 -0
  97. data/lib/roby/distributed/protocol.rb +529 -0
  98. data/lib/roby/distributed/proxy.rb +343 -0
  99. data/lib/roby/distributed/subscription.rb +311 -0
  100. data/lib/roby/distributed/transaction.rb +498 -0
  101. data/lib/roby/event.rb +897 -0
  102. data/lib/roby/exceptions.rb +234 -0
  103. data/lib/roby/executives/simple.rb +30 -0
  104. data/lib/roby/graph.rb +166 -0
  105. data/lib/roby/interface.rb +390 -0
  106. data/lib/roby/log.rb +3 -0
  107. data/lib/roby/log/chronicle.rb +303 -0
  108. data/lib/roby/log/console.rb +72 -0
  109. data/lib/roby/log/data_stream.rb +197 -0
  110. data/lib/roby/log/dot.rb +279 -0
  111. data/lib/roby/log/event_stream.rb +151 -0
  112. data/lib/roby/log/file.rb +340 -0
  113. data/lib/roby/log/gui/basic_display.ui +83 -0
  114. data/lib/roby/log/gui/chronicle.rb +26 -0
  115. data/lib/roby/log/gui/chronicle_view.rb +40 -0
  116. data/lib/roby/log/gui/chronicle_view.ui +70 -0
  117. data/lib/roby/log/gui/data_displays.rb +172 -0
  118. data/lib/roby/log/gui/data_displays.ui +155 -0
  119. data/lib/roby/log/gui/notifications.rb +26 -0
  120. data/lib/roby/log/gui/relations.rb +248 -0
  121. data/lib/roby/log/gui/relations.ui +123 -0
  122. data/lib/roby/log/gui/relations_view.rb +185 -0
  123. data/lib/roby/log/gui/relations_view.ui +149 -0
  124. data/lib/roby/log/gui/replay.rb +327 -0
  125. data/lib/roby/log/gui/replay_controls.rb +200 -0
  126. data/lib/roby/log/gui/replay_controls.ui +259 -0
  127. data/lib/roby/log/gui/runtime.rb +130 -0
  128. data/lib/roby/log/hooks.rb +185 -0
  129. data/lib/roby/log/logger.rb +202 -0
  130. data/lib/roby/log/notifications.rb +244 -0
  131. data/lib/roby/log/plan_rebuilder.rb +470 -0
  132. data/lib/roby/log/relations.rb +1056 -0
  133. data/lib/roby/log/server.rb +550 -0
  134. data/lib/roby/log/sqlite.rb +47 -0
  135. data/lib/roby/log/timings.rb +164 -0
  136. data/lib/roby/plan-object.rb +247 -0
  137. data/lib/roby/plan.rb +762 -0
  138. data/lib/roby/planning.rb +13 -0
  139. data/lib/roby/planning/loops.rb +302 -0
  140. data/lib/roby/planning/model.rb +906 -0
  141. data/lib/roby/planning/task.rb +151 -0
  142. data/lib/roby/propagation.rb +562 -0
  143. data/lib/roby/query.rb +619 -0
  144. data/lib/roby/relations.rb +583 -0
  145. data/lib/roby/relations/conflicts.rb +70 -0
  146. data/lib/roby/relations/ensured.rb +20 -0
  147. data/lib/roby/relations/error_handling.rb +23 -0
  148. data/lib/roby/relations/events.rb +9 -0
  149. data/lib/roby/relations/executed_by.rb +193 -0
  150. data/lib/roby/relations/hierarchy.rb +239 -0
  151. data/lib/roby/relations/influence.rb +10 -0
  152. data/lib/roby/relations/planned_by.rb +63 -0
  153. data/lib/roby/robot.rb +7 -0
  154. data/lib/roby/standard_errors.rb +218 -0
  155. data/lib/roby/state.rb +5 -0
  156. data/lib/roby/state/events.rb +221 -0
  157. data/lib/roby/state/information.rb +55 -0
  158. data/lib/roby/state/pos.rb +110 -0
  159. data/lib/roby/state/shapes.rb +32 -0
  160. data/lib/roby/state/state.rb +353 -0
  161. data/lib/roby/support.rb +92 -0
  162. data/lib/roby/task-operations.rb +182 -0
  163. data/lib/roby/task.rb +1618 -0
  164. data/lib/roby/test/common.rb +399 -0
  165. data/lib/roby/test/distributed.rb +214 -0
  166. data/lib/roby/test/tasks/empty_task.rb +9 -0
  167. data/lib/roby/test/tasks/goto.rb +36 -0
  168. data/lib/roby/test/tasks/simple_task.rb +23 -0
  169. data/lib/roby/test/testcase.rb +519 -0
  170. data/lib/roby/test/tools.rb +160 -0
  171. data/lib/roby/thread_task.rb +87 -0
  172. data/lib/roby/transactions.rb +462 -0
  173. data/lib/roby/transactions/proxy.rb +292 -0
  174. data/lib/roby/transactions/updates.rb +139 -0
  175. data/plugins/fault_injection/History.txt +4 -0
  176. data/plugins/fault_injection/README.txt +37 -0
  177. data/plugins/fault_injection/Rakefile +18 -0
  178. data/plugins/fault_injection/TODO.txt +0 -0
  179. data/plugins/fault_injection/app.rb +52 -0
  180. data/plugins/fault_injection/fault_injection.rb +89 -0
  181. data/plugins/fault_injection/test/test_fault_injection.rb +84 -0
  182. data/plugins/subsystems/README.txt +40 -0
  183. data/plugins/subsystems/Rakefile +18 -0
  184. data/plugins/subsystems/app.rb +171 -0
  185. data/plugins/subsystems/test/app/README +24 -0
  186. data/plugins/subsystems/test/app/Rakefile +8 -0
  187. data/plugins/subsystems/test/app/config/app.yml +71 -0
  188. data/plugins/subsystems/test/app/config/init.rb +9 -0
  189. data/plugins/subsystems/test/app/config/roby.yml +3 -0
  190. data/plugins/subsystems/test/app/planners/main.rb +20 -0
  191. data/plugins/subsystems/test/app/scripts/distributed +3 -0
  192. data/plugins/subsystems/test/app/scripts/replay +3 -0
  193. data/plugins/subsystems/test/app/scripts/results +3 -0
  194. data/plugins/subsystems/test/app/scripts/run +3 -0
  195. data/plugins/subsystems/test/app/scripts/server +3 -0
  196. data/plugins/subsystems/test/app/scripts/shell +3 -0
  197. data/plugins/subsystems/test/app/scripts/test +3 -0
  198. data/plugins/subsystems/test/app/tasks/services.rb +15 -0
  199. data/plugins/subsystems/test/test_subsystems.rb +71 -0
  200. data/test/distributed/test_communication.rb +178 -0
  201. data/test/distributed/test_connection.rb +282 -0
  202. data/test/distributed/test_execution.rb +373 -0
  203. data/test/distributed/test_mixed_plan.rb +341 -0
  204. data/test/distributed/test_plan_notifications.rb +238 -0
  205. data/test/distributed/test_protocol.rb +516 -0
  206. data/test/distributed/test_query.rb +102 -0
  207. data/test/distributed/test_remote_plan.rb +491 -0
  208. data/test/distributed/test_transaction.rb +463 -0
  209. data/test/mockups/tasks.rb +27 -0
  210. data/test/planning/test_loops.rb +380 -0
  211. data/test/planning/test_model.rb +427 -0
  212. data/test/planning/test_task.rb +106 -0
  213. data/test/relations/test_conflicts.rb +42 -0
  214. data/test/relations/test_ensured.rb +38 -0
  215. data/test/relations/test_executed_by.rb +149 -0
  216. data/test/relations/test_hierarchy.rb +158 -0
  217. data/test/relations/test_planned_by.rb +54 -0
  218. data/test/suite_core.rb +24 -0
  219. data/test/suite_distributed.rb +9 -0
  220. data/test/suite_planning.rb +3 -0
  221. data/test/suite_relations.rb +8 -0
  222. data/test/test_bgl.rb +508 -0
  223. data/test/test_control.rb +399 -0
  224. data/test/test_event.rb +894 -0
  225. data/test/test_exceptions.rb +592 -0
  226. data/test/test_interface.rb +37 -0
  227. data/test/test_log.rb +114 -0
  228. data/test/test_log_server.rb +132 -0
  229. data/test/test_plan.rb +584 -0
  230. data/test/test_propagation.rb +210 -0
  231. data/test/test_query.rb +266 -0
  232. data/test/test_relations.rb +180 -0
  233. data/test/test_state.rb +414 -0
  234. data/test/test_support.rb +16 -0
  235. data/test/test_task.rb +938 -0
  236. data/test/test_testcase.rb +122 -0
  237. data/test/test_thread_task.rb +73 -0
  238. data/test/test_transactions.rb +569 -0
  239. data/test/test_transactions_proxy.rb +198 -0
  240. metadata +570 -0
@@ -0,0 +1,198 @@
1
+ $LOAD_PATH.unshift File.expand_path('..', File.dirname(__FILE__))
2
+ require 'roby/test/common'
3
+ require 'roby/test/tasks/simple_task'
4
+
5
+ class TC_TransactionsProxy < Test::Unit::TestCase
6
+ include Roby::Transactions
7
+ include Roby::Test
8
+
9
+ attr_reader :transaction
10
+ def setup
11
+ @transaction = Roby::Transaction.new(plan)
12
+ super
13
+ end
14
+ def teardown
15
+ transaction.discard_transaction
16
+ super
17
+ end
18
+
19
+ def test_wrapping_free_objects
20
+ task = SimpleTask.new
21
+ assert_same(task, transaction[task])
22
+ assert_equal(transaction, task.plan)
23
+ ev = EventGenerator.new
24
+ assert_same(ev, transaction[ev])
25
+ assert_equal(transaction, ev.plan)
26
+ end
27
+
28
+ def test_task_proxy
29
+ plan.insert(t = Roby::Task.new)
30
+ p = transaction[t]
31
+ assert_equal(p, p.root_object)
32
+ assert(p.root_object?)
33
+
34
+ wrapped_start = transaction[t.event(:start)]
35
+ assert_kind_of(Roby::Transactions::TaskEventGenerator, wrapped_start)
36
+ assert_equal(p, wrapped_start.root_object)
37
+ assert(!wrapped_start.root_object?)
38
+ assert_equal(wrapped_start, p.event(:start))
39
+
40
+ wrapped_stop = p.event(:stop)
41
+ assert_equal(transaction[t.event(:stop)], wrapped_stop)
42
+ end
43
+
44
+ def test_event_proxy
45
+ plan.discover(ev = EventGenerator.new)
46
+ wrapped = transaction[ev]
47
+ assert_kind_of(Roby::Transactions::EventGenerator, wrapped)
48
+ assert_equal(plan, ev.plan)
49
+ assert_equal(transaction, wrapped.plan)
50
+ assert(wrapped.root_object?)
51
+ end
52
+
53
+ def assert_is_proxy_of(object, wrapper, klass)
54
+ assert(wrapper.model.has_ancestor?(klass))
55
+ assert_equal(object, wrapper.__getobj__)
56
+ end
57
+
58
+ def test_proxy_wrapping
59
+ real_klass = Class.new(Roby::EventGenerator) do
60
+ define_method("forbidden") {}
61
+ end
62
+
63
+ proxy_klass = Class.new(Roby::EventGenerator) do
64
+ include Proxy
65
+
66
+ proxy_for real_klass
67
+ def clear_vertex; end
68
+ end
69
+
70
+ plan.discover(obj = real_klass.new)
71
+ proxy = transaction[obj]
72
+ assert_is_proxy_of(obj, proxy, proxy_klass)
73
+ assert_same(proxy, transaction[obj])
74
+ assert_same(proxy, transaction.wrap(obj, false))
75
+
76
+ # check that may_wrap returns the object when wrapping cannot be done
77
+ assert_raises(TypeError) { transaction[10] }
78
+ assert_equal(10, transaction.may_wrap(10))
79
+ end
80
+
81
+ def test_proxy_derived
82
+ base_klass = Class.new(Roby::EventGenerator)
83
+ derv_klass = Class.new(base_klass)
84
+ proxy_base_klass = Class.new(Roby::EventGenerator) do
85
+ include Proxy
86
+ proxy_for base_klass
87
+ def clear_vertex; end
88
+ end
89
+
90
+ proxy_derv_klass = Class.new(Roby::EventGenerator) do
91
+ include Proxy
92
+ proxy_for derv_klass
93
+ def clear_vertex; end
94
+ end
95
+
96
+
97
+ base_obj = base_klass.new
98
+ base_obj.plan = plan
99
+ assert_is_proxy_of(base_obj, transaction[base_obj], proxy_base_klass)
100
+ derv_obj = derv_klass.new
101
+ derv_obj.plan = plan
102
+ assert_is_proxy_of(derv_obj, transaction[derv_obj], proxy_derv_klass)
103
+ end
104
+
105
+ def test_proxy_class_selection
106
+ task = Roby::Task.new
107
+ plan.discover(task)
108
+ proxy = transaction[task]
109
+
110
+ assert_is_proxy_of(task, proxy, Task)
111
+
112
+ start_event = proxy.event(:start)
113
+ assert_is_proxy_of(task.event(:start), start_event, TaskEventGenerator)
114
+
115
+ proxy.event(:stop)
116
+ proxy.event(:success)
117
+ proxy.each_event do |proxy_event|
118
+ assert_is_proxy_of(task.event(proxy_event.symbol), proxy_event, TaskEventGenerator)
119
+ end
120
+ end
121
+
122
+ def test_proxy_not_executable
123
+ task = Class.new(SimpleTask) do
124
+ event :intermediate, :command => true
125
+ end.new
126
+ plan.discover(task)
127
+ proxy = transaction[task]
128
+
129
+ assert_nothing_raised { task.event(:start).emit(nil) }
130
+ assert_nothing_raised { task.intermediate!(nil) }
131
+ assert(!proxy.executable?)
132
+ assert(!proxy.event(:start).executable?)
133
+ assert_raises(EventNotExecutable) { proxy.event(:start).emit(nil) }
134
+ assert_raises(EventNotExecutable) { proxy.emit(:start) }
135
+ assert_raises(EventNotExecutable) { proxy.start!(nil) }
136
+
137
+ # Check that events that are only in the subclass of Task
138
+ # are forbidden
139
+ assert_raises(EventNotExecutable) { proxy.intermediate!(nil) }
140
+ end
141
+
142
+ def test_proxy_fullfills
143
+ t1, t2 = (1..2).map { Roby::Task.new }
144
+ p1, p2 = transaction[t1], transaction[t2]
145
+ assert(p1.fullfills?(t1))
146
+ assert(p1.fullfills?(p2))
147
+ end
148
+
149
+ # Tests that the graph of proxys is separated from
150
+ # the Task and EventGenerator graphs
151
+ def test_proxy_graph_separation
152
+ tasks = prepare_plan :discover => 3
153
+ proxies = tasks.map { |t| transaction[t] }
154
+
155
+ t1, t2, t3 = tasks
156
+ p1, p2, p3 = proxies
157
+ p1.realized_by p2
158
+
159
+ assert_equal([], t1.enum_for(:each_child_object, Hierarchy).to_a)
160
+ t2.realized_by t3
161
+ assert(! Hierarchy.linked?(p2, p3))
162
+ end
163
+
164
+ def test_proxy_plan
165
+ task = Roby::Task.new
166
+ plan.insert(task)
167
+
168
+ proxy = transaction[task]
169
+ assert_equal(plan, task.plan)
170
+ assert_equal(plan, task.event(:start).plan)
171
+ assert_equal(transaction, proxy.plan)
172
+ assert_equal(transaction, proxy.event(:start).plan)
173
+ end
174
+
175
+ Hierarchy = Roby::TaskStructure::Hierarchy
176
+
177
+ def test_task_relation_copy
178
+ t1, t2 = prepare_plan :discover => 2
179
+ t1.realized_by t2
180
+
181
+ p1 = transaction[t1]
182
+ assert(p1.leaf?, p1.children)
183
+ p2 = transaction[t2]
184
+ assert([p2], p1.children.to_a)
185
+ end
186
+
187
+ def test_task_events
188
+ t1, t2 = prepare_plan :discover => 2
189
+ t1.on(:success, t2, :start)
190
+
191
+ p1 = transaction[t1]
192
+ assert(p1.event(:success).leaf?(EventStructure::Signal))
193
+
194
+ p2 = transaction[t2]
195
+ assert([p2.event(:start)], p1.event(:success).child_objects(EventStructure::Signal).to_a)
196
+ end
197
+ end
198
+
metadata ADDED
@@ -0,0 +1,570 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: roby
3
+ version: !ruby/object:Gem::Version
4
+ version: "0.7"
5
+ platform: ruby
6
+ authors:
7
+ - Sylvain Joyeux
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-05-28 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: facets
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "2.0"
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: activesupport
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: "0"
32
+ version:
33
+ - !ruby/object:Gem::Dependency
34
+ name: utilrb
35
+ version_requirement:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "="
39
+ - !ruby/object:Gem::Version
40
+ version: "1.2"
41
+ version:
42
+ - !ruby/object:Gem::Dependency
43
+ name: hoe
44
+ version_requirement:
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 1.5.3
50
+ version:
51
+ description: A plan-based control framework for autonomous systems
52
+ email:
53
+ - sylvain.joyeux@m4x.org
54
+ executables:
55
+ - roby
56
+ - roby-log
57
+ - roby-shell
58
+ extensions:
59
+ - ext/droby/extconf.rb
60
+ - ext/graph/extconf.rb
61
+ extra_rdoc_files:
62
+ - History.txt
63
+ - License-fr.txt
64
+ - License.txt
65
+ - Manifest.txt
66
+ - README.txt
67
+ - TODO.txt
68
+ - app/README.txt
69
+ - app/config/ROBOT.rb
70
+ - app/config/init.rb
71
+ - app/controllers/ROBOT.rb
72
+ - app/planners/ROBOT/main.rb
73
+ - app/planners/main.rb
74
+ - doc/papers.rdoc
75
+ - doc/styles/allison.rb
76
+ - doc/styles/jamis.rb
77
+ - doc/tutorials/01-GettingStarted.rdoc
78
+ - doc/tutorials/02-GoForward.rdoc
79
+ - doc/tutorials/03-PlannedPath.rdoc
80
+ - doc/tutorials/04-EventPropagation.rdoc
81
+ - doc/tutorials/05-ErrorHandling.rdoc
82
+ - doc/tutorials/06-Overview.rdoc
83
+ - doc/videos.rdoc
84
+ - ext/droby/dump.cc
85
+ - ext/droby/extconf.rb
86
+ - ext/graph/algorithm.cc
87
+ - ext/graph/extconf.rb
88
+ - ext/graph/graph.cc
89
+ - ext/graph/graph.hh
90
+ - ext/graph/iterator_sequence.hh
91
+ - ext/graph/undirected_dfs.hh
92
+ - ext/graph/undirected_graph.hh
93
+ - lib/roby.rb
94
+ - lib/roby/app.rb
95
+ - lib/roby/app/rake.rb
96
+ - lib/roby/app/run.rb
97
+ - lib/roby/app/scripts/distributed.rb
98
+ - lib/roby/app/scripts/generate/bookmarks.rb
99
+ - lib/roby/app/scripts/replay.rb
100
+ - lib/roby/app/scripts/results.rb
101
+ - lib/roby/app/scripts/run.rb
102
+ - lib/roby/app/scripts/server.rb
103
+ - lib/roby/app/scripts/shell.rb
104
+ - lib/roby/app/scripts/test.rb
105
+ - lib/roby/basic_object.rb
106
+ - lib/roby/config.rb
107
+ - lib/roby/control.rb
108
+ - lib/roby/decision_control.rb
109
+ - lib/roby/distributed.rb
110
+ - lib/roby/distributed/base.rb
111
+ - lib/roby/distributed/communication.rb
112
+ - lib/roby/distributed/connection_space.rb
113
+ - lib/roby/distributed/distributed_object.rb
114
+ - lib/roby/distributed/drb.rb
115
+ - lib/roby/distributed/notifications.rb
116
+ - lib/roby/distributed/peer.rb
117
+ - lib/roby/distributed/protocol.rb
118
+ - lib/roby/distributed/proxy.rb
119
+ - lib/roby/distributed/subscription.rb
120
+ - lib/roby/distributed/transaction.rb
121
+ - lib/roby/event.rb
122
+ - lib/roby/exceptions.rb
123
+ - lib/roby/executives/simple.rb
124
+ - lib/roby/graph.rb
125
+ - lib/roby/interface.rb
126
+ - lib/roby/log.rb
127
+ - lib/roby/log/chronicle.rb
128
+ - lib/roby/log/console.rb
129
+ - lib/roby/log/data_stream.rb
130
+ - lib/roby/log/dot.rb
131
+ - lib/roby/log/event_stream.rb
132
+ - lib/roby/log/file.rb
133
+ - lib/roby/log/gui/basic_display_ui.rb
134
+ - lib/roby/log/gui/chronicle.rb
135
+ - lib/roby/log/gui/chronicle_view.rb
136
+ - lib/roby/log/gui/chronicle_view_ui.rb
137
+ - lib/roby/log/gui/data_displays.rb
138
+ - lib/roby/log/gui/data_displays_ui.rb
139
+ - lib/roby/log/gui/notifications.rb
140
+ - lib/roby/log/gui/relations.rb
141
+ - lib/roby/log/gui/relations_ui.rb
142
+ - lib/roby/log/gui/relations_view.rb
143
+ - lib/roby/log/gui/relations_view_ui.rb
144
+ - lib/roby/log/gui/replay.rb
145
+ - lib/roby/log/gui/replay_controls.rb
146
+ - lib/roby/log/gui/replay_controls_ui.rb
147
+ - lib/roby/log/gui/runtime.rb
148
+ - lib/roby/log/hooks.rb
149
+ - lib/roby/log/logger.rb
150
+ - lib/roby/log/notifications.rb
151
+ - lib/roby/log/plan_rebuilder.rb
152
+ - lib/roby/log/relations.rb
153
+ - lib/roby/log/server.rb
154
+ - lib/roby/log/sqlite.rb
155
+ - lib/roby/log/timings.rb
156
+ - lib/roby/plan-object.rb
157
+ - lib/roby/plan.rb
158
+ - lib/roby/planning.rb
159
+ - lib/roby/planning/loops.rb
160
+ - lib/roby/planning/model.rb
161
+ - lib/roby/planning/task.rb
162
+ - lib/roby/propagation.rb
163
+ - lib/roby/query.rb
164
+ - lib/roby/relations.rb
165
+ - lib/roby/relations/conflicts.rb
166
+ - lib/roby/relations/ensured.rb
167
+ - lib/roby/relations/error_handling.rb
168
+ - lib/roby/relations/events.rb
169
+ - lib/roby/relations/executed_by.rb
170
+ - lib/roby/relations/hierarchy.rb
171
+ - lib/roby/relations/influence.rb
172
+ - lib/roby/relations/planned_by.rb
173
+ - lib/roby/robot.rb
174
+ - lib/roby/standard_errors.rb
175
+ - lib/roby/state.rb
176
+ - lib/roby/state/events.rb
177
+ - lib/roby/state/information.rb
178
+ - lib/roby/state/pos.rb
179
+ - lib/roby/state/shapes.rb
180
+ - lib/roby/state/state.rb
181
+ - lib/roby/support.rb
182
+ - lib/roby/task-operations.rb
183
+ - lib/roby/task.rb
184
+ - lib/roby/test/common.rb
185
+ - lib/roby/test/distributed.rb
186
+ - lib/roby/test/tasks/empty_task.rb
187
+ - lib/roby/test/tasks/goto.rb
188
+ - lib/roby/test/tasks/simple_task.rb
189
+ - lib/roby/test/testcase.rb
190
+ - lib/roby/test/tools.rb
191
+ - lib/roby/thread_task.rb
192
+ - lib/roby/transactions.rb
193
+ - lib/roby/transactions/proxy.rb
194
+ - lib/roby/transactions/updates.rb
195
+ - plugins/fault_injection/History.txt
196
+ - plugins/fault_injection/README.txt
197
+ - plugins/fault_injection/TODO.txt
198
+ - plugins/fault_injection/app.rb
199
+ - plugins/fault_injection/fault_injection.rb
200
+ - plugins/fault_injection/test/test_fault_injection.rb
201
+ - plugins/subsystems/README.txt
202
+ - plugins/subsystems/app.rb
203
+ - plugins/subsystems/test/app/config/init.rb
204
+ - plugins/subsystems/test/app/planners/main.rb
205
+ - plugins/subsystems/test/app/tasks/services.rb
206
+ - plugins/subsystems/test/test_subsystems.rb
207
+ - test/distributed/test_communication.rb
208
+ - test/distributed/test_connection.rb
209
+ - test/distributed/test_execution.rb
210
+ - test/distributed/test_mixed_plan.rb
211
+ - test/distributed/test_plan_notifications.rb
212
+ - test/distributed/test_protocol.rb
213
+ - test/distributed/test_query.rb
214
+ - test/distributed/test_remote_plan.rb
215
+ - test/distributed/test_transaction.rb
216
+ - test/mockups/tasks.rb
217
+ - test/planning/test_loops.rb
218
+ - test/planning/test_model.rb
219
+ - test/planning/test_task.rb
220
+ - test/relations/test_conflicts.rb
221
+ - test/relations/test_ensured.rb
222
+ - test/relations/test_executed_by.rb
223
+ - test/relations/test_hierarchy.rb
224
+ - test/relations/test_planned_by.rb
225
+ - test/suite_core.rb
226
+ - test/suite_distributed.rb
227
+ - test/suite_planning.rb
228
+ - test/suite_relations.rb
229
+ - test/test_bgl.rb
230
+ - test/test_control.rb
231
+ - test/test_event.rb
232
+ - test/test_exceptions.rb
233
+ - test/test_interface.rb
234
+ - test/test_log.rb
235
+ - test/test_log_server.rb
236
+ - test/test_plan.rb
237
+ - test/test_propagation.rb
238
+ - test/test_query.rb
239
+ - test/test_relations.rb
240
+ - test/test_state.rb
241
+ - test/test_support.rb
242
+ - test/test_task.rb
243
+ - test/test_testcase.rb
244
+ - test/test_thread_task.rb
245
+ - test/test_transactions.rb
246
+ - test/test_transactions_proxy.rb
247
+ files:
248
+ - .gitignore
249
+ - History.txt
250
+ - License-fr.txt
251
+ - License.txt
252
+ - Manifest.txt
253
+ - NOTES
254
+ - README.txt
255
+ - Rakefile
256
+ - TODO.txt
257
+ - app/README.txt
258
+ - app/Rakefile
259
+ - app/config/ROBOT.rb
260
+ - app/config/app.yml
261
+ - app/config/init.rb
262
+ - app/config/roby.yml
263
+ - app/controllers/.gitattributes
264
+ - app/controllers/ROBOT.rb
265
+ - app/data/.gitattributes
266
+ - app/planners/ROBOT/main.rb
267
+ - app/planners/main.rb
268
+ - app/scripts/distributed
269
+ - app/scripts/generate/bookmarks
270
+ - app/scripts/replay
271
+ - app/scripts/results
272
+ - app/scripts/run
273
+ - app/scripts/server
274
+ - app/scripts/shell
275
+ - app/scripts/test
276
+ - app/tasks/.gitattributes
277
+ - app/tasks/ROBOT/.gitattributes
278
+ - bin/roby
279
+ - bin/roby-log
280
+ - bin/roby-shell
281
+ - doc/images/event_generalization.png
282
+ - doc/images/exception_propagation_1.png
283
+ - doc/images/exception_propagation_2.png
284
+ - doc/images/exception_propagation_3.png
285
+ - doc/images/exception_propagation_4.png
286
+ - doc/images/exception_propagation_5.png
287
+ - doc/images/replay_handler_error.png
288
+ - doc/images/replay_handler_error_0.png
289
+ - doc/images/replay_handler_error_1.png
290
+ - doc/images/roby_cycle_overview.png
291
+ - doc/images/roby_replay_02.png
292
+ - doc/images/roby_replay_03.png
293
+ - doc/images/roby_replay_04.png
294
+ - doc/images/roby_replay_event_representation.png
295
+ - doc/images/roby_replay_first_state.png
296
+ - doc/images/roby_replay_relations.png
297
+ - doc/images/roby_replay_startup.png
298
+ - doc/images/task_event_generalization.png
299
+ - doc/papers.rdoc
300
+ - doc/styles/allison.css
301
+ - doc/styles/allison.js
302
+ - doc/styles/allison.rb
303
+ - doc/styles/jamis.rb
304
+ - doc/tutorials/01-GettingStarted.rdoc
305
+ - doc/tutorials/02-GoForward.rdoc
306
+ - doc/tutorials/03-PlannedPath.rdoc
307
+ - doc/tutorials/04-EventPropagation.rdoc
308
+ - doc/tutorials/05-ErrorHandling.rdoc
309
+ - doc/tutorials/06-Overview.rdoc
310
+ - doc/videos.rdoc
311
+ - ext/droby/dump.cc
312
+ - ext/droby/extconf.rb
313
+ - ext/graph/algorithm.cc
314
+ - ext/graph/extconf.rb
315
+ - ext/graph/graph.cc
316
+ - ext/graph/graph.hh
317
+ - ext/graph/iterator_sequence.hh
318
+ - ext/graph/undirected_dfs.hh
319
+ - ext/graph/undirected_graph.hh
320
+ - lib/roby.rb
321
+ - lib/roby/app.rb
322
+ - lib/roby/app/rake.rb
323
+ - lib/roby/app/run.rb
324
+ - lib/roby/app/scripts/distributed.rb
325
+ - lib/roby/app/scripts/generate/bookmarks.rb
326
+ - lib/roby/app/scripts/replay.rb
327
+ - lib/roby/app/scripts/results.rb
328
+ - lib/roby/app/scripts/run.rb
329
+ - lib/roby/app/scripts/server.rb
330
+ - lib/roby/app/scripts/shell.rb
331
+ - lib/roby/app/scripts/test.rb
332
+ - lib/roby/basic_object.rb
333
+ - lib/roby/config.rb
334
+ - lib/roby/control.rb
335
+ - lib/roby/decision_control.rb
336
+ - lib/roby/distributed.rb
337
+ - lib/roby/distributed/base.rb
338
+ - lib/roby/distributed/communication.rb
339
+ - lib/roby/distributed/connection_space.rb
340
+ - lib/roby/distributed/distributed_object.rb
341
+ - lib/roby/distributed/drb.rb
342
+ - lib/roby/distributed/notifications.rb
343
+ - lib/roby/distributed/peer.rb
344
+ - lib/roby/distributed/protocol.rb
345
+ - lib/roby/distributed/proxy.rb
346
+ - lib/roby/distributed/subscription.rb
347
+ - lib/roby/distributed/transaction.rb
348
+ - lib/roby/event.rb
349
+ - lib/roby/exceptions.rb
350
+ - lib/roby/executives/simple.rb
351
+ - lib/roby/graph.rb
352
+ - lib/roby/interface.rb
353
+ - lib/roby/log.rb
354
+ - lib/roby/log/chronicle.rb
355
+ - lib/roby/log/console.rb
356
+ - lib/roby/log/data_stream.rb
357
+ - lib/roby/log/dot.rb
358
+ - lib/roby/log/event_stream.rb
359
+ - lib/roby/log/file.rb
360
+ - lib/roby/log/gui/basic_display.ui
361
+ - lib/roby/log/gui/basic_display_ui.rb
362
+ - lib/roby/log/gui/chronicle.rb
363
+ - lib/roby/log/gui/chronicle_view.rb
364
+ - lib/roby/log/gui/chronicle_view.ui
365
+ - lib/roby/log/gui/chronicle_view_ui.rb
366
+ - lib/roby/log/gui/data_displays.rb
367
+ - lib/roby/log/gui/data_displays.ui
368
+ - lib/roby/log/gui/data_displays_ui.rb
369
+ - lib/roby/log/gui/notifications.rb
370
+ - lib/roby/log/gui/relations.rb
371
+ - lib/roby/log/gui/relations.ui
372
+ - lib/roby/log/gui/relations_ui.rb
373
+ - lib/roby/log/gui/relations_view.rb
374
+ - lib/roby/log/gui/relations_view.ui
375
+ - lib/roby/log/gui/relations_view_ui.rb
376
+ - lib/roby/log/gui/replay.rb
377
+ - lib/roby/log/gui/replay_controls.rb
378
+ - lib/roby/log/gui/replay_controls.ui
379
+ - lib/roby/log/gui/replay_controls_ui.rb
380
+ - lib/roby/log/gui/runtime.rb
381
+ - lib/roby/log/hooks.rb
382
+ - lib/roby/log/logger.rb
383
+ - lib/roby/log/notifications.rb
384
+ - lib/roby/log/plan_rebuilder.rb
385
+ - lib/roby/log/relations.rb
386
+ - lib/roby/log/server.rb
387
+ - lib/roby/log/sqlite.rb
388
+ - lib/roby/log/timings.rb
389
+ - lib/roby/plan-object.rb
390
+ - lib/roby/plan.rb
391
+ - lib/roby/planning.rb
392
+ - lib/roby/planning/loops.rb
393
+ - lib/roby/planning/model.rb
394
+ - lib/roby/planning/task.rb
395
+ - lib/roby/propagation.rb
396
+ - lib/roby/query.rb
397
+ - lib/roby/relations.rb
398
+ - lib/roby/relations/conflicts.rb
399
+ - lib/roby/relations/ensured.rb
400
+ - lib/roby/relations/error_handling.rb
401
+ - lib/roby/relations/events.rb
402
+ - lib/roby/relations/executed_by.rb
403
+ - lib/roby/relations/hierarchy.rb
404
+ - lib/roby/relations/influence.rb
405
+ - lib/roby/relations/planned_by.rb
406
+ - lib/roby/robot.rb
407
+ - lib/roby/standard_errors.rb
408
+ - lib/roby/state.rb
409
+ - lib/roby/state/events.rb
410
+ - lib/roby/state/information.rb
411
+ - lib/roby/state/pos.rb
412
+ - lib/roby/state/shapes.rb
413
+ - lib/roby/state/state.rb
414
+ - lib/roby/support.rb
415
+ - lib/roby/task-operations.rb
416
+ - lib/roby/task.rb
417
+ - lib/roby/test/common.rb
418
+ - lib/roby/test/distributed.rb
419
+ - lib/roby/test/tasks/empty_task.rb
420
+ - lib/roby/test/tasks/goto.rb
421
+ - lib/roby/test/tasks/simple_task.rb
422
+ - lib/roby/test/testcase.rb
423
+ - lib/roby/test/tools.rb
424
+ - lib/roby/thread_task.rb
425
+ - lib/roby/transactions.rb
426
+ - lib/roby/transactions/proxy.rb
427
+ - lib/roby/transactions/updates.rb
428
+ - plugins/fault_injection/History.txt
429
+ - plugins/fault_injection/README.txt
430
+ - plugins/fault_injection/Rakefile
431
+ - plugins/fault_injection/TODO.txt
432
+ - plugins/fault_injection/app.rb
433
+ - plugins/fault_injection/fault_injection.rb
434
+ - plugins/fault_injection/test/test_fault_injection.rb
435
+ - plugins/subsystems/README.txt
436
+ - plugins/subsystems/Rakefile
437
+ - plugins/subsystems/app.rb
438
+ - plugins/subsystems/test/app/README
439
+ - plugins/subsystems/test/app/Rakefile
440
+ - plugins/subsystems/test/app/config/app.yml
441
+ - plugins/subsystems/test/app/config/init.rb
442
+ - plugins/subsystems/test/app/config/roby.yml
443
+ - plugins/subsystems/test/app/planners/main.rb
444
+ - plugins/subsystems/test/app/scripts/distributed
445
+ - plugins/subsystems/test/app/scripts/replay
446
+ - plugins/subsystems/test/app/scripts/results
447
+ - plugins/subsystems/test/app/scripts/run
448
+ - plugins/subsystems/test/app/scripts/server
449
+ - plugins/subsystems/test/app/scripts/shell
450
+ - plugins/subsystems/test/app/scripts/test
451
+ - plugins/subsystems/test/app/tasks/services.rb
452
+ - plugins/subsystems/test/test_subsystems.rb
453
+ - test/distributed/test_communication.rb
454
+ - test/distributed/test_connection.rb
455
+ - test/distributed/test_execution.rb
456
+ - test/distributed/test_mixed_plan.rb
457
+ - test/distributed/test_plan_notifications.rb
458
+ - test/distributed/test_protocol.rb
459
+ - test/distributed/test_query.rb
460
+ - test/distributed/test_remote_plan.rb
461
+ - test/distributed/test_transaction.rb
462
+ - test/mockups/tasks.rb
463
+ - test/planning/test_loops.rb
464
+ - test/planning/test_model.rb
465
+ - test/planning/test_task.rb
466
+ - test/relations/test_conflicts.rb
467
+ - test/relations/test_ensured.rb
468
+ - test/relations/test_executed_by.rb
469
+ - test/relations/test_hierarchy.rb
470
+ - test/relations/test_planned_by.rb
471
+ - test/suite_core.rb
472
+ - test/suite_distributed.rb
473
+ - test/suite_planning.rb
474
+ - test/suite_relations.rb
475
+ - test/test_bgl.rb
476
+ - test/test_control.rb
477
+ - test/test_event.rb
478
+ - test/test_exceptions.rb
479
+ - test/test_interface.rb
480
+ - test/test_log.rb
481
+ - test/test_log_server.rb
482
+ - test/test_plan.rb
483
+ - test/test_propagation.rb
484
+ - test/test_query.rb
485
+ - test/test_relations.rb
486
+ - test/test_state.rb
487
+ - test/test_support.rb
488
+ - test/test_task.rb
489
+ - test/test_testcase.rb
490
+ - test/test_thread_task.rb
491
+ - test/test_transactions.rb
492
+ - test/test_transactions_proxy.rb
493
+ has_rdoc: true
494
+ homepage: " http://roby.rubyforge.org\n"
495
+ post_install_message: |-
496
+ <b>Note for Gem users</b> While using the normal RDoc generator, the
497
+ documentation generation process of Roby is a bit modified. In particular, the
498
+ plugin documentation is separated from the core documentation, and a clearer
499
+ template is used instead of the standard one. RubyGems does not support any
500
+ kind of customization in that area, so I would _strongly_ suggest that you use
501
+ the documentation provided at http://roby.rubyforge.org instead of the
502
+ RubyGem-generated one.
503
+ rdoc_options:
504
+ - --main
505
+ - README.txt
506
+ - --main
507
+ - README.txt
508
+ - --inline-source
509
+ - --accessor
510
+ - attribute
511
+ - --accessor
512
+ - attr_predicate
513
+ require_paths:
514
+ - lib
515
+ - ext
516
+ required_ruby_version: !ruby/object:Gem::Requirement
517
+ requirements:
518
+ - - ">="
519
+ - !ruby/object:Gem::Version
520
+ version: "0"
521
+ version:
522
+ required_rubygems_version: !ruby/object:Gem::Requirement
523
+ requirements:
524
+ - - ">="
525
+ - !ruby/object:Gem::Version
526
+ version: "0"
527
+ version:
528
+ requirements: []
529
+
530
+ rubyforge_project: roby
531
+ rubygems_version: 1.0.1
532
+ signing_key:
533
+ specification_version: 2
534
+ summary: A plan-based control framework for autonomous systems
535
+ test_files:
536
+ - test/test_transactions.rb
537
+ - test/test_task.rb
538
+ - test/test_log_server.rb
539
+ - test/planning/test_model.rb
540
+ - test/planning/test_task.rb
541
+ - test/planning/test_loops.rb
542
+ - test/test_support.rb
543
+ - test/test_control.rb
544
+ - test/test_exceptions.rb
545
+ - test/test_plan.rb
546
+ - test/test_log.rb
547
+ - test/distributed/test_execution.rb
548
+ - test/distributed/test_connection.rb
549
+ - test/distributed/test_communication.rb
550
+ - test/distributed/test_remote_plan.rb
551
+ - test/distributed/test_mixed_plan.rb
552
+ - test/distributed/test_plan_notifications.rb
553
+ - test/distributed/test_transaction.rb
554
+ - test/distributed/test_query.rb
555
+ - test/distributed/test_protocol.rb
556
+ - test/test_transactions_proxy.rb
557
+ - test/test_relations.rb
558
+ - test/test_testcase.rb
559
+ - test/test_query.rb
560
+ - test/test_interface.rb
561
+ - test/relations/test_planned_by.rb
562
+ - test/relations/test_executed_by.rb
563
+ - test/relations/test_hierarchy.rb
564
+ - test/relations/test_conflicts.rb
565
+ - test/relations/test_ensured.rb
566
+ - test/test_bgl.rb
567
+ - test/test_thread_task.rb
568
+ - test/test_event.rb
569
+ - test/test_state.rb
570
+ - test/test_propagation.rb