bluer-ugv 7.200.1__tar.gz → 7.207.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.200.1/bluer_ugv.egg-info → bluer_ugv-7.207.1}/PKG-INFO +2 -2
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/README.md +1 -1
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/debug.py +24 -6
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/generic.py +2 -2
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +8 -1
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +1 -1
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +9 -6
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/targeting.py +3 -3
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1/bluer_ugv.egg-info}/PKG-INFO +2 -2
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/LICENSE +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/alias.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/swallow.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/UGVs.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/alias.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/build.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/rangin/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/rangin/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/root.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/shield.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/shortcuts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/config.env +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/arzhang/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/arzhang/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/env.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/session.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv.egg-info/SOURCES.txt +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/pyproject.toml +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/requirements.txt +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/setup.cfg +0 -0
- {bluer_ugv-7.200.1 → bluer_ugv-7.207.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.207.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.207.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.207.1`](https://github.com/kamangir/bluer-ugv).
|
|
39
39
|
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
from blueness import module
|
|
2
2
|
import numpy as np
|
|
3
3
|
import cv2
|
|
4
|
-
from typing import List
|
|
4
|
+
from typing import List, Dict
|
|
5
5
|
|
|
6
6
|
from bluer_options import string
|
|
7
7
|
from bluer_objects import file
|
|
8
8
|
from bluer_objects import objects
|
|
9
|
+
from bluer_objects.logger.stitch import stitch_images
|
|
9
10
|
from bluer_objects.graphics.gif import generate_animated_gif
|
|
10
|
-
from bluer_algo.socket.
|
|
11
|
-
from bluer_algo.
|
|
11
|
+
from bluer_algo.socket.connection import SocketConnection
|
|
12
|
+
from bluer_algo.socket.message import SocketMessage
|
|
12
13
|
|
|
13
14
|
from bluer_ugv import NAME
|
|
14
15
|
from bluer_ugv.logger import logger
|
|
@@ -31,14 +32,17 @@ def debug(
|
|
|
31
32
|
)
|
|
32
33
|
)
|
|
33
34
|
|
|
34
|
-
socket =
|
|
35
|
+
socket = SocketConnection.listen_on()
|
|
35
36
|
|
|
36
37
|
title = "debug..."
|
|
37
38
|
|
|
38
39
|
cv2.namedWindow(title)
|
|
39
40
|
logger.info("Ctrl+C to exit...")
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
blank_image = np.zeros((480, 640, 3), np.uint8)
|
|
43
|
+
|
|
44
|
+
image = blank_image.copy()
|
|
45
|
+
dict_of_images: Dict[str, np.ndarray] = {}
|
|
42
46
|
|
|
43
47
|
list_of_images: List[str] = []
|
|
44
48
|
try:
|
|
@@ -46,10 +50,24 @@ def debug(
|
|
|
46
50
|
cv2.imshow(title, np.flip(image, axis=2))
|
|
47
51
|
cv2.waitKey(1)
|
|
48
52
|
|
|
49
|
-
success,
|
|
53
|
+
success, message = socket.receive_data(SocketMessage)
|
|
50
54
|
if not success:
|
|
51
55
|
break
|
|
52
56
|
|
|
57
|
+
assert isinstance(message, SocketMessage)
|
|
58
|
+
|
|
59
|
+
logger.info(f"message from {message.hostname}.")
|
|
60
|
+
|
|
61
|
+
if "image" not in message.payload:
|
|
62
|
+
logger.warning("no image.")
|
|
63
|
+
continue
|
|
64
|
+
|
|
65
|
+
dict_of_images[message.hostname] = message.payload["image"]
|
|
66
|
+
|
|
67
|
+
image = stitch_images(
|
|
68
|
+
[image for _, image in sorted(dict_of_images.items())]
|
|
69
|
+
)
|
|
70
|
+
|
|
53
71
|
if save_images:
|
|
54
72
|
filename = objects.path_of(
|
|
55
73
|
filename="{}.png".format(string.timestamp()),
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/generic.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
|
-
from bluer_algo.socket.
|
|
3
|
+
from bluer_algo.socket.connection import SocketConnection, DEV_HOST
|
|
4
4
|
from bluer_sbc.imager.camera import instance as camera
|
|
5
5
|
from bluer_sbc.env import BLUER_SBC_ENV
|
|
6
6
|
|
|
@@ -33,7 +33,7 @@ class ClassicalCamera:
|
|
|
33
33
|
camera.close(log=True)
|
|
34
34
|
|
|
35
35
|
def send_debug_data(self, data: Any) -> bool:
|
|
36
|
-
socket =
|
|
36
|
+
socket = SocketConnection.connect_to(DEV_HOST)
|
|
37
37
|
return socket.send_data(data)
|
|
38
38
|
|
|
39
39
|
# multi-threaded support
|
|
@@ -10,6 +10,7 @@ from bluer_sbc.imager.camera import instance as camera
|
|
|
10
10
|
from bluer_sbc.env import BLUER_SBC_CAMERA_WIDTH
|
|
11
11
|
from bluer_algo.yolo.dataset.classes import YoloDataset
|
|
12
12
|
from bluer_algo.yolo.model.predictor import YoloPredictor
|
|
13
|
+
from bluer_algo.socket.message import SocketMessage
|
|
13
14
|
|
|
14
15
|
from bluer_ugv import env
|
|
15
16
|
from bluer_ugv.swallow.session.classical.camera.generic import ClassicalCamera
|
|
@@ -145,7 +146,13 @@ class ClassicalYoloCamera(ClassicalCamera):
|
|
|
145
146
|
return success
|
|
146
147
|
|
|
147
148
|
if debug_mode:
|
|
148
|
-
if not self.send_debug_data(
|
|
149
|
+
if not self.send_debug_data(
|
|
150
|
+
SocketMessage(
|
|
151
|
+
{
|
|
152
|
+
"image": metadata["annotated_image"],
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
):
|
|
149
156
|
logger.warning("failed to send debug data.")
|
|
150
157
|
|
|
151
158
|
if not metadata["detections"]:
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py
RENAMED
|
@@ -3,7 +3,7 @@ import threading
|
|
|
3
3
|
from typing import Any, Dict
|
|
4
4
|
|
|
5
5
|
from bluer_sbc.session.functions import reply_to_bash
|
|
6
|
-
from bluer_algo.socket.
|
|
6
|
+
from bluer_algo.socket.connection import DEV_HOST
|
|
7
7
|
|
|
8
8
|
from bluer_ugv.swallow.session.classical.keyboard.keys import ControlKeys
|
|
9
9
|
from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py
RENAMED
|
@@ -9,14 +9,17 @@ class ControlKeys:
|
|
|
9
9
|
def __init__(
|
|
10
10
|
self,
|
|
11
11
|
is_numpad: bool = BLUER_SBC_SWALLOW_HAS_FULL_KEYBOARD == 0,
|
|
12
|
+
log: bool = True,
|
|
12
13
|
):
|
|
13
14
|
self.is_numpad = is_numpad
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
15
|
+
|
|
16
|
+
if log:
|
|
17
|
+
logger.info(
|
|
18
|
+
"{}: {}".format(
|
|
19
|
+
self.__class__.__name__,
|
|
20
|
+
"numpad" if self.is_numpad else "full",
|
|
21
|
+
)
|
|
18
22
|
)
|
|
19
|
-
)
|
|
20
23
|
|
|
21
24
|
self._keys: Dict[str, Tuple[str, str]] = {
|
|
22
25
|
"ultrasonic off": ("n", "-"),
|
|
@@ -36,7 +39,7 @@ class ControlKeys:
|
|
|
36
39
|
|
|
37
40
|
@staticmethod
|
|
38
41
|
def as_table():
|
|
39
|
-
keys = ControlKeys()
|
|
42
|
+
keys = ControlKeys(log=False)
|
|
40
43
|
table = keys._keys.copy() # pylint: disable=protected-access
|
|
41
44
|
|
|
42
45
|
for is_numpad in [False, True]:
|
|
@@ -2,7 +2,7 @@ from blueness import module
|
|
|
2
2
|
import numpy as np
|
|
3
3
|
|
|
4
4
|
from bluer_options.terminal import hr
|
|
5
|
-
from bluer_algo.socket.
|
|
5
|
+
from bluer_algo.socket.connection import SocketConnection
|
|
6
6
|
from bluer_algo.tracker.classes.target import Target
|
|
7
7
|
|
|
8
8
|
from bluer_ugv import NAME
|
|
@@ -26,7 +26,7 @@ def select_target(
|
|
|
26
26
|
|
|
27
27
|
try:
|
|
28
28
|
while loop:
|
|
29
|
-
socket =
|
|
29
|
+
socket = SocketConnection.listen_on()
|
|
30
30
|
success, image = socket.receive_data(np.ndarray)
|
|
31
31
|
if not success:
|
|
32
32
|
return success
|
|
@@ -38,7 +38,7 @@ def select_target(
|
|
|
38
38
|
if not success:
|
|
39
39
|
return success
|
|
40
40
|
|
|
41
|
-
socket =
|
|
41
|
+
socket = SocketConnection.connect_to(host)
|
|
42
42
|
if not socket.send_data(track_window):
|
|
43
43
|
return False
|
|
44
44
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.207.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.207.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
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.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
|
|
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.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/design/mechanical.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py
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
|
|
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.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/__init__.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/navigation.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/camera/tracking.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/__init__.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/generic.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/motor/steering.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py
RENAMED
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bluer_ugv-7.200.1 → bluer_ugv-7.207.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py
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
|