lero-learning-control

Lero Learning Control

https://github.com/ysohege/lero-learning-control

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.3%) to scientific vocabulary
Last synced: 11 months ago · JSON representation ·

Repository

Lero Learning Control

Basic Info
  • Host: GitHub
  • Owner: YSohege
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 677 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 4 years ago · Last pushed over 3 years ago
Metadata Files
Readme License Citation

README.md

Lero Learning Control

The "Lero Learning Control" repository is a dedicated hub for sharing experimental source code and results related to learning control. This repository is part of a larger effort funded by Science Foundation Ireland, through "Grant No," to support software research and development at Lero - University College Cork, Ireland.

The repository provides a centralized and replicable location for researchers, practitioners, and other interested parties to access and utilize the experimental source code and results contained within. This allows for improved collaboration and greater transparency in the field of learning control, facilitating further research and experimentation.

If you find the "Lero Learning Control" repository helpful in your own publications, experiments, or other research, the creators kindly request that you consider citing their work in your own publications. This citation will help to promote and support the continued development of this valuable resource for the learning control community: @misc{leroLearningControl2021, title={{Lero Learning Control Repository}}, author={Yves Sohege, Gregory Provan}, howpublished = {\url{https://github.com/YSohege/lero-learning-control}}, year={2021} }

List of Implemented Environments and Controllers

2 Dimensional Quadcopter Environment - based on Safe Control Gym

3 Dimensional Quadcopter Environment

List of Tasks

Tasks require a Controller / Environment pair and return an performance metric after completion. 1) Blended Control Task (3D Quadcopter / RBCPID Controller)- Set blending weigth at each step - used for reinforcement learning 2) Fixed Distribution Blended Control Task (3D Quadcopter / Fixed Distribution RBCPID Controller) - Evaluate the tracking performance of RBCPID using a fixed distribution 3) Optimal Switching Control Task (3D Quadcopter / Switched PID Controller) - Evaluate the tracking performance of Switching Control with no fault identification delay (optimal baseline) 4) RL Distribuition for Blended Control (3D Quadcopter / RLRBCPID Controller) - Learn optimal randomized blended control distribution 5) Simple MMAC Quadcopter tracking (3D Quadcopter / MMACPID Controller) - Simple tractory tracking task 6) Uniform RBCPID Quadcopter tracking (3D Quadcopter / Uni RBCPID Controller) - Evaluate the tracking performance of uniformly sampled blending weights.

List of Tuning Algorithms

Tuning algorithms execute Tasks repeadedly to maximize the achieved performance through controller parameter optimization.

1) Clustered Particle Filtering (3D Quadcopter / PID Controller) - CPF 2) Reinforcement Learning Blended Control (3D Quadcopter / RLRBCPID Controller) - RL Blending 3) Particle Swarm Optimization(3D Quadcopter / PID Controller) - PSO

List of Example Experiments

Experiments run the Tuning algorithms or Tasks in a systematic way based on their configurations. The experiments are repeatable and all random seeds are fixed in the config files. 1) 2D Quadcopter - RBCMPC versus RBCPID trajectory tracking performance 2) 3D Quadcopter - Switched Control 3) 3D Quadcopter - Data Generation under various fault and disturbances 4) 3D Quadcopter - MPC Test 5) 3D Quadcopter - Controller Tuning using Clustered Particle Filtering (CPF) 6) Execution speed test - numpy versus torch / CPU versus GPU 7) 3D Quadcopter - Simple MPC control for trajectory tracking

Setup and Dependencies

Windows

1) Install Python 3.x from the official Python website: https://www.python.org/downloads/windows/ 2) Open Command Prompt or PowerShell as an administrator. 3) Navigate to the directory where you want to install Lero Learning Control. 4) Clone the repository: git clone https://github.com/YSohege/lero-learning-control.git 5) Navigate to the repository: cd lero_learning_control 6) Install the required libraries: python setup.py install

Linux

1) Install Python 3.x using your system's package manager. For example, on Ubuntu, you can use the following command: sudo apt-get install python3 2) Open a terminal window. 3) Navigate to the directory where you want to install Lero Learning Control. 4) Clone the repository: git clone https://github.com/YSohege/lero-learning-control.git 5) Navigate to the repository: cd lero_learning_control 6) Install the required libraries: python setup.py install Note that you may need to use python3 / pip3 instead of python / pip on some Linux distributions.

Citation (CITATION.cff)

# cff-version: 1.2.0
# preferred-citation:
#   type: article
#   authors:
#   - family-names: "Brunke"
#     given-names: "Lukas"
#   - family-names: "Greeff"
#     given-names: "Melissa"
#   - family-names: "Hall"
#     given-names: "Adam W."
#   - family-names: "Yuan"
#     given-names: "Zhaocong"
#   - family-names: "Zhou"
#     given-names: "SiQi"
#   - family-names: "Panerati"
#     given-names: "Jacopo"
#     orcid: "https://orcid.org/0000-0003-2994-5422"
#   - family-names: "Schoellig"
#     given-names: "Angela P."
#     orcid: "https://orcid.org/0000-0003-4012-4668"
#   doi: "10.0000/00000"
#   journal: "Annual Review of Control, Robotics, and Autonomous Systems"
#   month: 1
#   start: 1 # First page number
#   end: 35 # Last page number
#   title: "Safe Learning in Robotics: From Learning-Based Control to Safe Reinforcement Learning"
#   issue: 1
#   volume: 1
#   year: 2021

GitHub Events

Total
Last Year

Dependencies

setup.py pypi
  • Mosek *
  • Pillow *
  • casadi *
  • cvxpy *
  • dict-deep *
  • gpytorch *
  • gym *
  • imageio *
  • matplotlib *
  • munch *
  • pandas *
  • pybullet *
  • pytope *
  • pyyaml *
  • ray *
  • scikit-optimize *
  • tensorboard *
  • termcolor *
  • torch *
lero_control_gym/controllers/ImitationMPC/setup.py pypi
  • numpy >=1,<2
  • torch *