bluer-ugv 7.665.1__tar.gz → 7.671.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.665.1/bluer_ugv.egg-info → bluer_ugv-7.671.1}/PKG-INFO +3 -3
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/README.md +2 -2
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/items.py +1 -1
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/__init__.py +19 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/items.py +14 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/mechanical.py +35 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/parts.py +21 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/power.py +5 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/root.py +8 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/schematics.py +14 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/specs.py +14 -0
- bluer_ugv-7.671.1/bluer_ugv/README/rangin/terraform.py +5 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/db.py +3 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/__init__.py +1 -1
- bluer_ugv-7.671.1/bluer_ugv/swallow/session/classical/audio.py +45 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/session.py +4 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1/bluer_ugv.egg-info}/PKG-INFO +3 -3
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv.egg-info/SOURCES.txt +8 -0
- bluer_ugv-7.665.1/bluer_ugv/README/rangin/__init__.py +0 -82
- bluer_ugv-7.665.1/bluer_ugv/README/rangin/items.py +0 -11
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/LICENSE +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/alias.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/git/rm_keys.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/git.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/swallow.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/alias.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/build.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/box.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/docs.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/power.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/schematics.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/shield/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/shield/docs.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/shield/testing.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/shield/v1.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/shield/v2.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/computer/testing.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/releases.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/root.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/shortcuts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/algo/driving.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/algo/tracking.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/design/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/README/ugvs/docs.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/assets/comparison.html +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/config.env +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/env.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/git.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/debug.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/void.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/swallow/targeting.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/pyproject.toml +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/requirements.txt +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/setup.cfg +0 -0
- {bluer_ugv-7.665.1 → bluer_ugv-7.671.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.671.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -39,7 +39,7 @@ pip install bluer_ugv
|
|
|
39
39
|
|
|
40
40
|
| | | |
|
|
41
41
|
| --- | --- | --- |
|
|
42
|
-
| [`swallow`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s little sister. | [`rangin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [ [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s little sister. | [`rangin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s ad robot. |
|
|
43
43
|
| [`ravin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/ravin) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/ravin) remote control car kit for teenagers. | [`eagle`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/eagle) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/eagle) a remotely controlled ballon. | [`fire`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/fire) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/fire) based on a used car. |
|
|
44
44
|
| [`beast`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/beast) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/beast) based on [UGV Beast PI ROS2](https://www.waveshare.com/wiki/UGV_Beast_PI_ROS2). | | |
|
|
45
45
|
|
|
@@ -65,7 +65,7 @@ pip install bluer_ugv
|
|
|
65
65
|
|
|
66
66
|
[](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)
|
|
67
67
|
|
|
68
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
68
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.671.1`](https://github.com/kamangir/bluer-ugv).
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -10,7 +10,7 @@ pip install bluer_ugv
|
|
|
10
10
|
|
|
11
11
|
| | | |
|
|
12
12
|
| --- | --- | --- |
|
|
13
|
-
| [`swallow`](./bluer_ugv/docs/swallow) [](./bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](./bluer_ugv/docs/arzhang) [](./bluer_ugv/docs/arzhang) [swallow](./bluer_ugv/docs/swallow)'s little sister. | [`rangin`](./bluer_ugv/docs/rangin) [ [](./bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](./bluer_ugv/docs/arzhang) [](./bluer_ugv/docs/arzhang) [swallow](./bluer_ugv/docs/swallow)'s little sister. | [`rangin`](./bluer_ugv/docs/rangin) [](./bluer_ugv/docs/rangin) [swallow](./bluer_ugv/docs/swallow)'s ad robot. |
|
|
14
14
|
| [`ravin`](./bluer_ugv/docs/ravin) [](./bluer_ugv/docs/ravin) remote control car kit for teenagers. | [`eagle`](./bluer_ugv/docs/eagle) [](./bluer_ugv/docs/eagle) a remotely controlled ballon. | [`fire`](./bluer_ugv/docs/fire) [](./bluer_ugv/docs/fire) based on a used car. |
|
|
15
15
|
| [`beast`](./bluer_ugv/docs/beast) [](./bluer_ugv/docs/beast) based on [UGV Beast PI ROS2](https://www.waveshare.com/wiki/UGV_Beast_PI_ROS2). | | |
|
|
16
16
|
|
|
@@ -36,5 +36,5 @@ pip install bluer_ugv
|
|
|
36
36
|
|
|
37
37
|
[](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)
|
|
38
38
|
|
|
39
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
39
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.671.1`](https://github.com/kamangir/bluer-ugv).
|
|
40
40
|
|
|
@@ -24,7 +24,7 @@ items = README.Items(
|
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
"name": "rangin",
|
|
27
|
-
"marquee": f"{rangin_assets2}/
|
|
27
|
+
"marquee": f"{rangin_assets2}/20251222_160737.jpg",
|
|
28
28
|
"description": "[swallow](./bluer_ugv/docs/swallow)'s ad robot.",
|
|
29
29
|
"url": "./bluer_ugv/docs/rangin",
|
|
30
30
|
},
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from bluer_ugv.README.rangin import (
|
|
2
|
+
mechanical,
|
|
3
|
+
parts,
|
|
4
|
+
power,
|
|
5
|
+
root,
|
|
6
|
+
schematics,
|
|
7
|
+
specs,
|
|
8
|
+
terraform,
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
docs = (
|
|
12
|
+
mechanical.docs
|
|
13
|
+
+ parts.docs
|
|
14
|
+
+ power.docs
|
|
15
|
+
+ root.docs
|
|
16
|
+
+ schematics.docs
|
|
17
|
+
+ specs.docs
|
|
18
|
+
+ terraform.docs
|
|
19
|
+
)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from bluer_objects.README.items import ImageItems
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.rangin.consts import rangin_assets2
|
|
4
|
+
from bluer_ugv.README.ugvs.db import dict_of_ugvs
|
|
5
|
+
|
|
6
|
+
items = ImageItems(
|
|
7
|
+
{
|
|
8
|
+
**{
|
|
9
|
+
f"{rangin_assets2}/concepts/11.png": "",
|
|
10
|
+
f"{rangin_assets2}/concepts/12.png": "",
|
|
11
|
+
},
|
|
12
|
+
**{url: "" for url in dict_of_ugvs["rangin"]["items"]},
|
|
13
|
+
}
|
|
14
|
+
)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
from bluer_objects.README.items import Items
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.rangin.consts import rangin_mechanical_design
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
docs = [
|
|
7
|
+
{
|
|
8
|
+
"path": "../docs/rangin/mechanical.md",
|
|
9
|
+
"cols": 2,
|
|
10
|
+
"items": Items(
|
|
11
|
+
[
|
|
12
|
+
{
|
|
13
|
+
"name": "arzhang",
|
|
14
|
+
"marquee": f"{rangin_mechanical_design}/robot.png?raw=true",
|
|
15
|
+
"url": f"{rangin_mechanical_design}/robot.stl",
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"name": "90",
|
|
19
|
+
"marquee": f"{rangin_mechanical_design}/robot-90.png?raw=true",
|
|
20
|
+
"url": f"{rangin_mechanical_design}/robot-90.stl",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "90 (without the cage)",
|
|
24
|
+
"marquee": f"{rangin_mechanical_design}/robot-90-2.png?raw=true",
|
|
25
|
+
"url": f"{rangin_mechanical_design}/robot-90.stl",
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "90c (curved)",
|
|
29
|
+
"marquee": f"{rangin_mechanical_design}/robot-90c.png?raw=true",
|
|
30
|
+
"url": f"{rangin_mechanical_design}/robot-90c.stl",
|
|
31
|
+
},
|
|
32
|
+
]
|
|
33
|
+
),
|
|
34
|
+
},
|
|
35
|
+
]
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
from bluer_sbc.parts.db import db_of_parts
|
|
2
|
+
from bluer_sbc.parts.consts import parts_url_prefix
|
|
3
|
+
|
|
4
|
+
from bluer_ugv.designs.rangin.parts import dict_of_parts
|
|
5
|
+
|
|
6
|
+
docs = [
|
|
7
|
+
{
|
|
8
|
+
"path": "../docs/rangin/parts.md",
|
|
9
|
+
"items": db_of_parts.as_images(
|
|
10
|
+
dict_of_parts,
|
|
11
|
+
reference=parts_url_prefix,
|
|
12
|
+
),
|
|
13
|
+
"macros": {
|
|
14
|
+
"parts:::": db_of_parts.as_list(
|
|
15
|
+
dict_of_parts,
|
|
16
|
+
reference=parts_url_prefix,
|
|
17
|
+
log=False,
|
|
18
|
+
),
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from bluer_objects.README.items import ImageItems
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.rangin.consts import rangin_electrical_design
|
|
4
|
+
|
|
5
|
+
docs = [
|
|
6
|
+
{
|
|
7
|
+
"path": "../docs/rangin/schematics.md",
|
|
8
|
+
"items": ImageItems(
|
|
9
|
+
{
|
|
10
|
+
f"{rangin_electrical_design}/electrical.png?raw=true": f"{rangin_electrical_design}/electrical.svg",
|
|
11
|
+
},
|
|
12
|
+
),
|
|
13
|
+
},
|
|
14
|
+
]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
from bluer_objects.README.items import ImageItems
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.rangin.consts import rangin_assets2
|
|
4
|
+
|
|
5
|
+
docs = [
|
|
6
|
+
{
|
|
7
|
+
"path": "../docs/rangin/specs.md",
|
|
8
|
+
"items": ImageItems(
|
|
9
|
+
{
|
|
10
|
+
f"{rangin_assets2}/20251116_124842.jpg": "",
|
|
11
|
+
}
|
|
12
|
+
),
|
|
13
|
+
},
|
|
14
|
+
]
|
|
@@ -48,6 +48,9 @@ dict_of_ugvs = {
|
|
|
48
48
|
f"{rangin_assets2}/20251221_125120.jpg",
|
|
49
49
|
f"{rangin_assets2}/20251222_104404.jpg",
|
|
50
50
|
f"{rangin_assets2}/20251222_110634.jpg",
|
|
51
|
+
f"{rangin_assets2}/20251222_160737.jpg",
|
|
52
|
+
f"{rangin_assets2}/20251222_165829.jpg",
|
|
53
|
+
f"{rangin_assets2}/20251222_173509.jpg",
|
|
51
54
|
],
|
|
52
55
|
},
|
|
53
56
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import threading
|
|
2
|
+
import time
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
from bluer_sbc.env import BLUER_SBC_AUDIO_ENABLED
|
|
6
|
+
|
|
7
|
+
from bluer_ugv.logger import logger
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class ClassicalAudio:
|
|
11
|
+
def __init__(
|
|
12
|
+
self,
|
|
13
|
+
):
|
|
14
|
+
self.enabled = BLUER_SBC_AUDIO_ENABLED == 1
|
|
15
|
+
logger.info(
|
|
16
|
+
"{}: {}".format(
|
|
17
|
+
self.__class__.__name__,
|
|
18
|
+
("enabled" if self.enabled else "disabled"),
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
self.running = False
|
|
23
|
+
|
|
24
|
+
if not self.enabled:
|
|
25
|
+
return
|
|
26
|
+
|
|
27
|
+
self.running = True
|
|
28
|
+
self.thread = threading.Thread(target=self.loop, daemon=True)
|
|
29
|
+
self.thread.start()
|
|
30
|
+
|
|
31
|
+
def stop(self):
|
|
32
|
+
if not self.enabled:
|
|
33
|
+
return
|
|
34
|
+
|
|
35
|
+
self.running = False
|
|
36
|
+
self.thread.join()
|
|
37
|
+
|
|
38
|
+
logger.info(f"{self.__class__.__name__}.stopped.")
|
|
39
|
+
|
|
40
|
+
def loop(self):
|
|
41
|
+
logger.info(f"{self.__class__.__name__}.loop started.")
|
|
42
|
+
|
|
43
|
+
while self.running:
|
|
44
|
+
time.sleep(5)
|
|
45
|
+
logger.info("audio loop 🪄")
|
|
@@ -29,6 +29,7 @@ from bluer_ugv.swallow.session.classical.screen.classes import ClassicalScreen
|
|
|
29
29
|
from bluer_ugv.swallow.session.classical.ultrasonic_sensor.classes import (
|
|
30
30
|
ClassicalUltrasonicSensor,
|
|
31
31
|
)
|
|
32
|
+
from bluer_ugv.swallow.session.classical.audio import ClassicalAudio
|
|
32
33
|
from bluer_ugv.env import BLUER_UGV_MOUSEPAD_ENABLED
|
|
33
34
|
from bluer_ugv.logger import logger
|
|
34
35
|
|
|
@@ -44,6 +45,8 @@ class ClassicalSession:
|
|
|
44
45
|
|
|
45
46
|
self.leds = ClassicalLeds()
|
|
46
47
|
|
|
48
|
+
self.audio = ClassicalAudio()
|
|
49
|
+
|
|
47
50
|
self.setpoint = ClassicalSetPoint(
|
|
48
51
|
leds=self.leds,
|
|
49
52
|
)
|
|
@@ -136,6 +139,7 @@ class ClassicalSession:
|
|
|
136
139
|
self.timing = Timing()
|
|
137
140
|
|
|
138
141
|
def cleanup(self):
|
|
142
|
+
self.audio.stop()
|
|
139
143
|
self.ultrasonic_sensor.stop()
|
|
140
144
|
self.camera.stop()
|
|
141
145
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.671.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -39,7 +39,7 @@ pip install bluer_ugv
|
|
|
39
39
|
|
|
40
40
|
| | | |
|
|
41
41
|
| --- | --- | --- |
|
|
42
|
-
| [`swallow`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s little sister. | [`rangin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [ [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow) based on power wheels. | [`arzhang`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/arzhang) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s little sister. | [`rangin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/rangin) [swallow](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/swallow)'s ad robot. |
|
|
43
43
|
| [`ravin`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/ravin) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/ravin) remote control car kit for teenagers. | [`eagle`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/eagle) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/eagle) a remotely controlled ballon. | [`fire`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/fire) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/fire) based on a used car. |
|
|
44
44
|
| [`beast`](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/beast) [](https://github.com/kamangir/bluer-ugv/blob/main/bluer_ugv/docs/beast) based on [UGV Beast PI ROS2](https://www.waveshare.com/wiki/UGV_Beast_PI_ROS2). | | |
|
|
45
45
|
|
|
@@ -65,7 +65,7 @@ pip install bluer_ugv
|
|
|
65
65
|
|
|
66
66
|
[](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)
|
|
67
67
|
|
|
68
|
-
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.
|
|
68
|
+
built by 🌀 [`bluer README`](https://github.com/kamangir/bluer-objects/tree/main/bluer_objects/README), based on 🐬 [`bluer_ugv-7.671.1`](https://github.com/kamangir/bluer-ugv).
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -99,6 +99,13 @@ bluer_ugv/README/fire/items.py
|
|
|
99
99
|
bluer_ugv/README/rangin/__init__.py
|
|
100
100
|
bluer_ugv/README/rangin/consts.py
|
|
101
101
|
bluer_ugv/README/rangin/items.py
|
|
102
|
+
bluer_ugv/README/rangin/mechanical.py
|
|
103
|
+
bluer_ugv/README/rangin/parts.py
|
|
104
|
+
bluer_ugv/README/rangin/power.py
|
|
105
|
+
bluer_ugv/README/rangin/root.py
|
|
106
|
+
bluer_ugv/README/rangin/schematics.py
|
|
107
|
+
bluer_ugv/README/rangin/specs.py
|
|
108
|
+
bluer_ugv/README/rangin/terraform.py
|
|
102
109
|
bluer_ugv/README/ravin/__init__.py
|
|
103
110
|
bluer_ugv/README/ravin/consts.py
|
|
104
111
|
bluer_ugv/README/ravin/items.py
|
|
@@ -181,6 +188,7 @@ bluer_ugv/swallow/session/__init__.py
|
|
|
181
188
|
bluer_ugv/swallow/session/__main__.py
|
|
182
189
|
bluer_ugv/swallow/session/functions.py
|
|
183
190
|
bluer_ugv/swallow/session/classical/__init__.py
|
|
191
|
+
bluer_ugv/swallow/session/classical/audio.py
|
|
184
192
|
bluer_ugv/swallow/session/classical/leds.py
|
|
185
193
|
bluer_ugv/swallow/session/classical/mode.py
|
|
186
194
|
bluer_ugv/swallow/session/classical/mousepad.py
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
from bluer_objects.README.items import ImageItems, Items
|
|
2
|
-
from bluer_sbc.parts.db import db_of_parts
|
|
3
|
-
from bluer_sbc.parts.consts import parts_url_prefix
|
|
4
|
-
|
|
5
|
-
from bluer_ugv.README.rangin.items import items
|
|
6
|
-
from bluer_ugv.designs.rangin.parts import dict_of_parts
|
|
7
|
-
from bluer_ugv.README.rangin.consts import (
|
|
8
|
-
rangin_assets2,
|
|
9
|
-
rangin_electrical_design,
|
|
10
|
-
rangin_mechanical_design,
|
|
11
|
-
)
|
|
12
|
-
|
|
13
|
-
docs = [
|
|
14
|
-
{
|
|
15
|
-
"items": items,
|
|
16
|
-
"path": "../docs/rangin",
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"path": "../docs/rangin/specs.md",
|
|
20
|
-
"items": ImageItems(
|
|
21
|
-
{
|
|
22
|
-
f"{rangin_assets2}/20251116_124842.jpg": "",
|
|
23
|
-
}
|
|
24
|
-
),
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"path": "../docs/rangin/parts.md",
|
|
28
|
-
"items": db_of_parts.as_images(
|
|
29
|
-
dict_of_parts,
|
|
30
|
-
reference=parts_url_prefix,
|
|
31
|
-
),
|
|
32
|
-
"macros": {
|
|
33
|
-
"parts:::": db_of_parts.as_list(
|
|
34
|
-
dict_of_parts,
|
|
35
|
-
reference=parts_url_prefix,
|
|
36
|
-
log=False,
|
|
37
|
-
),
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"path": "../docs/rangin/power.md",
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
"path": "../docs/rangin/schematics.md",
|
|
45
|
-
"items": ImageItems(
|
|
46
|
-
{
|
|
47
|
-
f"{rangin_electrical_design}/electrical.png?raw=true": f"{rangin_electrical_design}/electrical.svg",
|
|
48
|
-
},
|
|
49
|
-
),
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"path": "../docs/rangin/mechanical.md",
|
|
53
|
-
"cols": 2,
|
|
54
|
-
"items": Items(
|
|
55
|
-
[
|
|
56
|
-
{
|
|
57
|
-
"name": "arzhang",
|
|
58
|
-
"marquee": f"{rangin_mechanical_design}/robot.png?raw=true",
|
|
59
|
-
"url": f"{rangin_mechanical_design}/robot.stl",
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"name": "90",
|
|
63
|
-
"marquee": f"{rangin_mechanical_design}/robot-90.png?raw=true",
|
|
64
|
-
"url": f"{rangin_mechanical_design}/robot-90.stl",
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
"name": "90 (without the cage)",
|
|
68
|
-
"marquee": f"{rangin_mechanical_design}/robot-90-2.png?raw=true",
|
|
69
|
-
"url": f"{rangin_mechanical_design}/robot-90.stl",
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"name": "90c (curved)",
|
|
73
|
-
"marquee": f"{rangin_mechanical_design}/robot-90c.png?raw=true",
|
|
74
|
-
"url": f"{rangin_mechanical_design}/robot-90c.stl",
|
|
75
|
-
},
|
|
76
|
-
]
|
|
77
|
-
),
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"path": "../docs/rangin/terraform.md",
|
|
81
|
-
},
|
|
82
|
-
]
|
|
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.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.665.1 → bluer_ugv-7.671.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.665.1 → bluer_ugv-7.671.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|