The project MARS-Reconfig consists of two folders, which correspond to the Algorithm and Simulation in the paper that show the following two advantages of our method.
- We propose an efficient controllability analysis for MARS using a quasi-static model under control constraints.
- We propose a novel controllability margin (CM)--based method for calculating optimal self-reconfiguration sequences.
Please find out more details in our paper: "Robust Self-Reconfiguration for Fault-Tolerant Control of Modular Aerial Robot Systems"
A video of this project |
---|
![]() |
(Youtube: https://youtu.be/R7IvXotEuXU or https://youtu.be/SB0hwK33088 Bilibili: https://www.bilibili.com/video/BV1ofJGzFEBg) |
| A diagram of the self-reconfiguration |
MARS is tasked to track a spiral trajectory with two faulty units. The faulty propellers are marked red. (a) MARS crashed after the complete failure of two units (all rotors are broken). (b) MARS can track trajectories after self-reconfiguration.(a) Before Re-configuration | (b) After Re-configuration (Ours) |
---|---|
![]() |
![]() |
Advantages:
- More control authority – Improved robustness against unit faulty
- Improved trajectory tracking performance
We Calculate the optimal configuration with maximum remaining control authority using controllability margin (CM)
(a) Calculate the Optimal Reconfiguration in a 3×2 assembly | (b) Calculate the Optimal Reconfiguration in a 3×3 assembly |
---|---|
![]() |
![]() |
Advantages:
- No need for optimization with an objective function (Less time consumption)
- The optimal configuration ensures controllability and is theoretically guaranteed
We designed the Minimum Controllable Subassembly to enable the transfer of faulty units.
Advantages: The minimum controllable subassembly ensures the safety of faulty units
(a) 3×2 assembly: full disassembly | (b) 3×2 assembly: partial disassembly |
---|---|
![]() |
![]() |
(c) 3×3 assembly: full disassembly | (d) 3×3 assembly: partial disassembly |
![]() |
![]() |
Advantages: Each step of disassembly and assembly is ensured to be theoretically optimal
3 Comparison with the baseline method [2]
(a) 3×3 assembly: full disassembly (comparison) | (b) 3×3 assembly: partial disassembly (comparison origin) |
---|---|
![]() |
![]() |
(c) 3×3 assembly: full disassembly (ours) | (d) 3×3 assembly: partial disassembly (ours) |
![]() |
![]() |
Advantages:
- Higher controllability margins (Control robustness)
- With improvements of up to 264.50% (blue) and 138.63% (green) compared to [2].
- Fewer disassembly and assembly times (save energy and time)
- Reducing the number of steps by 81.81% and 45.45%, respectively.
- Less oscillation in the reassembled drone after docking and separation.
Advantages:
- No oscillation during trajectory switching after self-reconfiguration
- Improved trajectory tracking after self-reconfiguration
First and foremost, the implementation for MARS-Reconfig 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. All the control methods of different configurations are based on previous works [1].
Please make sure that the following packages have already been installed before running the source code.
- CoppeliaSim: version 4.6.0 Info: https://www.coppeliarobotics.com/
- imageio: version 2.9.0 Info: https://imageio.readthedocs.io/
- Open the Python file 'Algorithm1_Find_Optimal_Reconfiguration.py' in the folder 'Algorithm'
- Before running, please do the following settings:
- Set the number of quadrotors on line 225 and 226.
- Set the Fault status of four rotors on line 229 (the default value is rotor_faults = [True, True, True, True]).
- Set non-symmetric positions on line 231 (We provided examples of 3x2 and 3x3 assemblies for demonstration).
- Open the Python file 'Algorithm3_Plan_Disassembly_Assembly_Sequence.py' in the folder 'Algorithm'
- Before running, please do the following settings:
- Set the configuration on line 14.
- Simulation 1: Full disassembly in a 3×2 assembly, Open the file '3x2_full_disassembly.ttt' in the folder 'Simulation'
- Simulation 2: Partial disassembly in a 3×2 assembly, Open the file '3x2_partial_disassembly.ttt' in the folder 'Simulation'
If you encounter a bug in your implementation of the code, please do not hesitate to inform me.
- Name: Mr. Rui Huang
- Email: ruihuang@u.nus.edu
If you find this work helpful, please consider citing our paper.
@misc{huang2025robustselfreconfigurationfaulttolerantcontrol,
title={Robust Self-Reconfiguration for Fault-Tolerant Control of Modular Aerial Robot Systems},
author={Rui Huang and Siyu Tang and Zhiqian Cai and Lin Zhao},
year={2025},
eprint={2503.09376},
archivePrefix={arXiv},
primaryClass={cs.RO},
url={https://arxiv.org/abs/2503.09376},
}
[1] Huang, Rui, Hanlin Sheng, C. H. E. N. Qian, R. A. N. Ziting, X. U. E. Zhen, L. I. Jiacheng, and L. I. U. Tong. "Adaptive configuration control of combined UAVs based on leader-wingman mode." Chinese Journal of Aeronautics 37, no. 12 (2024): 416-433.
[2] Gandhi, Neeraj, David Saldana, Vijay Kumar, and Linh Thi Xuan Phan. "Self-reconfiguration in response to faults in modular aerial systems." IEEE Robotics and Automation Letters 5, no. 2 (2020): 2522-2529.
[3] Huang, Rui, Zhenyu Zhang, Siyu Tang, Zhiqian Cai, and Lin Zhao. "Robust Fault-Tolerant Control and Agile Trajectory Planning for Modular Aerial Robotic Systems." arXiv preprint arXiv:2503.09351 (2025). Github: https://github.com/RuiHuangNUS/MARS-FTCC