krisbrud / gym-auv Goto Github PK
View Code? Open in Web Editor NEWThis project forked from eivmeyer/gym-auv
Python simulation framework based on OpenAI gym for DRL-based collision avoidance and path following for autonomous surface vessels.
This project forked from eivmeyer/gym-auv
Python simulation framework based on OpenAI gym for DRL-based collision avoidance and path following for autonomous surface vessels.
TODO:
Split run.py
into different functions, files (and possibly classes?). See if there is anything useful for own thesis.
Format code with black
formatter.
Since the sensor readings consists of 3 components (closeness, x-/y-velocity), it is probably a good idea to group the observations corresponding to the same input, i.e. going from a dimensionality [n_sensors * 3]
to [n_sensors, 3]
.
As users may want to use the environment without using stable_baselines
and tensorflow
, the project and it's dependencies should be pruned, such that testing may be done in smaller Docker containers and and gym_auv
may be released as a PyPi package in the future.
Add periodic saving of model to disk using idiomatic RLlib features.
Profiler results show that the calls to intersection()
in the simulate_sensor
call account for a large amount of the runtime of the algorithm. Optimizing this may have a large positive impact on the simulation performance of the algorithm. Possible approaches may for instance be using an hierarchical checker, which filters out many of the instances that definitely are not collisions.
EivMeyer's original environment used his algorithm "Feasibility Pooling" as a preprocessing step in order to reduce the dimensionality of the observation space while still providing useful observations for the algorithm. As it is desirable to be able to do experiments with Convolutional Neural Networks for encoding this information, it should be refactored out and be an optional setting instead.
The 2D renderer assumes that the input is split into sectors, which isn't necessarily the case after #11. This should be fixed, as well as considering a refactor of the renderer.
Currently, the BaseEnvironment
spawns a window by default to render the Environment, which is annoying and should not be the default behaviour.
Make some plots for qualitative evaluation of the agents, possibly refactoring existing code.
Feasibility pooling is now a part of the vessel code, making it cluttered. As it is stateless, it should rather be a wrapper, which makes the code less bug prone.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.