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.
This last video was incredible. I got to see this flight at MWP-20 and it looked like it was perfectly straight.

Being on the QCRC BoD, we were all very busy with the launch itself and I have to say that I missed the announcement of the details of the flight itself, but I was watching because I did catch that it was a 2-stage. Frankly, I was a bit worried because of what I thought was an extra long delay between the booster burnout and the sustainer ignition. I feared "ye old tilt to the horizon before sustainer ignition" that we have all seen way too often with the second stage of two. Instead, I saw an almost perfect vertical sustainer flight after an excellent boost and coast!

Now that I know the details, I am even MORE impressed. I had assumed that the flier got lucky. Instead, I find out that the flier used exceptional engineering. I know that I can't be the only one who has daydreamed of figuring out how to use a gyroscopic control for one of my own rocket flights, but Finicky has brought his dream to life. Wish I'd had the time to take a close look myself.

All I can say is incredibly well done!

Brad, the "very impressed" "Rocket Rev.," Wilson

ps: I am not easily impressed!

pps: It was also very cool to see the obvious "Flying V" of our pad set-up from about 8 seconds to 15 seconds in the video. Thanks!
 
This last video was incredible. I got to see this flight at MWP-20 and it looked like it was perfectly straight.

Being on the QCRC BoD, we were all very busy with the launch itself and I have to say that I missed the announcement of the details of the flight itself, but I was watching because I did catch that it was a 2-stage. Frankly, I was a bit worried because of what I thought was an extra long delay between the booster burnout and the sustainer ignition. I feared "ye old tilt to the horizon before sustainer ignition" that we have all seen way too often with the second stage of two. Instead, I saw an almost perfect vertical sustainer flight after an excellent boost and coast!

Now that I know the details, I am even MORE impressed. I had assumed that the flier got lucky. Instead, I find out that the flier used exceptional engineering. I know that I can't be the only one who has daydreamed of figuring out how to use a gyroscopic control for one of my own rocket flights, but Finicky has brought his dream to life. Wish I'd had the time to take a close look myself.

All I can say is incredibly well done!

Brad, the "very impressed" "Rocket Rev.," Wilson

ps: I am not easily impressed!

pps: It was also very cool to see the obvious "Flying V" of our pad set-up from about 8 seconds to 15 seconds in the video. Thanks!
Thanks Brad ! I was very happy with the flight. I had mentioned to Justin that from where I was standing out at the away cell it looked like the the 2nd stage wiggled quite a bit on ignition, but it might have been wind shear blowing the smoke around. I was looking straight up so it was a bad angle to see things from. The video and data both show a twitch at ignition, but I think that might be just because the 2nd stage motor hit quickly with high thrust.

1667300535542.png

The control code for 2nd stage ignition has several layers of interlocks to prevent the "cruise missile" effect. Because the flight was so close to vertical, the code made it all the way through its progression and waited until the velocity hit 60m/s before firing the 2nd stage.

Here's the timing info from the flight data log showing the detection of 60m/s and then the detection of thrust.

8.328 Second Stage Ignitor Fired
8.328 Tilt [deg] = 2.2
8.328 Altitude [ft] = 2439.9
8.328 Velocity [m/s] = 60.0
9.258 Second Stage Motor Thrust Detected
9.258 Tilt [deg] = 4.6
9.258 Altitude [ft] = 2607.5
9.258 Velocity [m/s] = 50.6
11.399 Second Stage Motor Burnout Detected
11.399 Tilt [deg] = 1.8
11.399 Altitude [ft] = 3881.4
11.399 Velocity [m/s] = 268.3
11.400 Second Stage Motor Delta V [m/s] = 218.4

It took about 0.9 seconds for the motor to come up to pressure after the ignitor fired.

The rocket has three independent 3DOF gyro sensors making tilt calculations during flight. They were in good agreement throughout the flight.

1667301706704.png

Steve

PS - We got to chat a couple of years ago out at the away cell. I think you told me about the good ol' days when the club's waiver was 25K :)
 
Flying my two stage Sweetness at Tripoli East NC in Bayboro. K-1200 staging to a J-450. Both were sugar motors. I think this was the most difficult test for the VOC system to date. High level winds around the apogee of 7824 feet were forecasted to be blowing at ~55mph. The VOC system did a nice job of preventing the rocket from arcing over. I had hoped to fly even higher (16,500 feet) to really test the system in a crosswind, but the field wasn't big enough to handle the likely 3 to 4 mile drift on descent. Winds at 18,000 feet were forecast at 120mph !

1671502115013.png

1671502172163.png

1671502334396.png

 
Last edited:
Nice flight! I happen to know that two-stage stabilized flights aren't that easy, even though you make it look that way.

Jim
 
Great work! Is there any reason this system couldn’t be extended to rockets with more than two stages? It has always seemed to me that one of the major challenges to staging which increases with the number of stages is risk of “off-vertical” sustainer or upper stage booster ignition.

seems like you may end up having the only limitation may be an altitude limit, eventually you run out of air density for the winglets to operate. That is, of course, far higher than the vast majority of rocketeers fly.
 
Great work! Is there any reason this system couldn’t be extended to rockets with more than two stages?
The system doesn't really "know" how many stages the rocket has, so it will keep working (or trying to work LOL) regardless. There is code to retract the winglets during acceleration, but there is not a "stage counter" per se. The main issue I can see is that the control authority will be reduced early on since the nose has a lot more rocket to turn. However in the early moments of a 3+ stage flight the winglets will also be a longer distance from the point of rotation for the entire rocket stack, which will give it more moment arm to work with (maybe ?)

With all that said, my observation is that with winglets barely need to be deployed to work well if the velocity is high enough. I believe the current system which fits on a 3" rocket probably has a lot of "gas left in the tank" if you wanted to turn a taller rocket. On this flight the winglets didn't rotate more the 10 degrees out of the nose for most of the flight.

1671535479377.png

1671534613031.png

When I first started flying the system at the beginning of this year I was suspicious of the small amount of winglet extension that seemed to be making meaningful flight corrections. It just didn't seem possible that such a small amount of "trim tab" could be turning the rocket. I have no CFD aerodynamic model to go from. I do have a really simple Excel spreadsheet to calculate turning moment, but I never put much stock in it. But the "proof" I have that the system really is working (other than the tilt data) is when I fly a nearly identical rocket without a VOC system in the same conditions and compare the flights. This next video was made a few hours earlier in the day. It uses a NoseCam without a VOC system. This single stage rocket was nearly identical size-wise to the sustainer of the two-stage flight. It only flew to half the altitude (~4000 feet), so it was seeing much lower crosswind velocities. And it clearly arced over like a "normal" rocket flight.

1671536048108.png 1671536086719.png

 
Nice flight and writeup! You make it look so easy! There's a ton going on with this flight. Two EX motors, built from scratch vertical orientation system, two stages...the list goes. on. Great work!
Dave
 
Nice flight! I happen to know that two-stage stabilized flights aren't that easy, even though you make it look that way.

Jim
Thanks Jim. I was happy with how things turned out, but there was one thing that didn't quite go as planned. The initial plan (hope) was to fly to ~16,500 feet by staging an L-1600 to a K-1200. I was hoping for maybe a 16 second coast between motor burns. But after studying the winds aloft forecast for way too long I decided at 3am the night before to reprogram the flight computer for minimal coast instead. I also switched to smaller motors. But the rocket scientist doing the programming missed a line of code, and so at first stage burnout the second stage immediately lit. Not a big deal during the flight, but it was definitely unexpected. It did, however, result in the most symmetric two stage acceleration plot I think I will ever see :)

1671551374786.png
 
Last edited:
Nice flight and writeup! You make it look so easy! There's a ton going on with this flight. Two EX motors, built from scratch vertical orientation system, two stages...the list goes. on. Great work!
Dave
Thank Dave. The flight computers and LoRa GPS trackers are also homemade. I go for maximum pain when I fly 🤪
 
Is that a giant separation charge making the acceleration spike between burns?????
If by giant separation charge you mean the J-450 motor lighting, then yes :) The augmented motor ignitor probably helped as well. As I wrote to Jim, the flight computer code had a error in it. (You just can't get good coding help at 3am these days LOL) The actual separation charge went off right as planned 0.5 seconds after first stage motor burnout. Unfortunately by that point the 2nd stage motor had already done a fine job of separating the stages 😝

Here's what it looked like from the ground

View attachment From the Field.mov
 
Last edited:
I’ve started working on the 2nd generation VOC system. Goals for this new design include:

1) More aerodynamic (less drag) design to better handle Mach+ speeds. Specifically, I want the VOC system to be aerodynamically “invisible” when it is full retracted. I do plan on leaving the downward-facing camera in the nose since I love the videos in makes. The camera bump on the nose will be the largest source of additional drag.​
2) Replace the dual servos in the Gen1 design (which were direct drive to the winglets) with a single servo and a linkage to the two winglets. This will save volume in the nose. It does mean giving up (for now) the ability to have asymmetric deployment of the winglets.​
3) Move the camera as low as possible in the nose to open up more volume for the winglet mechanism.​
4) Make the winglet mechanism nose section a “quick change module” so that it is easy to fabricate and install different winglet mechanism designs for evaluation without having to build an entirely new nose. The servo and associated wiring are not part of this module, but will occupy space in the lower camera section.​
5) Reduce the angle of incidence (AOI) for the winglets to 10 degrees. The Gen1 design had an AOI of 15 degrees.​

As always the most challenging part of these designs is just getting everything to fit inside the tapering cross-section of a nose. I chose to use a simple cam-follower wedge mechanism with spring retraction (a.k.a rubber bands LOL) for the winglet deployment since it is mechanically simple to fabricate and tweak.

I made the winglets out of 1.5mm carbon fiber sheet. I love the way they look.

1671806658933.png

1671806699855.png

1671806738610.png

The CAD cross-section below shows the winglets fully deployed and what the wedge cam-follower looks like.

1671806800720.png
 
Last edited:
The Gen3 Falcon NoseCam system is basically done. Compared to the previous system the AOI of the canards (winglets) has been reduced to 10 degrees and the maximum exposed canard surface area has been reduced. I'm still expecting plenty of control authority at high velocities, and hoping for slightly smoother control. Now I just need warm weather to start test flights :)

In the video the canard extension is a simple function of tilt so that it is easy to see the system in operation. In actual flight the control algorithm is more complex.

 
Last edited:
And in other news ............. I've posted the info on how to build a NoseCam on GitHub!

https://github.com/sjgregorski/NoseCam
For those hardware junkies interested in NoseCam it's a bit of good news / bad(?) news. The good news is that it's finally posted. However, I "only" posted the info on how to build a NoseCam without VOC. If you download the distribution, you will see it's still quite a bit of info. I'm going to take a wait-and-see approach to adding the design info on the VOC module to GitHub. If and when folks start posting NoseCam videos of their own then I'll revisit the topic. As I state in the distribution READ ME files, what I posted on GitHub is 90% of a VOC system. Everything from the camera module down is exactly the same hardware.

P.S. - I have no idea if I posted things on GitHub "correctly". This is totally new to me. I think (hope) anyone should be able to download a single ZIP file with everything.
 
Data on a new VOC flight that occurred at Thunderstruck a few weeks ago. Flying my two stage Sweetness with an L-1400 staging to a K-1000. Both were sugar motors. I had hoped for a nice straight flight past 16K, but what I got was quite a bit different :)

This was an unexpected and amazing trial-by-fire for the VOC system. A launch pad issue caused rail binding and a very violent launch which ripped the rail guides from the booster. The rocket left the pad at 35 degrees of tilt (very bad), but the VOC system brought the rocket back to vertical (very good) before the sustainer motor fired. Even with all of the wild steering the apogee was 14,600 feet. The 3-axis gyros in the NoseCam saturated on the pad due to the extreme motions of the rocket at ignition, which did result in trajectory calculation errors throughout the flight. This is the reason for some of the instability in the later parts of the flight.



I've been analyzing the flight data and have learned quite a bit that has already helped with code improvements. The graph below shows the tilt data for the entire flight.

1682688156178.png

From t=0 to t=9 the VOC system is doing it's job and reducing tilt. At t=9 an oscillation starts to happen as the rocket "bumps" into zero degrees of tilt. This is an artifact of the unusual (and suboptimal) design of the NoseCam VOC system. The system can push a rocket back to vertical fairly quickly if it needs to, but if it passes through vertical quickly then it needs to 1) retract the winglets, 2) spin the nose 180 degrees and 3) re-extend the winglets in order to push back in the opposite direction. This motion dance takes a lot of time and can result in oscillation. My design intent has always been that the system works by providing a small "nudge" to get a rocket near vertical (less than 2 degrees) but NOT push the rocket through vertical, so that all this commotion would not need to happen. In a normal flight where the system is making small and slow adjustments there is no oscillation near vertical. But in this case the system really was attempting to throw a highly tilted rocket back to vertical in a hurry. Hence the issue.

At t=10 the sustainer lights and the VOC system detects the acceleration and quickly retracts the winglets. This retraction eliminates the tilt oscillation.

From t=11 until t=27 the VOC system is making small corrections to keep the rocket near vertical. During this time the velocity is high enough that winglet angular extension is limited to small values because there is a lot of control authority at high speeds.

At t=27 the velocity drops below 100m/s, which in the code means the winglets are now allowed to open more since 1) the end of the vertical ascent is approaching and 2) at low velocities more control authority will be needed. This is where the next oscillation issue happens, which really is something that resembles coning. As I mentioned earlier, all of the violent motion at launch saturated the gyros. This resulted in integration errors that propagated over the duration of the flight. At t=27 the rotational position of the NoseCam is probably off by 30 degrees or more due to integration errors. When the winglets extend, the motion of the rocket nose is not exactly back to vertical anymore. Instead, the nose gets pushed both vertical AND sideways. Hence, the coning motion.

This observation has led me to incorporate new code which looks at the rate of change of rocket bearing as the VOC system is working, particularly in the later parts of a flight. If the VOC system is working correctly (i.e. no integration errors), then when the nose gets pushed back to vertical the bearing direction of the rocket should not be changing very much. But if the bearing direction starts to change quickly, this implies something is misaligned. The new code will attempt to null out the bearing change issue by adding a rotational position offset to the nose. We'll see ...............

Time for more test flights :)
 

Attachments

  • 5.jpg
    5.jpg
    140.1 KB · Views: 0
  • 12.jpg
    12.jpg
    740.2 KB · Views: 0
  • 11.jpg
    11.jpg
    885.2 KB · Views: 0
  • 10.jpg
    10.jpg
    62.2 KB · Views: 0
  • 9.jpg
    9.jpg
    91 KB · Views: 0
  • 8.jpg
    8.jpg
    69.6 KB · Views: 0
  • 7.jpg
    7.jpg
    95.3 KB · Views: 0
  • 6.jpg
    6.jpg
    94.4 KB · Views: 0
  • 4.jpg
    4.jpg
    38.3 KB · Views: 0
  • 3.jpg
    3.jpg
    132.3 KB · Views: 0
  • 2.jpg
    2.jpg
    325.4 KB · Views: 0
  • 1.jpg
    1.jpg
    133.9 KB · Views: 0
  • 0.jpg
    0.jpg
    426.3 KB · Views: 0
Wow, another great and interesting flight of the VOC.

As I was reading your description about the Gyro saturation I though of possibly using a Magnetometer. since your system does control roll, it may not be too difficult to using mag data to maintain orientation. Mag would give an absolute reference the Earth whereas Gyro needs integration.
 
Excellent work demonstrating a good response to off-nominal flight conditions!

I don't know why, but I get really weirded out by the flight video where the ground is still in the frame but the fins and body tube are rotating. I know it's the system doing what it's supposed to, but it still seems wrong. It's probably that I'm conditioned by all of the flight video that shows the ground rotating and the fins still in the frame.
 
Wow, another great and interesting flight of the VOC.

As I was reading your description about the Gyro saturation I though of possibly using a Magnetometer. since your system does control roll, it may not be too difficult to using mag data to maintain orientation. Mag would give an absolute reference the Earth whereas Gyro needs integration.
A few years ago I did incorporate a 3-axis magnetometer in the VOC system in order to do error correction on the gyros. But honestly the magnetometer was a PITA with very little value for the effort. I found I needed to get fresh hard and soft magnetic correction parameters immediately before a flight for the system to work usefully. And that was true of every flight. And then the magnetic field data during the flight needs to be tilt compensated in real time, which is doable but even more code.

When the system doesn't need to endure a crazy launch event it actually can remain fairly accurate for well over a minute of ascent. I rarely get to fly that high, so for me it's not a big deal.
 
Last edited:
Very interesting flight! I'd say the control system did remarkably well under the circumstances.

I had a similar flight a few years ago where the rocket weathercocked to about 30° and then slowly corrected back to vertical. The correction looks a lot like your flight, with similar tilt versus time. I didn't get a good video of the rocket making that correction, but I remember how cool it looked from the ground. I suspect yours looked much the same.

Jim

Tilt graph TNT.jpg

 
I only have a vague memory of the flight since the launch pad craziness happened so fast and it certainly wasn't what I was expecting. Watching the top half of the pad, the flame deflector, the 15-15 rail and my rocket spin almost 360 degrees before the rocket even started moving upward definitely caught me off guard. I think I would have been less surprised if a genie had come out of the motor at ignition LOL. But I do recall saying to nobody in particular "Turn baby. Come on baby, turn !".
 
Last edited:
Data on a new VOC flight that occurred at Thunderstruck a few weeks ago. Flying my two stage Sweetness with an L-1400 staging to a K-1000. Both were sugar motors. I had hoped for a nice straight flight past 16K, but what I got was quite a bit different :)

This was an unexpected and amazing trial-by-fire for the VOC system. A launch pad issue caused rail binding and a very violent launch which ripped the rail guides from the booster. The rocket left the pad at 35 degrees of tilt (very bad), but the VOC system brought the rocket back to vertical (very good) before the sustainer motor fired. Even with all of the wild steering the apogee was 14,600 feet. The 3-axis gyros in the NoseCam saturated on the pad due to the extreme motions of the rocket at ignition, which did result in trajectory calculation errors throughout the flight. This is the reason for some of the instability in the later parts of the flight.



I've been analyzing the flight data and have learned quite a bit that has already helped with code improvements. The graph below shows the tilt data for the entire flight.

View attachment 577733

From t=0 to t=9 the VOC system is doing it's job and reducing tilt. At t=9 an oscillation starts to happen as the rocket "bumps" into zero degrees of tilt. This is an artifact of the unusual (and suboptimal) design of the NoseCam VOC system. The system can push a rocket back to vertical fairly quickly if it needs to, but if it passes through vertical quickly then it needs to 1) retract the winglets, 2) spin the nose 180 degrees and 3) re-extend the winglets in order to push back in the opposite direction. This motion dance takes a lot of time and can result in oscillation. My design intent has always been that the system works by providing a small "nudge" to get a rocket near vertical (less than 2 degrees) but NOT push the rocket through vertical, so that all this commotion would not need to happen. In a normal flight where the system is making small and slow adjustments there is no oscillation near vertical. But in this case the system really was attempting to throw a highly tilted rocket back to vertical in a hurry. Hence the issue.

At t=10 the sustainer lights and the VOC system detects the acceleration and quickly retracts the winglets. This retraction eliminates the tilt oscillation.

From t=11 until t=27 the VOC system is making small corrections to keep the rocket near vertical. During this time the velocity is high enough that winglet angular extension is limited to small values because there is a lot of control authority at high speeds.

At t=27 the velocity drops below 100m/s, which in the code means the winglets are now allowed to open more since 1) the end of the vertical ascent is approaching and 2) at low velocities more control authority will be needed. This is where the next oscillation issue happens, which really is something that resembles coning. As I mentioned earlier, all of the violent motion at launch saturated the gyros. This resulted in integration errors that propagated over the duration of the flight. At t=27 the rotational position of the NoseCam is probably off by 30 degrees or more due to integration errors. When the winglets extend, the motion of the rocket nose is not exactly back to vertical anymore. Instead, the nose gets pushed both vertical AND sideways. Hence, the coning motion.

This observation has led me to incorporate new code which looks at the rate of change of rocket bearing as the VOC system is working, particularly in the later parts of a flight. If the VOC system is working correctly (i.e. no integration errors), then when the nose gets pushed back to vertical the bearing direction of the rocket should not be changing very much. But if the bearing direction starts to change quickly, this implies something is misaligned. The new code will attempt to null out the bearing change issue by adding a rotational position offset to the nose. We'll see ...............

Time for more test flights :)

Proof of design is in part how it reacts when fecal-turbine interaction occurs.

In this case I’d say the glass is far more than half full. Anybody else would chalk up that flight as a potential disaster that turned into a great flight.

Congrats
 
Back
Top