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
 import krpc
4
 import krpc
5
 
5
 
6
 # The IP of the KRPC server (if not same computer)
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
 conn = krpc.connect(name='Plane autopilot', address=remote)
9
 conn = krpc.connect(name='Plane autopilot', address=remote)
10
+
11
+# Important objects
9
 vessel = conn.space_center.active_vessel
12
 vessel = conn.space_center.active_vessel
10
 body = vessel.orbit.body
13
 body = vessel.orbit.body
11
 r_frame = body.reference_frame
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
 print(vessel.name)
18
 print(vessel.name)
19
+
13
 vessel.control.brakes = True
20
 vessel.control.brakes = True
14
 
21
 
15
 vessel.auto_pilot.target_pitch_and_heading(0, 90)
22
 vessel.auto_pilot.target_pitch_and_heading(0, 90)
22
 time.sleep(3)
29
 time.sleep(3)
23
 vessel.control.brakes = False
30
 vessel.control.brakes = False
24
 
31
 
25
-surf_vel = conn.get_call(getattr, vessel.flight(r_frame), 'horizontal_speed')
26
 
32
 
27
 expr = conn.krpc.Expression.greater_than(
33
 expr = conn.krpc.Expression.greater_than(
28
     conn.krpc.Expression.call(surf_vel),
34
     conn.krpc.Expression.call(surf_vel),
34
 print('Tilt up')
40
 print('Tilt up')
35
 vessel.auto_pilot.target_pitch_and_heading(20, 90)
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
 expr = conn.krpc.Expression.greater_than(
44
 expr = conn.krpc.Expression.greater_than(
40
     conn.krpc.Expression.call(srf_altitude),
45
     conn.krpc.Expression.call(srf_altitude),
58
 vessel.control.throttle = 0.20
63
 vessel.control.throttle = 0.20
59
 time.sleep(35)
64
 time.sleep(35)
60
 
65
 
66
+print('turn')
61
 vessel.control.roll = 0.03
67
 vessel.control.roll = 0.03
62
 vessel.auto_pilot.target_pitch_and_heading(5, 120)
68
 vessel.auto_pilot.target_pitch_and_heading(5, 120)
63
 time.sleep(8)
69
 time.sleep(8)
66
 vessel.auto_pilot.target_pitch_and_heading(5, 210)
72
 vessel.auto_pilot.target_pitch_and_heading(5, 210)
67
 time.sleep(8)
73
 time.sleep(8)
68
 vessel.auto_pilot.target_pitch_and_heading(2, 270)
74
 vessel.auto_pilot.target_pitch_and_heading(2, 270)
69
-time.sleep(8)
75
+
70
 vessel.control.roll = 0.00
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
 vessel.control.gear = True
88
 vessel.control.gear = True
89
+vessel.auto_pilot.target_pitch_and_heading(3, 270)
83
 
90
 
84
 expr = conn.krpc.Expression.less_than(
91
 expr = conn.krpc.Expression.less_than(
85
     conn.krpc.Expression.call(srf_altitude),
92
     conn.krpc.Expression.call(srf_altitude),
88
 with event.condition:
95
 with event.condition:
89
     event.wait()
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
 vessel.control.brakes = True
98
 vessel.control.brakes = True
108
 
99
 
100
+vessel.control.throttle = 0
109
 
101
 
110
 conn.close()
102
 conn.close()