Coder Social home page Coder Social logo

aavek / aeolus-ocean Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 1.0 151 KB

An all-weather, day-and-night, collision avoidance simulator that can be implemented as a digital twin for the autonomous COLREG-compliant navigation of maritime vessels.

License: BSD 3-Clause "New" or "Revised" License

computer-vision graphics machine-learning reinforcement-learning unity3d autonomous ocean simulation boat unity

aeolus-ocean's Introduction

Aeolus-Ocean

Aeolus Ocean - A simulation environment for the autonomous COLREG-compliant navigation of Unmanned Surface Vehicles using Deep Reinforcement Learning and Maritime Object Detection

Description

An all-weather, day-and-night, simulator that can be implemented as a digital twin for the autonomous navigation of maritime vessels as they attempt to reach waypoints while avoiding collisions with other vessels while respecting maritime collision regulations (COLREGs), obstacles and land.

The project consists of an ocean system (Beaufort 1-11) as well as physics algorithms that handle vessel-water interactions and propulsion. Each vessel has its own target acquisition systems. For Object Detection, cameras make use of YOLO-X to visually locate other vessels on-screen and this data is fused with information extracted from a simulated radar system to detect all other vessels positional data in its environment. Land is detected with a simplified sonar-like system. The navigational guidance of each vessel is controlled by an intelligent Agent that has been trained (as single-agents in the proximity of other single-agents in multiple environments) over a range of different scenarios using Deep Reinforcement Learning (PPO) and Imitation Learning with Unity's Machine Learning Agents Toolkit (ML-Agents).

Currently, the project is available in binary form. It can be downloaded as a release. If there is enough interest in the current work, the source code may become available in the future.

How to Run

Once you download the release, you can safely run the program with AEOLUS OCEAN.exe. The binary is created directly from Unity's build settings, and Windows might ask you to trust it as it may come from an 'unknown publisher'.

By clicking on the "Simulation" tab in the main-menu you should be presented with the following setup menu.

setupmenueveningv2

Simulation Setup

Each of the controllable setup parameters (default values shown) for the simulation are now described:

Environment Parameters Description
Number of Environments Number of environments agents will reach waypoints on. In the source code, this is used to train agents in parallel.
Agents Per Environment Each environment will have this many agents in it. NOTE: (Number of Environments) x (Agents Per Environment) must not exceed 32.
Environment Spacing Spacing in meters between consecutive environments. Environments are arranged so they fill, at maximum, a 4x4 grid.
Environment Enclosures Whether to use walls that restrict travel between environments. In the source code, this can speed up training.
Ocean Current Factor Slider that controls how strong ocean currents are in causing the vessel to drift off course.
Wave Spectrum Choose a non-directional wave spectrum (Pierson-Moskowitz, JONSWAP or JONSWAP with Texel MARSEN ARSLOE (TMA) correction). In each case, we use the Hasselmann Directional Spreading function.

Waypoint Parameters Description
Waypoint Change Distance Distance in meters to a waypoint that, when reached, causes a new waypoint to be spawned for the current Agent.
Show Waypoint Markers Whether to show graphics for waypoint markers and navigational arrows.
Minimum Waypoint Spawn Minimum distance beyond which a waypoint will spawn from the Environment center as a percentage of the Environment Spacing. This can exceed 1 if you want waypoints to extend beyond the current environment.
Maximum Waypoint Spawn Maximum distance up to which a waypoint will spawn from the Environment center as a percentage of the Environment Spacing. This can exceed 1 for waypoints beyond the current environment. Must be larger than the minimum waypoint spawn value.
Waypoint Type Choose between random waypoint placement, or hard-coded crossing waypoint / head-on waypoint scenarios.

Procedural Island Parameters (Perlin Noise) Description
Generate Island Per Environment Generates an island at the center of each Environment.
Scale Larger values control how smooth the surface of the island is while smaller values lead to many a more spiky surface.
Height Multiplier Multiplies the height and depth values of the surface by this amount.
Falloff Multiplier Multiplies the depth values at the edges of the island. Larger values mean deeper edges.
Octaves Controls how many levels of perlin noise will be applied for this island.
Smooth A & B As these values increase, the island shape transitions between a pyramid-like shape to a rectangular shape.
Persistance For values of less than 1, controls how the dominant the first layers of perlin noise are over the next consecutive ones. For values of more than 1, this leads to a more spiky surface to more contributions from each noise layer.
Lacunarity Smaller values lead to smoother surfaces while larger values lead to increased surface roughness.
Offset X & Y This can be used to randomize the surface generation process.

Designated Ego Vessel (DEV) Parameters Description
DEV ID Slider that allows the user to select which vessel from this setup will be the DEV. Selecting a DEV tells the program on which vessel to implement the sensors system.
DEV Camera For a given DEV ID, whether to observe the environment from the on-board vessel camera.
Computer Vision Whether to use Deep Learning Computer Vision with object detection to visually locate other vessels on-screen.
Sensors 'Full Dynamic Awareness' allows all vessels to know all positional data of each other. 'Computer Vision and Simulated Radar' uses the DEV's on-board sensors to navigate its environment.
Detection Rate Interval period in seconds by which the object detection algorithm will read a frame and output detections (if any). Larger values lead to better overall performance at the cost of accuracy.
Confidence Threshold for object detections. Smaller values will be stricter while larger values will lead to more false positives.
Vision Detection Distance Distance in meters by which the DEV camera sensor will lock onto the nearest vessel and track it. If the target vessel is further than this distance, tracking stops.
Radar Distance Distance in meters by which the DEV radar sensor will pick up nearby vessels.
Radar Sweep Rotations per minute of the radar sweep. Higher values may track nearby vessels more accurately at the cost of not detecting distant ones.

When ready, click on "Autonomous Vessel Control".
Important Note : If the simulation hangs upon clicking this, disable "Generate Island Per Environment". This will be fixed soon.

During the Simulation

As the simulation is running, the user can choose to allow the autonomous operation to continue or override the control by clicking on the "Autonomous Control" button. This will switch it into a "User Control" mode where the vessel can be controlled by the keyboard arrow keys. A GUI button on the top-left of the screen allows the user to customize weather and lighting conditions. If "Show Waypoint Markers" is on, the green navigational arrow on the top shows the direction towards the next waypoint, while the blue arrow shows the directional vector of the vessels velocity. If rain or snow is enabled in the simulation, camera water drops are generated which can have an adverse impact on target vessel detection. Target vessel detection is also affected by fog, as well as the Sun's glare, and reflected sunlight in calmer sea-states, if they are in the direction of the target vessel.

Image: Vessel approaching towards waypoint (daytime). Image: DEV tracking another target vessel at night.
GIF: Vessels respect COLREG Rule 14(head-on) & 16. GIF: Vessels respect COLREG Rule 15(crossing) & 16.
GIF: DEV tracking another target vessel during rain. GIF: DEV tracking in snow and fog conditions.

Note that the GIFs may be slightly sped up to manage upload size limits.

Limitations

  • Currently, only a single vessel type (motorboat) has been trained for a sufficiently long enough time.
  • Additionally, in this version (v1.11) only the same type of vessels are allowed to be simulated in each environment. Future versions will allow for different vessel types, each with their own Agent Brains.
  • Foam is based on a simplified particle system and so may not look great with larger waves.

License

BSD-3-Clause License

Citation

@article{vekinis2023aeolus,
      title={Aeolus Ocean -- A simulation environment for the autonomous COLREG-compliant navigation of Unmanned Surface Vehicles
                             using Deep Reinforcement Learning and Maritime Object Detection}, 
      author={Andrew Alexander Vekinis and Stavros Perantonis},
      year={2023},
      eprint={2307.06688},
      archivePrefix={arXiv},
      primaryClass={cs.RO}
}

aeolus-ocean's People

Contributors

aavek avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ziqi21

aeolus-ocean's Issues

How to deploy other reinforcement learning path planning algorithms

I would like to express my gratitude for providing this remarkable platform. I am highly interested in How to deploy other reinforcement learning path planning algorithms and I'm eager to explore its capabilities on the current platform. Could you please guide me on how to access the algorithm and witness its effects? Your insights or any relevant documentation would be greatly appreciated

Regarding the Underlying algorithms used!

Hello! I would like to express my gratitude to all who worked on this project.

My team and I are tackling the same subject. I'm currently in the process of researching how Path Planning algorithms can be aligned with the rules for avoiding collisions at sea (COLREG rules) and the collaborative navigation (COLAV) standards in maritime settings. In my research, I've come across a variety of different algorithms, such as Velocity Obstacles, Evolutionary Algorithms, Deep Reinforcement Learning, Artificial Potential Fields (APF), Ant Colony Optimization (ACO), variations of RRT, and different types of A* algorithms. I'd greatly appreciate your insights into the most effective algorithms [Which are best?] for path planning and collision avoidance that adhere to COLREGs.

Furthermore, if it's feasible, I'd be extremely grateful if I could access your source code, even if it's just for the reinforcement learning component. Your assistance would be immensely valuable to me.

Thanks so much for your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.