Coder Social home page Coder Social logo

zhangyuh15 / gops Goto Github PK

View Code? Open in Web Editor NEW

This project forked from intelligent-driving-laboratory/gops

0.0 0.0 0.0 36.23 MB

General Optimal control Problem Solver (GOPS), an easy-to-use PyTorch reinforcement learning solver package for industrial control.

Home Page: https://gops.readthedocs.io

License: Apache License 2.0

Python 100.00%

gops's Introduction

GOPS (General Optimal control Problem Solver)

Read the Docs

Copyright © 2022 Intelligent Driving Laboratory (iDLab). All rights reserved.

Description

Optimal control is an important theoretical framework for sequential decision-making and control of industrial objects, especially for complex and high-dimensional problems with strong nonlinearity, high randomness, and multiple constraints. Solving the optimal control input is the key to applying this theoretical framework to practical industrial problems. Taking Model Predictive Control as an example, computation time solving its control input relies on receding horizon optimization, of which the real-time performance greatly restricts the application and promotion of this method. In order to solve this problem, iDLab has developed a series of full state space optimal strategy solution algorithms and the set of application toolchain for industrial control based on Reinforcement Learning and Approximate Dynamic Programming theory. The basic principle of this method takes an approximation function (such as neural network) as the policy carrier, and improves the online real-time performance of optimal control by offline solving and online application. The GOPS toolchain will cover the following main links in the whole industrial control process, including control problem modeling, policy network training, offline simulation verification, controller code deployment, etc. GOPS currently supports the following algorithms:

Installation

GOPS requires:

  1. Windows 7 or greater or Linux.
  2. Python 3.6 or greater (GOPS V1.0 precompiled Simulink models use Python 3.8). We recommend using Python 3.8.
  3. (Optional) Matlab/Simulink 2018a or greater.
  4. The installation path must be in English.

You can install GOPS through the following steps:

  1. clone GOPS repository
git clone https://github.com/Intelligent-Driving-Laboratory/GOPS.git
cd GOPS
  1. create conda environment depending on your OS:
conda env create -f gops_environment.nix.yml  # for Linux
conda activate gops

or

conda env create -f gops_environment.win.yml  # for Windows
conda activate gops
  1. install GOPS
pip install -e .

Documentation

The tutorials and API documentation are hosted on gops.readthedocs.io.

Quick Start

This is an example of running finite-horizon Approximate Dynamic Programming (FHADP) on inverted double pendulum environment. Train the policy by running:

python example_train/fhadp/fhadp_mlp_idpendulum_serial.py

After training, test the policy by running:

python example_run/run_idp_fhadp.py

You can record a video by setting save_render=True in the test file. Here is a video of running a trained policy on the task:

idp.mp4

WeChat Group

In order to make it easier for everyone to use GOPS and build a good community, we have established a WeChat group for GOPS users and invite interested users to join by scanning the QR code below. Developers will answer questions for users in the group when using GOPS, and will fix problems in GOPS based on user feedback. In addition, the release of a new version of GOPS will also be notified in the group.

Thanks to all users for your support of GOPS and to all developers for your contributions to GOPS. Let's work together to make GOPS a valuable, easy-to-use, and popular software!

gops's People

Contributors

yangyujie-jack avatar kirikirito avatar smart-duoduopi avatar zhengzl18 avatar zhangyuh15 avatar humbert2018 avatar thuzouwenjun avatar tlt18 avatar xjsong99 avatar zhangcongsheng avatar jieli18 avatar jjyyxx avatar hollowgl avatar harrylui98 avatar intelligent-driving-laboratory avatar happy-yan avatar molumitu avatar genjinxie avatar wenhancao avatar troyzhangfawang avatar liu-s-q19 avatar zlysm avatar tongliu22 avatar muyao2018 avatar ziqinggu avatar heweixian avatar jackqin007 avatar jet-wanli 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.