Autonomous Quadrotor Flight
Built an X650 quadrotor from a Holybro kit, integrated a Jetson Nano, and flew the vehicle indoors in BYU's MAGICC Lab without GPS by connecting it to the motion-capture system. I also set up an Apptainer-based ROS 2 / PX4 / Gazebo environment on BYU's ORC Red Hat Linux infrastructure and used it to develop and validate trajectories before physical flight. The project highlights robotics infrastructure, flight testing, and simulation-to-hardware iteration.
Overview
This project focused on extending quadrotor development beyond hardware into indoor autonomous flight and simulation-driven testing. I built an X650 quadrotor from a Holybro kit, integrated a Jetson Nano, and flew the vehicle manually before connecting it to the BYU MAGICC Lab motion-capture system for indoor GPS-denied flight.
In parallel, I set up an Apptainer-based simulation environment on BYU’s ORC Red Hat Linux infrastructure so that ROS 2, PX4, and Gazebo could be used together in a reproducible workflow for trajectory development and validation.
Development Workflow
I used an iterative simulation-to-hardware process for each trajectory:
- Generate and visualize the path in Python using Matplotlib
- Simulate the trajectory in the ROS 2 / PX4 / Gazebo environment
- Fly the same trajectory physically on the X650 quadrotor in the motion-capture room
This workflow made it possible to test and refine trajectories before committing to physical flight.
Results

X650 quadrotor platform used for indoor motion-capture flight testing
The flight-testing workflow supported multiple trajectory types, including:
- keyboard velocity commands
- waypoint following
- figure-eight flight
- complex rotating orbital patterns
Figure-Eight Flight
Figure-eight trajectory generated and visualized in Python before simulation
Figure-eight trajectory in the ROS 2 / PX4 / Gazebo simulation environment
Figure-eight trajectory flown on the physical X650 quadrotor in the mocap room
Rotating Orbital Trajectory
Rotating orbital trajectory generated and visualized in Python before simulation
Rotating orbital trajectory validated in simulation before flight testing
Rotating orbital trajectory executed on the physical X650 quadrotor