Basic mission vessel tunnel

This commit is contained in:
2023-08-29 01:01:24 +02:00
parent 5f2d358664
commit 979415cdb0
10 changed files with 569 additions and 144 deletions

View File

@@ -1,6 +1,42 @@
from time import sleep
from utils import kill_relative_velocity, correct_course, magnitude
from .utils import kill_relative_velocity, correct_course, magnitude
from . import Maneuver
class DockingManeuver(Maneuver):
def __init__(self, conn, vessel_id, docking_part, reference_frame):
super().__init__(conn, vessel_id)
self.docking_part = docking_part
self.reference_frame = reference_frame
def start(self):
vessel = self.conn.space_center.active_vessel
self.conn.drawing.add_direction((0, 1, 0), self.reference_frame)
self.conn.drawing.add_direction((1, 0, 0), self.reference_frame)
vessel.parts.controlling = self.docking_part
kill_relative_velocity(self.conn, vessel, self.reference_frame)
set_attitude_and_roll(self.conn, vessel, self.reference_frame)
align_horizontally(self.conn, vessel, self.reference_frame)
print("Starting docking procedure")
vessel.control.set_action_group(0, True)
rcs_push(vessel, {"y": 1}, .5)
vessel.control.rcs = True
try:
while vessel.position(self.reference_frame)[1] > 0:
print(vessel.position(self.reference_frame)[1])
correct_course(self.conn, vessel, (0, 0, 0), self.reference_frame)
sleep(1)
except ValueError as e:
vessel = self.conn.space_center.active_vessel
finally:
vessel.control.rcs = False
return True
def set_attitude_and_roll(conn, vessel, reference_frame):
@@ -127,30 +163,3 @@ def align_horizontally(conn, vessel, reference_frame):
kill_rcs_velocity(vessel, reference_frame)
print("Vertical alignment done!")
def dock_ship(conn, vessel, docking_part, reference_frame):
conn.drawing.add_direction((0, 1, 0), reference_frame)
conn.drawing.add_direction((1, 0, 0), reference_frame)
vessel.parts.controlling = docking_part
kill_relative_velocity(conn, vessel, reference_frame)
set_attitude_and_roll(conn, vessel, reference_frame)
align_horizontally(conn, vessel, reference_frame)
print("Starting docking procedure")
vessel.control.set_action_group(0, True)
rcs_push(vessel, {"y": 1}, .5)
vessel.control.rcs = True
try:
while vessel.position(reference_frame)[1] > 0:
print(vessel.position(reference_frame)[1])
correct_course(conn, vessel, (0, 0, 0), reference_frame)
sleep(1)
except ValueError as e:
vessel = conn.space_center.active_vessel
finally:
vessel.control.rcs = False