A New Spin On Vertical Orientation Control

The Rocketry Forum

Help Support The Rocketry Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

Finicky

Well-Known Member
TRF Supporter
Joined
Nov 2, 2017
Messages
157
Reaction score
377
Location
Upstate NY
This is a project I’ve been working on for the last three-ish years. The inspiration for the project came to me after reading the incredible (100 page !) document Team AeroPac’s 2012 100k’ Rocket Program. The report read like a great story, but I finished it thinking “Things would have gone better if they could have just kept the flight path more vertical.”

Being a gizmo builder looking for something unusual and challenging to build, I wanted to create a solution to high power rocket Vertical Orientation Control (VOC) that was a bit non-traditional. I’ve followed on TRF with great admiration the work of Jim Jarvis and others using the canard fin approach for VOC, and have learned quite a bit from their postings. But I wanted to create something a bit more “Rube Goldberg.”

What I’ll describe here is NOT meant to be a substitute for or an improvement on the canard fin approach to VOC. Those systems are much more capable than what I’m trying to accomplish. This system is only intended to give a gentle “nudge” to get a flying rocket back to vertical if it’s not already there. As with most of these systems, it’s real power and utility comes when flying multi-stage rockets.

This project has always been about VOC, but it took an interesting, unexpected and fun sideroad during development. The early-stage prototypes that have been flying for the last few years are something I call “NoseCam”. These early prototypes do not have VOC capabilities, but they were part of the platform I needed to get there.

As the name implies, NoseCam is a system with a video camera in the nose of the rocket. It provides a spinning nose shell that “de-spins” a flight video by preventing the camera from spinning along with the rest of the rocket during flight. Behind the scenes, the system is also monitoring the orientation of the rocket in flight, so that the video camera is always on the “high side” of the rocket. The simplest way to understand this is that when the rocket arcs over at apogee, the horizon will always be level and right-side-up in the video frame. These early systems produced some very nice flight videos, and avoided what I liked to call the dreaded “vomit cam” that you get when your rocket (and camera) are spinning 1000dps !

This is a previous post with NoseCam videos for those not familiar with the system. If you scroll through the entire post there are videos of several flights made during system development.

https://www.rocketryforum.com/threads/two-stage-flight-with-video-stabilization.172553/
These photos and the following video of my most recent two-stage NoseCam flight at URRG in August, 2022. Again, all of these videos use a NoseCam without VOC capability.

2022-08-20_013.JPG 2022-08-20_034.JPG


 
Last edited:
To get VOC capability into the NoseCam platform I added what I call “Falcon Winglets”. I initially thought the system had a bit of an F-14 Tomcat vibe with the moveable wings, but it didn’t seem quite right since the F-14 wings only partially sweep back. So I came up with the Falcon moniker after thinking of this guy, because somehow he can make his wings almost completely disappear.

1661371515893.png

This garage video should give everyone an idea of what the system does. Currently each winglet has its own servo. I was too lazy to make a single-servo linkage to move both winglets simultaneously, and two independent servos does make zeroing the home position for each winglet super easy. Two servos does take up a bit more room, however, so there is a “servo bump” on the upper nose.

Important – when watching the video, notice the two vertical stripes of masking tape near my hand. Notice how they do NOT rotate. I point this out because some folks thought the reason the nose was rotating was because I was twisting my wrist.



The winglets are fiberglass sheet, and are at a fixed 15 degree AOI w.r.t. the rocket body. This AOI was a complete guess on my part, and had more to do with simply getting everything to fit inside the nose that anything to do with aerodynamics. I image that an airfoil-like cross-section to the winglets might be a good idea, and a different AOI might improve possible issues with stall, but that will have to wait for future work.
 
So far I have conducted four test flights. The first two flights were intentionally very conservative and were mostly to see if the system could survive going up-and-down. I was also wondering if the winglets might induce some weird vortex shedding that would then result in a torque oscillation. The good news is that the system survived just fine and everything looked smooth, if rather uneventful.

Test flight #3 is where I started to push the system. I was intentionally heavy-handed with my choice of control strategy for the winglets, because I wanted to see clear correlation in the flight data between winglet deployment angle and change in rocket tilt. The control strategy for flight #3 was mostly proportional with a little bit of attenuation applied during the initial high velocity after burnout. The system “turns on” at t=2 seconds. Apogee occurs at t=13 seconds. The system detects the drogue deployment event and immediately retracts the winglets for the descent to prevent them from getting hit by harness lines.

One issue with being a bit too aggressive with the control input is that the rocket doesn’t just get pushed to vertical, but actually goes through vertical slightly. On a canard fin system this isn’t really a problem, but on this system what happens is that the nose tries to quickly rotate ~180 degrees to be correctly positioned to apply an opposing correction. My heavy-handed control approach resulted in a bit of tilt oscillation and over-correction around vertical, and also caused the video to be a bit of a mess as the rocket moved back-and-forth through vertical. As expected, as the rocket approached apogee and the velocity dropped to near zero, the control authority of the winglets also dropped to near zero, even when fully extended.

The chart below takes a bit of noodling to understand. Rocket tilt is on the right vertical axis and is labeled in orange. Winglet angle is on the left vertical axis and is in blue. There are no “negative tilts”, meaning that as the rocket passes through vertical the tilt value decreases to near zero and then increases again. Also, the tilt does not always go all the way to zero as the rocket oscillates about vertical. (It’s really a 2D problem after all, and this data is rather 1D in it’s presentation).

1661371643180.png

The flight video shows the oscillation about vertical, and the rotary system trying to keep up. Part of what is going on is that there is a response lag between a change in winglet angle and a change in tilt, and if this isn’t managed that there will be an oscillation (and lousy video LOL). But overall I was pleased with the result. There is definitely control authority being applied. It just needs a softer touch.

 
Last edited:
For test flight #4 I made the control strategy more conservative to get back to the goal of applying a gentle “nudge” (or multiple small nudges) to get back to vertical. For this flight, when the tilt was less than 5 degrees, the winglets remained fully retracted. This was to help prevent the “over the top” problem from flight #3. Above 5 degrees in tilt, the winglets slowly extended. Eyeballing the oscillation from test flight #3, in looked like the system wanted to oscillate around vertical at about 1Hz. The new control strategy for test flight #4 was intended to give a slower input to stay away from this oscillation.

The control strategy for this flight might have been a bit too conservative, but I think the data shows the system was doing what it was supposed to. Again, near apogee the control authority gets lost and the rocket does weathercock just a bit before the drogue pops. The system starts operating after t=2 seconds. Apogee occurs near t=16 seconds. The last two seconds of flight data are not shown in the graph below so I could zoom in on what I thought was interesting, while there was enough velocity to actually do something.

Every time the winglets start to deploy there is a corresponding (if slight) reduction in tilt angle. The choice of forcing the winglets to completely close when the tilt was less than 5 degrees certainly made for less dramatic results, and as expected left the rocket flying at about 5 degrees through most of the flight. Of interest is just how little the winglets needed to be deployed (usually less than 10 degrees extension) in order to maintain control – at least while there was sufficient velocity. If this really is true, then the winglets can be made smaller and still do their job. More test flights needed !

1661371769162.png

The NoseCam video was taken at URRG in Potter, NY. It is satisfying to watch the velocity drop to almost zero and the lower half of the rocket get pushed almost straight down during the apogee event. Final tilt at apogee was 13 degrees off of vertical.

1661373211292.png



I’m still a long way from declaring victory, but so far it all seems very promising. I want to get more test flights in with more sophisticated control strategies, and then get the system on a 2-stage rocket and really have some fun. I want to try maximizing coast and trigger the firing of the 2nd stage motor based on a target velocity, while controlling tilt to maybe < 3 degrees.

Several folks have asked about copying the system. Once I get things a bit farther along (and the code is less of a spaghetti disaster) I’ll post everything on GitHub.

If there is interest, I can start a separate build thread to show what the guts of the system look like. Please let me know.
 
Last edited:
Very unique control system. Will be following this thread and check Github when you publish.

How is the inertia rotation sensed? Integrated Gryo?
Yes, in flight a 3-axis gyro is integrated to determine orientation. While the rocket is on the pad before launch the orientation is calculated using 3-axis accelerometers.
 
That is brilliant! I was toying with the idea of using two canards and rotating the entire rocket normal to the tilt angle then activating the control. Rotating the canards normal to the tilt is something I didn't think of. Bravo!
 
That is brilliant! I was toying with the idea of using two canards and rotating the entire rocket normal to the tilt angle then activating the control. Rotating the canards normal to the tilt is something I didn't think of. Bravo!
I love how the canards can get out of the way when not needed, and most of the drag is only there when lift is needed too. This seems like a great idea.
 
I love how the canards can get out of the way when not needed, and most of the drag is only there when lift is needed too. This seems like a great idea.
Thanks. Part of what I like about the system is that it can be completely "turned off" and completely disappear very quickly. I guess I don't trust my own work sometimes. The software is looking for unexpected changes in things like motor following error and retracts the winglets the moment trouble is detected.
 
This is a very interesting idea, as is the roll control for video stabilization. I hope you follow through on trying to make this more accessible for folks, as I think many people would enjoy doing this if they could just get a little help.

Looking at your system, one thing I would suggest is reducing the angle of attack. I can move a rocket very quickly using canard angles less than 7.5°. I don't know what angle you have, but just eyeballing the video, it looks like quite a bit more than that. For nudging to vertical, I think you could use quite a bit less angle.

Although it doesn't have a place in your system, differential movement of the winglets would result in some roll control. Just sort of interesting to ponder. Looking forward to seeing where you go with this!

Jim
 
This is a very interesting idea, as is the roll control for video stabilization. I hope you follow through on trying to make this more accessible for folks, as I think many people would enjoy doing this if they could just get a little help.

Looking at your system, one thing I would suggest is reducing the angle of attack. I can move a rocket very quickly using canard angles less than 7.5°. I don't know what angle you have, but just eyeballing the video, it looks like quite a bit more than that. For nudging to vertical, I think you could use quite a bit less angle.

Although it doesn't have a place in your system, differential movement of the winglets would result in some roll control. Just sort of interesting to ponder. Looking forward to seeing where you go with this!

Jim

Hi Jim ! First let me say how appreciative I am of everything you have posted regarding you canard system, your carbon fiber work, and you +100k flights. It has all been very inspirational !

We're on the same page with all of your comments. The current 15 degree AOI was a complete guess, and after reading comments on the forum over the last year I also felt it was a bit too much. It does get tempered somewhat because most of the time the winglets are only partially extended. I truth it takes so long to build one of these systems that I didn't want to "undershoot" with control authority and end up with something that does a lot of nothing. So I went for the larger AOI. But I think a lower AOI would be good for staying away from stall issues, and the data so far does indicate that there is plenty of control authority.

Also, because the current design uses independent servos I had thought about attempting some form of roll attenuation. That would be the first time I have ever tried to use the main rotation motor to influence the spin of the main body of the rocket. Currently the main rotation motor has to deliver a surprisingly small amount of torque to keep things where they need to be. So adding roll control would stress that subsystem in new ways. For the Falcon NoseCam I described here, I already beefed up the rotation system because I wasn't sure what the aerodynamic forces on the winglets would do to the main rotary position loop. The main BLDC motor is supplied by a 6S LiPo and peaks at ~70 watts of power. So far so good w.r.t position error issues.

I very much intend to post everything once it's a bit less half-baked. This is a very complicated (for me anyway) system, and I'd like to have confidence that someone else actually has a chance of making a functioning system based on what I post. I have received several inquiries about the system over the last year. Maybe it's time for a build thread just to show everyone what's inside ?

Again, thank you for your comments.

Steve Gregorski
 
Hi Jim ! First let me say how appreciative I am of everything you have posted regarding you canard system, your carbon fiber work, and you +100k flights. It has all been very inspirational !

We're on the same page with all of your comments. The current 15 degree AOI was a complete guess, and after reading comments on the forum over the last year I also felt it was a bit too much. It does get tempered somewhat because most of the time the winglets are only partially extended. I truth it takes so long to build one of these systems that I didn't want to "undershoot" with control authority and end up with something that does a lot of nothing. So I went for the larger AOI. But I think a lower AOI would be good for staying away from stall issues, and the data so far does indicate that there is plenty of control authority.

Also, because the current design uses independent servos I had thought about attempting some form of roll attenuation. That would be the first time I have ever tried to use the main rotation motor to influence the spin of the main body of the rocket. Currently the main rotation motor has to deliver a surprisingly small amount of torque to keep things where they need to be. So adding roll control would stress that subsystem in new ways. For the Falcon NoseCam I described here, I already beefed up the rotation system because I wasn't sure what the aerodynamic forces on the winglets would do to the main rotary position loop. The main BLDC motor is supplied by a 6S LiPo and peaks at ~70 watts of power. So far so good w.r.t position error issues.

I very much intend to post everything once it's a bit less half-baked. This is a very complicated (for me anyway) system, and I'd like to have confidence that someone else actually has a chance of making a functioning system based on what I post. I have received several inquiries about the system over the last year. Maybe it's time for a build thread just to show everyone what's inside ?

Again, thank you for your comments.

Steve Gregorski
Steve, thanks for the kind words. Appreciated.

The question of how to expand the use of something you have developed is a tough one. If you're like me, you'd like to make that happen, if only because you know how much enjoyment people will get when they fly it. So, the choices range from posting some pictures to providing a complete system, or something in between. I have a beta group working with my system at the moment, and at some point, I want their feedback on this issue.

Jim
 
Some photos of the internals would be nice.
If the frames holding the motors & Servos were 3D printed then others can easily duplicate the mechanics.

With each canard on its own servo, roll control could be done with just software changes. One canard deploys slight more than the other.

I really do like how the canard's angle is fixed then vary the amount of the canard's surface is projected.
Seems like the BLDC motor and battery to rotate the nose would be the largest and heaviest part.
 
I'm starting a draft of a build thread now. It will just cover the hardware (for now) to show what's inside. If I post a little every few days it should be manageable for someone who can't type LOL. I've got lots of pictures.
 
New data and videos from a couple of test flights to share. These flights were meant to challenge the VOC system to see what things could be improved upon. Large launch rail angles (~10 degrees) we used to ensure there was a flightpath tilt that needed to be corrected. Small motors were used to learn more about control authority at low velocities – and because the corn is very high right now ! This was also a “test” of sorts to see if I could move the same NoseCam system between two different rockets launched within a few hours of each other.

The first flight was on an I-500 motor and pulled 14 G’s off of the pad.

1663021630756.png

For this flight the winglet control strategy would completely retract the winglets when the tilt was less than 3 degrees, which happened about 4 seconds into the flight. As can be seen from the chart below and the video, this quick retraction did result in a tilt “bounce” which took a few seconds to recover from. Still, after about 8 seconds of flight the rocket was back to 3 degrees of tilt. After that the velocity is too low and the rocket weathercocks. The code will be modified to retract the winglets progressively as a tilt target is reached to prevent (or at least minimize) this type of bounce.

1663021686417.png

 
The second flight was on an J-400 motor and pulled 11 G’s off of the pad. Again, the winglet control strategy would completely retract the winglets when the tilt was less than 3 degrees.

1663021801269.png

This second flight occurred in considerably more wind, as can be seen from the blowing bean plants in the video. With the lower acceleration off of the pad and the strong wind the rocket immediately weathercocked and reach a maximum flight tilt angle of ~17 degrees. The winglets did pull the rocket back to ~6 degrees of tilt before the velocity got too low and the rocket arced over. Also, on the second flight the rocket had larger rear fins, which made the control authority of the winglets comparatively smaller to the first flight.

1663021849530.png



Based on these learnings I’ve made a few additional tweaks to the code and hope to have another test flight in a few weeks.
 
A new test flight with updated control code for the VOC system. The goal for this flight was to get to within 2 degrees of vertical throughout the flight while minimizing tilt oscillation.

1664126898366.png 1664126942117.png


1664127165192.png

Apogee occurred at 12.7 seconds. For this flight I had the VOC system deactivate and retract the winglets when the vertical component of the rocket velocity dropped below 15m/s. This occurred at 11.6 seconds. At the time of system shutdown and winglet retraction the tilt was at 3.5 degrees.

I think the system performed well and did get to less than 2 degrees several times. Oscillation was minimal as well. At apogee, velocity was a slow 4m/s. It’s nice how the wind noise in the video drops to nothing at apogee.

 
Last edited:
A control system needs all three elements to succeed; Proportional, integral, and derivative. These are summed to give a maximally damped response. When it oscillates like that, I usually increase the integral function.
 
A control system needs all three elements to succeed; Proportional, integral, and derivative. These are summed to give a maximally damped response. When it oscillates like that, I usually increase the integral function.
Add a touch of derivative , I decreases steady state error or bias.
 
I had a couple of really nice flights at Midwest Power using the VOC system.

The first was a single stage flight to 7300 feet on a K-800 sugar motor.

1667112419822.png



The rocket tilt was brought below 2 degrees and held there until just before apogee.

1667112527314.png

The second flight was a two stage with a K-1200 and a K-800 (both sugar) going to 10430 feet. The second stage ignition was delayed until the velocity dropped below 60m/s.

1667112849345.png



1667112919783.png

Other than a slight wiggle when the second stage lit I think the system performed really well. I'm not sure if there's really anything I could have done about that anyway. The 2nd stage motor hit pretty hard going to over 21 g's.
 
Last edited:
A couple of very straight up flights. Nice seeing the data overlay on the video with the rotation and canard deploying.

On the 2-stage, I have a 2-stage and run a 10DOF sensor logging for post analysis. I have noticed a jolt in the accelerometer and gyro data when at stage separation and ignition.

Interesting you also have this.
 
Back
Top