Initial commit
This commit is contained in:
65
maneuvers/tugship.py
Normal file
65
maneuvers/tugship.py
Normal file
@@ -0,0 +1,65 @@
|
||||
from time import sleep
|
||||
|
||||
import numpy as np
|
||||
import numpy.linalg as la
|
||||
|
||||
# from docking import *
|
||||
from utils import magnitude
|
||||
from rendezvous import maneuver_to_rendezvous
|
||||
from approach import maneuver_to_approach
|
||||
from docking import dock_ship
|
||||
import krpc
|
||||
|
||||
|
||||
conn = krpc.connect()
|
||||
print(conn.krpc.get_status().version)
|
||||
|
||||
|
||||
def undock(conn):
|
||||
print('Undocking')
|
||||
sc = conn.space_center
|
||||
v = sc.active_vessel
|
||||
target = sc.target_vessel
|
||||
|
||||
decouplers = [d for d in v.parts.decouplers if d.staged and not d.decoupled]
|
||||
|
||||
tugship = decouplers[-1].decouple()
|
||||
sc.active_vessel = tugship
|
||||
v = sc.active_vessel
|
||||
v.name = "Tugship " + target.name
|
||||
sc.target_vessel = target
|
||||
|
||||
v.control.throttle = 0
|
||||
|
||||
v.control.rcs = True
|
||||
v.control.up = -1
|
||||
sleep(5)
|
||||
v.control.up = 0
|
||||
|
||||
v.control.solar_panels = True
|
||||
v.parts.engines[0].active = True
|
||||
print('Undocking sequence finished')
|
||||
|
||||
|
||||
sc = conn.space_center
|
||||
vessel = sc.active_vessel
|
||||
target = sc.target_vessel
|
||||
|
||||
if vessel.name == "TugGrape":
|
||||
if target is None:
|
||||
print("Must set a target")
|
||||
exit(1)
|
||||
|
||||
undock(conn)
|
||||
|
||||
maneuver_to_rendezvous(conn, vessel, target)
|
||||
|
||||
reference_frame = sc.ReferenceFrame.create_relative(target.reference_frame, rotation=(1., 0., 0., 0.))
|
||||
|
||||
if magnitude(vessel.position(vessel.reference_frame) - np.array(target.position(vessel.reference_frame))) < 1000:
|
||||
maneuver_to_approach(conn, reference_frame)
|
||||
|
||||
docking_part = vessel.parts.root.children[0].children[10].children[0].children[0].children[0].children[0]
|
||||
dock_ship(conn, vessel, docking_part, reference_frame)
|
||||
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user