-
Notifications
You must be signed in to change notification settings - Fork 0
/
Untitled-1.py
94 lines (72 loc) · 3.17 KB
/
Untitled-1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#!/usr/bin/env python3
import setup_path
import airsim
import numpy as np
import os
import tempfile
import pprint
import cv2
# connect to the AirSim simulator
client = airsim.MultirotorClient()
client.confirmConnection()
client.enableApiControl(True)
client.armDisarm(True)
state = client.getMultirotorState()
s = pprint.pformat(state)
print("state: %s" % s)
# imu_data = client.getImuData()
# s = pprint.pformat(imu_data)
# print("imu_data: %s" % s)
# barometer_data = client.getBarometerData()
# s = pprint.pformat(barometer_data)
# print("barometer_data: %s" % s)
# magnetometer_data = client.getMagnetometerData()
# s = pprint.pformat(magnetometer_data)
# print("magnetometer_data: %s" % s)
gps_data = client.getGpsData()
s = pprint.pformat(gps_data)
#print("gps_data: %s" % s)
# airsim.wait_key('Press any key to takeoff')
# client.takeoffAsync().join()
state = client.getMultirotorState()
#print("state: %s" % pprint.pformat(state))
airsim.wait_key('Press any key to move vehicle to (0, 0, -60) at 10 m/s')
client.moveToPositionAsync(0, 0, -60, 10).join ()
airsim.wait_key('Press any key to move vehicle to (-60, 0, -60) at 1 m/s')
client.moveToPositionAsync(-60, 0, -60, 1).join ()
client.hoverAsync().join()
# state = client.getMultirotorState()
# print("state: %s" % pprint.pformat(state))
# airsim.wait_key('Press any key to take images')
# # get camera images from the car
# responses = client.simGetImages([
# airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image
# airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), #depth in perspective projection
# airsim.ImageRequest("1", airsim.ImageType.Scene), #scene vision image in png format
# airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)]) #scene vision image in uncompressed RGBA array
# print('Retrieved images: %d' % len(responses))
# tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_drone")
# print ("Saving images to %s" % tmp_dir)
# try:
# os.makedirs(tmp_dir)
# except OSError:
# if not os.path.isdir(tmp_dir):
# raise
# for idx, response in enumerate(responses):
# filename = os.path.join(tmp_dir, str(idx))
# if response.pixels_as_float:
# print("Type %d, size %d" % (response.image_type, len(response.image_data_float)))
# airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response))
# elif response.compress: #png format
# print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8)))
# airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8)
# else: #uncompressed array
# print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8)))
# img1d = np.fromstring(response.image_data_uint8, dtype=np.uint8) # get numpy array
# img_rgb = img1d.reshape(response.height, response.width, 3) # reshape array to 4 channel image array H X W X 3
# cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png
airsim.wait_key('Press any key to reset to original state')
client.armDisarm(False)
client.reset()
# that's enough fun for now. let's quit cleanly
client.enableApiControl(False)