ProxFly: Robust Control for Close Proximity Quadcopter Flight via Residual Reinforcement Learning
<|reference_start|>ProxFly: Robust Control for Close Proximity Quadcopter Flight via Residual Reinforcement Learning: This paper proposes the ProxFly, a residual deep Reinforcement Learning (RL)-based controller for close proximity quadcopter flight. Specifically, we design a residual module on top of a cascaded controller (denoted as basic controller) to generate high-level control commands, which compensate for external disturbances and thrust loss caused by downwash effects from other quadcopters. First, our method takes only the ego state and controllers' commands as inputs and does not rely on any communication between quadcopters, thereby reducing the bandwidth requirement. Through domain randomization, our method relaxes the requirement for accurate system identification and fine-tuned controller parameters, allowing it to adapt to changing system models. Meanwhile, our method not only reduces the proportion of unexplainable signals from the black box in control commands but also enables the RL training to skip the time-consuming exploration from scratch via guidance from the basic controller. We validate the effectiveness of the residual module in the simulation with different proximities. Moreover, we conduct the real close proximity flight test to compare ProxFly with the basic controller and an advanced model-based controller with complex aerodynamic compensation. Finally, we show that ProxFly can be used for challenging quadcopter in-air docking, where two quadcopters fly in extreme proximity, and strong airflow significantly disrupts flight. However, our method can stabilize the quadcopter in this case and accomplish docking. The resources are available at https://github.com/ruiqizhang99/ProxFly.<|reference_end|>
@article{zhang2024proxfly:,
    title={ProxFly: Robust Control for Close Proximity Quadcopter Flight via
  Residual Reinforcement Learning},
    author={Ruiqi Zhang, Dingqi Zhang, Mark W. Mueller},
    journal={arXiv preprint arXiv:2409.13193},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.13193},
    primaryClass={cs.RO}
}