Skip to content

Commit ecb0993

Browse files
committed
[formatting] format with python black
1 parent 56630e7 commit ecb0993

9 files changed

Lines changed: 509 additions & 186 deletions

File tree

.vscode/settings.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"editor.formatOnSave": true,
3+
"python.formatting.provider": "black"
4+
}

baselines/baseline_racer.py

Lines changed: 242 additions & 72 deletions
Large diffs are not rendered by default.

baselines/baseline_racer_image_benchmarker.py

Lines changed: 99 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,33 @@
77
import cv2
88
from baseline_racer import BaselineRacer
99

10+
1011
class BaselineRacerImageBenchmarker(BaselineRacer):
11-
def __init__(self,
12-
img_benchmark_type = 'simGetImage',
13-
drone_name = "drone_1",
14-
viz_traj = False,
15-
viz_traj_color_rgba=[1.0, 1.0, 0.0, 1.0],
16-
viz_image_cv2 = False):
17-
super().__init__(drone_name=drone_name, viz_traj=viz_traj, viz_image_cv2=viz_image_cv2)
12+
def __init__(
13+
self,
14+
img_benchmark_type="simGetImage",
15+
drone_name="drone_1",
16+
viz_traj=False,
17+
viz_traj_color_rgba=[1.0, 1.0, 0.0, 1.0],
18+
viz_image_cv2=False,
19+
):
20+
super().__init__(
21+
drone_name=drone_name, viz_traj=viz_traj, viz_image_cv2=viz_image_cv2
22+
)
1823

1924
self.image_benchmark_num_images = 0
2025
self.image_benchmark_total_time = 0.0
2126
self.image_callback_thread = None
2227
if img_benchmark_type == "simGetImage":
23-
self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImage, 0.05))
28+
self.image_callback_thread = threading.Thread(
29+
target=self.repeat_timer_img,
30+
args=(self.image_callback_benchmark_simGetImage, 0.05),
31+
)
2432
if img_benchmark_type == "simGetImages":
25-
self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImages, 0.05))
33+
self.image_callback_thread = threading.Thread(
34+
target=self.repeat_timer_img,
35+
args=(self.image_callback_benchmark_simGetImages, 0.05),
36+
)
2637
self.is_image_thread_active = False
2738

2839
def start_img_benchmark_thread(self):
@@ -43,45 +54,73 @@ def repeat_timer_img(self, task, period):
4354
time.sleep(period)
4455

4556
def print_benchmark_results(self):
46-
avg_fps = 1.0 / ((self.image_benchmark_total_time) / float(self.image_benchmark_num_images))
47-
print(self.level_name + ": {} avg_fps for {} num of images".format(avg_fps, self.image_benchmark_num_images))
57+
avg_fps = 1.0 / (
58+
(self.image_benchmark_total_time) / float(self.image_benchmark_num_images)
59+
)
60+
print(
61+
self.level_name
62+
+ ": {} avg_fps for {} num of images".format(
63+
avg_fps, self.image_benchmark_num_images
64+
)
65+
)
4866

4967
def image_callback_benchmark_simGetImage(self):
5068
self.image_benchmark_num_images += 1
5169
iter_start_time = time.time()
52-
response = self.airsim_client_images.simGetImage("fpv_cam", airsim.ImageType.Scene)
53-
img_rgb = cv2.imdecode(airsim.string_to_uint8_array(response), cv2.IMREAD_UNCHANGED)
70+
response = self.airsim_client_images.simGetImage(
71+
"fpv_cam", airsim.ImageType.Scene
72+
)
73+
img_rgb = cv2.imdecode(
74+
airsim.string_to_uint8_array(response), cv2.IMREAD_UNCHANGED
75+
)
5476
self.image_benchmark_total_time += time.time() - iter_start_time
55-
avg_fps = 1.0 / ((self.image_benchmark_total_time) / float(self.image_benchmark_num_images))
56-
print(self.level_name + ": {} avg_fps for {} num of images".format(avg_fps, self.image_benchmark_num_images))
77+
avg_fps = 1.0 / (
78+
(self.image_benchmark_total_time) / float(self.image_benchmark_num_images)
79+
)
80+
print(
81+
self.level_name
82+
+ ": {} avg_fps for {} num of images".format(
83+
avg_fps, self.image_benchmark_num_images
84+
)
85+
)
5786
# uncomment following lines to viz image
5887
# if self.viz_image_cv2:
59-
# cv2.imshow("img_rgb", img_rgb_1d_new)
60-
# cv2.waitKey(1)
88+
# cv2.imshow("img_rgb", img_rgb_1d_new)
89+
# cv2.waitKey(1)
6190

6291
def image_callback_benchmark_simGetImages(self):
6392
self.image_benchmark_num_images += 1
6493
iter_start_time = time.time()
6594
request = [airsim.ImageRequest("fpv_cam", airsim.ImageType.Scene, False, False)]
6695
response = self.airsim_client_images.simGetImages(request)
67-
img_rgb_1d = np.fromstring(response[0].image_data_uint8, dtype=np.uint8)
96+
img_rgb_1d = np.fromstring(response[0].image_data_uint8, dtype=np.uint8)
6897
img_rgb = img_rgb_1d.reshape(response[0].height, response[0].width, 3)
6998
self.image_benchmark_total_time += time.time() - iter_start_time
70-
avg_fps = 1.0 / ((self.image_benchmark_total_time) / float(self.image_benchmark_num_images))
71-
print(self.level_name + ": {} avg_fps for {} num of images".format(avg_fps, self.image_benchmark_num_images))
99+
avg_fps = 1.0 / (
100+
(self.image_benchmark_total_time) / float(self.image_benchmark_num_images)
101+
)
102+
print(
103+
self.level_name
104+
+ ": {} avg_fps for {} num of images".format(
105+
avg_fps, self.image_benchmark_num_images
106+
)
107+
)
72108
# uncomment following lines to viz image
73109
# if self.viz_image_cv2:
74-
# cv2.imshow("img_rgb", img_rgb_1d_new)
75-
# cv2.waitKey(1)
110+
# cv2.imshow("img_rgb", img_rgb_1d_new)
111+
# cv2.waitKey(1)
112+
76113

77114
def main(args):
78115
# ensure you have generated the neurips planning settings file by running python generate_settings_file.py
79-
baseline_racer = BaselineRacerImageBenchmarker(img_benchmark_type=args.img_benchmark_type, \
80-
drone_name="drone_1", \
81-
viz_traj=args.viz_traj, \
82-
viz_traj_color_rgba=[1.0, 1.0, 0.0, 1.0], \
83-
viz_image_cv2=args.viz_image_cv2)
84-
116+
baseline_racer = BaselineRacerImageBenchmarker(
117+
img_benchmark_type=args.img_benchmark_type,
118+
drone_name="drone_1",
119+
viz_traj=args.viz_traj,
120+
viz_traj_color_rgba=[1.0, 1.0, 0.0, 1.0],
121+
viz_image_cv2=args.viz_image_cv2,
122+
)
123+
85124
baseline_racer.load_level(args.level_name)
86125
if args.level_name == "Qualifier_Tier_1":
87126
args.race_tier = 1
@@ -99,14 +138,39 @@ def main(args):
99138
baseline_racer.stop_img_benchmark_thread()
100139
baseline_racer.print_benchmark_results()
101140

141+
102142
if __name__ == "__main__":
103143
parser = ArgumentParser()
104-
parser.add_argument('--level_name', type=str, choices=["Soccer_Field_Easy", "Soccer_Field_Medium", "ZhangJiaJie_Medium", "Building99_Hard",
105-
"Qualifier_Tier_1", "Qualifier_Tier_2", "Qualifier_Tier_3"], default="ZhangJiaJie_Medium")
106-
parser.add_argument('--enable_viz_traj', dest='viz_traj', action='store_true', default=False)
107-
parser.add_argument('--img_benchmark_type', type=str, choices=["simGetImage", "simGetImages"], default="simGetImages")
108-
parser.add_argument('--enable_viz_image_cv2', dest='viz_image_cv2', action='store_true', default=False)
109-
parser.add_argument('--race_tier', type=int, choices=[1,2,3], default=1)
144+
parser.add_argument(
145+
"--level_name",
146+
type=str,
147+
choices=[
148+
"Soccer_Field_Easy",
149+
"Soccer_Field_Medium",
150+
"ZhangJiaJie_Medium",
151+
"Building99_Hard",
152+
"Qualifier_Tier_1",
153+
"Qualifier_Tier_2",
154+
"Qualifier_Tier_3",
155+
],
156+
default="ZhangJiaJie_Medium",
157+
)
158+
parser.add_argument(
159+
"--enable_viz_traj", dest="viz_traj", action="store_true", default=False
160+
)
161+
parser.add_argument(
162+
"--img_benchmark_type",
163+
type=str,
164+
choices=["simGetImage", "simGetImages"],
165+
default="simGetImages",
166+
)
167+
parser.add_argument(
168+
"--enable_viz_image_cv2",
169+
dest="viz_image_cv2",
170+
action="store_true",
171+
default=False,
172+
)
173+
parser.add_argument("--race_tier", type=int, choices=[1, 2, 3], default=1)
110174

111175
args = parser.parse_args()
112-
main(args)
176+
main(args)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from utils import AirSimSettingsCreator
22

3-
AirSimSettingsCreator().write_airsim_neurips_baseline_settings_file()
3+
AirSimSettingsCreator().write_airsim_neurips_baseline_settings_file()

baselines/utils.py

Lines changed: 59 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,39 +3,49 @@
33
import numpy as np
44
import os
55

6+
67
def to_airsim_vector(np_arr):
78
assert np.size(np_arr) == 3
8-
return airsim.Vector3r(np.float(np_arr[0]), np.float(np_arr[1]), np.float(np_arr[2]))
9+
return airsim.Vector3r(
10+
np.float(np_arr[0]), np.float(np_arr[1]), np.float(np_arr[2])
11+
)
12+
913

1014
def to_airsim_vectors(np_arr):
1115
return [to_airsim_vector(np_arr[i, :]) for i in range(np.size(np_arr, 0))]
1216

17+
1318
# these clases are only meant to be settings generator.
1419
# for everything else, there's airsimdroneracinglab.Pose()
15-
class Position():
16-
def __init__(self, x = 0.0, y = 0.0, z = 0.0):
20+
class Position:
21+
def __init__(self, x=0.0, y=0.0, z=0.0):
1722
self.x = x
1823
self.y = y
1924
self.z = z
2025

21-
class Rotation():
22-
def __init__(self, yaw = 0.0, pitch = 0.0, roll = 0.0):
26+
27+
class Rotation:
28+
def __init__(self, yaw=0.0, pitch=0.0, roll=0.0):
2329
self.yaw = yaw
2430
self.pitch = pitch
2531
self.roll = roll
2632

27-
class Pose():
33+
34+
class Pose:
2835
def __init__(self, position, rotation):
2936
self.position = position
3037
self.rotation = rotation
3138

39+
3240
class AirSimSettingsCreator(object):
33-
def __init__(self, sim_mode = "Multirotor"):
41+
def __init__(self, sim_mode="Multirotor"):
3442
self.sim_mode = sim_mode
3543
self.settings_dict = {}
3644

3745
def add_minimal(self):
38-
self.settings_dict["SeeDocsAt"] = "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md"
46+
self.settings_dict[
47+
"SeeDocsAt"
48+
] = "https://github.com/Microsoft/AirSim/blob/master/docs/settings.md"
3949
self.settings_dict["SettingsVersion"] = 1.2
4050
self.settings_dict["SimMode"] = self.sim_mode
4151
self.settings_dict["ClockSpeed"] = 1
@@ -50,28 +60,37 @@ def set_pose(self, setting_key, pose):
5060
setting_key["Yaw"] = pose.rotation.yaw
5161

5262
def add_multirotor(self, vehicle_name, pose):
53-
assert(self.settings_dict["SimMode"] == "Multirotor")
63+
assert self.settings_dict["SimMode"] == "Multirotor"
5464
if "Vehicles" not in self.settings_dict.keys():
55-
self.settings_dict['Vehicles'] = {}
65+
self.settings_dict["Vehicles"] = {}
5666

57-
self.settings_dict['Vehicles'][vehicle_name] = {}
58-
self.settings_dict['Vehicles'][vehicle_name]["VehicleType"] = "SimpleFlight"
59-
self.set_pose(self.settings_dict['Vehicles'][vehicle_name], pose)
67+
self.settings_dict["Vehicles"][vehicle_name] = {}
68+
self.settings_dict["Vehicles"][vehicle_name]["VehicleType"] = "SimpleFlight"
69+
self.set_pose(self.settings_dict["Vehicles"][vehicle_name], pose)
6070

61-
def add_camera(self, vehicle_name, camera_name, relative_pose, image_type, image_width, image_height, fov_horizontal_degrees):
71+
def add_camera(
72+
self,
73+
vehicle_name,
74+
camera_name,
75+
relative_pose,
76+
image_type,
77+
image_width,
78+
image_height,
79+
fov_horizontal_degrees,
80+
):
6281
# fetch vehicle setting dict
63-
vehicle_setting = self.settings_dict['Vehicles'][vehicle_name]
64-
# initialize vehicle's camera setting dict to empty
65-
vehicle_setting['Cameras'] = {}
66-
vehicle_setting['Cameras'][camera_name] = {}
67-
camera_setting = vehicle_setting['Cameras'][camera_name]
82+
vehicle_setting = self.settings_dict["Vehicles"][vehicle_name]
83+
# initialize vehicle's camera setting dict to empty
84+
vehicle_setting["Cameras"] = {}
85+
vehicle_setting["Cameras"][camera_name] = {}
86+
camera_setting = vehicle_setting["Cameras"][camera_name]
6887
self.set_pose(camera_setting, relative_pose)
6988
capture_setting = {}
70-
capture_setting['Width'] = image_width
71-
capture_setting['Height'] = image_height
72-
capture_setting['ImageType'] = image_type
73-
capture_setting['FOV_Degrees'] = fov_horizontal_degrees
74-
camera_setting['CaptureSettings'] = [capture_setting]
89+
capture_setting["Width"] = image_width
90+
capture_setting["Height"] = image_height
91+
capture_setting["ImageType"] = image_type
92+
capture_setting["FOV_Degrees"] = fov_horizontal_degrees
93+
camera_setting["CaptureSettings"] = [capture_setting]
7594

7695
# default linux: /home/$USER/Documents/AirSim/settings.json
7796
# default windows: C:\\Users\\%USERNAME%\\Documents\\AirSim\\settings.json
@@ -88,8 +107,19 @@ def write_airsim_settings_file(self, base_filename="settings.json"):
88107
def write_airsim_neurips_baseline_settings_file(self):
89108
instance = self.__class__()
90109
instance.add_minimal()
91-
instance.add_multirotor(vehicle_name = "drone_1", pose = Pose(Position(), Rotation()))
92-
instance.add_camera(vehicle_name = "drone_1", camera_name = 'fpv_cam', relative_pose=Pose(Position(0.25, 0.0, 0.0), Rotation()),
93-
image_type = 0, image_width = 320, image_height = 240, fov_horizontal_degrees = 90)
94-
instance.add_multirotor(vehicle_name = "drone_2", pose = Pose(Position(), Rotation()))
95-
instance.write_airsim_settings_file()
110+
instance.add_multirotor(
111+
vehicle_name="drone_1", pose=Pose(Position(), Rotation())
112+
)
113+
instance.add_camera(
114+
vehicle_name="drone_1",
115+
camera_name="fpv_cam",
116+
relative_pose=Pose(Position(0.25, 0.0, 0.0), Rotation()),
117+
image_type=0,
118+
image_width=320,
119+
image_height=240,
120+
fov_horizontal_degrees=90,
121+
)
122+
instance.add_multirotor(
123+
vehicle_name="drone_2", pose=Pose(Position(), Rotation())
124+
)
125+
instance.write_airsim_settings_file()

0 commit comments

Comments
 (0)