Skip to content

A modular, GPU-accelerated control system framework for AUV. Features Model Predictive Control (MPC) with CasADi, CUDA-based environment mapping, GPU-accelerated A* path planning, Fossen equations for marine vehicle dynamics, and supports imitation learning by distilling CasADi-based nonlinear MPC models into NN controllers.

License

Notifications You must be signed in to change notification settings

elymsyr/auv_control_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

135 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ControlSystem

Check the latest verison with ROS2 Humble and Gazebo implementation, uses FossenNet DL model: auv_ws

A modular, GPU-accelerated control system for Autonomous Underwater Vehicles (AUVs). The system is fully customizable and designed to operate in mission- and environment-agnostic scenarios.

This repository contains only the latest version of the main control system. For other AUV components, see:


Docs


Features

  • Non-Linear Model Predictive Control (NL-MPC) using CasADi for advanced trajectory tracking and control.
  • Imitation learning: Distill CasADi-based nonlinear MPC into neural network controllers for faster iteration.
  • CUDA-accelerated environment mapping for real-time collision checking and safe navigation.
  • GPU-accelerated A* path planning for efficient route computation.
  • Fossen equations for accurate marine vehicle dynamics modeling.
  • Flexible vehicle model configuration via JSON.
  • Modular architecture with custom templated components for rapid development.
  • Pub/Sub communication: ROS2-like communication using ZeroMQ.
  • LLM Agent: Integrate a Large Language Model agent for high-level mission planning and autonomous command interpretation.

Requirements

  • CUDA Toolkit (11.x or 12.x recommended, developed on 12.4.1)
  • NVIDIA GPU with compatible driver
  • Conda
  • C++17 or newer
  • CMake

Building

Docker

Recommended when the original GUI is used on local web.

  1. Pull and run container:

    docker pull elymsyr/control_system:latest
    docker run --gpus all -it elymsyr/control_system -h
  2. Clone this repository:

    git clone https://github.com/elymsyr/auv_control_system.git
    cd auv_control_system
  3. Use test UI to control the system:

    pip install zmq
    python connection/comm.py

CMake

Recommended when the test UI is used on local.

  1. Install dependencies (CUDA, CasADi, nlohmann/json).

  2. Clone this repository:

    git clone https://github.com/elymsyr/auv_control_system.git
    cd auv_control_system
  3. Build with CMake:

    conda env create -f environment.yml
    conda run -n mp_test bash -c " \
      cd /app && \
      rm -rf build && \
      mkdir build && \
      cd build && \
      cmake -DBOOST_ROOT=\$CONDA_PREFIX \
        -DCMAKE_CXX_COMPILER=\$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-g++ \
        -DCMAKE_CUDA_HOST_COMPILER=\$CONDA_PREFIX/bin/x86_64-conda-linux-gnu-gcc \
        -DCMAKE_PREFIX_PATH=\$CONDA_PREFIX \
        -DCMAKE_BUILD_TYPE=Debug .. && \
      make -j\$(nproc) \
      "
  4. See help and run:

    ./control_system -h
  5. Use test UI to control the system:

    pip install zmq
    conda run -n mp_test bash -c "python ../connection/comm.py"

License

GNU GENERAL PUBLIC LICENSE

Development Process

[TR] Ocak 2025 - Mayıs 2025 geliştirme sürecine bakmak için Notion sayfasını ziyaret edebilirsiniz.

Security Notice

This project is under active development and is not production-ready.
There may be untested features, incomplete security measures, or vulnerabilities.
It is not recommended to use this system in safety-critical or production environments.

About

A modular, GPU-accelerated control system framework for AUV. Features Model Predictive Control (MPC) with CasADi, CUDA-based environment mapping, GPU-accelerated A* path planning, Fossen equations for marine vehicle dynamics, and supports imitation learning by distilling CasADi-based nonlinear MPC models into NN controllers.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published