Browse Source

Plane still stalls

Petra Lamborn 6 years ago
parent
commit
e8cc4d500e
1 changed files with 21 additions and 29 deletions
  1. 21
    29
      plane.py

+ 21
- 29
plane.py View File

@@ -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()