sierra-research 1.3.6__py3-none-any.whl → 1.5.0__py3-none-any.whl

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.
Files changed (254) hide show
  1. sierra/__init__.py +3 -3
  2. sierra/core/__init__.py +3 -3
  3. sierra/core/batchroot.py +223 -0
  4. sierra/core/cmdline.py +681 -1057
  5. sierra/core/compare.py +11 -0
  6. sierra/core/config.py +96 -88
  7. sierra/core/engine.py +306 -0
  8. sierra/core/execenv.py +380 -0
  9. sierra/core/expdef.py +11 -0
  10. sierra/core/experiment/__init__.py +1 -0
  11. sierra/core/experiment/bindings.py +150 -101
  12. sierra/core/experiment/definition.py +414 -245
  13. sierra/core/experiment/spec.py +83 -85
  14. sierra/core/exproot.py +44 -0
  15. sierra/core/generators/__init__.py +10 -0
  16. sierra/core/generators/experiment.py +528 -0
  17. sierra/core/generators/generator_factory.py +138 -137
  18. sierra/core/graphs/__init__.py +23 -0
  19. sierra/core/graphs/bcbridge.py +94 -0
  20. sierra/core/graphs/heatmap.py +245 -324
  21. sierra/core/graphs/pathset.py +27 -0
  22. sierra/core/graphs/schema.py +77 -0
  23. sierra/core/graphs/stacked_line.py +341 -0
  24. sierra/core/graphs/summary_line.py +506 -0
  25. sierra/core/logging.py +3 -2
  26. sierra/core/models/__init__.py +3 -1
  27. sierra/core/models/info.py +19 -0
  28. sierra/core/models/interface.py +52 -122
  29. sierra/core/pipeline/__init__.py +2 -5
  30. sierra/core/pipeline/pipeline.py +228 -126
  31. sierra/core/pipeline/stage1/__init__.py +10 -0
  32. sierra/core/pipeline/stage1/pipeline_stage1.py +45 -31
  33. sierra/core/pipeline/stage2/__init__.py +10 -0
  34. sierra/core/pipeline/stage2/pipeline_stage2.py +8 -11
  35. sierra/core/pipeline/stage2/runner.py +401 -0
  36. sierra/core/pipeline/stage3/__init__.py +12 -0
  37. sierra/core/pipeline/stage3/gather.py +321 -0
  38. sierra/core/pipeline/stage3/pipeline_stage3.py +37 -84
  39. sierra/core/pipeline/stage4/__init__.py +12 -2
  40. sierra/core/pipeline/stage4/pipeline_stage4.py +36 -354
  41. sierra/core/pipeline/stage5/__init__.py +12 -0
  42. sierra/core/pipeline/stage5/pipeline_stage5.py +33 -208
  43. sierra/core/pipeline/yaml.py +48 -0
  44. sierra/core/plugin.py +529 -62
  45. sierra/core/proc.py +11 -0
  46. sierra/core/prod.py +11 -0
  47. sierra/core/ros1/__init__.py +5 -1
  48. sierra/core/ros1/callbacks.py +22 -21
  49. sierra/core/ros1/cmdline.py +59 -88
  50. sierra/core/ros1/generators.py +159 -175
  51. sierra/core/ros1/variables/__init__.py +3 -0
  52. sierra/core/ros1/variables/exp_setup.py +122 -116
  53. sierra/core/startup.py +106 -76
  54. sierra/core/stat_kernels.py +4 -5
  55. sierra/core/storage.py +13 -32
  56. sierra/core/trampoline.py +30 -0
  57. sierra/core/types.py +116 -71
  58. sierra/core/utils.py +103 -106
  59. sierra/core/variables/__init__.py +1 -1
  60. sierra/core/variables/base_variable.py +12 -17
  61. sierra/core/variables/batch_criteria.py +387 -481
  62. sierra/core/variables/builtin.py +135 -0
  63. sierra/core/variables/exp_setup.py +19 -39
  64. sierra/core/variables/population_size.py +72 -76
  65. sierra/core/variables/variable_density.py +44 -68
  66. sierra/core/vector.py +1 -1
  67. sierra/main.py +256 -88
  68. sierra/plugins/__init__.py +119 -0
  69. sierra/plugins/compare/__init__.py +14 -0
  70. sierra/plugins/compare/graphs/__init__.py +19 -0
  71. sierra/plugins/compare/graphs/cmdline.py +120 -0
  72. sierra/plugins/compare/graphs/comparator.py +291 -0
  73. sierra/plugins/compare/graphs/inter_controller.py +531 -0
  74. sierra/plugins/compare/graphs/inter_scenario.py +297 -0
  75. sierra/plugins/compare/graphs/namecalc.py +53 -0
  76. sierra/plugins/compare/graphs/outputroot.py +73 -0
  77. sierra/plugins/compare/graphs/plugin.py +147 -0
  78. sierra/plugins/compare/graphs/preprocess.py +172 -0
  79. sierra/plugins/compare/graphs/schema.py +37 -0
  80. sierra/plugins/engine/__init__.py +14 -0
  81. sierra/plugins/engine/argos/__init__.py +18 -0
  82. sierra/plugins/{platform → engine}/argos/cmdline.py +144 -151
  83. sierra/plugins/{platform/argos/variables → engine/argos/generators}/__init__.py +5 -0
  84. sierra/plugins/engine/argos/generators/engine.py +394 -0
  85. sierra/plugins/engine/argos/plugin.py +393 -0
  86. sierra/plugins/{platform/argos/generators → engine/argos/variables}/__init__.py +5 -0
  87. sierra/plugins/engine/argos/variables/arena_shape.py +183 -0
  88. sierra/plugins/engine/argos/variables/cameras.py +240 -0
  89. sierra/plugins/engine/argos/variables/constant_density.py +112 -0
  90. sierra/plugins/engine/argos/variables/exp_setup.py +82 -0
  91. sierra/plugins/{platform → engine}/argos/variables/physics_engines.py +83 -87
  92. sierra/plugins/engine/argos/variables/population_constant_density.py +178 -0
  93. sierra/plugins/engine/argos/variables/population_size.py +115 -0
  94. sierra/plugins/engine/argos/variables/population_variable_density.py +123 -0
  95. sierra/plugins/engine/argos/variables/rendering.py +108 -0
  96. sierra/plugins/engine/ros1gazebo/__init__.py +18 -0
  97. sierra/plugins/engine/ros1gazebo/cmdline.py +175 -0
  98. sierra/plugins/{platform/ros1robot → engine/ros1gazebo}/generators/__init__.py +5 -0
  99. sierra/plugins/engine/ros1gazebo/generators/engine.py +125 -0
  100. sierra/plugins/engine/ros1gazebo/plugin.py +404 -0
  101. sierra/plugins/engine/ros1gazebo/variables/__init__.py +15 -0
  102. sierra/plugins/engine/ros1gazebo/variables/population_size.py +214 -0
  103. sierra/plugins/engine/ros1robot/__init__.py +18 -0
  104. sierra/plugins/engine/ros1robot/cmdline.py +159 -0
  105. sierra/plugins/{platform/ros1gazebo → engine/ros1robot}/generators/__init__.py +4 -0
  106. sierra/plugins/engine/ros1robot/generators/engine.py +95 -0
  107. sierra/plugins/engine/ros1robot/plugin.py +410 -0
  108. sierra/plugins/{hpc/local → engine/ros1robot/variables}/__init__.py +5 -0
  109. sierra/plugins/engine/ros1robot/variables/population_size.py +146 -0
  110. sierra/plugins/execenv/__init__.py +11 -0
  111. sierra/plugins/execenv/hpc/__init__.py +18 -0
  112. sierra/plugins/execenv/hpc/adhoc/__init__.py +18 -0
  113. sierra/plugins/execenv/hpc/adhoc/cmdline.py +30 -0
  114. sierra/plugins/execenv/hpc/adhoc/plugin.py +131 -0
  115. sierra/plugins/execenv/hpc/cmdline.py +137 -0
  116. sierra/plugins/execenv/hpc/local/__init__.py +18 -0
  117. sierra/plugins/execenv/hpc/local/cmdline.py +31 -0
  118. sierra/plugins/execenv/hpc/local/plugin.py +145 -0
  119. sierra/plugins/execenv/hpc/pbs/__init__.py +18 -0
  120. sierra/plugins/execenv/hpc/pbs/cmdline.py +30 -0
  121. sierra/plugins/execenv/hpc/pbs/plugin.py +121 -0
  122. sierra/plugins/execenv/hpc/slurm/__init__.py +18 -0
  123. sierra/plugins/execenv/hpc/slurm/cmdline.py +30 -0
  124. sierra/plugins/execenv/hpc/slurm/plugin.py +133 -0
  125. sierra/plugins/execenv/prefectserver/__init__.py +18 -0
  126. sierra/plugins/execenv/prefectserver/cmdline.py +66 -0
  127. sierra/plugins/execenv/prefectserver/dockerremote/__init__.py +18 -0
  128. sierra/plugins/execenv/prefectserver/dockerremote/cmdline.py +66 -0
  129. sierra/plugins/execenv/prefectserver/dockerremote/plugin.py +132 -0
  130. sierra/plugins/execenv/prefectserver/flow.py +66 -0
  131. sierra/plugins/execenv/prefectserver/local/__init__.py +18 -0
  132. sierra/plugins/execenv/prefectserver/local/cmdline.py +29 -0
  133. sierra/plugins/execenv/prefectserver/local/plugin.py +133 -0
  134. sierra/plugins/{hpc/adhoc → execenv/robot}/__init__.py +1 -0
  135. sierra/plugins/execenv/robot/turtlebot3/__init__.py +18 -0
  136. sierra/plugins/execenv/robot/turtlebot3/plugin.py +204 -0
  137. sierra/plugins/expdef/__init__.py +14 -0
  138. sierra/plugins/expdef/json/__init__.py +14 -0
  139. sierra/plugins/expdef/json/plugin.py +504 -0
  140. sierra/plugins/expdef/xml/__init__.py +14 -0
  141. sierra/plugins/expdef/xml/plugin.py +386 -0
  142. sierra/{core/hpc → plugins/proc}/__init__.py +1 -1
  143. sierra/plugins/proc/collate/__init__.py +15 -0
  144. sierra/plugins/proc/collate/cmdline.py +47 -0
  145. sierra/plugins/proc/collate/plugin.py +271 -0
  146. sierra/plugins/proc/compress/__init__.py +18 -0
  147. sierra/plugins/proc/compress/cmdline.py +47 -0
  148. sierra/plugins/proc/compress/plugin.py +123 -0
  149. sierra/plugins/proc/decompress/__init__.py +18 -0
  150. sierra/plugins/proc/decompress/plugin.py +96 -0
  151. sierra/plugins/proc/imagize/__init__.py +15 -0
  152. sierra/plugins/proc/imagize/cmdline.py +49 -0
  153. sierra/plugins/proc/imagize/plugin.py +270 -0
  154. sierra/plugins/proc/modelrunner/__init__.py +16 -0
  155. sierra/plugins/proc/modelrunner/plugin.py +250 -0
  156. sierra/plugins/proc/statistics/__init__.py +15 -0
  157. sierra/plugins/proc/statistics/cmdline.py +64 -0
  158. sierra/plugins/proc/statistics/plugin.py +390 -0
  159. sierra/plugins/{hpc → prod}/__init__.py +1 -0
  160. sierra/plugins/prod/graphs/__init__.py +18 -0
  161. sierra/plugins/prod/graphs/cmdline.py +269 -0
  162. sierra/plugins/prod/graphs/collate.py +279 -0
  163. sierra/plugins/prod/graphs/inter/__init__.py +13 -0
  164. sierra/plugins/prod/graphs/inter/generate.py +83 -0
  165. sierra/plugins/prod/graphs/inter/heatmap.py +86 -0
  166. sierra/plugins/prod/graphs/inter/line.py +134 -0
  167. sierra/plugins/prod/graphs/intra/__init__.py +15 -0
  168. sierra/plugins/prod/graphs/intra/generate.py +202 -0
  169. sierra/plugins/prod/graphs/intra/heatmap.py +74 -0
  170. sierra/plugins/prod/graphs/intra/line.py +114 -0
  171. sierra/plugins/prod/graphs/plugin.py +103 -0
  172. sierra/plugins/prod/graphs/targets.py +63 -0
  173. sierra/plugins/prod/render/__init__.py +18 -0
  174. sierra/plugins/prod/render/cmdline.py +72 -0
  175. sierra/plugins/prod/render/plugin.py +282 -0
  176. sierra/plugins/storage/__init__.py +5 -0
  177. sierra/plugins/storage/arrow/__init__.py +18 -0
  178. sierra/plugins/storage/arrow/plugin.py +38 -0
  179. sierra/plugins/storage/csv/__init__.py +9 -0
  180. sierra/plugins/storage/csv/plugin.py +12 -5
  181. sierra/version.py +3 -2
  182. sierra_research-1.5.0.dist-info/METADATA +238 -0
  183. sierra_research-1.5.0.dist-info/RECORD +186 -0
  184. {sierra_research-1.3.6.dist-info → sierra_research-1.5.0.dist-info}/WHEEL +1 -2
  185. sierra/core/experiment/xml.py +0 -454
  186. sierra/core/generators/controller_generator_parser.py +0 -34
  187. sierra/core/generators/exp_creator.py +0 -351
  188. sierra/core/generators/exp_generators.py +0 -142
  189. sierra/core/graphs/scatterplot2D.py +0 -109
  190. sierra/core/graphs/stacked_line_graph.py +0 -249
  191. sierra/core/graphs/stacked_surface_graph.py +0 -220
  192. sierra/core/graphs/summary_line_graph.py +0 -369
  193. sierra/core/hpc/cmdline.py +0 -142
  194. sierra/core/models/graphs.py +0 -87
  195. sierra/core/pipeline/stage2/exp_runner.py +0 -286
  196. sierra/core/pipeline/stage3/imagizer.py +0 -149
  197. sierra/core/pipeline/stage3/run_collator.py +0 -317
  198. sierra/core/pipeline/stage3/statistics_calculator.py +0 -478
  199. sierra/core/pipeline/stage4/graph_collator.py +0 -319
  200. sierra/core/pipeline/stage4/inter_exp_graph_generator.py +0 -240
  201. sierra/core/pipeline/stage4/intra_exp_graph_generator.py +0 -317
  202. sierra/core/pipeline/stage4/model_runner.py +0 -168
  203. sierra/core/pipeline/stage4/rendering.py +0 -283
  204. sierra/core/pipeline/stage4/yaml_config_loader.py +0 -103
  205. sierra/core/pipeline/stage5/inter_scenario_comparator.py +0 -328
  206. sierra/core/pipeline/stage5/intra_scenario_comparator.py +0 -989
  207. sierra/core/platform.py +0 -493
  208. sierra/core/plugin_manager.py +0 -369
  209. sierra/core/root_dirpath_generator.py +0 -241
  210. sierra/plugins/hpc/adhoc/plugin.py +0 -125
  211. sierra/plugins/hpc/local/plugin.py +0 -81
  212. sierra/plugins/hpc/pbs/__init__.py +0 -9
  213. sierra/plugins/hpc/pbs/plugin.py +0 -126
  214. sierra/plugins/hpc/slurm/__init__.py +0 -9
  215. sierra/plugins/hpc/slurm/plugin.py +0 -130
  216. sierra/plugins/platform/__init__.py +0 -9
  217. sierra/plugins/platform/argos/__init__.py +0 -9
  218. sierra/plugins/platform/argos/generators/platform_generators.py +0 -383
  219. sierra/plugins/platform/argos/plugin.py +0 -337
  220. sierra/plugins/platform/argos/variables/arena_shape.py +0 -145
  221. sierra/plugins/platform/argos/variables/cameras.py +0 -243
  222. sierra/plugins/platform/argos/variables/constant_density.py +0 -136
  223. sierra/plugins/platform/argos/variables/exp_setup.py +0 -113
  224. sierra/plugins/platform/argos/variables/population_constant_density.py +0 -175
  225. sierra/plugins/platform/argos/variables/population_size.py +0 -102
  226. sierra/plugins/platform/argos/variables/population_variable_density.py +0 -132
  227. sierra/plugins/platform/argos/variables/rendering.py +0 -104
  228. sierra/plugins/platform/ros1gazebo/__init__.py +0 -9
  229. sierra/plugins/platform/ros1gazebo/cmdline.py +0 -213
  230. sierra/plugins/platform/ros1gazebo/generators/platform_generators.py +0 -137
  231. sierra/plugins/platform/ros1gazebo/plugin.py +0 -335
  232. sierra/plugins/platform/ros1gazebo/variables/__init__.py +0 -10
  233. sierra/plugins/platform/ros1gazebo/variables/population_size.py +0 -204
  234. sierra/plugins/platform/ros1robot/__init__.py +0 -9
  235. sierra/plugins/platform/ros1robot/cmdline.py +0 -175
  236. sierra/plugins/platform/ros1robot/generators/platform_generators.py +0 -112
  237. sierra/plugins/platform/ros1robot/plugin.py +0 -373
  238. sierra/plugins/platform/ros1robot/variables/__init__.py +0 -10
  239. sierra/plugins/platform/ros1robot/variables/population_size.py +0 -146
  240. sierra/plugins/robot/__init__.py +0 -9
  241. sierra/plugins/robot/turtlebot3/__init__.py +0 -9
  242. sierra/plugins/robot/turtlebot3/plugin.py +0 -194
  243. sierra_research-1.3.6.data/data/share/man/man1/sierra-cli.1 +0 -2349
  244. sierra_research-1.3.6.data/data/share/man/man7/sierra-examples.7 +0 -488
  245. sierra_research-1.3.6.data/data/share/man/man7/sierra-exec-envs.7 +0 -331
  246. sierra_research-1.3.6.data/data/share/man/man7/sierra-glossary.7 +0 -285
  247. sierra_research-1.3.6.data/data/share/man/man7/sierra-platforms.7 +0 -358
  248. sierra_research-1.3.6.data/data/share/man/man7/sierra-usage.7 +0 -725
  249. sierra_research-1.3.6.data/data/share/man/man7/sierra.7 +0 -78
  250. sierra_research-1.3.6.dist-info/METADATA +0 -500
  251. sierra_research-1.3.6.dist-info/RECORD +0 -133
  252. sierra_research-1.3.6.dist-info/top_level.txt +0 -1
  253. {sierra_research-1.3.6.dist-info → sierra_research-1.5.0.dist-info}/entry_points.txt +0 -0
  254. {sierra_research-1.3.6.dist-info → sierra_research-1.5.0.dist-info/licenses}/LICENSE +0 -0
@@ -1,725 +0,0 @@
1
- .\" Man page generated from reStructuredText.
2
- .
3
- .
4
- .nr rst2man-indent-level 0
5
- .
6
- .de1 rstReportMargin
7
- \\$1 \\n[an-margin]
8
- level \\n[rst2man-indent-level]
9
- level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
10
- -
11
- \\n[rst2man-indent0]
12
- \\n[rst2man-indent1]
13
- \\n[rst2man-indent2]
14
- ..
15
- .de1 INDENT
16
- .\" .rstReportMargin pre:
17
- . RS \\$1
18
- . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
19
- . nr rst2man-indent-level +1
20
- .\" .rstReportMargin post:
21
- ..
22
- .de UNINDENT
23
- . RE
24
- .\" indent \\n[an-margin]
25
- .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
26
- .nr rst2man-indent-level -1
27
- .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
- .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
29
- ..
30
- .TH "SIERRA-USAGE" "7" "Apr 01, 2024" "1.3.6" "SIERRA"
31
- .SH NAME
32
- sierra-usage \- How to use SIERRA. This covers all non-command line interface aspects.
33
- .sp
34
- This covers everything which is (mostly) \fI\%Platform\fP independent and is not
35
- the command line interface.
36
- .SH SIERRA PIPELINE
37
- .sp
38
- When invoked SIERRA will run one or more stages of its execution path, as
39
- specified via \fB\-\-pipeline\fP on the cmdline. Only the first 4 pipeline stages
40
- will run by default. The pipeline stages are:
41
- .SS Stage 1: Experiment Generation
42
- .sp
43
- Experiments using the scientific method have an independent variable whose
44
- impact on results are measured through a series of trials. SIERRA allows you to
45
- express this as a research query on the command line, and then parses your query
46
- to make changes to a template input file to generate launch commands and
47
- experimental inputs to operationalize it. Switching from targeting platform A
48
- (e.g., ARGoS) to platform B (e.g., ROS1+Gazebo) is as easy as changing a single
49
- command line argument. SIERRA handles the \(dqbackend\(dq aspects of defining
50
- experimental inputs allowing you to focus on their \fIcontent\fP, rather than the
51
- mechanics of how to turn the content into something that can be executed. See
52
- also:
53
- .INDENT 0.0
54
- .IP \(bu 2
55
- \fI\%SIERRA Support Matrix\fP
56
- .IP \(bu 2
57
- \fI\%Command Line Interface\fP
58
- .UNINDENT
59
- .sp
60
- Part of default pipeline.
61
- .SS Stage 2: Experiment Execution
62
- .sp
63
- SIERRA runs a previously generated \fI\%Batch Experiment\fP\&. Exactly which batch
64
- experiment SIERRA runs is determined by:
65
- .INDENT 0.0
66
- .IP \(bu 2
67
- \fB\-\-controller\fP
68
- .IP \(bu 2
69
- \fB\-\-scenario\fP
70
- .IP \(bu 2
71
- \fB\-\-sierra\-root\fP
72
- .IP \(bu 2
73
- \fB\-\-template\-input\-file\fP
74
- .IP \(bu 2
75
- \fB\-\-batch\-criteria\fP
76
- .UNINDENT
77
- .sp
78
- SIERRA currently supports two types of execution environments: simulators and
79
- real robots, which are handled seamlessly. For simulators, SIERRA will run
80
- multiple experimental runs from each experiment in parallel if possible. Similar
81
- to stage 1, switching between execution environments is as easy as changing a
82
- single command line argument. See also:
83
- .INDENT 0.0
84
- .IP \(bu 2
85
- \fI\%Execution Environment Plugins\fP
86
- .IP \(bu 2
87
- \fI\%Platform Plugins\fP
88
- .IP \(bu 2
89
- \fI\%SIERRA Support Matrix\fP
90
- .UNINDENT
91
- .sp
92
- Part of default pipeline.
93
- .SS Stage 3: Experiment Post\-Processing
94
- .sp
95
- SIERRA supports a number of data formats which simulations/real robot
96
- experiments can output their data, e.g., the number of robots engaged in a given
97
- task over time for processing. SIERRA post\-processes experimental results after
98
- running the batch experiment; some parts of this can be done in parallel. This
99
- includes one or more of:
100
- .INDENT 0.0
101
- .IP \(bu 2
102
- Computing statistics over/about experimental data for stage 4 for use in graph
103
- generation in stage 4. See \fI\%Command Line Interface\fP documentation for
104
- \fB\-\-dist\-stats\fP for details.
105
- .IP \(bu 2
106
- Creating images from project CSV files for rendering in stage 4. See
107
- \fI\%Project Rendering\fP for details.
108
- .UNINDENT
109
- .sp
110
- Part of default pipeline.
111
- .SS Stage 4: Deliverable Generation
112
- .sp
113
- SIERRA can generate many deliverables from the processed experimental results
114
- automatically (independent of the platform/execution environment!), thus greatly
115
- simplifying reproduction of previous results if you need to tweak a given graph
116
- (for example). SIERRA currently supports generating the following deliverables:
117
- .INDENT 0.0
118
- .IP \(bu 2
119
- Camera\-ready linegraphs, heatmaps, 3D surfaces, and scatterplots directly from
120
- averaged/statistically processed experimental data using matplotlib.
121
- .IP \(bu 2
122
- Videos built from frames captured during simulation or real robot operation.
123
- .IP \(bu 2
124
- Videos built from captured experimental output .csv files.
125
- .UNINDENT
126
- .sp
127
- SIERRA also has a rich model framework allowing you to run arbitrary models,
128
- generate data, and plot it on the same figure as empirical results,
129
- automatically. See ln\-sierra\-tutorials\-project\-models for details.
130
- .sp
131
- For some examples, see the \(dqGenerating Deliverables\(dq section of
132
- \fI\%2022 AAMAS Demo\fP <\fBhttps://www-users.cse.umn.edu/~harwe006/showcase/aamas-2022-demo\fP>\&. See \fI\%Rendering\fP for details about
133
- rendering capabilities.
134
- .sp
135
- Part of default pipeline.
136
- .SS Stage 5: Graph Generation for Controller/Scenario Comparison
137
- .sp
138
- SIERRA can perform additional graph generation \fIAFTER\fP graph generation for
139
- batch experiments has been run. This is extremely useful for generating graphs
140
- which can be dropped immediately into academic papers without modification. This
141
- can be used to compare:
142
- .INDENT 0.0
143
- .IP \(bu 2
144
- Different agent control algorithms which have all been run in the same
145
- \fB\-\-scenario\fP\&. See \fI\%Intra\-Scenario Comparison\fP for details.
146
- .IP \(bu 2
147
- A single \fB\-\-controller\fP across multiple scenarios. See
148
- \fI\%Inter\-Scenario Comparison\fP for details.
149
- .UNINDENT
150
- .sp
151
- Not part of default pipeline.
152
- .SH PIPELINE STAGE 5
153
- .sp
154
- The main idea of this pipeline stage is to \(dqcollate\(dq the results of one or more
155
- \fI\%Summary .csv\fP files present in different \fI\%Batch Experiments\fP into a \fI\%Inter\-Batch .csv\fP file, and then use that file to
156
- generate graphs. Any \fI\%Summary .csv\fP that is present in multiple
157
- \fI\%Batch Experiments\fP can be used during stage 5! This
158
- gives this pipeline stage tremendous flexibility as a camera\-ready graph
159
- generation tool.
160
- .sp
161
- In general, stage 5 is always run separate from stages 1\-4 (i.e., a separate
162
- SIERRA invocation), because the options are quite different, but you don\(aqt
163
- \fIhave\fP to do this.
164
- .sp
165
- \fBIMPORTANT:\fP
166
- .INDENT 0.0
167
- .INDENT 3.5
168
- You \fIcannot\fP use this stage before successfully running stage 4
169
- for each of the \fI\%Batch Experiments\fP you
170
- want to include on the final graph.
171
- .UNINDENT
172
- .UNINDENT
173
- .sp
174
- \fBWARNING:\fP
175
- .INDENT 0.0
176
- .INDENT 3.5
177
- Because SIERRA never deletes stuff for you, running stage 5 is
178
- \fINOT\fP idempotent. Running the same stage 5 invocation comparing 3
179
- controllers in a single scenario (for example) could result in
180
- linegraphs containing 3,6,9,..., lines with duplicated data. In
181
- general, you want to delete the directories generated by stage 5
182
- between successive runs. See
183
- \fI\%SIERRA Runtime Directory Tree\fP for details on what
184
- directories are generated.
185
- .UNINDENT
186
- .UNINDENT
187
- .SS Intra\-Scenario Comparison
188
- .sp
189
- Intra\-scenario comparison compares the of experiments using one or more
190
- controllers on the same \fB\-\-scenario\fP\&. To use it, you need to pass the
191
- following options to SIERRA (see \fI\%Command Line Interface\fP for documentation):
192
- .INDENT 0.0
193
- .IP \(bu 2
194
- \fB\-\-scenario\-comparison\fP
195
- .IP \(bu 2
196
- \fB\-\-bc\-univar\fP or \fB\-\-bc\-bivar\fP
197
- .IP \(bu 2
198
- \fB\-\-dist\-stats\fP (to get statistics generated during stage 3 to show up on the
199
- final graph).
200
- .UNINDENT
201
- .sp
202
- Other \fB\-\-plot\-*\fP options providing for fine\-grained control of the generated
203
- graphs may also be of interest.
204
- .sp
205
- For YAML configuration, see
206
- ln\-sierra\-tutorials\-project\-stage5\-config\-intra\&.
207
- .SS Inter\-Scenario Comparison
208
- .sp
209
- Inter\-scenario comparison compares the same \fB\-\-controller\fP across multiple
210
- \fB\-\-scenarios\fP\&. To use it, you need to pass the following options to SIERRA
211
- when running stage 5 (see \fI\%Command Line Interface\fP for documentation):
212
- .INDENT 0.0
213
- .IP \(bu 2
214
- \fB\-\-controller\-comparison\fP
215
- .IP \(bu 2
216
- \fB\-\-bc\-univar\fP or \fB\-\-bc\-bivar\fP
217
- .IP \(bu 2
218
- \fB\-\-dist\-stats\fP (to get statistics generated during stage 3 to show up on the
219
- final graph).
220
- .UNINDENT
221
- .sp
222
- Other \fB\-\-plot\-*\fP options providing for fine\-grained control of the generated
223
- graphs may also be of interest.
224
- .sp
225
- For YAML configuration, see
226
- ln\-sierra\-tutorials\-project\-stage5\-config\-inter\&.
227
- .SH SIERRA RUNTIME DIRECTORY TREE
228
- .sp
229
- \fBIMPORTANT:\fP
230
- .INDENT 0.0
231
- .INDENT 3.5
232
- SIERRA \fBNEVER\fP deletes directories for you.
233
- .sp
234
- Subsequent experiments using the same values for the following cmdline
235
- arguments \fBWILL\fP result in the same calculated root directory for
236
- experimental inputs and outputs, even if other parameters change (or if you
237
- change the contents of the template input file):
238
- .INDENT 0.0
239
- .IP \(bu 2
240
- \fB\-\-controller\fP
241
- .IP \(bu 2
242
- \fB\-\-scenario\fP
243
- .IP \(bu 2
244
- \fB\-\-sierra\-root\fP
245
- .IP \(bu 2
246
- \fB\-\-template\-input\-file\fP
247
- .IP \(bu 2
248
- \fB\-\-batch\-criteria\fP
249
- .UNINDENT
250
- .sp
251
- SIERRA will abort stage {1,2} processing when this occurs in order to
252
- preserve data integrity; this behavior can be overwridden with
253
- \fB\-\-exp\-overwrite\fP, in which case the use assumes full responsibility for
254
- ensuring the integrity of the experiment.
255
- .sp
256
- Always better to check the arguments before hitting ENTER. Measure twice, cut
257
- once, as the saying goes.
258
- .UNINDENT
259
- .UNINDENT
260
- .SS Default Pipeline Directory Tree (Stages 1\-4)
261
- .sp
262
- When SIERRA runs stages 1\-4, it creates a directory structure under whatever was
263
- passed as \fB\-\-sierra\-root\fP\&. For the purposes of explanation, I will use the
264
- following partial SIERRA option set to explain the experiment tree:
265
- .INDENT 0.0
266
- .INDENT 3.5
267
- .sp
268
- .nf
269
- .ft C
270
- \-\-sierra\-root=$HOME/exp\e
271
- \-\-controller=CATEGORY.my_controller\e
272
- \-\-scenario=SS.12x6\e
273
- \-\-platform=platform.argos\e
274
- \-\-batch\-criteria=population_size.Log8\e
275
- \-\-n\-runs=4\e
276
- \-\-template\-input\-file=~/my\-template.argos\e
277
- \-\-project=fordyca
278
- .ft P
279
- .fi
280
- .UNINDENT
281
- .UNINDENT
282
- .sp
283
- This invocation will cause SIERRA to create the following directory structure as
284
- it runs:
285
- .INDENT 0.0
286
- .IP \(bu 2
287
- \fB$HOME/exp\fP \- This is the root of the directory structure (\fB\-\-sierra\-root\fP),
288
- and is \fBNOT\fP deleted on subsequent runs.
289
- .INDENT 2.0
290
- .IP \(bu 2
291
- \fBfordyca\fP \- Each project gets their own directory, so you can disambiguate
292
- otherwise identical SIERRA invocations and don\(aqt overwrite the directories
293
- for a previously used project on subsequent runs.
294
- .INDENT 2.0
295
- .IP \(bu 2
296
- \fBCATEGORY.my_controller\fP \- Each controller gets their own directory in the
297
- project root, which is \fBNOT\fP deleted on subsequent runs.
298
- .INDENT 2.0
299
- .IP \(bu 2
300
- \fBmytemplate\-SS.12x6\fP \- The directory for the \fI\%Batch Experiment\fP
301
- is named from a combination of the template input file used
302
- (\fB\-\-template\-input\-file\fP) and the scenario (\fB\-\-scenario\fP).
303
- .INDENT 2.0
304
- .IP \(bu 2
305
- \fBexp\-inputs\fP \- Root directory for \fI\%Experimental\fP
306
- inputs; each experiment in the batch gets their own directory in here.
307
- .INDENT 2.0
308
- .IP \(bu 2
309
- \fBexp0\fP \- Within the input directory for each experiment in the
310
- batch (there are 4 such directories in this example), there will be
311
- an input file for each \fI\%Experimental Run\fP in the experiment,
312
- as well as a \fBcommands.txt\fP used by GNU parallel to run them all
313
- in parallel. The leaf of the \fB\-\-template\-input\-file\fP, sans
314
- extension, has the experimental run # appended to it
315
- (e.g. \fBmy\-template_0.argos\fP is the input file for simulation 0).
316
- .INDENT 2.0
317
- .INDENT 3.5
318
- .INDENT 0.0
319
- .IP \(bu 2
320
- \fBcommands.txt\fP
321
- .IP \(bu 2
322
- \fBmy\-template_0.argos\fP
323
- .IP \(bu 2
324
- \fBmy\-template_1.argos\fP
325
- .IP \(bu 2
326
- \fBmy\-template_2.argos\fP
327
- .IP \(bu 2
328
- \fBmy\-template_3.argos\fP
329
- .UNINDENT
330
- .UNINDENT
331
- .UNINDENT
332
- .IP \(bu 2
333
- \fBexp1\fP
334
- .INDENT 2.0
335
- .IP \(bu 2
336
- \fBmy\-template_0.argos\fP
337
- .IP \(bu 2
338
- \fBmy\-template_1.argos\fP
339
- .IP \(bu 2
340
- \fBmy\-template_2.argos\fP
341
- .IP \(bu 2
342
- \fBmy\-template_3.argos\fP
343
- .UNINDENT
344
- .IP \(bu 2
345
- \fBexp2\fP
346
- .INDENT 2.0
347
- .IP \(bu 2
348
- \fB\&...\fP
349
- .UNINDENT
350
- .UNINDENT
351
- .IP \(bu 2
352
- \fBexp\-outputs\fP \- Root directory for experimental outputs; each
353
- experiment gets their own directory in here (just like for experiment
354
- inputs). Directory name is controlled by the main YAML configuration.
355
- .INDENT 2.0
356
- .IP \(bu 2
357
- \fBexp0\fP \- Within the output directory for each experiment in the
358
- batch (there are 3 such directories in this example), there will be
359
- a \fIdirectory\fP (rather than a file, as was the case for inputs) for
360
- each experimental run\(aqs output, including metrics, grabbed frames,
361
- etc., as configured in the XML input file.
362
- .INDENT 2.0
363
- .IP \(bu 2
364
- \fBmy\-template_0_output\fP
365
- .IP \(bu 2
366
- \fBmy\-template_1_output\fP
367
- .IP \(bu 2
368
- \fBmy\-template_2_output\fP
369
- .IP \(bu 2
370
- \fBmy\-template_3_output\fP
371
- .UNINDENT
372
- .IP \(bu 2
373
- \fBexp1\fP
374
- .INDENT 2.0
375
- .IP \(bu 2
376
- \fBmy\-template_0_output\fP
377
- .IP \(bu 2
378
- \fBmy\-template_1_output\fP
379
- .IP \(bu 2
380
- \fBmy\-template_2_output\fP
381
- .IP \(bu 2
382
- \fBmy\-template_3_output\fP
383
- .UNINDENT
384
- .IP \(bu 2
385
- \fBexp2\fP
386
- .INDENT 2.0
387
- .IP \(bu 2
388
- \fB\&...\fP
389
- .UNINDENT
390
- .IP \(bu 2
391
- \fBstatistics\fP \- Root directory for holding statistics calculated
392
- during stage3 for use during stage4.
393
- .INDENT 2.0
394
- .IP \(bu 2
395
- \fBexp0\fP \- Contains the results of statistics generation for exp0
396
- (mean, stddev, etc., as configured).
397
- .IP \(bu 2
398
- \fBexp1\fP
399
- .IP \(bu 2
400
- \fBexp2\fP
401
- .IP \(bu 2
402
- \fB\&...\fP
403
- .IP \(bu 2
404
- \fBcollated\fP \- Contains \fI\%Collated .csv\fP files. During
405
- stage4, SIERRA will draw specific columns from .csv files under
406
- \fBstatistics\fP according to configuration, and collate them under
407
- here for graph generation of \fIinter\fP\-experiment graphs.
408
- .IP \(bu 2
409
- \fBexec\fP \- Statistics about SIERRA runtime. Useful for capturing
410
- runtime of specific experiments to better plan/schedule time on
411
- HPC clusters.
412
- .UNINDENT
413
- .UNINDENT
414
- .IP \(bu 2
415
- \fBimagize\fP \- Root directory for holding imagized files (averaged run
416
- outputs which have been converted to graphs) which can be patched
417
- together in stage 4 to generated videos. Each experiment will get its
418
- own directory under here, with unique sub\-directories for each
419
- different type of \fI\%Experimental Run\fP data captured for
420
- imagizing. See \fI\%Project Rendering\fP for more details.
421
- .IP \(bu 2
422
- \fBvideos\fP \- Root directory for holding rendered videos generated
423
- during stage 4 from either captured simulator frames for imagized
424
- project files. Each experiment will get its own directory under here,
425
- with See \fI\%Rendering\fP for more details.
426
- .IP \(bu 2
427
- \fBmodels\fP \- During stage4, the dataframes generated by all executed
428
- models are stored under this directory. Each experiment in the batch
429
- gets their own directory for \fIintra\fP\-experiment models.
430
- .IP \(bu 2
431
- \fBgraphs\fP \- During stage4, all generated graphs are output under this
432
- directory. Each experiment in the batch gets their own directory for
433
- \fIintra\fP\-experiment graphs.
434
- .INDENT 2.0
435
- .IP \(bu 2
436
- \fBexp0\fP
437
- .IP \(bu 2
438
- \fBexp1\fP
439
- .IP \(bu 2
440
- \fBexp2\fP
441
- .IP \(bu 2
442
- \fBexp3\fP
443
- .IP \(bu 2
444
- \fBcollated\fP \- Graphs which are generated across experiments in the
445
- batch from collated .csv data, rather than from the averaged results
446
- within each experiment, are output here.
447
- .UNINDENT
448
- .UNINDENT
449
- .UNINDENT
450
- .UNINDENT
451
- .UNINDENT
452
- .UNINDENT
453
- .SS Stage 5 Directory Tree
454
- .sp
455
- When SIERRA runs stage 5, stages 1\-4 must have already been successfully run,
456
- and therefore the directory tree shown above will exist. For the purposes of
457
- explanation, I will use the following partial SIERRA option sets to explain the
458
- additions to the experiment tree for stage 5.
459
- .sp
460
- First, the experiment tree for \fIscenario comparison\fP:
461
- .INDENT 0.0
462
- .INDENT 3.5
463
- .sp
464
- .nf
465
- .ft C
466
- \-\-pipeline 5\e
467
- \-\-scenario\-comparison\e
468
- \-\-batch\-criteria population_size.Log8\e
469
- \-\-scenarios\-list=RN.16x16x2,PL.16x16x2\e
470
- \-\-sierra\-root=$HOME/exp\(dq
471
- .ft P
472
- .fi
473
- .UNINDENT
474
- .UNINDENT
475
- .sp
476
- This invocation will cause SIERRA to create the following directory structure as
477
- it runs:
478
- .INDENT 0.0
479
- .IP \(bu 2
480
- \fB$HOME/exp\fP
481
- .INDENT 2.0
482
- .IP \(bu 2
483
- \fBRN.16x16x2+PL.16x16x2\-sc\-graphs\fP
484
- .sp
485
- This is the directory holding the comparison graphs for all controllers
486
- which were previously run on the scenarios \fBRN.16x16x2\fP and \fBPL.16x16x2\fP
487
- (scenario names are arbitrary for the purposes of stage 5 and entirely
488
- depend on the project). Inside this directory will be all graphs generated
489
- according to the configuration specified in
490
- ln\-sierra\-tutorials\-project\-stage5\-config\&.
491
- .UNINDENT
492
- .UNINDENT
493
- .sp
494
- Second, the experiment tree for \fIcontroller comparison\fP
495
- .INDENT 0.0
496
- .INDENT 3.5
497
- .sp
498
- .nf
499
- .ft C
500
- \-\-pipeline 5\e
501
- \-\-controller\-comparison\e
502
- \-\-batch\-criteria population_size.Log8\e
503
- \-\-controllers\-list d0.CRW,d0.DPO\e
504
- \-\-sierra\-root=$HOME/exp\(dq
505
- .ft P
506
- .fi
507
- .UNINDENT
508
- .UNINDENT
509
- .sp
510
- This invocation will cause SIERRA to create the following directory structure as
511
- it runs:
512
- .INDENT 0.0
513
- .IP \(bu 2
514
- \fB$HOME/exp\fP
515
- .INDENT 2.0
516
- .IP \(bu 2
517
- \fBd0.CRW+d0.DPO\-cc\-graphs\fP
518
- .sp
519
- This is the directory holding the comparison graphs for each scenario for
520
- which \fBd0.CRW\fP and \fBd0.DPO\fP were run (scenarios are computed by
521
- examining the directory tree for stages 1\-4). Controller names are arbitrary
522
- for the purposes of stage 5 and entirely depend on the project). Inside this
523
- directory will be all graphs generated according to the configuration
524
- specified in ln\-sierra\-tutorials\-project\-stage5\-config\&.
525
- .UNINDENT
526
- .UNINDENT
527
- .SH SIERRA SUBPROGRAMS
528
- .sp
529
- These are the shell programs which SIERRA \fImay\fP use internally when running,
530
- depending on what you are doing.
531
- .INDENT 0.0
532
- .IP \(bu 2
533
- \fBparallel\fP \- GNU parallel. Used during stage 2 when running
534
- experiments (\fI\%ARGoS\fP, \fI\%ROS1+Gazebo\fP, \fI\%ROS1+Robot\fP platforms).
535
- .IP \(bu 2
536
- \fBffmpeg\fP \- Used during stage 3 if imagizing is run. See
537
- \fI\%Platform Visual Capture\fP\&.
538
- .IP \(bu 2
539
- \fBXvfb\fP \- Used during stage 1 when generating simulation inputs, and
540
- during stage 2 when running experiments for the \fI\%ARGoS\fP
541
- \fI\%Platform\fP\&. See also \fI\%Platform Visual Capture\fP\&.
542
- .IP \(bu 2
543
- \fBparallel\-ssh\fP \- Used during stage 1 when generating experiments
544
- experiments (\fI\%ROS1+Robot\fP platform).
545
- .IP \(bu 2
546
- \fBparallel\-rsync\fP \- Used during stage 1 when generating experiments
547
- experiments (\fI\%ROS1+Robot\fP platform).
548
- .UNINDENT
549
- .SH ENVIRONMENT VARIABLES
550
- .INDENT 0.0
551
- .TP
552
- .B SIERRA_PLUGIN_PATH
553
- Used for locating \fI\%plugins\fP\&. The directory \fIcontaining\fP a
554
- plugin directory outside the SIERRA source tree must be on
555
- \fBSIERRA_PLUGIN_PATH\fP\&. Paths are added to \fBPYTHONPATH\fP as needed to load
556
- plugins correctly. For example, if you have a different version of the
557
- \fB\-\-storage\-medium\fP plugin you\(aqd like to use, and you have but the directory
558
- containing the plugin in \fB$HOME/plugins\fP, then you need to add
559
- \fB$HOME/plugins\fP to your \fBSIERRA_PLUGIN_PATH\fP to so that SIERRA will find
560
- it. This variable is used in stages 1\-5.
561
- .sp
562
- Used for locating \fI\%projects\fP; all projects specifiable with
563
- \fB\-\-project\fP are directories found within the directories on this path. For
564
- example, if you have a project \fB$HOME/git/projects/myproject\fP, then
565
- \fB$HOME/git\fP must be on \fBSIERRA_PLUGIN_PATH\fP in order for you to be able
566
- to specify \fB\-\-project=myproject\fP\&. This variable is used in stages 1\-5.
567
- .sp
568
- You \fIcannot\fP just put the parent directory of your project on
569
- \fI\%PYTHONPATH\fP because SIERRA uses this path for other things
570
- internally (e.g., computing the paths to YAML config files).
571
- .UNINDENT
572
- .INDENT 0.0
573
- .TP
574
- .B PYTHONPATH
575
- Used for locating projects per the usual python mechanisms.
576
- .UNINDENT
577
- .INDENT 0.0
578
- .TP
579
- .B ARGOS_PLUGIN_PATH
580
- Must be set to contain the library directory where you installed/built ARGoS,
581
- as well as the library directory for your project \fB\&.so\fP\&. Checked to be
582
- non\-empty before running stage 2 for all \fB\-\-exec\-env\fP plugins. SIERRA does
583
- \fInot\fP modify this variable, so it needs to be setup properly prior to
584
- invoking SIERRA (i.e., the directory containing the \fI\%Project\fP \fB\&.so\fP
585
- file needs to be on it). SIERRA can\(aqt know, in general, where the location of
586
- the C++ code corresponding to the loaded \fI\%Project\fP is.
587
- .UNINDENT
588
- .INDENT 0.0
589
- .TP
590
- .B SIERRA_ARCH
591
- Can be used to determine the names of executables launch in HPC environment,
592
- so that in environments with multiple queues/sub\-clusters with different
593
- architectures simulators can be compiled natively for each for maximum
594
- performance. Can be any string. If defined, then instead of searching for the
595
- \fBfoobar\fP executable for some platform on \fBPATH\fP, SIERRA will look for
596
- \fBfoobar\-$SIERRA_ARCH\fP\&.
597
- .sp
598
- \fBIMPORTANT:\fP
599
- .INDENT 7.0
600
- .INDENT 3.5
601
- Not all platforms use this variable\-\-see the docs for your
602
- platform of interest.
603
- .UNINDENT
604
- .UNINDENT
605
- .UNINDENT
606
- .INDENT 0.0
607
- .TP
608
- .B SIERRA_NODEFILE
609
- Points to a file suitable for passing to \fBparallel\fP via
610
- \fB\-\-sshloginfile\fP\&. See \fBparallel\fP docs for general
611
- content/formatting requirements.
612
- .sp
613
- Used by SIERRA to configure experiments during stage 1,2; if it is not
614
- defined and \fB\-\-nodefile\fP is not passed SIERRA will throw an error.
615
- .UNINDENT
616
- .INDENT 0.0
617
- .TP
618
- .B PARALLEL
619
- When running on some execution environments, such as \fBhpc.slurm,hpc.pbs\fP,
620
- any and all environment variables needed by your \fI\%Project\fP should be
621
- exported via the \fBPARALLEL\fP environment variable before invoking SIERRA,
622
- because GNU parallel does not export the environment of the node it is
623
- launched from to slave nodes (or even on the local machine). Something like:
624
- .INDENT 7.0
625
- .INDENT 3.5
626
- .sp
627
- .nf
628
- .ft C
629
- export PARALLEL=\(dq\-\-workdir . \e
630
- \-\-env PATH \e
631
- \-\-env LD_LIBRARY_PATH \e
632
- \-\-env LOADEDMODULES \e
633
- \-\-env _LMFILES_ \e
634
- \-\-env MODULE_VERSION \e
635
- \-\-env MODULEPATH \e
636
- \-\-env MODULEVERSION_STACK
637
- \-\-env MODULESHOME \e
638
- \-\-env OMP_DYNAMICS \e
639
- \-\-env OMP_MAX_ACTIVE_LEVELS \e
640
- \-\-env OMP_NESTED \e
641
- \-\-env OMP_NUM_THREADS \e
642
- \-\-env OMP_SCHEDULE \e
643
- \-\-env OMP_STACKSIZE \e
644
- \-\-env OMP_THREAD_LIMIT \e
645
- \-\-env OMP_WAIT_POLICY \e
646
- \-\-env SIERRA_ARCH \e
647
- \-\-env SIERRA_PLUGIN_PATH\(dq
648
- .ft P
649
- .fi
650
- .UNINDENT
651
- .UNINDENT
652
- .sp
653
- Don\(aqt forget to include \fI\%ARGOS_PLUGIN_PATH\fP,
654
- \fI\%ROS_PACKAGE_PATH\fP, etc., depending on your chosen \fI\%Platform\fP\&.
655
- .UNINDENT
656
- .INDENT 0.0
657
- .TP
658
- .B PARALLEL_SHELL
659
- SIERRA sets up the \fI\%Experiment\fP execution environments by running one
660
- or more shell commands in a subprocess (treated as a \fBshell\fP, which means
661
- that \fBparallel\fP can\(aqt determine \fBSHELL\fP, and therefore defaults to
662
- \fB/bin/sh\fP, which is not what users expect. SIERRA explicitly sets
663
- \fBPARALLEL_SHELL\fP to the result of \fBshutil.which(\(aqbash\(aq)\fP in keeping with
664
- the Principle Of Least Surprise.
665
- .UNINDENT
666
- .INDENT 0.0
667
- .TP
668
- .B ROS_PACKAGE_PATH
669
- The list of directories which defines where ROS will search for
670
- packages. SIERRA does \fInot\fP modify this variable, so it needs to be setup
671
- properly prior to invoking SIERRA (i.e., sourcing the proper \fBsetup.bash\fP
672
- script).
673
- .UNINDENT
674
- .SH CONFIGURABLE SIERRA VARIABLES
675
- .sp
676
- Non\-\fI\%Batch Criteria\fP variables which you can use to configure
677
- simulations. All batch criteria are variables, but not all variables are batch
678
- criteria.
679
- .INDENT 0.0
680
- .IP \(bu 2
681
- \fI\%Experiment Setup\fP
682
- .UNINDENT
683
- .SS Experiment Setup
684
- .sp
685
- Configure \fI\%Experiment\fP time: length, controller cadence (\fI\%Tick\fP
686
- duration/timestep), and how many datapoints to capture per \fI\%Experimental
687
- Run\fP\&.
688
- .SS Cmdline Syntax
689
- .sp
690
- \fBT{duration}[.K{ticks_per_sec}][.N{n_datapoints}\fP
691
- .INDENT 0.0
692
- .IP \(bu 2
693
- \fBduration\fP \- Duration of timesteps in \fIseconds\fP (not timesteps).
694
- .IP \(bu 2
695
- \fBticks_per_sec\fP \- How many times each controller will be run per second.
696
- .IP \(bu 2
697
- \fBn_datapoints\fP \- # datapoints per \fI\%Experimental Run\fP to be captured;
698
- the capture interval (if configurable) should be adjusted in
699
- \fI\%Project\fP\-derived class from the platform \(dqExperiment setup class\(dq
700
- (e.g., \fBsierra.plugins.platform.argos.variables.exp_setup.ExpSetup\fP for
701
- \fI\%ARGoS\fP).
702
- .UNINDENT
703
- .SS Examples
704
- .INDENT 0.0
705
- .IP \(bu 2
706
- \fBexp_setup.T1000\fP: Experimental run will be 1,000 seconds long and have
707
- 1,000*5=5,000 timesteps, with default (50) # datapoints.
708
- .IP \(bu 2
709
- \fBexp_setup.T2000.N100\fP: Experimental run will be 2,000 seconds long and have
710
- 2,000*5=10,000 timesteps, with 100 datapoints (1 every 20 seconds/100
711
- timesteps).
712
- .IP \(bu 2
713
- \fBexp_setup.T10000.K10\fP: Experimental run will be 10,000 seconds long, and
714
- have 10,000*10=100,000 timesteps with default (50) # datapoints.
715
- .IP \(bu 2
716
- \fBexp_setup.T10000.K10.N100\fP: Experimental run will be 10,000 seconds long,
717
- and have 10,000*10=100,000 timesteps, with 100 datapoints (one every 100
718
- seconds/1,000 timesteps).
719
- .UNINDENT
720
- .SH AUTHOR
721
- John Harwell
722
- .SH COPYRIGHT
723
- 2022, John Harwell
724
- .\" Generated by docutils manpage writer.
725
- .