AutoReFly: Autonomous Recovery of a Vehicle-Mounted UAV

Carnegie Mellon University — Team Project

Role: Team Lead & Controller Develop & Hardware implementation • Tools: Python, C, Mujoco

Demo Video: Dynamic platform landing
Demo Video: 3D obstacle avoidance

Introduction / Social Motivation

Autonomous recovery of UAVs onto moving ground vehicles would enable persistent inspection, mobile sensing, and flexible delivery without needing fixed infrastructure. This is especially valuable in scenarios where deploying large ground stations is impractical or where vehicles must operate over long distances. However, performing dynamic landing on a small, resource-limited quadrotor like the Crazyflie is challenging: the platform has tight thrust margins, is sensitive to payload changes, and depends on external localization and a wireless link. Real-world issues such as localization noise, communication delay, and unpredictable vehicle motion motivate a control framework that is both safety-aware and deployable on modest hardware.

System Design & Methods

  • Built AutoReFly, a Crazyflie-based system integrating nonlinear MPC (NMPC) for tracking, obstacle avoidance, payload transport, and dynamic landing.
  • Modeled the UAV as a 13-state rigid body and formulated the NMPC problem in CasADi with constraints for thrust, orientation, and collision avoidance.
  • Evaluated three control abstraction levels—low-level wrench control, high-level position control, and mid-level velocity-tracking—to determine a hardware-feasible interface.
  • Selected velocity-command NMPC to handle communication delay, radio jitter, and Crazyflie thrust limitations.
  • Integrated Lighthouse localization, Ranger Deck sensing, and a moving UGV carrying a “dead drone” as the landing target.

Results / Evaluation

In simulation, the full rigid-body NMPC produced realistic tracking and landing behaviors, but we found that low-level force/torque commands were highly sensitive to realistic communication delays, making them unsuitable for deployment on the Crazyflie. This motivated the shift to a velocity-command NMPC interface. On hardware, we systematically validated each sensing and actuation component: Lighthouse localization provided stable 3D pose at around 50 Hz for both UAV and moving platform; the Ranger Deck reliably triggered collision-avoidance motions while maintaining altitude; and IMU-based stabilization kept the Crazyflie hovering robustly even under small disturbances. These experiments confirmed that the sensing stack and control abstraction are adequate foundations for future full autonomous recovery demonstrations.

The project was recognized as "The Best Project" of Fall 2025 at the Mechancial Engineering department, CMU.

My Contribution

  • Led the control modeling and NMPC formulation, including rigid-body dynamics construction and constraint design in CasADi.
  • Conducted analysis comparing three control abstraction layers, identifying failure modes of force-level control under delay and validating the velocity-tracking approach.
  • Evaluated three control abstraction levels—low-level wrench control, high-level position control, and mid-level velocity-tracking—to determine a hardware-feasible interface.
  • Implemented the NMPC-to-Crazyflie velocity command pipeline, enabling sim-to-real execution through onboard control APIs and firmware flashing.
  • Assisted in experimental testing and debugging.

Artifacts

  • Complete NMPC controller implementation in Python/C++ with safety constraints.
  • Isaac Sim and Crazyflie Lighthouse-based simulation environment for controller tuning.
  • Hardware deployment package enabling tracking, obstacle avoidance, and UGV landing.
  • Flight logs and visualization plots comparing simulation vs. real-world performance.
  • Demonstration video showing object delivery, obstacle avoidance, and dynamic landing.
  • Technical report documenting modeling, controller design, and sim-to-real pipeline.