Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ascent Guidance overhaul and closed loop guidance #904

Merged
merged 51 commits into from Jul 17, 2017
Merged

Ascent Guidance overhaul and closed loop guidance #904

merged 51 commits into from Jul 17, 2017

Conversation

lamont-granquist
Copy link
Collaborator

  • breaks up Ascent Guidance extracting out features like tracking heading and AoA from pitch control.
  • implements a sub-menu for different ascent profile styles
  • implements a "stock style Gravity Turn": pitching over hard, burning with insane TWR up to 45k or so, raising the Apo there up to the target altitude, then coasting around half of Kerbin and circularizing)
  • implements the pitch program from an Atlas-Centaur/Surveyor Powered Explicit Guidance for RSS/RO style ascents

@lamont-granquist
Copy link
Collaborator Author

Got all kinds of buggy sharp edges right now.

Somewhat crappy video of the PEG mode in RO/RSS: https://vimeo.com/223045581

@pianojosh
Copy link

This is obviously an edge case for most uses, but for launching to rendezvous, it could become necessary to insert at non-zero vertical velocity. Would it be possible to add the ability to insert not at perigee?

@lamont-granquist
Copy link
Collaborator Author

yeah there's slots for it in the algorithm all marked "FIXME: assumes periapsis insertion" so rdT needs to be the vertical velocity at cutoff and vT and hT need to be fixed for velocity and angular momentum at cutoff. ideally it should be possible to just target the moon and press a button and get a direct ascent launch, which is the problem that the PEG algorithm was designed to solve (for surveyor missions) -- same goes for orbital rendezvous or hitting precise orbital contracts. would probably need the yaw steering law for that, along with some upgrades to the launch timing algorithm that MJ uses.

@pianojosh
Copy link

@lamont-granquist One nitpick I've got is that sometimes really long numbers will be displayed in the ascent path details window making it spread wide enough to fill the whole screen. It seems to happen very quickly, so I haven't been able to capture a screenshot when it happens. It's usually during the pitch program before guidance has converged.

Would it be possible to display numbers in scientific notation with rounding if they are outside the 10^-3...10^3 range?

@lamont-granquist lamont-granquist changed the title WIPTASTIC: Ascent Guidance overhaul - DO NOT MERGE Ascent Guidance overhaul and closed loop guidance Jul 16, 2017
@lamont-granquist
Copy link
Collaborator Author

@sarbian i think its time to smash merge and move forwards. this has the two RO fixes as well.

lamont-granquist and others added 23 commits July 16, 2017 23:24
Work-in-Progress checkpoint.

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
other way is broken.

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
lamont-granquist and others added 25 commits July 16, 2017 23:24
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
the s/sum/sum2/ in the gamma function is the one that was trolling
for literally days.

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
- its actually useful to let that expression explode
- allow guidance to converge during booster phase (reduces grinding)
- abort guidance cycles as soon as we get NaN or other bad values
(reduces grinding)

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
also converts num_stages back to a plain-old-int

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
back to stable 2-stage PEG after performance improvements

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
most likely this is stable N-stage PEG, there's only a few
cracks where 4+ stage PEG bugs could be hiding really...

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
@sarbian
Copy link
Contributor

sarbian commented Jul 17, 2017

Is it ready to merge now ?
Edit : nevermind, I missed the previous comment.

@sarbian sarbian merged commit 446a642 into MuMech:dev Jul 17, 2017
@lamont-granquist lamont-granquist deleted the lcg/ascent-guidance branch July 17, 2017 16:52
@lamont-granquist
Copy link
Collaborator Author

yo dawg

@lamont-granquist
Copy link
Collaborator Author

so this is just iteration #1, i'll open a new PR shortly with iteration #2 and try to expand it to 3-dimensional targeting and clean up the architectural issues this version has with staging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants