bluer-ugv 7.616.1__tar.gz → 7.645.1__tar.gz
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.
- {bluer_ugv-7.616.1/bluer_ugv.egg-info → bluer_ugv-7.645.1}/PKG-INFO +2 -2
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/README.md +1 -1
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/build.py +26 -5
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +1 -1
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/range.py +1 -3
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/size.py +1 -1
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +21 -4
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +46 -5
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1/bluer_ugv.egg-info}/PKG-INFO +2 -2
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/LICENSE +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/alias.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/git/rm_keys.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/git.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/swallow.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/alias.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/build.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/box.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/docs.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/power.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/schematics.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/shield/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/shield/docs.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/shield/testing.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/shield/v1.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/shield/v2.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/computer/testing.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/rangin/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/rangin/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/releases.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/root.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/shortcuts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/algo/driving.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/algo/tracking.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/design/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/db.py +8 -8
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/db.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/README/ugvs/docs.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/assets/comparison.html +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/config.env +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/env.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/git.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/debug.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/void.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/session.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/swallow/targeting.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv.egg-info/SOURCES.txt +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/pyproject.toml +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/requirements.txt +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/setup.cfg +0 -0
- {bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.645.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
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/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.
|
|
67
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.645.1`](https://github.com/kamangir/bluer-ugv).
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -35,5 +35,5 @@ pip install bluer_ugv
|
|
|
35
35
|
|
|
36
36
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/bluer-ugv/) [](https://pypistats.org/packages/bluer-ugv)
|
|
37
37
|
|
|
38
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
38
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.645.1`](https://github.com/kamangir/bluer-ugv).
|
|
39
39
|
|
|
@@ -3,7 +3,8 @@ from typing import List, Union
|
|
|
3
3
|
from functools import reduce
|
|
4
4
|
|
|
5
5
|
from blueness import module
|
|
6
|
-
from bluer_objects import file
|
|
6
|
+
from bluer_objects import file, objects
|
|
7
|
+
from bluer_objects.README.consts import assets_url
|
|
7
8
|
|
|
8
9
|
from bluer_ugv import NAME
|
|
9
10
|
from bluer_ugv.README.ugvs.comparison.ugvs.db import list_of_ugvs
|
|
@@ -13,6 +14,8 @@ from bluer_ugv.logger import logger
|
|
|
13
14
|
|
|
14
15
|
NAME = module.name(__file__, NAME)
|
|
15
16
|
|
|
17
|
+
OBJECT_NAME = "bluer-ugv-comparison-v1"
|
|
18
|
+
|
|
16
19
|
|
|
17
20
|
def build(
|
|
18
21
|
log: bool = True,
|
|
@@ -46,8 +49,9 @@ def build(
|
|
|
46
49
|
+ row_of(
|
|
47
50
|
[
|
|
48
51
|
"رديف",
|
|
52
|
+
"تصویر",
|
|
49
53
|
"نام محصول مشابه",
|
|
50
|
-
"مشابهت و تفاوت
|
|
54
|
+
"مشابهت و تفاوت های محصول ما با آنها ",
|
|
51
55
|
],
|
|
52
56
|
header=True,
|
|
53
57
|
)
|
|
@@ -57,6 +61,23 @@ def build(
|
|
|
57
61
|
row_of(
|
|
58
62
|
[
|
|
59
63
|
str(index + 1),
|
|
64
|
+
(
|
|
65
|
+
'<img src="{}" alt="{}" style="width: 200pt;"/>'.format(
|
|
66
|
+
assets_url(
|
|
67
|
+
suffix=f"{OBJECT_NAME}/{ugv.image}",
|
|
68
|
+
volume=2,
|
|
69
|
+
),
|
|
70
|
+
ugv.name,
|
|
71
|
+
)
|
|
72
|
+
if ugv.image
|
|
73
|
+
else ""
|
|
74
|
+
)
|
|
75
|
+
+ " ".join(
|
|
76
|
+
[
|
|
77
|
+
f'<p style="color:blue;">🔹 {line}</p>'
|
|
78
|
+
for line in ugv.comments
|
|
79
|
+
]
|
|
80
|
+
),
|
|
60
81
|
ugv.description,
|
|
61
82
|
reference_ugv.compare(ugv),
|
|
62
83
|
]
|
|
@@ -97,9 +118,9 @@ def build(
|
|
|
97
118
|
)
|
|
98
119
|
|
|
99
120
|
return file.save_text(
|
|
100
|
-
|
|
101
|
-
"
|
|
102
|
-
|
|
121
|
+
objects.path_of(
|
|
122
|
+
filename="comparison.html",
|
|
123
|
+
object_name=OBJECT_NAME,
|
|
103
124
|
),
|
|
104
125
|
contents,
|
|
105
126
|
log=log,
|
|
@@ -2,8 +2,6 @@ from typing import Any
|
|
|
2
2
|
|
|
3
3
|
from bluer_ugv.README.ugvs.comparison.features.classes import Feature
|
|
4
4
|
|
|
5
|
-
unlimited_range: int = 999
|
|
6
|
-
|
|
7
5
|
|
|
8
6
|
class RangeFeature(Feature):
|
|
9
7
|
nickname = "range"
|
|
@@ -11,4 +9,4 @@ class RangeFeature(Feature):
|
|
|
11
9
|
|
|
12
10
|
@property
|
|
13
11
|
def score_as_str_(self) -> str:
|
|
14
|
-
return f"{self.score} کیلومتر"
|
|
12
|
+
return f"{self.score} کیلومتر"
|
|
@@ -15,25 +15,35 @@ class UGV:
|
|
|
15
15
|
name: str,
|
|
16
16
|
features: Dict[str, Any],
|
|
17
17
|
deficiencies: List[str] = [],
|
|
18
|
+
image: str = "",
|
|
19
|
+
comments: List[str] = [],
|
|
18
20
|
):
|
|
19
21
|
self.nickname = nickname
|
|
20
22
|
self.name = name
|
|
21
23
|
|
|
22
24
|
self.feature_list: FeatureList = FeatureList()
|
|
23
25
|
|
|
24
|
-
for feature_name
|
|
26
|
+
for feature_name in features:
|
|
25
27
|
if feature_name not in dict_of_feature_classes:
|
|
26
28
|
logger.error(f"{feature_name}: feature not found.")
|
|
27
29
|
assert False
|
|
28
30
|
|
|
31
|
+
for feature_name in dict_of_feature_classes:
|
|
32
|
+
if feature_name not in features:
|
|
33
|
+
continue
|
|
34
|
+
|
|
29
35
|
self.feature_list.add(
|
|
30
36
|
dict_of_feature_classes[feature_name](
|
|
31
|
-
score=
|
|
37
|
+
score=features[feature_name],
|
|
32
38
|
)
|
|
33
39
|
)
|
|
34
40
|
|
|
35
41
|
self.deficiencies = deficiencies
|
|
36
42
|
|
|
43
|
+
self.image = image
|
|
44
|
+
|
|
45
|
+
self.comments = comments
|
|
46
|
+
|
|
37
47
|
def compare(
|
|
38
48
|
self,
|
|
39
49
|
ugv: "UGV",
|
|
@@ -54,7 +64,12 @@ class UGV:
|
|
|
54
64
|
elif comparison == Feature_Comparison.UNKNOWN:
|
|
55
65
|
pass
|
|
56
66
|
else:
|
|
57
|
-
differences.append(
|
|
67
|
+
differences.append(
|
|
68
|
+
'<p style="color:{};">{}</p>'.format(
|
|
69
|
+
"green" if comparison == Feature_Comparison.HIGHER else "red",
|
|
70
|
+
message,
|
|
71
|
+
)
|
|
72
|
+
)
|
|
58
73
|
|
|
59
74
|
return (
|
|
60
75
|
[
|
|
@@ -83,7 +98,9 @@ class UGV:
|
|
|
83
98
|
def description(self) -> List[str]:
|
|
84
99
|
return (
|
|
85
100
|
[
|
|
86
|
-
'<p dir="rtl" style="text-align:right;">{}</p>'.format(
|
|
101
|
+
'<b><p dir="rtl" style="text-align:right;">{}</p></b>'.format(
|
|
102
|
+
self.name
|
|
103
|
+
),
|
|
87
104
|
"<ol>",
|
|
88
105
|
]
|
|
89
106
|
+ [
|
|
@@ -2,7 +2,6 @@ from bluer_ugv.README.ugvs.comparison.features.control import UGV_Control
|
|
|
2
2
|
from bluer_ugv.README.ugvs.comparison.features.cost import UGV_Cost
|
|
3
3
|
from bluer_ugv.README.ugvs.comparison.features.size import UGV_Size
|
|
4
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
5
|
|
|
7
6
|
list_of_ugvs = List_of_UGVs()
|
|
8
7
|
|
|
@@ -14,7 +13,7 @@ list_of_ugvs.add(
|
|
|
14
13
|
"control": UGV_Control.AI,
|
|
15
14
|
"cost": UGV_Cost.LOW,
|
|
16
15
|
"payload": 40,
|
|
17
|
-
"range":
|
|
16
|
+
"range": 100,
|
|
18
17
|
"ps": True,
|
|
19
18
|
"sanction_proof": True,
|
|
20
19
|
"size": UGV_Size.SMALL,
|
|
@@ -26,12 +25,14 @@ list_of_ugvs.add(
|
|
|
26
25
|
|
|
27
26
|
list_of_ugvs.add(
|
|
28
27
|
nickname="nazir",
|
|
28
|
+
image="nazir.jpg",
|
|
29
29
|
name="ربات موشکانداز نذیر",
|
|
30
30
|
features={
|
|
31
31
|
"control": UGV_Control.RC,
|
|
32
32
|
"cost": UGV_Cost.MEDIUM,
|
|
33
33
|
"payload": 700,
|
|
34
34
|
"range": 4,
|
|
35
|
+
"sanction_proof": True,
|
|
35
36
|
"size": UGV_Size.MEDIUM,
|
|
36
37
|
},
|
|
37
38
|
)
|
|
@@ -39,12 +40,14 @@ list_of_ugvs.add(
|
|
|
39
40
|
list_of_ugvs.add(
|
|
40
41
|
nickname="heydar",
|
|
41
42
|
name="ربات حیدر",
|
|
43
|
+
image="heydar.jpg",
|
|
42
44
|
features={
|
|
43
45
|
"concealment": True,
|
|
44
46
|
"control": UGV_Control.AI,
|
|
45
47
|
"cost": UGV_Cost.LOW,
|
|
46
48
|
"payload": 40,
|
|
47
49
|
"range": 10,
|
|
50
|
+
"sanction_proof": True,
|
|
48
51
|
"size": UGV_Size.SMALL,
|
|
49
52
|
"speed": 60,
|
|
50
53
|
"swarm": True,
|
|
@@ -52,15 +55,20 @@ list_of_ugvs.add(
|
|
|
52
55
|
deficiencies=[
|
|
53
56
|
"انتقال قدرت: زنجیر",
|
|
54
57
|
],
|
|
58
|
+
comments=[
|
|
59
|
+
"بیشترین تشابه",
|
|
60
|
+
],
|
|
55
61
|
)
|
|
56
62
|
|
|
57
63
|
|
|
58
64
|
list_of_ugvs.add(
|
|
59
65
|
nickname="karakal",
|
|
60
66
|
name="ربات جنگجوی هوشمند کاراکال",
|
|
67
|
+
image="karakal.jpg",
|
|
61
68
|
features={
|
|
62
69
|
"control": UGV_Control.AI,
|
|
63
70
|
"cost": UGV_Cost.MEDIUM,
|
|
71
|
+
"sanction_proof": True,
|
|
64
72
|
"size": UGV_Size.MEDIUM,
|
|
65
73
|
"speed": 30,
|
|
66
74
|
"range": 0.5,
|
|
@@ -70,8 +78,11 @@ list_of_ugvs.add(
|
|
|
70
78
|
list_of_ugvs.add(
|
|
71
79
|
nickname="qasem",
|
|
72
80
|
name="ربات قاسم",
|
|
81
|
+
image="qasem.jpg",
|
|
73
82
|
features={
|
|
83
|
+
"concealment": True,
|
|
74
84
|
"cost": UGV_Cost.MEDIUM,
|
|
85
|
+
"sanction_proof": True,
|
|
75
86
|
"size": UGV_Size.MEDIUM,
|
|
76
87
|
"uv_delivery": True,
|
|
77
88
|
},
|
|
@@ -81,9 +92,11 @@ list_of_ugvs.add(
|
|
|
81
92
|
list_of_ugvs.add(
|
|
82
93
|
nickname="arya",
|
|
83
94
|
name="ربات آریا",
|
|
95
|
+
image="arya.jpg",
|
|
84
96
|
features={
|
|
85
97
|
"control": UGV_Control.AI,
|
|
86
98
|
"cost": UGV_Cost.MEDIUM,
|
|
99
|
+
"sanction_proof": True,
|
|
87
100
|
"size": UGV_Size.MEDIUM,
|
|
88
101
|
"speed": 50,
|
|
89
102
|
"uv_delivery": True,
|
|
@@ -94,7 +107,9 @@ list_of_ugvs.add(
|
|
|
94
107
|
list_of_ugvs.add(
|
|
95
108
|
nickname="sepah",
|
|
96
109
|
name="ربات جنگ میدانی سپاه",
|
|
97
|
-
features={
|
|
110
|
+
features={
|
|
111
|
+
"sanction_proof": True,
|
|
112
|
+
},
|
|
98
113
|
deficiencies=[],
|
|
99
114
|
)
|
|
100
115
|
|
|
@@ -102,9 +117,11 @@ list_of_ugvs.add(
|
|
|
102
117
|
list_of_ugvs.add(
|
|
103
118
|
nickname="raad1",
|
|
104
119
|
name="متلاشیکننده بمب و تله انفجاری رعد ۱",
|
|
120
|
+
image="raad1.jpg",
|
|
105
121
|
features={
|
|
106
122
|
"control": UGV_Control.RC,
|
|
107
123
|
"cost": UGV_Cost.MEDIUM,
|
|
124
|
+
"sanction_proof": True,
|
|
108
125
|
"size": UGV_Size.SMALL,
|
|
109
126
|
},
|
|
110
127
|
deficiencies=[],
|
|
@@ -113,6 +130,7 @@ list_of_ugvs.add(
|
|
|
113
130
|
list_of_ugvs.add(
|
|
114
131
|
nickname="uran_6",
|
|
115
132
|
name="Uran-6",
|
|
133
|
+
image="Uran-6.jpeg",
|
|
116
134
|
features={
|
|
117
135
|
"control": UGV_Control.AI,
|
|
118
136
|
"cost": UGV_Cost.HIGH,
|
|
@@ -126,6 +144,7 @@ list_of_ugvs.add(
|
|
|
126
144
|
list_of_ugvs.add(
|
|
127
145
|
nickname="uran_9",
|
|
128
146
|
name="Uran-9",
|
|
147
|
+
image="Uran-9.jpg",
|
|
129
148
|
features={
|
|
130
149
|
"control": UGV_Control.AI,
|
|
131
150
|
"cost": UGV_Cost.HIGH,
|
|
@@ -139,6 +158,7 @@ list_of_ugvs.add(
|
|
|
139
158
|
list_of_ugvs.add(
|
|
140
159
|
nickname="uran_14",
|
|
141
160
|
name="Uran-14",
|
|
161
|
+
image="Uran-14.jpg",
|
|
142
162
|
features={
|
|
143
163
|
"control": UGV_Control.AI,
|
|
144
164
|
"cost": UGV_Cost.HIGH,
|
|
@@ -153,6 +173,7 @@ list_of_ugvs.add(
|
|
|
153
173
|
list_of_ugvs.add(
|
|
154
174
|
nickname="themis_9",
|
|
155
175
|
name="THeMIS-9",
|
|
176
|
+
image="THeMIS-9.jpeg",
|
|
156
177
|
features={
|
|
157
178
|
"control": UGV_Control.AI,
|
|
158
179
|
"cost": UGV_Cost.HIGH,
|
|
@@ -167,6 +188,7 @@ list_of_ugvs.add(
|
|
|
167
188
|
list_of_ugvs.add(
|
|
168
189
|
nickname="type_x",
|
|
169
190
|
name="Type-X",
|
|
191
|
+
image="Type-X.jpg",
|
|
170
192
|
features={
|
|
171
193
|
"control": UGV_Control.AI,
|
|
172
194
|
"cost": UGV_Cost.HIGH,
|
|
@@ -181,6 +203,7 @@ list_of_ugvs.add(
|
|
|
181
203
|
list_of_ugvs.add(
|
|
182
204
|
nickname="centaur",
|
|
183
205
|
name="Centaur",
|
|
206
|
+
image="Centaur.jpg",
|
|
184
207
|
features={
|
|
185
208
|
"control": UGV_Control.RC,
|
|
186
209
|
"cost": UGV_Cost.HIGH,
|
|
@@ -196,6 +219,7 @@ list_of_ugvs.add(
|
|
|
196
219
|
list_of_ugvs.add(
|
|
197
220
|
nickname="xm1219",
|
|
198
221
|
name="XM1219",
|
|
222
|
+
image="XM1219.jpeg",
|
|
199
223
|
features={
|
|
200
224
|
"control": UGV_Control.RC,
|
|
201
225
|
"cost": UGV_Cost.HIGH,
|
|
@@ -207,6 +231,7 @@ list_of_ugvs.add(
|
|
|
207
231
|
list_of_ugvs.add(
|
|
208
232
|
nickname="talon",
|
|
209
233
|
name="Foster-Miller TALON",
|
|
234
|
+
image="talon.jpg",
|
|
210
235
|
features={
|
|
211
236
|
"control": UGV_Control.RC,
|
|
212
237
|
"cost": UGV_Cost.HIGH,
|
|
@@ -219,6 +244,7 @@ list_of_ugvs.add(
|
|
|
219
244
|
list_of_ugvs.add(
|
|
220
245
|
nickname="gladiator",
|
|
221
246
|
name="Gladiator TUGV",
|
|
247
|
+
image="Gladiator.jpg",
|
|
222
248
|
features={
|
|
223
249
|
"control": UGV_Control.RC,
|
|
224
250
|
"cost": UGV_Cost.HIGH,
|
|
@@ -230,6 +256,7 @@ list_of_ugvs.add(
|
|
|
230
256
|
list_of_ugvs.add(
|
|
231
257
|
nickname="ukap",
|
|
232
258
|
name="UKAP",
|
|
259
|
+
image="UKAP.jpg",
|
|
233
260
|
features={
|
|
234
261
|
"control": UGV_Control.RC,
|
|
235
262
|
"cost": UGV_Cost.HIGH,
|
|
@@ -241,6 +268,7 @@ list_of_ugvs.add(
|
|
|
241
268
|
list_of_ugvs.add(
|
|
242
269
|
nickname="ripsaw",
|
|
243
270
|
name="Ripsaw",
|
|
271
|
+
image="Ripsaw.jpg",
|
|
244
272
|
features={
|
|
245
273
|
"control": UGV_Control.AI,
|
|
246
274
|
"cost": UGV_Cost.HIGH,
|
|
@@ -254,11 +282,14 @@ list_of_ugvs.add(
|
|
|
254
282
|
list_of_ugvs.add(
|
|
255
283
|
nickname="teodor",
|
|
256
284
|
name="tEODor",
|
|
285
|
+
image="tEODor.png",
|
|
257
286
|
features={
|
|
287
|
+
"concealment": True,
|
|
258
288
|
"control": UGV_Control.RC,
|
|
259
289
|
"cost": UGV_Cost.HIGH,
|
|
260
290
|
"payload": 100,
|
|
261
291
|
"size": UGV_Size.MEDIUM,
|
|
292
|
+
"uv_delivery": True,
|
|
262
293
|
},
|
|
263
294
|
deficiencies=[],
|
|
264
295
|
)
|
|
@@ -267,6 +298,7 @@ list_of_ugvs.add(
|
|
|
267
298
|
list_of_ugvs.add(
|
|
268
299
|
nickname="black_knight",
|
|
269
300
|
name="Black Knight",
|
|
301
|
+
image="black_knight.jpeg",
|
|
270
302
|
features={
|
|
271
303
|
"control": UGV_Control.AI,
|
|
272
304
|
"cost": UGV_Cost.HIGH,
|
|
@@ -279,6 +311,7 @@ list_of_ugvs.add(
|
|
|
279
311
|
list_of_ugvs.add(
|
|
280
312
|
nickname="guardium",
|
|
281
313
|
name="Guardium",
|
|
314
|
+
image="Guardium.jpg",
|
|
282
315
|
features={
|
|
283
316
|
"control": UGV_Control.AI,
|
|
284
317
|
"cost": UGV_Cost.HIGH,
|
|
@@ -290,6 +323,7 @@ list_of_ugvs.add(
|
|
|
290
323
|
list_of_ugvs.add(
|
|
291
324
|
nickname="milica",
|
|
292
325
|
name="Milos & Milica",
|
|
326
|
+
image="Milos.jpg",
|
|
293
327
|
features={
|
|
294
328
|
"control": UGV_Control.RC,
|
|
295
329
|
"cost": UGV_Cost.MEDIUM,
|
|
@@ -304,6 +338,7 @@ list_of_ugvs.add(
|
|
|
304
338
|
list_of_ugvs.add(
|
|
305
339
|
nickname="taifun_m",
|
|
306
340
|
name="Taifun-M",
|
|
341
|
+
image="Taifun-M.jpg",
|
|
307
342
|
features={
|
|
308
343
|
"control": UGV_Control.RC,
|
|
309
344
|
"cost": UGV_Cost.HIGH,
|
|
@@ -317,6 +352,7 @@ list_of_ugvs.add(
|
|
|
317
352
|
list_of_ugvs.add(
|
|
318
353
|
nickname="jackal",
|
|
319
354
|
name="Jackal",
|
|
355
|
+
image="Jackal.jpeg",
|
|
320
356
|
features={
|
|
321
357
|
"control": UGV_Control.AI,
|
|
322
358
|
"cost": UGV_Cost.HIGH,
|
|
@@ -330,6 +366,7 @@ list_of_ugvs.add(
|
|
|
330
366
|
list_of_ugvs.add(
|
|
331
367
|
nickname="avantguard",
|
|
332
368
|
name="AvantGuard UGCV",
|
|
369
|
+
image="avantguard.jpg",
|
|
333
370
|
features={
|
|
334
371
|
"control": UGV_Control.AI,
|
|
335
372
|
"cost": UGV_Cost.HIGH,
|
|
@@ -343,6 +380,7 @@ list_of_ugvs.add(
|
|
|
343
380
|
list_of_ugvs.add(
|
|
344
381
|
nickname="sr-lambda",
|
|
345
382
|
name="SIM-RACAR-Lambda",
|
|
383
|
+
image="SIM-RACAR-Lambda.jpg",
|
|
346
384
|
features={
|
|
347
385
|
"control": UGV_Control.AI,
|
|
348
386
|
"cost": UGV_Cost.HIGH,
|
|
@@ -355,7 +393,8 @@ list_of_ugvs.add(
|
|
|
355
393
|
|
|
356
394
|
list_of_ugvs.add(
|
|
357
395
|
nickname="sharp_claw_1",
|
|
358
|
-
name="
|
|
396
|
+
name="Sharp Claw 1",
|
|
397
|
+
image="Sharp-Claw-1.jpg",
|
|
359
398
|
features={
|
|
360
399
|
"control": UGV_Control.RC,
|
|
361
400
|
"cost": UGV_Cost.HIGH,
|
|
@@ -369,7 +408,8 @@ list_of_ugvs.add(
|
|
|
369
408
|
|
|
370
409
|
list_of_ugvs.add(
|
|
371
410
|
nickname="sharp_claw_2",
|
|
372
|
-
name="
|
|
411
|
+
name="Sharp Claw 2",
|
|
412
|
+
image="Sharp-Claw-2.jpg",
|
|
373
413
|
features={
|
|
374
414
|
"control": UGV_Control.RC,
|
|
375
415
|
"cost": UGV_Cost.HIGH,
|
|
@@ -385,6 +425,7 @@ list_of_ugvs.add(
|
|
|
385
425
|
list_of_ugvs.add(
|
|
386
426
|
nickname="robattle",
|
|
387
427
|
name="Robattle",
|
|
428
|
+
image="Robattle.jpeg",
|
|
388
429
|
features={
|
|
389
430
|
"control": UGV_Control.AI,
|
|
390
431
|
"cost": UGV_Cost.HIGH,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.645.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
|
[](https://github.com/kamangir/bluer-ugv/actions/workflows/pylint.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/pytest.yml) [](https://github.com/kamangir/bluer-ugv/actions/workflows/bashtest.yml) [](https://pypi.org/project/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.
|
|
67
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.645.1`](https://github.com/kamangir/bluer-ugv).
|
|
68
68
|
|
|
69
69
|
|
|
70
70
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.616.1 → bluer_ugv-7.645.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|