Skip to main content

Autonomous and manual control methods for UUVs

Project description

saruca-uuv

Autonomous and manual control methods for UUVs

Features

  • Provides control methods for unmanned underwater vehicles. (with 6 thrusters)
  • Detects rectangles and circles in images from video or camera.
  • Uses ROS and its packages.
  • It uses OpenCV methods.
  • Contains the genuine/seminal YOLO model.

It was prepared to process control/navigation/guidance algorithms for the SARUCA Unmanned Underwater Systems Team. (Created by Semih SAHIN)

Download

pip install saruca-uuv

Simple Identifications

speed = 15 # meter
accel = 0.6 # m^2/s
directory = "forward" # forward/backward/right/left
angle = 6.8 # 0.0 ~ 90.0
poolSize = [(25, 50, 2), (12.5, 25, 2)] # olympic pool / semi-olympic pool
x = 221 # x-axis
y = 128 # y-axis
otherVar = ["circle", 24] # obj-type / weight

Commands, Classes and Methods

  • EntityLayer : In this class, a preliminary definition of the properties of the objects detected by image processing will be made and data related to the vehicle's condition will be obtained.
  • VehicleComprehendLayer : While our created object will keep the attributes of the target, it will also hold the attributes of our vehicle according to the target. Attributes related to the current state of the vehicle are analyzed in this class.
  • ControlLayer : This class is a class that holds the vehicle's and target's data through other layers. Now, in the light of this data, the vehicle will make autonomous decisions and guide itself according to the type of target (submarine model, circles on the ground, doors, balls to be dropped).
  • imageProcessing() : Performs image processing using the model trained with artificial intelligence methods. It starts detecting as soon as the "1" parameter is sent into the method. imageProcessing(1)
  • variables() : It is a method that helps to adjust the positions of the objects to be detected by the vehicle. Sample usage: variables((0, 0), ["circle", 37], 0, "", (x, y))
  • localization() : The main task of the positioning method is to determine the position of the vehicle relative to the pool. Before running the scanning algorithm, it will detect where it is in the pool and position it in one of the corners of the pool. localization(assignment()) or localization([0, 0], "circle", 40, [8, "", 8], (2, 3))
  • state() : It is the task of this method to calculate and assign the speed, acceleration, direction and angle parameters of the vehicle. The speed, acceleration, direction and angle of the vehicle will be determined in the light of the data from the sensors and by subjecting them to various calculations. The detected data will be assigned as attributes of the object.
    • vehicleState = VehicleComprehendLayer(speed, accel, directory, angle, poolSize)
    • state(vehicleState)

there is still more to come...

License

MIT

Copyright (c) 2021 Semih SAHIN

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

saruca_uuv-0.1.7.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

saruca_uuv-0.1.7-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file saruca_uuv-0.1.7.tar.gz.

File metadata

  • Download URL: saruca_uuv-0.1.7.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for saruca_uuv-0.1.7.tar.gz
Algorithm Hash digest
SHA256 6611a71eb74dd6453cea6399efd57f773889abbe3b9d6d5a7245524fffac1e57
MD5 a14d904cd104eb5e1d55f1548bac54c8
BLAKE2b-256 13dd792cd2a8cf374e232b00be122f8283a60d38e9f0cda5d98969150b10b495

See more details on using hashes here.

File details

Details for the file saruca_uuv-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: saruca_uuv-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.6.1 requests/2.24.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for saruca_uuv-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d41d998452cce92cbb70e414b90024ff23dc54d3c28f9260f02142b6309f7a31
MD5 fab3443b5e086e59d22d3f21d722f236
BLAKE2b-256 b0b358ac84a005f399e0a8c43bfeed0544deeeea35ef9fb1a5b5dd5a72a6c0bb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page