Advertisement
sumguytwitches

sg ride landing

Feb 1st, 2023 (edited)
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function info {
  2. parameter message.
  3.  
  4. set logmessage to round(missionTime,1) + ": " + message.
  5. print logmessage.
  6. }
  7. set takeoffspeed to 60.
  8. set targetOrbitAltitude to 101e3.
  9. list engines in es.
  10. for e in es e:shutdown().
  11. toggle ag2.
  12. toggle ag8.
  13. bays on.
  14. wait 1.
  15. toggle ag8.
  16. set vectors to ship:partsdubbedpattern("vector").
  17. for v in vectors set v:thrustlimit to 100.
  18. set servos to ship:modulesnamed("ModuleRoboticRotationServo").
  19. lock p to choose -verticalspeed - 20 if alt:radar > 1000 else 0.
  20. Set deadzone to 2. lock roll to choose max(-30,min(30, body:geopositionof(heading(h,0):vector):bearing)) if abs(body:geopositionof(heading(h,0):vector):bearing) > deadzone else 0.
  21. lock h to body:geopositionof(srfprograde:vector:normalized):heading.
  22. lock steering to heading(h,p, -roll).
  23. lock throttle to 1.
  24. lock vlimit to choose -verticalspeed + 50-alt:radar if groundspeed > 2 and alt:radar < 50 else ((-verticalspeed-1)-sqrt(2*max(1,(max(0.1,vdot(up:vector,vectors[0]:facing:vector))* availablethrust*0.9)/mass-body:mu/(body:radius^2))*max(alt:radar-20+verticalspeed*0.5,0.1)))*100.
  25. lock angletarget to max(-10,min(10,-groundspeed)).
  26. set landing to true.
  27. when landing then {
  28. set vlimitcopy to vlimit.
  29. set anglecopy to angletarget.
  30. for v in vectors set v:thrustlimit to vlimitcopy.
  31. for s in servos if s:hasfield("target angle") s:setfield("target angle", anglecopy).
  32. print " v thrust: " + vlimitcopy at (0,0).
  33. print "servo angle: " + anglecopy at (0,1).
  34. return true.
  35. }
  36. when airspeed < 1 then {
  37. lock throttle to -verticalspeed - 1.
  38. set landing to false.
  39. for v in vectors set v:thrustlimit to 100.
  40. }
  41.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement