Jump to content

Go For Launch - Cooperative RO/RSS/RP-0 - About to start!


NathanKell

Recommended Posts

On 6/3/2016 at 0:31 PM, Matuchkin said:

Well, I downloaded RP-0, and got a bunch of serious problems. I've posted on the RP-0 thread, but @pjf isn't responding. Perhaps I'll contact him later.

Oh no, I've been travelling like a person who's travelling for five months per year. Have we responded to your RP-0 problems yet? (RP-0 thankfully isn't just me; I just hang around the edges these days.)

Link to comment
Share on other sites

  • 2 weeks later...

i am sure there is no shortage of programmers here but i'd like to offer my help as a kOS programmer for automation of several launches and flights, would be used for manned and unmanned to take pressure off the pilot and prevent human error and time delays that are caused by a lack of connection or the speed of light.

There was a bug at the final staging event and it was fixed (a little check of maxthrust that wasnt zeroing out due to the active orbital maneuvering engine) other than that i could automate the flight even more so and make it suitable for unmanned flights, another optimisation i would like to do is the flight trajectory and i'll work with the Trajectory officer to find the most efficient ascent profile.

The code as it stands right now: 

Spoiler

Starting parameters for launch:

Spoiler


CLEARSCREEN.
SAS OFF.
SET DAP TO 180000.
SET StartHeight TO 5000.
SET Frac TO 0.
SET OperationMode TO 0.
SET Angle TO 90.
SET TimeToAP TO 10000.
SET TimePassed TO 0.
SET FirstStageEngine TO SHIP:PARTSTAGGED("FirstStageEngine")[0].
SET SecondStageEngine TO SHIP:PARTSTAGGED("SecondStageEngine")[0].
SET Tminus TO 1200.
SET TPlus TO 0.
SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
SET GoCount To 0.
SET umbilicalCount To 0.
AG13 OFF.
AG14 OFF.
LOCK THROTTLE TO 1.

 

Pre-Launch Go/NoGo checks and countdown:

Spoiler


Until Tminus<0
{

	Wait 1.
	If(Tminus>=0)
	{
		SET Tminus TO Tminus-1.
	}
	On AG13
	{	
		if(GoCount<=21)
		{
			SET GoCount To GoCount+1.	
		}
		preserve.
	}
	print "Flight Computer: "+"NO GO" at(3,3).

	print "Fuel Condition:  "+"NO GO" at(3,5).

	print "Payload:         "+"NO GO" at(3,7).

	print "CAPCOM:          "+"NO GO" at(3,9).

	print "Revocery:        "+"NO GO" at(3,11).

	print "Tracking:        "+"NO GO" at(3,13).

	print "Launch Pad:      "+"NO GO" at(3,15).

	print "Range:           "+"NO GO" at(3,17).

	print "Guidence:        "+"NO GO" at(3,19).

	print "Booster Status:  "+"NO GO" at(3,21).

	print "Mission Control: "+"NO GO" at(3,23).
	
	If(GoCount>0)
	{
		print "   GO" at(20,3).
	}
	If(GoCount>2)
	{
		print "   GO" at(20,5).
	}
	If(GoCount>4)
	{
		print "   GO" at(20,7).
	}
	If(GoCount>6)
	{
		print "   GO" at(20,9).
	}
	If(GoCount>8)
	{
		print "   GO" at(20,11).
	}
	If(GoCount>10)
	{
		print "   GO" at(20,13).
	}
	If(GoCount>12)
	{
		print "   GO" at(20,15).
	}
	If(GoCount>14)
	{
		print "   GO" at(20,17).
	}
	If(GoCount>16)
	{
		print "   GO" at(20,19).
	}
	If(GoCount>18)
	{
		print "   GO" at(20,21).
	}
	If(GoCount>20)
	{
		print "   GO" at(20,23).
	}
	print "                                          " at(3,26).
	print "                                          " at(3,25).
	If(Tminus<1200 AND GoCount=0)
	{
		print "                                          " at(3,26).
		SET Tminus TO 1200.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Flight Computer NO GO" at(3,26).	
	}

	If(Tminus<900 AND (GoCount=1 OR GoCount=2))
	{
		print "                                          " at(3,26).
		SET Tminus TO 900.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Fuel Conditions NO GO" at(3,26).	
	}

	If(Tminus<720 AND (GoCount=3 OR GoCount=4))
	{
		print "                                          " at(3,26).
		SET Tminus TO 720.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Payload NO GO" at(3,26).	
	}

	If(Tminus<660 AND (GoCount=5 OR GoCount=6))
	{
		print "                                          " at(3,26).
		SET Tminus TO 660.
		print "HOLD HOLD HOLD!" at(3,25).
		print "CAPCOM NO GO" at(3,26).	
	}
	If(Tminus<660 AND GoCount>10 AND umbilicalCount=0)
	{
		if(umbilicalCount=0)
		{
			Stage.
		}
		SET umbilicalCount TO (umbilicalCount+1).	
	}
	
	If(Tminus<600 AND (GoCount=7 OR GoCount=8))
	{
		print "                                          " at(3,26).
		SET Tminus TO 600.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Recovery NO GO" at(3,26).	
	}

	If(Tminus<300 AND (GoCount=9 OR GoCount=10))
	{
		print "                                          " at(3,26).
		SET Tminus TO 300.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Tracking NO GO" at(3,26).	
	}

	If(Tminus<270 AND (GoCount=11 OR GoCount=12))
	{
		print "                                          " at(3,26).
		SET Tminus TO 270.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Launch Pad NO GO" at(3,26).	
	}

	If(Tminus<180 AND (GoCount=13 OR GoCount=14))
	{
		print "                                          " at(3,26).
		SET Tminus TO 180.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Range NO GO" at(3,26).	
	}

	If(Tminus<120 AND (GoCount=15 OR GoCount=16))
	{
		print "                                          " at(3,26).
		SET Tminus TO 120.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Guidence NO GO" at(3,26).	
	}
	If(Tminus<120 AND GoCount>18 AND umbilicalCount<3)
	{
		if(umbilicalCount=1)
		{
			Stage.
		}
		if(umbilicalCount=2)
		{
			Stage.
		}
		SET umbilicalCount TO umbilicalCount+1.
	}
	If(Tminus<60 AND (GoCount=17 OR GoCount=18))
	{
		print "                                          " at(3,26).
		SET Tminus TO 60.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Booster Status NO GO" at(3,26).	
	}
	If(Tminus<30 AND (GoCount=19 OR GoCount=20))
	{
		print "                                          " at(3,26).
		SET Tminus TO 30.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Mission Control NO GO" at(3,26).	
	}
	If(Tminus=5 AND (GoCount=21 OR GoCount=22))
	{
		print "                                          " at(3,26).
		print "All Stations GO For Launch " at(3,25).
		if(umbilicalCount=3)
		{
			Stage.
		}
		SET umbilicalCount TO umbilicalCount+1.
		LOCK THROTTLE TO 1.	
	}
	If(Tminus=1 AND  FirstStageEngine:AvailableThrust>1000)
	{
		if(umbilicalCount=4)
		{
			Stage.
		}
		LOCK THROTTLE TO 1.
		SET umbilicalCount TO umbilicalCount+1.
	}
	Else If(Tminus=1 AND  FirstStageEngine:AvailableThrust<1000)
	{
		LOCK Throttle to 0.
		print "ABORTED By Flight Computer! First Stage Engine Shutdown!" at(3,25).
	}
	if(TMinus>=0)
	{
		print "                                                                               " at(3,1).
		print "T- 0"+Floor(Tminus/3600)+":"+Floor(Tminus/60)+":"+(Tminus-(Floor(Tminus/60)*60)) at(3,1).
	}
	On AG14
	{
		print "                                          " at(3,25).
		print "ABORT!" at(3,28).
		SET GoCount TO 25.	
	}
	If(GoCount>=25)
	{
		print "                                          " at(3,26).
		SET Tminus TO 1201.	
	}
	print "Status: "+GoCount at(3,27).
}

 

Ascent Guidance:

Spoiler


Until SHIP:APOAPSIS>(DAP)
{	
	
	If(SHIP:APOAPSIS>DAP-100)
	{
		LOCK THROTTLE TO 0. 
	}
	If(SHIP:APOAPSIS>=StartHeight AND OperationMode=0)
	{
		RCS OFF.
		LOCK Frac TO (SHIP:APOAPSIS-StartHeight)/(DAP-StartHeight-2500) .
		LOCK Angle TO 90-((Frac^1.1075)*93.025).
		LOCK Steering TO Heading(90,Angle).
		SET TimeToAP TO ETA:APOAPSIS.
		print "In OP 0" at(3,9).
	}

	else if(SHIP:APOAPSIS<=StartHeight)
	{
		LOCK THROTTLE TO 1.
		RCS ON.
		LOCK Steering TO Heading(90,Angle).
	}
	IF SHIP:PERIAPSIS>=177500
	{
	 	LOCK THROTTLE TO 0.
		print "In OP 4" at(3,9).
		
	}
	IF(FirstStageEngine:AvailableThrust<100 AND FirstStageEngine:STAGE=STAGE:NUMBER)
	{
		if(SHIP:APOAPSIS<DAP-15000 AND OperationMode<1)
		{
			print "ABORT!!" at(3,15).
			AG10 ON.
			Wait 3 .
			AG11 ON.
			AG12 ON.
			SET OperationMode TO 5.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			LOCK STEERING TO SHIP:SRFRETROGRADE.
			RCS ON.			
		}
		if(OperationMode=0)		
		{
			Stage.
			LOCK THROTTLE TO 0.
			SET OperationMode TO 1.
			SET TimeToAP TO ETA:APOAPSIS.
			print "In OP 1" at(3,9).
		}
			

	}
	IF(OperationMode=1 OR OperationMode=2)
	{

		if (Stage:NUMBER=8 OR Stage:NUMBER=6)
		{
			Stage.
		}
		if(ETA:APOAPSIS<=110 AND OperationMode=1)
		{
			SET OperationMode TO 2.
			LOCK THROTTLE TO 1.
			Stage.		
		}
		RCS ON.
		if((ETA:APOAPSIS)<=300)
		{
			LOCK Angle TO (90-((Frac^1.1075)*93.325))* (ETA:APOAPSIS/105).
		}
		else
		{
			LOCK Angle TO (90-((Frac^1.1075)*93.325))*(TimePassed/15).
			if(TimePassed>(-40))
			{
				SET TimePassed TO (TimePassed-0.01).
			}	
		}
		LOCK Steering TO Heading(90,Angle).
		print "In OP 2" at(3,9).

	}	
	IF(SecondStageEngine:AvailableThrust<10 AND SecondStageEngine:STAGE=STAGE:NUMBER AND OperationMode<5)
	{
		WAIT 0.5.
		if(OperationMode=2)		
		{
			LOCK THROTTLE TO 0.
			STAGE.
			LOCK STEERING TO HEADING(90,0).
			Wait 0.2.
			UNLOCK STEERING.
			SAS ON.
			SET OperationMode TO 3.
		}
		if(SHIP:PERIAPSIS<10000)
		{
			SET OperationMode TO 5.
			print "ABORT!!" at(3,15).
			STAGE.
		}
		print "In OP 3" at(3,9).
	}
	if(OperationMode=5 AND SHIP:ALTITUDE<50000)
	{
		AG11 ON.
		AG12 ON.	
	}
	PrintStats.
	wait 0.01.
}
LOCK THROTTLE TO 0.
Wait 0.2.
STAGE.
LOCK STEERING TO HEADING(90,0).
Wait 0.2.
UNLOCK STEERING.

 

Descent Module (mostly by @ILikeIke):

Spoiler



Until OperationMode>10
{
	IF(Stage:NUMBER=4)
	{
		Stage.
	}
	IF (AG9=true AND Stage:NUMBER=3)
	{
		lock steering to retrograde.
		print "Retrofire sequence in 10 seconds."at(3,19).
		Wait 10.
		print "De-orbit burn initiaed."at(3,20).
		LOCK THROTTLE TO 0.
		Stage. //activates retro pack
		print "Burn Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,21).
		wait 35.
		print "De-orbit burn complete. Jettisoning retro-pack."at(3,22).
		Stage. //jettisons retropack
		set groundInitial to GROUNDSPEED.
		wait until GROUNDSPEED < groundInitial.
		wait 3.
		wait Until ALT:RADAR<80000.
		SET controlStick to SHIP:CONTROL.
		SET controlStick:ROLL to 0.15.
		print "Beginning high-g roll."at(3,23).
		Set OperationMode to 11.
	}
	else if(AG9=False)
	{
		Unlock Steering.
	}
	PrintStats.
	wait 0.01.
}
Until OperationMode>11
{
	IF(ALT:RADAR<12000 AND AG11=False)
	{
		AG11 ON.
	}
	IF(ALT:RADAR<10000 AND AG12=False)
	{
		LOCK STEERING TO Up.
		Wait 10.
		RCS OFF.
		SET controlStick:ROLL to 0.
		Unlock Steering.
		AG12 ON.
	}
	PrintStats.
	wait 0.01.	
}
SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
LOCK THROTTLE TO 0.
Wait Until ALT:Radar<7 .
print "Landing Successful! Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,18).

 

Print Stats Function: 

Spoiler


DECLARE FUNCTION PrintStats
{	
	print "Apoapsis:            " +Round(SHIP:APOAPSIS,3) at(3,3).
	print "Periapsis:           " +Round(SHIP:PERIAPSIS,3) at(3,5).
	print "Current Altitude:    " +Round(ALT:RADAR,3) at(3,7).
	print "Current Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,11).
	print "Current Heading:     " +Round(SHIP:FACING:PITCH,3)+" , "+Round(SHIP:FACING:YAW,3)+" , "+Round(SHIP:FACING:ROLL,3) at(3,13).	
}

 

The entire code:

Spoiler


CLEARSCREEN.
SAS OFF.
SET DAP TO 180000.
SET StartHeight TO 5000.
SET Frac TO 0.
SET OperationMode TO 0.
SET Angle TO 90.
SET TimeToAP TO 10000.
SET TimePassed TO 0.
SET FirstStageEngine TO SHIP:PARTSTAGGED("FirstStageEngine")[0].
SET SecondStageEngine TO SHIP:PARTSTAGGED("SecondStageEngine")[0].
SET Tminus TO 1200.
SET TPlus TO 0.
SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
SET GoCount To 0.
SET umbilicalCount To 0.
AG13 OFF.
AG14 OFF.
LOCK THROTTLE TO 1.
Until Tminus<0
{

	Wait 1.
	If(Tminus>=0)
	{
		SET Tminus TO Tminus-1.
	}
	On AG13
	{	
		if(GoCount<=21)
		{
			SET GoCount To GoCount+1.	
		}
		preserve.
	}
	print "Flight Computer: "+"NO GO" at(3,3).

	print "Fuel Condition:  "+"NO GO" at(3,5).

	print "Payload:         "+"NO GO" at(3,7).

	print "CAPCOM:          "+"NO GO" at(3,9).

	print "Revocery:        "+"NO GO" at(3,11).

	print "Tracking:        "+"NO GO" at(3,13).

	print "Launch Pad:      "+"NO GO" at(3,15).

	print "Range:           "+"NO GO" at(3,17).

	print "Guidence:        "+"NO GO" at(3,19).

	print "Booster Status:  "+"NO GO" at(3,21).

	print "Mission Control: "+"NO GO" at(3,23).
	
	If(GoCount>0)
	{
		print "   GO" at(20,3).
	}
	If(GoCount>2)
	{
		print "   GO" at(20,5).
	}
	If(GoCount>4)
	{
		print "   GO" at(20,7).
	}
	If(GoCount>6)
	{
		print "   GO" at(20,9).
	}
	If(GoCount>8)
	{
		print "   GO" at(20,11).
	}
	If(GoCount>10)
	{
		print "   GO" at(20,13).
	}
	If(GoCount>12)
	{
		print "   GO" at(20,15).
	}
	If(GoCount>14)
	{
		print "   GO" at(20,17).
	}
	If(GoCount>16)
	{
		print "   GO" at(20,19).
	}
	If(GoCount>18)
	{
		print "   GO" at(20,21).
	}
	If(GoCount>20)
	{
		print "   GO" at(20,23).
	}
	print "                                          " at(3,26).
	print "                                          " at(3,25).
	If(Tminus<1200 AND GoCount=0)
	{
		print "                                          " at(3,26).
		SET Tminus TO 1200.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Flight Computer NO GO" at(3,26).	
	}

	If(Tminus<900 AND (GoCount=1 OR GoCount=2))
	{
		print "                                          " at(3,26).
		SET Tminus TO 900.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Fuel Conditions NO GO" at(3,26).	
	}

	If(Tminus<720 AND (GoCount=3 OR GoCount=4))
	{
		print "                                          " at(3,26).
		SET Tminus TO 720.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Payload NO GO" at(3,26).	
	}

	If(Tminus<660 AND (GoCount=5 OR GoCount=6))
	{
		print "                                          " at(3,26).
		SET Tminus TO 660.
		print "HOLD HOLD HOLD!" at(3,25).
		print "CAPCOM NO GO" at(3,26).	
	}
	If(Tminus<660 AND GoCount>10 AND umbilicalCount=0)
	{
		if(umbilicalCount=0)
		{
			Stage.
		}
		SET umbilicalCount TO (umbilicalCount+1).	
	}
	
	If(Tminus<600 AND (GoCount=7 OR GoCount=8))
	{
		print "                                          " at(3,26).
		SET Tminus TO 600.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Recovery NO GO" at(3,26).	
	}

	If(Tminus<300 AND (GoCount=9 OR GoCount=10))
	{
		print "                                          " at(3,26).
		SET Tminus TO 300.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Tracking NO GO" at(3,26).	
	}

	If(Tminus<270 AND (GoCount=11 OR GoCount=12))
	{
		print "                                          " at(3,26).
		SET Tminus TO 270.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Launch Pad NO GO" at(3,26).	
	}

	If(Tminus<180 AND (GoCount=13 OR GoCount=14))
	{
		print "                                          " at(3,26).
		SET Tminus TO 180.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Range NO GO" at(3,26).	
	}

	If(Tminus<120 AND (GoCount=15 OR GoCount=16))
	{
		print "                                          " at(3,26).
		SET Tminus TO 120.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Guidence NO GO" at(3,26).	
	}
	If(Tminus<120 AND GoCount>18 AND umbilicalCount<3)
	{
		if(umbilicalCount=1)
		{
			Stage.
		}
		if(umbilicalCount=2)
		{
			Stage.
		}
		SET umbilicalCount TO umbilicalCount+1.
	}
	If(Tminus<60 AND (GoCount=17 OR GoCount=18))
	{
		print "                                          " at(3,26).
		SET Tminus TO 60.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Booster Status NO GO" at(3,26).	
	}
	If(Tminus<30 AND (GoCount=19 OR GoCount=20))
	{
		print "                                          " at(3,26).
		SET Tminus TO 30.
		print "HOLD HOLD HOLD!" at(3,25).
		print "Mission Control NO GO" at(3,26).	
	}
	If(Tminus=5 AND (GoCount=21 OR GoCount=22))
	{
		print "                                          " at(3,26).
		print "All Stations GO For Launch " at(3,25).
		if(umbilicalCount=3)
		{
			Stage.
		}
		SET umbilicalCount TO umbilicalCount+1.
		LOCK THROTTLE TO 1.	
	}
	If(Tminus=1 AND  FirstStageEngine:AvailableThrust>1000)
	{
		if(umbilicalCount=4)
		{
			Stage.
		}
		LOCK THROTTLE TO 1.
		SET umbilicalCount TO umbilicalCount+1.
	}
	Else If(Tminus=1 AND  FirstStageEngine:AvailableThrust<1000)
	{
		LOCK Throttle to 0.
		print "ABORTED By Flight Computer! First Stage Engine Shutdown!" at(3,25).
	}
	if(TMinus>=0)
	{
		print "                                                                               " at(3,1).
		print "T- 0"+Floor(Tminus/3600)+":"+Floor(Tminus/60)+":"+(Tminus-(Floor(Tminus/60)*60)) at(3,1).
	}
	On AG14
	{
		print "                                          " at(3,25).
		print "ABORT!" at(3,28).
		SET GoCount TO 25.	
	}
	If(GoCount>=25)
	{
		print "                                          " at(3,26).
		SET Tminus TO 1201.	
	}
	print "Status: "+GoCount at(3,27).
}
CLEARSCREEN.
Until SHIP:APOAPSIS>(DAP)
{	
	
	If(SHIP:APOAPSIS>DAP-100)
	{
		LOCK THROTTLE TO 0. 
	}
	If(SHIP:APOAPSIS>=StartHeight AND OperationMode=0)
	{
		RCS OFF.
		LOCK Frac TO (SHIP:APOAPSIS-StartHeight)/(DAP-StartHeight-2500) .
		LOCK Angle TO 90-((Frac^1.1075)*93.025).
		LOCK Steering TO Heading(90,Angle).
		SET TimeToAP TO ETA:APOAPSIS.
		print "In OP 0" at(3,9).
	}

	else if(SHIP:APOAPSIS<=StartHeight)
	{
		LOCK THROTTLE TO 1.
		RCS ON.
		LOCK Steering TO Heading(90,Angle).
	}
	IF SHIP:PERIAPSIS>=177500
	{
	 	LOCK THROTTLE TO 0.
		print "In OP 4" at(3,9).
		
	}
	IF(FirstStageEngine:AvailableThrust<100 AND FirstStageEngine:STAGE=STAGE:NUMBER)
	{
		if(SHIP:APOAPSIS<DAP-15000 AND OperationMode<1)
		{
			print "ABORT!!" at(3,15).
			AG10 ON.
			Wait 3 .
			AG11 ON.
			AG12 ON.
			SET OperationMode TO 5.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			STAGE.
			LOCK STEERING TO SHIP:SRFRETROGRADE.
			RCS ON.			
		}
		if(OperationMode=0)		
		{
			Stage.
			LOCK THROTTLE TO 0.
			SET OperationMode TO 1.
			SET TimeToAP TO ETA:APOAPSIS.
			print "In OP 1" at(3,9).
		}
			

	}
	IF(OperationMode=1 OR OperationMode=2)
	{

		if (Stage:NUMBER=8 OR Stage:NUMBER=6)
		{
			Stage.
		}
		if(ETA:APOAPSIS<=110 AND OperationMode=1)
		{
			SET OperationMode TO 2.
			LOCK THROTTLE TO 1.
			Stage.		
		}
		RCS ON.
		if((ETA:APOAPSIS)<=300)
		{
			LOCK Angle TO (90-((Frac^1.1075)*93.325))* (ETA:APOAPSIS/105).
		}
		else
		{
			LOCK Angle TO (90-((Frac^1.1075)*93.325))*(TimePassed/15).
			if(TimePassed>(-40))
			{
				SET TimePassed TO (TimePassed-0.01).
			}	
		}
		LOCK Steering TO Heading(90,Angle).
		print "In OP 2" at(3,9).

	}	
	IF(SecondStageEngine:AvailableThrust<10 AND SecondStageEngine:STAGE=STAGE:NUMBER AND OperationMode<5)
	{
		WAIT 0.5.
		if(OperationMode=2)		
		{
			LOCK THROTTLE TO 0.
			STAGE.
			LOCK STEERING TO HEADING(90,0).
			Wait 0.2.
			UNLOCK STEERING.
			SAS ON.
			SET OperationMode TO 3.
		}
		if(SHIP:PERIAPSIS<10000)
		{
			SET OperationMode TO 5.
			print "ABORT!!" at(3,15).
			STAGE.
		}
		print "In OP 3" at(3,9).
	}
	if(OperationMode=5 AND SHIP:ALTITUDE<50000)
	{
		AG11 ON.
		AG12 ON.	
	}
	PrintStats.
	wait 0.01.
}
LOCK THROTTLE TO 0.
Wait 0.2.
STAGE.
LOCK STEERING TO HEADING(90,0).
Wait 0.2.
UNLOCK STEERING.
Until OperationMode>10
{
	IF(Stage:NUMBER=4)
	{
		Stage.
	}
	IF (AG9=true AND Stage:NUMBER=3)
	{
		lock steering to retrograde.
		print "Retrofire sequence in 10 seconds."at(3,19).
		Wait 10.
		print "De-orbit burn initiaed."at(3,20).
		LOCK THROTTLE TO 0.
		Stage. //activates retro pack
		print "Burn Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,21).
		wait 35.
		print "De-orbit burn complete. Jettisoning retro-pack."at(3,22).
		Stage. //jettisons retropack
		set groundInitial to GROUNDSPEED.
		wait until GROUNDSPEED < groundInitial.
		wait 3.
		wait Until ALT:RADAR<80000.
		SET controlStick to SHIP:CONTROL.
		SET controlStick:ROLL to 0.15.
		print "Beginning high-g roll."at(3,23).
		Set OperationMode to 11.
	}
	else if(AG9=False)
	{
		Unlock Steering.
	}
	PrintStats.
	wait 0.01.
}
Until OperationMode>11
{
	IF(ALT:RADAR<12000 AND AG11=False)
	{
		AG11 ON.
	}
	IF(ALT:RADAR<10000 AND AG12=False)
	{
		LOCK STEERING TO Up.
		Wait 10.
		RCS OFF.
		SET controlStick:ROLL to 0.
		Unlock Steering.
		AG12 ON.
	}
	PrintStats.
	wait 0.01.	
}
SET SHIP:CONTROL:PILOTMAINTHROTTLE TO 0.
LOCK THROTTLE TO 0.
Wait Until ALT:Radar<7 .
print "Landing Successful! Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,18).

DECLARE FUNCTION PrintStats
{	
	print "Apoapsis:            " +Round(SHIP:APOAPSIS,3) at(3,3).
	print "Periapsis:           " +Round(SHIP:PERIAPSIS,3) at(3,5).
	print "Current Altitude:    " +Round(ALT:RADAR,3) at(3,7).
	print "Current Coordinates: " +Round(SHIP:Geoposition:LAT,5)+" , "+Round(SHIP:Geoposition:LNG,5) at(3,11).
	print "Current Heading:     " +Round(SHIP:FACING:PITCH,3)+" , "+Round(SHIP:FACING:YAW,3)+" , "+Round(SHIP:FACING:ROLL,3) at(3,13).	
}

 

 

 

Edited by EladDv
Link to comment
Share on other sites

  • 4 weeks later...
  • 3 weeks later...

Ok, so let's get started. Once we figure out a starting condition I'll make a new thread.

 

My suggestion is to select the Hard preset, except leaving funding at 80% instead of 60%, and the usual RP-0 suggestion of fund losses at 100%.

For location I suggest the Cape, although we might consider investing in setting up another launch site for polar launches.

 

Thoughts?

Link to comment
Share on other sites

On 5/13/2016 at 7:51 PM, NathanKell said:

Ok, so let's get started. Once we figure out a starting condition I'll make a new thread.

 

My suggestion is to select the Hard preset, except leaving funding at 80% instead of 60%, and the usual RP-0 suggestion of fund losses at 100%.

For location I suggest the Cape, although we might consider investing in setting up another launch site for polar launches.

 

Thoughts?

Definitely best to start at the Cape right now, what ships are we planning to test first? And we should also direct people to the Github more.

Link to comment
Share on other sites

We should indeed! https://github.com/KSP-RO/GoForLaunch

I am fine with starting at the Cape (I do prefer it a bit).

 

Unless anyone objects, I will post up a new thread with our shiny new save at the Cape, difficulty as suggested above. Since I am able to play fairly reasonably on hard mode entirely (excepting fund loss at 100%), I feel 80% or 90% funds, but keeping 60% science etc, will be reasonable for us.

 

We will then be faced with our first challenge: How to spend our upgrade points! We will presumably want to balance SPH and VAB upgrades...

Link to comment
Share on other sites

15 hours ago, NathanKell said:

We should indeed! https://github.com/KSP-RO/GoForLaunch

I am fine with starting at the Cape (I do prefer it a bit).

 

Unless anyone objects, I will post up a new thread with our shiny new save at the Cape, difficulty as suggested above. Since I am able to play fairly reasonably on hard mode entirely (excepting fund loss at 100%), I feel 80% or 90% funds, but keeping 60% science etc, will be reasonable for us.

 

We will then be faced with our first challenge: How to spend our upgrade points! We will presumably want to balance SPH and VAB upgrades...

Quite so, however as I see from the craft files in Github we are doing an X-15 style craft, would it be possible to hack in a second launch facility in the Baja perhaps...

Link to comment
Share on other sites

Really nice idea!

I won't have the time to participate very actively, but would like to keep up and maybe give suggestions in discussions on the general strategy and mission design. Are these discussions somewhere else besides this forum topic? I had a look at the github, but it looks like it stores stuff already decided upon.

Link to comment
Share on other sites

5 minutes ago, stibbons said:

Would one of the current contributors care to add their installed.ckan and/or a mod list to the repository?

There is a current mod configuration right there. it's ~ 346mb. It's in the readme under the folders. 

Edited by Theysen
Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...