bluer-ugv 7.235.1__py3-none-any.whl → 7.286.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 (40) hide show
  1. bluer_ugv/README/arzhang/__init__.py +1 -1
  2. bluer_ugv/README/arzhang/consts.py +3 -0
  3. bluer_ugv/README/arzhang/items.py +1 -1
  4. bluer_ugv/README/build.py +33 -27
  5. bluer_ugv/README/releases.py +8 -0
  6. bluer_ugv/README/shortcuts.py +2 -2
  7. bluer_ugv/README/ugvs/__init__.py +0 -0
  8. bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
  9. bluer_ugv/README/ugvs/comparison/build.py +135 -0
  10. bluer_ugv/README/ugvs/comparison/features/DYI.py +8 -0
  11. bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
  12. bluer_ugv/README/ugvs/comparison/features/classes.py +138 -0
  13. bluer_ugv/README/ugvs/comparison/features/concealment.py +8 -0
  14. bluer_ugv/README/ugvs/comparison/features/control.py +30 -0
  15. bluer_ugv/README/ugvs/comparison/features/cost.py +30 -0
  16. bluer_ugv/README/ugvs/comparison/features/db.py +36 -0
  17. bluer_ugv/README/ugvs/comparison/features/payload.py +21 -0
  18. bluer_ugv/README/ugvs/comparison/features/ps.py +8 -0
  19. bluer_ugv/README/ugvs/comparison/features/range.py +14 -0
  20. bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +8 -0
  21. bluer_ugv/README/ugvs/comparison/features/size.py +32 -0
  22. bluer_ugv/README/ugvs/comparison/features/speed.py +10 -0
  23. bluer_ugv/README/ugvs/comparison/features/swarm.py +8 -0
  24. bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +8 -0
  25. bluer_ugv/README/ugvs/comparison/references/__init__.py +1 -0
  26. bluer_ugv/README/ugvs/comparison/references/classes.py +27 -0
  27. bluer_ugv/README/ugvs/comparison/references/db.py +344 -0
  28. bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
  29. bluer_ugv/README/ugvs/comparison/ugvs/classes.py +118 -0
  30. bluer_ugv/README/ugvs/comparison/ugvs/db.py +411 -0
  31. bluer_ugv/README/ugvs/db.py +32 -0
  32. bluer_ugv/README/ugvs/docs.py +30 -0
  33. bluer_ugv/__init__.py +1 -1
  34. bluer_ugv/assets/comparison.html +33 -0
  35. {bluer_ugv-7.235.1.dist-info → bluer_ugv-7.286.1.dist-info}/METADATA +3 -3
  36. {bluer_ugv-7.235.1.dist-info → bluer_ugv-7.286.1.dist-info}/RECORD +39 -12
  37. bluer_ugv/README/UGVs.py +0 -46
  38. {bluer_ugv-7.235.1.dist-info → bluer_ugv-7.286.1.dist-info}/WHEEL +0 -0
  39. {bluer_ugv-7.235.1.dist-info → bluer_ugv-7.286.1.dist-info}/licenses/LICENSE +0 -0
  40. {bluer_ugv-7.235.1.dist-info → bluer_ugv-7.286.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
+ )
@@ -0,0 +1,32 @@
1
+ from bluer_ugv.README.swallow.consts import swallow_assets2
2
+ from bluer_ugv.README.arzhang.consts import arzhang_assets, arzhang_assets2
3
+ from bluer_ugv.README.rangin.consts import rangin_assets2
4
+
5
+ dict_of_ugvs = {
6
+ "swallow": {
7
+ "items": [
8
+ f"{swallow_assets2}/20250701_2206342_1.gif",
9
+ f"{swallow_assets2}/20250913_203635~2_1.gif",
10
+ ]
11
+ },
12
+ "arzhang": {
13
+ "items": [
14
+ f"{arzhang_assets2}/20251106_111750.jpg",
15
+ ],
16
+ },
17
+ "arzhang2": {
18
+ "items": [
19
+ f"{arzhang_assets2}/20251106_111750.jpg",
20
+ ],
21
+ },
22
+ "arzhang3": {
23
+ "items": [
24
+ f"{arzhang_assets}/20251107_175506.jpg",
25
+ ],
26
+ },
27
+ "rangin": {
28
+ "items": [
29
+ f"{rangin_assets2}/rangin.png",
30
+ ]
31
+ },
32
+ }
@@ -0,0 +1,30 @@
1
+ from bluer_objects.README.items import ImageItems
2
+
3
+ from bluer_ugv.README.ugvs.db import dict_of_ugvs
4
+ from bluer_ugv.README.validations.db import dict_of_validations
5
+
6
+ docs = [
7
+ {
8
+ "path": f"../docs/UGVs/{ugv_name}.md",
9
+ "items": ImageItems({item: "" for item in info.get("items", [])}),
10
+ "macros": {
11
+ "validations:::": [
12
+ "validations: {}".format(
13
+ ", ".join(
14
+ sorted(
15
+ [
16
+ f"[`{validation_name}`](../validations/{validation_name}.md)"
17
+ for validation_name, info in dict_of_validations.items()
18
+ if any(
19
+ ugv_name_.startswith(f"{ugv_name}:")
20
+ for ugv_name_ in info["ugv_name"]
21
+ )
22
+ ]
23
+ )
24
+ )
25
+ ),
26
+ ]
27
+ },
28
+ }
29
+ for ugv_name, info in dict_of_ugvs.items()
30
+ ]
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.235.1"
7
+ VERSION = "7.286.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.235.1
3
+ Version: 7.286.1
4
4
  Summary: 🐬 AI x UGV.
5
5
  Home-page: https://github.com/kamangir/bluer-ugv
6
6
  Author: Arash Abadpour (Kamangir)
@@ -48,7 +48,7 @@ pip install bluer_ugv
48
48
  | | |
49
49
  | --- | --- |
50
50
  | [`shield`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/shield.md) [![image](https://github.com/kamangir/bluer-designs//blob/main/swallow/electrical/digital.png?raw=true)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/shield.md) | [`UGVs`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/UGVs) [![image](https://github.com/kamangir/assets2/raw/main/swallow/20250912_211652.jpg?raw=true)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/UGVs) |
51
- | [`terraform`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) [![image](https://github.com/kamangir/assets2/raw/main/swallow/20250611_100917.jpg?raw=true)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) | [`arzhang validations`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang/validation) [![image](https://github.com/kamangir/assets/raw/main/swallow-debug-2025-09-25-13-16-59-rnm7jd/swallow-debug-2025-09-25-13-16-59-rnm7jd.gif)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang/validation) |
51
+ | [`terraform`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) [![image](https://github.com/kamangir/assets2/raw/main/swallow/20250611_100917.jpg?raw=true)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow/digital/design/terraform.md) | [`validations`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/validations) [![image](https://github.com/kamangir/assets/raw/main/swallow-debug-2025-09-25-13-16-59-rnm7jd/swallow-debug-2025-09-25-13-16-59-rnm7jd.gif)](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/validations) |
52
52
 
53
53
  ## aliases
54
54
 
@@ -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.235.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.286.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=zrU8USVDfnsYRUS4mD5zJdXDIk7bnN1ocyFDvIUbP2s,288
1
+ bluer_ugv/__init__.py,sha256=1blkas1jdUur-jkZgD5iEsAEatyMJeeX0T6IKN_MTtc,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
@@ -41,22 +41,22 @@ bluer_ugv/.abcli/tests/swallow_dataset_list.sh,sha256=DPjikrMLMl0oJTHBV4EyYmkMZn
41
41
  bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh,sha256=4LxfOGRAUJsZ5dnxrkwXCjWmkgQWSeqck-UYyza3aw8,243
42
42
  bluer_ugv/.abcli/tests/version.sh,sha256=7nVT4lERxIe-GkuDn86nfur9E_WGbvWtet_AJtr2S48,147
43
43
  bluer_ugv/.abcli/ugv/git.sh,sha256=U5p_5qrNwLw8O7HfHu7QZgLblbDc6Z6lIumgKwu3mzY,299
44
- bluer_ugv/README/UGVs.py,sha256=VGPXFX_0SWDgb73fWCrKygSZ5x-QeeA5a9Sx3sa9dqU,1221
45
44
  bluer_ugv/README/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
45
  bluer_ugv/README/alias.py,sha256=MdTRUMg3rLbWS_AQz1WXwbkEjKEjBx5uM_fDwYmMGFY,173
47
46
  bluer_ugv/README/beast.py,sha256=6sOpm4vNXxNtNMZszgiuqqJaBBWG02WaSgKfbdt7J4E,57
48
- bluer_ugv/README/build.py,sha256=1mvmd2bIN-M4HC5gv7_HeXHlG1acHdRe3KGZovg_JkU,1139
47
+ bluer_ugv/README/build.py,sha256=4OLHq3042TsyeFl5ekl0842vZGVMKbws5hWqz6brHdE,1450
49
48
  bluer_ugv/README/consts.py,sha256=bQ98yk28E8-EBh2wUgMNr-sZ90IC3q7BmTzJe5XCS3g,257
50
49
  bluer_ugv/README/items.py,sha256=NVnBa-H9XqVnQR75kbrWvdKZHlgITYYS0DTqdvjgMvc,2221
50
+ bluer_ugv/README/releases.py,sha256=0_nYEXDoCiIyzoVdl8DtKBWnN5aE9BsmEbeQ5ZySUg8,116
51
51
  bluer_ugv/README/root.py,sha256=h1piDAmlkdfbKZeZTW3HWzsW4VpKG6L776oYK7hC-J0,296
52
52
  bluer_ugv/README/shield.py,sha256=iHH7U4_Yq9WWaK87giVtqNl03I23y7jXsFpoOQc0E7Y,2053
53
- bluer_ugv/README/shortcuts.py,sha256=PO0NNEMOsH8OoUiDMOzmNF0wEQQm7dliAxWH7UVqf7s,1330
54
- bluer_ugv/README/arzhang/__init__.py,sha256=AKHkt16Nmyd_srcn-spd0gwf5ceqqfpey9a6QvYecZI,358
53
+ bluer_ugv/README/shortcuts.py,sha256=fY-pt04LcBAk3ENlD_JFnKU-ucAfV6Q_QWN7I0sRAqA,1315
54
+ bluer_ugv/README/arzhang/__init__.py,sha256=va9n90xUAEkO1-161yciOdmqOTJ2RaBOi-5yTA6IEPs,350
55
55
  bluer_ugv/README/arzhang/algo.py,sha256=om7gokRGJ5X_yMi40r9SgoNav3C4Pcd7S7TuQv58ccs,134
56
- bluer_ugv/README/arzhang/consts.py,sha256=8inKJdH18H5ZLX95Doy2FH90RaYSGGtIaU4JISj0TM8,186
56
+ bluer_ugv/README/arzhang/consts.py,sha256=o7IDyn7hCXFsHQuAX_qM196R1vEkTcxyC9K5TOaB4G4,239
57
57
  bluer_ugv/README/arzhang/design.py,sha256=Co-zUE-sykOjPAf8oAQ1TM1Aj3y3JM6rdBDe7rEwmx4,1736
58
58
  bluer_ugv/README/arzhang/flag.py,sha256=aTSQXk_sK09Wj7UCtAFkqruA0jwTvySHycG5pMu6Kp0,553
59
- bluer_ugv/README/arzhang/items.py,sha256=1e01WCIcw5RpSp6ert6TuS_CTjKaGImDRLCsuYGBg9s,1331
59
+ bluer_ugv/README/arzhang/items.py,sha256=roaCCdYqea6cwPxdn8ahyDilu8ePhGGOc2er1aCWM7k,1333
60
60
  bluer_ugv/README/eagle/__init__.py,sha256=jDRkrWZL4ZNOS3jwTs3uHKAbrXQjbVimYSjC4ShX8ww,647
61
61
  bluer_ugv/README/eagle/consts.py,sha256=u92JMMAWnB8ayWxKNTiqz_leAAszv427m4nZjJYJq4Y,116
62
62
  bluer_ugv/README/eagle/items.py,sha256=ombp026VFK_w1oP7p9X6jcRskr4jTDOXqoxD0UB5Rvo,320
@@ -80,6 +80,33 @@ bluer_ugv/README/swallow/digital/algo/yolo.py,sha256=NlDISZ9LOUmMAzdEYzVYOrIwbDG
80
80
  bluer_ugv/README/swallow/digital/design/__init__.py,sha256=RwH9vIDnocrKVt5WaBZq3Nxh2DygOLWelOsrvyEl1Aw,2324
81
81
  bluer_ugv/README/swallow/digital/design/mechanical.py,sha256=OwgMrFIpRA-RR9CwurXaif09GCd6_i3zGuAfkH0jtsM,983
82
82
  bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py,sha256=VefIdTUXnsxVj3rmjsguV7N2BD9tPRiiaHjjRl84QUM,1517
83
+ bluer_ugv/README/ugvs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
+ bluer_ugv/README/ugvs/db.py,sha256=f97aN0aeYEbQ7aCPfRAYDEKCpy56w9MrR-8dNGwPaO0,803
85
+ bluer_ugv/README/ugvs/docs.py,sha256=WDdt404j-ZIlwfgHRd34nIN2DaQXO6Uw7EaV3S87zSA,1067
86
+ bluer_ugv/README/ugvs/comparison/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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
83
110
  bluer_ugv/designs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
84
111
  bluer_ugv/designs/arzhang/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
112
  bluer_ugv/designs/arzhang/parts.py,sha256=x3AL4oGtjODOQPYg-2P7zGXzqWjYZ9BXUXPsNf8o8Ho,80
@@ -151,8 +178,8 @@ bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py,sha256=vMvmay2Gxg8
151
178
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py,sha256=_iQmec2VSq-ORkTVpXSNJg08hrSz2M1O8LzNZEtoT9U,959
152
179
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py,sha256=En-J8BRTiR8k9p2CBbW0cOUuw8nctD5DOXDm5uhCNO4,3987
153
180
  bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py,sha256=RIMHXmLXe1zXLvCNU163ymLI8XM6te9LXuCMnLuulbA,1515
154
- bluer_ugv-7.235.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
155
- bluer_ugv-7.235.1.dist-info/METADATA,sha256=rl_6Km73ubYVIPtNjgPbEk4IQlZozWjsgUS-R7sAfoY,5601
156
- bluer_ugv-7.235.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
157
- bluer_ugv-7.235.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
158
- bluer_ugv-7.235.1.dist-info/RECORD,,
181
+ bluer_ugv-7.286.1.dist-info/licenses/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
182
+ bluer_ugv-7.286.1.dist-info/METADATA,sha256=-kjC2E2-RRiTsEy3ylfi4F0c13scn8hlSpWyfiEBuuc,5579
183
+ bluer_ugv-7.286.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
184
+ bluer_ugv-7.286.1.dist-info/top_level.txt,sha256=_MlDhFvIPpher9Zs7xyJTHgO2xJJTbfR1dzncz3LQnk,10
185
+ bluer_ugv-7.286.1.dist-info/RECORD,,
bluer_ugv/README/UGVs.py DELETED
@@ -1,46 +0,0 @@
1
- from bluer_objects.README.items import ImageItems
2
-
3
- from bluer_ugv.README.consts import bluer_ugv_assets
4
- from bluer_ugv.README.arzhang.consts import arzhang_assets2
5
- from bluer_ugv.README.rangin.consts import rangin_assets2
6
- from bluer_ugv.README.swallow.consts import swallow_assets2
7
-
8
-
9
- docs = [
10
- {
11
- "path": "../docs/UGVs",
12
- },
13
- {
14
- "path": "../docs/UGVs/swallow.md",
15
- "items": ImageItems(
16
- {
17
- f"{swallow_assets2}/20250701_2206342_1.gif": "",
18
- f"{swallow_assets2}/20250913_203635~2_1.gif": "",
19
- }
20
- ),
21
- },
22
- {
23
- "path": "../docs/UGVs/arzhang.md",
24
- "items": ImageItems(
25
- {
26
- f"{arzhang_assets2}/20251005_112530.jpg": "",
27
- }
28
- ),
29
- },
30
- {
31
- "path": "../docs/UGVs/arzhang2.md",
32
- "items": ImageItems(
33
- {
34
- f"{arzhang_assets2}/20251005_112530.jpg": "",
35
- }
36
- ),
37
- },
38
- {
39
- "path": "../docs/UGVs/arzhang3.md",
40
- "items": ImageItems({f"{bluer_ugv_assets}/bluer-light.png": ""}),
41
- },
42
- {
43
- "path": "../docs/UGVs/rangin.md",
44
- "items": ImageItems({f"{rangin_assets2}/rangin.png": ""}),
45
- },
46
- ]