|
@@ -4,12 +4,19 @@ import time
|
4
|
4
|
import krpc
|
5
|
5
|
|
6
|
6
|
# The IP of the KRPC server (if not same computer)
|
7
|
|
-remote = '192.169.1.10'
|
|
7
|
+remote = '192.168.1.10'
|
|
8
|
+# Make connection
|
8
|
9
|
conn = krpc.connect(name='Plane autopilot', address=remote)
|
|
10
|
+
|
|
11
|
+# Important objects
|
9
|
12
|
vessel = conn.space_center.active_vessel
|
10
|
13
|
body = vessel.orbit.body
|
11
|
14
|
r_frame = body.reference_frame
|
|
15
|
+surf_vel = conn.get_call(getattr, vessel.flight(r_frame), 'horizontal_speed')
|
|
16
|
+srf_altitude = conn.get_call(getattr, vessel.flight(), 'surface_altitude')
|
|
17
|
+vert_vel = conn.get_call(getattr, vessel.flight(r_frame), 'vertical_speed')
|
12
|
18
|
print(vessel.name)
|
|
19
|
+
|
13
|
20
|
vessel.control.brakes = True
|
14
|
21
|
|
15
|
22
|
vessel.auto_pilot.target_pitch_and_heading(0, 90)
|
|
@@ -22,7 +29,6 @@ vessel.control.activate_next_stage()
|
22
|
29
|
time.sleep(3)
|
23
|
30
|
vessel.control.brakes = False
|
24
|
31
|
|
25
|
|
-surf_vel = conn.get_call(getattr, vessel.flight(r_frame), 'horizontal_speed')
|
26
|
32
|
|
27
|
33
|
expr = conn.krpc.Expression.greater_than(
|
28
|
34
|
conn.krpc.Expression.call(surf_vel),
|
|
@@ -34,7 +40,6 @@ with event.condition:
|
34
|
40
|
print('Tilt up')
|
35
|
41
|
vessel.auto_pilot.target_pitch_and_heading(20, 90)
|
36
|
42
|
|
37
|
|
-srf_altitude = conn.get_call(getattr, vessel.flight(), 'surface_altitude')
|
38
|
43
|
|
39
|
44
|
expr = conn.krpc.Expression.greater_than(
|
40
|
45
|
conn.krpc.Expression.call(srf_altitude),
|
|
@@ -58,6 +63,7 @@ vessel.auto_pilot.target_pitch_and_heading(5, 90)
|
58
|
63
|
vessel.control.throttle = 0.20
|
59
|
64
|
time.sleep(35)
|
60
|
65
|
|
|
66
|
+print('turn')
|
61
|
67
|
vessel.control.roll = 0.03
|
62
|
68
|
vessel.auto_pilot.target_pitch_and_heading(5, 120)
|
63
|
69
|
time.sleep(8)
|
|
@@ -66,20 +72,21 @@ time.sleep(8)
|
66
|
72
|
vessel.auto_pilot.target_pitch_and_heading(5, 210)
|
67
|
73
|
time.sleep(8)
|
68
|
74
|
vessel.auto_pilot.target_pitch_and_heading(2, 270)
|
69
|
|
-time.sleep(8)
|
|
75
|
+
|
70
|
76
|
vessel.control.roll = 0.00
|
71
|
|
-vessel.control.throttle = 0
|
72
|
|
-vessel.auto_pilot.target_pitch_and_heading(-15, 270)
|
|
77
|
+vessel.control.throttle = 0.025
|
73
|
78
|
|
74
|
|
-expr = conn.krpc.Expression.less_than(
|
75
|
|
- conn.krpc.Expression.call(srf_altitude),
|
76
|
|
- conn.krpc.Expression.constant_double(300))
|
77
|
|
-event = conn.krpc.add_event(expr)
|
78
|
|
-with event.condition:
|
79
|
|
- event.wait()
|
|
79
|
+while vessel.flight(r_frame).horizontal_speed > 90:
|
|
80
|
+ if vessel.flight(r_frame).surface_altitude > 100:
|
|
81
|
+ print('Nose down')
|
|
82
|
+ vessel.auto_pilot.target_pitch_and_heading(-5, 270)
|
|
83
|
+ elif vessel.flight(r_frame).surface_altitude < 75:
|
|
84
|
+ print('Nose up')
|
|
85
|
+ vessel.auto_pilot.target_pitch_and_heading(7, 270)
|
|
86
|
+ time.sleep(1)
|
80
|
87
|
|
81
|
|
-vessel.auto_pilot.target_pitch_and_heading(2, 270)
|
82
|
88
|
vessel.control.gear = True
|
|
89
|
+vessel.auto_pilot.target_pitch_and_heading(3, 270)
|
83
|
90
|
|
84
|
91
|
expr = conn.krpc.Expression.less_than(
|
85
|
92
|
conn.krpc.Expression.call(srf_altitude),
|
|
@@ -88,23 +95,8 @@ event = conn.krpc.add_event(expr)
|
88
|
95
|
with event.condition:
|
89
|
96
|
event.wait()
|
90
|
97
|
|
91
|
|
-vessel.auto_pilot.target_pitch_and_heading(14, 270)
|
92
|
|
-
|
93
|
|
-time.sleep(5)
|
94
|
|
-
|
95
|
|
-vert_vel = conn.get_call(getattr, vessel.flight(r_frame),
|
96
|
|
- 'vertical_speed')
|
97
|
|
-
|
98
|
|
-expr = conn.krpc.Expression.less_than(
|
99
|
|
- conn.krpc.Expression.call(vert_vel),
|
100
|
|
- conn.krpc.Expression.constant_double(0))
|
101
|
|
-event = conn.krpc.add_event(expr)
|
102
|
|
-with event.condition:
|
103
|
|
- event.wait()
|
104
|
|
-
|
105
|
|
-vessel.auto_pilot.target_pitch_and_heading(5, 270)
|
106
|
|
-
|
107
|
98
|
vessel.control.brakes = True
|
108
|
99
|
|
|
100
|
+vessel.control.throttle = 0
|
109
|
101
|
|
110
|
102
|
conn.close()
|