My Kerbal RPC scripts

hover.py 1.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #! /bin/python3
  2. # Hover vessel
  3. import time
  4. import krpc
  5. # Target altitude in meters
  6. target_altitude = 100
  7. # The IP of the KRPC server (if not same computer)
  8. remote = '192.168.1.10'
  9. # Make connection
  10. conn = krpc.connect(name='Hover', address=remote)
  11. # Important objects
  12. vessel = conn.space_center.active_vessel
  13. body = vessel.orbit.body
  14. r_frame = body.reference_frame
  15. print(vessel.name)
  16. vessel.control.throttle = 0.0
  17. vessel.control.activate_next_stage()
  18. grav = body.surface_gravity
  19. at = vessel.available_thrust
  20. dry_mass = vessel.dry_mass
  21. vessel.control.legs = False
  22. vessel.auto_pilot.target_pitch_and_heading(90, 90)
  23. vessel.auto_pilot.engage()
  24. while at > 0:
  25. vm = vessel.mass
  26. minviable = (vm * grav) / at
  27. current_altitude = vessel.flight(r_frame).surface_altitude
  28. v_speed = vessel.flight(r_frame).vertical_speed
  29. if current_altitude > target_altitude:
  30. if v_speed < 0:
  31. vessel.control.throttle = minviable * 0.6
  32. else:
  33. vessel.control.throttle = 0
  34. else:
  35. if v_speed >= 0:
  36. vessel.control.throttle = minviable * 1.1
  37. else:
  38. vessel.control.throttle = minviable * 3
  39. time.sleep(0.1)
  40. at = vessel.available_thrust
  41. conn.close()