My Kerbal RPC scripts

plane.py 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. # A script that flies a plane
  2. import time
  3. import krpc
  4. # The IP of the KRPC server (if not same computer)
  5. remote = '192.169.1.10'
  6. conn = krpc.connect(name='Plane autopilot', remote)
  7. vessel = conn.space_center.active_vessel
  8. body = vessel.orbit.body
  9. r_frame = body.reference_frame
  10. print(vessel.name)
  11. vessel.control.brakes = True
  12. vessel.auto_pilot.target_pitch_and_heading(0, 90)
  13. vessel.auto_pilot.engage()
  14. #vessel.auto_pilot.sas = True
  15. vessel.control.throttle = 1
  16. print('Launching!')
  17. vessel.control.activate_next_stage()
  18. time.sleep(3)
  19. vessel.control.brakes = False
  20. surf_vel = conn.get_call(getattr, vessel.flight(r_frame), 'horizontal_speed')
  21. expr = conn.krpc.Expression.greater_than(
  22. conn.krpc.Expression.call(surf_vel),
  23. conn.krpc.Expression.constant_double(60))
  24. event = conn.krpc.add_event(expr)
  25. with event.condition:
  26. event.wait()
  27. print('Tilt up')
  28. vessel.auto_pilot.target_pitch_and_heading(20, 90)
  29. srf_altitude = conn.get_call(getattr, vessel.flight(), 'surface_altitude')
  30. expr = conn.krpc.Expression.greater_than(
  31. conn.krpc.Expression.call(srf_altitude),
  32. conn.krpc.Expression.constant_double(40))
  33. event = conn.krpc.add_event(expr)
  34. with event.condition:
  35. event.wait()
  36. print('Gear up')
  37. vessel.control.gear = False
  38. expr = conn.krpc.Expression.greater_than(
  39. conn.krpc.Expression.call(surf_vel),
  40. conn.krpc.Expression.constant_double(200))
  41. event = conn.krpc.add_event(expr)
  42. with event.condition:
  43. event.wait()
  44. print('glide')
  45. vessel.auto_pilot.target_pitch_and_heading(5, 90)
  46. vessel.control.throttle = 0.20
  47. time.sleep(35)
  48. vessel.control.roll = 0.03
  49. vessel.auto_pilot.target_pitch_and_heading(5, 120)
  50. time.sleep(8)
  51. vessel.auto_pilot.target_pitch_and_heading(5, 180)
  52. time.sleep(8)
  53. vessel.auto_pilot.target_pitch_and_heading(5, 210)
  54. time.sleep(8)
  55. vessel.auto_pilot.target_pitch_and_heading(2, 270)
  56. time.sleep(8)
  57. vessel.control.roll = 0.00
  58. vessel.control.throttle = 0
  59. vessel.auto_pilot.target_pitch_and_heading(-15, 270)
  60. expr = conn.krpc.Expression.less_than(
  61. conn.krpc.Expression.call(srf_altitude),
  62. conn.krpc.Expression.constant_double(300))
  63. event = conn.krpc.add_event(expr)
  64. with event.condition:
  65. event.wait()
  66. vessel.auto_pilot.target_pitch_and_heading(2, 270)
  67. vessel.control.gear = True
  68. expr = conn.krpc.Expression.less_than(
  69. conn.krpc.Expression.call(srf_altitude),
  70. conn.krpc.Expression.constant_double(30))
  71. event = conn.krpc.add_event(expr)
  72. with event.condition:
  73. event.wait()
  74. vessel.auto_pilot.target_pitch_and_heading(14, 270)
  75. time.sleep(5)
  76. vert_vel = conn.get_call(getattr, vessel.flight(r_frame),
  77. 'vertical_speed')
  78. expr = conn.krpc.Expression.less_than(
  79. conn.krpc.Expression.call(vert_vel),
  80. conn.krpc.Expression.constant_double(0))
  81. event = conn.krpc.add_event(expr)
  82. with event.condition:
  83. event.wait()
  84. vessel.auto_pilot.target_pitch_and_heading(5, 270)
  85. vessel.control.brakes = True
  86. conn.close()