From September 2023 to January 2025, I was an active Hardware and Software Team Member of Texas Aerial Robotics (TAR), a student-run research organization with goals of developing our own autonomous UAVs for different applications.
I also contributed to the software development of TAR's competition drone for the 2023-2024 Raytheon Autonomous Vehicle Competition.
Various project contributions are shown below.
Projects/Contributions
Thrust Vector Controlled Drone
My team's goals for this project are to develop a Thrust Vector Controlled mono-copter-like drone capable of stabilized flight. This system will also act as a payload for our main quadcopter also being developed, as shown below.
Hardware
Thrust Vector Control Test Mount Prototype
As shown above, after referring to and gaining inspiration from online resources, I designed and modeled a Thrust Vector Control (TVC) motor mount for use with our selected Contra-Rotating propeller system.
This mount consists of 3 main components:
Inner-Motor Mount: This component is fixed in the center of the mount and is only allowed to rotate in a Pitch direction.
Inner-Motor Ring: Connected to the Inner-Motor Mount, this component serves as a hinge that allows the motor to rotate in the Yaw direction. It also serves as a mounting point for the Pitch Servo to rotate the Inner-Motor Mount several degrees depending on the control commands.
Outer-Ring: This component encases the rest and serves as both the mounting point for the Yaw servo and the rest of the drone structure.
With these 3 main components connected and pinned together, as shown in the above images, the mounted servos are able to orient the motor independently along 2 axes. Similar to a TVC rocket, the drone will be able to control its attitude and position simply through TVC angle commands (and a proper control system).
Software/Simulation
Current Progress on Matlab/Simulink Simulation
As important as it is to have proper, working mechanical systems, I know it is just as important to have a reliable control system. Unlike our team's quadcopter, which leverages the PX4 Autopilot flight stack to provide reliable attitude estimation and position control, our TVC Drone will have its flight control written largely from scratch.
In order to ensure we develop a proper flight controller in C++, I have been working on a Matlab/Simulink model that will allow my team to intuitively construct a proper position controller for the drone based on PID Control.
As shown above, I utilized Simulink's tools to build a dynamics model representing our TVC drone that will allow us to test and tune our control system prior to physical test flights. This will lead to safer and less-risky testing on our physical prototype.
Unmanned Aerial Vehicle (UAV) Prototype and Software
My team's goals for this project are to design and create a UAV capable of performing autonomous tasks such as takeoff, ArUco Marker detection and positioning, and landing.
(1) Physical 4-Rotor UAV Prototype
Hardware
Image (1) shows my teams current physical prototype. The UAV was designed as a quadrotor in an x-configuration and the frame was manufactured out of FDM 3-D printed PETG and laser cut wood.
For electronics, it uses a single, all-in-one Power Distribution Board (PDB) and Electronic Speed Controller (ESC) to power the computers and motors on board.
For control, it uses a Pixhawk baseboard paired with a CubePilot as the main Flight Controller and an Nvidia Jetson TX2 as a companion computer.
(2) Software-In-The-Loop Simulation of ArUco Marker Detection and Positioning in ROS Gazebo
Software
Currently, the Nvidia Jetson companion computer is running a ROS framework on Ubuntu Linux for high level controls and computer vision. This ROS framework is interfaced with the PX4-Autopilot flight software running on the main flight computer for low level controls.
My specific contributions have been in leading the implementation of ArUco Marker detection and pose estimation (ArUco marker pose relative to UAV) using Python/C++ with OpenCV. I also implemented a Proportional-Integral-Derivative (PID) control system in C++ to position the drone precisely above a detected marker. This was all integrated into a ROS environment.
As shown in image (2), I also developed a simulation environment using ROS, Gazebo, and existing resources from the PX4 Software to run Software-In-The-Loop (SITL) simulations to test and validate our PID Control algorithm and ROS scripts with the PX4 Flight Stack. This image displays the simulated UAV along with the simulated camera detecting an ArUco marker placed on the ground below, as the drone positions itself directly above the marker through our control system. With this SITL Simulation environment, I was able to test the performance of our marker detection scripts and tune the PID gains for the control system. This approach allowed for more efficient and risk-free testing compared to physical flights alone.
The current code and ROS system for the drone can be found in the following github link: https://github.com/Texas-Aerial-Robotics/TAR-23-24-Software-Team-2
2023-2024 Raytheon Competition Drone
TAR also competed in the 2023-2024 Collegiate Raytheon Drone Competition. The objective was to develop a UAV that would fly above an open field, detect ArUco markers placed on enemy ground vehicles, maneuver to the enemy vehicles, and spray them with water.
Despite joining the competition team late, I helped implement the ArUco marker detection system from my general UAV project into the competition drone by converting my scripts from ROS 1 to ROS 2 format, allowing our team to save time in development and complete required qualification tests.
The video and image below show physical qualification testing I helped conduct of our UAV's Aruco Marker detection and identification system using the drone's onboard camera and computer.
Testing of the ArUco Marker detection and identification system using the onboard camera and computer.