Pre-
Timing Improvements Automatic Location Setting
This commit is contained in:
@@ -29,6 +29,10 @@ class AircraftLandingModel(pyactr.ACTRModel):
|
||||
# )
|
||||
|
||||
self.client = client
|
||||
# TODO: CHANGE TO GETDREFS, respect the runtime calculations.....didnt you learn your lesson on the algorithms midterm
|
||||
# TODO: Change sendDref to send DREFS
|
||||
# TODO: look for any rouge get/sendCTRL methods
|
||||
|
||||
airspeed = self.client.getDREF("sim/cockpit2/gauges/indicators/airspeed_kts_pilot")
|
||||
roll = self.client.getDREF("sim/cockpit2/gauges/indicators/roll_AHARS_deg_pilot")
|
||||
heading = self.client.getDREF("sim/cockpit2/gauges/indicators/heading_AHARS_deg_mag_pilot")
|
||||
@@ -39,6 +43,7 @@ class AircraftLandingModel(pyactr.ACTRModel):
|
||||
wheelS = self.client.getDREF("sim/flightmodel2/gear/tire_rotation_speed_rad_sec")
|
||||
wheelW = self.client.getDREF("sim/flightmodel/parts/tire_vrt_def_veh")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -243,7 +248,7 @@ class AircraftLandingModel(pyactr.ACTRModel):
|
||||
|
||||
#Switch Target for Pitch to Local Pitch Axis (ex. +10 Degrees nose up)
|
||||
|
||||
self.printControls(1,0,yoke_pull,yoke_steer,rudder,throttle)
|
||||
# self.printControls(1,0,yoke_pull,yoke_steer,rudder,throttle) #PRINT CONTROLS
|
||||
# Send all controls simultaneously to X-Plane
|
||||
self.send_controls_to_xplane(yoke_pull, yoke_steer, rudder, throttle)
|
||||
|
||||
@@ -274,7 +279,7 @@ class AircraftLandingModel(pyactr.ACTRModel):
|
||||
#Hit the Brakes
|
||||
brakedref = "sim/cockpit2/controls/parking_brake_ratio"
|
||||
brake = 1
|
||||
self.client.sendDREF(brakedref,brake)
|
||||
self.client.sendDREF(brakedref,brake)
|
||||
|
||||
self.client.sendCTRL([yoke_pull, yoke_steer, rudder, throttle, -998, -998]) # Control inputs: [yoke_pull, yoke_steer, rudder, throttle]
|
||||
|
||||
@@ -333,7 +338,9 @@ class AircraftLandingModel(pyactr.ACTRModel):
|
||||
print("Hit the brakes")
|
||||
|
||||
|
||||
|
||||
# def logData(self):
|
||||
|
||||
|
||||
|
||||
|
||||
# def rules(self):
|
||||
|
||||
@@ -37,9 +37,9 @@ Disturbances & Disturbance Tests (Demonstrate the limitations of the model)
|
||||
1. Get model as is to land at the "ideal" point
|
||||
|
||||
2. Graph Production from the simulation
|
||||
1. Dump Raw Data during simulation
|
||||
1. Dump Raw Data during simulation (achieved)
|
||||
2. Second peice of code, looks at raw data, produces the graphs/or the numbers that get pasted into excel
|
||||
3. Create fancy graphs (The punchline of the story)
|
||||
3. Create fancy graphs (The punchline of the story)
|
||||
--- Slide with graphs that can make consistent comparisons
|
||||
--- Novice, Expert, etc. -- What if games can be overlayed on top of that
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import time
|
||||
from time import sleep
|
||||
import xpc
|
||||
from cognitiveModel import AircraftLandingModel
|
||||
|
||||
def ex():
|
||||
|
||||
|
||||
print("X-Plane Connect example script")
|
||||
print("Setting up simulation")
|
||||
with xpc.XPlaneConnect() as client:
|
||||
@@ -17,7 +18,6 @@ def ex():
|
||||
print("Error establishing connection to X-Plane.")
|
||||
print("Exiting...")
|
||||
return
|
||||
|
||||
cogModel = AircraftLandingModel(client)
|
||||
|
||||
# # Set position of the player aircraft
|
||||
@@ -43,96 +43,65 @@ def ex():
|
||||
|
||||
|
||||
|
||||
# client.pauseSim(True)
|
||||
# # Set position of the player aircraft
|
||||
# print("Setting Experiment Position: Denver Airport Runway")
|
||||
# # Lat Lon Alt Pitch Roll Yaw Gear
|
||||
# posi = [39.945, -104.70, 2500, 0, 0, 0, 1] #3NM Approach for Denver Intl Runway 16R (16,000 feet)
|
||||
# client.sendPOSI(posi)
|
||||
# quat = (1.0,0.0,0.0,173.0)
|
||||
# quatDref = "sim/flightmodel/position/q"
|
||||
# client.sendDREF(quatDref,quat)
|
||||
# speed = (1.0,0.0,0.0,173.0)
|
||||
# client.sendDREF("sim/flightmodel/position/indicated_airspeed",speed)
|
||||
# client.pauseSim(False)
|
||||
|
||||
|
||||
# # Set angle of attack, velocity, and orientation using the DATA command
|
||||
# print("Setting orientation")
|
||||
# data = [\
|
||||
# [18, 0, -998, 0, -998, -998, -998, -998, -998],\
|
||||
# [ 3, 130, 130, 130, 130, -998, -998, -998, -998],\
|
||||
# [16, 0, 0, 0, -998, -998, -998, -998, -998]\
|
||||
# ]
|
||||
# client.sendDATA(data)
|
||||
|
||||
# Set control surfaces and throttle of the player aircraft using sendCTRL
|
||||
print("Setting controls")
|
||||
ctrl = [0.0, 0.0, 0.0, 0.0]
|
||||
client.sendCTRL(ctrl)
|
||||
# Pitch, Roll, Rudder, Throttle
|
||||
|
||||
# Pause the sim
|
||||
client.pauseSim(False)
|
||||
|
||||
count = 0
|
||||
innercount = 0
|
||||
#ONE SECOND INCREMENTS
|
||||
# while(count < 1000000 ):
|
||||
# client.pauseSim(False)
|
||||
# sleep(1.0)
|
||||
# print("Pausing" + str(count))
|
||||
# client.pauseSim(True)
|
||||
# sleep(1.0)
|
||||
# count+=1
|
||||
|
||||
#0.1 SECOND INCREMENTS
|
||||
# while(count < 1000000 ):
|
||||
# client.pauseSim(False)
|
||||
# sleep(0.1)
|
||||
# print("Pausing" + str(count))
|
||||
# client.pauseSim(True)
|
||||
# sleep(0.1)
|
||||
# count+=1
|
||||
|
||||
#0.001 SECOND INCREMENTS
|
||||
# while(count < 1000000 ):
|
||||
# client.pauseSim(False)
|
||||
# sleep(0.001)
|
||||
# print("Pausing" + str(count))
|
||||
# client.pauseSim(True)
|
||||
# sleep(0.001)
|
||||
# count+=1
|
||||
|
||||
#0.00001 SECOND INCREMENTS
|
||||
# while(count < 1000000 ):
|
||||
# client.pauseSim(False)
|
||||
# sleep(0.00001)
|
||||
# print("Pausing" + str(count))
|
||||
# client.pauseSim(True)
|
||||
# sleep(0.00001)
|
||||
# count+=1
|
||||
|
||||
|
||||
# sim/operation/override/override_timestep
|
||||
|
||||
clockStart = time.time()
|
||||
#Doing stuff In between Test SECOND INCREMENTS
|
||||
while(count < 1000000):
|
||||
#50 Millisecond Timesteps
|
||||
# sleep(0.05)
|
||||
sleep(0.05)
|
||||
clockStart = time.time()
|
||||
|
||||
client.pauseSim(False) #Unpause
|
||||
# sleep(0.05) # Run 50 Milliseconds
|
||||
# client.pauseSim(True) # Pause Simulator
|
||||
|
||||
client.pauseSim(True) # Pause Simulator
|
||||
#Run Model (Send commands to simulator within this process)
|
||||
####Insert Model Here, some assembly required#######
|
||||
cogModel.update_aircraft_state()
|
||||
cogModel.update_controls_simultaneously()
|
||||
#Please work........no excuses now
|
||||
#Repeat
|
||||
# print("Advanced 50 Milliseconds: Step #" + str(count))
|
||||
client.pauseSim(False) #Unpause
|
||||
|
||||
clockEnd = time.time()
|
||||
count+=1
|
||||
print("Clock Time: " + str(clockEnd - clockStart))
|
||||
sleep(0.05) # Run 50 Milliseconds
|
||||
##Would need to be logging data during the sleep time......but the code is "sleeping"....multithread?
|
||||
#Repeat
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# print("Pausing" + str(count))
|
||||
# innercount = 0
|
||||
# client.pauseSim(True)
|
||||
# sleep(0.05) #Simulate 50 milliseconds
|
||||
|
||||
# sleep(0.01) #Simulate 50 milliseconds
|
||||
# # while(innercount < 100000):
|
||||
# # # print("Doing Stuff" + str(innercount)) # Simulates the model running and computing for 50 Milliseconds maybe?
|
||||
|
||||
# # innercount+=1
|
||||
# # else:
|
||||
# client.pauseSim(False)
|
||||
# print("Exit Pause" + str(count))
|
||||
# sleep(0.5)
|
||||
# count+=1
|
||||
|
||||
#
|
||||
print("End of Python client example")
|
||||
#Copy data.txt to the cloudddddd using python magic and accurate filepaths
|
||||
|
||||
input("Press any key to exit...")
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user