Giter Site home page Giter Site logo

sircipher / undersea Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gerasimou/undersea

3.0 1.0 0.0 179.21 MB

An Exemplar for Engineering Self-Adaptive Unmanned Vehicles

License: Apache License 2.0

ANTLR 0.30% Java 91.79% Shell 1.19% Batchfile 0.03% MATLAB 0.12% CMake 0.75% C++ 5.83%

undersea's Introduction

Linux Build Status Mac Build Status Docs Build Status


UNDERSEA

An Exemplar for Engineering Self-Adaptive Vehicles, prototyped using the Mission Oriented Operating Suite (MOOS).

Additional information on the original UNDERSEA application can be found on the UNDERSEA webpage and it is recommended that you read the research paper before using this project to gain an understanding of how UNDERSEA works.

Further information on the project, architecture, tutorials are currently in progress. This project is currently under heavy development (as part of my dissertation) and is not recommended to be used in a production environment. The full report and research paper will be published in the coming months. Documentation will be available here or if you wish to dive straight in, the first guide is available here.


To setup and use on Ubuntu, or Mac OS, checkout the project, run setup.sh and wait for all the dependencies to pull.


The repository comprises the following directories:

  • libraries: populated by running setup.sh
  • resources: case studies
  • moos-ivp-UNDERSEA: Necessary UNDERSEA components (Sensor and UUV) for MOOS-IvP
  • undersea-agent:
    • agent: a sample implementation of the software, built for MOOS. This includes a DSL parser for the agent configuration files.
    • common: common functionality for all submodules
    • missionmanager: A mission manager and planner for agent missions
    • monitor: a monitoring application for the cluster
    • prospect: a custom Raft implementation for the cluster
    • seachain: a todo application which will migrate the distributed logging system to an Ethereum network
    • tutorials: contains a handful of tutorials that demonstrate the functionality of the project

UNDERSEA has primarily been developed using Ubuntu 18.04 LTS, however, it has also been tested on Mac OS, and Windows 10 using the Windows Subsystem for Linux (WSL) - without any GUI applications from MOOS.


Running UNDERSEA using Windows WSL:

UNDERSEA on Windows 10 has only been tested using CLion and IntelliJ, though not as a target release. In addition to this, WSL does not natively support GUI applications - while support can be added through an XServer, WSL sockets fail to bind - so pMarineViewer does not launch and run correctly. Instructions to setup for development are as follows: To setup UNDERSEA on Windows:

  • Setup the machine as per the instructions for Ubuntu 18.04 LTS
  • Install CLion
  • Setup CLion with WSL
  • Install dos2unix on WSL with: sudo apt install dos2unix
  • Checkout this repository: git clone https://github.com/SirCipher/UNDERSEA.git
  • Change to the repository: cd UNDERSEA
  • setup.sh will initialise the development environment, however, the line endings are incorrect and they need to be converted to the correct form: dos2unix moos-linux.sh ortools.sh matlab.sh setup.sh runner.sh

If you are planning to extend UNDERSEA and continue developing MOOS applications then the development environment can be setup such that IntelliJ/CLion/scripts launch the application on the WSL and no Java process issues will be encountered - as the agents are launched via terminal commands and these will be executed on Windows.

Developing on Windows:

In order to develop using Windows for the UNDERSEA platform but without the MOOS subsystem, Google OR Tools and Matlab must be installed to the libraries directory that resides in this folder. OR Tools must be installed to libraries/ortools and MATLAB to libraries/MATLAB.

Developing on Linux 16.04/18.04:

Run setup.sh in the root of this directory and all of the required external dependencies will pull. Run setup.sh in moos-ivp-undersea, add the libraries/moos/bin and moos-ivp-undersea/bin directories to your $PATH.


Case Studies:

Case study 1

Demonstrating automatic task decomposition, distribution and execution to local cluster clients. A leader is automatically elected and distributes the mission to the clients.

The video also demonstrates the leader being killed and a new one elected. The new mission is re-decomposed and distributed to the available clients. The same functionality is demonstrated by a follower failing.

Case study 1

Case study 2

Demonstrating automatic task decomposition, distribution and execution to local cluster clients. An agent is assigned a mission but then fails, notifies its leader and the leader assigns the remaining agents in the cluster to the mission.

The video also demonstrates the leader being killed and a new one elected. The new mission is re-decomposed and distributed to the available clients. The same functionality is demonstrated by a follower failing.

Case study 2

undersea's People

Contributors

gerasimou avatar sircipher avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

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.