Basic mission vessel tunnel
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user