Skip to content

Auto-Multilift is a novel learning framework for cooperative load transportation with quadrotors. It can automatically tune various MPC hyperparameters, which are modeled by DNNs and difficult to tune manually, via reinforcement learning in a distributed and closed-loop manner.

License

Notifications You must be signed in to change notification settings

RCL-NUS/Auto-Multilift

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto-Multilift

The Auto-Multilift is a novel learning framework for cooperative load transportation with quadrotors. It can automatically tune various MPC hyperparameters, which are modeled by DNNs and difficult to tune manually, via reinforcement learning in a distributed and closed-loop manner.

A Diagram of a multilift system and Auto-Multilift Learning Piplines
learning framework

Please find out more details in our paper: "Auto-Multilift: Distributed Learning and Control for Cooperative Load Transportation With Quadrotors" arXiv

Table of contents

  1. Project Overview
  2. Dependency Packages
  3. How to Use
    1. A: Distributed Learning of Adaptive Weightings
    2. B: Distributed Learning of Adaptive References
  4. Contact Us

1. Project Overview

The project consists of two folders, which correspond to the two experiments in the paper that show the following three advantages of our method.

  1. Auto-Multilift enjoys fast convergence in just a few iterations, with its convergence speed unaffected by the number of quadrotors.
  2. Auto-Multilift is able to learn adaptive MPC weightings directly from trajectory tracking errors. Additionally, it significantly improves training stability and tracking performance over a state-of-the-art open-loop learning method [1].
  3. Beyond its improved training ability to learn adaptive MPC weightings, our method can effectively learn an adaptive tension reference, enabling the multilift system to reconfigure itself when traversing through obstacles.

2. Dependency Packages

Please make sure that the following packages have already been installed before running the source code.

3. How to Use

First and foremost, the implementation for Auto-Multilift is straightforward to setup. The source code has been comprehensively annotated to facilitate ease of use. To reproduce the simulation results presented in the paper, simply follow the steps outlined below, sequentially, after downloading and decompressing all the necessary folders.

A: Distributed Learning of Adaptive Weightings

Auto-Multilift Safe-PDP (Open-loop Learning)
cl ol
  1. Open the Python file 'main_distributed_autotuning_acados.py' in the folder 'Source code A'
  2. Before running, please do the following settings:
    • Set the number of quadrotors on line 38 (i.e., the fifth number in the 'uav_para' array).
    • Set the load mass value on line 39 (i.e., the first number in the 'load_para' array).
    • Set the MPC horizon on line 48 (the default value is 10).
    • Set the higher-level loss horizon on line 49 (the default value is 20).
    • Kindly ensure that the correct load reference (Line 143 in the file 'Reftraj.py'), while commenting out Line 145 in the same file.
    • Kindly ensure that the correct time duration, 15s, is used in the file 'Dynamics.py' at Line 83.
  3. After completing the above settings, run the file 'main_distributed_autotuning_acados.py'. In the prompted terminal interface, you will be asked to select the control and sensitivity propagation modes.
    • In our settings, 's' and 'p' denote 'sequential' and 'parallel' computing, respectively.
    • 'c' and 'o' represent 'closed-loop' (our method) and 'open-loop' (the Safe-PDP method [1]) training modes.
  4. To evaluate the trained model, run the Python file 'main_distributed_autotuning_evaluation_acados.py'
    • You can skip Step 3 and evaluate the saved models that were previously trained and employed in the paper. To do so, copy the files that end with '.pt' from the folder 'Previously trained models' (within the folder 'Source code A') to the folder 'trained data' (where the retained models via Step 3 will be saved). Kindly ensure that the correct time duration, 20s, is used in the file 'Dynamics.py' at Line 83.

B: Distributed Learning of Adaptive References

Flying Through Narrow Slots With Adaptive Tension References
tensionref_dt_edit
  1. Open the Python file 'main_distributed_autotuning_acados_tensionref.py' in the folder 'Source code B'
  2. Before running, please do the following settings:
    • Set the number of quadrotors on line 34 to the same as that used in Section A (i.e., learning of adaptive weightings).
    • Set the load mass value on line 35 (i.e., the first number in the 'load_para' array).
    • Set the MPC horizon on line 44 (the default value is 10).
    • Set the higher-level loss horizon on line 45 (the default value is 20).
    • Kindly ensure that the correct load reference is used (Line 145 in the file 'Reftraj.py'), while commenting out Line 143 in the same file.
    • Kindly ensure that the correct time duration, 20s, is used in the file 'Dynamics.py' at Line 83.
  3. After completing the above settings, run the file 'main_distributed_autotuning_acados_tensionref.py'. In the prompted terminal interface, you will be asked to select the control and sensitivity propagation modes.
    • In our settings, 's' and 'p' denote 'sequential' and 'parallel' computing, respectively.
  4. To evaluate the trained model, run the Python file 'main_distributed_acados_tensionref_evaluation.py'
    • You can skip Step 3 and evaluate the saved models that were previously trained and employed in the paper. To do so, copy the files that end with '.pt' from the folder 'Previously trained models' (within the folder 'Source code B') to the folder 'trained data' (where the retained models via Step 3 will be saved).

4. Contact Us

If you encounter a bug in your implementation of the code, please do not hesitate to inform me.

References

[1] Jin, Wanxin and Mou, Shaoshuai and Pappas, George J, "Safe pontryagin differentiable programming", Advances in Neural Information Processing Systems, 34, 16034--16050, 2021

About

Auto-Multilift is a novel learning framework for cooperative load transportation with quadrotors. It can automatically tune various MPC hyperparameters, which are modeled by DNNs and difficult to tune manually, via reinforcement learning in a distributed and closed-loop manner.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages