bluer-ugv 7.824.1__tar.gz → 7.835.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.
Potentially problematic release.
This version of bluer-ugv might be problematic. Click here for more details.
- {bluer_ugv-7.824.1/bluer_ugv.egg-info → bluer_ugv-7.835.1}/PKG-INFO +2 -2
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/README.md +1 -1
- bluer_ugv-7.835.1/bluer_ugv/README/ugvs/location.py +22 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/__init__.py +1 -1
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/classes.py +0 -3
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/client.py +2 -8
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/__init__.py +1 -0
- bluer_ugv-7.835.1/bluer_ugv/swallow/session/classical/motor/void.py +20 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/session.py +56 -11
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py +6 -0
- bluer_ugv-7.835.1/bluer_ugv/swallow/session/classical/setpoint/ethernet.py +31 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1/bluer_ugv.egg-info}/PKG-INFO +2 -2
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/SOURCES.txt +3 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/LICENSE +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/MANIFEST.in +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/abcli.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/actions.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/aka.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/alias.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/bluer_ugv.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/combine.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/download.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/edit.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/list.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset/upload.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/dataset.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/debug.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/cp.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/list.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env/set.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/env.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ethernet/test.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ethernet.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/git/rm_keys.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/git.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/keyboard/test.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/keyboard.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/select_target.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/session.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic/review.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic/test.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/ultrasonic.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/play.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/cat.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/download.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/edit.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist/upload.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video/playlist.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow/video.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/swallow.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/README.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/help.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_download_upload.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_edit.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_list.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_video_play.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_video_playlist.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/ugv_get.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/ultrasonic_sensor_review.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/version.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/get.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/git.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/ssh.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/ugv/watch.sh +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/aliases.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/algo.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/design.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/flag.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/arzhang/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/beast.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/build.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/box.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/power.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/schematics.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/testing.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/v1.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/shield/v2.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/computer/testing.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/eagle/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/fire/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/mechanical.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/power.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/root.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/schematics.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/specs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/rangin/terraform.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ravin/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/releases.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/root.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/shortcuts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/analog.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/driving.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/navigation.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/tracking.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/algo/yolo.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/ethernet.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/mechanical.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/digital/design/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/swallow/items.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/build.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/DYI.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/concealment.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/control.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/cost.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/db.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/payload.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/ps.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/range.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/sanction_proof.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/size.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/speed.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/swarm.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/features/uv_delivery.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/references/db.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/comparison/ugvs/db.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/db.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/docs.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/ethernet.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/README/ugvs/get.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/assets/comparison.html +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/config.env +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/eagle/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/eagle/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/fire/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/fire/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/rangin/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/rangin/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin3/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin3/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin4/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/designs/ravin/ravin4/parts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/env.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/functions.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/get.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/git.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/ssh.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/dataset.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/debug.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/env.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/ethernet.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/git.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/keyboard.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/select_target.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/ultrasonic_sensor.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/functions.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/swallow/video/playlist.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/help/watch.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/host.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/logger.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/sample.env +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/dataset/combination.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/debug.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/generic.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/navigation.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/tracking.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/void.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/camera/yolo.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/command.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/testing.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/keys.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/keyboard/testing.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/leds.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/mode.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/generic.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/left.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/rear.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/right.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/steering.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/mousepad.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/position.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/push_button.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/engine.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/player.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/screen/video/playlist.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/steering.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/classes.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/consts.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/detection_list.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/log.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/pack.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/review.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/sensor.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ultrasonic_sensor/testing.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/functions.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/targeting.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/urls.py +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/dependency_links.txt +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/requires.txt +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv.egg-info/top_level.txt +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/pyproject.toml +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/requirements.txt +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/setup.cfg +0 -0
- {bluer_ugv-7.824.1 → bluer_ugv-7.835.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.835.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -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.835.1`](https://github.com/kamangir/bluer-ugv).
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
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.835.1`](https://github.com/kamangir/bluer-ugv).
|
|
39
39
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Tuple
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.README.ugvs.db import dict_of_ugvs
|
|
4
|
+
from bluer_ugv.logger import logger
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def get_location(
|
|
8
|
+
hostname: str,
|
|
9
|
+
log: bool = True,
|
|
10
|
+
) -> Tuple[bool, str]:
|
|
11
|
+
for info in dict_of_ugvs.values():
|
|
12
|
+
dict_of_computers = info.get("computers", {})
|
|
13
|
+
assert isinstance(dict_of_computers, dict)
|
|
14
|
+
|
|
15
|
+
for location, hostname_ in dict_of_computers.items():
|
|
16
|
+
if hostname == hostname_:
|
|
17
|
+
if log:
|
|
18
|
+
logger.info(f"{hostname}.location={location}")
|
|
19
|
+
return True, location
|
|
20
|
+
|
|
21
|
+
logger.error(f"{hostname}.location not found.")
|
|
22
|
+
return False, ""
|
{bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/ethernet/client.py
RENAMED
|
@@ -6,8 +6,6 @@ import struct
|
|
|
6
6
|
import threading
|
|
7
7
|
import time
|
|
8
8
|
|
|
9
|
-
from bluer_sbc.session.functions import reply_to_bash
|
|
10
|
-
|
|
11
9
|
from bluer_ugv.logger import logger
|
|
12
10
|
from bluer_ugv.swallow.session.classical.ethernet.command import EthernetCommand
|
|
13
11
|
from bluer_ugv.logger import logger
|
|
@@ -21,14 +19,13 @@ class EthernetClient:
|
|
|
21
19
|
is_server: bool = False,
|
|
22
20
|
reconnect_sec: float = 1.0,
|
|
23
21
|
):
|
|
24
|
-
self.stop_received: bool = False
|
|
25
|
-
|
|
26
22
|
self.host = host
|
|
27
23
|
self.port = port
|
|
28
24
|
self.is_server = is_server
|
|
29
25
|
self.reconnect_sec = reconnect_sec
|
|
30
26
|
|
|
31
27
|
self._send_queue: SimpleQueue[EthernetCommand] = SimpleQueue()
|
|
28
|
+
self._receive_queue: SimpleQueue[EthernetCommand] = SimpleQueue()
|
|
32
29
|
|
|
33
30
|
self._lock = threading.Lock()
|
|
34
31
|
self._sock: Optional[socket.socket] = None
|
|
@@ -250,10 +247,7 @@ class EthernetClient:
|
|
|
250
247
|
)
|
|
251
248
|
)
|
|
252
249
|
|
|
253
|
-
|
|
254
|
-
reply_to_bash(command.data.get("event", "unknown"))
|
|
255
|
-
self.stop_received = True
|
|
256
|
-
logger.info("stop received.")
|
|
250
|
+
self._receive_queue.put(command)
|
|
257
251
|
|
|
258
252
|
# 2) drain outbound queue
|
|
259
253
|
self._drain_send_queue()
|
{bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/motor/__init__.py
RENAMED
|
@@ -2,3 +2,4 @@ from bluer_ugv.swallow.session.classical.motor.left import ClassicalLeftMotor
|
|
|
2
2
|
from bluer_ugv.swallow.session.classical.motor.right import ClassicalRightMotor
|
|
3
3
|
from bluer_ugv.swallow.session.classical.motor.rear import ClassicalRearMotors
|
|
4
4
|
from bluer_ugv.swallow.session.classical.motor.steering import ClassicalSteeringMotor
|
|
5
|
+
from bluer_ugv.swallow.session.classical.motor.void import ClassicalVoidMotor
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
|
|
2
|
+
from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
class ClassicalVoidMotor:
|
|
6
|
+
def __init__(
|
|
7
|
+
self,
|
|
8
|
+
setpoint: ClassicalSetPoint,
|
|
9
|
+
leds: ClassicalLeds,
|
|
10
|
+
):
|
|
11
|
+
pass
|
|
12
|
+
|
|
13
|
+
def cleanup(self):
|
|
14
|
+
pass
|
|
15
|
+
|
|
16
|
+
def initialize(self) -> bool:
|
|
17
|
+
return True
|
|
18
|
+
|
|
19
|
+
def update(self) -> bool:
|
|
20
|
+
return True
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
from RPi import GPIO # type: ignore
|
|
2
|
+
from queue import Empty
|
|
2
3
|
|
|
3
4
|
from bluer_options import string
|
|
5
|
+
from bluer_options.env import abcli_hostname
|
|
4
6
|
from bluer_options.timing.classes import Timing
|
|
5
7
|
from bluer_objects.env import abcli_object_name
|
|
6
8
|
from bluer_objects.metadata import post_to_object
|
|
7
9
|
from bluer_sbc.env import BLUER_SBC_CAMERA_KIND, BLUER_SBC_SWALLOW_HAS_STEERING
|
|
10
|
+
from bluer_sbc.session.functions import reply_to_bash
|
|
8
11
|
|
|
12
|
+
from bluer_ugv.README.ugvs.location import get_location
|
|
9
13
|
from bluer_ugv.swallow.session.classical.ethernet.classes import ClassicalEthernet
|
|
10
14
|
from bluer_ugv.swallow.session.classical.camera import (
|
|
11
15
|
ClassicalCamera,
|
|
@@ -23,8 +27,12 @@ from bluer_ugv.swallow.session.classical.motor import (
|
|
|
23
27
|
ClassicalRightMotor,
|
|
24
28
|
ClassicalRearMotors,
|
|
25
29
|
ClassicalSteeringMotor,
|
|
30
|
+
ClassicalVoidMotor,
|
|
26
31
|
)
|
|
27
32
|
from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
|
|
33
|
+
from bluer_ugv.swallow.session.classical.setpoint.ethernet import (
|
|
34
|
+
ClassicalEthernetSetPoint,
|
|
35
|
+
)
|
|
28
36
|
from bluer_ugv.swallow.session.classical.position import ClassicalPosition
|
|
29
37
|
from bluer_ugv.swallow.session.classical.screen.classes import ClassicalScreen
|
|
30
38
|
from bluer_ugv.swallow.session.classical.ultrasonic_sensor.classes import (
|
|
@@ -42,6 +50,8 @@ class ClassicalSession:
|
|
|
42
50
|
):
|
|
43
51
|
self.object_name = object_name
|
|
44
52
|
|
|
53
|
+
_, self.location = get_location(abcli_hostname)
|
|
54
|
+
|
|
45
55
|
GPIO.setmode(GPIO.BCM)
|
|
46
56
|
|
|
47
57
|
self.ethernet = ClassicalEthernet()
|
|
@@ -52,7 +62,10 @@ class ClassicalSession:
|
|
|
52
62
|
leds=self.leds,
|
|
53
63
|
)
|
|
54
64
|
|
|
55
|
-
self.setpoint =
|
|
65
|
+
self.setpoint = (
|
|
66
|
+
ClassicalSetPoint if self.location == "front" else ClassicalEthernetSetPoint
|
|
67
|
+
)(
|
|
68
|
+
ethernet=self.ethernet,
|
|
56
69
|
leds=self.leds,
|
|
57
70
|
)
|
|
58
71
|
|
|
@@ -81,27 +94,34 @@ class ClassicalSession:
|
|
|
81
94
|
logger.info("has_steering: {}".format(self.has_steering))
|
|
82
95
|
|
|
83
96
|
self.motor1 = (
|
|
84
|
-
|
|
97
|
+
ClassicalVoidMotor
|
|
98
|
+
if self.location != "front"
|
|
99
|
+
else ClassicalSteeringMotor if self.has_steering else ClassicalRightMotor
|
|
85
100
|
)(
|
|
86
101
|
setpoint=self.setpoint,
|
|
87
102
|
leds=self.leds,
|
|
88
103
|
)
|
|
89
104
|
|
|
90
105
|
self.motor2 = (
|
|
91
|
-
|
|
106
|
+
ClassicalVoidMotor
|
|
107
|
+
if self.location != "front"
|
|
108
|
+
else ClassicalRearMotors if self.has_steering else ClassicalLeftMotor
|
|
92
109
|
)(
|
|
93
110
|
setpoint=self.setpoint,
|
|
94
111
|
leds=self.leds,
|
|
95
112
|
)
|
|
96
113
|
|
|
97
|
-
self.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
114
|
+
if self.location == "front":
|
|
115
|
+
logger.info(
|
|
116
|
+
"wheel arrangement: {} + {}".format(
|
|
117
|
+
self.motor1.role,
|
|
118
|
+
self.motor2.role,
|
|
119
|
+
)
|
|
103
120
|
)
|
|
104
|
-
|
|
121
|
+
else:
|
|
122
|
+
logger.info("no wheels.")
|
|
123
|
+
|
|
124
|
+
self.position = ClassicalPosition(object_name)
|
|
105
125
|
|
|
106
126
|
camera_class = (
|
|
107
127
|
ClassicalVoidCamera
|
|
@@ -199,7 +219,6 @@ class ClassicalSession:
|
|
|
199
219
|
self.timing.start("session.update")
|
|
200
220
|
|
|
201
221
|
for thing in [
|
|
202
|
-
self.ethernet,
|
|
203
222
|
self.keyboard,
|
|
204
223
|
self.push_button,
|
|
205
224
|
self.camera,
|
|
@@ -218,4 +237,30 @@ class ClassicalSession:
|
|
|
218
237
|
self.timing.stop(thing.__class__.__name__)
|
|
219
238
|
|
|
220
239
|
self.timing.stop("session.update")
|
|
240
|
+
if self.location != "front":
|
|
241
|
+
return True
|
|
242
|
+
|
|
243
|
+
while True:
|
|
244
|
+
try:
|
|
245
|
+
command = (
|
|
246
|
+
self.ethernet.client._receive_queue.get_nowait()
|
|
247
|
+
) # pylint: disable=protected-access
|
|
248
|
+
except Empty:
|
|
249
|
+
break
|
|
250
|
+
|
|
251
|
+
if command.action == "keyboard":
|
|
252
|
+
reply_to_bash(command.data.get("event", "unknown"))
|
|
253
|
+
logger.info("stop received.")
|
|
254
|
+
return False
|
|
255
|
+
|
|
256
|
+
if command.action == "setpoint.put":
|
|
257
|
+
self.setpoint.put(
|
|
258
|
+
value=command.data.get("value", 0),
|
|
259
|
+
what=command.data.get("what", "void"),
|
|
260
|
+
log=True,
|
|
261
|
+
steering_expires_in=command.data.get("steering_expires_in", 0),
|
|
262
|
+
)
|
|
263
|
+
else:
|
|
264
|
+
logger.warning(f"unknown command: {command.as_str()}")
|
|
265
|
+
|
|
221
266
|
return True
|
{bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/swallow/session/classical/setpoint/classes.py
RENAMED
|
@@ -2,9 +2,11 @@ import threading
|
|
|
2
2
|
from typing import Union, Dict
|
|
3
3
|
import time
|
|
4
4
|
|
|
5
|
+
|
|
5
6
|
from bluer_options import string
|
|
6
7
|
|
|
7
8
|
from bluer_ugv.swallow.session.classical.leds import ClassicalLeds
|
|
9
|
+
from bluer_ugv.swallow.session.classical.ethernet.classes import ClassicalEthernet
|
|
8
10
|
from bluer_ugv.swallow.session.classical.setpoint.steering import (
|
|
9
11
|
generate_left_and_right,
|
|
10
12
|
)
|
|
@@ -14,6 +16,7 @@ from bluer_ugv.logger import logger
|
|
|
14
16
|
class ClassicalSetPoint:
|
|
15
17
|
def __init__(
|
|
16
18
|
self,
|
|
19
|
+
ethernet: ClassicalEthernet,
|
|
17
20
|
leds: ClassicalLeds,
|
|
18
21
|
):
|
|
19
22
|
self.speed = 0
|
|
@@ -23,10 +26,13 @@ class ClassicalSetPoint:
|
|
|
23
26
|
|
|
24
27
|
self.started = False
|
|
25
28
|
|
|
29
|
+
self.ethernet = ethernet
|
|
26
30
|
self.leds = leds
|
|
27
31
|
|
|
28
32
|
self._lock = threading.Lock()
|
|
29
33
|
|
|
34
|
+
logger.info(f"{self.__class__.__name__} created.")
|
|
35
|
+
|
|
30
36
|
def get(
|
|
31
37
|
self,
|
|
32
38
|
what: str = "all",
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import Union, Dict
|
|
2
|
+
|
|
3
|
+
from bluer_ugv.swallow.session.classical.ethernet.command import EthernetCommand
|
|
4
|
+
from bluer_ugv.swallow.session.classical.setpoint.classes import ClassicalSetPoint
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class ClassicalEthernetSetPoint(ClassicalSetPoint):
|
|
8
|
+
def put(
|
|
9
|
+
self,
|
|
10
|
+
value: Union[int, bool, Dict[str, Union[int, bool]]],
|
|
11
|
+
what: str = "all",
|
|
12
|
+
log: bool = True,
|
|
13
|
+
steering_expires_in: float = 0,
|
|
14
|
+
):
|
|
15
|
+
super().put(
|
|
16
|
+
value=value,
|
|
17
|
+
what=what,
|
|
18
|
+
log=log,
|
|
19
|
+
steering_expires_in=steering_expires_in,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
self.ethernet.client.send(
|
|
23
|
+
EthernetCommand(
|
|
24
|
+
action="setpoint.put",
|
|
25
|
+
data={
|
|
26
|
+
"value": value,
|
|
27
|
+
"what": what,
|
|
28
|
+
"steering_expires_in": steering_expires_in,
|
|
29
|
+
},
|
|
30
|
+
)
|
|
31
|
+
)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bluer_ugv
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.835.1
|
|
4
4
|
Summary: 🐬 AI x UGV.
|
|
5
5
|
Home-page: https://github.com/kamangir/bluer-ugv
|
|
6
6
|
Author: Arash Abadpour (Kamangir)
|
|
@@ -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.835.1`](https://github.com/kamangir/bluer-ugv).
|
|
69
69
|
|
|
70
70
|
|
|
71
71
|
built by 🌀 [`blueness-3.118.1`](https://github.com/kamangir/blueness).
|
|
@@ -143,6 +143,7 @@ bluer_ugv/README/ugvs/db.py
|
|
|
143
143
|
bluer_ugv/README/ugvs/docs.py
|
|
144
144
|
bluer_ugv/README/ugvs/ethernet.py
|
|
145
145
|
bluer_ugv/README/ugvs/get.py
|
|
146
|
+
bluer_ugv/README/ugvs/location.py
|
|
146
147
|
bluer_ugv/README/ugvs/comparison/__init__.py
|
|
147
148
|
bluer_ugv/README/ugvs/comparison/build.py
|
|
148
149
|
bluer_ugv/README/ugvs/comparison/features/DYI.py
|
|
@@ -238,6 +239,7 @@ bluer_ugv/swallow/session/classical/motor/left.py
|
|
|
238
239
|
bluer_ugv/swallow/session/classical/motor/rear.py
|
|
239
240
|
bluer_ugv/swallow/session/classical/motor/right.py
|
|
240
241
|
bluer_ugv/swallow/session/classical/motor/steering.py
|
|
242
|
+
bluer_ugv/swallow/session/classical/motor/void.py
|
|
241
243
|
bluer_ugv/swallow/session/classical/screen/__init__.py
|
|
242
244
|
bluer_ugv/swallow/session/classical/screen/classes.py
|
|
243
245
|
bluer_ugv/swallow/session/classical/screen/video/__init__.py
|
|
@@ -247,6 +249,7 @@ bluer_ugv/swallow/session/classical/screen/video/player.py
|
|
|
247
249
|
bluer_ugv/swallow/session/classical/screen/video/playlist.py
|
|
248
250
|
bluer_ugv/swallow/session/classical/setpoint/__init__.py
|
|
249
251
|
bluer_ugv/swallow/session/classical/setpoint/classes.py
|
|
252
|
+
bluer_ugv/swallow/session/classical/setpoint/ethernet.py
|
|
250
253
|
bluer_ugv/swallow/session/classical/setpoint/steering.py
|
|
251
254
|
bluer_ugv/swallow/session/classical/ultrasonic_sensor/__init__.py
|
|
252
255
|
bluer_ugv/swallow/session/classical/ultrasonic_sensor/__main__.py
|
|
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.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_explicit.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.824.1 → bluer_ugv-7.835.1}/bluer_ugv/.abcli/tests/swallow_dataset_combine_sequence.sh
RENAMED
|
File without changes
|
{bluer_ugv-7.824.1 → bluer_ugv-7.835.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
|
|
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
|