Skip to main content

A UUV ocean data collection mission simulator based on an ocean model (ROMS)

Project description

UUVMissionSim

Table of Contents

Package Description

The UUVMissionSim package was developed as part of my master's thesis to provide a comprehensive tool for simulating UUV missions.The package presents a Regional Ocean Modelling System (ROMS)-based Unmanned Underwater Vehicle (UUV) mission simulator. The primary focus was on creating a sophisticated simulation tool that integrates ROMS data to replicate realistic ocean environments and accurately mimic the behavior and data collection processes of UUVs, with a specific emphasis on the T-REMUS vehicle. The developed simulator aims to provide a safe and efficient way to develop and test advanced navigation systems for UUVs.

This package provideas researchers and engineers with a robust foundation for advancing UUV navigation and data collection strategies, providing a tool for developing and testing advanced navigational algorithms in a cost effective way. The simulator's applications span mission planning, virtual ocean studies, and educational purposes, contributing significantly to oceanography and UUV navigation systems.

Installation

You can install the package using pip:

bash
pip install UUVMissionSim

Alternatively, if you want to install from source:

git clone https://github.com/Prakarsha01/UUVMissionSim.git cd UUVMissionSim pip install -e

Usage

Basic Usage

Here is a basic example of how to use the UUVMissionSim package to run a UUV mission simulation.

Sample dataset is hosted on huggingface.The below example can be used on the provided dataset:

import UUVMissionSim.simulator as simulator

# Define mission parameters
current_point = (13000, 33502, 4)
waypoints = [(13080, 33502, 4), (13005, 34510, 4)]
instructions = [1]
start_time = '2019-05-02T15:04:43.499997011'
max_depth = 8.0
min_depth = 4.0
z_resolution = 0.25
t_resolution = 60
horizontal_speed = 2.0
triangle_speed = 0.5

# Run the simulation
adcp_data, ctd_data, original_path, drift_path, original_time = simulator.run(
    current_point, waypoints, start_time, instructions, max_depth, min_depth, z_resolution, t_resolution, horizontal_speed, triangle_speed
)

# Print or handle the results as needed
print("ADCP Data:", adcp_data)
print("CTD Data:", ctd_data)
print("Original Path:", original_path)
print("Drift Path:", drift_path)
print("Original Time:", original_time)

Updating Dataset Path

To update the datapaths to your own data you can update the paths as shown below:

new_config = {
        'U_PATH': "/data/u.nc",
        'V_PATH': "/data/v.nc",
        'W_PATH': "/data/w.nc",
        'CTD_DATA_PATHS': [
            "/data/salt.nc",
            "/data/rho.nc",
            "/data/temp.nc"
        ]
    }

 # Update configuration
cg.update_config(**new_config)

Configuration

The package uses a config.py file to store various configuration settings such as data paths and sensor frequencies. Ensure to set the appropriate paths and values in config.py:

# config.py

# Data Paths
U_PATH = "/path/to/u.nc"
V_PATH = "/path/to/v.nc"
W_PATH = "/path/to/w.nc"
CTD_DATA_PATHS = ["/path/to/salt.nc", "/path/to/temp.nc", "/path/to/rho.nc"]

# Sensor frequency
ADCP_FREQUENCY = 2  # Hz
CTD_FREQUENCY = 16  # Hz

# ADCP Settings
VERTICAL_SPACING = 0.25  # Spacing between z points
Z_ABOVE_PATH = 4  # Maximum depth above the original path
Z_BELOW_PATH = -4  # Maximum depth below the original path
BLANKING_DISTANCE = 0.75 # Blanking distance around UUV

Acknowledgements

This project was made possible with the support and guidance of my advisors, Dr. Daniel McDonald and Dr. Shelley Zhang. I am grateful for their trust in my abilities and for giving me the opportunity to tackle such a fascinating problem. Special thanks to Ágata Piffer Braga for her invaluable guidance and support throughout the project. I also want to express my gratitude to Aakash Kardam for his valuable feedback and suggestions; I look forward to seeing his work with the simulator in developing advanced UUV navigation algorithms.

I would also like to thank the University of Massachusetts Dartmouth for providing the resources necessary for this research. This package was developed as part of my master's thesis at the University of Massachusetts Dartmouth.

Finally, I extend my heartfelt thanks to my family and friends for their unwavering support and encouragement throughout this journey.

Contact

For further information, please feel free to connect with me on LinkedIn.

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

uuv_mission_simulator-0.1.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

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

uuv_mission_simulator-0.1.0-py3-none-any.whl (17.4 kB view details)

Uploaded Python 3

File details

Details for the file uuv_mission_simulator-0.1.0.tar.gz.

File metadata

  • Download URL: uuv_mission_simulator-0.1.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for uuv_mission_simulator-0.1.0.tar.gz
Algorithm Hash digest
SHA256 b4e551e82de5f8ecebe0bc4e77daf571db4072a4de2bb1b9ddaa7d30a145cba4
MD5 2d00fe652f420116056db9263de87247
BLAKE2b-256 8d356d133059e51fa778a2dad201443ce350bfdc2e6443ba3db4f658aef9779d

See more details on using hashes here.

File details

Details for the file uuv_mission_simulator-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for uuv_mission_simulator-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 17798fe2456541df8070fa2ec8e66746f04e4040a869273cca1ba9ee465541c9
MD5 99aed4a48aa954bdbcf436f56c58cff1
BLAKE2b-256 8d9d875cc303e0e315378418a56c2a8603e43807c260de4516a4c79541e55d95

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