bluer-ugv 7.262.1__py3-none-any.whl → 7.291.1__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 (34) hide show
  1. bluer_ugv/README/build.py +32 -26
  2. bluer_ugv/README/releases.py +8 -0
  3. bluer_ugv/README/ugvs/comparison/build.py +135 -0
  4. bluer_ugv/README/ugvs/comparison/features/DYI.py +8 -0
  5. bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
  6. bluer_ugv/README/ugvs/comparison/features/classes.py +138 -0
  7. bluer_ugv/README/ugvs/comparison/features/concealment.py +8 -0
  8. bluer_ugv/README/ugvs/comparison/features/control.py +30 -0
  9. bluer_ugv/README/ugvs/comparison/features/cost.py +30 -0
  10. bluer_ugv/README/ugvs/comparison/features/db.py +36 -0
  11. bluer_ugv/README/ugvs/comparison/features/payload.py +21 -0
  12. bluer_ugv/README/ugvs/comparison/features/ps.py +8 -0
  13. bluer_ugv/README/ugvs/comparison/features/range.py +14 -0
  14. bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +8 -0
  15. bluer_ugv/README/ugvs/comparison/features/size.py +32 -0
  16. bluer_ugv/README/ugvs/comparison/features/speed.py +10 -0
  17. bluer_ugv/README/ugvs/comparison/features/swarm.py +8 -0
  18. bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +8 -0
  19. bluer_ugv/README/ugvs/comparison/references/__init__.py +1 -0
  20. bluer_ugv/README/ugvs/comparison/references/classes.py +27 -0
  21. bluer_ugv/README/ugvs/comparison/references/db.py +344 -0
  22. bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
  23. bluer_ugv/README/ugvs/comparison/ugvs/classes.py +118 -0
  24. bluer_ugv/README/ugvs/comparison/ugvs/db.py +411 -0
  25. bluer_ugv/__init__.py +1 -1
  26. bluer_ugv/assets/comparison.html +33 -0
  27. {bluer_ugv-7.262.1.dist-info → bluer_ugv-7.291.1.dist-info}/METADATA +2 -2
  28. {bluer_ugv-7.262.1.dist-info → bluer_ugv-7.291.1.dist-info}/RECORD +31 -10
  29. bluer_ugv/README/ugvs/comparison/db.py +0 -15
  30. bluer_ugv/README/ugvs/comparison/features.py +0 -55
  31. bluer_ugv/README/ugvs/comparison/ugvs.py +0 -43
  32. {bluer_ugv-7.262.1.dist-info → bluer_ugv-7.291.1.dist-info}/WHEEL +0 -0
  33. {bluer_ugv-7.262.1.dist-info → bluer_ugv-7.291.1.dist-info}/licenses/LICENSE +0 -0
  34. {bluer_ugv-7.262.1.dist-info → bluer_ugv-7.291.1.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,411 @@
1
+ from bluer_ugv.README.ugvs.comparison.features.control import UGV_Control
2
+ from bluer_ugv.README.ugvs.comparison.features.cost import UGV_Cost
3
+ from bluer_ugv.README.ugvs.comparison.features.size import UGV_Size
4
+ from bluer_ugv.README.ugvs.comparison.ugvs.classes import List_of_UGVs
5
+ from bluer_ugv.README.ugvs.comparison.features.range import unlimited_range
6
+
7
+ list_of_ugvs = List_of_UGVs()
8
+
9
+ list_of_ugvs.add(
10
+ nickname="arzhang",
11
+ name="محصول ما",
12
+ features={
13
+ "concealment": True,
14
+ "control": UGV_Control.AI,
15
+ "cost": UGV_Cost.LOW,
16
+ "payload": 40,
17
+ "range": unlimited_range,
18
+ "ps": True,
19
+ "sanction_proof": True,
20
+ "size": UGV_Size.SMALL,
21
+ "speed": 4,
22
+ "swarm": True,
23
+ "uv_delivery": True,
24
+ },
25
+ )
26
+
27
+ list_of_ugvs.add(
28
+ nickname="nazir",
29
+ name="ربات موشک‌انداز نذیر",
30
+ features={
31
+ "control": UGV_Control.RC,
32
+ "cost": UGV_Cost.MEDIUM,
33
+ "payload": 700,
34
+ "range": 4,
35
+ "size": UGV_Size.MEDIUM,
36
+ },
37
+ )
38
+
39
+ list_of_ugvs.add(
40
+ nickname="heydar",
41
+ name="ربات حیدر",
42
+ features={
43
+ "concealment": True,
44
+ "control": UGV_Control.AI,
45
+ "cost": UGV_Cost.LOW,
46
+ "payload": 40,
47
+ "range": 10,
48
+ "size": UGV_Size.SMALL,
49
+ "speed": 60,
50
+ "swarm": True,
51
+ },
52
+ deficiencies=[
53
+ "انتقال قدرت: زنجیر",
54
+ ],
55
+ )
56
+
57
+
58
+ list_of_ugvs.add(
59
+ nickname="karakal",
60
+ name="ربات جنگجوی هوشمند کاراکال",
61
+ features={
62
+ "control": UGV_Control.AI,
63
+ "cost": UGV_Cost.MEDIUM,
64
+ "size": UGV_Size.MEDIUM,
65
+ "speed": 30,
66
+ "range": 0.5,
67
+ },
68
+ )
69
+
70
+ list_of_ugvs.add(
71
+ nickname="qasem",
72
+ name="ربات قاسم",
73
+ features={
74
+ "cost": UGV_Cost.MEDIUM,
75
+ "size": UGV_Size.MEDIUM,
76
+ "uv_delivery": True,
77
+ },
78
+ deficiencies=[],
79
+ )
80
+
81
+ list_of_ugvs.add(
82
+ nickname="arya",
83
+ name="ربات آریا",
84
+ features={
85
+ "control": UGV_Control.AI,
86
+ "cost": UGV_Cost.MEDIUM,
87
+ "size": UGV_Size.MEDIUM,
88
+ "speed": 50,
89
+ "uv_delivery": True,
90
+ },
91
+ deficiencies=[],
92
+ )
93
+
94
+ list_of_ugvs.add(
95
+ nickname="sepah",
96
+ name="ربات جنگ میدانی سپاه",
97
+ features={},
98
+ deficiencies=[],
99
+ )
100
+
101
+
102
+ list_of_ugvs.add(
103
+ nickname="raad1",
104
+ name="متلاشی‌کننده بمب و تله انفجاری رعد ۱",
105
+ features={
106
+ "control": UGV_Control.RC,
107
+ "cost": UGV_Cost.MEDIUM,
108
+ "size": UGV_Size.SMALL,
109
+ },
110
+ deficiencies=[],
111
+ )
112
+
113
+ list_of_ugvs.add(
114
+ nickname="uran_6",
115
+ name="Uran-6",
116
+ features={
117
+ "control": UGV_Control.AI,
118
+ "cost": UGV_Cost.HIGH,
119
+ "range": 1,
120
+ "size": UGV_Size.LARGE,
121
+ "speed": 5,
122
+ },
123
+ deficiencies=[],
124
+ )
125
+
126
+ list_of_ugvs.add(
127
+ nickname="uran_9",
128
+ name="Uran-9",
129
+ features={
130
+ "control": UGV_Control.AI,
131
+ "cost": UGV_Cost.HIGH,
132
+ "range": 1,
133
+ "size": UGV_Size.LARGE,
134
+ "speed": 133,
135
+ },
136
+ deficiencies=[],
137
+ )
138
+
139
+ list_of_ugvs.add(
140
+ nickname="uran_14",
141
+ name="Uran-14",
142
+ features={
143
+ "control": UGV_Control.AI,
144
+ "cost": UGV_Cost.HIGH,
145
+ "payload": 2700,
146
+ "range": 1.5,
147
+ "size": UGV_Size.LARGE,
148
+ "speed": 10,
149
+ },
150
+ deficiencies=[],
151
+ )
152
+
153
+ list_of_ugvs.add(
154
+ nickname="themis_9",
155
+ name="THeMIS-9",
156
+ features={
157
+ "control": UGV_Control.AI,
158
+ "cost": UGV_Cost.HIGH,
159
+ "payload": 1630,
160
+ "range": 1.5,
161
+ "size": UGV_Size.LARGE,
162
+ "speed": 20,
163
+ },
164
+ deficiencies=[],
165
+ )
166
+
167
+ list_of_ugvs.add(
168
+ nickname="type_x",
169
+ name="Type-X",
170
+ features={
171
+ "control": UGV_Control.AI,
172
+ "cost": UGV_Cost.HIGH,
173
+ "payload": 4100,
174
+ "size": UGV_Size.LARGE,
175
+ "speed": 80,
176
+ },
177
+ deficiencies=[],
178
+ )
179
+
180
+
181
+ list_of_ugvs.add(
182
+ nickname="centaur",
183
+ name="Centaur",
184
+ features={
185
+ "control": UGV_Control.RC,
186
+ "cost": UGV_Cost.HIGH,
187
+ "payload": 14.5,
188
+ "range": 0.8,
189
+ "size": UGV_Size.MEDIUM,
190
+ "speed": 4,
191
+ },
192
+ deficiencies=[],
193
+ )
194
+
195
+
196
+ list_of_ugvs.add(
197
+ nickname="xm1219",
198
+ name="XM1219",
199
+ features={
200
+ "control": UGV_Control.RC,
201
+ "cost": UGV_Cost.HIGH,
202
+ "size": UGV_Size.LARGE,
203
+ },
204
+ deficiencies=[],
205
+ )
206
+
207
+ list_of_ugvs.add(
208
+ nickname="talon",
209
+ name="Foster-Miller TALON",
210
+ features={
211
+ "control": UGV_Control.RC,
212
+ "cost": UGV_Cost.HIGH,
213
+ "range": 1.2,
214
+ "size": UGV_Size.MEDIUM,
215
+ },
216
+ deficiencies=[],
217
+ )
218
+
219
+ list_of_ugvs.add(
220
+ nickname="gladiator",
221
+ name="Gladiator TUGV",
222
+ features={
223
+ "control": UGV_Control.RC,
224
+ "cost": UGV_Cost.HIGH,
225
+ "size": UGV_Size.LARGE,
226
+ },
227
+ deficiencies=[],
228
+ )
229
+
230
+ list_of_ugvs.add(
231
+ nickname="ukap",
232
+ name="UKAP",
233
+ features={
234
+ "control": UGV_Control.RC,
235
+ "cost": UGV_Cost.HIGH,
236
+ "size": UGV_Size.LARGE,
237
+ },
238
+ deficiencies=[],
239
+ )
240
+
241
+ list_of_ugvs.add(
242
+ nickname="ripsaw",
243
+ name="Ripsaw",
244
+ features={
245
+ "control": UGV_Control.AI,
246
+ "cost": UGV_Cost.HIGH,
247
+ "payload": 910,
248
+ "size": UGV_Size.LARGE,
249
+ "speed": 105,
250
+ },
251
+ deficiencies=[],
252
+ )
253
+
254
+ list_of_ugvs.add(
255
+ nickname="teodor",
256
+ name="tEODor",
257
+ features={
258
+ "control": UGV_Control.RC,
259
+ "cost": UGV_Cost.HIGH,
260
+ "payload": 100,
261
+ "size": UGV_Size.MEDIUM,
262
+ },
263
+ deficiencies=[],
264
+ )
265
+
266
+
267
+ list_of_ugvs.add(
268
+ nickname="black_knight",
269
+ name="Black Knight",
270
+ features={
271
+ "control": UGV_Control.AI,
272
+ "cost": UGV_Cost.HIGH,
273
+ "size": UGV_Size.LARGE,
274
+ "speed": 77,
275
+ },
276
+ deficiencies=[],
277
+ )
278
+
279
+ list_of_ugvs.add(
280
+ nickname="guardium",
281
+ name="Guardium",
282
+ features={
283
+ "control": UGV_Control.AI,
284
+ "cost": UGV_Cost.HIGH,
285
+ "size": UGV_Size.LARGE,
286
+ },
287
+ deficiencies=[],
288
+ )
289
+
290
+ list_of_ugvs.add(
291
+ nickname="milica",
292
+ name="Milos & Milica",
293
+ features={
294
+ "control": UGV_Control.RC,
295
+ "cost": UGV_Cost.MEDIUM,
296
+ "payload": 100,
297
+ "range": 3,
298
+ "size": UGV_Size.LARGE,
299
+ "speed": 12.5,
300
+ },
301
+ deficiencies=[],
302
+ )
303
+
304
+ list_of_ugvs.add(
305
+ nickname="taifun_m",
306
+ name="Taifun-M",
307
+ features={
308
+ "control": UGV_Control.RC,
309
+ "cost": UGV_Cost.HIGH,
310
+ "size": UGV_Size.LARGE,
311
+ "uv_delivery": True,
312
+ },
313
+ deficiencies=[],
314
+ )
315
+
316
+
317
+ list_of_ugvs.add(
318
+ nickname="jackal",
319
+ name="Jackal",
320
+ features={
321
+ "control": UGV_Control.AI,
322
+ "cost": UGV_Cost.HIGH,
323
+ "payload": 20,
324
+ "size": UGV_Size.MEDIUM,
325
+ "speed": 7.2,
326
+ },
327
+ deficiencies=[],
328
+ )
329
+
330
+ list_of_ugvs.add(
331
+ nickname="avantguard",
332
+ name="AvantGuard UGCV",
333
+ features={
334
+ "control": UGV_Control.AI,
335
+ "cost": UGV_Cost.HIGH,
336
+ "size": UGV_Size.MEDIUM,
337
+ "speed": 20,
338
+ },
339
+ deficiencies=[],
340
+ )
341
+
342
+
343
+ list_of_ugvs.add(
344
+ nickname="sr-lambda",
345
+ name="SIM-RACAR-Lambda",
346
+ features={
347
+ "control": UGV_Control.AI,
348
+ "cost": UGV_Cost.HIGH,
349
+ "payload": 45,
350
+ "range": 1,
351
+ "size": UGV_Size.LARGE,
352
+ },
353
+ deficiencies=[],
354
+ )
355
+
356
+ list_of_ugvs.add(
357
+ nickname="sharp_claw_1",
358
+ name="Sharl Claw 1",
359
+ features={
360
+ "control": UGV_Control.RC,
361
+ "cost": UGV_Cost.HIGH,
362
+ "range": 6,
363
+ "size": UGV_Size.LARGE,
364
+ "speed": 9,
365
+ "uv_delivery": False,
366
+ },
367
+ deficiencies=[],
368
+ )
369
+
370
+ list_of_ugvs.add(
371
+ nickname="sharp_claw_2",
372
+ name="Sharl Claw 2",
373
+ features={
374
+ "control": UGV_Control.RC,
375
+ "cost": UGV_Cost.HIGH,
376
+ "payload": 120,
377
+ "range": 50,
378
+ "size": UGV_Size.LARGE,
379
+ "speed": 30,
380
+ "uv_delivery": True,
381
+ },
382
+ deficiencies=[],
383
+ )
384
+
385
+ list_of_ugvs.add(
386
+ nickname="robattle",
387
+ name="Robattle",
388
+ features={
389
+ "control": UGV_Control.AI,
390
+ "cost": UGV_Cost.HIGH,
391
+ "payload": 3000,
392
+ "size": UGV_Size.LARGE,
393
+ },
394
+ deficiencies=[],
395
+ )
396
+
397
+ list_of_ugvs.add(
398
+ nickname="template",
399
+ name="template",
400
+ features={
401
+ "control": ...,
402
+ "cost": ...,
403
+ "payload": ...,
404
+ "range": ...,
405
+ "size": ...,
406
+ "speed": ...,
407
+ "swarm": ...,
408
+ "uv_delivery": ...,
409
+ },
410
+ deficiencies=[],
411
+ )
bluer_ugv/__init__.py CHANGED
@@ -4,7 +4,7 @@ ICON = "🐬"
4
4
 
5
5
  DESCRIPTION = f"{ICON} AI x UGV."
6
6
 
7
- VERSION = "7.262.1"
7
+ VERSION = "7.291.1"
8
8
 
9
9
  REPO_NAME = "bluer-ugv"
10
10
 
@@ -0,0 +1,33 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <style>
8
+ table {
9
+ border-collapse: collapse;
10
+ width: 60%;
11
+ margin: 50px auto;
12
+ }
13
+
14
+ th,
15
+ td {
16
+ border: 1px solid #888;
17
+ padding: 10px;
18
+ text-align: center;
19
+ }
20
+
21
+ th {
22
+ background-color: #f0f0f0;
23
+ }
24
+ </style>
25
+ </head>
26
+
27
+ <body>
28
+ <table dir="rtl" style="text-align:right;">
29
+ contents:::
30
+ </table>
31
+ </body>
32
+
33
+ </html>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bluer_ugv
3
- Version: 7.262.1
3
+ Version: 7.291.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -64,7 +64,7 @@ pip install bluer_ugv
64
64
 
65
65
  [![pylint](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/bluer-ugv.svg)](https://pypi.org/project/bluer-ugv/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/bluer-ugv)](https://pypistats.org/packages/bluer-ugv)
66
66
 
67
- built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.262.1`](https://github.com/kamangir/bluer-ugv).
67
+ built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.291.1`](https://github.com/kamangir/bluer-ugv).
68
68
 
69
69
 
70
70
  built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
@@ -1,4 +1,4 @@
1
- bluer_ugv/__init__.py,sha256=lyjScJ1YWudsnHcbxo7La8IYNCy3Ej7nlTHWLLBs-_w,288
1
+ bluer_ugv/__init__.py,sha256=-Hveos10B7sYwjL6M2-2azvm1MjhysD7j-HIRoEAGbQ,288
2
2
  bluer_ugv/__main__.py,sha256=77TquqyMca7qHk0XtCixGVyzfW3_9ywnl5oXEPERlls,374
3
3
  bluer_ugv/config.env,sha256=psiLmasSe300nOPkLqMurFalZTvNE43zAsBQLEEDp-k,949
4
4
  bluer_ugv/env.py,sha256=asv-2OByZzf1c4ta3CHMZQDEcY8cd2WDUOa-_OCNYvU,1757
@@ -44,9 +44,10 @@ bluer_ugv/.abcli/ugv/git.sh,sha256=U5p_5qrNwLw8O7HfHu7QZgLblbDc6Z6lIumgKwu3mzY,2
44
44
  bluer_ugv/README/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
45
  bluer_ugv/README/alias.py,sha256=MdTRUMg3rLbWS_AQz1WXwbkEjKEjBx5uM_fDwYmMGFY,173
46
46
  bluer_ugv/README/beast.py,sha256=6sOpm4vNXxNtNMZszgiuqqJaBBWG02WaSgKfbdt7J4E,57
47
- bluer_ugv/README/build.py,sha256=BDj0RT0iB2Xqv3aGPUeV2F7PcgpuDCFSXQID3pzyS2Q,1176
47
+ bluer_ugv/README/build.py,sha256=4OLHq3042TsyeFl5ekl0842vZGVMKbws5hWqz6brHdE,1450
48
48
  bluer_ugv/README/consts.py,sha256=bQ98yk28E8-EBh2wUgMNr-sZ90IC3q7BmTzJe5XCS3g,257
49
49
  bluer_ugv/README/items.py,sha256=NVnBa-H9XqVnQR75kbrWvdKZHlgITYYS0DTqdvjgMvc,2221
50
+ bluer_ugv/README/releases.py,sha256=0_nYEXDoCiIyzoVdl8DtKBWnN5aE9BsmEbeQ5ZySUg8,116
50
51
  bluer_ugv/README/root.py,sha256=h1piDAmlkdfbKZeZTW3HWzsW4VpKG6L776oYK7hC-J0,296
51
52
  bluer_ugv/README/shield.py,sha256=iHH7U4_Yq9WWaK87giVtqNl03I23y7jXsFpoOQc0E7Y,2053
52
53
  bluer_ugv/README/shortcuts.py,sha256=fY-pt04LcBAk3ENlD_JFnKU-ucAfV6Q_QWN7I0sRAqA,1315
@@ -83,9 +84,29 @@ bluer_ugv/README/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
83
84
  bluer_ugv/README/ugvs/db.py,sha256=f97aN0aeYEbQ7aCPfRAYDEKCpy56w9MrR-8dNGwPaO0,803
84
85
  bluer_ugv/README/ugvs/docs.py,sha256=WDdt404j-ZIlwfgHRd34nIN2DaQXO6Uw7EaV3S87zSA,1067
85
86
  bluer_ugv/README/ugvs/comparison/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- bluer_ugv/README/ugvs/comparison/db.py,sha256=2lDOmb_XjGsoWNHgHjI8f1n82x3k9tCcEzrwI9FiSCI,379
87
- bluer_ugv/README/ugvs/comparison/features.py,sha256=6Woz98FiA7wV3f9o_h7ncUTyD7mvI0Nba8p6U6r1-a4,1153
88
- bluer_ugv/README/ugvs/comparison/ugvs.py,sha256=uHkaWyOfjvxEzM_uOSuWlrxhDC0b4RsfYzos5sOsnn0,821
87
+ bluer_ugv/README/ugvs/comparison/build.py,sha256=xN1u7LyB92VYZgctAdWVjVWimpkDZFBhfG44fO7EKMg,3784
88
+ bluer_ugv/README/ugvs/comparison/features/DYI.py,sha256=ED5Tlc4KcEFpLPHjwfSNGE47guKCeBG7Q84TS0BPJgE,187
89
+ bluer_ugv/README/ugvs/comparison/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
+ bluer_ugv/README/ugvs/comparison/features/classes.py,sha256=xAxvmL1ol1pXQ1RHWYePFzIVKD3Guq_tZudjPTz6po8,3603
91
+ bluer_ugv/README/ugvs/comparison/features/concealment.py,sha256=9o_-eYFaqKR4KcjDmOkE9SVxtdsB4NLnJ_ytWuQLzOY,235
92
+ bluer_ugv/README/ugvs/comparison/features/control.py,sha256=bDLB0W4ESht-3v0gkQoIgfWDgbkyG7dWtyjdk-lt_yg,668
93
+ bluer_ugv/README/ugvs/comparison/features/cost.py,sha256=Q7PQ5iXKQcjXf_-w_mcuw1fM3oUzXzvuHu8P1kIcIq4,693
94
+ bluer_ugv/README/ugvs/comparison/features/db.py,sha256=BRAvPJhcKrh-5Q70u4jIl7oovYt1M_MfOCqKIaJWKmM,1454
95
+ bluer_ugv/README/ugvs/comparison/features/payload.py,sha256=tJJ7_tLO0jcJREad5FxaJ7vTEvD4HbCa6TsBI5Q1ljg,501
96
+ bluer_ugv/README/ugvs/comparison/features/ps.py,sha256=J6aTf4oBwm16qYB1hrvlYpZm95Jl-y11uleZA-m2Pas,211
97
+ bluer_ugv/README/ugvs/comparison/features/range.py,sha256=pfwtOLlFekIERheHll0Lws7LHyIaMWJyAIrGHAu-74Q,383
98
+ bluer_ugv/README/ugvs/comparison/features/sanction_proof.py,sha256=FRCSFmDsM5zuhI7kiwjETez9-ngLZI2rTLsVgv-ibIM,209
99
+ bluer_ugv/README/ugvs/comparison/features/size.py,sha256=oNLGvyEiMMzcb0Z7qWPJuJ11BrI3gWi3GFt07SM5q7U,703
100
+ bluer_ugv/README/ugvs/comparison/features/speed.py,sha256=VovKLYNIeLFviJlLlgk93kbmMExwDQ_r03r4FBSuQi8,262
101
+ bluer_ugv/README/ugvs/comparison/features/swarm.py,sha256=Y2yQMtNxMtAH7nVBysnylGJ9Hj_o9Wn_BEpvwSlfxF0,195
102
+ bluer_ugv/README/ugvs/comparison/features/uv_delivery.py,sha256=cl20Adgl-CiBlGXcy6l91R68E2HaCcB9FGJzcQUIFTk,213
103
+ bluer_ugv/README/ugvs/comparison/references/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
104
+ bluer_ugv/README/ugvs/comparison/references/classes.py,sha256=Ti91K7NqTTAK1nTCpE16kzmB8yxw-Q7Ff1c6l8v-ZpU,530
105
+ bluer_ugv/README/ugvs/comparison/references/db.py,sha256=_vlhmqdU0O0MHRlSeXH68lso-BDXB5UiUIO_ZvqRZ4Q,10237
106
+ bluer_ugv/README/ugvs/comparison/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
107
+ bluer_ugv/README/ugvs/comparison/ugvs/classes.py,sha256=7JdYf5jh9XuInlJp6-WOXvLs8YELvmz680hxGCj4pls,3110
108
+ bluer_ugv/README/ugvs/comparison/ugvs/db.py,sha256=LBxsj_JB09yHQNyLAFP0qP_Qfer11gCwJqJkBNyiTWM,8324
109
+ bluer_ugv/assets/comparison.html,sha256=UWKlQYww8bnVPfMXaGvIJoIGwvEOjqDmRK8hbuwD2rY,595
89
110
  bluer_ugv/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
111
  bluer_ugv/designs/arzhang/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
112
  bluer_ugv/designs/arzhang/parts.py,sha256=x3AL4oGtjODOQPYg-2P7zGXzqWjYZ9BXUXPsNf8o8Ho,80
@@ -157,8 +178,8 @@ bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py,sha256=vMvmay2Gxg8
157
178
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py,sha256=_iQmec2VSq-ORkTVpXSNJg08hrSz2M1O8LzNZEtoT9U,959
158
179
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py,sha256=En-J8BRTiR8k9p2CBbW0cOUuw8nctD5DOXDm5uhCNO4,3987
159
180
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py,sha256=RIMHXmLXe1zXLvCNU163ymLI8XM6te9LXuCMnLuulbA,1515
160
- bluer_ugv-7.262.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
161
- bluer_ugv-7.262.1.dist-info/METADATA,sha256=98onEJ6yCf3w4zChubbn4UVUkrmDZz_U-STGKq-uG_4,5579
162
- bluer_ugv-7.262.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
163
- bluer_ugv-7.262.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
164
- bluer_ugv-7.262.1.dist-info/RECORD,,
181
+ bluer_ugv-7.291.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
182
+ bluer_ugv-7.291.1.dist-info/METADATA,sha256=GWaUfnNwDLVs21cdZgu9Jhu1YivVVU6mcSdZo2fwiAk,5579
183
+ bluer_ugv-7.291.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
184
+ bluer_ugv-7.291.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
185
+ bluer_ugv-7.291.1.dist-info/RECORD,,
@@ -1,15 +0,0 @@
1
- from bluer_ugv.README.ugvs.comparison.features import UGV_Size, UGV_Cost, UGV_Control
2
- from bluer_ugv.README.ugvs.comparison.ugvs import List_of_UGVs
3
-
4
- list_of_ugvs = List_of_UGVs()
5
-
6
-
7
- list_of_ugvs.add(
8
- name="ربات موشک‌انداز نذیر",
9
- control=UGV_Control.RC,
10
- size=UGV_Size.MEDIUM,
11
- payload=700,
12
- range=4,
13
- cost=UGV_Cost.MEDIUM,
14
- DYI=False,
15
- )
@@ -1,55 +0,0 @@
1
- from typing import Dict, Callable
2
-
3
- from enum import Enum
4
-
5
-
6
- class UGV_Control(Enum):
7
- RC_AI = 3
8
- AI = 2
9
- RC = 1
10
-
11
-
12
- class UGV_Cost(Enum):
13
- LOW = 100 # < 50 mT ~= $500
14
- MEDIUM = 10 # < 500 mT ~= $5k
15
- HIGHT = 1 # < 5 MT ~= $50k
16
-
17
-
18
- class UGV_Size(Enum):
19
- SMALL = 100
20
- MEDIUM = 10
21
- LARGE = 1
22
-
23
-
24
- class Feature:
25
- def __init__(
26
- self,
27
- name,
28
- score: int = -1,
29
- better_func: Callable = lambda score_1, score_2: score_1 > score_2,
30
- ):
31
- self.name = name
32
- self.score = score
33
- self.better_func = better_func
34
-
35
-
36
- class FeatureList:
37
- def __init__(self):
38
- self.db: Dict[Feature] = {}
39
-
40
- def add(self, feature: Feature):
41
- self.db[feature] = False
42
-
43
-
44
- list_of_features: FeatureList = FeatureList()
45
-
46
- for feature_name in [
47
- "سامانه‌ی هوش مصنوعی",
48
- "سامانه‌ی مکان‌یابی",
49
- "فعالیت گروهی",
50
- "شعاع عملکرد عملیاتی نامحدود",
51
- "قابلیت استتار و کمین درازمدت",
52
- "حمل پهپاد و رهپاد",
53
- "تحریم گریزی",
54
- ]:
55
- FeatureList.add(Feature(feature_name))
@@ -1,43 +0,0 @@
1
- from typing import List
2
- import copy
3
-
4
- from bluer_ugv.README.ugvs.comparison.features import (
5
- list_of_features,
6
- UGV_Control,
7
- UGV_Cost,
8
- UGV_Size,
9
- )
10
-
11
-
12
- class UGV:
13
- def __init__(
14
- self,
15
- name: str,
16
- control: UGV_Control,
17
- size: UGV_Size,
18
- payload: float, # kg
19
- range: float, # km
20
- cost: UGV_Cost,
21
- DYI: bool,
22
- ):
23
- self.name = name
24
- self.control = control
25
- self.size = size
26
- self.payload = payload
27
- self.range = range
28
- self.cost = cost
29
- self.DYI = DYI
30
-
31
- self.features = copy.deepcopy(list_of_features)
32
-
33
-
34
- class List_of_UGVs:
35
- def __init__(self):
36
- self.db: List[UGV] = []
37
-
38
- def add(
39
- self,
40
- **kw_args,
41
- ):
42
- ugv = UGV(**kw_args)
43
- self.db.append(ugv)