GithubHelp home page GithubHelp logo

auvcontrol's Introduction

AUVControl

Control of a hovering AUV simulated using HoloOcean. This implements the full robotics stack include various algorithms for state estimation, low-level control, and planning. HoloOcean is simple to use, and the HoveringAUV is easy to control, making this a perfect platform for experimenting and testing of various robotics algorithms.

Python Module

The code is organized into the python module auv_control. This consists of 3 submodules - estimation, control, and planning - along with various other helper functions. The following algorithms have been implemented:

  • Base module
    • State class - wrapper class to standardize how our state is represented.
    • scenario - python dictionary with the example HoloOcean scenario to run.
  • Estimation module
    • InEKF - Implementation of the invariant EKF with the IMU sensor as the process model and GPS, DVL, magnetometer, and pressure sensor as the update step.
  • Control Module
    • LQR - Simple LQR controller using linearized state dynamics and euler angles. (Simple improvement to this would be something using Lie Groups)
  • Planning Module
    • RRT - Loads up various obstacles in the environment, and plans a trajectory from one side of the environment to the other using RRT.
    • Traj - Various predefined trajectories to test controllers on.

Running

To run the simulation, first install all dependencies

pip install -r requirements.txt

Then simply run the script

python run.py -s -p

where -s shows the simulation and -p shows the plotter. By default these are both off. On first run, it will download the HoloOcean binaries which may take a minute. To see a full list of simulation options, run

python run.py -h

auvcontrol's People

Contributors

contagon 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.