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,358 +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-PLATFORMS" "7" "Apr 01, 2024" "1.3.6" "SIERRA"
31
- .SH NAME
32
- sierra-platforms \- The platforms SIERRA supports, and platform-specific Batch Criteria.
33
- .SH ARGOS PLATFORM
34
- .sp
35
- This platform can be selected via \fB\-\-platform=platform.argos\fP\&.
36
- .sp
37
- This is the default platform on which SIERRA will run experiments, and uses the
38
- \fI\%ARGoS\fP simulator. It cannot be used to run experiments on real robots.
39
- .SS Batch Criteria
40
- .sp
41
- See \fI\%Batch Criteria\fP for a thorough explanation of batch criteria, but the
42
- short version is that they are the core of SIERRA\-\-how to get it to DO stuff for
43
- you. The following batch criteria are defined which can be used with any
44
- \fI\%Project\fP\&.
45
- .INDENT 0.0
46
- .IP \(bu 2
47
- \fI\%Population Size\fP
48
- .IP \(bu 2
49
- \fI\%Constant Population Density\fP
50
- .IP \(bu 2
51
- \fI\%Variable Population Density\fP
52
- .UNINDENT
53
- .SS Population Size
54
- .sp
55
- Changing the population size to investigate behavior across scales within a
56
- static arena size (i.e., variable density). This criteria is functionally
57
- identical to \fI\%Variable Population Density\fP in
58
- terms of changes to the template XML file, but has a different semantic meaning
59
- which can make generated deliverables more immediately understandable, depending
60
- on the context of what is being investigated (e.g., population size
61
- vs. population density on the X axis).
62
- .SS Cmdline Syntax
63
- .sp
64
- \fBpopulation_size.{model}{N}[.C{cardinality}]\fP
65
- .INDENT 0.0
66
- .IP \(bu 2
67
- \fBmodel\fP \- The population size model to use.
68
- .INDENT 2.0
69
- .IP \(bu 2
70
- \fBLog\fP \- Population sizes for each experiment are distributed 1...N by
71
- powers of 2.
72
- .IP \(bu 2
73
- \fBLinear\fP \- Population sizes for each experiment are distributed linearly
74
- between 1...N, split evenly into 10 different sizes.
75
- .UNINDENT
76
- .IP \(bu 2
77
- \fBN\fP \- The maximum population size.
78
- .IP \(bu 2
79
- \fBcardinality\fP \- If the model is \fBLinear\fP, then this can be used
80
- to specify how many experiments to generate; i.e, it defines the \fIsize\fP of the
81
- linear increment. Defaults to 10 if omitted.
82
- .UNINDENT
83
- .SS Examples
84
- .INDENT 0.0
85
- .IP \(bu 2
86
- \fBpopulation_size.Log1024\fP: Static population sizes 1...1024
87
- .IP \(bu 2
88
- \fBpopulation_size.Linear1000\fP: Static population sizes 100...1000 (10)
89
- .IP \(bu 2
90
- \fBpopulation_size.Linear3.C3\fP: Static population sizes 1...3 (3)
91
- .IP \(bu 2
92
- \fBpopulation_size.Linear10.C2\fP: Static population sizes 5...10 (2)
93
- .UNINDENT
94
- .SS Constant Population Density
95
- .sp
96
- Changing the population size and arena size together to maintain the same population
97
- size/arena size ratio to investigate behavior across scales.
98
- .sp
99
- \fBNOTE:\fP
100
- .INDENT 0.0
101
- .INDENT 3.5
102
- This criteria is for \fIconstant\fP density of robots as population sizes
103
- increase. For \fIvariable\fP robot density, use
104
- \fI\%Population Size\fP or
105
- \fI\%Variable Population Density\fP\&.
106
- .UNINDENT
107
- .UNINDENT
108
- .SS Cmdline Syntax
109
- .sp
110
- \fBpopulation_constant_density.{density}.I{Arena Size Increment}.C{cardinality}\fP
111
- .INDENT 0.0
112
- .IP \(bu 2
113
- \fBdensity\fP \- <integer>p<integer> (i.e. 5p0 for 5.0)
114
- .IP \(bu 2
115
- \fBArena Size Increment\fP \- Size in meters that the X and Y dimensions should
116
- increase by in between experiments. Larger values here will result in larger
117
- arenas and more robots being simulated at a given density. Must be an integer.
118
- .IP \(bu 2
119
- \fBcardinality\fP How many experiments should be generated?
120
- .UNINDENT
121
- .SS Examples
122
- .INDENT 0.0
123
- .IP \(bu 2
124
- \fBpopulation_constant_density.1p0.I16.C4\fP: Constant density of 1.0. Arena
125
- dimensions will increase by 16 in both X and Y for each experiment in the
126
- batch (4 total).
127
- .UNINDENT
128
- .SS Variable Population Density
129
- .sp
130
- Changing the population size to investigate behavior across scales within a
131
- static arena size. This criteria is functionally identical to
132
- \fI\%Population Size\fP in terms of changes to the
133
- template XML file, but has a different semantic meaning which can make generated
134
- deliverables more immediately understandable, depending on the context of what
135
- is being investigated (e.g., population density vs. population size on the X
136
- axis).
137
- .sp
138
- \fBNOTE:\fP
139
- .INDENT 0.0
140
- .INDENT 3.5
141
- This criteria is for \fIvariable\fP density of robots as population sizes
142
- increase. For \fIconstant\fP robot density, use
143
- \fI\%Constant Population Density\fP\&.
144
- .UNINDENT
145
- .UNINDENT
146
- .SS Cmdline Syntax
147
- .sp
148
- \fBpopulation_variable_density.{density_min}.{density_max}.C{cardinality}\fP
149
- .INDENT 0.0
150
- .IP \(bu 2
151
- \fBdensity_min\fP \- <integer>p<integer> (i.e. 5p0 for 5.0)
152
- .IP \(bu 2
153
- \fBdensity_max\fP \- <integer>p<integer> (i.e. 5p0 for 5.0)
154
- .IP \(bu 2
155
- \fBcardinality\fP How many experiments should be generated? Densities for each
156
- experiment will be linearly spaced between the min and max densities.
157
- .UNINDENT
158
- .SS Examples
159
- .INDENT 0.0
160
- .IP \(bu 2
161
- \fBpopulation_variable_density.1p0.4p0.C4\fP: Densities of 1.0,2.0,3.0,4.0.
162
- .UNINDENT
163
- .SS Environment Variables
164
- .sp
165
- This platform respects \fI\%SIERRA_ARCH\fP\&.
166
- .SS Random Seeding For Reproducibility
167
- .sp
168
- ARGoS provides its own random seed mechanism under \fB<experiment>\fP which SIERRA
169
- uses to seed each experiment. \fI\%Project\fP code should use this mechanism or
170
- a similar random seed generator manager seeded by the same value so that
171
- experiments can be reproduced exactly. By default SIERRA does not overwrite its
172
- generated random seeds for each experiment once generated; you can override with
173
- \fB\-\-no\-preserve\-seeds\fP\&. See ln\-sierra\-tutorials\-project\-template\-input\-file and
174
- \fI\%Experimental Definition Requirements\fP for details on the format of the provided seed.
175
- .SH ROS1+GAZEBO PLATFORM
176
- .sp
177
- This platform can be selected via \fB\-\-platform=platform.ros1gazebo\fP\&.
178
- .sp
179
- This is the platform on which SIERRA will run experiments using the
180
- \fI\%Gazebo\fP simulator and \fI\%ROS1\fP\&. It cannot be used to run
181
- experiments on real robots. To use this platform, you must setup the
182
- \fI\%SIERRA ROSBridge\fP\&.
183
- .sp
184
- Worlds within ROS1+Gazebo are infinite from the perspective of physics engines,
185
- even though a finite area shows up in rendering. So, to place robots randomly in
186
- the arena at the start of simulation across \fI\%Experimental Runs\fP (if you want to do that) \(dqdimensions\(dq for a given world must
187
- be specified as part of the \fB\-\-scenario\fP argument. If you don\(aqt specify
188
- dimensions as part of the \fB\-\-scenario\fP argument, then you need to supply a
189
- list of valid robot positions via \fB\-\-robot\-positions\fP which SIERRA will choose
190
- from randomly for each robot.
191
- .SS Batch Criteria
192
- .sp
193
- See \fI\%Batch Criteria\fP for a thorough explanation of batch criteria, but the
194
- short version is that they are the core of SIERRA\-\-how to get it to DO stuff for
195
- you. The following batch criteria are defined which can be used with any
196
- \fI\%Project\fP\&.
197
- .INDENT 0.0
198
- .IP \(bu 2
199
- \fI\%System Population Size\fP
200
- .UNINDENT
201
- .SS System Population Size
202
- .sp
203
- Changing the system size to investigate behavior across scales within a static
204
- arena size (i.e., variable density). Systems are homogeneous.
205
- .SS Cmdline Syntax
206
- .sp
207
- \fBpopulation_size.{model}{N}[.C{cardinality}]\fP
208
- .INDENT 0.0
209
- .IP \(bu 2
210
- \fBmodel\fP \- The population size model to use.
211
- .INDENT 2.0
212
- .IP \(bu 2
213
- \fBLog\fP \- Population sizes for each experiment are distributed 1...N by
214
- powers of 2.
215
- .IP \(bu 2
216
- \fBLinear\fP \- Population sizes for each experiment are distributed linearly
217
- between 1...N, split evenly into 10 different sizes.
218
- .UNINDENT
219
- .IP \(bu 2
220
- \fBN\fP \- The maximum population size.
221
- .IP \(bu 2
222
- \fBcardinality\fP \- If the model is \fBLinear\fP, then this can be used
223
- to specify how many experiments to generate; i.e, it defines the \fIsize\fP of the
224
- linear increment. Defaults to 10 if omitted.
225
- .UNINDENT
226
- .SS Examples
227
- .INDENT 0.0
228
- .IP \(bu 2
229
- \fBpopulation_size.Log1024\fP: Static population sizes 1...1024
230
- .IP \(bu 2
231
- \fBpopulation_size.Linear1000\fP: Static population sizes 100...1000 (10)
232
- .IP \(bu 2
233
- \fBpopulation_size.Linear3.C3\fP: Static population sizes 1...3 (3)
234
- .IP \(bu 2
235
- \fBpopulation_size.Linear10.C2\fP: Static population sizes 5...10 (2)
236
- .UNINDENT
237
- .SS Environment Variables
238
- .sp
239
- This platform ignores \fI\%SIERRA_ARCH\fP\&.
240
- .SS Random Seeding For Reproducibility
241
- .sp
242
- ROS1+Gazebo do not provide a random number generator manager, but SIERRA
243
- provides random seeds to each \fI\%Experimental Run\fP which \fI\%Project\fP
244
- code should use to manage random number generation, if needed, to maximize
245
- reproducability. See ln\-sierra\-tutorials\-project\-template\-input\-file and
246
- \fI\%Experimental Definition Requirements\fP for details on the format of the provided seed. By default
247
- SIERRA does not overwrite its generated random seeds for each experiment once
248
- generated; you can override with \fB\-\-no\-preserve\-seeds\fP\&.
249
- .SH ROS1+ROBOT PLATFORM
250
- .sp
251
- This platform can be selected via \fB\-\-platform=platform.ros1robot\fP\&.
252
- .sp
253
- This is the platform on which SIERRA will run experiments using \fI\%ROS1\fP on
254
- a real robot of your choice. To use this platform, you must setup the
255
- \fI\%SIERRA ROSBridge\fP\&. This is a generic
256
- platform meant to work with most real robots which \fI\%ROS1\fP supports, and as
257
- a starting point to derive more specific platform configuration for a given
258
- robot (if needed). For all execution environments using this platform (see
259
- \fI\%Real Robot Execution Environment Plugins\fP for examples), SIERRA will run experiments
260
- spread across multiple robots using GNU parallel.
261
- .sp
262
- SIERRA designates the host machine as the ROS master, and allows you to
263
- (optionally) specify configuration for running one or more nodes on it in the
264
- \fB\-\-template\-input\-file\fP to gather data from robots (see below). This is
265
- helpful in some situations (e.g., simple robots which can\(aqt manage network
266
- mounted filesystems).
267
- .SS Batch Criteria
268
- .sp
269
- See \fI\%Batch Criteria\fP for a thorough explanation of batch criteria, but the
270
- short version is that they are the core of SIERRA\-\-how to get it to DO stuff for
271
- you. The following batch criteria are defined which can be used with any
272
- \fI\%Project\fP\&.
273
- .INDENT 0.0
274
- .IP \(bu 2
275
- \fI\%System Population Size\fP
276
- .UNINDENT
277
- .SS System Population Size
278
- .sp
279
- Changing the system size to investigate behavior across scales within a static
280
- arena size (i.e., variable density). Systems are homogeneous.
281
- .sp
282
- \fBpopulation_size.{model}{N}[.C{cardinality}]\fP
283
- .INDENT 0.0
284
- .IP \(bu 2
285
- \fBmodel\fP \- The population size model to use.
286
- .INDENT 2.0
287
- .IP \(bu 2
288
- \fBLog\fP \- Population sizes for each experiment are distributed 1...N by
289
- powers of 2.
290
- .IP \(bu 2
291
- \fBLinear\fP \- Population sizes for each experiment are distributed linearly
292
- between 1...N, split evenly into 10 different sizes.
293
- .UNINDENT
294
- .IP \(bu 2
295
- \fBN\fP \- The maximum population size.
296
- .IP \(bu 2
297
- \fBcardinality\fP \- If the model is \fBLinear\fP, then this can be used
298
- to specify how many experiments to generate; i.e, it defines the \fIsize\fP of the
299
- linear increment. Defaults to 10 if omitted.
300
- .UNINDENT
301
- .SS Examples
302
- .INDENT 0.0
303
- .IP \(bu 2
304
- \fBpopulation_size.Log1024\fP: Static population sizes 1...1024
305
- .IP \(bu 2
306
- \fBpopulation_size.Linear1000\fP: Static population sizes 100...1000 (10)
307
- .IP \(bu 2
308
- \fBpopulation_size.Linear3.C3\fP: Static population sizes 1...3 (3)
309
- .IP \(bu 2
310
- \fBpopulation_size.Linear10.C2\fP: Static population sizes 5...10 (2)
311
- .UNINDENT
312
- .SS Environment Variables
313
- .sp
314
- This platform ignores \fI\%SIERRA_ARCH\fP\&.
315
- .SS Random Seeding For Reproducibility
316
- .sp
317
- ROS do not provide a random number generator manager, but SIERRA provides random
318
- seeds to each \fI\%Experimental Run\fP which \fI\%Project\fP code should use to
319
- manage random number generation, if needed, to maximize reproducability. See
320
- ln\-sierra\-tutorials\-project\-template\-input\-file and
321
- \fI\%Experimental Definition Requirements\fP for details on the format of the provided seed. By
322
- default SIERRA does not overwrite its generated random seeds for each experiment
323
- once generated; you can override with \fB\-\-no\-preserve\-seeds\fP\&.
324
- .SS Real Robot Considerations
325
- .sp
326
- SIERRA makes the following assumptions about the robots it is allocated each
327
- invocation:
328
- .INDENT 0.0
329
- .IP \(bu 2
330
- No robots will die/run out of battery during an \fI\%Experimental Run\fP\&.
331
- .IP \(bu 2
332
- Password\-less ssh is setup to each robot SIERRA is handed to use (can be as a
333
- different user than the one which is invoking SIERRA on the host machine).
334
- .IP \(bu 2
335
- The robots have static IP addresses, or are always allocated an IP from a
336
- known set so you can pass the set of IPs to SIERRA to use. This set of IP
337
- address/hostnames can be explicitly passed to SIERRA via cmdline (see
338
- \fI\%Command Line Interface\fP) or implicitly passed via
339
- \fI\%SIERRA_NODEFILE\fP\&.
340
- .IP \(bu 2
341
- The ROS environment is setup either in the .bashrc for the robot login user,
342
- or the necessary bits are in a script which SIERRA sources on login to each
343
- robot (this is a configuration parameter\-\-see
344
- ln\-sierra\-tutorials\-project\-main\-config).
345
- .IP \(bu 2
346
- ROS does not provide a way to say \(dqRun this experiment for X seconds\(dq, so
347
- SIERRA inserts its own timekeeper node into each robot which will exit after X
348
- seconds and take the roslaunch process with it on each robot and/or the master
349
- node.
350
- .UNINDENT
351
- .sp
352
- See also \fI\%ROS1+Robot Platform\fP\&.
353
- .SH AUTHOR
354
- John Harwell
355
- .SH COPYRIGHT
356
- 2022, John Harwell
357
- .\" Generated by docutils manpage writer.
358
- .