Idea Autopilot / Interface for external data input

PriestLizard

Member
Joined
Jul 10, 2009
Messages
95
Reaction score
3
Points
8
Location
Toronto
Hi there.

Currently I'm working on my diploma thesis in mathematics/optimal control and this includes the calculation of optimal climb profiles of rockets (and some other similiar applications). Now I think you guys will agree that it would be awesome to use the calculated data as a "autopilot guideline" so I can see the actual trajectory in Orbiter.

I don't want to make some presentation (although this could be an option), its rather for my personal interest.

Now the problem is: as I don't have a clue about modding Orbiter (never tried it at least), I don't know how existing autopilots work (like for Shuttle Fleet, DGIV or Energia). What I'd like to do is compare different trajectories. Since the data output of my calucaltions are txt-based, it would be great to have some kind of tool which reads the data and executes this trajectory as an autopilot in Orbiter.

If this kind of autopilot interface does not exist, I'm willing to work on that by myself of course. But I wonder if its possible at all?

Thank you guys for some info. See you :)
 
Sounds interesting, PriestLizard. If I understand you right, are you driving a vehicle with your data(time, pitch, heading,...), and looking at the resulting flight profile?

N.
 
Great idea. DG-IV and Energia have their own autopilots, but I'd love to see it for other spacecraft.

There is something called REDSHIFT. It's xml based general purpose autopilot mfd but it works quite strange and complicated for me.

I think the best option will be to write own mfd (in c++ of course) that sends commands to thrusters and engines for desired flight profile and reads those commands from specified .txt file.

For example with Dg-IV you can customize your ascent profile by editing PRO90xSPEC file in "orbiter/sound/deltagliderIV/prog forlder.

Here is example of DgIV earth ascent autopilot:
Code:
// -----------------------------------------------
// ASCENT PROGRAM PRO903 FROM EARTH
// ENGAGE FROM GROUND OR IN FLIGHT (<1000m)
// -----------------------------------------------
PROGNAME: EARTH ~230km Start flight
TYPE:     ASCENT
START:    INFLIGHT
DISPLAYDEBUG: 0		;Display some debug information to help tune an autopilot. (0=off 1=on)
ALT: 0      ENG: 1.0	;Engine full
ALT: 15     SNMSG: #RaiseLandingGear
ALT: 20     PITCH: 20   ;Take-off pitch
ALT: 700    PITCH: 10   ;climb steady while making turn
ALT: 1000   PITCH: 10
ALT: 1000   ENG: 1.10   ;Engage turbopump
ALT: 1200   PITCH: 10
ALT: 1500   PITCH: 65
ALT: 40000  PITCH: 65
ALT: 45000  PITCH: 52
ALT: 50000  PITCH: 45
ALT: 66000  PITCH: 40
ALT: 80000  PITCH: 40
ALT: 100000 PITCH: 40
ALT: 130000 PITCH: 35
ALT: 150000 PITCH: 30
ALT: 160000 PITCH: 25
ALT: 175000 PITCH: 20
ALT: 190000 PITCH: 15
ALT: 200000 PITCH: 12
ALT: 205000 PITCH: 10
ALT: 210000 PITCH: 09
ALT: 212000 PITCH: 08
ALT: 212500 PITCH: 07
ALT: 213000 PITCH: 06
ALT: 400000 PITCH: 0
ENDPROG:

That type of file should be easy to read by MFD.

Most important thing to do is i think write a routine, that is capable of reading not only pitch value but also bank, roll, heading, throttle level and can apply those values to orbiter.

If you're familiar with c++ you should read orbiter SDK documentation (there should be an API guide there).

Other thing is to make it compatibile with some multistaged rockets (soyuz, saturn V) both with multistage.dll and velcro rockets vessels.

One more thing. Check aerobrake MFD's documentation - there are some data about holding desired attitude that may help you.

Good Luck with project.
May the :probe: protect and guide you
 
Back
Top