Project LR1 Skyhammer: A New Shuttle [p1]

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I had a little time tonight, so I switched the thrusters from throttle control to pulse-width control. It's actually pretty awesome to watch the coupled thruster firings as you maneuver around; it looks a lot more like a Shuttle or Soyuz fly-around than your typical Orbiter craft.

This only further emphasizes the need for the vernier thrusters, though. Using fine controls is pretty painful as you get about one short thruster pulse per second. The default autopilots are also not pleased...

---------- Post added at 08:19 AM ---------- Previous post was at 06:33 AM ----------

I also probably need to add another mode to the thrusters that relaxes the constraint that e.g. rotation produces no translation. I think that's causing a lot of extra propellant burn when you don't really care that much unless you're in close proximity to another object.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I've now implemented the vernier thrusters as well. Currently the only thruster mode is "combined" mode, where the verniers will fire up until a certain thrust level is requested, then the primary thrusters take over.

The next step is to start bringing up an MFD to control this stuff. There will be a few controls for jet selection:

  1. dV/Gimbal Control: MPS / OMS
  2. Z mode: High / Low
  3. Authority: Combined / Vernier

Low-Z mode disables upward-firing primary thrusters, while Vernier mode disables all primary thrusters.

There will also be some controls for pilot input:

  1. Attitude Reference: LVLH / Inertial
  2. Rotation Mode: Rate / Pulse / Free
  3. Translation Mode: Rate / Pulse / Free

LVLH references attitude to the local horizon. Inertial references attitude to the sky.

Rate mode will produce a desired rate (rotation or translation) as long as the key is held, then go back to zero once the key is released. Pulse mode will increase or decrease the current rate with each tap of the key. Free mode will act like normal Orbiter, firing thrusters when the key is pressed and turning them off when the key is released.

I will also include explicit pointing modes (e.g. prograde, retrograde, zenith, etc.).

Here are some shots of the jets in action:

Tk0Oqdm.png

In a right-hand roll with the primary RCS thrusters. Note that this isn't the full set of thrusters, some others occasionally pulse to cancel out unwanted translations. The plumes are just the stock Atlantis graphics for the moment.

ldJKJvs.png

Pitch up with the vernier thrusters. This is achieved with 'CTRL + 2' in attitude mode. Even at this level the primary thrusters will occasionally pulse as the verniers alone can't provide the full torque. Note also the forward verniers firing to cancel the translation of the canted aft thrusters.

yueQACs.png

Full forward translation.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I've spent a couple hours over the past few days fighting with trying to get my MFD code to load - turns out I had a #define in the wrong order with respect to a #include. Finally, my LR1 DFC (Digital Flight Computer) MFD shows up in the MFD mode select list! Implementing the actual functionality should be fairly easy now.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I spent some time tonight working up a basic reaction control MFD page. After tracking down some swapped signs in my quaternions, I was able to get both LVLH and solar (replaces inertial) attitude information working. Still lots more work, but it's a start.

cTY32F2.png

Holding attitude and rate in the LVLH frame, heads-up.

WJRV8Ck.png

Holding in the solar frame. The sun is directly above.

ZzA4C9t.png

Pointed in the solar frame (same as above), but viewing info in LVLH.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I scrubbed through and corrected a bunch of quaternion math in the code tonight. I had forgotten to be rigorous in terms of rotating vectors vs. rotating reference frame coordinates, and some sloppy names and composition inversions had crept in. They were all small-angle rotations so it was impossible to tell, but I feel better about the state of the world now. :)

In news related to progress, I changed all the RCS thrusters so that they feed from their correct propellant tanks (previously they had all fed from the forward tanks, poor guys). I also added propellant fill level to the reaction control MFD page.

The next two items are to implement all the settings on that page, and to implement and rate/attitude controller. The settings are mostly just going to involve generating a bunch of thruster tables (and watching my CPU spin), the controller will involve some PD loop tuning.

Settings breakdown:
  • FRAME (reference frame, LVLH / SOLAR): Sets the reference frame you're controlling in. I currently just have LVLH (local vertical, local horizontal) and the solar (sun-pointing) frame. I used a sun-pointing frame so that the crew can keep the payload bay illuminated without having to work out where the sun is in celestial coordinates. I'm considering adding a third INERTIAL frame which would be like M50 or J2000 coordinates, but I'm not sure if that's useful to anyone.
  • GAIN (thruster gain, LOW / NORMAL / HIGH): Controls mapping of control command -> output thrust. This can cut down on propellant usage by only using the most efficient thrusters, but will also degrade maneuverability. Alternatively, it can burn less efficient thrusters to get more control authority.
  • DBAND (deadbands, NARROW / WIDE): Specifies how much error the rate and attitude controller will accept. Because the thrusters are pulsed (on/off only), you won't able to get perfect 0.0000000 rates like with other Orbiter craft. A NARROW deadband will try and hold you very close to your targets, while a WIDE deadband will accept some slop to save on propellant burn.
  • TRANS (translation coupling, COUPLED / DECOUPLED): If set to DECOUPLED, rotational thruster commands will allow translation to bleed in if it saves on propellant.
  • ZMODE (Z-axis mode, HIGH / LOW / INHIBIT): Determines which thrusters are allowed to fire in the +Z (up) axis. HIGH allows any combination of primary and vernier thrusters to fire. LOW enables the vernier thrusters only, which are severely canted away to avoid plume impingement on a rendezvous target or payload. INHIBIT disables all +Z thrusters for the safety of any crew operating in the payload bay area.

tiImAyA.png

The reaction control page with propellant fill levels.

---------- Post added at 09:45 AM ---------- Previous post was at 09:39 AM ----------

Oops, those tank graphics were obviously swapped. :)

poCuSKi.png

Corrected tank indicator size with respect to real size.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I just wanted to drop a little progress note here. I've been using a few odd hours here and there to work on my thruster table generator. There are a lot of different combinations and the optimizers can be finicky, so progress has been slow, but apparent. I need to take one more pass over reworking the system and then I should be able to generate the real tables for Orbiter.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
After several days of tweaking, tuning, and debugging, I finally have the thruster tables generating consistent and reasonable results! All of the system toggles work now, so you can change gains, couple/decouple translation, and inhibit +Z thrusters. It all works quite well! The only other thing I might add is a fallback mode if you run out of forward RCS propellant, but I'll wait until that becomes a significant problem.

The next big system is the orbital maneuvering engines, but I can't work on them quite yet. First I need to flesh out the flight computer a bit more to give you more control. A side benefit is that I should be able to improve ascent a bit, for example by adding automatic engine cutoff at a target apogee.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
Here's something I've been spending the past week or so on: an attitude indicator. Just getting this far turned out to be way harder than I first thought, but I have the tools written to go more quickly now.

It currently supports both the LVLH (Local Vertical, Local Horizontal) and solar frames in different color schemes to make it obvious. The meridians are lines of constant pitch, while the parallels are lines of constant yaw. Roll will be indicated by a tape around the circumference.

There are still a few big parts that have to be added before it's truly useful, namely degree hashes and text labels. I may also reduce the visible area of the indicator from the full 180 degrees down to perhaps more like 120. Finally, I am planning on adding a new frame for launch/entry (tentatively, LTP (Local Tangent Plane)). This frame will be somewhat different from the other two because the meridians will be lines of constant heading (N, E, S, W, etc.), while the parallels will be lines of constant pitch. This means the horizon will be "the other way" with respect to the lines in e.g. LVLH (more like a globe), and the math is a bit different.

Having this indicator will be super useful I think. In addition to normal orientation, it can be used to draw parts of the current guidance program, like orbital burn targets or the current/target orbital plane during ascent.

jb8n0UT.png

In the LVLH attitude mode. Black is the sky, blue is the earth.

1Y8r9jL.png

In the solar attitude mode. White is facing the sun, black is facing shadow.
 

MaverickSawyer

Acolyte of the Probe
Joined
Apr 11, 2011
Messages
3,919
Reaction score
5
Points
61
Location
Wichita
Here's something I've been spending the past week or so on: an attitude indicator. Just getting this far turned out to be way harder than I first thought, but I have the tools written to go more quickly now.

It currently supports both the LVLH (Local Vertical, Local Horizontal) and solar frames in different color schemes to make it obvious. The meridians are lines of constant pitch, while the parallels are lines of constant yaw. Roll will be indicated by a tape around the circumference.

There are still a few big parts that have to be added before it's truly useful, namely degree hashes and text labels. I may also reduce the visible area of the indicator from the full 180 degrees down to perhaps more like 120. Finally, I am planning on adding a new frame for launch/entry (tentatively, LTP (Local Tangent Plane)). This frame will be somewhat different from the other two because the meridians will be lines of constant heading (N, E, S, W, etc.), while the parallels will be lines of constant pitch. This means the horizon will be "the other way" with respect to the lines in e.g. LVLH (more like a globe), and the math is a bit different.

Having this indicator will be super useful I think. In addition to normal orientation, it can be used to draw parts of the current guidance program, like orbital burn targets or the current/target orbital plane during ascent.

jb8n0UT.png

In the LVLH attitude mode. Black is the sky, blue is the earth.

1Y8r9jL.png

In the solar attitude mode. White is facing the sun, black is facing shadow.

Okay, that is BRILLIANT. Is there any chance that, at some point down the line, you would be able to split that off as an independent MFD?
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
Okay, that is BRILLIANT. Is there any chance that, at some point down the line, you would be able to split that off as an independent MFD?

Sure, I could probably do that. It won't be quite as useful without the guidance stuff integrated, but having the different reference frames will still be nice.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I fleshed out the attitude indicator a bit, giving dashed 15-degree markers and text labels for pitch and yaw lines. The next addition is the local tangent plane frame so it's truly useful for ascent.

D7hfsH4.png

Solar pointing.

50ynhpL.png

LVLH pointing.
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
Finally! It took forever to go from the single orientation type of LVLH and SOLAR to this second "vertical" type, but at last I have a proper heading/pitch/roll indicator. I have a couple more touches to add here, but they're all purely 2D elements, which is practically a vacation at this point.

Once this fun little distraction is done, I'll be back to working on the rest of the MFD. I still need to add a lot of switches and generally flesh out the control scheme for switching between all of the different control types. Once I have that working I'll finish off the reaction control system and add the OMS engines.

My task list for the next prototype is still pretty long, but it's moving.

QMTygDi.png

The geographic frame.
 

Cras

Spring of Life!
Donator
Joined
Apr 13, 2011
Messages
2,215
Reaction score
0
Points
36
Location
Los Angeles
Website
www.youtube.com
that MFD is pure cash, thanks for making this, been wanting something like that for Orbiter for a long while.

Could I dare inquire to the possibility of adding an M50 reference frame to it or would that be too much?
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
Could I dare inquire to the possibility of adding an M50 reference frame to it...?

I was originally going to use something like M50, but I decided that a solar frame was a bit more useful. Adding M50 wouldn't be that hard, but I'm curious - what would you use it for?

---------- Post added 03-18-15 at 12:00 PM ---------- Previous post was 03-17-15 at 05:43 PM ----------

Working on putting in all the tapes and other auxillary indicators:

t3yL7L3.png

Values in LVLH.

jFR3VIc.png

Values in GEO.
 

Astro SG Wise

Future Orion MPCV Pilot
Joined
May 26, 2014
Messages
489
Reaction score
1
Points
0
Website
www.aesd.blogspot.com
So, this sky hammer project is solely launch capabilities? If so, then how in the world is the crew going to get back? Rendezvous vehicle?
 

kocmolyf

Addon Developer
Addon Developer
Joined
Aug 16, 2014
Messages
95
Reaction score
1
Points
8
I have all the various indicators working on the attitude page. In preparation for the rest of the MFD, I went back and robustified the scenario save/load routines a bit (I'm going to store a lot more state).

So, this sky hammer project is solely launch capabilities? If so, then how in the world is the crew going to get back? Rendezvous vehicle?

Of course not, that would be silly. :) The LR1 will be able to do just about everything the Shuttle can do - that's the reason for the thread title, after all.
 

Treetop64

Member
Joined
Feb 12, 2015
Messages
41
Reaction score
0
Points
6
Location
Redwood City
Really looking forward to seeing how this project comes out. One can appreciate the obvious deliberate approach kocmolyf is taking. Liking the depth of functionality built in to the LR1, as well as it's looks.

Orbiter could certainly use more plausible, now or near tech, high quality shuttle-like vessels, and the LR1 looks quite convincing so far. I'll be keeping a close eye on this one...
 
Top