Website Path: Home >> Vector

"Vector" - Thrust Vector Controlled Model Rocket


Project Completion: May 2022





Purpose & Objectives:

The VECTOR flight vehicle (model rocket) was my first attempt to build a thrust vector controlled model rocket completely from scratch. The purpose was to design, build, and fly a controllable model rocket, where all modeling, flight software, hardware, testing and simulations were written and designed from the ground up. I started this work during the covid pandemic as a way to fight boredom, and it ended up being pretty fun! Below are the general requirements I layed out for this project.

  • Req. 1: Design, build, and fly a thrust vector controlled model rocket, built completely from scratch.
  • Req. 2: Write a fully non-linear 6DOF monte-carlo simulation that can integrate the flight software.
  • Req. 3: Write the flight software in C/C++ as library of software capabilitites, and use the Arduino environment as a wrapper to pull in and compile the flight logic.
  • Req. 4: Retain boost stability & attitude control on ascent.
  • Req. 5: Deploy a parachute and have the vehicle return to the ground safely for another launch attempt.

Video:

The following video shows the FIRST and only launch attempt of this vehicle. As can be seen, boost attitude control is ascheived on ascent. However, the apogee deployed parachute failed to unravel.



Launch Site:

The following image shows the general launch setup for the first launch attempt. This was performed in Kirkland, WA.



Main Flight Computer:

The flight computer I constructed was extremely simple, utilizing teensy microcontrollers along with the Arduino IDE to compile the C/C++ code onto the hardware. All software was developed in C/C++ where common classes/functions could be pulled into either the Arduino IDE or wrapped by pybind11 for integrated simulations. I used pybind11 for compilation of the C/C++ code into shared object (.so) files for the python-based monte-carlo integrated simulation. The simulation contained models of the sensors and vehicle dynamics, allowing testing of the software logic that would eventually be deployed on the hardware.

The flight software was broken up into a few high level capabilities: the Flight Manager (FM) that handled control and sequencing, Nav Manager (NAV) which read sensors and sent them to the FM, and Telemetry (TLM) which communicated wireless data back to my ground station through NRF24L01 modules.



Thrust Vector Control Assembly:

The Thrust Vector Control (TVC) Assembly was a 3D printed mechanism I designed in SolidWorks and printed on a Creality CR-10 3D printer. It consisted of an inner Solid Rocket Motor (SRM) sleeve, and inner/outer gimbals. Hobbyist electro-mechanical servo actuators were used to actuate the inner and outer gimbals in the pitch and yaw planes of the rocket’s body axis, using the SRM's thrust to induce torques to control and counteract the destabilizing aerodynamics. These servos and assembly were modeled in my python integrated simulation and were directly used to help tune controller gains for the inner-loop boost attitude controller. Included in the picture is the Gimbal Coordinate Axis (GCA) which is the local body axis of the TVC assembly.



Static Hotfire Test:

Prior to an actual flight, I first developed the launch pad with the ability to fire the SRM and record timeseries data from a load cell. This drastically improved the accuracy of the integrated python simulation, as I was able to test multiple motors and better define their thrust uncertainty for the monte-carlo functionality. Having accurate hotfire data also helped in the tuning of the boost attitude control gains.



Monte-Carlo Integrated Simulation:

The simulation was written in python, with a whole simulation library that was able to run parallel monte-carlo simulations. I was able to disperse parameters of the simulation, such as the thrust profile from the solid rocket motor based on static hot fire testing, or mass parameters such as the center of mass and inertia tensor. Using pybind11, I was able to build code and integrate the flight software into the simulation for full integrated testing, driving confidence it would work on the first attempt.



Attitude Control Scheme:


The boost control scheme consists of Proportional-Derivative (PD) controllers on the pitch and yaw attitudes during the BOOST phase (defined by the sequencer SWC). Due to a short boost phase of approx. 3 seconds, integral action was not included. The PD gains were gain scheduled based on the expected thrust of the SRM at a particular flight time.



Conclusion:

The only requirement I had for this project that mattered was to have fun, and prove to myself that I could complete a project like this from start to finish. Ultimately, I learned a lot, and that pays dividends to myself and my career. My next project, New Mays, was built on top of what I had learned from this project, except with much greater attention to detail.