From ec2a35832ce0fe9538b6f452389413a228e561a0 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Sun, 28 Sep 2025 12:46:30 +0800 Subject: [PATCH 01/26] =?UTF-8?q?=E5=AE=8C=E6=88=90=E9=80=89=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/drone/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drone/README.md b/src/drone/README.md index 44ed492a75..a977c11ab4 100644 --- a/src/drone/README.md +++ b/src/drone/README.md @@ -1 +1,2 @@ -无人机 \ No newline at end of file +无人机 飞行器感知 + From beb314cddfe3cfddae44baeda29bca83e8e15c91 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 20 Oct 2025 09:26:10 +0800 Subject: [PATCH 02/26] =?UTF-8?q?=E7=BB=99=E4=BB=A3=E7=A0=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "src/hello_car\346\263\250\351\207\212.py" | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 "src/hello_car\346\263\250\351\207\212.py" diff --git "a/src/hello_car\346\263\250\351\207\212.py" "b/src/hello_car\346\263\250\351\207\212.py" new file mode 100644 index 0000000000..93215ac126 --- /dev/null +++ "b/src/hello_car\346\263\250\351\207\212.py" @@ -0,0 +1,93 @@ +import setup_path +import airsim +import cv2 +import numpy as np +import os +import time +import tempfile + +# 连接到 AirSim 模拟器 +client = airsim.CarClient() +client.confirmConnection() # 确认连接成功 +client.enableApiControl(True) # 启用 API 控制权(由代码控制车辆) +print("API Control enabled: %s" % client.isApiControlEnabled()) +car_controls = airsim.CarControls() # 创建车辆控制对象 + +# 在临时目录中保存图片 +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_car") +print ("Saving images to %s" % tmp_dir) +try: + os.makedirs(tmp_dir) # 尝试创建目录 +except OSError: + if not os.path.isdir(tmp_dir): + raise # 如果不是目录且创建失败,抛出异常 + +for idx in range(3): + # 获取车辆状态 + car_state = client.getCarState() + print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) + + # 前进(直行) + car_controls.throttle = 0.5 # 油门,范围通常 [-1,1] + car_controls.steering = 0 # 方向盘归中 + client.setCarControls(car_controls) # 发送控制指令 + print("Go Forward") + time.sleep(3) # 等待 3 秒,让车辆行驶一段时间 + + # 前进并向右转 + car_controls.throttle = 0.5 + car_controls.steering = 1 # 向右打满方向(具体取值范围视环境而定) + client.setCarControls(car_controls) + print("Go Forward, steer right") + time.sleep(3) # 等待 3 秒 + + # 倒车 + car_controls.throttle = -0.5 # 反向油门用于倒车 + car_controls.is_manual_gear = True + car_controls.manual_gear = -1 # 手动档设置到倒档 + car_controls.steering = 0 + client.setCarControls(car_controls) + print("Go reverse, steer right") + time.sleep(3) # 等待 3 秒 + # 还原变速器到自动模式 + car_controls.is_manual_gear = False + car_controls.manual_gear = 0 + + # 刹车 + car_controls.brake = 1 + client.setCarControls(car_controls) + print("Apply brakes") + time.sleep(3) # 等待 3 秒(完全刹停) + car_controls.brake = 0 # 释放刹车 + + # 从车辆摄像头获取多种类型的图像 + responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), # 深度可视化图像(深度伪彩) + airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), # 透视投影的深度图(以浮点数形式返回) + airsim.ImageRequest("1", airsim.ImageType.Scene), # 场景图像(压缩的 png 格式) + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)]) # 场景图像(未压缩的 RGB 数组) + print('Retrieved images: %d' % len(responses)) + + for response_idx, response in enumerate(responses): + filename = os.path.join(tmp_dir, f"{idx}_{response.image_type}_{response_idx}") + + if response.pixels_as_float: + # 当图像以浮点数像素返回(例如透视深度)时,写入 PFM 文件 + 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 压缩格式 + # 当图像数据为压缩的二进制(如 PNG)时,直接写入文件 + 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: # 未压缩的原始数组(RGB) + # 将字节数组转换为 numpy 数组并 reshape 成 H x W x 3,然后用 OpenCV 保存 + print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8))) + img1d = np.fromstring(response.image_data_uint8, dtype=np.uint8) # 将字节流转成 numpy 一维数组 + img_rgb = img1d.reshape(response.height, response.width, 3) # 重构为 HxWx3 的 RGB 图像 + cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # 保存为 PNG 文件 + +# 恢复到初始状态(重置模拟器) +client.reset() + +# 释放 API 控制权,由用户/手动控制接管 +client.enableApiControl(False) \ No newline at end of file From 67db6f822615537fc4a0a0e96fa5bc8cff52692d Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 20 Oct 2025 10:45:47 +0800 Subject: [PATCH 03/26] =?UTF-8?q?=E4=BC=98=E5=8C=96airsim=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim/PythonClient/LICENSE | 12 + src/airsim/PythonClient/PythonClient.pyproj | 134 ++ src/airsim/PythonClient/PythonClient.sln | 23 + src/airsim/PythonClient/README.md | 20 + src/airsim/PythonClient/airsim/__init__.py | 5 + .../__pycache__/__init__.cpython-313.pyc | Bin 0 -> 277 bytes .../airsim/__pycache__/client.cpython-313.pyc | Bin 0 -> 83297 bytes .../airsim/__pycache__/types.cpython-313.pyc | Bin 0 -> 37624 bytes .../airsim/__pycache__/utils.cpython-313.pyc | Bin 0 -> 9381 bytes src/airsim/PythonClient/airsim/client.py | 1621 +++++++++++++++++ src/airsim/PythonClient/airsim/pfm.py | 85 + src/airsim/PythonClient/airsim/types.py | 580 ++++++ src/airsim/PythonClient/airsim/utils.py | 208 +++ src/airsim/PythonClient/build_api_docs.sh | 4 + .../__pycache__/setup_path.cpython-313.pyc | Bin 0 -> 3101 bytes src/airsim/PythonClient/car/car_collision.py | 39 + src/airsim/PythonClient/car/car_lidar.py | 95 + src/airsim/PythonClient/car/car_monitor.py | 26 + .../PythonClient/car/car_stress_test.py | 51 + .../PythonClient/car/car_time_of_day.py | 79 + .../PythonClient/car/distance_sensor_multi.py | 49 + src/airsim/PythonClient/car/drive_straight.py | 51 + src/airsim/PythonClient/car/hello_car.py | 116 ++ .../PythonClient/car/multi_agent_car.py | 122 ++ .../PythonClient/car/pause_continue_car.py | 32 + src/airsim/PythonClient/car/pause_test.py | 35 + src/airsim/PythonClient/car/reset_test_car.py | 28 + src/airsim/PythonClient/car/runtime_car.py | 75 + src/airsim/PythonClient/car/setup_path.py | 52 + .../capture_ir_segmentation.py | 257 +++ .../create_ir_segmentation_map.py | 212 +++ .../computer_vision/cv_capture.py | 55 + .../PythonClient/computer_vision/cv_mode.py | 64 + .../computer_vision/cv_navigate.py | 273 +++ .../computer_vision/external_camera.py | 102 ++ .../computer_vision/fov_change.py | 53 + .../PythonClient/computer_vision/getpos.py | 17 + .../computer_vision/ground_truth.py | 25 + .../computer_vision/image_benchmarker.py | 155 ++ .../PythonClient/computer_vision/objects.py | 72 + .../computer_vision/seg_palette.py | 48 + .../computer_vision/segmentation.py | 63 + .../computer_vision/setup_path.py | 52 + .../PythonClient/detection/detection.py | 43 + .../PythonClient/detection/setup_path.py | 52 + src/airsim/PythonClient/docs/Makefile | 19 + src/airsim/PythonClient/docs/conf.py | 205 +++ src/airsim/PythonClient/docs/index.rst | 42 + src/airsim/PythonClient/docs/make.bat | 35 + .../environment/change_texture_example.py | 7 + .../environment/create_objects.py | 32 + .../PythonClient/environment/light_control.py | 23 + .../PythonClient/environment/plot_markers.py | 63 + .../environment/sample_texture.jpg | Bin 0 -> 1101411 bytes .../PythonClient/environment/setup_path.py | 52 + .../environment/unreal_console_commands.py | 29 + .../PythonClient/environment/weather.py | 34 + .../eventcamera_sim/event_simulator.py | 157 ++ .../eventcamera_sim/test_event_sim.py | 112 ++ .../imitation_learning/Cooking.py | 225 +++ .../imitation_learning/Generator.py | 342 ++++ .../PythonClient/imitation_learning/README.md | 49 + .../imitation_learning/cook_data.py | 38 + .../imitation_learning/drive_model.py | 76 + .../imitation_learning/setup_path.py | 52 + .../imitation_learning/train_model.py | 94 + src/airsim/PythonClient/multirotor/Error.wav | Bin 0 -> 331108 bytes .../PythonClient/multirotor/add_drone.py | 46 + src/airsim/PythonClient/multirotor/arm.py | 6 + src/airsim/PythonClient/multirotor/box.py | 48 + .../PythonClient/multirotor/clock_speed.py | 36 + src/airsim/PythonClient/multirotor/disarm.py | 5 + .../PythonClient/multirotor/drone_lidar.py | 93 + .../multirotor/drone_stress_test.py | 21 + .../multirotor/external_physics_engine.py | 34 + src/airsim/PythonClient/multirotor/gimbal.py | 25 + .../PythonClient/multirotor/hello_drone.py | 90 + .../multirotor/high_res_camera.py | 61 + .../multirotor/kinect_publisher.py | 225 +++ src/airsim/PythonClient/multirotor/land.py | 17 + .../PythonClient/multirotor/line_of_sight.py | 34 + .../multirotor/manual_mode_demo.py | 28 + .../multirotor/multi_agent_drone.py | 103 ++ .../PythonClient/multirotor/navigate.py | 98 + .../PythonClient/multirotor/opencv_show.py | 75 + src/airsim/PythonClient/multirotor/orbit.py | 241 +++ src/airsim/PythonClient/multirotor/params.txt | 5 + src/airsim/PythonClient/multirotor/path.py | 56 + .../multirotor/pause_continue_drone.py | 33 + .../PythonClient/multirotor/point_cloud.py | 63 + .../multirotor/reset_test_drone.py | 23 + .../sensorframe_lidar_pointcloud.py | 105 ++ src/airsim/PythonClient/multirotor/set_fog.py | 33 + .../PythonClient/multirotor/set_trace_line.py | 46 + .../PythonClient/multirotor/set_wind.py | 35 + .../PythonClient/multirotor/setup_path.py | 52 + src/airsim/PythonClient/multirotor/speaker.py | 36 + .../PythonClient/multirotor/stability_test.py | 90 + src/airsim/PythonClient/multirotor/state.py | 20 + src/airsim/PythonClient/multirotor/survey.py | 99 + src/airsim/PythonClient/multirotor/takeoff.py | 48 + .../PythonClient/multirotor/teleport.py | 20 + .../vehicleframe_lidar_pointcloud.py | 93 + .../PythonClient/multirotor/wav_reader.py | 158 ++ .../reinforcement_learning/airgym/__init__.py | 9 + .../airgym/envs/__init__.py | 4 + .../airgym/envs/airsim_env.py | 31 + .../airgym/envs/car_env.py | 148 ++ .../airgym/envs/drone_env.py | 164 ++ .../reinforcement_learning/dqn_car.py | 67 + .../reinforcement_learning/dqn_drone.py | 70 + .../reinforcement_learning/setup_path.py | 52 + src/airsim/PythonClient/requirements.txt | 4 + src/airsim/PythonClient/setup.py | 26 + src/airsim/PythonClient/update_package.bat | 8 + 115 files changed, 9655 insertions(+) create mode 100644 src/airsim/PythonClient/LICENSE create mode 100644 src/airsim/PythonClient/PythonClient.pyproj create mode 100644 src/airsim/PythonClient/PythonClient.sln create mode 100644 src/airsim/PythonClient/README.md create mode 100644 src/airsim/PythonClient/airsim/__init__.py create mode 100644 src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc create mode 100644 src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc create mode 100644 src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc create mode 100644 src/airsim/PythonClient/airsim/__pycache__/utils.cpython-313.pyc create mode 100644 src/airsim/PythonClient/airsim/client.py create mode 100644 src/airsim/PythonClient/airsim/pfm.py create mode 100644 src/airsim/PythonClient/airsim/types.py create mode 100644 src/airsim/PythonClient/airsim/utils.py create mode 100644 src/airsim/PythonClient/build_api_docs.sh create mode 100644 src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc create mode 100644 src/airsim/PythonClient/car/car_collision.py create mode 100644 src/airsim/PythonClient/car/car_lidar.py create mode 100644 src/airsim/PythonClient/car/car_monitor.py create mode 100644 src/airsim/PythonClient/car/car_stress_test.py create mode 100644 src/airsim/PythonClient/car/car_time_of_day.py create mode 100644 src/airsim/PythonClient/car/distance_sensor_multi.py create mode 100644 src/airsim/PythonClient/car/drive_straight.py create mode 100644 src/airsim/PythonClient/car/hello_car.py create mode 100644 src/airsim/PythonClient/car/multi_agent_car.py create mode 100644 src/airsim/PythonClient/car/pause_continue_car.py create mode 100644 src/airsim/PythonClient/car/pause_test.py create mode 100644 src/airsim/PythonClient/car/reset_test_car.py create mode 100644 src/airsim/PythonClient/car/runtime_car.py create mode 100644 src/airsim/PythonClient/car/setup_path.py create mode 100644 src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py create mode 100644 src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py create mode 100644 src/airsim/PythonClient/computer_vision/cv_capture.py create mode 100644 src/airsim/PythonClient/computer_vision/cv_mode.py create mode 100644 src/airsim/PythonClient/computer_vision/cv_navigate.py create mode 100644 src/airsim/PythonClient/computer_vision/external_camera.py create mode 100644 src/airsim/PythonClient/computer_vision/fov_change.py create mode 100644 src/airsim/PythonClient/computer_vision/getpos.py create mode 100644 src/airsim/PythonClient/computer_vision/ground_truth.py create mode 100644 src/airsim/PythonClient/computer_vision/image_benchmarker.py create mode 100644 src/airsim/PythonClient/computer_vision/objects.py create mode 100644 src/airsim/PythonClient/computer_vision/seg_palette.py create mode 100644 src/airsim/PythonClient/computer_vision/segmentation.py create mode 100644 src/airsim/PythonClient/computer_vision/setup_path.py create mode 100644 src/airsim/PythonClient/detection/detection.py create mode 100644 src/airsim/PythonClient/detection/setup_path.py create mode 100644 src/airsim/PythonClient/docs/Makefile create mode 100644 src/airsim/PythonClient/docs/conf.py create mode 100644 src/airsim/PythonClient/docs/index.rst create mode 100644 src/airsim/PythonClient/docs/make.bat create mode 100644 src/airsim/PythonClient/environment/change_texture_example.py create mode 100644 src/airsim/PythonClient/environment/create_objects.py create mode 100644 src/airsim/PythonClient/environment/light_control.py create mode 100644 src/airsim/PythonClient/environment/plot_markers.py create mode 100644 src/airsim/PythonClient/environment/sample_texture.jpg create mode 100644 src/airsim/PythonClient/environment/setup_path.py create mode 100644 src/airsim/PythonClient/environment/unreal_console_commands.py create mode 100644 src/airsim/PythonClient/environment/weather.py create mode 100644 src/airsim/PythonClient/eventcamera_sim/event_simulator.py create mode 100644 src/airsim/PythonClient/eventcamera_sim/test_event_sim.py create mode 100644 src/airsim/PythonClient/imitation_learning/Cooking.py create mode 100644 src/airsim/PythonClient/imitation_learning/Generator.py create mode 100644 src/airsim/PythonClient/imitation_learning/README.md create mode 100644 src/airsim/PythonClient/imitation_learning/cook_data.py create mode 100644 src/airsim/PythonClient/imitation_learning/drive_model.py create mode 100644 src/airsim/PythonClient/imitation_learning/setup_path.py create mode 100644 src/airsim/PythonClient/imitation_learning/train_model.py create mode 100644 src/airsim/PythonClient/multirotor/Error.wav create mode 100644 src/airsim/PythonClient/multirotor/add_drone.py create mode 100644 src/airsim/PythonClient/multirotor/arm.py create mode 100644 src/airsim/PythonClient/multirotor/box.py create mode 100644 src/airsim/PythonClient/multirotor/clock_speed.py create mode 100644 src/airsim/PythonClient/multirotor/disarm.py create mode 100644 src/airsim/PythonClient/multirotor/drone_lidar.py create mode 100644 src/airsim/PythonClient/multirotor/drone_stress_test.py create mode 100644 src/airsim/PythonClient/multirotor/external_physics_engine.py create mode 100644 src/airsim/PythonClient/multirotor/gimbal.py create mode 100644 src/airsim/PythonClient/multirotor/hello_drone.py create mode 100644 src/airsim/PythonClient/multirotor/high_res_camera.py create mode 100644 src/airsim/PythonClient/multirotor/kinect_publisher.py create mode 100644 src/airsim/PythonClient/multirotor/land.py create mode 100644 src/airsim/PythonClient/multirotor/line_of_sight.py create mode 100644 src/airsim/PythonClient/multirotor/manual_mode_demo.py create mode 100644 src/airsim/PythonClient/multirotor/multi_agent_drone.py create mode 100644 src/airsim/PythonClient/multirotor/navigate.py create mode 100644 src/airsim/PythonClient/multirotor/opencv_show.py create mode 100644 src/airsim/PythonClient/multirotor/orbit.py create mode 100644 src/airsim/PythonClient/multirotor/params.txt create mode 100644 src/airsim/PythonClient/multirotor/path.py create mode 100644 src/airsim/PythonClient/multirotor/pause_continue_drone.py create mode 100644 src/airsim/PythonClient/multirotor/point_cloud.py create mode 100644 src/airsim/PythonClient/multirotor/reset_test_drone.py create mode 100644 src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py create mode 100644 src/airsim/PythonClient/multirotor/set_fog.py create mode 100644 src/airsim/PythonClient/multirotor/set_trace_line.py create mode 100644 src/airsim/PythonClient/multirotor/set_wind.py create mode 100644 src/airsim/PythonClient/multirotor/setup_path.py create mode 100644 src/airsim/PythonClient/multirotor/speaker.py create mode 100644 src/airsim/PythonClient/multirotor/stability_test.py create mode 100644 src/airsim/PythonClient/multirotor/state.py create mode 100644 src/airsim/PythonClient/multirotor/survey.py create mode 100644 src/airsim/PythonClient/multirotor/takeoff.py create mode 100644 src/airsim/PythonClient/multirotor/teleport.py create mode 100644 src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py create mode 100644 src/airsim/PythonClient/multirotor/wav_reader.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/dqn_car.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/dqn_drone.py create mode 100644 src/airsim/PythonClient/reinforcement_learning/setup_path.py create mode 100644 src/airsim/PythonClient/requirements.txt create mode 100644 src/airsim/PythonClient/setup.py create mode 100644 src/airsim/PythonClient/update_package.bat diff --git a/src/airsim/PythonClient/LICENSE b/src/airsim/PythonClient/LICENSE new file mode 100644 index 0000000000..521574b58f --- /dev/null +++ b/src/airsim/PythonClient/LICENSE @@ -0,0 +1,12 @@ +MSR Aerial Informatics and Robotics Platform +MSR Aerial Informatics and Robotics Simulator (AirSim) + +Copyright (c) Microsoft Corporation + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/src/airsim/PythonClient/PythonClient.pyproj b/src/airsim/PythonClient/PythonClient.pyproj new file mode 100644 index 0000000000..eb92b6b9e6 --- /dev/null +++ b/src/airsim/PythonClient/PythonClient.pyproj @@ -0,0 +1,134 @@ + + + + Debug + 2.0 + e2049e20-b6dd-474e-8bca-1c8dc54725aa + . + computer_vision\cv_capture.py + + + . + . + PythonClient + PythonClient + Global|ContinuumAnalytics|Anaconda36-64 + + + + + true + false + + + true + false + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + Code + + + + + + + Code + + + Code + + + Code + + + Code + + + Code + + + Code + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Code + + + + + + + + + + + + + Code + + + + + + + 10.0 + + + + + + + + + \ No newline at end of file diff --git a/src/airsim/PythonClient/PythonClient.sln b/src/airsim/PythonClient/PythonClient.sln new file mode 100644 index 0000000000..9e2a46adef --- /dev/null +++ b/src/airsim/PythonClient/PythonClient.sln @@ -0,0 +1,23 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.27428.2043 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "PythonClient", "PythonClient.pyproj", "{E2049E20-B6DD-474E-8BCA-1C8DC54725AA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {E2049E20-B6DD-474E-8BCA-1C8DC54725AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2049E20-B6DD-474E-8BCA-1C8DC54725AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {6D1D8A10-EB64-4019-BB38-93871124FD0C} + EndGlobalSection +EndGlobal diff --git a/src/airsim/PythonClient/README.md b/src/airsim/PythonClient/README.md new file mode 100644 index 0000000000..b9e32423db --- /dev/null +++ b/src/airsim/PythonClient/README.md @@ -0,0 +1,20 @@ +# Python API for AirSim + +This package contains Python APIs for [AirSim](https://github.com/microsoft/airsim). + +## How to Use +See examples at [car/hello_car.py](https://github.com/Microsoft/AirSim/blob/main/PythonClient/car/hello_car.py) or [multirotor/hello_drone.py](https://github.com/microsoft/AirSim/blob/main/PythonClient/multirotor/hello_drone.py). + +## Dependencies +This package depends on `msgpack` and would automatically install `msgpack-rpc-python` (this may need administrator/sudo prompt): +``` +pip install msgpack-rpc-python +``` + +Some examples also requires opencv. + +## More Info + +More information on AirSim Python APIs can be found at: +https://github.com/Microsoft/AirSim/blob/main/docs/python.md + diff --git a/src/airsim/PythonClient/airsim/__init__.py b/src/airsim/PythonClient/airsim/__init__.py new file mode 100644 index 0000000000..17f3acac11 --- /dev/null +++ b/src/airsim/PythonClient/airsim/__init__.py @@ -0,0 +1,5 @@ +from .client import * +from .utils import * +from .types import * + +__version__ = "1.8.1" diff --git a/src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fff12a9578297dc032502d4f9d8b3f7e886ac05f GIT binary patch literal 277 zcmey&%ge<81ZxDYB!vU%#~=<2FhLog)qsqt48aV+jNT09ObQSdBb>zqW-%2pr!#A^ zykrC_)?~cJs8z*ksAr*P=%>kYi!C`PGc~W|7HerqW=`=f){@GC)Z$y*@$qG;Ma7x< zdGYZp89sw-yA|wW72{u$0ThmL%q$Ad%+&=OqFbJsmy%zOLolGSBqKl18Ei*PVkXeY z+?e?I%)HE!_;|g7%3B;Zx%nxjIjMF<+(0`(4lEW15+9fu85!>|h~8lk0ip+dqK(`| HoIr5^m#9g! literal 0 HcmV?d00001 diff --git a/src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5cbdad49348e69c803140d7cca4b8e1722e37fc4 GIT binary patch literal 83297 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 UTCm>#;@4~6zx)#)GCaKhA4F!@PXGV_ literal 0 HcmV?d00001 diff --git a/src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..c139643fe44bb30c0fdf96f189bef3ee249eef58 GIT binary patch literal 37624 zcmeHw3v?7`c4j}NR;#6Msr3L!Km+2@;vwF~0zUvDKp-L15|$;Ib|bZn$a%*1wPcBgw9k3@}=o$O9FA<4;NOFmBK z>}L17x4NpUTO|YzbCR4*9qCrp{onV$_x|_4|6hMk78KYGxL$YNJY3XhF#HdCQLdcS z!{kM?!SI5?XYd*K8XAp)(L>Lsy(YoLce7yOyH&8xF)T9p%oPToWur+>E#xrH3S3Ti z?ndN9mtbRTF0i(4n=kKSvyjIaJ23fbT07$$z!j*te8v?5=TvbH#<_qi>dsNiC}3~dhe8th!g)&RRggRNlfN?=!Mu$7Em z4Q#CjTgBKlz^>I`=P`C2u_!cC0b@4-`;Z3fVeDpLAJ$+OGPVxbEgI}1 z#%=}n5e;@RV;=?fF%7nwv5y10O@m#+*zLgX&|sG`wjS7>8tgL0HUPUzgI&(p-N5eA zV7-iO1a_~=ku{9l2V9eiTfw+y;P$Jym5gfv?tqG0#kf}Bd@61=9bQ=Vt&j9%~3TB_F!TS8_Co{X>DCqfMa`p~!903_V6AZ`^b7Poh0J0032CgnEFg zh!~+N%w1L>`D!<8Or>g7l#3FC`zrkVECkz)iws?PN>DnL&+5zZ+w);Y`|-ka)y{vf(_x4C3bQs zDB1k}NMJDN_e+*z0YOA6ix>>|aTJlt@OY$_`nvA@v4NlM2!~LE?m$QoLxbH^qPTkKB$X-zhXj;bswMAg1x-{H*8z+g{=~Lu z!dd*Swu{vlI>$?wC-CQ7esx2_S$loi_o{Eiey`^J1M!1TB-V8#oE>pn$0Sl^b`ep- ziT}w8fENtyhF09OuWG|JV>9T9n)QZyVt&8ZEEFS>WC;lUqLg#=INe3+YLCYwxGBgU zi~0v;?vTne+K~>(M?}#9Flv}^y1(&-uYMtJs}jn9=utQm&jyOdZ1h)npgJy6c`;&Y zH@0e7j^g7|c-3t{jBLtjlLqLKh(ig~9!%rh00S#~_*`mWa9C6i$nQsT#FZLi)g@ z&61-}hz=@r^yWy`P%JnoO7@T#iioj5q$em@s7s{W{$MN+iwRPm-`^7sh$6UUE~*5^ zHur=@DK{ADiS`D2C3E!f5y^N|G9DADWb{|6$AkrVmF8x2mA3Rk1dFEuMh$;fSaddc z#(c+OsKS4YMcez$FWSzTgT-KD_y zbAOZ@Z}I)mIleoP*d2)XJahALAuh&}j}QN3?l5QPqa2XW8T0dwpF4}s*#CagO79}+ ziI=wJZL7_>W@z^22`;L;-R~ca_6~$z{GsA&!N_?Gue;=eQ77j&%ktj%0g7`ue zCCX=N4F(~Qy)p?({eF-(7V7a6K|_a!V?m4*nKv@d|w`*!v~W|DDdS27W!Z+2~J;u;OZ~*IzgsAgMt2F8}!X>mNl*X z&@)NKB#FcehJNEUldMj;{nw1b65vIOm6CI-uO}D@O0IOKs~J;H@u;n%hMzlKvQXc( zAh5eYk}eZ^6D8LalV2YkiVd`c1Cf9rm1zpo;7NsnKV)@sk44@l>gyNjlCy?p9|~gZ zJQkEHrk)!9 zCiHq@QI8rqAguPZgo6Pw=o!YpsvcKsVt8o44F-BwS9Yx#ge7QYYf&oPri>9g1tBVU zO|oHRJ{mlkvJho+DBtf-jnEjJwE9bfC;L?-?t?j$UwCeHGT-x&qv(#o;BKPvw4mAa zQL!iP@Z7N)91G>aga)N%ZxN4w!b-ddl!>q!K(Y-9(V?IaJ1IOwxH3|3h&Uw%kKctVvqvsf_@5Q>I0;*QrPC&p~57^7c|O1gM50 z4T2!AqhNIBM6r8x??m~WxTR#m=^EWVQBfJUlux)zM)ysWmW?*cNRCumcDh;S4$25- zdmgNt0Gm1bw56eIX4>{!VRshR3m5=nLLd}jyMZZ|CZNoQxq5_=ikku_>Vy44Fu1?3 z0kAhZDCIXq1?1}f6pN4x z#?O^(2Qh9$g>}Mh(vW{a8PL^ZmhTKHXL_HM1*yXoRs%acVMT=*`VGPy1YE<|al(Hr z5SFYb>6V&H3#Sn#{2D;!JQ{QEP$Yyow^XE51)cyIMfzHqKbKZKZ=Wcw__|$g{+AHc zjL~QmcLrXYUT>yL6~0U{^>os66hMF|AQl0TPI5vg5%|nvvR2AvQXGAfQ*CA-xe3H} zr^ucQr?1x0l*e-%JI`_Qd5+`YIZgr3aSC~kj2ihXbc3vQniu*3)V zuTbhM63Y6Ey(LO_t`~0eFgHpywg4!X+LdH3y;e?xe9L1RCqZKhUjBN2

tq^UpUKOHocN_ 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, msgpack decides to encode it as a string unfortunately. + result = self.client.call('simGetImage', camera_name, image_type, vehicle_name, external) + if (result == "" or result == "\0"): + return None + return result + +#camera control +#simGetImage returns compressed png in array of bytes +#image_type uses one of the ImageType members + def simGetImages(self, requests, vehicle_name = '', external = False): + """ + Get multiple images + + See https://microsoft.github.io/AirSim/image_apis/ for details and examples + + Args: + requests (list[ImageRequest]): Images required + vehicle_name (str, optional): Name of vehicle associated with the camera + external (bool, optional): Whether the camera is an External Camera + + Returns: + list[ImageResponse]: + """ + responses_raw = self.client.call('simGetImages', requests, vehicle_name, external) + return [ImageResponse.from_msgpack(response_raw) for response_raw in responses_raw] + + + +#CinemAirSim + def simGetPresetLensSettings(self, camera_name, vehicle_name = '', external = False): + result = self.client.call('simGetPresetLensSettings', camera_name, vehicle_name, external) + if (result == "" or result == "\0"): + return None + return result + + def simGetLensSettings(self, camera_name, vehicle_name = '', external = False): + result = self.client.call('simGetLensSettings', camera_name, vehicle_name, external) + if (result == "" or result == "\0"): + return None + return result + + def simSetPresetLensSettings(self, preset_lens_settings, camera_name, vehicle_name = '', external = False): + self.client.call("simSetPresetLensSettings", preset_lens_settings, camera_name, vehicle_name, external) + + def simGetPresetFilmbackSettings(self, camera_name, vehicle_name = '', external = False): + result = self.client.call('simGetPresetFilmbackSettings', camera_name, vehicle_name, external) + if (result == "" or result == "\0"): + return None + return result + + def simSetPresetFilmbackSettings(self, preset_filmback_settings, camera_name, vehicle_name = '', external = False): + self.client.call("simSetPresetFilmbackSettings", preset_filmback_settings, camera_name, vehicle_name, external) + + def simGetFilmbackSettings(self, camera_name, vehicle_name = '', external = False): + result = self.client.call('simGetFilmbackSettings', camera_name, vehicle_name, external) + if (result == "" or result == "\0"): + return None + return result + + def simSetFilmbackSettings(self, sensor_width, sensor_height, camera_name, vehicle_name = '', external = False): + return self.client.call("simSetFilmbackSettings", sensor_width, sensor_height, camera_name, vehicle_name, external) + + def simGetFocalLength(self, camera_name, vehicle_name = '', external = False): + return self.client.call("simGetFocalLength", camera_name, vehicle_name, external) + + def simSetFocalLength(self, focal_length, camera_name, vehicle_name = '', external = False): + self.client.call("simSetFocalLength", focal_length, camera_name, vehicle_name, external) + + def simEnableManualFocus(self, enable, camera_name, vehicle_name = '', external = False): + self.client.call("simEnableManualFocus", enable, camera_name, vehicle_name, external) + + def simGetFocusDistance(self, camera_name, vehicle_name = '', external = False): + return self.client.call("simGetFocusDistance", camera_name, vehicle_name, external) + + def simSetFocusDistance(self, focus_distance, camera_name, vehicle_name = '', external = False): + self.client.call("simSetFocusDistance", focus_distance, camera_name, vehicle_name, external) + + def simGetFocusAperture(self, camera_name, vehicle_name = '', external = False): + return self.client.call("simGetFocusAperture", camera_name, vehicle_name, external) + + def simSetFocusAperture(self, focus_aperture, camera_name, vehicle_name = '', external = False): + self.client.call("simSetFocusAperture", focus_aperture, camera_name, vehicle_name, external) + + def simEnableFocusPlane(self, enable, camera_name, vehicle_name = '', external = False): + self.client.call("simEnableFocusPlane", enable, camera_name, vehicle_name, external) + + def simGetCurrentFieldOfView(self, camera_name, vehicle_name = '', external = False): + return self.client.call("simGetCurrentFieldOfView", camera_name, vehicle_name, external) + +#End CinemAirSim + def simTestLineOfSightToPoint(self, point, vehicle_name = ''): + """ + Returns whether the target point is visible from the perspective of the inputted vehicle + + Args: + point (GeoPoint): target point + vehicle_name (str, optional): Name of vehicle + + Returns: + [bool]: Success + """ + return self.client.call('simTestLineOfSightToPoint', point, vehicle_name) + + def simTestLineOfSightBetweenPoints(self, point1, point2): + """ + Returns whether the target point is visible from the perspective of the source point + + Args: + point1 (GeoPoint): source point + point2 (GeoPoint): target point + + Returns: + [bool]: Success + """ + return self.client.call('simTestLineOfSightBetweenPoints', point1, point2) + + def simGetWorldExtents(self): + """ + Returns a list of GeoPoints representing the minimum and maximum extents of the world + + Returns: + list[GeoPoint] + """ + responses_raw = self.client.call('simGetWorldExtents') + return [GeoPoint.from_msgpack(response_raw) for response_raw in responses_raw] + + def simRunConsoleCommand(self, command): + """ + Allows the client to execute a command in Unreal's native console, via an API. + Affords access to the countless built-in commands such as "stat unit", "stat fps", "open [map]", adjust any config settings, etc. etc. + Allows the user to create bespoke APIs very easily, by adding a custom event to the level blueprint, and then calling the console command "ce MyEventName [args]". No recompilation of AirSim needed! + + Args: + command ([string]): Desired Unreal Engine Console command to run + + Returns: + [bool]: Success + """ + return self.client.call('simRunConsoleCommand', command) + +#gets the static meshes in the unreal scene + def simGetMeshPositionVertexBuffers(self): + """ + Returns the static meshes that make up the scene + + See https://microsoft.github.io/AirSim/meshes/ for details and how to use this + + Returns: + list[MeshPositionVertexBuffersResponse]: + """ + responses_raw = self.client.call('simGetMeshPositionVertexBuffers') + return [MeshPositionVertexBuffersResponse.from_msgpack(response_raw) for response_raw in responses_raw] + + def simGetCollisionInfo(self, vehicle_name = ''): + """ + Args: + vehicle_name (str, optional): Name of the Vehicle to get the info of + + Returns: + CollisionInfo: + """ + return CollisionInfo.from_msgpack(self.client.call('simGetCollisionInfo', vehicle_name)) + + def simSetVehiclePose(self, pose, ignore_collision, vehicle_name = ''): + """ + Set the pose of the vehicle + + If you don't want to change position (or orientation) then just set components of position (or orientation) to floating point nan values + + Args: + pose (Pose): Desired Pose pf the vehicle + ignore_collision (bool): Whether to ignore any collision or not + vehicle_name (str, optional): Name of the vehicle to move + """ + self.client.call('simSetVehiclePose', pose, ignore_collision, vehicle_name) + + def simGetVehiclePose(self, vehicle_name = ''): + """ + The position inside the returned Pose is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Name of the vehicle to get the Pose of + + Returns: + Pose: + """ + pose = self.client.call('simGetVehiclePose', vehicle_name) + return Pose.from_msgpack(pose) + + def simSetTraceLine(self, color_rgba, thickness=1.0, vehicle_name = ''): + """ + Modify the color and thickness of the line when Tracing is enabled + + Tracing can be enabled by pressing T in the Editor or setting `EnableTrace` to `True` in the Vehicle Settings + + Args: + color_rgba (list): desired RGBA values from 0.0 to 1.0 + thickness (float, optional): Thickness of the line + vehicle_name (string, optional): Name of the vehicle to set Trace line values for + """ + self.client.call('simSetTraceLine', color_rgba, thickness, vehicle_name) + + def simGetObjectPose(self, object_name): + """ + The position inside the returned Pose is in the world frame + + Args: + object_name (str): Object to get the Pose of + + Returns: + Pose: + """ + pose = self.client.call('simGetObjectPose', object_name) + return Pose.from_msgpack(pose) + + def simSetObjectPose(self, object_name, pose, teleport = True): + """ + Set the pose of the object(actor) in the environment + + The specified actor must have Mobility set to movable, otherwise there will be undefined behaviour. + See https://www.unrealengine.com/en-US/blog/moving-physical-objects for details on how to set Mobility and the effect of Teleport parameter + + Args: + object_name (str): Name of the object(actor) to move + pose (Pose): Desired Pose of the object + teleport (bool, optional): Whether to move the object immediately without affecting their velocity + + Returns: + bool: If the move was successful + """ + return self.client.call('simSetObjectPose', object_name, pose, teleport) + + def simGetObjectScale(self, object_name): + """ + Gets scale of an object in the world + + Args: + object_name (str): Object to get the scale of + + Returns: + airsim.Vector3r: Scale + """ + scale = self.client.call('simGetObjectScale', object_name) + return Vector3r.from_msgpack(scale) + + def simSetObjectScale(self, object_name, scale_vector): + """ + Sets scale of an object in the world + + Args: + object_name (str): Object to set the scale of + scale_vector (airsim.Vector3r): Desired scale of object + + Returns: + bool: True if scale change was successful + """ + return self.client.call('simSetObjectScale', object_name, scale_vector) + + def simListSceneObjects(self, name_regex = '.*'): + """ + Lists the objects present in the environment + + Default behaviour is to list all objects, regex can be used to return smaller list of matching objects or actors + + Args: + name_regex (str, optional): String to match actor names against, e.g. "Cylinder.*" + + Returns: + list[str]: List containing all the names + """ + return self.client.call('simListSceneObjects', name_regex) + + def simLoadLevel(self, level_name): + """ + Loads a level specified by its name + + Args: + level_name (str): Name of the level to load + + Returns: + bool: True if the level was successfully loaded + """ + return self.client.call('simLoadLevel', level_name) + + def simListAssets(self): + """ + Lists all the assets present in the Asset Registry + + Returns: + list[str]: Names of all the assets + """ + return self.client.call('simListAssets') + + def simSpawnObject(self, object_name, asset_name, pose, scale, physics_enabled=False, is_blueprint=False): + """Spawned selected object in the world + + Args: + object_name (str): Desired name of new object + asset_name (str): Name of asset(mesh) in the project database + pose (airsim.Pose): Desired pose of object + scale (airsim.Vector3r): Desired scale of object + physics_enabled (bool, optional): Whether to enable physics for the object + is_blueprint (bool, optional): Whether to spawn a blueprint or an actor + + Returns: + str: Name of spawned object, in case it had to be modified + """ + return self.client.call('simSpawnObject', object_name, asset_name, pose, scale, physics_enabled, is_blueprint) + + def simDestroyObject(self, object_name): + """Removes selected object from the world + + Args: + object_name (str): Name of object to be removed + + Returns: + bool: True if object is queued up for removal + """ + return self.client.call('simDestroyObject', object_name) + + def simSetSegmentationObjectID(self, mesh_name, object_id, is_name_regex = False): + """ + Set segmentation ID for specific objects + + See https://microsoft.github.io/AirSim/image_apis/#segmentation for details + + Args: + mesh_name (str): Name of the mesh to set the ID of (supports regex) + object_id (int): Object ID to be set, range 0-255 + + RBG values for IDs can be seen at https://microsoft.github.io/AirSim/seg_rgbs.txt + is_name_regex (bool, optional): Whether the mesh name is a regex + + Returns: + bool: If the mesh was found + """ + return self.client.call('simSetSegmentationObjectID', mesh_name, object_id, is_name_regex) + + def simGetSegmentationObjectID(self, mesh_name): + """ + Returns Object ID for the given mesh name + + Mapping of Object IDs to RGB values can be seen at https://microsoft.github.io/AirSim/seg_rgbs.txt + + Args: + mesh_name (str): Name of the mesh to get the ID of + """ + return self.client.call('simGetSegmentationObjectID', mesh_name) + + def simAddDetectionFilterMeshName(self, camera_name, image_type, mesh_name, vehicle_name = '', external = False): + """ + Add mesh name to detect in wild card format + + For example: simAddDetectionFilterMeshName("Car_*") will detect all instance named "Car_*" + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + image_type (ImageType): Type of image required + mesh_name (str): mesh name in wild card format + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + + """ + self.client.call('simAddDetectionFilterMeshName', camera_name, image_type, mesh_name, vehicle_name, external) + + def simSetDetectionFilterRadius(self, camera_name, image_type, radius_cm, vehicle_name = '', external = False): + """ + Set detection radius for all cameras + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + image_type (ImageType): Type of image required + radius_cm (int): Radius in [cm] + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + """ + self.client.call('simSetDetectionFilterRadius', camera_name, image_type, radius_cm, vehicle_name, external) + + def simClearDetectionMeshNames(self, camera_name, image_type, vehicle_name = '', external = False): + """ + Clear all mesh names from detection filter + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + image_type (ImageType): Type of image required + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + + """ + self.client.call('simClearDetectionMeshNames', camera_name, image_type, vehicle_name, external) + + def simGetDetections(self, camera_name, image_type, vehicle_name = '', external = False): + """ + Get current detections + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + image_type (ImageType): Type of image required + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + + Returns: + DetectionInfo array + """ + responses_raw = self.client.call('simGetDetections', camera_name, image_type, vehicle_name, external) + return [DetectionInfo.from_msgpack(response_raw) for response_raw in responses_raw] + + def simPrintLogMessage(self, message, message_param = "", severity = 0): + """ + Prints the specified message in the simulator's window. + + If message_param is supplied, then it's printed next to the message and in that case if this API is called with same message value + but different message_param again then previous line is overwritten with new line (instead of API creating new line on display). + + For example, `simPrintLogMessage("Iteration: ", to_string(i))` keeps updating same line on display when API is called with different values of i. + The valid values of severity parameter is 0 to 3 inclusive that corresponds to different colors. + + Args: + message (str): Message to be printed + message_param (str, optional): Parameter to be printed next to the message + severity (int, optional): Range 0-3, inclusive, corresponding to the severity of the message + """ + self.client.call('simPrintLogMessage', message, message_param, severity) + + def simGetCameraInfo(self, camera_name, vehicle_name = '', external=False): + """ + Get details about the camera + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + + Returns: + CameraInfo: + """ +#TODO : below str() conversion is only needed for legacy reason and should be removed in future + return CameraInfo.from_msgpack(self.client.call('simGetCameraInfo', str(camera_name), vehicle_name, external)) + + def simGetDistortionParams(self, camera_name, vehicle_name = '', external = False): + """ + Get camera distortion parameters + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + + Returns: + List (float): List of distortion parameter values corresponding to K1, K2, K3, P1, P2 respectively. + """ + + return self.client.call('simGetDistortionParams', str(camera_name), vehicle_name, external) + + def simSetDistortionParams(self, camera_name, distortion_params, vehicle_name = '', external = False): + """ + Set camera distortion parameters + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + distortion_params (dict): Dictionary of distortion param names and corresponding values + {"K1": 0.0, "K2": 0.0, "K3": 0.0, "P1": 0.0, "P2": 0.0} + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + """ + + for param_name, value in distortion_params.items(): + self.simSetDistortionParam(camera_name, param_name, value, vehicle_name, external) + + def simSetDistortionParam(self, camera_name, param_name, value, vehicle_name = '', external = False): + """ + Set single camera distortion parameter + + Args: + camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used + param_name (str): Name of distortion parameter + value (float): Value of distortion parameter + vehicle_name (str, optional): Vehicle which the camera is associated with + external (bool, optional): Whether the camera is an External Camera + """ + self.client.call('simSetDistortionParam', str(camera_name), param_name, value, vehicle_name, external) + + def simSetCameraPose(self, camera_name, pose, vehicle_name = '', external = False): + """ + - Control the pose of a selected camera + + Args: + camera_name (str): Name of the camera to be controlled + pose (Pose): Pose representing the desired position and orientation of the camera + vehicle_name (str, optional): Name of vehicle which the camera corresponds to + external (bool, optional): Whether the camera is an External Camera + """ +#TODO : below str() conversion is only needed for legacy reason and should be removed in future + self.client.call('simSetCameraPose', str(camera_name), pose, vehicle_name, external) + + def simSetCameraFov(self, camera_name, fov_degrees, vehicle_name = '', external = False): + """ + - Control the field of view of a selected camera + + Args: + camera_name (str): Name of the camera to be controlled + fov_degrees (float): Value of field of view in degrees + vehicle_name (str, optional): Name of vehicle which the camera corresponds to + external (bool, optional): Whether the camera is an External Camera + """ +#TODO : below str() conversion is only needed for legacy reason and should be removed in future + self.client.call('simSetCameraFov', str(camera_name), fov_degrees, vehicle_name, external) + + def simGetGroundTruthKinematics(self, vehicle_name = ''): + """ + Get Ground truth kinematics of the vehicle + + The position inside the returned KinematicsState is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Name of the vehicle + + Returns: + KinematicsState: Ground truth of the vehicle + """ + kinematics_state = self.client.call('simGetGroundTruthKinematics', vehicle_name) + return KinematicsState.from_msgpack(kinematics_state) + simGetGroundTruthKinematics.__annotations__ = {'return': KinematicsState} + + def simSetKinematics(self, state, ignore_collision, vehicle_name = ''): + """ + Set the kinematics state of the vehicle + + If you don't want to change position (or orientation) then just set components of position (or orientation) to floating point nan values + + Args: + state (KinematicsState): Desired Pose pf the vehicle + ignore_collision (bool): Whether to ignore any collision or not + vehicle_name (str, optional): Name of the vehicle to move + """ + self.client.call('simSetKinematics', state, ignore_collision, vehicle_name) + + def simGetGroundTruthEnvironment(self, vehicle_name = ''): + """ + Get ground truth environment state + + The position inside the returned EnvironmentState is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Name of the vehicle + + Returns: + EnvironmentState: Ground truth environment state + """ + env_state = self.client.call('simGetGroundTruthEnvironment', vehicle_name) + return EnvironmentState.from_msgpack(env_state) + simGetGroundTruthEnvironment.__annotations__ = {'return': EnvironmentState} + + +#sensor APIs + def getImuData(self, imu_name = '', vehicle_name = ''): + """ + Args: + imu_name (str, optional): Name of IMU to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + ImuData: + """ + return ImuData.from_msgpack(self.client.call('getImuData', imu_name, vehicle_name)) + + def getBarometerData(self, barometer_name = '', vehicle_name = ''): + """ + Args: + barometer_name (str, optional): Name of Barometer to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + BarometerData: + """ + return BarometerData.from_msgpack(self.client.call('getBarometerData', barometer_name, vehicle_name)) + + def getMagnetometerData(self, magnetometer_name = '', vehicle_name = ''): + """ + Args: + magnetometer_name (str, optional): Name of Magnetometer to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + MagnetometerData: + """ + return MagnetometerData.from_msgpack(self.client.call('getMagnetometerData', magnetometer_name, vehicle_name)) + + def getGpsData(self, gps_name = '', vehicle_name = ''): + """ + Args: + gps_name (str, optional): Name of GPS to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + GpsData: + """ + return GpsData.from_msgpack(self.client.call('getGpsData', gps_name, vehicle_name)) + + def getDistanceSensorData(self, distance_sensor_name = '', vehicle_name = ''): + """ + Args: + distance_sensor_name (str, optional): Name of Distance Sensor to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + DistanceSensorData: + """ + return DistanceSensorData.from_msgpack(self.client.call('getDistanceSensorData', distance_sensor_name, vehicle_name)) + + def getLidarData(self, lidar_name = '', vehicle_name = ''): + """ + Args: + lidar_name (str, optional): Name of Lidar to get data from, specified in settings.json + vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to + + Returns: + LidarData: + """ + return LidarData.from_msgpack(self.client.call('getLidarData', lidar_name, vehicle_name)) + + def simGetLidarSegmentation(self, lidar_name = '', vehicle_name = ''): + """ + NOTE: Deprecated API, use `getLidarData()` API instead + Returns Segmentation ID of each point's collided object in the last Lidar update + + Args: + lidar_name (str, optional): Name of Lidar sensor + vehicle_name (str, optional): Name of the vehicle wth the sensor + + Returns: + list[int]: Segmentation IDs of the objects + """ + logging.warning("simGetLidarSegmentation API is deprecated, use getLidarData() API instead") + return self.getLidarData(lidar_name, vehicle_name).segmentation + +#Plotting APIs + def simFlushPersistentMarkers(self): + """ + Clear any persistent markers - those plotted with setting `is_persistent=True` in the APIs below + """ + self.client.call('simFlushPersistentMarkers') + + def simPlotPoints(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], size = 10.0, duration = -1.0, is_persistent = False): + """ + Plot a list of 3D points in World NED frame + + Args: + points (list[Vector3r]): List of Vector3r objects + color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 + size (float, optional): Size of plotted point + duration (float, optional): Duration (seconds) to plot for + is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. + """ + self.client.call('simPlotPoints', points, color_rgba, size, duration, is_persistent) + + def simPlotLineStrip(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, duration = -1.0, is_persistent = False): + """ + Plots a line strip in World NED frame, defined from points[0] to points[1], points[1] to points[2], ... , points[n-2] to points[n-1] + + Args: + points (list[Vector3r]): List of 3D locations of line start and end points, specified as Vector3r objects + color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 + thickness (float, optional): Thickness of line + duration (float, optional): Duration (seconds) to plot for + is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. + """ + self.client.call('simPlotLineStrip', points, color_rgba, thickness, duration, is_persistent) + + def simPlotLineList(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, duration = -1.0, is_persistent = False): + """ + Plots a line strip in World NED frame, defined from points[0] to points[1], points[2] to points[3], ... , points[n-2] to points[n-1] + + Args: + points (list[Vector3r]): List of 3D locations of line start and end points, specified as Vector3r objects. Must be even + color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 + thickness (float, optional): Thickness of line + duration (float, optional): Duration (seconds) to plot for + is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. + """ + self.client.call('simPlotLineList', points, color_rgba, thickness, duration, is_persistent) + + def simPlotArrows(self, points_start, points_end, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, arrow_size = 2.0, duration = -1.0, is_persistent = False): + """ + Plots a list of arrows in World NED frame, defined from points_start[0] to points_end[0], points_start[1] to points_end[1], ... , points_start[n-1] to points_end[n-1] + + Args: + points_start (list[Vector3r]): List of 3D start positions of arrow start positions, specified as Vector3r objects + points_end (list[Vector3r]): List of 3D end positions of arrow start positions, specified as Vector3r objects + color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 + thickness (float, optional): Thickness of line + arrow_size (float, optional): Size of arrow head + duration (float, optional): Duration (seconds) to plot for + is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. + """ + self.client.call('simPlotArrows', points_start, points_end, color_rgba, thickness, arrow_size, duration, is_persistent) + + + def simPlotStrings(self, strings, positions, scale = 5, color_rgba=[1.0, 0.0, 0.0, 1.0], duration = -1.0): + """ + Plots a list of strings at desired positions in World NED frame. + + Args: + strings (list[String], optional): List of strings to plot + positions (list[Vector3r]): List of positions where the strings should be plotted. Should be in one-to-one correspondence with the strings' list + scale (float, optional): Font scale of transform name + color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 + duration (float, optional): Duration (seconds) to plot for + """ + self.client.call('simPlotStrings', strings, positions, scale, color_rgba, duration) + + def simPlotTransforms(self, poses, scale = 5.0, thickness = 5.0, duration = -1.0, is_persistent = False): + """ + Plots a list of transforms in World NED frame. + + Args: + poses (list[Pose]): List of Pose objects representing the transforms to plot + scale (float, optional): Length of transforms' axes + thickness (float, optional): Thickness of transforms' axes + duration (float, optional): Duration (seconds) to plot for + is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. + """ + self.client.call('simPlotTransforms', poses, scale, thickness, duration, is_persistent) + + def simPlotTransformsWithNames(self, poses, names, tf_scale = 5.0, tf_thickness = 5.0, text_scale = 10.0, text_color_rgba = [1.0, 0.0, 0.0, 1.0], duration = -1.0): + """ + Plots a list of transforms with their names in World NED frame. + + Args: + poses (list[Pose]): List of Pose objects representing the transforms to plot + names (list[string]): List of strings with one-to-one correspondence to list of poses + tf_scale (float, optional): Length of transforms' axes + tf_thickness (float, optional): Thickness of transforms' axes + text_scale (float, optional): Font scale of transform name + text_color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 for the transform name + duration (float, optional): Duration (seconds) to plot for + """ + self.client.call('simPlotTransformsWithNames', poses, names, tf_scale, tf_thickness, text_scale, text_color_rgba, duration) + + def cancelLastTask(self, vehicle_name = ''): + """ + Cancel previous Async task + + Args: + vehicle_name (str, optional): Name of the vehicle + """ + self.client.call('cancelLastTask', vehicle_name) + +#Recording APIs + def startRecording(self): + """ + Start Recording + + Recording will be done according to the settings + """ + self.client.call('startRecording') + + def stopRecording(self): + """ + Stop Recording + """ + self.client.call('stopRecording') + + def isRecording(self): + """ + Whether Recording is running or not + + Returns: + bool: True if Recording, else False + """ + return self.client.call('isRecording') + + def simSetWind(self, wind): + """ + Set simulated wind, in World frame, NED direction, m/s + + Args: + wind (Vector3r): Wind, in World frame, NED direction, in m/s + """ + self.client.call('simSetWind', wind) + + def simCreateVoxelGrid(self, position, x, y, z, res, of): + """ + Construct and save a binvox-formatted voxel grid of environment + + Args: + position (Vector3r): Position around which voxel grid is centered in m + x, y, z (int): Size of each voxel grid dimension in m + res (float): Resolution of voxel grid in m + of (str): Name of output file to save voxel grid as + + Returns: + bool: True if output written to file successfully, else False + """ + return self.client.call('simCreateVoxelGrid', position, x, y, z, res, of) + +#Add new vehicle via RPC + def simAddVehicle(self, vehicle_name, vehicle_type, pose, pawn_path = ""): + """ + Create vehicle at runtime + + Args: + vehicle_name (str): Name of the vehicle being created + vehicle_type (str): Type of vehicle, e.g. "simpleflight" + pose (Pose): Initial pose of the vehicle + pawn_path (str, optional): Vehicle blueprint path, default empty wbich uses the default blueprint for the vehicle type + + Returns: + bool: Whether vehicle was created + """ + return self.client.call('simAddVehicle', vehicle_name, vehicle_type, pose, pawn_path) + + def listVehicles(self): + """ + Lists the names of current vehicles + + Returns: + list[str]: List containing names of all vehicles + """ + return self.client.call('listVehicles') + + def getSettingsString(self): + """ + Fetch the settings text being used by AirSim + + Returns: + str: Settings text in JSON format + """ + return self.client.call('getSettingsString') + +#----------------------------------- Multirotor APIs --------------------------------------------- +class MultirotorClient(VehicleClient, object): + def __init__(self, ip = "", port = 41451, timeout_value = 3600): + super(MultirotorClient, self).__init__(ip, port, timeout_value) + + def takeoffAsync(self, timeout_sec = 20, vehicle_name = ''): + """ + Takeoff vehicle to 3m above ground. Vehicle should not be moving when this API is used + + Args: + timeout_sec (int, optional): Timeout for the vehicle to reach desired altitude + vehicle_name (str, optional): Name of the vehicle to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('takeoff', timeout_sec, vehicle_name) + + def landAsync(self, timeout_sec = 60, vehicle_name = ''): + """ + Land the vehicle + + Args: + timeout_sec (int, optional): Timeout for the vehicle to land + vehicle_name (str, optional): Name of the vehicle to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('land', timeout_sec, vehicle_name) + + def goHomeAsync(self, timeout_sec = 3e+38, vehicle_name = ''): + """ + Return vehicle to Home i.e. Launch location + + Args: + timeout_sec (int, optional): Timeout for the vehicle to reach desired altitude + vehicle_name (str, optional): Name of the vehicle to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('goHome', timeout_sec, vehicle_name) + +#APIs for control + def moveByVelocityBodyFrameAsync(self, vx, vy, vz, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): + """ + Args: + vx (float): desired velocity in the X axis of the vehicle's local NED frame. + vy (float): desired velocity in the Y axis of the vehicle's local NED frame. + vz (float): desired velocity in the Z axis of the vehicle's local NED frame. + duration (float): Desired amount of time (seconds), to send this command for + drivetrain (DrivetrainType, optional): + yaw_mode (YawMode, optional): + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByVelocityBodyFrame', vx, vy, vz, duration, drivetrain, yaw_mode, vehicle_name) + + def moveByVelocityZBodyFrameAsync(self, vx, vy, z, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): + """ + Args: + vx (float): desired velocity in the X axis of the vehicle's local NED frame + vy (float): desired velocity in the Y axis of the vehicle's local NED frame + z (float): desired Z value (in local NED frame of the vehicle) + duration (float): Desired amount of time (seconds), to send this command for + drivetrain (DrivetrainType, optional): + yaw_mode (YawMode, optional): + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + + return self.client.call_async('moveByVelocityZBodyFrame', vx, vy, z, duration, drivetrain, yaw_mode, vehicle_name) + + def moveByAngleZAsync(self, pitch, roll, z, yaw, duration, vehicle_name = ''): + logging.warning("moveByAngleZAsync API is deprecated, use moveByRollPitchYawZAsync() API instead") + return self.client.call_async('moveByRollPitchYawZ', roll, -pitch, -yaw, z, duration, vehicle_name) + + def moveByAngleThrottleAsync(self, pitch, roll, throttle, yaw_rate, duration, vehicle_name = ''): + logging.warning("moveByAngleThrottleAsync API is deprecated, use moveByRollPitchYawrateThrottleAsync() API instead") + return self.client.call_async('moveByRollPitchYawrateThrottle', roll, -pitch, -yaw_rate, throttle, duration, vehicle_name) + + def moveByVelocityAsync(self, vx, vy, vz, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): + """ + Args: + vx (float): desired velocity in world (NED) X axis + vy (float): desired velocity in world (NED) Y axis + vz (float): desired velocity in world (NED) Z axis + duration (float): Desired amount of time (seconds), to send this command for + drivetrain (DrivetrainType, optional): + yaw_mode (YawMode, optional): + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByVelocity', vx, vy, vz, duration, drivetrain, yaw_mode, vehicle_name) + + def moveByVelocityZAsync(self, vx, vy, z, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): + return self.client.call_async('moveByVelocityZ', vx, vy, z, duration, drivetrain, yaw_mode, vehicle_name) + + def moveOnPathAsync(self, path, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), + lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): + return self.client.call_async('moveOnPath', path, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) + + def moveToPositionAsync(self, x, y, z, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), + lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): + return self.client.call_async('moveToPosition', x, y, z, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) + + def moveToGPSAsync(self, latitude, longitude, altitude, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), + lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): + return self.client.call_async('moveToGPS', latitude, longitude, altitude, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) + + def moveToZAsync(self, z, velocity, timeout_sec = 3e+38, yaw_mode = YawMode(), lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): + return self.client.call_async('moveToZ', z, velocity, timeout_sec, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) + + def moveByManualAsync(self, vx_max, vy_max, z_min, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): + """ + - Read current RC state and use it to control the vehicles. + + Parameters sets up the constraints on velocity and minimum altitude while flying. If RC state is detected to violate these constraints + then that RC state would be ignored. + + Args: + vx_max (float): max velocity allowed in x direction + vy_max (float): max velocity allowed in y direction + vz_max (float): max velocity allowed in z direction + z_min (float): min z allowed for vehicle position + duration (float): after this duration vehicle would switch back to non-manual mode + drivetrain (DrivetrainType): when ForwardOnly, vehicle rotates itself so that its front is always facing the direction of travel. If MaxDegreeOfFreedom then it doesn't do that (crab-like movement) + yaw_mode (YawMode): Specifies if vehicle should face at given angle (is_rate=False) or should be rotating around its axis at given rate (is_rate=True) + vehicle_name (str, optional): Name of the multirotor to send this command to + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByManual', vx_max, vy_max, z_min, duration, drivetrain, yaw_mode, vehicle_name) + + def rotateToYawAsync(self, yaw, timeout_sec = 3e+38, margin = 5, vehicle_name = ''): + return self.client.call_async('rotateToYaw', yaw, timeout_sec, margin, vehicle_name) + + def rotateByYawRateAsync(self, yaw_rate, duration, vehicle_name = ''): + return self.client.call_async('rotateByYawRate', yaw_rate, duration, vehicle_name) + + def hoverAsync(self, vehicle_name = ''): + return self.client.call_async('hover', vehicle_name) + + def moveByRC(self, rcdata = RCData(), vehicle_name = ''): + return self.client.call('moveByRC', rcdata, vehicle_name) + +#low - level control API + def moveByMotorPWMsAsync(self, front_right_pwm, rear_left_pwm, front_left_pwm, rear_right_pwm, duration, vehicle_name = ''): + """ + - Directly control the motors using PWM values + + Args: + front_right_pwm (float): PWM value for the front right motor (between 0.0 to 1.0) + rear_left_pwm (float): PWM value for the rear left motor (between 0.0 to 1.0) + front_left_pwm (float): PWM value for the front left motor (between 0.0 to 1.0) + rear_right_pwm (float): PWM value for the rear right motor (between 0.0 to 1.0) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByMotorPWMs', front_right_pwm, rear_left_pwm, front_left_pwm, rear_right_pwm, duration, vehicle_name) + + def moveByRollPitchYawZAsync(self, roll, pitch, yaw, z, duration, vehicle_name = ''): + """ + - z is given in local NED frame of the vehicle. + - Roll angle, pitch angle, and yaw angle set points are given in **radians**, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll (float): Desired roll angle, in radians. + pitch (float): Desired pitch angle, in radians. + yaw (float): Desired yaw angle, in radians. + z (float): Desired Z value (in local NED frame of the vehicle) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByRollPitchYawZ', roll, -pitch, -yaw, z, duration, vehicle_name) + + def moveByRollPitchYawThrottleAsync(self, roll, pitch, yaw, throttle, duration, vehicle_name = ''): + """ + - Desired throttle is between 0.0 to 1.0 + - Roll angle, pitch angle, and yaw angle are given in **degrees** when using PX4 and in **radians** when using SimpleFlight, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll (float): Desired roll angle. + pitch (float): Desired pitch angle. + yaw (float): Desired yaw angle. + throttle (float): Desired throttle (between 0.0 to 1.0) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByRollPitchYawThrottle', roll, -pitch, -yaw, throttle, duration, vehicle_name) + + def moveByRollPitchYawrateThrottleAsync(self, roll, pitch, yaw_rate, throttle, duration, vehicle_name = ''): + """ + - Desired throttle is between 0.0 to 1.0 + - Roll angle, pitch angle, and yaw rate set points are given in **radians**, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll (float): Desired roll angle, in radians. + pitch (float): Desired pitch angle, in radians. + yaw_rate (float): Desired yaw rate, in radian per second. + throttle (float): Desired throttle (between 0.0 to 1.0) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByRollPitchYawrateThrottle', roll, -pitch, -yaw_rate, throttle, duration, vehicle_name) + + def moveByRollPitchYawrateZAsync(self, roll, pitch, yaw_rate, z, duration, vehicle_name = ''): + """ + - z is given in local NED frame of the vehicle. + - Roll angle, pitch angle, and yaw rate set points are given in **radians**, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll (float): Desired roll angle, in radians. + pitch (float): Desired pitch angle, in radians. + yaw_rate (float): Desired yaw rate, in radian per second. + z (float): Desired Z value (in local NED frame of the vehicle) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByRollPitchYawrateZ', roll, -pitch, -yaw_rate, z, duration, vehicle_name) + + def moveByAngleRatesZAsync(self, roll_rate, pitch_rate, yaw_rate, z, duration, vehicle_name = ''): + """ + - z is given in local NED frame of the vehicle. + - Roll rate, pitch rate, and yaw rate set points are given in **radians**, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll_rate (float): Desired roll rate, in radians / second + pitch_rate (float): Desired pitch rate, in radians / second + yaw_rate (float): Desired yaw rate, in radians / second + z (float): Desired Z value (in local NED frame of the vehicle) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByAngleRatesZ', roll_rate, -pitch_rate, -yaw_rate, z, duration, vehicle_name) + + def moveByAngleRatesThrottleAsync(self, roll_rate, pitch_rate, yaw_rate, throttle, duration, vehicle_name = ''): + """ + - Desired throttle is between 0.0 to 1.0 + - Roll rate, pitch rate, and yaw rate set points are given in **radians**, in the body frame. + - The body frame follows the Front Left Up (FLU) convention, and right-handedness. + + - Frame Convention: + - X axis is along the **Front** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **roll** angle. + | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. + + - Y axis is along the **Left** direction of the quadrotor. + + | Clockwise rotation about this axis defines a positive **pitch** angle. + | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. + + - Z axis is along the **Up** direction. + + | Clockwise rotation about this axis defines a positive **yaw** angle. + | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. + + Args: + roll_rate (float): Desired roll rate, in radians / second + pitch_rate (float): Desired pitch rate, in radians / second + yaw_rate (float): Desired yaw rate, in radians / second + throttle (float): Desired throttle (between 0.0 to 1.0) + duration (float): Desired amount of time (seconds), to send this command for + vehicle_name (str, optional): Name of the multirotor to send this command to + + Returns: + msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() + """ + return self.client.call_async('moveByAngleRatesThrottle', roll_rate, -pitch_rate, -yaw_rate, throttle, duration, vehicle_name) + + def setAngleRateControllerGains(self, angle_rate_gains=AngleRateControllerGains(), vehicle_name = ''): + """ + - Modifying these gains will have an affect on *ALL* move*() APIs. + This is because any velocity setpoint is converted to an angle level setpoint which is tracked with an angle level controllers. + That angle level setpoint is itself tracked with and angle rate controller. + - This function should only be called if the default angle rate control PID gains need to be modified. + + Args: + angle_rate_gains (AngleRateControllerGains): + - Correspond to the roll, pitch, yaw axes, defined in the body frame. + - Pass AngleRateControllerGains() to reset gains to default recommended values. + vehicle_name (str, optional): Name of the multirotor to send this command to + """ + self.client.call('setAngleRateControllerGains', *(angle_rate_gains.to_lists()+(vehicle_name,))) + + def setAngleLevelControllerGains(self, angle_level_gains=AngleLevelControllerGains(), vehicle_name = ''): + """ + - Sets angle level controller gains (used by any API setting angle references - for ex: moveByRollPitchYawZAsync(), moveByRollPitchYawThrottleAsync(), etc) + - Modifying these gains will also affect the behaviour of moveByVelocityAsync() API. + This is because the AirSim flight controller will track velocity setpoints by converting them to angle set points. + - This function should only be called if the default angle level control PID gains need to be modified. + - Passing AngleLevelControllerGains() sets gains to default airsim values. + + Args: + angle_level_gains (AngleLevelControllerGains): + - Correspond to the roll, pitch, yaw axes, defined in the body frame. + - Pass AngleLevelControllerGains() to reset gains to default recommended values. + vehicle_name (str, optional): Name of the multirotor to send this command to + """ + self.client.call('setAngleLevelControllerGains', *(angle_level_gains.to_lists()+(vehicle_name,))) + + def setVelocityControllerGains(self, velocity_gains=VelocityControllerGains(), vehicle_name = ''): + """ + - Sets velocity controller gains for moveByVelocityAsync(). + - This function should only be called if the default velocity control PID gains need to be modified. + - Passing VelocityControllerGains() sets gains to default airsim values. + + Args: + velocity_gains (VelocityControllerGains): + - Correspond to the world X, Y, Z axes. + - Pass VelocityControllerGains() to reset gains to default recommended values. + - Modifying velocity controller gains will have an affect on the behaviour of moveOnSplineAsync() and moveOnSplineVelConstraintsAsync(), as they both use velocity control to track the trajectory. + vehicle_name (str, optional): Name of the multirotor to send this command to + """ + self.client.call('setVelocityControllerGains', *(velocity_gains.to_lists()+(vehicle_name,))) + + + def setPositionControllerGains(self, position_gains=PositionControllerGains(), vehicle_name = ''): + """ + Sets position controller gains for moveByPositionAsync. + This function should only be called if the default position control PID gains need to be modified. + + Args: + position_gains (PositionControllerGains): + - Correspond to the X, Y, Z axes. + - Pass PositionControllerGains() to reset gains to default recommended values. + vehicle_name (str, optional): Name of the multirotor to send this command to + """ + self.client.call('setPositionControllerGains', *(position_gains.to_lists()+(vehicle_name,))) + +#query vehicle state + def getMultirotorState(self, vehicle_name = ''): + """ + The position inside the returned MultirotorState is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Vehicle to get the state of + + Returns: + MultirotorState: + """ + return MultirotorState.from_msgpack(self.client.call('getMultirotorState', vehicle_name)) + getMultirotorState.__annotations__ = {'return': MultirotorState} +#query rotor states + def getRotorStates(self, vehicle_name = ''): + """ + Used to obtain the current state of all a multirotor's rotors. The state includes the speeds, + thrusts and torques for all rotors. + + Args: + vehicle_name (str, optional): Vehicle to get the rotor state of + + Returns: + RotorStates: Containing a timestamp and the speed, thrust and torque of all rotors. + """ + return RotorStates.from_msgpack(self.client.call('getRotorStates', vehicle_name)) + getRotorStates.__annotations__ = {'return': RotorStates} + +#----------------------------------- Car APIs --------------------------------------------- +class CarClient(VehicleClient, object): + def __init__(self, ip = "", port = 41451, timeout_value = 3600): + super(CarClient, self).__init__(ip, port, timeout_value) + + def setCarControls(self, controls, vehicle_name = ''): + """ + Control the car using throttle, steering, brake, etc. + + Args: + controls (CarControls): Struct containing control values + vehicle_name (str, optional): Name of vehicle to be controlled + """ + self.client.call('setCarControls', controls, vehicle_name) + + def getCarState(self, vehicle_name = ''): + """ + The position inside the returned CarState is in the frame of the vehicle's starting point + + Args: + vehicle_name (str, optional): Name of vehicle + + Returns: + CarState: + """ + state_raw = self.client.call('getCarState', vehicle_name) + return CarState.from_msgpack(state_raw) + + def getCarControls(self, vehicle_name=''): + """ + Args: + vehicle_name (str, optional): Name of vehicle + + Returns: + CarControls: + """ + controls_raw = self.client.call('getCarControls', vehicle_name) + return CarControls.from_msgpack(controls_raw) \ No newline at end of file diff --git a/src/airsim/PythonClient/airsim/pfm.py b/src/airsim/PythonClient/airsim/pfm.py new file mode 100644 index 0000000000..6f9f963a8a --- /dev/null +++ b/src/airsim/PythonClient/airsim/pfm.py @@ -0,0 +1,85 @@ +import numpy as np +import matplotlib.pyplot as plt +import re +import sys +import pdb + + +def read_pfm(file): + """ Read a pfm file """ + file = open(file, 'rb') + + color = None + width = None + height = None + scale = None + endian = None + + header = file.readline().rstrip() + header = str(bytes.decode(header, encoding='utf-8')) + if header == 'PF': + color = True + elif header == 'Pf': + color = False + else: + raise Exception('Not a PFM file.') + + pattern = r'^(\d+)\s(\d+)\s$' + temp_str = str(bytes.decode(file.readline(), encoding='utf-8')) + dim_match = re.match(pattern, temp_str) + if dim_match: + width, height = map(int, dim_match.groups()) + else: + temp_str += str(bytes.decode(file.readline(), encoding='utf-8')) + dim_match = re.match(pattern, temp_str) + if dim_match: + width, height = map(int, dim_match.groups()) + else: + raise Exception('Malformed PFM header: width, height cannot be found') + + scale = float(file.readline().rstrip()) + if scale < 0: # little-endian + endian = '<' + scale = -scale + else: + endian = '>' # big-endian + + data = np.fromfile(file, endian + 'f') + shape = (height, width, 3) if color else (height, width) + + data = np.reshape(data, shape) + # DEY: I don't know why this was there. + file.close() + + return data, scale + + +def write_pfm(file, image, scale=1): + """ Write a pfm file """ + file = open(file, 'wb') + + color = None + + if image.dtype.name != 'float32': + raise Exception('Image dtype must be float32.') + + if len(image.shape) == 3 and image.shape[2] == 3: # color image + color = True + elif len(image.shape) == 2 or len(image.shape) == 3 and image.shape[2] == 1: # greyscale + color = False + else: + raise Exception('Image must have H x W x 3, H x W x 1 or H x W dimensions.') + + file.write(bytes('PF\n', 'UTF-8') if color else bytes('Pf\n', 'UTF-8')) + temp_str = '%d %d\n' % (image.shape[1], image.shape[0]) + file.write(bytes(temp_str, 'UTF-8')) + + endian = image.dtype.byteorder + + if endian == '<' or endian == '=' and sys.byteorder == 'little': + scale = -scale + + temp_str = '%f\n' % scale + file.write(bytes(temp_str, 'UTF-8')) + + image.tofile(file) diff --git a/src/airsim/PythonClient/airsim/types.py b/src/airsim/PythonClient/airsim/types.py new file mode 100644 index 0000000000..7aef005549 --- /dev/null +++ b/src/airsim/PythonClient/airsim/types.py @@ -0,0 +1,580 @@ +from __future__ import print_function +import msgpackrpc #install as admin: pip install msgpack-rpc-python +import numpy as np #pip install numpy +import math + +class MsgpackMixin: + def __repr__(self): + from pprint import pformat + return "<" + type(self).__name__ + "> " + pformat(vars(self), indent=4, width=1) + + def to_msgpack(self, *args, **kwargs): + return self.__dict__ + + @classmethod + def from_msgpack(cls, encoded): + obj = cls() + #obj.__dict__ = {k.decode('utf-8'): (from_msgpack(v.__class__, v) if hasattr(v, "__dict__") else v) for k, v in encoded.items()} + obj.__dict__ = { k : (v if not isinstance(v, dict) else getattr(getattr(obj, k).__class__, "from_msgpack")(v)) for k, v in encoded.items()} + #return cls(**msgpack.unpack(encoded)) + return obj + +class _ImageType(type): + @property + def Scene(cls): + return 0 + def DepthPlanar(cls): + return 1 + def DepthPerspective(cls): + return 2 + def DepthVis(cls): + return 3 + def DisparityNormalized(cls): + return 4 + def Segmentation(cls): + return 5 + def SurfaceNormals(cls): + return 6 + def Infrared(cls): + return 7 + def OpticalFlow(cls): + return 8 + def OpticalFlowVis(cls): + return 9 + + def __getattr__(self, key): + if key == 'DepthPlanner': + print('\033[31m'+"DepthPlanner has been (correctly) renamed to DepthPlanar. Please use ImageType.DepthPlanar instead."+'\033[0m') + raise AttributeError + +class ImageType(metaclass=_ImageType): + Scene = 0 + DepthPlanar = 1 + DepthPerspective = 2 + DepthVis = 3 + DisparityNormalized = 4 + Segmentation = 5 + SurfaceNormals = 6 + Infrared = 7 + OpticalFlow = 8 + OpticalFlowVis = 9 + +class DrivetrainType: + MaxDegreeOfFreedom = 0 + ForwardOnly = 1 + +class LandedState: + Landed = 0 + Flying = 1 + +class WeatherParameter: + Rain = 0 + Roadwetness = 1 + Snow = 2 + RoadSnow = 3 + MapleLeaf = 4 + RoadLeaf = 5 + Dust = 6 + Fog = 7 + Enabled = 8 + +class Vector2r(MsgpackMixin): + x_val = 0.0 + y_val = 0.0 + + def __init__(self, x_val = 0.0, y_val = 0.0): + self.x_val = x_val + self.y_val = y_val + +class Vector3r(MsgpackMixin): + x_val = 0.0 + y_val = 0.0 + z_val = 0.0 + + def __init__(self, x_val = 0.0, y_val = 0.0, z_val = 0.0): + self.x_val = x_val + self.y_val = y_val + self.z_val = z_val + + @staticmethod + def nanVector3r(): + return Vector3r(np.nan, np.nan, np.nan) + + def containsNan(self): + return (math.isnan(self.x_val) or math.isnan(self.y_val) or math.isnan(self.z_val)) + + def __add__(self, other): + return Vector3r(self.x_val + other.x_val, self.y_val + other.y_val, self.z_val + other.z_val) + + def __sub__(self, other): + return Vector3r(self.x_val - other.x_val, self.y_val - other.y_val, self.z_val - other.z_val) + + def __truediv__(self, other): + if type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: + return Vector3r( self.x_val / other, self.y_val / other, self.z_val / other) + else: + raise TypeError('unsupported operand type(s) for /: %s and %s' % ( str(type(self)), str(type(other))) ) + + def __mul__(self, other): + if type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: + return Vector3r(self.x_val*other, self.y_val*other, self.z_val*other) + else: + raise TypeError('unsupported operand type(s) for *: %s and %s' % ( str(type(self)), str(type(other))) ) + + def dot(self, other): + if type(self) == type(other): + return self.x_val*other.x_val + self.y_val*other.y_val + self.z_val*other.z_val + else: + raise TypeError('unsupported operand type(s) for \'dot\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def cross(self, other): + if type(self) == type(other): + cross_product = np.cross(self.to_numpy_array(), other.to_numpy_array()) + return Vector3r(cross_product[0], cross_product[1], cross_product[2]) + else: + raise TypeError('unsupported operand type(s) for \'cross\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def get_length(self): + return ( self.x_val**2 + self.y_val**2 + self.z_val**2 )**0.5 + + def distance_to(self, other): + return ( (self.x_val-other.x_val)**2 + (self.y_val-other.y_val)**2 + (self.z_val-other.z_val)**2 )**0.5 + + def to_Quaternionr(self): + return Quaternionr(self.x_val, self.y_val, self.z_val, 0) + + def to_numpy_array(self): + return np.array([self.x_val, self.y_val, self.z_val], dtype=np.float32) + + def __iter__(self): + return iter((self.x_val, self.y_val, self.z_val)) + +class Quaternionr(MsgpackMixin): + w_val = 0.0 + x_val = 0.0 + y_val = 0.0 + z_val = 0.0 + + def __init__(self, x_val = 0.0, y_val = 0.0, z_val = 0.0, w_val = 1.0): + self.x_val = x_val + self.y_val = y_val + self.z_val = z_val + self.w_val = w_val + + @staticmethod + def nanQuaternionr(): + return Quaternionr(np.nan, np.nan, np.nan, np.nan) + + def containsNan(self): + return (math.isnan(self.w_val) or math.isnan(self.x_val) or math.isnan(self.y_val) or math.isnan(self.z_val)) + + def __add__(self, other): + if type(self) == type(other): + return Quaternionr( self.x_val+other.x_val, self.y_val+other.y_val, self.z_val+other.z_val, self.w_val+other.w_val ) + else: + raise TypeError('unsupported operand type(s) for +: %s and %s' % ( str(type(self)), str(type(other))) ) + + def __mul__(self, other): + if type(self) == type(other): + t, x, y, z = self.w_val, self.x_val, self.y_val, self.z_val + a, b, c, d = other.w_val, other.x_val, other.y_val, other.z_val + return Quaternionr( w_val = a*t - b*x - c*y - d*z, + x_val = b*t + a*x + d*y - c*z, + y_val = c*t + a*y + b*z - d*x, + z_val = d*t + z*a + c*x - b*y) + else: + raise TypeError('unsupported operand type(s) for *: %s and %s' % ( str(type(self)), str(type(other))) ) + + def __truediv__(self, other): + if type(other) == type(self): + return self * other.inverse() + elif type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: + return Quaternionr( self.x_val / other, self.y_val / other, self.z_val / other, self.w_val / other) + else: + raise TypeError('unsupported operand type(s) for /: %s and %s' % ( str(type(self)), str(type(other))) ) + + def dot(self, other): + if type(self) == type(other): + return self.x_val*other.x_val + self.y_val*other.y_val + self.z_val*other.z_val + self.w_val*other.w_val + else: + raise TypeError('unsupported operand type(s) for \'dot\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def cross(self, other): + if type(self) == type(other): + return (self * other - other * self) / 2 + else: + raise TypeError('unsupported operand type(s) for \'cross\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def outer_product(self, other): + if type(self) == type(other): + return ( self.inverse()*other - other.inverse()*self ) / 2 + else: + raise TypeError('unsupported operand type(s) for \'outer_product\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def rotate(self, other): + if type(self) == type(other): + if other.get_length() == 1: + return other * self * other.inverse() + else: + raise ValueError('length of the other Quaternionr must be 1') + else: + raise TypeError('unsupported operand type(s) for \'rotate\': %s and %s' % ( str(type(self)), str(type(other))) ) + + def conjugate(self): + return Quaternionr(-self.x_val, -self.y_val, -self.z_val, self.w_val) + + def star(self): + return self.conjugate() + + def inverse(self): + return self.star() / self.dot(self) + + def sgn(self): + return self/self.get_length() + + def get_length(self): + return ( self.x_val**2 + self.y_val**2 + self.z_val**2 + self.w_val**2 )**0.5 + + def to_numpy_array(self): + return np.array([self.x_val, self.y_val, self.z_val, self.w_val], dtype=np.float32) + + def __iter__(self): + return iter((self.x_val, self.y_val, self.z_val, self.w_val)) + +class Pose(MsgpackMixin): + position = Vector3r() + orientation = Quaternionr() + + def __init__(self, position_val = None, orientation_val = None): + position_val = position_val if position_val is not None else Vector3r() + orientation_val = orientation_val if orientation_val is not None else Quaternionr() + self.position = position_val + self.orientation = orientation_val + + @staticmethod + def nanPose(): + return Pose(Vector3r.nanVector3r(), Quaternionr.nanQuaternionr()) + + def containsNan(self): + return (self.position.containsNan() or self.orientation.containsNan()) + + def __iter__(self): + return iter((self.position, self.orientation)) + +class CollisionInfo(MsgpackMixin): + has_collided = False + normal = Vector3r() + impact_point = Vector3r() + position = Vector3r() + penetration_depth = 0.0 + time_stamp = 0.0 + object_name = "" + object_id = -1 + +class GeoPoint(MsgpackMixin): + latitude = 0.0 + longitude = 0.0 + altitude = 0.0 + +class YawMode(MsgpackMixin): + is_rate = True + yaw_or_rate = 0.0 + def __init__(self, is_rate = True, yaw_or_rate = 0.0): + self.is_rate = is_rate + self.yaw_or_rate = yaw_or_rate + +class RCData(MsgpackMixin): + timestamp = 0 + pitch, roll, throttle, yaw = (0.0,)*4 #init 4 variable to 0.0 + switch1, switch2, switch3, switch4 = (0,)*4 + switch5, switch6, switch7, switch8 = (0,)*4 + is_initialized = False + is_valid = False + def __init__(self, timestamp = 0, pitch = 0.0, roll = 0.0, throttle = 0.0, yaw = 0.0, switch1 = 0, + switch2 = 0, switch3 = 0, switch4 = 0, switch5 = 0, switch6 = 0, switch7 = 0, switch8 = 0, is_initialized = False, is_valid = False): + self.timestamp = timestamp + self.pitch = pitch + self.roll = roll + self.throttle = throttle + self.yaw = yaw + self.switch1 = switch1 + self.switch2 = switch2 + self.switch3 = switch3 + self.switch4 = switch4 + self.switch5 = switch5 + self.switch6 = switch6 + self.switch7 = switch7 + self.switch8 = switch8 + self.is_initialized = is_initialized + self.is_valid = is_valid + +class ImageRequest(MsgpackMixin): + camera_name = '0' + image_type = ImageType.Scene + pixels_as_float = False + compress = False + + def __init__(self, camera_name, image_type, pixels_as_float = False, compress = True): + # todo: in future remove str(), it's only for compatibility to pre v1.2 + self.camera_name = str(camera_name) + self.image_type = image_type + self.pixels_as_float = pixels_as_float + self.compress = compress + + +class ImageResponse(MsgpackMixin): + image_data_uint8 = np.uint8(0) + image_data_float = 0.0 + camera_position = Vector3r() + camera_orientation = Quaternionr() + time_stamp = np.uint64(0) + message = '' + pixels_as_float = 0.0 + compress = True + width = 0 + height = 0 + image_type = ImageType.Scene + +class CarControls(MsgpackMixin): + throttle = 0.0 + steering = 0.0 + brake = 0.0 + handbrake = False + is_manual_gear = False + manual_gear = 0 + gear_immediate = True + + def __init__(self, throttle = 0, steering = 0, brake = 0, + handbrake = False, is_manual_gear = False, manual_gear = 0, gear_immediate = True): + self.throttle = throttle + self.steering = steering + self.brake = brake + self.handbrake = handbrake + self.is_manual_gear = is_manual_gear + self.manual_gear = manual_gear + self.gear_immediate = gear_immediate + + + def set_throttle(self, throttle_val, forward): + if (forward): + self.is_manual_gear = False + self.manual_gear = 0 + self.throttle = abs(throttle_val) + else: + self.is_manual_gear = False + self.manual_gear = -1 + self.throttle = - abs(throttle_val) + +class KinematicsState(MsgpackMixin): + position = Vector3r() + orientation = Quaternionr() + linear_velocity = Vector3r() + angular_velocity = Vector3r() + linear_acceleration = Vector3r() + angular_acceleration = Vector3r() + +class EnvironmentState(MsgpackMixin): + position = Vector3r() + geo_point = GeoPoint() + gravity = Vector3r() + air_pressure = 0.0 + temperature = 0.0 + air_density = 0.0 + +class CarState(MsgpackMixin): + speed = 0.0 + gear = 0 + rpm = 0.0 + maxrpm = 0.0 + handbrake = False + collision = CollisionInfo() + kinematics_estimated = KinematicsState() + timestamp = np.uint64(0) + +class MultirotorState(MsgpackMixin): + collision = CollisionInfo() + kinematics_estimated = KinematicsState() + gps_location = GeoPoint() + timestamp = np.uint64(0) + landed_state = LandedState.Landed + rc_data = RCData() + ready = False + ready_message = "" + can_arm = False + +class RotorStates(MsgpackMixin): + timestamp = np.uint64(0) + rotors = [] + +class ProjectionMatrix(MsgpackMixin): + matrix = [] + +class CameraInfo(MsgpackMixin): + pose = Pose() + fov = -1 + proj_mat = ProjectionMatrix() + +class LidarData(MsgpackMixin): + point_cloud = 0.0 + time_stamp = np.uint64(0) + pose = Pose() + segmentation = 0 + +class ImuData(MsgpackMixin): + time_stamp = np.uint64(0) + orientation = Quaternionr() + angular_velocity = Vector3r() + linear_acceleration = Vector3r() + +class BarometerData(MsgpackMixin): + time_stamp = np.uint64(0) + altitude = Quaternionr() + pressure = Vector3r() + qnh = Vector3r() + +class MagnetometerData(MsgpackMixin): + time_stamp = np.uint64(0) + magnetic_field_body = Vector3r() + magnetic_field_covariance = 0.0 + +class GnssFixType(MsgpackMixin): + GNSS_FIX_NO_FIX = 0 + GNSS_FIX_TIME_ONLY = 1 + GNSS_FIX_2D_FIX = 2 + GNSS_FIX_3D_FIX = 3 + +class GnssReport(MsgpackMixin): + geo_point = GeoPoint() + eph = 0.0 + epv = 0.0 + velocity = Vector3r() + fix_type = GnssFixType() + time_utc = np.uint64(0) + +class GpsData(MsgpackMixin): + time_stamp = np.uint64(0) + gnss = GnssReport() + is_valid = False + +class DistanceSensorData(MsgpackMixin): + time_stamp = np.uint64(0) + distance = 0.0 + min_distance = 0.0 + max_distance = 0.0 + relative_pose = Pose() + +class Box2D(MsgpackMixin): + min = Vector2r() + max = Vector2r() + +class Box3D(MsgpackMixin): + min = Vector3r() + max = Vector3r() + +class DetectionInfo(MsgpackMixin): + name = '' + geo_point = GeoPoint() + box2D = Box2D() + box3D = Box3D() + relative_pose = Pose() + +class PIDGains(): + """ + Struct to store values of PID gains. Used to transmit controller gain values while instantiating + AngleLevel/AngleRate/Velocity/PositionControllerGains objects. + + Attributes: + kP (float): Proportional gain + kI (float): Integrator gain + kD (float): Derivative gain + """ + def __init__(self, kp, ki, kd): + self.kp = kp + self.ki = ki + self.kd = kd + + def to_list(self): + return [self.kp, self.ki, self.kd] + +class AngleRateControllerGains(): + """ + Struct to contain controller gains used by angle level PID controller + + Attributes: + roll_gains (PIDGains): kP, kI, kD for roll axis + pitch_gains (PIDGains): kP, kI, kD for pitch axis + yaw_gains (PIDGains): kP, kI, kD for yaw axis + """ + def __init__(self, roll_gains = PIDGains(0.25, 0, 0), + pitch_gains = PIDGains(0.25, 0, 0), + yaw_gains = PIDGains(0.25, 0, 0)): + self.roll_gains = roll_gains + self.pitch_gains = pitch_gains + self.yaw_gains = yaw_gains + + def to_lists(self): + return [self.roll_gains.kp, self.pitch_gains.kp, self.yaw_gains.kp], [self.roll_gains.ki, self.pitch_gains.ki, self.yaw_gains.ki], [self.roll_gains.kd, self.pitch_gains.kd, self.yaw_gains.kd] + +class AngleLevelControllerGains(): + """ + Struct to contain controller gains used by angle rate PID controller + + Attributes: + roll_gains (PIDGains): kP, kI, kD for roll axis + pitch_gains (PIDGains): kP, kI, kD for pitch axis + yaw_gains (PIDGains): kP, kI, kD for yaw axis + """ + def __init__(self, roll_gains = PIDGains(2.5, 0, 0), + pitch_gains = PIDGains(2.5, 0, 0), + yaw_gains = PIDGains(2.5, 0, 0)): + self.roll_gains = roll_gains + self.pitch_gains = pitch_gains + self.yaw_gains = yaw_gains + + def to_lists(self): + return [self.roll_gains.kp, self.pitch_gains.kp, self.yaw_gains.kp], [self.roll_gains.ki, self.pitch_gains.ki, self.yaw_gains.ki], [self.roll_gains.kd, self.pitch_gains.kd, self.yaw_gains.kd] + +class VelocityControllerGains(): + """ + Struct to contain controller gains used by velocity PID controller + + Attributes: + x_gains (PIDGains): kP, kI, kD for X axis + y_gains (PIDGains): kP, kI, kD for Y axis + z_gains (PIDGains): kP, kI, kD for Z axis + """ + def __init__(self, x_gains = PIDGains(0.2, 0, 0), + y_gains = PIDGains(0.2, 0, 0), + z_gains = PIDGains(2.0, 2.0, 0)): + self.x_gains = x_gains + self.y_gains = y_gains + self.z_gains = z_gains + + def to_lists(self): + return [self.x_gains.kp, self.y_gains.kp, self.z_gains.kp], [self.x_gains.ki, self.y_gains.ki, self.z_gains.ki], [self.x_gains.kd, self.y_gains.kd, self.z_gains.kd] + +class PositionControllerGains(): + """ + Struct to contain controller gains used by position PID controller + + Attributes: + x_gains (PIDGains): kP, kI, kD for X axis + y_gains (PIDGains): kP, kI, kD for Y axis + z_gains (PIDGains): kP, kI, kD for Z axis + """ + def __init__(self, x_gains = PIDGains(0.25, 0, 0), + y_gains = PIDGains(0.25, 0, 0), + z_gains = PIDGains(0.25, 0, 0)): + self.x_gains = x_gains + self.y_gains = y_gains + self.z_gains = z_gains + + def to_lists(self): + return [self.x_gains.kp, self.y_gains.kp, self.z_gains.kp], [self.x_gains.ki, self.y_gains.ki, self.z_gains.ki], [self.x_gains.kd, self.y_gains.kd, self.z_gains.kd] + +class MeshPositionVertexBuffersResponse(MsgpackMixin): + position = Vector3r() + orientation = Quaternionr() + vertices = 0.0 + indices = 0.0 + name = '' diff --git a/src/airsim/PythonClient/airsim/utils.py b/src/airsim/PythonClient/airsim/utils.py new file mode 100644 index 0000000000..7f866d7d0a --- /dev/null +++ b/src/airsim/PythonClient/airsim/utils.py @@ -0,0 +1,208 @@ +import numpy as np #pip install numpy +import math +import time +import sys +import os +import inspect +import types +import re +import logging + +from .types import * + + +def string_to_uint8_array(bstr): + return np.fromstring(bstr, np.uint8) + +def string_to_float_array(bstr): + return np.fromstring(bstr, np.float32) + +def list_to_2d_float_array(flst, width, height): + return np.reshape(np.asarray(flst, np.float32), (height, width)) + +def get_pfm_array(response): + return list_to_2d_float_array(response.image_data_float, response.width, response.height) + + +def get_public_fields(obj): + return [attr for attr in dir(obj) + if not (attr.startswith("_") + or inspect.isbuiltin(attr) + or inspect.isfunction(attr) + or inspect.ismethod(attr))] + + + +def to_dict(obj): + return dict([attr, getattr(obj, attr)] for attr in get_public_fields(obj)) + + +def to_str(obj): + return str(to_dict(obj)) + + +def write_file(filename, bstr): + """ + Write binary data to file. + Used for writing compressed PNG images + """ + with open(filename, 'wb') as afile: + afile.write(bstr) + +# helper method for converting getOrientation to roll/pitch/yaw +# https:#en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles + +def to_eularian_angles(q): + z = q.z_val + y = q.y_val + x = q.x_val + w = q.w_val + ysqr = y * y + + # roll (x-axis rotation) + t0 = +2.0 * (w*x + y*z) + t1 = +1.0 - 2.0*(x*x + ysqr) + roll = math.atan2(t0, t1) + + # pitch (y-axis rotation) + t2 = +2.0 * (w*y - z*x) + if (t2 > 1.0): + t2 = 1 + if (t2 < -1.0): + t2 = -1.0 + pitch = math.asin(t2) + + # yaw (z-axis rotation) + t3 = +2.0 * (w*z + x*y) + t4 = +1.0 - 2.0 * (ysqr + z*z) + yaw = math.atan2(t3, t4) + + return (pitch, roll, yaw) + + +def to_quaternion(pitch, roll, yaw): + t0 = math.cos(yaw * 0.5) + t1 = math.sin(yaw * 0.5) + t2 = math.cos(roll * 0.5) + t3 = math.sin(roll * 0.5) + t4 = math.cos(pitch * 0.5) + t5 = math.sin(pitch * 0.5) + + q = Quaternionr() + q.w_val = t0 * t2 * t4 + t1 * t3 * t5 #w + q.x_val = t0 * t3 * t4 - t1 * t2 * t5 #x + q.y_val = t0 * t2 * t5 + t1 * t3 * t4 #y + q.z_val = t1 * t2 * t4 - t0 * t3 * t5 #z + return q + + +def wait_key(message = ''): + ''' Wait for a key press on the console and return it. ''' + if message != '': + print (message) + + result = None + if os.name == 'nt': + import msvcrt + result = msvcrt.getch() + else: + import termios + fd = sys.stdin.fileno() + + oldterm = termios.tcgetattr(fd) + newattr = termios.tcgetattr(fd) + newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO + termios.tcsetattr(fd, termios.TCSANOW, newattr) + + try: + result = sys.stdin.read(1) + except IOError: + pass + finally: + termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm) + + return result + + +def read_pfm(file): + """ Read a pfm file """ + file = open(file, 'rb') + + color = None + width = None + height = None + scale = None + endian = None + + header = file.readline().rstrip() + header = str(bytes.decode(header, encoding='utf-8')) + if header == 'PF': + color = True + elif header == 'Pf': + color = False + else: + raise Exception('Not a PFM file.') + + temp_str = str(bytes.decode(file.readline(), encoding='utf-8')) + dim_match = re.match(r'^(\d+)\s(\d+)\s$', temp_str) + if dim_match: + width, height = map(int, dim_match.groups()) + else: + raise Exception('Malformed PFM header.') + + scale = float(file.readline().rstrip()) + if scale < 0: # little-endian + endian = '<' + scale = -scale + else: + endian = '>' # big-endian + + data = np.fromfile(file, endian + 'f') + shape = (height, width, 3) if color else (height, width) + + data = np.reshape(data, shape) + # DEY: I don't know why this was there. + file.close() + + return data, scale + + +def write_pfm(file, image, scale=1): + """ Write a pfm file """ + file = open(file, 'wb') + + color = None + + if image.dtype.name != 'float32': + raise Exception('Image dtype must be float32.') + + if len(image.shape) == 3 and image.shape[2] == 3: # color image + color = True + elif len(image.shape) == 2 or len(image.shape) == 3 and image.shape[2] == 1: # grayscale + color = False + else: + raise Exception('Image must have H x W x 3, H x W x 1 or H x W dimensions.') + + file.write('PF\n'.encode('utf-8') if color else 'Pf\n'.encode('utf-8')) + temp_str = '%d %d\n' % (image.shape[1], image.shape[0]) + file.write(temp_str.encode('utf-8')) + + endian = image.dtype.byteorder + + if endian == '<' or endian == '=' and sys.byteorder == 'little': + scale = -scale + + temp_str = '%f\n' % scale + file.write(temp_str.encode('utf-8')) + + image.tofile(file) + + +def write_png(filename, image): + """ image must be numpy array H X W X channels + """ + import cv2 # pip install opencv-python + + ret = cv2.imwrite(filename, image) + if not ret: + logging.error(f"Writing PNG file {filename} failed") diff --git a/src/airsim/PythonClient/build_api_docs.sh b/src/airsim/PythonClient/build_api_docs.sh new file mode 100644 index 0000000000..382c3122b7 --- /dev/null +++ b/src/airsim/PythonClient/build_api_docs.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +cd docs +make html diff --git a/src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc b/src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8bbf2e97b9f5ea8705393b9c8d38174a7639a888 GIT binary patch literal 3101 zcmcIm&2JM&6rc6S+KwF@$Kj(Pz!IV+n>bc!1r7+BB2YP`B#}+jO0l%s*c-FOS)184 z23iqLD6|Lg0U4x9gbE2F^}wOW{s}!K-BP1bZtaCzkde6d&8*j6r*8R>I#Ficyf^R7 z?EAeB*SovB5R9LCeqR{$A@nER*u&Ex>R$nI7o|{&n?l%HIn1%W3%l6r#_m065T#uG zDCIulvNW+L?MVi0bFKAAgA`DX6Fo2JZaUKvBh=7G^(=7jqBNqn!A%@?r#>!82(59`B2Qceop_4y zdg9j#c!^Q&yrL1WUd*coaqCJ^bYXfQ2~ep-kLmRNfdb}d)2s5&`#%7MKjVF8K-sXL5UiV7q5~~PBG4?_zUH-lGn+urhDT~ zK8+4N4$}?vSKqGc*~-~k-_S5;pC9?z-j#$On}tx531!#xw>3gepG(E{NwV^|9=s+zxwhTl@9e5wm zS`gT-r;(2L(+LbBEWqUSEv->4x3<@)CVzk`H6s5VJi0nzMq}%tSVt$)NMKGZ!VBNt ziF43{kC!2)Z-RTM4K|X^(q(g?3w7u$pzX4IGxVW%*XLTjU30xbzeC@jbJ>|O(s-zR z5WXX1zq;dh&?>cUq&xt0qw~UV2>6?)`NT$&7MX1WewTRdo9TIxpJp*Zcv;1|x^yj& zVNDFW7N%yeeQEK9r9!rpR|KtK2#bZ1mK9V@D6%YseLkz;xG<-yS`PTSA?Nc-7Q~s0 za!wIOifYkj3zj)CE_PWZ;6u2imHou?bwSk#uUt`eLx)a%RVO@HR4`Qbd?A;E8;Gwg zV+{z=O?c}GBxsps1%m{wPq3;7jVwWERQRZz&7NXS{T%xoR_6D$Do6+MA<);a!E^(? z>OsAGYmwoN$gmj^SNP|_$eo4nPj2=PJQ%(|{2+EewtD%=6|;Y0Wy;C>=INB#{~7Qa zZQ%N?>-R3!!lN7E(aoM{)nD;f!_J%L^<@>aaWfX1}MWBQ}XdKmqX zZ7(MN6PBYs#nAl_t%5quxh*%xaj$nEZhsB!d(DqMDd1MK3z E0f+!f3IG5A literal 0 HcmV?d00001 diff --git a/src/airsim/PythonClient/car/car_collision.py b/src/airsim/PythonClient/car/car_collision.py new file mode 100644 index 0000000000..f3b75374eb --- /dev/null +++ b/src/airsim/PythonClient/car/car_collision.py @@ -0,0 +1,39 @@ +import setup_path +import airsim + +import pprint +import time + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +car_controls = airsim.CarControls() + +client.reset() + +client.simPrintLogMessage("Hello", "345", 2) + +# go forward +car_controls.throttle = 0.5 +car_controls.steering = 0 +client.setCarControls(car_controls) + +while True: + # get state of the car + car_state = client.getCarState() + print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) + + collision_info = client.simGetCollisionInfo() + + if collision_info.has_collided: + print("Collision at pos %s, normal %s, impact pt %s, penetration %f, name %s, obj id %d" % ( + pprint.pformat(collision_info.position), + pprint.pformat(collision_info.normal), + pprint.pformat(collision_info.impact_point), + collision_info.penetration_depth, collision_info.object_name, collision_info.object_id)) + break + + time.sleep(0.1) + +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/car/car_lidar.py b/src/airsim/PythonClient/car/car_lidar.py new file mode 100644 index 0000000000..37b5844509 --- /dev/null +++ b/src/airsim/PythonClient/car/car_lidar.py @@ -0,0 +1,95 @@ +# Python client example to get Lidar data from a car +# + +import setup_path +import airsim + +import sys +import math +import time +import argparse +import pprint +import numpy + +# Makes the drone fly and get Lidar data +class LidarTest: + + def __init__(self): + + # connect to the AirSim simulator + self.client = airsim.CarClient() + self.client.confirmConnection() + self.client.enableApiControl(True) + self.car_controls = airsim.CarControls() + + def execute(self): + + for i in range(3): + + state = self.client.getCarState() + s = pprint.pformat(state) + #print("state: %s" % s) + + # go forward + self.car_controls.throttle = 0.5 + self.car_controls.steering = 0 + self.client.setCarControls(self.car_controls) + print("Go Forward") + time.sleep(3) # let car drive a bit + + # Go forward + steer right + self.car_controls.throttle = 0.5 + self.car_controls.steering = 1 + self.client.setCarControls(self.car_controls) + print("Go Forward, steer right") + time.sleep(3) # let car drive a bit + + airsim.wait_key('Press any key to get Lidar readings') + + for i in range(1,3): + lidarData = self.client.getLidarData(); + if (len(lidarData.point_cloud) < 3): + print("\tNo points received from Lidar data") + else: + points = self.parse_lidarData(lidarData) + print("\tReading %d: time_stamp: %d number_of_points: %d" % (i, lidarData.time_stamp, len(points))) + print("\t\tlidar position: %s" % (pprint.pformat(lidarData.pose.position))) + print("\t\tlidar orientation: %s" % (pprint.pformat(lidarData.pose.orientation))) + time.sleep(5) + + def parse_lidarData(self, data): + + # reshape array of floats to array of [X,Y,Z] + points = numpy.array(data.point_cloud, dtype=numpy.dtype('f4')) + points = numpy.reshape(points, (int(points.shape[0]/3), 3)) + + return points + + def write_lidarData_to_disk(self, points): + # TODO + print("not yet implemented") + + def stop(self): + + airsim.wait_key('Press any key to reset to original state') + + self.client.reset() + + self.client.enableApiControl(False) + print("Done!\n") + +# main +if __name__ == "__main__": + args = sys.argv + args.pop(0) + + arg_parser = argparse.ArgumentParser("Lidar.py makes car move and gets Lidar data") + + arg_parser.add_argument('-save-to-disk', type=bool, help="save Lidar data to disk", default=False) + + args = arg_parser.parse_args(args) + lidarTest = LidarTest() + try: + lidarTest.execute() + finally: + lidarTest.stop() diff --git a/src/airsim/PythonClient/car/car_monitor.py b/src/airsim/PythonClient/car/car_monitor.py new file mode 100644 index 0000000000..c82fef6d97 --- /dev/null +++ b/src/airsim/PythonClient/car/car_monitor.py @@ -0,0 +1,26 @@ +import setup_path +import airsim + +import cv2 #conda install opencv +import time + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +car_controls = airsim.CarControls() + +start = time.time() + +print("Time,Speed,Gear,PX,PY,PZ,OW,OX,OY,OZ") + +# monitor car state while you drive it manually. +while (cv2.waitKey(1) & 0xFF) == 0xFF: + # get state of the car + car_state = client.getCarState() + pos = car_state.kinematics_estimated.position + orientation = car_state.kinematics_estimated.orientation + milliseconds = (time.time() - start) * 1000 + print("%s,%d,%d,%f,%f,%f,%f,%f,%f,%f" % \ + (milliseconds, car_state.speed, car_state.gear, pos.x_val, pos.y_val, pos.z_val, + orientation.w_val, orientation.x_val, orientation.y_val, orientation.z_val)) + time.sleep(0.1) diff --git a/src/airsim/PythonClient/car/car_stress_test.py b/src/airsim/PythonClient/car/car_stress_test.py new file mode 100644 index 0000000000..e7bcf539ce --- /dev/null +++ b/src/airsim/PythonClient/car/car_stress_test.py @@ -0,0 +1,51 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +car_controls = airsim.CarControls() + +for idx in range(3000): + # get state of the car + car_state = client.getCarState() + print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) + + # go forward + car_controls.throttle = 0.5 + car_controls.steering = 0 + client.setCarControls(car_controls) + time.sleep(1) # let car drive a bit + + # Go forward + steer right + car_controls.throttle = 0.5 + car_controls.steering = 1 + client.setCarControls(car_controls) + time.sleep(1) # let car drive a bit + + # go reverse + car_controls.throttle = -0.5 + car_controls.is_manual_gear = True; + car_controls.manual_gear = -1 + car_controls.steering = 0 + client.setCarControls(car_controls) + time.sleep(1) # let car drive a bit + car_controls.is_manual_gear = False; # change back gear to auto + car_controls.manual_gear = 0 + + # apply breaks + car_controls.brake = 1 + client.setCarControls(car_controls) + time.sleep(1) # let car drive a bit + car_controls.brake = 0 #remove break + + #restore to original state + client.reset() + +client.enableApiControl(False) + + + diff --git a/src/airsim/PythonClient/car/car_time_of_day.py b/src/airsim/PythonClient/car/car_time_of_day.py new file mode 100644 index 0000000000..2ff7bf5888 --- /dev/null +++ b/src/airsim/PythonClient/car/car_time_of_day.py @@ -0,0 +1,79 @@ +# Python client example to change time-of-day using APIs +# + +import setup_path +import airsim + +import sys +import math +import time +import argparse +import pprint +import numpy + +# Changes time of the day and makes the car move around +class TimeOfDayTest: + + def __init__(self): + + # connect to the AirSim simulator + self.client = airsim.CarClient() + self.client.confirmConnection() + self.client.enableApiControl(True) + self.car_controls = airsim.CarControls() + + def execute(self): + + for i in range(8): + + # flip between specific time and default time + enabled = False + if (i % 2 == 0): + enabled = True + + self.setTimeOfDay(enabled, "2018-11-27 {}:00:00".format(8+ (i * 2))) + + # go forward + self.car_controls.throttle = 0.5 + self.car_controls.steering = 0 + self.client.setCarControls(self.car_controls) + print("Go Forward") + time.sleep(3) # let car drive a bit + + # Go forward + steer right + self.car_controls.throttle = 0.5 + self.car_controls.steering = 1 + self.client.setCarControls(self.car_controls) + print("Go Forward, steer right") + time.sleep(3) # let car drive a bit + + def setTimeOfDay(self, enabled, time_of_day): + if (enabled): + airsim.wait_key('Press any key to change time of day to [{}]'.format(time_of_day)) + self.client.simSetTimeOfDay(enabled, time_of_day) + else: + airsim.wait_key('Press any key to change time of day to default time') + self.client.simSetTimeOfDay(enabled) + + def stop(self): + + airsim.wait_key('Press any key to reset to original state') + + self.client.reset() + + self.client.enableApiControl(False) + print("Done!\n") + +# main +if __name__ == "__main__": + args = sys.argv + args.pop(0) + + arg_parser = argparse.ArgumentParser("TimeOfDay.py changes time of the day") + + args = arg_parser.parse_args(args) + timeOfDayTest = TimeOfDayTest() + try: + timeOfDayTest.execute() + finally: + timeOfDayTest.stop() diff --git a/src/airsim/PythonClient/car/distance_sensor_multi.py b/src/airsim/PythonClient/car/distance_sensor_multi.py new file mode 100644 index 0000000000..5e4660ba69 --- /dev/null +++ b/src/airsim/PythonClient/car/distance_sensor_multi.py @@ -0,0 +1,49 @@ +import airsim +import time + +''' +An example script showing usage of Distance sensor to measure distance between 2 Car vehicles +Settings - + +{ + "SettingsVersion": 1.2, + "SimMode": "Car", + "Vehicles": { + "Car1": { + "VehicleType": "PhysXCar", + "AutoCreate": true, + "Sensors": { + "Distance": { + "SensorType": 5, + "Enabled" : true, + "DrawDebugPoints": true + } + } + }, + "Car2": { + "VehicleType": "PhysXCar", + "AutoCreate": true, + "X": 10, "Y": 0, "Z": 0, + "Sensors": { + "Distance": { + "SensorType": 5, + "Enabled" : true, + "DrawDebugPoints": true + } + } + } + } +} + +Car2 is placed in front of Car 1 + +''' + +client = airsim.CarClient() +client.confirmConnection() + +while True: + data_car1 = client.getDistanceSensorData(vehicle_name="Car1") + data_car2 = client.getDistanceSensorData(vehicle_name="Car2") + print(f"Distance sensor data: Car1: {data_car1.distance}, Car2: {data_car2.distance}") + time.sleep(1.0) \ No newline at end of file diff --git a/src/airsim/PythonClient/car/drive_straight.py b/src/airsim/PythonClient/car/drive_straight.py new file mode 100644 index 0000000000..6783ef8038 --- /dev/null +++ b/src/airsim/PythonClient/car/drive_straight.py @@ -0,0 +1,51 @@ +import setup_path +import airsim + +#from keras.models import load_model +import sys +import numpy as np + +#if (len(sys.argv) != 2): +# print('usage: python drive.py ') +# sys.exit() + +#print('Loading model...') +#model = load_model(sys.argv[1]) + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +car_controls = airsim.CarControls() + +car_controls.steering = 0 +car_controls.throttle = 0 +car_controls.brake = 0 + +image_buf = np.zeros((1, 144, 256, 3)) +state_buf = np.zeros((1,4)) + +def get_image(): + image = client.simGetImages([airsim.ImageRequest("0", airsim.ImageType.Scene, False, False)])[0] + image1d = np.fromstring(image.image_data_uint8, dtype=np.uint8) + image_rgb = image1d.reshape(image.height, image.width, 3) + return image_rgb + +while (True): + car_state = client.getCarState() + + print('car speed: {0}'.format(car_state.speed)) + + if (car_state.speed < 20): + car_controls.throttle = 1.0 + else: + car_controls.throttle = 0.0 + + #state_buf[0] = np.array([car_controls.steering, car_controls.throttle, car_controls.brake, car_state.speed]) + #model_output = model.predict([image_buf, state_buf]) + #car_controls.steering = float(model_output[0][0]) + car_controls.steering = 0 + + print('Sending steering = {0}, throttle = {1}'.format(car_controls.steering, car_controls.throttle)) + + client.setCarControls(car_controls) \ No newline at end of file diff --git a/src/airsim/PythonClient/car/hello_car.py b/src/airsim/PythonClient/car/hello_car.py new file mode 100644 index 0000000000..d6c01728eb --- /dev/null +++ b/src/airsim/PythonClient/car/hello_car.py @@ -0,0 +1,116 @@ +import setup_path +import airsim +import cv2 +import numpy as np +import os +import time +import tempfile +from pathlib import Path + + +def setup_client(): + """初始化并配置 AirSim 客户端""" + client = airsim.CarClient() + client.confirmConnection() + client.enableApiControl(True) + print(f"API Control enabled: {client.isApiControlEnabled()}") + return client + + +def setup_image_directory(): + """创建图像保存目录""" + tmp_dir = Path(tempfile.gettempdir()) / "airsim_car" + tmp_dir.mkdir(parents=True, exist_ok=True) + print(f"Saving images to {tmp_dir}") + return tmp_dir + + +def execute_maneuver(client, throttle, steering, duration, gear_mode=None, description=""): + """执行单次驾驶操作""" + car_controls = airsim.CarControls() + car_controls.throttle = throttle + car_controls.steering = steering + + if gear_mode == "reverse": + car_controls.is_manual_gear = True + car_controls.manual_gear = -1 + + client.setCarControls(car_controls) + print(description) + time.sleep(duration) + + # 还原手动档 + if gear_mode == "reverse": + car_controls.is_manual_gear = False + car_controls.manual_gear = 0 + client.setCarControls(car_controls) + + +def apply_brake(client, duration=3): + """应用刹车""" + car_controls = airsim.CarControls() + car_controls.brake = 1 + client.setCarControls(car_controls) + print("Apply brakes") + time.sleep(duration) + + +def save_image(response, filename): + """根据图像类型保存图像""" + if response.pixels_as_float: + print(f"Type {response.image_type}, size {len(response.image_data_float)}") + airsim.write_pfm(f'{filename}.pfm', airsim.get_pfm_array(response)) + elif response.compress: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") + airsim.write_file(f'{filename}.png', response.image_data_uint8) + else: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") + img1d = np.frombuffer(response.image_data_uint8, dtype=np.uint8) + img_rgb = img1d.reshape(response.height, response.width, 3) + cv2.imwrite(f'{filename}.png', img_rgb) + + +def capture_images(client, tmp_dir, idx): + """捕获并保存多种类型的图像""" + responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), + airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), + airsim.ImageRequest("1", airsim.ImageType.Scene), + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False) + ]) + print(f'Retrieved images: {len(responses)}') + + for response_idx, response in enumerate(responses): + filename = tmp_dir / f"{idx}_{response.image_type}_{response_idx}" + save_image(response, str(filename)) + + +def main(): + """主函数""" + client = setup_client() + tmp_dir = setup_image_directory() + + try: + for idx in range(3): + # 获取车辆状态 + car_state = client.getCarState() + print(f"Speed {car_state.speed}, Gear {car_state.gear}") + + # 执行各种驾驶操作 + execute_maneuver(client, 0.5, 0, 3, description="Go Forward") + execute_maneuver(client, 0.5, 1, 3, description="Go Forward, steer right") + execute_maneuver(client, -0.5, 0, 3, gear_mode="reverse", description="Go reverse") + apply_brake(client) + + # 捕获图像 + capture_images(client, tmp_dir, idx) + + finally: + # 确保资源正确释放 + client.reset() + client.enableApiControl(False) + print("Control released and simulator reset") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/airsim/PythonClient/car/multi_agent_car.py b/src/airsim/PythonClient/car/multi_agent_car.py new file mode 100644 index 0000000000..d696d32dc1 --- /dev/null +++ b/src/airsim/PythonClient/car/multi_agent_car.py @@ -0,0 +1,122 @@ +import airsim +import cv2 +import numpy as np +import os +import setup_path +import time + +# Use below in settings.json with blocks environment +""" +{ + "SettingsVersion": 1.2, + "SimMode": "Car", + + "Vehicles": { + "Car1": { + "VehicleType": "PhysXCar", + "X": 4, "Y": 0, "Z": -2 + }, + "Car2": { + "VehicleType": "PhysXCar", + "X": -4, "Y": 0, "Z": -2 + } + + } +} +""" + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True, "Car1") +client.enableApiControl(True, "Car2") + +car_controls1 = airsim.CarControls() +car_controls2 = airsim.CarControls() + + +for idx in range(3): + # get state of the car + car_state1 = client.getCarState("Car1") + print("Car1: Speed %d, Gear %d" % (car_state1.speed, car_state1.gear)) + car_state2 = client.getCarState("Car2") + print("Car1: Speed %d, Gear %d" % (car_state2.speed, car_state2.gear)) + + # go forward + car_controls1.throttle = 0.5 + car_controls1.steering = 0.5 + client.setCarControls(car_controls1, "Car1") + print("Car1: Go Forward") + + car_controls2.throttle = 0.5 + car_controls2.steering = -0.5 + client.setCarControls(car_controls2, "Car2") + print("Car2: Go Forward") + time.sleep(3) # let car drive a bit + + + # go reverse + car_controls1.throttle = -0.5 + car_controls1.is_manual_gear = True; + car_controls1.manual_gear = -1 + car_controls1.steering = -0.5 + client.setCarControls(car_controls1, "Car1") + print("Car1: Go reverse, steer right") + car_controls1.is_manual_gear = False; # change back gear to auto + car_controls1.manual_gear = 0 + + car_controls2.throttle = -0.5 + car_controls2.is_manual_gear = True; + car_controls2.manual_gear = -1 + car_controls2.steering = 0.5 + client.setCarControls(car_controls2, "Car2") + print("Car2: Go reverse, steer right") + car_controls2.is_manual_gear = False; # change back gear to auto + car_controls2.manual_gear = 0 + time.sleep(3) # let car drive a bit + + + # apply breaks + car_controls1.brake = 1 + client.setCarControls(car_controls1, "Car1") + print("Car1: Apply break") + car_controls1.brake = 0 #remove break + + car_controls2.brake = 1 + client.setCarControls(car_controls2, "Car2") + print("Car2: Apply break") + car_controls2.brake = 0 #remove break + time.sleep(3) # let car drive a bit + + # get camera images from the car + responses1 = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], "Car1") #scene vision image in uncompressed RGB array + print('Car1: Retrieved images: %d' % (len(responses1))) + responses2 = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.Segmentation), #depth visualization image + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], "Car2") #scene vision image in uncompressed RGB array + print('Car2: Retrieved images: %d' % (len(responses2))) + + for response in responses1 + responses2: + filename = 'c:/temp/car_multi_py' + 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 3 channel image array H X W X 3 + cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png + +#restore to original state +client.reset() + +client.enableApiControl(False) + + + diff --git a/src/airsim/PythonClient/car/pause_continue_car.py b/src/airsim/PythonClient/car/pause_continue_car.py new file mode 100644 index 0000000000..6ea48076b0 --- /dev/null +++ b/src/airsim/PythonClient/car/pause_continue_car.py @@ -0,0 +1,32 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) + +car_controls = airsim.CarControls() + +for i in range(1, 6): + print("Starting command") + car_controls.throttle = 0.5 + car_controls.steering = 1 + client.setCarControls(car_controls) + time.sleep(5) #run + print("Pausing after 5sec") + client.simPause(True) + time.sleep(5) #paused + print("Restarting command to run for 10sec") + client.simContinueForTime(10) + time.sleep(20) + print("Finishing rest of the command") + client.simPause(False) + time.sleep(10) + print("Finished cycle") + + + + diff --git a/src/airsim/PythonClient/car/pause_test.py b/src/airsim/PythonClient/car/pause_test.py new file mode 100644 index 0000000000..e8791871a6 --- /dev/null +++ b/src/airsim/PythonClient/car/pause_test.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- + +import airsim +import time +import numpy as np + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +car_controls = airsim.CarControls() + +# set the controls for car +car_controls.throttle = -0.5 +car_controls.is_manual_gear = True +car_controls.manual_gear = -1 +client.setCarControls(car_controls) + +# let car drive a bit +time.sleep(10) + +client.simPause(True) +car_position1 = client.getCarState().kinematics_estimated.position +img_position1 = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.Scene)])[0].camera_position +print(f"Before pause position: {car_position1}") +print(f"Before pause diff: {car_position1.x_val - img_position1.x_val}, {car_position1.y_val - img_position1.y_val}, {car_position1.z_val - img_position1.z_val}") + +time.sleep(10) + +car_position2 = client.getCarState().kinematics_estimated.position +img_position2 = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.Scene)])[0].camera_position +print(f"After pause position: {car_position2}") +print(f"After pause diff: {car_position2.x_val - img_position2.x_val}, {car_position2.y_val - img_position2.y_val}, {car_position2.z_val - img_position2.z_val}") +client.simPause(False) diff --git a/src/airsim/PythonClient/car/reset_test_car.py b/src/airsim/PythonClient/car/reset_test_car.py new file mode 100644 index 0000000000..93b02b9825 --- /dev/null +++ b/src/airsim/PythonClient/car/reset_test_car.py @@ -0,0 +1,28 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) +car_controls = airsim.CarControls() + +# go forward +car_controls.throttle = 1 +car_controls.steering = 1 +client.setCarControls(car_controls) +print("Go Forward") +time.sleep(5) # let car drive a bit + +print("reset") +client.reset() +time.sleep(5) # let car drive a bit + +client.setCarControls(car_controls) +print("Go Forward") +time.sleep(5) # let car drive a bit + + diff --git a/src/airsim/PythonClient/car/runtime_car.py b/src/airsim/PythonClient/car/runtime_car.py new file mode 100644 index 0000000000..015cf90a42 --- /dev/null +++ b/src/airsim/PythonClient/car/runtime_car.py @@ -0,0 +1,75 @@ +import setup_path +import airsim +import time +import sys +import threading + + +def runSingleCar(id: int): + client = airsim.CarClient() + client.confirmConnection() + + vehicle_name = f"Car_{id}" + pose = airsim.Pose(airsim.Vector3r(0, 7*id, 0), + airsim.Quaternionr(0, 0, 0, 0)) + + print(f"Creating {vehicle_name}") + success = client.simAddVehicle(vehicle_name, "Physxcar", pose) + + if not success: + print(f"Falied to create {vehicle_name}") + return + + # Sleep for some time to wait for other vehicles to be created + time.sleep(1) + + # driveCar(vehicle_name, client) + print(f"Driving {vehicle_name} for a few secs...") + client.enableApiControl(True, vehicle_name) + + car_controls = airsim.CarControls() + + # go forward + car_controls.throttle = 0.5 + car_controls.steering = 0 + client.setCarControls(car_controls, vehicle_name) + time.sleep(3) # let car drive a bit + + # Go forward + steer right + car_controls.throttle = 0.5 + car_controls.steering = 1 + client.setCarControls(car_controls, vehicle_name) + time.sleep(3) + + # go reverse + car_controls.throttle = -0.5 + car_controls.is_manual_gear = True + car_controls.manual_gear = -1 + car_controls.steering = 0 + client.setCarControls(car_controls, vehicle_name) + time.sleep(3) + car_controls.is_manual_gear = False # change back gear to auto + car_controls.manual_gear = 0 + + # apply brakes + car_controls.brake = 1 + client.setCarControls(car_controls, vehicle_name) + time.sleep(3) + + +if __name__ == "__main__": + num_vehicles = 3 + + if len(sys.argv) == 2: + num_vehicles = int(sys.argv[1]) + + print(f"Creating {num_vehicles} vehicles") + + threads = [] + for id in range(num_vehicles, 0, -1): + t = threading.Thread(target=runSingleCar, args=(id,)) + threads.append(t) + t.start() + + for t in threads: + t.join() diff --git a/src/airsim/PythonClient/car/setup_path.py b/src/airsim/PythonClient/car/setup_path.py new file mode 100644 index 0000000000..362113fea8 --- /dev/null +++ b/src/airsim/PythonClient/car/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,inspect,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py b/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py new file mode 100644 index 0000000000..a6aab5f548 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py @@ -0,0 +1,257 @@ +import numpy +import cv2 +import time +import sys +import os +import random +import glob +from airsim import * + +def rotation_matrix_from_angles(pry): + pitch = pry[0] + roll = pry[1] + yaw = pry[2] + sy = numpy.sin(yaw) + cy = numpy.cos(yaw) + sp = numpy.sin(pitch) + cp = numpy.cos(pitch) + sr = numpy.sin(roll) + cr = numpy.cos(roll) + + Rx = numpy.array([ + [1, 0, 0], + [0, cr, -sr], + [0, sr, cr] + ]) + + Ry = numpy.array([ + [cp, 0, sp], + [0, 1, 0], + [-sp, 0, cp] + ]) + + Rz = numpy.array([ + [cy, -sy, 0], + [sy, cy, 0], + [0, 0, 1] + ]) + + #Roll is applied first, then pitch, then yaw. + RyRx = numpy.matmul(Ry, Rx) + return numpy.matmul(Rz, RyRx) + +def project_3d_point_to_screen(subjectXYZ, camXYZ, camQuaternion, camProjMatrix4x4, imageWidthHeight): + #Turn the camera position into a column vector. + camPosition = numpy.transpose([camXYZ]) + + #Convert the camera's quaternion rotation to yaw, pitch, roll angles. + pitchRollYaw = utils.to_eularian_angles(camQuaternion) + + #Create a rotation matrix from camera pitch, roll, and yaw angles. + camRotation = rotation_matrix_from_angles(pitchRollYaw) + + #Change coordinates to get subjectXYZ in the camera's local coordinate system. + XYZW = numpy.transpose([subjectXYZ]) + XYZW = numpy.add(XYZW, -camPosition) + print("XYZW: " + str(XYZW)) + XYZW = numpy.matmul(numpy.transpose(camRotation), XYZW) + print("XYZW derot: " + str(XYZW)) + + #Recreate the perspective projection of the camera. + XYZW = numpy.concatenate([XYZW, [[1]]]) + XYZW = numpy.matmul(camProjMatrix4x4, XYZW) + XYZW = XYZW / XYZW[3] + + #Move origin to the upper-left corner of the screen and multiply by size to get pixel values. Note that screen is in y,-z plane. + normX = (1 - XYZW[0]) / 2 + normY = (1 + XYZW[1]) / 2 + + return numpy.array([ + imageWidthHeight[0] * normX, + imageWidthHeight[1] * normY + ]).reshape(2,) + +def get_image(x, y, z, pitch, roll, yaw, client): + """ + title:: + get_image + + description:: + Capture images (as numpy arrays) from a certain position. + + inputs:: + x + x position in meters + y + y position in meters + z + altitude in meters; remember NED, so should be negative to be + above ground + pitch + angle (in radians); in computer vision mode, this is camera angle + roll + angle (in radians) + yaw + angle (in radians) + client + connection to AirSim (e.g., client = MultirotorClient() for UAV) + + returns:: + position + AirSim position vector (access values with x_val, y_val, z_val) + angle + AirSim quaternion ("angles") + im + segmentation or IR image, depending upon palette in use (3 bands) + imScene + scene image (3 bands) + + author:: + Elizabeth Bondi + Shital Shah + """ + + #Set pose and sleep after to ensure the pose sticks before capturing image. + client.simSetVehiclePose(Pose(Vector3r(x, y, z), \ + to_quaternion(pitch, roll, yaw)), True) + time.sleep(0.1) + + #Capture segmentation (IR) and scene images. + responses = \ + client.simGetImages([ImageRequest("0", ImageType.Infrared, + False, False), + ImageRequest("0", ImageType.Scene, \ + False, False), + ImageRequest("0", ImageType.Segmentation, \ + False, False)]) + + #Change images into numpy arrays. + img1d = numpy.fromstring(responses[0].image_data_uint8, dtype=numpy.uint8) + im = img1d.reshape(responses[0].height, responses[0].width, 4) + + img1dscene = numpy.fromstring(responses[1].image_data_uint8, dtype=numpy.uint8) + imScene = img1dscene.reshape(responses[1].height, responses[1].width, 4) + + return Vector3r(x, y, z), to_quaternion(pitch, roll, yaw),\ + im[:,:,:3], imScene[:,:,:3] #get rid of alpha channel + +def main(client, + objectList, + pitch=numpy.radians(270), #image straight down + roll=0, + yaw=0, + z=-122, + writeIR=True, + writeScene=False, + irFolder='', + sceneFolder=''): + """ + title:: + main + + description:: + Follow objects of interest and record images while following. + + inputs:: + client + connection to AirSim (e.g., client = MultirotorClient() for UAV) + objectList + list of tag names within the AirSim environment, corresponding to + objects to follow (add tags by clicking on object, going to + Details, Actor, and Tags, then add component) + pitch + angle (in radians); in computer vision mode, this is camera angle + roll + angle (in radians) + yaw + angle (in radians) + z + altitude in meters; remember NED, so should be negative to be + above ground + write + if True, will write out the images + folder + path to a particular folder that should be used (then within that + folder, expected folders are ir and scene) + + author:: + Elizabeth Bondi + """ + i = 0 + for o in objectList: + startTime = time.time() + elapsedTime = 0 + pose = client.simGetObjectPose(o); + + #Capture images for a certain amount of time in seconds (half hour now) + while elapsedTime < 1800: + #Capture image - pose.position x_val access may change w/ AirSim + #version (pose.position.x_val new, pose.position[b'x_val'] old) + vector, angle, ir, scene = get_image(pose.position.x_val, + pose.position.y_val, + z, + pitch, + roll, + yaw, + client) + + #Convert color scene image to BGR for write out with cv2. + r,g,b = cv2.split(scene) + scene = cv2.merge((b,g,r)) + + if writeIR: + cv2.imwrite(irFolder+'ir_'+str(i).zfill(5)+'.png', ir) + if writeScene: + cv2.imwrite(sceneFolder+'scene_'+str(i).zfill(5)+'.png', + scene) + + i += 1 + elapsedTime = time.time() - startTime + pose = client.simGetObjectPose(o); + camInfo = client.simGetCameraInfo("0") + object_xy_in_pic = project_3d_point_to_screen( + [pose.position.x_val, pose.position.y_val, pose.position.z_val], + [camInfo.pose.position.x_val, camInfo.pose.position.y_val, camInfo.pose.position.z_val], + camInfo.pose.orientation, + camInfo.proj_mat.matrix, + ir.shape[:2][::-1] + ) + print("Object projected to pixel\n{!s}.".format(object_xy_in_pic)) + +if __name__ == '__main__': + + #Connect to AirSim, UAV mode. + client = MultirotorClient() + client.confirmConnection() + + #Look for objects with names that match a regular expression. + poacherList = client.simListSceneObjects('.*?Poacher.*?') + elephantList = client.simListSceneObjects('.*?Elephant.*?') + crocList = client.simListSceneObjects('.*?Croc.*?') + hippoList = client.simListSceneObjects('.*?Hippo.*?') + + objectList = elephantList + + #Sample calls to main, varying camera angle and altitude. + #straight down, 400ft + main(client, + objectList, + irFolder=r'auto\winter\400ft\down') + #straight down, 200ft + main(client, + objectList, + z=-61, + irFolder=r'auto\winter\200ft\down') + #45 degrees, 200ft -- note that often object won't be scene since position + #is set exactly to object's + main(client, + objectList, + z=-61, + pitch=numpy.radians(315), + irFolder=r'auto\winter\200ft\45') + #45 degrees, 400ft -- note that often object won't be scene since position + #is set exactly to object's + main(client, + objectList, + pitch=numpy.radians(315), + irFolder=r'auto\winter\400ft\45') \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py b/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py new file mode 100644 index 0000000000..065d6b74da --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py @@ -0,0 +1,212 @@ +import numpy +import cv2 +import time +import sys +import os +import random +from airsim import * + +def radiance(absoluteTemperature, emissivity, dx=0.01, response=None): + """ + title:: + radiance + + description:: + Calculates radiance and integrated radiance over a bandpass of 8 to 14 + microns, given temperature and emissivity, using Planck's Law. + + inputs:: + absoluteTemperature + temperture of object in [K] + + either a single temperature or a numpy + array of temperatures, of shape (temperatures.shape[0], 1) + emissivity + average emissivity (number between 0 and 1 representing the + efficiency with which it emits radiation; if 1, it is an ideal + blackbody) of object over the bandpass + + either a single emissivity or a numpy array of emissivities, of + shape (emissivities.shape[0], 1) + dx + discrete spacing between the wavelengths for evaluation of + radiance and integration [default is 0.1] + response + optional response of the camera over the bandpass of 8 to 14 + microns [default is None, for no response provided] + + returns:: + radiance + discrete spectrum of radiance over bandpass + integratedRadiance + integration of radiance spectrum over bandpass (to simulate + the readout from a sensor) + + author:: + Elizabeth Bondi + """ + wavelength = numpy.arange(8,14,dx) + c1 = 1.19104e8 # (2 * 6.62607*10^-34 [Js] * + # (2.99792458 * 10^14 [micron/s])^2 * 10^12 to convert + # denominator from microns^3 to microns * m^2) + c2 = 1.43879e4 # (hc/k) [micron * K] + if response is not None: + radiance = response * emissivity * (c1 / ((wavelength**5) * \ + (numpy.exp(c2 / (wavelength * absoluteTemperature )) - 1))) + else: + radiance = emissivity * (c1 / ((wavelength**5) * (numpy.exp(c2 / \ + (wavelength * absoluteTemperature )) - 1))) + if absoluteTemperature.ndim > 1: + return radiance, numpy.trapz(radiance, dx=dx, axis=1) + else: + return radiance, numpy.trapz(radiance, dx=dx) + + +def get_new_temp_emiss_from_radiance(tempEmissivity, response): + """ + title:: + get_new_temp_emiss_from_radiance + + description:: + Transform tempEmissivity from [objectName, temperature, emissivity] + to [objectName, "radiance"] using radiance calculation above. + + input:: + tempEmissivity + numpy array containing the temperature and emissivity of each + object (e.g., each row has: [objectName, temperature, emissivity]) + response + camera response (same input as radiance, set to None if lacking + this information) + + returns:: + tempEmissivityNew + tempEmissivity, now with [objectName, "radiance"]; note that + integrated radiance (L) is divided by the maximum and multiplied + by 255 in order to simulate an 8 bit digital count observed by the + thermal sensor, since radiance and digital count are linearly + related, so it's [objectName, simulated thermal digital count] + + author:: + Elizabeth Bondi + """ + numObjects = tempEmissivity.shape[0] + + L = radiance(tempEmissivity[:,1].reshape((-1,1)).astype(numpy.float64), + tempEmissivity[:,2].reshape((-1,1)).astype(numpy.float64), + response=response)[1].flatten() + L = ((L / L.max()) * 255).astype(numpy.uint8) + + tempEmissivityNew = numpy.hstack(( + tempEmissivity[:,0].reshape((numObjects,1)), + L.reshape((numObjects,1)))) + + return tempEmissivityNew + +def set_segmentation_ids(segIdDict, tempEmissivityNew, client): + """ + title:: + set_segmentation_ids + + description:: + Set stencil IDs in environment so that stencil IDs correspond to + simulated thermal digital counts (e.g., if elephant has a simulated + digital count of 219, set stencil ID to 219). + + input:: + segIdDict + dictionary mapping environment object names to the object names in + the first column of tempEmissivityNew + tempEmissivityNew + numpy array containing object names and corresponding simulated + thermal digital count + client + connection to AirSim (e.g., client = MultirotorClient() for UAV) + + author:: + Elizabeth Bondi + """ + + #First set everything to 0. + success = client.simSetSegmentationObjectID("[\w]*", 0, True); + if not success: + print('There was a problem setting all segmentation object IDs to 0. ') + sys.exit(1) + + #Next set all objects of interest provided to corresponding object IDs + #segIdDict values MUST match tempEmissivityNew labels. + for key in segIdDict: + objectID = int(tempEmissivityNew[numpy.where(tempEmissivityNew == \ + segIdDict[key])[0],1][0]) + + success = client.simSetSegmentationObjectID("[\w]*"+key+"[\w]*", + objectID, True); + if not success: + print('There was a problem setting {0} segmentation object ID to {1!s}, or no {0} was found.'.format(key, objectID)) + + time.sleep(0.1) + + +if __name__ == '__main__': + + #Connect to AirSim, UAV mode. + client = MultirotorClient() + client.confirmConnection() + + segIdDict = {'Base_Terrain':'soil', + 'elephant':'elephant', + 'zebra':'zebra', + 'Crocodile':'crocodile', + 'Rhinoceros':'rhinoceros', + 'Hippo':'hippopotamus', + 'Poacher':'human', + 'InstancedFoliageActor':'tree', + 'Water_Plane':'water', + 'truck':'truck'} + + #Choose temperature values for winter or summer. + #""" + #winter + tempEmissivity = numpy.array([['elephant',290,0.96], + ['zebra',298,0.98], + ['rhinoceros',291,0.96], + ['hippopotamus',290,0.96], + ['crocodile',295,0.96], + ['human',292,0.985], + ['tree',273,0.952], + ['grass',273,0.958], + ['soil',278,0.914], + ['shrub',273,0.986], + ['truck',273,0.8], + ['water',273,0.96]]) + #""" + """ + #summer + tempEmissivity = numpy.array([['elephant',298,0.96], + ['zebra',307,0.98], + ['rhinoceros',299,0.96], + ['hippopotamus',298,0.96], + ['crocodile',303,0.96], + ['human',301,0.985], + ['tree',293,0.952], + ['grass',293,0.958], + ['soil',288,0.914], + ['shrub',293,0.986], + ['truck',293,0.8], + ['water',293,0.96]]) + """ + + #Read camera response. + response = None + camResponseFile = 'camera_response.npy' + try: + numpy.load(camResponseFile) + except: + print("{} not found. Using default response.".format(camResponseFile)) + + #Calculate radiance. + tempEmissivityNew = get_new_temp_emiss_from_radiance(tempEmissivity, + response) + + #Set IDs in AirSim environment. + set_segmentation_ids(segIdDict, tempEmissivityNew, client) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/cv_capture.py b/src/airsim/PythonClient/computer_vision/cv_capture.py new file mode 100644 index 0000000000..2701ce3009 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/cv_capture.py @@ -0,0 +1,55 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +import pprint +import tempfile +import os +import time + +pp = pprint.PrettyPrinter(indent=4) + +client = airsim.VehicleClient() + +airsim.wait_key('Press any key to get camera parameters') +for camera_id in range(2): + camera_info = client.simGetCameraInfo(str(camera_id)) + print("CameraInfo %d: %s" % (camera_id, pp.pprint(camera_info))) + +airsim.wait_key('Press any key to get images') +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_drone") +print ("Saving images to %s" % tmp_dir) +try: + for n in range(3): + os.makedirs(os.path.join(tmp_dir, str(n))) +except OSError: + if not os.path.isdir(tmp_dir): + raise + +for x in range(50): # do few times + #xn = 1 + x*5 # some random number + client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(x, 0, -2), airsim.to_quaternion(0, 0, 0)), True) + time.sleep(0.1) + + responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.Scene), + airsim.ImageRequest("1", airsim.ImageType.Scene), + airsim.ImageRequest("2", airsim.ImageType.Scene)]) + + for i, response in enumerate(responses): + if response.pixels_as_float: + print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) + airsim.write_pfm(os.path.normpath(os.path.join(tmp_dir, str(x) + "_" + str(i) + '.pfm')), airsim.get_pfm_array(response)) + else: + print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) + airsim.write_file(os.path.normpath(os.path.join(tmp_dir, str(i), str(x) + "_" + str(i) + '.png')), response.image_data_uint8) + + pose = client.simGetVehiclePose() + pp.pprint(pose) + + time.sleep(3) + +# currently reset() doesn't work in CV mode. Below is the workaround +client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) diff --git a/src/airsim/PythonClient/computer_vision/cv_mode.py b/src/airsim/PythonClient/computer_vision/cv_mode.py new file mode 100644 index 0000000000..3c05e08709 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/cv_mode.py @@ -0,0 +1,64 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +import pprint +import os +import time +import math +import tempfile + +pp = pprint.PrettyPrinter(indent=4) + +client = airsim.VehicleClient() +client.confirmConnection() + +airsim.wait_key('Press any key to set camera-0 gimbal to 15-degree pitch') +camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(math.radians(15), 0, 0)) #radians +client.simSetCameraPose("0", camera_pose) + +airsim.wait_key('Press any key to get camera parameters') +for camera_name in range(5): + camera_info = client.simGetCameraInfo(str(camera_name)) + print("CameraInfo %d:" % camera_name) + pp.pprint(camera_info) + +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") +print ("Saving images to %s" % tmp_dir) +try: + os.makedirs(tmp_dir) +except OSError: + if not os.path.isdir(tmp_dir): + raise + +airsim.wait_key('Press any key to get images') +for x in range(3): # do few times + z = x * -20 - 5 # some random number + client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(z, z, z), airsim.to_quaternion(x / 3.0, 0, x / 3.0)), True) + + responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), + airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), + airsim.ImageRequest("2", airsim.ImageType.Segmentation), + airsim.ImageRequest("3", airsim.ImageType.Scene), + airsim.ImageRequest("4", airsim.ImageType.DisparityNormalized), + airsim.ImageRequest("4", airsim.ImageType.SurfaceNormals)]) + + for i, response in enumerate(responses): + filename = os.path.join(tmp_dir, str(x) + "_" + str(i)) + if response.pixels_as_float: + print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) + airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) + else: + print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) + + pose = client.simGetVehiclePose() + pp.pprint(pose) + + time.sleep(3) + +# currently reset() doesn't work in CV mode. Below is the workaround +client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) diff --git a/src/airsim/PythonClient/computer_vision/cv_navigate.py b/src/airsim/PythonClient/computer_vision/cv_navigate.py new file mode 100644 index 0000000000..592190f1a6 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/cv_navigate.py @@ -0,0 +1,273 @@ + +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +import numpy as np +import time +import os +import pprint +import tempfile +import math +from math import * +from scipy.misc import imsave + +from abc import ABC, abstractmethod + +#define abstract class to return next vector in the format (x,y,yaw) +class AbstractClassGetNextVec(ABC): + + @abstractmethod + def get_next_vec(self, depth, obj_sz, goal, pos): + print("Some implementation!") + return pos,yaw + +class ReactiveController(AbstractClassGetNextVec): + def get_next_vec(self, depth, obj_sz, goal, pos): + print("Some implementation!") + return + +class AvoidLeft(AbstractClassGetNextVec): + + def __init__(self, hfov=radians(90), coll_thres=5, yaw=0, limit_yaw=5, step=0.1): + self.hfov = hfov + self.coll_thres = coll_thres + self.yaw = yaw + self.limit_yaw = limit_yaw + self.step = step + + def get_next_vec(self, depth, obj_sz, goal, pos): + + [h,w] = np.shape(depth) + [roi_h,roi_w] = compute_bb((h,w), obj_sz, self.hfov, self.coll_thres) + + # compute vector, distance and angle to goal + t_vec, t_dist, t_angle = get_vec_dist_angle (goal, pos[:-1]) + + # compute box of interest + img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2):int((w+roi_w)/2)] + + # scale by weight matrix (optional) + #img2d_box = np.multiply(img2d_box,w_mtx) + + # detect collision + if (np.min(img2d_box) < coll_thres): + self.yaw = self.yaw - radians(self.limit_yaw) + else: + self.yaw = self.yaw + min (t_angle-self.yaw, radians(self.limit_yaw)) + + pos[0] = pos[0] + self.step*cos(self.yaw) + pos[1] = pos[1] + self.step*sin(self.yaw) + + return pos, self.yaw,t_dist + +class AvoidLeftIgonreGoal(AbstractClassGetNextVec): + + def __init__(self, hfov=radians(90), coll_thres=5, yaw=0, limit_yaw=5, step=0.1): + self.hfov = hfov + self.coll_thres = coll_thres + self.yaw = yaw + self.limit_yaw = limit_yaw + self.step = step + + def get_next_vec(self, depth, obj_sz, goal, pos): + + [h,w] = np.shape(depth) + [roi_h,roi_w] = compute_bb((h,w), obj_sz, self.hfov, self.coll_thres) + + # compute box of interest + img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2):int((w+roi_w)/2)] + + # detect collision + if (np.min(img2d_box) < coll_thres): + self.yaw = self.yaw - radians(self.limit_yaw) + + pos[0] = pos[0] + self.step*cos(self.yaw) + pos[1] = pos[1] + self.step*sin(self.yaw) + + return pos, self.yaw, 100 + +class AvoidLeftRight(AbstractClassGetNextVec): + def get_next_vec(self, depth, obj_sz, goal, pos): + print("Some implementation!") + #Same as above but decide to go left or right based on average or some metric like that + return + + +#compute resultant normalized vector, distance and angle +def get_vec_dist_angle (goal, pos): + vec = np.array(goal) - np.array(pos) + dist = math.sqrt(vec[0]**2 + vec[1]**2) + angle = math.atan2(vec[1],vec[0]) + if angle > math.pi: + angle -= 2*math.pi + elif angle < -math.pi: + angle += 2*math.pi + return vec/dist, dist, angle + +def get_local_goal (v, pos, theta): + return goal + +#compute bounding box size +def compute_bb(image_sz, obj_sz, hfov, distance): + vfov = hfov2vfov(hfov,image_sz) + box_h = ceil(obj_sz[0] * image_sz[0] / (math.tan(hfov/2)*distance*2)) + box_w = ceil(obj_sz[1] * image_sz[1] / (math.tan(vfov/2)*distance*2)) + return box_h, box_w + +#convert horizonal fov to vertical fov +def hfov2vfov(hfov, image_sz): + aspect = image_sz[0]/image_sz[1] + vfov = 2*math.atan( tan(hfov/2) * aspect) + return vfov + +#matrix with all ones +def equal_weight_mtx(roi_h,roi_w): + return np.ones((roi_h,roi_w)) + +#matrix with max weight in center and decreasing linearly with distance from center +def linear_weight_mtx(roi_h,roi_w): + w_mtx = np.ones((roi_h,roi_w)) + for j in range(0,roi_w): + for i in range(j,roi_h-j): + w_mtx[j:roi_h-j,i:roi_w-i] = (j+1) + return w_mtx + +#matrix with max weight in center and decreasing quadratically with distance from center +def square_weight_mtx(roi_h,roi_w): + w_mtx = np.ones((roi_h,roi_w)) + for j in range(0,roi_w): + for i in range(j,roi_h-j): + w_mtx[j:roi_h-j,i:roi_w-i] = (j+1)*(j+1) + return w_mtx + +def print_stats(img): + print ('Avg: ',np.average(img)) + print ('Min: ',np.min(img)) + print ('Max: ',np.max(img)) + print('Img Sz: ',np.size(img)) + +def generate_depth_viz(img,thres=0): + if thres > 0: + img[img > thres] = thres + else: + img = np.reciprocal(img) + return img + +def moveUAV(client,pos,yaw): + client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(pos[0], pos[1], pos[2]), airsim.to_quaternion(0, 0, yaw)), True) + + +pp = pprint.PrettyPrinter(indent=4) + +client = airsim.VehicleClient() +client.confirmConnection() + +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_drone") +#print ("Saving images to %s" % tmp_dir) +#airsim.wait_key('Press any key to start') + +#Define start position, goal and size of UAV +pos = [0,5,-1] #start position x,y,z +goal = [120,0] #x,y +uav_size = [0.29*3,0.98*2] #height:0.29 x width:0.98 - allow some tolerance + +#Define parameters and thresholds +hfov = radians(90) +coll_thres = 5 +yaw = 0 +limit_yaw = 5 +step = 0.1 + +responses = client.simGetImages([ + airsim.ImageRequest("1", airsim.ImageType.DepthPlanar, True)]) +response = responses[0] + +#initial position +moveUAV(client,pos,yaw) + +#predictControl = AvoidLeftIgonreGoal(hfov, coll_thres, yaw, limit_yaw, step) +predictControl = AvoidLeft(hfov, coll_thres, yaw, limit_yaw, step) + +for z in range(10000): # do few times + + #time.sleep(1) + + # get response + responses = client.simGetImages([ + airsim.ImageRequest("1", airsim.ImageType.DepthPlanar, True)]) + response = responses[0] + + # get numpy array + img1d = response.image_data_float + + # reshape array to 2D array H X W + img2d = np.reshape(img1d,(response.height, response.width)) + + [pos,yaw,target_dist] = predictControl.get_next_vec(img2d, uav_size, goal, pos) + moveUAV(client,pos,yaw) + + if (target_dist < 1): + print('Target reached.') + airsim.wait_key('Press any key to continue') + break + + # write to png + #imsave(os.path.normpath(os.path.join(tmp_dir, "depth_" + str(z) + '.png')), generate_depth_viz(img2d,5)) + + #pose = client.simGetPose() + #pp.pprint(pose) + #time.sleep(5) + +# currently reset() doesn't work in CV mode. Below is the workaround +client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) + + + + + + + + + + + + + + +#################### OLD CODE +# timer = 0 +# time_obs = 50 +# bObstacle = False + +# if (bObstacle): +# timer = timer + 1 +# if timer > time_obs: +# bObstacle = False +# timer = 0 +# else: +# yaw = target_angle + +# print (target_angle,target_vec,target_dist,x,y,goal[0],goal[1]) + + +# if (np.average(img2d_box) < coll_thres): +# img2d_box_l = img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2)-50:int((w+roi_w)/2)-50] +# img2d_box_r = img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2)+50:int((w+roi_w)/2)+50] +# img2d_box_l_avg = np.average(np.multiply(img2d_box_l,w_mtx)) +# img2d_box_r_avg = np.average(np.multiply(img2d_box_r,w_mtx)) +# print('left: ', img2d_box_l_avg) +# print('right: ', img2d_box_r_avg) +# if img2d_box_l_avg > img2d_box_r_avg: +# ##Go LEFT +# #y_offset = y_offset-1 +# yaw = yaw - radians(10) +# bObstacle = True +# else: +# ##Go RIGHT +# #y_offset = y_offset+1 +# yaw = yaw + radians(10) +# bObstacle = true +# print('yaw: ', yaw) diff --git a/src/airsim/PythonClient/computer_vision/external_camera.py b/src/airsim/PythonClient/computer_vision/external_camera.py new file mode 100644 index 0000000000..b41a072cba --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/external_camera.py @@ -0,0 +1,102 @@ +import setup_path +import airsim +import os +import tempfile + +""" +A simple script to test all the camera APIs. Change the camera name and whether it's an external camera + +Example Settings for external camera - + +{ + "SettingsVersion": 1.2, + "SimMode": "Car", + "ExternalCameras": { + "fixed1": { + "X": 0, "Y": 0, "Z": -5, + "Pitch": -90, "Roll": 0, "Yaw": 0 + } + } +} +""" + +# Just change the below to test different cameras easily! +CAM_NAME = "fixed1" +IS_EXTERNAL_CAM = True + + +client = airsim.VehicleClient() +client.confirmConnection() + +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") +print ("Saving images to %s" % tmp_dir) +try: + os.makedirs(tmp_dir) +except OSError: + if not os.path.isdir(tmp_dir): + raise + +print(f"Camera: {CAM_NAME}, External = {IS_EXTERNAL_CAM}") + +# Test Camera info +cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) +print(cam_info) + +# Test Image APIs +airsim.wait_key('Press any key to get images') + +requests = [airsim.ImageRequest(CAM_NAME, airsim.ImageType.Scene), + airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthPlanar), + airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthVis), + airsim.ImageRequest(CAM_NAME, airsim.ImageType.Segmentation), + airsim.ImageRequest(CAM_NAME, airsim.ImageType.SurfaceNormals)] + +def save_images(responses, prefix = ""): + for i, response in enumerate(responses): + filename = os.path.join(tmp_dir, prefix + "_" + str(i)) + + if response.pixels_as_float: + print(f"Type {response.image_type}, size {len(response.image_data_float)}, pos {response.camera_position}") + airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) + else: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}, pos {response.camera_position}") + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) + + +responses = client.simGetImages(requests, external=IS_EXTERNAL_CAM) +save_images(responses, "old_fov") + + +# Test FoV API +airsim.wait_key('Press any key to change FoV and get images') + +client.simSetCameraFov(CAM_NAME, 120, external=IS_EXTERNAL_CAM) + +responses = client.simGetImages(requests, external = IS_EXTERNAL_CAM) +save_images(responses, "new_fov") + +new_cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) +print(f"Old FOV: {cam_info.fov}, New FOV: {new_cam_info.fov}") + + +# Test Pose APIs +new_pose = airsim.Pose(airsim.Vector3r(-10, -5, -5), airsim.to_quaternion(0.1, 0, 0.1)) +client.simSetCameraPose(CAM_NAME, new_pose, external=IS_EXTERNAL_CAM) + +responses = client.simGetImages(requests, external=IS_EXTERNAL_CAM) +save_images(responses, "new_pose") + +new_cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) +print(f"Old Pose: {cam_info.pose}, New Pose: {new_cam_info.pose}") + + +# Test Distortion params APIs +dist_params = client.simGetDistortionParams(CAM_NAME, external=IS_EXTERNAL_CAM) +print(f"Distortion Params: {dist_params}") + +new_params_dict = {"K1": 0.1, "K2": 0.01, "K3": 0.0, "P1": 0.0, "P2": 0.0} +print(f"Setting distortion params as {new_params_dict}") +client.simSetDistortionParams(CAM_NAME, new_params_dict, external=IS_EXTERNAL_CAM) + +dist_params = client.simGetDistortionParams(CAM_NAME, external=IS_EXTERNAL_CAM) +print(f"Updated Distortion Params: {dist_params}") diff --git a/src/airsim/PythonClient/computer_vision/fov_change.py b/src/airsim/PythonClient/computer_vision/fov_change.py new file mode 100644 index 0000000000..8c15c09210 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/fov_change.py @@ -0,0 +1,53 @@ +import setup_path +import airsim +import os +import tempfile + +client = airsim.VehicleClient() +client.confirmConnection() + +tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") +print ("Saving images to %s" % tmp_dir) +try: + os.makedirs(tmp_dir) +except OSError: + if not os.path.isdir(tmp_dir): + raise + +CAM_NAME = "front_center" +print(f"Camera: {CAM_NAME}") + +airsim.wait_key('Press any key to get camera parameters') + +cam_info = client.simGetCameraInfo(CAM_NAME) +print(cam_info) + +airsim.wait_key(f'Press any key to get images, saving to {tmp_dir}') + +requests = [airsim.ImageRequest(CAM_NAME, airsim.ImageType.Scene), + airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthVis)] + +def save_images(responses, prefix = ""): + for i, response in enumerate(responses): + filename = os.path.join(tmp_dir, prefix + "_" + str(i)) + if response.pixels_as_float: + print(f"Type {response.image_type}, size {len(response.image_data_float)}, pos {response.camera_position}") + airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) + else: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}, pos {response.camera_position}") + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) + + +responses = client.simGetImages(requests) +save_images(responses, "old_fov") + +airsim.wait_key('Press any key to change FoV and get images') + +client.simSetCameraFov(CAM_NAME, 120) +responses = client.simGetImages(requests) +save_images(responses, "new_fov") + +new_cam_info = client.simGetCameraInfo(CAM_NAME) +print(new_cam_info) + +print(f"Old FOV: {cam_info.fov}, New FOV: {new_cam_info.fov}") diff --git a/src/airsim/PythonClient/computer_vision/getpos.py b/src/airsim/PythonClient/computer_vision/getpos.py new file mode 100644 index 0000000000..52783e744e --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/getpos.py @@ -0,0 +1,17 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +client = airsim.VehicleClient() +client.confirmConnection() + +pose = client.simGetVehiclePose() +print("x={}, y={}, z={}".format(pose.position.x_val, pose.position.y_val, pose.position.z_val)) + +angles = airsim.to_eularian_angles(client.simGetVehiclePose().orientation) +print("pitch={}, roll={}, yaw={}".format(angles[0], angles[1], angles[2])) + +pose.position.x_val = pose.position.x_val + 1 +client.simSetVehiclePose(pose, True) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/ground_truth.py b/src/airsim/PythonClient/computer_vision/ground_truth.py new file mode 100644 index 0000000000..32c63796c6 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/ground_truth.py @@ -0,0 +1,25 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +import pprint +import time +import cv2 #conda install opencv + +client = airsim.VehicleClient() +client.confirmConnection() + +print("Time,Speed,Gear,PX,PY,PZ,OW,OX,OY,OZ") + +# monitor car state while you drive it manually. +while (cv2.waitKey(1) & 0xFF) == 0xFF: + kinematics = client.simGetGroundTruthKinematics() + environment = client.simGetGroundTruthEnvironment() + + print("Kinematics: %s\nEnvironemt %s" % ( + pprint.pformat(kinematics), pprint.pformat(environment))) + time.sleep(1) + + diff --git a/src/airsim/PythonClient/computer_vision/image_benchmarker.py b/src/airsim/PythonClient/computer_vision/image_benchmarker.py new file mode 100644 index 0000000000..769af97ef9 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/image_benchmarker.py @@ -0,0 +1,155 @@ +import setup_path +import airsim +from argparse import ArgumentParser +import time +import threading +import numpy as np +import cv2 +import tempfile +import os + + +cameraTypeMap = { + "depth": airsim.ImageType.DepthVis, + "segmentation": airsim.ImageType.Segmentation, + "seg": airsim.ImageType.Segmentation, + "scene": airsim.ImageType.Scene, + "disparity": airsim.ImageType.DisparityNormalized, + "normals": airsim.ImageType.SurfaceNormals +} + +CAM_NAME = "front_center" +DEBUG = False + +def saveImage(response, filename): + if response.pixels_as_float: + # airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) + depth = np.array(response.image_data_float, dtype=np.float64) + depth = depth.reshape((response.height, response.width, -1)) + depth = np.array(depth * 255, dtype=np.uint8) + # save pic + cv2.imwrite(os.path.normpath(filename + '.png'), depth) + + elif response.compress: #png format + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) + + else: #uncompressed array + 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 3 channel image array H X W X 3 + cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png + +class ImageBenchmarker(): + def __init__(self, + img_benchmark_type = 'simGetImages', + viz_image_cv2 = False, + save_images = False, + img_type = "scene"): + self.airsim_client = airsim.VehicleClient() + self.airsim_client.confirmConnection() + self.image_benchmark_num_images = 0 + self.image_benchmark_total_time = 0.0 + self.avg_fps = 0.0 + self.image_callback_thread = None + self.viz_image_cv2 = viz_image_cv2 + self.save_images = save_images + + self.img_type = cameraTypeMap[img_type] + + if img_benchmark_type == "simGetImage": + self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImage, 0.001)) + if img_benchmark_type == "simGetImages": + self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImages, 0.001)) + self.is_image_thread_active = False + + if self.save_images: + self.tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_img_bm") + print(f"Saving images to {self.tmp_dir}") + try: + os.makedirs(self.tmp_dir) + except OSError: + if not os.path.isdir(self.tmp_dir): + raise + + def start_img_benchmark_thread(self): + if not self.is_image_thread_active: + self.is_image_thread_active = True + self.benchmark_start_time = time.time() + self.image_callback_thread.start() + print("Started img image_callback thread") + + def stop_img_benchmark_thread(self): + if self.is_image_thread_active: + self.is_image_thread_active = False + self.image_callback_thread.join() + print("Stopped image callback thread.") + print(f"FPS: {self.avg_fps} for {self.image_benchmark_num_images} images") + + def repeat_timer_img(self, task, period): + while self.is_image_thread_active: + task() + time.sleep(period) + + def update_benchmark_results(self): + self.image_benchmark_total_time = time.time() - self.benchmark_start_time + self.avg_fps = self.image_benchmark_num_images / self.image_benchmark_total_time + if self.image_benchmark_num_images % 10 == 0: + print(f"Result: {self.avg_fps} avg_fps for {self.image_benchmark_num_images} images") + + def image_callback_benchmark_simGetImage(self): + self.image_benchmark_num_images += 1 + image = self.airsim_client.simGetImage(CAM_NAME, self.img_type) + np_arr = np.frombuffer(image, dtype=np.uint8) + # Change the below dimensions appropriately for the camera settings + img_rgb = np_arr.reshape(240, 512, 4) + + self.update_benchmark_results() + + if self.viz_image_cv2: + cv2.imshow("img_rgb", img_rgb) + cv2.waitKey(1) + + def image_callback_benchmark_simGetImages(self): + self.image_benchmark_num_images += 1 + request = [airsim.ImageRequest(CAM_NAME, self.img_type, False, False)] + responses = self.airsim_client.simGetImages(request) + response = responses[0] + + self.update_benchmark_results() + + if DEBUG: + if response.pixels_as_float: + print(f"Type {response.image_type}, size {len(response.image_data_float)}," + f"height {response.height}, width {response.width}") + else: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}," + f"height {response.height}, width {response.width}") + + if self.viz_image_cv2: + np_arr = np.frombuffer(response.image_data_uint8, dtype=np.uint8) + img = np_arr.reshape(response.height, response.width, -1) + cv2.imshow("img", img) + cv2.waitKey(1) + + if self.save_images: + filename = os.path.join(self.tmp_dir, str(self.image_benchmark_num_images)) + saveImage(response, filename) + + +def main(args): + image_benchmarker = ImageBenchmarker(img_benchmark_type=args.img_benchmark_type, viz_image_cv2=args.viz_image_cv2, + save_images=args.save_images, img_type=args.img_type) + + image_benchmarker.start_img_benchmark_thread() + time.sleep(args.time) + image_benchmarker.stop_img_benchmark_thread() + +if __name__ == "__main__": + parser = ArgumentParser() + parser.add_argument('--img_benchmark_type', type=str, choices=["simGetImage", "simGetImages"], default="simGetImages") + parser.add_argument('--enable_viz_image_cv2', dest='viz_image_cv2', action='store_true', default=False) + parser.add_argument('--save_images', dest='save_images', action='store_true', default=False) + parser.add_argument('--img_type', type=str, choices=cameraTypeMap.keys(), default="scene") + parser.add_argument('--time', help="Time in secs to run the benchmark for", type=int, default=30) + + args = parser.parse_args() + main(args) diff --git a/src/airsim/PythonClient/computer_vision/objects.py b/src/airsim/PythonClient/computer_vision/objects.py new file mode 100644 index 0000000000..f5356c31cf --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/objects.py @@ -0,0 +1,72 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +import pprint + +client = airsim.VehicleClient() +client.confirmConnection() + +# objects can be named in two ways: +# 1. In UE Editor, select and object and change its name to something else. Note that you must *change* its name because +# default name is auto-generated and varies from run-to-run. +# 2. OR you can do this: In UE Editor select the object and then go to "Actor" section, click down arrow to see "Tags" property and add a tag there. +# +# The simGetObjectPose and simSetObjectPose uses first object that has specified name OR tag. +# more info: https://answers.unrealengine.com/questions/543807/whats-the-difference-between-tag-and-tag.html +# https://answers.unrealengine.com/revisions/790629.html + +# below works in Blocks environment + +#------------------------------------ Get current pose ------------------------------------------------ + +# search object by name: +pose1 = client.simGetObjectPose("OrangeBall"); +print("OrangeBall - Position: %s, Orientation: %s" % (pprint.pformat(pose1.position), + pprint.pformat(pose1.orientation))) + +# search another object by tag +pose2 = client.simGetObjectPose("PulsingCone"); +print("PulsingCone - Position: %s, Orientation: %s" % (pprint.pformat(pose2.position), + pprint.pformat(pose2.orientation))) + +# search non-existent object +pose3 = client.simGetObjectPose("Non-Existent"); # should return nan pose +print("Non-Existent - Position: %s, Orientation: %s" % (pprint.pformat(pose3.position), + pprint.pformat(pose3.orientation))) + + +#------------------------------------ Set new pose ------------------------------------------------ + +# here we move with teleport enabled so collisions are ignored +pose1.position = pose1.position + airsim.Vector3r(-2, -2, -2) +success = client.simSetObjectPose("OrangeBall", pose1, True); +airsim.wait_key("OrangeBall moved. Success: %i" % (success)) + +# here we move with teleport enabled so collisions are not ignored +pose2.position = pose2.position + airsim.Vector3r(3, 3, -2) +success = client.simSetObjectPose("PulsingCone", pose2, False); +airsim.wait_key("PulsingCone moved. Success: %i" % (success)) + +# move non-existent object +success = client.simSetObjectPose("Non-Existent", pose2); # should return nan pose +airsim.wait_key("Non-Existent moved. Success: %i" % (success)) + +#------------------------------------ Get new pose ------------------------------------------------ + + +pose1 = client.simGetObjectPose("OrangeBall"); +print("OrangeBall - Position: %s, Orientation: %s" % (pprint.pformat(pose1.position), + pprint.pformat(pose1.orientation))) + +# search another object by tag +pose2 = client.simGetObjectPose("PulsingCone"); +print("PulsingCone - Position: %s, Orientation: %s" % (pprint.pformat(pose2.position), + pprint.pformat(pose2.orientation))) + +# search non-existent object +pose3 = client.simGetObjectPose("Non-Existent"); # should return nan pose +print("Non-Existent - Position: %s, Orientation: %s" % (pprint.pformat(pose3.position), + pprint.pformat(pose3.orientation))) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/seg_palette.py b/src/airsim/PythonClient/computer_vision/seg_palette.py new file mode 100644 index 0000000000..664769cc9e --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/seg_palette.py @@ -0,0 +1,48 @@ +import numpy +import random + +# requires Python 3.5.3 :: Anaconda 4.4.0 +# pip install opencv-python +import cv2 +import pprint + + +def generate_color_palette(numPixelsWide, outputFile): + random.seed(42) + + palette = numpy.zeros((1, 256 * numPixelsWide, 3)) + possibilities = [list(range(256)), list(range(256)), list(range(256))] + + colors = [[0] * 3 for i in range(256)] + + choice = 0 + j = 0 + for i in range(3): + palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice + colors[j][i] = choice + + for i in range(3): + for j in range(1, 255): + choice = random.sample(possibilities[i], 1)[0] + possibilities[i].remove(choice) + palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice + colors[j][i] = choice + + choice = 255 + j = 255 + for i in range(3): + palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice + colors[j][i] = choice + + cv2.imwrite(outputFile, palette, [cv2.IMWRITE_PNG_COMPRESSION, 0]) + + rgb_file = open("rgbs.txt", "w") + for j in range(256): + rgb_file.write("%d\t%s\n" % (j, str(list(reversed(colors[j]))))) + rgb_file.close() + + +if __name__ == "__main__": + numPixelsWide = 4 + outputFile = "seg_color_palette.png" + generate_color_palette(numPixelsWide, outputFile) diff --git a/src/airsim/PythonClient/computer_vision/segmentation.py b/src/airsim/PythonClient/computer_vision/segmentation.py new file mode 100644 index 0000000000..8a6a550fb5 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/segmentation.py @@ -0,0 +1,63 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import airsim +import cv2 +import numpy as np +import setup_path + +client = airsim.VehicleClient() +client.confirmConnection() + +airsim.wait_key('Press any key to set all object IDs to 0') +found = client.simSetSegmentationObjectID("[\w]*", 0, True); +print("Done: %r" % (found)) + +#for block environment + +airsim.wait_key('Press any key to change one ground object ID') +found = client.simSetSegmentationObjectID("Ground", 20); +print("Done: %r" % (found)) + +#regex are case insensitive +airsim.wait_key('Press any key to change all ground object ID') +found = client.simSetSegmentationObjectID("ground[\w]*", 22, True); +print("Done: %r" % (found)) + +##for neighborhood environment + +#set object ID for sky +found = client.simSetSegmentationObjectID("SkySphere", 42, True); +print("Done: %r" % (found)) + +#below doesn't work yet. You must set CustomDepthStencilValue in Unreal Editor for now +airsim.wait_key('Press any key to set Landscape object ID to 128') +found = client.simSetSegmentationObjectID("[\w]*", 128, True); +print("Done: %r" % (found)) + +#get segmentation image in various formats +responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.Segmentation, True), #depth in perspective projection + airsim.ImageRequest("0", airsim.ImageType.Segmentation, False, False)]) #scene vision image in uncompressed RGBA array +print('Retrieved images: %d', len(responses)) + +#save segmentation images in various formats +for idx, response in enumerate(responses): + filename = 'c:/temp/py_seg_' + 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 - numpy demo + 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 3 channel image array H X W X 3 + # cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png + + #find unique colors + print(np.unique(img_rgb[:,:,0], return_counts=True)) #red + print(np.unique(img_rgb[:,:,1], return_counts=True)) #green + print(np.unique(img_rgb[:,:,2], return_counts=True)) #blue \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/setup_path.py b/src/airsim/PythonClient/computer_vision/setup_path.py new file mode 100644 index 0000000000..362113fea8 --- /dev/null +++ b/src/airsim/PythonClient/computer_vision/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,inspect,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/detection/detection.py b/src/airsim/PythonClient/detection/detection.py new file mode 100644 index 0000000000..388228826a --- /dev/null +++ b/src/airsim/PythonClient/detection/detection.py @@ -0,0 +1,43 @@ +import setup_path +import airsim +import cv2 +import numpy as np +import pprint + +# connect to the AirSim simulator +client = airsim.VehicleClient() +client.confirmConnection() + +# set camera name and image type to request images and detections +camera_name = "0" +image_type = airsim.ImageType.Scene + +# set detection radius in [cm] +client.simSetDetectionFilterRadius(camera_name, image_type, 200 * 100) +# add desired object name to detect in wild card/regex format +client.simAddDetectionFilterMeshName(camera_name, image_type, "Cylinder*") + + +while True: + rawImage = client.simGetImage(camera_name, image_type) + if not rawImage: + continue + png = cv2.imdecode(airsim.string_to_uint8_array(rawImage), cv2.IMREAD_UNCHANGED) + cylinders = client.simGetDetections(camera_name, image_type) + if cylinders: + for cylinder in cylinders: + s = pprint.pformat(cylinder) + print("Cylinder: %s" % s) + + cv2.rectangle(png,(int(cylinder.box2D.min.x_val),int(cylinder.box2D.min.y_val)),(int(cylinder.box2D.max.x_val),int(cylinder.box2D.max.y_val)),(255,0,0),2) + cv2.putText(png, cylinder.name, (int(cylinder.box2D.min.x_val),int(cylinder.box2D.min.y_val - 10)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (36,255,12)) + + + cv2.imshow("AirSim", png) + if cv2.waitKey(1) & 0xFF == ord('q'): + break + elif cv2.waitKey(1) & 0xFF == ord('c'): + client.simClearDetectionMeshNames(camera_name, image_type) + elif cv2.waitKey(1) & 0xFF == ord('a'): + client.simAddDetectionFilterMeshName(camera_name, image_type, "Cylinder*") +cv2.destroyAllWindows() diff --git a/src/airsim/PythonClient/detection/setup_path.py b/src/airsim/PythonClient/detection/setup_path.py new file mode 100644 index 0000000000..a33b94789c --- /dev/null +++ b/src/airsim/PythonClient/detection/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = __file__ + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/docs/Makefile b/src/airsim/PythonClient/docs/Makefile new file mode 100644 index 0000000000..298ea9e213 --- /dev/null +++ b/src/airsim/PythonClient/docs/Makefile @@ -0,0 +1,19 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/src/airsim/PythonClient/docs/conf.py b/src/airsim/PythonClient/docs/conf.py new file mode 100644 index 0000000000..2df296ed16 --- /dev/null +++ b/src/airsim/PythonClient/docs/conf.py @@ -0,0 +1,205 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/master/config + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +import os +import sys +sys.path.insert(0, os.path.abspath('..')) + +import sphinx_rtd_theme +from airsim import __version__ + +# -- Project information ----------------------------------------------------- + +project = u'airsim' +copyright = u'2020, Shital Shah, Ratnesh Madaan, Sai Vemprala, Nicholas Gyde' +author = u'Shital Shah, Ratnesh Madaan, Sai Vemprala, Nicholas Gyde' + +# The short X.Y version +version = __version__ +# The full version, including alpha/beta/rc tags +release = version + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', + 'sphinx.ext.autosectionlabel', + 'sphinx.ext.doctest', + 'sphinx.ext.intersphinx', + 'sphinx.ext.todo', + 'sphinx.ext.mathjax', + 'sphinx.ext.coverage', + 'sphinx.ext.napoleon', + 'sphinx.ext.viewcode', + 'sphinx_rtd_theme' +] + +autodoc_default_flags = ['members'] +autosummary_generate = True +autosectionlabel_prefix_document = True +autosectionlabel_maxdepth = 4 + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = None + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +# html_theme = 'alabaster' +html_theme = "sphinx_rtd_theme" + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. +# +# html_sidebars = {} + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'airsimdoc' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'airsim.tex', u'airsim Documentation', + u'Ratnesh Madaan, Matthew Brown, Nicholas Gyde', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'airsim', u'airsim Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'airsim', u'airsim Documentation', + author, 'airsim', 'One line description of project.', + 'Miscellaneous'), +] + + +# -- Options for Epub output ------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for intersphinx extension --------------------------------------- + +# Example configuration for intersphinx: refer to the Python standard library. +intersphinx_mapping = {'https://docs.python.org/': None} + +# -- Options for todo extension ---------------------------------------------- + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True diff --git a/src/airsim/PythonClient/docs/index.rst b/src/airsim/PythonClient/docs/index.rst new file mode 100644 index 0000000000..c256e3fcd4 --- /dev/null +++ b/src/airsim/PythonClient/docs/index.rst @@ -0,0 +1,42 @@ +.. airsim documentation master file, created by + sphinx-quickstart on Sun Aug 4 14:58:26 2019. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +airsim +========================================= +This page documents `airsim`_, the python package to be used for `Microsoft AirSim`_. + +.. _`airsim`: https://pypi.org/project/airsim/ +.. _`Microsoft AirSim`: https://github.com/microsoft/AirSim + +.. toctree:: + :maxdepth: 3 + +* :ref:`genindex` +* :ref:`modindex` + +.. autoclass:: airsim.client.VehicleClient + :members: + :undoc-members: + :show-inheritance: + +.. autoclass:: airsim.client.MultirotorClient + :members: + :undoc-members: + :show-inheritance: + +.. autoclass:: airsim.client.CarClient + :members: + :undoc-members: + :show-inheritance: + +.. automodule:: airsim.types + :members: + :undoc-members: + :show-inheritance: + +.. automodule:: airsim.utils + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/src/airsim/PythonClient/docs/make.bat b/src/airsim/PythonClient/docs/make.bat new file mode 100644 index 0000000000..7893348a1b --- /dev/null +++ b/src/airsim/PythonClient/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +if "%1" == "" goto help + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.http://sphinx-doc.org/ + exit /b 1 +) + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% + +:end +popd diff --git a/src/airsim/PythonClient/environment/change_texture_example.py b/src/airsim/PythonClient/environment/change_texture_example.py new file mode 100644 index 0000000000..b10a8aff51 --- /dev/null +++ b/src/airsim/PythonClient/environment/change_texture_example.py @@ -0,0 +1,7 @@ +import airsim + +c = airsim.MultirotorClient() +c.confirmConnection() + +c.simSetObjectMaterialFromTexture("OrangeBall", "sample_texture.jpg") + diff --git a/src/airsim/PythonClient/environment/create_objects.py b/src/airsim/PythonClient/environment/create_objects.py new file mode 100644 index 0000000000..5dc445d1ce --- /dev/null +++ b/src/airsim/PythonClient/environment/create_objects.py @@ -0,0 +1,32 @@ +import setup_path +import airsim +import random +import time + +client = airsim.VehicleClient() +client.confirmConnection() + +assets = client.simListAssets() +print(f"Assets: {assets}") + +scale = airsim.Vector3r(1.0, 1.0, 1.0) + +# asset_name = random.choice(assets) +asset_name = '1M_Cube_Chamfer' + +desired_name = f"{asset_name}_spawn_{random.randint(0, 100)}" +pose = airsim.Pose(position_val=airsim.Vector3r(5.0, 0.0, 0.0)) + +obj_name = client.simSpawnObject(desired_name, asset_name, pose, scale, True) + +print(f"Created object {obj_name} from asset {asset_name} " + f"at pose {pose}, scale {scale}") + +all_objects = client.simListSceneObjects() +if obj_name not in all_objects: + print(f"Object {obj_name} not present!") + +time.sleep(10.0) + +print(f"Destroying {obj_name}") +client.simDestroyObject(obj_name) diff --git a/src/airsim/PythonClient/environment/light_control.py b/src/airsim/PythonClient/environment/light_control.py new file mode 100644 index 0000000000..39fa0f06ed --- /dev/null +++ b/src/airsim/PythonClient/environment/light_control.py @@ -0,0 +1,23 @@ +import airsim +import time + +client = airsim.VehicleClient() +client.confirmConnection() + +# Access an existing light in the world +lights = client.simListSceneObjects("PointLight.*") +pose = client.simGetObjectPose(lights[0]) +scale = airsim.Vector3r(1, 1, 1) + +# Destroy the light +client.simDestroyObject(lights[0]) +time.sleep(1) + +# Create a new light at the same pose +new_light_name = client.simSpawnObject("PointLight", "PointLightBP", pose, scale, False, True) +time.sleep(1) + +# Change the light's intensity +for i in range(20): + client.simSetLightIntensity(new_light_name, i * 100) + time.sleep(0.5) diff --git a/src/airsim/PythonClient/environment/plot_markers.py b/src/airsim/PythonClient/environment/plot_markers.py new file mode 100644 index 0000000000..d005ff8338 --- /dev/null +++ b/src/airsim/PythonClient/environment/plot_markers.py @@ -0,0 +1,63 @@ +import setup_path +import airsim +from airsim import Vector3r, Quaternionr, Pose +from airsim.utils import to_quaternion +import numpy as np +import time + +client = airsim.VehicleClient() +client.confirmConnection() + +# plot red arrows for 30 seconds +client.simPlotArrows(points_start = [Vector3r(x,y,0) for x, y in zip(np.linspace(0,10,20), np.linspace(0,0,20))], + points_end = [Vector3r(x,y,0) for x, y in zip(np.linspace(0,10,20), np.linspace(10,10,20))], + color_rgba = [1.0, 0.0, 1.0, 1.0], duration = 30.0, arrow_size = 10, thickness = 1) + +# plot magenta arrows for 15 seconds +client.simPlotArrows(points_start = [Vector3r(x,y,-3) for x, y in zip(np.linspace(0,10,20), np.linspace(0,0,20))], + points_end = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,10,20), np.linspace(10,20,20))], + color_rgba = [1.0, 1.0, 0.0, 1.0], duration = 15.0, arrow_size = 20, thickness = 3) + +# plot red arrows for 10 seconds +client.simPlotArrows(points_start = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(0,0,20), np.linspace(-3,-10, 20))], + points_end = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(10,20,20), np.linspace(-5,-8, 20))], + color_rgba = [1.0, 0.0, 0.0, 1.0], duration = 10.0, arrow_size = 100, thickness = 5) + +# plot 2 white arrows which are persistent +client.simPlotArrows(points_start = [Vector3r(x,y,-2) for x, y in zip(np.linspace(0,10,20), np.linspace(0,20,20))], + points_end = [Vector3r(x,y,-5) for x, y in zip(np.linspace(3,17,20), np.linspace(5,28,20))], + color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 5.0, arrow_size = 100, thickness = 1, is_persistent = True) + +# plot points +client.simPlotPoints(points = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,-10,20), np.linspace(0,-20,20))], color_rgba=[1.0, 0.0, 0.0, 1.0], size = 25, duration = 20.0, is_persistent = False) +client.simPlotPoints(points = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,-10,20), np.linspace(0,-20,20), np.linspace(0,-5,20))], color_rgba=[0.0, 0.0, 1.0, 1.0], size = 10, duration = 20.0, is_persistent = False) +client.simPlotPoints(points = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(0,-20,20), np.linspace(0,-7,20))], color_rgba=[1.0, 0.0, 1.0, 1.0], size = 15, duration = 20.0, is_persistent = False) + +# plot line strip. 0-1, 1-2, 2-3 +client.simPlotLineStrip(points = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,-10,10), np.linspace(0,-20,10))], color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5, duration = 30.0, is_persistent = False) + +# plot line list. 0-1, 2-3, 4-5. Must be even. +client.simPlotLineList(points = [Vector3r(x,y,-7) for x, y in zip(np.linspace(0,-10,10), np.linspace(0,-20,10))], color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5, duration = 30.0, is_persistent = False) + +# plot transforms +client.simPlotStrings(strings = ["Microsoft AirSim" for i in range(5)], positions = [Vector3r(x,y,-1) for x, y in zip(np.linspace(0,5,5), np.linspace(0,0,5))], + scale = 1, color_rgba=[1.0, 1.0, 1.0, 1.0], duration = 1200.0) + +# client.simPlotTransforms(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=0.0, yaw=yaw)) for x, y, yaw in zip(np.linspace(0,10,10), np.linspace(0,0,10), np.linspace(0,np.pi,10))], +# scale = 35, thickness = 5, duration = 1200.0, is_persistent = False) + +# client.simPlotTransforms(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=roll, yaw=0.0)) for x, y, roll in zip(np.linspace(0,10,10), np.linspace(1,1,10), np.linspace(0,np.pi,10))], +# scale = 35, thickness = 5, duration = 1200.0, is_persistent = False) + +client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=0.0, yaw=yaw)) for x, y, yaw in zip(np.linspace(0,10,10), np.linspace(0,0,10), np.linspace(0,np.pi,10))], + names=["tf_yaw_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) + +client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=roll, yaw=0.0)) for x, y, roll in zip(np.linspace(0,10,10), np.linspace(1,1,10), np.linspace(0,np.pi,10))], + names=["tf_roll_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) + +client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=pitch, roll=0.0, yaw=0.0)) for x, y, pitch in zip(np.linspace(0,10,10), np.linspace(-1,-1,10), np.linspace(0,np.pi,10))], + names=["tf_pitch_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) + +time.sleep(20.0) + +client.simFlushPersistentMarkers() \ No newline at end of file diff --git a/src/airsim/PythonClient/environment/sample_texture.jpg b/src/airsim/PythonClient/environment/sample_texture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90812505111c61e1e639b7794c4b100d693f2a77 GIT binary patch literal 1101411 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

9s|PykJKWnOoQP(%d)C?h-g|Q$ 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

JZB`|Y;Dh(>&Af0m!5bp!w_V! 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 z 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%0D9Kok?HEYCGvU6*zptBd>c&kg}*J|^=sQ{qbagu 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

IPO0U0P>KDc3C4BO+Ml(KLyhpUQ14*a5! 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

wBJ4Y+c>T0~Ii3V9`gZ$YF4S%L-BNJD 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ⅇS5@M|=birD$qpy&Hf4{_ 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 l)W%7mc{Sgy*+`AIswNNj*&v= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/environment/unreal_console_commands.py b/src/airsim/PythonClient/environment/unreal_console_commands.py new file mode 100644 index 0000000000..7090ea4377 --- /dev/null +++ b/src/airsim/PythonClient/environment/unreal_console_commands.py @@ -0,0 +1,29 @@ +import airsim +import time + +def RunConsoleCmd(client, cmd): + client.simRunConsoleCommand(cmd) + print(f"Running Unreal Console cmd '{cmd}' and sleeping for 1 second") + time.sleep(1.0) + +def RunCmdList(client): + RunConsoleCmd(client, 'stat fps') + RunConsoleCmd(client, 'stat unit') + RunConsoleCmd(client, 'stat unitGraph') + RunConsoleCmd(client, 'show COLLISION') + RunConsoleCmd(client, 'show CollisionVisibility') + RunConsoleCmd(client, 'stat game') + RunConsoleCmd(client, 'show COLLISION') + RunConsoleCmd(client, 'show CollisionVisibility') + RunConsoleCmd(client, 'stat game') + RunConsoleCmd(client, 'stat unitGraph') + RunConsoleCmd(client, 'stat unit') + RunConsoleCmd(client, 'stat fps') + +def main(): + client = airsim.client.MultirotorClient() + client.confirmConnection() + RunCmdList(client) + +if __name__ == "__main__": + main() diff --git a/src/airsim/PythonClient/environment/weather.py b/src/airsim/PythonClient/environment/weather.py new file mode 100644 index 0000000000..21f598c717 --- /dev/null +++ b/src/airsim/PythonClient/environment/weather.py @@ -0,0 +1,34 @@ +import setup_path +import airsim + + +client = airsim.VehicleClient() +client.confirmConnection() + +client.simEnableWeather(True) + +airsim.wait_key('Press any key to enable rain at 25%') +client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.25); + +airsim.wait_key('Press any key to enable rain at 75%') +client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.75); + +airsim.wait_key('Press any key to enable snow at 50%') +client.simSetWeatherParameter(airsim.WeatherParameter.Snow, 0.50); + +airsim.wait_key('Press any key to enable maple leaves at 50%') +client.simSetWeatherParameter(airsim.WeatherParameter.MapleLeaf, 0.50); + +airsim.wait_key('Press any key to set all effects to 0%') +client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.0); +client.simSetWeatherParameter(airsim.WeatherParameter.Snow, 0.0); +client.simSetWeatherParameter(airsim.WeatherParameter.MapleLeaf, 0.0); + +airsim.wait_key('Press any key to enable dust at 50%') +client.simSetWeatherParameter(airsim.WeatherParameter.Dust, 0.50); + +airsim.wait_key('Press any key to enable fog at 50%') +client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.50); + +airsim.wait_key('Press any key to disable all weather effects') +client.simEnableWeather(False) diff --git a/src/airsim/PythonClient/eventcamera_sim/event_simulator.py b/src/airsim/PythonClient/eventcamera_sim/event_simulator.py new file mode 100644 index 0000000000..a36f991177 --- /dev/null +++ b/src/airsim/PythonClient/eventcamera_sim/event_simulator.py @@ -0,0 +1,157 @@ +from numba.np.ufunc import parallel +import numpy as np +from types import SimpleNamespace +from numba import njit, prange, set_num_threads + +EVENT_TYPE = np.dtype( + [("timestamp", "f8"), ("x", "u2"), ("y", "u2"), ("polarity", "b")], align=True +) + +TOL = 0.5 +MINIMUM_CONTRAST_THRESHOLD = 0.01 + +CONFIG = SimpleNamespace( + **{ + "contrast_thresholds": (0.01, 0.01), + "sigma_contrast_thresholds": (0.0, 0.0), + "refractory_period_ns": 1000, + "max_events_per_frame": 200000, + } +) + + +@njit(parallel=True) +def esim( + x_end, + current_image, + previous_image, + delta_time, + crossings, + last_time, + output_events, + spikes, + refractory_period_ns, + max_events_per_frame, + n_pix_row, +): + count = 0 + max_spikes = int(delta_time / (refractory_period_ns * 1e-3)) + for x in prange(x_end): + itdt = np.log(current_image[x]) + it = np.log(previous_image[x]) + deltaL = itdt - it + + if np.abs(deltaL) < TOL: + continue + + pol = np.sign(deltaL) + + cross_update = pol * TOL + crossings[x] = np.log(crossings[x]) + cross_update + + lb = crossings[x] - it + ub = crossings[x] - itdt + + pos_check = lb > 0 and (pol == 1) and ub < 0 + neg_check = lb < 0 and (pol == -1) and ub > 0 + + spike_nums = (itdt - crossings[x]) / TOL + cross_check = pos_check + neg_check + spike_nums = np.abs(int(spike_nums * cross_check)) + + crossings[x] = itdt - cross_update + if spike_nums > 0: + spikes[x] = pol + + spike_nums = max_spikes if spike_nums > max_spikes else spike_nums + + current_time = last_time + for i in range(spike_nums): + output_events[count].x = x % n_pix_row + output_events[count].y = x // n_pix_row + output_events[count].timestamp = np.round(current_time * 1e-6, 6) + output_events[count].polarity = 1 if pol > 0 else -1 + + count += 1 + current_time += (delta_time) / spike_nums + + if count == max_events_per_frame: + return count + + return count + + +class EventSimulator: + def __init__(self, W, H, first_image=None, first_time=None, config=CONFIG): + self.H = H + self.W = W + self.config = config + self.last_image = None + if first_image is not None: + assert first_time is not None + self.init(first_image, first_time) + + self.npix = H * W + + def init(self, first_image, first_time): + print("Initialized event camera simulator with sensor size:", first_image.shape) + + self.resolution = first_image.shape # The resolution of the image + + # We ignore the 2D nature of the problem as it is not relevant here + # It makes multi-core processing more straightforward + first_image = first_image.reshape(-1) + + # Allocations + self.last_image = first_image.copy() + self.current_image = first_image.copy() + + self.last_time = first_time + + self.output_events = np.zeros( + (self.config.max_events_per_frame), dtype=EVENT_TYPE + ) + self.event_count = 0 + self.spikes = np.zeros((self.npix)) + + def image_callback(self, new_image, new_time): + if self.last_image is None: + self.init(new_image, new_time) + return None, None + + assert new_time > 0 + assert new_image.shape == self.resolution + new_image = new_image.reshape(-1) # Free operation + + np.copyto(self.current_image, new_image) + + delta_time = new_time - self.last_time + + config = self.config + self.output_events = np.zeros( + (self.config.max_events_per_frame), dtype=EVENT_TYPE + ) + self.spikes = np.zeros((self.npix)) + + self.crossings = self.last_image.copy() + self.event_count = esim( + self.current_image.size, + self.current_image, + self.last_image, + delta_time, + self.crossings, + self.last_time, + self.output_events, + self.spikes, + config.refractory_period_ns, + config.max_events_per_frame, + self.W, + ) + + np.copyto(self.last_image, self.current_image) + self.last_time = new_time + + result = self.output_events[: self.event_count] + result.sort(order=["timestamp"], axis=0) + + return self.spikes, result diff --git a/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py b/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py new file mode 100644 index 0000000000..22c0df9fad --- /dev/null +++ b/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py @@ -0,0 +1,112 @@ +import numpy as np +import airsim +import time +import cv2 +import matplotlib.pyplot as plt +import argparse +import sys, signal +import pandas as pd +import pickle +from event_simulator import * + +parser = argparse.ArgumentParser(description="Simulate event data from AirSim") +parser.add_argument("--debug", action="store_true") +parser.add_argument("--save", action="store_true") +parser.add_argument("--height", type=int, default=144) +parser.add_argument("--width", type=int, default=256) + + +class AirSimEventGen: + def __init__(self, W, H, save=False, debug=False): + self.ev_sim = EventSimulator(W, H) + self.H = H + self.W = W + + self.image_request = airsim.ImageRequest( + "0", airsim.ImageType.Scene, False, False + ) + + self.client = airsim.VehicleClient() + self.client.confirmConnection() + self.init = True + self.start_ts = None + + self.rgb_image_shape = [H, W, 3] + self.debug = debug + self.save = save + + self.event_file = open("events.pkl", "ab") + self.event_fmt = "%1.7f", "%d", "%d", "%d" + + if debug: + self.fig, self.ax = plt.subplots(1, 1) + + def visualize_events(self, event_img): + event_img = self.convert_event_img_rgb(event_img) + self.ax.cla() + self.ax.imshow(event_img, cmap="viridis") + plt.draw() + plt.pause(0.01) + + def convert_event_img_rgb(self, image): + image = image.reshape(self.H, self.W) + out = np.zeros((self.H, self.W, 3), dtype=np.uint8) + out[:, :, 0] = np.clip(image, 0, 1) * 255 + out[:, :, 2] = np.clip(image, -1, 0) * -255 + + return out + + def _stop_event_gen(self, signal, frame): + print("\nCtrl+C received. Stopping event sim...") + self.event_file.close() + sys.exit(0) + + +if __name__ == "__main__": + args = parser.parse_args() + + event_generator = AirSimEventGen(args.width, args.height, save=args.save, debug=args.debug) + i = 0 + start_time = 0 + t_start = time.time() + + signal.signal(signal.SIGINT, event_generator._stop_event_gen) + + while True: + image_request = airsim.ImageRequest("0", airsim.ImageType.Scene, False, False) + + response = event_generator.client.simGetImages([event_generator.image_request]) + while response[0].height == 0 or response[0].width == 0: + response = event_generator.client.simGetImages( + [event_generator.image_request] + ) + + ts = time.time_ns() + + if event_generator.init: + event_generator.start_ts = ts + event_generator.init = False + + img = np.reshape( + np.fromstring(response[0].image_data_uint8, dtype=np.uint8), + event_generator.rgb_image_shape, + ) + + img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY).astype(np.float32) + # Add small number to avoid issues with log(I) + img = cv2.add(img, 0.001) + + ts = time.time_ns() + ts_delta = (ts - event_generator.start_ts) * 1e-3 + + # Event sim keeps track of previous image automatically + event_img, events = event_generator.ev_sim.image_callback(img, ts_delta) + + if events is not None and events.shape[0] > 0: + if event_generator.save: + # Using pickle dump in a per-frame fashion to save time, instead of savetxt + # Optimizations possible + pickle.dump(events, event_generator.event_file) + + if event_generator.debug: + event_generator.visualize_events(event_img) diff --git a/src/airsim/PythonClient/imitation_learning/Cooking.py b/src/airsim/PythonClient/imitation_learning/Cooking.py new file mode 100644 index 0000000000..b546748552 --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/Cooking.py @@ -0,0 +1,225 @@ +import random +import csv +from PIL import Image +import numpy as np +import pandas as pd +import sys +import os +import errno +from collections import OrderedDict +import h5py +from pathlib import Path +import copy +import re + + +# This constant is used as an upper bound for normalizing the car's speed to be between 0 and 1 +MAX_SPEED = 70.0 + + + +def checkAndCreateDir(full_path): + """Checks if a given path exists and if not, creates the needed directories. + Inputs: + full_path: path to be checked + """ + if not os.path.exists(os.path.dirname(full_path)): + try: + os.makedirs(os.path.dirname(full_path)) + except OSError as exc: # Guard against race condition + if exc.errno != errno.EEXIST: + raise + +def readImagesFromPath(image_names): + """ Takes in a path and a list of image file names to be loaded and returns a list of all loaded images after resize. + Inputs: + image_names: list of image names + Returns: + List of all loaded and resized images + """ + returnValue = [] + for image_name in image_names: + im = Image.open(image_name) + imArr = np.asarray(im) + + #Remove alpha channel if exists + if len(imArr.shape) == 3 and imArr.shape[2] == 4: + if (np.all(imArr[:, :, 3] == imArr[0, 0, 3])): + imArr = imArr[:,:,0:3] + if len(imArr.shape) != 3 or imArr.shape[2] != 3: + print('Error: Image', image_name, 'is not RGB.') + sys.exit() + + returnIm = np.asarray(imArr) + + returnValue.append(returnIm) + return returnValue + + + +def splitTrainValidationAndTestData(all_data_mappings, split_ratio=(0.7, 0.2, 0.1)): + """Simple function to create train, validation and test splits on the data. + Inputs: + all_data_mappings: mappings from the entire dataset + split_ratio: (train, validation, test) split ratio + + Returns: + train_data_mappings: mappings for training data + validation_data_mappings: mappings for validation data + test_data_mappings: mappings for test data + + """ + if round(sum(split_ratio), 5) != 1.0: + print("Error: Your splitting ratio should add up to 1") + sys.exit() + + train_split = int(len(all_data_mappings) * split_ratio[0]) + val_split = train_split + int(len(all_data_mappings) * split_ratio[1]) + + train_data_mappings = all_data_mappings[0:train_split] + validation_data_mappings = all_data_mappings[train_split:val_split] + test_data_mappings = all_data_mappings[val_split:] + + return [train_data_mappings, validation_data_mappings, test_data_mappings] + +def generateDataMapAirSim(folders): + """ Data map generator for simulator(AirSim) data. Reads the driving_log csv file and returns a list of 'center camera image name - label(s)' tuples + Inputs: + folders: list of folders to collect data from + + Returns: + mappings: All data mappings as a dictionary. Key is the image filepath, the values are a 2-tuple: + 0 -> label(s) as a list of double + 1 -> previous state as a list of double + """ + + all_mappings = {} + for folder in folders: + print('Reading data from {0}...'.format(folder)) + current_df = pd.read_csv(os.path.join(folder, 'airsim_rec.txt'), sep='\t') + + for i in range(1, current_df.shape[0] - 1): + + + if current_df.iloc[i-1]['Brake'] != 0: # Consider only training examples without breaks + continue + + + norm_steering = [ (float(current_df.iloc[i-1][['Steering']]) + 1) / 2.0 ] # Normalize steering: between 0 and 1 + norm_throttle = [ float(current_df.iloc[i-1][['Throttle']]) ] + norm_speed = [ float(current_df.iloc[i-1][['Speed (kmph)']]) / MAX_SPEED ] # Normalize speed: between 0 and 1 + + + previous_state = norm_steering + norm_throttle + norm_speed # Append lists + + + #compute average steering over 3 consecutive recorded images, this will serve as the label + + norm_steering0 = (float(current_df.iloc[i][['Steering']]) + 1) / 2.0 + norm_steering1 = (float(current_df.iloc[i+1][['Steering']]) + 1) / 2.0 + + temp_sum_steering = norm_steering[0] + norm_steering0 + norm_steering1 + average_steering = temp_sum_steering / 3.0 + + current_label = [average_steering] + + image_filepath = os.path.join(os.path.join(folder, 'images'), current_df.iloc[i]['ImageName']).replace('\\', '/') + + if (image_filepath in all_mappings): + print('Error: attempting to add image {0} twice.'.format(image_filepath)) + + all_mappings[image_filepath] = (current_label, previous_state) + + mappings = [(key, all_mappings[key]) for key in all_mappings] + + random.shuffle(mappings) + + return mappings + + +def generatorForH5py(data_mappings, chunk_size=32): + """ + This function batches the data for saving to the H5 file + """ + for chunk_id in range(0, len(data_mappings), chunk_size): + # Data is expected to be a dict of + data_chunk = data_mappings[chunk_id:chunk_id + chunk_size] + if (len(data_chunk) == chunk_size): + image_names_chunk = [a for (a, b) in data_chunk] + labels_chunk = np.asarray([b[0] for (a, b) in data_chunk]) + previous_state_chunk = np.asarray([b[1] for (a, b) in data_chunk]) + + #Flatten and yield as tuple + yield (image_names_chunk, labels_chunk.astype(float), previous_state_chunk.astype(float)) + if chunk_id + chunk_size > len(data_mappings): + raise StopIteration + raise StopIteration + + +def saveH5pyData(data_mappings, target_file_path, chunk_size): + """ + Saves H5 data to file + """ + gen = generatorForH5py(data_mappings,chunk_size) + + image_names_chunk, labels_chunk, previous_state_chunk = next(gen) + images_chunk = np.asarray(readImagesFromPath(image_names_chunk)) + row_count = images_chunk.shape[0] + + checkAndCreateDir(target_file_path) + with h5py.File(target_file_path, 'w') as f: + + # Initialize a resizable dataset to hold the output + images_chunk_maxshape = (None,) + images_chunk.shape[1:] + labels_chunk_maxshape = (None,) + labels_chunk.shape[1:] + previous_state_maxshape = (None,) + previous_state_chunk.shape[1:] + + dset_images = f.create_dataset('image', shape=images_chunk.shape, maxshape=images_chunk_maxshape, + chunks=images_chunk.shape, dtype=images_chunk.dtype) + + dset_labels = f.create_dataset('label', shape=labels_chunk.shape, maxshape=labels_chunk_maxshape, + chunks=labels_chunk.shape, dtype=labels_chunk.dtype) + + dset_previous_state = f.create_dataset('previous_state', shape=previous_state_chunk.shape, maxshape=previous_state_maxshape, + chunks=previous_state_chunk.shape, dtype=previous_state_chunk.dtype) + + dset_images[:] = images_chunk + dset_labels[:] = labels_chunk + dset_previous_state[:] = previous_state_chunk + + for image_names_chunk, label_chunk, previous_state_chunk in gen: + image_chunk = np.asarray(readImagesFromPath(image_names_chunk)) + + # Resize the dataset to accommodate the next chunk of rows + dset_images.resize(row_count + image_chunk.shape[0], axis=0) + dset_labels.resize(row_count + label_chunk.shape[0], axis=0) + dset_previous_state.resize(row_count + previous_state_chunk.shape[0], axis=0) + # Create the next chunk + dset_images[row_count:] = image_chunk + dset_labels[row_count:] = label_chunk + dset_previous_state[row_count:] = previous_state_chunk + + # Increment the row count + row_count += image_chunk.shape[0] + + +def cook(folders, output_directory, train_eval_test_split, chunk_size): + """ Primary function for data pre-processing. Reads and saves all data as h5 files. + Inputs: + folders: a list of all data folders + output_directory: location for saving h5 files + train_eval_test_split: dataset split ratio + """ + output_files = [os.path.join(output_directory, f) for f in ['train.h5', 'eval.h5', 'test.h5']] + if (any([os.path.isfile(f) for f in output_files])): + print("Preprocessed data already exists at: {0}. Skipping preprocessing.".format(output_directory)) + + else: + all_data_mappings = generateDataMapAirSim(folders) + + split_mappings = splitTrainValidationAndTestData(all_data_mappings, split_ratio=train_eval_test_split) + + for i in range(0, len(split_mappings)-1, 1): + print('Processing {0}...'.format(output_files[i])) + saveH5pyData(split_mappings[i], output_files[i], chunk_size) + print('Finished saving {0}.'.format(output_files[i])) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/Generator.py b/src/airsim/PythonClient/imitation_learning/Generator.py new file mode 100644 index 0000000000..f4a874556b --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/Generator.py @@ -0,0 +1,342 @@ +from keras.preprocessing import image +import numpy as np +import keras.backend as K +import os +import cv2 +import PIL +from PIL import Image +from PIL import ImageChops +import cv2 + + +class DriveDataGenerator(image.ImageDataGenerator): + def __init__(self, + featurewise_center=False, + samplewise_center=False, + featurewise_std_normalization=False, + samplewise_std_normalization=False, + zca_whitening=False, + zca_epsilon=1e-6, + rotation_range=0., + width_shift_range=0., + height_shift_range=0., + shear_range=0., + zoom_range=0., + channel_shift_range=0., + fill_mode='nearest', + cval=0., + horizontal_flip=False, + vertical_flip=False, + rescale=None, + preprocessing_function=None, + data_format=None, + brighten_range=0): + super(DriveDataGenerator, self).__init__(featurewise_center, + samplewise_center, + featurewise_std_normalization, + samplewise_std_normalization, + zca_whitening, + zca_epsilon, + rotation_range, + width_shift_range, + height_shift_range, + shear_range, + zoom_range, + channel_shift_range, + fill_mode, + cval, + horizontal_flip, + vertical_flip, + rescale, + preprocessing_function, + data_format) + self.brighten_range = brighten_range + + def flow(self, x_images, x_prev_states = None, y=None, batch_size=32, shuffle=True, seed=None, + save_to_dir=None, save_prefix='', save_format='png', zero_drop_percentage=0.5, roi=None): + return DriveIterator( + x_images, x_prev_states, y, self, + batch_size=batch_size, + shuffle=shuffle, + seed=seed, + data_format=self.data_format, + save_to_dir=save_to_dir, + save_prefix=save_prefix, + save_format=save_format, + zero_drop_percentage=zero_drop_percentage, + roi=roi) + + def random_transform_with_states(self, x, seed=None): + """Randomly augment a single image tensor. + # Arguments + x: 3D tensor, single image. + seed: random seed. + # Returns + A tuple. 0 -> randomly transformed version of the input (same shape). 1 -> true if image was horizontally flipped, false otherwise + """ + img_row_axis = self.row_axis + img_col_axis = self.col_axis + img_channel_axis = self.channel_axis + + is_image_horizontally_flipped = False + + # use composition of homographies + # to generate final transform that needs to be applied + if self.rotation_range: + theta = np.pi / 180 * np.random.uniform(-self.rotation_range, self.rotation_range) + else: + theta = 0 + + if self.height_shift_range: + tx = np.random.uniform(-self.height_shift_range, self.height_shift_range) * x.shape[img_row_axis] + else: + tx = 0 + + if self.width_shift_range: + ty = np.random.uniform(-self.width_shift_range, self.width_shift_range) * x.shape[img_col_axis] + else: + ty = 0 + + if self.shear_range: + shear = np.random.uniform(-self.shear_range, self.shear_range) + else: + shear = 0 + + if self.zoom_range[0] == 1 and self.zoom_range[1] == 1: + zx, zy = 1, 1 + else: + zx, zy = np.random.uniform(self.zoom_range[0], self.zoom_range[1], 2) + + transform_matrix = None + if theta != 0: + rotation_matrix = np.array([[np.cos(theta), -np.sin(theta), 0], + [np.sin(theta), np.cos(theta), 0], + [0, 0, 1]]) + transform_matrix = rotation_matrix + + if tx != 0 or ty != 0: + shift_matrix = np.array([[1, 0, tx], + [0, 1, ty], + [0, 0, 1]]) + transform_matrix = shift_matrix if transform_matrix is None else np.dot(transform_matrix, shift_matrix) + + if shear != 0: + shear_matrix = np.array([[1, -np.sin(shear), 0], + [0, np.cos(shear), 0], + [0, 0, 1]]) + transform_matrix = shear_matrix if transform_matrix is None else np.dot(transform_matrix, shear_matrix) + + if zx != 1 or zy != 1: + zoom_matrix = np.array([[zx, 0, 0], + [0, zy, 0], + [0, 0, 1]]) + transform_matrix = zoom_matrix if transform_matrix is None else np.dot(transform_matrix, zoom_matrix) + + if transform_matrix is not None: + h, w = x.shape[img_row_axis], x.shape[img_col_axis] + transform_matrix = image.transform_matrix_offset_center(transform_matrix, h, w) + x = image.apply_transform(x, transform_matrix, img_channel_axis, + fill_mode=self.fill_mode, cval=self.cval) + + if self.channel_shift_range != 0: + x = image.random_channel_shift(x, + self.channel_shift_range, + img_channel_axis) + if self.horizontal_flip: + if np.random.random() < 0.5: + x = image.flip_axis(x, img_col_axis) + is_image_horizontally_flipped = True + + if self.vertical_flip: + if np.random.random() < 0.5: + x = image.flip_axis(x, img_row_axis) + + if self.brighten_range != 0: + random_bright = np.random.uniform(low = 1.0-self.brighten_range, high=1.0+self.brighten_range) + + img = cv2.cvtColor(x, cv2.COLOR_RGB2HSV) + img[:, :, 2] = np.clip(img[:, :, 2] * random_bright, 0, 255) + x = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) + + return (x, is_image_horizontally_flipped) + + + +class DriveIterator(image.Iterator): + """Iterator yielding data from a Numpy array. + + # Arguments + x: Numpy array of input data. + y: Numpy array of targets data. + image_data_generator: Instance of `ImageDataGenerator` + to use for random transformations and normalization. + batch_size: Integer, size of a batch. + shuffle: Boolean, whether to shuffle the data between epochs. + seed: Random seed for data shuffling. + data_format: String, one of `channels_first`, `channels_last`. + save_to_dir: Optional directory where to save the pictures + being yielded, in a viewable format. This is useful + for visualizing the random transformations being + applied, for debugging purposes. + save_prefix: String prefix to use for saving sample + images (if `save_to_dir` is set). + save_format: Format to use for saving sample images + (if `save_to_dir` is set). + """ + + def __init__(self, x_images, x_prev_states, y, image_data_generator, + batch_size=32, shuffle=False, seed=None, + data_format=None, + save_to_dir=None, save_prefix='', save_format='png', zero_drop_percentage = 0.5, roi = None): + if y is not None and len(x_images) != len(y): + raise ValueError('X (images tensor) and y (labels) ' + 'should have the same length. ' + 'Found: X.shape = %s, y.shape = %s' % + (np.asarray(x_images).shape, np.asarray(y).shape)) + + if data_format is None: + data_format = K.image_data_format() + + self.x_images = x_images + + self.zero_drop_percentage = zero_drop_percentage + self.roi = roi + + if self.x_images.ndim != 4: + raise ValueError('Input data in `NumpyArrayIterator` ' + 'should ave rank 4. You passed an array ' + 'with shape', self.x_images.shape) + channels_axis = 3 if data_format == 'channels_last' else 1 + if self.x_images.shape[channels_axis] not in {1, 3, 4}: + raise ValueError('NumpyArrayIterator is set to use the ' + 'data format convention "' + data_format + '" ' + '(channels on axis ' + str(channels_axis) + '), i.e. expected ' + 'either 1, 3 or 4 channels on axis ' + str(channels_axis) + '. ' + 'However, it was passed an array with shape ' + str(self.x_images.shape) + + ' (' + str(self.x_images.shape[channels_axis]) + ' channels).') + if x_prev_states is not None: + self.x_prev_states = x_prev_states + else: + self.x_prev_states = None + + if y is not None: + self.y = y + else: + self.y = None + self.image_data_generator = image_data_generator + self.data_format = data_format + self.save_to_dir = save_to_dir + self.save_prefix = save_prefix + self.save_format = save_format + self.batch_size = batch_size + super(DriveIterator, self).__init__(x_images.shape[0], batch_size, shuffle, seed) + + def next(self): + """For python 2.x. + + # Returns + The next batch. + """ + # Keeps under lock only the mechanism which advances + # the indexing of each batch. + with self.lock: + index_array = next(self.index_generator) + # The transformation of images is not under thread lock + # so it can be done in parallel + + return self.__get_indexes(index_array) + + def __get_indexes(self, index_array): + index_array = sorted(index_array) + if self.x_prev_states is not None: + batch_x_images = np.zeros(tuple([self.batch_size]+ list(self.x_images.shape)[1:]), + dtype=K.floatx()) + batch_x_prev_states = np.zeros(tuple([self.batch_size]+list(self.x_prev_states.shape)[1:]), dtype=K.floatx()) + else: + batch_x_images = np.zeros(tuple([self.batch_size] + list(self.x_images.shape)[1:]), dtype=K.floatx()) + + if self.roi is not None: + batch_x_images = batch_x_images[:, self.roi[0]:self.roi[1], self.roi[2]:self.roi[3], :] + + used_indexes = [] + is_horiz_flipped = [] + for i, j in enumerate(index_array): + x_images = self.x_images[j] + + if self.roi is not None: + x_images = x_images[self.roi[0]:self.roi[1], self.roi[2]:self.roi[3], :] + + + transformed = self.image_data_generator.random_transform_with_states(x_images.astype(K.floatx())) + x_images = transformed[0] + is_horiz_flipped.append(transformed[1]) + x_images = self.image_data_generator.standardize(x_images) + batch_x_images[i] = x_images + + if self.x_prev_states is not None: + x_prev_states = self.x_prev_states[j] + + if (transformed[1]): + x_prev_states[0] *= -1.0 + + batch_x_prev_states[i] = x_prev_states + + used_indexes.append(j) + + if self.x_prev_states is not None: + batch_x = [np.asarray(batch_x_images)] + else: + batch_x = np.asarray(batch_x_images) + + if self.save_to_dir: + for i in range(0, self.batch_size, 1): + hash = np.random.randint(1e4) + + img = image.array_to_img(batch_x_images[i], self.data_format, scale=True) + fname = '{prefix}_{index}_{hash}.{format}'.format(prefix=self.save_prefix, + index=1, + hash=hash, + format=self.save_format) + img.save(os.path.join(self.save_to_dir, fname)) + + batch_y = self.y[list(sorted(used_indexes))] + idx = [] + num_of_close_samples = 0 + num_of_non_close_samples = 0 + for i in range(0, len(is_horiz_flipped), 1): + if batch_y.shape[1] == 1: + + if (is_horiz_flipped[i]): + batch_y[i] *= -1 + + if (np.isclose(batch_y[i], 0.5, rtol=0.005, atol=0.005)): + num_of_close_samples += 1 + if (np.random.uniform(low=0, high=1) > self.zero_drop_percentage): + idx.append(True) + else: + idx.append(False) + else: + num_of_non_close_samples += 1 + idx.append(True) + else: + + if (batch_y[i][int(len(batch_y[i])/2)] == 1): + if (np.random.uniform(low=0, high=1) > self.zero_drop_percentage): + idx.append(True) + else: + idx.append(False) + else: + idx.append(True) + + if (is_horiz_flipped[i]): + batch_y[i] = batch_y[i][::-1] + + batch_y = batch_y[idx] + batch_x[0] = batch_x[0][idx] + + + return batch_x, batch_y + + def _get_batches_of_transformed_samples(self, index_array): + return self.__get_indexes(index_array) + diff --git a/src/airsim/PythonClient/imitation_learning/README.md b/src/airsim/PythonClient/imitation_learning/README.md new file mode 100644 index 0000000000..c8c7691569 --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/README.md @@ -0,0 +1,49 @@ +# Imitation Learning + +This section is about training a model to steer our Formula car using imitation learning. +The code in this section is based on the [Autonomous Driving Cookbook](https://github.com/Microsoft/AutonomousDrivingCookbook/tree/master/AirSimE2EDeepLearning) from Airsim and it's highly recommended to read the tutorial first. + +## Prerequisites +* Operating system: Windows 10 +* GPU: Nvidia GTX 1080 or higher (recommended) +* Software: Unreal Engine 4.24 and Visual Studio 2019 (see [upgrade instructions](../../docs/unreal_upgrade.md)) +* Development: CUDA 9.0 and python 3.5. +* Python libraries: Keras 2.1.2, TensorFlow 1.6.0. +* Note: Newer versions of keras or tensorflow are recommended but can cause syntax errors. + +## What's inside + +![imitation learning](https://github.com/microsoft/airsim/wiki/images/technion/imitation_learning_example.gif) +*Driving in simulation using trained imitation learning model, based on recorded data* + +Imitation learning includes the usage of labeled data as input to a training algorithm with the purpose of having the algorithm imitate the actions of people who recorded the data. + +![diagram](https://github.com/microsoft/airsim/wiki/images/technion/imitation_diagram.PNG) + +This diagram is represented by these files: + +**cook_data.py** +This file is responsible for preparing .h5 dataset files for the training procedure. +The code rely on having two adjacent folders: +'raw_data' - contains folders of recorded data by airsim's recording method. +'cooked_data' - empty folder to store the .h5 files. + +The flag "COOK_ALL_DATA" gives the option to choose all subfolders, or exclude some of them. + +**train_model.py** +This file is responsible to train a model using the .h5 dataset files. +The code rely on having two adjacent folders: +'cooked_data' - contains the .h5 dataset files. +'models' - empty folder to store the generated models. + +The file will preprocess the data, add augmentations and create a neural network model that predicts the next steering angle. + +**drive_model.py** +This file connects to the simulation in order to upload a trained model and drive using it. +By using the predicted steering value, the code calculates related control parameters and maintain driving with steady velocities. + +## Training Tips +We recommend on using augmentation and recording techniques. +We give here an example for two methods: +- [CycleLight](https://github.com/Microsoft/AirSim/wiki/graphic_features) - Animation of a day light cycle in a changeable, potentially very short period of time. +- Shifted images - Altering the camera’s position to the right or the left of the car, so that it can record images in extreme conditions. To simulate driving back to the center from those extreme situations, post-process the recorded angle of the steering accordingly (manually). diff --git a/src/airsim/PythonClient/imitation_learning/cook_data.py b/src/airsim/PythonClient/imitation_learning/cook_data.py new file mode 100644 index 0000000000..1dd2a43173 --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/cook_data.py @@ -0,0 +1,38 @@ +#%matplotlib inline +import numpy as np +import pandas as pd +import h5py +from matplotlib import use +use("TkAgg") +import matplotlib.pyplot as plt +from PIL import Image, ImageDraw +import os +import Cooking + +# chunk size for training batches +chunk_size = 32 + +# No test set needed, since testing in our case is running the model on an unseen map in AirSim +train_eval_test_split = [0.8, 0.2, 0.0] + +# Point this to the directory containing the raw data +RAW_DATA_DIR = './raw_data/' + +# Point this to the desired output directory for the cooked (.h5) data +COOKED_DATA_DIR = './cooked_data/' + +# Choose The folders to search for data under RAW_DATA_DIR +COOK_ALL_DATA = True + +data_folders = [] + +#if COOK_ALL_DATA is set to False, append your desired data folders here +# data_folder.append('folder_name1') +# data_folder.append('folder_name2') +# ... +if COOK_ALL_DATA: + data_folders = [name for name in os.listdir(RAW_DATA_DIR)] + + +full_path_raw_folders = [os.path.join(RAW_DATA_DIR, f) for f in data_folders] +Cooking.cook(full_path_raw_folders, COOKED_DATA_DIR, train_eval_test_split, chunk_size) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/drive_model.py b/src/airsim/PythonClient/imitation_learning/drive_model.py new file mode 100644 index 0000000000..25a67f780f --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/drive_model.py @@ -0,0 +1,76 @@ +import os +os.environ['TF_CPP_MIN_LOG_LEVEL']='2' +import tensorflow as tf +from keras.models import load_model +import sys +import time +import numpy as np + +import airsim + +import keras.backend as K +from keras.preprocessing import image +from PIL import Image, ImageDraw +import matplotlib.pyplot as plt + +# Trained model path +MODEL_PATH = './models/example_model.h5' + +model = load_model(MODEL_PATH) + +# Connect to AirSim +client = airsim.CarClient() +client.confirmConnection() +client.enableApiControl(True) +car_controls = airsim.CarControls() + +# Start driving +car_controls.steering = 0 +car_controls.throttle = 0 +car_controls.brake = 0 +client.setCarControls(car_controls) + +# Initialize image buffer +image_buf = np.zeros((1, 66, 200, 3)) + +def get_image(): + """ + Get image from AirSim client + """ + image_response = client.simGetImages([airsim.ImageRequest("0", airsim.ImageType.Scene, False, False)])[0] + image1d = np.fromstring(image_response.image_data_uint8, dtype=np.uint8) + image_rgb = image1d.reshape(image_response.height, image_response.width, 3) + return image_rgb[78:144,27:227,0:2].astype(float) + +while True: + # Update throttle value according to steering angle + if abs(car_controls.steering) <= 1.0: + car_controls.throttle = 0.8-(0.4*abs(car_controls.steering)) + else: + car_controls.throttle = 0.4 + + image_buf[0] = get_image() + image_buf[0] /= 255 # Normalization + + start_time = time.time() + + # Prediction + model_output = model.predict([image_buf]) + + end_time = time.time() + received_output = model_output[0][0] + + # Rescale prediction to [-1,1] and factor by 0.82 for drive smoothness + car_controls.steering = round((0.82*(float((model_output[0][0]*2.0)-1))), 2) + + # Print progress + print('Sending steering = {0}, throttle = {1}, prediction time = {2}'.format(received_output, car_controls.throttle,str(end_time-start_time))) + + # Update next car state + client.setCarControls(car_controls) + + # Wait a bit between iterations + time.sleep(0.05) + + +client.enableApiControl(False) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/setup_path.py b/src/airsim/PythonClient/imitation_learning/setup_path.py new file mode 100644 index 0000000000..362113fea8 --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,inspect,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/imitation_learning/train_model.py b/src/airsim/PythonClient/imitation_learning/train_model.py new file mode 100644 index 0000000000..ba56a112a5 --- /dev/null +++ b/src/airsim/PythonClient/imitation_learning/train_model.py @@ -0,0 +1,94 @@ +import os +os.environ['TF_CPP_MIN_LOG_LEVEL']='2' +import tensorflow as tf +from keras.preprocessing.image import ImageDataGenerator +from keras.models import Sequential, Model +from keras.layers.convolutional import Convolution2D +from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, Lambda, Input, concatenate +from keras.layers.core import Activation +from keras.layers.normalization import BatchNormalization +from keras.layers.advanced_activations import ELU, LeakyReLU +from keras.optimizers import Adam, SGD, Adamax, Nadam +from keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, CSVLogger, EarlyStopping +import keras.backend as K +from keras.preprocessing import image +from keras_tqdm import TQDMNotebookCallback +import json +import os +import numpy as np +import pandas as pd +from Generator import DriveDataGenerator +import h5py +import math + +# Hyper-parameters +batch_size = 32 +learning_rate = 0.0001 +number_of_epochs = 500 + +# Activation functions +activation = 'relu' +out_activation = 'sigmoid' + +#Stop training if in the last 20 epochs, there was no change of the best recorded validation loss +training_patience = 20 + + +# << The directory containing the cooked data from the previous step >> +COOKED_DATA_DIR = './cooked_data/' + +# << The directory in which the model output will be placed >> +MODEL_OUTPUT_DIR = './models/' + +train_dataset = h5py.File(os.path.join(COOKED_DATA_DIR, 'train.h5'), 'r') +eval_dataset = h5py.File(os.path.join(COOKED_DATA_DIR, 'eval.h5'), 'r') + +num_train_examples = train_dataset['image'].shape[0] +num_eval_examples = eval_dataset['image'].shape[0] + +# Use ROI of [78,144,27,227] for FOV 60 with Formula car +data_generator = DriveDataGenerator(rescale=1./255., horizontal_flip=False, brighten_range=0.4) +train_generator = data_generator.flow\ + (train_dataset['image'], train_dataset['previous_state'], train_dataset['label'], batch_size=batch_size, zero_drop_percentage=0.95, roi=[78,144,27,227]) +eval_generator = data_generator.flow\ + (eval_dataset['image'], eval_dataset['previous_state'], eval_dataset['label'], batch_size=batch_size, zero_drop_percentage=0.95, roi=[78,144,27,227]) + +[sample_batch_train_data, sample_batch_test_data] = next(train_generator) + +image_input_shape = sample_batch_train_data[0].shape[1:] + +pic_input = Input(shape=image_input_shape) + +#Network definition +img_stack = Conv2D(24, (5, 5), name="conv1", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(pic_input) +img_stack = Conv2D(36, (5, 5), name="conv2", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) +img_stack = Conv2D(48, (5, 5), name="conv3", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) + +img_stack = Dropout(0.5)(img_stack) + +img_stack = Conv2D(64, (3, 3), name="conv4", strides=(1, 1), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) +img_stack = Conv2D(64, (3, 3), name="conv5", strides=(1, 1), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) + +img_stack = Flatten(name = 'flatten')(img_stack) + +img_stack = Dense(100, name="fc2", activation=activation,kernel_initializer="he_normal")(img_stack) +img_stack = Dense(50, name="fc3", activation=activation, kernel_initializer="he_normal")(img_stack) +img_stack = Dense(10, name="fc4", activation=activation, kernel_initializer="he_normal")(img_stack) +img_stack = Dense(1, name="output", activation = out_activation, kernel_initializer="he_normal")(img_stack) + +adam = Adam(lr=learning_rate, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) + +model = Model(inputs=[pic_input], outputs=img_stack) +model.compile(optimizer=adam, loss='mse') + +model.summary() + +plateau_callback = ReduceLROnPlateau(monitor="val_loss", factor=0.5, patience=3, min_lr=learning_rate, verbose=1) +csv_callback = CSVLogger(os.path.join(MODEL_OUTPUT_DIR, 'training_log.csv')) +checkpoint_filepath = os.path.join(MODEL_OUTPUT_DIR, 'fresh_models', '{0}_model.{1}-{2}.h5'.format('model', '{epoch:02d}', '{val_loss:.7f}')) +checkpoint_callback = ModelCheckpoint(checkpoint_filepath, save_best_only=True, verbose=1) +early_stopping_callback = EarlyStopping(monitor="val_loss", patience=training_patience, verbose=1) +callbacks=[plateau_callback, csv_callback, checkpoint_callback, early_stopping_callback, TQDMNotebookCallback()] + +history = model.fit_generator(train_generator, steps_per_epoch=num_train_examples//batch_size, epochs=number_of_epochs, callbacks=callbacks,\ + validation_data=eval_generator, validation_steps=num_eval_examples//batch_size, verbose=2) diff --git a/src/airsim/PythonClient/multirotor/Error.wav b/src/airsim/PythonClient/multirotor/Error.wav new file mode 100644 index 0000000000000000000000000000000000000000..c4a01cb2b4b7af6445d018a7407d2d55d2378b44 GIT binary patch literal 331108 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 M^?xJq|C6u(0no9T(f|Me literal 0 HcmV?d00001 diff --git a/src/airsim/PythonClient/multirotor/add_drone.py b/src/airsim/PythonClient/multirotor/add_drone.py new file mode 100644 index 0000000000..fd740dd5d5 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/add_drone.py @@ -0,0 +1,46 @@ +import setup_path +import airsim +import tempfile +import os +import numpy as np +import cv2 +import pprint + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() + +# add new vehicle +vehicle_name = "Drone2" +pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)) + +client.simAddVehicle(vehicle_name, "simpleflight", pose) +client.enableApiControl(True, vehicle_name) +client.armDisarm(True, vehicle_name) +client.takeoffAsync(10.0, vehicle_name) + +requests = [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 + +responses = client.simGetImages(requests, vehicle_name=vehicle_name) +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, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) + airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) + else: + print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/arm.py b/src/airsim/PythonClient/multirotor/arm.py new file mode 100644 index 0000000000..addf1fe6a1 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/arm.py @@ -0,0 +1,6 @@ +import setup_path +import airsim + +client = airsim.MultirotorClient() +client.confirmConnection() +client.armDisarm(True) diff --git a/src/airsim/PythonClient/multirotor/box.py b/src/airsim/PythonClient/multirotor/box.py new file mode 100644 index 0000000000..83b2c7d121 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/box.py @@ -0,0 +1,48 @@ +import setup_path +import airsim + +import sys +import time + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) +client.takeoffAsync().join() + +print("Flying a small square box using moveByVelocityZ") + +# AirSim uses NED coordinates so negative axis is up. +# z of -7 is 7 meters above the original launch point. +z = -7 + +# Fly given velocity vector for 5 seconds +duration = 5 +speed = 1 +delay = duration * speed + +# using airsim.DrivetrainType.MaxDegreeOfFreedom means we can control the drone yaw independently +# from the direction the drone is flying. I've set values here that make the drone always point inwards +# towards the inside of the box (which would be handy if you are building a 3d scan of an object in the real world). +vx = speed +vy = 0 +print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy) + ", yaw=90") +client.moveByVelocityZAsync(vx,vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 90)).join() +time.sleep(delay) +vx = 0 +vy = speed +print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy)+ ", yaw=180") +client.moveByVelocityZAsync(vx,vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 180)).join() +time.sleep(delay) +vx = -speed +vy = 0 +print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy)+ ", yaw=270") +client.moveByVelocityZAsync(vx, vy, z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 270)).join() +time.sleep(delay) +vx = 0 +vy = -speed +print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy) + ", yaw=0") +client.moveByVelocityZAsync(vx, vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 0)).join() +time.sleep(delay) +client.hoverAsync().join() +client.landAsync().join() diff --git a/src/airsim/PythonClient/multirotor/clock_speed.py b/src/airsim/PythonClient/multirotor/clock_speed.py new file mode 100644 index 0000000000..1a9064fc1c --- /dev/null +++ b/src/airsim/PythonClient/multirotor/clock_speed.py @@ -0,0 +1,36 @@ +import setup_path +import airsim + +import time + +# Run this script with clock speed in settings.json +# "ClockSpeed": 1 then change it to 0.5 + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +vx = vy = 0 +z = -20 +duration = 3 + +# with ClockSpeed = 0.5 you will see that this takes 6s (system time) and not 3s +client.moveByVelocityZAsync(vx, vy, z, duration).join() + + +while True: + vx = vy = 5 + z = -20 + duration = 5 + # with ClockSpeed = 0.5 you will see that this takes 10s (system time) + #and not 5s in each iteration + client.moveByVelocityZAsync(vx, vy, z, duration).join() + time.sleep(10) + +client.armDisarm(False) +client.reset() + +# that's enough fun for now. let's quit cleanly +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/disarm.py b/src/airsim/PythonClient/multirotor/disarm.py new file mode 100644 index 0000000000..9cee1045e1 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/disarm.py @@ -0,0 +1,5 @@ +import setup_path +import airsim + +client = airsim.MultirotorClient() +client.armDisarm(False) diff --git a/src/airsim/PythonClient/multirotor/drone_lidar.py b/src/airsim/PythonClient/multirotor/drone_lidar.py new file mode 100644 index 0000000000..5e7a00bc13 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/drone_lidar.py @@ -0,0 +1,93 @@ +# Python client example to get Lidar data from a drone +# + +import setup_path +import airsim + +import sys +import math +import time +import argparse +import pprint +import numpy + +# Makes the drone fly and get Lidar data +class LidarTest: + + def __init__(self): + + # connect to the AirSim simulator + self.client = airsim.MultirotorClient() + self.client.confirmConnection() + self.client.enableApiControl(True) + + def execute(self): + + print("arming the drone...") + self.client.armDisarm(True) + + state = self.client.getMultirotorState() + s = pprint.pformat(state) + #print("state: %s" % s) + + airsim.wait_key('Press any key to takeoff') + self.client.takeoffAsync().join() + + state = self.client.getMultirotorState() + #print("state: %s" % pprint.pformat(state)) + + airsim.wait_key('Press any key to move vehicle to (-10, 10, -10) at 5 m/s') + self.client.moveToPositionAsync(-10, 10, -10, 5).join() + + self.client.hoverAsync().join() + + airsim.wait_key('Press any key to get Lidar readings') + + for i in range(1,5): + lidarData = self.client.getLidarData(); + if (len(lidarData.point_cloud) < 3): + print("\tNo points received from Lidar data") + else: + points = self.parse_lidarData(lidarData) + print("\tReading %d: time_stamp: %d number_of_points: %d" % (i, lidarData.time_stamp, len(points))) + print("\t\tlidar position: %s" % (pprint.pformat(lidarData.pose.position))) + print("\t\tlidar orientation: %s" % (pprint.pformat(lidarData.pose.orientation))) + time.sleep(5) + + def parse_lidarData(self, data): + + # reshape array of floats to array of [X,Y,Z] + points = numpy.array(data.point_cloud, dtype=numpy.dtype('f4')) + points = numpy.reshape(points, (int(points.shape[0]/3), 3)) + + return points + + def write_lidarData_to_disk(self, points): + # TODO + print("not yet implemented") + + def stop(self): + + airsim.wait_key('Press any key to reset to original state') + + self.client.armDisarm(False) + self.client.reset() + + self.client.enableApiControl(False) + print("Done!\n") + +# main +if __name__ == "__main__": + args = sys.argv + args.pop(0) + + arg_parser = argparse.ArgumentParser("Lidar.py makes drone fly and gets Lidar data") + + arg_parser.add_argument('-save-to-disk', type=bool, help="save Lidar data to disk", default=False) + + args = arg_parser.parse_args(args) + lidarTest = LidarTest() + try: + lidarTest.execute() + finally: + lidarTest.stop() diff --git a/src/airsim/PythonClient/multirotor/drone_stress_test.py b/src/airsim/PythonClient/multirotor/drone_stress_test.py new file mode 100644 index 0000000000..8a7a1ac212 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/drone_stress_test.py @@ -0,0 +1,21 @@ +import setup_path +import airsim + +# this script moves the drone to a location, then rests it thousands of time +# purpose of this script is to stress test reset API + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + + +for idx in range(3000): + client.moveToPositionAsync(0, 0, -10, 5).join() + client.reset() + client.enableApiControl(True) + print("%d" % idx) + +# that's enough fun for now. let's quite cleanly +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/external_physics_engine.py b/src/airsim/PythonClient/multirotor/external_physics_engine.py new file mode 100644 index 0000000000..efb050b64f --- /dev/null +++ b/src/airsim/PythonClient/multirotor/external_physics_engine.py @@ -0,0 +1,34 @@ +import setup_path +import airsim +import time + +# This example shows how to use the External Physics Engine +# It allows you to control the drone through setVehiclePose and obtain collision information. +# It is especially useful for injecting your own flight dynamics model to the AirSim drone. + +# Use Blocks environment to see the drone colliding and seeing the collision information +# in the command prompt. + +# Add this line to your settings.json before running AirSim: +# "PhysicsEngineName":"ExternalPhysicsEngine" + + +client = airsim.VehicleClient() +client.confirmConnection() +pose = client.simGetVehiclePose() + +pose.orientation = airsim.to_quaternion(0.1, 0.1, 0.1) +client.simSetVehiclePose( pose, False ) + +for i in range(900): + print(i) + pose = client.simGetVehiclePose() + pose.position = pose.position + airsim.Vector3r(0.03, 0, 0) + pose.orientation = pose.orientation + airsim.to_quaternion(0.1, 0.1, 0.1) + client.simSetVehiclePose( pose, False ) + time.sleep(0.003) + collision = client.simGetCollisionInfo() + if collision.has_collided: + print(collision) + +client.reset() \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/gimbal.py b/src/airsim/PythonClient/multirotor/gimbal.py new file mode 100644 index 0000000000..45beb6a232 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/gimbal.py @@ -0,0 +1,25 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +# MultirotorClient.wait_key('Press any key to takeoff') +print("Taking off") +client.takeoffAsync().join() +print("Ready") + +for i in range(5): + client.moveToPositionAsync(float(-50.00), float( 50.26), float( -20.58), float( 3.5)) + time.sleep(6) + camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0.5, 0.5, 0.1)) + client.simSetCameraPose("0", camera_pose) + client.moveToPositionAsync(float(50.00), float( -50.26), float( -10.58), float( 3.5)) + time.sleep(6) + camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(-0.5, -0.5, -0.1)) + client.simSetCameraPose("0", camera_pose) diff --git a/src/airsim/PythonClient/multirotor/hello_drone.py b/src/airsim/PythonClient/multirotor/hello_drone.py new file mode 100644 index 0000000000..a9b4a4fa9c --- /dev/null +++ b/src/airsim/PythonClient/multirotor/hello_drone.py @@ -0,0 +1,90 @@ +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) + +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') +print("Taking off...") +client.armDisarm(True) +client.takeoffAsync().join() + +state = client.getMultirotorState() +print("state: %s" % pprint.pformat(state)) + +airsim.wait_key('Press any key to move vehicle to (-10, 10, -10) at 5 m/s') +client.moveToPositionAsync(-10, 10, -10, 5).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.reset() +client.armDisarm(False) + +# that's enough fun for now. let's quit cleanly +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/high_res_camera.py b/src/airsim/PythonClient/multirotor/high_res_camera.py new file mode 100644 index 0000000000..151383f444 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/high_res_camera.py @@ -0,0 +1,61 @@ +import airsim +from datetime import datetime + +''' +Simple script with settings to create a high-resolution camera, and fetching it + +Settings used- +{ + "SettingsVersion": 1.2, + "SimMode": "Multirotor", + "Vehicles" : { + "Drone1" : { + "VehicleType" : "SimpleFlight", + "AutoCreate" : true, + "Cameras" : { + "high_res": { + "CaptureSettings" : [ + { + "ImageType" : 0, + "Width" : 4320, + "Height" : 2160 + } + ], + "X": 0.50, "Y": 0.00, "Z": 0.10, + "Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0 + }, + "low_res": { + "CaptureSettings" : [ + { + "ImageType" : 0, + "Width" : 256, + "Height" : 144 + } + ], + "X": 0.50, "Y": 0.00, "Z": 0.10, + "Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0 + } + } + } + } +} +''' + +client = airsim.VehicleClient() +client.confirmConnection() +framecounter = 1 + +prevtimestamp = datetime.now() + +while(framecounter <= 500): + if framecounter%150 == 0: + client.simGetImages([airsim.ImageRequest("high_res", airsim.ImageType.Scene, False, False)]) + print("High resolution image captured.") + + if framecounter%30 == 0: + now = datetime.now() + print(f"Time spent for 30 frames: {now-prevtimestamp}") + prevtimestamp = now + + client.simGetImages([airsim.ImageRequest("low_res", airsim.ImageType.Scene, False, False)]) + framecounter += 1 diff --git a/src/airsim/PythonClient/multirotor/kinect_publisher.py b/src/airsim/PythonClient/multirotor/kinect_publisher.py new file mode 100644 index 0000000000..a36c5f6038 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/kinect_publisher.py @@ -0,0 +1,225 @@ +import rospy +from sensor_msgs.msg import Image,CameraInfo +from tf2_msgs.msg import TFMessage +from geometry_msgs.msg import TransformStamped +from cv_bridge import CvBridge +import airsim +import cv2 +import numpy as np + +CLAHE_ENABLED = False # when enabled, RGB image is enhanced using CLAHE + +CAMERA_FX = 320 +CAMERA_FY = 320 +CAMERA_CX = 320 +CAMERA_CY = 240 + +CAMERA_K1 = -0.000591 +CAMERA_K2 = 0.000519 +CAMERA_P1 = 0.000001 +CAMERA_P2 = -0.000030 +CAMERA_P3 = 0.0 + +IMAGE_WIDTH = 640 # resolution should match values in settings.json +IMAGE_HEIGHT = 480 + + +class KinectPublisher: + def __init__(self): + self.bridge_rgb = CvBridge() + self.msg_rgb = Image() + self.bridge_d = CvBridge() + self.msg_d = Image() + self.msg_info = CameraInfo() + self.msg_tf = TFMessage() + + def getDepthImage(self,response_d): + img_depth = np.array(response_d.image_data_float, dtype=np.float32) + img_depth = img_depth.reshape(response_d.height, response_d.width) + return img_depth + + def getRGBImage(self,response_rgb): + img1d = np.fromstring(response_rgb.image_data_uint8, dtype=np.uint8) + img_rgb = img1d.reshape(response_rgb.height, response_rgb.width, 3) + img_rgb = img_rgb[..., :3][..., ::-1] + return img_rgb + + def enhanceRGB(self,img_rgb): + lab = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2LAB) + lab_planes = cv2.split(lab) + clahe = cv2.createCLAHE(clipLimit=2.5, tileGridSize=(10, 10)) + lab_planes[0] = clahe.apply(lab_planes[0]) + lab = cv2.merge(lab_planes) + img_rgb = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR) + return img_rgb + + def GetCurrentTime(self): + self.ros_time = rospy.Time.now() + + def CreateRGBMessage(self,img_rgb): + self.msg_rgb.header.stamp = self.ros_time + self.msg_rgb.header.frame_id = "camera_rgb_optical_frame" + self.msg_rgb.encoding = "bgr8" + self.msg_rgb.height = IMAGE_HEIGHT + self.msg_rgb.width = IMAGE_WIDTH + self.msg_rgb.data = self.bridge_rgb.cv2_to_imgmsg(img_rgb, "bgr8").data + self.msg_rgb.is_bigendian = 0 + self.msg_rgb.step = self.msg_rgb.width * 3 + return self.msg_rgb + + def CreateDMessage(self,img_depth): + self.msg_d.header.stamp = self.ros_time + self.msg_d.header.frame_id = "camera_depth_optical_frame" + self.msg_d.encoding = "32FC1" + self.msg_d.height = IMAGE_HEIGHT + self.msg_d.width = IMAGE_WIDTH + self.msg_d.data = self.bridge_d.cv2_to_imgmsg(img_depth, "32FC1").data + self.msg_d.is_bigendian = 0 + self.msg_d.step = self.msg_d.width * 4 + return self.msg_d + + def CreateInfoMessage(self): + self.msg_info.header.frame_id = "camera_rgb_optical_frame" + self.msg_info.height = self.msg_rgb.height + self.msg_info.width = self.msg_rgb.width + self.msg_info.distortion_model = "plumb_bob" + + self.msg_info.D.append(CAMERA_K1) + self.msg_info.D.append(CAMERA_K2) + self.msg_info.D.append(CAMERA_P1) + self.msg_info.D.append(CAMERA_P2) + self.msg_info.D.append(CAMERA_P3) + + self.msg_info.K[0] = CAMERA_FX + self.msg_info.K[1] = 0 + self.msg_info.K[2] = CAMERA_CX + self.msg_info.K[3] = 0 + self.msg_info.K[4] = CAMERA_FY + self.msg_info.K[5] = CAMERA_CY + self.msg_info.K[6] = 0 + self.msg_info.K[7] = 0 + self.msg_info.K[8] = 1 + + self.msg_info.R[0] = 1 + self.msg_info.R[1] = 0 + self.msg_info.R[2] = 0 + self.msg_info.R[3] = 0 + self.msg_info.R[4] = 1 + self.msg_info.R[5] = 0 + self.msg_info.R[6] = 0 + self.msg_info.R[7] = 0 + self.msg_info.R[8] = 1 + + self.msg_info.P[0] = CAMERA_FX + self.msg_info.P[1] = 0 + self.msg_info.P[2] = CAMERA_CX + self.msg_info.P[3] = 0 + self.msg_info.P[4] = 0 + self.msg_info.P[5] = CAMERA_FY + self.msg_info.P[6] = CAMERA_CY + self.msg_info.P[7] = 0 + self.msg_info.P[8] = 0 + self.msg_info.P[9] = 0 + self.msg_info.P[10] = 1 + self.msg_info.P[11] = 0 + + self.msg_info.binning_x = self.msg_info.binning_y = 0 + self.msg_info.roi.x_offset = self.msg_info.roi.y_offset = self.msg_info.roi.height = self.msg_info.roi.width = 0 + self.msg_info.roi.do_rectify = False + self.msg_info.header.stamp = self.msg_rgb.header.stamp + return self.msg_info + + def CreateTFMessage(self): + self.msg_tf.transforms.append(TransformStamped()) + self.msg_tf.transforms[0].header.stamp = self.ros_time + self.msg_tf.transforms[0].header.frame_id = "/camera_link" + self.msg_tf.transforms[0].child_frame_id = "/camera_rgb_frame" + self.msg_tf.transforms[0].transform.translation.x = 0.000 + self.msg_tf.transforms[0].transform.translation.y = 0 + self.msg_tf.transforms[0].transform.translation.z = 0.000 + self.msg_tf.transforms[0].transform.rotation.x = 0.00 + self.msg_tf.transforms[0].transform.rotation.y = 0.00 + self.msg_tf.transforms[0].transform.rotation.z = 0.00 + self.msg_tf.transforms[0].transform.rotation.w = 1.00 + + self.msg_tf.transforms.append(TransformStamped()) + self.msg_tf.transforms[1].header.stamp = self.ros_time + self.msg_tf.transforms[1].header.frame_id = "/camera_rgb_frame" + self.msg_tf.transforms[1].child_frame_id = "/camera_rgb_optical_frame" + self.msg_tf.transforms[1].transform.translation.x = 0.000 + self.msg_tf.transforms[1].transform.translation.y = 0.000 + self.msg_tf.transforms[1].transform.translation.z = 0.000 + self.msg_tf.transforms[1].transform.rotation.x = -0.500 + self.msg_tf.transforms[1].transform.rotation.y = 0.500 + self.msg_tf.transforms[1].transform.rotation.z = -0.500 + self.msg_tf.transforms[1].transform.rotation.w = 0.500 + + self.msg_tf.transforms.append(TransformStamped()) + self.msg_tf.transforms[2].header.stamp = self.ros_time + self.msg_tf.transforms[2].header.frame_id = "/camera_link" + self.msg_tf.transforms[2].child_frame_id = "/camera_depth_frame" + self.msg_tf.transforms[2].transform.translation.x = 0 + self.msg_tf.transforms[2].transform.translation.y = 0 + self.msg_tf.transforms[2].transform.translation.z = 0 + self.msg_tf.transforms[2].transform.rotation.x = 0.00 + self.msg_tf.transforms[2].transform.rotation.y = 0.00 + self.msg_tf.transforms[2].transform.rotation.z = 0.00 + self.msg_tf.transforms[2].transform.rotation.w = 1.00 + + self.msg_tf.transforms.append(TransformStamped()) + self.msg_tf.transforms[3].header.stamp = self.ros_time + self.msg_tf.transforms[3].header.frame_id = "/camera_depth_frame" + self.msg_tf.transforms[3].child_frame_id = "/camera_depth_optical_frame" + self.msg_tf.transforms[3].transform.translation.x = 0.000 + self.msg_tf.transforms[3].transform.translation.y = 0.000 + self.msg_tf.transforms[3].transform.translation.z = 0.000 + self.msg_tf.transforms[3].transform.rotation.x = -0.500 + self.msg_tf.transforms[3].transform.rotation.y = 0.500 + self.msg_tf.transforms[3].transform.rotation.z = -0.500 + self.msg_tf.transforms[3].transform.rotation.w = 0.500 + return self.msg_tf + + +if __name__ == "__main__": + client = airsim.MultirotorClient() + client.confirmConnection() + client.enableApiControl(True) + client.armDisarm(True) + rospy.init_node('airsim_publisher', anonymous=True) + publisher_d = rospy.Publisher('/camera/depth_registered/image_raw', Image, queue_size=1) + publisher_rgb = rospy.Publisher('/camera/rgb/image_rect_color', Image, queue_size=1) + publisher_info = rospy.Publisher('/camera/rgb/camera_info', CameraInfo, queue_size=1) + publisher_tf = rospy.Publisher('/tf', TFMessage, queue_size=1) + rate = rospy.Rate(30) # 30hz + pub = KinectPublisher() + + while not rospy.is_shutdown(): + responses = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.DepthPlanar, True, False), + airsim.ImageRequest(0, airsim.ImageType.Scene, False, False)]) + img_depth = pub.getDepthImage(responses[0]) + img_rgb = pub.getRGBImage(responses[1]) + + if CLAHE_ENABLED: + img_rgb = pub.enhanceRGB(img_rgb) + + pub.GetCurrentTime() + msg_rgb = pub.CreateRGBMessage(img_rgb) + msg_d = pub.CreateDMessage(img_depth) + msg_info = pub.CreateInfoMessage() + msg_tf = pub.CreateTFMessage() + + publisher_rgb.publish(msg_rgb) + publisher_d.publish(msg_d) + publisher_info.publish(msg_info) + publisher_tf.publish(msg_tf) + + del pub.msg_info.D[:] + del pub.msg_tf.transforms[:] + + rate.sleep() + + + + + + diff --git a/src/airsim/PythonClient/multirotor/land.py b/src/airsim/PythonClient/multirotor/land.py new file mode 100644 index 0000000000..db73190c09 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/land.py @@ -0,0 +1,17 @@ +import setup_path +import airsim + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +landed = client.getMultirotorState().landed_state +if landed == airsim.LandedState.Landed: + print("already landed...") +else: + print("landing...") + client.landAsync().join() + +client.armDisarm(False) +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/line_of_sight.py b/src/airsim/PythonClient/multirotor/line_of_sight.py new file mode 100644 index 0000000000..43083c6210 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/line_of_sight.py @@ -0,0 +1,34 @@ +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) + +home = client.getHomeGeoPoint() +print("home:\n%s" % home) + +target = home +target.latitude -= 1 + +result = client.simTestLineOfSightToPoint(target) +print("test line of sight from vehicle to\n%s\n\t:%s" %(target, result)) + +result = client.simTestLineOfSightBetweenPoints(home, target) +print("test line of sight from home to\n%s\n\t:%s" %(target, result)) + +result = client.simGetWorldExtents() +print("world extents:\n%s\n\t-\n%s" %(result[0], result[1])) + +client.reset() +client.armDisarm(False) + +# that's enough fun for now. let's quit cleanly +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/manual_mode_demo.py b/src/airsim/PythonClient/multirotor/manual_mode_demo.py new file mode 100644 index 0000000000..52e310b1d6 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/manual_mode_demo.py @@ -0,0 +1,28 @@ +""" +For connecting to the AirSim drone environment and testing API functionality +""" +import setup_path +import airsim + +import os +import tempfile +import pprint + +# 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) + +client.moveByManualAsync(vx_max = 1E6, vy_max = 1E6, z_min = -1E6, duration = 1E10) +airsim.wait_key('Manual mode is setup. Press any key to send RC data to takeoff') + +client.moveByRC(rcdata = airsim.RCData(pitch = 0.0, throttle = 1.0, is_initialized = True, is_valid = True)) + +airsim.wait_key('Set Yaw and pitch to 0.5') + +client.moveByRC(rcdata = airsim.RCData(roll = 0.5, throttle = 1.0, yaw = 0.5, is_initialized = True, is_valid = True)) diff --git a/src/airsim/PythonClient/multirotor/multi_agent_drone.py b/src/airsim/PythonClient/multirotor/multi_agent_drone.py new file mode 100644 index 0000000000..2338b14962 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/multi_agent_drone.py @@ -0,0 +1,103 @@ +import airsim +import cv2 +import numpy as np +import os +import pprint +import setup_path +import tempfile + +# Use below in settings.json with Blocks environment +""" +{ + "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md", + "SettingsVersion": 1.2, + "SimMode": "Multirotor", + "ClockSpeed": 1, + + "Vehicles": { + "Drone1": { + "VehicleType": "SimpleFlight", + "X": 4, "Y": 0, "Z": -2 + }, + "Drone2": { + "VehicleType": "SimpleFlight", + "X": 8, "Y": 0, "Z": -2 + } + + } +} +""" + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True, "Drone1") +client.enableApiControl(True, "Drone2") +client.armDisarm(True, "Drone1") +client.armDisarm(True, "Drone2") + +airsim.wait_key('Press any key to takeoff') +f1 = client.takeoffAsync(vehicle_name="Drone1") +f2 = client.takeoffAsync(vehicle_name="Drone2") +f1.join() +f2.join() + +state1 = client.getMultirotorState(vehicle_name="Drone1") +s = pprint.pformat(state1) +print("state: %s" % s) +state2 = client.getMultirotorState(vehicle_name="Drone2") +s = pprint.pformat(state2) +print("state: %s" % s) + +airsim.wait_key('Press any key to move vehicles') +f1 = client.moveToPositionAsync(-5, 5, -10, 5, vehicle_name="Drone1") +f2 = client.moveToPositionAsync(5, -5, -10, 5, vehicle_name="Drone2") +f1.join() +f2.join() + +airsim.wait_key('Press any key to take images') +# get camera images from the car +responses1 = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], vehicle_name="Drone1") #scene vision image in uncompressed RGB array +print('Drone1: Retrieved images: %d' % len(responses1)) +responses2 = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], vehicle_name="Drone2") #scene vision image in uncompressed RGB array +print('Drone2: Retrieved images: %d' % len(responses2)) + +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(responses1 + responses2): + + 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 3 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, "Drone1") +client.armDisarm(False, "Drone2") +client.reset() + +# that's enough fun for now. let's quit cleanly +client.enableApiControl(False, "Drone1") +client.enableApiControl(False, "Drone2") + + diff --git a/src/airsim/PythonClient/multirotor/navigate.py b/src/airsim/PythonClient/multirotor/navigate.py new file mode 100644 index 0000000000..6d2ccdc9bc --- /dev/null +++ b/src/airsim/PythonClient/multirotor/navigate.py @@ -0,0 +1,98 @@ +# use open cv to show new images from AirSim + +import setup_path +import airsim + +# requires Python 3.5.3 :: Anaconda 4.4.0 +# pip install opencv-python +import cv2 +import time +import math +import sys +import numpy as np + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) +client.takeoffAsync().join() + +# you must first press "1" in the AirSim view to turn on the depth capture + +# get depth image +yaw = 0 +pi = 3.14159265483 +vx = 0 +vy = 0 +driving = 0 +help = False + +while True: + # this will return png width= 256, height= 144 + result = client.simGetImage("0", airsim.ImageType.DepthVis) + if (result == "\0"): + if (not help): + help = True + print("Please press '1' in the AirSim view to enable the Depth camera view") + else: + rawImage = np.fromstring(result, np.int8) + png = cv2.imdecode(rawImage, cv2.IMREAD_UNCHANGED) + gray = cv2.cvtColor(png, cv2.COLOR_BGR2GRAY) + + # slice the image so we only check what we are headed into (and not what is down on the ground below us). + + top = np.vsplit(gray, 2)[0] + + # now look at 4 horizontal bands (far left, left, right, far right) and see which is most open. + # the depth map uses black for far away (0) and white for very close (255), so we invert that + # to get an estimate of distance. + bands = np.hsplit(top, [50,100,150,200]); + maxes = [np.max(x) for x in bands] + min = np.argmin(maxes) + distance = 255 - maxes[min] + + # sanity check on what is directly in front of us (slot 2 in our hsplit) + current = 255 - maxes[2] + + if (current < 20): + client.hoverAsync().join() + airsim.wait_key("whoops - we are about to crash, so stopping!") + + pitch, roll, yaw = airsim.to_eularian_angles(client.simGetVehiclePose().orientation) + + if (distance > current + 30): + + # we have a 90 degree field of view (pi/2), we've sliced that into 5 chunks, each chunk then represents + # an angular delta of the following pi/10. + change = 0 + driving = min + if (min == 0): + change = -2 * pi / 10 + elif (min == 1): + change = -pi / 10 + elif (min == 2): + change = 0 # center strip, go straight + elif (min == 3): + change = pi / 10 + else: + change = 2*pi/10 + + yaw = (yaw + change) + vx = math.cos(yaw); + vy = math.sin(yaw); + print ("switching angle", math.degrees(yaw), vx, vy, min, distance, current) + + if (vx == 0 and vy == 0): + vx = math.cos(yaw); + vy = math.sin(yaw); + + print ("distance=", current) + client.moveByVelocityZAsync(vx, vy,-6, 1, airsim.DrivetrainType.ForwardOnly, airsim.YawMode(False, 0)).join() + + x = int(driving * 50) + cv2.rectangle(png, (x,0), (x+50,50), (0,255,0), 2) + cv2.imshow("Top", png) + + key = cv2.waitKey(1) & 0xFF; + if (key == 27 or key == ord('q') or key == ord('x')): + break; diff --git a/src/airsim/PythonClient/multirotor/opencv_show.py b/src/airsim/PythonClient/multirotor/opencv_show.py new file mode 100644 index 0000000000..75a5e48627 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/opencv_show.py @@ -0,0 +1,75 @@ +# In settings.json first activate computer vision mode: +# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode + +import setup_path +import airsim + +# requires Python 3.5.3 :: Anaconda 4.4.0 +# pip install opencv-python +import cv2 +import time +import sys + +def printUsage(): + print("Usage: python camera.py [depth|segmentation|scene]") + +cameraType = "depth" + +for arg in sys.argv[1:]: + cameraType = arg.lower() + +cameraTypeMap = { + "depth": airsim.ImageType.DepthVis, + "segmentation": airsim.ImageType.Segmentation, + "seg": airsim.ImageType.Segmentation, + "scene": airsim.ImageType.Scene, + "disparity": airsim.ImageType.DisparityNormalized, + "normals": airsim.ImageType.SurfaceNormals +} + +if (cameraType not in cameraTypeMap): + printUsage() + sys.exit(0) + +print (cameraTypeMap[cameraType]) + +client = airsim.MultirotorClient() + +print("Connected: now while this script is running, you can open another") +print("console and run a script that flies the drone and this script will") +print("show the depth view while the drone is flying.") + +help = False + +fontFace = cv2.FONT_HERSHEY_SIMPLEX +fontScale = 0.5 +thickness = 2 +textSize, baseline = cv2.getTextSize("FPS", fontFace, fontScale, thickness) +print(textSize) +textOrg = (10, 10 + textSize[1]) +frameCount = 0 +startTime = time.time() +fps = 0 + +while True: + # because this method returns std::vector, msgpack decides to encode it as a string unfortunately. + rawImage = client.simGetImage("0", cameraTypeMap[cameraType]) + if (rawImage == None): + print("Camera is not returning image, please check airsim for error messages") + sys.exit(0) + else: + png = cv2.imdecode(airsim.string_to_uint8_array(rawImage), cv2.IMREAD_UNCHANGED) + cv2.putText(png,'FPS ' + str(fps),textOrg, fontFace, fontScale,(255,0,255),thickness) + cv2.imshow("Depth", png) + + frameCount = frameCount + 1 + endTime = time.time() + diff = endTime - startTime + if (diff > 1): + fps = frameCount + frameCount = 0 + startTime = endTime + + key = cv2.waitKey(1) & 0xFF + if (key == 27 or key == ord('q') or key == ord('x')): + break diff --git a/src/airsim/PythonClient/multirotor/orbit.py b/src/airsim/PythonClient/multirotor/orbit.py new file mode 100644 index 0000000000..78d9a23b3f --- /dev/null +++ b/src/airsim/PythonClient/multirotor/orbit.py @@ -0,0 +1,241 @@ +import setup_path +import airsim +import os +import sys +import math +import time +import argparse + +class Position: + def __init__(self, pos): + self.x = pos.x_val + self.y = pos.y_val + self.z = pos.z_val + +# Make the drone fly in a circle. +class OrbitNavigator: + def __init__(self, radius = 2, altitude = 10, speed = 2, iterations = 1, center = [1,0], snapshots = None): + self.radius = radius + self.altitude = altitude + self.speed = speed + self.iterations = iterations + self.snapshots = snapshots + self.snapshot_delta = None + self.next_snapshot = None + self.z = None + self.snapshot_index = 0 + self.takeoff = False # whether we did a take off + + if self.snapshots is not None and self.snapshots > 0: + self.snapshot_delta = 360 / self.snapshots + + if self.iterations <= 0: + self.iterations = 1 + + if len(center) != 2: + raise Exception("Expecting '[x,y]' for the center direction vector") + + # center is just a direction vector, so normalize it to compute the actual cx,cy locations. + cx = float(center[0]) + cy = float(center[1]) + length = math.sqrt((cx*cx) + (cy*cy)) + cx /= length + cy /= length + cx *= self.radius + cy *= self.radius + + self.client = airsim.MultirotorClient() + self.client.confirmConnection() + self.client.enableApiControl(True) + + self.home = self.client.getMultirotorState().kinematics_estimated.position + # check that our home position is stable + start = time.time() + count = 0 + while count < 100: + pos = self.client.getMultirotorState().kinematics_estimated.position + if abs(pos.z_val - self.home.z_val) > 1: + count = 0 + self.home = pos + if time.time() - start > 10: + print("Drone position is drifting, we are waiting for it to settle down...") + start = time + else: + count += 1 + + self.center = pos + self.center.x_val += cx + self.center.y_val += cy + + def start(self): + print("arming the drone...") + self.client.armDisarm(True) + + # AirSim uses NED coordinates so negative axis is up. + start = self.client.getMultirotorState().kinematics_estimated.position + landed = self.client.getMultirotorState().landed_state + if not self.takeoff and landed == airsim.LandedState.Landed: + self.takeoff = True + print("taking off...") + self.client.takeoffAsync().join() + start = self.client.getMultirotorState().kinematics_estimated.position + z = -self.altitude + self.home.z_val + else: + print("already flying so we will orbit at current altitude {}".format(start.z_val)) + z = start.z_val # use current altitude then + + print("climbing to position: {},{},{}".format(start.x_val, start.y_val, z)) + self.client.moveToPositionAsync(start.x_val, start.y_val, z, self.speed).join() + self.z = z + + print("ramping up to speed...") + count = 0 + self.start_angle = None + self.next_snapshot = None + + # ramp up time + ramptime = self.radius / 10 + self.start_time = time.time() + + while count < self.iterations: + if self.snapshots > 0 and not (self.snapshot_index < self.snapshots): + break + # ramp up to full speed in smooth increments so we don't start too aggressively. + now = time.time() + speed = self.speed + diff = now - self.start_time + if diff < ramptime: + speed = self.speed * diff / ramptime + elif ramptime > 0: + print("reached full speed...") + ramptime = 0 + + lookahead_angle = speed / self.radius + + # compute current angle + pos = self.client.getMultirotorState().kinematics_estimated.position + dx = pos.x_val - self.center.x_val + dy = pos.y_val - self.center.y_val + actual_radius = math.sqrt((dx*dx) + (dy*dy)) + angle_to_center = math.atan2(dy, dx) + + camera_heading = (angle_to_center - math.pi) * 180 / math.pi + + # compute lookahead + lookahead_x = self.center.x_val + self.radius * math.cos(angle_to_center + lookahead_angle) + lookahead_y = self.center.y_val + self.radius * math.sin(angle_to_center + lookahead_angle) + + vx = lookahead_x - pos.x_val + vy = lookahead_y - pos.y_val + + if self.track_orbits(angle_to_center * 180 / math.pi): + count += 1 + print("completed {} orbits".format(count)) + + self.camera_heading = camera_heading + self.client.moveByVelocityZAsync(vx, vy, z, 1, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, camera_heading)) + + + self.client.moveToPositionAsync(start.x_val, start.y_val, z, 2).join() + + if self.takeoff: + # if we did the takeoff then also do the landing. + if z < self.home.z_val: + print("descending") + self.client.moveToPositionAsync(start.x_val, start.y_val, self.home.z_val - 5, 2).join() + + print("landing...") + self.client.landAsync().join() + + print("disarming.") + self.client.armDisarm(False) + + + def track_orbits(self, angle): + # tracking # of completed orbits is surprisingly tricky to get right in order to handle random wobbles + # about the starting point. So we watch for complete 1/2 orbits to avoid that problem. + if angle < 0: + angle += 360 + + if self.start_angle is None: + self.start_angle = angle + if self.snapshot_delta: + self.next_snapshot = angle + self.snapshot_delta + self.previous_angle = angle + self.shifted = False + self.previous_sign = None + self.previous_diff = None + self.quarter = False + return False + + # now we just have to watch for a smooth crossing from negative diff to positive diff + if self.previous_angle is None: + self.previous_angle = angle + return False + + # ignore the click over from 360 back to 0 + if self.previous_angle > 350 and angle < 10: + if self.snapshot_delta and self.next_snapshot >= 360: + self.next_snapshot -= 360 + return False + + diff = self.previous_angle - angle + crossing = False + self.previous_angle = angle + + if self.snapshot_delta and angle > self.next_snapshot: + print("Taking snapshot at angle {}".format(angle)) + self.take_snapshot() + self.next_snapshot += self.snapshot_delta + + diff = abs(angle - self.start_angle) + if diff > 45: + self.quarter = True + + if self.quarter and self.previous_diff is not None and diff != self.previous_diff: + # watch direction this diff is moving if it switches from shrinking to growing + # then we passed the starting point. + direction = self.sign(self.previous_diff - diff) + if self.previous_sign is None: + self.previous_sign = direction + elif self.previous_sign > 0 and direction < 0: + if diff < 45: + self.quarter = False + if self.snapshots <= self.snapshot_index + 1: + crossing = True + self.previous_sign = direction + self.previous_diff = diff + + return crossing + + def take_snapshot(self): + # first hold our current position so drone doesn't try and keep flying while we take the picture. + pos = self.client.getMultirotorState().kinematics_estimated.position + self.client.moveToPositionAsync(pos.x_val, pos.y_val, self.z, 0.5, 10, airsim.DrivetrainType.MaxDegreeOfFreedom, + airsim.YawMode(False, self.camera_heading)).join() + responses = self.client.simGetImages([airsim.ImageRequest(1, airsim.ImageType.Scene)]) #scene vision image in png format + response = responses[0] + filename = "photo_" + str(self.snapshot_index) + self.snapshot_index += 1 + airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) + print("Saved snapshot: {}".format(filename)) + self.start_time = time.time() # cause smooth ramp up to happen again after photo is taken. + + def sign(self, s): + if s < 0: + return -1 + return 1 + +if __name__ == "__main__": + args = sys.argv + args.pop(0) + arg_parser = argparse.ArgumentParser("Orbit.py makes drone fly in a circle with camera pointed at the given center vector") + arg_parser.add_argument("--radius", type=float, help="radius of the orbit", default=10) + arg_parser.add_argument("--altitude", type=float, help="altitude of orbit (in positive meters)", default=20) + arg_parser.add_argument("--speed", type=float, help="speed of orbit (in meters/second)", default=3) + arg_parser.add_argument("--center", help="x,y direction vector pointing to center of orbit from current starting position (default 1,0)", default="1,0") + arg_parser.add_argument("--iterations", type=float, help="number of 360 degree orbits (default 3)", default=3) + arg_parser.add_argument("--snapshots", type=float, help="number of FPV snapshots to take during orbit (default 0)", default=0) + args = arg_parser.parse_args(args) + nav = OrbitNavigator(args.radius, args.altitude, args.speed, args.iterations, args.center.split(','), args.snapshots) + nav.start() diff --git a/src/airsim/PythonClient/multirotor/params.txt b/src/airsim/PythonClient/multirotor/params.txt new file mode 100644 index 0000000000..da7bb5515f --- /dev/null +++ b/src/airsim/PythonClient/multirotor/params.txt @@ -0,0 +1,5 @@ +param set LPE_LAT 47.641468 +param set LPE_LON -122.140165 +param set COM_OBL_ACT 1 +param set NAV_RCL_ACT 0 +param set NAV_DLL_ACT 0 diff --git a/src/airsim/PythonClient/multirotor/path.py b/src/airsim/PythonClient/multirotor/path.py new file mode 100644 index 0000000000..6d34f13488 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/path.py @@ -0,0 +1,56 @@ +import setup_path +import airsim + +import sys +import time + +print("""This script is designed to fly on the streets of the Neighborhood environment +and assumes the unreal position of the drone is [160, -1500, 120].""") + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) + +print("arming the drone...") +client.armDisarm(True) + +state = client.getMultirotorState() +if state.landed_state == airsim.LandedState.Landed: + print("taking off...") + client.takeoffAsync().join() +else: + client.hoverAsync().join() + +time.sleep(1) + +state = client.getMultirotorState() +if state.landed_state == airsim.LandedState.Landed: + print("take off failed...") + sys.exit(1) + +# AirSim uses NED coordinates so negative axis is up. +# z of -5 is 5 meters above the original launch point. +z = -5 +print("make sure we are hovering at {} meters...".format(-z)) +client.moveToZAsync(z, 1).join() + +# see https://github.com/Microsoft/AirSim/wiki/moveOnPath-demo + +# this method is async and we are not waiting for the result since we are passing timeout_sec=0. + +print("flying on path...") +result = client.moveOnPathAsync([airsim.Vector3r(125,0,z), + airsim.Vector3r(125,-130,z), + airsim.Vector3r(0,-130,z), + airsim.Vector3r(0,0,z)], + 12, 120, + airsim.DrivetrainType.ForwardOnly, airsim.YawMode(False,0), 20, 1).join() + +# drone will over-shoot so we bring it back to the start point before landing. +client.moveToPositionAsync(0,0,z,1).join() +print("landing...") +client.landAsync().join() +print("disarming...") +client.armDisarm(False) +client.enableApiControl(False) +print("done.") diff --git a/src/airsim/PythonClient/multirotor/pause_continue_drone.py b/src/airsim/PythonClient/multirotor/pause_continue_drone.py new file mode 100644 index 0000000000..efdb620520 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/pause_continue_drone.py @@ -0,0 +1,33 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +print("Taking off") +client.moveByVelocityZAsync(0, 0, -20, 8).join() +time.sleep(3) + +for i in range(1, 6): + print("Starting command to run for 15sec") + client.moveByVelocityZAsync(-1*i, -1*i, -20-i, 15) + time.sleep(5) #run + print("Pausing after 5sec") + client.simPause(True) + time.sleep(5) #paused + print("Restarting command to run for 7.5sec") + client.simContinueForTime(7.5) + time.sleep(10) + print("Finishing rest of the command") + client.simPause(False) + time.sleep(15) + print("Finished cycle") + + + + diff --git a/src/airsim/PythonClient/multirotor/point_cloud.py b/src/airsim/PythonClient/multirotor/point_cloud.py new file mode 100644 index 0000000000..272c856f7f --- /dev/null +++ b/src/airsim/PythonClient/multirotor/point_cloud.py @@ -0,0 +1,63 @@ +# use open cv to create point cloud from depth image. +import setup_path +import airsim + +import cv2 +import time +import sys +import math +import numpy as np + +############################################ +########## This is work in progress! ####### +############################################ + +# file will be saved in PythonClient folder (i.e. same folder as script) +# point cloud ASCII format, use viewers like CloudCompare http://www.danielgm.net/cc/ or see http://www.geonext.nl/wp-content/uploads/2014/05/Point-Cloud-Viewers.pdf +outputFile = "cloud.asc" +color = (0,255,0) +rgb = "%d %d %d" % color +projectionMatrix = np.array([[-0.501202762, 0.000000000, 0.000000000, 0.000000000], + [0.000000000, -0.501202762, 0.000000000, 0.000000000], + [0.000000000, 0.000000000, 10.00000000, 100.00000000], + [0.000000000, 0.000000000, -10.0000000, 0.000000000]]) + + +def printUsage(): + print("Usage: python point_cloud.py [cloud.txt]") + +def savePointCloud(image, fileName): + f = open(fileName, "w") + for x in range(image.shape[0]): + for y in range(image.shape[1]): + pt = image[x,y] + if (math.isinf(pt[0]) or math.isnan(pt[0])): + # skip it + None + else: + f.write("%f %f %f %s\n" % (pt[0], pt[1], pt[2]-1, rgb)) + f.close() + +for arg in sys.argv[1:]: + cloud.txt = arg + +client = airsim.MultirotorClient() + +while True: + rawImage = client.simGetImage("0", airsim.ImageType.DepthPerspective) + if (rawImage is None): + print("Camera is not returning image, please check airsim for error messages") + airsim.wait_key("Press any key to exit") + sys.exit(0) + else: + png = cv2.imdecode(np.frombuffer(rawImage, np.uint8) , cv2.IMREAD_UNCHANGED) + gray = cv2.cvtColor(png, cv2.COLOR_BGR2GRAY) + Image3D = cv2.reprojectImageTo3D(gray, projectionMatrix) + savePointCloud(Image3D, outputFile) + print("saved " + outputFile) + airsim.wait_key("Press any key to exit") + sys.exit(0) + + key = cv2.waitKey(1) & 0xFF; + if (key == 27 or key == ord('q') or key == ord('x')): + break; diff --git a/src/airsim/PythonClient/multirotor/reset_test_drone.py b/src/airsim/PythonClient/multirotor/reset_test_drone.py new file mode 100644 index 0000000000..8505672ab0 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/reset_test_drone.py @@ -0,0 +1,23 @@ +import setup_path +import airsim + +import time + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +print("fly") +client.moveToPositionAsync(0, 0, -10, 5).join() + +print("reset") +client.reset() +client.enableApiControl(True) +client.armDisarm(True) +time.sleep(5) +print("done") + +print("fly") +client.moveToPositionAsync(0, 0, -10, 5).join() diff --git a/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py b/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py new file mode 100644 index 0000000000..10e11d41a7 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py @@ -0,0 +1,105 @@ +# Python client example to get Lidar data from a drone, although this script works for any AirSim-supported vehicle +# This script is for Lidar sensors using 'SensorLocalFrame' as DataFrame under settings.json. +# Sample settings.json used for this script: +''' +{ + "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings_json.md", + "SettingsVersion": 1.2, + + "SimMode": "Multirotor", + + "Vehicles": { + "Drone1": { + "VehicleType": "SimpleFlight", + "AutoCreate": true, + "Sensors": { + "LidarSensor1": { + "SensorType": 6, + "Enabled" : true, + "NumberOfChannels": 1, + "RotationsPerSecond": 10, + "Range":12, + "PointsPerSecond": 8000, + "X": 0, "Y": 0, "Z": -1, + "Roll": 0, "Pitch": 90, "Yaw" : 0, + "VerticalFOVUpper": 0, + "VerticalFOVLower": 0, + "HorizontalFOVStart": 0, + "HorizontalFOVEnd": 0, + "DrawDebugPoints": true, + "DataFrame": "SensorLocalFrame" + }, + "LidarSensor2": { + "SensorType": 6, + "Enabled" : true, + "NumberOfChannels": 1, + "RotationsPerSecond": 10, + "Range":12, + "PointsPerSecond": 8000, + "X": 0, "Y": 0, "Z": -1, + "Roll": 90, "Pitch": 90, "Yaw" : 0, + "VerticalFOVUpper": 0, + "VerticalFOVLower": 0, + "HorizontalFOVStart": 0, + "HorizontalFOVEnd": 0, + "DrawDebugPoints": true, + "DataFrame": "SensorLocalFrame" + } + } + } + } +} +''' +import setup_path +import airsim +import numpy as np + +class LidarTest: + + def __init__(self): + + # connect to the AirSim simulator + self.client = airsim.VehicleClient() + self.client.confirmConnection() + print('Connected!\n') + + def execute(self,vehicle_name,lidar_names): + print('Scanning Has Started\n') + print('Use Keyboard Interrupt \'CTRL + C\' to Stop Scanning\n') + existing_data_cleared = False #change to true to superimpose new scans onto existing .asc files + try: + while True: + for lidar_name in lidar_names: + filename = f"{vehicle_name}_{lidar_name}_pointcloud.asc" + if not existing_data_cleared: + f = open(filename,'w') + else: + f = open(filename,'a') + lidar_data = self.client.getLidarData(lidar_name=lidar_name,vehicle_name=vehicle_name) + + orientation = lidar_data.pose.orientation + q0, q1, q2, q3 = orientation.w_val, orientation.x_val, orientation.y_val, orientation.z_val + rotation_matrix = np.array(([1-2*(q2*q2+q3*q3),2*(q1*q2-q3*q0),2*(q1*q3+q2*q0)], + [2*(q1*q2+q3*q0),1-2*(q1*q1+q3*q3),2*(q2*q3-q1*q0)], + [2*(q1*q3-q2*q0),2*(q2*q3+q1*q0),1-2*(q1*q1+q2*q2)])) + + position = lidar_data.pose.position + for i in range(0, len(lidar_data.point_cloud), 3): + xyz = lidar_data.point_cloud[i:i+3] + + corrected_x, corrected_y, corrected_z = np.matmul(rotation_matrix, np.asarray(xyz)) + final_x = corrected_x + position.x_val + final_y = corrected_y + position.y_val + final_z = corrected_z + position.z_val + + f.write("%f %f %f %d %d %d \n" % (final_x,final_y,final_z,255,255,0)) + f.close() + existing_data_cleared = True + except KeyboardInterrupt: + airsim.wait_key('Press any key to stop running this script') + print("Done!\n") + +# main +if __name__ == "__main__": + lidarTest = LidarTest() + lidarTest.execute('Drone1',['LidarSensor1','LidarSensor2']) diff --git a/src/airsim/PythonClient/multirotor/set_fog.py b/src/airsim/PythonClient/multirotor/set_fog.py new file mode 100644 index 0000000000..100421064c --- /dev/null +++ b/src/airsim/PythonClient/multirotor/set_fog.py @@ -0,0 +1,33 @@ +import setup_path +import airsim +import time + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) + +client.armDisarm(True) + +client.simEnableWeather(True) + +print("Setting fog to 25%") +client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.25) + +# Takeoff or hover +landed = client.getMultirotorState().landed_state +if landed == airsim.LandedState.Landed: + print("taking off...") + client.takeoffAsync().join() +else: + print("already flying...") + client.hoverAsync().join() + +time.sleep(5) + +print("Setting fog to 50%") +client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.5) + +time.sleep(5) + +print("Resetting fog to 0%") +client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0) diff --git a/src/airsim/PythonClient/multirotor/set_trace_line.py b/src/airsim/PythonClient/multirotor/set_trace_line.py new file mode 100644 index 0000000000..9324af8ec8 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/set_trace_line.py @@ -0,0 +1,46 @@ +# Please add "EnableTrace": true to your setting.json as shown below + +# { +# "SettingsVersion": 1.2, +# "SimMode": "Multirotor", +# "Vehicles": { +# "Drone": { +# "VehicleType": "SimpleFlight", +# "EnableTrace": true +# } +# } +# } + +import setup_path +import airsim +import time + +# connect to the AirSim simulator +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) + +client.takeoffAsync().join() +client.hoverAsync().join() + +vehicleControl = client.moveByVelocityAsync(1, 1, 0, 12) + +client.simSetTraceLine([1.0, 0.0, 0.0, 1.0], 5) +time.sleep(2) +client.simSetTraceLine([0.0, 1.0, 0.0, 0.8], 10) +time.sleep(2) +client.simSetTraceLine([0.0, 0.0, 1.0, 0.6], 20) +time.sleep(2) +client.simSetTraceLine([1.0, 1.0, 0.0, 0.4], 30) +time.sleep(2) +client.simSetTraceLine([0.0, 1.0, 1.0, 0.2], 40) +time.sleep(2) +client.simSetTraceLine([1.0, 0.0, 1.0, 0.1], 50) +time.sleep(2) + +vehicleControl.join() + +client.armDisarm(False) +client.takeoffAsync().join() +client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/set_wind.py b/src/airsim/PythonClient/multirotor/set_wind.py new file mode 100644 index 0000000000..2fcc7bec72 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/set_wind.py @@ -0,0 +1,35 @@ +import setup_path +import airsim +import time + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) + +client.armDisarm(True) + +print("Setting wind to 10m/s in forward direction") # NED +wind = airsim.Vector3r(10, 0, 0) +client.simSetWind(wind) + +# Takeoff or hover +landed = client.getMultirotorState().landed_state +if landed == airsim.LandedState.Landed: + print("taking off...") + client.takeoffAsync().join() +else: + print("already flying...") + client.hoverAsync().join() + +time.sleep(5) + +print("Setting wind to 15m/s towards right") # NED +wind = airsim.Vector3r(0, 15, 0) +client.simSetWind(wind) + +time.sleep(5) + +# Set wind to 0 +print("Resetting wind to 0") +wind = airsim.Vector3r(0, 0, 0) +client.simSetWind(wind) diff --git a/src/airsim/PythonClient/multirotor/setup_path.py b/src/airsim/PythonClient/multirotor/setup_path.py new file mode 100644 index 0000000000..a33b94789c --- /dev/null +++ b/src/airsim/PythonClient/multirotor/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = __file__ + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/multirotor/speaker.py b/src/airsim/PythonClient/multirotor/speaker.py new file mode 100644 index 0000000000..acee778942 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/speaker.py @@ -0,0 +1,36 @@ +################################################################################################### +# +# Project: Embedded Learning Library (ELL) +# File: speaker.py +# Authors: Chris Lovett +# +# Requires: Python 3.x +# +################################################################################################### + +import pyaudio + + +class Speaker: + def __init__(self): + self.output_stream = None + self.audio = pyaudio.PyAudio() + + def open(self, audio_format, num_channels, rate): + # open speakers so we can hear what it is processing... + self.output_stream = self.audio.open(format=audio_format, + channels=num_channels, + rate=rate, + output=True) + + def write(self, data): + if self.output_stream: + self.output_stream.write(data) + + def close(self): + if self.output_stream: + self.output_stream.close() + self.output_stream = None + + def is_closed(self): + return self.output_stream is None diff --git a/src/airsim/PythonClient/multirotor/stability_test.py b/src/airsim/PythonClient/multirotor/stability_test.py new file mode 100644 index 0000000000..98d80a0e26 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/stability_test.py @@ -0,0 +1,90 @@ +import os +import setup_path +import airsim +import time +import numpy as np +import sys + +script_dir = os.path.dirname(__file__) + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) + +def play_sound(wavfile): + import speaker + import wav_reader + reader = wav_reader.WavReader() + reader.open(wavfile, 512, speaker.Speaker()) + while True: + buffer = reader.read() + if buffer is None: + break + +class Numbers: + def __init__(self, name): + self.data = [] + self.name = name + + def add(self, x): + self.data += [x] + + def is_unstable(self, amount): + a = np.array(self.data) + minimum = a.min() + maximum = a.max() + mean = np.mean(a) + stddev = np.std(a) + print("{}: min={}, max={}, mean={}, stddev={}".format(self.name, minimum, maximum, mean, stddev)) + return (maximum - minimum) > amount + +print("### TEST STARTED ###") +print("This test takes 20 minutes.") + +iteration = 0 +while iteration < 10: + iteration += 1 + x = Numbers("x") + y = Numbers("y") + z = Numbers("z") + + print("arming the drone...") + client.armDisarm(True) + + while client.getMultirotorState().landed_state == airsim.LandedState.Landed: + print("taking off...") + client.takeoffAsync().join() + time.sleep(1) + + # fly for 2 minutes + start = time.time() + while time.time() < start + 120: + state = client.getMultirotorState() + x_val = state.kinematics_estimated.position.x_val + y_val = state.kinematics_estimated.position.y_val + z_val = state.kinematics_estimated.position.z_val + x.add(x_val) + y.add(y_val) + z.add(z_val) + print("x: {}, y: {}, z: {}".format(x_val, y_val, z_val)) + time.sleep(1) + + print("landing...") + client.landAsync().join() + + print("disarming the drone...") + client.armDisarm(False) + + # more than 50 centimeter drift is unacceptable. + print("Results for iteration {}".format(iteration)) + a = x.is_unstable(0.5) + b = y.is_unstable(0.5) + c = z.is_unstable(0.5) + + if a or b or c: + play_sound(os.path.join(script_dir, "Error.wav")) + break + + time.sleep(5) + +print("### Test Passed ###") diff --git a/src/airsim/PythonClient/multirotor/state.py b/src/airsim/PythonClient/multirotor/state.py new file mode 100644 index 0000000000..7731c2491e --- /dev/null +++ b/src/airsim/PythonClient/multirotor/state.py @@ -0,0 +1,20 @@ +import setup_path +import airsim +import pprint + +def print_state(): + print("===============================================================") + state = client.getMultirotorState() + print("state: %s" % pprint.pformat(state)) + return state + + +client = airsim.MultirotorClient() +state = print_state() + +if state.ready: + print("drone is ready!") +else: + print("drone is not ready!") +if state.ready_message: + print(state.ready_message) diff --git a/src/airsim/PythonClient/multirotor/survey.py b/src/airsim/PythonClient/multirotor/survey.py new file mode 100644 index 0000000000..a1746275ea --- /dev/null +++ b/src/airsim/PythonClient/multirotor/survey.py @@ -0,0 +1,99 @@ +import setup_path +import airsim + +import sys +import time +import argparse + +class SurveyNavigator: + def __init__(self, args): + self.boxsize = args.size + self.stripewidth = args.stripewidth + self.altitude = args.altitude + self.velocity = args.speed + self.client = airsim.MultirotorClient() + self.client.confirmConnection() + self.client.enableApiControl(True) + + def start(self): + print("arming the drone...") + self.client.armDisarm(True) + + landed = self.client.getMultirotorState().landed_state + if landed == airsim.LandedState.Landed: + print("taking off...") + self.client.takeoffAsync().join() + + landed = self.client.getMultirotorState().landed_state + if landed == airsim.LandedState.Landed: + print("takeoff failed - check Unreal message log for details") + return + + # AirSim uses NED coordinates so negative axis is up. + x = -self.boxsize + z = -self.altitude + + print("climbing to altitude: " + str(self.altitude)) + self.client.moveToPositionAsync(0, 0, z, self.velocity).join() + + print("flying to first corner of survey box") + self.client.moveToPositionAsync(x, -self.boxsize, z, self.velocity).join() + + # let it settle there a bit. + self.client.hoverAsync().join() + time.sleep(2) + + # after hovering we need to re-enabled api control for next leg of the trip + self.client.enableApiControl(True) + + # now compute the survey path required to fill the box + path = [] + distance = 0 + while x < self.boxsize: + distance += self.boxsize + path.append(airsim.Vector3r(x, self.boxsize, z)) + x += self.stripewidth + distance += self.stripewidth + path.append(airsim.Vector3r(x, self.boxsize, z)) + distance += self.boxsize + path.append(airsim.Vector3r(x, -self.boxsize, z)) + x += self.stripewidth + distance += self.stripewidth + path.append(airsim.Vector3r(x, -self.boxsize, z)) + distance += self.boxsize + + print("starting survey, estimated distance is " + str(distance)) + trip_time = distance / self.velocity + print("estimated survey time is " + str(trip_time)) + try: + result = self.client.moveOnPathAsync(path, self.velocity, trip_time, airsim.DrivetrainType.ForwardOnly, + airsim.YawMode(False,0), self.velocity + (self.velocity/2), 1).join() + except: + errorType, value, traceback = sys.exc_info() + print("moveOnPath threw exception: " + str(value)) + pass + + print("flying back home") + self.client.moveToPositionAsync(0, 0, z, self.velocity).join() + + if z < -5: + print("descending") + self.client.moveToPositionAsync(0, 0, -5, 2).join() + + print("landing...") + self.client.landAsync().join() + + print("disarming.") + self.client.armDisarm(False) + +if __name__ == "__main__": + args = sys.argv + args.pop(0) + arg_parser = argparse.ArgumentParser("Usage: survey boxsize stripewidth altitude") + arg_parser.add_argument("--size", type=float, help="size of the box to survey", default=50) + arg_parser.add_argument("--stripewidth", type=float, help="stripe width of survey (in meters)", default=10) + arg_parser.add_argument("--altitude", type=float, help="altitude of survey (in positive meters)", default=30) + arg_parser.add_argument("--speed", type=float, help="speed of survey (in meters/second)", default=5) + args = arg_parser.parse_args(args) + nav = SurveyNavigator(args) + nav.start() \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/takeoff.py b/src/airsim/PythonClient/multirotor/takeoff.py new file mode 100644 index 0000000000..3d16063a4a --- /dev/null +++ b/src/airsim/PythonClient/multirotor/takeoff.py @@ -0,0 +1,48 @@ +import setup_path +import airsim +import sys +import time + +# For high speed ascent and descent on PX4 you may need to set these properties: +# param set MPC_Z_VEL_MAX_UP 5 +# param set MPC_Z_VEL_MAX_DN 5 + +z = 5 +if len(sys.argv) > 1: + z = float(sys.argv[1]) + +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) + +client.armDisarm(True) + +landed = client.getMultirotorState().landed_state +if landed == airsim.LandedState.Landed: + print("taking off...") + client.takeoffAsync().join() +else: + print("already flying...") + client.hoverAsync().join() + +print("make sure we are hovering at {} meters...".format(z)) + +if z > 5: + # AirSim uses NED coordinates so negative axis is up. + # z of -50 is 50 meters above the original launch point. + client.moveToZAsync(-z, 5).join() + client.hoverAsync().join() + time.sleep(5) + +if z > 10: + print("come down quickly to 10 meters...") + z = 10 + client.moveToZAsync(-z, 3).join() + client.hoverAsync().join() + +print("landing...") +client.landAsync().join() +print("disarming...") +client.armDisarm(False) +client.enableApiControl(False) +print("done.") diff --git a/src/airsim/PythonClient/multirotor/teleport.py b/src/airsim/PythonClient/multirotor/teleport.py new file mode 100644 index 0000000000..8d932456a0 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/teleport.py @@ -0,0 +1,20 @@ +import setup_path +import airsim +import time + +client = airsim.MultirotorClient() +client.confirmConnection() + +pose = client.simGetVehiclePose() + +# teleport the drone + 10 meters in x-direction +pose.position.x_val += 10 + +client.simSetVehiclePose(pose, True, "PX4") + +time.sleep(2) + +# teleport the drone back +pose.position.x_val -= 10 + +client.simSetVehiclePose(pose, True, "PX4") diff --git a/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py b/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py new file mode 100644 index 0000000000..e4f50bf7e4 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py @@ -0,0 +1,93 @@ +# Python client example to get Lidar data from a drone, although this script works for any AirSim-supported vehicle +# This script is for Lidar sensors using 'VehicleInertialFrame' as DataFrame under settings.json +# Sample settings.json used for this script: +''' +{ + "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings_json.md", + "SettingsVersion": 1.2, + + "SimMode": "Multirotor", + + "Vehicles": { + "Drone1": { + "VehicleType": "SimpleFlight", + "AutoCreate": true, + "Sensors": { + "LidarSensor1": { + "SensorType": 6, + "Enabled" : true, + "NumberOfChannels": 1, + "RotationsPerSecond": 10, + "Range":12, + "PointsPerSecond": 8000, + "X": 0, "Y": 0, "Z": -1, + "Roll": 0, "Pitch": 90, "Yaw" : 0, + "VerticalFOVUpper": 0, + "VerticalFOVLower": 0, + "HorizontalFOVStart": 0, + "HorizontalFOVEnd": 0, + "DrawDebugPoints": true, + "DataFrame": "VehicleInertialFrame" + }, + "LidarSensor2": { + "SensorType": 6, + "Enabled" : true, + "NumberOfChannels": 1, + "RotationsPerSecond": 10, + "Range":12, + "PointsPerSecond": 8000, + "X": 0, "Y": 0, "Z": -1, + "Roll": 90, "Pitch": 90, "Yaw" : 0, + "VerticalFOVUpper": 0, + "VerticalFOVLower": 0, + "HorizontalFOVStart": 0, + "HorizontalFOVEnd": 0, + "DrawDebugPoints": true, + "DataFrame": "VehicleInertialFrame" + } + } + } + } +} +''' +import setup_path +import airsim +import numpy as np + +class LidarTest: + + def __init__(self): + + # connect to the AirSim simulator + self.client = airsim.VehicleClient() + self.client.confirmConnection() + print('Connected!\n') + + def execute(self,vehicle_name,lidar_names): + print('Scanning Has Started\n') + print('Use Keyboard Interrupt \'CTRL + C\' to Stop Scanning\n') + existing_data_cleared = False #change to true to superimpose new scans onto existing .asc files + try: + while True: + for lidar_name in lidar_names: + filename = f"{vehicle_name}_{lidar_name}_pointcloud.asc" + if not existing_data_cleared: + f = open(filename,'w') + else: + f = open(filename,'a') + lidar_data = self.client.getLidarData(lidar_name=lidar_name,vehicle_name=vehicle_name) + + for i in range(0, len(lidar_data.point_cloud), 3): + xyz = lidar_data.point_cloud[i:i+3] + + f.write("%f %f %f %d %d %d \n" % (xyz[0],xyz[1],xyz[2],255,255,0)) + f.close() + existing_data_cleared = True + except KeyboardInterrupt: + airsim.wait_key('Press any key to stop running this script') + print("Done!\n") + +# main +if __name__ == "__main__": + lidarTest = LidarTest() + lidarTest.execute('Drone1',['LidarSensor1','LidarSensor2']) diff --git a/src/airsim/PythonClient/multirotor/wav_reader.py b/src/airsim/PythonClient/multirotor/wav_reader.py new file mode 100644 index 0000000000..74e3bce185 --- /dev/null +++ b/src/airsim/PythonClient/multirotor/wav_reader.py @@ -0,0 +1,158 @@ +################################################################################################### +# +# Project: Embedded Learning Library (ELL) +# File: wav_reader.py +# Authors: Chris Lovett +# +# Requires: Python 3.x +# +################################################################################################### +import audioop +import math +import wave + +import numpy as np +import pyaudio + + +class WavReader: + def __init__(self, sample_rate=16000, channels=1, auto_scale=True): + """ Initialize the wav reader with the type of audio you want returned. + sample_rate Rate you want audio converted to (default 16 kHz) + channels Number of channels you want output (default 1) + auto_scale Whether to scale numbers to the range -1 to 1. + """ + self.input_stream = None + self.audio = pyaudio.PyAudio() + self.wav_file = None + self.requested_channels = int(channels) + self.requested_rate = int(sample_rate) + self.buffer_size = 0 + self.sample_width = 0 + self.read_size = None + self.dtype = None + self.auto_scale = auto_scale + self.audio_scale_factor = 1 + self.tail = None + + def open(self, filename, buffer_size, speaker=None): + """ open a wav file for reading + buffersize Number of audio samples to return on each read() call + speaker Optional output speaker to send converted audio to so you can hear it. + """ + self.speaker = speaker + # open a stream on the audio input file. + self.wav_file = wave.open(filename, "rb") + self.cvstate = None + self.read_size = int(buffer_size) + self.actual_channels = self.wav_file.getnchannels() + self.actual_rate = self.wav_file.getframerate() + self.sample_width = self.wav_file.getsampwidth() + # assumes signed integer used in raw audio, so for example, the max for 16bit is 2^15 (32768) + if self.auto_scale: + self.audio_scale_factor = 1 / pow(2, (8 * self.sample_width) - 1) + + if self.requested_rate == 0: + raise Exception("Requested rate cannot be zero") + self.buffer_size = int(math.ceil((self.read_size * self.actual_rate) / self.requested_rate)) + + # convert int16 data to scaled floats + if self.sample_width == 1: + self.dtype = np.int8 + elif self.sample_width == 2: + self.dtype = np.int16 + elif self.sample_width == 4: + self.dtype = np.int32 + else: + msg = "Unexpected sample width {}, can only handle 1, 2 or 4 byte audio" + raise Exception(msg.format(self.sample_width)) + + if speaker: + # configure output stream to match what we are resampling to... + audio_format = self.audio.get_format_from_width(self.sample_width) + speaker.open(audio_format, self.requested_channels, self.requested_rate) + + def read_raw(self): + """ Reads the next chunk of audio (returns buffer_size provided to open) + It returns the raw data buffers converted to the target rate without any scaling. + """ + if self.wav_file is None: + return None + + data = self.wav_file.readframes(self.buffer_size) + if len(data) == 0: + return None + + if self.actual_rate != self.requested_rate: + # convert the audio to the desired recording rate + data, self.cvstate = audioop.ratecv(data, self.sample_width, self.actual_channels, self.actual_rate, + self.requested_rate, self.cvstate) + + return self.get_requested_channels(data) + + def get_requested_channels(self, data): + if self.requested_channels > self.actual_channels: + raise Exception("Cannot add channels, actual is {}, requested is {}".format( + self.actual_channels, self.requested_channels)) + + if self.requested_channels < self.actual_channels: + data = np.frombuffer(data, dtype=np.int16) + channels = [] + # split into separate channels + for i in range(self.actual_channels): + channels += [data[i::self.actual_channels]] + # drop the channels we don't want + channels = channels[0:self.requested_channels] + # zip the resulting channels back up. + data = np.array(list(zip(*channels))).flatten() + # convert back to packed bytes in PCM 16 format + data = bytes(np.array(data, dtype=np.int16)) + + return data + + def read(self): + """ Reads the next chunk of audio (returns buffer_size provided to open) + It returns the data converted to floating point numbers between -1 and 1, scaled by the range of + values possible for the given audio format. + """ + + # deal with any accumulation of tails, if the tail grows to a full + # buffer then return it! + if self.tail is not None and len(self.tail) >= self.read_size: + data = self.tail[0:self.read_size] + self.tail = self.tail[self.read_size:] + return data + + data = self.read_raw() + if data is None: + return None + + if self.speaker: + self.speaker.write(data) + + data = np.frombuffer(data, dtype=self.dtype).astype(float) + if self.tail is not None: + # we have a tail from previous frame, so prepend it + data = np.concatenate((self.tail, data)) + + # now the caller needs us to stick to our sample_size contract, but when + # rate conversion happens we can't be sure that 'data' is exactly that size. + if len(data) > self.read_size: + # usually one byte extra so add this to our accumulating tail + self.tail = data[self.read_size:] + data = data[0:self.read_size] + + if len(data) < self.read_size: + # might have reached the end of a file, so pad with zeros. + zeros = np.zeros(self.read_size - len(data)) + data = np.concatenate((data, zeros)) + + return data * self.audio_scale_factor + + def close(self): + if self.wav_file: + self.wav_file.close() + self.wav_file = None + + def is_closed(self): + return self.wav_file is None diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py b/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py new file mode 100644 index 0000000000..020d393515 --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py @@ -0,0 +1,9 @@ +from gym.envs.registration import register + +register( + id="airsim-drone-sample-v0", entry_point="airgym.envs:AirSimDroneEnv", +) + +register( + id="airsim-car-sample-v0", entry_point="airgym.envs:AirSimCarEnv", +) diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py new file mode 100644 index 0000000000..9a3b34c33f --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py @@ -0,0 +1,4 @@ +from airgym.envs.airsim_env import AirSimEnv +from airgym.envs.car_env import AirSimCarEnv +from airgym.envs.drone_env import AirSimDroneEnv + diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py new file mode 100644 index 0000000000..7fb4cf221c --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py @@ -0,0 +1,31 @@ +import numpy as np +import airsim + +import gym +from gym import spaces + + +class AirSimEnv(gym.Env): + metadata = {"render.modes": ["rgb_array"]} + + def __init__(self, image_shape): + self.observation_space = spaces.Box(0, 255, shape=image_shape, dtype=np.uint8) + self.viewer = None + + def __del__(self): + raise NotImplementedError() + + def _get_obs(self): + raise NotImplementedError() + + def _compute_reward(self): + raise NotImplementedError() + + def close(self): + raise NotImplementedError() + + def step(self, action): + raise NotImplementedError() + + def render(self): + return self._get_obs() diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py new file mode 100644 index 0000000000..9542fc22b3 --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py @@ -0,0 +1,148 @@ +import setup_path +import airsim +import numpy as np +import math +import time + +import gym +from gym import spaces +from airgym.envs.airsim_env import AirSimEnv + + +class AirSimCarEnv(AirSimEnv): + def __init__(self, ip_address, image_shape): + super().__init__(image_shape) + + self.image_shape = image_shape + self.start_ts = 0 + + self.state = { + "position": np.zeros(3), + "prev_position": np.zeros(3), + "pose": None, + "prev_pose": None, + "collision": False, + } + + self.car = airsim.CarClient(ip=ip_address) + self.action_space = spaces.Discrete(6) + + self.image_request = airsim.ImageRequest( + "0", airsim.ImageType.DepthPerspective, True, False + ) + + self.car_controls = airsim.CarControls() + self.car_state = None + + def _setup_car(self): + self.car.reset() + self.car.enableApiControl(True) + self.car.armDisarm(True) + time.sleep(0.01) + + def __del__(self): + self.car.reset() + + def _do_action(self, action): + self.car_controls.brake = 0 + self.car_controls.throttle = 1 + + if action == 0: + self.car_controls.throttle = 0 + self.car_controls.brake = 1 + elif action == 1: + self.car_controls.steering = 0 + elif action == 2: + self.car_controls.steering = 0.5 + elif action == 3: + self.car_controls.steering = -0.5 + elif action == 4: + self.car_controls.steering = 0.25 + else: + self.car_controls.steering = -0.25 + + self.car.setCarControls(self.car_controls) + time.sleep(1) + + def transform_obs(self, response): + img1d = np.array(response.image_data_float, dtype=np.float) + img1d = 255 / np.maximum(np.ones(img1d.size), img1d) + img2d = np.reshape(img1d, (response.height, response.width)) + + from PIL import Image + + image = Image.fromarray(img2d) + im_final = np.array(image.resize((84, 84)).convert("L")) + + return im_final.reshape([84, 84, 1]) + + def _get_obs(self): + responses = self.car.simGetImages([self.image_request]) + image = self.transform_obs(responses[0]) + + self.car_state = self.car.getCarState() + + self.state["prev_pose"] = self.state["pose"] + self.state["pose"] = self.car_state.kinematics_estimated + self.state["collision"] = self.car.simGetCollisionInfo().has_collided + + return image + + def _compute_reward(self): + MAX_SPEED = 300 + MIN_SPEED = 10 + THRESH_DIST = 3.5 + BETA = 3 + + pts = [ + np.array([x, y, 0]) + for x, y in [ + (0, -1), (130, -1), (130, 125), (0, 125), + (0, -1), (130, -1), (130, -128), (0, -128), + (0, -1), + ] + ] + car_pt = self.state["pose"].position.to_numpy_array() + + dist = 10000000 + for i in range(0, len(pts) - 1): + dist = min( + dist, + np.linalg.norm( + np.cross((car_pt - pts[i]), (car_pt - pts[i + 1])) + ) + / np.linalg.norm(pts[i] - pts[i + 1]), + ) + + # print(dist) + if dist > THRESH_DIST: + reward = -3 + else: + reward_dist = math.exp(-BETA * dist) - 0.5 + reward_speed = ( + (self.car_state.speed - MIN_SPEED) / (MAX_SPEED - MIN_SPEED) + ) - 0.5 + reward = reward_dist + reward_speed + + done = 0 + if reward < -1: + done = 1 + if self.car_controls.brake == 0: + if self.car_state.speed <= 1: + done = 1 + if self.state["collision"]: + done = 1 + + return reward, done + + def step(self, action): + self._do_action(action) + obs = self._get_obs() + reward, done = self._compute_reward() + + return obs, reward, done, self.state + + def reset(self): + self._setup_car() + self._do_action(1) + return self._get_obs() diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py new file mode 100644 index 0000000000..5fd6a9515f --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py @@ -0,0 +1,164 @@ +import setup_path +import airsim +import numpy as np +import math +import time +from argparse import ArgumentParser + +import gym +from gym import spaces +from airgym.envs.airsim_env import AirSimEnv + + +class AirSimDroneEnv(AirSimEnv): + def __init__(self, ip_address, step_length, image_shape): + super().__init__(image_shape) + self.step_length = step_length + self.image_shape = image_shape + + self.state = { + "position": np.zeros(3), + "collision": False, + "prev_position": np.zeros(3), + } + + self.drone = airsim.MultirotorClient(ip=ip_address) + self.action_space = spaces.Discrete(7) + self._setup_flight() + + self.image_request = airsim.ImageRequest( + 3, airsim.ImageType.DepthPerspective, True, False + ) + + def __del__(self): + self.drone.reset() + + def _setup_flight(self): + self.drone.reset() + self.drone.enableApiControl(True) + self.drone.armDisarm(True) + + # Set home position and velocity + self.drone.moveToPositionAsync(-0.55265, -31.9786, -19.0225, 10).join() + self.drone.moveByVelocityAsync(1, -0.67, -0.8, 5).join() + + def transform_obs(self, responses): + img1d = np.array(responses[0].image_data_float, dtype=np.float) + img1d = 255 / np.maximum(np.ones(img1d.size), img1d) + img2d = np.reshape(img1d, (responses[0].height, responses[0].width)) + + from PIL import Image + + image = Image.fromarray(img2d) + im_final = np.array(image.resize((84, 84)).convert("L")) + + return im_final.reshape([84, 84, 1]) + + def _get_obs(self): + responses = self.drone.simGetImages([self.image_request]) + image = self.transform_obs(responses) + self.drone_state = self.drone.getMultirotorState() + + self.state["prev_position"] = self.state["position"] + self.state["position"] = self.drone_state.kinematics_estimated.position + self.state["velocity"] = self.drone_state.kinematics_estimated.linear_velocity + + collision = self.drone.simGetCollisionInfo().has_collided + self.state["collision"] = collision + + return image + + def _do_action(self, action): + quad_offset = self.interpret_action(action) + quad_vel = self.drone.getMultirotorState().kinematics_estimated.linear_velocity + self.drone.moveByVelocityAsync( + quad_vel.x_val + quad_offset[0], + quad_vel.y_val + quad_offset[1], + quad_vel.z_val + quad_offset[2], + 5, + ).join() + + def _compute_reward(self): + thresh_dist = 7 + beta = 1 + + z = -10 + pts = [ + np.array([-0.55265, -31.9786, -19.0225]), + np.array([48.59735, -63.3286, -60.07256]), + np.array([193.5974, -55.0786, -46.32256]), + np.array([369.2474, 35.32137, -62.5725]), + np.array([541.3474, 143.6714, -32.07256]), + ] + + quad_pt = np.array( + list( + ( + self.state["position"].x_val, + self.state["position"].y_val, + self.state["position"].z_val, + ) + ) + ) + + if self.state["collision"]: + reward = -100 + else: + dist = 10000000 + for i in range(0, len(pts) - 1): + dist = min( + dist, + np.linalg.norm(np.cross((quad_pt - pts[i]), (quad_pt - pts[i + 1]))) + / np.linalg.norm(pts[i] - pts[i + 1]), + ) + + if dist > thresh_dist: + reward = -10 + else: + reward_dist = math.exp(-beta * dist) - 0.5 + reward_speed = ( + np.linalg.norm( + [ + self.state["velocity"].x_val, + self.state["velocity"].y_val, + self.state["velocity"].z_val, + ] + ) + - 0.5 + ) + reward = reward_dist + reward_speed + + done = 0 + if reward <= -10: + done = 1 + + return reward, done + + def step(self, action): + self._do_action(action) + obs = self._get_obs() + reward, done = self._compute_reward() + + return obs, reward, done, self.state + + def reset(self): + self._setup_flight() + return self._get_obs() + + def interpret_action(self, action): + if action == 0: + quad_offset = (self.step_length, 0, 0) + elif action == 1: + quad_offset = (0, self.step_length, 0) + elif action == 2: + quad_offset = (0, 0, self.step_length) + elif action == 3: + quad_offset = (-self.step_length, 0, 0) + elif action == 4: + quad_offset = (0, -self.step_length, 0) + elif action == 5: + quad_offset = (0, 0, -self.step_length) + else: + quad_offset = (0, 0, 0) + + return quad_offset diff --git a/src/airsim/PythonClient/reinforcement_learning/dqn_car.py b/src/airsim/PythonClient/reinforcement_learning/dqn_car.py new file mode 100644 index 0000000000..49d96e515f --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/dqn_car.py @@ -0,0 +1,67 @@ +import setup_path +import gym +import airgym +import time + +from stable_baselines3 import DQN +from stable_baselines3.common.monitor import Monitor +from stable_baselines3.common.vec_env import DummyVecEnv, VecTransposeImage +from stable_baselines3.common.evaluation import evaluate_policy +from stable_baselines3.common.callbacks import EvalCallback + +# Create a DummyVecEnv for main airsim gym env +env = DummyVecEnv( + [ + lambda: Monitor( + gym.make( + "airgym:airsim-car-sample-v0", + ip_address="127.0.0.1", + image_shape=(84, 84, 1), + ) + ) + ] +) + +# Wrap env as VecTransposeImage to allow SB to handle frame observations +env = VecTransposeImage(env) + +# Initialize RL algorithm type and parameters +model = DQN( + "CnnPolicy", + env, + learning_rate=0.00025, + verbose=1, + batch_size=32, + train_freq=4, + target_update_interval=10000, + learning_starts=200000, + buffer_size=500000, + max_grad_norm=10, + exploration_fraction=0.1, + exploration_final_eps=0.01, + device="cuda", + tensorboard_log="./tb_logs/", +) + +# Create an evaluation callback with the same env, called every 10000 iterations +callbacks = [] +eval_callback = EvalCallback( + env, + callback_on_new_best=None, + n_eval_episodes=5, + best_model_save_path=".", + log_path=".", + eval_freq=10000, +) +callbacks.append(eval_callback) + +kwargs = {} +kwargs["callback"] = callbacks + +# Train for a certain number of timesteps +model.learn( + total_timesteps=5e5, tb_log_name="dqn_airsim_car_run_" + str(time.time()), **kwargs +) + +# Save policy weights +model.save("dqn_airsim_car_policy") diff --git a/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py b/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py new file mode 100644 index 0000000000..845b396859 --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py @@ -0,0 +1,70 @@ +import setup_path +import gym +import airgym +import time + +from stable_baselines3 import DQN +from stable_baselines3.common.monitor import Monitor +from stable_baselines3.common.vec_env import DummyVecEnv, VecTransposeImage +from stable_baselines3.common.evaluation import evaluate_policy +from stable_baselines3.common.callbacks import EvalCallback + +# Create a DummyVecEnv for main airsim gym env +env = DummyVecEnv( + [ + lambda: Monitor( + gym.make( + "airgym:airsim-drone-sample-v0", + ip_address="127.0.0.1", + step_length=0.25, + image_shape=(84, 84, 1), + ) + ) + ] +) + +# Wrap env as VecTransposeImage to allow SB to handle frame observations +env = VecTransposeImage(env) + +# Initialize RL algorithm type and parameters +model = DQN( + "CnnPolicy", + env, + learning_rate=0.00025, + verbose=1, + batch_size=32, + train_freq=4, + target_update_interval=10000, + learning_starts=10000, + buffer_size=500000, + max_grad_norm=10, + exploration_fraction=0.1, + exploration_final_eps=0.01, + device="cuda", + tensorboard_log="./tb_logs/", +) + +# Create an evaluation callback with the same env, called every 10000 iterations +callbacks = [] +eval_callback = EvalCallback( + env, + callback_on_new_best=None, + n_eval_episodes=5, + best_model_save_path=".", + log_path=".", + eval_freq=10000, +) +callbacks.append(eval_callback) + +kwargs = {} +kwargs["callback"] = callbacks + +# Train for a certain number of timesteps +model.learn( + total_timesteps=5e5, + tb_log_name="dqn_airsim_drone_run_" + str(time.time()), + **kwargs +) + +# Save policy weights +model.save("dqn_airsim_drone_policy") diff --git a/src/airsim/PythonClient/reinforcement_learning/setup_path.py b/src/airsim/PythonClient/reinforcement_learning/setup_path.py new file mode 100644 index 0000000000..362113fea8 --- /dev/null +++ b/src/airsim/PythonClient/reinforcement_learning/setup_path.py @@ -0,0 +1,52 @@ +# Import this module to automatically setup path to local airsim module +# This module first tries to see if airsim module is installed via pip +# If it does then we don't do anything else +# Else we look up grand-parent folder to see if it has airsim folder +# and if it does then we add that in sys.path + +import os,sys,inspect,logging + +#this class simply tries to see if airsim +class SetupPath: + @staticmethod + def getDirLevels(path): + path_norm = os.path.normpath(path) + return len(path_norm.split(os.sep)) + + @staticmethod + def getCurrentPath(): + cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) + return os.path.dirname(cur_filepath) + + @staticmethod + def getGrandParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 2: + return os.path.dirname(os.path.dirname(cur_path)) + return '' + + @staticmethod + def getParentDir(): + cur_path = SetupPath.getCurrentPath() + if SetupPath.getDirLevels(cur_path) >= 1: + return os.path.dirname(cur_path) + return '' + + @staticmethod + def addAirSimModulePath(): + # if airsim module is installed then don't do anything else + #import pkgutil + #airsim_loader = pkgutil.find_loader('airsim') + #if airsim_loader is not None: + # return + + parent = SetupPath.getParentDir() + if parent != '': + airsim_path = os.path.join(parent, 'airsim') + client_path = os.path.join(airsim_path, 'client.py') + if os.path.exists(client_path): + sys.path.insert(0, parent) + else: + logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") + +SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/requirements.txt b/src/airsim/PythonClient/requirements.txt new file mode 100644 index 0000000000..1713d945ac --- /dev/null +++ b/src/airsim/PythonClient/requirements.txt @@ -0,0 +1,4 @@ +msgpack-rpc-python +numpy +pyaudio +opencv-contrib-python diff --git a/src/airsim/PythonClient/setup.py b/src/airsim/PythonClient/setup.py new file mode 100644 index 0000000000..c9d6aacdc8 --- /dev/null +++ b/src/airsim/PythonClient/setup.py @@ -0,0 +1,26 @@ +import setuptools +from airsim import __version__ + +with open("README.md", "r") as fh: + long_description = fh.read() + +setuptools.setup( + name="airsim", + version=__version__, + author="Shital Shah", + author_email="shitals@microsoft.com", + description="Open source simulator based on Unreal Engine for autonomous vehicles from Microsoft AI & Research", + long_description=long_description, + long_description_content_type="text/markdown", + url="https://github.com/microsoft/airsim", + packages=setuptools.find_packages(), + license='MIT', + classifiers=( + "Programming Language :: Python :: 3", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + ), + install_requires=[ + 'msgpack-rpc-python', 'numpy', 'opencv-contrib-python' + ] +) diff --git a/src/airsim/PythonClient/update_package.bat b/src/airsim/PythonClient/update_package.bat new file mode 100644 index 0000000000..641072b11b --- /dev/null +++ b/src/airsim/PythonClient/update_package.bat @@ -0,0 +1,8 @@ +PAUSE Make sure to increment version in setup.py. Continue? +python setup.py sdist +twine upload --repository-url https://upload.pypi.org/legacy/ dist/* +REM pip install airsim --upgrade +REM pip show airsim + +REM pip install yolk3k +REM yolk -V airsim \ No newline at end of file From d6d39500ef09f65629316197d031cda218fab4ee Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 27 Oct 2025 08:32:05 +0800 Subject: [PATCH 04/26] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=BD=A6=E8=BE=86?= =?UTF-8?q?=E6=8E=A7=E5=88=B6=E4=BB=A3=E7=A0=81=E6=8F=90=E9=AB=98=E5=8F=AF?= =?UTF-8?q?=E8=AF=BB=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/hello_car.py | 115 ++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 src/airsim_control/hello_car.py diff --git a/src/airsim_control/hello_car.py b/src/airsim_control/hello_car.py new file mode 100644 index 0000000000..3a556e1cca --- /dev/null +++ b/src/airsim_control/hello_car.py @@ -0,0 +1,115 @@ +import setup_path +import airsim +import cv2 +import numpy as np +import os +import time +import tempfile +from pathlib import Path + + +def setup_client(): + """初始化并配置 AirSim 客户端""" + client = airsim.CarClient() + client.confirmConnection() + client.enableApiControl(True) + print(f"API Control enabled: {client.isApiControlEnabled()}") + return client + + +def setup_image_directory(): + """创建图像保存目录""" + tmp_dir = Path(tempfile.gettempdir()) / "airsim_car" + tmp_dir.mkdir(parents=True, exist_ok=True) + print(f"Saving images to {tmp_dir}") + return tmp_dir + + +def execute_maneuver(client, throttle, steering, duration, gear_mode=None, description=""): + """执行单次驾驶操作""" + car_controls = airsim.CarControls() + car_controls.throttle = throttle + car_controls.steering = steering + + if gear_mode == "reverse": + car_controls.is_manual_gear = True + car_controls.manual_gear = -1 + + client.setCarControls(car_controls) + print(description) + time.sleep(duration) + + # 还原手动档 + if gear_mode == "reverse": + car_controls.is_manual_gear = False + car_controls.manual_gear = 0 + client.setCarControls(car_controls) + + +def apply_brake(client, duration=3): + """应用刹车""" + car_controls = airsim.CarControls() + car_controls.brake = 1 + client.setCarControls(car_controls) + print("Apply brakes") + time.sleep(duration) + + +def save_image(response, filename): + """根据图像类型保存图像""" + if response.pixels_as_float: + print(f"Type {response.image_type}, size {len(response.image_data_float)}") + airsim.write_pfm(f'{filename}.pfm', airsim.get_pfm_array(response)) + elif response.compress: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") + airsim.write_file(f'{filename}.png', response.image_data_uint8) + else: + print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") + img1d = np.frombuffer(response.image_data_uint8, dtype=np.uint8) + img_rgb = img1d.reshape(response.height, response.width, 3) + cv2.imwrite(f'{filename}.png', img_rgb) + + +def capture_images(client, tmp_dir, idx): + """捕获并保存多种类型的图像""" + responses = client.simGetImages([ + airsim.ImageRequest("0", airsim.ImageType.DepthVis), + airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), + airsim.ImageRequest("1", airsim.ImageType.Scene), + airsim.ImageRequest("1", airsim.ImageType.Scene, False, False) + ]) + print(f'Retrieved images: {len(responses)}') + + for response_idx, response in enumerate(responses): + filename = tmp_dir / f"{idx}_{response.image_type}_{response_idx}" + save_image(response, str(filename)) + + +def main(): + """主函数""" + client = setup_client() + tmp_dir = setup_image_directory() + + try: + for idx in range(3): + # 获取车辆状态 + car_state = client.getCarState() + print(f"Speed {car_state.speed}, Gear {car_state.gear}") + + # 执行各种驾驶操作 + execute_maneuver(client, 0.5, 0, 3, description="Go Forward") + execute_maneuver(client, 0.5, 1, 3, description="Go Forward, steer right") + execute_maneuver(client, -0.5, 0, 3, gear_mode="reverse", description="Go reverse") + apply_brake(client) + + capture_images(client, tmp_dir, idx) + + finally: + # 确保资源正确释放 + client.reset() + client.enableApiControl(False) + print("Control released and simulator reset") + + +if __name__ == "__main__": + main() \ No newline at end of file From c4e1cf1e806f74752363733e874ac7c7df1b5a33 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 27 Oct 2025 08:32:27 +0800 Subject: [PATCH 05/26] Update hello_car.py --- src/airsim_control/hello_car.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/airsim_control/hello_car.py b/src/airsim_control/hello_car.py index 3a556e1cca..d6c01728eb 100644 --- a/src/airsim_control/hello_car.py +++ b/src/airsim_control/hello_car.py @@ -102,6 +102,7 @@ def main(): execute_maneuver(client, -0.5, 0, 3, gear_mode="reverse", description="Go reverse") apply_brake(client) + # 捕获图像 capture_images(client, tmp_dir, idx) finally: From bd90afaa8c0219f7cfd742dbfe6d508ddc5843a8 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 27 Oct 2025 20:25:34 +0800 Subject: [PATCH 06/26] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=9C=A8pycharm?= =?UTF-8?q?=E5=92=8Cairsim=E7=9A=84=E8=BF=9E=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/hello_car.py | 116 ------------------------ src/airsim_control/pycharm_conection.py | 22 +++++ src/airsim_control/requirments.txt | 2 + 3 files changed, 24 insertions(+), 116 deletions(-) delete mode 100644 src/airsim_control/hello_car.py create mode 100644 src/airsim_control/pycharm_conection.py create mode 100644 src/airsim_control/requirments.txt diff --git a/src/airsim_control/hello_car.py b/src/airsim_control/hello_car.py deleted file mode 100644 index d6c01728eb..0000000000 --- a/src/airsim_control/hello_car.py +++ /dev/null @@ -1,116 +0,0 @@ -import setup_path -import airsim -import cv2 -import numpy as np -import os -import time -import tempfile -from pathlib import Path - - -def setup_client(): - """初始化并配置 AirSim 客户端""" - client = airsim.CarClient() - client.confirmConnection() - client.enableApiControl(True) - print(f"API Control enabled: {client.isApiControlEnabled()}") - return client - - -def setup_image_directory(): - """创建图像保存目录""" - tmp_dir = Path(tempfile.gettempdir()) / "airsim_car" - tmp_dir.mkdir(parents=True, exist_ok=True) - print(f"Saving images to {tmp_dir}") - return tmp_dir - - -def execute_maneuver(client, throttle, steering, duration, gear_mode=None, description=""): - """执行单次驾驶操作""" - car_controls = airsim.CarControls() - car_controls.throttle = throttle - car_controls.steering = steering - - if gear_mode == "reverse": - car_controls.is_manual_gear = True - car_controls.manual_gear = -1 - - client.setCarControls(car_controls) - print(description) - time.sleep(duration) - - # 还原手动档 - if gear_mode == "reverse": - car_controls.is_manual_gear = False - car_controls.manual_gear = 0 - client.setCarControls(car_controls) - - -def apply_brake(client, duration=3): - """应用刹车""" - car_controls = airsim.CarControls() - car_controls.brake = 1 - client.setCarControls(car_controls) - print("Apply brakes") - time.sleep(duration) - - -def save_image(response, filename): - """根据图像类型保存图像""" - if response.pixels_as_float: - print(f"Type {response.image_type}, size {len(response.image_data_float)}") - airsim.write_pfm(f'{filename}.pfm', airsim.get_pfm_array(response)) - elif response.compress: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") - airsim.write_file(f'{filename}.png', response.image_data_uint8) - else: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") - img1d = np.frombuffer(response.image_data_uint8, dtype=np.uint8) - img_rgb = img1d.reshape(response.height, response.width, 3) - cv2.imwrite(f'{filename}.png', img_rgb) - - -def capture_images(client, tmp_dir, idx): - """捕获并保存多种类型的图像""" - responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), - airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), - airsim.ImageRequest("1", airsim.ImageType.Scene), - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False) - ]) - print(f'Retrieved images: {len(responses)}') - - for response_idx, response in enumerate(responses): - filename = tmp_dir / f"{idx}_{response.image_type}_{response_idx}" - save_image(response, str(filename)) - - -def main(): - """主函数""" - client = setup_client() - tmp_dir = setup_image_directory() - - try: - for idx in range(3): - # 获取车辆状态 - car_state = client.getCarState() - print(f"Speed {car_state.speed}, Gear {car_state.gear}") - - # 执行各种驾驶操作 - execute_maneuver(client, 0.5, 0, 3, description="Go Forward") - execute_maneuver(client, 0.5, 1, 3, description="Go Forward, steer right") - execute_maneuver(client, -0.5, 0, 3, gear_mode="reverse", description="Go reverse") - apply_brake(client) - - # 捕获图像 - capture_images(client, tmp_dir, idx) - - finally: - # 确保资源正确释放 - client.reset() - client.enableApiControl(False) - print("Control released and simulator reset") - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/src/airsim_control/pycharm_conection.py b/src/airsim_control/pycharm_conection.py new file mode 100644 index 0000000000..492f5e7c4e --- /dev/null +++ b/src/airsim_control/pycharm_conection.py @@ -0,0 +1,22 @@ +import sys + +sys.path.append(r"D:\Others\AirSim-1.8.1-windows\AirSim-1.8.1-windows\PythonClient") + +import airsim +import time + +print("尝试连接到 AirSim...") + +try: + # 连接到 AirSim 服务器 + client = airsim.CarClient() + client.confirmConnection() + print("✓ 成功连接到 AirSim 服务器!") + + # 获取车辆状态 + car_state = client.getCarState() + print(f"车辆位置: {car_state.kinematics_estimated.position}") + +except Exception as e: + print(f"连接失败: {e}") + print("请确保 AirSim 仿真环境正在运行") \ No newline at end of file diff --git a/src/airsim_control/requirments.txt b/src/airsim_control/requirments.txt new file mode 100644 index 0000000000..795615d850 --- /dev/null +++ b/src/airsim_control/requirments.txt @@ -0,0 +1,2 @@ +sys +airsim \ No newline at end of file From e0e9c4303f0060ad7ddd246294fcda05922a8cef Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 27 Oct 2025 22:45:17 +0800 Subject: [PATCH 07/26] =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../__pycache__/simulator.cpython-311.pyc | Bin 5468 -> 0 bytes src/airsim/PythonClient/LICENSE | 12 - src/airsim/PythonClient/PythonClient.pyproj | 134 -- src/airsim/PythonClient/PythonClient.sln | 23 - src/airsim/PythonClient/README.md | 20 - src/airsim/PythonClient/airsim/__init__.py | 5 - .../__pycache__/__init__.cpython-313.pyc | Bin 277 -> 0 bytes .../airsim/__pycache__/client.cpython-313.pyc | Bin 83297 -> 0 bytes .../airsim/__pycache__/types.cpython-313.pyc | Bin 37624 -> 0 bytes .../airsim/__pycache__/utils.cpython-313.pyc | Bin 9381 -> 0 bytes src/airsim/PythonClient/airsim/client.py | 1621 ----------------- src/airsim/PythonClient/airsim/pfm.py | 85 - src/airsim/PythonClient/airsim/types.py | 580 ------ src/airsim/PythonClient/airsim/utils.py | 208 --- src/airsim/PythonClient/build_api_docs.sh | 4 - .../__pycache__/setup_path.cpython-313.pyc | Bin 3101 -> 0 bytes src/airsim/PythonClient/car/car_collision.py | 39 - src/airsim/PythonClient/car/car_lidar.py | 95 - src/airsim/PythonClient/car/car_monitor.py | 26 - .../PythonClient/car/car_stress_test.py | 51 - .../PythonClient/car/car_time_of_day.py | 79 - .../PythonClient/car/distance_sensor_multi.py | 49 - src/airsim/PythonClient/car/drive_straight.py | 51 - src/airsim/PythonClient/car/hello_car.py | 116 -- .../PythonClient/car/multi_agent_car.py | 122 -- .../PythonClient/car/pause_continue_car.py | 32 - src/airsim/PythonClient/car/pause_test.py | 35 - src/airsim/PythonClient/car/reset_test_car.py | 28 - src/airsim/PythonClient/car/runtime_car.py | 75 - src/airsim/PythonClient/car/setup_path.py | 52 - .../capture_ir_segmentation.py | 257 --- .../create_ir_segmentation_map.py | 212 --- .../computer_vision/cv_capture.py | 55 - .../PythonClient/computer_vision/cv_mode.py | 64 - .../computer_vision/cv_navigate.py | 273 --- .../computer_vision/external_camera.py | 102 -- .../computer_vision/fov_change.py | 53 - .../PythonClient/computer_vision/getpos.py | 17 - .../computer_vision/ground_truth.py | 25 - .../computer_vision/image_benchmarker.py | 155 -- .../PythonClient/computer_vision/objects.py | 72 - .../computer_vision/seg_palette.py | 48 - .../computer_vision/segmentation.py | 63 - .../computer_vision/setup_path.py | 52 - .../PythonClient/detection/detection.py | 43 - .../PythonClient/detection/setup_path.py | 52 - src/airsim/PythonClient/docs/Makefile | 19 - src/airsim/PythonClient/docs/conf.py | 205 --- src/airsim/PythonClient/docs/index.rst | 42 - src/airsim/PythonClient/docs/make.bat | 35 - .../environment/change_texture_example.py | 7 - .../environment/create_objects.py | 32 - .../PythonClient/environment/light_control.py | 23 - .../PythonClient/environment/plot_markers.py | 63 - .../environment/sample_texture.jpg | Bin 1101411 -> 0 bytes .../PythonClient/environment/setup_path.py | 52 - .../environment/unreal_console_commands.py | 29 - .../PythonClient/environment/weather.py | 34 - .../eventcamera_sim/event_simulator.py | 157 -- .../eventcamera_sim/test_event_sim.py | 112 -- .../imitation_learning/Cooking.py | 225 --- .../imitation_learning/Generator.py | 342 ---- .../PythonClient/imitation_learning/README.md | 49 - .../imitation_learning/cook_data.py | 38 - .../imitation_learning/drive_model.py | 76 - .../imitation_learning/setup_path.py | 52 - .../imitation_learning/train_model.py | 94 - src/airsim/PythonClient/multirotor/Error.wav | Bin 331108 -> 0 bytes .../PythonClient/multirotor/add_drone.py | 46 - src/airsim/PythonClient/multirotor/arm.py | 6 - src/airsim/PythonClient/multirotor/box.py | 48 - .../PythonClient/multirotor/clock_speed.py | 36 - src/airsim/PythonClient/multirotor/disarm.py | 5 - .../PythonClient/multirotor/drone_lidar.py | 93 - .../multirotor/drone_stress_test.py | 21 - .../multirotor/external_physics_engine.py | 34 - src/airsim/PythonClient/multirotor/gimbal.py | 25 - .../PythonClient/multirotor/hello_drone.py | 90 - .../multirotor/high_res_camera.py | 61 - .../multirotor/kinect_publisher.py | 225 --- src/airsim/PythonClient/multirotor/land.py | 17 - .../PythonClient/multirotor/line_of_sight.py | 34 - .../multirotor/manual_mode_demo.py | 28 - .../multirotor/multi_agent_drone.py | 103 -- .../PythonClient/multirotor/navigate.py | 98 - .../PythonClient/multirotor/opencv_show.py | 75 - src/airsim/PythonClient/multirotor/orbit.py | 241 --- src/airsim/PythonClient/multirotor/params.txt | 5 - src/airsim/PythonClient/multirotor/path.py | 56 - .../multirotor/pause_continue_drone.py | 33 - .../PythonClient/multirotor/point_cloud.py | 63 - .../multirotor/reset_test_drone.py | 23 - .../sensorframe_lidar_pointcloud.py | 105 -- src/airsim/PythonClient/multirotor/set_fog.py | 33 - .../PythonClient/multirotor/set_trace_line.py | 46 - .../PythonClient/multirotor/set_wind.py | 35 - .../PythonClient/multirotor/setup_path.py | 52 - src/airsim/PythonClient/multirotor/speaker.py | 36 - .../PythonClient/multirotor/stability_test.py | 90 - src/airsim/PythonClient/multirotor/state.py | 20 - src/airsim/PythonClient/multirotor/survey.py | 99 - src/airsim/PythonClient/multirotor/takeoff.py | 48 - .../PythonClient/multirotor/teleport.py | 20 - .../vehicleframe_lidar_pointcloud.py | 93 - .../PythonClient/multirotor/wav_reader.py | 158 -- .../reinforcement_learning/airgym/__init__.py | 9 - .../airgym/envs/__init__.py | 4 - .../airgym/envs/airsim_env.py | 31 - .../airgym/envs/car_env.py | 148 -- .../airgym/envs/drone_env.py | 164 -- .../reinforcement_learning/dqn_car.py | 67 - .../reinforcement_learning/dqn_drone.py | 70 - .../reinforcement_learning/setup_path.py | 52 - src/airsim/PythonClient/requirements.txt | 4 - src/airsim/PythonClient/setup.py | 26 - src/airsim/PythonClient/update_package.bat | 8 - src/drone/README.md | 2 - src/drone/main.py | 0 "src/hello_car\346\263\250\351\207\212.py" | 93 - 119 files changed, 9750 deletions(-) delete mode 100644 src/HCL_interaction_task/mobl_arms_index_pointing/__pycache__/simulator.cpython-311.pyc delete mode 100644 src/airsim/PythonClient/LICENSE delete mode 100644 src/airsim/PythonClient/PythonClient.pyproj delete mode 100644 src/airsim/PythonClient/PythonClient.sln delete mode 100644 src/airsim/PythonClient/README.md delete mode 100644 src/airsim/PythonClient/airsim/__init__.py delete mode 100644 src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc delete mode 100644 src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc delete mode 100644 src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc delete mode 100644 src/airsim/PythonClient/airsim/__pycache__/utils.cpython-313.pyc delete mode 100644 src/airsim/PythonClient/airsim/client.py delete mode 100644 src/airsim/PythonClient/airsim/pfm.py delete mode 100644 src/airsim/PythonClient/airsim/types.py delete mode 100644 src/airsim/PythonClient/airsim/utils.py delete mode 100644 src/airsim/PythonClient/build_api_docs.sh delete mode 100644 src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc delete mode 100644 src/airsim/PythonClient/car/car_collision.py delete mode 100644 src/airsim/PythonClient/car/car_lidar.py delete mode 100644 src/airsim/PythonClient/car/car_monitor.py delete mode 100644 src/airsim/PythonClient/car/car_stress_test.py delete mode 100644 src/airsim/PythonClient/car/car_time_of_day.py delete mode 100644 src/airsim/PythonClient/car/distance_sensor_multi.py delete mode 100644 src/airsim/PythonClient/car/drive_straight.py delete mode 100644 src/airsim/PythonClient/car/hello_car.py delete mode 100644 src/airsim/PythonClient/car/multi_agent_car.py delete mode 100644 src/airsim/PythonClient/car/pause_continue_car.py delete mode 100644 src/airsim/PythonClient/car/pause_test.py delete mode 100644 src/airsim/PythonClient/car/reset_test_car.py delete mode 100644 src/airsim/PythonClient/car/runtime_car.py delete mode 100644 src/airsim/PythonClient/car/setup_path.py delete mode 100644 src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py delete mode 100644 src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py delete mode 100644 src/airsim/PythonClient/computer_vision/cv_capture.py delete mode 100644 src/airsim/PythonClient/computer_vision/cv_mode.py delete mode 100644 src/airsim/PythonClient/computer_vision/cv_navigate.py delete mode 100644 src/airsim/PythonClient/computer_vision/external_camera.py delete mode 100644 src/airsim/PythonClient/computer_vision/fov_change.py delete mode 100644 src/airsim/PythonClient/computer_vision/getpos.py delete mode 100644 src/airsim/PythonClient/computer_vision/ground_truth.py delete mode 100644 src/airsim/PythonClient/computer_vision/image_benchmarker.py delete mode 100644 src/airsim/PythonClient/computer_vision/objects.py delete mode 100644 src/airsim/PythonClient/computer_vision/seg_palette.py delete mode 100644 src/airsim/PythonClient/computer_vision/segmentation.py delete mode 100644 src/airsim/PythonClient/computer_vision/setup_path.py delete mode 100644 src/airsim/PythonClient/detection/detection.py delete mode 100644 src/airsim/PythonClient/detection/setup_path.py delete mode 100644 src/airsim/PythonClient/docs/Makefile delete mode 100644 src/airsim/PythonClient/docs/conf.py delete mode 100644 src/airsim/PythonClient/docs/index.rst delete mode 100644 src/airsim/PythonClient/docs/make.bat delete mode 100644 src/airsim/PythonClient/environment/change_texture_example.py delete mode 100644 src/airsim/PythonClient/environment/create_objects.py delete mode 100644 src/airsim/PythonClient/environment/light_control.py delete mode 100644 src/airsim/PythonClient/environment/plot_markers.py delete mode 100644 src/airsim/PythonClient/environment/sample_texture.jpg delete mode 100644 src/airsim/PythonClient/environment/setup_path.py delete mode 100644 src/airsim/PythonClient/environment/unreal_console_commands.py delete mode 100644 src/airsim/PythonClient/environment/weather.py delete mode 100644 src/airsim/PythonClient/eventcamera_sim/event_simulator.py delete mode 100644 src/airsim/PythonClient/eventcamera_sim/test_event_sim.py delete mode 100644 src/airsim/PythonClient/imitation_learning/Cooking.py delete mode 100644 src/airsim/PythonClient/imitation_learning/Generator.py delete mode 100644 src/airsim/PythonClient/imitation_learning/README.md delete mode 100644 src/airsim/PythonClient/imitation_learning/cook_data.py delete mode 100644 src/airsim/PythonClient/imitation_learning/drive_model.py delete mode 100644 src/airsim/PythonClient/imitation_learning/setup_path.py delete mode 100644 src/airsim/PythonClient/imitation_learning/train_model.py delete mode 100644 src/airsim/PythonClient/multirotor/Error.wav delete mode 100644 src/airsim/PythonClient/multirotor/add_drone.py delete mode 100644 src/airsim/PythonClient/multirotor/arm.py delete mode 100644 src/airsim/PythonClient/multirotor/box.py delete mode 100644 src/airsim/PythonClient/multirotor/clock_speed.py delete mode 100644 src/airsim/PythonClient/multirotor/disarm.py delete mode 100644 src/airsim/PythonClient/multirotor/drone_lidar.py delete mode 100644 src/airsim/PythonClient/multirotor/drone_stress_test.py delete mode 100644 src/airsim/PythonClient/multirotor/external_physics_engine.py delete mode 100644 src/airsim/PythonClient/multirotor/gimbal.py delete mode 100644 src/airsim/PythonClient/multirotor/hello_drone.py delete mode 100644 src/airsim/PythonClient/multirotor/high_res_camera.py delete mode 100644 src/airsim/PythonClient/multirotor/kinect_publisher.py delete mode 100644 src/airsim/PythonClient/multirotor/land.py delete mode 100644 src/airsim/PythonClient/multirotor/line_of_sight.py delete mode 100644 src/airsim/PythonClient/multirotor/manual_mode_demo.py delete mode 100644 src/airsim/PythonClient/multirotor/multi_agent_drone.py delete mode 100644 src/airsim/PythonClient/multirotor/navigate.py delete mode 100644 src/airsim/PythonClient/multirotor/opencv_show.py delete mode 100644 src/airsim/PythonClient/multirotor/orbit.py delete mode 100644 src/airsim/PythonClient/multirotor/params.txt delete mode 100644 src/airsim/PythonClient/multirotor/path.py delete mode 100644 src/airsim/PythonClient/multirotor/pause_continue_drone.py delete mode 100644 src/airsim/PythonClient/multirotor/point_cloud.py delete mode 100644 src/airsim/PythonClient/multirotor/reset_test_drone.py delete mode 100644 src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py delete mode 100644 src/airsim/PythonClient/multirotor/set_fog.py delete mode 100644 src/airsim/PythonClient/multirotor/set_trace_line.py delete mode 100644 src/airsim/PythonClient/multirotor/set_wind.py delete mode 100644 src/airsim/PythonClient/multirotor/setup_path.py delete mode 100644 src/airsim/PythonClient/multirotor/speaker.py delete mode 100644 src/airsim/PythonClient/multirotor/stability_test.py delete mode 100644 src/airsim/PythonClient/multirotor/state.py delete mode 100644 src/airsim/PythonClient/multirotor/survey.py delete mode 100644 src/airsim/PythonClient/multirotor/takeoff.py delete mode 100644 src/airsim/PythonClient/multirotor/teleport.py delete mode 100644 src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py delete mode 100644 src/airsim/PythonClient/multirotor/wav_reader.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/dqn_car.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/dqn_drone.py delete mode 100644 src/airsim/PythonClient/reinforcement_learning/setup_path.py delete mode 100644 src/airsim/PythonClient/requirements.txt delete mode 100644 src/airsim/PythonClient/setup.py delete mode 100644 src/airsim/PythonClient/update_package.bat delete mode 100644 src/drone/README.md delete mode 100644 src/drone/main.py delete mode 100644 "src/hello_car\346\263\250\351\207\212.py" diff --git a/src/HCL_interaction_task/mobl_arms_index_pointing/__pycache__/simulator.cpython-311.pyc b/src/HCL_interaction_task/mobl_arms_index_pointing/__pycache__/simulator.cpython-311.pyc deleted file mode 100644 index 02092cfeb6ced80bb73975610ff9b6a6b122f1ca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5468 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 iBkEH?b-D6eKvg5^Q=*O#1T5^q^lO#>&3Ck_EBP - - - Debug - 2.0 - e2049e20-b6dd-474e-8bca-1c8dc54725aa - . - computer_vision\cv_capture.py - - - . - . - PythonClient - PythonClient - Global|ContinuumAnalytics|Anaconda36-64 - - - - - true - false - - - true - false - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - Code - - - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - Code - - - - - - - 10.0 - - - - - - - - - \ No newline at end of file diff --git a/src/airsim/PythonClient/PythonClient.sln b/src/airsim/PythonClient/PythonClient.sln deleted file mode 100644 index 9e2a46adef..0000000000 --- a/src/airsim/PythonClient/PythonClient.sln +++ /dev/null @@ -1,23 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27428.2043 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "PythonClient", "PythonClient.pyproj", "{E2049E20-B6DD-474E-8BCA-1C8DC54725AA}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {E2049E20-B6DD-474E-8BCA-1C8DC54725AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2049E20-B6DD-474E-8BCA-1C8DC54725AA}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6D1D8A10-EB64-4019-BB38-93871124FD0C} - EndGlobalSection -EndGlobal diff --git a/src/airsim/PythonClient/README.md b/src/airsim/PythonClient/README.md deleted file mode 100644 index b9e32423db..0000000000 --- a/src/airsim/PythonClient/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Python API for AirSim - -This package contains Python APIs for [AirSim](https://github.com/microsoft/airsim). - -## How to Use -See examples at [car/hello_car.py](https://github.com/Microsoft/AirSim/blob/main/PythonClient/car/hello_car.py) or [multirotor/hello_drone.py](https://github.com/microsoft/AirSim/blob/main/PythonClient/multirotor/hello_drone.py). - -## Dependencies -This package depends on `msgpack` and would automatically install `msgpack-rpc-python` (this may need administrator/sudo prompt): -``` -pip install msgpack-rpc-python -``` - -Some examples also requires opencv. - -## More Info - -More information on AirSim Python APIs can be found at: -https://github.com/Microsoft/AirSim/blob/main/docs/python.md - diff --git a/src/airsim/PythonClient/airsim/__init__.py b/src/airsim/PythonClient/airsim/__init__.py deleted file mode 100644 index 17f3acac11..0000000000 --- a/src/airsim/PythonClient/airsim/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -from .client import * -from .utils import * -from .types import * - -__version__ = "1.8.1" diff --git a/src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index fff12a9578297dc032502d4f9d8b3f7e886ac05f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmey&%ge<81ZxDYB!vU%#~=<2FhLog)qsqt48aV+jNT09ObQSdBb>zqW-%2pr!#A^ zykrC_)?~cJs8z*ksAr*P=%>kYi!C`PGc~W|7HerqW=`=f){@GC)Z$y*@$qG;Ma7x< zdGYZp89sw-yA|wW72{u$0ThmL%q$Ad%+&=OqFbJsmy%zOLolGSBqKl18Ei*PVkXeY z+?e?I%)HE!_;|g7%3B;Zx%nxjIjMF<+(0`(4lEW15+9fu85!>|h~8lk0ip+dqK(`| HoIr5^m#9g! diff --git a/src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/client.cpython-313.pyc deleted file mode 100644 index 5cbdad49348e69c803140d7cca4b8e1722e37fc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83297 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 UTCm>#;@4~6zx)#)GCaKhA4F!@PXGV_ diff --git a/src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc b/src/airsim/PythonClient/airsim/__pycache__/types.cpython-313.pyc deleted file mode 100644 index c139643fe44bb30c0fdf96f189bef3ee249eef58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37624 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

tq^UpUKOHocN_ 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, msgpack decides to encode it as a string unfortunately. - result = self.client.call('simGetImage', camera_name, image_type, vehicle_name, external) - if (result == "" or result == "\0"): - return None - return result - -#camera control -#simGetImage returns compressed png in array of bytes -#image_type uses one of the ImageType members - def simGetImages(self, requests, vehicle_name = '', external = False): - """ - Get multiple images - - See https://microsoft.github.io/AirSim/image_apis/ for details and examples - - Args: - requests (list[ImageRequest]): Images required - vehicle_name (str, optional): Name of vehicle associated with the camera - external (bool, optional): Whether the camera is an External Camera - - Returns: - list[ImageResponse]: - """ - responses_raw = self.client.call('simGetImages', requests, vehicle_name, external) - return [ImageResponse.from_msgpack(response_raw) for response_raw in responses_raw] - - - -#CinemAirSim - def simGetPresetLensSettings(self, camera_name, vehicle_name = '', external = False): - result = self.client.call('simGetPresetLensSettings', camera_name, vehicle_name, external) - if (result == "" or result == "\0"): - return None - return result - - def simGetLensSettings(self, camera_name, vehicle_name = '', external = False): - result = self.client.call('simGetLensSettings', camera_name, vehicle_name, external) - if (result == "" or result == "\0"): - return None - return result - - def simSetPresetLensSettings(self, preset_lens_settings, camera_name, vehicle_name = '', external = False): - self.client.call("simSetPresetLensSettings", preset_lens_settings, camera_name, vehicle_name, external) - - def simGetPresetFilmbackSettings(self, camera_name, vehicle_name = '', external = False): - result = self.client.call('simGetPresetFilmbackSettings', camera_name, vehicle_name, external) - if (result == "" or result == "\0"): - return None - return result - - def simSetPresetFilmbackSettings(self, preset_filmback_settings, camera_name, vehicle_name = '', external = False): - self.client.call("simSetPresetFilmbackSettings", preset_filmback_settings, camera_name, vehicle_name, external) - - def simGetFilmbackSettings(self, camera_name, vehicle_name = '', external = False): - result = self.client.call('simGetFilmbackSettings', camera_name, vehicle_name, external) - if (result == "" or result == "\0"): - return None - return result - - def simSetFilmbackSettings(self, sensor_width, sensor_height, camera_name, vehicle_name = '', external = False): - return self.client.call("simSetFilmbackSettings", sensor_width, sensor_height, camera_name, vehicle_name, external) - - def simGetFocalLength(self, camera_name, vehicle_name = '', external = False): - return self.client.call("simGetFocalLength", camera_name, vehicle_name, external) - - def simSetFocalLength(self, focal_length, camera_name, vehicle_name = '', external = False): - self.client.call("simSetFocalLength", focal_length, camera_name, vehicle_name, external) - - def simEnableManualFocus(self, enable, camera_name, vehicle_name = '', external = False): - self.client.call("simEnableManualFocus", enable, camera_name, vehicle_name, external) - - def simGetFocusDistance(self, camera_name, vehicle_name = '', external = False): - return self.client.call("simGetFocusDistance", camera_name, vehicle_name, external) - - def simSetFocusDistance(self, focus_distance, camera_name, vehicle_name = '', external = False): - self.client.call("simSetFocusDistance", focus_distance, camera_name, vehicle_name, external) - - def simGetFocusAperture(self, camera_name, vehicle_name = '', external = False): - return self.client.call("simGetFocusAperture", camera_name, vehicle_name, external) - - def simSetFocusAperture(self, focus_aperture, camera_name, vehicle_name = '', external = False): - self.client.call("simSetFocusAperture", focus_aperture, camera_name, vehicle_name, external) - - def simEnableFocusPlane(self, enable, camera_name, vehicle_name = '', external = False): - self.client.call("simEnableFocusPlane", enable, camera_name, vehicle_name, external) - - def simGetCurrentFieldOfView(self, camera_name, vehicle_name = '', external = False): - return self.client.call("simGetCurrentFieldOfView", camera_name, vehicle_name, external) - -#End CinemAirSim - def simTestLineOfSightToPoint(self, point, vehicle_name = ''): - """ - Returns whether the target point is visible from the perspective of the inputted vehicle - - Args: - point (GeoPoint): target point - vehicle_name (str, optional): Name of vehicle - - Returns: - [bool]: Success - """ - return self.client.call('simTestLineOfSightToPoint', point, vehicle_name) - - def simTestLineOfSightBetweenPoints(self, point1, point2): - """ - Returns whether the target point is visible from the perspective of the source point - - Args: - point1 (GeoPoint): source point - point2 (GeoPoint): target point - - Returns: - [bool]: Success - """ - return self.client.call('simTestLineOfSightBetweenPoints', point1, point2) - - def simGetWorldExtents(self): - """ - Returns a list of GeoPoints representing the minimum and maximum extents of the world - - Returns: - list[GeoPoint] - """ - responses_raw = self.client.call('simGetWorldExtents') - return [GeoPoint.from_msgpack(response_raw) for response_raw in responses_raw] - - def simRunConsoleCommand(self, command): - """ - Allows the client to execute a command in Unreal's native console, via an API. - Affords access to the countless built-in commands such as "stat unit", "stat fps", "open [map]", adjust any config settings, etc. etc. - Allows the user to create bespoke APIs very easily, by adding a custom event to the level blueprint, and then calling the console command "ce MyEventName [args]". No recompilation of AirSim needed! - - Args: - command ([string]): Desired Unreal Engine Console command to run - - Returns: - [bool]: Success - """ - return self.client.call('simRunConsoleCommand', command) - -#gets the static meshes in the unreal scene - def simGetMeshPositionVertexBuffers(self): - """ - Returns the static meshes that make up the scene - - See https://microsoft.github.io/AirSim/meshes/ for details and how to use this - - Returns: - list[MeshPositionVertexBuffersResponse]: - """ - responses_raw = self.client.call('simGetMeshPositionVertexBuffers') - return [MeshPositionVertexBuffersResponse.from_msgpack(response_raw) for response_raw in responses_raw] - - def simGetCollisionInfo(self, vehicle_name = ''): - """ - Args: - vehicle_name (str, optional): Name of the Vehicle to get the info of - - Returns: - CollisionInfo: - """ - return CollisionInfo.from_msgpack(self.client.call('simGetCollisionInfo', vehicle_name)) - - def simSetVehiclePose(self, pose, ignore_collision, vehicle_name = ''): - """ - Set the pose of the vehicle - - If you don't want to change position (or orientation) then just set components of position (or orientation) to floating point nan values - - Args: - pose (Pose): Desired Pose pf the vehicle - ignore_collision (bool): Whether to ignore any collision or not - vehicle_name (str, optional): Name of the vehicle to move - """ - self.client.call('simSetVehiclePose', pose, ignore_collision, vehicle_name) - - def simGetVehiclePose(self, vehicle_name = ''): - """ - The position inside the returned Pose is in the frame of the vehicle's starting point - - Args: - vehicle_name (str, optional): Name of the vehicle to get the Pose of - - Returns: - Pose: - """ - pose = self.client.call('simGetVehiclePose', vehicle_name) - return Pose.from_msgpack(pose) - - def simSetTraceLine(self, color_rgba, thickness=1.0, vehicle_name = ''): - """ - Modify the color and thickness of the line when Tracing is enabled - - Tracing can be enabled by pressing T in the Editor or setting `EnableTrace` to `True` in the Vehicle Settings - - Args: - color_rgba (list): desired RGBA values from 0.0 to 1.0 - thickness (float, optional): Thickness of the line - vehicle_name (string, optional): Name of the vehicle to set Trace line values for - """ - self.client.call('simSetTraceLine', color_rgba, thickness, vehicle_name) - - def simGetObjectPose(self, object_name): - """ - The position inside the returned Pose is in the world frame - - Args: - object_name (str): Object to get the Pose of - - Returns: - Pose: - """ - pose = self.client.call('simGetObjectPose', object_name) - return Pose.from_msgpack(pose) - - def simSetObjectPose(self, object_name, pose, teleport = True): - """ - Set the pose of the object(actor) in the environment - - The specified actor must have Mobility set to movable, otherwise there will be undefined behaviour. - See https://www.unrealengine.com/en-US/blog/moving-physical-objects for details on how to set Mobility and the effect of Teleport parameter - - Args: - object_name (str): Name of the object(actor) to move - pose (Pose): Desired Pose of the object - teleport (bool, optional): Whether to move the object immediately without affecting their velocity - - Returns: - bool: If the move was successful - """ - return self.client.call('simSetObjectPose', object_name, pose, teleport) - - def simGetObjectScale(self, object_name): - """ - Gets scale of an object in the world - - Args: - object_name (str): Object to get the scale of - - Returns: - airsim.Vector3r: Scale - """ - scale = self.client.call('simGetObjectScale', object_name) - return Vector3r.from_msgpack(scale) - - def simSetObjectScale(self, object_name, scale_vector): - """ - Sets scale of an object in the world - - Args: - object_name (str): Object to set the scale of - scale_vector (airsim.Vector3r): Desired scale of object - - Returns: - bool: True if scale change was successful - """ - return self.client.call('simSetObjectScale', object_name, scale_vector) - - def simListSceneObjects(self, name_regex = '.*'): - """ - Lists the objects present in the environment - - Default behaviour is to list all objects, regex can be used to return smaller list of matching objects or actors - - Args: - name_regex (str, optional): String to match actor names against, e.g. "Cylinder.*" - - Returns: - list[str]: List containing all the names - """ - return self.client.call('simListSceneObjects', name_regex) - - def simLoadLevel(self, level_name): - """ - Loads a level specified by its name - - Args: - level_name (str): Name of the level to load - - Returns: - bool: True if the level was successfully loaded - """ - return self.client.call('simLoadLevel', level_name) - - def simListAssets(self): - """ - Lists all the assets present in the Asset Registry - - Returns: - list[str]: Names of all the assets - """ - return self.client.call('simListAssets') - - def simSpawnObject(self, object_name, asset_name, pose, scale, physics_enabled=False, is_blueprint=False): - """Spawned selected object in the world - - Args: - object_name (str): Desired name of new object - asset_name (str): Name of asset(mesh) in the project database - pose (airsim.Pose): Desired pose of object - scale (airsim.Vector3r): Desired scale of object - physics_enabled (bool, optional): Whether to enable physics for the object - is_blueprint (bool, optional): Whether to spawn a blueprint or an actor - - Returns: - str: Name of spawned object, in case it had to be modified - """ - return self.client.call('simSpawnObject', object_name, asset_name, pose, scale, physics_enabled, is_blueprint) - - def simDestroyObject(self, object_name): - """Removes selected object from the world - - Args: - object_name (str): Name of object to be removed - - Returns: - bool: True if object is queued up for removal - """ - return self.client.call('simDestroyObject', object_name) - - def simSetSegmentationObjectID(self, mesh_name, object_id, is_name_regex = False): - """ - Set segmentation ID for specific objects - - See https://microsoft.github.io/AirSim/image_apis/#segmentation for details - - Args: - mesh_name (str): Name of the mesh to set the ID of (supports regex) - object_id (int): Object ID to be set, range 0-255 - - RBG values for IDs can be seen at https://microsoft.github.io/AirSim/seg_rgbs.txt - is_name_regex (bool, optional): Whether the mesh name is a regex - - Returns: - bool: If the mesh was found - """ - return self.client.call('simSetSegmentationObjectID', mesh_name, object_id, is_name_regex) - - def simGetSegmentationObjectID(self, mesh_name): - """ - Returns Object ID for the given mesh name - - Mapping of Object IDs to RGB values can be seen at https://microsoft.github.io/AirSim/seg_rgbs.txt - - Args: - mesh_name (str): Name of the mesh to get the ID of - """ - return self.client.call('simGetSegmentationObjectID', mesh_name) - - def simAddDetectionFilterMeshName(self, camera_name, image_type, mesh_name, vehicle_name = '', external = False): - """ - Add mesh name to detect in wild card format - - For example: simAddDetectionFilterMeshName("Car_*") will detect all instance named "Car_*" - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - image_type (ImageType): Type of image required - mesh_name (str): mesh name in wild card format - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - - """ - self.client.call('simAddDetectionFilterMeshName', camera_name, image_type, mesh_name, vehicle_name, external) - - def simSetDetectionFilterRadius(self, camera_name, image_type, radius_cm, vehicle_name = '', external = False): - """ - Set detection radius for all cameras - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - image_type (ImageType): Type of image required - radius_cm (int): Radius in [cm] - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - """ - self.client.call('simSetDetectionFilterRadius', camera_name, image_type, radius_cm, vehicle_name, external) - - def simClearDetectionMeshNames(self, camera_name, image_type, vehicle_name = '', external = False): - """ - Clear all mesh names from detection filter - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - image_type (ImageType): Type of image required - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - - """ - self.client.call('simClearDetectionMeshNames', camera_name, image_type, vehicle_name, external) - - def simGetDetections(self, camera_name, image_type, vehicle_name = '', external = False): - """ - Get current detections - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - image_type (ImageType): Type of image required - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - - Returns: - DetectionInfo array - """ - responses_raw = self.client.call('simGetDetections', camera_name, image_type, vehicle_name, external) - return [DetectionInfo.from_msgpack(response_raw) for response_raw in responses_raw] - - def simPrintLogMessage(self, message, message_param = "", severity = 0): - """ - Prints the specified message in the simulator's window. - - If message_param is supplied, then it's printed next to the message and in that case if this API is called with same message value - but different message_param again then previous line is overwritten with new line (instead of API creating new line on display). - - For example, `simPrintLogMessage("Iteration: ", to_string(i))` keeps updating same line on display when API is called with different values of i. - The valid values of severity parameter is 0 to 3 inclusive that corresponds to different colors. - - Args: - message (str): Message to be printed - message_param (str, optional): Parameter to be printed next to the message - severity (int, optional): Range 0-3, inclusive, corresponding to the severity of the message - """ - self.client.call('simPrintLogMessage', message, message_param, severity) - - def simGetCameraInfo(self, camera_name, vehicle_name = '', external=False): - """ - Get details about the camera - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - - Returns: - CameraInfo: - """ -#TODO : below str() conversion is only needed for legacy reason and should be removed in future - return CameraInfo.from_msgpack(self.client.call('simGetCameraInfo', str(camera_name), vehicle_name, external)) - - def simGetDistortionParams(self, camera_name, vehicle_name = '', external = False): - """ - Get camera distortion parameters - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - - Returns: - List (float): List of distortion parameter values corresponding to K1, K2, K3, P1, P2 respectively. - """ - - return self.client.call('simGetDistortionParams', str(camera_name), vehicle_name, external) - - def simSetDistortionParams(self, camera_name, distortion_params, vehicle_name = '', external = False): - """ - Set camera distortion parameters - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - distortion_params (dict): Dictionary of distortion param names and corresponding values - {"K1": 0.0, "K2": 0.0, "K3": 0.0, "P1": 0.0, "P2": 0.0} - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - """ - - for param_name, value in distortion_params.items(): - self.simSetDistortionParam(camera_name, param_name, value, vehicle_name, external) - - def simSetDistortionParam(self, camera_name, param_name, value, vehicle_name = '', external = False): - """ - Set single camera distortion parameter - - Args: - camera_name (str): Name of the camera, for backwards compatibility, ID numbers such as 0,1,etc. can also be used - param_name (str): Name of distortion parameter - value (float): Value of distortion parameter - vehicle_name (str, optional): Vehicle which the camera is associated with - external (bool, optional): Whether the camera is an External Camera - """ - self.client.call('simSetDistortionParam', str(camera_name), param_name, value, vehicle_name, external) - - def simSetCameraPose(self, camera_name, pose, vehicle_name = '', external = False): - """ - - Control the pose of a selected camera - - Args: - camera_name (str): Name of the camera to be controlled - pose (Pose): Pose representing the desired position and orientation of the camera - vehicle_name (str, optional): Name of vehicle which the camera corresponds to - external (bool, optional): Whether the camera is an External Camera - """ -#TODO : below str() conversion is only needed for legacy reason and should be removed in future - self.client.call('simSetCameraPose', str(camera_name), pose, vehicle_name, external) - - def simSetCameraFov(self, camera_name, fov_degrees, vehicle_name = '', external = False): - """ - - Control the field of view of a selected camera - - Args: - camera_name (str): Name of the camera to be controlled - fov_degrees (float): Value of field of view in degrees - vehicle_name (str, optional): Name of vehicle which the camera corresponds to - external (bool, optional): Whether the camera is an External Camera - """ -#TODO : below str() conversion is only needed for legacy reason and should be removed in future - self.client.call('simSetCameraFov', str(camera_name), fov_degrees, vehicle_name, external) - - def simGetGroundTruthKinematics(self, vehicle_name = ''): - """ - Get Ground truth kinematics of the vehicle - - The position inside the returned KinematicsState is in the frame of the vehicle's starting point - - Args: - vehicle_name (str, optional): Name of the vehicle - - Returns: - KinematicsState: Ground truth of the vehicle - """ - kinematics_state = self.client.call('simGetGroundTruthKinematics', vehicle_name) - return KinematicsState.from_msgpack(kinematics_state) - simGetGroundTruthKinematics.__annotations__ = {'return': KinematicsState} - - def simSetKinematics(self, state, ignore_collision, vehicle_name = ''): - """ - Set the kinematics state of the vehicle - - If you don't want to change position (or orientation) then just set components of position (or orientation) to floating point nan values - - Args: - state (KinematicsState): Desired Pose pf the vehicle - ignore_collision (bool): Whether to ignore any collision or not - vehicle_name (str, optional): Name of the vehicle to move - """ - self.client.call('simSetKinematics', state, ignore_collision, vehicle_name) - - def simGetGroundTruthEnvironment(self, vehicle_name = ''): - """ - Get ground truth environment state - - The position inside the returned EnvironmentState is in the frame of the vehicle's starting point - - Args: - vehicle_name (str, optional): Name of the vehicle - - Returns: - EnvironmentState: Ground truth environment state - """ - env_state = self.client.call('simGetGroundTruthEnvironment', vehicle_name) - return EnvironmentState.from_msgpack(env_state) - simGetGroundTruthEnvironment.__annotations__ = {'return': EnvironmentState} - - -#sensor APIs - def getImuData(self, imu_name = '', vehicle_name = ''): - """ - Args: - imu_name (str, optional): Name of IMU to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - ImuData: - """ - return ImuData.from_msgpack(self.client.call('getImuData', imu_name, vehicle_name)) - - def getBarometerData(self, barometer_name = '', vehicle_name = ''): - """ - Args: - barometer_name (str, optional): Name of Barometer to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - BarometerData: - """ - return BarometerData.from_msgpack(self.client.call('getBarometerData', barometer_name, vehicle_name)) - - def getMagnetometerData(self, magnetometer_name = '', vehicle_name = ''): - """ - Args: - magnetometer_name (str, optional): Name of Magnetometer to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - MagnetometerData: - """ - return MagnetometerData.from_msgpack(self.client.call('getMagnetometerData', magnetometer_name, vehicle_name)) - - def getGpsData(self, gps_name = '', vehicle_name = ''): - """ - Args: - gps_name (str, optional): Name of GPS to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - GpsData: - """ - return GpsData.from_msgpack(self.client.call('getGpsData', gps_name, vehicle_name)) - - def getDistanceSensorData(self, distance_sensor_name = '', vehicle_name = ''): - """ - Args: - distance_sensor_name (str, optional): Name of Distance Sensor to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - DistanceSensorData: - """ - return DistanceSensorData.from_msgpack(self.client.call('getDistanceSensorData', distance_sensor_name, vehicle_name)) - - def getLidarData(self, lidar_name = '', vehicle_name = ''): - """ - Args: - lidar_name (str, optional): Name of Lidar to get data from, specified in settings.json - vehicle_name (str, optional): Name of vehicle to which the sensor corresponds to - - Returns: - LidarData: - """ - return LidarData.from_msgpack(self.client.call('getLidarData', lidar_name, vehicle_name)) - - def simGetLidarSegmentation(self, lidar_name = '', vehicle_name = ''): - """ - NOTE: Deprecated API, use `getLidarData()` API instead - Returns Segmentation ID of each point's collided object in the last Lidar update - - Args: - lidar_name (str, optional): Name of Lidar sensor - vehicle_name (str, optional): Name of the vehicle wth the sensor - - Returns: - list[int]: Segmentation IDs of the objects - """ - logging.warning("simGetLidarSegmentation API is deprecated, use getLidarData() API instead") - return self.getLidarData(lidar_name, vehicle_name).segmentation - -#Plotting APIs - def simFlushPersistentMarkers(self): - """ - Clear any persistent markers - those plotted with setting `is_persistent=True` in the APIs below - """ - self.client.call('simFlushPersistentMarkers') - - def simPlotPoints(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], size = 10.0, duration = -1.0, is_persistent = False): - """ - Plot a list of 3D points in World NED frame - - Args: - points (list[Vector3r]): List of Vector3r objects - color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 - size (float, optional): Size of plotted point - duration (float, optional): Duration (seconds) to plot for - is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. - """ - self.client.call('simPlotPoints', points, color_rgba, size, duration, is_persistent) - - def simPlotLineStrip(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, duration = -1.0, is_persistent = False): - """ - Plots a line strip in World NED frame, defined from points[0] to points[1], points[1] to points[2], ... , points[n-2] to points[n-1] - - Args: - points (list[Vector3r]): List of 3D locations of line start and end points, specified as Vector3r objects - color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 - thickness (float, optional): Thickness of line - duration (float, optional): Duration (seconds) to plot for - is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. - """ - self.client.call('simPlotLineStrip', points, color_rgba, thickness, duration, is_persistent) - - def simPlotLineList(self, points, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, duration = -1.0, is_persistent = False): - """ - Plots a line strip in World NED frame, defined from points[0] to points[1], points[2] to points[3], ... , points[n-2] to points[n-1] - - Args: - points (list[Vector3r]): List of 3D locations of line start and end points, specified as Vector3r objects. Must be even - color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 - thickness (float, optional): Thickness of line - duration (float, optional): Duration (seconds) to plot for - is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. - """ - self.client.call('simPlotLineList', points, color_rgba, thickness, duration, is_persistent) - - def simPlotArrows(self, points_start, points_end, color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5.0, arrow_size = 2.0, duration = -1.0, is_persistent = False): - """ - Plots a list of arrows in World NED frame, defined from points_start[0] to points_end[0], points_start[1] to points_end[1], ... , points_start[n-1] to points_end[n-1] - - Args: - points_start (list[Vector3r]): List of 3D start positions of arrow start positions, specified as Vector3r objects - points_end (list[Vector3r]): List of 3D end positions of arrow start positions, specified as Vector3r objects - color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 - thickness (float, optional): Thickness of line - arrow_size (float, optional): Size of arrow head - duration (float, optional): Duration (seconds) to plot for - is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. - """ - self.client.call('simPlotArrows', points_start, points_end, color_rgba, thickness, arrow_size, duration, is_persistent) - - - def simPlotStrings(self, strings, positions, scale = 5, color_rgba=[1.0, 0.0, 0.0, 1.0], duration = -1.0): - """ - Plots a list of strings at desired positions in World NED frame. - - Args: - strings (list[String], optional): List of strings to plot - positions (list[Vector3r]): List of positions where the strings should be plotted. Should be in one-to-one correspondence with the strings' list - scale (float, optional): Font scale of transform name - color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 - duration (float, optional): Duration (seconds) to plot for - """ - self.client.call('simPlotStrings', strings, positions, scale, color_rgba, duration) - - def simPlotTransforms(self, poses, scale = 5.0, thickness = 5.0, duration = -1.0, is_persistent = False): - """ - Plots a list of transforms in World NED frame. - - Args: - poses (list[Pose]): List of Pose objects representing the transforms to plot - scale (float, optional): Length of transforms' axes - thickness (float, optional): Thickness of transforms' axes - duration (float, optional): Duration (seconds) to plot for - is_persistent (bool, optional): If set to True, the desired object will be plotted for infinite time. - """ - self.client.call('simPlotTransforms', poses, scale, thickness, duration, is_persistent) - - def simPlotTransformsWithNames(self, poses, names, tf_scale = 5.0, tf_thickness = 5.0, text_scale = 10.0, text_color_rgba = [1.0, 0.0, 0.0, 1.0], duration = -1.0): - """ - Plots a list of transforms with their names in World NED frame. - - Args: - poses (list[Pose]): List of Pose objects representing the transforms to plot - names (list[string]): List of strings with one-to-one correspondence to list of poses - tf_scale (float, optional): Length of transforms' axes - tf_thickness (float, optional): Thickness of transforms' axes - text_scale (float, optional): Font scale of transform name - text_color_rgba (list, optional): desired RGBA values from 0.0 to 1.0 for the transform name - duration (float, optional): Duration (seconds) to plot for - """ - self.client.call('simPlotTransformsWithNames', poses, names, tf_scale, tf_thickness, text_scale, text_color_rgba, duration) - - def cancelLastTask(self, vehicle_name = ''): - """ - Cancel previous Async task - - Args: - vehicle_name (str, optional): Name of the vehicle - """ - self.client.call('cancelLastTask', vehicle_name) - -#Recording APIs - def startRecording(self): - """ - Start Recording - - Recording will be done according to the settings - """ - self.client.call('startRecording') - - def stopRecording(self): - """ - Stop Recording - """ - self.client.call('stopRecording') - - def isRecording(self): - """ - Whether Recording is running or not - - Returns: - bool: True if Recording, else False - """ - return self.client.call('isRecording') - - def simSetWind(self, wind): - """ - Set simulated wind, in World frame, NED direction, m/s - - Args: - wind (Vector3r): Wind, in World frame, NED direction, in m/s - """ - self.client.call('simSetWind', wind) - - def simCreateVoxelGrid(self, position, x, y, z, res, of): - """ - Construct and save a binvox-formatted voxel grid of environment - - Args: - position (Vector3r): Position around which voxel grid is centered in m - x, y, z (int): Size of each voxel grid dimension in m - res (float): Resolution of voxel grid in m - of (str): Name of output file to save voxel grid as - - Returns: - bool: True if output written to file successfully, else False - """ - return self.client.call('simCreateVoxelGrid', position, x, y, z, res, of) - -#Add new vehicle via RPC - def simAddVehicle(self, vehicle_name, vehicle_type, pose, pawn_path = ""): - """ - Create vehicle at runtime - - Args: - vehicle_name (str): Name of the vehicle being created - vehicle_type (str): Type of vehicle, e.g. "simpleflight" - pose (Pose): Initial pose of the vehicle - pawn_path (str, optional): Vehicle blueprint path, default empty wbich uses the default blueprint for the vehicle type - - Returns: - bool: Whether vehicle was created - """ - return self.client.call('simAddVehicle', vehicle_name, vehicle_type, pose, pawn_path) - - def listVehicles(self): - """ - Lists the names of current vehicles - - Returns: - list[str]: List containing names of all vehicles - """ - return self.client.call('listVehicles') - - def getSettingsString(self): - """ - Fetch the settings text being used by AirSim - - Returns: - str: Settings text in JSON format - """ - return self.client.call('getSettingsString') - -#----------------------------------- Multirotor APIs --------------------------------------------- -class MultirotorClient(VehicleClient, object): - def __init__(self, ip = "", port = 41451, timeout_value = 3600): - super(MultirotorClient, self).__init__(ip, port, timeout_value) - - def takeoffAsync(self, timeout_sec = 20, vehicle_name = ''): - """ - Takeoff vehicle to 3m above ground. Vehicle should not be moving when this API is used - - Args: - timeout_sec (int, optional): Timeout for the vehicle to reach desired altitude - vehicle_name (str, optional): Name of the vehicle to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('takeoff', timeout_sec, vehicle_name) - - def landAsync(self, timeout_sec = 60, vehicle_name = ''): - """ - Land the vehicle - - Args: - timeout_sec (int, optional): Timeout for the vehicle to land - vehicle_name (str, optional): Name of the vehicle to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('land', timeout_sec, vehicle_name) - - def goHomeAsync(self, timeout_sec = 3e+38, vehicle_name = ''): - """ - Return vehicle to Home i.e. Launch location - - Args: - timeout_sec (int, optional): Timeout for the vehicle to reach desired altitude - vehicle_name (str, optional): Name of the vehicle to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('goHome', timeout_sec, vehicle_name) - -#APIs for control - def moveByVelocityBodyFrameAsync(self, vx, vy, vz, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): - """ - Args: - vx (float): desired velocity in the X axis of the vehicle's local NED frame. - vy (float): desired velocity in the Y axis of the vehicle's local NED frame. - vz (float): desired velocity in the Z axis of the vehicle's local NED frame. - duration (float): Desired amount of time (seconds), to send this command for - drivetrain (DrivetrainType, optional): - yaw_mode (YawMode, optional): - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByVelocityBodyFrame', vx, vy, vz, duration, drivetrain, yaw_mode, vehicle_name) - - def moveByVelocityZBodyFrameAsync(self, vx, vy, z, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): - """ - Args: - vx (float): desired velocity in the X axis of the vehicle's local NED frame - vy (float): desired velocity in the Y axis of the vehicle's local NED frame - z (float): desired Z value (in local NED frame of the vehicle) - duration (float): Desired amount of time (seconds), to send this command for - drivetrain (DrivetrainType, optional): - yaw_mode (YawMode, optional): - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - - return self.client.call_async('moveByVelocityZBodyFrame', vx, vy, z, duration, drivetrain, yaw_mode, vehicle_name) - - def moveByAngleZAsync(self, pitch, roll, z, yaw, duration, vehicle_name = ''): - logging.warning("moveByAngleZAsync API is deprecated, use moveByRollPitchYawZAsync() API instead") - return self.client.call_async('moveByRollPitchYawZ', roll, -pitch, -yaw, z, duration, vehicle_name) - - def moveByAngleThrottleAsync(self, pitch, roll, throttle, yaw_rate, duration, vehicle_name = ''): - logging.warning("moveByAngleThrottleAsync API is deprecated, use moveByRollPitchYawrateThrottleAsync() API instead") - return self.client.call_async('moveByRollPitchYawrateThrottle', roll, -pitch, -yaw_rate, throttle, duration, vehicle_name) - - def moveByVelocityAsync(self, vx, vy, vz, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): - """ - Args: - vx (float): desired velocity in world (NED) X axis - vy (float): desired velocity in world (NED) Y axis - vz (float): desired velocity in world (NED) Z axis - duration (float): Desired amount of time (seconds), to send this command for - drivetrain (DrivetrainType, optional): - yaw_mode (YawMode, optional): - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByVelocity', vx, vy, vz, duration, drivetrain, yaw_mode, vehicle_name) - - def moveByVelocityZAsync(self, vx, vy, z, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): - return self.client.call_async('moveByVelocityZ', vx, vy, z, duration, drivetrain, yaw_mode, vehicle_name) - - def moveOnPathAsync(self, path, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), - lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): - return self.client.call_async('moveOnPath', path, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) - - def moveToPositionAsync(self, x, y, z, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), - lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): - return self.client.call_async('moveToPosition', x, y, z, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) - - def moveToGPSAsync(self, latitude, longitude, altitude, velocity, timeout_sec = 3e+38, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), - lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): - return self.client.call_async('moveToGPS', latitude, longitude, altitude, velocity, timeout_sec, drivetrain, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) - - def moveToZAsync(self, z, velocity, timeout_sec = 3e+38, yaw_mode = YawMode(), lookahead = -1, adaptive_lookahead = 1, vehicle_name = ''): - return self.client.call_async('moveToZ', z, velocity, timeout_sec, yaw_mode, lookahead, adaptive_lookahead, vehicle_name) - - def moveByManualAsync(self, vx_max, vy_max, z_min, duration, drivetrain = DrivetrainType.MaxDegreeOfFreedom, yaw_mode = YawMode(), vehicle_name = ''): - """ - - Read current RC state and use it to control the vehicles. - - Parameters sets up the constraints on velocity and minimum altitude while flying. If RC state is detected to violate these constraints - then that RC state would be ignored. - - Args: - vx_max (float): max velocity allowed in x direction - vy_max (float): max velocity allowed in y direction - vz_max (float): max velocity allowed in z direction - z_min (float): min z allowed for vehicle position - duration (float): after this duration vehicle would switch back to non-manual mode - drivetrain (DrivetrainType): when ForwardOnly, vehicle rotates itself so that its front is always facing the direction of travel. If MaxDegreeOfFreedom then it doesn't do that (crab-like movement) - yaw_mode (YawMode): Specifies if vehicle should face at given angle (is_rate=False) or should be rotating around its axis at given rate (is_rate=True) - vehicle_name (str, optional): Name of the multirotor to send this command to - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByManual', vx_max, vy_max, z_min, duration, drivetrain, yaw_mode, vehicle_name) - - def rotateToYawAsync(self, yaw, timeout_sec = 3e+38, margin = 5, vehicle_name = ''): - return self.client.call_async('rotateToYaw', yaw, timeout_sec, margin, vehicle_name) - - def rotateByYawRateAsync(self, yaw_rate, duration, vehicle_name = ''): - return self.client.call_async('rotateByYawRate', yaw_rate, duration, vehicle_name) - - def hoverAsync(self, vehicle_name = ''): - return self.client.call_async('hover', vehicle_name) - - def moveByRC(self, rcdata = RCData(), vehicle_name = ''): - return self.client.call('moveByRC', rcdata, vehicle_name) - -#low - level control API - def moveByMotorPWMsAsync(self, front_right_pwm, rear_left_pwm, front_left_pwm, rear_right_pwm, duration, vehicle_name = ''): - """ - - Directly control the motors using PWM values - - Args: - front_right_pwm (float): PWM value for the front right motor (between 0.0 to 1.0) - rear_left_pwm (float): PWM value for the rear left motor (between 0.0 to 1.0) - front_left_pwm (float): PWM value for the front left motor (between 0.0 to 1.0) - rear_right_pwm (float): PWM value for the rear right motor (between 0.0 to 1.0) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByMotorPWMs', front_right_pwm, rear_left_pwm, front_left_pwm, rear_right_pwm, duration, vehicle_name) - - def moveByRollPitchYawZAsync(self, roll, pitch, yaw, z, duration, vehicle_name = ''): - """ - - z is given in local NED frame of the vehicle. - - Roll angle, pitch angle, and yaw angle set points are given in **radians**, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll (float): Desired roll angle, in radians. - pitch (float): Desired pitch angle, in radians. - yaw (float): Desired yaw angle, in radians. - z (float): Desired Z value (in local NED frame of the vehicle) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByRollPitchYawZ', roll, -pitch, -yaw, z, duration, vehicle_name) - - def moveByRollPitchYawThrottleAsync(self, roll, pitch, yaw, throttle, duration, vehicle_name = ''): - """ - - Desired throttle is between 0.0 to 1.0 - - Roll angle, pitch angle, and yaw angle are given in **degrees** when using PX4 and in **radians** when using SimpleFlight, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll (float): Desired roll angle. - pitch (float): Desired pitch angle. - yaw (float): Desired yaw angle. - throttle (float): Desired throttle (between 0.0 to 1.0) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByRollPitchYawThrottle', roll, -pitch, -yaw, throttle, duration, vehicle_name) - - def moveByRollPitchYawrateThrottleAsync(self, roll, pitch, yaw_rate, throttle, duration, vehicle_name = ''): - """ - - Desired throttle is between 0.0 to 1.0 - - Roll angle, pitch angle, and yaw rate set points are given in **radians**, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll (float): Desired roll angle, in radians. - pitch (float): Desired pitch angle, in radians. - yaw_rate (float): Desired yaw rate, in radian per second. - throttle (float): Desired throttle (between 0.0 to 1.0) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByRollPitchYawrateThrottle', roll, -pitch, -yaw_rate, throttle, duration, vehicle_name) - - def moveByRollPitchYawrateZAsync(self, roll, pitch, yaw_rate, z, duration, vehicle_name = ''): - """ - - z is given in local NED frame of the vehicle. - - Roll angle, pitch angle, and yaw rate set points are given in **radians**, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll (float): Desired roll angle, in radians. - pitch (float): Desired pitch angle, in radians. - yaw_rate (float): Desired yaw rate, in radian per second. - z (float): Desired Z value (in local NED frame of the vehicle) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByRollPitchYawrateZ', roll, -pitch, -yaw_rate, z, duration, vehicle_name) - - def moveByAngleRatesZAsync(self, roll_rate, pitch_rate, yaw_rate, z, duration, vehicle_name = ''): - """ - - z is given in local NED frame of the vehicle. - - Roll rate, pitch rate, and yaw rate set points are given in **radians**, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll_rate (float): Desired roll rate, in radians / second - pitch_rate (float): Desired pitch rate, in radians / second - yaw_rate (float): Desired yaw rate, in radians / second - z (float): Desired Z value (in local NED frame of the vehicle) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByAngleRatesZ', roll_rate, -pitch_rate, -yaw_rate, z, duration, vehicle_name) - - def moveByAngleRatesThrottleAsync(self, roll_rate, pitch_rate, yaw_rate, throttle, duration, vehicle_name = ''): - """ - - Desired throttle is between 0.0 to 1.0 - - Roll rate, pitch rate, and yaw rate set points are given in **radians**, in the body frame. - - The body frame follows the Front Left Up (FLU) convention, and right-handedness. - - - Frame Convention: - - X axis is along the **Front** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **roll** angle. - | Hence, rolling with a positive angle is equivalent to translating in the **right** direction, w.r.t. our FLU body frame. - - - Y axis is along the **Left** direction of the quadrotor. - - | Clockwise rotation about this axis defines a positive **pitch** angle. - | Hence, pitching with a positive angle is equivalent to translating in the **front** direction, w.r.t. our FLU body frame. - - - Z axis is along the **Up** direction. - - | Clockwise rotation about this axis defines a positive **yaw** angle. - | Hence, yawing with a positive angle is equivalent to rotated towards the **left** direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. - - Args: - roll_rate (float): Desired roll rate, in radians / second - pitch_rate (float): Desired pitch rate, in radians / second - yaw_rate (float): Desired yaw rate, in radians / second - throttle (float): Desired throttle (between 0.0 to 1.0) - duration (float): Desired amount of time (seconds), to send this command for - vehicle_name (str, optional): Name of the multirotor to send this command to - - Returns: - msgpackrpc.future.Future: future. call .join() to wait for method to finish. Example: client.METHOD().join() - """ - return self.client.call_async('moveByAngleRatesThrottle', roll_rate, -pitch_rate, -yaw_rate, throttle, duration, vehicle_name) - - def setAngleRateControllerGains(self, angle_rate_gains=AngleRateControllerGains(), vehicle_name = ''): - """ - - Modifying these gains will have an affect on *ALL* move*() APIs. - This is because any velocity setpoint is converted to an angle level setpoint which is tracked with an angle level controllers. - That angle level setpoint is itself tracked with and angle rate controller. - - This function should only be called if the default angle rate control PID gains need to be modified. - - Args: - angle_rate_gains (AngleRateControllerGains): - - Correspond to the roll, pitch, yaw axes, defined in the body frame. - - Pass AngleRateControllerGains() to reset gains to default recommended values. - vehicle_name (str, optional): Name of the multirotor to send this command to - """ - self.client.call('setAngleRateControllerGains', *(angle_rate_gains.to_lists()+(vehicle_name,))) - - def setAngleLevelControllerGains(self, angle_level_gains=AngleLevelControllerGains(), vehicle_name = ''): - """ - - Sets angle level controller gains (used by any API setting angle references - for ex: moveByRollPitchYawZAsync(), moveByRollPitchYawThrottleAsync(), etc) - - Modifying these gains will also affect the behaviour of moveByVelocityAsync() API. - This is because the AirSim flight controller will track velocity setpoints by converting them to angle set points. - - This function should only be called if the default angle level control PID gains need to be modified. - - Passing AngleLevelControllerGains() sets gains to default airsim values. - - Args: - angle_level_gains (AngleLevelControllerGains): - - Correspond to the roll, pitch, yaw axes, defined in the body frame. - - Pass AngleLevelControllerGains() to reset gains to default recommended values. - vehicle_name (str, optional): Name of the multirotor to send this command to - """ - self.client.call('setAngleLevelControllerGains', *(angle_level_gains.to_lists()+(vehicle_name,))) - - def setVelocityControllerGains(self, velocity_gains=VelocityControllerGains(), vehicle_name = ''): - """ - - Sets velocity controller gains for moveByVelocityAsync(). - - This function should only be called if the default velocity control PID gains need to be modified. - - Passing VelocityControllerGains() sets gains to default airsim values. - - Args: - velocity_gains (VelocityControllerGains): - - Correspond to the world X, Y, Z axes. - - Pass VelocityControllerGains() to reset gains to default recommended values. - - Modifying velocity controller gains will have an affect on the behaviour of moveOnSplineAsync() and moveOnSplineVelConstraintsAsync(), as they both use velocity control to track the trajectory. - vehicle_name (str, optional): Name of the multirotor to send this command to - """ - self.client.call('setVelocityControllerGains', *(velocity_gains.to_lists()+(vehicle_name,))) - - - def setPositionControllerGains(self, position_gains=PositionControllerGains(), vehicle_name = ''): - """ - Sets position controller gains for moveByPositionAsync. - This function should only be called if the default position control PID gains need to be modified. - - Args: - position_gains (PositionControllerGains): - - Correspond to the X, Y, Z axes. - - Pass PositionControllerGains() to reset gains to default recommended values. - vehicle_name (str, optional): Name of the multirotor to send this command to - """ - self.client.call('setPositionControllerGains', *(position_gains.to_lists()+(vehicle_name,))) - -#query vehicle state - def getMultirotorState(self, vehicle_name = ''): - """ - The position inside the returned MultirotorState is in the frame of the vehicle's starting point - - Args: - vehicle_name (str, optional): Vehicle to get the state of - - Returns: - MultirotorState: - """ - return MultirotorState.from_msgpack(self.client.call('getMultirotorState', vehicle_name)) - getMultirotorState.__annotations__ = {'return': MultirotorState} -#query rotor states - def getRotorStates(self, vehicle_name = ''): - """ - Used to obtain the current state of all a multirotor's rotors. The state includes the speeds, - thrusts and torques for all rotors. - - Args: - vehicle_name (str, optional): Vehicle to get the rotor state of - - Returns: - RotorStates: Containing a timestamp and the speed, thrust and torque of all rotors. - """ - return RotorStates.from_msgpack(self.client.call('getRotorStates', vehicle_name)) - getRotorStates.__annotations__ = {'return': RotorStates} - -#----------------------------------- Car APIs --------------------------------------------- -class CarClient(VehicleClient, object): - def __init__(self, ip = "", port = 41451, timeout_value = 3600): - super(CarClient, self).__init__(ip, port, timeout_value) - - def setCarControls(self, controls, vehicle_name = ''): - """ - Control the car using throttle, steering, brake, etc. - - Args: - controls (CarControls): Struct containing control values - vehicle_name (str, optional): Name of vehicle to be controlled - """ - self.client.call('setCarControls', controls, vehicle_name) - - def getCarState(self, vehicle_name = ''): - """ - The position inside the returned CarState is in the frame of the vehicle's starting point - - Args: - vehicle_name (str, optional): Name of vehicle - - Returns: - CarState: - """ - state_raw = self.client.call('getCarState', vehicle_name) - return CarState.from_msgpack(state_raw) - - def getCarControls(self, vehicle_name=''): - """ - Args: - vehicle_name (str, optional): Name of vehicle - - Returns: - CarControls: - """ - controls_raw = self.client.call('getCarControls', vehicle_name) - return CarControls.from_msgpack(controls_raw) \ No newline at end of file diff --git a/src/airsim/PythonClient/airsim/pfm.py b/src/airsim/PythonClient/airsim/pfm.py deleted file mode 100644 index 6f9f963a8a..0000000000 --- a/src/airsim/PythonClient/airsim/pfm.py +++ /dev/null @@ -1,85 +0,0 @@ -import numpy as np -import matplotlib.pyplot as plt -import re -import sys -import pdb - - -def read_pfm(file): - """ Read a pfm file """ - file = open(file, 'rb') - - color = None - width = None - height = None - scale = None - endian = None - - header = file.readline().rstrip() - header = str(bytes.decode(header, encoding='utf-8')) - if header == 'PF': - color = True - elif header == 'Pf': - color = False - else: - raise Exception('Not a PFM file.') - - pattern = r'^(\d+)\s(\d+)\s$' - temp_str = str(bytes.decode(file.readline(), encoding='utf-8')) - dim_match = re.match(pattern, temp_str) - if dim_match: - width, height = map(int, dim_match.groups()) - else: - temp_str += str(bytes.decode(file.readline(), encoding='utf-8')) - dim_match = re.match(pattern, temp_str) - if dim_match: - width, height = map(int, dim_match.groups()) - else: - raise Exception('Malformed PFM header: width, height cannot be found') - - scale = float(file.readline().rstrip()) - if scale < 0: # little-endian - endian = '<' - scale = -scale - else: - endian = '>' # big-endian - - data = np.fromfile(file, endian + 'f') - shape = (height, width, 3) if color else (height, width) - - data = np.reshape(data, shape) - # DEY: I don't know why this was there. - file.close() - - return data, scale - - -def write_pfm(file, image, scale=1): - """ Write a pfm file """ - file = open(file, 'wb') - - color = None - - if image.dtype.name != 'float32': - raise Exception('Image dtype must be float32.') - - if len(image.shape) == 3 and image.shape[2] == 3: # color image - color = True - elif len(image.shape) == 2 or len(image.shape) == 3 and image.shape[2] == 1: # greyscale - color = False - else: - raise Exception('Image must have H x W x 3, H x W x 1 or H x W dimensions.') - - file.write(bytes('PF\n', 'UTF-8') if color else bytes('Pf\n', 'UTF-8')) - temp_str = '%d %d\n' % (image.shape[1], image.shape[0]) - file.write(bytes(temp_str, 'UTF-8')) - - endian = image.dtype.byteorder - - if endian == '<' or endian == '=' and sys.byteorder == 'little': - scale = -scale - - temp_str = '%f\n' % scale - file.write(bytes(temp_str, 'UTF-8')) - - image.tofile(file) diff --git a/src/airsim/PythonClient/airsim/types.py b/src/airsim/PythonClient/airsim/types.py deleted file mode 100644 index 7aef005549..0000000000 --- a/src/airsim/PythonClient/airsim/types.py +++ /dev/null @@ -1,580 +0,0 @@ -from __future__ import print_function -import msgpackrpc #install as admin: pip install msgpack-rpc-python -import numpy as np #pip install numpy -import math - -class MsgpackMixin: - def __repr__(self): - from pprint import pformat - return "<" + type(self).__name__ + "> " + pformat(vars(self), indent=4, width=1) - - def to_msgpack(self, *args, **kwargs): - return self.__dict__ - - @classmethod - def from_msgpack(cls, encoded): - obj = cls() - #obj.__dict__ = {k.decode('utf-8'): (from_msgpack(v.__class__, v) if hasattr(v, "__dict__") else v) for k, v in encoded.items()} - obj.__dict__ = { k : (v if not isinstance(v, dict) else getattr(getattr(obj, k).__class__, "from_msgpack")(v)) for k, v in encoded.items()} - #return cls(**msgpack.unpack(encoded)) - return obj - -class _ImageType(type): - @property - def Scene(cls): - return 0 - def DepthPlanar(cls): - return 1 - def DepthPerspective(cls): - return 2 - def DepthVis(cls): - return 3 - def DisparityNormalized(cls): - return 4 - def Segmentation(cls): - return 5 - def SurfaceNormals(cls): - return 6 - def Infrared(cls): - return 7 - def OpticalFlow(cls): - return 8 - def OpticalFlowVis(cls): - return 9 - - def __getattr__(self, key): - if key == 'DepthPlanner': - print('\033[31m'+"DepthPlanner has been (correctly) renamed to DepthPlanar. Please use ImageType.DepthPlanar instead."+'\033[0m') - raise AttributeError - -class ImageType(metaclass=_ImageType): - Scene = 0 - DepthPlanar = 1 - DepthPerspective = 2 - DepthVis = 3 - DisparityNormalized = 4 - Segmentation = 5 - SurfaceNormals = 6 - Infrared = 7 - OpticalFlow = 8 - OpticalFlowVis = 9 - -class DrivetrainType: - MaxDegreeOfFreedom = 0 - ForwardOnly = 1 - -class LandedState: - Landed = 0 - Flying = 1 - -class WeatherParameter: - Rain = 0 - Roadwetness = 1 - Snow = 2 - RoadSnow = 3 - MapleLeaf = 4 - RoadLeaf = 5 - Dust = 6 - Fog = 7 - Enabled = 8 - -class Vector2r(MsgpackMixin): - x_val = 0.0 - y_val = 0.0 - - def __init__(self, x_val = 0.0, y_val = 0.0): - self.x_val = x_val - self.y_val = y_val - -class Vector3r(MsgpackMixin): - x_val = 0.0 - y_val = 0.0 - z_val = 0.0 - - def __init__(self, x_val = 0.0, y_val = 0.0, z_val = 0.0): - self.x_val = x_val - self.y_val = y_val - self.z_val = z_val - - @staticmethod - def nanVector3r(): - return Vector3r(np.nan, np.nan, np.nan) - - def containsNan(self): - return (math.isnan(self.x_val) or math.isnan(self.y_val) or math.isnan(self.z_val)) - - def __add__(self, other): - return Vector3r(self.x_val + other.x_val, self.y_val + other.y_val, self.z_val + other.z_val) - - def __sub__(self, other): - return Vector3r(self.x_val - other.x_val, self.y_val - other.y_val, self.z_val - other.z_val) - - def __truediv__(self, other): - if type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: - return Vector3r( self.x_val / other, self.y_val / other, self.z_val / other) - else: - raise TypeError('unsupported operand type(s) for /: %s and %s' % ( str(type(self)), str(type(other))) ) - - def __mul__(self, other): - if type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: - return Vector3r(self.x_val*other, self.y_val*other, self.z_val*other) - else: - raise TypeError('unsupported operand type(s) for *: %s and %s' % ( str(type(self)), str(type(other))) ) - - def dot(self, other): - if type(self) == type(other): - return self.x_val*other.x_val + self.y_val*other.y_val + self.z_val*other.z_val - else: - raise TypeError('unsupported operand type(s) for \'dot\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def cross(self, other): - if type(self) == type(other): - cross_product = np.cross(self.to_numpy_array(), other.to_numpy_array()) - return Vector3r(cross_product[0], cross_product[1], cross_product[2]) - else: - raise TypeError('unsupported operand type(s) for \'cross\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def get_length(self): - return ( self.x_val**2 + self.y_val**2 + self.z_val**2 )**0.5 - - def distance_to(self, other): - return ( (self.x_val-other.x_val)**2 + (self.y_val-other.y_val)**2 + (self.z_val-other.z_val)**2 )**0.5 - - def to_Quaternionr(self): - return Quaternionr(self.x_val, self.y_val, self.z_val, 0) - - def to_numpy_array(self): - return np.array([self.x_val, self.y_val, self.z_val], dtype=np.float32) - - def __iter__(self): - return iter((self.x_val, self.y_val, self.z_val)) - -class Quaternionr(MsgpackMixin): - w_val = 0.0 - x_val = 0.0 - y_val = 0.0 - z_val = 0.0 - - def __init__(self, x_val = 0.0, y_val = 0.0, z_val = 0.0, w_val = 1.0): - self.x_val = x_val - self.y_val = y_val - self.z_val = z_val - self.w_val = w_val - - @staticmethod - def nanQuaternionr(): - return Quaternionr(np.nan, np.nan, np.nan, np.nan) - - def containsNan(self): - return (math.isnan(self.w_val) or math.isnan(self.x_val) or math.isnan(self.y_val) or math.isnan(self.z_val)) - - def __add__(self, other): - if type(self) == type(other): - return Quaternionr( self.x_val+other.x_val, self.y_val+other.y_val, self.z_val+other.z_val, self.w_val+other.w_val ) - else: - raise TypeError('unsupported operand type(s) for +: %s and %s' % ( str(type(self)), str(type(other))) ) - - def __mul__(self, other): - if type(self) == type(other): - t, x, y, z = self.w_val, self.x_val, self.y_val, self.z_val - a, b, c, d = other.w_val, other.x_val, other.y_val, other.z_val - return Quaternionr( w_val = a*t - b*x - c*y - d*z, - x_val = b*t + a*x + d*y - c*z, - y_val = c*t + a*y + b*z - d*x, - z_val = d*t + z*a + c*x - b*y) - else: - raise TypeError('unsupported operand type(s) for *: %s and %s' % ( str(type(self)), str(type(other))) ) - - def __truediv__(self, other): - if type(other) == type(self): - return self * other.inverse() - elif type(other) in [int, float] + np.sctypes['int'] + np.sctypes['uint'] + np.sctypes['float']: - return Quaternionr( self.x_val / other, self.y_val / other, self.z_val / other, self.w_val / other) - else: - raise TypeError('unsupported operand type(s) for /: %s and %s' % ( str(type(self)), str(type(other))) ) - - def dot(self, other): - if type(self) == type(other): - return self.x_val*other.x_val + self.y_val*other.y_val + self.z_val*other.z_val + self.w_val*other.w_val - else: - raise TypeError('unsupported operand type(s) for \'dot\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def cross(self, other): - if type(self) == type(other): - return (self * other - other * self) / 2 - else: - raise TypeError('unsupported operand type(s) for \'cross\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def outer_product(self, other): - if type(self) == type(other): - return ( self.inverse()*other - other.inverse()*self ) / 2 - else: - raise TypeError('unsupported operand type(s) for \'outer_product\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def rotate(self, other): - if type(self) == type(other): - if other.get_length() == 1: - return other * self * other.inverse() - else: - raise ValueError('length of the other Quaternionr must be 1') - else: - raise TypeError('unsupported operand type(s) for \'rotate\': %s and %s' % ( str(type(self)), str(type(other))) ) - - def conjugate(self): - return Quaternionr(-self.x_val, -self.y_val, -self.z_val, self.w_val) - - def star(self): - return self.conjugate() - - def inverse(self): - return self.star() / self.dot(self) - - def sgn(self): - return self/self.get_length() - - def get_length(self): - return ( self.x_val**2 + self.y_val**2 + self.z_val**2 + self.w_val**2 )**0.5 - - def to_numpy_array(self): - return np.array([self.x_val, self.y_val, self.z_val, self.w_val], dtype=np.float32) - - def __iter__(self): - return iter((self.x_val, self.y_val, self.z_val, self.w_val)) - -class Pose(MsgpackMixin): - position = Vector3r() - orientation = Quaternionr() - - def __init__(self, position_val = None, orientation_val = None): - position_val = position_val if position_val is not None else Vector3r() - orientation_val = orientation_val if orientation_val is not None else Quaternionr() - self.position = position_val - self.orientation = orientation_val - - @staticmethod - def nanPose(): - return Pose(Vector3r.nanVector3r(), Quaternionr.nanQuaternionr()) - - def containsNan(self): - return (self.position.containsNan() or self.orientation.containsNan()) - - def __iter__(self): - return iter((self.position, self.orientation)) - -class CollisionInfo(MsgpackMixin): - has_collided = False - normal = Vector3r() - impact_point = Vector3r() - position = Vector3r() - penetration_depth = 0.0 - time_stamp = 0.0 - object_name = "" - object_id = -1 - -class GeoPoint(MsgpackMixin): - latitude = 0.0 - longitude = 0.0 - altitude = 0.0 - -class YawMode(MsgpackMixin): - is_rate = True - yaw_or_rate = 0.0 - def __init__(self, is_rate = True, yaw_or_rate = 0.0): - self.is_rate = is_rate - self.yaw_or_rate = yaw_or_rate - -class RCData(MsgpackMixin): - timestamp = 0 - pitch, roll, throttle, yaw = (0.0,)*4 #init 4 variable to 0.0 - switch1, switch2, switch3, switch4 = (0,)*4 - switch5, switch6, switch7, switch8 = (0,)*4 - is_initialized = False - is_valid = False - def __init__(self, timestamp = 0, pitch = 0.0, roll = 0.0, throttle = 0.0, yaw = 0.0, switch1 = 0, - switch2 = 0, switch3 = 0, switch4 = 0, switch5 = 0, switch6 = 0, switch7 = 0, switch8 = 0, is_initialized = False, is_valid = False): - self.timestamp = timestamp - self.pitch = pitch - self.roll = roll - self.throttle = throttle - self.yaw = yaw - self.switch1 = switch1 - self.switch2 = switch2 - self.switch3 = switch3 - self.switch4 = switch4 - self.switch5 = switch5 - self.switch6 = switch6 - self.switch7 = switch7 - self.switch8 = switch8 - self.is_initialized = is_initialized - self.is_valid = is_valid - -class ImageRequest(MsgpackMixin): - camera_name = '0' - image_type = ImageType.Scene - pixels_as_float = False - compress = False - - def __init__(self, camera_name, image_type, pixels_as_float = False, compress = True): - # todo: in future remove str(), it's only for compatibility to pre v1.2 - self.camera_name = str(camera_name) - self.image_type = image_type - self.pixels_as_float = pixels_as_float - self.compress = compress - - -class ImageResponse(MsgpackMixin): - image_data_uint8 = np.uint8(0) - image_data_float = 0.0 - camera_position = Vector3r() - camera_orientation = Quaternionr() - time_stamp = np.uint64(0) - message = '' - pixels_as_float = 0.0 - compress = True - width = 0 - height = 0 - image_type = ImageType.Scene - -class CarControls(MsgpackMixin): - throttle = 0.0 - steering = 0.0 - brake = 0.0 - handbrake = False - is_manual_gear = False - manual_gear = 0 - gear_immediate = True - - def __init__(self, throttle = 0, steering = 0, brake = 0, - handbrake = False, is_manual_gear = False, manual_gear = 0, gear_immediate = True): - self.throttle = throttle - self.steering = steering - self.brake = brake - self.handbrake = handbrake - self.is_manual_gear = is_manual_gear - self.manual_gear = manual_gear - self.gear_immediate = gear_immediate - - - def set_throttle(self, throttle_val, forward): - if (forward): - self.is_manual_gear = False - self.manual_gear = 0 - self.throttle = abs(throttle_val) - else: - self.is_manual_gear = False - self.manual_gear = -1 - self.throttle = - abs(throttle_val) - -class KinematicsState(MsgpackMixin): - position = Vector3r() - orientation = Quaternionr() - linear_velocity = Vector3r() - angular_velocity = Vector3r() - linear_acceleration = Vector3r() - angular_acceleration = Vector3r() - -class EnvironmentState(MsgpackMixin): - position = Vector3r() - geo_point = GeoPoint() - gravity = Vector3r() - air_pressure = 0.0 - temperature = 0.0 - air_density = 0.0 - -class CarState(MsgpackMixin): - speed = 0.0 - gear = 0 - rpm = 0.0 - maxrpm = 0.0 - handbrake = False - collision = CollisionInfo() - kinematics_estimated = KinematicsState() - timestamp = np.uint64(0) - -class MultirotorState(MsgpackMixin): - collision = CollisionInfo() - kinematics_estimated = KinematicsState() - gps_location = GeoPoint() - timestamp = np.uint64(0) - landed_state = LandedState.Landed - rc_data = RCData() - ready = False - ready_message = "" - can_arm = False - -class RotorStates(MsgpackMixin): - timestamp = np.uint64(0) - rotors = [] - -class ProjectionMatrix(MsgpackMixin): - matrix = [] - -class CameraInfo(MsgpackMixin): - pose = Pose() - fov = -1 - proj_mat = ProjectionMatrix() - -class LidarData(MsgpackMixin): - point_cloud = 0.0 - time_stamp = np.uint64(0) - pose = Pose() - segmentation = 0 - -class ImuData(MsgpackMixin): - time_stamp = np.uint64(0) - orientation = Quaternionr() - angular_velocity = Vector3r() - linear_acceleration = Vector3r() - -class BarometerData(MsgpackMixin): - time_stamp = np.uint64(0) - altitude = Quaternionr() - pressure = Vector3r() - qnh = Vector3r() - -class MagnetometerData(MsgpackMixin): - time_stamp = np.uint64(0) - magnetic_field_body = Vector3r() - magnetic_field_covariance = 0.0 - -class GnssFixType(MsgpackMixin): - GNSS_FIX_NO_FIX = 0 - GNSS_FIX_TIME_ONLY = 1 - GNSS_FIX_2D_FIX = 2 - GNSS_FIX_3D_FIX = 3 - -class GnssReport(MsgpackMixin): - geo_point = GeoPoint() - eph = 0.0 - epv = 0.0 - velocity = Vector3r() - fix_type = GnssFixType() - time_utc = np.uint64(0) - -class GpsData(MsgpackMixin): - time_stamp = np.uint64(0) - gnss = GnssReport() - is_valid = False - -class DistanceSensorData(MsgpackMixin): - time_stamp = np.uint64(0) - distance = 0.0 - min_distance = 0.0 - max_distance = 0.0 - relative_pose = Pose() - -class Box2D(MsgpackMixin): - min = Vector2r() - max = Vector2r() - -class Box3D(MsgpackMixin): - min = Vector3r() - max = Vector3r() - -class DetectionInfo(MsgpackMixin): - name = '' - geo_point = GeoPoint() - box2D = Box2D() - box3D = Box3D() - relative_pose = Pose() - -class PIDGains(): - """ - Struct to store values of PID gains. Used to transmit controller gain values while instantiating - AngleLevel/AngleRate/Velocity/PositionControllerGains objects. - - Attributes: - kP (float): Proportional gain - kI (float): Integrator gain - kD (float): Derivative gain - """ - def __init__(self, kp, ki, kd): - self.kp = kp - self.ki = ki - self.kd = kd - - def to_list(self): - return [self.kp, self.ki, self.kd] - -class AngleRateControllerGains(): - """ - Struct to contain controller gains used by angle level PID controller - - Attributes: - roll_gains (PIDGains): kP, kI, kD for roll axis - pitch_gains (PIDGains): kP, kI, kD for pitch axis - yaw_gains (PIDGains): kP, kI, kD for yaw axis - """ - def __init__(self, roll_gains = PIDGains(0.25, 0, 0), - pitch_gains = PIDGains(0.25, 0, 0), - yaw_gains = PIDGains(0.25, 0, 0)): - self.roll_gains = roll_gains - self.pitch_gains = pitch_gains - self.yaw_gains = yaw_gains - - def to_lists(self): - return [self.roll_gains.kp, self.pitch_gains.kp, self.yaw_gains.kp], [self.roll_gains.ki, self.pitch_gains.ki, self.yaw_gains.ki], [self.roll_gains.kd, self.pitch_gains.kd, self.yaw_gains.kd] - -class AngleLevelControllerGains(): - """ - Struct to contain controller gains used by angle rate PID controller - - Attributes: - roll_gains (PIDGains): kP, kI, kD for roll axis - pitch_gains (PIDGains): kP, kI, kD for pitch axis - yaw_gains (PIDGains): kP, kI, kD for yaw axis - """ - def __init__(self, roll_gains = PIDGains(2.5, 0, 0), - pitch_gains = PIDGains(2.5, 0, 0), - yaw_gains = PIDGains(2.5, 0, 0)): - self.roll_gains = roll_gains - self.pitch_gains = pitch_gains - self.yaw_gains = yaw_gains - - def to_lists(self): - return [self.roll_gains.kp, self.pitch_gains.kp, self.yaw_gains.kp], [self.roll_gains.ki, self.pitch_gains.ki, self.yaw_gains.ki], [self.roll_gains.kd, self.pitch_gains.kd, self.yaw_gains.kd] - -class VelocityControllerGains(): - """ - Struct to contain controller gains used by velocity PID controller - - Attributes: - x_gains (PIDGains): kP, kI, kD for X axis - y_gains (PIDGains): kP, kI, kD for Y axis - z_gains (PIDGains): kP, kI, kD for Z axis - """ - def __init__(self, x_gains = PIDGains(0.2, 0, 0), - y_gains = PIDGains(0.2, 0, 0), - z_gains = PIDGains(2.0, 2.0, 0)): - self.x_gains = x_gains - self.y_gains = y_gains - self.z_gains = z_gains - - def to_lists(self): - return [self.x_gains.kp, self.y_gains.kp, self.z_gains.kp], [self.x_gains.ki, self.y_gains.ki, self.z_gains.ki], [self.x_gains.kd, self.y_gains.kd, self.z_gains.kd] - -class PositionControllerGains(): - """ - Struct to contain controller gains used by position PID controller - - Attributes: - x_gains (PIDGains): kP, kI, kD for X axis - y_gains (PIDGains): kP, kI, kD for Y axis - z_gains (PIDGains): kP, kI, kD for Z axis - """ - def __init__(self, x_gains = PIDGains(0.25, 0, 0), - y_gains = PIDGains(0.25, 0, 0), - z_gains = PIDGains(0.25, 0, 0)): - self.x_gains = x_gains - self.y_gains = y_gains - self.z_gains = z_gains - - def to_lists(self): - return [self.x_gains.kp, self.y_gains.kp, self.z_gains.kp], [self.x_gains.ki, self.y_gains.ki, self.z_gains.ki], [self.x_gains.kd, self.y_gains.kd, self.z_gains.kd] - -class MeshPositionVertexBuffersResponse(MsgpackMixin): - position = Vector3r() - orientation = Quaternionr() - vertices = 0.0 - indices = 0.0 - name = '' diff --git a/src/airsim/PythonClient/airsim/utils.py b/src/airsim/PythonClient/airsim/utils.py deleted file mode 100644 index 7f866d7d0a..0000000000 --- a/src/airsim/PythonClient/airsim/utils.py +++ /dev/null @@ -1,208 +0,0 @@ -import numpy as np #pip install numpy -import math -import time -import sys -import os -import inspect -import types -import re -import logging - -from .types import * - - -def string_to_uint8_array(bstr): - return np.fromstring(bstr, np.uint8) - -def string_to_float_array(bstr): - return np.fromstring(bstr, np.float32) - -def list_to_2d_float_array(flst, width, height): - return np.reshape(np.asarray(flst, np.float32), (height, width)) - -def get_pfm_array(response): - return list_to_2d_float_array(response.image_data_float, response.width, response.height) - - -def get_public_fields(obj): - return [attr for attr in dir(obj) - if not (attr.startswith("_") - or inspect.isbuiltin(attr) - or inspect.isfunction(attr) - or inspect.ismethod(attr))] - - - -def to_dict(obj): - return dict([attr, getattr(obj, attr)] for attr in get_public_fields(obj)) - - -def to_str(obj): - return str(to_dict(obj)) - - -def write_file(filename, bstr): - """ - Write binary data to file. - Used for writing compressed PNG images - """ - with open(filename, 'wb') as afile: - afile.write(bstr) - -# helper method for converting getOrientation to roll/pitch/yaw -# https:#en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles - -def to_eularian_angles(q): - z = q.z_val - y = q.y_val - x = q.x_val - w = q.w_val - ysqr = y * y - - # roll (x-axis rotation) - t0 = +2.0 * (w*x + y*z) - t1 = +1.0 - 2.0*(x*x + ysqr) - roll = math.atan2(t0, t1) - - # pitch (y-axis rotation) - t2 = +2.0 * (w*y - z*x) - if (t2 > 1.0): - t2 = 1 - if (t2 < -1.0): - t2 = -1.0 - pitch = math.asin(t2) - - # yaw (z-axis rotation) - t3 = +2.0 * (w*z + x*y) - t4 = +1.0 - 2.0 * (ysqr + z*z) - yaw = math.atan2(t3, t4) - - return (pitch, roll, yaw) - - -def to_quaternion(pitch, roll, yaw): - t0 = math.cos(yaw * 0.5) - t1 = math.sin(yaw * 0.5) - t2 = math.cos(roll * 0.5) - t3 = math.sin(roll * 0.5) - t4 = math.cos(pitch * 0.5) - t5 = math.sin(pitch * 0.5) - - q = Quaternionr() - q.w_val = t0 * t2 * t4 + t1 * t3 * t5 #w - q.x_val = t0 * t3 * t4 - t1 * t2 * t5 #x - q.y_val = t0 * t2 * t5 + t1 * t3 * t4 #y - q.z_val = t1 * t2 * t4 - t0 * t3 * t5 #z - return q - - -def wait_key(message = ''): - ''' Wait for a key press on the console and return it. ''' - if message != '': - print (message) - - result = None - if os.name == 'nt': - import msvcrt - result = msvcrt.getch() - else: - import termios - fd = sys.stdin.fileno() - - oldterm = termios.tcgetattr(fd) - newattr = termios.tcgetattr(fd) - newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO - termios.tcsetattr(fd, termios.TCSANOW, newattr) - - try: - result = sys.stdin.read(1) - except IOError: - pass - finally: - termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm) - - return result - - -def read_pfm(file): - """ Read a pfm file """ - file = open(file, 'rb') - - color = None - width = None - height = None - scale = None - endian = None - - header = file.readline().rstrip() - header = str(bytes.decode(header, encoding='utf-8')) - if header == 'PF': - color = True - elif header == 'Pf': - color = False - else: - raise Exception('Not a PFM file.') - - temp_str = str(bytes.decode(file.readline(), encoding='utf-8')) - dim_match = re.match(r'^(\d+)\s(\d+)\s$', temp_str) - if dim_match: - width, height = map(int, dim_match.groups()) - else: - raise Exception('Malformed PFM header.') - - scale = float(file.readline().rstrip()) - if scale < 0: # little-endian - endian = '<' - scale = -scale - else: - endian = '>' # big-endian - - data = np.fromfile(file, endian + 'f') - shape = (height, width, 3) if color else (height, width) - - data = np.reshape(data, shape) - # DEY: I don't know why this was there. - file.close() - - return data, scale - - -def write_pfm(file, image, scale=1): - """ Write a pfm file """ - file = open(file, 'wb') - - color = None - - if image.dtype.name != 'float32': - raise Exception('Image dtype must be float32.') - - if len(image.shape) == 3 and image.shape[2] == 3: # color image - color = True - elif len(image.shape) == 2 or len(image.shape) == 3 and image.shape[2] == 1: # grayscale - color = False - else: - raise Exception('Image must have H x W x 3, H x W x 1 or H x W dimensions.') - - file.write('PF\n'.encode('utf-8') if color else 'Pf\n'.encode('utf-8')) - temp_str = '%d %d\n' % (image.shape[1], image.shape[0]) - file.write(temp_str.encode('utf-8')) - - endian = image.dtype.byteorder - - if endian == '<' or endian == '=' and sys.byteorder == 'little': - scale = -scale - - temp_str = '%f\n' % scale - file.write(temp_str.encode('utf-8')) - - image.tofile(file) - - -def write_png(filename, image): - """ image must be numpy array H X W X channels - """ - import cv2 # pip install opencv-python - - ret = cv2.imwrite(filename, image) - if not ret: - logging.error(f"Writing PNG file {filename} failed") diff --git a/src/airsim/PythonClient/build_api_docs.sh b/src/airsim/PythonClient/build_api_docs.sh deleted file mode 100644 index 382c3122b7..0000000000 --- a/src/airsim/PythonClient/build_api_docs.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -cd docs -make html diff --git a/src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc b/src/airsim/PythonClient/car/__pycache__/setup_path.cpython-313.pyc deleted file mode 100644 index 8bbf2e97b9f5ea8705393b9c8d38174a7639a888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3101 zcmcIm&2JM&6rc6S+KwF@$Kj(Pz!IV+n>bc!1r7+BB2YP`B#}+jO0l%s*c-FOS)184 z23iqLD6|Lg0U4x9gbE2F^}wOW{s}!K-BP1bZtaCzkde6d&8*j6r*8R>I#Ficyf^R7 z?EAeB*SovB5R9LCeqR{$A@nER*u&Ex>R$nI7o|{&n?l%HIn1%W3%l6r#_m065T#uG zDCIulvNW+L?MVi0bFKAAgA`DX6Fo2JZaUKvBh=7G^(=7jqBNqn!A%@?r#>!82(59`B2Qceop_4y zdg9j#c!^Q&yrL1WUd*coaqCJ^bYXfQ2~ep-kLmRNfdb}d)2s5&`#%7MKjVF8K-sXL5UiV7q5~~PBG4?_zUH-lGn+urhDT~ zK8+4N4$}?vSKqGc*~-~k-_S5;pC9?z-j#$On}tx531!#xw>3gepG(E{NwV^|9=s+zxwhTl@9e5wm zS`gT-r;(2L(+LbBEWqUSEv->4x3<@)CVzk`H6s5VJi0nzMq}%tSVt$)NMKGZ!VBNt ziF43{kC!2)Z-RTM4K|X^(q(g?3w7u$pzX4IGxVW%*XLTjU30xbzeC@jbJ>|O(s-zR z5WXX1zq;dh&?>cUq&xt0qw~UV2>6?)`NT$&7MX1WewTRdo9TIxpJp*Zcv;1|x^yj& zVNDFW7N%yeeQEK9r9!rpR|KtK2#bZ1mK9V@D6%YseLkz;xG<-yS`PTSA?Nc-7Q~s0 za!wIOifYkj3zj)CE_PWZ;6u2imHou?bwSk#uUt`eLx)a%RVO@HR4`Qbd?A;E8;Gwg zV+{z=O?c}GBxsps1%m{wPq3;7jVwWERQRZz&7NXS{T%xoR_6D$Do6+MA<);a!E^(? z>OsAGYmwoN$gmj^SNP|_$eo4nPj2=PJQ%(|{2+EewtD%=6|;Y0Wy;C>=INB#{~7Qa zZQ%N?>-R3!!lN7E(aoM{)nD;f!_J%L^<@>aaWfX1}MWBQ}XdKmqX zZ7(MN6PBYs#nAl_t%5quxh*%xaj$nEZhsB!d(DqMDd1MK3z E0f+!f3IG5A diff --git a/src/airsim/PythonClient/car/car_collision.py b/src/airsim/PythonClient/car/car_collision.py deleted file mode 100644 index f3b75374eb..0000000000 --- a/src/airsim/PythonClient/car/car_collision.py +++ /dev/null @@ -1,39 +0,0 @@ -import setup_path -import airsim - -import pprint -import time - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -car_controls = airsim.CarControls() - -client.reset() - -client.simPrintLogMessage("Hello", "345", 2) - -# go forward -car_controls.throttle = 0.5 -car_controls.steering = 0 -client.setCarControls(car_controls) - -while True: - # get state of the car - car_state = client.getCarState() - print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) - - collision_info = client.simGetCollisionInfo() - - if collision_info.has_collided: - print("Collision at pos %s, normal %s, impact pt %s, penetration %f, name %s, obj id %d" % ( - pprint.pformat(collision_info.position), - pprint.pformat(collision_info.normal), - pprint.pformat(collision_info.impact_point), - collision_info.penetration_depth, collision_info.object_name, collision_info.object_id)) - break - - time.sleep(0.1) - -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/car/car_lidar.py b/src/airsim/PythonClient/car/car_lidar.py deleted file mode 100644 index 37b5844509..0000000000 --- a/src/airsim/PythonClient/car/car_lidar.py +++ /dev/null @@ -1,95 +0,0 @@ -# Python client example to get Lidar data from a car -# - -import setup_path -import airsim - -import sys -import math -import time -import argparse -import pprint -import numpy - -# Makes the drone fly and get Lidar data -class LidarTest: - - def __init__(self): - - # connect to the AirSim simulator - self.client = airsim.CarClient() - self.client.confirmConnection() - self.client.enableApiControl(True) - self.car_controls = airsim.CarControls() - - def execute(self): - - for i in range(3): - - state = self.client.getCarState() - s = pprint.pformat(state) - #print("state: %s" % s) - - # go forward - self.car_controls.throttle = 0.5 - self.car_controls.steering = 0 - self.client.setCarControls(self.car_controls) - print("Go Forward") - time.sleep(3) # let car drive a bit - - # Go forward + steer right - self.car_controls.throttle = 0.5 - self.car_controls.steering = 1 - self.client.setCarControls(self.car_controls) - print("Go Forward, steer right") - time.sleep(3) # let car drive a bit - - airsim.wait_key('Press any key to get Lidar readings') - - for i in range(1,3): - lidarData = self.client.getLidarData(); - if (len(lidarData.point_cloud) < 3): - print("\tNo points received from Lidar data") - else: - points = self.parse_lidarData(lidarData) - print("\tReading %d: time_stamp: %d number_of_points: %d" % (i, lidarData.time_stamp, len(points))) - print("\t\tlidar position: %s" % (pprint.pformat(lidarData.pose.position))) - print("\t\tlidar orientation: %s" % (pprint.pformat(lidarData.pose.orientation))) - time.sleep(5) - - def parse_lidarData(self, data): - - # reshape array of floats to array of [X,Y,Z] - points = numpy.array(data.point_cloud, dtype=numpy.dtype('f4')) - points = numpy.reshape(points, (int(points.shape[0]/3), 3)) - - return points - - def write_lidarData_to_disk(self, points): - # TODO - print("not yet implemented") - - def stop(self): - - airsim.wait_key('Press any key to reset to original state') - - self.client.reset() - - self.client.enableApiControl(False) - print("Done!\n") - -# main -if __name__ == "__main__": - args = sys.argv - args.pop(0) - - arg_parser = argparse.ArgumentParser("Lidar.py makes car move and gets Lidar data") - - arg_parser.add_argument('-save-to-disk', type=bool, help="save Lidar data to disk", default=False) - - args = arg_parser.parse_args(args) - lidarTest = LidarTest() - try: - lidarTest.execute() - finally: - lidarTest.stop() diff --git a/src/airsim/PythonClient/car/car_monitor.py b/src/airsim/PythonClient/car/car_monitor.py deleted file mode 100644 index c82fef6d97..0000000000 --- a/src/airsim/PythonClient/car/car_monitor.py +++ /dev/null @@ -1,26 +0,0 @@ -import setup_path -import airsim - -import cv2 #conda install opencv -import time - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -car_controls = airsim.CarControls() - -start = time.time() - -print("Time,Speed,Gear,PX,PY,PZ,OW,OX,OY,OZ") - -# monitor car state while you drive it manually. -while (cv2.waitKey(1) & 0xFF) == 0xFF: - # get state of the car - car_state = client.getCarState() - pos = car_state.kinematics_estimated.position - orientation = car_state.kinematics_estimated.orientation - milliseconds = (time.time() - start) * 1000 - print("%s,%d,%d,%f,%f,%f,%f,%f,%f,%f" % \ - (milliseconds, car_state.speed, car_state.gear, pos.x_val, pos.y_val, pos.z_val, - orientation.w_val, orientation.x_val, orientation.y_val, orientation.z_val)) - time.sleep(0.1) diff --git a/src/airsim/PythonClient/car/car_stress_test.py b/src/airsim/PythonClient/car/car_stress_test.py deleted file mode 100644 index e7bcf539ce..0000000000 --- a/src/airsim/PythonClient/car/car_stress_test.py +++ /dev/null @@ -1,51 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -car_controls = airsim.CarControls() - -for idx in range(3000): - # get state of the car - car_state = client.getCarState() - print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) - - # go forward - car_controls.throttle = 0.5 - car_controls.steering = 0 - client.setCarControls(car_controls) - time.sleep(1) # let car drive a bit - - # Go forward + steer right - car_controls.throttle = 0.5 - car_controls.steering = 1 - client.setCarControls(car_controls) - time.sleep(1) # let car drive a bit - - # go reverse - car_controls.throttle = -0.5 - car_controls.is_manual_gear = True; - car_controls.manual_gear = -1 - car_controls.steering = 0 - client.setCarControls(car_controls) - time.sleep(1) # let car drive a bit - car_controls.is_manual_gear = False; # change back gear to auto - car_controls.manual_gear = 0 - - # apply breaks - car_controls.brake = 1 - client.setCarControls(car_controls) - time.sleep(1) # let car drive a bit - car_controls.brake = 0 #remove break - - #restore to original state - client.reset() - -client.enableApiControl(False) - - - diff --git a/src/airsim/PythonClient/car/car_time_of_day.py b/src/airsim/PythonClient/car/car_time_of_day.py deleted file mode 100644 index 2ff7bf5888..0000000000 --- a/src/airsim/PythonClient/car/car_time_of_day.py +++ /dev/null @@ -1,79 +0,0 @@ -# Python client example to change time-of-day using APIs -# - -import setup_path -import airsim - -import sys -import math -import time -import argparse -import pprint -import numpy - -# Changes time of the day and makes the car move around -class TimeOfDayTest: - - def __init__(self): - - # connect to the AirSim simulator - self.client = airsim.CarClient() - self.client.confirmConnection() - self.client.enableApiControl(True) - self.car_controls = airsim.CarControls() - - def execute(self): - - for i in range(8): - - # flip between specific time and default time - enabled = False - if (i % 2 == 0): - enabled = True - - self.setTimeOfDay(enabled, "2018-11-27 {}:00:00".format(8+ (i * 2))) - - # go forward - self.car_controls.throttle = 0.5 - self.car_controls.steering = 0 - self.client.setCarControls(self.car_controls) - print("Go Forward") - time.sleep(3) # let car drive a bit - - # Go forward + steer right - self.car_controls.throttle = 0.5 - self.car_controls.steering = 1 - self.client.setCarControls(self.car_controls) - print("Go Forward, steer right") - time.sleep(3) # let car drive a bit - - def setTimeOfDay(self, enabled, time_of_day): - if (enabled): - airsim.wait_key('Press any key to change time of day to [{}]'.format(time_of_day)) - self.client.simSetTimeOfDay(enabled, time_of_day) - else: - airsim.wait_key('Press any key to change time of day to default time') - self.client.simSetTimeOfDay(enabled) - - def stop(self): - - airsim.wait_key('Press any key to reset to original state') - - self.client.reset() - - self.client.enableApiControl(False) - print("Done!\n") - -# main -if __name__ == "__main__": - args = sys.argv - args.pop(0) - - arg_parser = argparse.ArgumentParser("TimeOfDay.py changes time of the day") - - args = arg_parser.parse_args(args) - timeOfDayTest = TimeOfDayTest() - try: - timeOfDayTest.execute() - finally: - timeOfDayTest.stop() diff --git a/src/airsim/PythonClient/car/distance_sensor_multi.py b/src/airsim/PythonClient/car/distance_sensor_multi.py deleted file mode 100644 index 5e4660ba69..0000000000 --- a/src/airsim/PythonClient/car/distance_sensor_multi.py +++ /dev/null @@ -1,49 +0,0 @@ -import airsim -import time - -''' -An example script showing usage of Distance sensor to measure distance between 2 Car vehicles -Settings - - -{ - "SettingsVersion": 1.2, - "SimMode": "Car", - "Vehicles": { - "Car1": { - "VehicleType": "PhysXCar", - "AutoCreate": true, - "Sensors": { - "Distance": { - "SensorType": 5, - "Enabled" : true, - "DrawDebugPoints": true - } - } - }, - "Car2": { - "VehicleType": "PhysXCar", - "AutoCreate": true, - "X": 10, "Y": 0, "Z": 0, - "Sensors": { - "Distance": { - "SensorType": 5, - "Enabled" : true, - "DrawDebugPoints": true - } - } - } - } -} - -Car2 is placed in front of Car 1 - -''' - -client = airsim.CarClient() -client.confirmConnection() - -while True: - data_car1 = client.getDistanceSensorData(vehicle_name="Car1") - data_car2 = client.getDistanceSensorData(vehicle_name="Car2") - print(f"Distance sensor data: Car1: {data_car1.distance}, Car2: {data_car2.distance}") - time.sleep(1.0) \ No newline at end of file diff --git a/src/airsim/PythonClient/car/drive_straight.py b/src/airsim/PythonClient/car/drive_straight.py deleted file mode 100644 index 6783ef8038..0000000000 --- a/src/airsim/PythonClient/car/drive_straight.py +++ /dev/null @@ -1,51 +0,0 @@ -import setup_path -import airsim - -#from keras.models import load_model -import sys -import numpy as np - -#if (len(sys.argv) != 2): -# print('usage: python drive.py ') -# sys.exit() - -#print('Loading model...') -#model = load_model(sys.argv[1]) - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -car_controls = airsim.CarControls() - -car_controls.steering = 0 -car_controls.throttle = 0 -car_controls.brake = 0 - -image_buf = np.zeros((1, 144, 256, 3)) -state_buf = np.zeros((1,4)) - -def get_image(): - image = client.simGetImages([airsim.ImageRequest("0", airsim.ImageType.Scene, False, False)])[0] - image1d = np.fromstring(image.image_data_uint8, dtype=np.uint8) - image_rgb = image1d.reshape(image.height, image.width, 3) - return image_rgb - -while (True): - car_state = client.getCarState() - - print('car speed: {0}'.format(car_state.speed)) - - if (car_state.speed < 20): - car_controls.throttle = 1.0 - else: - car_controls.throttle = 0.0 - - #state_buf[0] = np.array([car_controls.steering, car_controls.throttle, car_controls.brake, car_state.speed]) - #model_output = model.predict([image_buf, state_buf]) - #car_controls.steering = float(model_output[0][0]) - car_controls.steering = 0 - - print('Sending steering = {0}, throttle = {1}'.format(car_controls.steering, car_controls.throttle)) - - client.setCarControls(car_controls) \ No newline at end of file diff --git a/src/airsim/PythonClient/car/hello_car.py b/src/airsim/PythonClient/car/hello_car.py deleted file mode 100644 index d6c01728eb..0000000000 --- a/src/airsim/PythonClient/car/hello_car.py +++ /dev/null @@ -1,116 +0,0 @@ -import setup_path -import airsim -import cv2 -import numpy as np -import os -import time -import tempfile -from pathlib import Path - - -def setup_client(): - """初始化并配置 AirSim 客户端""" - client = airsim.CarClient() - client.confirmConnection() - client.enableApiControl(True) - print(f"API Control enabled: {client.isApiControlEnabled()}") - return client - - -def setup_image_directory(): - """创建图像保存目录""" - tmp_dir = Path(tempfile.gettempdir()) / "airsim_car" - tmp_dir.mkdir(parents=True, exist_ok=True) - print(f"Saving images to {tmp_dir}") - return tmp_dir - - -def execute_maneuver(client, throttle, steering, duration, gear_mode=None, description=""): - """执行单次驾驶操作""" - car_controls = airsim.CarControls() - car_controls.throttle = throttle - car_controls.steering = steering - - if gear_mode == "reverse": - car_controls.is_manual_gear = True - car_controls.manual_gear = -1 - - client.setCarControls(car_controls) - print(description) - time.sleep(duration) - - # 还原手动档 - if gear_mode == "reverse": - car_controls.is_manual_gear = False - car_controls.manual_gear = 0 - client.setCarControls(car_controls) - - -def apply_brake(client, duration=3): - """应用刹车""" - car_controls = airsim.CarControls() - car_controls.brake = 1 - client.setCarControls(car_controls) - print("Apply brakes") - time.sleep(duration) - - -def save_image(response, filename): - """根据图像类型保存图像""" - if response.pixels_as_float: - print(f"Type {response.image_type}, size {len(response.image_data_float)}") - airsim.write_pfm(f'{filename}.pfm', airsim.get_pfm_array(response)) - elif response.compress: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") - airsim.write_file(f'{filename}.png', response.image_data_uint8) - else: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}") - img1d = np.frombuffer(response.image_data_uint8, dtype=np.uint8) - img_rgb = img1d.reshape(response.height, response.width, 3) - cv2.imwrite(f'{filename}.png', img_rgb) - - -def capture_images(client, tmp_dir, idx): - """捕获并保存多种类型的图像""" - responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), - airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), - airsim.ImageRequest("1", airsim.ImageType.Scene), - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False) - ]) - print(f'Retrieved images: {len(responses)}') - - for response_idx, response in enumerate(responses): - filename = tmp_dir / f"{idx}_{response.image_type}_{response_idx}" - save_image(response, str(filename)) - - -def main(): - """主函数""" - client = setup_client() - tmp_dir = setup_image_directory() - - try: - for idx in range(3): - # 获取车辆状态 - car_state = client.getCarState() - print(f"Speed {car_state.speed}, Gear {car_state.gear}") - - # 执行各种驾驶操作 - execute_maneuver(client, 0.5, 0, 3, description="Go Forward") - execute_maneuver(client, 0.5, 1, 3, description="Go Forward, steer right") - execute_maneuver(client, -0.5, 0, 3, gear_mode="reverse", description="Go reverse") - apply_brake(client) - - # 捕获图像 - capture_images(client, tmp_dir, idx) - - finally: - # 确保资源正确释放 - client.reset() - client.enableApiControl(False) - print("Control released and simulator reset") - - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/src/airsim/PythonClient/car/multi_agent_car.py b/src/airsim/PythonClient/car/multi_agent_car.py deleted file mode 100644 index d696d32dc1..0000000000 --- a/src/airsim/PythonClient/car/multi_agent_car.py +++ /dev/null @@ -1,122 +0,0 @@ -import airsim -import cv2 -import numpy as np -import os -import setup_path -import time - -# Use below in settings.json with blocks environment -""" -{ - "SettingsVersion": 1.2, - "SimMode": "Car", - - "Vehicles": { - "Car1": { - "VehicleType": "PhysXCar", - "X": 4, "Y": 0, "Z": -2 - }, - "Car2": { - "VehicleType": "PhysXCar", - "X": -4, "Y": 0, "Z": -2 - } - - } -} -""" - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True, "Car1") -client.enableApiControl(True, "Car2") - -car_controls1 = airsim.CarControls() -car_controls2 = airsim.CarControls() - - -for idx in range(3): - # get state of the car - car_state1 = client.getCarState("Car1") - print("Car1: Speed %d, Gear %d" % (car_state1.speed, car_state1.gear)) - car_state2 = client.getCarState("Car2") - print("Car1: Speed %d, Gear %d" % (car_state2.speed, car_state2.gear)) - - # go forward - car_controls1.throttle = 0.5 - car_controls1.steering = 0.5 - client.setCarControls(car_controls1, "Car1") - print("Car1: Go Forward") - - car_controls2.throttle = 0.5 - car_controls2.steering = -0.5 - client.setCarControls(car_controls2, "Car2") - print("Car2: Go Forward") - time.sleep(3) # let car drive a bit - - - # go reverse - car_controls1.throttle = -0.5 - car_controls1.is_manual_gear = True; - car_controls1.manual_gear = -1 - car_controls1.steering = -0.5 - client.setCarControls(car_controls1, "Car1") - print("Car1: Go reverse, steer right") - car_controls1.is_manual_gear = False; # change back gear to auto - car_controls1.manual_gear = 0 - - car_controls2.throttle = -0.5 - car_controls2.is_manual_gear = True; - car_controls2.manual_gear = -1 - car_controls2.steering = 0.5 - client.setCarControls(car_controls2, "Car2") - print("Car2: Go reverse, steer right") - car_controls2.is_manual_gear = False; # change back gear to auto - car_controls2.manual_gear = 0 - time.sleep(3) # let car drive a bit - - - # apply breaks - car_controls1.brake = 1 - client.setCarControls(car_controls1, "Car1") - print("Car1: Apply break") - car_controls1.brake = 0 #remove break - - car_controls2.brake = 1 - client.setCarControls(car_controls2, "Car2") - print("Car2: Apply break") - car_controls2.brake = 0 #remove break - time.sleep(3) # let car drive a bit - - # get camera images from the car - responses1 = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], "Car1") #scene vision image in uncompressed RGB array - print('Car1: Retrieved images: %d' % (len(responses1))) - responses2 = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.Segmentation), #depth visualization image - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], "Car2") #scene vision image in uncompressed RGB array - print('Car2: Retrieved images: %d' % (len(responses2))) - - for response in responses1 + responses2: - filename = 'c:/temp/car_multi_py' + 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 3 channel image array H X W X 3 - cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png - -#restore to original state -client.reset() - -client.enableApiControl(False) - - - diff --git a/src/airsim/PythonClient/car/pause_continue_car.py b/src/airsim/PythonClient/car/pause_continue_car.py deleted file mode 100644 index 6ea48076b0..0000000000 --- a/src/airsim/PythonClient/car/pause_continue_car.py +++ /dev/null @@ -1,32 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) - -car_controls = airsim.CarControls() - -for i in range(1, 6): - print("Starting command") - car_controls.throttle = 0.5 - car_controls.steering = 1 - client.setCarControls(car_controls) - time.sleep(5) #run - print("Pausing after 5sec") - client.simPause(True) - time.sleep(5) #paused - print("Restarting command to run for 10sec") - client.simContinueForTime(10) - time.sleep(20) - print("Finishing rest of the command") - client.simPause(False) - time.sleep(10) - print("Finished cycle") - - - - diff --git a/src/airsim/PythonClient/car/pause_test.py b/src/airsim/PythonClient/car/pause_test.py deleted file mode 100644 index e8791871a6..0000000000 --- a/src/airsim/PythonClient/car/pause_test.py +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- - -import airsim -import time -import numpy as np - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -car_controls = airsim.CarControls() - -# set the controls for car -car_controls.throttle = -0.5 -car_controls.is_manual_gear = True -car_controls.manual_gear = -1 -client.setCarControls(car_controls) - -# let car drive a bit -time.sleep(10) - -client.simPause(True) -car_position1 = client.getCarState().kinematics_estimated.position -img_position1 = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.Scene)])[0].camera_position -print(f"Before pause position: {car_position1}") -print(f"Before pause diff: {car_position1.x_val - img_position1.x_val}, {car_position1.y_val - img_position1.y_val}, {car_position1.z_val - img_position1.z_val}") - -time.sleep(10) - -car_position2 = client.getCarState().kinematics_estimated.position -img_position2 = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.Scene)])[0].camera_position -print(f"After pause position: {car_position2}") -print(f"After pause diff: {car_position2.x_val - img_position2.x_val}, {car_position2.y_val - img_position2.y_val}, {car_position2.z_val - img_position2.z_val}") -client.simPause(False) diff --git a/src/airsim/PythonClient/car/reset_test_car.py b/src/airsim/PythonClient/car/reset_test_car.py deleted file mode 100644 index 93b02b9825..0000000000 --- a/src/airsim/PythonClient/car/reset_test_car.py +++ /dev/null @@ -1,28 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) -car_controls = airsim.CarControls() - -# go forward -car_controls.throttle = 1 -car_controls.steering = 1 -client.setCarControls(car_controls) -print("Go Forward") -time.sleep(5) # let car drive a bit - -print("reset") -client.reset() -time.sleep(5) # let car drive a bit - -client.setCarControls(car_controls) -print("Go Forward") -time.sleep(5) # let car drive a bit - - diff --git a/src/airsim/PythonClient/car/runtime_car.py b/src/airsim/PythonClient/car/runtime_car.py deleted file mode 100644 index 015cf90a42..0000000000 --- a/src/airsim/PythonClient/car/runtime_car.py +++ /dev/null @@ -1,75 +0,0 @@ -import setup_path -import airsim -import time -import sys -import threading - - -def runSingleCar(id: int): - client = airsim.CarClient() - client.confirmConnection() - - vehicle_name = f"Car_{id}" - pose = airsim.Pose(airsim.Vector3r(0, 7*id, 0), - airsim.Quaternionr(0, 0, 0, 0)) - - print(f"Creating {vehicle_name}") - success = client.simAddVehicle(vehicle_name, "Physxcar", pose) - - if not success: - print(f"Falied to create {vehicle_name}") - return - - # Sleep for some time to wait for other vehicles to be created - time.sleep(1) - - # driveCar(vehicle_name, client) - print(f"Driving {vehicle_name} for a few secs...") - client.enableApiControl(True, vehicle_name) - - car_controls = airsim.CarControls() - - # go forward - car_controls.throttle = 0.5 - car_controls.steering = 0 - client.setCarControls(car_controls, vehicle_name) - time.sleep(3) # let car drive a bit - - # Go forward + steer right - car_controls.throttle = 0.5 - car_controls.steering = 1 - client.setCarControls(car_controls, vehicle_name) - time.sleep(3) - - # go reverse - car_controls.throttle = -0.5 - car_controls.is_manual_gear = True - car_controls.manual_gear = -1 - car_controls.steering = 0 - client.setCarControls(car_controls, vehicle_name) - time.sleep(3) - car_controls.is_manual_gear = False # change back gear to auto - car_controls.manual_gear = 0 - - # apply brakes - car_controls.brake = 1 - client.setCarControls(car_controls, vehicle_name) - time.sleep(3) - - -if __name__ == "__main__": - num_vehicles = 3 - - if len(sys.argv) == 2: - num_vehicles = int(sys.argv[1]) - - print(f"Creating {num_vehicles} vehicles") - - threads = [] - for id in range(num_vehicles, 0, -1): - t = threading.Thread(target=runSingleCar, args=(id,)) - threads.append(t) - t.start() - - for t in threads: - t.join() diff --git a/src/airsim/PythonClient/car/setup_path.py b/src/airsim/PythonClient/car/setup_path.py deleted file mode 100644 index 362113fea8..0000000000 --- a/src/airsim/PythonClient/car/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,inspect,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py b/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py deleted file mode 100644 index a6aab5f548..0000000000 --- a/src/airsim/PythonClient/computer_vision/capture_ir_segmentation.py +++ /dev/null @@ -1,257 +0,0 @@ -import numpy -import cv2 -import time -import sys -import os -import random -import glob -from airsim import * - -def rotation_matrix_from_angles(pry): - pitch = pry[0] - roll = pry[1] - yaw = pry[2] - sy = numpy.sin(yaw) - cy = numpy.cos(yaw) - sp = numpy.sin(pitch) - cp = numpy.cos(pitch) - sr = numpy.sin(roll) - cr = numpy.cos(roll) - - Rx = numpy.array([ - [1, 0, 0], - [0, cr, -sr], - [0, sr, cr] - ]) - - Ry = numpy.array([ - [cp, 0, sp], - [0, 1, 0], - [-sp, 0, cp] - ]) - - Rz = numpy.array([ - [cy, -sy, 0], - [sy, cy, 0], - [0, 0, 1] - ]) - - #Roll is applied first, then pitch, then yaw. - RyRx = numpy.matmul(Ry, Rx) - return numpy.matmul(Rz, RyRx) - -def project_3d_point_to_screen(subjectXYZ, camXYZ, camQuaternion, camProjMatrix4x4, imageWidthHeight): - #Turn the camera position into a column vector. - camPosition = numpy.transpose([camXYZ]) - - #Convert the camera's quaternion rotation to yaw, pitch, roll angles. - pitchRollYaw = utils.to_eularian_angles(camQuaternion) - - #Create a rotation matrix from camera pitch, roll, and yaw angles. - camRotation = rotation_matrix_from_angles(pitchRollYaw) - - #Change coordinates to get subjectXYZ in the camera's local coordinate system. - XYZW = numpy.transpose([subjectXYZ]) - XYZW = numpy.add(XYZW, -camPosition) - print("XYZW: " + str(XYZW)) - XYZW = numpy.matmul(numpy.transpose(camRotation), XYZW) - print("XYZW derot: " + str(XYZW)) - - #Recreate the perspective projection of the camera. - XYZW = numpy.concatenate([XYZW, [[1]]]) - XYZW = numpy.matmul(camProjMatrix4x4, XYZW) - XYZW = XYZW / XYZW[3] - - #Move origin to the upper-left corner of the screen and multiply by size to get pixel values. Note that screen is in y,-z plane. - normX = (1 - XYZW[0]) / 2 - normY = (1 + XYZW[1]) / 2 - - return numpy.array([ - imageWidthHeight[0] * normX, - imageWidthHeight[1] * normY - ]).reshape(2,) - -def get_image(x, y, z, pitch, roll, yaw, client): - """ - title:: - get_image - - description:: - Capture images (as numpy arrays) from a certain position. - - inputs:: - x - x position in meters - y - y position in meters - z - altitude in meters; remember NED, so should be negative to be - above ground - pitch - angle (in radians); in computer vision mode, this is camera angle - roll - angle (in radians) - yaw - angle (in radians) - client - connection to AirSim (e.g., client = MultirotorClient() for UAV) - - returns:: - position - AirSim position vector (access values with x_val, y_val, z_val) - angle - AirSim quaternion ("angles") - im - segmentation or IR image, depending upon palette in use (3 bands) - imScene - scene image (3 bands) - - author:: - Elizabeth Bondi - Shital Shah - """ - - #Set pose and sleep after to ensure the pose sticks before capturing image. - client.simSetVehiclePose(Pose(Vector3r(x, y, z), \ - to_quaternion(pitch, roll, yaw)), True) - time.sleep(0.1) - - #Capture segmentation (IR) and scene images. - responses = \ - client.simGetImages([ImageRequest("0", ImageType.Infrared, - False, False), - ImageRequest("0", ImageType.Scene, \ - False, False), - ImageRequest("0", ImageType.Segmentation, \ - False, False)]) - - #Change images into numpy arrays. - img1d = numpy.fromstring(responses[0].image_data_uint8, dtype=numpy.uint8) - im = img1d.reshape(responses[0].height, responses[0].width, 4) - - img1dscene = numpy.fromstring(responses[1].image_data_uint8, dtype=numpy.uint8) - imScene = img1dscene.reshape(responses[1].height, responses[1].width, 4) - - return Vector3r(x, y, z), to_quaternion(pitch, roll, yaw),\ - im[:,:,:3], imScene[:,:,:3] #get rid of alpha channel - -def main(client, - objectList, - pitch=numpy.radians(270), #image straight down - roll=0, - yaw=0, - z=-122, - writeIR=True, - writeScene=False, - irFolder='', - sceneFolder=''): - """ - title:: - main - - description:: - Follow objects of interest and record images while following. - - inputs:: - client - connection to AirSim (e.g., client = MultirotorClient() for UAV) - objectList - list of tag names within the AirSim environment, corresponding to - objects to follow (add tags by clicking on object, going to - Details, Actor, and Tags, then add component) - pitch - angle (in radians); in computer vision mode, this is camera angle - roll - angle (in radians) - yaw - angle (in radians) - z - altitude in meters; remember NED, so should be negative to be - above ground - write - if True, will write out the images - folder - path to a particular folder that should be used (then within that - folder, expected folders are ir and scene) - - author:: - Elizabeth Bondi - """ - i = 0 - for o in objectList: - startTime = time.time() - elapsedTime = 0 - pose = client.simGetObjectPose(o); - - #Capture images for a certain amount of time in seconds (half hour now) - while elapsedTime < 1800: - #Capture image - pose.position x_val access may change w/ AirSim - #version (pose.position.x_val new, pose.position[b'x_val'] old) - vector, angle, ir, scene = get_image(pose.position.x_val, - pose.position.y_val, - z, - pitch, - roll, - yaw, - client) - - #Convert color scene image to BGR for write out with cv2. - r,g,b = cv2.split(scene) - scene = cv2.merge((b,g,r)) - - if writeIR: - cv2.imwrite(irFolder+'ir_'+str(i).zfill(5)+'.png', ir) - if writeScene: - cv2.imwrite(sceneFolder+'scene_'+str(i).zfill(5)+'.png', - scene) - - i += 1 - elapsedTime = time.time() - startTime - pose = client.simGetObjectPose(o); - camInfo = client.simGetCameraInfo("0") - object_xy_in_pic = project_3d_point_to_screen( - [pose.position.x_val, pose.position.y_val, pose.position.z_val], - [camInfo.pose.position.x_val, camInfo.pose.position.y_val, camInfo.pose.position.z_val], - camInfo.pose.orientation, - camInfo.proj_mat.matrix, - ir.shape[:2][::-1] - ) - print("Object projected to pixel\n{!s}.".format(object_xy_in_pic)) - -if __name__ == '__main__': - - #Connect to AirSim, UAV mode. - client = MultirotorClient() - client.confirmConnection() - - #Look for objects with names that match a regular expression. - poacherList = client.simListSceneObjects('.*?Poacher.*?') - elephantList = client.simListSceneObjects('.*?Elephant.*?') - crocList = client.simListSceneObjects('.*?Croc.*?') - hippoList = client.simListSceneObjects('.*?Hippo.*?') - - objectList = elephantList - - #Sample calls to main, varying camera angle and altitude. - #straight down, 400ft - main(client, - objectList, - irFolder=r'auto\winter\400ft\down') - #straight down, 200ft - main(client, - objectList, - z=-61, - irFolder=r'auto\winter\200ft\down') - #45 degrees, 200ft -- note that often object won't be scene since position - #is set exactly to object's - main(client, - objectList, - z=-61, - pitch=numpy.radians(315), - irFolder=r'auto\winter\200ft\45') - #45 degrees, 400ft -- note that often object won't be scene since position - #is set exactly to object's - main(client, - objectList, - pitch=numpy.radians(315), - irFolder=r'auto\winter\400ft\45') \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py b/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py deleted file mode 100644 index 065d6b74da..0000000000 --- a/src/airsim/PythonClient/computer_vision/create_ir_segmentation_map.py +++ /dev/null @@ -1,212 +0,0 @@ -import numpy -import cv2 -import time -import sys -import os -import random -from airsim import * - -def radiance(absoluteTemperature, emissivity, dx=0.01, response=None): - """ - title:: - radiance - - description:: - Calculates radiance and integrated radiance over a bandpass of 8 to 14 - microns, given temperature and emissivity, using Planck's Law. - - inputs:: - absoluteTemperature - temperture of object in [K] - - either a single temperature or a numpy - array of temperatures, of shape (temperatures.shape[0], 1) - emissivity - average emissivity (number between 0 and 1 representing the - efficiency with which it emits radiation; if 1, it is an ideal - blackbody) of object over the bandpass - - either a single emissivity or a numpy array of emissivities, of - shape (emissivities.shape[0], 1) - dx - discrete spacing between the wavelengths for evaluation of - radiance and integration [default is 0.1] - response - optional response of the camera over the bandpass of 8 to 14 - microns [default is None, for no response provided] - - returns:: - radiance - discrete spectrum of radiance over bandpass - integratedRadiance - integration of radiance spectrum over bandpass (to simulate - the readout from a sensor) - - author:: - Elizabeth Bondi - """ - wavelength = numpy.arange(8,14,dx) - c1 = 1.19104e8 # (2 * 6.62607*10^-34 [Js] * - # (2.99792458 * 10^14 [micron/s])^2 * 10^12 to convert - # denominator from microns^3 to microns * m^2) - c2 = 1.43879e4 # (hc/k) [micron * K] - if response is not None: - radiance = response * emissivity * (c1 / ((wavelength**5) * \ - (numpy.exp(c2 / (wavelength * absoluteTemperature )) - 1))) - else: - radiance = emissivity * (c1 / ((wavelength**5) * (numpy.exp(c2 / \ - (wavelength * absoluteTemperature )) - 1))) - if absoluteTemperature.ndim > 1: - return radiance, numpy.trapz(radiance, dx=dx, axis=1) - else: - return radiance, numpy.trapz(radiance, dx=dx) - - -def get_new_temp_emiss_from_radiance(tempEmissivity, response): - """ - title:: - get_new_temp_emiss_from_radiance - - description:: - Transform tempEmissivity from [objectName, temperature, emissivity] - to [objectName, "radiance"] using radiance calculation above. - - input:: - tempEmissivity - numpy array containing the temperature and emissivity of each - object (e.g., each row has: [objectName, temperature, emissivity]) - response - camera response (same input as radiance, set to None if lacking - this information) - - returns:: - tempEmissivityNew - tempEmissivity, now with [objectName, "radiance"]; note that - integrated radiance (L) is divided by the maximum and multiplied - by 255 in order to simulate an 8 bit digital count observed by the - thermal sensor, since radiance and digital count are linearly - related, so it's [objectName, simulated thermal digital count] - - author:: - Elizabeth Bondi - """ - numObjects = tempEmissivity.shape[0] - - L = radiance(tempEmissivity[:,1].reshape((-1,1)).astype(numpy.float64), - tempEmissivity[:,2].reshape((-1,1)).astype(numpy.float64), - response=response)[1].flatten() - L = ((L / L.max()) * 255).astype(numpy.uint8) - - tempEmissivityNew = numpy.hstack(( - tempEmissivity[:,0].reshape((numObjects,1)), - L.reshape((numObjects,1)))) - - return tempEmissivityNew - -def set_segmentation_ids(segIdDict, tempEmissivityNew, client): - """ - title:: - set_segmentation_ids - - description:: - Set stencil IDs in environment so that stencil IDs correspond to - simulated thermal digital counts (e.g., if elephant has a simulated - digital count of 219, set stencil ID to 219). - - input:: - segIdDict - dictionary mapping environment object names to the object names in - the first column of tempEmissivityNew - tempEmissivityNew - numpy array containing object names and corresponding simulated - thermal digital count - client - connection to AirSim (e.g., client = MultirotorClient() for UAV) - - author:: - Elizabeth Bondi - """ - - #First set everything to 0. - success = client.simSetSegmentationObjectID("[\w]*", 0, True); - if not success: - print('There was a problem setting all segmentation object IDs to 0. ') - sys.exit(1) - - #Next set all objects of interest provided to corresponding object IDs - #segIdDict values MUST match tempEmissivityNew labels. - for key in segIdDict: - objectID = int(tempEmissivityNew[numpy.where(tempEmissivityNew == \ - segIdDict[key])[0],1][0]) - - success = client.simSetSegmentationObjectID("[\w]*"+key+"[\w]*", - objectID, True); - if not success: - print('There was a problem setting {0} segmentation object ID to {1!s}, or no {0} was found.'.format(key, objectID)) - - time.sleep(0.1) - - -if __name__ == '__main__': - - #Connect to AirSim, UAV mode. - client = MultirotorClient() - client.confirmConnection() - - segIdDict = {'Base_Terrain':'soil', - 'elephant':'elephant', - 'zebra':'zebra', - 'Crocodile':'crocodile', - 'Rhinoceros':'rhinoceros', - 'Hippo':'hippopotamus', - 'Poacher':'human', - 'InstancedFoliageActor':'tree', - 'Water_Plane':'water', - 'truck':'truck'} - - #Choose temperature values for winter or summer. - #""" - #winter - tempEmissivity = numpy.array([['elephant',290,0.96], - ['zebra',298,0.98], - ['rhinoceros',291,0.96], - ['hippopotamus',290,0.96], - ['crocodile',295,0.96], - ['human',292,0.985], - ['tree',273,0.952], - ['grass',273,0.958], - ['soil',278,0.914], - ['shrub',273,0.986], - ['truck',273,0.8], - ['water',273,0.96]]) - #""" - """ - #summer - tempEmissivity = numpy.array([['elephant',298,0.96], - ['zebra',307,0.98], - ['rhinoceros',299,0.96], - ['hippopotamus',298,0.96], - ['crocodile',303,0.96], - ['human',301,0.985], - ['tree',293,0.952], - ['grass',293,0.958], - ['soil',288,0.914], - ['shrub',293,0.986], - ['truck',293,0.8], - ['water',293,0.96]]) - """ - - #Read camera response. - response = None - camResponseFile = 'camera_response.npy' - try: - numpy.load(camResponseFile) - except: - print("{} not found. Using default response.".format(camResponseFile)) - - #Calculate radiance. - tempEmissivityNew = get_new_temp_emiss_from_radiance(tempEmissivity, - response) - - #Set IDs in AirSim environment. - set_segmentation_ids(segIdDict, tempEmissivityNew, client) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/cv_capture.py b/src/airsim/PythonClient/computer_vision/cv_capture.py deleted file mode 100644 index 2701ce3009..0000000000 --- a/src/airsim/PythonClient/computer_vision/cv_capture.py +++ /dev/null @@ -1,55 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -import pprint -import tempfile -import os -import time - -pp = pprint.PrettyPrinter(indent=4) - -client = airsim.VehicleClient() - -airsim.wait_key('Press any key to get camera parameters') -for camera_id in range(2): - camera_info = client.simGetCameraInfo(str(camera_id)) - print("CameraInfo %d: %s" % (camera_id, pp.pprint(camera_info))) - -airsim.wait_key('Press any key to get images') -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_drone") -print ("Saving images to %s" % tmp_dir) -try: - for n in range(3): - os.makedirs(os.path.join(tmp_dir, str(n))) -except OSError: - if not os.path.isdir(tmp_dir): - raise - -for x in range(50): # do few times - #xn = 1 + x*5 # some random number - client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(x, 0, -2), airsim.to_quaternion(0, 0, 0)), True) - time.sleep(0.1) - - responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.Scene), - airsim.ImageRequest("1", airsim.ImageType.Scene), - airsim.ImageRequest("2", airsim.ImageType.Scene)]) - - for i, response in enumerate(responses): - if response.pixels_as_float: - print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) - airsim.write_pfm(os.path.normpath(os.path.join(tmp_dir, str(x) + "_" + str(i) + '.pfm')), airsim.get_pfm_array(response)) - else: - print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) - airsim.write_file(os.path.normpath(os.path.join(tmp_dir, str(i), str(x) + "_" + str(i) + '.png')), response.image_data_uint8) - - pose = client.simGetVehiclePose() - pp.pprint(pose) - - time.sleep(3) - -# currently reset() doesn't work in CV mode. Below is the workaround -client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) diff --git a/src/airsim/PythonClient/computer_vision/cv_mode.py b/src/airsim/PythonClient/computer_vision/cv_mode.py deleted file mode 100644 index 3c05e08709..0000000000 --- a/src/airsim/PythonClient/computer_vision/cv_mode.py +++ /dev/null @@ -1,64 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -import pprint -import os -import time -import math -import tempfile - -pp = pprint.PrettyPrinter(indent=4) - -client = airsim.VehicleClient() -client.confirmConnection() - -airsim.wait_key('Press any key to set camera-0 gimbal to 15-degree pitch') -camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(math.radians(15), 0, 0)) #radians -client.simSetCameraPose("0", camera_pose) - -airsim.wait_key('Press any key to get camera parameters') -for camera_name in range(5): - camera_info = client.simGetCameraInfo(str(camera_name)) - print("CameraInfo %d:" % camera_name) - pp.pprint(camera_info) - -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") -print ("Saving images to %s" % tmp_dir) -try: - os.makedirs(tmp_dir) -except OSError: - if not os.path.isdir(tmp_dir): - raise - -airsim.wait_key('Press any key to get images') -for x in range(3): # do few times - z = x * -20 - 5 # some random number - client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(z, z, z), airsim.to_quaternion(x / 3.0, 0, x / 3.0)), True) - - responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), - airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), - airsim.ImageRequest("2", airsim.ImageType.Segmentation), - airsim.ImageRequest("3", airsim.ImageType.Scene), - airsim.ImageRequest("4", airsim.ImageType.DisparityNormalized), - airsim.ImageRequest("4", airsim.ImageType.SurfaceNormals)]) - - for i, response in enumerate(responses): - filename = os.path.join(tmp_dir, str(x) + "_" + str(i)) - if response.pixels_as_float: - print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) - airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) - else: - print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) - - pose = client.simGetVehiclePose() - pp.pprint(pose) - - time.sleep(3) - -# currently reset() doesn't work in CV mode. Below is the workaround -client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) diff --git a/src/airsim/PythonClient/computer_vision/cv_navigate.py b/src/airsim/PythonClient/computer_vision/cv_navigate.py deleted file mode 100644 index 592190f1a6..0000000000 --- a/src/airsim/PythonClient/computer_vision/cv_navigate.py +++ /dev/null @@ -1,273 +0,0 @@ - -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -import numpy as np -import time -import os -import pprint -import tempfile -import math -from math import * -from scipy.misc import imsave - -from abc import ABC, abstractmethod - -#define abstract class to return next vector in the format (x,y,yaw) -class AbstractClassGetNextVec(ABC): - - @abstractmethod - def get_next_vec(self, depth, obj_sz, goal, pos): - print("Some implementation!") - return pos,yaw - -class ReactiveController(AbstractClassGetNextVec): - def get_next_vec(self, depth, obj_sz, goal, pos): - print("Some implementation!") - return - -class AvoidLeft(AbstractClassGetNextVec): - - def __init__(self, hfov=radians(90), coll_thres=5, yaw=0, limit_yaw=5, step=0.1): - self.hfov = hfov - self.coll_thres = coll_thres - self.yaw = yaw - self.limit_yaw = limit_yaw - self.step = step - - def get_next_vec(self, depth, obj_sz, goal, pos): - - [h,w] = np.shape(depth) - [roi_h,roi_w] = compute_bb((h,w), obj_sz, self.hfov, self.coll_thres) - - # compute vector, distance and angle to goal - t_vec, t_dist, t_angle = get_vec_dist_angle (goal, pos[:-1]) - - # compute box of interest - img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2):int((w+roi_w)/2)] - - # scale by weight matrix (optional) - #img2d_box = np.multiply(img2d_box,w_mtx) - - # detect collision - if (np.min(img2d_box) < coll_thres): - self.yaw = self.yaw - radians(self.limit_yaw) - else: - self.yaw = self.yaw + min (t_angle-self.yaw, radians(self.limit_yaw)) - - pos[0] = pos[0] + self.step*cos(self.yaw) - pos[1] = pos[1] + self.step*sin(self.yaw) - - return pos, self.yaw,t_dist - -class AvoidLeftIgonreGoal(AbstractClassGetNextVec): - - def __init__(self, hfov=radians(90), coll_thres=5, yaw=0, limit_yaw=5, step=0.1): - self.hfov = hfov - self.coll_thres = coll_thres - self.yaw = yaw - self.limit_yaw = limit_yaw - self.step = step - - def get_next_vec(self, depth, obj_sz, goal, pos): - - [h,w] = np.shape(depth) - [roi_h,roi_w] = compute_bb((h,w), obj_sz, self.hfov, self.coll_thres) - - # compute box of interest - img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2):int((w+roi_w)/2)] - - # detect collision - if (np.min(img2d_box) < coll_thres): - self.yaw = self.yaw - radians(self.limit_yaw) - - pos[0] = pos[0] + self.step*cos(self.yaw) - pos[1] = pos[1] + self.step*sin(self.yaw) - - return pos, self.yaw, 100 - -class AvoidLeftRight(AbstractClassGetNextVec): - def get_next_vec(self, depth, obj_sz, goal, pos): - print("Some implementation!") - #Same as above but decide to go left or right based on average or some metric like that - return - - -#compute resultant normalized vector, distance and angle -def get_vec_dist_angle (goal, pos): - vec = np.array(goal) - np.array(pos) - dist = math.sqrt(vec[0]**2 + vec[1]**2) - angle = math.atan2(vec[1],vec[0]) - if angle > math.pi: - angle -= 2*math.pi - elif angle < -math.pi: - angle += 2*math.pi - return vec/dist, dist, angle - -def get_local_goal (v, pos, theta): - return goal - -#compute bounding box size -def compute_bb(image_sz, obj_sz, hfov, distance): - vfov = hfov2vfov(hfov,image_sz) - box_h = ceil(obj_sz[0] * image_sz[0] / (math.tan(hfov/2)*distance*2)) - box_w = ceil(obj_sz[1] * image_sz[1] / (math.tan(vfov/2)*distance*2)) - return box_h, box_w - -#convert horizonal fov to vertical fov -def hfov2vfov(hfov, image_sz): - aspect = image_sz[0]/image_sz[1] - vfov = 2*math.atan( tan(hfov/2) * aspect) - return vfov - -#matrix with all ones -def equal_weight_mtx(roi_h,roi_w): - return np.ones((roi_h,roi_w)) - -#matrix with max weight in center and decreasing linearly with distance from center -def linear_weight_mtx(roi_h,roi_w): - w_mtx = np.ones((roi_h,roi_w)) - for j in range(0,roi_w): - for i in range(j,roi_h-j): - w_mtx[j:roi_h-j,i:roi_w-i] = (j+1) - return w_mtx - -#matrix with max weight in center and decreasing quadratically with distance from center -def square_weight_mtx(roi_h,roi_w): - w_mtx = np.ones((roi_h,roi_w)) - for j in range(0,roi_w): - for i in range(j,roi_h-j): - w_mtx[j:roi_h-j,i:roi_w-i] = (j+1)*(j+1) - return w_mtx - -def print_stats(img): - print ('Avg: ',np.average(img)) - print ('Min: ',np.min(img)) - print ('Max: ',np.max(img)) - print('Img Sz: ',np.size(img)) - -def generate_depth_viz(img,thres=0): - if thres > 0: - img[img > thres] = thres - else: - img = np.reciprocal(img) - return img - -def moveUAV(client,pos,yaw): - client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(pos[0], pos[1], pos[2]), airsim.to_quaternion(0, 0, yaw)), True) - - -pp = pprint.PrettyPrinter(indent=4) - -client = airsim.VehicleClient() -client.confirmConnection() - -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_drone") -#print ("Saving images to %s" % tmp_dir) -#airsim.wait_key('Press any key to start') - -#Define start position, goal and size of UAV -pos = [0,5,-1] #start position x,y,z -goal = [120,0] #x,y -uav_size = [0.29*3,0.98*2] #height:0.29 x width:0.98 - allow some tolerance - -#Define parameters and thresholds -hfov = radians(90) -coll_thres = 5 -yaw = 0 -limit_yaw = 5 -step = 0.1 - -responses = client.simGetImages([ - airsim.ImageRequest("1", airsim.ImageType.DepthPlanar, True)]) -response = responses[0] - -#initial position -moveUAV(client,pos,yaw) - -#predictControl = AvoidLeftIgonreGoal(hfov, coll_thres, yaw, limit_yaw, step) -predictControl = AvoidLeft(hfov, coll_thres, yaw, limit_yaw, step) - -for z in range(10000): # do few times - - #time.sleep(1) - - # get response - responses = client.simGetImages([ - airsim.ImageRequest("1", airsim.ImageType.DepthPlanar, True)]) - response = responses[0] - - # get numpy array - img1d = response.image_data_float - - # reshape array to 2D array H X W - img2d = np.reshape(img1d,(response.height, response.width)) - - [pos,yaw,target_dist] = predictControl.get_next_vec(img2d, uav_size, goal, pos) - moveUAV(client,pos,yaw) - - if (target_dist < 1): - print('Target reached.') - airsim.wait_key('Press any key to continue') - break - - # write to png - #imsave(os.path.normpath(os.path.join(tmp_dir, "depth_" + str(z) + '.png')), generate_depth_viz(img2d,5)) - - #pose = client.simGetPose() - #pp.pprint(pose) - #time.sleep(5) - -# currently reset() doesn't work in CV mode. Below is the workaround -client.simSetVehiclePose(airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)), True) - - - - - - - - - - - - - - -#################### OLD CODE -# timer = 0 -# time_obs = 50 -# bObstacle = False - -# if (bObstacle): -# timer = timer + 1 -# if timer > time_obs: -# bObstacle = False -# timer = 0 -# else: -# yaw = target_angle - -# print (target_angle,target_vec,target_dist,x,y,goal[0],goal[1]) - - -# if (np.average(img2d_box) < coll_thres): -# img2d_box_l = img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2)-50:int((w+roi_w)/2)-50] -# img2d_box_r = img2d_box = img2d[int((h-roi_h)/2):int((h+roi_h)/2),int((w-roi_w)/2)+50:int((w+roi_w)/2)+50] -# img2d_box_l_avg = np.average(np.multiply(img2d_box_l,w_mtx)) -# img2d_box_r_avg = np.average(np.multiply(img2d_box_r,w_mtx)) -# print('left: ', img2d_box_l_avg) -# print('right: ', img2d_box_r_avg) -# if img2d_box_l_avg > img2d_box_r_avg: -# ##Go LEFT -# #y_offset = y_offset-1 -# yaw = yaw - radians(10) -# bObstacle = True -# else: -# ##Go RIGHT -# #y_offset = y_offset+1 -# yaw = yaw + radians(10) -# bObstacle = true -# print('yaw: ', yaw) diff --git a/src/airsim/PythonClient/computer_vision/external_camera.py b/src/airsim/PythonClient/computer_vision/external_camera.py deleted file mode 100644 index b41a072cba..0000000000 --- a/src/airsim/PythonClient/computer_vision/external_camera.py +++ /dev/null @@ -1,102 +0,0 @@ -import setup_path -import airsim -import os -import tempfile - -""" -A simple script to test all the camera APIs. Change the camera name and whether it's an external camera - -Example Settings for external camera - - -{ - "SettingsVersion": 1.2, - "SimMode": "Car", - "ExternalCameras": { - "fixed1": { - "X": 0, "Y": 0, "Z": -5, - "Pitch": -90, "Roll": 0, "Yaw": 0 - } - } -} -""" - -# Just change the below to test different cameras easily! -CAM_NAME = "fixed1" -IS_EXTERNAL_CAM = True - - -client = airsim.VehicleClient() -client.confirmConnection() - -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") -print ("Saving images to %s" % tmp_dir) -try: - os.makedirs(tmp_dir) -except OSError: - if not os.path.isdir(tmp_dir): - raise - -print(f"Camera: {CAM_NAME}, External = {IS_EXTERNAL_CAM}") - -# Test Camera info -cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) -print(cam_info) - -# Test Image APIs -airsim.wait_key('Press any key to get images') - -requests = [airsim.ImageRequest(CAM_NAME, airsim.ImageType.Scene), - airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthPlanar), - airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthVis), - airsim.ImageRequest(CAM_NAME, airsim.ImageType.Segmentation), - airsim.ImageRequest(CAM_NAME, airsim.ImageType.SurfaceNormals)] - -def save_images(responses, prefix = ""): - for i, response in enumerate(responses): - filename = os.path.join(tmp_dir, prefix + "_" + str(i)) - - if response.pixels_as_float: - print(f"Type {response.image_type}, size {len(response.image_data_float)}, pos {response.camera_position}") - airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) - else: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}, pos {response.camera_position}") - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) - - -responses = client.simGetImages(requests, external=IS_EXTERNAL_CAM) -save_images(responses, "old_fov") - - -# Test FoV API -airsim.wait_key('Press any key to change FoV and get images') - -client.simSetCameraFov(CAM_NAME, 120, external=IS_EXTERNAL_CAM) - -responses = client.simGetImages(requests, external = IS_EXTERNAL_CAM) -save_images(responses, "new_fov") - -new_cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) -print(f"Old FOV: {cam_info.fov}, New FOV: {new_cam_info.fov}") - - -# Test Pose APIs -new_pose = airsim.Pose(airsim.Vector3r(-10, -5, -5), airsim.to_quaternion(0.1, 0, 0.1)) -client.simSetCameraPose(CAM_NAME, new_pose, external=IS_EXTERNAL_CAM) - -responses = client.simGetImages(requests, external=IS_EXTERNAL_CAM) -save_images(responses, "new_pose") - -new_cam_info = client.simGetCameraInfo(CAM_NAME, external=IS_EXTERNAL_CAM) -print(f"Old Pose: {cam_info.pose}, New Pose: {new_cam_info.pose}") - - -# Test Distortion params APIs -dist_params = client.simGetDistortionParams(CAM_NAME, external=IS_EXTERNAL_CAM) -print(f"Distortion Params: {dist_params}") - -new_params_dict = {"K1": 0.1, "K2": 0.01, "K3": 0.0, "P1": 0.0, "P2": 0.0} -print(f"Setting distortion params as {new_params_dict}") -client.simSetDistortionParams(CAM_NAME, new_params_dict, external=IS_EXTERNAL_CAM) - -dist_params = client.simGetDistortionParams(CAM_NAME, external=IS_EXTERNAL_CAM) -print(f"Updated Distortion Params: {dist_params}") diff --git a/src/airsim/PythonClient/computer_vision/fov_change.py b/src/airsim/PythonClient/computer_vision/fov_change.py deleted file mode 100644 index 8c15c09210..0000000000 --- a/src/airsim/PythonClient/computer_vision/fov_change.py +++ /dev/null @@ -1,53 +0,0 @@ -import setup_path -import airsim -import os -import tempfile - -client = airsim.VehicleClient() -client.confirmConnection() - -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_cv_mode") -print ("Saving images to %s" % tmp_dir) -try: - os.makedirs(tmp_dir) -except OSError: - if not os.path.isdir(tmp_dir): - raise - -CAM_NAME = "front_center" -print(f"Camera: {CAM_NAME}") - -airsim.wait_key('Press any key to get camera parameters') - -cam_info = client.simGetCameraInfo(CAM_NAME) -print(cam_info) - -airsim.wait_key(f'Press any key to get images, saving to {tmp_dir}') - -requests = [airsim.ImageRequest(CAM_NAME, airsim.ImageType.Scene), - airsim.ImageRequest(CAM_NAME, airsim.ImageType.DepthVis)] - -def save_images(responses, prefix = ""): - for i, response in enumerate(responses): - filename = os.path.join(tmp_dir, prefix + "_" + str(i)) - if response.pixels_as_float: - print(f"Type {response.image_type}, size {len(response.image_data_float)}, pos {response.camera_position}") - airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) - else: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}, pos {response.camera_position}") - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) - - -responses = client.simGetImages(requests) -save_images(responses, "old_fov") - -airsim.wait_key('Press any key to change FoV and get images') - -client.simSetCameraFov(CAM_NAME, 120) -responses = client.simGetImages(requests) -save_images(responses, "new_fov") - -new_cam_info = client.simGetCameraInfo(CAM_NAME) -print(new_cam_info) - -print(f"Old FOV: {cam_info.fov}, New FOV: {new_cam_info.fov}") diff --git a/src/airsim/PythonClient/computer_vision/getpos.py b/src/airsim/PythonClient/computer_vision/getpos.py deleted file mode 100644 index 52783e744e..0000000000 --- a/src/airsim/PythonClient/computer_vision/getpos.py +++ /dev/null @@ -1,17 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -client = airsim.VehicleClient() -client.confirmConnection() - -pose = client.simGetVehiclePose() -print("x={}, y={}, z={}".format(pose.position.x_val, pose.position.y_val, pose.position.z_val)) - -angles = airsim.to_eularian_angles(client.simGetVehiclePose().orientation) -print("pitch={}, roll={}, yaw={}".format(angles[0], angles[1], angles[2])) - -pose.position.x_val = pose.position.x_val + 1 -client.simSetVehiclePose(pose, True) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/ground_truth.py b/src/airsim/PythonClient/computer_vision/ground_truth.py deleted file mode 100644 index 32c63796c6..0000000000 --- a/src/airsim/PythonClient/computer_vision/ground_truth.py +++ /dev/null @@ -1,25 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -import pprint -import time -import cv2 #conda install opencv - -client = airsim.VehicleClient() -client.confirmConnection() - -print("Time,Speed,Gear,PX,PY,PZ,OW,OX,OY,OZ") - -# monitor car state while you drive it manually. -while (cv2.waitKey(1) & 0xFF) == 0xFF: - kinematics = client.simGetGroundTruthKinematics() - environment = client.simGetGroundTruthEnvironment() - - print("Kinematics: %s\nEnvironemt %s" % ( - pprint.pformat(kinematics), pprint.pformat(environment))) - time.sleep(1) - - diff --git a/src/airsim/PythonClient/computer_vision/image_benchmarker.py b/src/airsim/PythonClient/computer_vision/image_benchmarker.py deleted file mode 100644 index 769af97ef9..0000000000 --- a/src/airsim/PythonClient/computer_vision/image_benchmarker.py +++ /dev/null @@ -1,155 +0,0 @@ -import setup_path -import airsim -from argparse import ArgumentParser -import time -import threading -import numpy as np -import cv2 -import tempfile -import os - - -cameraTypeMap = { - "depth": airsim.ImageType.DepthVis, - "segmentation": airsim.ImageType.Segmentation, - "seg": airsim.ImageType.Segmentation, - "scene": airsim.ImageType.Scene, - "disparity": airsim.ImageType.DisparityNormalized, - "normals": airsim.ImageType.SurfaceNormals -} - -CAM_NAME = "front_center" -DEBUG = False - -def saveImage(response, filename): - if response.pixels_as_float: - # airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) - depth = np.array(response.image_data_float, dtype=np.float64) - depth = depth.reshape((response.height, response.width, -1)) - depth = np.array(depth * 255, dtype=np.uint8) - # save pic - cv2.imwrite(os.path.normpath(filename + '.png'), depth) - - elif response.compress: #png format - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) - - else: #uncompressed array - 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 3 channel image array H X W X 3 - cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png - -class ImageBenchmarker(): - def __init__(self, - img_benchmark_type = 'simGetImages', - viz_image_cv2 = False, - save_images = False, - img_type = "scene"): - self.airsim_client = airsim.VehicleClient() - self.airsim_client.confirmConnection() - self.image_benchmark_num_images = 0 - self.image_benchmark_total_time = 0.0 - self.avg_fps = 0.0 - self.image_callback_thread = None - self.viz_image_cv2 = viz_image_cv2 - self.save_images = save_images - - self.img_type = cameraTypeMap[img_type] - - if img_benchmark_type == "simGetImage": - self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImage, 0.001)) - if img_benchmark_type == "simGetImages": - self.image_callback_thread = threading.Thread(target=self.repeat_timer_img, args=(self.image_callback_benchmark_simGetImages, 0.001)) - self.is_image_thread_active = False - - if self.save_images: - self.tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_img_bm") - print(f"Saving images to {self.tmp_dir}") - try: - os.makedirs(self.tmp_dir) - except OSError: - if not os.path.isdir(self.tmp_dir): - raise - - def start_img_benchmark_thread(self): - if not self.is_image_thread_active: - self.is_image_thread_active = True - self.benchmark_start_time = time.time() - self.image_callback_thread.start() - print("Started img image_callback thread") - - def stop_img_benchmark_thread(self): - if self.is_image_thread_active: - self.is_image_thread_active = False - self.image_callback_thread.join() - print("Stopped image callback thread.") - print(f"FPS: {self.avg_fps} for {self.image_benchmark_num_images} images") - - def repeat_timer_img(self, task, period): - while self.is_image_thread_active: - task() - time.sleep(period) - - def update_benchmark_results(self): - self.image_benchmark_total_time = time.time() - self.benchmark_start_time - self.avg_fps = self.image_benchmark_num_images / self.image_benchmark_total_time - if self.image_benchmark_num_images % 10 == 0: - print(f"Result: {self.avg_fps} avg_fps for {self.image_benchmark_num_images} images") - - def image_callback_benchmark_simGetImage(self): - self.image_benchmark_num_images += 1 - image = self.airsim_client.simGetImage(CAM_NAME, self.img_type) - np_arr = np.frombuffer(image, dtype=np.uint8) - # Change the below dimensions appropriately for the camera settings - img_rgb = np_arr.reshape(240, 512, 4) - - self.update_benchmark_results() - - if self.viz_image_cv2: - cv2.imshow("img_rgb", img_rgb) - cv2.waitKey(1) - - def image_callback_benchmark_simGetImages(self): - self.image_benchmark_num_images += 1 - request = [airsim.ImageRequest(CAM_NAME, self.img_type, False, False)] - responses = self.airsim_client.simGetImages(request) - response = responses[0] - - self.update_benchmark_results() - - if DEBUG: - if response.pixels_as_float: - print(f"Type {response.image_type}, size {len(response.image_data_float)}," - f"height {response.height}, width {response.width}") - else: - print(f"Type {response.image_type}, size {len(response.image_data_uint8)}," - f"height {response.height}, width {response.width}") - - if self.viz_image_cv2: - np_arr = np.frombuffer(response.image_data_uint8, dtype=np.uint8) - img = np_arr.reshape(response.height, response.width, -1) - cv2.imshow("img", img) - cv2.waitKey(1) - - if self.save_images: - filename = os.path.join(self.tmp_dir, str(self.image_benchmark_num_images)) - saveImage(response, filename) - - -def main(args): - image_benchmarker = ImageBenchmarker(img_benchmark_type=args.img_benchmark_type, viz_image_cv2=args.viz_image_cv2, - save_images=args.save_images, img_type=args.img_type) - - image_benchmarker.start_img_benchmark_thread() - time.sleep(args.time) - image_benchmarker.stop_img_benchmark_thread() - -if __name__ == "__main__": - parser = ArgumentParser() - parser.add_argument('--img_benchmark_type', type=str, choices=["simGetImage", "simGetImages"], default="simGetImages") - parser.add_argument('--enable_viz_image_cv2', dest='viz_image_cv2', action='store_true', default=False) - parser.add_argument('--save_images', dest='save_images', action='store_true', default=False) - parser.add_argument('--img_type', type=str, choices=cameraTypeMap.keys(), default="scene") - parser.add_argument('--time', help="Time in secs to run the benchmark for", type=int, default=30) - - args = parser.parse_args() - main(args) diff --git a/src/airsim/PythonClient/computer_vision/objects.py b/src/airsim/PythonClient/computer_vision/objects.py deleted file mode 100644 index f5356c31cf..0000000000 --- a/src/airsim/PythonClient/computer_vision/objects.py +++ /dev/null @@ -1,72 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -import pprint - -client = airsim.VehicleClient() -client.confirmConnection() - -# objects can be named in two ways: -# 1. In UE Editor, select and object and change its name to something else. Note that you must *change* its name because -# default name is auto-generated and varies from run-to-run. -# 2. OR you can do this: In UE Editor select the object and then go to "Actor" section, click down arrow to see "Tags" property and add a tag there. -# -# The simGetObjectPose and simSetObjectPose uses first object that has specified name OR tag. -# more info: https://answers.unrealengine.com/questions/543807/whats-the-difference-between-tag-and-tag.html -# https://answers.unrealengine.com/revisions/790629.html - -# below works in Blocks environment - -#------------------------------------ Get current pose ------------------------------------------------ - -# search object by name: -pose1 = client.simGetObjectPose("OrangeBall"); -print("OrangeBall - Position: %s, Orientation: %s" % (pprint.pformat(pose1.position), - pprint.pformat(pose1.orientation))) - -# search another object by tag -pose2 = client.simGetObjectPose("PulsingCone"); -print("PulsingCone - Position: %s, Orientation: %s" % (pprint.pformat(pose2.position), - pprint.pformat(pose2.orientation))) - -# search non-existent object -pose3 = client.simGetObjectPose("Non-Existent"); # should return nan pose -print("Non-Existent - Position: %s, Orientation: %s" % (pprint.pformat(pose3.position), - pprint.pformat(pose3.orientation))) - - -#------------------------------------ Set new pose ------------------------------------------------ - -# here we move with teleport enabled so collisions are ignored -pose1.position = pose1.position + airsim.Vector3r(-2, -2, -2) -success = client.simSetObjectPose("OrangeBall", pose1, True); -airsim.wait_key("OrangeBall moved. Success: %i" % (success)) - -# here we move with teleport enabled so collisions are not ignored -pose2.position = pose2.position + airsim.Vector3r(3, 3, -2) -success = client.simSetObjectPose("PulsingCone", pose2, False); -airsim.wait_key("PulsingCone moved. Success: %i" % (success)) - -# move non-existent object -success = client.simSetObjectPose("Non-Existent", pose2); # should return nan pose -airsim.wait_key("Non-Existent moved. Success: %i" % (success)) - -#------------------------------------ Get new pose ------------------------------------------------ - - -pose1 = client.simGetObjectPose("OrangeBall"); -print("OrangeBall - Position: %s, Orientation: %s" % (pprint.pformat(pose1.position), - pprint.pformat(pose1.orientation))) - -# search another object by tag -pose2 = client.simGetObjectPose("PulsingCone"); -print("PulsingCone - Position: %s, Orientation: %s" % (pprint.pformat(pose2.position), - pprint.pformat(pose2.orientation))) - -# search non-existent object -pose3 = client.simGetObjectPose("Non-Existent"); # should return nan pose -print("Non-Existent - Position: %s, Orientation: %s" % (pprint.pformat(pose3.position), - pprint.pformat(pose3.orientation))) \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/seg_palette.py b/src/airsim/PythonClient/computer_vision/seg_palette.py deleted file mode 100644 index 664769cc9e..0000000000 --- a/src/airsim/PythonClient/computer_vision/seg_palette.py +++ /dev/null @@ -1,48 +0,0 @@ -import numpy -import random - -# requires Python 3.5.3 :: Anaconda 4.4.0 -# pip install opencv-python -import cv2 -import pprint - - -def generate_color_palette(numPixelsWide, outputFile): - random.seed(42) - - palette = numpy.zeros((1, 256 * numPixelsWide, 3)) - possibilities = [list(range(256)), list(range(256)), list(range(256))] - - colors = [[0] * 3 for i in range(256)] - - choice = 0 - j = 0 - for i in range(3): - palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice - colors[j][i] = choice - - for i in range(3): - for j in range(1, 255): - choice = random.sample(possibilities[i], 1)[0] - possibilities[i].remove(choice) - palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice - colors[j][i] = choice - - choice = 255 - j = 255 - for i in range(3): - palette[0, j * numPixelsWide : (j + 1) * numPixelsWide, i] = choice - colors[j][i] = choice - - cv2.imwrite(outputFile, palette, [cv2.IMWRITE_PNG_COMPRESSION, 0]) - - rgb_file = open("rgbs.txt", "w") - for j in range(256): - rgb_file.write("%d\t%s\n" % (j, str(list(reversed(colors[j]))))) - rgb_file.close() - - -if __name__ == "__main__": - numPixelsWide = 4 - outputFile = "seg_color_palette.png" - generate_color_palette(numPixelsWide, outputFile) diff --git a/src/airsim/PythonClient/computer_vision/segmentation.py b/src/airsim/PythonClient/computer_vision/segmentation.py deleted file mode 100644 index 8a6a550fb5..0000000000 --- a/src/airsim/PythonClient/computer_vision/segmentation.py +++ /dev/null @@ -1,63 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import airsim -import cv2 -import numpy as np -import setup_path - -client = airsim.VehicleClient() -client.confirmConnection() - -airsim.wait_key('Press any key to set all object IDs to 0') -found = client.simSetSegmentationObjectID("[\w]*", 0, True); -print("Done: %r" % (found)) - -#for block environment - -airsim.wait_key('Press any key to change one ground object ID') -found = client.simSetSegmentationObjectID("Ground", 20); -print("Done: %r" % (found)) - -#regex are case insensitive -airsim.wait_key('Press any key to change all ground object ID') -found = client.simSetSegmentationObjectID("ground[\w]*", 22, True); -print("Done: %r" % (found)) - -##for neighborhood environment - -#set object ID for sky -found = client.simSetSegmentationObjectID("SkySphere", 42, True); -print("Done: %r" % (found)) - -#below doesn't work yet. You must set CustomDepthStencilValue in Unreal Editor for now -airsim.wait_key('Press any key to set Landscape object ID to 128') -found = client.simSetSegmentationObjectID("[\w]*", 128, True); -print("Done: %r" % (found)) - -#get segmentation image in various formats -responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.Segmentation, True), #depth in perspective projection - airsim.ImageRequest("0", airsim.ImageType.Segmentation, False, False)]) #scene vision image in uncompressed RGBA array -print('Retrieved images: %d', len(responses)) - -#save segmentation images in various formats -for idx, response in enumerate(responses): - filename = 'c:/temp/py_seg_' + 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 - numpy demo - 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 3 channel image array H X W X 3 - # cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # write to png - - #find unique colors - print(np.unique(img_rgb[:,:,0], return_counts=True)) #red - print(np.unique(img_rgb[:,:,1], return_counts=True)) #green - print(np.unique(img_rgb[:,:,2], return_counts=True)) #blue \ No newline at end of file diff --git a/src/airsim/PythonClient/computer_vision/setup_path.py b/src/airsim/PythonClient/computer_vision/setup_path.py deleted file mode 100644 index 362113fea8..0000000000 --- a/src/airsim/PythonClient/computer_vision/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,inspect,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/detection/detection.py b/src/airsim/PythonClient/detection/detection.py deleted file mode 100644 index 388228826a..0000000000 --- a/src/airsim/PythonClient/detection/detection.py +++ /dev/null @@ -1,43 +0,0 @@ -import setup_path -import airsim -import cv2 -import numpy as np -import pprint - -# connect to the AirSim simulator -client = airsim.VehicleClient() -client.confirmConnection() - -# set camera name and image type to request images and detections -camera_name = "0" -image_type = airsim.ImageType.Scene - -# set detection radius in [cm] -client.simSetDetectionFilterRadius(camera_name, image_type, 200 * 100) -# add desired object name to detect in wild card/regex format -client.simAddDetectionFilterMeshName(camera_name, image_type, "Cylinder*") - - -while True: - rawImage = client.simGetImage(camera_name, image_type) - if not rawImage: - continue - png = cv2.imdecode(airsim.string_to_uint8_array(rawImage), cv2.IMREAD_UNCHANGED) - cylinders = client.simGetDetections(camera_name, image_type) - if cylinders: - for cylinder in cylinders: - s = pprint.pformat(cylinder) - print("Cylinder: %s" % s) - - cv2.rectangle(png,(int(cylinder.box2D.min.x_val),int(cylinder.box2D.min.y_val)),(int(cylinder.box2D.max.x_val),int(cylinder.box2D.max.y_val)),(255,0,0),2) - cv2.putText(png, cylinder.name, (int(cylinder.box2D.min.x_val),int(cylinder.box2D.min.y_val - 10)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (36,255,12)) - - - cv2.imshow("AirSim", png) - if cv2.waitKey(1) & 0xFF == ord('q'): - break - elif cv2.waitKey(1) & 0xFF == ord('c'): - client.simClearDetectionMeshNames(camera_name, image_type) - elif cv2.waitKey(1) & 0xFF == ord('a'): - client.simAddDetectionFilterMeshName(camera_name, image_type, "Cylinder*") -cv2.destroyAllWindows() diff --git a/src/airsim/PythonClient/detection/setup_path.py b/src/airsim/PythonClient/detection/setup_path.py deleted file mode 100644 index a33b94789c..0000000000 --- a/src/airsim/PythonClient/detection/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = __file__ - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/docs/Makefile b/src/airsim/PythonClient/docs/Makefile deleted file mode 100644 index 298ea9e213..0000000000 --- a/src/airsim/PythonClient/docs/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# Minimal makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SOURCEDIR = . -BUILDDIR = _build - -# Put it first so that "make" without argument is like "make help". -help: - @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) - -.PHONY: help Makefile - -# Catch-all target: route all unknown targets to Sphinx using the new -# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). -%: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file diff --git a/src/airsim/PythonClient/docs/conf.py b/src/airsim/PythonClient/docs/conf.py deleted file mode 100644 index 2df296ed16..0000000000 --- a/src/airsim/PythonClient/docs/conf.py +++ /dev/null @@ -1,205 +0,0 @@ -# -*- coding: utf-8 -*- -# -# Configuration file for the Sphinx documentation builder. -# -# This file does only contain a selection of the most common options. For a -# full list see the documentation: -# http://www.sphinx-doc.org/en/master/config - -# -- Path setup -------------------------------------------------------------- - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -import os -import sys -sys.path.insert(0, os.path.abspath('..')) - -import sphinx_rtd_theme -from airsim import __version__ - -# -- Project information ----------------------------------------------------- - -project = u'airsim' -copyright = u'2020, Shital Shah, Ratnesh Madaan, Sai Vemprala, Nicholas Gyde' -author = u'Shital Shah, Ratnesh Madaan, Sai Vemprala, Nicholas Gyde' - -# The short X.Y version -version = __version__ -# The full version, including alpha/beta/rc tags -release = version - - -# -- General configuration --------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.autosummary', - 'sphinx.ext.autosectionlabel', - 'sphinx.ext.doctest', - 'sphinx.ext.intersphinx', - 'sphinx.ext.todo', - 'sphinx.ext.mathjax', - 'sphinx.ext.coverage', - 'sphinx.ext.napoleon', - 'sphinx.ext.viewcode', - 'sphinx_rtd_theme' -] - -autodoc_default_flags = ['members'] -autosummary_generate = True -autosectionlabel_prefix_document = True -autosectionlabel_maxdepth = 4 - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The master toctree document. -master_doc = 'index' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = None - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This pattern also affects html_static_path and html_extra_path. -exclude_patterns = [u'_build', 'Thumbs.db', '.DS_Store'] - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = None - - -# -- Options for HTML output ------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -# html_theme = 'alabaster' -html_theme = "sphinx_rtd_theme" - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Custom sidebar templates, must be a dictionary that maps document names -# to template names. -# -# The default sidebars (for documents that don't match any pattern) are -# defined by theme itself. Builtin themes are using these templates by -# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', -# 'searchbox.html']``. -# -# html_sidebars = {} - - -# -- Options for HTMLHelp output --------------------------------------------- - -# Output file base name for HTML help builder. -htmlhelp_basename = 'airsimdoc' - - -# -- Options for LaTeX output ------------------------------------------------ - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'airsim.tex', u'airsim Documentation', - u'Ratnesh Madaan, Matthew Brown, Nicholas Gyde', 'manual'), -] - - -# -- Options for manual page output ------------------------------------------ - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'airsim', u'airsim Documentation', - [author], 1) -] - - -# -- Options for Texinfo output ---------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, 'airsim', u'airsim Documentation', - author, 'airsim', 'One line description of project.', - 'Miscellaneous'), -] - - -# -- Options for Epub output ------------------------------------------------- - -# Bibliographic Dublin Core info. -epub_title = project - -# The unique identifier of the text. This can be a ISBN number -# or the project homepage. -# -# epub_identifier = '' - -# A unique identification for the text. -# -# epub_uid = '' - -# A list of files that should not be packed into the epub file. -epub_exclude_files = ['search.html'] - - -# -- Extension configuration ------------------------------------------------- - -# -- Options for intersphinx extension --------------------------------------- - -# Example configuration for intersphinx: refer to the Python standard library. -intersphinx_mapping = {'https://docs.python.org/': None} - -# -- Options for todo extension ---------------------------------------------- - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = True diff --git a/src/airsim/PythonClient/docs/index.rst b/src/airsim/PythonClient/docs/index.rst deleted file mode 100644 index c256e3fcd4..0000000000 --- a/src/airsim/PythonClient/docs/index.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. airsim documentation master file, created by - sphinx-quickstart on Sun Aug 4 14:58:26 2019. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -airsim -========================================= -This page documents `airsim`_, the python package to be used for `Microsoft AirSim`_. - -.. _`airsim`: https://pypi.org/project/airsim/ -.. _`Microsoft AirSim`: https://github.com/microsoft/AirSim - -.. toctree:: - :maxdepth: 3 - -* :ref:`genindex` -* :ref:`modindex` - -.. autoclass:: airsim.client.VehicleClient - :members: - :undoc-members: - :show-inheritance: - -.. autoclass:: airsim.client.MultirotorClient - :members: - :undoc-members: - :show-inheritance: - -.. autoclass:: airsim.client.CarClient - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: airsim.types - :members: - :undoc-members: - :show-inheritance: - -.. automodule:: airsim.utils - :members: - :undoc-members: - :show-inheritance: \ No newline at end of file diff --git a/src/airsim/PythonClient/docs/make.bat b/src/airsim/PythonClient/docs/make.bat deleted file mode 100644 index 7893348a1b..0000000000 --- a/src/airsim/PythonClient/docs/make.bat +++ /dev/null @@ -1,35 +0,0 @@ -@ECHO OFF - -pushd %~dp0 - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set SOURCEDIR=. -set BUILDDIR=_build - -if "%1" == "" goto help - -%SPHINXBUILD% >NUL 2>NUL -if errorlevel 9009 ( - echo. - echo.The 'sphinx-build' command was not found. Make sure you have Sphinx - echo.installed, then set the SPHINXBUILD environment variable to point - echo.to the full path of the 'sphinx-build' executable. Alternatively you - echo.may add the Sphinx directory to PATH. - echo. - echo.If you don't have Sphinx installed, grab it from - echo.http://sphinx-doc.org/ - exit /b 1 -) - -%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% -goto end - -:help -%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% - -:end -popd diff --git a/src/airsim/PythonClient/environment/change_texture_example.py b/src/airsim/PythonClient/environment/change_texture_example.py deleted file mode 100644 index b10a8aff51..0000000000 --- a/src/airsim/PythonClient/environment/change_texture_example.py +++ /dev/null @@ -1,7 +0,0 @@ -import airsim - -c = airsim.MultirotorClient() -c.confirmConnection() - -c.simSetObjectMaterialFromTexture("OrangeBall", "sample_texture.jpg") - diff --git a/src/airsim/PythonClient/environment/create_objects.py b/src/airsim/PythonClient/environment/create_objects.py deleted file mode 100644 index 5dc445d1ce..0000000000 --- a/src/airsim/PythonClient/environment/create_objects.py +++ /dev/null @@ -1,32 +0,0 @@ -import setup_path -import airsim -import random -import time - -client = airsim.VehicleClient() -client.confirmConnection() - -assets = client.simListAssets() -print(f"Assets: {assets}") - -scale = airsim.Vector3r(1.0, 1.0, 1.0) - -# asset_name = random.choice(assets) -asset_name = '1M_Cube_Chamfer' - -desired_name = f"{asset_name}_spawn_{random.randint(0, 100)}" -pose = airsim.Pose(position_val=airsim.Vector3r(5.0, 0.0, 0.0)) - -obj_name = client.simSpawnObject(desired_name, asset_name, pose, scale, True) - -print(f"Created object {obj_name} from asset {asset_name} " - f"at pose {pose}, scale {scale}") - -all_objects = client.simListSceneObjects() -if obj_name not in all_objects: - print(f"Object {obj_name} not present!") - -time.sleep(10.0) - -print(f"Destroying {obj_name}") -client.simDestroyObject(obj_name) diff --git a/src/airsim/PythonClient/environment/light_control.py b/src/airsim/PythonClient/environment/light_control.py deleted file mode 100644 index 39fa0f06ed..0000000000 --- a/src/airsim/PythonClient/environment/light_control.py +++ /dev/null @@ -1,23 +0,0 @@ -import airsim -import time - -client = airsim.VehicleClient() -client.confirmConnection() - -# Access an existing light in the world -lights = client.simListSceneObjects("PointLight.*") -pose = client.simGetObjectPose(lights[0]) -scale = airsim.Vector3r(1, 1, 1) - -# Destroy the light -client.simDestroyObject(lights[0]) -time.sleep(1) - -# Create a new light at the same pose -new_light_name = client.simSpawnObject("PointLight", "PointLightBP", pose, scale, False, True) -time.sleep(1) - -# Change the light's intensity -for i in range(20): - client.simSetLightIntensity(new_light_name, i * 100) - time.sleep(0.5) diff --git a/src/airsim/PythonClient/environment/plot_markers.py b/src/airsim/PythonClient/environment/plot_markers.py deleted file mode 100644 index d005ff8338..0000000000 --- a/src/airsim/PythonClient/environment/plot_markers.py +++ /dev/null @@ -1,63 +0,0 @@ -import setup_path -import airsim -from airsim import Vector3r, Quaternionr, Pose -from airsim.utils import to_quaternion -import numpy as np -import time - -client = airsim.VehicleClient() -client.confirmConnection() - -# plot red arrows for 30 seconds -client.simPlotArrows(points_start = [Vector3r(x,y,0) for x, y in zip(np.linspace(0,10,20), np.linspace(0,0,20))], - points_end = [Vector3r(x,y,0) for x, y in zip(np.linspace(0,10,20), np.linspace(10,10,20))], - color_rgba = [1.0, 0.0, 1.0, 1.0], duration = 30.0, arrow_size = 10, thickness = 1) - -# plot magenta arrows for 15 seconds -client.simPlotArrows(points_start = [Vector3r(x,y,-3) for x, y in zip(np.linspace(0,10,20), np.linspace(0,0,20))], - points_end = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,10,20), np.linspace(10,20,20))], - color_rgba = [1.0, 1.0, 0.0, 1.0], duration = 15.0, arrow_size = 20, thickness = 3) - -# plot red arrows for 10 seconds -client.simPlotArrows(points_start = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(0,0,20), np.linspace(-3,-10, 20))], - points_end = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(10,20,20), np.linspace(-5,-8, 20))], - color_rgba = [1.0, 0.0, 0.0, 1.0], duration = 10.0, arrow_size = 100, thickness = 5) - -# plot 2 white arrows which are persistent -client.simPlotArrows(points_start = [Vector3r(x,y,-2) for x, y in zip(np.linspace(0,10,20), np.linspace(0,20,20))], - points_end = [Vector3r(x,y,-5) for x, y in zip(np.linspace(3,17,20), np.linspace(5,28,20))], - color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 5.0, arrow_size = 100, thickness = 1, is_persistent = True) - -# plot points -client.simPlotPoints(points = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,-10,20), np.linspace(0,-20,20))], color_rgba=[1.0, 0.0, 0.0, 1.0], size = 25, duration = 20.0, is_persistent = False) -client.simPlotPoints(points = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,-10,20), np.linspace(0,-20,20), np.linspace(0,-5,20))], color_rgba=[0.0, 0.0, 1.0, 1.0], size = 10, duration = 20.0, is_persistent = False) -client.simPlotPoints(points = [Vector3r(x,y,z) for x, y, z in zip(np.linspace(0,10,20), np.linspace(0,-20,20), np.linspace(0,-7,20))], color_rgba=[1.0, 0.0, 1.0, 1.0], size = 15, duration = 20.0, is_persistent = False) - -# plot line strip. 0-1, 1-2, 2-3 -client.simPlotLineStrip(points = [Vector3r(x,y,-5) for x, y in zip(np.linspace(0,-10,10), np.linspace(0,-20,10))], color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5, duration = 30.0, is_persistent = False) - -# plot line list. 0-1, 2-3, 4-5. Must be even. -client.simPlotLineList(points = [Vector3r(x,y,-7) for x, y in zip(np.linspace(0,-10,10), np.linspace(0,-20,10))], color_rgba=[1.0, 0.0, 0.0, 1.0], thickness = 5, duration = 30.0, is_persistent = False) - -# plot transforms -client.simPlotStrings(strings = ["Microsoft AirSim" for i in range(5)], positions = [Vector3r(x,y,-1) for x, y in zip(np.linspace(0,5,5), np.linspace(0,0,5))], - scale = 1, color_rgba=[1.0, 1.0, 1.0, 1.0], duration = 1200.0) - -# client.simPlotTransforms(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=0.0, yaw=yaw)) for x, y, yaw in zip(np.linspace(0,10,10), np.linspace(0,0,10), np.linspace(0,np.pi,10))], -# scale = 35, thickness = 5, duration = 1200.0, is_persistent = False) - -# client.simPlotTransforms(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=roll, yaw=0.0)) for x, y, roll in zip(np.linspace(0,10,10), np.linspace(1,1,10), np.linspace(0,np.pi,10))], -# scale = 35, thickness = 5, duration = 1200.0, is_persistent = False) - -client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=0.0, yaw=yaw)) for x, y, yaw in zip(np.linspace(0,10,10), np.linspace(0,0,10), np.linspace(0,np.pi,10))], - names=["tf_yaw_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) - -client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=0.0, roll=roll, yaw=0.0)) for x, y, roll in zip(np.linspace(0,10,10), np.linspace(1,1,10), np.linspace(0,np.pi,10))], - names=["tf_roll_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) - -client.simPlotTransformsWithNames(poses = [Pose(position_val=Vector3r(x,y,0), orientation_val=to_quaternion(pitch=pitch, roll=0.0, yaw=0.0)) for x, y, pitch in zip(np.linspace(0,10,10), np.linspace(-1,-1,10), np.linspace(0,np.pi,10))], - names=["tf_pitch_" + str(idx) for idx in range(10)], tf_scale = 35, tf_thickness = 5, text_scale = 1, text_color_rgba = [1.0, 1.0, 1.0, 1.0], duration = 1200.0) - -time.sleep(20.0) - -client.simFlushPersistentMarkers() \ No newline at end of file diff --git a/src/airsim/PythonClient/environment/sample_texture.jpg b/src/airsim/PythonClient/environment/sample_texture.jpg deleted file mode 100644 index 90812505111c61e1e639b7794c4b100d693f2a77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1101411 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

9s|PykJKWnOoQP(%d)C?h-g|Q$ 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

JZB`|Y;Dh(>&Af0m!5bp!w_V! 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 z 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%0D9Kok?HEYCGvU6*zptBd>c&kg}*J|^=sQ{qbagu zd6JFJXcQz+TVHSGv}!LU4;XH^hd-N1)u%7j)Di%^CKFZ;*@JiYdw$1jYC1^$n*_Ku zT^)0oX508kt!Ea_zy^ew0sq)mkAo4j3}N`RtC#YY-s!#4IqQTo-IuBKi0k%cQH>&O)qC`t#_d^}F|f z{}I{a7t!OY4NoHf^D{t*_6>>-5}#@lF0pbw7-huk!<}*@R>6J65;wXgGj8zktD85H zk4s{v*LA++W@?yO$>Uowa#Y=wrGg%hz4PP;&9KLbjOjCNrRscm3}VKHKU47Ta7ESS zh!<%vo8);OVVKXQ8ka8z%$S`@;64RehYcMi5*eHIR?CADACYDY*?YdtyRaS`0IMs5 z8UuV@WIrs3)bI&2h87vV8V>}moPoC#UE2Iqf2=03MNFQgv|j)2{~7!;57vS8IeNHz|Te3lnDJ$^?@-VWS!_?-*;pjUB?8BKiz5_nywrt+7a zDP^w=-)7UVIs6|*=i$zF+lJxpp|+xS#U7zzm7*=N5-UM8iP4%BV(+#(>@7xYY6LNB zC3c4`v^Am#T8cI)O0AaG`{g^1{0n)0&;8ujb)Fb=RC$U`a@^t+Q60nOwD&BPyY>ySm1wSP6K7Xc{L>5vq-u0G^%6_lyhM#IB&&hAe$}l*6~96|=6R^f z`a3hu112szbTcQGNHlA9ebK3z${RLHs14}tEZYEm;nXbj5M*zZ5`zqpw&k_#hx}c& zdk3x{lXJ7{g&)Z$PZ zGP!pE^}ATnX|m79Peux+gmU|r?W_TL-zyfOIU&z%Ed>37s!?@m!rqraX%;xE5-1$$ zQy}_#6C445ZDG5=dpA-7E`0F+^YBL?W&*Q^zBcBn9dvx6ATy<+l*ta(PVBNFNmntk zRvA_I7z-rtqLi1(7vRaE!BTl6kciLzr-m#l3WVGrra$NFSyXTia4sJ_U7e%*It1#x zzBjm*>XCf`dHl!ZM>(2YhZ<{2HZdIpbT?C%61ZarQNa zQke%1&uA0v{YGe$?u?moXCDFX(^KuF-`QRWOOpGmyMCh;vzPgb3@tYr`MdZ!-(u%L zFUjp~;0k0J$s8&y`r`2F+;1-Fg4n@ALVx~5diFV&s-=#f!B5nvxa;z1h=_{P7Csig zK5buSI#)N!LBc?G) zRvi&}q+ocZX^V9)x=b?R51dPT8~! z>XHJKyh^O8=-duL{!oBiIDl~fKt(iI#IcwV)+IB+vE1$Ge_BQPs`Vj?aHEq8=l3S5 zNK@Wt>}{X3--kGINMkTJV?1ZMUq|<=vSbaW{nBNe6*y=!F;C@EIKwa8z?*dZkK!pq zu21pN;GN57?|5o{3lWl0W|%go^j8%Lp3jb_;rHTT~xC)(?-oq0TtY@nphruUj`E1 z+vj-e{>Qw04kf<^6Vc+FFq%=v^)X`}1{V6TarZu(ZL~-FrPTaQ^TKTWubJp@+m_+j zl4F~fOrZk+BrehgL50^a_hDZ6ofPv|V-QJn`L>}qeBoVO7<=h=Pyp%NBi(aD z;#0De(L!p^`Jdhci#D;&){9$~&~j!a%6Ic3i|<+`+B#>lo5x+rNK#KZF?`P<-+SkJ z7|nY*eQRpxcc7_nxf*G|O;kqKKxM3r@AFco-{^Z;@6p!l!zAHg{+~v%+p!B$lO4G9 zk{OR0JyT^Dup6z_6-|=A3?8zI$2X?^w6Cj2DSFAy^!#^f>X>L*s+WJ!rq+~>MAU44 z0fpNnVW0YL+7V78dR|@>dmsJuzf)-^)(6lVGddEP*+3XW{?IPJ5_sOGSe&&Q6_OT% zttSQpR#sv}?ALDY5y7(xKIQ)+;7%evVf_|N=*Y>P*++i9%eXsHjOc1lhdv=0HZy25vVY5;O6KK1k5 zxHs~y(ZgB3-2OJ>5uxx4-Y}+9g$ox9?x9+uFPxVBh2!E#BKXA29xUXg$Qx7v9i{TW zj7tKa(ozFTlPTL^xs99C*zVJbb=&%as7Gnx+4;e#f!HPMr(z&-{`;W1zP3Q z2Z~5}LXU2O&o7I8?`X94@M3SiJ)qnH-fxb!zdPL7#sonXOPuE|h7&F#mZ?9j#hC>K zx4zW++X29Ko3izMpVSg2?aq*8$%0Azjlf|@GMD%urP}PhdEs?~V~a#mLs*+!4)G5J07(v%Ew4 zL4w#PH?Bit%eQK?ypLC-5EIm@4;@m9Y$WnBMI|-QXF4UX`2#ZglJV1C-J} zul`QK^pd!M#eQnl+#6>#E^(#{9cEpSIU#xGvtR#zr|Na-B$anC)NY4?L5E}DSxq0+5?h40!$rF*n%>B7ycFE1a2 z<*t!y5o;zL-bt}^>+8zQ({v0&Ra_qH5pGT0loI>i($24_#~knkm{P9)PCX46Da>(? zNG6;-nqk992)G+|%JbJyZtg_|CC5OGhMGl{WaRnHa1HFX!T?qVjOt{mv}P`li%8ve zl*cTJEi_}sllj}@D7J|2Ze|ZxiL%q3HgA3CAW9WM{f_IoYTHss#v)KBa|P;p8O%~H zz&9svXqctkFh^2P4%$UK7fRecjsLlo-*!P`O^C)t{fonpK?XD50!9!;oBy41T=j}Q zEl(TG;v5TxfPUREy8csuxijJ`NoC#%`T%uNHTluQolnQ6yrqe?{d*531i8YVj20)U zM8$mJuN0zP%X*x3pf>#}G4+CN?4lRIk7CDicKMFrxd(#%*5+|##Q~XAu~5jv4*M}! zbLXVCTS-;1S0!GOnladqU6RkGi^o%JY&AZtB0x0X*jJyqD`(j!|2w6n*hZ^G&(x(r zaKaSoPx#Vcy}@jlu71*Wb>RcLsc<`QP1TF(s3fCR1IDjoo=?QaRRQ0aBH}j@07w^p z_$0wMVp#1pecz^)ugIz8OL;O$LXKaJ*SJ>&>ZT%}d4KzAo3Z6jqdsn1YCJ-V)n25t zSFYCi$U}(RZKXQi#7L6ZYuSkmyek5ckWEYA$5s<{ugwr@7b-C`)d#VK-uka_5mpr2 zqLpk_*+;LP%T-P{pH49;lQeOC8#`=5l>CR58LUNTZH zL4TSunX%{xA!g26_%i!lLk$iq@e)&h$_dsK#lTF*DGu}{>x0#S5ZuT!bneqjs@1#O z2{s+T`dt zj#XkAV!0pV#AZs1J!+eCR1bJQH$T z5>O?Ae8l7Zv+AqVC$4CrLN`*-M@zueZ$#+bP&4W)PJuPxz*G?o%FNi#(*_EolY<7~ zyX#48q=z0HA{A2U4E!?WlOg^Ya`-SXfd!Kh`N@}!A!4(={}}P(70tHL_ufoFT>ovd zWQ)Pfu%9tdqL$ibqIUmavpFEBw>sEJp?JA$>&x|Jt|#`cD6guoi>vt7rkdf!7DFWG zFCff;S4a&kkxj2>MOmJ@J!nJ3u z=#X`}7w;yrjLqDZ40o*CUXW9G3L+oG|K+@_@SxhFe$XiiZ(75-)`ni=i4IC&pGI|@ z(>?769z=yC>I%8B48@=C^HIx|1pTfbV@qx78`)J%vJ*F~(Qxa1d&w<#5Xqc;G8u^b zO$ye+e-G9RTCu41k{91zw>giK?>$Uu6_^rnc98mzU(y0z8|ZE$+V|5yL{Hj!{zE`O z?A(FX+Jdew1W}6!e=mtSFaF0l|7H|$zaR$}&!7X2c|G?`j{_ITDmpc=wD?eknGVZI zBWgKGN!)b!`*lehvyC}lm%&$=zO0mo`vKN%ujboYp0AG8EHmgLOv!U<-wjnEk7@&+ zabW!_3z-}yDnD&zSkz1(*Imwwvttug?ZZJ*-D+_dShpOyGbWD2?k@{Qkw$S#`Z)^NU%FbSVWWqhw3cyuG(Lj?W-qOiA^ zf#|;j%8S6Ex%40AuQ{>rcX_}3%5z7Z2!`J7ujR~VX={v-AK9xj{IZu|q$kx8qcJ_< z6QwU`Y?E*R{CNvI?C8l@MD_E9^HB|UIDT2ZR!IAyUp^X$;bBPU_rNO z=tvtZqtr)sIwbKW)edO-X3RtvG)d&KX_894e~=+e%9+ivc4u{a7FfKp#&vA7p?X1M zj=d&mE6qu={08pXv&kaE6Yc^_?`R2Be^Ny_3pOv_)5Scn)>(Ie8z@J2UaDv7;g+9) zDQ13?LlN4)P189)c(RgV>cQz&-KxWJPNVruPO_mtOS7w6mBk`OEmLljHvoBQ-9QA8 z<6!PAj1%q;4wU_u&~_3_xl-_~wAL(cTznU(IBjXdNG+nlouL}ijJadqSP6ZQ;gG&T|D4^6~q;7c=IU>K)(r7hKXFNnnR1NVY|l z@7+IjiRlC9hoscwhgz5#M1?|E6~;oDsh*`7J*fh-HNNHUJop!u++Cm%KW0!wv1kXY)d0^i@*efvLdgjoaX1-*Z6hqck>BF zT^$m!R0^wC`?Q8k5W2YVRaKlzaPO$LL}${5@<@#JPx?^SIp|V;o6>l3U%}bp#)6}& zdaJg$3)wgAY7x|k^q=>0fNqilb9Q-r_VUxg0gT0rhxkWO&HHx@0LkUbI@685(u^U0 z-~9?_5OCo0=bZe3^rhVW%bx$@Kk|KfeqovW8`tsGJ)QRgV(l0HoPL-BfG-rZj%O>( z6na;Kfw?Ir5%BMB!b7>&SHJKTmolI`J<*H?UFkd>tiNdP&Y0G**5fKa(w$#Lqs_Vbu|UuRfmq9PN!A6yLmlher@! z#C*oN`SnfxEaSLEoUKCJ6m>JnOBL7QFMq4sn3>iXo#*x$+%5z-3x>)hUTTTtPY}AU zw#Yr{$oqlvj`Szuig1|9spmJ(EC=Nb*5;VW#ou+lFtXOq%_W-g8<_7sj=Hc}b;>e< zQew9cEz3sfm!3 z=FjH)@!U&RvGWQ1XTsB<9k~0Qxen{azL(!B;sU1HNQ>az#udh06&W(zCrT~{7DOPr zSCUqP@GD}Y`BbSIbc)Fpz_g>-iv`mf!U*_6mIUy2o_bhpe+O*L^RAZS$DNI`dYREk z$@V_hFOvcS0;X(ZS;3<=)mwX;RWX8^Ar6wxB2Mzy^GW_0RMbAOpBK^sYp@j?Gu_A5 zv9DA_#Q6=HZ1THizWHJl9g*~|z#P@3`0TgGUs-p`g%dw!eZe80EC2s*ON_QnL6Z{VR8r`3U(bFdjPa-0f`TmaAXG2fMmaI8=eNXn6A( zCd1k(f@OGDZ^ATa^ItXV&jbqaT3dCe_DH_TwDVjCN4 za9FwIQH=bE>SAr5SX#dC19uDY>_%RT5d%brNA7ibTi0*i2{r;TQe2@}`~0B}-@9kVLb2TA zK3y!Wq+w07@4B|8T(#1}RGlH4=46CtX3dwP0o7@lQAeqAZ-I#}J4?GBb;bOOFJuch zxiG}gtX9U$XGP8+`5^i)6o=+be?nvf3T(4!Z3_}kl<1Jb8AMCSTZbP0u77pCa9Ot^ zIRYGE&6GE^i|aWHLaVJ1`M3N1Aki*&Ki)kEzRvfxA2E<;5*N}Kk#)pMNZ=1O#iYe{ z$V|^TB-PcfaM1wsDUk93W7gnDMCBgWd#X+#Y|B{WgVgLc0ZQR^rpE-+XI#s7VZKB5 z<5SI(nb;YctBEId)R5d`$(OOw(-(v-B(!4;B@HiZVfW8$t5)XXmn}*4^@UxD*B0>Q zekRo_qS^P7laTeegQPHOe*6(Bg)fBGmFK5)uS@#_;!y-7ezU;ClB1V&{R5&1{W!zZ z*_~Y>7Od*y@>#&`4`SfLgYtxZEh`HLEp}>(Y@W1}_h>jY6cJP7|uB0%So&@3t z(f&<=?{~>z?;BLO;rL@E_0~woLLz(j4&(E5#Kr!=n!e8QzF8!vu?Fc^I0az-B^=Co zxNp`823BwHwo~OOpbI~JB-UGUp#W=w9q2)~ zq*ej6%exL9U)`UTbN;{zscFAz#q~9}_NVXnQFof_d+LIpt`^H%qr>jo0K^;S_~2+vY^Y+8TV0$t!PIRLy#Gqk zt531E+JzT2OLFo&c`NYP+S^7`MTLPcl5MK%0zI>}N{!ZG~D*F_v8rjFsCz6)UV-j6+$ zlvw$HG+6rOyNDRFO|$HXkRwAcsHjorgw8w$n|?&Ks2G# z(PVmncOltJL=pvtRo`&0ae@pzrCTQUobnq&g|(0UUGL?Pb!Wh5Wfq^`{n~6D z8})0;-Zq zhB|`an5?&K$qiEQW&A{Xt&h6K(b%K-HoO7Za=_amH(RJBO7e?YnM%UrM|j6SSg*`~ z#TDV(!x3c!zT4#&c><^_4b^E?E5*}w8LnFKyq_dE!(5!0D+NR@k0SrIY@zndrwFi0 z+UNH*^KNp5`F6&B&R;xp?BIlZ8_QeQnr&a^4u?Lq#l!q%3u5#W{*H#$1_Eaz#dD1s zE_3X#tgNnRJRp8c6nKu6i(C^ZWvn}2>$1O=b%}|Je^To?4> zI=zezApwWUg3<9%Z=>>6GD#t*B~j?U+RGpF<)tfrKOX%4cJ9Ip_`WG*Z_(1CMbm8M zY__pab>jMK_C!N`pz-Yxx*S7#aQI?&#OrK$PDd1SZ|)z4`0l}`P;x;4C) zxO7GRgC7n9tR5UY_&8=F35)I|yOP>~lbUaqIcIL$Rrjb-7V59ISz8&&mGbl|g(B)%2KYN70&VJ}#y{5N8Y#eGcuBD=bX#NR1%=3BD+jaBDy zSiy^OH~C)~ZOU0#Yu%cKs8|EQH)YFBL=rdEt@}E*JKE)6W`7RiRwd)Qn#e-0>wdju z!owzyn6dt#6!jn?YHZM(#%FlB7Yi8EHR6Id#>u)pGW%CqFtDa!#4h#qsm?Gt0#*(>?;(7XXGGSV=8@ zzP*F8Yxoj)CuZ9))%M!q%QGO4E*s-R*>Mf46+fD;S^CFB(7Ha^)XjT-v7}8y#(bbK zXi#2t!<{wYUCQ&z>>C84;;g$sVGH4sQPg$O474Kx8NKP!A5XDkR!Vz+jT{(Of2{k( z@Ozyx*X7J2tgp<;6HzebL?3Y-Gzw;td}mS(M6^yu|2t(XS2?&i-83-l0>NAx)N|Y) zj}XJ=Z~Bj>tOup1>3(L-v>VV$$xr-2Bi!|6bla~uG8$5quun~vQkKT}zAT>a6^4Lz z*7L&yhBP_fY%GPPmUrn6kR|t-5EHGhvok@t3E8?@e|bWivGDb?8!uHv^Z0Gx*rq~S zvL1fj&|LjnZ9W!+2@r7c-{{r~ItrPP`t6WS8t1=o#Zc=iJ*kN?j!PBj#XjQ2~88#A!(+P`IxMuyP5+k4b6w;@U0gu z&({!R@ez1B{*YIJ>0_M^zI5W2Ij8}BYAtWos|{TScZy-t4S`*MWhe69Ui2}55yZtC zO=>hB7Xoew|91+6%DK_rZD4;8zt28tL&Y1Unhb&s2U*cqdrNz++D39e>Z;6DZ&BtB*Qiy5`F%!?#N1olK!ff zz6JB&G?LtcSVeh=px|>&tIS82(K4Zkhz$H^!|YF-=M*OO1l>NGS77SVYv&uDT6RClhK9>Y40hgIlNF zQ$;;=yIlU+6y)mSkv=cfvU+Yc?;2=Y3HZ!ty?Ka2{8#~wWM!_abv z+Mjvy4X@}C6#kK2XdP8z@|FWiB~5{t7O1A6D*Ah8t7ee-kV+PG?I-fp$6sMfTT}mf z7&su6o!1^;KgY#R)r~h<%=C3d#X1!n)aRcad4I)6fG@S|YIb$wJk@o9%|LtsF7o-j z`2~iJ>6_7B(TaS=d0#oZ>u!Rhx9dLJcH)QIZ#>IBr$+w+&$APW$Li{x5abB&D)zzR zBKjFrL>qv?$a)`D`2wB=OHMX548NoEU9U9f?S=lUyMLye#c6U+N-%Q=^Hjx!^Y%cU z^6E%tHA(2pMNlJ?v#OeX?Wc0_S6+d+)<=o*dzH`!UP;D5gXJW&ZI`DdiR3TslfMqr z9RMtl&G<$&g1kY8kZ2IvmsAgZS)~GegkNV$`1)maDzp=EjCE40M~iU3{1|4=sN0l3 z+S)}5*?s4}TB(-^ij>paT9!4v4>;sZQ?6kqvdDU-fY|!N!^Zd;+s3eUZRmkK_`W-m z!X0KT&$X)kSckYyEa&lx*O3`Bf2+I#@7B;IKMGblqm~+wY(kbb#9ru^cws0%JXn5@ z{#z!2g5ZxPl$2EW&dbzDqw<#CQX1@3_TwCUMBui*1={BveGe17grghhPGwWS%E$+6t2JCWa|Mx6HRX`oGO=_aLC9CznQ?ABy@j_+u4!ZEg@rQ^UfQUhD zKPuD4Gt(Kke>x(GXt6(+`$9?7JDh|0sAJP4Sb}gKUvk#zcsx?$dULL0w7dgZpde4L zuy9!xk$aM2c3J1_HG_cp&*$?SlzIH+4}WJ%``MCeuh^ujX*1!6JTCjJ zucbwH-QFYY#2fK=$SoIA9lUYmCPy1% zBC6csuUxCaXWQEp*5SE*_vR;tCz~n0pHZ@i4V7*k6IFmLzVUk}0I3=y{BC76y5cO+ zQ9{yj+TMe?*kD$`=e>4TXM9|ns~Bs`sU-o$8O585&rh+t$R7nuf5fk;&N04U=8Tqr zAOHAi&dU{IeB+aMvWanmz96_Ghnad5Ywrp@?^_*fn_O}Go4VYx#vhfWD$utIsBC zPTkp&$7n#uZXAQMUcblS&fdQnjLtr5#pXhAmmKPd?gG^tNdZxAl&-FEMVl_w9(V5< zTaU`}Dw9J($v=UBGk#ahyhI4cGw0*Z5~xD*@i`&68)b8aIrla6hV0H6C)}0Cu@Xd) zyT5_cqrKNZUQW6`mkxjGoAHqL?~Ie*a?wq&?ro1AgyKjcfK;zD0*#|T} z0Q@6iFWt1b8gh(7YhWnY*lzLC+>$-y)5;CPKyBH1NV0kJq98N$qhOzs?Ec+;68mh( z8@jlV@z;G}ed}_I^g!QKdWJa%A9ASXjy>$tZH^9aYkFUgO`x`ptZ$u!EqQ zv#@E{jvQlb&Ev*xSJK#uu?SOZGku^jmNFkTQQ`2X+dlhoULJ6aZ|<3Nze|nbLFgfH ze#|xSV!+~-RFg?W1bm(rS&#?%boI56j|f^^z=v_Qr}Mv4I3HW&pwb*@5}B>(^WQ0r zs!an;wk1bU6Q+*X<(6vqc5xdcNPB=aRBjPA-gk>EgZmg_A{rL%c^CSX~f1`M^ ztzlFkRebtZ>lS#xm=GH!YQQXwC{Drn=bSw1M#~IkC$(D>M-IX}8|?+eRMt+Y+8=*p zQYF?ZlHN5_&t*Qg*i@M&XVl$InLg>EtGN$LvlNN{oKK~N0;>jErdnHv#;scy=V=iQ zc2#x+50CS6>^8rKDIxxQRrN?B$K?)rs}2q#LN}}PIsLt$F%fIteD|$9)YDDhDCP`c z)-z9PP{04}9WTpY#MTkbcPlb|TqkngyU_9wdyIGdOpEe>lBq{Z*Kj$uJv{x$?RaL0 zt1CyncGS9SP4e+$?oWD4+q6=6x!4L)#~q!_)(qnm#M!(Kp!utYyLPvS2}^LDE{_y@ zF}p1Nqb1DeR5m(+Tx-QJrzwqNNvp#JNiU@CR{!g!Vuzl$Ji?wdw@pe^7C{^e*`@>8 zN&~oVbN;s37s`HH{!EL@EYVH4ZL&!H!y>Bg<9?y=SAc!(0y^P=m+Pf(f-{o0;%)Zy z-WJ|CH<*!q4x{%oEdp8D=Qbp5q!yczikrm0Hh6$zt+_#2N7Mwa)`o2LsZ2>>=5DF0 z5({f99d0|9V)t6ccTSJmS+Wwjp?cyeUtW&JfUNS~){O01fhq`=uQ%Xx_xA2!K=o>e z9GkzN&{sC$%Ne&qWgWCbMjVyzd|fm{j$MgYnd1I^xLW<$Y`pzq>AUG$Mo^il5WbbS zy|(@xr&*(4cP_Z%n?Ky7c8sy8(2n8XRoTWDG$YOe#8=oNon9p3wA{K|p54^{#?8#o zdavKKq!mVoJ(H3snI)5vJ~YKQJ4D^K=WSmc#h0%!gy63%VUyF0D`Vk(GowUcu%atJa*`c2e!noqZb4zq-!7uE)Ws zbp$DC+WH1QLp_8Y+djI*|8&iG=ag^JqmK8w0zm}w>6Eqsfrv6Va6SW_`cb!VL70_Z z0fnQ_3wH}W!ZmW9)4F`wop^QJ-1_|1b;cI3iK>K&XqJ##Q0)T|Oqic;wf2!=0GCcR z8sU6eAotqZXW0=xBFR+Xrkm4$r^HS5DrnA(v06rQj~wxgce!`+=vguNT=JEx;Jc&w zN$*OG@L#1!uzmJb>FVis<)~n6#)63h84!LsfO`j+tMsNgZHT$0LYc3mNqw(a9GY6cHWo?q-du> zD6qWPf>7C64|w_(_epqN8%GPa_@!X(QMYWd^w=`#bIbw^7Z#EM;3+Y_lyGgP=$6Yd z6D2*nH=d}FDll6AEDk|@QkWeyONsyIm`9(Nn#eCsZp-Xra*9yhdZt}wb8zpZhr4OJ zNFQnNf2S-WfnjS&@6@I_X_EV2-Rj=m+aZO2GHnNCwf`FAphy*D&P6-rXK&w% zUmk>^9Tf}!1DRMx{lzKS<6d2QEuZ`Fk&b;>7?|C244mx+YccHUfxM8ut(f!&W~rZG zLNO!c{FRwHl~(@U5>kZ5qdM514DuirxUacQRXQcWan|0|3FtzFmbEnXCiqs{W>Q#8 zs|yeXae&k>z84n##(_(Zmgw3#{Kr6h1N{7QP9H5A0lo@S^qYZZ+n;Ha zV~Yk&W|lhg^WZrYr)M=B85yn3+@~J z_{r$L&l_*kSAsUL?P{(5!fBgbBhjBY0Y5{Oi=~P3TeM*BQQSATGp19F@Z~Q|H$gWeXPvF3`P}N9PLcD$kaAz z^G&lOK<#X$8`zN5Or)>#IT($c&#*Z7Wjh$;ex7WT^d%uB#>dpbez}p&aKvw)1?{(9 zx%m0rF>=tuDmTG1K4a~*WsHclzt44ld5hoi88hvYgZwf*`R32)&V9;# z7rsKOau1?)AVlc_x_CT6z$)<$8e&o!sL1i4%IA;OoTjXHqT$b~w>pDp?z#xsxk0A0 zTP5xWWWX(dU|Z6-*dTd??m>6k%=irK> z?1y;Jf}@htd7xC6Mm#QvE}ld5iEAY?+oyE&W+lXE~J%_LD#yu1)p~nD}!xD zNAKV0ME}@mg_H`rBu2Xo$$iT`DNpH|$KwhhO7G5vLvch}WUPXV1gGUh)WX{EHEzgIj#qeJyFHRo^QD4ssRVJ4d3)m!?V2p8^S zzNdTrw|pTK-5sjfu9~+4PT(Ag0$en$w$YhOdYq_D%#b_ajaW)CDuOd%UL|HP8qUVR zMV@|}O_6H4d8aj;_gpCJ69si=p+KxjNZJ~-l*H>@&@pyNcTKDf=-jNKb{|H(d>O0M zU{Zf!{ETA!&E*b3NQ`oave!uVFLpAIsF;6nP_{1BC^qTpZqy~~(3=#@c(9HsM@#=t zKX7PR`0)g<&TF4s<;Ca7Bj zn{px)5XNOmSI(q7l*oy13s=l9asHaiYXCD+QGT&-pJGq?vU_>0!~2mLevT#2>`pZr zq7cG&r1U4fTZLc}xPS_lhtEfCCUjZJ+r%y0io7)2ro^CkMM?KK+_F^iMARpQ<4sty zWhpihfi?-vKJGWp`i_@<1F9ehd6?$RLW89GXSiU_<4mqn(xU4iz*Pw&!raZ9bOfu= zk|>WJ#^+|Wg;v%#D*}C#U zPQwR&q>#Jg<7aFb*2RiBnEy^y*4`RrO|o~Z0c7ko?Vq6Y1_U~)qs#S0>vg8F_CgM@ zc+~ToONKyH+f(pf377lD`Ztc;rB|PVDl7zTdx)9=FyI-}Mge!`#n@pdwYV|GhD~&y zCTPP_CM9RmCV@^k7!MjD!{iyMrSZd&SIUyLGPprR4J00>EGa!r(Rr|!zRCFcyLz5+ zq*1=FMePVp`|lKLJx@xgg}>tyg3-=Z&4Swb=q1Z0}k&F+tjKrbAy}W+KK*2y9JNk=4Iruvj!V3BLT% zPqpq#m6-9~`>)y3kXAneD^a*r1N-iOMqQ`HlbLReT9g%vtxTxUe*M5oX)REiYnvChUUG4Ha zo#>WqQLO|U*F-;(mR+B}LV;%V!!J2J{n}l-=t#lgq^^*#DYDR@k*=iPQLtP{n{BmW zZES$baxPtV|4Cx&K}w$b{Aib_Y{uNzkzK&iM)i4%p7{t*CpDb@fIaPPZA>2D1{2g) zuPdX1_jr{VVIy$VyEf${quW{F-~8yx%*L*WsFcNfn?@((8TSdwqAZ>uw710wL~NR+ zw+oC)EdMffQQB7zdG`YFl4NJ@iGZ$6hgTI>LR&~zdn?C`_#-v*@+v_|POI}EIfQwIz2H8yltaLN*X3se7O@2U@`>ccV+{}IB_cmi z#WyrY45@ztNU{6Zr}OecooAzxz$us7@MV*|4q8EsMcj#f z`CokZ{Q?ZOuP^+4338VYSF^tNy-NJ7hXcH19j%&80(@nY<(1l*&d+dQy!C&fGq*m+ z^8)EZ<^5z@3*_x83RiH=4O%=Q(8zOXUHbj8E9Hf3Ab?j82X)53(diD^0N~9l+_S* zpKLw-jq~33{K_&ul>YCO_Z~Xczr)xBPvqD)#W38R!`8u8&yLE+-D|kl-lQ1yirHr1CEQlHp7*b~b08X}-b@}f-)C-VjJjG( z9f{608H;%ovgZwID9LI)lr>u&=0nR|1pbwu={i~pKB0L&=9%i$y3$!4xq>d~2S z`>?dG?w}E!do9;o=3Sjt@EJc3ATvmnd{}&xp(5tbT0J|dl&9_JP-mHtg4fE1JBC8!`9%3XW$Cfuc1i7G-fGW^T={uDC zx`b$1+CDsQWFLUPZ)5-zj(5&^%qGc{!=E%4m}0%b9nQ+9(zvx>XPo!0dX-C(aL`9_cJs}PDI6;?p~g+ z#-(#kb)p~t8y-7%dHNX<#;kq$cBnbX)lRVUOu+!+RB`1LgcZJ-c~DZ)`!UGB{f)f9 ztVb+2T@8SsKatc4OV5q=<(6sv09r+8;NrL=(QNhDn;#2qO^{Z6&nB!m_sv`%)%r(X z#!FUXtNF9|w=q&BwbuV;t1zXe>-Dlm@|eQL%EVfw0h0&C#2p|jt7dtLhtm-*yGPww z$}sc`cY2({ zwWT#uph=8Avu zk%8SI82gk?RUKB=2aJt2I$O{K(#N{dIMfvf#jn!)7o`p4Fc}I)2nspqETGmO0EF!x zp7fJeM#v-46yHFii3Bp3GvGJiwNWFjDERrnO06NY@&Wx^WLx8qO?Df!#~B$^M@Qhj zn#ds=!z|QJ+!cR{&*ZOlyaaq}ez+MuundmC7{hDs_oHG%qSD?IjJg5Hejp-1+^ZT#3)XQ2uD*%DC%~ zi@-6J^)<+yWN4LtfQbUa>)CRTgzIunlOfZfid;%)X1}K+vmo$# zLT_A0EWABMM+;0^&#_OOYaXW;VkAHUS3`awRnk9-A;N=$BjBffMo0p-Zvb?B?jPWR z*Ia;atia%H`Ei!y#8yh}L&kK8DPMCxN?KRy7m*f^eUZ3Ypy$TLjCzr}k$P`@bx#0U zh zMkwfjIK6CX2JKaC_B|(wU`e|5Vs3qDsy`*9KWo&y-3p)i;^f{*5LUP4}rS*$e1zMWU_1jH(>5EKa4=2^Qb(2ZeW&LKg0)%OQ#UQTh}810lLVLet_BUY zFs(tSO-p)S7N1z(8ekd@5dNAW(0M-N+6+AY#8neCIbL#&DMuUkHZpDA>vIqj0?5gS&7}Nestv>Yz^E=p4?izLLKe& zk_?Hyhx3aw*LxL_5kl+O#N`G8^;NEBSM51uDDgaCrj+eETtCtZ>_{mW;EUpiFi9)K zAkVXXW8iW5WPa=0kTbC5DVVW;(8(H309)Vu@Jn$GGd^|lZ+MTw_iZMWf6RU=+#BH) zm(XzvyLec)S>XPl{UAlAqCWyZp9`1j@AoOW&Nt@#G%O8oLKge=}f1H;W9#M?SvciKZ?%7ovnur!>#UGjn-bZM}<;*bRbrYidBNv zCM1YiiVn5+NNlaW+a@Gpw6#a55>b&*yP_yHTlDwk`y0-6&bi+AeeV0&o+hb3N^Eej z$M;0mp#FL`sftT^MVsaGLKNQ&gp$Wij&jciFW*txYk03YwQcYI{4#cy?x!tthz_twhQU$K5X`X=x)TUN#~<_K5`vx5JUmp|hRc;RU&C|=lq z4w~kK8B9)1%X*%JmpK~EaSL3!0=Vz4A~+L2*$8+^LDBo|J-XFc>cpDEWNq7}igWNC zc%(Q}j6K7#Q3nSyc_^K6kN3AN?i-aOiFy3XTF4m0`%rf*@mKK5AD9AbtZ|zYskh&5 zI9)jlsnD00#6PsdGdq{>ddRHAAu?rA6+eO4Et@}vy-(4coF=)cQhbVYg^|EpX+N7 zD==l?Zx)$&kb(#_$1M5png?tZsX3Uw0g;?$)X5}fq<$kuEfZiA>SvA!t`fp>tC5DQcE zqWg7D`Y4!tVk9U?u!kgb6>Mp`Ak^=^18MW2Ge+~O>8Xt`DR`rQu9Ij;0awRu>Ign0 ztY+j98FaBo{oDGogL~?Y>2GpTZ|*Q1od6mQdTB25oZzR1wVv&qDUE$y!`dI6k}^%1 zhrjEeYeLG$$p3oYDF1fj0@2N{mWRFG+y=_U^)P^O9(}2LO}L; zPQ;iPmf_5tY)swHA~!y+h4tfHexYJ8ztTuhzIB|K$YkYpR2wVBgg^@9hD=brfVcAK z0))Z%(8oxX&lCa89!)^17-S;OQ*UZ{N#1V1cp^P3f(qHJ1v*}r)U(g{Ysc6oFr)C-H~n!jY?Sq<&*M-o0)xA+y_NecI+1n0hY+Hm##{_NE8}Ts#UB zos?h6)L}yDEh%sy#&NgP#G89;+gDT*UdI@$0B?fK%90pkMlra*M8odkZveWx zCMg_+_d!gqGyU{vf0&L&4wJ+}sINb-18y-`R0_zTj3Mtr8gzT+m0-De4 zGvgbf^GD)a?*QdH^FX~(!q-@jYP7{nxr*wj%}u`K;JiWK^}_~op`TTrcV=SV3+oU# z_3^1(BNZz>U1$IzG=YG%WxWS;M6s$^N-v(<+`3v}F5~#dBVc=$kk8e`!IobOQCQYy>Y<3sgEat8X|0PjHw$i@GA3U?5 zQB}((;wqER%7rTSPql^L27*Jza*|bb_Hwb)Z5FS$%DMs&tgdha#36Zw!m#lu+;fSasaF zJrqIoKl8QUTJE29OA|wcTQJ84jB|a=s(2V~skJehQb~Z`6A{jf$mVtFWpR5*A}=z4 z%r)pWd5z#}VU~Xlv`G#Dl#~wy*OR3OA)keDviUEebOWj))0;%VZYrlP~_}8lcMg)WTjap3+wV~ zyLb~PSa|WH0d{Z4#Or15_g(|KiAchhOSzJ$pjg|jI`yG86wW$mecAo)ha|~@68VYm zo}khOp8JN7Tzd8)t2^xjV`Y2Ahe|M9TIn3gsRN^>BeTx^aqHcOAzH0S~ zbCdtgak^e0R(D_lFsfVjnUKJj9)Kg{C^8p=WefwEjLKk2ySN`U4gun|&XQ)?drs}& zUM{Gb4%SMiZ&wvy-I$rVocS;y0N;@L z3??%>g8FskHF_C~vEsE7F2BjJRPAL4nP3Cxvq@jmLVtRoXSxuQy>I-W&PT3LqKla? zQQrW42>=y%3OJ})bmWc=Ml z@gW;Or1X_@CF=B!r|8*_QcUJ~6$4x{{)Vo6Kek<$Ol8m9aoZ948jLiNf9+N3hjd{H|skG6mXyPC^o|es>Gye-ldEzr#liShr0R zof#Gwh5#hpTCan6xjiFj!W@;%c1HWa$@W@=ThA=;}hveUB`L(%}k?!2GK% zPyg%r2X-L(cAMG8&Dh6Y+r4op!2IjL`p8R5)Y{4<8lUOwQHzdSddQNbqrr_#*`BAi z*yGO4NgaKv8>0UXZyS4*Dl-f+n~;ztG22p=xVUT@D%*if1^rW)#?hY5NsQoASjNBx zxLhpxF;SYPRhOp92K(oY=b=>1{gq3-)e(BS?u0cPYw4x7GM(e#<0_r0M(`Uht3`1Q zT|`Rnrqhz{x8wign|lE$%MFL7gfK;}Aj|9I0Sy@RId@ zQ^kk^ay7v^HracfTH2?ENJ*4f9Wl4$KErVOi?`fEtuh~keh(7$WRPZ+yK#Q@2T>SB zKJW^-6`P*)WZ#b{vqdH!*(_~UA^S%tPto-x(gB#DY+wb4ty9($3ZD()*-c=hZ*ZcE zT?ZqMxS&Mgkwz!?b{Ba^?Vn=0LcIN&ZMBQW%4D-~uS;p1LHALm96Hyj<~+M&jtS?q z3wZ%CB|dPM$J}P06@NhH(RMK(>qQ$W7ZNml%|X&z^i@na1&UWmzA&KqHSTeeHd?2q z%Dq24%(0hn1b*x3kua~npqmLc?I4HB6PdN|M(JkxWMXJnJ7VHW-X4!TlqxY~ljfdg zKLzjddSg zxLWfVQoep{ohFVEA@C{v3d3{#;-A!0A%mWsPPh8D`28X$jB%G4Ak4P5b&dvES-aIW^tcy{+p~2QRzKYRKNH5LQ%0lY2maM z*ym<=OJ_eBxEo$3s_B-~{_k&D4t}Nmz1D;0ukOfZ8c1y)d)J$@(=`Y${H&FL4sBsv zF%kFyK~im?Wp+6N=~p8`!(#vGJ5|$z27@N%H>K%6hD>Jf{efttdfjM+5AjFWh7)Q} zY{c@24NsiIeQYfdrMPA@0WoCB!nJGGW*Dmt8R$aE`riiR+q2=pLlAW{DA_Ym%z@d|&Bel1co8lUcP%{`wy{{{9Q7CB z07cwV|Hi|s<2apSXp|nW0uCnUGLR53I(;CQs}+3kBj2ZKR&2}ilff2)PpY*Kg-4Y= zH-s#*%Y?|^+Dl8%?hD23cpCk~xFQc>oXo*TcNvdBGL@w7X5qaI66HCuCaA;0TM8~t z3QuVjeUUhj4%JTlc#f;>viEnJD_ryqg%C%#R9Qo`2Dgl7B|`2h^+IYsv!c?Xp)oI8 z*^ord++rnsdwXwhHQNf5o0z}~b2yRJ6q2vyNoCf#>;0Adz?tRGjo3EOJ^05|&*KDv zVP(;OocMAZNvc|0i^75>x&3W>)CDJf?XqO{8`q=P54keM8z+bDAEsdZO+UTsb2m4+ zI@$@+B~8|XB7X%C+`cIY^gHelHsaYHDFILm#h${}Si(9jZ)5@H~GYU@K*MK34Am*?AQoo3-g?DRcZ!_bKMAwKN0n|?pfR=up=amPBDVL*A<(NAgQRLS*0 z#<^OoDoZE_Q4VlfvEmyj)zPc9#hZ-hMwOKFStoCwTwlcGzBrqhBDAa(+x&Y-uwWDv zlG~&pzqvORbNeJ}IOfK<#Y*bWA4b35**cf3BcK$u{M1D>@cBm2ss%-FB26Rk*$yid z{qOPl9aFVX7Cq+B&wtX2C!ADjH!CRx@WWU8?s_s}`hmA_24)EW{V1>$z0CzFRoI{& zCu+}@nKcUXImw%?2Q{@7(R7x?tG}}wKA(dUJk2H@{0`Dhv)s5$u*(n3=b9estH4Pj z;tuT!xUTl<M^#F4cYOknn6nidpv#SimHMJ3T=&-JHz7 z^Mu@z5|EEiWw*SxuAnJ1;!eiG8@JVY2bXxSfP%&*QdwtJ9gm9sq+~ISlk<)%512@` zs-xd*)i(P+4>zJ~3?bp|fiInVUc4W|ETmNK0vXl1z?T4SW$qqgr>BSRdRJy{Fjv6| z!4vZxL^h0% zpzvHHQCBT#u^Wb8TTp)LF9s{gLJmH^>}FN%3X&;54^wRJ_;`T-K6o2mD+vAM)uqzt z;>IYytN9vYSJU=sB+Fs75i%#dACa68CBc(HngtcAdR*|e)z$lcI$@TA4Fhoqhkoyr zZ+lJcs1D!S-a92jF{vzbRx3Lac*+JAJsD@ixHU`b=O+q_tPIOG*ZHd6K$cniF?vXA zt4VjxP!b1BHPSbXq8Mfc1@#k#?^Rhh=oTCQ&9Mp_Exlku+_?{YKEmuXSX0(~p`I7G zBwf0KxVIX3DtKWRkm>VpICP2s&wCBu2WKl{efc<`4|m*CYf#0rkYnqUh4}N0hnuu| zFlxAyQ7n*hdDWrp@whYItI9Bd#Oo=Q$!YlTL}n!W^1%m}Czhgq;`ZztTUMI;JrA&7 z%FZj%O#G5x_Vj$bSHJJ`-x+DNr{9zLV}q9tNKu{PoISIW)_}~4`d>TYQ9s)aS-0MO zXzofC5Sa*0iRO(Y`xqd;`NmzC>+A*r+w7cVtQ$iR?`;bM>KodVjSWj+Z7zlBWlORz z&KtSkJ2snc57@o(*1rM9ZFV-m(3$t02%NG1pt z3CcV2KdXa+1I3!voQP{M5t7im*&VR6Tp~e@T_rqHzr{NC(qe(SeMe3>Sd_Q7c~xJF zP&L)_6x3P#K2f-H%$AH=#D;eD&Nf^O;>ZD85P&{UlHcMak?^j?M8k&zC(8*{_jDC( zxwpB6!t2D(pKE??WdWGATSMoE*SKB~oESxvdAU8-D9lb zFD5d<<^`ujAjmEAL&>e@)=W%`;U6``zfvZMApgVMWim7MChpN=#;guaRk z461*WDgC(WzcaqJKXX^!v-m7a0DG&o?UWrYSDVhZ^;MrMYJr!fwidQ?PO-^b*RdIt z*<>WjHD28KM>cFtam;pzSh7aVH$!`=D=+EqJC!a$IoR?MMBwmg1Bd_1Y3viza6O*Q z$t;=~ZPm~5DW=|?Np~y%M_rD673+u1`ToAaWyU%DRPnH})GQf4(=jR}Qp37Btwc}5@Zo+C z-RfwSc3{6~y@W7CQ`}i;xCG{IEg5EO|@R-dfGRL_UUA52D zZ?p1!&{op_v#@tpU@xjxS#`z9MScdxXxXi=qd)j>SzA?6{D>p63uUD)5}?Exd@^nmW3QqM|@W@s{KVcf_NvZg$j(UZ7J)A*!x^ z8wh?SjuK=B{ZBg?_@Lbi*y;a(FN|?Ouc>fHgkf9h_{<B4lS_^scmr%WVA9l{_Att>zjRD6#3I2cABki5WE3ub4Ab{+)#Z& z(g{;q@r&pswN|0N7i(Xg&sNKq#>9`R^$GTe%_+UT=4ez|5xqyI*J-`jct8!{Q~x14 zaaRG?V&;r0Z*}7?^3H^DP=)V(FoR@tQ*AIvwk(cT$}n(+%eQR!r2-|Ee}A z^;~+^+~TXt+E>$t1bcs`Sh~k*q*P`V*U>(6IeBDCqly`(0S#$0R#gdNSCOox0^k|a zqMYFgG8)F@dI)M510G;)I=A)w*MFmFiEkU96|M9berXTWZ-Y#|rlisPt7Tbyc@1IS zZzv-^LjtjG9EorITKeAME*idF8!!Mon$CItcx23?Yd?yOs+S+I?Nh`aj7`1QV zK*?sDp(p}B3AtdDLJN$8IC|ZJZvK;tVxu# zny3GbzT4qbW!E@n>;ditVt>VFy|f;VepZ#oJUx0|DR)d-8=cv7^f*em%$)$PD%tC7 zOoigrUO=yTvbHP@TXP%@Y&`6gn_Vs(QQpS)O*NB_^hQlYzpowhdL_27@sGYZE2zR= z3|RsuH*35YUuzv7e2Us6FjnG)E!Ka}{KIs>&DME6BwAbI)(Ig!?s3{?nr`S#o9gS5 zTP{~-ks)|-huF&cf;EPIPp-tk|IO&A{*TWFdd}-o1um$zPju>wD-UBkja6OK=e=r7 z;8QBRT=^c$7(Xyi6iSGylnIkndyD3-aUKSD`4}toLBa04qlO~ z5j$z6xezG{hOsK)xzBZ3@CwwI_5O^eRE3H5sq;#H4dw1wFAMRbNzB?DX`@`b!yy~= za9KWA0WUw_x>52S>1HBw0F*D2A zQi6{7+}X}o^4vt>hz=yzls)l@eDKY&z8^NI&a6_<)a-{ex0(X!qkC*v>~RaTcW$2~a)g)8T@al`TS@#tcFrHfyEI4|XVY}-Lr6wbU` zlhT@JX!6Yyqg2Txl=Mn zv^Ta~g|}$6+7ii0vp44TIQ(ow3)>nO4yMslstn?Lor79z``4qP{>z2NLEMsNvS`No za*3ELB2t`wiOkNSCn908*S967_T0g_CD;^6=0wpqS(9-}A|ZTh>Fr-pJ}*>#+^%>( z_q9Fbw(F9tXhHv#)0eOv2#LD8*Au+mV+K={0VAC(xE?_PGdC^&B{`dEd9#XDJ5D)_@Ts{U=)KK2OJ0Os2lD?On_z3w{v)nC$to+lVE$g&o51@1OJ1 zO~{}NRV)m*;Su=!%h?i(J2rQ3I#jv*Bl$PCezxC|MhAvP(Oaf9xegGE4{nQy0zcbF zt$oGexY{=8I5z8x5J6E1i%F-+iJ5crC+42hhT-WCJBKd zKuD3hOi;;0t_r(t)XyrJ4N~5@tbyO2=B0(RW$f4#F9; zm32cI2*Ps$anAE}sqG4`)DyaioJAGLk^ZQ7UF2M#H%f`{=_h)4+cQ`ZS33oRH{y!q zMY(pgzI8SqZb5C-)wV}*RqTNXfc)e5I^CNsweQVyR&OO#Wb*cIdwe9)mw+++Qv*&Q*tZd+ELCV#rbj@Q^bE~&Pvuy z<8MPQHKXh8EEq(8a#5jwTrT0%T}rlJ3<52n$sKU`8+n7cG3Z#UZ)=3fLZT+-0wmw4 zRvIC2QdiJ2*od^sbA0~tJzB%?P%2?Kk~?!OUkEZge<(TWhv&1bPt62dmv5E9c2p7H z5I}k(IF12=;g-7C5;XXDcH#qwwRUOzcTiJCz#eemn%qS7QOxPp= z`zBq6J1|mA)`$lS=>+#c7qdK*zWVsWs<$#h>0J)8B}6vCjW^oru-VB1H(>JnSr>`T zET0d&oDv*0>qg}BCGNefofMYXO1Z2NzV0S|y<&dFG>10J8j9z4DV93Z-RpEH><-*v zj1|6ANc37TE_ch6aAm(M>dsgqIo(omckE&WO|L&BlsUv8mXkK>^Sp8H?(>0XsN}>U{NEqT)htCm(;`T< zD2;TdIb_;}alEwLx$H4nsOKLW%VhJW_aKvP61PBP=$*HIqOx>m_wkJqbuP^{-GFKH#$BRy76eW7nHlJy33OBBZxHnfUz1Q9IBOw~lIR=zbS&hTge!L+VlW$bavzA{HPk$b?%ktf%!qjG zhmTB(BxCF3_=+qC+-sdCof2fnJ#;(u0FA;ZedjDo*di{K%QfkSO zAd@Dx;+f`p?~=jR0A8Gww9;Fc!pCGSh?i0xR@7BRI;G5VtX<-hKxcoySy_Z0PFZAo z7mSenC7F!K<5YiXO_!cBVWfE9A81^3yaQN${9^`1eowK3yAdCLLrvsBeg;B#@k?iN zRn8SO(^pH}fQ4tf2J^qX1U)*!#|+#5RrRpD&B2GVlBSck%@{h&ua6=}zZz6%>=BKT z%UD~#bT9cuKish1u?BF$jPR297LvgzR2NMZFT~K){qiRNJ2SiEbYsbr-gI;Dcf&qg z?TzdM=2<;F>KhAAMVdVFIeE*>nV&mMW&?;862q6cLnf>_enI`Y`tq-SS)Euex~vYG z*a97|C8luSe)HJ*+GShX)uLDfnV;oqPCw)28O>VLqpdk6Vml8~F$2P0#Ri~BoyV|9 z291YT)Y2MW{V`bzBru$&C~Mbij<xD5^(7IMBiz66I3Ey$ zvJ379AAfS4g_XF}ja{!8MxPTot{@Q9V{+ZHZ{b<))81X9%3F#EFE}1n)`YLHVwUarDRC`76QkT$~E^_qwspUCuv-uTv4Pz)$Ak`m&t+xZ_9Xi?*@Qw*oEPX4eO}jOT1{W*9yLU67eG-wD?k zPvb0enCv0TJ-bIWYf&>7zPu${?9P>R=(h|sGq;KH9pOc#i)L*%3gwZ~K8frHHlC{} zA=cqLB2>=ofo$8=Qx4i4RO5&3im$U1@$A7VJ_d)}7Fk~?k#RE%`#cjJ5VUa&!F@-D zrZP81o*y&jPJpb9Qi?GI{Euc2o`D6^$vtJq)n6s>m!kv#f-$F;h?6}UUo$$X{%DTG zf=!znzPV0~az@O49wNXqS!_eoaU*K8#h#m60hwOaeM54fw}l!!@$Mylzn{Dm;-DWZ zSx@4ysZqWmp6nOgDQrs$$2LPDfr0;>DH{+oYy647s2tv!3wX16{3(L^HOz^h%V8-| zb2_~~pk@Y@Z94{XLyQZE^M5MV%GvBS##)6xOeI*a%aIp?@oNt)E06FvMd zP@Q8Br+qVb1%+p@!{OPKLp-HHzOi3<5hf6Cz6HB8fCA0jV#@q#F!Z!(52c7afO-{zp5U4`c~x-B}cd)?Q7zLNn!hvuvji1NKky)>hf^$O7d{*v#eZkoJpV*bIQr z-eP(3{@5oPQ|v4^L9HgbQOmt%>V1clcil?H)6J~mJ#ODN$6Zi^$}IV*28!vs5XN*; z?pHgncg1oD_OEDaP4!94rBEhoKjv!nt?G!m=`D;#d@}OtgSG+0R>*3jbFs#Xo~k&6 zp;VE7OO`NNsOcQz+YK;6IS8r9jVx&EE~Snd zgv+kKvmN*9^DVwyzA!6HFsEs#MdRTfKSahJq7z~wetf#NT{<+9p)u*|xX(o%Q~vEy z56fBQ)8|M87+NExN#f`Q1>yibZOy3#$w-|UI1rxJP!nN6Q;$mFi%bl1%?Cz3ei(f$ zmMs-j^VjvBt9RV9lze}~=NIEBtjs2o{8;Z+e<+KJp$5w**INctqpTyZGU(ew1~kv) zW)(kqA)A|dwPVbYKR8|8I2Mg9Fy6)aB@vB9Fhx;Pt-qJYHG?}ps*kHTQYTEm)&r3z z-C508(dFX2<6%9)o{3tAb-!U|mINp*jGhkMnRLHdKDc+c-FtyW5prd z-|HnxO!Fxc@yB=T2Fn~53+@u@uJ)()mUCo>DEw`tbcwTkrOT%T-%AU-Zv)RK6@aaCT5ucFpWf)( z4>xQNbU)^_@~>wd@c3+6Ly1v@8uL>3%sw&)!B~^i&hi|ER(E8b*pv<{y#HCAY64|1iot#l8kidOM!xiPMz%eyKv zTg0_UjodIe6vt}IpGN#Rgl4WL9|H4-gB;#ANbCgHbN7qYBv;CPxsqVyqUJ_ht`%k{ z@YX+j8-cy~cSl3FTm}JN^O8GgHKug-`t%4%89%#qnl(q^{Oh9_(hurS;1`{6$P~)Y z(;VYdTJ|eM;PY~fC625UiB@(7lBULPtrky^Rt*o<3m8z6Qri zMZCq`eXW2Q*0ygihj=nN0KgtzV47Tcv@LV8T4VG_%0d9MrBC`j_Inbr;N$Gp^6;o7 zn%YJ9*XD$LalF|nA8pW!1xa61rcMnoBHEOgSa>eQ*QmrM}UOH>Rec>5?}IT#w= zJDek=a>-6&3{mX-6D)C4ERiMbYV0;XG_05-S6V5+;5EH2g+wSgQ3d-=2MJp#t%|+;+W18?XP2As98qhl=(J-KyyuXW|6}pVVdc z{7dvLm?iVSnQFS|NDQr*2~Q;k&fn_tmJk(Wlyvo|`FafWQvEiUCDspR=3YtxU1@3J z+KM~uStWUQpJ*T~d>R-rXk4>DrapeBNApSwHqB$J8U>r-n(F57nQN)ZxW--a$yL$b zf@;*Z_QISA`Odo1l&tuYYG6^`y|D8tBBAba1m*p~{LMj5x05!CQNQ1y!HLk{?eRp#U;yO~W-j#8c(nu2@ZcdDNCjHG-KtAO1)`YWg zi{1SzKWc}|IhGp*o?{_o81A%ytQLD{u0uX@uhW~$$?>!@kq z+fAmIShgH(C=cUw#P3DKq-VkF;B&XnUd7kl%Qp|_Y@F%OQoE=X0$YdR&8OSShJ@DC5C1llE7WSpvgTog1^Vz1zYu3^L+i*qHliw`#Dik@Wr&p zqy0f3(k3`w<6**6Zn@6k4_)r7n`K|2gL(%b+amG8#*hGZlQJ`-<~&qPD7daj)gtV6 z(ofbXyrYnq-ch;!j4GZO_3_rGZMPYEYM&*iJbn;|MQ@_dyDJ1j-{gi2SfGNPVz^Qo zDYSlhIp;*&g$I+jC9ovcDKDIJpGY+A;43426J)G&b4yt#{Z5oT|8o`jvLmakyBcAx zVHf^B+SRJP{P*L&*%jZM?`wyzI7F7hLab~}YvkoVAm^e9R9hlMl z{jqOW?&yq@$X`nSEf?2b9}GBf9E?kC4OHkYH87M#J7u<4B*)8yBgJhSx3FA%$H=$3 zy3kPKL0PzAz;C>g0G+hBK4hZlW|vvq|KNvG%_doRu5^iw?%eO!|6D0OA(U*ZsW_*y zhG8t+5fZ$H2lYF9GGmG;|3s5F^U3WYA)al~vbHNQpB{4WwM2K#n6hdw$e5&s=gWh( zQ~OM-lYg9TikPX{ALrsI=b?1q*E+;FJXj?j8|+S|IW`2NsS||i^oz;$K@_U(tAxS+ zj^_A{WlZ?*@KwfQLnAilYMjy)qYBLqj3c(YQiE4fh)7inez>^o5WIK#=>iaVb?VQP zUM>nq(q&>mQCets8c&TzCI+Qa~FI{X)4$|XoI$& z8E8JQ?$Tb<;-0jp`U+Z5>1<#4#2UavuCQ+GdNr}{hHOgwVXz_ySs(QX?;RS+y)6Dv zXmQ^&yCtU`%{b&-LrQ*hC2o{~1DD4=XdYExJUEniqW*2|edjFhxk|5!xL=_Ku`qPA zLraG{ywQsTJ=m@|LaPO2wR+NytWoe)hY-DcNirm7<|2%azfZWku87jCpwi4c6RA6{ z0zIJj2{)b&GZ;tPG}%<5q**!dQ3qqqWoEAsXcsGz>wfQO1@vfMuwOTDowmbt{#;&S zaO2TawWlsmY5i$x)p;q#*S|jbE+U|tx4LkLt}vZ7droWMm9`t-B!SqsZM@yPD~Vbj zWOJ9O`vBgym@`GdKNnrjfK#_^-hpzC`y(HykC@QFj9oG*=Fj%y49ok@=<`(ih}AR6 zFpQ17GoB!IrUKctaA;S(Ws{ay+{4=e|B1eG1eQ)QT&&&kD-E2&c0X8!KFv#hg(i*~ z%qq5bjrqDuSTa>>Tt-zYq#+i}7DIw6?xZy;CQ*Z@<<|+pqaEI^e9bwyI?^j(3r)ay zRfv$z!mj~QJdXVBbp3NK;d(rNhJ3|vhs3ai1!K(p2=xcSrAUoqP0KML7(kbPrG2GgF-!mlHToMm)3>xD%8Apzl{tk3D>m5F+4 zt>l58Sg%eHUq#Dp(bcIhmLk_iObR>Js%sA@z|+UFM6yDQl#gjQ2<04JYtIsL<%;z0 zuaj-^w^3t1`TbnT^^9bLU1NSSGyn5b$8`U=do32BtM>Bmry3no!EyRdW+%~KjH3!~ zgHesDOx7|+^@4Zz^ICG|O!0Wl5{l2RfkdI;Mtrs6m2^uP9`x-g{YyGJTKK4>IV61I zQMlTda*-4Rtt`|hpIf(sNEYTL&dZE?z!%u$r-{*`H#)m+On0@^l!W{e-u;-c^;B)V z2q4Bcg`{%K6yQYDuR!A>Tl{uzkv1GEaoUK5`HUYTG}-AEV->sU)9#XlnE?N*ZQ$+o zb?bM0PQ#M{Zk8j>nLffCv$tn|$5G4UYfRgT2U2kV*ClZDb01-}DWg{YokYILa-%7J zeS5ErChH}eI=>TFG7d;J(9!tzrS^m5wmKrV9Fl0$*{fr$B0fEL$NXZ|=Nb)tpXTVj z&`sBo6<{iMLh*UprkGIF;D!{JH$3U$w~EJP3tV_xlS^>;9|Oe-{rFnt{&HmUg+&dv zmofkZxEALYg!%7`@`72D{hh3O3i?RgO>RJBvi5P=qh#nn0BIpRP;&P&%C}q} z?)kP?-sgJtl)hU<$2iQ^ti8ok?Aai0S6o7Uce($?(lrr9rIDvH zkE?sah*6|e+F45si4T4hR!2(uL|3x^n@4FuaIp%r$H5+xG%fZZ2L= zQkcU{-Vu@sR_)NdHh7pG3&W|$tx!95r~r2JO^5iUET08_JZ9Hl31p@uh?zY_-$liF z@-`_GRhJcMca0AJz@zi&!R-00?xKc|1{QWKU{9#37;WAgt*=_kvY~h2g~0w-ru1sl zm^x-(&cJBf4~_Opq?*?b&2q;^G^K4eD?n;+MpdKn2Rp{(aE?*8_6`z0ZJ&rTA6;mS zhyYnRCDHE$KU^Jgt4T0K_<~(Wgv3N$z7%VQ$xbNA5n*9+`IgWZPN+k((8@|8*86?~^`bmK{+j_#Gbgr)hYqhH}ru;R8f7x%@Z%zcY6%);_ePwQk-{EAHVL>p7h0 z9FAORQ`}+w-dL3p;3=*Ja>&Fg_{oyS*kxNcKFwxT);_WbEv=BJ;3AsT>KtPHyW|40 zm6m6n1owxoKnG96s!z(Q0(w6f0_So;<9q2nCa(`1nvxX?KP%6-DGo+^ydt>(GTd2v ziD4GMt=u2AhZg(M6gl{=oy;-tYM=|$Z_>`N3L{Fg95Fnufo5MCk2~hLRK(#|VM!Mb zjbZ;Fx39hf=?Ha`Dv7iS(f6n~aXzpnT|K?Y^^5g#F;~2fA`RbK@;oq(3FGnunrLYB z?QiYLt59+ze`L7hxttj%%Y9kU`lHGPlY_FxIE31uVL%zso^QIp-5z1?&LE%k+I!H- zvt=7p=LrW@Hg2ABym>^>%JIYj75a#nHm-E@z5*Mvs(_tBD-n~Mt_lRyYYJ&&szAMH zWh!seH;!_bhLjG_q|K0OiSg)Y$H&F951Hfis%`bf8~gMdJ-HF`S8YVO_DI%fYe>Va z>d~tu)1m%k8!?WFQoO-bf7)#pA>5G*PmZx*%2(Ub@(A+oJ=^(Awnm8-1nV>YMa8>;(4rh1v&B|;cyep^;sr%i-RFvWb6r2;hNps;?dSStgU9SiPaECa z7irfsVc`cZqojH87)Z+Y3VBPjHML2)r2qFs#KH}M^rc8|__eF+o#;*Acy zW6}U?HeS@ZyK9N2En}1feHuCCfP3XP8b~?heM2r&xB=GD5QE()_go}zjD+SISZ2E8 zIkRn8F^K-QOCR~d`=h&saCpz_f4C973q?qV9 z=e9kur3BwDQvE%r5|WA3Glrek@oiMf{d|A^5Xm*)$(O-8o% zQgAYH_E2Io6(x69q!4lD8+m&NxVh|yf1h{sds#CKWKJ`nRRf2=*BC`<#fyhtTzaLR z;h(D69A~^#r4Yc%;yf6qNCj%|8tW*w_p>0*$zHjV2)kiu_VVybBzwqbzLenAd$_t5 zdaA%M)^p9^)xxCWp^d@-|4I;6(c23?S=#vPudiKPaXB-{~ZY5slu6xhN~7@5oV=e$zX9CRo+{|`H*s@=TE2fG;v#Hbl$M)iP{l{99k!*Z~Egbb1>N4 z=fimlqYYJ9Q8xXj%!2(}ple}Y0X_nesP--fT@V?#QrMtVdFgETr8Zx{?y;32^BuXB z8F^(NOQuC3g4gyh=uSTaRhIGG8;I4DFVo-lV4yS8sfU{E=gZ9?GudFv&XHz@K`aq- zf7iK8Zrt4e1g|B%#kBqW#X1L>V+P;asPjIzv9EnmK+!KbI81bEaD`qkMOiYpZgd-gyUPFlq_pMUYG;Vrnr zC?tBNGb7uxNtg@=kk$>|JG)JtZ^|YjMQaViluLPLN0gHNRf1~YlZ)Jq?+V#$c|ar` z&o1Km03q-pzu~HKQl<3#)9GUMmM+ z7g=#z2@ko9DfmOziabwwCSo8c4aCl;L zyHm8P&dWF||CU|#Z*xR7>%!SL(8A(gOU79_s;#=sU}q*!lBREBnYKZ$?_<ehBz9>$hiZr4ELsA%28_+dQy{icJ^GV*8OX$pBX2AiL2?=>ho?}zh-7-AOk(ma;%`G+)vB!s zlXKG3vM?BD`5jWoVE%}&=VG~@o64K`$_UP6#}>0WxZe#BY}5)ALXOWJc-Il+Z|&p6W2Wu#0EG{WR&ayZ3~OYRIQ)EuTsbn{pd3KFy=Tbx^1v2{FJ$ z59=&iD(97tR*S;W_f* zI#Lfn8cV?3`g3~k`aj#58W}J$ec(q@9~L|zJKF98;1GKFC0{*Nyox_5EgIm&XXGaa zbEV+b(iqHJ`?q8H>x}lbJRVDO0pp&RYqI|P``ktJaYVGwfWO#|LI;)9^5p*iqvC#2 zE%K8&D`Ig)Y?e#(ZRow;bNie8Y};e&;k}Fmw?lbVMIApeK>Yi=j5dnGH#a&CKZ^$r(IPAfQQiVEgYe<$ ziy}fzPB&cRjSGQmwqu;vSf%zTQ9j8ag+ zEH=qKnuOV)?mnURnlIO$GJZaKZm+%~!4$8fe+lG^ym|rle&TGWp3HR>vgrbWi;PZv zin~w-`;v#!=)Ri0AMp#B%gW(@%@;$twfZ$RGMAl{+DwbW^eh!uF+=e$r~Iy>QTpD{ z(tt)C!na`ElEDJ{g;>5B6Rc#D2&t8E2z|)%X^QI)quE!Zs(E3?+*oSzziZ`{ zrmF8py5$%>X4j{y`4LO-&{}uTth&$=Pliw0MFeQPV9+@3%eFTed5_i(N~ViBVShyn zrMK?>=&((+PGv>37GQ!jes^XIN^6eo#6Yqo<>tusr5|w7S$g*-IG>KeVcGbsidB24jnS!2FMQe!Xa)5yI}&Bg(nGl{$R^{jxluNs+Us|X;Hyq@RucfF8wzge2Smahx2`tR_T);#umQd}hA zQ*id7mL@SEa%Cc~RcjxB4sfzi{rtl#+-M5aZbgs*ySp^M{Ya)fsgg{&m>=5X?xr^! zbPwrOa8PJYnX*u&P3x7@nS&z9c04wyX!aG^HY0WW-0VWbSsA5q##i%uVXV-JI$GmR zA)DrO_(J42DK5UXj>nzRK_BHX_V;_E9*G3oA)pLBL%v-FKi(seU7%o-D+VLXPY2%p z#HhlAoR~(XEQ8Im|iyypz6O~KP zz%7BZedd~hTEd6+uzHLu)IFjQM&eqbcsg$4;N>(oJ`-I-1*J|5<#oz6uVy2YTSY%u zmw)fbIgDY18UISZ@>MA8T;Vc3^l8|fYjz!6e;zS$H1~APMJ7$Ye89c#vQd8-y>gXi z-wEj)W#@P~$Ko$V$5@5evjf0UE|d3XN4(?2OTf!RPK9$n(F5+Y(|<`;yCu(6+orU^ zGKCV5;mECiZ6JK19++h?LQd)Rwfpr5$S+~7*$%DPEy^PQbypS0iA4zc19eg(I*LFe z=o%ZnA%2o@e|@vi&I<1ybLg(*`D60NX3Yrh5}reoD^$=6;?XyfzruR%CiQ9%7{*aW z+`Hf0cEi`myJLmJA3`lUj*MHUJ_x@JGJ9CDu%@7@pbcyTY5h6twl#M1!6VYo%w74O zh0P~E$EvS!@vdXMT@1|=SYDTrIs?RndK~O#2a4vN3??YhtbrP$ZhPdG9*hUY8RP_n zvvNMsjP2T5tLvBuOwoV%I6K^`5PN<5tdOs8I1vo{2_tT=pyyJe4;K1e7VElJPBwB* z(xm0g$<`Fi;B4-&feGe182&(M#5tjzRxUg-`D2?`^Uj(M^xg#uQtpTD8Mcvu8Kiy^=AZ&Y9?1|x6dQ4n!rQ=iM*AnnhHV6h ze@L&1x8X&kndqa$-pXuWQaF@7p6vANlf>DLeXYZYZ3Y_RQLpKxBd}ElZo47?V$M|} zZwU^y2|SsK@J9oOLT%?3%T7*1eL)AyGHXL*jbUR-Leie1B$H-MrmZs9sV!e@Lp*D{ zsPojg&YuOl{6|!8s;lS09;!YZmqa(n2SR-~8P^`~EQ(VrQ3-P4aDb2?W zcrR5Brfu%NI(NSFbNx3pe5pM)yQRKR;2yhO_Gl6HIuCD!AkqdD#cH3`XF%1I-lc7h zr!Prw?snqi*B}COCggTNU8dGWqTCyJ2_N84Q?Ld=3)2w)+%`Q?9%|rgf>I46=$Tee zEDc8R1KP#>Y;zGt=7ERw9vE?$lUUOEZi1DyOTKs9F;FDiKN11d^og?<_3F?1X(O)D z0BjS-HRueu`@&0&riBj%n;+$>oK>9fX%&vFOxyQ&gKJFlh12x{vw!kO^9VPUr*mso zSDgChkNeaEt2!FMB-GE(b#;)7>1#6(GNg($Mebvv`mRajIB-%2D+lVjksNv|LYoj3 zHPska_F-}XxiYeQ=@9g|aY`@5Rt4UiX0L6mh;Ll^mS5^JpZ#?x=H#G}a14{7#QlJROlo#K+V#XbwqJX=m9YL~n{QqA966^Lu^sE4s;b{b)N` zon&$^_J8~}5=Pk|cFmEamF)J52{=Ip5%CLn(>9 zk{3R#y96b`JBdcO-I0-Tf*ma3nOdSNe57COiG?STx*^9Guz|)i2>kiq`fMmMo|=Xu zu{Xx=k8$JQ`PGQ0T&tWtfUe2KlEdN65S~Sz(O@ZatRao@#cIggz3*2kP5mN?Ttd{U zp%LYB6#Fl53jSX|{nCjpRY8p9xymuIt<3haH^a1Yi}cg#YnpgYU|((1I=k=10eu2& zIq+v9K_2Xw!LC4TSD4|Ap<{zTPK?c_)|w*pb<3g(qFayf-)lFwHG((niq4h5$T!WrCg>vCDDeEy z$*kxuc0zci{M`O+t*}J)MKZOdt)()kV^C-&^?onw`gcjlo;r;EX&-?pg17#{pNm37 zK?i!RQs1z60l2$ww&lJ!)u3(MB7p936fmjBhd?(M90;<{?3aJaP|GO-)6=moa(}*{ zMC16}J7PHi#Z?>O@C1x*@8p?{YW%g80Z+rVV*CzzhzNtGDM@7`z{_YuNBd-7eHxZ( zla>A$LS_K&9MLqxvz_uZhYaEF9~eR=?#GxwQT}QUv|)9GV4q z-8K*Is_LHg%W`HvybuJz;4?4>D|9)5lZo$@>d=EWE=7O%~91m;P$Y@1m3yMjw(U zL6vV<&sGLkJ*WnGMO3-3r+1BH-6`!F|W&JfxbR{517^B`_1>R@4KHTkx=7;PCg;ya%2ZD*E_Qs z@2e~Bt=cx^Fb}1{6vGx9@q%oHW5Zg%(_$q{0a($Md(hP#=!379SQ zo@<}@^9H#kO;o@AV1;Cf-8|YH-28{I`?gZssUd(i%fZl_GOTCtW1_VsMX!U6Gc4&`rIhZx zg%phV>%=b=?10b2DIgYIAG>4(%3)%ROc4du_g891JXPMdUr9Rom*Qx;g>UoOV?Kx{ zW_@g$d}XEvsPhw>A52=84R7d2(X@pM?)-gUyr2!~R&51+JZa~)-xp=|UB7tYMqJY3 zr&V|wgLwHncENcfXMDOnM4y;qNyocCbLW7y@4w=nV2AzF7Z=m(a7GYy#XJ^iGxR(Pc{!B z8h%S_|Fo^TnH}@?4Q?_Kv2*5hZk(t7H%J;OFIMo%zJmXdaQ6**?HD(>0&gH6z0Y3Go7X(NQ?(n1 z(Nj=D{zo+7M7Y!5aMY!XefJo=Cv?Q&6B^hM`b)G=7|Prz-|X-FVChnf+T|uhE zp+&?;(CutVN$!ppfAQ;|Tyc>l8XaoSI#Ip+y~0tS>)8|quFaGN6#_gu|0BBJ#r8@u zub?9B7-U*ScLqu*csfNW!0R;HntKk}3VFO9T?T-3R&ZQcFDyzaGl(21-w0M!-2e^&3SE8t~vqHeYGbOhGi*k->dJ@NsdB1gd?Mw$wFi{W8*Xs^;q#Vdl|lB-U1Gs6p95ko1TMbfkURw z%yCLo(}Ku;z30g3JzP#yu8@D?TwcACNXoc-Fc+(o>R_=14UOIr;68?|B&^L*qn;%U zT4)83Zz-!{b3aKtXmMKvCJD6Kb0)harHfeGgu-4Ic4$#63Hg%8USE`7N9f&i5AqjE zHG=UdT5i=&O*74F&5v(U2n=k^Ss$U>OeqQhZX#s55y27avf3T)J=S>sm%PKmne4pa z2dh|Y7RE2#5eBXjy#3=pdCfmFS!o81a1-TVlc&*p|HxaSVtdx=Bt*KR3t7d(BA*am zQ7}yL7f=k^CZo+QdV?4aYnxWIgO~7aVux;&T!Nk8#;cL=XbS=_L{(U76rf9rV z6;O$7jo?!}sqcjx{hl{X0FHJP>srYiM z-nk?0@ODV95u)QrN*HH@V^WeX1;N=vhPJ)K4bvs;e5xvRH{)eq5GJZ*n2h#)#LM{^ zBO9twUb6Qu9Ntiwa;b1}M0&|ZOp=>1emPxDkdoX)D>bVh8pRT`rQ>3JAkOH)Oz|s=4ZbqFntqT9J^}7Ve!ag)LT;C|RV&7sm zYu)5MkF3ag-#$}E-f-WjRh&?&+P^91M^?gJe0wP;9VBeF{gyeC=|cvPV@4}X3nC=; z8oaNWf?!fr^Hl@hRQ)TVrebl;hE){b#cY-bW_0T>5*7DcC8kpUHqWBRWL}!gBL$B2 zTNJ)fVdVb;G}XD3vsxP^6MTERH1w1yooh@hxALY@u~eV=wCYyCEu_u|RdZb`3Kc&x z2P^w<|Js)Brw%x=q0NLrPq`URb|-JwPPWLPeA&SY{UPSEK-Q>moj0L2E~jsK%WS2_ zX50Ra@{%}#8qP&VMc$B>JHR9L62_B>V#Ba(D#b=)dOwkZ15Tn;|998@0(mHKH8oVq zo;Q4FcuIMW{y-hj5dT7Fm3RVw7@jAD)?jOHxIF>E+|&QLeeWjDWPY+qv&9h@_v;kR z#!-^lXjjaGduT9JQO-qfJiRhn>p`MfvaA;e$2^-K({r9|P!oyJYv<8x%cocv0$2)$ zIosUxxTifP2H-JIRPy`4g%T-|iD>f_n!b-TQGy6$0gMH9%U_1x{(@wj#g9k|iIwMTu@Ob&TPU5Axfq(V zsyyzhj^UAwG(jhgE11WoLtOmYdb(Zl#%*-5FU3t{siL||CJ`<9JkDW|GS7Ty(`cbv zw+)X<%Ptu7UcM7tTdqLBq(C=${4!m0-;8E=n-Jjl%;Y*F3W0%jGw*`xq}I`9Ow5!e(TN(Zo>wz!fy)b8V!C)$hRnZ%qX*wNQ@fWZqfZIIG#^$%CdfjPAIiPcN zxm$7Y9w!AivO@7+(Q2#(TGfeJ^F>19;~oxHa9U)gUhktqPBGl_DAM((F&H-7+%x>D zOgEgQXv-9#|Nrh8Fc%*`$*nztX@dU$2cnvQY!IB=z2|A~bbzv=N)3BUxk=Jz)Zk&C z*?^i)b-zO*GYaHn3O3azLFL|Q^{pTN#>1_APTr0cJmhPkn{leccR7_5NA4J6coR!| zjOor|)>dtl|Lh%^LxY*6$GIzA(I7SbwhzornBOqB52`uAK6tjKYet~tIC`qZ^pN%S z%CaOyq!^8G%hhdV}m`*%bS`(vJPLDo1R9kvTiX0FAXa`It1y@fjoG=`eyq<~ zzEF~qhJ{#{pN$QWQ+g`oI@P$W4D%S+2dVHa5C;w*3%m$?ymX}<_;k&skA{@!KcunU z`=>S73sg|bIqJ>H(h;gFSQ`#GVh+u$(2$Cu|5rOLoH5OOwn>d!%7Qg{RBf6cxjK>| z*Ln4Lg@%AS=OuYAB{?P&Ki_kU`-_t78SepWg9fKBbnTVBH4`S7T}Irj3Maqp0Y-n3 zl=agpgKXE)5OYv!J)q~0_`&)tX@Wg+r9?58&T#$@z^ba#P#ivqHZ%yGpr}6!o zeNa5W1yXej1_!XpZ(fwF70s8goSEXATnea$G&gmucnPDPg%8;V)PnuNOd+j=>SX_1 z4}&n^vnhO+pbNq6N z0kH>i`PF~e)F`iH08c|NS2D;zi*mqTL($Ao)=597ppb8#cW8$PK^Wl818PN^)Hx||d`*7ch_3Kx(5$XPf)QMos7|7a}yV7mA| zp!SLmResfE-eSo_0K2?RDgrS!8z*@zK(l=I*cNUGKGK|vOTtbA{^!KTFseJY=WvAQ zH?A|s?P2m3T&2jJCzWqW2osF^V2m^*_w~P~Wi7p#k|d?OPr3I&(N;c$9(?1 zKN68)Kg%0$JFm3>KSo!=!afb6sJy~5wk8r5L%BZC3k$QZ>3+(`t9mjlgtvWqKV1h; z_9#=5@EQ|(W`wSnoHcuXb;nzFpvj&(VX4gwoa&qT6H>jZE)`{lFa*S;%qX;vWb{cD z(vZI_~U~5dd8HR9OGDgMOuX4fVQ7{Rc-c1dSF>*Y<9Z$9&P)JP>{UD z7i(w%P}>#R^gE+sf@s-@Vzt|lSf#TVFw&;~S9bca65YR@YP&kG)URL~l3y5&jz+`T zTRkwLOQ=0Y*!H1`QKV!# zVu4tlZ9lwUm=;mUWhp-~ruA0dmr20Gzu?rKbCYI4@D@P3FY0b1@{pe-%I_j=fAYO% zi;54Ybb6#${Dpq|W9ULPcShdF+@*DG#?5)wD)-+FOR_^+&REQz#o1<}l^Ost&t&2N zT$gR8(SKCy%>k)wk~-G#pDU6F?8(erI9oEk`eNS@TN;%>FIWA+&-YL~{%7Kw+$F#Z zwZ^S}yw-b+D#zP{G!27Gp2>$x4xxp6AQ%zIi`Tj*{iW{OyzpDwuk5@nMF1Y7g{T~g zuX57313Ov!r0W4p7oXSg`a^G9D^-x!HJyH&eY_vWgf^O7TYO3oz+{S+H+LSp3PYL{ z-5CAtjc{`o`vy-wNbDP6-Wfp?5 z5$0ELK5it6gfIN|hE_(Q0#W3s5M*gSB%w&S5D!wqrfGCGmv@I?{r)!cyrdDi5nHIS z;@T-7A@y=Q!lC82%D>Il_0gOKcD~ubm{z+wZl>jF0csev(4{&wwVzXVe_5$eM>Y0K|^%i~D`9n*U?hBp> zwKbWjv=)O(Hum-CSY*+SAwAu7c4rqIbsqt|&#Wo4rL`pQX+*r@ZHQ6Jm1}7ms*4&K z2_hr&W|r3|F5^K|~%vNInVmC%m)*zxN7 z@9IG8Q39UdTNT8h)h)^4wl%S>`BCHS}-Po5ke2Y;*uY zXjf;gxAUw4&)x7yJ+8XYzor!P^&GVmlR2;VI7)M8*He~GDn3r-U~{7%PK!@lasznN zKWZ<8K#lXBW#I5_`9bdynw#gQNXN>W6V2s@8uz&&Ie!wtA2_70n%B`O_N#4aUBfO8 zIlQ6lDn{tQueILl|9e|sC@ZJsepZmjX$p|Sid4=JewU}~rv6rLSo)RW`@XoU<)?+nCd_ zAmnHbjq@EkBx&r)cCawx5w8r^Q4HxA`uI$G_0@7WpQ>6}Pm zg6Q>g^YpW_Q~!fXHi+Q8o}vFY_#aVf-~9qqj^Sq+!?B2r-BS_k%(uo3bE7 zr0bG0`ULCUY+NRE>{SjB}oKsExNdTlr-9z2vYR&jxL)UHw|~ zvpyTr&VqFgQyWlV2Mu5f`*!8_)1vIKlRpgs=PoyWJvhkrg{*;93Pop+T(59BvQO3J z-t1~}6yX8G_>`^bu=wx0_H&(wL{sv5ZA#;g!ws~n=mcrHfao8;h&33t|nwIzOH3`yW>6gwyN z))l?;46lMB)3NggLd$Vbk=oL58X@m*=QXpXU6n|aT)hmhysXiPEmyxbwd1ouuQ>3D z<2aTE{QR8-|7KX2epO%O8qGM?lT{ zNekd0AvqKO#_^_B-8~ex_9>wFK8HVN3Ef6km-52yJ=1YUhb50S<*dMLMzpsyKKqBs z3ehH_xNgL;pY8jGGaw@%XXRcB$546`VKsu)>u`G#_{HZ_x)y0r>SR_=o@Cgr6!l6K z>jpCwVV8ETQ=Ky~M%^>FEp_*P*@Dm=O<%8?z+D8dz2dBz4aZxzfggg&jFF04c6BqA z`7|3A;=1x`mcUE@5?ph=RjY`B(O zrRnv1z$9=`qc&`$qdOm>6@vc`X*f zy1pkQi{Ww=PK|M>l1u9R8?AB;N?R8mA+VK2Y;rfClD;b&y6g_E)151M;TbH-px44-2+{wI3`)q2 zUmc~>H)*yl=U{b*5BcqBO6Mr>0HX%Q_2~eW#&CcEfz1Pz9aKZMF~l+RM6x_HH$)Uu zUlRZVZ2(M|s$CafO(t`*ycCJ#t~q1hPW?mBAIPYQhsC#3%DgoUehiP!eiHB&24?90 z^JklL^ZfS2kzg-hyvwK#6kk(A>e)rFGa%LS?LY!+%jC#rkaq4iU@+*(+b8pFxmG^T zWBPmQuDlwx^R4&aJS7AX8%r{NxUoo;_3F_@I{Ry!UlELl;1YhXdgp&;v3;I&@) zh3w%WeFQ)Ws+pkuQaM-$EBftlTnt%xEG)KX=t*}f&)^zICraoeZSmbv9XOUakzXl7-TFWld<_N zEj-a#sQXW^g@P5)G)M1{4~d@CH$k!>pkclh1}!X1Xt70;)zVXD0W^coiuNR*Jf;qtBXgg+m>gohrf$ntv3ZA zzFlBgHyWd9&nc>OJK!2jdNOFr>tb)|P6X3dX)(FC@{N)egrJRTtjUcIA)Ydb=ICyj%_VpvG{VBsLd-2JdL$o71I-q~fBfO+I zc)HK<^PKrcM$?*J^usg#Hzip*xzX<`7w@CV?fV-0@cnlhj%6!%exUW)X2~7#V+l^0yAKANW3{yx>*m3xW}X#jdku{U3yhHK zbrwJW{8@au2#Ibri+=`PBsBOE2(bATge}i8#1tCIJPyYg^PE)(oZUWgCNMqK$~978 zMrg6@KGt}bF`9gwik1Wfo^AHzVRiwg%g1|Z!#ZZ%VJH?PJp^+Mmkmw-$zy%DT5V|T z4opz|?qNt~$-Ly0IeeRDg^IAvj%)83*Q%1&Dt+6Y_K;&@se(Hx2H{cL{e9&ZDJ+9D zsaqZF4Em2q;@Ro5naKMxG4umXAWT=H{_Me(k-kj3>^~jj_(LIC|Dd$?SGxiAIC0}) zvIt8{%}XTvsh zt$thT8K`#;_hXJZ7BQAGca)A+D2O+?6-k@MOF8GA4T}htbTJQRs-lBKz4ViuRvo~+oHXfWmbt>ejanIY9z+;pCs``}YOm5{dVN5SnGnm{x5 z*|@C7eI`={jwUID&v3n$&fXCq`@@&nz^tL-F5-ElZR2+M>_>-9fr4+-yBla$jkO zVHeu|4SfLzzxo?C2`liXjYLXRp6uB7koQDW8oJS5-k^DQ0Yh6APahdZu{BwYp*rU0 z6=ZiMT%3uBkRwO8tL_SHIFZ|D-tmcw);9mRwq8SJ+b}L(@^Xm4cii30Sr-`jMM{z} zle9UZ=v+SH!Zo!^%!oDP4%-LB08K&h=yscmrm&2)dX+P&LKp_eYO1M)ZVS%XO}5bLMNO; z>fG1=5sAa+N4KC zXmRVeuGJkSa+E{VcAcUeH?H(Un=03u&YN;lhx#^iM|aZyh|C&{X#TZXKTimyyP5U_ zR~<%JkpHzb!roBh-YmGyJUIks8rYs@y1;Qmw%J?)LDHudn5FvfxQPsMoqSo5H&!!lirL|w#Q&cjA68YX+r5pjI6Z2b7n@I zu8WFZ7oyG17mz0zSwoxyBQ2*UxUAsT<7Rl1W;#)|6(MPkm+fo86%^$E-huZ$2ERyL zFqDjaECN33W$msw>@5`0d6NelP%ujF1kX&l`(;w7t4tw|)Z<3ZKEwT~>C|(rM;O)z z8t%nO7%~6qFl#Yu;cZ*DG4E@jDvw7ShXZdI%Ux1av15JkZ#eQk_8{>o6|FFa zaUWb;2s5d^NTwketgzS-J1_KI7Cl%~fBb1)pV~y}54TQTj@JPW%>W0}=jph1@BW z+*eh7FQRs9*AlRK!|#qJi`_kZ6; zD*LQRw|H&4yW-e#>Zxh9fSu9P<*#Jn>az*TDjXp|!4Xq^ikvG%O;mq_4B^dRY_Tn` zFfG`%VN~oRWXm1o?36famHLY@S}(}X@?MItunskLr^y7y^sS9E`R;f=IQS*>B-w28 zs%1urV8`?k-V+SI`|cI)!ya$?TBZ1c>%#k$zw|zg{f064%ZCYkX3xExWL!A1z5cFl zLl~6$2F!>h$7%Uh6`s}Q>Ou7rT{tnbw8BEI?O?5jT-;>(RH0IOtH}>yNm%(x5 ze?=JfAFW?Dm`Vea=pWQ27B{ztVNFFk?zpIDR9J z#pewRm!1U0GX@n|Pm{O6+TUn>q|X!~9YBzoA+_5+NWF2c*jezJ0?f=@?NAXP2lzT9if0Yib5bl*KrD&c@w(!06)mu2t_`D=zG7u6Tv(rlKB1i;Me1x_5tk_1Y|2lG~I7;nG2r zPq5<;wk(wuPuu2xq5wM-@Xpu1T^yQN`{q<<2XLH1w(UrESW-eRsNN!d+XO)oe>NYP zMJ2G8l$M?ktsj8S5$8U+dH*kRfRLin2T6*>+;dwqj5@iAu@)Hbawzq5@-8R&?82ch zx(CN;c98m0f?><@YW*?RHy?Y(*+LV_2&T0cu`k5KZ6}ni{u%N%Px@7(_TBEqz2dpM zQ(j^9Z_)*Px}K2vbrgFz?6R62X(*uo7A5N)Qdmt~wnoS^-!dv(9(|l->lu#==oB?j zPo7jmt>a5t-9|_3M;nD@Ci|my7q9Cob`dus)+h1*^w);K&2yOs?~YZ;*R~YZ@qikoWS7d=1SR@?depuktg9J`N-Nh?c0|=+mL4$N2Lb9c7yivGioV^is}- z4#oGn8}9&$I8(H?M&_lRgjJpXP&E~|oD^UBFf7-G+2|V}HMLFBLz}>{NMzpl0Qvc} zoyE}BY9{HU%^G8KjgG|0yi;p;JrXE0n-RQVJx?}=9lf&lAJG8Rf|@A#1@o=RBo^>S zE>uH`Y=n|LSPii7A5j+Q6b86zbwm%LJ((?>sDB4GRbq^<(K*84K+e3~* zv!tGE?$R?|xeV7^>8o>u7mkv0KB20eFtfD`n~bUdhvc-G!X!-<+lg_piC>7s_+Co< z6Vig(d{S3YmQqmAUQ!bHkLYqbLc>#CYvX~MNCEZ5HGNSz;GdQD^M%2jc`ubIxlpga zH9&J7YbAu@`j%tnD`%k?M89OZZ0|R9F~EGR*O0dzByndxx zI^}P$&(f;IN&O(Cvo@#F!_nO#il`p^>!kmeFv}53KYR z0z2Qx)WAmCwBs#gUpHuYwaHe@%K2d7E%GXH8`E2&TjdKCY}tkrm_|E02~H*k>sltH zJlt#LJM+ElhVC@}3DlK=CzM30Od`N&->^_IGvJHK{E(N9_xmjEM<+u*BsvCL*fqov zOM%`BWpey0dzys2%3Gn3!$2mT`VXyTARR!*XtZrs@r=Rgk4^aaAn%lBjo?hxD##90 z^7^t~%N3Yh8{fe5LDPF)V7I~w&$OVDAx-D1Oqv*5&N8s=M;2>9)PEA^6AcAcB{qlm zgp3PP*odD4p?1*WkYn62PW3W{d!Sk1LUC0+cVKQ zVsgQTALJJyHcOPovppcpyZ{0(9+U=1nc zZRw&jt1Op$tMM<)Q|j*i95}XPX$>t?fuj#81e zq5qlek9^%$hX=h9X0e0bA;DwHz0c9^&fx0l7v$N3ChCTp7Y0sQDXyNhuJKB~{Qw+w znr^T)E9|Ts(p}QaX;#$hz%4_rU8qwELtN?)BIa!X)Ej2pG*NLz^F7(J6e|yAZ|itR zmF!JHu6!?RH7tUXy=mf%98eA^@cn1K@$4|0dcTZ-uAN`5uko97r@LA&E9;hQJ_iKZ zDVKv}s=A!K_Oe6v-g9myom9uXA%+0W1NU&tHI%Q}#({f+w5hD!`EKHWvTZM;zEbx? z?pF&;uA77!l4^6GJ)6l$HPg!@R{gq~$b~Hx+;$m!(I8o0W1u27s>*ALEOKGM8VZRZ z#f!frylcrBj=GOg0a0Y8CE8x5+8Z(nmQr5wrv2gCMVNnxd>&km5?w>!nsZmQ^vgI6 z(~pFPO4F{QkgVx$eq$sT7U3`PY_Sw+D=j1AB~hs=uV{@^X`XG7yKqIXnNv9vT&3H{ znA5a%55nBgP`--*Pj$K3E^?uwC@$%7cZMXMnS-b1Dx|e!`uW5~DSU1QsvOiZ56SuP z=$@ZpS*VaH9R{Qu0ZLh3J$u*rY?Xtuz%)TP-LHl9ZS~zZQvG%F`CUur<@3>cxChYD zog@29)iPCriW>F98MVtK)gKw*IWHP`d~1MVnr>W`SKl_@DW^kk5EeDq)qaAHxU1IH zIeKD?X9;hDxe@xQNH`OoFy56A)bw>JZYuka=wHu8rIea;6xh)yTAhn9HkKxA2caVi zETt-BP1%%Ac#I$bb0b^MD(PI``{|P}DN80Hhqhi4`j6gh1-{{w#kcl`)W7G$0xqaD zm+W2}6794?3^n^7MduyP_V-6|-AgI8XRWFczNo!gL=dB5l^CrpA-38&)T~X?nk^!T zQ7f^v_EyB6v4dE(YP7%n{>>9lJaO;Gz2|+->$rlqPs{EdouoJL<$9MX>eF&Oc|04@ z1X{x`OQ^yj3W9e2-c-t0>a z`=}hix}QEn{_2#HJM2R~$!kjJ^&@?9s*!nPxpaSGq{zCUBRk`E5R3ga9w!uUOrtLo z^1{oi5x2~w0aWYLW-#qCvYo-G($?N&=lBX7QLlqG`M9@kNX1>_lXYAH8DQs&IQ24* zNe7b?@b|MfzfxN4ADo(q5T=Ggv#!nj2q4l06m~Y}3Xe8icKZYL5h}qkP{4Gn7&w zRehs*uQ=e-x>3>P19<62;e2tMEWnl zsO;-Y%&nSPWg$1t)+a6I_J4)S{K_U9uR{m|$3ZA@ab>j5;kNAObAgdz2D>Mu6;wiU z@5D#c%-d)F`W{DyK5slidze{LmMp)jRR$n2_c*(ppGaOCU4krJ3MnfiIbK??8?tof zX^T$QzlO#J1wXs>Nx`c?lRb15_S@nPLQrCGsG(C>axH<*VYc+Q1SHtC+|^9RHL7PS zUW31mf@dBhb&b;ASp`Y&#Hc(ERe&}JE=s4WDL5>hk3c^kExz=G$Ex>Rrn(UDe#ai$ zua%2=k^0wX1`Pqgtbjb9^+-V8w9{3zKKH|Dq7a`K6w{01#5}eJJbEn8RK9`L2R{dl zj8OpP8AVzjc>A=-yF+Bt_)3EJ5U8r4%Y{Ag%h3_&ylh_eOos9j*1?mKSBllO!}bJn zg!o#XkXXtp3S$1xj_cN_2dln6^sleSgr=Cnp?%C0R|W5Oy-$K_4E!kS7_osbddHT; z?Blb&Rwr28n$rGSX5*bb1f#sL1Jy4mBDuV-ZClwl`ANgzQfPuD7*};gG+5G%Y}~Y3 zu@;Z%-h^MP9+$fx`;Ld6`*yUZ66ItbmiAKIansVz;QhmzfRVfp1wmBas;Lx%?n|PD1`+Gdh*Q30mC}uUroTtOB;5d`w#9s*`5+_DW zXhf}_PT)rR)i2Z<#cBfQ_Ib)K%kPG_cU@|O|6ArJo|`H8)|(?qmB$0ewa`jd`F@I% zOI%>i=IqH#ft}beW5;80tw_}s)IX|W+1Gir9Ummouha>uL+P-i)s{O;zhy0Te&wn` z8%1&zHhUDsRAeIwZdJ-A@wq&Szju4w0=GkN`B-eH&d6a zr~mR*U;L*8_hhi|1%yI@N3kTzcZX;2jsO{ll=Z@TbGUY_x?H#_3dbrX_8%OM(G8fp z)v|ds|1x5*f4&t7(t8>mbTI-g`KhAV>p^L6;*X<_9`v@YBm%mC%f{CUse^HH3CYw|} zmZl?i!+@B%{kaJhJ@67>;WX6&tA-9OLN6*6iXbME#d?Rxgndrm6jBJ z%{3k~JUy=h)NA~HU1K*pX@5hQ)8kda- zqoOr0x)O9hIH}80P4}4(}Z&99bXpY->i8Y zA#fT{2LCNvX%tfUjSE#@J)#iYIE=_&;B2^0_7?kfOdE=uqP1;W|o zIeo1;>0Yox7_+p9uVDP=7S|{C`pm>pE_n8(MGmK7bE)sg;X6s8CW^kMvR#U#$l16j zi#rP%?eN7&piLpfcWtF^O07{ zIJ}ZMCM-oG$5rZUpMil|-((uN_Un&Nhl%mTCx17~LJ0AE7C}+;SC(|r!Q=x<&}$|N zPg!%1#`Nkb2U$Iq%+5P0Ttb=^(-}=m(pa=ptmL7K8Z#BhorhxsGyh}wO@)Zx+Zw7Q zCL$}KTshx)a9QRgS#>ONwYq7u>EL+MeOK(iHLZj#c4U@Ci>=~OnYigYf_syetlo zvu@Iz?6po3LRvMn24s`nS4|Nj+orh1$*A_IdfZ7+adu-{wNXfZ-5ag{-@uLmyASan zlq*-4`=QiblJrn(S0+O5(mem~k#8)Y&|EpQ{%U?K}5lakE*ktoV*g_A9f}Vp&T&fOt?&AEVas;7mrm?fuPp z^+Cwkd=XRi-F>+-Tlbk9LQ{LbvxZ`BdgC9aCEg+2kAXD=zP1J|cYxWkV#;B7`sVxJ zQKS|3Bi8?@_KX!LRX$qVRw@-*>L7DaPb>NZ_n8Kj zjv9-vZxAAqqutJvKC6@hj^B#23a9*}pTz~R=T}(+dyJf;2w*eHvvr8W^#h#Mq>{Ss ziA|xZYh^|JI(0Fy09XWGaj*jWEl+Oszs)t|`D^)iEaN3CA;0|tIBDleFZj*hSXjxx zD%XhAT*K~ZE~5XrneNyz_$`F8140RN{h=9oY0jJavbV1AXuI#sgMY)#&D1ir$2l>M&hmJ$F@E6nh=-fn#;eFGzn z9+HYU7FBnQIPBG_>UnQEn0Qb3EgmFI9wU6KkFhi}H^#ZK!XWdedFhuwQzJ@IvHG(` zC;UxEz9W)tUVPNOR~7SZagAN&OqM}?eXs9u>#IRXLpjnjqX$qYW~0&5T9$BVJ>RVe zPTm_);EKhvWsFi%N#x~f@G*kYd_KJe9+dnFmjt+u&=Qh!u z@s{{F*V3+KV0~6@yWAuBI=0+L)7f)->XOp};$Bl(dKRBq)^B7M61CN42a7#Y-b~vr z{{8-x60|h%b!q+mxy$)leIniZSbo~+F3KS=SkB$&2oU{d(S z1j~CC>*)Z`bQbJutU{JzgJziIqB#tc; z-@guvuHup8K+|pNTK948h_t7{dFW^6RV%S}$Y0i@d~@I2QUGeJ!2%82=7?`%ed?TO zS(%}|&6w~5r^D&t%K7QD{UqTeL4(nF-&_lV^VV)w3!e#(DdgGtpy+RhFg3L~MIf8vy*d6sYA_*87{edLZO|g&(UafP{)X7W^Z}MD*BK8Tt@B<9~EN z)TX6}`*E~^fs;fh;(EL0B1J|`5ByEY!e+tdR#``uE4gw38VO12e)((rf^I`bovQ8- zm-HS0NOR&rJ@HOlJE&EM2@Na^YAS51!S$m1iU74+fOcm08TBDyz2;oxHVN1hr>+04)w`?UJf|rwm1I44raPfwW7KtOE2=w zq{)EZyUjlS>ajWJuq8M@&?M+WgKSm2G|(uj6}`j4WMw=?u@n?y1*0)n>MOoW_{{Sr zxgp26tjiyl>ytwS+&y|cbe^d%5#)VV*XrEIi}pGCTCaKwzdu~Fcif|9p<`&>|(ix6_hv>J?n3Fs=1&P=dxK)wUvPy5#JWSL_KSt!f zL^0m@Ia8pZtsFR=JSV{{*MqxZA;*8MFmz=>O5n7A$nQO^lc7={Pc&0z(U?Jv_<*ea zvFE0;uur@L=FLS(e5pLqo!Tglj()@f{iJI?A=P@4eZ82{r$9p-!&2Bro1cIQbX_7to=1tlDA%dP}xrHdcb|ReS!chvzhe0gZa2ov9vPLn;f&NqoPfhBJiQ)jl9nv;+3p;`JSVA zQN=M?<9aM$rp3(FK?`tt&k7=rsp%_Qw}u1Pmw=*+OiAbQdBx5(JB%lYCx(JJjF(y4 ze?;P=YKkFNX99tLA?wPKyHaPzGr=(wgSUY5SL9aD^^5<#tzqYjTwXM z%`eYW-jx0Y7Pq-iFE^@U=@8ke!PsZ%3a0o3mfn0qKq~aqP&ts|kI&Vksp%BIX~KL} zASo!SuHcVJ&f)yXjvXp4!uY|Xb!vYnI8Mf zB!5-tHl?VuNsr%e5*wTGY8E5G`Hu>w7}Ftqt9n3<-w^wSCi(Oql?mIyv{D*|MyFHp z<^7ra&)bH6hY2K&C45>&!Ni<{vkAaIg+s!D^<*1@tG4a|&HiR;5X!)>J_W3hFJ5V<&i5!sk{%^mr9EHr7YzH)+6uDq z%1-zwM57=64>V@av8 zE*d=+G5UYV3|@><&JRfL=^QeM)d^uWDcv7}Ne}{1=S{tVbHk=<-Lsyj60khH~N z?-oMvqeu5g@-?mD3B8P`hsc8c*7_?YAp+R*f^unM-@q^95)c>8wKreF+ZAZq4-GIukphE3rOJfBENnpUwZH>OE4f#!lBI(aslH!|F=mVH9keVD=(? z566y@3W@g=ePGN6EgA4~i2q_nNb%rexw`gOfF zb8YL)=;JNh>yJK$Bb&Oca~8R9@l@9EXks8b(UB z+A}UxD~m#3Q3!+yc4YS@?kHz-I?COC{J7V>+K+HWh}E}OQf&L6z@>DY9n4~tcXMMN z;lgpkC>_=tcXm7x$w%tk5wJ*v^=YA6Aj_*;+Z)TvqU9fEZNg*yOxBabkB}$>M82H5 zWOm*f@I>Ix<8roAcJog<(sM-q;LPk4JPcg&ue^m7- zzh8sHT%S5eYBzJh4DiU7(v0jf?P zEl~P|M-9)&x`kq19DQQnN<(@^vxRj&OfNZ1ZYF+oI61@&Duo}G>K;#FVx>l|8lomq zfoSXOUxXnyz!TQ}+gKv+Y0*qtQ;|hh<*kfgi=V<|e+qU>`zK&rVyD&|+Hddh5b!G$ zcTXRk9pQG@Dr@Mpea;G(KP$L8a=~;3IA)L#EloLYJy?KK3>m!FRah?gb5>>`$5tG& z97|l55+}akWbO68GaUM{ay8$aCYh-5ku^Nu~Ft*j~;k{Ya=hGL_pFYmn2HU zjymHVbq&Zs+Uj6VAeN*f6Ck%32g+|&;XgM_E3;@BGc_$i7Rf;=+5+L-R6UA2|Fshs zp&|bx50{GR+86jEjWp2hwaI_xv1m^NHbtkcsXBxmU6XZZd@05Xg4M{UWIvoG)BS)s zl*B-IM)yv{KCc-7v&mN)uUQRKV(J`U>^+}OE?=L+<)Ub{L2taE-ggSDZhAhpPGW!m z*xWa$IA!JT9nks?$-j%!mWEc=f@~;ln8?bbpkbvcaR3 zt*Ah)>(wWs1F!05D_bo&C^E<$*w{Ik((43bY4a+Db*!p4uq5TAz%=~VWF@zBT$;j%a>>9WGwa&R^h|v7S?e zKmYoGF|Zl&*Li1qij+Qc$sc6+DI@JVOl2cUWVEQ&Z?WXw;52mp`mN30r>KSbdbzsa zXW-?^nwh)(&NqY{c+!{_P*>%$L{vtvC=WT4P>|I>4%_wDqM@^zmB=rF0Vjg-h0Yx@ zQZAl`-M+sQ-UQYtV4w4S>=$|C<}L*{qV$WQA(see*j{x-wB<}YJK~u@c3HZ=X>e~9 zZvW{e&y7W-y%$B5tqHd2ui8|-=;Tnx*%IIoKVHZ=@}fceAJxTl+vf$+e`GCZacYpV z00B$!bFeqqok2YNUYD~tH5eE)d5z}W%=z<=>K|2A-(j4$N5C+J?UKhh#;FOxKSKq% zE|;wAz0J&5U0*YwS5^?MtBrKKQumsZC9J<|m85bEpSa7)8)Udn?#1|?+gO3;t} z7OU^Dl%eq}S{j+6gGf_gb4wVB_Zv`IX4H^3-waDavejw}_mf+4;;<3Bzuvj|mN~4r zTv7wnA>iW1@o*JR%SP{qH)jON^E@R*JXdE+IrYPU z22u0uaI-Y#(pQGZ! zx$fRw?El$*no|-~ONffp$*N1k=x)Zw(1|%jJUMc%1=c(?=sOJ=Fmtto;v+!0-pSl`={z5I*D@>3K zaEmtfr30BTxKox}<{ALe@1H;&Y4*p2Ycq%SQ8)8_U3V_J#Cw@K zNVV*m>R8X$#S_d52l97(a>pDLg0$bveZBe2dfONd>eF zw)n1h>+Ktmy-)Btn;6UIhixu)v=8lG(DTKAp&1j-G4-kq&K{Vka}y51<|4i4F&4HA zHET1|v2E2My)~I=N)fESkks5mLo`b%K{MxQw% z!E9UGI!Go^rwz~rW35*rxwi>HBm`!xD+hyo9H)+vt10xZZ)lcI{UH~hF#A?l$fLN$ zr?%>Dq^u)I^bk*&$s)8v_=K9^Aizsv84jm~^% ztU)*=I1i*#b3(Ga_uZj$a8v(|1KnTPFySD1j<3Tn56|S^(0b*`4)5lsRi>4raOz>U zo^lr1>E_hWJVy;61i93sbNRYiq||-p*7tqaBFd*v0|n|c@k^D*7`(wUQ?T&s3klIK zzw+M@3tu^Ix*tD#_b2W&^L+%TQ<%!C*7UG?lP5Jrpd-Jr_yi{9BX2EcB4kh_wR4})-2klG5 z^~dlr4jgcD-xw)VVe&$hUvpIdEwXCn z=o(Un3JQmpJ=tU{i&x1@li%3f?}(CI zoc z7FAZts)jJ;#Y$rBF9^T-DW%kCro00COX142Baq}vW79HVe}rTFN0kXz&2MY7Ld40^ zc@!HZe>!4H%ljKfk)PkRfNl5Iw!8{SQTcy3zEki53g4IhQI!dK?0ejm1hh1qVDQqh z*74t`;4=?|8Nz+iG_)F%l*S{1O?DKY%^bI@A31fSFP+n~ztC-*D=MG)cuTI7gNFn+Sn)?RLRR#h`ml6vNic%zb?^mLo8x;Y6s5 z5Aef%lxZkCiAd>{+|{$Tq@nC{=Pxw{_QVH?N1^kuv`u=vZqae!PF+OKBv{4a)$j<5 z+|f^OUe(Z~Ekisc@DMiV7j=qO2Y8YwuH!VY(iTX!BP3pOj}Z*692IQ`x&>xDI~}x= zc)j!>8a~J1b;N4XcwclW?LW@<27u@MjZq9KPLK&Uu``+^ z3f-dlJT@gyy5EmFk>f59j}Z@bY4~!$NOINZi#6%ga(+@TCp0GdqI)N1PE=^cj zg-s*1U@O?S`SZq`O((X|?`-Pb#4>2C|mk zq^YWb*Ilw5$YA7qz2xdp-I&IgUOAND>|j@Yy~7q*?gER-^ESiyxHjmuW2mE!9L`s=ty!v^d-qoK}<(6PJsVy9&f;2M3gusbJc3SQ^D?Z*o19 zOtUMDX5NH#6Md&dc&Rrg*ZAr!j4>rf%MR%WP~bg8djE1PXDKMsvoO+~ zVv}Q3@_3fwC zcNObxdd&?;KiO9iu}jZemY4lp{xF*UQ;Y(~Y(3m({Ucaqfs1Xgnna^sjeb(n)Php& z@^e$w;v(2R1GGIKEjAZA0Z=f4rg%kNwHpvGlRc!>f~`C1{e@+U{<$x?IMnijANHVZ*)c+p}$?Z$t4}b0lnFZv{wflm&i-pzD7F{!_4U z3(sZbGf<>e$b)@y*0h0t;Y{=va!2%Bni5CUO@>0zVR6Wd#~YJRUIc(zGgd0+q<%?F ztJP3wX45;^z^rq0&cuilK+jp z9}B2juW_GIiydX0gm^uvZHt`vbZM{Ehe7=rsalqKTc7U#duv6X@igP3qK#B?+{su1Om445-vZ2A|w;c zRAXSitVK@mvKj;D*1tg(>-qjv7B3_@+j~^wr`;VTzqO~+eeH!@2%D`8&~kvJrm6VY zsE@}r(6cg;Em1OnxWKyZ=J`Wlr@*`ZSH7^hLKBkhfMug6*?w7o4VgYeJ+;8krp2%avj^^?=h_C!4#+tr4NFge$g%?Rz?I{DJ6 zfl1#kUY0AW*>X(9fjw`dp~j0Rv~}Ks_dsT|>A1d(^dbF0`Bq1XHC5Dcv3p*6b#Iv+ z#>>INh0BRYI}}(ny6MflQ+v&VF6uW=6eVZehrrMz#81mc!iJ4AC3j{aklpoz`9Usk zE;8q6<`i%IM$Goo`K8oo-x6nW)2pRF+_wWi`hXb2dd|lq>36G#EZILolIXw&Cst3F z+5kQ2e=0A<+tOUdE)J|C8RyLexm;)99%hl*74&mrX{b#Pi^Bjv(fJ}Nrmn;zUonI= zMyy!{MT5pYk|{|I?`~26Cnxw>F%pZ-JMRDHE}L2U4MqfW1qSwr`L)hk6JJEC(gg=^ zq+}#dZ^Jx@{bWHBeO$QtC}fo9z|vB>dTJuQZIIi2hl`cliyYPJ>0wnZdmCNt*C$Y2 z+0lYiVuXhxdQ}MfiJBlectZBNg5a(di+uWS(m=1bE# z98!%6P5Tg?0wC{~#k|mi)A$aNbj}lrWS zQ5}EyU|3L_5rc-Db!09GRoj2+mUPC^zSMeDK2x$A0j=t15ylx4U?rP>5ls zSvJvbqms(e+#GLZl7PwqmDb~|^?$I*0AE$KP*i0`ns=i`fk_{=#nMB>M58B)T*W zzo^oINXPHPHY24CB`dtPl8JrjhXZzg#r^BDgVn*q*q`Z+~8zpq?n8jma-4kqR+ zXGt>!dgZXD>@Qlp7RGKpN&7o*&gv6jyu>8teWzrUXATR#K~rWsiH?pt!i2lVRNiYS zJ})bm#o0@8jQ7;v81wmXv5&KhbSEQ((d++I5^w7OhY9_=U8FB9BOld|6jh@Qs$4D= zL@ZhfmyZ;E4tthT?QLL!k+=3Q&^yzXa)x=siN9(D+HdD6W?>ZH3qPoaj4J2t>y_ny zo=V0YNJ;>JwI+Fmt;{5x9GBz>5U+JcDN{iSoIUO{efGf+1`rUBK?k;8Fnuk*Uvbvm z9&B^n2J5D9jiW>Ek1IbONIan3dQP;_PM-Tihen^ohWN=z3b z2+y>0#iSvwj#}V?auKn2D!>YKDw7Rp+}Ym=1@{#+>7|^;>CH0|Y?c1wv`8K@E>&;> z(Y6nc8<+kd%{pLE2bPVQQ$7;~y`Ll9*x+emR4~4!Q}1&I+i?`AJ@3{(s*+-*0QPqz zUMuOQZ$qIGI4~ujV_6#UUxJWEv+51lk&HUgFqVQSW5!V&vF}ItC^H`S0lU!xEHvaR z-rHPGGEFA6VL~==C+6^w@_fEgQE8k=9hjdkFAqlCt>YR7cX_*Jp;Xg+f*aJr=qhKe z9uh3IR`|pPYSwy|3)+ezr+cz_YVW7|Y9)oj)k9?uU94p&4ZKxz`Gt9I`8eWI!f@!X ztMtsg*D{m!$Tv<8lOt=cPu>?+vs#He@;vZ4`bYIB=-HTnIlJQm7J^vj`v_{#(3iB7 z{Zwr3POwBG(EhA_)q^I)Yk(=#9|Nzsi~?G_8it~%FN)ah^Ydh~BQ&~ss5)M@jhK|^ z^n7OL+{DGcpvD()t|fkjnO=g01gOdF&R|yCkpM%B30lYGizf%b8@)1DMS(t|<8u%Q@K!Bz#}IBCeWUq_V;SQrz)rtwB10qtv+LJ5%u zPiHovtsoZS=QwM*on%=)uz#Ui=rBDGvSmJgqntCpvcpx3Pra5G(2#s$e0t)IkbvOp zgr$7HrZo|=%1QNIHM9?Np9(!dnYD?zG=siuBe2{gM>MM{87ZBn+ENtf$QdWRlZ`2oerUB!>r?1{BYZF1<{>W=xa zlXyP5@B5Exbx4_u!?far{c3FFQbHEvdQl0g!tpEFYDStwR6BJYH!26NvUm=I3*1nB4Se0q)* z;QCs+JY00!q72D-20R{QkyDIxKY7t~B-rIMMfNaIP^SzLSI_A$KGFPS<}7%i`g6BSvt1Q^Pt70L7f}oRf5s@@HSNq- zLTvhV*^Jg~lAIyS&QN49nd;+2R|~6q@xw3P7E2yZ41nrh zTW4j&k(CcdFSPMvT8nKJA7=3guM){rU#8D!yo~Bq1(0hH+&#SdX}+WUNk}ssc?m>M z>Bp3OjwC(eLYR0wJ-P$q7$2pCDSi$2U`TfgbhUQw`GU2@Vtr+jgYW*NxGew`d?Un0 z;26G+uFrM|WZKV-LoV){mQnqxG_d|AW}QUxXr6sta#O#lSW&C`grZt!grP(agP5a3 z6Tf4=5U*%93DgErjz9;Mm-oVlU{@mZX*6zW9f_5HN%1_4v-$gdb}@~Hf0!nDZ&>Zp zlvedOR!NANya?mB=0q~b>|v>rIcjtdf5oqS1n+odl*VR`N zP!Z6-CTPAhU7V9~`XiLtPr3>7A&T5bGtw3nngR&7#HzP*-(jv}-jdPD*$2>sglT0O z_2%9`?@^l__Y3=TdMUQx&c_nP0Me~4iJcrH!2vks2H$b7A{SB0NDi0q>mSu`xGKtG z0XN>^b`(!zhgn<4Ki!{rJrH(!GDRDj3?Q%SFrdts%^OrNOz)MC@G;XAp`Ih`cX+BuLxXU=%+iU!OXl%5> z(SMBr?{vZqDH6qMwyT`{8C%0k6@{xkkVal^y0G4~vl2Ox;Xf3o7 zXmHcV&(6CBY1;#N4D9!%Ni_W9mm$u{`7LXZ@XoOE?AzYvXcqlUk#e9?-Di|@PfAba zM9!Z9X@!EBZ?B!IC;0lamHFuY`s_dvSTTwgB-=xC{GL22Y}o1==o=uk>*C&C!U>O` zlb?sscjrTa6fy==d`3uaU}H~r;tp5Zmv`1|nF|zDAq6o^*>R8)LYi%G_^8PoS;{2M zc?F!=mWYom#Q*EN6+0*9~rRJKQzp!0l=|)rZ4E~h9OYT@q1(W~qtkPrh z&uBW3*%6duOk7rX)BL!8g4T)8KUjj(rfM6?G37afX+>F;;OoP9YHtZFT~c60|ER*_ zep%juvu8xu*P^F=VMgRYE8~#`f5H) zW6LlCn%g) zxQIgSi_cpH2sVAm=z5g2f+l!y{`K}3Mvhc(WO~ft5qcstD>2BAnVufNm#^VdI>ml? zoY1@b|8tbCix2|9kAbE)vQjU%4oTH=YGv!NHL+vhXBurDXTYuZd=KZUjYHK48(vlu zBrvs*M;RZaUlUq+pgoU2Q~k*w6iAr)T8G!lZESDR+$u!ln>2H20v|V_{qV-P zR$Nj)=$R}x5zOgM_xDD&6GKOKMG&QY{<&B(!Mv>ghy#LZtKgd{d*E?|fB9E{b@RVz zAEqSVGl)W_^E@%vAk6{(k4g^T;6FCXtN-Bk0RRjie|faQ0U>)>dNb!O6vjNsE*L0R zOE_Y*PJ^bT+p2J+<`q`_y>I5uA`xU{S6E%}N2b_sWA0{yMqi_Rh&f_JCvEflddsto z$z}Qy&Bdq?a6uLvImeiuKu_GJM2BmG&4n*IFWAMDt3`}5O8Z)Puae3;xOr5gBSEy6 zyimDonczhM)Nf1Nrh8SWh^OBertNX2ay0=c9*7RuoIdnZ&nh_n@Su>i00tgfpFkY z33+NUas=BRquR114*A6q2XKTfEm`FbY)=Q2P_~k^^EfoW&MYfe0&e7$@M0yq`mx7< zV!s%tTJv%ZM=`TSh#U>ab49!OYo2*}-F}<1F}NpIUCy7LWqQ$ZN+f6H+4PPr{~TA& z$NBT`eeTXx6K2|1@~D=djy1jNNuo4ZlUlNPuAyfv&w1yPD*}D)0Jo_|zv2dfOk1%H8 zVR65Kk`Z~Nxe)XLb0(%}BNpTNy4xL(LRJ?1;zedD6&5j;VA&toRV z-XRia<<~is+G|sfgceeR;p%93r+3PS3mwm170N^p=eV2!YEPc+y?DdBRsG`;A4s~F zZ%MT79Jw>!<8~ZF#7kkuuQ2jqx`UD)ChPr2hT2XbA_0>7G}ECSusKD;@u2E{BF+Jt zkx;_X9S(N?1C+~feYq6SusfnPFKG;)zS$(XX*zMU+61|PLy0M8L8C$L2GSzN6`B=f zc$sFnVd1H^O4sSC^2|HD|A(lnz;O}2?IWVV{1kJQxBsmU?C$y+-gNr2J=gHP%z-vO zK&$F7Ta{Jf@l)VH>mq6M$*B==>uRH*`SBOj6kCuw5bHweN7Wh3(CB>^&Ga}m6QY7fk*Gd^g9KG`rU4_JFNsJUR zln5Y{k|^(xyzrsa+oKG@vly5|pa)S`wT2m=-~@@2y^UPpuWCb1p9YGmpgmY?_mjFX zXtzLnw}F=;Ovhcq(hha9wGj%X8)+3m4LQb9FV1Q0U^mQGkJ2qYC~pbmGy21=`2qjp2xY$NPByUN z7q@6@3MVoli5YVjM}bMX-fzGg=ZcXk1p)qAX%bJ|e1+c1yfRt3X}Nk_1Whgmx;;`< zbR-l5dDk~Dqh=?Q5sIp|>*Ke2l|}3_ZfsAR;%e@N`U2`Bi=6sYe^#{Uos0Y`jP`f9 zWZF#*wrH~p`RY(lJv-KG*uz>SjfID_R8{<7Jy@Wr?Z44;#( zwig?-u#`&b2etC8WH3cI;wV1uc9jyVp|*>pl{whR0-}~D-zIUBQ^%;w#ZknV***Ia zM}{Oa%RDH_nkUMELt}o|e)dm<@>VXsO-0c+>vtYsVZ8~Ua+CqN!p$+#VfprR)P435 ze&GJD(VRj2>Vn^QR(s84kF&4k+WMD@*>WFON$YLIPia2AzT?zhXZuJe&ACT&;%w_J z4;v!QRTipIM6QRAq&e!%WMP~UVPz72y56q5^2j-C5X0XHN$J>!2#e5~Z37Z-C8wxw@JYqTYUL)IyW}tUn74PN=NZdKs6~ z2QB7ylp&NHY%Ws#W)N^4@`AO8)-#a~xB71^eOpgd@^u9h4j1g=9^Rb0QZXVdrCxvEFL(VtuOT;`Tg*z02u-nO*Zm$F zZx6K1c2!-(g=>u@?||gjNUV#m#=3BObe(J5vC1Z$Gyuh!qFqfn|UCojaJPX}3K96xX0raFvk_#xxusyTWF1 zW0huTuv2xK(+ipwdJ!l+p(w3WtUO_J%_jELNPc_6B5iTT9-(Q|*PcB3Qpt3r%ll(h z=Rg-f@MVwvk&J1U3RF~dn;f9td=paY}Ts*}t}?QPrW5PQsCHBzaBc-Uf`4 zNP??4yS$WSkw2~^V+F+iFu}^EQPXRzu%3cF$e(H|d`5I6#@*JdgXuLzzMlQ5*C?AM z%~1#x%kk3lKBMb+uc&>d+u+=RoFzu`(sOhr>(9YzgiwIpksDj8Cvx*S_yK8YQ~&;| zOF^62j@*ag)#Hl)qv$N$ntt0TZlWlnpn#;3N(=;PM3fpKAT1l9(hN4b%c61gkXB&S z7)UILfzmJJx7tEMFNCL0DAU<^pooB_I+&>;n+mmhAG) znFbkX;noGT_unnAL=j8Y#h8e?4K=!Z*{dpH55Igdv6RXU8u zFgb&vrp$;^2v2UU&MBVd&$f>)<`U(KgX)YSWUBv9l7e_eo9C9n(8cJsJX!KGs&r|#z|9MyJC1L-Egw94);TNeJaD7~iDcUS0;rHxFh zG^QZPgsRGO_E09I=nZig8@&ovdlXSc^rA4{XSp;V{i>KxDRwTmTN{@2v-QB0+xyDL zKJEajZY*PeY{|!YMoTG~viVz+i#g6uFExm#+l)Zd9xK9?@;5DveK&W~@Fddk&@~2q z6A7Kw7*d9Xs|1;T%V+LE*@z)=!@y;PP;W8iaD;lou_Z&?EIz23iF4X7&iV>o9cB_p zwmqfQb_BSEf6?wTiOKX~Uc%j~y|uN{?{WMB_3?ZD$^tGje|!6`&day!^BZug2*>2WfTYB ziH_Zr3${iNqIE={QBXl)1$0_Z`PdmfcTbs@1`OhpXu7{v50*n+M_05VbAB)@OuP5# z%MW!Lw21t6#>h|V=>77b5HEjwD~(bxBQC9 zOYj5*iW<9#fFVzXjEZ28^d~NA{^C?Yp!cAxU zw0jQ+v4HU#RR5eFR8q)E=DuVltRR+?>diwfu;Eu$;}$$))^L?Bk$YPp+P!@n#RO0} zHj9yR`fWWhGxbbU-QqZP4)cZDN_)@s<)I?~y^7l^UfjVk>Xfq;nUU&|(n_m0qn0iF zkt4YcqQeWH8@!#rM`=iOS3ei^y$Ls)UXBJ>=9fwtE-u$#70nuSG3Ij2AJx@ERz-tx z)e){rHSJw^7=e%XRIt~cGEtN5bNo7RobUJTqT$Vjq(;4pSBqA@C(Mn{R`zK&dPv~t z&(LAz?8W(h-6$Iklz~x@muc!MRGiQ#VEb~dLiol~lPE4Wzhkv=^l#L5@kW#75avoYKg4dAs0Y@RsA*#cA|bba+l zTdLpn)4dSCXG!yt1k&hU`$HQ7tbuyJI)MdPl2^~fu)g91I5>1Xmd{;1pu-?3`=9-} zGEMG!K!;Xn|K7$pAe3>+-_qG zFkEE{HT8D*=3Lq8eT#8Ef*+&VHC^jn<`DsU*471?TK=bjJ`S@m*3?7IH64xUvL_TUoIz@}e$G1I(I!gWHs>Mm2xpo+`Jzq?2ducTRqTWR}OeCZ= zmFR3$)%>$XJ!S%Rof`KFWt6}=D4zQ%e6B4fOiymA(V_KeL1%;1 zj_Di{iA7rim3;jCR|YGicA{vLm5wPf2s;a%lP`!KyUi!UiY6)m-Wa$NtS^FQk8O-7 zJEj2#Cm?Lg1D8rvrsEtjv4rslGbJ}8Yj9KvQ@@m z9d%Y#K2|DGUoE+?CEZ(AT&D_NqU{5e$)dUT(!0m2>_P6;++d8z0aT1S%Eo1tzK9R8c9C^e zbKg(L_Bg+MR=e>yMx<*$t^VDJy1JFf-b=T{V9WI$4@y6ZN!EE5o>vF~Wi*UC;99Kj z+?`GF6Kj$q>$X0D?DF56yF_4wg&+k;K#%`U~N$FbUvtv40CvE`q9ut`2k zShk005fzpc;!@msq>QDats9O~v;@PXRVEk0Z@oG6HUs{iYl79=WA%5tj>W-d3NW2_s0Z zody?LrTX0Z+hW4`BB1if$GQI7vKw01O9U^qc@`s!6C>Q%-HX9KrJydkI=6lWif1>m zK&%IrnheZdso@Z}rKI9wk4g^$*sU|ld3dAWd-cWB<&}M@;#Te~G9>bya_K`!i{Hl7 z!cj(RaIgYe6gWv>?{H2kp5+rkq)}8tecklkxtu#HKHk;MxZ$q1^$3)k$b; za<9E@0jl&qGKZ%#_RAH(S3kBk3C~eCM>9DIWz1@gCO>z6p-2;NF4sPf{kQb!RNFU+ z4jGD>k6;O9Y8*C9v|=_>|D`J9Vflaatg;7BQBz8ts6@#H3J9Put)Pc~Xd1RNP(o35uIjvBWY$A%B_nG{H3`iJDA(-mj zQ$t`PT*^F_Z!6LY*HL*ENj%i66wG2lWV48u4nQ~7deF+F8Wn_r8gH3vcF)JZC^b%4 zqx{olE%j2(p>nq*P8;fB*vWSIb{J1o=NF)>kKm@OVd`(mB~{NYAAWqu6G|kxVe6}t z6ao~jKgN^unf^EIx|F;#x6ywWlttKT^T}iPIe*z6mjrj&?D1&eBI+dXe>fKwnl=Fa zSnr;wO{8!2aoRD7L5vpj3|@X`imqKyRlTY^Ut2x-X5Mo<>pA8aK)wyL z{NC)HA)J1@l0B_~t~g$ZC@1a~nRw5BPWvZ@TkI)4K48vu5?%^hD-2nc2>d-CGxQHU zTQ+X;YC4fI*Dr8sBka*3m0`~8?}efK04&e`omX}BMMbUN zx8tck`%mok^s2z>=IS1^y)ex%$ND;D10J>6wG%VyXEUlSp1YN<=I*IAOFc=nT-IEy z{fppXVB?+vs~^lzcBkKqhbt_jUt`Dn=ZRT*kjNS@iT6~;%R|S00N;^b{dj053aPU= zTwWUQD$cpo)+DvN%A;E-?{c1qlS$WIzAP4-$|fL7egCxsSI(R@q@u%G)MnLHRu}(me`ASw7P^9yz}3+SY0DMP$6fC zIz56_P0qNL^~^04s%^)6;<(W!3W|^_E8ib!Q6=pQ>U9zdn({P}<+Zes^c-uhdB@z3 z%JtulM#LJ#DU(PoF;{<~ZVEeVG+)z`zG4@34Pd4F?5lMKvSw?>hn31_aeL!X4D)lf zh>?S$iR+Vf!dG?%iA>7U?pkzPh=XBlvxFNiepPT0`{S>*C0w0Kd7s5QtCr{5#$dr^;c#~3*&Imd%zqd3;J&Mr5ZT_S56j{U&bXE7JHHMf<<F@B;|z5qSOQP zH%h0cZu6+KVW-ut@P~k}5N$Mau<|!F^U|D^%(q>lXW@p+<^s-5!Y7rj*J5B%^KSX zU*sb+n7BbHHnO0amb3t}Q02?nfw-s;u<9{H7;JJr0-^?YeC!K7xHZVIG-#XGiQfso(gGOrWk#+r$`!5vCJfZ`bjeV{Q`d*#usjwPq@(~Z=TWsHd+AQOwb&6_<>T#D8IBl}ELfETgCDy| zjl1}JOC)QIr0~Tpw&o_Aw#h8 z^uoCaP-KxDndvCPnyW29wTJAnM99_ac^-)K0+;kA9?0DoW(|(hiq%>^MEL%E?(kYZ z(JwRB+tG8>8P^tBS1n-}W~csM_{7zX9=b@N;L45lI`a!IC495UZ+80=G+wO z;>BmjmH4!edhD=5C*;Sih&T|_-85~S!Mw6KfD9KTk3t{!>lsJxCVIa5 z3bLCW2GkxQF)2lAY07<5R*eCio^Z4Zft9xArW@!yfH0u$e>>>Zu!n`k`Wkj*2RW^B zBiV(f9()a_5byvQuO%KADA6p~w_TiZ+|KPncdjJhUwmW|Omd0l%R2d#@KsP*#Fvm# zp%=fcHFwG276gbTyzO<^|4iF4;>dIWTI%#L{E=_ZA@M0i6v!Tay+hB4yg$CTih8h^ zzA+%XG$vT2kJQS%=}vl}V>r;Q2ACFX)HwY671X`pG9rkh8q@-ssqcL&6ubp3bkps0 z%(3borYpo6bJkm5FQ`6G8mT=|deF@CwuVqg<0(A@TF?<6AJ&R=(8U~1ed@ravA(~? zC0C!PQ41(>+ZOG3b0!yt%Bfq{>_idMVS3g|f{N8mvDTKkkN71R7YA9&1l|U z1OB^k0}!^D*gUfIxR0ZANNO0PFY2rkE$%z_=fz9>t(%hPD+7a?qJ3k}{@kMfg`lcj zaVqe*X+8Wcr>H=3cnut_f2!aERWik<;w9IH3@x$*VQHcYWQXFg^O5tBEpO_um{r01 zKOA@aQe|n4S7(!Kvo)aoy3rZaD_MX+L50Tl3f<4v)V8U?rGZUV8K(G&E#nEyABnS< z!BQobiUQUJ2oh*_|8*rXIx0u^dLQ+C`Pvn8)9 zae9O|#AzlbYHIISJ>aMs?O$abe^D^0h11XbLzjO;>ZO^ZVxx_ChK7W2wii6J15)$p>tY`flcq@H_ z){yDq`sZ~cre{u9t``C4e1>V461VKb0Sj#F4RQsCtzG5jK<2nMw0e7z+%wwFg!12o zrA6!v7J&~~xs!sLS=7j0*UCLwt33wELiFWs`{ptWjUs>=pk$w8Q>E{4#ELR+p$In$ zFpgs1KkYV|V*$hFy_hMeqcES45vtV?SHP^Dx^-0A(S~7@h;i#c zzcaTz!9elF^bA3K#L@oK38ruMpWLHc?dR0TlcZIuICKn(53j*D>ox$ApYAW3hgPU~|G^DHo>pZg(q)`SiCbhmmnS{sUu7%M8P{kuOm zQmnFDAOO0;&*r%&GOF0hh@qu(AI z_1%jiru&7xlkUq?Bk}4!i=cwE#D^^?-$oOr4kJ=%brQ5WYuo8O34~>YCIUC3$^(|n z2=r_Z3LS4K(BllJc*>n0AvR+EyU>T?pFysFx=-q}Upp)z?<=b;-#J)S7=r6FU0*Ju z8i8luS)3=qdy`;rEnWAH$t34Y0QYmopVW?fhhNmCSDDUA0BXZUs4xHQUoqHeBq>#x z$$Qo-XESWescds4&akXX4eshyKZ`=H>2Y<=K1U}`6{iS2DKLJ0;K~!w^YJI85LADPF#86}%Py;hX}r8h^R#i7oGTZ& zM%F|9W%y8o1X`yo%Ud>AR=#?7=g({yQ^_pl zapp9(LnjM_qWWwY$bz(9QW3X>ndn<@nGOBSKB9`6-x0MkoElNZ2xE{y$+R4Qb)W~J z2gmF-h{Jze)Kd&>>_11j1f~sZR5)%p@Pms-BD8%=36z?!LM;nErF?$A6#IKnlX|Qh z?(a>xIT_@j^A=mJPGHRM^&kcRF&ov9KU2RMs^fxd3(+Wh+hhd0>&boNUdmVIc%*r| zh_3YznHpf;?>WY z$2+?vAfjS z#sIA$T(-51qeR>J36nlBo~r6R^`cc}Yk=aSZL=kC-g6;+J642^@YrO$rBWwbU)& z{je%%`&@8%1(%mUbm2Bqi3nfNr2L}4I{S*I< zYS?;&Y4Nr>oTFK8i3ml-QNCCL1a)*&lMypSVRow?&zY}11<#Sam>(oAQ?+l0avXBE z$cC7LI@64KE}uR$*}E`SmV}a@y4!GGgK=i=HD!;*Nw^3^1rgI!OwuCRxee_s0`3|hq9N~@z@!)glh zJlZmpw#+V*yxVhoUAz1^TEk4jj@mljyBPaH`cE`uL}N2gt}?%F?D= zIf<|?RicLD_fTRq-CbYu-@Qg~0PB?OeVEdly^WzHH`OeGZ&Oyfa`Akt++9L@ejdAr zKJMjRRa^1Q8q6e#$jJSI4O8$Y?I7&`0)jAFc5fY{t`_jVUx1Bj$=NP3GeF6gt(b2GPw;}1=W49a> z^H5-ZSk8jAZ$anH4}TQ2I(*4!bZKAPWEGWNU%z3rg2oG>O;{5T+5sE2_aiZ-BI6T&(*N5!J5>)D72G!5AXteGrd*OIKAi z&?BTYQL!kLt6cui)9F8&AlogVcN5P#n-e-FtMgiG8oobMd)WAeqihMqX8rTSG$HK;}p4>UA2%?NxOUVn#2fd)$gLE{oqIwg*xU}a0Qo|$(9}}vrd6Bf6 zxYZA1RFRS1`Xz#rmn`XFZ!^<>7le-m#Zx2dwQvXO6CMJn20%>s0p|sx0jyJjzmddX>Vo^tr zzO?|#WS`Rh0qleLL}5yJWmg-$Xy$T`$Xc2-`5hQh6&bM*FVb)5Owy=S#OObrn|7G4 zSXb8@8Th1_xcuNl5_u~7$KLP9hc?);64Y;djm%Gs_APKjl7Xkv*T1u96u(y{Tr*cH zYlnmI6czcEQ2%)^OKqy4sTAyGfmxN>WtB$~>K~L{e2_Ww&k{jE4sNA1P(MF>V9KU! zWT4f6IF!VJi9CM?&4U9fI;k9;sXzGui7vN_dhW<_cf|c?D zn|a^Dwdj(*UL$RQOQa6BW1AkP;tgK(4B&9VG%;BP*;B?hr8zBn;-I7x!Dh2fsPa|t#%q3j;#p(p& zGj`dU@33-CR~tz}1>P;=^n z*01cO;P~o(*H@|aCO^xJus^jBp}uj|L&nUO;zQK9J81!eTa@IGlR9nvF@q;w-j8^g z?#s;-3UjQ@V%<#tk#Z`CNtsY6c(P?0n%=6zuh(r>cyDgGd$hMcWZ?JnN$qoJz%C%MkUQ}9V*m%b#$5eF7_;)|d^>N?j0JlOK zh*eugB}n|kzU7UK=|oLo*=B`_vES~ozLT-4Ogwp0N#x12LhH!euI%4awRn3%7t?l( z8srTiN`{X1;df+>6o3X9!e9>hoTqo%Ej()nkm7keh6Jg<^T%Gg93Jz>RZ%z11M8@cvwHDu`H7AmmU^)B*O-rvItWc~3q!W8fyVpC zjFB;YqRM5puI(vauMgNZEREYN0?mq(?>@0*HPlP@8a#4|Ic&&t=x;vSru9DS4WWYa#34vCvEf1XNX^oip zNg*B!%o4C>t>8&8Yr@@xJ@I3sp~c2h>o=2lF3pG+f=0T;SD}bm!W;1?^}oL=2IjrJ zdYxb8+vhHRE-2lZBWZocn;Gi^7}tBkCy~dZM|=UYlYIi!R=`B z!l2i=U?yvW*=H^)?-P5o2#q-joD7Za1a}Z56MM8*ZYF+T-He|ul6>Rip((QT_Wi$U zPrgeM=`zCAj+qQIt3y2B544Q;C#=f`f9oZanfan2y2$TSJ;^>3WB3-;J5zRP-Wj8(K2`aZ%gcDjdaBN6Rh4tV%J-`6c~CxiiBi zv8UClCzM$YJwybd^+5|r93Ds)cf7pLgUGQ7wqgp ztALgVVRl==NoUH&Fv)+y?2sdK&Fw{;fteqg(|^Z3?qd@@fN~{=*~Nhvp8_5NnaXKS z(WHAIrE0>2^1ytunt(VpXK#NwFEacpO_SmG|TH|-+=T;%XBGE^P6F5DGA1JNxI%^erUn7=X#zOowPKi^eC>DxXPmG zMIir3E=JQ&?9I%iy!~F%8j}SYJXMn+)_8auRl@Uxyn%mTG;NQR`|zz=OI$|e$Z1GK$}$PWTk5p&N0&dHB~d~1T(^Pa13m5 zYPTwXWWevgJ*ldW46JiDsVDz!QQ!0Nv;awsiY#NkEI)trtH~xzV^~bi>O1=)@Or7* zy~COud6ye-1(D`zUih5m7lNp$T+HPmq|RH}TpFqB+2$yl%U$OjQ!jmLG40c)V9}#9 z{hb!=-eS?XN5~A#=8wPp=(|>_g?E=M)WNsdc&emf-tG$j%YLUdy?fFwMv+{No~Fk` z|5A+GL@Wp_UaYmACWWO4RX)|KNgd2-g+cxdVTr(bNcVMwC63z{Fs4J-46# z?uS>%Lv=%fVWu)2=drv{?D{)t?p9n~4kAr2ez3PV!d~SN=#yP9wru|dWz6iIr#7Ti zYux+Dcg;Mar|&(hYwpNenq=DcNviXLt{KTo^3kQ4==)eOu*6txs84CkqoMOX&Bz$K zm|aGypS>LWxgpY2y;v&g`SaV>_5|zz?rxLCFfQ9{^*z|$rUB=;ck3gQJ^RK&nvq_5 zdG`{4gg>nhN~G236u0d{|1_xEclz9LCfwUjc3)rjweIPNW}X@r6bHZA0(#w}8jH>5 z$-=MaM*7L{JP-|dkQU40G0_k>*W=>8%v1tNgjunUstB6_RFK#1;V@FX+yaVrB64J_ zVAHa@0ptWvK8ojN;*HMvy4sR!3xzw9B zIaOS5uW3}#YSTP51!1ewvhxV;JLs*%;F6Ly!+>fPtc|$5M!Oi2gfZ4hbK&Sk&-yh4 z#?bm?F_2Iynd(0LaM@jf5p3r0GiAq<)_YVF!aN=kthQ%jeDI!U*;tJ2$`r)p2ZSqM zU=M3DlXiBex83K<7hntRj-?o1s}N%FT;Q}r@$sFaY(&EUIalgiT{${?+f$O!Y&uUE zb-ah8m|upaKPGR)cq^Pq!-auSC0Z#O0uyc@ToPS{f&p4^vtUk1h1koH1*%48-S`^Z z{OYlm?Pt3_A2QfR$864bDAlxa&}?&lL!wo9y*UlwkEp}XAN+TLNyIq1g~)!IYBu5K z^+6qEh;nWrsucQ3h$y~@P}hzphhr4p8rql0_H4>vZv@pwA+hrq#N_jqryNxrh8TM5S9ho=HJSp;zg>is3i1-yaI|4||D=>Zf}n(@;*UHRX7-V3 z@d;6DQAtiemi~I<+0#a05<5whyCDhY_x4>6e<_0++gMx*s=ppEo1j{)e~@zrm86wX zn>g|WBAZWFIjw3`xj6Vm-gF`bDgG6HVcE4@eg5UeAAAjOX1}rBPYKL}X!ZZ&j z?1H%PbB=fSAR}0QvA-+*yQqKcYK!-#YDPV`$V2M0*E`w{_=L@T5wJhyM;GeU-^M1* zTzBlKsT;*sNO9@Fi)pik&Sdv+em4*GZrO*p(91SQ1CM}Cn3 zJIR8e4orJtZV7TJJqV3UyQw8LtXQWt)~=ItP- z;5O84I6lT#ww(Pn9dEw}Umu*Oh*9MjIAO5&MWY8>*885c4G8O!#z^@`0P7bmwjWbG zwsEtEH{DE}+#vCbOGsGN&*_e5bs8V4VOL*!no1a@?6E`rq37Q`M8QF3cJBPV!=;uh zB^EU$9Xj}O^3pEw%T$1OmmAJ{FK?8Prj*>1bGRD6VFH&}?WMUl)Q)`7N<5trFy$8b zkD*MR+UJg9lxDQ+c|4C_ro`n|MISqXA3+|9^QE|Bk^e4K2}V}$g`=Fhpu)-E5>(%m z?A1VC{yWRKgYx3lXGS@VKUYA1um>-IKyC_N`;p64c-7FL+lSBncTUu*)-0rH>zYvA zi?g_|&;BHTSV9X}-FX`N%jXWPD~0@zV@z3iapotMQHXvao#WA>X{$^R2&a|C44je!@}L#WK-=LsqMTz#Me=Kw2}bjcfONj z^@ctk;=Jy}(+zX9=%q;=u+0Ucz7lu2DFuyS>3XjN&>-n% zjq5-w-R0qW^FXDA$DF~sb{Um_St`CNk>jNLZ;8U`D z+Y4$ysLt$cn;+LR)-4Masu?9LBA@L{sQh<9>B<8qu`i2Sp?2Bp-MKdz%+E?4V6QpX zwnWU+#Nc1!>a|pDU)tGNFfPDqyhDZEYWl%hPJAkl^Svtu7ai-p*P)BTYHu^@oTC@&7&-A?;zh5k!^inyh(HXGbk^}wx~<+Jo_}n)IPPZU7k`25bO!jR)UxI zY4QBBth>ZF!KB-AuYTceCLQP;4wE00y7+H+DfiBDP8FIl^y>!T$fQ=dce9C2P|&fS zXI`vNKP7UrJaisgLu?9g^oyeNc6~VO!$PM}p_;91ySt@w#u%4Bbm}+1ah%o@KgbB@9E-Y-6k%-tKuE8_iVS4__R0qgAO}(NOL?1XpiTi9*xg zF!7DM6RbZE2eQ)ivvsoT8p>gHqdrjAmyP$UX3UTfQVT79tl!A?adL*|g<@Fv^KUw1 zu3lA#nGb=g3DN2{X*!6>GPXC+Erq*mT2VEtamM@L+RKrdGCg0Sg5MG(Tq*GTv;dnz zbV#gs3&0^$H^`qco2!P11Qa7qWQ|7KFN6FNNbd_rQ*V&6RTWDG^#mjh9%v5r7+8es zbr0R!Vrb;1S& z=!BGI26Mja1qbon$qfe_>glEjy!V3jtc+jxPAJi^l7yfl$C;iPeWAtD-m-8u?*z*A z9(@H(JXp#}DSa9^QCT;NKpJza&GDpw_f>PeEs9fp=$(g8N7sMezUx}`+GBLhnp=4- z(C$P&4Q`3`n%4rhWFUnN9cc^k;w;|1D!c*LT5|Sb&l2}s_oq|lr&mx z8|@Mo`YgOjKUYL>ln7*b!_#pqpF{WSTPBeXCYe0!;V|5zbnAL+*bSvOj1FSn4M8dS zs|HL)`UA_#;U9g}LrsqV2JV2amoo_V*mIN3eAjS&b@LzDH8FRi|Btf5xWRt9r8zUc z|1?g|v(l+v)4yL-YTQK>t#)a3&n$>tqD*2Z@ux}7XB>;))shp-r-b>i$)H0AuiMOp zrgsw|yh((|6t9e_1WB$A6FW4Unu6r=3Q-bKTrRHfIx*a#$#yxqFP{Vu2_f0WCAGZB z;rjs`i6etuBK}VBcuJGME zwkDX0W3#a#^cxtPkt9;~wCdpWuAm&Tlp1RfrKbyuilp^X+shZvHgt_Y`-8}(4+x2N zko7Z~7P~#klawEs`$gB&AFZ4D0@vhixiGuD*2`K>2L+T(-pPuw3oR%^n;jc1HjBtA zs}NwKx5(>q&?sxo2z9B|ys35iRp+;7&sSOtG~OCQfT3l7$Lov4|Jw4Y9I1n@b5L*+Tzz z4R<#_-XJ4JT}(;CW>TyX8J?3xaVVYH#Ku8Oxr*rfqu~W1UG)&q;oGy2sH!UfJm28$ z9@VNTfJVU1u|2Jws&S$8A4@kPozXeS-}^vRq&8;S%K4%^5aN%1&$;udx>1-Z#m0!m z;7X{fxL8Gd`mnKQ@tOodtW8fJ5*y5TSZmy<((4KV?~H8y{W|esl+af6_~;Qi>NFf& z89IXJoA|1g|9}JBYceBB-uF4lXXZV9dtx{VqmJ+UAXH@@A2(&BQe8M2zQNq+Z-V7S zRb5QpixKv^RYC-k^&*3AFfz*-(gV}xHeRmx?cfWU^%_(G>nYwT=C4dhYa&FKPtRw! zUFmZ81cn1!{3c50Z$YN}EcN*(s27KdtZ9}&mRMIDV;*G$3vdQBfViOR5t^xP?;-HS zJ_6B2S1K^0c5K`>>*cg!$&MGexX921G%Fz=WaW-ymStT)mAFhGGL}y4`1nHK3y{T z{nvthP563>76K8N+EE#-7PZlBBv8*vP%ZamX+IjZ@bM22+D;CxW3{3ccx$I#(_e6T zzava9-cCwbk|fP(;soo+{fjZ{Hz8ws*P=p^daytrPFAxTiEr3dT~o*8n=+r5i=*0; z^yE-EZqAlJv0#Q00rSK}m;2LnS2@PCZ)?F9lfxEH=6BuqgIo5XX>%uLCjxsiPd0-Z z8Jw>(L6|M>l|6!?uYMpv6mp8u-^NL6EdJ#o>A#9IKPY*x5xaEfM_vCGopGw^DknBI zC621Sq?{OQh%$m{a)3_9u8aHXnNRBr?CK$ZI~R5x0C;;|K}`=bPI~Uix2jRAOF%j* zDZT6a@Gt?s(rJPNVQP}(uf_&P|K4)eo8d;~u= z1z&ROY{}YrA9-$65;HKetq(z1s%EXP@#m{S8fU}oak4}$Wa;!1lDEJQ&Dyi^Lw~_nTzo%kNQyWG(G=KgGcGIQkc0#)GS@Gm30n||`XTVc* z#W@M=b7f`u~J+OpF$mx3LrUF`B8Hj@@C<4Md8NnU~Y@>38l!O$(S5bI(S`o zye&i1hK2(v;xvnP1fZQcC~>4p;np_rSW|j(_0E#k2HV1-!H*X&fEEyvpkAcU)rcxh z)7d18g_=8qzmTPM&Z|3z1^?`-Wy4j5AF1&b!{15;;5Y6q-85WdAQq&cyI1D6O*TV$ z;pJe2IbvvKD_^g|{%|?VU}n|4h#T44HEPBk%kwKaWm$@k^q{^jwkaN2)6fWO65r<> zN4!~nd241k<8P5Rs=vuR&1R-r`r-Y*djY3xdh+Xxx?UC|n7{SezaA>OpfX%M*t~9D z4EWiHUS%G#78Etid`v}yrAlOjif~=}{_#dQ7hQP17Hx0UcBrA_ zcnb~sTQ7B)`S}J~7rHAXD|ZLh8?k*qC0ID92%a&tbS6NN`W_9;Jxc1V%tv}k!iI0U zX~snZ-S)bO>6VUi>*p2 z(xrSL8vHfH+yZlrva&J#h>E_mp&6bjLwVQQseXkn&lFH9_oGq_mq%^*u($@8I(N!> z#z4H>JBaPBczAxXsBMJye@{!Jr*6r4PvlM40 zCOv;hmE1PZzU%D7Gr~=00r@vlOAT^et6((uY!#O=etjIuE;J)R0I1@FisoXFknD0} zEP&1b{C=sg#kA>?|2t*Dh6oY1ye)-yjrf}ZuOm#wj>8}boS#wpyMQK$QxrIA_aKx6 zda)QMe{dLqkGnZk5>_B;neITTc=|0G!p&d*FK;o&QWTU5$!!_)p+ zf!j?i_PR-oS|a_Uu~y;VO7kKnaQ>qGysa3i1d{ES*oRY)&1ib>)dLB|eP0c$OU)d$ zB;DvhU5QU3+52*gzo1zR?M8dS=9)ep(}>iZzi4bRUaipRtgF5UF3TCmNRiJR+Bo&z z26N%voYOu!F%vht9(B6e>rO(mq&ev*42$ex3)n~YsFrvk+Yass?-9!=b=|r8yr`en zHumlubNv0MrTV&N5lDbItFVveqBflsU#%apu*MN~3@or0Pp!6t0&VH-I-k1NYO3mJ zTXW+)KHs?e0*tvGE_fc_(Xp`X`)O@%4Iooo%ZTidjKmC&vDi4?uE#}lI?&!N5J;Q7 zcD+WuTogSEhRPfyj2r-67+1yr=hXu0vez@u-`CkyJ2;~`5r49_d>k6iJAaTC_X34k=Cnd&^T<%D}) zX_K|p7lxWGiVPXEMGZ^${excCsH5h@QyLw7f1WDlF%KvcgI|AZG2;c1Bl51@kl_{$ zN(mSK?QGBWB9mdBMR>6Ry=75O$k$H1Kj2F|9yE&`j%8@^ry4|BNlh9a_?3dXeaScP z$r{KL8*0*Og^mRA&SGh7Fa6nT>p(R{NEda9;c=q%t@I^64j@En|Gx`-1fejkhW2ca zB$N$*DJa$EPBm6WUPEbX36g2 zH7)0&*D-;+Uyg3TdCfn|T}#;567hApg{BI!$`c*G$=X|lE^>w_2@fyYbi}NF8>~)Z zskrsNbR-*EI}+!DGZJk}QvuLWXPIzI9#g)k)Uf^HY=24_4A3kMP3D*Q?}E_3Pbnii zW^pgzgXfQ~T<6#0Cmo0kt<1yp*Ke-m>7_6)(*y1)EK$DQ&|z!(uq53xTheJza0+PJRa5Fe zc6Ct9F4JEc#b4U|3#v>V15eoj+@GGLUOT^FHi1e7J247v(DLRmPJ12AQqHcbki^^Jzpk*|yOJhiQ6q;35( z&J7m72+{^&`L^G;%_m};fn zNdwY?=^l;W;sMfYcY;U9tkUnhR3#!}uF1SytVYi#!x|qYuZSxcxqVlz>Cx;ds>)VY zTIpC|@aZ3V1vo(op+^KjU=ZQ6*t_Q3imF3Zamkg?c6|e=0UK)>q zaQ!507+nLt5^IbuAD;`{nW%HRlJ+w15v>|>TuH%k#SR|fGpEWM9v`8vmVRnY-OCy9 zIsO98B3Em$VjZ1=U4s(++*;{C?{Zr^Ezo5pex4!_7r*s+FcxuN;0aqjQ_)(MDKvRhqfEkj+4Cw;v$BtHORU_k|f z)&-qK)?!Bp@;0tdgVg(~n|VTW(UHRZzQAnX+zzvkQ<1d)jDj;wdZ^I9s?5jV(y<|y zbv)!#}EJi4y@jOI3y{#loTO}Uf%dr|2RpPH=;d{h9it@AFe+L~kTHXDAqAu+V~mcfPZ}=P$r^ zUdx@X+CWS#K!3vYKvoz`wRTcyoi}*vb)mUaB$+5j6h{-?-PfJ&01IA}E~_$lQpX!> zB30F0#6V)_;pEF$8uTSk{awU_zY1lmm5&?n&VrdOehjc}tBu}O3kckquaI;ylTM?U zFaL0Kfb3FLsnog%Fl4p|;@E!#N2<>_iBk7o4O)v2?$tHTsyrRZiEc=t+d#0@v!on- zYa5CM#5lu`DhZ)<_(8k4pHf{*lr3?()=j&DeM4jX0hT0&YD=Q1eGLa&lxMFw&V*OqrwniI+DBYxV!c7jo%x5( z`Bhex(Lq9Ek9<^xqEmXQ*KgC03AF~r<>-)#S`n%wy5_u_H;>8}&U_3osbZA6BfWZ$ z)DdP4&B#s@#k{vW6i;c~!Xb8hP?G8L^=sM(S2kbHw4`fiVYQ8%&~P5k*)*&Z3}x!# zAe)laQ<$Cs!$HW#0=yNX`hGuVM(h}_H=8Nv@`{XlLky{W{ym^8XTc4rf4emwFcBsH zYR{|KRzh^OE`Yt&e>rKKt(Q{SmuK(_$rGWg>qapJNj6Q(N?D!GN+i*ds+Ly%MB;3E zrZt+h9qgRCO|NJJmQJ;1WS4Xx0H~)5Yr>r3AEnE*;X6S&y+jAVQ1Bcrvuc{^JO8>F zSDQ{+#v7XHDD%YYXaOO9V`)B1r%g!Rym8I4X`{OaZV6fkF4b;y&1zzPjNrV#t)>PW z1V}yqs@|rCww=e2V0^7awp%E_vlyv^X+*hZs~)HLSt_>|0h$T@o|5q*I^kXgU^lH- zXQc_7l`Qq>t;B?ee_@PaV&OQ)k2i(7OgZRskXQ8|C*ePq`%iEtirY@mE7j162@76m z>KmTfhU8PnJX<*;J0Dux=3y^Iwr>(^R8<`D$(RaBnD9sO*U)X&5~miU6e(DM*TB_S zd!TVYwbD?%UAwsMUnIVz;@R1Du@B(m$NP*3U|DR#%yQ|FOXm?hhOF+hn{wvxGGeef z40*DtGKqPw@P0iHew*CCX2GEO0S|yE&Kvwr23C<~hr8j?-sbaJDy zJOetVlxUBF;1>l3B?daMd(p@yhZyMlt)b#F?TDgr>c(vkCRNsPwI&e{B%>Fw=H^aN z9YFuur7qpuk{BmyMH2_ei!R|~Z`g&-fZ8DPrtY@$wl93*T{wz1boNuQR>bAh4vuAd zWzSUu_Lr+iD@f6aS@U@PGCCX2)t5`) zeyhAjD&pB9arN3V?!ndrD`t~OHI72MdB4jhhw=tREO~=c?Rr2iS5`ZsBy41L3^!{Y zl5c5Q^yho#$(oTAu~hB@MezO0Oa+xX7^PN9XF2C20bh+&>Nxy}0``7EthKJrp3>XitK?fp;vv_6R`Itnuy=ty@vDH5vv z>3|XK)!d{oq?L@7tdSA_mc%vcwT{j=H#hUF+Ft1TPx?0W77OXXplzX0ue10r*JphF zQaq;1T2N5K=&(s8@W?6Y$(#6QyC)}$egE!;3LHfV(MZ4UE9UzEEaWT`72wyR!%AzH z@Drf`{SD(Oqvc_+OlaG}nAEXz=4zl37Hy&LHTuvt9x6cHWnoqU!SD&28ISyiQ1BXa zFjrU)8dR%u5#l<;U{N1~>>8U&Yd~68f^%q73YxA0VvjU^acr_K(RFQ({&%bL;vv9* z4+r820_$NLTgeo_Mp{x|s+F1IGw-a7;Xb=6Q_|6uVLKfrV`Cb)Cj_%!e=4Sl`S_+|~lvZU>D`xZf%EyvHGU zf686kyk8XG09gV^4=)I3#A{|kcdz&kSTr7-l*hsLCZ{y{&U5vMg)~34JH9~T5PY#X z__$Mr&dk>t58M&L^`FsZsWS7QSScWrWgk^z4@&E zL~gJa;KMWDy&q%SBS7!3Y43q0Ef%A0*w3t@O6n%uw6-N5fLf$pEJ^-PH^Q+JpB}5qgGJ`Jsz}*4b_~R)r9b8oiB!~*d~s(5PDS2tWhd8a zz5NmfrO{j$0a3KqsbxDxc1*}K9q}M!{6v1EV%Cf|$YV5uxMpQg%%ST$@ zev}>_=R_rcnJ%F);O5~6ttVgc>eksIM#EMZ7d9inPvzzkec(5?lwz?*jSGYe0ZPq) z5=p~05gy!V+IXvQs4ZV+`dPOz+NkF~?3JV1sQa##MNgt(5^Fj)GOw6j-k4j8Bfb+x zK+77v9ys9Bq5T8QNBwG~Vdquq$b9E&(WxtSCpq`m5Mt>7FLnp(o+#Y{+y(!VR!3*c}xIT8-yan-fHb2xB)dh=ptSR%Z zHEHaaRab7S%+x140SuC3+(2TH8l}O=^{PKl%OYQ9L#cx}4f~w7M9pP|M z_a#5`pyj6vIYG?^vlTN79pC+CzI*mYYb{s_LCveZxA23hWi5_L2m{gBdIOGUlc5&e zh!1Ll>i5_@do|mxGcrnz(fj{^i8Sf{G}rVHgX-XgVZW-nMSGLGOOI4lmd+}9)(Gxf zzkdUqN!*~y97Kox;)-cdrrtQZ6zm@nW%i_)Y2fu5BG>%5y4oLOR3Jb-AXIA*?0+G3 z%61Ul73CgVsZbXXxursL@-~5W9jgZqlcdnKkci4_Z$If_t4O}AK>LnYL*Yh?Pkeon z$O$H-4X-CBVrb{;w@B zLMwy=;-huyzJV$jmibi9#>^KUY`_IUCp=d4+_~cB*1d*8`aj7@WpeE_2fn zmdfUud6EP}icrs+_s%jN|HBGGqIOU|e||N+^-kI=LwSGKxnj5=n?U~zQz=(o}%nmw*bmpf`MdJ3ngv_l3 zC_7(XRKI#kUF|X|A%P=-@7c~iu+pQcNp^4dy&vTsp(5T^PRp{@)Z-5v7()RF*YsOQ zZb6Iu;%nSp+?1-^AXuMMu4Xg;@00HLT{y325ZkV%ZRNf{9JXh;&g;185({fZ?a*rt z&EO#nAPJuoWfH?ecj{eRwZhQ%RPKi})C8Ew{(il>N_W$Wsn6y$Ksyw1F-s95ssXHF z+%}W=g`9vu)PF@&InL<})u#xKqMfAR92ayHpfi(AzO1CVg7kr@QpEHkaJh_|{k8#Z zCIVl|hFR|=qN;~7+P~2Cfy(Xr-MEGo)eyDSL#;mjb(9FEsQdvbYb22?|F&c;6BjB^PeYS>BftR*xev&$02< z5J~#z=V+Gg{Tr~X&2hz-PtsVWF5MF9d4h-Tqn+VkEmGHd?#5W;iETBfAjUAUXu~4t zJ@c9yu1khhe}m7;myz59&zNa9{NfJvVpa=+ulkVIGa0z0^4WwJ;4J79yDwLuJzP*j%^{?Ni`Z&Pr)abh4O+J^ zcvEcsNSs?0mf}q2*&DeH?){_n?EFq9n$7) zRbBa2^IxsdO{0e2asIJ!MWeuj?KlysjrzhW?fA*IRZ{ zq4T^~E%ya1Whhn^+CE!tS$gK@F$H`n<_`_dOSHXhj2mydR%Zv3>e>o8q;o#~43c%E zhj@d@HK^n_#1KC^pt!P~6YV#N_j+Sj+9*#}cc270BSa1+sdXtpRNXDGtG5`jjpV*C z=j9)O(oyC7m(_lJJ_I?L4>fvx=u#5|Gi%ebHXrSNXrXfrJKe_DH8-J~+yt~ClLrLF zu=~R2KND8=m!hBlR+Cf%0X_uScb?be5&RT2-(~)##NdGS?|TD3Ts4OE9O`vNjCvk=pu-^_jfIE-$?{1V-Fg!hc0kALOU<%IQ$au=x|_tRdSYr@X~4G)O@ zun>K;2;-c9{LES}Z1(o(jZBO1KsuL7B zFU(sTI@{q3?P}9?x|Y%^uG(_W24vs7gQ$|uWlhYx55M<*t8!i8Hzfn5&#l{k&DP(X z@M8ZHM!sqasS#XVbnlOsF#DXtB{xDx_&Z7!JmY-^odvqax}7e|W#Xt>^=VF>61U)r z=TT~MtdfZ$``QUx?6aXHCl^rh3Rp=k;+Iih-z#K`D=42{V#c(TPM*kY3_wP%2rXFr z=Z7%U#B`+ zulnip-}6}%FG>!R4BV_r4Yw0cI*o6C)HaxaM^4w}!Mn{j2h#Y8;|{umY9WJtSOWEv zHStKbQjq8oN+t>IRub69vt*93Vsh$&39YM>ht9DdN**Bn3UMDg`e)I z1&k|)s|~xV3i-HQs>|p)2StNM=TAywrVH6VHCOdjDySS&8ob%6@_f4%v;Lnr54#xcg}x>Kb~uA1 zNJ=}=8E=p@jf9xOQRY=v4c*bEl;LD(j-_+MQg>bmo(wHIrqI#mhGZOdX7W%mPJhLW zJwide*=N8pHscLs-j??JQwvQmeDxb1xQ2KwH{^0b{*t> zZ;O9Sz}pG7LG57+<9%mXXTVd)s~->Z&d~T;1`KuAGg$D!y>MTee^sbn>rHD$N*e7n&IgaIZo8+j1$fjt z2=~xtR`^^RSCB!dwT=GNF_AfN1JIP$Hu5W@v}wwflh0Ym_+-X6Z5$Z<`t^?!&p4x}e+2_G3-YzUR{?ZxZxaTw*ubx`2@x1=ms)Zb@Md`J)hn+FwaXO9J>UfcLx%)^tcqT4YQx)lNI%0>iO^kR?g>dU z7G7EHIpOn3^0v;;`PWb2D}zoNCRcC#sT_1^ohFL+_Z@7qEQ*3Q-!%Fp8IaD-kg5N> z;pe$897`zh;VB%d=vKCjKRLa7Dvqy|i}7(>JBaLA;JU?v$eE;ORBK`yFd&qq&wDc2 z7cwuE!|7TKyR}>t@7^Uyd47A{d)xn+C9#G>uc?cLX@Wq-N0-!r6t*#m>FutK+}ZW| z`q$OxJfj%LpKV3ibF(F%+vfG)318Nrk1w#cXZOq7UT_6>p<01}WbduLgXjdQ%1vea z-{=BbQ1saNEk~bfH|TrE3qLc5M;(sh9DJHSr12)vVW-RHvu6LCULfE)!~3(9@zSAj z$*gnm{v?xXels@=D-mQ2GpBR68bnxgh2JfE=y|o^qo3n8P3$!8dD=ZFtN#P#TEd6T z(AR#4B@Vc?|kL3H)(6qo|}$@3b( zI)8ZyDlMN*(po7oCYX^td8Pn<|&m(Nnqi_(kj%R zx1YcCM>Pwh)S=0{Cz+o*hHjuA>Lrg1mkb88$OPsc&?Wae1@dCW&dyz%Z>>yLC79t~ zv!wfxA3JAq5R)h4rC44NEFgia_nyNV^Xj?+;tvW6 z3U>;X9bYYgZ6GxE1rt&z5yf<;BG0*cIk-+{YmcxB4Wq<>prb$%Z(EG&M(Za#UH2g9<`-8OdC5QZ33KF`gocU_vLYj9yjotMLJ1XgHig5LXSAsxP|2Y z9Ue9Sz)~5kY;3J3+4n8P`vm#(*WA(jP&YEkI5Pkps})Z=9kx3zdK_#qe*SX4gZ4Mi zGT={}K;PHx>9MWNr`D=#pO})%_4sVZ7#zC3e@6=l@s7Rqi{7E97LVTS{8wE@Iu~&Rj}Bi&!-Q_&;gVJs<|P9}aVofJ$~w zxH<2oYPFYa&92KG0zQsM)TA&X`2Q(cPk8Nc2xbT^x@BgJJx<;B82N z)QH`&puQ{Ntvf?zQLnfjPD^`s+6Xb!1R!!)+|%OdWIPC2AB&!qp6yoxt4n^Obu>1h zRy6_&<3C7#(RZhj`dVU6lFdPI6Fbq&7eLl?aek5pf0HXJS;GdFou} zs(KimbOBc+AMJ9Ktu%n}RE%9?dUJO+9>*@H;pGemslYws$8denTl=A;qXy*PmJr}N zjri9`J1O8Ys?;Bbra>Z%M_wn--a&B^@Lh2%;vH#jIu4fdR6 zdpt!fq}yU0ZhP#mM;`MfBI3hTcdgZxsnY#HW&e2do!jKbtCf^@A#J&zgZ&QaYn=z+ zn_-zP)MMq)LqRGYc1Q*{J}S3=3S!YJT@Q%+EE2EU+`i)?O;+H>$w@2b-ogmsHYGOb zIiS;5O2T@oXs^1I1Tn6<1A745EzRymelR zzOmh-NREsBhl5v%Zpn75yCbVG@&M0IAe>xGT5ZqcaP%qxxI8hMafL`|3;bm}aA3cF z&id|B`kZ6fYyrAoAdXroN$M6IJ2Brz^n*)%!mzVluK?AGP^&&p2U#H;`oV%CL?>5D z_R$s=2=aP2pKI~kf#t?6#9c*keXLMkC?6uY%9PFF*pqx!Q_bD_Tc#65JLJmGtx^i{ zo?obFr?1g8oO+WoBuT9;Jn$#Z>1nX0R5kr=atDh?7M#y`)ajWN{CWf-$QT=&F<(12 z$>6nLc0)5(oRm6Uj`sY=a5C9ttEa%j1+@kPcr9(fu5A>4XR!@m(XJ|4U#6fw@y5k* z&xT$8`|Isz|sttAFi3**xm-y#zBtxh+~%0*EM4j#OZN6E-mnsZqc;87 zo>Bt_M^_cFZ^%hVm>~b(X^+|Sfo(dv)Pf0+d-6C0zB=rJl?UG+k2C}MGNx7u60sLW9cfprHezPi|{o) z%o$V7dYpm$y`)rpZzrf&_ro`%8hX3_{|^9C8-BTty~=wLy()XzeOjI4X}osmdjhZi z)k4Rjo=`A9uaIF0JCCFEzDEgI{uZrTKcU>zgi0E$`7%<&Lx@YfllAG*?!#sD!EvLE zm0WiL_wVP)>Bd4wjg8;enqZm^`c&iU)hIaj9Q#ejqC@Oj%l%ElXfxxpKu+CpP{neY z*}i#|6S7p;C)4t{__v?KQE*^_ya1G|1k?SpMz~_L@O7t>TInL?|8CH1ufps0n}XK; za7S+QNQ0%Mv;A96m}uk zf8aHto%-ilCm)$ynjfY3W5cT<$=X#k+rv@AZEu@vmJdQEGW@R4JI5s9@fpP@1-&oH$hrWnp9?ruyA2l|{)mBXA zGq)ERx9@fEOrY4zv_r+C=iVNC1GO6+o(gNw!fY{wG?s~^y;ZFix#)x>vHK77`vK9k zYN)>d^f#7HLkDuOU_#IXrm?zXSUgg#mdTz^Iw99hJ;{?2egDkM%-P7=h|Ov9@%b82 znJKeyHFj?@><+%9wscqWZ9?OkG9NZ0r_Zs?EWPi!88;YXq;9zcFs}oXMULD8#_AK@*^h0mLt|P@ zB;7WxGySG0Go+0ob3fq69@k3Z*Y2xf3vOj4XK-sbI}?oC=W@#v$dR+Z|4L(BGr8Wk zmoYhMrvDhxf`MKmnS&@8&*HmN01Xq0+P>sbo+o8v+PnUQ+nR5@0e?6X42PB+Lpe$Jt+UE+B&M$0NO6wpl)Eb&P8Edt0)H_`RI7z}h++5V&ZC%8LAp+Gh;J!yi`D zOQg>Gfh=@A=7R{_K>g@0o3)&man(c1>-9}pO+y;`q2)P~rXsMm#MQiINu=mPWj?9i zFzf4_C#BEkzWd;kTIPZtTLAY8t=qzMg^mVV!U&QGn|!LXk=&cD+Hg&TN^3~d^)Np& z#_M{G$L7e)ed@XWCiR+Q%E)}4w;AJ%3f5s-=T6dw?hC|7t)TCP z{CXRwq4<);zIYlUAp9aa=C;%Q#Q%>UM=v`?#CVK?_nASLtC$HOLUtDTxWmY!WWmC6 zHLb&WrvBzEgcm#Z=edG7%3YzPT|aqtLFI zQA=k(3E7^S=qEncf7u(vD%{8>+xVqpw9 z#Na>05LZMcQ(n_(F6-6Zv6?h6PKs-y)i35zEc!5FuE-;lqKO!sKSBLqFpln+4s&F0 zY$Y?lQ^F+E-Wb=Yc!Cw<%m1dwz1^5?DuyLV2DECE7G9)(b7U`SsQ~M-(kzqRBHje{ z1!6$y+b*^fF_UbTw+%@#^rh6uZ=aUgUeF*3twL-GD31K0S5ed>5kdon;UrD73aGfHs)KnmgrecXHo9%5Km^o_*f;$5OU4{?6-gSJE4Fz zpRc7mM^tBHI=;yiJ#D;I!2~xlz(omd4M>Y%+18i!Rt4Xr5^*{OS!&?)dYE>-g~k2c z47VV(hI6Yv7Uj#8XNsyM_piyjPbQdkr_O!rY;d9niKToYPL*N^vi$d(L56~*vuCfq z-As_!*E2Ga_-Ay`95tQ8e_MxBKwsEJNZV%YhwVyyDF>A9iu*rxeG2`Yh7Imds-5=+^D`5XT3^rJ7K?q-MI1@3aRmL&oN5=m; z>CAo?{)r8!usje{hh|849_m`=OfiU2_SxPkLEuvPAEUsHJ-;v#iA9&%K?Ujd=<{FM zB-(jV$3v!ta5&5_7 zT+;|Q2hR|NVl@6uT|Ap2k-*trc|C2J6CZy-m-Yp4!jp}j)ncdG0tRb*S~Mu~(y?cC ztw0U67|%Ya3#B;$4~NE;*ckA5#PIfXyv&EvEpFagW^+N?HJY&{hHm2}CI(H6+9xt* zW*|nHwKvcis&-}m*IN6v5~-H$0tkcnxbCta2$uVZx2E4Pfe+k7vw^XCxQdy0s=*c4 zIXd9CtICGrFXd~Y^7W1EZAczvrfg?gI*U9DprwiE+amxucrR9-Su`(lks&%}ofxo@ zYzlK-=!?`Lua9RIfCk%q>M`&?2fsipk-XFQd(2`q91m90?36~+KvE%$b>&}Dm^JHm z&#I$Q=6>W?)%JboD%Br!RgeluCfpv6*)famZd{d1)x~JLI70uHMoK)RzaNCYkL%~{ zF79q1+I8O@y>ILCt%GZvTU#Hhb<)s!!WAPKa5zD?_;I^>`Ai7%oU|PIx|f+I{$q%~ zKIZ%8_Duezb@<*y8Ati`(AeUKiEpjogh(U8sCIshpKKaR|=cRrMG zn_XDVqn%U}46}vL?&MraK>v4R(&gJtr%NRvv|JczaCrCzq{aNp>q%eD(hdxs3qASkrz;%@y$>$tiopy6!1}ovnn&Ea-0N>>22<2 zX0%p2|23D>0RHpY3{4SLM;Cn_){Iy&lA7LnrQS0u$qdpYF9QsF`qFKa8V?q&Wq$2{ z9Vy}{BK3QZXTpmU6jIzjWvq0pB=Z13Kfc60;wUThFX@0HTK?1a4+u%K`aJS-rJPtk zFD^kxHH+9YM0pGm{mkNcw5iK~q~>qUX^-lsJPL}#SJ+w({r+ToW64ydvk8U_@9(Ar z%&c*9^EDc%5^-#1-rNhkXTLRK{&yq8E#!&icXH65e1Kgh!te!r8#)79tn@Fx5(!#CKRM37P$D${CbhW*4f!C#?9VQ zP^p1|4sv7Jl8}d9prz)Vt#yS%*ESYs_>x*BS!@|Fseu0>_}~Ghs+P|_?%8a$amMz& zd^WL18gyr8CdOwQ0Dqk}b40mcwewVeF0phWPuF-?$4$y$YdWEk`q^dhwQ!jiERC zK`Je?2@b(L1Mm$PS+Jx+-d@xb+n6VpmuCfqn*ZDcqvej581?D?t`rw%&bC?Ec@(?N zw1o#F3@VRg8ZDKiU(CHb)7pPgGH62njmcMB7i#g#?4T{y`n4rugAErjTT~+{3MktW zoIt3j;U@nWY6h3aE3{B;MRcyWP})Z>fC}KxopoPD2YLn9jWRtap{1VP|A4%@V#m+a z&T1?whamAgQk$PLq#xPH>{R9>jVoN~Jr1Yst5f?u4yWj6W^g#4LRju%e0Wdl(2uif zxv()b13BdHwdVH){S!RL<h6^^>ELbQfbG_|IQjm%S=Ed=Gm$f7Hp_#Q(Z(>w>8_r?t2Zg% z8qRtv6Df8J$34HGC47`{J@2xPLYYn7?QZ=+7o|V3G=}q;Y>~#A(0Cxtr05b;FRqEi zQOTOs7*fbJ8m$aG*#I>}{fy32CnVvv4P`ZuaHBKv9Ov50<*uGW+~< zF0l&~AD=#zLx=(faG~H5MfyaJM>ocn>DcSIjpK-e0r<3r6A^-`N4B7+WXO*LbjCrz z-0OnJBZdoR8sMr)aElywiRrq_arG0Q9&w}p-5BsUsutpZ%fUr+y?W_nzQ*O^sv2gx zYh(iUTCPusZ*tvF5I&Y`*79BueN?T4&1tN^$HBqcnS4f`t9X#2rFvR949Gq4P%J%i z+E1>eB4~y@Om3FWV1jqQ{qJZ-A1kdko)8>d?Iu+%w$Nn%K*!$i%P+GKk#uV4M z`RYp{+&S-2gQ2mj+1=}kU*n5AK!p5N1@xWy`}R@&atyb!WbA5dv-Lmk>e|w+SLI&Z zY?vdYCs~Q&R;UEO_hg$2$iYHOOU<{j?`dBHJZ>6I$$U#TB>x|EC z{IP)tMD(R4446H5cz6*QoM(h$buAU>TH0nI@yRUpqwGI-$1c=)yCP^0EqoTeEzi8o zdkX>%;ncdRN8?E3O4IfL{<>1i^?)vgVLG+2M?{y&swY37#MZ7^2jgcKIKVI0}4q>a5i}s0u9S(aR81kZKA}6KgdbQ|no}{0H1pwcC70HYR@j+eY zUDT>!nV!jPg|_qDHW(ULL^EPQ0v668F{tGwPoSkV$AFS(gw#LqoQ$LWO5}f9UVtvF z>V7RY>-W4km+~{|f*QuT*uU;c{v7*j)i*TFr!d->)lQdjyAYAE4Tmm9>#GuJg*%R`?K3i?q>)2KczrDnN67vW#19?9zmf=z5yr^van7^y^&pvj@vKmmOB#>xZC#d`G)vuDN#1=OMU3F1F_qGjlJTZ7S8R`gJGjwEx(29l039 zT2MjWe_*P070_q5im>OhACj!|PN8vNA+cpTr_bDpY}KO*=+ND!jdhAm3kDV2%(Oq% znUVy#jT!8MsR-z}uAS-5i>PRo5-+1=;^U4(nMnyN!?&)|&PNCReuhwTNz?0hl-ESW zo*APw6pV`7P6xz=62IvRcjQ*R3XqLXhYr}`{-oxlyy1hhHz(Zks&J0YC`XnYejaYH zhG6M5muyEUyuM0}dxgaSdlD6p&YN!x(+>f>s+oRuV~e?4jb?pO6}z1P#$%xi^uJQ1%%jR9HPQ4v97%UzQ@4ygqBV`&tHeVU zg{7o=UG;f*5=>rB>JGt~J|-v2y(X2k3w^EzKYg?CB8!>^p*N#?)MWo$690(5U$H64XkkTQ&*wM0O=hVXLULk`*$tcai|pR%2oY#jokUD>r3D$xvI)QRF9#z ziaP<_<*l;3TMG{)nc%L88$++*@vpou&5mtjJ(riA56OYinWQHrfYhxT&VwX`c~6BW zOJX5iKE51{Z+rGCl!;A>&MwB0o3#8yNFeD6!Bx2X zGi)c3v{eZLFj+n$IQO5r)w~G;Ti?0Pq1ud;DEKy4VJS42bNWlvob^EH{yO=<^uZ5H z4?yjvDC-0ty5FvatIx@VY^si@vQ3MY+#lJ2iEhJf-?|=Va=Rh=YK*?UW3^-0Y3a2}q*>V$S*& zVJ30D78LaE=)$bkY&@D)LMJK0yTwIS3Z`)4!|XgExcrw8Is9fpzngZ zlD?CH;g$U~O``=*g+skxCCc-~E^UH>YD4BqWg*BS<97zz&CC=gl8^{a(!Ch)bLWv> zO1#&zlo0SH*ge&~64xW!Xf`00)Ql|3=wO`gXuqpW)!AVoBr}7qW&vo=3|g~naPR#S zoSjw-$QEU@OCEYC#%{L5J0@#_sUHa&i^d*`#MX^{vY%If5&VS&^>W;tvGiDAd7$~y z_yN*7L7Gt-(D#`m)$B=0!ANjG+E$)U2fhGdIbfD~vKzaSow-aPnI&jB6AS)kyHfBI zO^*c-gA!iud6b8zAZL<#h#7NRw5qlw9cez5T+l&44SM4Lz4hWXBatC}g)V?D@dfK1 zscw_|jR?50uRyGE)t6|6y~oWlwR1*BlT}G?s4WvLagBbx6>qH>(3qySTjlXVVb&n4 zyX0}+nEG#1F4_vGXVsyt7>G=?aMJr|L!(v;!K;5S&{5V47uShTXrj;3c}_wV%rBMq zI9mH8`YO(vfV0r<{s4T*PPSc&fLZcDEZ?(Q{)g&-IJ} zvRc;4BP|1+=3 zBi&dK=Wql%mMkNZU%wAm)+80J*p=vK*cBZQn}Tu&u~8=+@mUjCS1wWBedngK%!6$+ zKXVwhiZ#TgMY|fWd{S@WVWLvX*Zk5K^g%m19uvyINV)Mz|P~*;rM0^y(4s}#hv_&j!xr})}c=aiTN zDm7yy_hDCP?&S{Zo1~|8y?+U*8t$d!*#!uq8=}9}Bxt@gU&iD~sh?Ca3|GXgi4S37 zgZJNMY&>eTMFkZZ;OXUZ@|x_uY2qUzDh!Q}$oa0en8&@T7OdhnZrOMBFDqcKP5fuj zC=c_WK0S~KcXz&>-xub0Hls5Fn(NJw0@?M{TX;7P@_k-!Ai;pR-dXv_Hh?9je)n=l zsOx?IhZ@1I=Y=*7&)xl(dF$VI%Fky-e7pq@*kP)cCDuri&(%*aH>=Tl0+(v#=bAKC&@1R8hNuG*n(+N<1{{<|jU1*MA_lr@|O-ol; zD$}Fp-czq|1-Ww*HCAUz;OIvcxbC)bri-Zc8`l}18R?;haS8LO`r^nWJ`Yv@D`nR9 z<1~$8mjLv8DMXlu}8ezRPioM^OE<8vcSYX>d5|M`veCjC;V{y(zF=BOK^gkJ(281>?jCU6Q0@ zP->yr`3Hf!yA2800N_0aUQaH|knVz{-eJqglmFd_ah3eK;gw2WI-cV64LDxvE>PZB ziQqp@kLrGMY-M3q{-?fPDBW7lW+Dgg1ODf^Tg%;80S>p(zvkUnUN9eQeYJ3&?5>$u zsMlth;l0pjmnv-ivhEoP6nJ1KgL82vV5oxhwMy`R`mPB&UJyUp+D z6C5;pIDl)R)gxpZKFW9`AprKXjE9qdz1GJeXBh;H{m02V%Oe|3D7WIR$>dhoE40n}tD+7y zPdF)OOLw_|8D;_9Os({d@W6_hnW5T_&RzG)hK#x`^~Ij{x;vxI**{7JvC)fjAZC?^ zfnu8WfR{N$qbpjM}|>@9q{n<`+wKXyC-l=c0ItwwB6PmAqtW1YIWMD>%MXl|aFkJL-~cv=WWQ z@Q7M_0T6IZHBBK#&Qn?iZs)}8(!P1WJ@Ti9-qbO!R?nnp zVZLT_H?VSx%R_+!^>IXWe;a1>_oQlF29`h<@Q1B4fhHL_JQhmSAN5OFENA}jm}dLg z+-N8#L`5@~>;CWJD?{PF)ND^-y%~U@y@if33S~-W%^+_{&5E#s-p#2dxlj^jy`uM> zBv#`W*tw?=(hXVmICFzdoz=vG|Lh$0mxc35xNLU4F@?C0W0lFyiu~7byexT8XRV_n zd{Nt209xSqymtKpE1?5|6fCmz!PqZzYvuHYT9_nD^X0{^)`|ne;I^_;Tzz2|f(2Ee zH8@}c{Y<)xXIKeeQw(?~y|tcb^trb!idtZ+sM=~&&jj-GQ|583@_dpHA0pFc#PM|_xo-J409!Lf z2F{m~Z<+nd*|c@^^u;u*04f1`$?s3M*4EFFoJaNkChwc+%lpk}#z-?4Nsxp)xal#| zdNzys?%_NqnZBb2p$Un8+xoU*`tnJXRM-w0GhrUORuHH6us1H-MIt z4;{@2%xy$tjn`cHF(-l8blbn4$Cavf!Z(h773m;+R<0tt-2=a6xXDywRV5gm?!>aK zR}F>~Iz-uu=n8({o?5Ko_0fW(7T9@uos9gY_#(X{kY;kr?Bi7d^ds%6mBWh}2?(~t zQ{48v&|Aaswogw;LVXHs8jxi$>0>wLJbCPo=M-b4snIIpc*L#Dbb!hSEpI(O@O15u zo;yBB3z_#5glN{gN&)e%e+ z&ZPK>%NFL1o7f1rMIgW8EQ10|*62hDciM1D?~7=cN9#`5%*R^26i)qG!RWkrEnEc> z#y$QEBnRGQe$<|${+N(c?VbKwyUNu$M{XJ{y;Ptg;bO$pw~WSs?OWU41`+Jx6S%J$QRq=!qn_5<6NtTw^?gtbc(&+^^6vQ`;xgo+ig`{<4^7E4fGIRhF-H zL=75sROS4785A|0qx=KDOte8N|Zy9N@h8opv-R@lE{6+s! zbFw?}@|&a+r5v|^s3pfFuEJpxvb)Ywd#_t#xn9spK1v+XYjBkGyi=P?pp(hPA2My3 zOtA(~tTBI=jA$Q|oG=5v_;J&XQ+c@Fu^pPAjS2r#;ap4Ofl(sXYl??)o}k4JDprhW zzOr;m_9$eCMpz0vS{ZRs?>#OVOHayLCD}$yoAmTHb7f;po6U|Fo!!}(Ar^UIG;Ap~ z)G7~WXG|y9ERVu@lo;WfPRyFQ>Fu#T1%i`=)ccPsO;K4~Nv#Z;Ci^w7X*lnM_cb5qCB&`f;v88iALpcD!Zt4Lb5!S1imT5Wzz0F9RK& z9iL@SsLOeZtM~wfg8-5KuNl-{)}{RQi<^;SRbYedU))Cv>PgYMaZcki{c+A%xva&l zS@~2TCVPf|(0E30DR&f8N1lyii}@B0drK)v$mVvP?Ee+!S< zy8L7~c#c?S-%Ph2^7RyHdC+>@*G&=bJW=a$jD=n@DO%|5Rr@=OJ zE~TG%rD(oGDMMhk;!W}>CzVWA80V?bR7{zQf&%j%EJ(;r^;B=c7|gqK z1R5I@%peeHQTo}wti58OaU6pm!+*xt#_yA=Mr2wo%6htKnUg-G=_Y{uEO$zbwFE(s zph?!|Keu}*qB&tts+-r#Mby>HNcIY(49QQo=A=f7lq_IJGu?#rCW4FQ{*OR1lr|rD z6ZRFLcPiApi<2^g5c*uJuyObH6YnFC_BHMhxc8nb=$^#t{L<|`(sFt>E@OQIJpXBf z2aKk9`-Ub7XGs~foF=O@4*vKgZ=Q^m$y%2zgJy}(zI?K!TKTI_ubn2g*7rovWw*gM z7~>-0np1dJQep^d8UE8WCh+R^K6v7mFRgHr>QOg`s-#M7QXmo;ktful&8A+V^pb6kR16i>A9ua zPBQna@hLHlm1amq4@<^BV);xcoNMF1ie6<;iJr$KU$< z^7RVZ*lT<;n@p=#Wt@Zzn|Q_XX%t!RuGDI1Z>=A;RHh@cql@iM+759HxCxwnRd>d+ z+1u&}TTGD@O=&JBy%(!;!On90oh1~=RfI3zcO3yPua-{P+}8T_6s>!pmn}f>t{j3? zE5;ax@zh}-UN-Coi;2c2-5?i_k@)zQxoLHPV)=tq4fCpT3eSh z_{-~gR(yHsW$kLixFB<9YnL7I`8 zrdHr+eX~T(pbSK?i;Sy)b-yrHAyzo zd!8?vF0lqXNEyV3gAMxi;}@@rJ_4I^H5&`VJ&gltt0V#>ARgY7iRew(5G%XvfHZk~ zdhY9;&bBoo^{}akLE(ann`X0jjHJcTJL23&DAtnx^=%PrV?d_$u=<#`KTB=airjTR-H67$-l~Y}0IG@qj0Ga#cn%sC2J$ z>Oa?{QmqD6jXnELf(UE``_Vm)?r3#MHG4*0x?Ckwfq&BFP)dIOC4EOO(2!H423*}~ zCO6jSdhxzwH|(KNtDaC5+BmVh(FiolJHf@d4(PiGP$Gsq@XmD4W+eA}d-Q^O$)BiW zIj4GE5Bgx?!1ctwFkFQ<>qi=S;d}8r8igLQVdKL!?lRJi0Ip((!CQj^Ao(nx*B1IT z!-{SYw~=Is#MFD?dV$n4b@w6h_h+WV744H1D|4YhPj($1W_KgCwJjbqufDh*2s>#7 z2vu}jT3%<1pt{&ui`#UahKY;Cx{*V5v*$tCIqW(xNsGGGxc?$4>*4>dDUh6Gq<4;N z^tWD{x;@thH^C4y4ei-v_~@YgmxpU=q3|K6-18I>Z>Wr|?9;7pA6(}poTw?mE&TA~ zCXe60o;ry~SqxG){HdxmwGxdkE3J0@Rj|M7XiA%xsp=Q%hve^y-IqE^{Wv2frxdHI zUum%A!1rXq^*PW_MYAv>qW6zy4iZO*8d5FxnE3Pa9J`+C4w&dtuv@@jG{N7DaEm&U zL&ild0%jM2yZcSGi0orRQXcR&b^MHCy)6}G!rO-V7uu4(S>gy1kx9=R4mCrg+I&jf ziasL#)(hL~DXN%GyC!5-V`}f)z*?(zBoV!IW+^I~8A)}Hf@qzaTevb>-%PcJ$fjSD z6JR2h?%=C|t=ei=N-HsHPW{@*8nJzoayV}4zRcW{=ti#tvzbQN_RK3Rh&i&}V>L$m zriB8lreLS}p#-UHgQni9z*v4=sDj{7I-7C1`=Qe<=M^+VzTLR8)V72BC`IV z*QU@EUo!~n4(1cx$ZL`7iTbw3n`MD@9qoW7>k4J^3CQHp^-h#d1mY;RE!YS%>|Tlc z2|WcT(PpCAx~B@v>U8PED{84=Xe&20Be>z!3)#%jmBnFLhc5ELs|nmoew zad`QH#^cx?sC$bj)5%JGJ!eBPmMFH|-XHTxPvl^_?$1`kIw8(-@UxW@@HJdyJv;M; z!(JU;Zj00_F^-N_K6ZnW=5co#rA}`Al`|^EuU#RKwfnNVFB%!tw=Jx(hOKUzKhNh^ zP3w4JY+P36Q7S&}e+?QuM|qEka-zcQCFZvd7jZN-TO3Vn%Y+*~nKLCoFqsPk@Y2{s ze{%S5Ny!kExF?+8LJsOqUI8V!*0=RmmgCmsw#H9+`Y zgBZcz7DH0LBkBLHEdupltj6<-ZQV9qT2njmGs^u$B4IM$vpA@!=ENY7M=@+E)ye(| z_u&kf--T^elOv1mRJ9HIJt1Tiy?%|`s#RT6QIjaYz%Zjv53T1S)9B4NkS%0%JJ0bm zP$d%zHx)hMo#Jo}IF(M_&|h!aegR&JQbK{yad!|_*l0Bqvgoi-GCTZh81tBBb> zbAeF>s0YFk3bYwmTsVa_+Z1OcNZQjTUg^9hciP(vb&{4&tOcR!EzN~@XqHU3K?wyf znj;^2O;FtPQ}atYr(gIX6*$9KPwQrNbHp40FZS@9=z6ds>Lkudt~Ly_n(ikDeYSmc zLsD&jH-1U1$@Ee{zUZsmvx$e#%rkfdNq$7iER;0a>Hy@v{br9I)9Xwuc)nsW*6wrT z*%EdhPysd5D_>)l_6hqbG5+yMW^ArZ<5=)*GnPSX66tj}$MS%ePu}C6r8UcF~9VoJ)Q|iB0t^@l2t|=n^)O=ejWR`|8U$!&(H6($>HVT<= zIqK_&gcI&9k+om7&39In#siszvrhVzFwAo{&rr)p3CdY{x4CDsxw7}L#_OvN4cdR@9LN^2mI83BO65ELw z=fX_?>YI=xTH1(+&YhCg(}L;Tu98*d#J`cA0tRINDPJXv-%9DqyR>TwVIX|*xdi%! zt0ko#HKT@Tg19!xT5#);lVyO7ij0LoU?#o%i{>c0_J(Lfw(R`9x8p0*#gyPh_RBA+ zArt<>dZO$P^1z#nvh8kP#NwCb33-^X`C0}QUd|i6l(`A5JLEq7_g|y+b@NqB@JAhb zGuo?Vfe9MYCq6{bpTtUT1#0dJdPoOa7_j9SHJ4(E7Yxi!#L`mGKRcl?NK|FYd;d)Fd8csWb3GW#zBJvv0tL3^uk_v=mTubh)n2ivsh$RY*GYnHW=}NN zUnE!fPr^hTVI>n?<>^rZ8o%T!=J25}T{a($TuYjWQLh>K+MzXQ11stkJxGDf(hiqe zaO%?mw+<(q6a3k(a54@0$8Nou%vVLSS=<1hAgh^ZS}8-#VyLzmOvtLfyo zIn2xs;?P3SLgU<@9Jlw}{hSnb*-+>6ZO|t%ZqV@QX@H_1D!wPPx+<2|7PWe&HwD-U zFInWB;Jl6!dJL3Ji&cHL zNNJB)MDtO`$FlE^Yqe{AGa3*wK(ulz|6~kutmbJXnsd5fa%2Y~$g5Ta@jBIeQku;t zBm$N7bmN8isx!?U<00Kl^C6bdj38_I2Sn!>$md6zg<{m`P4$=zl^EF6P3Iq9*Ak{{ z7j1j8(f_U)>t?f5kL3rfC&WWbVm4iKY*T=-_-@3cem_3my>2nZou4f$7b=JJSH=yv zS5vl|@v!y^wgJ2}W3_EF(o49`$CTlrHWIchYGo8fL_Zz?FzT4UJ0-3iF#SEoWC_TL zd1*CcIfY#U(V$GXny^%W^3BU_qi(9AI$>cUsFQkU}JmS9<4-g zBKmf|T6h?S+ZAV5N@J23GhrC3=Cx)RFZQM4<}-ohaG*>+EU+)JBh{8p;`LWfF=C^0 zF%yH;RHNI8D0@fcq>`VtTb=)Nsg*PXG`COWd|$c6jc4NJE{B&fl5!sXL*|W9X$FRt zq^%=!)m_Bd61nPW37_j=R!SK{I`aJgKKQblgd& zD6Mp&lb+Ol$BRCYLl-NH2$lci0Em?*m3~hgv3WzacJpL)6EYHP0)zo^H9qSHzA`b; zb-?Ze6FfIXwRo%*7%kqg@w%K6JmJK;Ks`gpxM3KdGWeqIP(bVcX`Yf^xmj&nr*`m@ zhcca&_fWY2GEQwAxmww^0&w+kVXXv0(8*mTLsSgRfn`*#K9(KZfba5VXdF4mhA-#K zC@q^6USXeTd1>{EI1IMq8t{T#*$7r;tS|(IR`+W()U5B8D;CWY57!q~2*{XwFZ*+M z>Gg?p?f6!7@FTJLdK*qcTzI;B0){#OE1JNEu5UA|+u`Kkj3ode;tX1y0zE{sNfPe(qO z8XuTgU+0{;IByt_>>c=b4HC`j&;IK$kAuB)??kx4<0vA5{41FF*CXbe1wmTZm#WbC zqHs%(thifq+w3FfAubCk3IR|nIHPi=0STB zbckO0MF}fwa=Kz3cc<;kJ54FBtB25E+Wk36zMs4EJ<8uEL{KsxNuXgvRXB+` zVg&W_X^L-oZgovT*`j<-bsf@fI(Qkt_xv|%H?Z6S%xd`bXK<9nF*K{9KAG_kQ8@Cf_jr;MV&#&EUE>~Ukgz5Tm9m1UtA zV~w!0KH`4go~+PB$S1?1RhqT6tSrY7%W(u)eW@9a^O)MfWBwF8@uiT`DX0muCyPKKBM7*n2JqBddz8i^YLd+!yh8Wbs znBjVVUV)6C!DyO}Ly!?O^QRkM)~NIyOH67oiprl6E_qme`0|(XN0?-qmOFzt8=Z1K zt<>@ci|uX_gQB&5oDH482|OfN`nUah z#kC1?twh2~3~J!F81@4D_B85oqhK)MCNoGGKNWdz{YftoMLhEr{`H%Zfg``Cr}}au z8Rd3#=4ad256#)k7_VwOSkUJju8mIB!ET5y8V`Rn|0UksiMRSgkv9ynKQ1}<@!t4$ znCiS*(3zTeUtX`@GuUvXfMslB3t)XF+LnHuv+DZib4IS*>Zo;4hV zW)gXr!8vQc+I!)E7DB^RfTsQ6vu-#=nA^aHVho`C2;>hbhc_K-CeAhSPzxt%b&|k2 zUwela8jZ}}q)%jjXnRJz4$v&Qe48!BxW`-o%_`-p1>^{Ll-^ul7EuG_v6^`vx@ml6`7EHqPuZ=PoLDsaRVwYJdd(jjpbJ@6dLg_}9Ip#tekl=n&QUAh)gr z6+I|fX0<&!0h^1p)K<#J|0dQPF1g;uy&nVwR`Ys1!QwSjSomL!CDM^VjgO+j}1>JF0hJRzXuY4)zNZKBZr5SB@j8D822eaUvzf&Td7^ zN{BGW5;Q%IoGzmr2lD&{`1BuWa;A8ktA@;m(Nf zOOSKv`%J>X&^&c%8awi0EPo>tPPF{9KmXS#tBbrR8T{#M{YsimM};+zYKkn1}iij?q zRu;>6XIPf)Py)WITV_9FQt*|~d+VO(<0~U_4yMqNKNR_^s;IFtVPIF+7+g{Bq{35)?C()n#-{4-GfMZ)4Y_V~xgaGvnm+Ohr+vDxAVdHja| zCpS!cd{(F4bY85v#Z+V?_InM*`dpMxqNJl#nwk6BGv3oKEyvH>%Fbc-W;{uE{50FK z7&)^lptO%JQ)HT7ZgDDa>`;@jc1Mt1Hz;^F8#R(lvGYF6g+_#vY@XKmaom`FOe4%l zMf=IJM4o)nr?ab?S z4u`}Hr%VdJRl1Jx+D=HyUIz*h{v&5l`y)EBJZT}|Lb^_hhu)zP#jn7?YvZ;` z@x^?T?KLRK*XtBZ$}^`(u2e`^Chpza;kUrO0L&D4q|zrc^WU{j+BN*wFb_`Z{Emkj zen0(Wr(P{^;{6PlxcO#l`pc+Ksy=7X^VpUxQ9;jbenrR zG1(*LmGV(?@Oj@o4l6%(58yH-%uFF~Vz##y@hAk)tz!H%9ayG3RL3b&<_Niy_5XV+W@1&5DiT&tz)eaX+a?pH6 zaZ8YB94Wi;3GZ4#rj8+K2K>e6U57-H(I2bY$WYC|{oTCcMR6w`yKLrjREOu&6ivfs zLUMGPH`o;vE8HD=^Z8jmIg4ogXnWgq&iiR7{EZX=!+oaXbzXYo4^^B!%?>cwR|p6u z5*Cb-2eLS%#xS0T7ZPNW!BR8$+n?D^C!myVqNl2k-w`J%@6!ljH86FvIWQHmm?+Vu zD-`KY`knq~W&K6Zyod9HsYh{^Oe#55Jc|cMUjMEM4=SMf+s@xT?aYY%S(ivE+&sxk zz|J;cg3z_LSwcRHF42|5+QN=H(F}QtH>naFX27s^Hty<+aCACb*E7eJe}-#`N8q?WwHE~(P+h) zp~GIL5*Mw5by1YK6awO@NZ^{u=@1&?8gWGrY=deaS<84*)K6dGR^9>q^6=PeRr2aO zc{A`W^gbJMdeaa(&abXatnIZ!;xdOYn2w6y`bOU9`_n~><6I7EQXzJ@QLrB7JI{Hh^fT!&$wrv#*167=6)nP}ZJK zbKEcvB5j1vCf%%CrSSZ0+m$0Rv^;vf-^ z3m0Rc69^Cz{$s1JNs=v*HsskZIVbBEASa@jz5|~a{9#mN!2t2;ZTU)VKos2ltsvoECaVdL zuDZcR!&=P)lLgD&714@_-%=*NYpr__*4WXUomB68G1AU^>o*=|=lnS-s1U7ziOUcT z*FxVOuwEkzNX1X~j6t9ZPUptu5p+hR!Bo|Fqhfw}N6DMi<)SmgSA^W!;YI~q=y70z zO>%!CbDE~{4m2Q;^}~w0Cn`fGjp$`-C5(?zGLidIY6Z={`5bEU4YqG#=!6ga)GPmwD)ujp4(61slh2IB_+0A%gg3m zHE4A4ULD`=JipRRDFBM}WFV}wqKC)BbLY2q%dT>^7Wd_muDNZS4|2IWSwbyKUJad< zBT$`YOg2M`hZ%!rb<1jV%BEvm`!Ep$`V5Dyh3G~fVNPS3`5rsD`aj!HsN7eAnFI`) zff~F^<&^aKLU8-E$g^45Zhft8OGNHyakP2xZoct=+fi!OOra`@LZ^mpkR1fnar|5^ zn{gGty-gnD$-0I$PikI?527ygb%?`btg3o25vKAuFNaMol@1?n*%(7(V+Jj_c9ykG zJVXj2v2$PAJ%N4i;-3$;j6EG4D%vP7;`=f-1SC69c0~|6NlRCcCSU-l66 zzZah{x805GYss0-uBj#=K;LX0%+xh2+Hs(EE`=dP;r{vNjSW>1=Av2w%CDTKCxUxK zRr!+!5mzq%cj*q0{=8uvL#ec5JKS};JE}3W2&y+M_%*RpO>->1x!+XUFIoUG^w1OQ z>C_+F(N&RjbOu%kF3aKEgkjOb_txU)(VZeZqPDC;d4p170^8KFMwSK}Rp@AQQ0(VB z>8GKde5F>0c$O8jI{%I5Vr<~NU9*dd2uD8gx7KeclXgtEP+0NKU-e9*Tr=bz6c!W- z8!&;qA1Rqj^b0V3?hav39!`U|ZoNqG1sN5+j`&majQ5=L@IOxrF%Ru4pym|Q)P6j(<`u9^ zb?_#;rV8ZQ+?CLQaV@K6J(YRP4*~LcsH7BwRnijimfqCMfO|5C9+sG=5Azcf4}T?F zYizFR)?}s3zx9b~X8M`0yeksTu$eujqN2=?AphxViJDT`tSstU(f&MGF~TgfNdj%; z7u~(QHqrg@dz@NiOuk2g_=Cf7jZ1Clo$dJPTMI(JnnkCT)5Qgo1EWomL)2sU`#jZ} zkoFLU$y52|5bq@|NP|&I9tXQTe+}3f^j5(ID%jHj368VZ)15>mbe%0;9KF3sO{RysD6q3trnqF=2M?^6`dO)qLi)@|$J_aw4TS&ow^=qK1Y*o3r@`DkzjtKg&>{}xTd+V(>NH@4?sYLd;q1KA-=vmCLdJ;u%QKhhU#Am)g~CJbyw)(g&@eFK zY$eI^yUVmld_1Bzp)#%GZw$T!#){xuAeFB8nta*AmFE2fc!D=JA@bTvo`pK zmXIU%F6uc&AFgu%(v)PO*{}_L{9huP-(&3@1?s2iId~E7vr{g8v@3P6w{7B);^oRvrI6Nxtj&5807^liuPzB2czc}Pt!j1NN9@{n1o<|v7YYG#FuacccVZm-Lz zey+Q%#NK{R3ywOs>Jo|j-jn$`exBMCoL%NgND#mvGaGz9Vax-MJC@xU0Gc6Y-5W3ta6@@^Z z0^_krZSfzmG1>FzW1Z+9j`aVo0d9sfLtr#0uv$P1zyFb9Hy%g7C6Ayfyr)@&Ij6U& z%yA-o{x8InGm(CQX0n(z)LBbi=xZ8%xrPUxWV3yL=4MGg)cj99Ag#=yd6dE3VWiGR z3HBs$01b*go?AMI-)hGTG|u4{3HFXI?-0(2NpNfK;8woQJAa1$$?KrJey?@C<;?6X z1)4!oJ!#!wnlNx+TYB7Lap+VhM4AZW>|Hn=J7$>#DOp$7E#RLwho;N6ULBW zuhIaJ2!t~*ee(5;)U#IwiPXaibjeZ*sjyn@%3ZQ24Mvy2CTP>RQBaoFV|Kk1UT3)G zK8v)m3e|B?3r^49=Wya=sf+5VP5>w(94jYxD`pmNCjx`?*R`IE&!TJ}-=jEEZL74r zK{9R3t3$%`<;{P6uvaeon;EoZeg^I||>=(K8wrkA)6%5g!#?DZbp)E?g?krKmkUpF$wI}+p#D!;M)%8cf| z%aT05e_T9G7=G*T&wRJ(N?$jOl*^F+16g->#NL13TTXlqC2<2)z)?OL7g0XdIR?ModxR;oi>=QmfD z8FcFw1ObZbHfUXr-=D>01I0K5qWB$+*4vD0isOPW{6Gt!u`@v9fyqd5$vdBpQzR(-7jrmvi^1FR!VH>KK7!=d{LiQ*a?IA) zttW0%yWnUsFyz~1*fB(+XCmsvs^P-R;K!-jy|9&Usz@royCBY$=NyC#Ct zU;cOPYv-f7V4H0yMW3>EmKZFD>H?zKx30J`cF`|L5BKfK)Uj4j~`l#sLD zy1ISFOFQ8=H4*pDf{RFZXeQ6&>4RRE%MkwNLca_GYKU>rL3WKn25EgAyVn{d1wj^i z#qgnvA#w7DP zAVM1bE<}t-f|~dG`IFoC%oG3BNIy;kDK^v`n6;Rpyn)8?*_se9rO}J82 z;cemKQaLNnS3&nz1{FbPJ@)g|pHBklWM#;#e%(J7>tX^Dw}rnlsrf#KMBItDS3eE9 z@$A^}zeEJ9jIwM0UtfS7S(Py1Qg^TJ*&6|d&26Z7r9Wd}$ndCXZ1py)p4l`pcRIko zX;eCTcnHZXrSg(=M%qB7OQAb69~2r|E>)z%P7D*nrS1q9shTf z-p-s+%2qCu>TB8Knvcs#YS>}H+$`xuWb37XVU*G5VVDRHQ9Fkn56MtWxxA(Y=WSm< zYuzXJGXB1m@DPdxe7EB&^6FH&)K(NKrwrB}WVbmQ%^jwRwcauFTCU|N5TwLm0pp?e zB^i-1dUOHAZY{!dbF}d1+1|>s+5O={Ke%4EbXAwdQ^+__yONT$r-;%+q*+##&k4NEIa14P^z`hxlZ^dc^7}4be3@wyQ5A}1nVR8D@cYx8 z(EYBdOnlO!u~W@-L^*r9k^GiNdz?2jlleI!)-DZJ;_|P^ww^;)NgWJ~%3uJEZ=1d@ z`rm47OdBJ1*3->Chwp2vY|Da<+#Hi_mFs%4;qVJrS!%lphl>l0Mx+0pWQy_qfNk^5c+BRrqGFlf~S~O96D5vu8n&~Ll-l?$Q zK0FY5q3A3dX|9JdE7vySRCiJ}l7iV%d^c?ttM_aURJ5ozxMa@2cE`aMtLh#C3AS%I z?hu>-=C>RE%9T0U;@Tl|5&2c?CxBXF_%Q(&(e$%PJnDX;iagJnCS;PPS=FvQtqRWw zFO*l_Q2)|v8N5SZR5WK5~iM=Z>Y(LGt0vF&rr8fF0_{)t1 z&7hKFk?zi3qw_a0cb*+MzfuyRPl{jurMavyOP)ykEsvNKGwN#UZ@IyBi0H_fT_10Hn&Uu;X3~PUCSNaw9u9mzA{5=`DE*mG1<_~UAa3`kF4N2=YG~bsyx5wO63R#;O)-1 zx+dCUN;2{ir*W)tm2T!^1EXer%NWGNI;G7Qzcni7H8-bkVRl5dtzVl=np5C`Jl+~4O9e=ZEhlM|3IXi+Z;Af`CM6Wfz{z|*mmjSEcSsa&VASdm~Z5V53 zn#6?ro-cVz(GhM^0g4+Y#byFvNm@$#mq=G9))hGol~A6ghQ|0nG2QtO*?#1lWOmkD zK!;=VH_4(edc$J;+^rH0uu-fTl-e#I$isOaM3QbH01;pCKnp_v&q!^6Po<@x*fU-w z>k_DDV4OxrhTAGLR(GhK8@&KYNc#4z=^(Sj+=Sd?IMcWgO(15Vz5sbulsiPH(?@$< zO9r8gjC5Tp*77qpBR~u-WtW0 zrZB_ok3RfQ#mW$^p|L6oI6l=&iR~a<3~;*@iiV@U{R&AMT!=Y(m8xeUjjAev&0eU*H?hEbE9%l06#LK5j5kwWH?6Z)aS z8Tuvi`4us-(%VPmp&8HO!*gKq;Nvw&g+=JJj4+FmrD-r#vyQh)s;y^3Y_X0=N@9K9 z#BHY!gGv1{?}AGvC!z$sBW0RpK-=oEto9C$@>v#d`_(m0dUI>S+kB?4Gda@L6w@`e z$aHf`yMHDFor@4vQ8M#LGGz@=YPk-<>WhBaGN?fpR)QDmoE|3#=je}T^7&!BKU#*a|(!ZU* z^qLscqhIsLpPXVU1rG$WcS7vTd5e08mIx3le z*QmM2tOXAP8$VG}?G}uI`Zue_La*sfLX_=2EgPHjtn&(`dB#b_UMF|v|Cr0=Ccg*- zXVAKIhwF2!QLEe2PqyPMCu9j<5+$@EKq>ebb-~`wJ9jO%XFG0ZvwR|JRfUv84?yhi zzL$c3IMykR1HC@Sm+grEYF9-M1vJ0($)URChl{UZorN7vkEli*&V3MJB@REgnMbT8 zh(zb8vuPe&%9mSDd}#b|9I1&Vm+zRv8A*o2y}#ub%_~$NO&3@;D5;%z)``*OlIZlG zUVw4kn)gua3Vt{Z&3VdMSwi#$gr9g6q!Si|-0XhPk%_q@C;oTLyuDCxyMYpVn!}B+ zJ#%NHE{X?2_dKD}){q!gP zJIFj2l%*Ww%wFZXE$A!*RIX8^qNiPHF36vj?zCRN?!-^ckiL_hM=7vdhaTIS2(?op zZ&({iFK^3A)m2-xcaE_we9pGgzn(BNppWm45s{T|we)8rC(VNm|3}ezhqL*RgFlgJ=@w+)QVd1wRh~jI_%ghYPMDoqedbKYL6H-Vgy&+|GzKKEW!iXJp2xP)4~Yj-yh?HkJni;%QJ%)l+hiS-#joLxJ8Z6SeSO969J z-Fa{wQ_z~X6G+-algFgj@~WIXiNAsl18JC_CNY*LB>(W#VnQ6YG@8>498>hizDPA0a>87? zqfND+4r8k`^~nBMQ`};;#(ONSYqQCuhnKQFsnx3kc1C_t9RFG|dF&+&>dN|IR(vVtu3Rw_3-wY;CD;q7#qNv(!UCa@#dRsx}|K7v?vOm2^EHbP3+swT|P6{>%8tdO1E^ea6|(Ijl|}% zxtuOA9$XeRKeN+9QQ#)>a^?-h&Y5GkpOvPfe0uE0>TxJOcZ<@Qao@>|H8Iyk7N7g{ z>OW)=5`A;m=_F|H@~im`HvFDx-;&_aK}lf4RZYE43hhzZ2q{W z#5)pNF;Qle32<+=`mq~cSQ_O?+%X?z)8U#0oyps~Kgk@=s7g6!LX6GO6l6qYps*z@ zd-`*fzVpVw8m$~gqPMJKjEBezl2(`Q(<6Q#v2Ifk@i?!0x@Qoo(Q2DUv7dkf|LQzw z)}EWWG5{dF{S(^kX2MjGQ&Iux&NpsQItP?4rtaXQT=u|5VJIKyP)9<>F+9S)PX8+{ zCrmzQ*61#O15{RA72;f&NZF{+o2n1hxBZHW!ir8R~`YTYqNA#*~G=YbneF-r4Vaeu43+2rwS4+4RR+`Q3uDX2q)1iOo}zrv)Rg zzyGs#Epz#M8qYbjvB`@DV+U^>OdqX}HLKVE@{T>EWGje9@P3z>L+H@4jeCx;TItF=mXtl| zYAD29g|~By@fCi2_|>iFTBO)x|1<3=#sTxcZnt_=wzZt0f0wH`C~VNM&Sn2X{A#1% z(Evi+tLrS1Dlx;@z?P0Y)y$Odg;5vuo2Gry>xn});u+D(qsmJ5@*#s`z{nQgYVu=^V8mj*;1vqhOg`;iDUzqp-^`zOrRgc!_Z`?2xezrZ1 z%!(4C1W9z8hO#VOQcK=UGnQT*F{1@sY!_t%&OXYT);K1w@gfkd$TdZhmx;^SpVN7E zN^qe=NS_Y-*LZFD^b!yxpZAwRfMki`kEUCY?xbU(-z1$`0P@@nDI!i5JkG+bw*Rq+ z4bP){lsbXHDz^Xl94Pt*nFISRvBW z#f9SKbNYMQ)WOrT(vtURk&794Zx8Po|6uFG=;K#Q_oP0U&0$AO5$hsno~;>oX1I%r zFgwhFy1kLkaS-@ho}JTl{@#m}i^$)g6 z*T@ueIeCr`YyTgxm0kbp@}LO7DuhX$F(4SN-uu|rfp#jhJ3LS@46~HWv*X=6&LljUL zC><2;N9Q{9IFKJAbhpyPHYZVId(W@TP0)Alz&&&9c8RPCbVlq0oH^0`>L)sZnDuwR z%I0+hENw6+$v;@(sIEWUPIM$55+rr+?pk8EYA}2yN_1gvhen$w0;(X;o1RXj=!#GL zDw!WDQu7t=ESCwnAjKO+i=mf1I7A|-0mm#%W;^jY~H z#`j7^DzTdc=*4U}OSH&a4tg>Eb39BSqA4G-YwThVO7~8Ta0!C6$Q0;GgN*c?#(5aN z0{W`*67s{!6rHK(f7^7-iB?4Si~En~y>F6GG-uiV;glSvB6~@X!XX`&#RK;dGgt(5H>X=F zx1z-Ks7}TVI7d8j{LQ?~3tOyCB# zMKR(&LNgN`3r=$DbFwQh9ST2bM|(KX=5axl=NGu3y1@ z(2?1^^ydU>aaI?AP&k3=S`zgfv-Yl@9%_7d00FaGMKyiyosF=ZC%V z+64w)6j8(5i-=6QHF3OM-r4x%mf0N7c#8A13aG2h8>LCK0ilPd;cIcU);HcJ zGkyb2q*8W$)g3msS zqJiL>MgP!qp`xNY#y*JEvkI>h5Kq6_F=4)0vO{1Cb^&nlG#(u&o-Xa54i+Glv z7Vy_5lX9x=Y}hU685BQSYo&qSIyQZy=9jWg(8MAGrl(>uHi{_I&;!|O?ML&!v~^>1 z8@wGq0yZ`NetE9S4Poam$Z8N%;yy^J`aE75!+O8<2}ap3RzFQ ztmPSxPFHb>DdR`8xY*Vw4uO+nu`PU}gtrs1zh{5^jsEJJI+4ZyB}4R4Ux~qiGXCRn z?CA2EjN|w*Z`Z5GQIP$ledFc+f&^(j%B&;~szS`RaO}&qm75xj8pua~Fps90JbE^r z)ETKJkgTa2mon{e%gRdZWehZ#2h1jZJ)QT&c1QKcTP$4Q5orQ#Ei{1;zLht4A*!sc zT2ZY)%MAXCThn^{#j*D5QKGU;-E593%B6GK9r?{szhPW(74JUno!0bW{=VmK_KnhE zNLtWy-JI&2z#JH~h}uU4UfkC&jBxn=)gIwDkowAh*);C?VW1xXj0bgbUa40ks+)G_ zZbZiP#T^jJ6e=peaddRIK$c6!NGjgtZ9wIq#VDHL8eba4ys98c8 zBP#q&(6z90mE4^8VaI+en?oxu>cCU4L2qERZ;Q#kgFG0U46UuIN-0R+$sfB^e8Iu@ zv|T*ucQO8XqETY{fY1wcy;ltN7)2Lh7jIR6(VfKdA-ru*tEPPTAo9t8C`Yk+>ax1$ zdXK>}lm*ZwQSa35&bPPG?uZ`5s*I;N^=J$YK?GVGr}H{qM-pDYqfbhIptJ{xmvW^| zC!Y;%o-xwACuIJPe8CH(ZLxrrbPlYp`MKBH?d`KPwkLm3>rB}}+)TKr)iOpGBaF7n38MAS$hkEUYN;t`!fPu)SR z$Kbntz{7XC*C7#7m0^T0ZV*1yrrUpApCA}vkE<5kd1N_L@+U4*bcZf+$INWDbBt8oMjCc`+nH;hH*dSUiVbzflfju6O%mW$BCl@J z7U!uRtk_->r5#_hI(LWHSZxVX%;CJfMdFW2Yh{6mzSX7w5hn1`BoWkzNX;Qen{pV2 zt4O?B*gAdcabMoP!^UST8PHu!F?bI4>o{(o2{m>DZ=YwXc#k9SL-_w)o8Fs>IlLM? z7Qre^EC0vKVyASx&(M;auNbsLwEu2T!<>FCfL7P(uQpL9Uh^u#IdW|`mwD2Qu0W$W ztRHF1Y(E3_tO(J}F&y$S!ZcbEMV-EKu@xfc8l^Ec_7nn_hm|jSfnMl1p}NuL!{q?3 z<9H8=fUNHQf~lVvmUX7;;XT}gpYt=rs{JGUJUqaP%EZ|)pjsqha^jY8!xGN%Q3Yz_ zR+i~y^V5)0bI~_YRV8j9wJw2Dk}K(&w^GY=%eE79`X*L@llH-Q*>c7l@G!`q$jXvt zJCPWrZ;@5Cm1vdY8rjvSS|AR*q^t$!VWA*T+saMqW_RGHxFUIP(>b2c99H%&U9%!guIQd{&|b5@pk9!yog2hM-FNE}Hb##wu^1*AS@+$zTzBGxqNmg0B;5Dt z`?24Qd{vj4XcEcjWKylACT=0f{<0@0BM_vi^$O&MCB?11&-_I7i@Eb!&Qx+*lugI9fqI(*CVSwl&$jSnE*(a zb~*LX!a(xQdO&?cDlBp)dvJIA7AqZRm!?>2o`m22CBf;ZxoCI#;Y%}^Lrm~v zy`ywHG=BJaZD!JzV}AlP*09w7ao_#HVwDJ27=`0ha{G9{Ujb89Hn{okG80vtPMP$0 zxUND-@^Y=9wGp$SPG8G(yO~G7?{+j+JL|-XMF|WKFJ;4}@;}li;XDI9{=2}=_-+nN zuCKgZ$|T2lhrkMl*(%(8zkKyvxy8Mh80CJZr)3mtnU9`tvaiM5m*PFDx~;5fkW^)A zsvx`oE7~^R9aKUa`AUlw31XtuztUBM1@=^vTB65 zV3(0;UV2tH0SR4gXgfuIg+)%GCwT|;{yy?IMbY!HkIo_>Y*)E?Pn;-30M&m?qrN-j z_Mrt~XM|?TJXjH^^XXWxlU6!$^3j?|JkLRZ4O(h$Zr-+Pv(a4wi?OCry7EIrX<_JWPAFxMz=#! zkqh22=H`FKF*c@YHI86=T4@6EL)SHj>Hbmt!SfjWOsC&)Rh|dDPbSJ8uK7Yd5bIk} z!4#<#e=BSR^&GE>Z|!9atk0-PBE!3%cQk>`WrN6#^9!1fnYI0Qr?$AcMs${ywe=e4 z!*}Ia#5ou8ZI)ksG<*6luK3Cj_`hp+@Fnxh9;Fj)rvc@nA(_Obc+u~l$i@sW1RBs( zpXq1OZOW(zf&))lZJ}6JZ^_c_o zYWT|f<2Ma)tySUXf`a|2>%`Zys?h`WFF!xDl6KUfZ^0NtYXmL-cdhXm5#dy? z-8I_REvtNYIHEyhz8Nm=G@AU>4tmmez%Di?;|J)H94*+Gx?75|#QnFe9B4EAFmSJA z8>do9gKGz)L8NY3g?A;!^0Z{r*hiZ|L)k`&CE!58nQW#6OnfNUasvy zl~r;Se$@Op;r(3k1F_jWxNE6Y7eR#5vUAmMXo_JR^koPJsWyvwNTsvTaVVu(HLj6W zUj3fYm;0wn=L-?4F%#oUDws=WC@%ic^>SvPeb%NB>V%xGjfgeK87}6?e;{e!E75TM zA^B~xzwSQsOs9B{7-OL6gjr)UcYuy|Ht+08TJV4kYZ@YVba%K!+GRwb@#zr{Hn-`& zNqN^Df5v}zDd;npsNB$2>k|ScnXegyzBck=4N{!Zss)LUYX*4*yMM=(`h?MgENIFP z<9Xa&K20o4YMS?$ex-WtKdM+i+($|BU?)RtW6u7ha3~>Av9}9HkM;%smN4b=G}a1TK%f{T%K3ucCrT z1DZ@M_LZdQ<%QgaE)QxmeoU0_H#XKDsm!$5KWy(;wt1#hN=AegZ3N=712#9?s3PCi za!)7~)oEx~bE3`}v$piu+-4SdmNg0{cqW_+8Yt7ui>f?Uy(XGRaoz@z77U>lO$Z&t z!*_q{{QLD*{cQ2ud(TN5FwPWTGSZ^$MFl#co7gSi}cwE(*R|RcIy=d9UtvG(e=yLSv zC;%TQKFPt0%*bJS+{|}xFqa#?^#2MNI89Y#7E$@jzv*plnST&`#B<@mudcoQBeLJZ zcdxx$-Cu_4WeNy9wu#U&H(}j+>d41Mx}l?KjO(XSbgFsQRT(ksNay3z8*Ap%nI>gy zop2w+*Gd1I)4s)f?8Npez4sjW;od75>w2)(u|;GUA_Y}^l->2@u|Ptu`X+Ho4)62L znjUMT(y>%8%|AkI$*~oNGtaj-_j0z`I|4b`RECi@gZQSC?KhwgwBy5s4Z#SiA+ih{ zRkvhXYe?^yk8NM^ zm3r)(pk3GZa$8%LW*NMbK^i_h`NP9k8L#%hK8)KME6j2{MOeYql@`+@4w+{EP?lp6 zpDrnzzq-`mAta4fuHEkWL-FLwu7TP#Ys6wIR;<2WpRJ~IhR#NnwXM83z*T(Di}1Cd z@{h7v|Voer`IM#8B?K^$8HCy%yH|LP3|u)GHWy(Rp*}Dq%!oM#i2+R9WSm z3y>}7Za3S~JgbB?M#qge+1W|j9|`0n2st!s#W#L9+g{@4j1Xv{dDo%d$ol1pk-60VK2V6gqBpTVlWGz_X22hrdBwm_ z+O4J)X1f|%5O?yejNa{ZWXe?#pjv>Sa^CC+D__%z!a-Hmq5zZ>)JtpiJ=tM}=h%i$ zN3&YOvWj&;=EFBArWozujL~X3G*e~lcRo>e6^3u={6?(nrk_Pw9&3y7{w;|)sdn3S z9ts<)CbUG<@$q$VrG=+&OqkFmP&xttPeWzDt9$QB+Fscq+dK0jmgTg|LM(KqEMrOEDu zSzTm4*U+UY!(q6|$#idz-PvRJJ%v#QVK#vfQA^pP_f_BFaLr0?WM7quFp1uu{kbg}RV(8p%2BoBw{31FXF(q3fH>_HG5+8pk73rfW2fxnww_lm z@VNeDVe}kJ%}BeH^>@u@8VWN1oIj@Q>PSBncnJi?veiWC)G)fvW=^*1CGHzfgfs$K z<@p?%Rm>zh!$(!CsRN4{wBeC8L~Ff9|8^!$Q67M@;ieOgo zy?0#eQ8zAlX1upIqH>S6P#G3&tGD;0kwQhF^0L$(-bUXc9mC1rKC=}m3x^T=}l`y0l4C;RxPhHJq1Ugd3Fi z){*0LS3b^Pz?@10fTl1+g}}$3k^&Na)PWkpi#?FCfobbB@u& zb$+xijLT*ye?2?qCn$Y~`A$0u-cNj$0=w=l4{oTlcKIsKkGZu2^IUHOSnm@n0lX25 zXj?VqXkG^SEt-U>eNy}Zt);Fr(rxo!$U+V${yx{^w4vLhaEQT&={a0db_*L^$7NUath@HTK8_ zEU=9-*5{*;aerOds8W6;qzF8*M!8JS!@aI|DWphrseOCc=9J#}Gj6x(<5Zoc#Eb!o zvDzpLCB4Oe;g@IQ=)F6c^+oSA!{kakx}*xmt9@^>u=Dzbr~zs$vr||+o?-Fcy~uYW zbnGJilGLL4fS+sVL2Hb%57b=7CAaY>s=H4@T2ss&rQVj3wn6Fmf8G!iaZ}+rN=?H^ zi{2s`Dh%hxY}p!*ja%kNw|2A2N}Z|Rtk-hr zpBa@Wb}Ep3dKcSNr%`(jWR?jT52P=4OdK;Jjx6QR3_A03;GIpm>t*K3`|MM=%k5{#IBwq<-g|!hZ43Atr;>Wv3fvS4gQ61 z;D%0TOlP%mI&WtTXj`L%6T$8!h zrO&!kyd=W0u#thb+55M>K-w2kzGW&d+RW(6k9_v?^X7YVCi+@) zk8F>N=H*3Ixnd*+%hajwb_oK4E47*U9<}k^BrlcG`K-hYVVfkGhb!T&%KT^}^m2L& zL~-h-b%U;ozGY$6_?!2;1h44DBk$O}%KD|;Ibiheq^h#wsP{M_fwB>sj(Mo;+fW*! z;Tp`5CZwsO42sdtryrWA^qgJb+Wf+0++)t~RVO~t-gOt0#>}y$0S(0G9njxJ7JXH~ zq?lxb1?DG4WWx50Undu6oMCRZ86g+zd<5SRo^j=ZmXPP)dnMj1tgB6^YyYv6j=5IH zBFS!IrGa$eoBiPN_9o8FLkKm*Ccw7fsl)V$>U~(C15wfz?EZU2(wGyW)1v5S=li2z zdQ6(;0$PJ;`K@@WB-(G*#HU55Bc%} z7QKIWdw4hXXQRt>kY$bx=BOuSVok4BZ3X^!ttmzVDPE)Vib<_h-O7;eX=Q>7i+_yV zU1I~4F@)yArJDVVx~SYzY6spN$8&?fnRrr`zi7I;4%l2ow^|^5siSqIQ?9cp_1~>g zBfv?d4EiK_j>SbV%7G9x&`+hzU!*hv|uwU+4ndFy8(tk1tCX!KSe^*sZ7eYzeO1hOwn?tj$8Ui z!>qHXVb{N~WgXGHU)&(#$e_Re8Y+Dh`Xm*XI(y=5Pc7@~#SI_)nL3mLe5!D7@~c2# zMt6D)PC-?!od0+r`4HqQ#upu}15TmXFWFXvRBF3E!af}yC1*in+Oz!UZUE`g{kR54 zkX%Euxr5(t$(sXB$SX$;sEQRny_c%`VX0DyIXAq~+W#)Vq3@o756JNaY}Qz;Ty<{2 z#^DhiL$lMzLfK3Q+hn(^C+A3$jG<^)b0cG=;ENME53zHFxKaU$HE*>C_nYo-8#jgs zti1atLLeEy5KhI-@;8h6U>`2~zRlE>uS8B_iNFWU&UDeVwFyC3l_eFy)Y(Db1R1?F z8*@D^r^RL#9;1g1j(~pCXfbt`>py6hjjM)+sS8~@W#TjiL87<5ei8qzC_zkRb}`S) z<5<7I89$kpEti|9 zsi;cc;$oQ6r+gpzN*shUWWX)9(;X~*i>eV3< zMWTuMA4v=fE8|N`_1GS6GwZYhx^hALLQTt|z_qUponw`Bsq02HZT=pVd*Lz|L0t@A zTSky3e^CrKKdE$FusIK4-h87rm!0y3M#zff$$a=kGt=~=&aH4)!aSaVw0nq;8uGC? z1oZv;7-l=~nv6`OvPLTi2*+;F3S2b0vIhB%gzI@!DVrEdXb)@caZq`6H}E{8K)3YU zHqGUXcuBQ~m%QK|^2366CbsbDYR7us+2+Q`EbJm?)Mg%t=9hW}yb%WJ}KMN8Iha0F~z&2Hb}! z!K0QYU6z$J#9o;6*=}1<6kYv{QTwv-u>+&=W~zwYty<=!gfQF!W%rHflLwToK%{nG zzpERroqU$l zg0C#=xc29fvW*g2to)3FBbAoJ%?Lcj(oj>SEh%u;+Kp`(-?xaLqcjr+HRvWwyx`&w zBfSemhNV0I@0u*^QvUCMZ-;*yqe&Ro2A1R}#k^DFVZZnG{V&~gx3q^;B{VT&GNv$9u;oIpwyJ#=7Bb zT+#QYkRPTx8k@40tBndt4Z)|_H`P^EywB*#`j_7Dq#P~sYz_(8DzaAlG~Pw2d!r3Ub|#HPFT{dbd}hL<57FXK$Pu?v`6>B*Iwgxl~wJ+Y=qbrj$0 zQga_D<0(PSvw~^P7~oNot(2`Tfhw5$Y<#r@>rV)-&fWI<^#t7v3mPYVX{I$w2iW)) zq3*6R{f$1`r`3un$6vuS0TpVs-gk3k{p!7AXg1IB{%1KXqo$Si&h1J1M}-&Z(oNY; zx&BV146%8bjSl9kIrI z&Qm;|cWDjdI$?8E0uf~Ey;=XUi}kE$>u`JCFh>zOB z)xqay=Y6z@0OKL2N@&GK=1t!SJOh&zz&lyahn}bc(MkoxnZ$h@f z&jF&m?erHjg|MjSHHoclUa75jLyX(77VkXSkA z@P%Q_>I2sSBrl&dLSlLvRhRU4j;BO$bg{%~c@<9K9egp`%Si5vwncdzs0tb9Gx?!D zMgX*Gs=s`pBO|)`fLEaLDPZ1lDvFl6UkqnS_wN$+w+8r@9$oZ6~arz5@{ZbJ&Kk77}4D$?LV(-)pt@~ z4XQJtIE+b$xrrU^=N;S=03tJ#r7Bd7{gm_V=G7hIC=5ULJK>w-IpZHvyP`d%iaV)& z^u>|Gk+7-msL5mNSxqw|zTV93@=Ar2HY!B8?BUm$=nSP26~vAj?{0qybF)f-JR5ugQKu)Kx|Ts>P&6aU_)XetzQCuxeOz5gK;VOp-Dm} z#W4t!4rp}sZAO&NnL6txs>el`pz1QRlvG(~B&*}hn#MIWMJasBCl&nis+6OkgMfB< zn}`(7RlMDVLFBeHyqjMtGWU$YU2+qcP*8Dl92l$i39 z9GMK^>*JB{Zg`LYfA+J|+kwHg%QS|FaC9F!5q_YuUMUR$HazvJY}FPi3P^T}13RlB z#`f`l6Lu?4GjT}GG+px8H#b!Gx2A_Z0T=aGPWl}Pr$cEhMSqGiTE23UEcD7~LzF2n z+;u;C7?qXKF{en$V-~}#DTkxUP5>9ZN{6jcla>{-X;zdj(5tD^|64vjY4&-mJcPA!$(@g z_9abxO*YWvzUWXrZ(s#on*!rP*IoOEU}au zT3eZ}=v1;!O3R&`1#@uD!mUiB^F-qBDL4A@p$KdsOJb+=0b%^O)YB92#D(o$Y9BKn z&&7nDOG&-YtBt5A{el~itF$J>YszFzxa0mySma^$psM1nrmz=dW5lqtG3Inu&Te3% zq^nLsVQy1n*Vkn4Np4<-JaIYi?vQ6IYx<7`5~GV!q!~`8rK(s0Cu*SzWdhyfTOx|y zTA$tXd>Wm`40TKm(93+6<^j&dWAH%ShnA+KkX9!vVe}&ajvM`zfT%#Dl@g3$6d^eV z0(W1?D9(hsNQLYV#>O@;$@@MBeFQ+}lVGVQ!V7g{g9T{*(!3kcbDQ~zQi6@z zpo%Nye0Bf0Y?OE>`3{MrQqW*)RBc8w%+y2RM9s-H+a!h9jpP~{TBvRj7On6w(Kud< zj{L%H5hGE#MG@%5gBAAJO;fDyr0Em7f}-?7K$Y~vTs$n%g1W;rj)T$!;+5z_XNFl7mHUE zt4}ef&yx|7DjXkN7+nJ6nPV&8Yh)zqhbt>QaWa1|Rb&Ysw)AtV zrZ+v-6j~77%@-M;&@&cubGq*P>3n%R=O2%`+JA{hTo$LeZjYqSc0>h0u8xk|B+)l5|O-nxcW(bE2b zsqX9#wBL*>iZfl*OLcM%5vJ!B1ChEGH$&E&w_||p!Rx_3WW9+6cjie~~^EFR})WVf+Gv6H^|M$(@ z^qd1tXHd6&xY0PJS+0fF&f`H0S}O@oi|A@$*}KD63`JATHERGtl&#tIHajz>L| z&)vESSRR5uqVy+fYC{Vd7?*IHAu-($Y@=(l`Lmga(eV7{On-d2x-b+j>*0DP zf63(GKi23j76+g8$yM=hl84w|R3*%{fcAWW35v6ze*)Sb)XQabAy-FxPf9MD6;-iQ zFqn}kZ4*+68p#qV19Lh)!5kvjPOIUC9Tg6^&T`%XbBhRtVK+C!@R_(fsAoxsCwg8+ z;&fXpit1CJw{8)<`i#Do2%QO27D>DIfmV-*!d%{$xRQF?3cPc~-W7VW2vUg*k;XNl zod&zq^lx8`nsS1hS<6Ld7^w0_4ZUU~=FQ{-?B+CuGpxyag#J+ze+*ptD1U>e0pYox zV3y&(yT0h}I!WO*+2kbae<+&b|C90aa2j&gD-t6vs~@?3X6R@p?bhE$oTishdVQ8m zhJ!Va$%0pAlnvL$%)gG;Y<@e@u_!AoH%d#3Zj&$~XV$3B6+4|jk{Bcgo{!TZu8+ex zBOiKFQ$Rd7DfcJ&cL|C}XUmY{)SoB6%#H`u@6DCnW(wBr9XZ(#@o44!%f)U-D@rbY)k+tMUZ`cJqt|G3 z*~t)^WMh-GEOKmqZzKr-aA(Z4_nvEXIcM$zX?_?};)=#IGLuyh&e<1i-y1y5=K2F` zx}lQPl`U9Pjuxuyp5gg^F=@5&lv#c6fME0HilEPyoqXIL6`}a$BVVj%3pDjhoq3*T zS0c)&>yGH1k==br{@Zrv8R6y>tYL_0tzyCdt`!NfR(7v|FD!qH5Hx{kQj^SNt4_ii zx#FlL?UK3;#yV)8mKpKi4hY*ym5L+@+UZx1u7;`q`QiI2Z)o8$dh5N<{TT4O*4Gtl zTb?JaiQmbBI9Hbw@e-!D*cT=f`jm}1LU)j-;rLKBE8!SAfR^asp-44g;p{&LBbRD$QB5w0Noj79%HvZe;`1U3}oC6vx=MlSUg9l5H`sk*JUA{U*dI%&E@I! zO&AVte}5aO`f-d8|0ZaZEVOkWXDQL6I<0E1X?AQYFa5Dc_C3dR6*SN@5vJJaF?$jy z$1brW@sA`(hY@*Ez_rb}-I!M#DAQ?VL*Yo$%vlNFCS>K2V@WHyY$5g_^I&tDQR|zV zH;;P6+@0A$)!F;YB*)d2MXL=VX%k0!0&+=3IO}+3W>T-3-7WNKzH8oVujq&AR?jUS zR9nOSt6?L>ke=g3&CVC$cD&5cRmv9LEPJqc1-6wpvd*W=qcq-6Ig&d&F;&o{iD8DL zFUmoLpG}I9Sc=70;v7I3s1O;<5&F@J@79xdf4HI@g+oEZ#FpX#HP`Ag`_5*^q1%|i z03gRi18-inTHsXANS=jn*{1etHlLKGJR!iY1;UZfU^4g3%)`!gj>~x?kMI&nss7Nm zFaEVP|7jqw;a*~kw_f7wj8j)^mwfKzR+fGAp5v(l`XYZ-AMw9yV87@O1NZbQN96w5{-hIe+ra4zv}jKr z;g__qXb(si6-N&%Uy-UzAxMsanDe283Uhjo(LStjB@@YDW4HhG0a&eFd)f+ctn z5EmF5Za!)bKPya>ep-DE!jk6W6dijyTy>>mS`vp}X?7(%vsV&k^=9YINdF6&gg1^J z4g>JJe=LhsN^#n`${-}n5eYc5&pz$}sdNSgMw*6pk7}(;J2ttW_Xxf1po{K(ADacY z3Bgpqm-5GVcT@TR==!L5Gx8shwx@J8Mbo>@?n$1iy-)M)O+vxW*n3eKSu`3!10H)a zQla!)EjAM;Eg}pVM0;Mzz=tmuc6GSNSZyz+6y4FqmgB&xvt(f#-82-n{05-^Gn?Xi zg%?x(ubD@DceD~=r(b}lYckh0s zDr@+kiHVmEe^@hb3!g+{HnA!rIQ8-6(>YUX+S@ISk{T1r;Z}+aTT>NaI3?*|d#2D0 z5Yct1oTme7ldE+QEp8S}@~0MWYc?PIQzKCGaXAtH@s=w(9Tj9E6R?xb-7C4@sb2Hl zdy6(5mglyxa~>w2<#IG=jYCgM#N*^==Zx~Q9hE5&u2TpiZ>o;$FNN&YXWq457lZnr7Ja#CC1#H**DA)Y3pT*q5IN6oXZ$ zc(%|*)XwVwjM})3&~d(kxmSx=Q%aLKY49U*!xUE1*N}ABwX?Cm%ja+)P_Q{Fa*B_t zu0(DwdyKlu`M_#Kvqd2xRUXc1=~@2?qjsM0FGn(;ue9BD7b$z)b=k3w4iAi7Y;l!f zTpMe`@;Oy}^kU!x3@8Eqw89oht;p4b)5`pQ3Ba76#B+*eud!2v$dNgL-nlt66+iL_ zrr*d^=mjMpXn~<~e&x_wF`4N3vn!#My!3w*on=^)eH(}ELO_s^ zmJ*49Ae}1B1SAKHknYhPJ_cQq14cZ=sL^AL=8=XG(lJ6d8isVE@BMz=aqP?D{@?d? z{eI`!%12id<)jTOs)oZhY%`Z#>90SMnPLM9R%V}X@T{U@n+HqrWKs562$s4~@S!WUaZp;TJP=q~cOL3DM0VcXi;ipbI`i&T z>phAY(T}Si;L@LhCOJE!h)R2A?qYCxq(c#P&ikYjn!}6IXT2ZJ3?#~58{U642I3Jv zR@Es2 z)8XunG`@0yED9KF$L`{Cu-2t@bFiwwOp`}YPOs05fhy`F619kWU%e*E%gF}W)s6LFK1kg5R6$jB&-fVjEFZbwHL10wuaud70Sc4JyGd7``cox9ZRLQhIn zbsY2vvnhL*3SJR~C=Ph51g_x>Ywg)HIM2uwzqOy1l`3<>dI0vTM zj9Lm$`tfEpasDHRD(d~G$L&@Xjmo@^T-8i=BOHPiWoGNjlG-PRxbF$vjEloD?pTwl zv2o)k_I1I$M0>G@3}F`|Eq(S|lg%VE9Vyp9KVE|6I4)|?&}3^oyw7vA0URrzJCoc1 z>rPi0s#PfWG~=xp4DF78;j+uX$TmfL4z7Y|YL$guyX{*3|Z$IW>Wy>`Ci zB6}6P}e29rOdWsR;HHa-ifa2Fg<9jnaFF#iTb}cyfX$`TWCq98n#%&RE=wHQC-4C zA;XQnV2v+X0=rZrQZ!hBMeR9p(Ht9#>%^AiI<%GR>BHX4q0fK1F5@5HsXY&#Qr^Rf zVLvYd{_(pmp4=gKd+pu>Gm`{e84}WSJ(-#QUnSkWbKX;s;1ECAH6uiq-6pHtaLOgM z(UJV*IEt(w)4b=B(>o2%nfMfzbAie|M!2VEV{nAk={{B$% z%FZuqam@EIzL5vi^M>3ORfw4gKpMjS5Ydd!(ia{4yf1s7__3kIoWpUe0-PU@&BH+U)x)0JMMn=Z@1xIm? zmz`G7xuL7f*g%QbTNqUIwVBzypnIhM?6fpwtiF+^mM4LFfYRDWLDk6;@8YA?c8g>| zV3{N~sZq}*Cp@OMZySiB`g>!mwf=IRU1$T_qj@N$t59&_qR76$pceiP@k7Q(+>m(3 zvN$?1Ra$pE{R87HQ|8E+2YRi(7JbFQz_tHtAD$bii=wM`{R;C^U@ z#<4W4n~BAzYWmm@^0tr04CS7eI`foy?=6k?;eTrO^+-ozxfiR$8Y@84&t&NS1%2be zIqJ2GF?j;Mw`(bgArcbvk|HO&D;Wx|Og6G<35wuT-B-3pZff9iy~$0zIH(j(%9LhD z@#J&aqdng^mFyob8QFQ=-pbR+5lop{s|5mhPc;4LB}?YcO_s39@OebNCVG>TG=g=Mv4@?lbNr{m%D{ZXyaAxZl|;$ z{(z7{1`#1crg{q?IsSvR0_cD3p4Ebq)Nv%sJQ`WXHCr>=BmKq9<%(rBhx^} zu|ZFjG@PXA`f1?GwE0ht@8QFn0;_xDSJPtaLW*C8L#phw4pu^|#xD&VyHgvRF7_u$ zm+UiXdqmgHD-Ljd+UOw*L=Og*tBBjH?;Fb}?+tjQrDf0MVK=Pc5M)j%@xunGyHExO z(!+IaF?k!J2eoHrz4rzq`&6XWqEw?B4)jXmNEPPLx`n2j{$Ztw1ALemFuHhSo2?iT zaCv1jaO-zTl=uFTulf9ysXg?B_2TTHgk*Ll#}tG3gS6bfl(^t@?3)BY8Gy)Tl(4bL zBXJFtYrB8JL|tjs7bgLBnMU@G8?q`$T=RpQmNqU%(7nJ@d0-nKw!*S|5d+vi!z$=( zZol2Sgm9mi73yFgcCmClc38=J*$3pO;kj(dz6(^naycuX@d4t>MrRS+Y{?G5Y^T6J zYvG_kMJL+v?HF?BL8mV;X(LKfUj~GSCZ(w7+RLg%?nG za-YNGMzn=3%^yFST(sNK=+^}~w_wrGcSbs_(-_w#>ZRiqm$hbbQC4T%xG7+P)-bUM})v3|{-N1x=y0+>@VSLFlr z_eR{C>qXed;Zbs>NvhnI+j}j7@y4;e?;RKRPeUj4y4MdZ1TiQ}H)LLPorYF7vKq}J zmIyrWINR1Ra56Ws*SqlEBry9q=?zy7=QN;my3+^M+Gzo-@r21AF&})=IAPn8gn2l| zAfXCWYYbuqF`~BqU9v*>dW18Z_-j3Cimo>V)e~(-ENL z|2baqPZa`oJ@V2&CX~;Dz6dIz7aHZNbbHBaW@F!+5q?pW00ua0HY9P%$D0U6!wY)^ zw~oWLl8sf+lPfKe+cIh1dJ(FK3!O9{GDP$j&aq~(-b6G!ja2MP_R!rJlbj%hecu>T zmW3HIBoG$}`;VbiE&i?fp6uVFysu*rwL8TumYG9a1nQ@r(!lZGv07&}yn(SCcbbTN zz**2`rcRvmOR+GQ2!oQn={n5lOZ=%KG_v~u^^SA22rM3T^rr0fH8Kw zcaSbwT2A0L*X|syKZUtr$f-J2tW%sc7;O`w?`DW`R#Ufh9(Q3WFX8kOwAmpFf(c?5 zA9k7{GmtuHV`*a4R{p^SkaW2AK`(4JT|po~bp{o2Z8%363z^uP?p`})^_`vE$wpw= z%(v~2!$3``RG3e=8KVR=hA-i9jP%x7K?n0%lrg3?>gIi}z^*W`hcODuO z-oBZ+#M~RCa%;TO0VJ&o3`n5wu%ywgX3%WCyKiWoT-RD$75W%zKox@hlj&C)|JWk_cPly z)1R|WiB4P|M@uBqIO^|>bEgCU)XqUdl|epxDSfyZZi;v%`GNv=N%dqfl9}=$%&>TR zbqFTgEEm(}?IFl-%Sfl27_^1#@6W{x^&GXiO_;abgwvjL9p^RhY#Owu}tj)G-q9p9G_ZfWHhdDtn zAq+l;@`zMgr5gxr6EoHjU!xHc5D_PK@v4PRYV0DEbGX5V-r}zRz#$rNOq0ms% z*{Oyd%;bB2E-88qAQo>JUsPkkgWVCb8t$3J3f3iv#A1V{<{ARvD@zB*SGpcGbUpga z-)t;u-W?bf(24I!xEQ!Al}XW6X0GlU8ej|g_V;iyO{a?&D3oZ z+J3|GKIjBDEfZ8Q`t1qV{Q1MU`+jqoJo*8W2hFjy!~hS~@ z{VI70h~AcTc3D{d_hZ%YTtg&nvfrsSl+~pXW^^f>c;9bTok{N57Rb&|sO+66$HPDa z`$)8u2%g3x8KT%;(xz_uC7U{$Me!FOP|J8S)ktR4kqx z!!}hoq#dyOY=V@EMP~AH)yY1+A{|{MVc*wD#NGB_q;I6P^wKQP z>ZkX2@FDkvGBdt%a$(`#7xr88oPbB@8dUI90+?8wq0iF>Et~2M_cj=A9PU5C0T^7T zLc=ix>I>2{vG)?0pqXhxX16rw{UP?7f$Nb5m_Hrxnof4zNu5-C%@JGw?>>-uRGKXU z__Jl=71=bgld?fE36l@ctm@@BL(G`8h9%i0A_r*!XC&oxo<15eo>$FNfaih8}V%h}nEzDi2=$nWcCaN6veXTGjG{zW2LV6Mpv&x3=7 zAQY8V*fYvNWavD;(LXtH_1(f)Ow*Y&oMP*j`Y4iYxuj{Uv|HD6`kv7;>(8g`iS!9b zLl+ags(Opb5_-Aw7D0vu@IDCyDgvm14dT*C((cg#Mc!Pl9VGm_&g;ne8xsi0i)2O_ zHD-F62H~$f1nU1c1Fk;kU8iYfdf-HK@s|e zdn~RbwF$)lJn9~S9&2{of`@@BVXH{a&wF!WXfCt40;CvLeT_R|KY!Z{NIgl)ubGGm9WuLP3A266pw>QD#FJ4mJhYe) z(zq!^EvvpDL%9>O#_si?r`5!eR4OzSQC@S+a7iYsXk%LWn|`jQ*SsLeX~BLr$Ugnq z1Cdacrj*NpA<$z9LxI{8rRO?hh^9h4K`r*#c?oJSzH4n9Ml3Ll10M1E`WDVkX>#Hl z#)%f)Z!G6FV4WRB*M;<8pb6&Z;QM&>QOvvzbKmKgCK5i z%r(BpoaNVZ3gmn=(&U|F(GjY#4nk2dl5Z7_f=fYt4)}!NHhm{ExCB3ChK+tkcncfa zFMYg2pjJ_{L%HzNs+?nr(1?kA)J*Q^bL?A>WuC_|C|!)dxtoF+eAGR(JFJ1+4ETi$ z&ndK;OR_?Qo0pWG4-CTqu_$L$z=f9Z*r1BEUr_6I^mT}NoWd&f z*gm6;BzGe0`D=P>HuXUPN>g_FzJfg9k1VXv@4z>9<*-{es=jZ6$T`9d8l6=&Mvk0A z59h%VlI+cfAvknG1f@hSs=P_!Ri=AS-?RaCmb9( z70RcjJAu&tL-|>&E~Dgsri1f2TH4eOLfEv=yk5j%!01WSSBkv1rDL>#9&9l5~#AVw+HrWox7TLw^hZLVRGj5^_o}@T>uta1#{Nmx?)hA6HZ_|Ee=l>(!xN zA#Uzp1coSRMjdtsB>>(u4QvCWEXmC zdz;mcC+|@*g(d;0oC_u&S^df?MoG^dU%#W-fLZf?Sqdy4x`e_6KIjvo4UehMzIWoT zpl(rA(A&&rH7=yGbtwNbZ3jNI@8Rd_ngh45J0E83i&;JPEHAwb22UfOt~FOu(l!TV zIK?kL+VF6M-)1IpPQ$;`-!WcQryx|&E9gu(99?L|*I!d5a{vX?oA;t)We=j8s z0{-K8@^3;}T|RiOmWcFnqwlSm52*a<8@9In_r}f%kwt;A5~da+q^-4Jd>{SGWxFB4 zFf|dP+?3`#Z-TosK|v3IM^a5{2nnh9SK>>(H(;imymT3^yE-c?BT<(IL=^U^)8MQrMKn zs&Dr+`%Y5;*XBsyv03;JttB*)YK4=7eZEzYm2qM1Sawkb3&XwOBIX)jfzj}PD=Qg~ z#l3#RnE510WRd-J9g~-EME}@S{IH-)jo8r# zV-oYdb)h)+6+)g{g>!s?>!d9V;L=*|3}w~mhUQNtB~k^Pa&Mxb`2O)psK(ZoFB&b@ zEeLI?^OwtO`66dQyMfQI*g9;u7-C@^I$7N9>X|xwCsG)R5fWcILOxsU3n{zSF^P^5k+Eu5hHsUv75Mt*Q? zGG8PL>~L(8HlJY=Wa`S|e(-{zh=Co4Lw)O^FNk^!^eCjtkwv^VQ-Z^a+=3h-uU^)S z1^~nxT6H&nSiCi?8DiV-$g#(-WZiEj5kR){c1MTcvo1jkm{7pt-ec*o9rIVd)4|eo zNt5+DAJ(IXl+S9fIWGiB@Udr{mT&#GdbY>Kw;sbaWLBK>FXf#Q6! z7xjsIY2w)VD1?)cT~C6H!DXMntd|Dsp2wqr_T)92Cel2(`3>FYd(qNOZ3bBJrP`w!Di#9~&9b=OwcaP38#uk8_D)XbV2TSujG4#X-Jvq6EcmA zcSE#L>3&I*j<($yZ7QJPQkzcq;(AVm8k#h60YWa+J+TY5)~*NNVh&J-rPKeSqUG|N zg8Q6ST6x#UmYzm4y6mIU%wr=-44S%N>j=}*gEGceIr}4~mX@GIN{X6)6S-#) zPtP%>I@3Q0Hi-h2FGbeKc=Gh;8m3H6sfRMt7)~d!dPvd*M#)cT*R|Img8t>4033Qd zi|YPw3dOu2TFA6DS?}`U@BfwRavbFg25eTpHA(FbNO>o=(4f~ni#JAyXFT4JRg7Qp zgYJ)=So7(i_o?SBIQ*kzN+N_)p?{)BH)V8g>Bff3sh@xqnK&8r0}V;lb(XTazX3dV zhDDr_4JY44aMF%p3qSg|m9`qr z_@~SJ6r4#w%$ZFP%NZA$ek73pU|-b*r0F?$jiYw@3r*o0Sb?xM79|X2rlu=fu_`Qv zf(w6@Y=$88)R$Uj) zU!&kY(PB4;dTP@uH&)=*z1nv4GH>ne-y$D)F&{q|6`$54Qm?ywv$3WejPq=jwj)az z%PU% zR6*EdPyZfhG&o-x;_aQ9CjS2)Q0H-+sYY`F*AinKRuzye+g-mJyg{-Q@^Z!qvB4t@*P1^biJ)>y;(v?Ifzz(UZqN11$-h&k-crfn+DkX9 zc28iZqM3V5Oj>ss`Y$GoU7#+yGdP%T-LY)Q>%p2jM#432$6={3YU9i*6T?U?8S$et z;eFJHObw0QA_jvMJd>Gj|F=WuQo`X$+#}VX;4IDImL_p zXw(auG21c6$Vn}@K-{0? za%Nxd?teB_oeXlm#P=}GfmJz3%}EL8^Kd#K?5G7Jr;7BA!V?+w3pyv{_>L=?y;Ou; zhzwLTP5HdUS&*V!$s^hV4;N)ZFp6G&0XsFOTE_bH>ZYqAB8vPH8-D$^0I|Oc-2{ za}A+2iKxb!?f$1?g4_d})CO)fHTZ3;u+EDpXasjAU7KY$D~!fxZ9V5QDPU0t>4#b? zekwTpDAwh~2`V!;&|8@@a6`XgXL$GwzWm$Rl74oi3*qAZAk93Rs~#Z@gi`Roh>;HW zz}h-%rOc3&-&2MOir@ak>@51L{}7Su-qf$6WBnvy;oN##4&G6{Mfv1iP~DaOxpefX zw1?+`z@d0009tuJU)S&DN3wtKzIj0<6KHFsWOxd58msL)-lHfWplOb3+`7Z>9>=++XF)fbgRu>;4*0!$pC4*@d9>d zjVb(}sFX79lE{#4A&m}$c7be|;S>-sUVczG^l_oh_*sP0=X8uJ^8K;0m*RTd=0-Gy&NUQN03 z3mwFN@C}3ccP*ARi^}8Q|4BKK=<4~>|2UackC5E%cmE?aoVZHh@Za87{7#VDoZ1l2k^*F!A)W5o&R|)KXjdFB=vvRLZq#- zxjaz&Cg!-;tubFY;Qff+u`0)!9VU8IxZvb1Ce~t4`ze(}y3B$PY`R1i&G4J4y~*o! zptP0T%UP50XzHP6!xv&6%N$hEHowjO-r$;djLt?L){CnN|8dD;Mz<~t^WnLl4{_#BDfBHEcoN-~r z!7$`R=cOQph>4#gJd76EK4!slbMZe!R#+#mcegn&Tv@sUSDk{T;z4k*QBi8N`r~m^ z#sViV#`b<$=&o(-Dh-z`m7=A5$>(H$sVX(;5K@lQ!oWvXLJSNvO#mVh%J^wxw(yhE z&gC(40jQ-6uqv;%U&}}vw&$ZlL`yJR33C;5|5sW3T;(`DQnlMpyZsXvX(c~< z^8+XbIRf)N4HAOt^xfg!+PX$1z&{;fX}9@;gdUu^eUC2zmaWkNAPR(sp)+A5ifHIt z_26Fqg2<+^L|wcfqC0ia1L4jm<}s)O1`e;$PB;%0sbCPz9%v@50sJ?Cc`<`M54k1k zKItxTzPld`QvRdkZG!O_!GbqGKZzN>2`Ox9nW*H*uxaUTB)=!+b;Vbg;?_m9@I`%b zFDh7R3SLRz z$p^$0*~nFYwFDj0tpsIR9Bxx+F2NA5$8S~1welw&+WSbq;NP7HQj~hK8Ecb-c91>t z3Byq{?c70l=}@_vUA?wX4RjnJQUDBqjwr1Hq@Typx#z*L{}tA_e*A^5JNxoYv!}F3 zQxp96F%noj@B8DJ^euDSix`;(pfU_x!u;V5m2O%xj+=7@^}~zuNi8le780^YU0^w0 z*KS8&<>>~d;fa6nb3^rNJ^)}ATf7PSG@i4dO8<2H#P3LasDa#qo&U>ZNeBR&IBvKI z93=wF(+SLC=E#wSy)y&caEbP1lQR(8I8KB6j-b;GBD;(e4<{<1PQ-Q)(oQLSJscnW zYTv)Dd$hi9ZfN=$c2xYQ<4DEU5M)y4)INe_;mYc>4%&E&(xD~*ENc%BpdyEE_VJ$i z5c{SUzi;a0r}FBwfgyyN+PiSqB0{X+t#+=_wp%EHswG8RZZ7m8N@eQRTT}JK7yYAE zy2TE$l@g>I`o6?S0A-Hf*teX;bUbyx5rdr5i(a1HfWyu-0 zs^8`#Y;U`}A|#BRTjeS6bU&osBif5k1T&|qms?3fZ>^(l-kMzRQUSF`o6gF?YOqP%dL(0xX`$kYVBp;8 zRpxvqq<_xlQ6CdF&y$UQuBjk_RznKCawu2b!wkD_5*EJ6+o!6rz9sE+V6goOw|)7k z=!)kE8}~~f&Y0Kzq>8%zP_%6_=&Ds!5of_8!FtVZHPijW@K>zz5O}<98d9U(vX70_wHYXYE>RXkO z(|>QQeM0UEKeAHJz7whX0ar|@qC#gLk*ckp#X%_)H%~89*OTh@EeZ)UxyO1#ue0*y zI9ZIVWDuEEZsA!PMki70@uuod_+`DNb59={z%5lgW`b&Wn=hp%w7y!JZBd+k|Ly3r z>m{V(2QC^2IK(Y@(J}SbCa~}Qy)m!|(_T%fC|mK}#y|{T;KaLvsaTYxZ4C&=+2Y56 z7Kg{}sp+70HHd_^$dKAM&Pof~mA#`@l*>s|JmX?z5AU2^1qmVD;Zd&SxnMvt47O0f zA9z+&=L0i|rhw)zUhY8a*`&Lu7_(1==u!Wt_@q;<^SB(ChUpiO!4=vM*tqb0_ujH}=8}*e4X+JdKE2cyQ~ieBZn|8^+9uL!ie@6cTOA3UeCo zsWQ>JoBklmb(3udJO1?~CT1!p)q!157u=>SxzimyD>eA&g>knaZVD+e$6NbmeKM;) zEq$DTWg~QrQwT~D;rD(qh20nJ(FP($zjwG;+L*4V8~k-rkzzHoP5ttmUt816 zoJXvp`kLb;B+FlN%J#VPd&0NU#kQc#>liun`18v8;Qr;np1(K3y{KI-ur{p}Os9OC zt3@m>3eQk>oNsRlQPHgD3e0@n?${3C})3?IKA#OVt3g&x2nQ; zB=quq7rL%F<2h##Nw-`cL~u~2MC1mxYldD2s}`|#5aS8(Z|{~U3KE%>nNvskrxoC3 zB*T~VbdQIILO8jOvXhIS_CXhDJCzLqAhQ{GX0sF`Bsv4FKK?;2_wT>vv>RiX2(G!| z$#y$qIT zt#1~MP&4&LBVyz{&UAc~#XJshH7>W^Z&Ss%o;9^S!t8swtPs+x3G@V9u+Fb3F3!4E z4L!m1qI>jiP-cCry~N*P8nP(?ZecGnd_1fw*~90d)9n#v(1=x4@@;W#u+D*t1X<9- zo?XVM4m0p%TT_hu=L=ao_&>zq2X;&QUPFrZ5}f1nlo%E3E$Zt5NV48$>W;hnPd@MX z1>L0h3@C*45cBWhT}WH`eYt+2N8>R|-g#_}DOGfLU&}7S3jAJX1l7Tb9J1dEflLc8($sG? z@I4P&h>Y{?S5d081>;kcU!7-AkbwLGBFM6IuuKuu1O&xuH3dF?Up=;_W_hPBE}woa zAuV=C-d~6yU1Dl#0$7p?` z4I1rli47f0$EWA@#QyUyQP~&*Npm=7ux)aYSU!bQKASjGqKZ$gTRq@D3pVMm2RrAQ zm_z_#y#8w`(K?RphXtSS-`9b$|G`-uvueq$QD`=Hk&7)*y}V4e_?C z;kDNHpIE1n`6mB!elbwm|oDuHzup{qkf@1-RJV`Ue)!;)iHb=ZJc>Z`0H z5JCz84!&#p<@u%bxVCbu{Zrgqj!F4}2A|(7++)daYj+w{f_x~$U|hu#{v0fK54khZ z*4os}hts*=LgiPQwm4peU>)w^b?BBlkgn6kbkO^l#|tV&x>b_juVZ-i0~$yV{@&2J zd1J3HvIUHyUY+Egqqj_pGt*IbwyfzI@Xu>GD$!xB%;2=%d}rEL6=IrJ>a?*^FDS~6 zKXgAJH`wGxkkk6Co6hS{kEPa?!RgI6y#$VZ9??u@Z%=2!>e<8#~N%`I5J zqG{_h1Pu4RkC^DB_M%5ZyK*4gVw4UoZd4Kf>*%WF?~Py0Sw@;aXiAh6qHM-$tLTNf zZLZrT?k_jmI^Yjspx_KBUzgQSvasBfktQLlp5gCvCei~-E^toBqs3bIJ-9Ak z{CsaWZR#AQrTsstoh!?cj*QA5+X%P=9 zFE>j4abpa51$Kr$1wi->%h(Q8He%FkOH3`r%)_2PkFg-#TM8I}3kaeuB#Q z2J^Zq2~A8+v5lIRNl7YF71nJHxu`HtZSQTop7E_du>pmX@G-wo1@JYK4#I?sdH?9b zcoTpx7{^BJR!*@FVY0swrt%5{gT{J`Wl7?8frk`KKTxB4rE^o>s^l2mb>`Y%?j#0+ ztQqIe9JC{s_esJye>%$#v~=qrM%8m}oTp09$lm^@1atCXS|RN+#vNUs zY|V(%E`3U?mF$e~7jJNw7ZIci?$BUJt->Yr1(DUc2fWc9Z|;{9Os%)+GIpBQyk{o7 zSAk#*kFb0D>nSRWf!8qOT0Ag|*Jq|V#(#o2Rf_&dvvhkB*wF1hkqr6@QB%VSi)gEP z_%LVq)Wj6IR5L}O7CDis2-^!ryOG=WbDqBM`kkUR_Gf>48dhuO+6f6qe9I=pJ!t=7 zmT6VRcWr;Ls8CRilG!M;N3_z;YbpaQQ-O~$&#-?@e zlbt%!u6{gUXEMA32q!m(b{T(OQy%n1V#-#3o0|m*+!|ZtR@qW)o=1BZO{KNGU30$@ z*JlZl4`cE&hOx5j9L(g1a-17rh^?J+#dhqP#)1|S)RpBkH0Hw^ z740}&_qGM|N{YsBTGr9OGhibaXNY&F>FyA;X2a#Scah_}K298&9tU~8NK}9pKMupr-0V^EGbJW;Jq_lRHI2_SF=E`cJH|$D=fcC`)iR! zZG-mX>%4seSV!n}+HBzK<6lPr=~pk;o8LPc^gEfjn4F)rT%S4%LW8#EC+n0x zl^yx>t*sI|@3DMqjkZF1dFqzZv>EK^Cdee6U16*Y0o$X)cn|nzp;aYA)>CIISy@oRDnmZk~MzZ zzR$GTkE+Ymr-ne~HCgCsEUyjYs4FEcn4l+Dxsnxj|_S(ut+Dq?^%%&Q4*$M&y_KtDj`hudWKt*3#A_rx|oXk z7X$P82d8$8F+iL(@^`24Ps^vbL?%4u1TC)iJHw86wH6@!hW?|V=gJcZBDy`iIhbPp za~o6mJLS5T37&*LD5`D}Pi=j-dh9s|w9ijSr5z3rITzT^E+O5X9%J{4aI4pyPzUu# z*xv`kDesfGyIXNzaJ}x+pNAT`&dCmr1QSm((q=fxYM9?fX>O8PvBqSpoVpT(dv->U`)g~_rms_?E3OB=ZU+R|}s&eXoyl-VWY z2|KA6v2~&%5=1=wb%m3lE(I<3sEW_EcsJK zI%zxltT@QTJZJFLwzFk{E1)(~=i9fq@LB{3vN;OBp$}i2N4oE;s*#3E+Qlh5e*hrX z#eVeBhuT90VIRAO?e$fA+p6N#zAhPxy)>((XWRn4o^cn!p=R?TzRney0++7?B3p1i z@Vl+bAl?R4!Z^HSt?E34tj3?a{@&dH4+e@6P3nU~S0W_WY3{esh50qeaG6k3!wc5R zNzGl}I5K0qK(D94mF->hlk|3FKfMedMP0 zAM#!ox%k_7vLKh2#xF&z7ZuJ0ojeHrK4QRCfyJE{Bo@vEM(#y;+;`4f(9y$MGUPB4e6^~Zv9txf1K9pIQ3fm z<3<>OPPg3I{V2*(KntqipAN6{cB!f{Ty(_ANSIO@X6OK6TF>63;AukUw!Kfek$dy4 z!0X|M4Pwc<<`vR$tO7^P_#Z1mGTspQyo}{buznK|cD`noW2HO?NZr1*YjZPid-H#$ z%{rRaOd4v+(U#4eJRkZ`!ncb|^TD^4R7YHsX_k0IdFQ6%ob1c!=ku!W$9katQ00c5 z!%GcuoDs{{VX~y}XLSYel7&#|09kFv{j%n_Hjk8ygJq^^^n|>kg(0_Tx-6>w-xP5u z7XOB7F$o1t4R!^-PV5TNHA_K{q<4;=2reg8zj*oUVZ!l&W)KiUm&f|<1c`I(O(EIS zDlGcNUX*x}KDqH*}5t-HN@f-*C+`BGy zb?Pi?l`H&=ZR`>YMb;d1x1RdC?@i?vy;o(mCv(aC7}d$br4&6*Wx>=^&|o6G-XD!_3BG?OQ1dqk#v%FZlJb&3W^+$8#W0&^38yS@;bQz5Kn^+ zg;Y`ZMxha7-@QM>UuCyMcIV^V*AS~?FXk}gPbLY6#x1p+f`-C#f)Cv1ey_j0E~C5j z_1K?cReXjG+&b{S_>s1l03*2&{q5I3k1 z7-)OQh&IkP=TZKVD)nPBv;A^O(c&V)3)fn0oe_1PG7@4E@01Yaun+}=hyyj_hR;}A z3Va4CZw97qJL&=p6FDEX$2JDcL|QeX{A9Q%kFmScyPYN*^~(U30j}uPjj8hVE%-3} zJufo`)Zv3>7pxjY>z+D4l6l8^fG2304JYSbu{X4P zwx$Cncq3X`$+0A*RjRlIrI~9pa{SFy%0J0`XZL6CE03pfYKQxv1P6=Ka%m%T>ce4j zCYOU1>9nmwx4=J(3HNr47w)OZ1cH%t^-nMhmOGbpFJ#}wHmQ~>Hv2jzRo+{uh&$9= z=j+~EoA*sxoO<{8N{nZ0K=<53u=$twCTJ2xvW8 zvx%g<`kw<#j^DW_r$x)F4%lbwJS%fBULk}dTvqqUO4;9ZBf?X zMVIa7S!LPekN%0}>Y#hXJmjzr*ebXPr7%kB53T#cTtHCPYlpy6)fxMq?{PrJ8}u|<8FlDI!rWxhIZ39GgJkU^=f&D~Br%68M&O z;$#00bawnQqGxPKe9-8rLJUoh9(-4~g@R;|RP9(=ZV7WdJEmJT7b-3u_el+a4i7Gn zbtc;i(a$v12i9%#p+XQXO~Q}Fcb5j?l62erl;GKsQGCbV#2Po|-6?Kx>(j;*>j?Qy zwrgkZ(&`8j2|C+RJz}X3g=O-&1Y}+>KS{x zBQ%zal-2*?CU z>p$49oAkEe{RFAp(Vpjf&XJoFak^M&*SPZqe@jE4e5DP)^NP8}g;+$%f1eZu>QCG> zJGg695ktVHd@8W#lS=)Gz`;|__|;@dPe>_d=YJHP_dgr%+r_)JwbiIy)E0``t2IlC znjr~VTS)AfrJq*qQ7ciiMywb$lGxhX6tzcCTZPzEt?!fPAIJ~MEBAe0=UnG~%mU%9 zF^*eru1pN@wJ5?tJI9Zo_ZbJ_1e7~cuL{1&&zLS~KGG?)Rp%p-8@6i%PBwZRv% z-pQ6UK!&;+XNh~>@_k0F@}OO?EiV_@Vg-FmZuwJUMv?)c6Y1^yMw2W!u$}1pm(lqA zakb$GVrDHwVRZMwkSSBF+tK{1%P!*g>)s=A@%zfXfsI_oWvJ4UAb4*& zJA3XGNntuvkLiYNM#fPx#U(nZv`y%v?5$5m&74p%;#7-%jg>~D#tJLw?9MpVXcO-& z(D7QWM(crQD?>mDJ*)(NM9q2@zBiXx)P#9CmHz*Ql~TZ{FF_YtIMnzJF^07IM9g3u zaHNFRb!iUSpD<-qepIgavdVRB&VK4)GD*NAX!EjvzJ+zlv6ItlW>j~{Agc-W2craA zl_$R6+Yk+O+A%DjY_(0j-I>doEB77PB(R<`XQU3CsL)+`*eI3}9s8$*`U5)iD``oQ z)|UHbCpOd3*21Fx%^(8gaw+xPMM<}v3@rElS*UmylAX=(TN(j8DX4e)mj(B*e$*d- zK-3o_mqTo7nk^%G=^Z%`ZQsMCOWi zXJmxhw9Ib?H01Y+Z@kxa+~f+zW5)`Gg{>ihDMXhTRqe%1fJTkqR1}@)#uG2R$HHfN z224G&GK)@L6xH+ia}V?B?hW#=_-1xf3SHT6qu;e~jBbYV&zRe8!!hm(*8wP=V(kpsbD@4f_9rb&GX;KX5lb|F4 zbY|__gt*fWvsuzSK9B*qq=65qWdRlE@{ezWs6FEh2=vD8g$oE=$Bc^wKOhM--TH8; zQhe1oHLt$`FAQVtWZ8+=Mr#1RDmKEU?!~U4P6A|T!C0L4@>Fn(CBAan=n?tQwCX!| zr*b29>H}|)k`gy(mVoCc8f-tm#*8VUlIv`CHAIaVb%)5uPvXDo&zVG$Qjk}a!iCkS zb@YzeKdS0GAbgwsUThMYCQ41yt`*#>iCnA?Gj40DC(wef=e>xL3^``8%x0CM>X>hB zVWS3`6v_VYS~EJOnvG=_{&`>kY(eta;S+o1uV)-SV=+bP`5;Q-)cJqZNS@6C+1lE%?yi^)^kNH7*4m z-mWbg6oV3uuoG9$iYi`Q_W4-_4RrU~;F~Y=MQ(wh5DnA-gws9J*RKtWwOmbAPR~6U zrat+Ob#&mL;2&cFcf-^T%T=C#XK;D<{BCDNa2vJXAh2urQmE&l^I-CX0B_g->rYil z8f8@{0V+a+k>WA*qdFY~{&AV4R8vzPZJ z+jzJd8qacxB<`&3(>IGxzu?pcY6a-ovdZTFz;{36)E{_JZns(?j}=@dPXpGZQdh=g zx+&cy0U~o`*nOKqjj>Bx7+jkmw7491E;1M>$N6k8k=)fqAc=jQfbHE6(q7l*L}G$g zo88AP^_g2#ZKY=#?b#J&XbaETcqN)P!Zw4`vYNgjgw%p8^@tk9Xen zXEXLu(Q35Jf(mv!fCTtO?~*0j#`j+ehM6HMAq1Jil@8Zf1J#ykHO0RdbI{ zAwRSEIg$}Pc{qTQsIee!=B3UR=U7^)jV%{C-za#Y6pV_H>3yJTRKP7W2OVkCk9n21 z0+f!X`>gMM%&qfgtf!+9v2{#C(|X1QVJh0Zm6RP7q&M`QgmeUL1fxuq=}IdxF?WGyJDbCa>cV)O0i@cRu7 zk#qrUk0s+nl`Y7fR_j;5x*sCCPs@C`wI7Qop%R;jV)mBLBYy>UiAt*YfF-s{^jkwM zyoiLlp{%ja&()wM;nJXO=ZL`;F*V6dwBKo+(&@B(%w{~$7afP zXG61qD+k>+dB}}7-tX|$GRMI-3gY5{+#QlEw`)24-3*Ohs(9LDhL0*py>c@V>bcml zF<;lUugZTzUaBc9kYW6CR%a6$I&;yoV`WC~mE9tSmtph_5F9aXR{B@S;n-XN;H;u9B-JLr>9kusaLN!iH7oPfi zcR6mkSC{kTQr6JPI>WGP&$X&^CRq1O6WS>6K89gpT~gY+A^8~i68X0>50Mf7G~w?k z>kR!1*zwyqd(-ZMVTPry+F6~l#}g*FQ4y+y4kMS`()Bv# znnhn)_bGHtE}kqQn2K&Wi0K7n?v_v|UNpLPN_SU$gYA6UI|T{Lk-|8@`nYb*Kedj! zPRpYLIvc;qzbUA9Lj~09M;2j=_j4IdW9sZDytBGEaDkB+F;;sUBHGE*6|h;Cmtd8| z{F3T9Y_<|eiRHmFOQKIWpI`Heipg$~9$swv=bqWPEbC(Xn_!iY%kdNEb&&7P7B%jt z)^%EDRTuMiR=6f!pYXy_r^NWXaq$wlsnMN+#&J{0zfNpurQ~ish1Do<$n96e9}UbR zn_rUs1#=}>Q3uX7uD`Ee7xkwB>Qfw!i%Ny>89VfyxWSUg_Hq{%eU^b=jU+vVv$_C% zarVM`+69gE0h7n+PcHO{PvRI5c`{O*VOjYP@zPLDNt@)B$L90c6va>tiCl?#s|8u- zzT1`6w?_v+2AImcu{?t7YYElt7VksfXrIy^%+mwP;=WsFNBjx$nbcFLMrYGm7?wve z48fh&aar7XstIm^e6P6~2MPgz+E3HJ4H&trTcmEas%Teg|Qy6a^xu@i!QgX00* z%ox}CcS{$l@Wra7c!x$qNjIeJ_JD#9R;#0;KyVybB`nFEoOo^VREgR_fU#uvZ$)j3 zbe8H`-uOOGT3l`(PWLyWH~xtYWG=l=)u{rR6k!6Z)U&G%`~q&9w-E+LKbgS!ZuuOJ z)bV^HNB5F?9~dF{#&}J)F(+Q|_g{rRZ=dteH_t_v@Sg_>;c5+KwxM=+XVd)k_&!}7 zD;_ZFeeSHGrB^ad(=B>j=Ay?f^RG(KKPU#84qg6)8sWV!_0r#4N=1xBC}79Ez9SiR)INs6pD%x=wZlo*9OhgWEg*1I;E(`rEojX z8H{UWjcK!&mf73|hMD7#Rq#%GKIsWV4SS$ZJdEhcac$k?ZYKt#iR=4ZRWliJKjCh0 zdy1`Xp-$Ntct>u-jVFj~r)5_+<(qgstZT*`nnpO(LHgI&DlPb_{=8D(mu-Z%VQ=LSg?{pEaq7q>_pS4v`&X5~=q^xe z9`i2yMZ?3tE^c1K41#%T&F0S1PG?~yz#!F+$N8@gCLgD$FU%{)e$|K^4ehlM@&~83 zFQNf~F6DHu{0gMfon?kr;t663CFPG}j>JkAZpkV9^M8Ca?^E|~I->ls`oqefwE}k= zaQ2%S$vz}LYuCQb0hp}9hx%bjzP09#K1Va!c6lQNKo6j)Y?%-HOy)8oE58!Axc7Z2 z#vEDERdkjzv6VAH>Wv7!{FBMc0`#z%=lM^n3j_0obr@FB`BfoQ*-tGEvA4CRtra+4 zP_;VuvkvCmmCXmX-~^n1zA4LAJnhJx?lJBEC+xoTi}1~8<(sC!^HGf%p|ZbEQnoMI zRh!O|YYx+ijsQ31c!%8T8poNmD(JRW{ViihWjDNLiTXkk{e4tm;om#v(q{$SMJNfS zz_Ke~I9)?iAdEJ#plbL1p9Sd2SqN3l9r%KnNuS?UC#0*d3;04j4)SjNrz`l%vr$jM zaq<^%x`XwAwTILmB{yMQBpf-qK95ZKXvlvCRgK__lBz1FZ^ahpCBr z)=E|1uW_r5VT8rzD%6lEA(x@y#fqg92Qc18igj&_Iq+g`vNgxlPsH)*yLi7?U{=Cv zvq|hdXyY@<%7HwfVebE~v0#k=+pBeviH~|uqeh!Hzegzu+gT7V*>m=j?k0SOjZvaR zM(*Jw{$9U-!RI^6LAp=%5LFaOdDNdA{;X1FZih$YVBAQLteYMY77l2aOvw9#zE;C0 z-~}|t!BP^ctz3FHP(-BHOGyC)Q8TnYdf;EtF0GPf05gGbH}19R(Rm8^+e+Ut>nONC zCP>D{!Iclw{GR_w^P}+MNSgr%Qx0T&|1W>&VX z3X;t-3*bnOeHN%{*072H+t}ufgWhGrnHSkxQXsh~LQs=WkP`1OihCPoBO~Ry)|o&h z9ou`ff&Y~`o6es1FEd2vby_PXeMLMjc_45z#b5?9#e$4*RW!?rUMU6^DCYVHg=S-I zf2pzw>Ko)ZESeE`xW`^jbv5-cyDkhRdaV@;Ua~eex;gCstb(83k)etdBS@p7Au6*u3bqjM%9}M`AIYJJP+#Y$SdE4> zqP^@ zI+TWLz$$_SilM5IqxY-T7>ihD5;Qqm{Kbo9lJRg&)lP$*k3EDIvPhaY8D^ z@(K(SGFN&*c=2{X?!eE-$GK{7ut)Tsu5x{vUM8sokgZmNA{)Dj>22eOZp{H!%H;-K zgk>p7w)Wzmy!YH`@NB&aKhiLNrQ|1Pe!GXG-6JQuYF=e8b&6<+5xBXy&|TSoC9h|x zKQQ(dvECV*-?!$nHTkgm*UaT}5&V!6H(Bp!dVE3~{U&94sKDmz6PDjS_v0&3OulbOz3o<++hyR^&5y(JuDN=x-W^+fHnN=%S;z_uIt*7^JMtz)ze& zH!9HT5878r7mFOZPXDZ@tYwxp3Y64Wx<{K%q=n@ObMPmriM5{G0FGmHvR8 z@MLbaHv^qdYCEeOK>y*hehJ{TKL7C>1Iy7dzKNLjj*f~|<2T*V8350E{8=T*be?cr zN&K1keTLL~^)7MkHzWG9!j;XP=`*=xcrp0zRp$i044hRCX!ZAc^lG@|2mY_4wjv0o`>gVIVZwQvEnsvPO_$K!(9&3x#N{q&R>#1k-j!OE-lZ&C1 z`LpZVIBx}>OZcFD6C`^>s<{mdH-y37{(A~uW__Dl=QS6|#kX0Kxn9Du-hT)QANUxJ z{P2J*(8-EiACRdkAP)LX;@~FpH8u6LDU>3uB_N zF=j&TF)4f?FJ=*sR1nb3l3~}5j%`Z&+caKm6Uu@IxM7AkG36Q~Tmf}S70Z5PC}OcY zaj?c$H+{?7pFV4KlgzsB*P2;q!q?z#90O^!)&q)r2RTG#?;tXV{cif`uPv)7208s~ zBEPe*rp2=(jFqivdL0{f$Crp5zbJf#;%^~5lhyBCDORAu)r=kQ}Tnt`a} z4+q7yH9t7J5qD41*>CwoCpA9V9^a5I5x(xxc~*~^#xEJy%t5cS2${}`fz~Xu?S6Hf zEBX4J7`ZV@Vp=EdULdLJ)W5M)=+4~z$X1M6?m&$dB!E6%7!PSl!w<(LPAD2Ovqe3=bz*m&k;-RA1s^Z&c z3T>U(&QLJH!!MaN9p()-StGgWm7Ve4->%GsJ_%YH6X0+wCsR%~V{ujDv1$uyKPYT0 zEJf0@T6ebV+qg7;Ns9Zy(n!Z>xUpPn0LJWxo_9_BU3> zbS&gS7Mk$Szgk7wapm!yqjDX-WTDfYz%7aO^e=Cu9(X7^-hu?^rBu`3QLV~TFq!i| zmz{Nfg0eqMR)VohkQhqz-O;mjW2h%ix_6H@xlK*y=Q~C>&w}<5_%BAvy1Ie@E#4a2 zG)M{rdZ(H_Yfq?sI#=Uhy*@~Zz}&GtY#gi79)kc}C4uW$4h8yZkoG1IQ*0ny)@lP6 z&r!ZkJ=#H=5`8S0-x4{7H{E^PyWY7~Xm#q~DB84bW)-IGzI?v0fu1M~dhQXqMK`v@T z{j|pMElxPnb8xelj@Cp;XBOUe?F}<-(U(?73}Jq{T5XmkPaV0)ax2VUP$MzK#$bsH z#=L4!zw*O!UDeA(EK#dpu3tL~Tr%IJ9{01;y|_)VDPf*dRph?lb0!kEDEtWZ&%bi} zKD)(Nj_|zODn@tO``D(_*+1z%20Jwm3K7K_u^)n>)k3^9A4D$mjn>Y&ldZ}Omx`ol z9R{V~IVW*1Rj+T81PEABA+o#qM(LFekdqVUR+`LaY#KjiNi6e=qyAFI_u$`0y{t_m z>RD)u!TI|>XA{PYmhwh^nIn6-Ai7_6PaMr`ifP!;bPW%^C7?ryJMI9ijWBHe^zTF>iRy|#qR zm#@V;NY$9O%2D7vW+#IS*FHB6mn*008C&s6{=t1`fAooPs1Kg_p)zZ8?OQifaq^m! zso~b`L%D34-_ts*hum%Y0Tr^nzw_rju4+2CmHiP%l{*$qvhxpTBOTWl(wetn`_i`d zG^tL>?z{}g{30Pr0Z}jLDV1J0rng8}d^Obz8mven#UT(`Zy`+MjbJ4cBuX10JdP1n zydd-qw()A+=}(0z)CWGk3%hgU%3-~``q&spEyl5j<(-a)&OWTM*3q;%0U0L%O zp*b@!Kcs=~uKeC=?~7WNCZ;)5YR64Xj{rhQP3J@+GpiZ!5((ClDi?!KjH90beXWN( z&*?q((*uxCbx+-ZC?Uzz)6+gnY zPfk1%pwVMH!1jZ~-AORn_(Yi2>#o+vo%zv1_@Ghwua!BZTIA{@fZLEXr4DjJ^d(l! z|1)-asltr`_4}UKiT>e^!+cb#hUGL%nCE+eh|qI`gf{}NK@a!-2-c^o1ZrMPq75eJ z(bu%!Fz%I|8R4ODu%tUu4GBh71WbGdnCgJt-khvR)RU}bQ%L{eoN`P?1WZarKIJZ%a~RSn0dn^yXjZ&v3784 zUx;|86EJSLNb9QNzs#Lsm?8ZdoqyMSdIeTe&Z+qa)=0*XEFo!cs8;8~H&+HzaIx>+ zd-T);Xtcsd+&BA$I)MG}+AGKdK}~+I!lJXF0LhSr5hu~nwf=_Ax8+3wwHi~)WoCv? z`a2v~#y0mZ`)f9pvI)eQG%D$(cUO+bm}K0+CVpKnne{*J&OA*y;)><=Ev+(%ZfoXx z3O^w0J40grI0QA@h;=*a(4|;1(IU_EMhn5#BlATy;1jFr+~v-=mROBezsZbpg>?!l zva;O~-qa~5#sqzitXY}ibh%*|9aFKruU|QS@IB!~f+`1ky(s*sl4UspJ~$v*nMe(f ztmWsIe0a*rW{C{^rKD4doi*1L?|sf19zXt1@d0j!`tIV)KG{tw!`Pz! z>|^*i1|flkxUM?P=OEc@^{#U~K26M3Z|sr$Ik&&U&H>viJ4meCj>FhGPz>w(eFF@l zeDHWXT1LQhp0ZJy#Ud3v%Do+!Zjazhk<3l6VR1pe^sE7-MQd}B_P&5}dt|4BWgJWo zFMDTWhUFpF-%jNcI9HWms8w+1OpE7pyuI2=vE4@IXX#sWP?c9d<379b#lkF5F3yV) z_v;_@8hjAhfrL9_SVMSNXlbhz?EH%0>jHw@bxq4+b`!Dg=S)xZ~=8~O`~l_>8X!q*0v(rl*PAn)5O+K1T0l^xOVp%KO?{>IVPuFB3zO5Rjvc2#@IvSxce zGZB``GO@mo4K=tr6kz%f{-0h7aDQ!PWN$Lvb9?vC#e)3cALe=zu%}x&x2oFUf7e{D z;#{80Km6ad<39h*OVz8BA&aF4uO$`uD0?^g0|u0`L`fdeg!v~o%!5YhQ38EFK4y|v z92WoOPAI!ju?NVINKgvT25G36!zEO0KQ(X97$ezaI(qnT7py{i5=qsSa zW6N{o!p9;nohbi|wN!he0~T6#YW6#&1px>2`PPJuKwfV*+|ufb*N)=1by2XsXthOO z!AtrM+h&k^3!~%fV1Ji|#?#FZVu)J9QZ;AROx3{r3Y#jWVcB%NSsfyB$Vm_J|5YJWgDs6*}d5@DHO9{=6C#&~2sIYdMcevD96 zaViSyl7xYe_aXT!)d776*#-v+5#){lI-nmeY+`j-ZvZs4@4N3_X$|d8*y}_61Y-Qm z-j7n?vksRc^IiXZ%C5uq&MyaCt`MQ0x!;BhY;xd371XP0Mhn&C{vg&o|Ggl7?DB8< z6>m~S?Vdm4VN8ma*%zF^)kdf)r@Jop`iJ%>L#VAmQesQ%#%z&~#Ojx8%_@QLRNoA6 z+uzc3_wUZ0c1OSD6{_^2Tsk(#b6ceVF$>E{V}&2C5_W0?*bv$345Y{fQq_>;hclmJ zjU%ibN9!d04F2nhHaI$l)`?^TwoIZ%m*EythG`iSs9z*a=i7uExzz#VYdm^0yo$h% zN)oLf-RtC)5_s4?8dUZ+g?06WZ%%b|p&5Ug4zuFlL1LgvSV~UVy6#ss4~z5i;oW=% zQ>Gi-&zpFi-4#0E9gu3zATQAS=f#2&XJN+%$F4p{4gNeW3OpGd>ZZIG=)#`2a}QoV zm5aU>QL3Iy+JQ)yN!QTZs2*34mK4fuS?C~dMtZvcSgj<2YXJ?@sSd?@%@^f|!kNUt zrZ9lhhKgbA?ZeKMAun<#o{X{?w}_buHnZeX+me4iki~7m7w?2GYqqXg|0jsmsG@*Y zZ>Gg{*&dJd!MgOj*z0WBqU(UUB5oD6QWomsL%5vmIdyg8Lhwm4`pKx6QoR!sVBpv0 zSqlgh)i)NTnk(Yz0E+knz1^y;SEiShCAq^RHrn=bNOLgdhF4X5oC%u+^Ok>z1zK#1 zN8VOQzoy~(sK7Y0v2Ee=Ftq<%cj>|>rs3S2RtjhU;%}MeKB9P9;wl0)VApo48*bF{ zn4huDGe{?Ezr0r~e4G_F%+wlv^pK7N^p{^(BUU^UzMN1QRo-^9!>jaNGn;acvGRpQ zpeXw3Y_lS*Diw!{YHz8`#_x?iizy4$wV9gQ3;{q+vhwR^zWwml^K3{|TF?QAtuW`&$aO@c=JCqq%QYCz%K5zzGd-=KXYsl8^3Vc;Y0#tz{-g|rl0I3_g0jWo~ zN-3CFF;klJ6f!#GY1SRb*LY12l^PE{*(%45tb-1^lbBk5>OJ>oP49y*M0lH~PmFiu zI?&%smea^G%{`e$ZB`wo$%VT(b2~ci}R=wJy?*8QiA0~N*a%UOLTa-Xl-k* zI6)yEvdkra(p!I;UOYR|Gwz2fS^ay9*vR)~z~Zi%yA9Ou=tYji!cdd@l4(0_5O<4e z-k4RY(XG-Itp(^MkVLn7@I6SG9$msPL$iVX(a)P7_%0z z*T&KEo>2-Wz$YTjGqhRUpu>raOY}2kS-DK8ndx^pD*R1D_YHHl7q|TS3@#dw-d>X$ zFBOYhQT&D|o1C6p!+}F6h_)_YH!Io!<7eqEr+EZo!V3EI znuVrqQO+~hWq%bFhsy88pYnDnd&agPS-c~w$C~xp-RJ>|M=mzkGVME>rF!*9;{{i| z(}D`VS_<_qBu9aV8qvuv^Tpdqlm;YNZG|Mp`B!r-{b$nMuev62IX7a91YtUc=WS%Y zygdRPArAXCX=|E+?Ij^~0h0Etw`LNHjbwn~C93<&LqmcyQ+7YH{B)tJtD3gQzsLMp zTK&BTrCo%!;G z*H@o;+nzYJ2vt?-H+d#7Eew{7ft;lZ@%V*I7#g2Y^}-%f?cIcQ5pbb5oCpEmIp!qDC_a> z2UUe!Dwp;CS$Z4evlVIKr3;SD3*OjSO!d$H=H_la{w&GEX|HN^|7`+&+oi1zJo2dJ2#s;1F+Rk`>s%PZM;kU6aK;*ctA-`{Lcc(o} zRw|9!w$Qkl6R}kIo#WFXfApF8RF*1UEe@IltGXGv%`U>4jxHA4U8=GX>t3OC#_ut$ zYCo`u#1gaKY$m3iTvcp#t3vMMU(W4`@s)@&B((}Q+Ax0G zS_-iIS!?bRp+;%(3AU3|M~G{^ktG}7{nZd@9sU^*Gc&k3-m&+j!+M#^Y24(m#AhiS zIpn!JY#=@>S^B4=#=Q6M(ypARn{XjkK~1Ic5Bg!u$%CoJH}m3=8PRvO8{mni$0CRR zR(@W7>_LcMNOH3^wUe9izZ1(Zwu^=|+2L+JeQod1FHgEcx$f*RX z3`QEDU(4vOWX2z{;iIu(JsJL^QoGEd1<4Q5#E>83=KLt~!fNX|U|*yzFsq^;Coo2e z5hTc^5p+8LSf509c9yQU=`_NF;}rjCtWS*BkdN1}UR3ox9z{*3O#?c)#wP!}#ughs z@auJZkxPyul%6rTMa{Q^6u#w{C z>l7~rz?764G@?MW@0U_A5E)c{5{R-a*aM%FU+LgJ&hg8LNsDZ1K~r9SW4W+{hV}dO z=GjD3ZvAt+{_$)@HY>~b_i5sN*x|7`q+>;;uRTFg*CMsSorPu3|4^W@{vCYX96g|8 zOH3E`B5kdK!Np_~Rf!GxNQPpuVZ3~j5c|5&%w((rO=tbEPwxpPiO`X~<3HTd+zPLZ zXw5xt25c6(ESXIoml;9oc15Osh%0bN%vV2LF{EIh)7?Fpj7KJa$|BaQD@g2az->a7 zAw)Oe`I2k%LG^^fC_W}e>!*ENl%uN>d9>tC;yqV- z-C`4`wyIoxDMejeJ#Nl{W;#+6V(_sD#Qm@Gib93s34dvXOwOtVBuz4cJUhs*;=neC zqoWV^-LIbP{m^tG%{CP@Vw1Whx}r|PmIj?w8#n)VO^r0Z?0ax*ebLMsC@y*3SyPZB zaXi%=JLudZdy|?omrqe!O}S-qDvBaM9Z25kp~5G8zo#^SSS9#*bzug?Bdf)Xo-U?p zjp~%TqVOHXM=qXpAuNrn>lviP3D<<=cA>aN*qG-ty~DRLTMrHX){ooSYuWedt?^!# z`COKDbX`>>_Aj|aL-(T#c=)ek>*E!bhdd9C6%rL-H}vo-Ee5&S=EXbir*TG902x5n zB{RUKr0d7Z#I7q-g_azGek?c#Yq@@^Xhf&Lh%V{cx3N4AN{gQpc2c&h5FzkS$N>GCP84R_>g++H%Y8pmlBS?)@(d z$;9(;pKLRShUrLvv$A*>yiX5S)kJ~FWqWUVS5Gtw@W&Q`YjaM?x8`O{20az+b;@s^ zo6X_QB`UhUFw5jw?QWZC+KlFWMyEWwaQFyk)wsRbsjoGcb6Vg@rwL z9C~Y;15Ektsi)_i{cNs|V?3cr*KS0?v#Za#D_4r6t+_5RvIQhMN^x|Lu8fP8)|V%$ zsX2dIak{QQQ`4^O>50mk^qsnBdWb0uw8TsQ+*U2{&{@9n z`wsL)o+(94w*O_x=K}QV4Tm(@!61OHRpN(a`)BhnB0bU{+W`5!lH{HSLo7ED!&_?7 zYxBP|cQF(WQ+m-X2l*dCW7K^xbr9If|DzH7O88yYRB}3K8zJ)Xr)*4~}AQ=xg@o_%!8pKH*>m_y-46$w<6Q2U^oUJwm-`$+r`z z*uPIaNTPeM91Y@?s3r z%ZHDrhAKdnt&Hdt)p{EcbR^~&sqB&v5D1ae;&SiPcyy$ia_VH2R1(TPY1BbyPDqZC z#QVO;=-xip?(t#wZ4*aGzUrQ_%|rEP;T`WyG*g|hN@biDp*#$m#`fr z$-yQN;c?UUwc_RFBFBy9i9KU?K?9lgAfJ_Gz`bYn1D?|<&1D$(Gfz%Ryf-dXOA3duNVjx(${~d32WMzQLTYZ!Ps=SgdA#!US1h_{urs=edO1421U?q$Fp00| zgswc?NnCrM9e@_6BBvTb8>C{s#TkR<@D9|*EMK;&#%a6mpne!`&S^24ccv(QzDf@2 z$=9RpjkRvtA6v_!btY{Rq9eMhLh7%^QMLG$qA=qS+|Xi!n>83kmSr?%5o~am6I4c>rO1FnqIZ>g#oYXulqC>d z7iFkav%E3)+M{8}ui>7aexM0+&G|SQ@FQ&EkAfHdJ%7o}osVT*;tElpWu77zd%E~j z01n8qi|U9I_&3-CQ`~DG z^hJSx*GkAUE#Hj^3;jx>Iq23o=_WJkrs{m`&&3QFOk;u>R!X@rvB4V(uW9s5+S_=3sMYyu=X2PpA@6 z{{BfaM+avR9GY7MMV_qU6op$|7@nC2f( zF4Z6_cs<>}$46!MkD!`?@Ly}kDb*iAV|jggSlxetdVcjOX+xGp(rDK8nyQ)b>`4;- zR4L2u?QKz^b4dwDCvdcwtA1^Vi>8t*BS1rDPM?|&3rGaFndk~?a;FU}aR}?;zE9#; zH|4!9RrXpizi~C z#P3SvYL;(U7HvOC{_r|5SUapsv^A@ot0CsnEJfs~K%H1sm6J3P>1@is&$^A4TkfeW zpIZ?0looiD@&6r36g)LcqJ1R=UH5)xR3z5Q)ay{~i_gz`PH*)LtoPpZ2?;>=Y+kk) z$H&MUOHO1{J(MRzkIpHf$mV1Fx-lMovu?94gl9!8deb!cktQS!d>_8-sR25F z9$k82pjj*GZ0*6uz~AUor5CA;rwFLUxQPK|NliiF%&WKRX@?voj451{teufAq^%PN zGEbOJPIuj7t{!f_xb zQ=N@FEe6T3{qWo)bWQ?8Ry;KO`j@vhdZ%f}8km`;x2fZhCdQEmTzc%pCrWX`kN};{i#i7qTe3)r%QK6j#=ce563;A0|CGz;v6e7M8_0 z=!N#tQtKmjDC>*Z%nJFxH|Ae7d|S`x>0>P{j*-7CFVF-RF6(3Rwewi&0H&oS<;slF z%Q&YD#_McqV)cdIG$8Z=4Ym|h1RRQ!qg-@wFP(;%TK!-iv1tXU>`&l9sk_rl3IF1t zWNm_uFoGnoSv+v;`!B9~w|w60zJf# zmoe&d>Ec@a-RMTt2fRx^{nBlfwhqe@#FS4&o@6FHT?-7=MGfltD0wp(6tWK8;1&o^zKHYZk1TbWQIe=10~nS9P%aqK590nLf5R@n57^ zXo}R+>x+AR4(b&G=d)qKNkyUJRcRe5=QhB2tDRwK0pe)A#mzX*^Qbg?jR}tFt0xYD zxO>~!d6E`KRyX(Nf8i0C7#t^O*<9UcJP$X2^uA=mB;kA1jMMXfZ1H^-83pd|X zM4DXM?LvuCEb6}*;2r%Bo2DtI`BN=ICR4KT&Yn;#jvoP*9T8ugAM=fl2O#Bky>$NxzVVYPv zuzmwx$|v-F8a$ZK%_uWWJ8}B5FJN-^HO(JTBcZd-y7v8h%A^3dPIKRrnVIcj7o$mH z^!}{@L?wUeYP+~rLP8_T9ziAjFzGKOc-6A2&i;f??5p5yaWAZ`2lEckp>)0*MT{~V zaczZeWK%1dM@L{N+el_F*MI>zoeQj1v`yYo2vWZ{!gQFCKhIrqPu#Z7YdJK7rC^bufiG>Xbj$2yZo`kdgjn zUriuw;(~|f9G0(-s*axw#}#CwqR`FTto`{@qB=lOPRl40 zm=0{MT|6Z4g!{ip!(^zkRZW!|2MJjBwrJf8HP;7wo(phZZqkiR^dzv0AJdcGV(GyzveBg=?L>q1WA z1$653`2HH{$iI4h1ANl5|A<}w0jkkCHIhP13r<9RU0<>KG$(KFNjj$Jkb+|hGs8w) zK~1fBIO-5*5*W&tZJ}5OqL(APE8kjiJVDUd%b?NU<;o3AhXs?AJfrPv3nOQA1;(3} zCu5rmNtk6TcfmQ0ELZ}-$$=x-g1SW;EaL0-feQ4jhe0p zm#{-JUCQHBMbor_ZbkF9&itiWF*7O6^sX0Yyt9&VaRd*CGGlyra%?l}TT0MKiMUBJ zv=vr8mahW>W@jh9yF|?SGaIA~s=Av~aA_HwZPc>SpA@}I%WeNL_GIx55Z=%92vV5$ zyle{%!Lgno%;;o|r*K9$z?*Z0zZ6v|Ah^CN*Y9P4b= zf~171QDMcvMD2Ix#(7~;n49)A zQl=bX{cHT(t;1VLf9K%~%8*u~A^2U*Rsz%H$@bb&*`4O^+pDz+BiQ_)YrWFn>9+`; zWNMv5y5F(InAxs2*2(`q*ZvwSR&Hk+#K|F1RFV>s^rQ%DBqcM&D@c8~aa8X;OO5zF z+g2J0l^Ipnr;HKcY3H`>i5i)ihrM$)W>m{0_c7%C|fw7r;Sh84x9C_ixxf&w0*s?)$ouyG>snqCHWU^cXLp!~)9w zTKn9Ui1g3Ad|Edm;T0t|_};ii$LfXo`Ur(#O*G&17-+BR@Lh{Hp~WZ`V?>0mkGwmG zIZvHDd=vP=<9gGR>(aM0c$FA>hwQuAu#c}hLE@AV0BpR|WTb7#pB2i2?Vo_s_S>7a z8131L0GgF75bK{)86tdFQF9o*?k~2y%q|RC0b6u%q?`Q8fOS@&hxcgrwMxLDr(ze( zBEyq5;A88ItA?&tfRnt@$;l7m-k61__c6fk;=lL|QIU?&Hqm&QrixUk$jN`28r|)M zT>rbKBwQ+2Rm7pho(p>X;4Q1sXZ`_j#_5oXb5IZ`&C@XYEl|TfF##Gdi|3H1j1`;g zBlEVHd+9`2a3LnTrFMY-CY}+^&;QHLGOF~C$ zWqg11Ky6xqT(sg!yl3mBj!0c%o#yMs<0TuM#*B_>)}Y9%T~$U;O#>*!?2vXcF)kC7 zv&p6&#lTLRxt{EnqB9SX{Wk&GYkz{bX3;6MyIHCzl(GJ}$7&GpqZ1lad_%0fceql1 zrSlErzhZYE$JEGYw8$E|?UEl0%YTP*kKHCSV;+X0v68}j%lg3VVG|yLsN?m=IZ-@g zaijD4>=C(Pe-!LfyKYX%RaO{8SVmavWW!i*7~y8*0`BK!m2Mr$qF&3j_%H99+H>Ya)nftR0faQknce zTnL_;%&xcY;Er#_7aOjDh+f#bzV6&;Em(QK6w>T3a`5;|r5 zTdXkgvMvb6@$IL}Y?chKgPMG+;Fgsp{qpMOY_->deW_7WtnUcMv4XU2?qiSD!fN|p zO^ebCt$m`tH^Y=>)YRm6;)n!G z1PkzKDe{U9Qx6q=s!OI&##Qoj0)Nq>Jj!j%e8elycX$2N8{@U> zy1gCIQ<@c`9{Y?GOqIfAu$@n=f3j;_N$}1{gh*$C9C4I?Nku+-YX#onMvNLY1bEDK z?NYHX2$WqEx}RK`(~puL(7E4j@cia+&ynr`2^t$r!mx2PdePnJ`y?OWA1?dm~Zd-ft6tyk|mc!OgbRSLbJz>V~g5z>uUL|VdhdaY=2JeqIda%K( z<>JqQ)f+dC5iLND9I-AzisG%xz;0yn1^GsKfFY)`}@$#p?rJh=k@6t z;-UyHvQd`*SmE#P)u+pgY1$?ketwkJNdkH{FfEru&1Rg>>QA*umkDxWNu)0xv8iz? z?y))3DD$!i34Jr1fd;E#y`d`8(y4-f_tJ_*k3;Dz5cN))qok zVf6x7L@74~dVbo$VK;%?$BtndB655`8v!;HVC{Um@k&|zx+pO<>pb)+Ev zNASskAe(KaxmH?8J7r!VlL{F3g1tN*uxn+(C=DqhW})Vn4U?&H%{p?0an|Rq28=3E zL43?zwuZtKF)gHI>FXQ0*h+>i_%i-oAo5e&;*rO}>?-dow`c+;`j#2SHj?f)%*shU zlM?yqf9blF{=TmRe}b?X|LzVQdI)j-$}LiCr2q#j7dJIWLmq7Q&uFooHQ$>u3KGVx z`uaK&e|rO0=HIJIG~-8saANB?AsV?AP=!ogOI?dwo>nA)tv?YiQ}% z*>LKWr^~(>oOdJo#y?TIrC2O3&Lsaq{g;`!e0?ofV8N%P2xPS|gJ&3ZNhXzR47@y! z`&_^+8WKaT-V|(?sP55s-t%i4R&zgcc@$KRms!w=^OFfMH2CG85SPjYP(f#a2^fpm z*hJTpFX@GrK}AJQOZM82C$z0)f9!|CveBUmO!U5!drajvF$sg)%+#BP43U=MxI? zX;BvKRJ;5W$h*wTU6eTTQoU~e)NdJok29UmC+RO$ruyNILd#Z)V!-AKLRB_OYC(EL z?P#4rkE$-if$Vpes$K-W)i3SZu-xgHgnq)SAJYX2HY;X4ualZ#!G`` zykE4w+>LH5Ijeoc;OFN{`6;2@)mHqG@BwZ`?s#xr(j%#SedW=bxA*i$jN(a6|Hj*d z0FYZlh>H|}IDq7@xLPJO*Jo=b+42RvgtNd}B0 z?K%I8zz5+XwHG=7%%LiLt7LnnLM^08J^;7TgM$q(Hf?=NbbMMlDjBi4yS3_^+}zx< z#jwbr7MV%jxv2QZ9Gd&G+U?I!qj+c;eEWkPJbtT!N$tkMPb~+zmQ--_lawZeKA->X zNOXU!tLXhT{Oay*h`^m%VT7%3N$2%pMd1Qx&uRq54qNr#*O}|CX`0~t@;RKzUuG$5 zrh9oAT3hruguJca#TgIOt(NK zIu^$p8LF*gJ(Y_U7DrEA2H$HzizgRy#U3%~01kxJp#W>1#sA1;E<^K@7V!l%(DerA z{VGT|Hm)1(zjN^rdau$#%{S&WEXAVHS>SDuE5JpnQzMKx{?xUiZ-qp{4njzumis0B z=b8e9&i&`$aVO24NfwK?w2$eMbSzaE7Ev?uh`Mf@EG*Ej2pd%KYkW;T@$=N1_o|`y zFigKB-RnbS-8BnqH;sX8P|S^u{OA9>CfRJeI$w=B^|#t=vLMpFoUwZeu%@(3+S)Sn zI!QMSRxgd5-Q{Iae%sZ$_KIVLeF<^^w`{=J@O0u9H_z)7r1;AGsbg)sEuvo>6354j zM$)$hA&TC6Km6kEeba`d?lktr|Io=f(c50**4!bTC!0$Z(8~%v{m1j5@U| z$m6ab$8~of01yCXMpE^xg8ac3I|n8}UkTv3-+YPn1}eRsO1hi*48xaiVpy!fMSRxK zIm4Pv`?c?jj*b{eF9ViCbKRba`6I1b$%sAQGIwU{*7u$iKDIWD3s6;urtF-yz3B05@p_c zbl+3FKve1jubtwz#$ZyX!*syogFQ$IcuKjjYRjrUxpAq3;XM{`;AmMZg-`Xw>iod-G-@u7ZP>$*-( z$;8+AhUq%rKa#NInNQZ*evEgJ!4?B8n)(x$9S41R*;NpV=4MfX!w5j+>?Qdx*9*j!)E!n6H?Ou5The`6Mp*xSujXGd%S}$%wZ? zpB)zO^{Atq2xZksD>R>9jAG~aTYTl}@5X+N2LCnl%tc{;%QqD^VC}sB%ErI4w z2i=j@KqS37imD!orLR}3TEj%Pu1d$KwR?8hS%KIyP1bi2N@^M_ZACkJ)>2+|mffF7 zgqL3Hy@FaMt|EIC)b^7jvYmH%3<&DQI_--fm*45g;mGP_BmN~yzZJi$&4ib~6mRT* zc@%IqMCk}b&rWoDxah`q%+B!~3E%`wW-7ms>X2O=dV4r2_QGf)P3-h6yqXmmPU(1!;y@S6#hoM??i^tq2S=Vm_7*R zI?&+x)x@sJ*S|?Jp%;+Ak}lTjOvT;BV{U(snJTbN)L7|>SCjDIJ8>@lpK&kfCl))i zLn@)1(`D|oz{0e2k@V(tA4i&TImy)5jj|jJ%i01J2bw^>+KBpQ&%D@rUtYVA z017c7^>)5Tv-8Jkn`@~hdtb@t>Vg$RQBm8QJMecs-jC=eyMhK2}qG?4Ob&9Bo zuZamfo2Nz}xic;q%xPC><|&x8IuO zFJY1(@IW3rmK2;ofmtPqWKBV5tLUZ^w`naIM|Y4eCCL6H4sk{qMI%o;?^)Aji0Ud5X9*QL|LbAet!-fs_`8N*Gfcgi*!4sOkC33z;)yid= zJ@VQiFm@!n^c{%f4&@*q8C>zu7;rNaJ}VT@Jlk!XiJ|B3VCBnu*-hP5j1<~&R3Vbh zW1gn-ljn=X*45o4gq{Sr@U-ky+qT+$^TUlV8vY^j&lS$zs#F9U@%Ns;tLG{U4>fsH zG>PWwg)I)<@Lhd=!KhnNY2iZ*9qirZEvS7{GjPoO(NZIYE-4lu_}Ti@ktO3fnWGZ_ z#fc7(#R*WWw?j&aFN2qdB=}dQo!{K!YRQy3@JheCS82K>n9F|K!nbq+&0ya9a!G<> z+5@(k$E`)y9Tei;sA#wI*V74k&cI7ii39BCIPNEU7Ge*Z)l!*ke@QJTU#F#S_*R*0 zBx~w5_<5_Yn0FP>&PjK#vHl6RJoGE$gU^o>Ymprd}Ww`_%D+PcDgKHl8V@sYA$;hGX zKjLZa1_X?nQ_bth8SrdwC71Ys7`Ul0VS1>)@t}k?)PL`saeTYb-js1|aAvkI-c<;f z&}Cz(L|=_E4E}>@2!JQ^rOE)F5fykLfBx^9oGj}} zxMiBZi3o|LcFbI^77Fr330JK4KWu;+ZYUfw{jS)5PN<$N`o(?!5nXMK2~IHaBdK#( z@dh)QtnS7}?EKd#d#zc{LD|uu+T8tzjV&;SzN@P_22NrF;Xkgp%~S$!QArVUz&-1! z18VBzlPXjlq37YkPG@c!YMPkUS;hC7n4-r9sWb~|W6kW+bQ44HpSm_WYkNvp=#M8S!2E8RO?)~PVRS<=!c!Z#W9fs&H907_+$@@!+ax_@GeYvjy6c-zvBc~z%xY~x1mVL*4EHKl5Tx0FA5~>B0}FK9-HAG5H?0q z4{`ey;JitAt|6IVXYE>hr+Q|uR!HYN*T0zplVja85w_K?(+)c)&)VCO$+Ed6`k6~P zV2j~AB;7W=Q#VLtCKF!!Q>~I$MSWjzD1EwR!{RtiOP0KzLWn_Gu8O=aO7`5jjLnjg ztW923S#8kteKME_vVKf0NGCSSF{;tTlInfV@c{x*C+(SwCC>nNVheCR;wfXel#xgB z*xWVwR-4t(klJczsx{-Y;U--PRyC({Yi5dG~mutiEQQx|G#6 zHZ-fu%)4~SAmDrIe+OX>j^O)g%|QZj-$OqJ#fqF1AzTHjz2ED!WNK8)4p7zwf>>=< zPUsReIL&)?Fd(E1+3~eCcb$vpX~9dlf>E2=K~aNUJe#<=Rz7!{n@tw9owxFf{$$qM z4m$IrV(qFIkfgW!V`|0j`a*`0zKiK>i}%XnCQ!!MXpxafz0QAp&5l_qGhINpxwSOc zD`RPBQDBfL&`O-vyWR(y9(C^C*|+H#+16vx=q^^TCiKif-{l1~u9 zQwMooDIdmBjp>q9p5{(ni?IE>!dhQrSJYGTOnbDBX#EF@d6x|w2-PnL6MM+)dnKrx zSP$EJ&(UvE=E(*QJrHusqs_llcQmZJ$4Q1LynFMJVpdZTPbV`L;k8+*H-_QLu*z+M zV%3f{G%NHh2z84#5P2wVkT)5auY-F!bH%*)k2c~*F31bLZa7(^5YniQ5KmGLt@5D@ z=}33uvg4GRr>hQ3_t4DLi~7yWzRBhs`1kYhN$d3HiDh>$rXo>k zod{&pI$!s)siSLl$)=r0qOz4z5;yfbj3<1l{4FaC|9p<* z3Er&&9^ZW!XLmclyfCAD%DJGu{e3+EQa8~ogf&RVmT`TJFLrFU5{xZ1E8IY(MslUh z{_h%mGSj8j6RxW^z&FgZYy>B0qBF!O=%vBiqp+GwkrGedHUtI)%QU5+9vQ_O3+r%!EK7%xnmQmE%V)96W zse5uTO2tYR88JKZf(#+$591BKf0f0p>VqVk1mX~i9|wNw{f=!axBJK#GN}3JY;B!Z zikF^0EMxmJrwj)S5DAZ%&!W@ zG2*$AXm2FxIKBUC+xui+7N!bK!&QrxXg?6!^@Mx&mrUx43bRu6BeHRAK0;Ia)!gy& zGL7*fOyv7gs$#JqZ9ok_Tj(P0OzG9j;>)veSHW6$M|>xNjyWb)qmHajb_Jd&ol_}V zDv_`ij^ReAz18@U2czXzwE}55I_qZj-l9(Pj65X03IWr=#z=rUT{t>v&>Y#=F0|hg zhF?9`OpuRP6XrMHi4CV);h0efWr)Pbw9cv;p_pQUe2_KNu0vY%#GjzV0k-}i4YW?WOLLzCNc$l9 zwBrNciq+a!;vi{w#x-^@K+jXuMdMQOwe@^zr=G*@<{QnfLkJ{UA9>gyMCOZ*9U+$N!dAx50F+>UR&%v7?2`v+lc7;soay*ceI zNr&|_SvP^Z{+<{9M&Q*u$&g&_J6j}sM`y8FUZ&lir+1tw+uM4|9lQr@u{48x!QW%7 z*+1sRn7T;H>6VX>#i#YfL}KjGc~|ruN`EM$US7!h>Z?duDtgJPi*YU*@$o#%xfkzFRZOJ~->4;5ALc&J0qe+x0Ioo^ZL8+Eh z7K4VMtZV#D?-?M!8UR~rrHtZh&#E`}wsDfV*H6MBO8m|hn|{O(N+JR!n!~&|ODPeo zfhq&ww$^X&qpfYN>VNmtP%7e=u5mF8*MC~s+^B-NMV*Jl#p4@axBM=N$e_uF#6dR0phsM~F?K8y{>3N9 zjuqXU8T$2IH=f}W72MJnJK+}uIkO;pmj%6fMb*a2=9eL@ZF)6!yEL7D63S`3|B?tP z9woA;w!{CsrrqYmV(^oe{U|PSqrNWB`a}QbksfI=S;3n&4K&0rq`d)9l0!*4 zT@`YJ&#|+Ei%|3G zyug(aGJ3x5+so8T_2(yU=t&&*gEA{d)_0io1yn3uGT>29`QNK_@|mv8ROYDV(_{hR z!N3~TrnvQgC%FGzQ)B3*YmzNRq|Dfm3!Zi?H&cN8h(4W{>GVgv=ujp)Qp;ark6 zutsM(}qri`o7K~Zu2#P|Ao$-=2AcwPZI9_D?p1+Q9fmT`6U@eN?PXk~JjcL+{S z)k~sAT9j0TT3YIdjw_dh@qLaQL|PH#4T6j=jW>Qge2ST1h0VPe|7Y#2I2%s!aDSS= z{Sc7%mi24z^4m(w`edKasbh^|$@ebJPLbR99eX1zgMUmDM>BE}Et=dcp2M+naf_qf zHuR+9_HnY9E-^YU152*w~j*9(yOvjlqaF0zuT9 z^^8Xr8X8vWi`u<);j-Pyx^-f6iO-( z{O^7kp>gnGxkXVU*e0$n)TY~#>4CJE`OG7lLP>KD<#?}=xHbvE=XbK3iE>7(k=;-y zOY@BfZw09OdXmR@$XGIg91-fxh0b&0pQu8kO1-)O+FM}x79|xkbitV7%AhpD7w@vXh~68$GiCE zZXF_$ytjw}Ylrt6hUsDH1&_C0y}bR}BT9*4oHJ{v&{vQhI-+og8E3thnZK5mc;0Cf z*ZVuK%QpJNqwi%j;^onbGZQ1TR~1xL#-Gt{Bh-OAMJZ2e%;t5c)|Th3{B7FexDGqB zgFR8**`Hf?$zr+EG2SK_0PLw0U*_lZ@Lum>n%~9mw=;lFbai`(V7#FKKKG+7J zwJHunLyaG2{kr+SN9JiECzuZPVVnXBjAU22fM)a10l??D4JF~AJYA;S>=bCDs80gu zP4v-oYjZDtCEQUw*}2iqQp&MBx}Uz3X_3@P!7W5_Qc&ok;IM(oQgar}5n?Q~IU!yP zR-$!~1lT#u%i7$CG?2*r??m$iKDD*7x7Q}g#?F^gzMTXv0H6Tw8JzU36pA_*BB(MR zJ{7pT+c-6~Co}O`3){)?YiPtQG@L^+-nf+31Off!tQ8GtewP6tcMX0ybiJ$$ zL_=%}wOisWeaG034tXvB5XagaFpZHQ2yEfYsT%XK)K6TwtD@PE@flL()+>v64{fDW zkGC5Uf0~@^Ehwl&1bBI&s*V2sD(Ezv;(E}9n0|93WmHj=@4jLgvDO(_$|a(c1DANM zN0m#|bkivA18>O;qD6?%#$T#ZSr&i$umcSSO79YE=+#Hwl*(@cCT{}orQfnI^9AT& z3-k0@06RyPO?m!*;!?m{1SX6jDPYQ>GeHtr$W7ozlp;T*4O?ZA1@^W+CZyrf&d@i=UK)8A_xO>!N>_P_WMt)ahXN*U1eo9>sPj(@X zHDsV!YvlP4JBM=gb|phJ|DDrs4PB`V$DPVg>y=v&A1kteEYW-50*qo!lsv3=vBq+^ zST8L=t)XlOEY|`8LCqGWMm-w77C8VwRzqFDtUEd=!ACOdm$5zXUx4^w2*pi z8PH=tC=XWD12kxQ8)vZlJgmOG^`z1#qT8p6=)sn#>3Rbd+zKXb_}53epUDOnu;wIR zpHPtt0fsDuN>c_L>A)nI8sm&-rMgG{dT@oavQ`#Qta0XSpwKmRTw|ZuEE|rm`CQ7k z#cs|v5}yQk1i6p5$oU$e&=wa20O8GOOcS^JI`+3*nbB3Af|ZH2{{Deq_^97{v#3o^1WXHxoD1n%MVY?P-KZ7PHhL4sT>7e?2 zveI$}iUbxtGE5AV>Sby0JfkU#_J$SbLVh786gmrvqH`NOH3 z%LZfWZ@TIP5&4%UCQjWsOm*e)$?L1z=AN;Vy(w7nSy0`v?N-m%@*V66*vo}>P`%goRk5+p%qe5?vB+%Oq{=3bN4xQN zmT;_HpvQi$Ro;CW9=%QyCtp>~+tt~3&|S64>6lm@EwF55ec->BeKEn6awe1Fko`$h z=lW_#%6i64$Qy!&C#cq^@oSaPlE*Ua3^QjWZhHPZ|74wfh29ul|r(3+)DJyOGUH#5;`L4tAjofgZyqS|YUolH78}X4l z30+P1`_F7(O?&(p97bedP9K(>lx;yML$RN4Fd?^{U#|iz8j?y(erI%k|8%6beZ$xz zT7Ri=AiVXkC@&%K-N4m#w36teM*Qv}fTQ5&hTUz=cBD18x!WmIPFj`y&9Em;LVw!J z0}-ZXDzYyI|2etMRB%9I3gH2D2kS3z|1B1|IhyS!+JPrhaGs}iCW2nUyI=pn*h-E| z$8W{gnc3z_=kVaTV?)8S5z8FEFz7Cp$Lo|?GVoqj*2}d%G9mCK@r>wu12B3u&@NuX zWSBJ0QN4Ubw=?<0;pU&P520Unn*GcvZ?(Ap!lMTJ&QKz68UlQT2hHxJJL3s6N}^4k z;o4$FWnTiFW@HsBOPX!yM}q*TzJyiBPYd^}W70!tughXKO}EST*jqt$#?QF;b=$3G z$%%8`+w#gx1L;r8Q?%>SS9ZncsUHOHCA7KU4apio_`c+5g5y+8)>1zXiyfR&DCh3K zNz$^dgXPv)z7Q#$`o@zRE$e!liTio7RowJ zQFv?FyE%;5F4dMHk8uP2zz0dA@p>PPzu%1>AJ;!*YpIxMU6K5Jhv{{RIl!EzT4ACZ zBFyBBL7}^D@ZHgE>qY5IHL&?B;?43u-guZc!$dVdi-tHeq&gjE=5FRuZL5w{+T3n|k^MK@ zLcfT^QofbW)b}+7nwFR4x|ato<+NIF;i2+kCWm)F#DZJXJwr01AA}BVekoc{R|lXd z7|yqoJNr$+E{ji6md_cdx>CdC0vjKy7%-oNCbu>@ow_LSXTkbCIq7EcZCS_`8IhMp z-?|*f&&N$pJwwbN+&b=2Q^#Ez)NTy?3i_fjz7*i`m-Q@_WLhR<{(I&h0t(BbNrOu^ z>AT+ySs3`_nHJhQmNGN#>Q%>YzVZ7We)d932kLzkj?D}7Gk2G2 zMHvh}%#n$vcWpV|0#6^dIl@<|15*1AnJS?FyVk$2LaayRT`Do;NVYus?Xuv8QJ8J zt@I~2*%dc0DzSeoM*id(%!?#n#Cz6-2}d#9l~cWwmoc#xxJaC+025YdSRMP~Pu!aS z>KS(MKYGX>vtPk(Dk`ZA_t_8O-?$gEtR2Dd3pLk4Z*t%lPfcPmq=4y%EGlf)u;Ee- zD{>X0_v@ru?BC}|JX{w`c4e*_phq zCu>Xb?z3KIT3(k@izqY)2eG#d-Xf;o?A%vZ;?wbS{QBcAJKP@OYhKy5H}lh1top90 z0gu(2IoaH2T}Kypw6aTPp_rfQz2btjk0Kr8=Q?Yn7Z|txAi%LSqwC;Sw&v=U`$Jma zNfUfKyMT(a2R+Y2Ql7LZmFSZ}Y@yoGA>yym@opus!uuYpL(Ac@RdWkbN9{DRG5a!&vh*CvQ(0GhydPguWFd7Mo{g7 zH(!8iM8Z!7AjBev_k`zxA+=%A68JmN4wGH#P|Xy4Q^nw_U0!O$jD*L>Un}r-{k#pJ zBreZVtSI3MSWH;=Oqp#HVBT3i>F^zs3%0&-IpIR|DJ3(36ZY=b{S2dH4yJ0M3ayVz z^4(i$oBi*%%e3QT?n5`OA>LtaCSQ3F{(sk89NgFip-K2TM6b}8_l`^y<5qR&rzP9* zOVc+P{Vp0ty(}gg6?0cuNp?mMh0qci2b{Kaa)% zlR8EPUUq_6a?l1Yu_cv~^Xegg771(#Bdyn8$5_?mO?R*E!Z0na#P=Dk5DC0b{Ak8Q2^3pR(k7^-}+32 zam66X@}0kvg;r%n9cron?w5O6;1t$gm*OdBH9ywo z-`C`MPGO_>y{^p((Ta8{1y4QqKF$rU^kqG8HPV5;Z_DX2pU|=&vjFQZHAU4NjM8EX zqJzMl$87kYZSZF|N4m%R`H2GVEhitGRM>me7J9vUn?xJVx1|*EK{-%8`d~+{xc5e7 zJo&SS*fjpxCop`luSprTc7(^vX%%}Fx)@l&ePpJ_Om*Us+iWLmo%OKq_~J?;nyuFE zeL^tCBMN}yzLWC7RcnlHNp4BDlxZlo#Qnd|xr%B$iyB?1+0rm+tyPV` zW>a9Juwo{MzK0D-EftC=#SoZRy{8*1(p}gZyd5TVTjV*HC62% zG0S6rO^HA6IEyB$uW8|@NO5o?U&QzECX_R^6YsOdi)LePisvQ0zP_td98ujB?*qLY z2rAVKShLJY|Yzqr2q%ageY@3O@@UA9QQ*Ys#=G3X#q+7}Swd z*Bj-~r}8>*4dw?L{}Ao2fF_;fs!O&YWG_8?h30Q1 z-deeonJi!YX4@;QHoWp-QQ44V6C~5$-bXZHV+2euXWl7nV1U8qqx^J@7H2Y0*%MSK~qn)ANnEpbRyW%Nf zhDyf%J^|F3%FeURF*`ps;q#kKvRt^iqG?;1=aBKV`w%S@Fx-l5&v+8kX}z%b_@KAK zqBX=1QeKHUs-do>k`VgZ?fmXw{i(`%?Lli1O!6=Q@M|o^+0@8SmbuqSAD5C)DCi#E zEbRPr<8Clg{RbV1R)e>>aic&$R8-Q|;MZKOlCO8X0lg^*4)ttng&98y^H|qMV-{a@BcD7~1djO3uN?ZmpxB|{TTW(+gUkC>)i1=;Nzv^8?u^;Xa( zUDYFx#EXMJqik94H z$185pHu}1tBan=(d8^u!3s50kXScS@8R;Y@nxV5%!{_)wFaV03spOKmD9#3IDxIAG zSo$2)R1KKp^sOC(Pxe+Pd@SGfl`FiU$W^){oWJX{j#APNNz{u)dCEBj-MspPZL@HB zCKr72s3)yOK@}Hx%`&hBn;vN*jaA!o6OWd zwDn@7k(SbJ6(d)+FOLgb2B!S`q-R0Z2n=p!B&?f8RaGsX>?-Itihp-YA{2!!hmOab zM-2aE{`l1()oX=#-cDt=)Zw}AZQb+qPCoM46oaq9g3m)6P(w1lI8~yW%`xL={(mS zfSw`kSPCU*y{EvyKz}lpLN^9^U&xCsCb$_98^9Dn!8&?#XTk0y75F?Z=B-h3h)BdL^==k8JRw>SfVs zMdx7aOh`+{cg*I;!Pq23c_J@(Ovkv=WEoLwkGE(V-i%#K)DbS^F_jjOs2loY78TWH zf8|h7&3=lliF_hcFKhJ5ijyv#(y1zJ%y82BFBX0Bg@@}oStQL>kLjP|a_L16z#Kl&)dm?hndVA_qR>l&CikI?2h$I)=lV$ZZn<=2{^A znz(fGNA|=LFKa3jO>tKLs?k(uzV^Y$@vgr`01F3Yly$B{hhY@EYQ5cV-yLqg;-cmP zy8|8zy+j z&wd}ZW6a^K1`hs%jmI9TDG<(cI&@AB40CoS#LlDM=Ya{Sq z()x@n;~al_MhO%Z;;A8D#V|RD_*OCUc16c30kcf&6`hxrE@Yv3aoI0AW>MK|3h(hG zjEmte#MMk~=&S)k_KYI)6kCV-CO#OGmhU)%aFXAoO~fp{e-ayYioD#g>$~Du)g%W=)j2uKIRaY3aB!7A@!b zN0);nLvucq6?Dr>_}MwANZ+O%KR4BrJHwXd=^J-Kksda*0rk)5_xsJkty!UAcNH5Y zzSG}5y`Zm$TQ~0UumfEy@&opgcgLeTR-q^2Xn9Pww) zjBRk0d>ZL58_q?7=Fm0!X3()xQ79{JJJb99Wy>Q?U2R9`3q`pY46xFlawFEVxWHUK zl!h%XEpo<0DxQT))db+f8S(2FQ>lzM$Cef$FzawR)z9%VH4Ti};aJgMOG>5`+!Od* zJ^aQ^>TXQ;QE3OGThjl3kPTDAwdHH5mUld!n)|M^2(?(56Z+q^s{W=|b_x}HBN`Y&{ z*vJW9dsr1B=dl27y{QW1;5jWv=x2|ubST<>e(Hl9A@n5fvM+&w>3IDt)_uq5J6n&_ z7g@e~#Zq~W%#;juM@r$hUWC75xsGV%E^Ea+SC>-Rcf#i5%<%PPk(f?30#7_>WQ{}mHPFM5LGG_e= z1yooq6zR3J7jPsXn^;bzq4clTaeb>yaBu-V%sepjcbr2ue`%Ao8A~l5foE)NqLQP_iW(oZ!~Lz zMQ9A>(KH-g)fCV@r^?zT=>R%$g9u8Tg}wt@Hrpr@33w^vf;t%2E> z#wJ}k3WEvpE=f9Nt|Jl7VRen#c1)yz$Kxo+zmJqN(hp3`@0c^g;5}M3I7_K>AF&5W zLAZLCwDNPL5@;FUsjEP-%--)Ad3M%GXgtdyo1!Suo#-a#q^7OcqbV%6>XMFaL?`?p z&iI`J$>{7ZAGbNnW$>lhwk6Xt7DsM&>r6gKy0ep;fYNk}=4n^T-iVWXUD76BsiTyL zT$1%)^m>lnD{f2Fd50DIwq7$Clrd1IfUtYeigN4}I!QYM3kXRa*Js^Jb{o;AOPeN` zyg~O;mB*7p{E|WQ>RP#c5mHmg8#}!CyU|Bg)n9AkQ)ml(5Uaj2Xer~D<~IRaYo;l)VN+7BS=%{8V{A--(le0AFwO#@cITAL z-TEqGS{Li!txMG-p|R};<23e@E2ca;w4DfDQ|G#^3hM!&-=j%Q4--jHR5$uQ>K_1{ zltMUVGX-Gno^ZQ2qUhlkh)MBe--XZI96Y!sOgLTenhQSXoq8uX=MY2ACQtW=!mRci z-(OYoSoLwt8Ush9ec1)NmK#3AitK&>#sxg|3gl0a<$C_dAL|=xfL`zDPnbqUW4_)? zEfyOuc>_P8uP!Ajaysp7gl+iTPmaAeX%P^Cdn&io_J;3U%P@Ae4{~pdn|q=q45*y8 zV#o10Rdzr{)-9tA(CE8XW^PJ*)j45J@FT~ipX~hmyI!f@VRxhSWw4F|c=rD&I?K2w z-?tCjf=Vh~l1dB&=~NmfAfsd>q+zhp9sU%gJ2o1LQ3DjlHc~`N7$MDIfTWHR5Jo8c zpFOYlZu{)I?(@9A-{biE0AQo+R$ZSj?aAlj7SrP^!=4@Ho-au6u}%v>9Jz0RQH3D zNV?G%J8BL3A!MQ)_t90Vkmzx?=`9*EvZ0nZ#xNcufiS9vjJT1c?YobP2 zEFKo=$sd~GbK4KTm_(|mQ;^?a5*cjTO6zlj?-q#fAU?|c$jxJNVa}`w*Y&dPD{6Q6 zN~7JpbqJJ`1Gq{3%H`FXlHt+d6t$ja3-kfvKh4ry`TWsK|Falx5$6suqNgF|eWQZaVh`1vKG))iv@fnkA$uC?22&0bEjb6JlZtP)1*$#J7u~U66I&$#*BD zFqXu}*70@uo1F{;?d}MG3YO*hF>vj2;gPk7euA))4}7j?-|_}Q`dVsD+Se{lG0WCR zfZc0*W7DhQD&qw{o-#ggVd`7M{2Rmacw)9VLpJ>CD*-T>YM7J;}Z|l|LS> z*Mv@a`ujf5C9k8?F)`H*b^s-G(GHk%z>VmKLhThH~6n1K791 z+m$wF{Qf>a?!JZ9#{=r0;CVi+6lINcrU#sNZU-J%1?@;RORbEv-A?AwGzf61(m*;S zJJdbTNLv!FA|XPm-8Y)AwPAgF;an@H0X6oq-#f$N^ccRvK5}s4nLq5koVHJ-rdZuw1{_DX(_&RflVnF9XkA}tHCQe?3frbp`5&Y5D7J-JzB<5AV9RSU_W z>nZG$%3l&hgz8@`LrDHUj&@W^4~7mq55Y9IY|%>uix`rIXVpqvL&tvz0HmchQ*MWJ zmB9+`y&W-~!6^@?6kg3*L}32<|TG z14SL4$%oxXabUb08gZ^!^hkoCm~z^cQ1v|3V(o{G>H*|7b#qp~j_%=@I0| z=kFvm1`V1g-aRZ< z>-Dx%$k;3n?3X?OEo$+muMLz03^;i4-urs<)UjMO)P6$=9>l$CY6V3m@MZdfgjz9l z&GvTu&60m2dp|7aNmz1 zqne^uERry8Y6WPtykU-a^31Qy`B{+w7zEp|Bx`fOAq*HSdvIiM4m{OL{svvj)|*QO z8GqxxcwIQ)8z?-?=gBVrVHr>f2BO@Too(l{-g45q0D91wahM%Qu0gV+>T|NioKYS* zdYI-ojX@@LZ^P)l<)@uiJ5{CZXKm#V+7Tx`mCKF`50hR*$Eq3N3>US4YU$Emg=knv znV^7_;kUmM#~SNN4c*DN1cV?lL758OOYWq zUbDb8fAI@_K1Q;X-w49*UlTD`tVw9g^3u9i*0C%5O1!g zyFEt^X9e3c$o=Z^B@WU4wAFna2&rC_Z?VefY0WR@Vme z?QPEXog$7hyUWBG2DFj3&!et+)O)|!l?X>v@!zrk%6l>|4;POBL1nG9JN z(TaC>yUIlCGpa6Nt=_*Y@3kO5Y#i1p8j;|MO(`m$8WsAnhnT`0xXzgFsL!D}6X?`{ z&=+%+`#93I53L7)_RNw9*57W6*q?3DXhS-Zs|0tC&p_Wqfdk3@*NnC5NGn6l<0r}l`Iz%B24uD|udM(@ zK(uK{`uraicDsAC?1|vW34kFS4#DGz`(AxR4BN^E^55)pG<%|&lU;GvF){>k>#fl}tE^V2bzj zsz>2Ag9`e0c7JL1_#sh`JTI)d4#Ae*%{oCG-<>qas)FZBY(cqA{eK#`W3)Cd$#U{? zX5>4HKk2&puhM+$K+Konn*otTNW|-q9LDK(G^LLEx{N<4@-4pFO@E^$gS);168bD&R$8jYwu1E zf|CDB;LQ`Ctuk46C>vvS_%XD){LW>CXZfaz&-{bb7dWN=Aa+retAYfBH^NWnx89UP zpUHkm0P?3_w6{)kvbDx61z8cblrLOv_hf>Li=NX3Ma_izI7uXmWL8D5_ z&pNdx@G^ymq~-Eg&A*uiepXmMl5Z~h^7wh>n#t-<>Sx8yP2O>0d0}rHE6j_&lHt=o zavmGGs+3O-x@7|(O1b?vy#AC&7y`Wl0jR0^Tn5aZlGv5<*Z4B5O^nb4KISWFGxQFl6b#p=~GEhWBj(_2D&h(FacE`}IfE z;Pb;&C$u3d)F8acE{Hx$6wfDpDjqy&=Xzy_gSJ1v%mPuQRJmxq>DBX>GYqQ51Ht{B zFiL{!g){6#SKh3ZJ-9Pp>WMXLa(yWBqfj{lD6(U6?!~^ogw*r1=|+2r`bPhK$;R}_ zr!An*+1|`@H1MZW_u8;t>@TDt?6AWBDgBj;l5HD-s+R{mB_-;>T(9s|%doaq#tu=spYT ztDpJ&quHVAmaqNOtHYtGt2}DkRsEn;bH!);Ri+G^BP`?X)`ZV($_Fwla70G3k-wdEqwZvr`O?Q<0zeaHExc0_xw{bhA~I`ZDY%XG3qyz6OTJyjg&n!os}~ue<2SXJ9b)WwB>G7&DKv44n@O^);~>U zCYdvfRtlsSe>}9W<ua_YtYz3yBe~a5n|iPA5eHJzZ*NZ&Rw`%gLD`2QGEt ztmWRl<6NO6F6OhfjsX@0@M5wm~r?gLOnJ_@?sD#IK{j<5` zP*OiNvD2D&4|llUM5>Ybf7}5+DB{V9=&qm9#Bsrk+@30sIK{m%pK=|t=|6o{OkeM8 z6F(`K5fsim>8nhYx>yN~6HG}k?9Lz_^U|>VkJ;Ccw$7Mg?{jC#>sd}zYh&&|(~+Yp zmcv=Mckc_KlKK(C|BxbwU0JO$bGTowuoxQDrKyD3+*#H^Z-m!#i8oc$86NU(4kKeT|{pE2rXC&jgH)p_6!xb?UHLW>01adYT*> z?FtwOJ{pAkEN!@?><88|3=DB23jbmKmObLFSD!a%zCm`n=7<39EKyu1j_!2TT|QWF zI)wT;{A@HCKf5))u7d(xF2ykjvQu1kWH+DkF}^F#K`bKyxYG?n#OFb`R;J#cSf9CN z55Ui?Wso)~y=tZ}2}k$ER#whq?-9y>>~2{{jW?a&?;@@Q;DON2Yx|OW!MSw$G$j9b z*Fa|$Xv6ZQ=GHyS{$;Pi=~WYMYNqOLgyC!&r{cC6^#P*dXlC|MU90lTVmd9($oAG; z>fY}#q}!SIx3b~Y?EBG_^%3Q=CX#&gX48Uq+zS4UwJ7Va0Z{SscWVDfPep!YW>H*< zQZE&~(0KRC=3ut}CHYdttw3UD34#gO5PK$>x$1)jY$82H~6d|~5mPM^tkTt-No;bs?4ku;QmcZzpt`R?q? z=46*`m30sMCLyA%FK(8;76HE_z-B12a&{Iq(hAR=I5uw#usQ zC^AN`CM2HvPqiVX_Gq!Fv8VAl@7)wyL~ei4uX-3?g?G3X7DoKhEM0G%jk(CN{K%=c zIoWvYSv;3}bMI|}R2Uv!1IZcdQxObJRzm~*Dgr$$SIJM;4XCnr1zN*I zOv=#=M0WX?rU!dfIK7&bN zw99QGC&?x&m4-accV?HO*l5Lbo{XEsd|3!JZHzw-6>bV>XQG%(H5gXNRG(XT+*wAl zczGX1k#A48Xz@r}ocV8o^Gn36LX5JXMSwUwXG&|o(jS$k}F+3vg8w2Ox`I-GX6!Fyud0wS+}Mn{_hHH>j=R##J{4vT})El4zaue-*6%OEX_Hze4tTWStyZC z2tchC=#lSI*Qn9C0Cc|&$X#m!g0uxdT3un(wd$J$o0wPp4GraN^23Bp`6m@^HwM@Rp;6jT~Et#l}P^2pd6;WUi%3YkK8H5u6y|I=#0 z`_=wRbZMr_Xx3X2u*#{QOKYk1RF0p`mlkY^%on!8I-JXV<$W;WC2mb8iEqty^G%)N z?iV66yFV3Osyj^0SL+i9&|;&Rt-0E@-bL*)ZI#b=rspMo7Ld;@MhT?v!g|RufzT

IPO0U0P>KDc3C4BO+Ml(KLyhpUQ14*a5! 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

wBJ4Y+c>T0~Ii3V9`gZ$YF4S%L-BNJD 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ⅇS5@M|=birD$qpy&Hf4{_ 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 l)W%7mc{Sgy*+`AIswNNj*&v= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/environment/unreal_console_commands.py b/src/airsim/PythonClient/environment/unreal_console_commands.py deleted file mode 100644 index 7090ea4377..0000000000 --- a/src/airsim/PythonClient/environment/unreal_console_commands.py +++ /dev/null @@ -1,29 +0,0 @@ -import airsim -import time - -def RunConsoleCmd(client, cmd): - client.simRunConsoleCommand(cmd) - print(f"Running Unreal Console cmd '{cmd}' and sleeping for 1 second") - time.sleep(1.0) - -def RunCmdList(client): - RunConsoleCmd(client, 'stat fps') - RunConsoleCmd(client, 'stat unit') - RunConsoleCmd(client, 'stat unitGraph') - RunConsoleCmd(client, 'show COLLISION') - RunConsoleCmd(client, 'show CollisionVisibility') - RunConsoleCmd(client, 'stat game') - RunConsoleCmd(client, 'show COLLISION') - RunConsoleCmd(client, 'show CollisionVisibility') - RunConsoleCmd(client, 'stat game') - RunConsoleCmd(client, 'stat unitGraph') - RunConsoleCmd(client, 'stat unit') - RunConsoleCmd(client, 'stat fps') - -def main(): - client = airsim.client.MultirotorClient() - client.confirmConnection() - RunCmdList(client) - -if __name__ == "__main__": - main() diff --git a/src/airsim/PythonClient/environment/weather.py b/src/airsim/PythonClient/environment/weather.py deleted file mode 100644 index 21f598c717..0000000000 --- a/src/airsim/PythonClient/environment/weather.py +++ /dev/null @@ -1,34 +0,0 @@ -import setup_path -import airsim - - -client = airsim.VehicleClient() -client.confirmConnection() - -client.simEnableWeather(True) - -airsim.wait_key('Press any key to enable rain at 25%') -client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.25); - -airsim.wait_key('Press any key to enable rain at 75%') -client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.75); - -airsim.wait_key('Press any key to enable snow at 50%') -client.simSetWeatherParameter(airsim.WeatherParameter.Snow, 0.50); - -airsim.wait_key('Press any key to enable maple leaves at 50%') -client.simSetWeatherParameter(airsim.WeatherParameter.MapleLeaf, 0.50); - -airsim.wait_key('Press any key to set all effects to 0%') -client.simSetWeatherParameter(airsim.WeatherParameter.Rain, 0.0); -client.simSetWeatherParameter(airsim.WeatherParameter.Snow, 0.0); -client.simSetWeatherParameter(airsim.WeatherParameter.MapleLeaf, 0.0); - -airsim.wait_key('Press any key to enable dust at 50%') -client.simSetWeatherParameter(airsim.WeatherParameter.Dust, 0.50); - -airsim.wait_key('Press any key to enable fog at 50%') -client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.50); - -airsim.wait_key('Press any key to disable all weather effects') -client.simEnableWeather(False) diff --git a/src/airsim/PythonClient/eventcamera_sim/event_simulator.py b/src/airsim/PythonClient/eventcamera_sim/event_simulator.py deleted file mode 100644 index a36f991177..0000000000 --- a/src/airsim/PythonClient/eventcamera_sim/event_simulator.py +++ /dev/null @@ -1,157 +0,0 @@ -from numba.np.ufunc import parallel -import numpy as np -from types import SimpleNamespace -from numba import njit, prange, set_num_threads - -EVENT_TYPE = np.dtype( - [("timestamp", "f8"), ("x", "u2"), ("y", "u2"), ("polarity", "b")], align=True -) - -TOL = 0.5 -MINIMUM_CONTRAST_THRESHOLD = 0.01 - -CONFIG = SimpleNamespace( - **{ - "contrast_thresholds": (0.01, 0.01), - "sigma_contrast_thresholds": (0.0, 0.0), - "refractory_period_ns": 1000, - "max_events_per_frame": 200000, - } -) - - -@njit(parallel=True) -def esim( - x_end, - current_image, - previous_image, - delta_time, - crossings, - last_time, - output_events, - spikes, - refractory_period_ns, - max_events_per_frame, - n_pix_row, -): - count = 0 - max_spikes = int(delta_time / (refractory_period_ns * 1e-3)) - for x in prange(x_end): - itdt = np.log(current_image[x]) - it = np.log(previous_image[x]) - deltaL = itdt - it - - if np.abs(deltaL) < TOL: - continue - - pol = np.sign(deltaL) - - cross_update = pol * TOL - crossings[x] = np.log(crossings[x]) + cross_update - - lb = crossings[x] - it - ub = crossings[x] - itdt - - pos_check = lb > 0 and (pol == 1) and ub < 0 - neg_check = lb < 0 and (pol == -1) and ub > 0 - - spike_nums = (itdt - crossings[x]) / TOL - cross_check = pos_check + neg_check - spike_nums = np.abs(int(spike_nums * cross_check)) - - crossings[x] = itdt - cross_update - if spike_nums > 0: - spikes[x] = pol - - spike_nums = max_spikes if spike_nums > max_spikes else spike_nums - - current_time = last_time - for i in range(spike_nums): - output_events[count].x = x % n_pix_row - output_events[count].y = x // n_pix_row - output_events[count].timestamp = np.round(current_time * 1e-6, 6) - output_events[count].polarity = 1 if pol > 0 else -1 - - count += 1 - current_time += (delta_time) / spike_nums - - if count == max_events_per_frame: - return count - - return count - - -class EventSimulator: - def __init__(self, W, H, first_image=None, first_time=None, config=CONFIG): - self.H = H - self.W = W - self.config = config - self.last_image = None - if first_image is not None: - assert first_time is not None - self.init(first_image, first_time) - - self.npix = H * W - - def init(self, first_image, first_time): - print("Initialized event camera simulator with sensor size:", first_image.shape) - - self.resolution = first_image.shape # The resolution of the image - - # We ignore the 2D nature of the problem as it is not relevant here - # It makes multi-core processing more straightforward - first_image = first_image.reshape(-1) - - # Allocations - self.last_image = first_image.copy() - self.current_image = first_image.copy() - - self.last_time = first_time - - self.output_events = np.zeros( - (self.config.max_events_per_frame), dtype=EVENT_TYPE - ) - self.event_count = 0 - self.spikes = np.zeros((self.npix)) - - def image_callback(self, new_image, new_time): - if self.last_image is None: - self.init(new_image, new_time) - return None, None - - assert new_time > 0 - assert new_image.shape == self.resolution - new_image = new_image.reshape(-1) # Free operation - - np.copyto(self.current_image, new_image) - - delta_time = new_time - self.last_time - - config = self.config - self.output_events = np.zeros( - (self.config.max_events_per_frame), dtype=EVENT_TYPE - ) - self.spikes = np.zeros((self.npix)) - - self.crossings = self.last_image.copy() - self.event_count = esim( - self.current_image.size, - self.current_image, - self.last_image, - delta_time, - self.crossings, - self.last_time, - self.output_events, - self.spikes, - config.refractory_period_ns, - config.max_events_per_frame, - self.W, - ) - - np.copyto(self.last_image, self.current_image) - self.last_time = new_time - - result = self.output_events[: self.event_count] - result.sort(order=["timestamp"], axis=0) - - return self.spikes, result diff --git a/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py b/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py deleted file mode 100644 index 22c0df9fad..0000000000 --- a/src/airsim/PythonClient/eventcamera_sim/test_event_sim.py +++ /dev/null @@ -1,112 +0,0 @@ -import numpy as np -import airsim -import time -import cv2 -import matplotlib.pyplot as plt -import argparse -import sys, signal -import pandas as pd -import pickle -from event_simulator import * - -parser = argparse.ArgumentParser(description="Simulate event data from AirSim") -parser.add_argument("--debug", action="store_true") -parser.add_argument("--save", action="store_true") -parser.add_argument("--height", type=int, default=144) -parser.add_argument("--width", type=int, default=256) - - -class AirSimEventGen: - def __init__(self, W, H, save=False, debug=False): - self.ev_sim = EventSimulator(W, H) - self.H = H - self.W = W - - self.image_request = airsim.ImageRequest( - "0", airsim.ImageType.Scene, False, False - ) - - self.client = airsim.VehicleClient() - self.client.confirmConnection() - self.init = True - self.start_ts = None - - self.rgb_image_shape = [H, W, 3] - self.debug = debug - self.save = save - - self.event_file = open("events.pkl", "ab") - self.event_fmt = "%1.7f", "%d", "%d", "%d" - - if debug: - self.fig, self.ax = plt.subplots(1, 1) - - def visualize_events(self, event_img): - event_img = self.convert_event_img_rgb(event_img) - self.ax.cla() - self.ax.imshow(event_img, cmap="viridis") - plt.draw() - plt.pause(0.01) - - def convert_event_img_rgb(self, image): - image = image.reshape(self.H, self.W) - out = np.zeros((self.H, self.W, 3), dtype=np.uint8) - out[:, :, 0] = np.clip(image, 0, 1) * 255 - out[:, :, 2] = np.clip(image, -1, 0) * -255 - - return out - - def _stop_event_gen(self, signal, frame): - print("\nCtrl+C received. Stopping event sim...") - self.event_file.close() - sys.exit(0) - - -if __name__ == "__main__": - args = parser.parse_args() - - event_generator = AirSimEventGen(args.width, args.height, save=args.save, debug=args.debug) - i = 0 - start_time = 0 - t_start = time.time() - - signal.signal(signal.SIGINT, event_generator._stop_event_gen) - - while True: - image_request = airsim.ImageRequest("0", airsim.ImageType.Scene, False, False) - - response = event_generator.client.simGetImages([event_generator.image_request]) - while response[0].height == 0 or response[0].width == 0: - response = event_generator.client.simGetImages( - [event_generator.image_request] - ) - - ts = time.time_ns() - - if event_generator.init: - event_generator.start_ts = ts - event_generator.init = False - - img = np.reshape( - np.fromstring(response[0].image_data_uint8, dtype=np.uint8), - event_generator.rgb_image_shape, - ) - - img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY).astype(np.float32) - # Add small number to avoid issues with log(I) - img = cv2.add(img, 0.001) - - ts = time.time_ns() - ts_delta = (ts - event_generator.start_ts) * 1e-3 - - # Event sim keeps track of previous image automatically - event_img, events = event_generator.ev_sim.image_callback(img, ts_delta) - - if events is not None and events.shape[0] > 0: - if event_generator.save: - # Using pickle dump in a per-frame fashion to save time, instead of savetxt - # Optimizations possible - pickle.dump(events, event_generator.event_file) - - if event_generator.debug: - event_generator.visualize_events(event_img) diff --git a/src/airsim/PythonClient/imitation_learning/Cooking.py b/src/airsim/PythonClient/imitation_learning/Cooking.py deleted file mode 100644 index b546748552..0000000000 --- a/src/airsim/PythonClient/imitation_learning/Cooking.py +++ /dev/null @@ -1,225 +0,0 @@ -import random -import csv -from PIL import Image -import numpy as np -import pandas as pd -import sys -import os -import errno -from collections import OrderedDict -import h5py -from pathlib import Path -import copy -import re - - -# This constant is used as an upper bound for normalizing the car's speed to be between 0 and 1 -MAX_SPEED = 70.0 - - - -def checkAndCreateDir(full_path): - """Checks if a given path exists and if not, creates the needed directories. - Inputs: - full_path: path to be checked - """ - if not os.path.exists(os.path.dirname(full_path)): - try: - os.makedirs(os.path.dirname(full_path)) - except OSError as exc: # Guard against race condition - if exc.errno != errno.EEXIST: - raise - -def readImagesFromPath(image_names): - """ Takes in a path and a list of image file names to be loaded and returns a list of all loaded images after resize. - Inputs: - image_names: list of image names - Returns: - List of all loaded and resized images - """ - returnValue = [] - for image_name in image_names: - im = Image.open(image_name) - imArr = np.asarray(im) - - #Remove alpha channel if exists - if len(imArr.shape) == 3 and imArr.shape[2] == 4: - if (np.all(imArr[:, :, 3] == imArr[0, 0, 3])): - imArr = imArr[:,:,0:3] - if len(imArr.shape) != 3 or imArr.shape[2] != 3: - print('Error: Image', image_name, 'is not RGB.') - sys.exit() - - returnIm = np.asarray(imArr) - - returnValue.append(returnIm) - return returnValue - - - -def splitTrainValidationAndTestData(all_data_mappings, split_ratio=(0.7, 0.2, 0.1)): - """Simple function to create train, validation and test splits on the data. - Inputs: - all_data_mappings: mappings from the entire dataset - split_ratio: (train, validation, test) split ratio - - Returns: - train_data_mappings: mappings for training data - validation_data_mappings: mappings for validation data - test_data_mappings: mappings for test data - - """ - if round(sum(split_ratio), 5) != 1.0: - print("Error: Your splitting ratio should add up to 1") - sys.exit() - - train_split = int(len(all_data_mappings) * split_ratio[0]) - val_split = train_split + int(len(all_data_mappings) * split_ratio[1]) - - train_data_mappings = all_data_mappings[0:train_split] - validation_data_mappings = all_data_mappings[train_split:val_split] - test_data_mappings = all_data_mappings[val_split:] - - return [train_data_mappings, validation_data_mappings, test_data_mappings] - -def generateDataMapAirSim(folders): - """ Data map generator for simulator(AirSim) data. Reads the driving_log csv file and returns a list of 'center camera image name - label(s)' tuples - Inputs: - folders: list of folders to collect data from - - Returns: - mappings: All data mappings as a dictionary. Key is the image filepath, the values are a 2-tuple: - 0 -> label(s) as a list of double - 1 -> previous state as a list of double - """ - - all_mappings = {} - for folder in folders: - print('Reading data from {0}...'.format(folder)) - current_df = pd.read_csv(os.path.join(folder, 'airsim_rec.txt'), sep='\t') - - for i in range(1, current_df.shape[0] - 1): - - - if current_df.iloc[i-1]['Brake'] != 0: # Consider only training examples without breaks - continue - - - norm_steering = [ (float(current_df.iloc[i-1][['Steering']]) + 1) / 2.0 ] # Normalize steering: between 0 and 1 - norm_throttle = [ float(current_df.iloc[i-1][['Throttle']]) ] - norm_speed = [ float(current_df.iloc[i-1][['Speed (kmph)']]) / MAX_SPEED ] # Normalize speed: between 0 and 1 - - - previous_state = norm_steering + norm_throttle + norm_speed # Append lists - - - #compute average steering over 3 consecutive recorded images, this will serve as the label - - norm_steering0 = (float(current_df.iloc[i][['Steering']]) + 1) / 2.0 - norm_steering1 = (float(current_df.iloc[i+1][['Steering']]) + 1) / 2.0 - - temp_sum_steering = norm_steering[0] + norm_steering0 + norm_steering1 - average_steering = temp_sum_steering / 3.0 - - current_label = [average_steering] - - image_filepath = os.path.join(os.path.join(folder, 'images'), current_df.iloc[i]['ImageName']).replace('\\', '/') - - if (image_filepath in all_mappings): - print('Error: attempting to add image {0} twice.'.format(image_filepath)) - - all_mappings[image_filepath] = (current_label, previous_state) - - mappings = [(key, all_mappings[key]) for key in all_mappings] - - random.shuffle(mappings) - - return mappings - - -def generatorForH5py(data_mappings, chunk_size=32): - """ - This function batches the data for saving to the H5 file - """ - for chunk_id in range(0, len(data_mappings), chunk_size): - # Data is expected to be a dict of - data_chunk = data_mappings[chunk_id:chunk_id + chunk_size] - if (len(data_chunk) == chunk_size): - image_names_chunk = [a for (a, b) in data_chunk] - labels_chunk = np.asarray([b[0] for (a, b) in data_chunk]) - previous_state_chunk = np.asarray([b[1] for (a, b) in data_chunk]) - - #Flatten and yield as tuple - yield (image_names_chunk, labels_chunk.astype(float), previous_state_chunk.astype(float)) - if chunk_id + chunk_size > len(data_mappings): - raise StopIteration - raise StopIteration - - -def saveH5pyData(data_mappings, target_file_path, chunk_size): - """ - Saves H5 data to file - """ - gen = generatorForH5py(data_mappings,chunk_size) - - image_names_chunk, labels_chunk, previous_state_chunk = next(gen) - images_chunk = np.asarray(readImagesFromPath(image_names_chunk)) - row_count = images_chunk.shape[0] - - checkAndCreateDir(target_file_path) - with h5py.File(target_file_path, 'w') as f: - - # Initialize a resizable dataset to hold the output - images_chunk_maxshape = (None,) + images_chunk.shape[1:] - labels_chunk_maxshape = (None,) + labels_chunk.shape[1:] - previous_state_maxshape = (None,) + previous_state_chunk.shape[1:] - - dset_images = f.create_dataset('image', shape=images_chunk.shape, maxshape=images_chunk_maxshape, - chunks=images_chunk.shape, dtype=images_chunk.dtype) - - dset_labels = f.create_dataset('label', shape=labels_chunk.shape, maxshape=labels_chunk_maxshape, - chunks=labels_chunk.shape, dtype=labels_chunk.dtype) - - dset_previous_state = f.create_dataset('previous_state', shape=previous_state_chunk.shape, maxshape=previous_state_maxshape, - chunks=previous_state_chunk.shape, dtype=previous_state_chunk.dtype) - - dset_images[:] = images_chunk - dset_labels[:] = labels_chunk - dset_previous_state[:] = previous_state_chunk - - for image_names_chunk, label_chunk, previous_state_chunk in gen: - image_chunk = np.asarray(readImagesFromPath(image_names_chunk)) - - # Resize the dataset to accommodate the next chunk of rows - dset_images.resize(row_count + image_chunk.shape[0], axis=0) - dset_labels.resize(row_count + label_chunk.shape[0], axis=0) - dset_previous_state.resize(row_count + previous_state_chunk.shape[0], axis=0) - # Create the next chunk - dset_images[row_count:] = image_chunk - dset_labels[row_count:] = label_chunk - dset_previous_state[row_count:] = previous_state_chunk - - # Increment the row count - row_count += image_chunk.shape[0] - - -def cook(folders, output_directory, train_eval_test_split, chunk_size): - """ Primary function for data pre-processing. Reads and saves all data as h5 files. - Inputs: - folders: a list of all data folders - output_directory: location for saving h5 files - train_eval_test_split: dataset split ratio - """ - output_files = [os.path.join(output_directory, f) for f in ['train.h5', 'eval.h5', 'test.h5']] - if (any([os.path.isfile(f) for f in output_files])): - print("Preprocessed data already exists at: {0}. Skipping preprocessing.".format(output_directory)) - - else: - all_data_mappings = generateDataMapAirSim(folders) - - split_mappings = splitTrainValidationAndTestData(all_data_mappings, split_ratio=train_eval_test_split) - - for i in range(0, len(split_mappings)-1, 1): - print('Processing {0}...'.format(output_files[i])) - saveH5pyData(split_mappings[i], output_files[i], chunk_size) - print('Finished saving {0}.'.format(output_files[i])) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/Generator.py b/src/airsim/PythonClient/imitation_learning/Generator.py deleted file mode 100644 index f4a874556b..0000000000 --- a/src/airsim/PythonClient/imitation_learning/Generator.py +++ /dev/null @@ -1,342 +0,0 @@ -from keras.preprocessing import image -import numpy as np -import keras.backend as K -import os -import cv2 -import PIL -from PIL import Image -from PIL import ImageChops -import cv2 - - -class DriveDataGenerator(image.ImageDataGenerator): - def __init__(self, - featurewise_center=False, - samplewise_center=False, - featurewise_std_normalization=False, - samplewise_std_normalization=False, - zca_whitening=False, - zca_epsilon=1e-6, - rotation_range=0., - width_shift_range=0., - height_shift_range=0., - shear_range=0., - zoom_range=0., - channel_shift_range=0., - fill_mode='nearest', - cval=0., - horizontal_flip=False, - vertical_flip=False, - rescale=None, - preprocessing_function=None, - data_format=None, - brighten_range=0): - super(DriveDataGenerator, self).__init__(featurewise_center, - samplewise_center, - featurewise_std_normalization, - samplewise_std_normalization, - zca_whitening, - zca_epsilon, - rotation_range, - width_shift_range, - height_shift_range, - shear_range, - zoom_range, - channel_shift_range, - fill_mode, - cval, - horizontal_flip, - vertical_flip, - rescale, - preprocessing_function, - data_format) - self.brighten_range = brighten_range - - def flow(self, x_images, x_prev_states = None, y=None, batch_size=32, shuffle=True, seed=None, - save_to_dir=None, save_prefix='', save_format='png', zero_drop_percentage=0.5, roi=None): - return DriveIterator( - x_images, x_prev_states, y, self, - batch_size=batch_size, - shuffle=shuffle, - seed=seed, - data_format=self.data_format, - save_to_dir=save_to_dir, - save_prefix=save_prefix, - save_format=save_format, - zero_drop_percentage=zero_drop_percentage, - roi=roi) - - def random_transform_with_states(self, x, seed=None): - """Randomly augment a single image tensor. - # Arguments - x: 3D tensor, single image. - seed: random seed. - # Returns - A tuple. 0 -> randomly transformed version of the input (same shape). 1 -> true if image was horizontally flipped, false otherwise - """ - img_row_axis = self.row_axis - img_col_axis = self.col_axis - img_channel_axis = self.channel_axis - - is_image_horizontally_flipped = False - - # use composition of homographies - # to generate final transform that needs to be applied - if self.rotation_range: - theta = np.pi / 180 * np.random.uniform(-self.rotation_range, self.rotation_range) - else: - theta = 0 - - if self.height_shift_range: - tx = np.random.uniform(-self.height_shift_range, self.height_shift_range) * x.shape[img_row_axis] - else: - tx = 0 - - if self.width_shift_range: - ty = np.random.uniform(-self.width_shift_range, self.width_shift_range) * x.shape[img_col_axis] - else: - ty = 0 - - if self.shear_range: - shear = np.random.uniform(-self.shear_range, self.shear_range) - else: - shear = 0 - - if self.zoom_range[0] == 1 and self.zoom_range[1] == 1: - zx, zy = 1, 1 - else: - zx, zy = np.random.uniform(self.zoom_range[0], self.zoom_range[1], 2) - - transform_matrix = None - if theta != 0: - rotation_matrix = np.array([[np.cos(theta), -np.sin(theta), 0], - [np.sin(theta), np.cos(theta), 0], - [0, 0, 1]]) - transform_matrix = rotation_matrix - - if tx != 0 or ty != 0: - shift_matrix = np.array([[1, 0, tx], - [0, 1, ty], - [0, 0, 1]]) - transform_matrix = shift_matrix if transform_matrix is None else np.dot(transform_matrix, shift_matrix) - - if shear != 0: - shear_matrix = np.array([[1, -np.sin(shear), 0], - [0, np.cos(shear), 0], - [0, 0, 1]]) - transform_matrix = shear_matrix if transform_matrix is None else np.dot(transform_matrix, shear_matrix) - - if zx != 1 or zy != 1: - zoom_matrix = np.array([[zx, 0, 0], - [0, zy, 0], - [0, 0, 1]]) - transform_matrix = zoom_matrix if transform_matrix is None else np.dot(transform_matrix, zoom_matrix) - - if transform_matrix is not None: - h, w = x.shape[img_row_axis], x.shape[img_col_axis] - transform_matrix = image.transform_matrix_offset_center(transform_matrix, h, w) - x = image.apply_transform(x, transform_matrix, img_channel_axis, - fill_mode=self.fill_mode, cval=self.cval) - - if self.channel_shift_range != 0: - x = image.random_channel_shift(x, - self.channel_shift_range, - img_channel_axis) - if self.horizontal_flip: - if np.random.random() < 0.5: - x = image.flip_axis(x, img_col_axis) - is_image_horizontally_flipped = True - - if self.vertical_flip: - if np.random.random() < 0.5: - x = image.flip_axis(x, img_row_axis) - - if self.brighten_range != 0: - random_bright = np.random.uniform(low = 1.0-self.brighten_range, high=1.0+self.brighten_range) - - img = cv2.cvtColor(x, cv2.COLOR_RGB2HSV) - img[:, :, 2] = np.clip(img[:, :, 2] * random_bright, 0, 255) - x = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) - - return (x, is_image_horizontally_flipped) - - - -class DriveIterator(image.Iterator): - """Iterator yielding data from a Numpy array. - - # Arguments - x: Numpy array of input data. - y: Numpy array of targets data. - image_data_generator: Instance of `ImageDataGenerator` - to use for random transformations and normalization. - batch_size: Integer, size of a batch. - shuffle: Boolean, whether to shuffle the data between epochs. - seed: Random seed for data shuffling. - data_format: String, one of `channels_first`, `channels_last`. - save_to_dir: Optional directory where to save the pictures - being yielded, in a viewable format. This is useful - for visualizing the random transformations being - applied, for debugging purposes. - save_prefix: String prefix to use for saving sample - images (if `save_to_dir` is set). - save_format: Format to use for saving sample images - (if `save_to_dir` is set). - """ - - def __init__(self, x_images, x_prev_states, y, image_data_generator, - batch_size=32, shuffle=False, seed=None, - data_format=None, - save_to_dir=None, save_prefix='', save_format='png', zero_drop_percentage = 0.5, roi = None): - if y is not None and len(x_images) != len(y): - raise ValueError('X (images tensor) and y (labels) ' - 'should have the same length. ' - 'Found: X.shape = %s, y.shape = %s' % - (np.asarray(x_images).shape, np.asarray(y).shape)) - - if data_format is None: - data_format = K.image_data_format() - - self.x_images = x_images - - self.zero_drop_percentage = zero_drop_percentage - self.roi = roi - - if self.x_images.ndim != 4: - raise ValueError('Input data in `NumpyArrayIterator` ' - 'should ave rank 4. You passed an array ' - 'with shape', self.x_images.shape) - channels_axis = 3 if data_format == 'channels_last' else 1 - if self.x_images.shape[channels_axis] not in {1, 3, 4}: - raise ValueError('NumpyArrayIterator is set to use the ' - 'data format convention "' + data_format + '" ' - '(channels on axis ' + str(channels_axis) + '), i.e. expected ' - 'either 1, 3 or 4 channels on axis ' + str(channels_axis) + '. ' - 'However, it was passed an array with shape ' + str(self.x_images.shape) + - ' (' + str(self.x_images.shape[channels_axis]) + ' channels).') - if x_prev_states is not None: - self.x_prev_states = x_prev_states - else: - self.x_prev_states = None - - if y is not None: - self.y = y - else: - self.y = None - self.image_data_generator = image_data_generator - self.data_format = data_format - self.save_to_dir = save_to_dir - self.save_prefix = save_prefix - self.save_format = save_format - self.batch_size = batch_size - super(DriveIterator, self).__init__(x_images.shape[0], batch_size, shuffle, seed) - - def next(self): - """For python 2.x. - - # Returns - The next batch. - """ - # Keeps under lock only the mechanism which advances - # the indexing of each batch. - with self.lock: - index_array = next(self.index_generator) - # The transformation of images is not under thread lock - # so it can be done in parallel - - return self.__get_indexes(index_array) - - def __get_indexes(self, index_array): - index_array = sorted(index_array) - if self.x_prev_states is not None: - batch_x_images = np.zeros(tuple([self.batch_size]+ list(self.x_images.shape)[1:]), - dtype=K.floatx()) - batch_x_prev_states = np.zeros(tuple([self.batch_size]+list(self.x_prev_states.shape)[1:]), dtype=K.floatx()) - else: - batch_x_images = np.zeros(tuple([self.batch_size] + list(self.x_images.shape)[1:]), dtype=K.floatx()) - - if self.roi is not None: - batch_x_images = batch_x_images[:, self.roi[0]:self.roi[1], self.roi[2]:self.roi[3], :] - - used_indexes = [] - is_horiz_flipped = [] - for i, j in enumerate(index_array): - x_images = self.x_images[j] - - if self.roi is not None: - x_images = x_images[self.roi[0]:self.roi[1], self.roi[2]:self.roi[3], :] - - - transformed = self.image_data_generator.random_transform_with_states(x_images.astype(K.floatx())) - x_images = transformed[0] - is_horiz_flipped.append(transformed[1]) - x_images = self.image_data_generator.standardize(x_images) - batch_x_images[i] = x_images - - if self.x_prev_states is not None: - x_prev_states = self.x_prev_states[j] - - if (transformed[1]): - x_prev_states[0] *= -1.0 - - batch_x_prev_states[i] = x_prev_states - - used_indexes.append(j) - - if self.x_prev_states is not None: - batch_x = [np.asarray(batch_x_images)] - else: - batch_x = np.asarray(batch_x_images) - - if self.save_to_dir: - for i in range(0, self.batch_size, 1): - hash = np.random.randint(1e4) - - img = image.array_to_img(batch_x_images[i], self.data_format, scale=True) - fname = '{prefix}_{index}_{hash}.{format}'.format(prefix=self.save_prefix, - index=1, - hash=hash, - format=self.save_format) - img.save(os.path.join(self.save_to_dir, fname)) - - batch_y = self.y[list(sorted(used_indexes))] - idx = [] - num_of_close_samples = 0 - num_of_non_close_samples = 0 - for i in range(0, len(is_horiz_flipped), 1): - if batch_y.shape[1] == 1: - - if (is_horiz_flipped[i]): - batch_y[i] *= -1 - - if (np.isclose(batch_y[i], 0.5, rtol=0.005, atol=0.005)): - num_of_close_samples += 1 - if (np.random.uniform(low=0, high=1) > self.zero_drop_percentage): - idx.append(True) - else: - idx.append(False) - else: - num_of_non_close_samples += 1 - idx.append(True) - else: - - if (batch_y[i][int(len(batch_y[i])/2)] == 1): - if (np.random.uniform(low=0, high=1) > self.zero_drop_percentage): - idx.append(True) - else: - idx.append(False) - else: - idx.append(True) - - if (is_horiz_flipped[i]): - batch_y[i] = batch_y[i][::-1] - - batch_y = batch_y[idx] - batch_x[0] = batch_x[0][idx] - - - return batch_x, batch_y - - def _get_batches_of_transformed_samples(self, index_array): - return self.__get_indexes(index_array) - diff --git a/src/airsim/PythonClient/imitation_learning/README.md b/src/airsim/PythonClient/imitation_learning/README.md deleted file mode 100644 index c8c7691569..0000000000 --- a/src/airsim/PythonClient/imitation_learning/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Imitation Learning - -This section is about training a model to steer our Formula car using imitation learning. -The code in this section is based on the [Autonomous Driving Cookbook](https://github.com/Microsoft/AutonomousDrivingCookbook/tree/master/AirSimE2EDeepLearning) from Airsim and it's highly recommended to read the tutorial first. - -## Prerequisites -* Operating system: Windows 10 -* GPU: Nvidia GTX 1080 or higher (recommended) -* Software: Unreal Engine 4.24 and Visual Studio 2019 (see [upgrade instructions](../../docs/unreal_upgrade.md)) -* Development: CUDA 9.0 and python 3.5. -* Python libraries: Keras 2.1.2, TensorFlow 1.6.0. -* Note: Newer versions of keras or tensorflow are recommended but can cause syntax errors. - -## What's inside - -![imitation learning](https://github.com/microsoft/airsim/wiki/images/technion/imitation_learning_example.gif) -*Driving in simulation using trained imitation learning model, based on recorded data* - -Imitation learning includes the usage of labeled data as input to a training algorithm with the purpose of having the algorithm imitate the actions of people who recorded the data. - -![diagram](https://github.com/microsoft/airsim/wiki/images/technion/imitation_diagram.PNG) - -This diagram is represented by these files: - -**cook_data.py** -This file is responsible for preparing .h5 dataset files for the training procedure. -The code rely on having two adjacent folders: -'raw_data' - contains folders of recorded data by airsim's recording method. -'cooked_data' - empty folder to store the .h5 files. - -The flag "COOK_ALL_DATA" gives the option to choose all subfolders, or exclude some of them. - -**train_model.py** -This file is responsible to train a model using the .h5 dataset files. -The code rely on having two adjacent folders: -'cooked_data' - contains the .h5 dataset files. -'models' - empty folder to store the generated models. - -The file will preprocess the data, add augmentations and create a neural network model that predicts the next steering angle. - -**drive_model.py** -This file connects to the simulation in order to upload a trained model and drive using it. -By using the predicted steering value, the code calculates related control parameters and maintain driving with steady velocities. - -## Training Tips -We recommend on using augmentation and recording techniques. -We give here an example for two methods: -- [CycleLight](https://github.com/Microsoft/AirSim/wiki/graphic_features) - Animation of a day light cycle in a changeable, potentially very short period of time. -- Shifted images - Altering the camera’s position to the right or the left of the car, so that it can record images in extreme conditions. To simulate driving back to the center from those extreme situations, post-process the recorded angle of the steering accordingly (manually). diff --git a/src/airsim/PythonClient/imitation_learning/cook_data.py b/src/airsim/PythonClient/imitation_learning/cook_data.py deleted file mode 100644 index 1dd2a43173..0000000000 --- a/src/airsim/PythonClient/imitation_learning/cook_data.py +++ /dev/null @@ -1,38 +0,0 @@ -#%matplotlib inline -import numpy as np -import pandas as pd -import h5py -from matplotlib import use -use("TkAgg") -import matplotlib.pyplot as plt -from PIL import Image, ImageDraw -import os -import Cooking - -# chunk size for training batches -chunk_size = 32 - -# No test set needed, since testing in our case is running the model on an unseen map in AirSim -train_eval_test_split = [0.8, 0.2, 0.0] - -# Point this to the directory containing the raw data -RAW_DATA_DIR = './raw_data/' - -# Point this to the desired output directory for the cooked (.h5) data -COOKED_DATA_DIR = './cooked_data/' - -# Choose The folders to search for data under RAW_DATA_DIR -COOK_ALL_DATA = True - -data_folders = [] - -#if COOK_ALL_DATA is set to False, append your desired data folders here -# data_folder.append('folder_name1') -# data_folder.append('folder_name2') -# ... -if COOK_ALL_DATA: - data_folders = [name for name in os.listdir(RAW_DATA_DIR)] - - -full_path_raw_folders = [os.path.join(RAW_DATA_DIR, f) for f in data_folders] -Cooking.cook(full_path_raw_folders, COOKED_DATA_DIR, train_eval_test_split, chunk_size) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/drive_model.py b/src/airsim/PythonClient/imitation_learning/drive_model.py deleted file mode 100644 index 25a67f780f..0000000000 --- a/src/airsim/PythonClient/imitation_learning/drive_model.py +++ /dev/null @@ -1,76 +0,0 @@ -import os -os.environ['TF_CPP_MIN_LOG_LEVEL']='2' -import tensorflow as tf -from keras.models import load_model -import sys -import time -import numpy as np - -import airsim - -import keras.backend as K -from keras.preprocessing import image -from PIL import Image, ImageDraw -import matplotlib.pyplot as plt - -# Trained model path -MODEL_PATH = './models/example_model.h5' - -model = load_model(MODEL_PATH) - -# Connect to AirSim -client = airsim.CarClient() -client.confirmConnection() -client.enableApiControl(True) -car_controls = airsim.CarControls() - -# Start driving -car_controls.steering = 0 -car_controls.throttle = 0 -car_controls.brake = 0 -client.setCarControls(car_controls) - -# Initialize image buffer -image_buf = np.zeros((1, 66, 200, 3)) - -def get_image(): - """ - Get image from AirSim client - """ - image_response = client.simGetImages([airsim.ImageRequest("0", airsim.ImageType.Scene, False, False)])[0] - image1d = np.fromstring(image_response.image_data_uint8, dtype=np.uint8) - image_rgb = image1d.reshape(image_response.height, image_response.width, 3) - return image_rgb[78:144,27:227,0:2].astype(float) - -while True: - # Update throttle value according to steering angle - if abs(car_controls.steering) <= 1.0: - car_controls.throttle = 0.8-(0.4*abs(car_controls.steering)) - else: - car_controls.throttle = 0.4 - - image_buf[0] = get_image() - image_buf[0] /= 255 # Normalization - - start_time = time.time() - - # Prediction - model_output = model.predict([image_buf]) - - end_time = time.time() - received_output = model_output[0][0] - - # Rescale prediction to [-1,1] and factor by 0.82 for drive smoothness - car_controls.steering = round((0.82*(float((model_output[0][0]*2.0)-1))), 2) - - # Print progress - print('Sending steering = {0}, throttle = {1}, prediction time = {2}'.format(received_output, car_controls.throttle,str(end_time-start_time))) - - # Update next car state - client.setCarControls(car_controls) - - # Wait a bit between iterations - time.sleep(0.05) - - -client.enableApiControl(False) \ No newline at end of file diff --git a/src/airsim/PythonClient/imitation_learning/setup_path.py b/src/airsim/PythonClient/imitation_learning/setup_path.py deleted file mode 100644 index 362113fea8..0000000000 --- a/src/airsim/PythonClient/imitation_learning/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,inspect,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/imitation_learning/train_model.py b/src/airsim/PythonClient/imitation_learning/train_model.py deleted file mode 100644 index ba56a112a5..0000000000 --- a/src/airsim/PythonClient/imitation_learning/train_model.py +++ /dev/null @@ -1,94 +0,0 @@ -import os -os.environ['TF_CPP_MIN_LOG_LEVEL']='2' -import tensorflow as tf -from keras.preprocessing.image import ImageDataGenerator -from keras.models import Sequential, Model -from keras.layers.convolutional import Convolution2D -from keras.layers import Conv2D, MaxPooling2D, Dropout, Flatten, Dense, Lambda, Input, concatenate -from keras.layers.core import Activation -from keras.layers.normalization import BatchNormalization -from keras.layers.advanced_activations import ELU, LeakyReLU -from keras.optimizers import Adam, SGD, Adamax, Nadam -from keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, CSVLogger, EarlyStopping -import keras.backend as K -from keras.preprocessing import image -from keras_tqdm import TQDMNotebookCallback -import json -import os -import numpy as np -import pandas as pd -from Generator import DriveDataGenerator -import h5py -import math - -# Hyper-parameters -batch_size = 32 -learning_rate = 0.0001 -number_of_epochs = 500 - -# Activation functions -activation = 'relu' -out_activation = 'sigmoid' - -#Stop training if in the last 20 epochs, there was no change of the best recorded validation loss -training_patience = 20 - - -# << The directory containing the cooked data from the previous step >> -COOKED_DATA_DIR = './cooked_data/' - -# << The directory in which the model output will be placed >> -MODEL_OUTPUT_DIR = './models/' - -train_dataset = h5py.File(os.path.join(COOKED_DATA_DIR, 'train.h5'), 'r') -eval_dataset = h5py.File(os.path.join(COOKED_DATA_DIR, 'eval.h5'), 'r') - -num_train_examples = train_dataset['image'].shape[0] -num_eval_examples = eval_dataset['image'].shape[0] - -# Use ROI of [78,144,27,227] for FOV 60 with Formula car -data_generator = DriveDataGenerator(rescale=1./255., horizontal_flip=False, brighten_range=0.4) -train_generator = data_generator.flow\ - (train_dataset['image'], train_dataset['previous_state'], train_dataset['label'], batch_size=batch_size, zero_drop_percentage=0.95, roi=[78,144,27,227]) -eval_generator = data_generator.flow\ - (eval_dataset['image'], eval_dataset['previous_state'], eval_dataset['label'], batch_size=batch_size, zero_drop_percentage=0.95, roi=[78,144,27,227]) - -[sample_batch_train_data, sample_batch_test_data] = next(train_generator) - -image_input_shape = sample_batch_train_data[0].shape[1:] - -pic_input = Input(shape=image_input_shape) - -#Network definition -img_stack = Conv2D(24, (5, 5), name="conv1", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(pic_input) -img_stack = Conv2D(36, (5, 5), name="conv2", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) -img_stack = Conv2D(48, (5, 5), name="conv3", strides=(2, 2), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) - -img_stack = Dropout(0.5)(img_stack) - -img_stack = Conv2D(64, (3, 3), name="conv4", strides=(1, 1), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) -img_stack = Conv2D(64, (3, 3), name="conv5", strides=(1, 1), padding="valid", activation=activation, kernel_initializer="he_normal")(img_stack) - -img_stack = Flatten(name = 'flatten')(img_stack) - -img_stack = Dense(100, name="fc2", activation=activation,kernel_initializer="he_normal")(img_stack) -img_stack = Dense(50, name="fc3", activation=activation, kernel_initializer="he_normal")(img_stack) -img_stack = Dense(10, name="fc4", activation=activation, kernel_initializer="he_normal")(img_stack) -img_stack = Dense(1, name="output", activation = out_activation, kernel_initializer="he_normal")(img_stack) - -adam = Adam(lr=learning_rate, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0) - -model = Model(inputs=[pic_input], outputs=img_stack) -model.compile(optimizer=adam, loss='mse') - -model.summary() - -plateau_callback = ReduceLROnPlateau(monitor="val_loss", factor=0.5, patience=3, min_lr=learning_rate, verbose=1) -csv_callback = CSVLogger(os.path.join(MODEL_OUTPUT_DIR, 'training_log.csv')) -checkpoint_filepath = os.path.join(MODEL_OUTPUT_DIR, 'fresh_models', '{0}_model.{1}-{2}.h5'.format('model', '{epoch:02d}', '{val_loss:.7f}')) -checkpoint_callback = ModelCheckpoint(checkpoint_filepath, save_best_only=True, verbose=1) -early_stopping_callback = EarlyStopping(monitor="val_loss", patience=training_patience, verbose=1) -callbacks=[plateau_callback, csv_callback, checkpoint_callback, early_stopping_callback, TQDMNotebookCallback()] - -history = model.fit_generator(train_generator, steps_per_epoch=num_train_examples//batch_size, epochs=number_of_epochs, callbacks=callbacks,\ - validation_data=eval_generator, validation_steps=num_eval_examples//batch_size, verbose=2) diff --git a/src/airsim/PythonClient/multirotor/Error.wav b/src/airsim/PythonClient/multirotor/Error.wav deleted file mode 100644 index c4a01cb2b4b7af6445d018a7407d2d55d2378b44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 331108 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 M^?xJq|C6u(0no9T(f|Me diff --git a/src/airsim/PythonClient/multirotor/add_drone.py b/src/airsim/PythonClient/multirotor/add_drone.py deleted file mode 100644 index fd740dd5d5..0000000000 --- a/src/airsim/PythonClient/multirotor/add_drone.py +++ /dev/null @@ -1,46 +0,0 @@ -import setup_path -import airsim -import tempfile -import os -import numpy as np -import cv2 -import pprint - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() - -# add new vehicle -vehicle_name = "Drone2" -pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0, 0, 0)) - -client.simAddVehicle(vehicle_name, "simpleflight", pose) -client.enableApiControl(True, vehicle_name) -client.armDisarm(True, vehicle_name) -client.takeoffAsync(10.0, vehicle_name) - -requests = [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 - -responses = client.simGetImages(requests, vehicle_name=vehicle_name) -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, pos %s" % (response.image_type, len(response.image_data_float), pprint.pformat(response.camera_position))) - airsim.write_pfm(os.path.normpath(filename + '.pfm'), airsim.get_pfm_array(response)) - else: - print("Type %d, size %d, pos %s" % (response.image_type, len(response.image_data_uint8), pprint.pformat(response.camera_position))) - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/arm.py b/src/airsim/PythonClient/multirotor/arm.py deleted file mode 100644 index addf1fe6a1..0000000000 --- a/src/airsim/PythonClient/multirotor/arm.py +++ /dev/null @@ -1,6 +0,0 @@ -import setup_path -import airsim - -client = airsim.MultirotorClient() -client.confirmConnection() -client.armDisarm(True) diff --git a/src/airsim/PythonClient/multirotor/box.py b/src/airsim/PythonClient/multirotor/box.py deleted file mode 100644 index 83b2c7d121..0000000000 --- a/src/airsim/PythonClient/multirotor/box.py +++ /dev/null @@ -1,48 +0,0 @@ -import setup_path -import airsim - -import sys -import time - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) -client.takeoffAsync().join() - -print("Flying a small square box using moveByVelocityZ") - -# AirSim uses NED coordinates so negative axis is up. -# z of -7 is 7 meters above the original launch point. -z = -7 - -# Fly given velocity vector for 5 seconds -duration = 5 -speed = 1 -delay = duration * speed - -# using airsim.DrivetrainType.MaxDegreeOfFreedom means we can control the drone yaw independently -# from the direction the drone is flying. I've set values here that make the drone always point inwards -# towards the inside of the box (which would be handy if you are building a 3d scan of an object in the real world). -vx = speed -vy = 0 -print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy) + ", yaw=90") -client.moveByVelocityZAsync(vx,vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 90)).join() -time.sleep(delay) -vx = 0 -vy = speed -print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy)+ ", yaw=180") -client.moveByVelocityZAsync(vx,vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 180)).join() -time.sleep(delay) -vx = -speed -vy = 0 -print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy)+ ", yaw=270") -client.moveByVelocityZAsync(vx, vy, z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 270)).join() -time.sleep(delay) -vx = 0 -vy = -speed -print("moving by velocity vx=" + str(vx) + ", vy=" + str(vy) + ", yaw=0") -client.moveByVelocityZAsync(vx, vy,z,duration, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, 0)).join() -time.sleep(delay) -client.hoverAsync().join() -client.landAsync().join() diff --git a/src/airsim/PythonClient/multirotor/clock_speed.py b/src/airsim/PythonClient/multirotor/clock_speed.py deleted file mode 100644 index 1a9064fc1c..0000000000 --- a/src/airsim/PythonClient/multirotor/clock_speed.py +++ /dev/null @@ -1,36 +0,0 @@ -import setup_path -import airsim - -import time - -# Run this script with clock speed in settings.json -# "ClockSpeed": 1 then change it to 0.5 - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -vx = vy = 0 -z = -20 -duration = 3 - -# with ClockSpeed = 0.5 you will see that this takes 6s (system time) and not 3s -client.moveByVelocityZAsync(vx, vy, z, duration).join() - - -while True: - vx = vy = 5 - z = -20 - duration = 5 - # with ClockSpeed = 0.5 you will see that this takes 10s (system time) - #and not 5s in each iteration - client.moveByVelocityZAsync(vx, vy, z, duration).join() - time.sleep(10) - -client.armDisarm(False) -client.reset() - -# that's enough fun for now. let's quit cleanly -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/disarm.py b/src/airsim/PythonClient/multirotor/disarm.py deleted file mode 100644 index 9cee1045e1..0000000000 --- a/src/airsim/PythonClient/multirotor/disarm.py +++ /dev/null @@ -1,5 +0,0 @@ -import setup_path -import airsim - -client = airsim.MultirotorClient() -client.armDisarm(False) diff --git a/src/airsim/PythonClient/multirotor/drone_lidar.py b/src/airsim/PythonClient/multirotor/drone_lidar.py deleted file mode 100644 index 5e7a00bc13..0000000000 --- a/src/airsim/PythonClient/multirotor/drone_lidar.py +++ /dev/null @@ -1,93 +0,0 @@ -# Python client example to get Lidar data from a drone -# - -import setup_path -import airsim - -import sys -import math -import time -import argparse -import pprint -import numpy - -# Makes the drone fly and get Lidar data -class LidarTest: - - def __init__(self): - - # connect to the AirSim simulator - self.client = airsim.MultirotorClient() - self.client.confirmConnection() - self.client.enableApiControl(True) - - def execute(self): - - print("arming the drone...") - self.client.armDisarm(True) - - state = self.client.getMultirotorState() - s = pprint.pformat(state) - #print("state: %s" % s) - - airsim.wait_key('Press any key to takeoff') - self.client.takeoffAsync().join() - - state = self.client.getMultirotorState() - #print("state: %s" % pprint.pformat(state)) - - airsim.wait_key('Press any key to move vehicle to (-10, 10, -10) at 5 m/s') - self.client.moveToPositionAsync(-10, 10, -10, 5).join() - - self.client.hoverAsync().join() - - airsim.wait_key('Press any key to get Lidar readings') - - for i in range(1,5): - lidarData = self.client.getLidarData(); - if (len(lidarData.point_cloud) < 3): - print("\tNo points received from Lidar data") - else: - points = self.parse_lidarData(lidarData) - print("\tReading %d: time_stamp: %d number_of_points: %d" % (i, lidarData.time_stamp, len(points))) - print("\t\tlidar position: %s" % (pprint.pformat(lidarData.pose.position))) - print("\t\tlidar orientation: %s" % (pprint.pformat(lidarData.pose.orientation))) - time.sleep(5) - - def parse_lidarData(self, data): - - # reshape array of floats to array of [X,Y,Z] - points = numpy.array(data.point_cloud, dtype=numpy.dtype('f4')) - points = numpy.reshape(points, (int(points.shape[0]/3), 3)) - - return points - - def write_lidarData_to_disk(self, points): - # TODO - print("not yet implemented") - - def stop(self): - - airsim.wait_key('Press any key to reset to original state') - - self.client.armDisarm(False) - self.client.reset() - - self.client.enableApiControl(False) - print("Done!\n") - -# main -if __name__ == "__main__": - args = sys.argv - args.pop(0) - - arg_parser = argparse.ArgumentParser("Lidar.py makes drone fly and gets Lidar data") - - arg_parser.add_argument('-save-to-disk', type=bool, help="save Lidar data to disk", default=False) - - args = arg_parser.parse_args(args) - lidarTest = LidarTest() - try: - lidarTest.execute() - finally: - lidarTest.stop() diff --git a/src/airsim/PythonClient/multirotor/drone_stress_test.py b/src/airsim/PythonClient/multirotor/drone_stress_test.py deleted file mode 100644 index 8a7a1ac212..0000000000 --- a/src/airsim/PythonClient/multirotor/drone_stress_test.py +++ /dev/null @@ -1,21 +0,0 @@ -import setup_path -import airsim - -# this script moves the drone to a location, then rests it thousands of time -# purpose of this script is to stress test reset API - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - - -for idx in range(3000): - client.moveToPositionAsync(0, 0, -10, 5).join() - client.reset() - client.enableApiControl(True) - print("%d" % idx) - -# that's enough fun for now. let's quite cleanly -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/external_physics_engine.py b/src/airsim/PythonClient/multirotor/external_physics_engine.py deleted file mode 100644 index efb050b64f..0000000000 --- a/src/airsim/PythonClient/multirotor/external_physics_engine.py +++ /dev/null @@ -1,34 +0,0 @@ -import setup_path -import airsim -import time - -# This example shows how to use the External Physics Engine -# It allows you to control the drone through setVehiclePose and obtain collision information. -# It is especially useful for injecting your own flight dynamics model to the AirSim drone. - -# Use Blocks environment to see the drone colliding and seeing the collision information -# in the command prompt. - -# Add this line to your settings.json before running AirSim: -# "PhysicsEngineName":"ExternalPhysicsEngine" - - -client = airsim.VehicleClient() -client.confirmConnection() -pose = client.simGetVehiclePose() - -pose.orientation = airsim.to_quaternion(0.1, 0.1, 0.1) -client.simSetVehiclePose( pose, False ) - -for i in range(900): - print(i) - pose = client.simGetVehiclePose() - pose.position = pose.position + airsim.Vector3r(0.03, 0, 0) - pose.orientation = pose.orientation + airsim.to_quaternion(0.1, 0.1, 0.1) - client.simSetVehiclePose( pose, False ) - time.sleep(0.003) - collision = client.simGetCollisionInfo() - if collision.has_collided: - print(collision) - -client.reset() \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/gimbal.py b/src/airsim/PythonClient/multirotor/gimbal.py deleted file mode 100644 index 45beb6a232..0000000000 --- a/src/airsim/PythonClient/multirotor/gimbal.py +++ /dev/null @@ -1,25 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -# MultirotorClient.wait_key('Press any key to takeoff') -print("Taking off") -client.takeoffAsync().join() -print("Ready") - -for i in range(5): - client.moveToPositionAsync(float(-50.00), float( 50.26), float( -20.58), float( 3.5)) - time.sleep(6) - camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(0.5, 0.5, 0.1)) - client.simSetCameraPose("0", camera_pose) - client.moveToPositionAsync(float(50.00), float( -50.26), float( -10.58), float( 3.5)) - time.sleep(6) - camera_pose = airsim.Pose(airsim.Vector3r(0, 0, 0), airsim.to_quaternion(-0.5, -0.5, -0.1)) - client.simSetCameraPose("0", camera_pose) diff --git a/src/airsim/PythonClient/multirotor/hello_drone.py b/src/airsim/PythonClient/multirotor/hello_drone.py deleted file mode 100644 index a9b4a4fa9c..0000000000 --- a/src/airsim/PythonClient/multirotor/hello_drone.py +++ /dev/null @@ -1,90 +0,0 @@ -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) - -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') -print("Taking off...") -client.armDisarm(True) -client.takeoffAsync().join() - -state = client.getMultirotorState() -print("state: %s" % pprint.pformat(state)) - -airsim.wait_key('Press any key to move vehicle to (-10, 10, -10) at 5 m/s') -client.moveToPositionAsync(-10, 10, -10, 5).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.reset() -client.armDisarm(False) - -# that's enough fun for now. let's quit cleanly -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/high_res_camera.py b/src/airsim/PythonClient/multirotor/high_res_camera.py deleted file mode 100644 index 151383f444..0000000000 --- a/src/airsim/PythonClient/multirotor/high_res_camera.py +++ /dev/null @@ -1,61 +0,0 @@ -import airsim -from datetime import datetime - -''' -Simple script with settings to create a high-resolution camera, and fetching it - -Settings used- -{ - "SettingsVersion": 1.2, - "SimMode": "Multirotor", - "Vehicles" : { - "Drone1" : { - "VehicleType" : "SimpleFlight", - "AutoCreate" : true, - "Cameras" : { - "high_res": { - "CaptureSettings" : [ - { - "ImageType" : 0, - "Width" : 4320, - "Height" : 2160 - } - ], - "X": 0.50, "Y": 0.00, "Z": 0.10, - "Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0 - }, - "low_res": { - "CaptureSettings" : [ - { - "ImageType" : 0, - "Width" : 256, - "Height" : 144 - } - ], - "X": 0.50, "Y": 0.00, "Z": 0.10, - "Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0 - } - } - } - } -} -''' - -client = airsim.VehicleClient() -client.confirmConnection() -framecounter = 1 - -prevtimestamp = datetime.now() - -while(framecounter <= 500): - if framecounter%150 == 0: - client.simGetImages([airsim.ImageRequest("high_res", airsim.ImageType.Scene, False, False)]) - print("High resolution image captured.") - - if framecounter%30 == 0: - now = datetime.now() - print(f"Time spent for 30 frames: {now-prevtimestamp}") - prevtimestamp = now - - client.simGetImages([airsim.ImageRequest("low_res", airsim.ImageType.Scene, False, False)]) - framecounter += 1 diff --git a/src/airsim/PythonClient/multirotor/kinect_publisher.py b/src/airsim/PythonClient/multirotor/kinect_publisher.py deleted file mode 100644 index a36c5f6038..0000000000 --- a/src/airsim/PythonClient/multirotor/kinect_publisher.py +++ /dev/null @@ -1,225 +0,0 @@ -import rospy -from sensor_msgs.msg import Image,CameraInfo -from tf2_msgs.msg import TFMessage -from geometry_msgs.msg import TransformStamped -from cv_bridge import CvBridge -import airsim -import cv2 -import numpy as np - -CLAHE_ENABLED = False # when enabled, RGB image is enhanced using CLAHE - -CAMERA_FX = 320 -CAMERA_FY = 320 -CAMERA_CX = 320 -CAMERA_CY = 240 - -CAMERA_K1 = -0.000591 -CAMERA_K2 = 0.000519 -CAMERA_P1 = 0.000001 -CAMERA_P2 = -0.000030 -CAMERA_P3 = 0.0 - -IMAGE_WIDTH = 640 # resolution should match values in settings.json -IMAGE_HEIGHT = 480 - - -class KinectPublisher: - def __init__(self): - self.bridge_rgb = CvBridge() - self.msg_rgb = Image() - self.bridge_d = CvBridge() - self.msg_d = Image() - self.msg_info = CameraInfo() - self.msg_tf = TFMessage() - - def getDepthImage(self,response_d): - img_depth = np.array(response_d.image_data_float, dtype=np.float32) - img_depth = img_depth.reshape(response_d.height, response_d.width) - return img_depth - - def getRGBImage(self,response_rgb): - img1d = np.fromstring(response_rgb.image_data_uint8, dtype=np.uint8) - img_rgb = img1d.reshape(response_rgb.height, response_rgb.width, 3) - img_rgb = img_rgb[..., :3][..., ::-1] - return img_rgb - - def enhanceRGB(self,img_rgb): - lab = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2LAB) - lab_planes = cv2.split(lab) - clahe = cv2.createCLAHE(clipLimit=2.5, tileGridSize=(10, 10)) - lab_planes[0] = clahe.apply(lab_planes[0]) - lab = cv2.merge(lab_planes) - img_rgb = cv2.cvtColor(lab, cv2.COLOR_LAB2BGR) - return img_rgb - - def GetCurrentTime(self): - self.ros_time = rospy.Time.now() - - def CreateRGBMessage(self,img_rgb): - self.msg_rgb.header.stamp = self.ros_time - self.msg_rgb.header.frame_id = "camera_rgb_optical_frame" - self.msg_rgb.encoding = "bgr8" - self.msg_rgb.height = IMAGE_HEIGHT - self.msg_rgb.width = IMAGE_WIDTH - self.msg_rgb.data = self.bridge_rgb.cv2_to_imgmsg(img_rgb, "bgr8").data - self.msg_rgb.is_bigendian = 0 - self.msg_rgb.step = self.msg_rgb.width * 3 - return self.msg_rgb - - def CreateDMessage(self,img_depth): - self.msg_d.header.stamp = self.ros_time - self.msg_d.header.frame_id = "camera_depth_optical_frame" - self.msg_d.encoding = "32FC1" - self.msg_d.height = IMAGE_HEIGHT - self.msg_d.width = IMAGE_WIDTH - self.msg_d.data = self.bridge_d.cv2_to_imgmsg(img_depth, "32FC1").data - self.msg_d.is_bigendian = 0 - self.msg_d.step = self.msg_d.width * 4 - return self.msg_d - - def CreateInfoMessage(self): - self.msg_info.header.frame_id = "camera_rgb_optical_frame" - self.msg_info.height = self.msg_rgb.height - self.msg_info.width = self.msg_rgb.width - self.msg_info.distortion_model = "plumb_bob" - - self.msg_info.D.append(CAMERA_K1) - self.msg_info.D.append(CAMERA_K2) - self.msg_info.D.append(CAMERA_P1) - self.msg_info.D.append(CAMERA_P2) - self.msg_info.D.append(CAMERA_P3) - - self.msg_info.K[0] = CAMERA_FX - self.msg_info.K[1] = 0 - self.msg_info.K[2] = CAMERA_CX - self.msg_info.K[3] = 0 - self.msg_info.K[4] = CAMERA_FY - self.msg_info.K[5] = CAMERA_CY - self.msg_info.K[6] = 0 - self.msg_info.K[7] = 0 - self.msg_info.K[8] = 1 - - self.msg_info.R[0] = 1 - self.msg_info.R[1] = 0 - self.msg_info.R[2] = 0 - self.msg_info.R[3] = 0 - self.msg_info.R[4] = 1 - self.msg_info.R[5] = 0 - self.msg_info.R[6] = 0 - self.msg_info.R[7] = 0 - self.msg_info.R[8] = 1 - - self.msg_info.P[0] = CAMERA_FX - self.msg_info.P[1] = 0 - self.msg_info.P[2] = CAMERA_CX - self.msg_info.P[3] = 0 - self.msg_info.P[4] = 0 - self.msg_info.P[5] = CAMERA_FY - self.msg_info.P[6] = CAMERA_CY - self.msg_info.P[7] = 0 - self.msg_info.P[8] = 0 - self.msg_info.P[9] = 0 - self.msg_info.P[10] = 1 - self.msg_info.P[11] = 0 - - self.msg_info.binning_x = self.msg_info.binning_y = 0 - self.msg_info.roi.x_offset = self.msg_info.roi.y_offset = self.msg_info.roi.height = self.msg_info.roi.width = 0 - self.msg_info.roi.do_rectify = False - self.msg_info.header.stamp = self.msg_rgb.header.stamp - return self.msg_info - - def CreateTFMessage(self): - self.msg_tf.transforms.append(TransformStamped()) - self.msg_tf.transforms[0].header.stamp = self.ros_time - self.msg_tf.transforms[0].header.frame_id = "/camera_link" - self.msg_tf.transforms[0].child_frame_id = "/camera_rgb_frame" - self.msg_tf.transforms[0].transform.translation.x = 0.000 - self.msg_tf.transforms[0].transform.translation.y = 0 - self.msg_tf.transforms[0].transform.translation.z = 0.000 - self.msg_tf.transforms[0].transform.rotation.x = 0.00 - self.msg_tf.transforms[0].transform.rotation.y = 0.00 - self.msg_tf.transforms[0].transform.rotation.z = 0.00 - self.msg_tf.transforms[0].transform.rotation.w = 1.00 - - self.msg_tf.transforms.append(TransformStamped()) - self.msg_tf.transforms[1].header.stamp = self.ros_time - self.msg_tf.transforms[1].header.frame_id = "/camera_rgb_frame" - self.msg_tf.transforms[1].child_frame_id = "/camera_rgb_optical_frame" - self.msg_tf.transforms[1].transform.translation.x = 0.000 - self.msg_tf.transforms[1].transform.translation.y = 0.000 - self.msg_tf.transforms[1].transform.translation.z = 0.000 - self.msg_tf.transforms[1].transform.rotation.x = -0.500 - self.msg_tf.transforms[1].transform.rotation.y = 0.500 - self.msg_tf.transforms[1].transform.rotation.z = -0.500 - self.msg_tf.transforms[1].transform.rotation.w = 0.500 - - self.msg_tf.transforms.append(TransformStamped()) - self.msg_tf.transforms[2].header.stamp = self.ros_time - self.msg_tf.transforms[2].header.frame_id = "/camera_link" - self.msg_tf.transforms[2].child_frame_id = "/camera_depth_frame" - self.msg_tf.transforms[2].transform.translation.x = 0 - self.msg_tf.transforms[2].transform.translation.y = 0 - self.msg_tf.transforms[2].transform.translation.z = 0 - self.msg_tf.transforms[2].transform.rotation.x = 0.00 - self.msg_tf.transforms[2].transform.rotation.y = 0.00 - self.msg_tf.transforms[2].transform.rotation.z = 0.00 - self.msg_tf.transforms[2].transform.rotation.w = 1.00 - - self.msg_tf.transforms.append(TransformStamped()) - self.msg_tf.transforms[3].header.stamp = self.ros_time - self.msg_tf.transforms[3].header.frame_id = "/camera_depth_frame" - self.msg_tf.transforms[3].child_frame_id = "/camera_depth_optical_frame" - self.msg_tf.transforms[3].transform.translation.x = 0.000 - self.msg_tf.transforms[3].transform.translation.y = 0.000 - self.msg_tf.transforms[3].transform.translation.z = 0.000 - self.msg_tf.transforms[3].transform.rotation.x = -0.500 - self.msg_tf.transforms[3].transform.rotation.y = 0.500 - self.msg_tf.transforms[3].transform.rotation.z = -0.500 - self.msg_tf.transforms[3].transform.rotation.w = 0.500 - return self.msg_tf - - -if __name__ == "__main__": - client = airsim.MultirotorClient() - client.confirmConnection() - client.enableApiControl(True) - client.armDisarm(True) - rospy.init_node('airsim_publisher', anonymous=True) - publisher_d = rospy.Publisher('/camera/depth_registered/image_raw', Image, queue_size=1) - publisher_rgb = rospy.Publisher('/camera/rgb/image_rect_color', Image, queue_size=1) - publisher_info = rospy.Publisher('/camera/rgb/camera_info', CameraInfo, queue_size=1) - publisher_tf = rospy.Publisher('/tf', TFMessage, queue_size=1) - rate = rospy.Rate(30) # 30hz - pub = KinectPublisher() - - while not rospy.is_shutdown(): - responses = client.simGetImages([airsim.ImageRequest(0, airsim.ImageType.DepthPlanar, True, False), - airsim.ImageRequest(0, airsim.ImageType.Scene, False, False)]) - img_depth = pub.getDepthImage(responses[0]) - img_rgb = pub.getRGBImage(responses[1]) - - if CLAHE_ENABLED: - img_rgb = pub.enhanceRGB(img_rgb) - - pub.GetCurrentTime() - msg_rgb = pub.CreateRGBMessage(img_rgb) - msg_d = pub.CreateDMessage(img_depth) - msg_info = pub.CreateInfoMessage() - msg_tf = pub.CreateTFMessage() - - publisher_rgb.publish(msg_rgb) - publisher_d.publish(msg_d) - publisher_info.publish(msg_info) - publisher_tf.publish(msg_tf) - - del pub.msg_info.D[:] - del pub.msg_tf.transforms[:] - - rate.sleep() - - - - - - diff --git a/src/airsim/PythonClient/multirotor/land.py b/src/airsim/PythonClient/multirotor/land.py deleted file mode 100644 index db73190c09..0000000000 --- a/src/airsim/PythonClient/multirotor/land.py +++ /dev/null @@ -1,17 +0,0 @@ -import setup_path -import airsim - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -landed = client.getMultirotorState().landed_state -if landed == airsim.LandedState.Landed: - print("already landed...") -else: - print("landing...") - client.landAsync().join() - -client.armDisarm(False) -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/line_of_sight.py b/src/airsim/PythonClient/multirotor/line_of_sight.py deleted file mode 100644 index 43083c6210..0000000000 --- a/src/airsim/PythonClient/multirotor/line_of_sight.py +++ /dev/null @@ -1,34 +0,0 @@ -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) - -home = client.getHomeGeoPoint() -print("home:\n%s" % home) - -target = home -target.latitude -= 1 - -result = client.simTestLineOfSightToPoint(target) -print("test line of sight from vehicle to\n%s\n\t:%s" %(target, result)) - -result = client.simTestLineOfSightBetweenPoints(home, target) -print("test line of sight from home to\n%s\n\t:%s" %(target, result)) - -result = client.simGetWorldExtents() -print("world extents:\n%s\n\t-\n%s" %(result[0], result[1])) - -client.reset() -client.armDisarm(False) - -# that's enough fun for now. let's quit cleanly -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/manual_mode_demo.py b/src/airsim/PythonClient/multirotor/manual_mode_demo.py deleted file mode 100644 index 52e310b1d6..0000000000 --- a/src/airsim/PythonClient/multirotor/manual_mode_demo.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -For connecting to the AirSim drone environment and testing API functionality -""" -import setup_path -import airsim - -import os -import tempfile -import pprint - -# 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) - -client.moveByManualAsync(vx_max = 1E6, vy_max = 1E6, z_min = -1E6, duration = 1E10) -airsim.wait_key('Manual mode is setup. Press any key to send RC data to takeoff') - -client.moveByRC(rcdata = airsim.RCData(pitch = 0.0, throttle = 1.0, is_initialized = True, is_valid = True)) - -airsim.wait_key('Set Yaw and pitch to 0.5') - -client.moveByRC(rcdata = airsim.RCData(roll = 0.5, throttle = 1.0, yaw = 0.5, is_initialized = True, is_valid = True)) diff --git a/src/airsim/PythonClient/multirotor/multi_agent_drone.py b/src/airsim/PythonClient/multirotor/multi_agent_drone.py deleted file mode 100644 index 2338b14962..0000000000 --- a/src/airsim/PythonClient/multirotor/multi_agent_drone.py +++ /dev/null @@ -1,103 +0,0 @@ -import airsim -import cv2 -import numpy as np -import os -import pprint -import setup_path -import tempfile - -# Use below in settings.json with Blocks environment -""" -{ - "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md", - "SettingsVersion": 1.2, - "SimMode": "Multirotor", - "ClockSpeed": 1, - - "Vehicles": { - "Drone1": { - "VehicleType": "SimpleFlight", - "X": 4, "Y": 0, "Z": -2 - }, - "Drone2": { - "VehicleType": "SimpleFlight", - "X": 8, "Y": 0, "Z": -2 - } - - } -} -""" - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True, "Drone1") -client.enableApiControl(True, "Drone2") -client.armDisarm(True, "Drone1") -client.armDisarm(True, "Drone2") - -airsim.wait_key('Press any key to takeoff') -f1 = client.takeoffAsync(vehicle_name="Drone1") -f2 = client.takeoffAsync(vehicle_name="Drone2") -f1.join() -f2.join() - -state1 = client.getMultirotorState(vehicle_name="Drone1") -s = pprint.pformat(state1) -print("state: %s" % s) -state2 = client.getMultirotorState(vehicle_name="Drone2") -s = pprint.pformat(state2) -print("state: %s" % s) - -airsim.wait_key('Press any key to move vehicles') -f1 = client.moveToPositionAsync(-5, 5, -10, 5, vehicle_name="Drone1") -f2 = client.moveToPositionAsync(5, -5, -10, 5, vehicle_name="Drone2") -f1.join() -f2.join() - -airsim.wait_key('Press any key to take images') -# get camera images from the car -responses1 = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], vehicle_name="Drone1") #scene vision image in uncompressed RGB array -print('Drone1: Retrieved images: %d' % len(responses1)) -responses2 = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), #depth visualization image - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)], vehicle_name="Drone2") #scene vision image in uncompressed RGB array -print('Drone2: Retrieved images: %d' % len(responses2)) - -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(responses1 + responses2): - - 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 3 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, "Drone1") -client.armDisarm(False, "Drone2") -client.reset() - -# that's enough fun for now. let's quit cleanly -client.enableApiControl(False, "Drone1") -client.enableApiControl(False, "Drone2") - - diff --git a/src/airsim/PythonClient/multirotor/navigate.py b/src/airsim/PythonClient/multirotor/navigate.py deleted file mode 100644 index 6d2ccdc9bc..0000000000 --- a/src/airsim/PythonClient/multirotor/navigate.py +++ /dev/null @@ -1,98 +0,0 @@ -# use open cv to show new images from AirSim - -import setup_path -import airsim - -# requires Python 3.5.3 :: Anaconda 4.4.0 -# pip install opencv-python -import cv2 -import time -import math -import sys -import numpy as np - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) -client.takeoffAsync().join() - -# you must first press "1" in the AirSim view to turn on the depth capture - -# get depth image -yaw = 0 -pi = 3.14159265483 -vx = 0 -vy = 0 -driving = 0 -help = False - -while True: - # this will return png width= 256, height= 144 - result = client.simGetImage("0", airsim.ImageType.DepthVis) - if (result == "\0"): - if (not help): - help = True - print("Please press '1' in the AirSim view to enable the Depth camera view") - else: - rawImage = np.fromstring(result, np.int8) - png = cv2.imdecode(rawImage, cv2.IMREAD_UNCHANGED) - gray = cv2.cvtColor(png, cv2.COLOR_BGR2GRAY) - - # slice the image so we only check what we are headed into (and not what is down on the ground below us). - - top = np.vsplit(gray, 2)[0] - - # now look at 4 horizontal bands (far left, left, right, far right) and see which is most open. - # the depth map uses black for far away (0) and white for very close (255), so we invert that - # to get an estimate of distance. - bands = np.hsplit(top, [50,100,150,200]); - maxes = [np.max(x) for x in bands] - min = np.argmin(maxes) - distance = 255 - maxes[min] - - # sanity check on what is directly in front of us (slot 2 in our hsplit) - current = 255 - maxes[2] - - if (current < 20): - client.hoverAsync().join() - airsim.wait_key("whoops - we are about to crash, so stopping!") - - pitch, roll, yaw = airsim.to_eularian_angles(client.simGetVehiclePose().orientation) - - if (distance > current + 30): - - # we have a 90 degree field of view (pi/2), we've sliced that into 5 chunks, each chunk then represents - # an angular delta of the following pi/10. - change = 0 - driving = min - if (min == 0): - change = -2 * pi / 10 - elif (min == 1): - change = -pi / 10 - elif (min == 2): - change = 0 # center strip, go straight - elif (min == 3): - change = pi / 10 - else: - change = 2*pi/10 - - yaw = (yaw + change) - vx = math.cos(yaw); - vy = math.sin(yaw); - print ("switching angle", math.degrees(yaw), vx, vy, min, distance, current) - - if (vx == 0 and vy == 0): - vx = math.cos(yaw); - vy = math.sin(yaw); - - print ("distance=", current) - client.moveByVelocityZAsync(vx, vy,-6, 1, airsim.DrivetrainType.ForwardOnly, airsim.YawMode(False, 0)).join() - - x = int(driving * 50) - cv2.rectangle(png, (x,0), (x+50,50), (0,255,0), 2) - cv2.imshow("Top", png) - - key = cv2.waitKey(1) & 0xFF; - if (key == 27 or key == ord('q') or key == ord('x')): - break; diff --git a/src/airsim/PythonClient/multirotor/opencv_show.py b/src/airsim/PythonClient/multirotor/opencv_show.py deleted file mode 100644 index 75a5e48627..0000000000 --- a/src/airsim/PythonClient/multirotor/opencv_show.py +++ /dev/null @@ -1,75 +0,0 @@ -# In settings.json first activate computer vision mode: -# https://github.com/Microsoft/AirSim/blob/main/docs/image_apis.md#computer-vision-mode - -import setup_path -import airsim - -# requires Python 3.5.3 :: Anaconda 4.4.0 -# pip install opencv-python -import cv2 -import time -import sys - -def printUsage(): - print("Usage: python camera.py [depth|segmentation|scene]") - -cameraType = "depth" - -for arg in sys.argv[1:]: - cameraType = arg.lower() - -cameraTypeMap = { - "depth": airsim.ImageType.DepthVis, - "segmentation": airsim.ImageType.Segmentation, - "seg": airsim.ImageType.Segmentation, - "scene": airsim.ImageType.Scene, - "disparity": airsim.ImageType.DisparityNormalized, - "normals": airsim.ImageType.SurfaceNormals -} - -if (cameraType not in cameraTypeMap): - printUsage() - sys.exit(0) - -print (cameraTypeMap[cameraType]) - -client = airsim.MultirotorClient() - -print("Connected: now while this script is running, you can open another") -print("console and run a script that flies the drone and this script will") -print("show the depth view while the drone is flying.") - -help = False - -fontFace = cv2.FONT_HERSHEY_SIMPLEX -fontScale = 0.5 -thickness = 2 -textSize, baseline = cv2.getTextSize("FPS", fontFace, fontScale, thickness) -print(textSize) -textOrg = (10, 10 + textSize[1]) -frameCount = 0 -startTime = time.time() -fps = 0 - -while True: - # because this method returns std::vector, msgpack decides to encode it as a string unfortunately. - rawImage = client.simGetImage("0", cameraTypeMap[cameraType]) - if (rawImage == None): - print("Camera is not returning image, please check airsim for error messages") - sys.exit(0) - else: - png = cv2.imdecode(airsim.string_to_uint8_array(rawImage), cv2.IMREAD_UNCHANGED) - cv2.putText(png,'FPS ' + str(fps),textOrg, fontFace, fontScale,(255,0,255),thickness) - cv2.imshow("Depth", png) - - frameCount = frameCount + 1 - endTime = time.time() - diff = endTime - startTime - if (diff > 1): - fps = frameCount - frameCount = 0 - startTime = endTime - - key = cv2.waitKey(1) & 0xFF - if (key == 27 or key == ord('q') or key == ord('x')): - break diff --git a/src/airsim/PythonClient/multirotor/orbit.py b/src/airsim/PythonClient/multirotor/orbit.py deleted file mode 100644 index 78d9a23b3f..0000000000 --- a/src/airsim/PythonClient/multirotor/orbit.py +++ /dev/null @@ -1,241 +0,0 @@ -import setup_path -import airsim -import os -import sys -import math -import time -import argparse - -class Position: - def __init__(self, pos): - self.x = pos.x_val - self.y = pos.y_val - self.z = pos.z_val - -# Make the drone fly in a circle. -class OrbitNavigator: - def __init__(self, radius = 2, altitude = 10, speed = 2, iterations = 1, center = [1,0], snapshots = None): - self.radius = radius - self.altitude = altitude - self.speed = speed - self.iterations = iterations - self.snapshots = snapshots - self.snapshot_delta = None - self.next_snapshot = None - self.z = None - self.snapshot_index = 0 - self.takeoff = False # whether we did a take off - - if self.snapshots is not None and self.snapshots > 0: - self.snapshot_delta = 360 / self.snapshots - - if self.iterations <= 0: - self.iterations = 1 - - if len(center) != 2: - raise Exception("Expecting '[x,y]' for the center direction vector") - - # center is just a direction vector, so normalize it to compute the actual cx,cy locations. - cx = float(center[0]) - cy = float(center[1]) - length = math.sqrt((cx*cx) + (cy*cy)) - cx /= length - cy /= length - cx *= self.radius - cy *= self.radius - - self.client = airsim.MultirotorClient() - self.client.confirmConnection() - self.client.enableApiControl(True) - - self.home = self.client.getMultirotorState().kinematics_estimated.position - # check that our home position is stable - start = time.time() - count = 0 - while count < 100: - pos = self.client.getMultirotorState().kinematics_estimated.position - if abs(pos.z_val - self.home.z_val) > 1: - count = 0 - self.home = pos - if time.time() - start > 10: - print("Drone position is drifting, we are waiting for it to settle down...") - start = time - else: - count += 1 - - self.center = pos - self.center.x_val += cx - self.center.y_val += cy - - def start(self): - print("arming the drone...") - self.client.armDisarm(True) - - # AirSim uses NED coordinates so negative axis is up. - start = self.client.getMultirotorState().kinematics_estimated.position - landed = self.client.getMultirotorState().landed_state - if not self.takeoff and landed == airsim.LandedState.Landed: - self.takeoff = True - print("taking off...") - self.client.takeoffAsync().join() - start = self.client.getMultirotorState().kinematics_estimated.position - z = -self.altitude + self.home.z_val - else: - print("already flying so we will orbit at current altitude {}".format(start.z_val)) - z = start.z_val # use current altitude then - - print("climbing to position: {},{},{}".format(start.x_val, start.y_val, z)) - self.client.moveToPositionAsync(start.x_val, start.y_val, z, self.speed).join() - self.z = z - - print("ramping up to speed...") - count = 0 - self.start_angle = None - self.next_snapshot = None - - # ramp up time - ramptime = self.radius / 10 - self.start_time = time.time() - - while count < self.iterations: - if self.snapshots > 0 and not (self.snapshot_index < self.snapshots): - break - # ramp up to full speed in smooth increments so we don't start too aggressively. - now = time.time() - speed = self.speed - diff = now - self.start_time - if diff < ramptime: - speed = self.speed * diff / ramptime - elif ramptime > 0: - print("reached full speed...") - ramptime = 0 - - lookahead_angle = speed / self.radius - - # compute current angle - pos = self.client.getMultirotorState().kinematics_estimated.position - dx = pos.x_val - self.center.x_val - dy = pos.y_val - self.center.y_val - actual_radius = math.sqrt((dx*dx) + (dy*dy)) - angle_to_center = math.atan2(dy, dx) - - camera_heading = (angle_to_center - math.pi) * 180 / math.pi - - # compute lookahead - lookahead_x = self.center.x_val + self.radius * math.cos(angle_to_center + lookahead_angle) - lookahead_y = self.center.y_val + self.radius * math.sin(angle_to_center + lookahead_angle) - - vx = lookahead_x - pos.x_val - vy = lookahead_y - pos.y_val - - if self.track_orbits(angle_to_center * 180 / math.pi): - count += 1 - print("completed {} orbits".format(count)) - - self.camera_heading = camera_heading - self.client.moveByVelocityZAsync(vx, vy, z, 1, airsim.DrivetrainType.MaxDegreeOfFreedom, airsim.YawMode(False, camera_heading)) - - - self.client.moveToPositionAsync(start.x_val, start.y_val, z, 2).join() - - if self.takeoff: - # if we did the takeoff then also do the landing. - if z < self.home.z_val: - print("descending") - self.client.moveToPositionAsync(start.x_val, start.y_val, self.home.z_val - 5, 2).join() - - print("landing...") - self.client.landAsync().join() - - print("disarming.") - self.client.armDisarm(False) - - - def track_orbits(self, angle): - # tracking # of completed orbits is surprisingly tricky to get right in order to handle random wobbles - # about the starting point. So we watch for complete 1/2 orbits to avoid that problem. - if angle < 0: - angle += 360 - - if self.start_angle is None: - self.start_angle = angle - if self.snapshot_delta: - self.next_snapshot = angle + self.snapshot_delta - self.previous_angle = angle - self.shifted = False - self.previous_sign = None - self.previous_diff = None - self.quarter = False - return False - - # now we just have to watch for a smooth crossing from negative diff to positive diff - if self.previous_angle is None: - self.previous_angle = angle - return False - - # ignore the click over from 360 back to 0 - if self.previous_angle > 350 and angle < 10: - if self.snapshot_delta and self.next_snapshot >= 360: - self.next_snapshot -= 360 - return False - - diff = self.previous_angle - angle - crossing = False - self.previous_angle = angle - - if self.snapshot_delta and angle > self.next_snapshot: - print("Taking snapshot at angle {}".format(angle)) - self.take_snapshot() - self.next_snapshot += self.snapshot_delta - - diff = abs(angle - self.start_angle) - if diff > 45: - self.quarter = True - - if self.quarter and self.previous_diff is not None and diff != self.previous_diff: - # watch direction this diff is moving if it switches from shrinking to growing - # then we passed the starting point. - direction = self.sign(self.previous_diff - diff) - if self.previous_sign is None: - self.previous_sign = direction - elif self.previous_sign > 0 and direction < 0: - if diff < 45: - self.quarter = False - if self.snapshots <= self.snapshot_index + 1: - crossing = True - self.previous_sign = direction - self.previous_diff = diff - - return crossing - - def take_snapshot(self): - # first hold our current position so drone doesn't try and keep flying while we take the picture. - pos = self.client.getMultirotorState().kinematics_estimated.position - self.client.moveToPositionAsync(pos.x_val, pos.y_val, self.z, 0.5, 10, airsim.DrivetrainType.MaxDegreeOfFreedom, - airsim.YawMode(False, self.camera_heading)).join() - responses = self.client.simGetImages([airsim.ImageRequest(1, airsim.ImageType.Scene)]) #scene vision image in png format - response = responses[0] - filename = "photo_" + str(self.snapshot_index) - self.snapshot_index += 1 - airsim.write_file(os.path.normpath(filename + '.png'), response.image_data_uint8) - print("Saved snapshot: {}".format(filename)) - self.start_time = time.time() # cause smooth ramp up to happen again after photo is taken. - - def sign(self, s): - if s < 0: - return -1 - return 1 - -if __name__ == "__main__": - args = sys.argv - args.pop(0) - arg_parser = argparse.ArgumentParser("Orbit.py makes drone fly in a circle with camera pointed at the given center vector") - arg_parser.add_argument("--radius", type=float, help="radius of the orbit", default=10) - arg_parser.add_argument("--altitude", type=float, help="altitude of orbit (in positive meters)", default=20) - arg_parser.add_argument("--speed", type=float, help="speed of orbit (in meters/second)", default=3) - arg_parser.add_argument("--center", help="x,y direction vector pointing to center of orbit from current starting position (default 1,0)", default="1,0") - arg_parser.add_argument("--iterations", type=float, help="number of 360 degree orbits (default 3)", default=3) - arg_parser.add_argument("--snapshots", type=float, help="number of FPV snapshots to take during orbit (default 0)", default=0) - args = arg_parser.parse_args(args) - nav = OrbitNavigator(args.radius, args.altitude, args.speed, args.iterations, args.center.split(','), args.snapshots) - nav.start() diff --git a/src/airsim/PythonClient/multirotor/params.txt b/src/airsim/PythonClient/multirotor/params.txt deleted file mode 100644 index da7bb5515f..0000000000 --- a/src/airsim/PythonClient/multirotor/params.txt +++ /dev/null @@ -1,5 +0,0 @@ -param set LPE_LAT 47.641468 -param set LPE_LON -122.140165 -param set COM_OBL_ACT 1 -param set NAV_RCL_ACT 0 -param set NAV_DLL_ACT 0 diff --git a/src/airsim/PythonClient/multirotor/path.py b/src/airsim/PythonClient/multirotor/path.py deleted file mode 100644 index 6d34f13488..0000000000 --- a/src/airsim/PythonClient/multirotor/path.py +++ /dev/null @@ -1,56 +0,0 @@ -import setup_path -import airsim - -import sys -import time - -print("""This script is designed to fly on the streets of the Neighborhood environment -and assumes the unreal position of the drone is [160, -1500, 120].""") - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) - -print("arming the drone...") -client.armDisarm(True) - -state = client.getMultirotorState() -if state.landed_state == airsim.LandedState.Landed: - print("taking off...") - client.takeoffAsync().join() -else: - client.hoverAsync().join() - -time.sleep(1) - -state = client.getMultirotorState() -if state.landed_state == airsim.LandedState.Landed: - print("take off failed...") - sys.exit(1) - -# AirSim uses NED coordinates so negative axis is up. -# z of -5 is 5 meters above the original launch point. -z = -5 -print("make sure we are hovering at {} meters...".format(-z)) -client.moveToZAsync(z, 1).join() - -# see https://github.com/Microsoft/AirSim/wiki/moveOnPath-demo - -# this method is async and we are not waiting for the result since we are passing timeout_sec=0. - -print("flying on path...") -result = client.moveOnPathAsync([airsim.Vector3r(125,0,z), - airsim.Vector3r(125,-130,z), - airsim.Vector3r(0,-130,z), - airsim.Vector3r(0,0,z)], - 12, 120, - airsim.DrivetrainType.ForwardOnly, airsim.YawMode(False,0), 20, 1).join() - -# drone will over-shoot so we bring it back to the start point before landing. -client.moveToPositionAsync(0,0,z,1).join() -print("landing...") -client.landAsync().join() -print("disarming...") -client.armDisarm(False) -client.enableApiControl(False) -print("done.") diff --git a/src/airsim/PythonClient/multirotor/pause_continue_drone.py b/src/airsim/PythonClient/multirotor/pause_continue_drone.py deleted file mode 100644 index efdb620520..0000000000 --- a/src/airsim/PythonClient/multirotor/pause_continue_drone.py +++ /dev/null @@ -1,33 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -print("Taking off") -client.moveByVelocityZAsync(0, 0, -20, 8).join() -time.sleep(3) - -for i in range(1, 6): - print("Starting command to run for 15sec") - client.moveByVelocityZAsync(-1*i, -1*i, -20-i, 15) - time.sleep(5) #run - print("Pausing after 5sec") - client.simPause(True) - time.sleep(5) #paused - print("Restarting command to run for 7.5sec") - client.simContinueForTime(7.5) - time.sleep(10) - print("Finishing rest of the command") - client.simPause(False) - time.sleep(15) - print("Finished cycle") - - - - diff --git a/src/airsim/PythonClient/multirotor/point_cloud.py b/src/airsim/PythonClient/multirotor/point_cloud.py deleted file mode 100644 index 272c856f7f..0000000000 --- a/src/airsim/PythonClient/multirotor/point_cloud.py +++ /dev/null @@ -1,63 +0,0 @@ -# use open cv to create point cloud from depth image. -import setup_path -import airsim - -import cv2 -import time -import sys -import math -import numpy as np - -############################################ -########## This is work in progress! ####### -############################################ - -# file will be saved in PythonClient folder (i.e. same folder as script) -# point cloud ASCII format, use viewers like CloudCompare http://www.danielgm.net/cc/ or see http://www.geonext.nl/wp-content/uploads/2014/05/Point-Cloud-Viewers.pdf -outputFile = "cloud.asc" -color = (0,255,0) -rgb = "%d %d %d" % color -projectionMatrix = np.array([[-0.501202762, 0.000000000, 0.000000000, 0.000000000], - [0.000000000, -0.501202762, 0.000000000, 0.000000000], - [0.000000000, 0.000000000, 10.00000000, 100.00000000], - [0.000000000, 0.000000000, -10.0000000, 0.000000000]]) - - -def printUsage(): - print("Usage: python point_cloud.py [cloud.txt]") - -def savePointCloud(image, fileName): - f = open(fileName, "w") - for x in range(image.shape[0]): - for y in range(image.shape[1]): - pt = image[x,y] - if (math.isinf(pt[0]) or math.isnan(pt[0])): - # skip it - None - else: - f.write("%f %f %f %s\n" % (pt[0], pt[1], pt[2]-1, rgb)) - f.close() - -for arg in sys.argv[1:]: - cloud.txt = arg - -client = airsim.MultirotorClient() - -while True: - rawImage = client.simGetImage("0", airsim.ImageType.DepthPerspective) - if (rawImage is None): - print("Camera is not returning image, please check airsim for error messages") - airsim.wait_key("Press any key to exit") - sys.exit(0) - else: - png = cv2.imdecode(np.frombuffer(rawImage, np.uint8) , cv2.IMREAD_UNCHANGED) - gray = cv2.cvtColor(png, cv2.COLOR_BGR2GRAY) - Image3D = cv2.reprojectImageTo3D(gray, projectionMatrix) - savePointCloud(Image3D, outputFile) - print("saved " + outputFile) - airsim.wait_key("Press any key to exit") - sys.exit(0) - - key = cv2.waitKey(1) & 0xFF; - if (key == 27 or key == ord('q') or key == ord('x')): - break; diff --git a/src/airsim/PythonClient/multirotor/reset_test_drone.py b/src/airsim/PythonClient/multirotor/reset_test_drone.py deleted file mode 100644 index 8505672ab0..0000000000 --- a/src/airsim/PythonClient/multirotor/reset_test_drone.py +++ /dev/null @@ -1,23 +0,0 @@ -import setup_path -import airsim - -import time - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -print("fly") -client.moveToPositionAsync(0, 0, -10, 5).join() - -print("reset") -client.reset() -client.enableApiControl(True) -client.armDisarm(True) -time.sleep(5) -print("done") - -print("fly") -client.moveToPositionAsync(0, 0, -10, 5).join() diff --git a/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py b/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py deleted file mode 100644 index 10e11d41a7..0000000000 --- a/src/airsim/PythonClient/multirotor/sensorframe_lidar_pointcloud.py +++ /dev/null @@ -1,105 +0,0 @@ -# Python client example to get Lidar data from a drone, although this script works for any AirSim-supported vehicle -# This script is for Lidar sensors using 'SensorLocalFrame' as DataFrame under settings.json. -# Sample settings.json used for this script: -''' -{ - "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings_json.md", - "SettingsVersion": 1.2, - - "SimMode": "Multirotor", - - "Vehicles": { - "Drone1": { - "VehicleType": "SimpleFlight", - "AutoCreate": true, - "Sensors": { - "LidarSensor1": { - "SensorType": 6, - "Enabled" : true, - "NumberOfChannels": 1, - "RotationsPerSecond": 10, - "Range":12, - "PointsPerSecond": 8000, - "X": 0, "Y": 0, "Z": -1, - "Roll": 0, "Pitch": 90, "Yaw" : 0, - "VerticalFOVUpper": 0, - "VerticalFOVLower": 0, - "HorizontalFOVStart": 0, - "HorizontalFOVEnd": 0, - "DrawDebugPoints": true, - "DataFrame": "SensorLocalFrame" - }, - "LidarSensor2": { - "SensorType": 6, - "Enabled" : true, - "NumberOfChannels": 1, - "RotationsPerSecond": 10, - "Range":12, - "PointsPerSecond": 8000, - "X": 0, "Y": 0, "Z": -1, - "Roll": 90, "Pitch": 90, "Yaw" : 0, - "VerticalFOVUpper": 0, - "VerticalFOVLower": 0, - "HorizontalFOVStart": 0, - "HorizontalFOVEnd": 0, - "DrawDebugPoints": true, - "DataFrame": "SensorLocalFrame" - } - } - } - } -} -''' -import setup_path -import airsim -import numpy as np - -class LidarTest: - - def __init__(self): - - # connect to the AirSim simulator - self.client = airsim.VehicleClient() - self.client.confirmConnection() - print('Connected!\n') - - def execute(self,vehicle_name,lidar_names): - print('Scanning Has Started\n') - print('Use Keyboard Interrupt \'CTRL + C\' to Stop Scanning\n') - existing_data_cleared = False #change to true to superimpose new scans onto existing .asc files - try: - while True: - for lidar_name in lidar_names: - filename = f"{vehicle_name}_{lidar_name}_pointcloud.asc" - if not existing_data_cleared: - f = open(filename,'w') - else: - f = open(filename,'a') - lidar_data = self.client.getLidarData(lidar_name=lidar_name,vehicle_name=vehicle_name) - - orientation = lidar_data.pose.orientation - q0, q1, q2, q3 = orientation.w_val, orientation.x_val, orientation.y_val, orientation.z_val - rotation_matrix = np.array(([1-2*(q2*q2+q3*q3),2*(q1*q2-q3*q0),2*(q1*q3+q2*q0)], - [2*(q1*q2+q3*q0),1-2*(q1*q1+q3*q3),2*(q2*q3-q1*q0)], - [2*(q1*q3-q2*q0),2*(q2*q3+q1*q0),1-2*(q1*q1+q2*q2)])) - - position = lidar_data.pose.position - for i in range(0, len(lidar_data.point_cloud), 3): - xyz = lidar_data.point_cloud[i:i+3] - - corrected_x, corrected_y, corrected_z = np.matmul(rotation_matrix, np.asarray(xyz)) - final_x = corrected_x + position.x_val - final_y = corrected_y + position.y_val - final_z = corrected_z + position.z_val - - f.write("%f %f %f %d %d %d \n" % (final_x,final_y,final_z,255,255,0)) - f.close() - existing_data_cleared = True - except KeyboardInterrupt: - airsim.wait_key('Press any key to stop running this script') - print("Done!\n") - -# main -if __name__ == "__main__": - lidarTest = LidarTest() - lidarTest.execute('Drone1',['LidarSensor1','LidarSensor2']) diff --git a/src/airsim/PythonClient/multirotor/set_fog.py b/src/airsim/PythonClient/multirotor/set_fog.py deleted file mode 100644 index 100421064c..0000000000 --- a/src/airsim/PythonClient/multirotor/set_fog.py +++ /dev/null @@ -1,33 +0,0 @@ -import setup_path -import airsim -import time - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) - -client.armDisarm(True) - -client.simEnableWeather(True) - -print("Setting fog to 25%") -client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.25) - -# Takeoff or hover -landed = client.getMultirotorState().landed_state -if landed == airsim.LandedState.Landed: - print("taking off...") - client.takeoffAsync().join() -else: - print("already flying...") - client.hoverAsync().join() - -time.sleep(5) - -print("Setting fog to 50%") -client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0.5) - -time.sleep(5) - -print("Resetting fog to 0%") -client.simSetWeatherParameter(airsim.WeatherParameter.Fog, 0) diff --git a/src/airsim/PythonClient/multirotor/set_trace_line.py b/src/airsim/PythonClient/multirotor/set_trace_line.py deleted file mode 100644 index 9324af8ec8..0000000000 --- a/src/airsim/PythonClient/multirotor/set_trace_line.py +++ /dev/null @@ -1,46 +0,0 @@ -# Please add "EnableTrace": true to your setting.json as shown below - -# { -# "SettingsVersion": 1.2, -# "SimMode": "Multirotor", -# "Vehicles": { -# "Drone": { -# "VehicleType": "SimpleFlight", -# "EnableTrace": true -# } -# } -# } - -import setup_path -import airsim -import time - -# connect to the AirSim simulator -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) -client.armDisarm(True) - -client.takeoffAsync().join() -client.hoverAsync().join() - -vehicleControl = client.moveByVelocityAsync(1, 1, 0, 12) - -client.simSetTraceLine([1.0, 0.0, 0.0, 1.0], 5) -time.sleep(2) -client.simSetTraceLine([0.0, 1.0, 0.0, 0.8], 10) -time.sleep(2) -client.simSetTraceLine([0.0, 0.0, 1.0, 0.6], 20) -time.sleep(2) -client.simSetTraceLine([1.0, 1.0, 0.0, 0.4], 30) -time.sleep(2) -client.simSetTraceLine([0.0, 1.0, 1.0, 0.2], 40) -time.sleep(2) -client.simSetTraceLine([1.0, 0.0, 1.0, 0.1], 50) -time.sleep(2) - -vehicleControl.join() - -client.armDisarm(False) -client.takeoffAsync().join() -client.enableApiControl(False) diff --git a/src/airsim/PythonClient/multirotor/set_wind.py b/src/airsim/PythonClient/multirotor/set_wind.py deleted file mode 100644 index 2fcc7bec72..0000000000 --- a/src/airsim/PythonClient/multirotor/set_wind.py +++ /dev/null @@ -1,35 +0,0 @@ -import setup_path -import airsim -import time - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) - -client.armDisarm(True) - -print("Setting wind to 10m/s in forward direction") # NED -wind = airsim.Vector3r(10, 0, 0) -client.simSetWind(wind) - -# Takeoff or hover -landed = client.getMultirotorState().landed_state -if landed == airsim.LandedState.Landed: - print("taking off...") - client.takeoffAsync().join() -else: - print("already flying...") - client.hoverAsync().join() - -time.sleep(5) - -print("Setting wind to 15m/s towards right") # NED -wind = airsim.Vector3r(0, 15, 0) -client.simSetWind(wind) - -time.sleep(5) - -# Set wind to 0 -print("Resetting wind to 0") -wind = airsim.Vector3r(0, 0, 0) -client.simSetWind(wind) diff --git a/src/airsim/PythonClient/multirotor/setup_path.py b/src/airsim/PythonClient/multirotor/setup_path.py deleted file mode 100644 index a33b94789c..0000000000 --- a/src/airsim/PythonClient/multirotor/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = __file__ - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/multirotor/speaker.py b/src/airsim/PythonClient/multirotor/speaker.py deleted file mode 100644 index acee778942..0000000000 --- a/src/airsim/PythonClient/multirotor/speaker.py +++ /dev/null @@ -1,36 +0,0 @@ -################################################################################################### -# -# Project: Embedded Learning Library (ELL) -# File: speaker.py -# Authors: Chris Lovett -# -# Requires: Python 3.x -# -################################################################################################### - -import pyaudio - - -class Speaker: - def __init__(self): - self.output_stream = None - self.audio = pyaudio.PyAudio() - - def open(self, audio_format, num_channels, rate): - # open speakers so we can hear what it is processing... - self.output_stream = self.audio.open(format=audio_format, - channels=num_channels, - rate=rate, - output=True) - - def write(self, data): - if self.output_stream: - self.output_stream.write(data) - - def close(self): - if self.output_stream: - self.output_stream.close() - self.output_stream = None - - def is_closed(self): - return self.output_stream is None diff --git a/src/airsim/PythonClient/multirotor/stability_test.py b/src/airsim/PythonClient/multirotor/stability_test.py deleted file mode 100644 index 98d80a0e26..0000000000 --- a/src/airsim/PythonClient/multirotor/stability_test.py +++ /dev/null @@ -1,90 +0,0 @@ -import os -import setup_path -import airsim -import time -import numpy as np -import sys - -script_dir = os.path.dirname(__file__) - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) - -def play_sound(wavfile): - import speaker - import wav_reader - reader = wav_reader.WavReader() - reader.open(wavfile, 512, speaker.Speaker()) - while True: - buffer = reader.read() - if buffer is None: - break - -class Numbers: - def __init__(self, name): - self.data = [] - self.name = name - - def add(self, x): - self.data += [x] - - def is_unstable(self, amount): - a = np.array(self.data) - minimum = a.min() - maximum = a.max() - mean = np.mean(a) - stddev = np.std(a) - print("{}: min={}, max={}, mean={}, stddev={}".format(self.name, minimum, maximum, mean, stddev)) - return (maximum - minimum) > amount - -print("### TEST STARTED ###") -print("This test takes 20 minutes.") - -iteration = 0 -while iteration < 10: - iteration += 1 - x = Numbers("x") - y = Numbers("y") - z = Numbers("z") - - print("arming the drone...") - client.armDisarm(True) - - while client.getMultirotorState().landed_state == airsim.LandedState.Landed: - print("taking off...") - client.takeoffAsync().join() - time.sleep(1) - - # fly for 2 minutes - start = time.time() - while time.time() < start + 120: - state = client.getMultirotorState() - x_val = state.kinematics_estimated.position.x_val - y_val = state.kinematics_estimated.position.y_val - z_val = state.kinematics_estimated.position.z_val - x.add(x_val) - y.add(y_val) - z.add(z_val) - print("x: {}, y: {}, z: {}".format(x_val, y_val, z_val)) - time.sleep(1) - - print("landing...") - client.landAsync().join() - - print("disarming the drone...") - client.armDisarm(False) - - # more than 50 centimeter drift is unacceptable. - print("Results for iteration {}".format(iteration)) - a = x.is_unstable(0.5) - b = y.is_unstable(0.5) - c = z.is_unstable(0.5) - - if a or b or c: - play_sound(os.path.join(script_dir, "Error.wav")) - break - - time.sleep(5) - -print("### Test Passed ###") diff --git a/src/airsim/PythonClient/multirotor/state.py b/src/airsim/PythonClient/multirotor/state.py deleted file mode 100644 index 7731c2491e..0000000000 --- a/src/airsim/PythonClient/multirotor/state.py +++ /dev/null @@ -1,20 +0,0 @@ -import setup_path -import airsim -import pprint - -def print_state(): - print("===============================================================") - state = client.getMultirotorState() - print("state: %s" % pprint.pformat(state)) - return state - - -client = airsim.MultirotorClient() -state = print_state() - -if state.ready: - print("drone is ready!") -else: - print("drone is not ready!") -if state.ready_message: - print(state.ready_message) diff --git a/src/airsim/PythonClient/multirotor/survey.py b/src/airsim/PythonClient/multirotor/survey.py deleted file mode 100644 index a1746275ea..0000000000 --- a/src/airsim/PythonClient/multirotor/survey.py +++ /dev/null @@ -1,99 +0,0 @@ -import setup_path -import airsim - -import sys -import time -import argparse - -class SurveyNavigator: - def __init__(self, args): - self.boxsize = args.size - self.stripewidth = args.stripewidth - self.altitude = args.altitude - self.velocity = args.speed - self.client = airsim.MultirotorClient() - self.client.confirmConnection() - self.client.enableApiControl(True) - - def start(self): - print("arming the drone...") - self.client.armDisarm(True) - - landed = self.client.getMultirotorState().landed_state - if landed == airsim.LandedState.Landed: - print("taking off...") - self.client.takeoffAsync().join() - - landed = self.client.getMultirotorState().landed_state - if landed == airsim.LandedState.Landed: - print("takeoff failed - check Unreal message log for details") - return - - # AirSim uses NED coordinates so negative axis is up. - x = -self.boxsize - z = -self.altitude - - print("climbing to altitude: " + str(self.altitude)) - self.client.moveToPositionAsync(0, 0, z, self.velocity).join() - - print("flying to first corner of survey box") - self.client.moveToPositionAsync(x, -self.boxsize, z, self.velocity).join() - - # let it settle there a bit. - self.client.hoverAsync().join() - time.sleep(2) - - # after hovering we need to re-enabled api control for next leg of the trip - self.client.enableApiControl(True) - - # now compute the survey path required to fill the box - path = [] - distance = 0 - while x < self.boxsize: - distance += self.boxsize - path.append(airsim.Vector3r(x, self.boxsize, z)) - x += self.stripewidth - distance += self.stripewidth - path.append(airsim.Vector3r(x, self.boxsize, z)) - distance += self.boxsize - path.append(airsim.Vector3r(x, -self.boxsize, z)) - x += self.stripewidth - distance += self.stripewidth - path.append(airsim.Vector3r(x, -self.boxsize, z)) - distance += self.boxsize - - print("starting survey, estimated distance is " + str(distance)) - trip_time = distance / self.velocity - print("estimated survey time is " + str(trip_time)) - try: - result = self.client.moveOnPathAsync(path, self.velocity, trip_time, airsim.DrivetrainType.ForwardOnly, - airsim.YawMode(False,0), self.velocity + (self.velocity/2), 1).join() - except: - errorType, value, traceback = sys.exc_info() - print("moveOnPath threw exception: " + str(value)) - pass - - print("flying back home") - self.client.moveToPositionAsync(0, 0, z, self.velocity).join() - - if z < -5: - print("descending") - self.client.moveToPositionAsync(0, 0, -5, 2).join() - - print("landing...") - self.client.landAsync().join() - - print("disarming.") - self.client.armDisarm(False) - -if __name__ == "__main__": - args = sys.argv - args.pop(0) - arg_parser = argparse.ArgumentParser("Usage: survey boxsize stripewidth altitude") - arg_parser.add_argument("--size", type=float, help="size of the box to survey", default=50) - arg_parser.add_argument("--stripewidth", type=float, help="stripe width of survey (in meters)", default=10) - arg_parser.add_argument("--altitude", type=float, help="altitude of survey (in positive meters)", default=30) - arg_parser.add_argument("--speed", type=float, help="speed of survey (in meters/second)", default=5) - args = arg_parser.parse_args(args) - nav = SurveyNavigator(args) - nav.start() \ No newline at end of file diff --git a/src/airsim/PythonClient/multirotor/takeoff.py b/src/airsim/PythonClient/multirotor/takeoff.py deleted file mode 100644 index 3d16063a4a..0000000000 --- a/src/airsim/PythonClient/multirotor/takeoff.py +++ /dev/null @@ -1,48 +0,0 @@ -import setup_path -import airsim -import sys -import time - -# For high speed ascent and descent on PX4 you may need to set these properties: -# param set MPC_Z_VEL_MAX_UP 5 -# param set MPC_Z_VEL_MAX_DN 5 - -z = 5 -if len(sys.argv) > 1: - z = float(sys.argv[1]) - -client = airsim.MultirotorClient() -client.confirmConnection() -client.enableApiControl(True) - -client.armDisarm(True) - -landed = client.getMultirotorState().landed_state -if landed == airsim.LandedState.Landed: - print("taking off...") - client.takeoffAsync().join() -else: - print("already flying...") - client.hoverAsync().join() - -print("make sure we are hovering at {} meters...".format(z)) - -if z > 5: - # AirSim uses NED coordinates so negative axis is up. - # z of -50 is 50 meters above the original launch point. - client.moveToZAsync(-z, 5).join() - client.hoverAsync().join() - time.sleep(5) - -if z > 10: - print("come down quickly to 10 meters...") - z = 10 - client.moveToZAsync(-z, 3).join() - client.hoverAsync().join() - -print("landing...") -client.landAsync().join() -print("disarming...") -client.armDisarm(False) -client.enableApiControl(False) -print("done.") diff --git a/src/airsim/PythonClient/multirotor/teleport.py b/src/airsim/PythonClient/multirotor/teleport.py deleted file mode 100644 index 8d932456a0..0000000000 --- a/src/airsim/PythonClient/multirotor/teleport.py +++ /dev/null @@ -1,20 +0,0 @@ -import setup_path -import airsim -import time - -client = airsim.MultirotorClient() -client.confirmConnection() - -pose = client.simGetVehiclePose() - -# teleport the drone + 10 meters in x-direction -pose.position.x_val += 10 - -client.simSetVehiclePose(pose, True, "PX4") - -time.sleep(2) - -# teleport the drone back -pose.position.x_val -= 10 - -client.simSetVehiclePose(pose, True, "PX4") diff --git a/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py b/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py deleted file mode 100644 index e4f50bf7e4..0000000000 --- a/src/airsim/PythonClient/multirotor/vehicleframe_lidar_pointcloud.py +++ /dev/null @@ -1,93 +0,0 @@ -# Python client example to get Lidar data from a drone, although this script works for any AirSim-supported vehicle -# This script is for Lidar sensors using 'VehicleInertialFrame' as DataFrame under settings.json -# Sample settings.json used for this script: -''' -{ - "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings_json.md", - "SettingsVersion": 1.2, - - "SimMode": "Multirotor", - - "Vehicles": { - "Drone1": { - "VehicleType": "SimpleFlight", - "AutoCreate": true, - "Sensors": { - "LidarSensor1": { - "SensorType": 6, - "Enabled" : true, - "NumberOfChannels": 1, - "RotationsPerSecond": 10, - "Range":12, - "PointsPerSecond": 8000, - "X": 0, "Y": 0, "Z": -1, - "Roll": 0, "Pitch": 90, "Yaw" : 0, - "VerticalFOVUpper": 0, - "VerticalFOVLower": 0, - "HorizontalFOVStart": 0, - "HorizontalFOVEnd": 0, - "DrawDebugPoints": true, - "DataFrame": "VehicleInertialFrame" - }, - "LidarSensor2": { - "SensorType": 6, - "Enabled" : true, - "NumberOfChannels": 1, - "RotationsPerSecond": 10, - "Range":12, - "PointsPerSecond": 8000, - "X": 0, "Y": 0, "Z": -1, - "Roll": 90, "Pitch": 90, "Yaw" : 0, - "VerticalFOVUpper": 0, - "VerticalFOVLower": 0, - "HorizontalFOVStart": 0, - "HorizontalFOVEnd": 0, - "DrawDebugPoints": true, - "DataFrame": "VehicleInertialFrame" - } - } - } - } -} -''' -import setup_path -import airsim -import numpy as np - -class LidarTest: - - def __init__(self): - - # connect to the AirSim simulator - self.client = airsim.VehicleClient() - self.client.confirmConnection() - print('Connected!\n') - - def execute(self,vehicle_name,lidar_names): - print('Scanning Has Started\n') - print('Use Keyboard Interrupt \'CTRL + C\' to Stop Scanning\n') - existing_data_cleared = False #change to true to superimpose new scans onto existing .asc files - try: - while True: - for lidar_name in lidar_names: - filename = f"{vehicle_name}_{lidar_name}_pointcloud.asc" - if not existing_data_cleared: - f = open(filename,'w') - else: - f = open(filename,'a') - lidar_data = self.client.getLidarData(lidar_name=lidar_name,vehicle_name=vehicle_name) - - for i in range(0, len(lidar_data.point_cloud), 3): - xyz = lidar_data.point_cloud[i:i+3] - - f.write("%f %f %f %d %d %d \n" % (xyz[0],xyz[1],xyz[2],255,255,0)) - f.close() - existing_data_cleared = True - except KeyboardInterrupt: - airsim.wait_key('Press any key to stop running this script') - print("Done!\n") - -# main -if __name__ == "__main__": - lidarTest = LidarTest() - lidarTest.execute('Drone1',['LidarSensor1','LidarSensor2']) diff --git a/src/airsim/PythonClient/multirotor/wav_reader.py b/src/airsim/PythonClient/multirotor/wav_reader.py deleted file mode 100644 index 74e3bce185..0000000000 --- a/src/airsim/PythonClient/multirotor/wav_reader.py +++ /dev/null @@ -1,158 +0,0 @@ -################################################################################################### -# -# Project: Embedded Learning Library (ELL) -# File: wav_reader.py -# Authors: Chris Lovett -# -# Requires: Python 3.x -# -################################################################################################### -import audioop -import math -import wave - -import numpy as np -import pyaudio - - -class WavReader: - def __init__(self, sample_rate=16000, channels=1, auto_scale=True): - """ Initialize the wav reader with the type of audio you want returned. - sample_rate Rate you want audio converted to (default 16 kHz) - channels Number of channels you want output (default 1) - auto_scale Whether to scale numbers to the range -1 to 1. - """ - self.input_stream = None - self.audio = pyaudio.PyAudio() - self.wav_file = None - self.requested_channels = int(channels) - self.requested_rate = int(sample_rate) - self.buffer_size = 0 - self.sample_width = 0 - self.read_size = None - self.dtype = None - self.auto_scale = auto_scale - self.audio_scale_factor = 1 - self.tail = None - - def open(self, filename, buffer_size, speaker=None): - """ open a wav file for reading - buffersize Number of audio samples to return on each read() call - speaker Optional output speaker to send converted audio to so you can hear it. - """ - self.speaker = speaker - # open a stream on the audio input file. - self.wav_file = wave.open(filename, "rb") - self.cvstate = None - self.read_size = int(buffer_size) - self.actual_channels = self.wav_file.getnchannels() - self.actual_rate = self.wav_file.getframerate() - self.sample_width = self.wav_file.getsampwidth() - # assumes signed integer used in raw audio, so for example, the max for 16bit is 2^15 (32768) - if self.auto_scale: - self.audio_scale_factor = 1 / pow(2, (8 * self.sample_width) - 1) - - if self.requested_rate == 0: - raise Exception("Requested rate cannot be zero") - self.buffer_size = int(math.ceil((self.read_size * self.actual_rate) / self.requested_rate)) - - # convert int16 data to scaled floats - if self.sample_width == 1: - self.dtype = np.int8 - elif self.sample_width == 2: - self.dtype = np.int16 - elif self.sample_width == 4: - self.dtype = np.int32 - else: - msg = "Unexpected sample width {}, can only handle 1, 2 or 4 byte audio" - raise Exception(msg.format(self.sample_width)) - - if speaker: - # configure output stream to match what we are resampling to... - audio_format = self.audio.get_format_from_width(self.sample_width) - speaker.open(audio_format, self.requested_channels, self.requested_rate) - - def read_raw(self): - """ Reads the next chunk of audio (returns buffer_size provided to open) - It returns the raw data buffers converted to the target rate without any scaling. - """ - if self.wav_file is None: - return None - - data = self.wav_file.readframes(self.buffer_size) - if len(data) == 0: - return None - - if self.actual_rate != self.requested_rate: - # convert the audio to the desired recording rate - data, self.cvstate = audioop.ratecv(data, self.sample_width, self.actual_channels, self.actual_rate, - self.requested_rate, self.cvstate) - - return self.get_requested_channels(data) - - def get_requested_channels(self, data): - if self.requested_channels > self.actual_channels: - raise Exception("Cannot add channels, actual is {}, requested is {}".format( - self.actual_channels, self.requested_channels)) - - if self.requested_channels < self.actual_channels: - data = np.frombuffer(data, dtype=np.int16) - channels = [] - # split into separate channels - for i in range(self.actual_channels): - channels += [data[i::self.actual_channels]] - # drop the channels we don't want - channels = channels[0:self.requested_channels] - # zip the resulting channels back up. - data = np.array(list(zip(*channels))).flatten() - # convert back to packed bytes in PCM 16 format - data = bytes(np.array(data, dtype=np.int16)) - - return data - - def read(self): - """ Reads the next chunk of audio (returns buffer_size provided to open) - It returns the data converted to floating point numbers between -1 and 1, scaled by the range of - values possible for the given audio format. - """ - - # deal with any accumulation of tails, if the tail grows to a full - # buffer then return it! - if self.tail is not None and len(self.tail) >= self.read_size: - data = self.tail[0:self.read_size] - self.tail = self.tail[self.read_size:] - return data - - data = self.read_raw() - if data is None: - return None - - if self.speaker: - self.speaker.write(data) - - data = np.frombuffer(data, dtype=self.dtype).astype(float) - if self.tail is not None: - # we have a tail from previous frame, so prepend it - data = np.concatenate((self.tail, data)) - - # now the caller needs us to stick to our sample_size contract, but when - # rate conversion happens we can't be sure that 'data' is exactly that size. - if len(data) > self.read_size: - # usually one byte extra so add this to our accumulating tail - self.tail = data[self.read_size:] - data = data[0:self.read_size] - - if len(data) < self.read_size: - # might have reached the end of a file, so pad with zeros. - zeros = np.zeros(self.read_size - len(data)) - data = np.concatenate((data, zeros)) - - return data * self.audio_scale_factor - - def close(self): - if self.wav_file: - self.wav_file.close() - self.wav_file = None - - def is_closed(self): - return self.wav_file is None diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py b/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py deleted file mode 100644 index 020d393515..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/airgym/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from gym.envs.registration import register - -register( - id="airsim-drone-sample-v0", entry_point="airgym.envs:AirSimDroneEnv", -) - -register( - id="airsim-car-sample-v0", entry_point="airgym.envs:AirSimCarEnv", -) diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py deleted file mode 100644 index 9a3b34c33f..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from airgym.envs.airsim_env import AirSimEnv -from airgym.envs.car_env import AirSimCarEnv -from airgym.envs.drone_env import AirSimDroneEnv - diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py deleted file mode 100644 index 7fb4cf221c..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/airsim_env.py +++ /dev/null @@ -1,31 +0,0 @@ -import numpy as np -import airsim - -import gym -from gym import spaces - - -class AirSimEnv(gym.Env): - metadata = {"render.modes": ["rgb_array"]} - - def __init__(self, image_shape): - self.observation_space = spaces.Box(0, 255, shape=image_shape, dtype=np.uint8) - self.viewer = None - - def __del__(self): - raise NotImplementedError() - - def _get_obs(self): - raise NotImplementedError() - - def _compute_reward(self): - raise NotImplementedError() - - def close(self): - raise NotImplementedError() - - def step(self, action): - raise NotImplementedError() - - def render(self): - return self._get_obs() diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py deleted file mode 100644 index 9542fc22b3..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/car_env.py +++ /dev/null @@ -1,148 +0,0 @@ -import setup_path -import airsim -import numpy as np -import math -import time - -import gym -from gym import spaces -from airgym.envs.airsim_env import AirSimEnv - - -class AirSimCarEnv(AirSimEnv): - def __init__(self, ip_address, image_shape): - super().__init__(image_shape) - - self.image_shape = image_shape - self.start_ts = 0 - - self.state = { - "position": np.zeros(3), - "prev_position": np.zeros(3), - "pose": None, - "prev_pose": None, - "collision": False, - } - - self.car = airsim.CarClient(ip=ip_address) - self.action_space = spaces.Discrete(6) - - self.image_request = airsim.ImageRequest( - "0", airsim.ImageType.DepthPerspective, True, False - ) - - self.car_controls = airsim.CarControls() - self.car_state = None - - def _setup_car(self): - self.car.reset() - self.car.enableApiControl(True) - self.car.armDisarm(True) - time.sleep(0.01) - - def __del__(self): - self.car.reset() - - def _do_action(self, action): - self.car_controls.brake = 0 - self.car_controls.throttle = 1 - - if action == 0: - self.car_controls.throttle = 0 - self.car_controls.brake = 1 - elif action == 1: - self.car_controls.steering = 0 - elif action == 2: - self.car_controls.steering = 0.5 - elif action == 3: - self.car_controls.steering = -0.5 - elif action == 4: - self.car_controls.steering = 0.25 - else: - self.car_controls.steering = -0.25 - - self.car.setCarControls(self.car_controls) - time.sleep(1) - - def transform_obs(self, response): - img1d = np.array(response.image_data_float, dtype=np.float) - img1d = 255 / np.maximum(np.ones(img1d.size), img1d) - img2d = np.reshape(img1d, (response.height, response.width)) - - from PIL import Image - - image = Image.fromarray(img2d) - im_final = np.array(image.resize((84, 84)).convert("L")) - - return im_final.reshape([84, 84, 1]) - - def _get_obs(self): - responses = self.car.simGetImages([self.image_request]) - image = self.transform_obs(responses[0]) - - self.car_state = self.car.getCarState() - - self.state["prev_pose"] = self.state["pose"] - self.state["pose"] = self.car_state.kinematics_estimated - self.state["collision"] = self.car.simGetCollisionInfo().has_collided - - return image - - def _compute_reward(self): - MAX_SPEED = 300 - MIN_SPEED = 10 - THRESH_DIST = 3.5 - BETA = 3 - - pts = [ - np.array([x, y, 0]) - for x, y in [ - (0, -1), (130, -1), (130, 125), (0, 125), - (0, -1), (130, -1), (130, -128), (0, -128), - (0, -1), - ] - ] - car_pt = self.state["pose"].position.to_numpy_array() - - dist = 10000000 - for i in range(0, len(pts) - 1): - dist = min( - dist, - np.linalg.norm( - np.cross((car_pt - pts[i]), (car_pt - pts[i + 1])) - ) - / np.linalg.norm(pts[i] - pts[i + 1]), - ) - - # print(dist) - if dist > THRESH_DIST: - reward = -3 - else: - reward_dist = math.exp(-BETA * dist) - 0.5 - reward_speed = ( - (self.car_state.speed - MIN_SPEED) / (MAX_SPEED - MIN_SPEED) - ) - 0.5 - reward = reward_dist + reward_speed - - done = 0 - if reward < -1: - done = 1 - if self.car_controls.brake == 0: - if self.car_state.speed <= 1: - done = 1 - if self.state["collision"]: - done = 1 - - return reward, done - - def step(self, action): - self._do_action(action) - obs = self._get_obs() - reward, done = self._compute_reward() - - return obs, reward, done, self.state - - def reset(self): - self._setup_car() - self._do_action(1) - return self._get_obs() diff --git a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py b/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py deleted file mode 100644 index 5fd6a9515f..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/airgym/envs/drone_env.py +++ /dev/null @@ -1,164 +0,0 @@ -import setup_path -import airsim -import numpy as np -import math -import time -from argparse import ArgumentParser - -import gym -from gym import spaces -from airgym.envs.airsim_env import AirSimEnv - - -class AirSimDroneEnv(AirSimEnv): - def __init__(self, ip_address, step_length, image_shape): - super().__init__(image_shape) - self.step_length = step_length - self.image_shape = image_shape - - self.state = { - "position": np.zeros(3), - "collision": False, - "prev_position": np.zeros(3), - } - - self.drone = airsim.MultirotorClient(ip=ip_address) - self.action_space = spaces.Discrete(7) - self._setup_flight() - - self.image_request = airsim.ImageRequest( - 3, airsim.ImageType.DepthPerspective, True, False - ) - - def __del__(self): - self.drone.reset() - - def _setup_flight(self): - self.drone.reset() - self.drone.enableApiControl(True) - self.drone.armDisarm(True) - - # Set home position and velocity - self.drone.moveToPositionAsync(-0.55265, -31.9786, -19.0225, 10).join() - self.drone.moveByVelocityAsync(1, -0.67, -0.8, 5).join() - - def transform_obs(self, responses): - img1d = np.array(responses[0].image_data_float, dtype=np.float) - img1d = 255 / np.maximum(np.ones(img1d.size), img1d) - img2d = np.reshape(img1d, (responses[0].height, responses[0].width)) - - from PIL import Image - - image = Image.fromarray(img2d) - im_final = np.array(image.resize((84, 84)).convert("L")) - - return im_final.reshape([84, 84, 1]) - - def _get_obs(self): - responses = self.drone.simGetImages([self.image_request]) - image = self.transform_obs(responses) - self.drone_state = self.drone.getMultirotorState() - - self.state["prev_position"] = self.state["position"] - self.state["position"] = self.drone_state.kinematics_estimated.position - self.state["velocity"] = self.drone_state.kinematics_estimated.linear_velocity - - collision = self.drone.simGetCollisionInfo().has_collided - self.state["collision"] = collision - - return image - - def _do_action(self, action): - quad_offset = self.interpret_action(action) - quad_vel = self.drone.getMultirotorState().kinematics_estimated.linear_velocity - self.drone.moveByVelocityAsync( - quad_vel.x_val + quad_offset[0], - quad_vel.y_val + quad_offset[1], - quad_vel.z_val + quad_offset[2], - 5, - ).join() - - def _compute_reward(self): - thresh_dist = 7 - beta = 1 - - z = -10 - pts = [ - np.array([-0.55265, -31.9786, -19.0225]), - np.array([48.59735, -63.3286, -60.07256]), - np.array([193.5974, -55.0786, -46.32256]), - np.array([369.2474, 35.32137, -62.5725]), - np.array([541.3474, 143.6714, -32.07256]), - ] - - quad_pt = np.array( - list( - ( - self.state["position"].x_val, - self.state["position"].y_val, - self.state["position"].z_val, - ) - ) - ) - - if self.state["collision"]: - reward = -100 - else: - dist = 10000000 - for i in range(0, len(pts) - 1): - dist = min( - dist, - np.linalg.norm(np.cross((quad_pt - pts[i]), (quad_pt - pts[i + 1]))) - / np.linalg.norm(pts[i] - pts[i + 1]), - ) - - if dist > thresh_dist: - reward = -10 - else: - reward_dist = math.exp(-beta * dist) - 0.5 - reward_speed = ( - np.linalg.norm( - [ - self.state["velocity"].x_val, - self.state["velocity"].y_val, - self.state["velocity"].z_val, - ] - ) - - 0.5 - ) - reward = reward_dist + reward_speed - - done = 0 - if reward <= -10: - done = 1 - - return reward, done - - def step(self, action): - self._do_action(action) - obs = self._get_obs() - reward, done = self._compute_reward() - - return obs, reward, done, self.state - - def reset(self): - self._setup_flight() - return self._get_obs() - - def interpret_action(self, action): - if action == 0: - quad_offset = (self.step_length, 0, 0) - elif action == 1: - quad_offset = (0, self.step_length, 0) - elif action == 2: - quad_offset = (0, 0, self.step_length) - elif action == 3: - quad_offset = (-self.step_length, 0, 0) - elif action == 4: - quad_offset = (0, -self.step_length, 0) - elif action == 5: - quad_offset = (0, 0, -self.step_length) - else: - quad_offset = (0, 0, 0) - - return quad_offset diff --git a/src/airsim/PythonClient/reinforcement_learning/dqn_car.py b/src/airsim/PythonClient/reinforcement_learning/dqn_car.py deleted file mode 100644 index 49d96e515f..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/dqn_car.py +++ /dev/null @@ -1,67 +0,0 @@ -import setup_path -import gym -import airgym -import time - -from stable_baselines3 import DQN -from stable_baselines3.common.monitor import Monitor -from stable_baselines3.common.vec_env import DummyVecEnv, VecTransposeImage -from stable_baselines3.common.evaluation import evaluate_policy -from stable_baselines3.common.callbacks import EvalCallback - -# Create a DummyVecEnv for main airsim gym env -env = DummyVecEnv( - [ - lambda: Monitor( - gym.make( - "airgym:airsim-car-sample-v0", - ip_address="127.0.0.1", - image_shape=(84, 84, 1), - ) - ) - ] -) - -# Wrap env as VecTransposeImage to allow SB to handle frame observations -env = VecTransposeImage(env) - -# Initialize RL algorithm type and parameters -model = DQN( - "CnnPolicy", - env, - learning_rate=0.00025, - verbose=1, - batch_size=32, - train_freq=4, - target_update_interval=10000, - learning_starts=200000, - buffer_size=500000, - max_grad_norm=10, - exploration_fraction=0.1, - exploration_final_eps=0.01, - device="cuda", - tensorboard_log="./tb_logs/", -) - -# Create an evaluation callback with the same env, called every 10000 iterations -callbacks = [] -eval_callback = EvalCallback( - env, - callback_on_new_best=None, - n_eval_episodes=5, - best_model_save_path=".", - log_path=".", - eval_freq=10000, -) -callbacks.append(eval_callback) - -kwargs = {} -kwargs["callback"] = callbacks - -# Train for a certain number of timesteps -model.learn( - total_timesteps=5e5, tb_log_name="dqn_airsim_car_run_" + str(time.time()), **kwargs -) - -# Save policy weights -model.save("dqn_airsim_car_policy") diff --git a/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py b/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py deleted file mode 100644 index 845b396859..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/dqn_drone.py +++ /dev/null @@ -1,70 +0,0 @@ -import setup_path -import gym -import airgym -import time - -from stable_baselines3 import DQN -from stable_baselines3.common.monitor import Monitor -from stable_baselines3.common.vec_env import DummyVecEnv, VecTransposeImage -from stable_baselines3.common.evaluation import evaluate_policy -from stable_baselines3.common.callbacks import EvalCallback - -# Create a DummyVecEnv for main airsim gym env -env = DummyVecEnv( - [ - lambda: Monitor( - gym.make( - "airgym:airsim-drone-sample-v0", - ip_address="127.0.0.1", - step_length=0.25, - image_shape=(84, 84, 1), - ) - ) - ] -) - -# Wrap env as VecTransposeImage to allow SB to handle frame observations -env = VecTransposeImage(env) - -# Initialize RL algorithm type and parameters -model = DQN( - "CnnPolicy", - env, - learning_rate=0.00025, - verbose=1, - batch_size=32, - train_freq=4, - target_update_interval=10000, - learning_starts=10000, - buffer_size=500000, - max_grad_norm=10, - exploration_fraction=0.1, - exploration_final_eps=0.01, - device="cuda", - tensorboard_log="./tb_logs/", -) - -# Create an evaluation callback with the same env, called every 10000 iterations -callbacks = [] -eval_callback = EvalCallback( - env, - callback_on_new_best=None, - n_eval_episodes=5, - best_model_save_path=".", - log_path=".", - eval_freq=10000, -) -callbacks.append(eval_callback) - -kwargs = {} -kwargs["callback"] = callbacks - -# Train for a certain number of timesteps -model.learn( - total_timesteps=5e5, - tb_log_name="dqn_airsim_drone_run_" + str(time.time()), - **kwargs -) - -# Save policy weights -model.save("dqn_airsim_drone_policy") diff --git a/src/airsim/PythonClient/reinforcement_learning/setup_path.py b/src/airsim/PythonClient/reinforcement_learning/setup_path.py deleted file mode 100644 index 362113fea8..0000000000 --- a/src/airsim/PythonClient/reinforcement_learning/setup_path.py +++ /dev/null @@ -1,52 +0,0 @@ -# Import this module to automatically setup path to local airsim module -# This module first tries to see if airsim module is installed via pip -# If it does then we don't do anything else -# Else we look up grand-parent folder to see if it has airsim folder -# and if it does then we add that in sys.path - -import os,sys,inspect,logging - -#this class simply tries to see if airsim -class SetupPath: - @staticmethod - def getDirLevels(path): - path_norm = os.path.normpath(path) - return len(path_norm.split(os.sep)) - - @staticmethod - def getCurrentPath(): - cur_filepath = os.path.abspath(inspect.getfile(inspect.currentframe())) - return os.path.dirname(cur_filepath) - - @staticmethod - def getGrandParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 2: - return os.path.dirname(os.path.dirname(cur_path)) - return '' - - @staticmethod - def getParentDir(): - cur_path = SetupPath.getCurrentPath() - if SetupPath.getDirLevels(cur_path) >= 1: - return os.path.dirname(cur_path) - return '' - - @staticmethod - def addAirSimModulePath(): - # if airsim module is installed then don't do anything else - #import pkgutil - #airsim_loader = pkgutil.find_loader('airsim') - #if airsim_loader is not None: - # return - - parent = SetupPath.getParentDir() - if parent != '': - airsim_path = os.path.join(parent, 'airsim') - client_path = os.path.join(airsim_path, 'client.py') - if os.path.exists(client_path): - sys.path.insert(0, parent) - else: - logging.warning("airsim module not found in parent folder. Using installed package (pip install airsim).") - -SetupPath.addAirSimModulePath() diff --git a/src/airsim/PythonClient/requirements.txt b/src/airsim/PythonClient/requirements.txt deleted file mode 100644 index 1713d945ac..0000000000 --- a/src/airsim/PythonClient/requirements.txt +++ /dev/null @@ -1,4 +0,0 @@ -msgpack-rpc-python -numpy -pyaudio -opencv-contrib-python diff --git a/src/airsim/PythonClient/setup.py b/src/airsim/PythonClient/setup.py deleted file mode 100644 index c9d6aacdc8..0000000000 --- a/src/airsim/PythonClient/setup.py +++ /dev/null @@ -1,26 +0,0 @@ -import setuptools -from airsim import __version__ - -with open("README.md", "r") as fh: - long_description = fh.read() - -setuptools.setup( - name="airsim", - version=__version__, - author="Shital Shah", - author_email="shitals@microsoft.com", - description="Open source simulator based on Unreal Engine for autonomous vehicles from Microsoft AI & Research", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/microsoft/airsim", - packages=setuptools.find_packages(), - license='MIT', - classifiers=( - "Programming Language :: Python :: 3", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - ), - install_requires=[ - 'msgpack-rpc-python', 'numpy', 'opencv-contrib-python' - ] -) diff --git a/src/airsim/PythonClient/update_package.bat b/src/airsim/PythonClient/update_package.bat deleted file mode 100644 index 641072b11b..0000000000 --- a/src/airsim/PythonClient/update_package.bat +++ /dev/null @@ -1,8 +0,0 @@ -PAUSE Make sure to increment version in setup.py. Continue? -python setup.py sdist -twine upload --repository-url https://upload.pypi.org/legacy/ dist/* -REM pip install airsim --upgrade -REM pip show airsim - -REM pip install yolk3k -REM yolk -V airsim \ No newline at end of file diff --git a/src/drone/README.md b/src/drone/README.md deleted file mode 100644 index a977c11ab4..0000000000 --- a/src/drone/README.md +++ /dev/null @@ -1,2 +0,0 @@ -无人机 飞行器感知 - diff --git a/src/drone/main.py b/src/drone/main.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git "a/src/hello_car\346\263\250\351\207\212.py" "b/src/hello_car\346\263\250\351\207\212.py" deleted file mode 100644 index 93215ac126..0000000000 --- "a/src/hello_car\346\263\250\351\207\212.py" +++ /dev/null @@ -1,93 +0,0 @@ -import setup_path -import airsim -import cv2 -import numpy as np -import os -import time -import tempfile - -# 连接到 AirSim 模拟器 -client = airsim.CarClient() -client.confirmConnection() # 确认连接成功 -client.enableApiControl(True) # 启用 API 控制权(由代码控制车辆) -print("API Control enabled: %s" % client.isApiControlEnabled()) -car_controls = airsim.CarControls() # 创建车辆控制对象 - -# 在临时目录中保存图片 -tmp_dir = os.path.join(tempfile.gettempdir(), "airsim_car") -print ("Saving images to %s" % tmp_dir) -try: - os.makedirs(tmp_dir) # 尝试创建目录 -except OSError: - if not os.path.isdir(tmp_dir): - raise # 如果不是目录且创建失败,抛出异常 - -for idx in range(3): - # 获取车辆状态 - car_state = client.getCarState() - print("Speed %d, Gear %d" % (car_state.speed, car_state.gear)) - - # 前进(直行) - car_controls.throttle = 0.5 # 油门,范围通常 [-1,1] - car_controls.steering = 0 # 方向盘归中 - client.setCarControls(car_controls) # 发送控制指令 - print("Go Forward") - time.sleep(3) # 等待 3 秒,让车辆行驶一段时间 - - # 前进并向右转 - car_controls.throttle = 0.5 - car_controls.steering = 1 # 向右打满方向(具体取值范围视环境而定) - client.setCarControls(car_controls) - print("Go Forward, steer right") - time.sleep(3) # 等待 3 秒 - - # 倒车 - car_controls.throttle = -0.5 # 反向油门用于倒车 - car_controls.is_manual_gear = True - car_controls.manual_gear = -1 # 手动档设置到倒档 - car_controls.steering = 0 - client.setCarControls(car_controls) - print("Go reverse, steer right") - time.sleep(3) # 等待 3 秒 - # 还原变速器到自动模式 - car_controls.is_manual_gear = False - car_controls.manual_gear = 0 - - # 刹车 - car_controls.brake = 1 - client.setCarControls(car_controls) - print("Apply brakes") - time.sleep(3) # 等待 3 秒(完全刹停) - car_controls.brake = 0 # 释放刹车 - - # 从车辆摄像头获取多种类型的图像 - responses = client.simGetImages([ - airsim.ImageRequest("0", airsim.ImageType.DepthVis), # 深度可视化图像(深度伪彩) - airsim.ImageRequest("1", airsim.ImageType.DepthPerspective, True), # 透视投影的深度图(以浮点数形式返回) - airsim.ImageRequest("1", airsim.ImageType.Scene), # 场景图像(压缩的 png 格式) - airsim.ImageRequest("1", airsim.ImageType.Scene, False, False)]) # 场景图像(未压缩的 RGB 数组) - print('Retrieved images: %d' % len(responses)) - - for response_idx, response in enumerate(responses): - filename = os.path.join(tmp_dir, f"{idx}_{response.image_type}_{response_idx}") - - if response.pixels_as_float: - # 当图像以浮点数像素返回(例如透视深度)时,写入 PFM 文件 - 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 压缩格式 - # 当图像数据为压缩的二进制(如 PNG)时,直接写入文件 - 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: # 未压缩的原始数组(RGB) - # 将字节数组转换为 numpy 数组并 reshape 成 H x W x 3,然后用 OpenCV 保存 - print("Type %d, size %d" % (response.image_type, len(response.image_data_uint8))) - img1d = np.fromstring(response.image_data_uint8, dtype=np.uint8) # 将字节流转成 numpy 一维数组 - img_rgb = img1d.reshape(response.height, response.width, 3) # 重构为 HxWx3 的 RGB 图像 - cv2.imwrite(os.path.normpath(filename + '.png'), img_rgb) # 保存为 PNG 文件 - -# 恢复到初始状态(重置模拟器) -client.reset() - -# 释放 API 控制权,由用户/手动控制接管 -client.enableApiControl(False) \ No newline at end of file From 5fdbb2dd14c15ff411159d5941063a48e1aa61a7 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 27 Oct 2025 23:01:27 +0800 Subject: [PATCH 08/26] 1 --- src/airsim_control/README.md.txt | 1 + src/airsim_control/requirments.txt | 2 -- 2 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 src/airsim_control/README.md.txt delete mode 100644 src/airsim_control/requirments.txt diff --git a/src/airsim_control/README.md.txt b/src/airsim_control/README.md.txt new file mode 100644 index 0000000000..4e68408f4e --- /dev/null +++ b/src/airsim_control/README.md.txt @@ -0,0 +1 @@ +pip install airsim \ No newline at end of file diff --git a/src/airsim_control/requirments.txt b/src/airsim_control/requirments.txt deleted file mode 100644 index 795615d850..0000000000 --- a/src/airsim_control/requirments.txt +++ /dev/null @@ -1,2 +0,0 @@ -sys -airsim \ No newline at end of file From 947014ba565774d0515e724d3570d11f06269560 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Tue, 28 Oct 2025 23:54:07 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E6=8C=89=E8=A6=81=E6=B1=82=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/{README.md.txt => README.txt} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/airsim_control/{README.md.txt => README.txt} (100%) diff --git a/src/airsim_control/README.md.txt b/src/airsim_control/README.txt similarity index 100% rename from src/airsim_control/README.md.txt rename to src/airsim_control/README.txt From 18da3c757c0252b1289726a0fc4231a73f481e9f Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Sun, 2 Nov 2025 21:43:49 +0800 Subject: [PATCH 10/26] =?UTF-8?q?=E6=8C=89=E8=A6=81=E6=B1=82=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/{README.txt => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/airsim_control/{README.txt => README.md} (100%) diff --git a/src/airsim_control/README.txt b/src/airsim_control/README.md similarity index 100% rename from src/airsim_control/README.txt rename to src/airsim_control/README.md From 23c53d8a0a8dcd574e5b0e7cd46ea99450e9cd30 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Sun, 2 Nov 2025 22:11:03 +0800 Subject: [PATCH 11/26] Update README.md --- src/drone/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/drone/README.md b/src/drone/README.md index 44ed492a75..a977c11ab4 100644 --- a/src/drone/README.md +++ b/src/drone/README.md @@ -1 +1,2 @@ -无人机 \ No newline at end of file +无人机 飞行器感知 + From 1409c659d20b93798f9f2c2d55aa631b2b1c081b Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 3 Nov 2025 10:45:24 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=97=A0=E4=BA=BA?= =?UTF-8?q?=E6=9C=BA=E5=AE=9A=E7=82=B9=E9=A3=9E=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/test_multirotor.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 src/airsim_control/test_multirotor.py diff --git a/src/airsim_control/test_multirotor.py b/src/airsim_control/test_multirotor.py new file mode 100644 index 0000000000..ef0b2ada51 --- /dev/null +++ b/src/airsim_control/test_multirotor.py @@ -0,0 +1,14 @@ +import airsim, time +wps = [(0,0,-5),(5,0,-5),(5,5,-5),(0,5,-5),(0,0,-5)] +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True) +client.armDisarm(True) +client.takeoffAsync().join() +for x,y,z in wps: + client.moveToPositionAsync(float(x),float(y),float(z),5).join() + time.sleep(0.5) +client.moveToPositionAsync(0,0,-2,3).join() +client.landAsync().join() +client.armDisarm(False) +client.enableApiControl(False) \ No newline at end of file From ff2f144524f5a90975a3f793e07980056514edca Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 17 Nov 2025 12:26:37 +0800 Subject: [PATCH 13/26] =?UTF-8?q?=E9=85=8D=E7=BD=AEsetitngs=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=89=93=E5=BC=80=E6=BF=80=E5=85=89=E9=9B=B7=E8=BE=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/drone_lidar_test.py | 46 ++++++++++++++++++++++++++ src/airsim_control/settings.json | 30 +++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 src/airsim_control/drone_lidar_test.py create mode 100644 src/airsim_control/settings.json diff --git a/src/airsim_control/drone_lidar_test.py b/src/airsim_control/drone_lidar_test.py new file mode 100644 index 0000000000..a9259f9cb4 --- /dev/null +++ b/src/airsim_control/drone_lidar_test.py @@ -0,0 +1,46 @@ +import airsim +import time + +# --- 与 settings.json 匹配 --- +VEHICLE_NAME = "Drone_1" +LIDAR_NAME = "lidar_1" +# ----------------------------------- + +client = airsim.MultirotorClient() +client.confirmConnection() +# API控制为 True 才能获取传感器数据 +client.enableApiControl(True, vehicle_name=VEHICLE_NAME) + +print(f"Connected. Testing Lidar '{LIDAR_NAME}' on vehicle '{VEHICLE_NAME}'...") +print("Please check the UE simulation window for RED debug points.") + +try: + for i in range(10): + # 须同时指定 lidar_name 和 vehicle_name + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + + if lidar_data and lidar_data.point_cloud: + num_points = len(lidar_data.point_cloud) // 3 + print(f" > OK! Reading {i + 1}/10: Found {num_points} points.") + + # 打印第一个探测到的点 + # point_cloud 是一个扁平的 [x1, y1, z1, x2, y2, z2, ...] 列表 + first_point = lidar_data.point_cloud[0:3] + print(f" - First point (relative to Lidar): " + f"X={first_point[0]:.2f}, Y={first_point[1]:.2f}, Z={first_point[2]:.2f}") + + elif lidar_data and not lidar_data.point_cloud: + print(f" > Lidar '{LIDAR_NAME}' is working, but detected 0 points.") + + else: + print(f" > FAILED to get Lidar data. Check names and restart UE.") + break # 退出循环 + + time.sleep(1.0) + +except Exception as e: + print(f"An error occurred: {e}") + +finally: + client.enableApiControl(False, vehicle_name=VEHICLE_NAME) + print("Test complete.") \ No newline at end of file diff --git a/src/airsim_control/settings.json b/src/airsim_control/settings.json new file mode 100644 index 0000000000..809d21fe62 --- /dev/null +++ b/src/airsim_control/settings.json @@ -0,0 +1,30 @@ +{ + "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md", + "SettingsVersion": 1.2, + "SimMode": "Multirotor", + "Vehicles": { + "Drone_1": { + "VehicleType": "SimpleFlight", + "X": 0, + "Y": 0, + "Z": 0, + "Sensors": { + "lidar_1": { + "SensorType": 6, + "Enabled": true, + "Range": 100, + "NumberOfChannels": 16, + "PointsPerSecond": 50000, + "VerticalFOVUpper": 10, + "VerticalFOVLower": -15, + "HorizontalFOVStart": -90, + "HorizontalFOVEnd": 90, + "X": 0, + "Y": 0, + "Z": -0.1, + "DrawDebugPoints": true + } + } + } + } +} \ No newline at end of file From fefa493c5a2ae0675366f0cc52c8a865885cac6d Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 24 Nov 2025 10:09:03 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E6=BF=80=E5=85=89=E9=9B=B7=E8=BE=BE?= =?UTF-8?q?=E9=81=BF=E9=9A=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/README.md | 23 ++- .../Radar_obstacle_avoidance.py | 135 ++++++++++++++++++ 2 files changed, 157 insertions(+), 1 deletion(-) create mode 100644 src/airsim_control/Radar_obstacle_avoidance.py diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index 4e68408f4e..b1c16303ed 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -1 +1,22 @@ -pip install airsim \ No newline at end of file +运行方式: + +修改settings配置文件 + +先打开虚拟引擎启动airsim + +再运行相关代码 + + +无人机操控方式: + +WASD分别控制前后左右移动 + +上下方向键控制起飞和下降 + + +相关库依赖 + +pip install airsim + +pip install keyboard + diff --git a/src/airsim_control/Radar_obstacle_avoidance.py b/src/airsim_control/Radar_obstacle_avoidance.py new file mode 100644 index 0000000000..ffc483b00a --- /dev/null +++ b/src/airsim_control/Radar_obstacle_avoidance.py @@ -0,0 +1,135 @@ +import airsim +import numpy as np +import keyboard +import time + +# --- 配置 --- +VEHICLE_NAME = "Drone_1" +LIDAR_NAME = "lidar_1" +H_SPEED = 3.0 +V_SPEED = 2.0 +MIN_DIST = 3.5 # 避障距离 + + +def print_red(text): print(f"\033[91m{text}\033[0m") + + +# --- 连接 --- +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True, vehicle_name=VEHICLE_NAME) +client.armDisarm(True, vehicle_name=VEHICLE_NAME) +client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() +client.moveToPositionAsync(0, 0, -2, 3, vehicle_name=VEHICLE_NAME).join() + +print("\n=== 避障系统启动 ===") + +def analyze_lidar(client): + """ + 分析雷达数据 + 返回: + 1. blocked (方向封锁状态 dict) + 2. front_dist (正前方墙壁的精确距离,如果没有则为 999) + """ + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + blocked = {'front': False, 'back': False, 'left': False, 'right': False} + front_dist = 999.0 + + if not lidar_data or len(lidar_data.point_cloud) < 3: + return blocked, front_dist + + points = np.array(lidar_data.point_cloud, dtype=np.float32) + points = np.reshape(points, (int(points.shape[0] / 3), 3)) + + # --- 1. 核心过滤:只看无人机高度范围内的点 --- + # Z轴过滤:保留上下 1.5米 范围内的点 (过滤掉地面) + z_mask = (points[:, 2] > -1.5) & (points[:, 2] < 1.5) + valid_points = points[z_mask] + + if len(valid_points) == 0: + return blocked, front_dist + + # --- 2. 计算正前方距离 (调试用) --- + # 定义正前方:X > 0 且 |Y| < 1.0 (只看正中间 2米宽的走廊) + front_corridor_mask = (valid_points[:, 0] > 0) & (np.abs(valid_points[:, 1]) < 1.0) + front_objs = valid_points[front_corridor_mask] + + if len(front_objs) > 0: + # 在正前方走廊里,找 X 最小的值 + front_dist = np.min(front_objs[:, 0]) + + # --- 3. 避障判定 (控制用) --- + # 使用平面距离平方来判定 + dist_sq = valid_points[:, 0] ** 2 + valid_points[:, 1] ** 2 + danger_mask = dist_sq < (MIN_DIST ** 2) + danger_points = valid_points[danger_mask] + + # 判定方位 + width_threshold = 2.0 # 判定宽度 + for p in danger_points: + x, y = p[0], p[1] + if x > 0.5 and abs(y) < width_threshold: + blocked['front'] = True + elif x < -0.5 and abs(y) < width_threshold: + blocked['back'] = True + elif y < -0.5 and abs(x) < width_threshold: + blocked['left'] = True + elif y > 0.5 and abs(x) < width_threshold: + blocked['right'] = True + + return blocked, front_dist + + +try: + last_print = time.time() + while True: + # 获取分析结果 + is_blocked, front_wall_dist = analyze_lidar(client) + + # 实时打印前方距离 (每0.2秒刷新一次) + if time.time() - last_print > 0.2: + dist_str = f"{front_wall_dist:.2f}m" if front_wall_dist < 999 else "安全" + # 这里的 \r 保证在同一行刷新 + print( + f"\r[雷达监测] 正前方墙壁距离: {dist_str} | 状态: {'🛑阻挡' if is_blocked['front'] else '✅通行'} ", + end="", flush=True) + last_print = time.time() + + # 读取键盘 + vx, vy, vz = 0.0, 0.0, 0.0 + if keyboard.is_pressed('w'): vx = H_SPEED + if keyboard.is_pressed('s'): vx = -H_SPEED + if keyboard.is_pressed('a'): vy = -H_SPEED + if keyboard.is_pressed('d'): vy = H_SPEED + if keyboard.is_pressed('up'): vz = -V_SPEED + if keyboard.is_pressed('down'): vz = V_SPEED + if keyboard.is_pressed('space'): vx, vy, vz = 0.0, 0.0, 0.0 + if keyboard.is_pressed('esc'): break + + # 避障介入 + intervention = False + if vx > 0 and is_blocked['front']: vx = 0.0; intervention = True + if vx < 0 and is_blocked['back']: vx = 0.0; intervention = True + if vy < 0 and is_blocked['left']: vy = 0.0; intervention = True + if vy > 0 and is_blocked['right']: vy = 0.0; intervention = True + + if intervention: + # 如果触发避障,强制刷新一行红字,防止被 \r 覆盖看不清 + print(f"\n\033[91m🛑 [避障系统] 强制刹车! 前方距离: {front_wall_dist:.2f}m\033[0m") + last_print = time.time() # 重置打印时间 + + # 执行指令 + client.moveByVelocityAsync( + vx=float(vx), vy=float(vy), vz=float(vz), duration=0.1, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=False, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME + ).join() + +except KeyboardInterrupt: + pass +finally: + print("\n降落...") + client.landAsync(vehicle_name=VEHICLE_NAME).join() + client.armDisarm(False, vehicle_name=VEHICLE_NAME) + client.enableApiControl(False, vehicle_name=VEHICLE_NAME) \ No newline at end of file From c6240b5203b7496837ff706fc901b26ebe68364b Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 24 Nov 2025 10:14:58 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E6=9B=B4=E6=96=B0settings=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/settings.json | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/airsim_control/settings.json b/src/airsim_control/settings.json index 809d21fe62..f1cd4db24d 100644 --- a/src/airsim_control/settings.json +++ b/src/airsim_control/settings.json @@ -5,24 +5,22 @@ "Vehicles": { "Drone_1": { "VehicleType": "SimpleFlight", - "X": 0, - "Y": 0, - "Z": 0, + "X": 0, "Y": 0, "Z": 0, "Sensors": { "lidar_1": { "SensorType": 6, "Enabled": true, "Range": 100, - "NumberOfChannels": 16, - "PointsPerSecond": 50000, - "VerticalFOVUpper": 10, - "VerticalFOVLower": -15, + "NumberOfChannels": 32, + "PointsPerSecond": 100000, + "RotationsPerSecond": 10, + "VerticalFOVUpper": 20, + "VerticalFOVLower": -45, "HorizontalFOVStart": -90, "HorizontalFOVEnd": 90, - "X": 0, - "Y": 0, - "Z": -0.1, - "DrawDebugPoints": true + "X": 0, "Y": 0, "Z": -1.0, + "DrawDebugPoints": true, + "DataFrame": "SensorLocalFrame" } } } From 08ade55f6b75f5a9f2ef2d48bb990709a032dbaf Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 24 Nov 2025 12:25:22 +0800 Subject: [PATCH 16/26] Update README.md --- src/airsim_control/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index b1c16303ed..591c01eb5e 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -2,11 +2,12 @@ 修改settings配置文件 -先打开虚拟引擎启动airsim +先打开虚拟引擎启动airsim 再运行相关代码 + 无人机操控方式: WASD分别控制前后左右移动 @@ -14,6 +15,7 @@ WASD分别控制前后左右移动 上下方向键控制起飞和下降 + 相关库依赖 pip install airsim From 25ad07b401b8d18e409f8ba22f2e5b727b58a8c4 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 24 Nov 2025 22:47:23 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E8=A7=84=E8=8C=83readme=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/README.md | 38 ++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index 591c01eb5e..1c36632fab 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -1,24 +1,46 @@ -运行方式: +\# 激光雷达避障 -修改settings配置文件 -先打开虚拟引擎启动airsim -再运行相关代码 +\## 运行方式 -无人机操控方式: +1\. 修改 `settings` 配置文件。 -WASD分别控制前后左右移动 +2\. 启动虚拟引擎并运行 AirSim。 -上下方向键控制起飞和下降 +3\. 运行相关代码。 -相关库依赖 +\## 无人机操控方式 + + + +\- `W`:前进 + +\- `S`:后退 + +\- `A`:向左移动 + +\- `D`:向右移动 + +\- `↑`:起飞 + +\- `↓`:下降 + + + +\## 相关库依赖 + + + +```bash pip install airsim pip install keyboard + + From 78412a94b042424c42b1956f2a844202d79d9011 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Tue, 25 Nov 2025 10:49:02 +0800 Subject: [PATCH 18/26] Update Radar_obstacle_avoidance.py --- .../Radar_obstacle_avoidance.py | 87 +++++++++++-------- 1 file changed, 51 insertions(+), 36 deletions(-) diff --git a/src/airsim_control/Radar_obstacle_avoidance.py b/src/airsim_control/Radar_obstacle_avoidance.py index ffc483b00a..73326ef076 100644 --- a/src/airsim_control/Radar_obstacle_avoidance.py +++ b/src/airsim_control/Radar_obstacle_avoidance.py @@ -6,15 +6,18 @@ # --- 配置 --- VEHICLE_NAME = "Drone_1" LIDAR_NAME = "lidar_1" -H_SPEED = 3.0 -V_SPEED = 2.0 + +# 速度设置 +H_SPEED = 3.0 # 水平移动速度 (m/s) +V_SPEED = 2.0 # 垂直升降速度 (m/s) +YAW_SPEED = 40.0 # 旋转速度 (度/秒) MIN_DIST = 3.5 # 避障距离 def print_red(text): print(f"\033[91m{text}\033[0m") -# --- 连接 --- +# --- 连接与起飞 --- client = airsim.MultirotorClient() client.confirmConnection() client.enableApiControl(True, vehicle_name=VEHICLE_NAME) @@ -23,14 +26,16 @@ def print_red(text): print(f"\033[91m{text}\033[0m") client.moveToPositionAsync(0, 0, -2, 3, vehicle_name=VEHICLE_NAME).join() print("\n=== 避障系统启动 ===") +print(" 控制键位:") +print(" [W/S] 前进/后退") +print(" [A/D] 向左/向右 (平移)") +print(" [Q/E] 左转/右转 (旋转机头) ") +print(" [↑/↓] 上升/下降") +print(" [Space] 悬停") + def analyze_lidar(client): - """ - 分析雷达数据 - 返回: - 1. blocked (方向封锁状态 dict) - 2. front_dist (正前方墙壁的精确距离,如果没有则为 999) - """ + """雷达避障分析 (保持之前的逻辑)""" lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) blocked = {'front': False, 'back': False, 'left': False, 'right': False} front_dist = 999.0 @@ -41,31 +46,24 @@ def analyze_lidar(client): points = np.array(lidar_data.point_cloud, dtype=np.float32) points = np.reshape(points, (int(points.shape[0] / 3), 3)) - # --- 1. 核心过滤:只看无人机高度范围内的点 --- - # Z轴过滤:保留上下 1.5米 范围内的点 (过滤掉地面) + # Z轴过滤 (保留上下1.5m范围) z_mask = (points[:, 2] > -1.5) & (points[:, 2] < 1.5) valid_points = points[z_mask] - if len(valid_points) == 0: - return blocked, front_dist + if len(valid_points) == 0: return blocked, front_dist - # --- 2. 计算正前方距离 (调试用) --- - # 定义正前方:X > 0 且 |Y| < 1.0 (只看正中间 2米宽的走廊) + # 计算正前方距离 front_corridor_mask = (valid_points[:, 0] > 0) & (np.abs(valid_points[:, 1]) < 1.0) front_objs = valid_points[front_corridor_mask] - if len(front_objs) > 0: - # 在正前方走廊里,找 X 最小的值 front_dist = np.min(front_objs[:, 0]) - # --- 3. 避障判定 (控制用) --- - # 使用平面距离平方来判定 + # 避障判定 dist_sq = valid_points[:, 0] ** 2 + valid_points[:, 1] ** 2 danger_mask = dist_sq < (MIN_DIST ** 2) danger_points = valid_points[danger_mask] - # 判定方位 - width_threshold = 2.0 # 判定宽度 + width_threshold = 2.0 for p in danger_points: x, y = p[0], p[1] if x > 0.5 and abs(y) < width_threshold: @@ -83,30 +81,42 @@ def analyze_lidar(client): try: last_print = time.time() while True: - # 获取分析结果 + # 1. 获取避障状态 is_blocked, front_wall_dist = analyze_lidar(client) - # 实时打印前方距离 (每0.2秒刷新一次) + # 2. 打印状态 if time.time() - last_print > 0.2: dist_str = f"{front_wall_dist:.2f}m" if front_wall_dist < 999 else "安全" - # 这里的 \r 保证在同一行刷新 - print( - f"\r[雷达监测] 正前方墙壁距离: {dist_str} | 状态: {'🛑阻挡' if is_blocked['front'] else '✅通行'} ", - end="", flush=True) + print(f"\r[雷达] 前方距离: {dist_str} | 阻挡: {'🛑' if is_blocked['front'] else '✅'} ", end="", + flush=True) last_print = time.time() - # 读取键盘 + # 3. 初始化速度 vx, vy, vz = 0.0, 0.0, 0.0 + yaw_rate = 0.0 # 初始化旋转速度 + + # 4. 读取键盘输入 + # --- 移动 --- if keyboard.is_pressed('w'): vx = H_SPEED if keyboard.is_pressed('s'): vx = -H_SPEED if keyboard.is_pressed('a'): vy = -H_SPEED if keyboard.is_pressed('d'): vy = H_SPEED + + # --- 升降 --- if keyboard.is_pressed('up'): vz = -V_SPEED if keyboard.is_pressed('down'): vz = V_SPEED - if keyboard.is_pressed('space'): vx, vy, vz = 0.0, 0.0, 0.0 + + # --- 旋转 (新增逻辑) --- + if keyboard.is_pressed('q'): yaw_rate = -YAW_SPEED # 左转 (逆时针) + if keyboard.is_pressed('e'): yaw_rate = YAW_SPEED # 右转 (顺时针) + + # --- 刹车 --- + if keyboard.is_pressed('space'): + vx, vy, vz, yaw_rate = 0.0, 0.0, 0.0, 0.0 + if keyboard.is_pressed('esc'): break - # 避障介入 + # 5. 避障介入 (强制刹车) intervention = False if vx > 0 and is_blocked['front']: vx = 0.0; intervention = True if vx < 0 and is_blocked['back']: vx = 0.0; intervention = True @@ -114,15 +124,20 @@ def analyze_lidar(client): if vy > 0 and is_blocked['right']: vy = 0.0; intervention = True if intervention: - # 如果触发避障,强制刷新一行红字,防止被 \r 覆盖看不清 - print(f"\n\033[91m🛑 [避障系统] 强制刹车! 前方距离: {front_wall_dist:.2f}m\033[0m") - last_print = time.time() # 重置打印时间 + print(f"\n\033[91m🛑 [避障] 强制刹车! 距离: {front_wall_dist:.2f}m\033[0m") + last_print = time.time() - # 执行指令 + # 6. 发送指令 (关键修改) client.moveByVelocityAsync( - vx=float(vx), vy=float(vy), vz=float(vz), duration=0.1, + vx=float(vx), + vy=float(vy), + vz=float(vz), + duration=0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, - yaw_mode=airsim.YawMode(is_rate=False, yaw_or_rate=0), + # --- 这里修改了 YawMode --- + # is_rate=True 表示我们要控制旋转的“速度” + # yaw_or_rate=yaw_rate 就是我们设置的度数/秒 + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=float(yaw_rate)), vehicle_name=VEHICLE_NAME ).join() From 547acdce04ca1918bfff2c056d033875ed408676 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 1 Dec 2025 09:33:01 +0800 Subject: [PATCH 19/26] =?UTF-8?q?=E6=B7=BB=E5=8A=A03D=E7=82=B9=E4=BA=91?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/3D_point_cloud.py | 122 +++++++++++++++++++++++++++ src/airsim_control/README.md | 75 +++++++++++----- 2 files changed, 177 insertions(+), 20 deletions(-) create mode 100644 src/airsim_control/3D_point_cloud.py diff --git a/src/airsim_control/3D_point_cloud.py b/src/airsim_control/3D_point_cloud.py new file mode 100644 index 0000000000..1ce8783765 --- /dev/null +++ b/src/airsim_control/3D_point_cloud.py @@ -0,0 +1,122 @@ +import airsim +import numpy as np +import keyboard +import time +import os + +# --- 配置 --- +VEHICLE_NAME = "Drone_1" +LIDAR_NAME = "lidar_1" +H_SPEED = 2.0 # 水平移动速度 +V_SPEED = 1.0 # 垂直移动速度 +YAW_SPEED = 30.0 # 旋转速度 + +# ---设置绝对路径--- +OUTPUT_FILE = r"D:\Others\map_output.asc" + +# --- 检查目录是否存在 --- +output_dir = os.path.dirname(OUTPUT_FILE) +if not os.path.exists(output_dir): + print(f"错误: 找不到文件夹 '{output_dir}'") + print("请先手动创建这个文件夹,或者修改代码中的保存路径。") + exit() + + +#数学工具:四元数转旋转矩阵 +def get_rotation_matrix(q): + w, x, y, z = q.w_val, q.x_val, q.y_val, q.z_val + return np.array([ + [1 - 2 * y * y - 2 * z * z, 2 * x * y - 2 * z * w, 2 * x * z + 2 * y * w], + [2 * x * y + 2 * z * w, 1 - 2 * x * x - 2 * z * z, 2 * y * z - 2 * x * w], + [2 * x * z - 2 * y * w, 2 * y * z + 2 * x * w, 1 - 2 * x * x - 2 * y * y] + ]) + + +# 初始化 +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True, vehicle_name=VEHICLE_NAME) +client.armDisarm(True, vehicle_name=VEHICLE_NAME) +client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() +client.moveToPositionAsync(0, 0, -2, 3, vehicle_name=VEHICLE_NAME).join() + +print("=== 3D 扫描模式启动 ===") +print("🎮 控制键位: [WASD]移动 [QE]旋转 [↑↓]升降") +print(f"📁 数据将保存到: {OUTPUT_FILE}") + +# 清空旧文件 +with open(OUTPUT_FILE, "w") as f: + f.write("") + +try: + total_points_captured = 0 + last_save_time = time.time() + points_buffer = [] + + while True: + # 1. 获取位姿 + state = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME) + pos = state.position + orientation = state.orientation + + # 2. 获取雷达数据 + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + + if lidar_data and len(lidar_data.point_cloud) >= 3: + raw_points = np.array(lidar_data.point_cloud, dtype=np.float32) + local_points = np.reshape(raw_points, (int(raw_points.shape[0] / 3), 3)) + + # --- 坐标转换 --- + R = get_rotation_matrix(orientation) + rotated_points = np.dot(local_points, R.T) + t_vec = np.array([pos.x_val, pos.y_val, pos.z_val]) + global_points = rotated_points + t_vec + + points_buffer.extend(global_points) + total_points_captured += len(global_points) + + # 3. 写入文件 + if time.time() - last_save_time > 0.5: + if points_buffer: + with open(OUTPUT_FILE, "a") as f: + for p in points_buffer: + f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") + + print(f"\r[扫描中] 已采集点数: {total_points_captured} | 写入 D:\\Others...", end="") + points_buffer = [] + last_save_time = time.time() + + # 4. 飞行控制 + vx, vy, vz = 0.0, 0.0, 0.0 + yaw_rate = 0.0 + + if keyboard.is_pressed('w'): vx = H_SPEED + if keyboard.is_pressed('s'): vx = -H_SPEED + if keyboard.is_pressed('a'): vy = -H_SPEED + if keyboard.is_pressed('d'): vy = H_SPEED + + if keyboard.is_pressed('up'): vz = -V_SPEED + if keyboard.is_pressed('down'): vz = V_SPEED + + if keyboard.is_pressed('q'): yaw_rate = -YAW_SPEED + if keyboard.is_pressed('e'): yaw_rate = YAW_SPEED + + if keyboard.is_pressed('esc'): break + + client.moveByVelocityAsync( + vx, vy, vz, 0.1, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=float(yaw_rate)), + vehicle_name=VEHICLE_NAME + ).join() + +except KeyboardInterrupt: + pass +finally: + if points_buffer: + with open(OUTPUT_FILE, "a") as f: + for p in points_buffer: + f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") + + print(f"\n扫描结束!文件已保存至: {OUTPUT_FILE}") + client.reset() \ No newline at end of file diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index 1c36632fab..29baf69f8c 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -1,46 +1,81 @@ -\# 激光雷达避障 +# 🚁 AirSim 无人机激光雷达系统:避障与 3D 扫描 +> 基于 Microsoft AirSim API 实现的无人机自动避障控制与环境 3D 点云扫描系统。 +## 📖 项目简介 -\## 运行方式 - - - -1\. 修改 `settings` 配置文件。 - -2\. 启动虚拟引擎并运行 AirSim。 +本项目利用 Python API 与 Microsoft AirSim 仿真环境交互,通过搭载的 32 线激光雷达(Lidar)获取环境深度数据。主要功能包括: +* **实时障碍物检测**:分析雷达回波数据,判断前方障碍。 +* **3D 环境扫描**:获取并在本地保存环境的点云数据。 +* **辅助飞行控制**:结合键盘控制与自动避障逻辑,实现安全的仿真飞行。 -3\. 运行相关代码。 -\## 无人机操控方式 +## 📦 环境依赖 (Dependencies) +在运行代码之前,请确保已安装以下 Python 库: +```bash +pip install airsim numpy keyboard -\- `W`:前进 -\- `S`:后退 -\- `A`:向左移动 -\- `D`:向右移动 -\- `↑`:起飞 +\## 运行方式 -\- `↓`:下降 +1\. 修改 `settings` 配置文件。 +为了确保雷达不被机身遮挡并获得最佳扫描效果,请务必使用以下配置覆盖你的 文档\AirSim\settings.json 文件: +{ + "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md", + "SettingsVersion": 1.2, + "SimMode": "Multirotor", + "Vehicles": { + "Drone_1": { + "VehicleType": "SimpleFlight", + "X": 0, "Y": 0, "Z": 0, + "Sensors": { + "lidar_1": { + "SensorType": 6, + "Enabled": true, + "Range": 100, + "NumberOfChannels": 32, + "PointsPerSecond": 100000, + "RotationsPerSecond": 10, + "VerticalFOVUpper": 20, + "VerticalFOVLower": -45, + "HorizontalFOVStart": -90, + "HorizontalFOVEnd": 90, + "X": 0, "Y": 0, "Z": -1.0, + "DrawDebugPoints": true, + "DataFrame": "SensorLocalFrame" + } + } + } + } +} +2\. 启动虚拟引擎并运行 AirSim。 +3\. 运行相关代码。 -\## 相关库依赖 +\## 无人机操控方式 -```bash -pip install airsim -pip install keyboard +按键 功能 说明 +W 前进 向机头方向水平移动 +S 后退 向后方水平移动 +A 向左 向左侧平移 (不改变朝向) +D 向右 向右侧平移 (不改变朝向) +Q 左转 原地逆时针旋转机头 +E 右转 原地顺时针旋转机头 +↑ (上箭头) 上升 垂直向上飞行 +↓ (下箭头) 下降 垂直向下飞行 +空格 急刹 悬停,停止所有移动 From d362e4826c1c3befcaf1b9a7830bc14d1f213cc2 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 1 Dec 2025 11:22:05 +0800 Subject: [PATCH 20/26] Update 3D_point_cloud.py --- src/airsim_control/3D_point_cloud.py | 113 ++++++++++++++++----------- 1 file changed, 67 insertions(+), 46 deletions(-) diff --git a/src/airsim_control/3D_point_cloud.py b/src/airsim_control/3D_point_cloud.py index 1ce8783765..f337b816dd 100644 --- a/src/airsim_control/3D_point_cloud.py +++ b/src/airsim_control/3D_point_cloud.py @@ -11,18 +11,17 @@ V_SPEED = 1.0 # 垂直移动速度 YAW_SPEED = 30.0 # 旋转速度 -# ---设置绝对路径--- +# 保存路径 OUTPUT_FILE = r"D:\Others\map_output.asc" -# --- 检查目录是否存在 --- +# 检查目录 output_dir = os.path.dirname(OUTPUT_FILE) if not os.path.exists(output_dir): - print(f"错误: 找不到文件夹 '{output_dir}'") - print("请先手动创建这个文件夹,或者修改代码中的保存路径。") + print(f"错误: 找不到文件夹 '{output_dir}',请先创建。") exit() -#数学工具:四元数转旋转矩阵 +# --- 数学工具 --- def get_rotation_matrix(q): w, x, y, z = q.w_val, q.x_val, q.y_val, q.z_val return np.array([ @@ -32,7 +31,7 @@ def get_rotation_matrix(q): ]) -# 初始化 +# --- 初始化 --- client = airsim.MultirotorClient() client.confirmConnection() client.enableApiControl(True, vehicle_name=VEHICLE_NAME) @@ -40,11 +39,12 @@ def get_rotation_matrix(q): client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() client.moveToPositionAsync(0, 0, -2, 3, vehicle_name=VEHICLE_NAME).join() -print("=== 3D 扫描模式启动 ===") -print("🎮 控制键位: [WASD]移动 [QE]旋转 [↑↓]升降") -print(f"📁 数据将保存到: {OUTPUT_FILE}") +print("\n3D 扫描系统 手动控制版 ") +print("飞行控制: [WASD]移动 [QE]旋转 [↑↓]升降") +print("扫描开关: 按 [R] 键开启/停止录制") +print(f"文件路径: {OUTPUT_FILE}") -# 清空旧文件 +# 清空/初始化文件 with open(OUTPUT_FILE, "w") as f: f.write("") @@ -53,42 +53,60 @@ def get_rotation_matrix(q): last_save_time = time.time() points_buffer = [] + # --- 新增:扫描状态标记 --- + is_scanning = False + while True: - # 1. 获取位姿 - state = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME) - pos = state.position - orientation = state.orientation - - # 2. 获取雷达数据 - lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) - - if lidar_data and len(lidar_data.point_cloud) >= 3: - raw_points = np.array(lidar_data.point_cloud, dtype=np.float32) - local_points = np.reshape(raw_points, (int(raw_points.shape[0] / 3), 3)) - - # --- 坐标转换 --- - R = get_rotation_matrix(orientation) - rotated_points = np.dot(local_points, R.T) - t_vec = np.array([pos.x_val, pos.y_val, pos.z_val]) - global_points = rotated_points + t_vec - - points_buffer.extend(global_points) - total_points_captured += len(global_points) - - # 3. 写入文件 - if time.time() - last_save_time > 0.5: - if points_buffer: - with open(OUTPUT_FILE, "a") as f: - for p in points_buffer: - f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") - - print(f"\r[扫描中] 已采集点数: {total_points_captured} | 写入 D:\\Others...", end="") - points_buffer = [] - last_save_time = time.time() - - # 4. 飞行控制 - vx, vy, vz = 0.0, 0.0, 0.0 - yaw_rate = 0.0 + # --- 1. 监听开关按键 [R] --- + if keyboard.is_pressed('r'): + is_scanning = not is_scanning # 切换状态 + if is_scanning: + print(f"\n>>>开始录制数据... (当前总点数: {total_points_captured})") + else: + print(f"\n>>>暂停录制数据。") + + time.sleep(0.3) # 简单的防抖动,防止按一下触发多次 + + # --- 2. 仅在开启状态下处理数据 --- + if is_scanning: + # 获取位姿 + state = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME) + pos = state.position + orientation = state.orientation + + # 获取雷达 + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + + if lidar_data and len(lidar_data.point_cloud) >= 3: + raw_points = np.array(lidar_data.point_cloud, dtype=np.float32) + local_points = np.reshape(raw_points, (int(raw_points.shape[0] / 3), 3)) + + # 坐标转换 + R = get_rotation_matrix(orientation) + rotated_points = np.dot(local_points, R.T) + t_vec = np.array([pos.x_val, pos.y_val, pos.z_val]) + global_points = rotated_points + t_vec + + points_buffer.extend(global_points) + total_points_captured += len(global_points) + + # 写入文件 (每0.5秒) + if time.time() - last_save_time > 0.5: + if points_buffer: + with open(OUTPUT_FILE, "a") as f: + for p in points_buffer: + f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") + + # 使用 \r 动态刷新同一行,不刷屏 + print(f"\r[录制中] 已采集: {total_points_captured} 点 | 正在写入...", end="") + points_buffer = [] + last_save_time = time.time() + else: + # 暂停状态下,稍微sleep一下减少CPU占用,且不打印刷屏 + time.sleep(0.05) + + # --- 3. 飞行控制 (始终有效) --- + vx, vy, vz, yaw_rate = 0.0, 0.0, 0.0, 0.0 if keyboard.is_pressed('w'): vx = H_SPEED if keyboard.is_pressed('s'): vx = -H_SPEED @@ -103,6 +121,7 @@ def get_rotation_matrix(q): if keyboard.is_pressed('esc'): break + # 发送控制指令 client.moveByVelocityAsync( vx, vy, vz, 0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, @@ -113,10 +132,12 @@ def get_rotation_matrix(q): except KeyboardInterrupt: pass finally: + # 保存最后残留的数据 if points_buffer: with open(OUTPUT_FILE, "a") as f: for p in points_buffer: f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") - print(f"\n扫描结束!文件已保存至: {OUTPUT_FILE}") + print(f"\n\n任务结束!最终点数: {total_points_captured}") + print(f"结果已保存: {OUTPUT_FILE}") client.reset() \ No newline at end of file From f6c9a01810fba79a5a72fab5c8721f642b68bd5b Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Tue, 2 Dec 2025 22:54:14 +0800 Subject: [PATCH 21/26] =?UTF-8?q?=E7=82=B9=E4=BA=91=E5=9D=90=E6=A0=87?= =?UTF-8?q?=E7=B3=BB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/3D_point_cloud.py | 146 +++++++++++++++++---------- src/airsim_control/settings.json | 2 +- 2 files changed, 91 insertions(+), 57 deletions(-) diff --git a/src/airsim_control/3D_point_cloud.py b/src/airsim_control/3D_point_cloud.py index f337b816dd..bb3e8d7f51 100644 --- a/src/airsim_control/3D_point_cloud.py +++ b/src/airsim_control/3D_point_cloud.py @@ -4,26 +4,33 @@ import time import os -# --- 配置 --- +# --- 1. 配置参数 --- VEHICLE_NAME = "Drone_1" LIDAR_NAME = "lidar_1" -H_SPEED = 2.0 # 水平移动速度 -V_SPEED = 1.0 # 垂直移动速度 -YAW_SPEED = 30.0 # 旋转速度 +H_SPEED = 2.0 +V_SPEED = 1.0 +YAW_SPEED = 30.0 -# 保存路径 -OUTPUT_FILE = r"D:\Others\map_output.asc" +# 最小记录阈值 防止悬停时产生大量冗余数据 +MIN_MOVE_DIST = 0.05 # 至少移动 5厘米 才记录 +MIN_ROT_ANGLE = 1.0 # 至少旋转 1度 才记录 + +OUTPUT_FILE = r"D:\Others\map_output_pro.asc" # 检查目录 output_dir = os.path.dirname(OUTPUT_FILE) if not os.path.exists(output_dir): - print(f"错误: 找不到文件夹 '{output_dir}',请先创建。") + print(f"错误: 找不到文件夹 '{output_dir}'") exit() -# --- 数学工具 --- +# --- 2. 数学工具 --- def get_rotation_matrix(q): w, x, y, z = q.w_val, q.x_val, q.y_val, q.z_val + # 归一化四元数 (防止数值漂移) + norm = np.sqrt(w * w + x * x + y * y + z * z) + w, x, y, z = w / norm, x / norm, y / norm, z / norm + return np.array([ [1 - 2 * y * y - 2 * z * z, 2 * x * y - 2 * z * w, 2 * x * z + 2 * y * w], [2 * x * y + 2 * z * w, 1 - 2 * x * x - 2 * z * z, 2 * y * z - 2 * x * w], @@ -31,7 +38,11 @@ def get_rotation_matrix(q): ]) -# --- 初始化 --- +def calc_distance(p1, p2): + return np.sqrt((p1.x_val - p2.x_val) ** 2 + (p1.y_val - p2.y_val) ** 2 + (p1.z_val - p2.z_val) ** 2) + + +# --- 3. 初始化 --- client = airsim.MultirotorClient() client.confirmConnection() client.enableApiControl(True, vehicle_name=VEHICLE_NAME) @@ -39,89 +50,115 @@ def get_rotation_matrix(q): client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() client.moveToPositionAsync(0, 0, -2, 3, vehicle_name=VEHICLE_NAME).join() -print("\n3D 扫描系统 手动控制版 ") -print("飞行控制: [WASD]移动 [QE]旋转 [↑↓]升降") -print("扫描开关: 按 [R] 键开启/停止录制") -print(f"文件路径: {OUTPUT_FILE}") +print("\n=== 3D 扫描系统 (专业版) ===") +print("控制: [WASD]移动 [QE]旋转 [↑↓]升降") +print("开关: [R] 键") +print("优化: 已启用坐标修正(ENU)与智能去重") -# 清空/初始化文件 with open(OUTPUT_FILE, "w") as f: f.write("") try: - total_points_captured = 0 + total_points = 0 last_save_time = time.time() points_buffer = [] + is_recording = False - # --- 新增:扫描状态标记 --- - is_scanning = False + # 用于智能去重的变量 + last_rec_pos = airsim.Vector3r(0, 0, 0) + last_rec_yaw = 0.0 while True: - # --- 1. 监听开关按键 [R] --- + # --- 开关逻辑 --- if keyboard.is_pressed('r'): - is_scanning = not is_scanning # 切换状态 - if is_scanning: - print(f"\n>>>开始录制数据... (当前总点数: {total_points_captured})") + is_recording = not is_recording + if is_recording: + # 开启瞬间重置一下记录位置,确保能立刻记录 + last_rec_pos = airsim.Vector3r(999, 999, 999) + print(f"\n>>> 录制开始...") else: - print(f"\n>>>暂停录制数据。") - - time.sleep(0.3) # 简单的防抖动,防止按一下触发多次 + print(f"\n>>> 录制暂停。") + time.sleep(0.3) - # --- 2. 仅在开启状态下处理数据 --- - if is_scanning: - # 获取位姿 + # --- 录制逻辑 --- + if is_recording: + # 1. 获取状态 state = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME) pos = state.position orientation = state.orientation - # 获取雷达 - lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + # 计算当前偏航角 (简单估算) + current_yaw = airsim.to_eularian_angles(orientation)[2] + + # 2. 智能去重判断 (核心优化) + # 只有当位置移动超过阈值,或者旋转超过阈值时,才处理数据 + dist_moved = calc_distance(pos, last_rec_pos) + rot_moved = abs(current_yaw - last_rec_yaw) + + if dist_moved > MIN_MOVE_DIST or rot_moved > np.deg2rad(MIN_ROT_ANGLE): + + # 更新上一次记录的位置 + last_rec_pos = pos + last_rec_yaw = current_yaw + + # 获取雷达 + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) - if lidar_data and len(lidar_data.point_cloud) >= 3: - raw_points = np.array(lidar_data.point_cloud, dtype=np.float32) - local_points = np.reshape(raw_points, (int(raw_points.shape[0] / 3), 3)) + if lidar_data and len(lidar_data.point_cloud) >= 3: + raw_points = np.array(lidar_data.point_cloud, dtype=np.float32) + local_points = np.reshape(raw_points, (int(raw_points.shape[0] / 3), 3)) - # 坐标转换 - R = get_rotation_matrix(orientation) - rotated_points = np.dot(local_points, R.T) - t_vec = np.array([pos.x_val, pos.y_val, pos.z_val]) - global_points = rotated_points + t_vec + # 坐标转换 + R = get_rotation_matrix(orientation) + rotated_points = np.dot(local_points, R.T) + t_vec = np.array([pos.x_val, pos.y_val, pos.z_val]) + global_points = rotated_points + t_vec - points_buffer.extend(global_points) - total_points_captured += len(global_points) + # --- 3. 坐标系修正 (NED -> ENU) --- + # AirSim Z是向下,我们把它取反,变成向上,这样在软件里看房子就是正的了 + global_points[:, 2] = -global_points[:, 2] - # 写入文件 (每0.5秒) + # --- 4. 增加强度信息 (Intensity) --- + # 我们用高度(Z)作为第4列强度值,这样导入时可以直接按颜色显示 + # 也可以用距离作为强度: intensity = np.linalg.norm(local_points, axis=1) + intensity = global_points[:, 2] + + # 拼接数据: X Y Z I + data_to_save = np.column_stack((global_points, intensity)) + + points_buffer.extend(data_to_save) + total_points += len(global_points) + + # 写入硬盘 if time.time() - last_save_time > 0.5: if points_buffer: with open(OUTPUT_FILE, "a") as f: for p in points_buffer: - f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") + # 保存4位小数,第4列是强度 + f.write(f"{p[0]:.3f} {p[1]:.3f} {p[2]:.3f} {p[3]:.3f}\n") - # 使用 \r 动态刷新同一行,不刷屏 - print(f"\r[录制中] 已采集: {total_points_captured} 点 | 正在写入...", end="") + print(f"\r[REC] 点数: {total_points} | 状态: 移动扫描中...", end="") points_buffer = [] last_save_time = time.time() + else: + # 如果没有新数据(因为没移动),打印静止状态 + print(f"\r[REC] 点数: {total_points} | 状态: 等待移动... ", end="") + else: - # 暂停状态下,稍微sleep一下减少CPU占用,且不打印刷屏 time.sleep(0.05) - # --- 3. 飞行控制 (始终有效) --- + # --- 飞行控制 --- vx, vy, vz, yaw_rate = 0.0, 0.0, 0.0, 0.0 - if keyboard.is_pressed('w'): vx = H_SPEED if keyboard.is_pressed('s'): vx = -H_SPEED if keyboard.is_pressed('a'): vy = -H_SPEED if keyboard.is_pressed('d'): vy = H_SPEED - - if keyboard.is_pressed('up'): vz = -V_SPEED + if keyboard.is_pressed('up'): vz = -V_SPEED # 注意:AirSim里负数是向上,但我们上面保存时已经反转了Z,这里控制依然遵循AirSim逻辑 if keyboard.is_pressed('down'): vz = V_SPEED - if keyboard.is_pressed('q'): yaw_rate = -YAW_SPEED if keyboard.is_pressed('e'): yaw_rate = YAW_SPEED - if keyboard.is_pressed('esc'): break - # 发送控制指令 client.moveByVelocityAsync( vx, vy, vz, 0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, @@ -132,12 +169,9 @@ def get_rotation_matrix(q): except KeyboardInterrupt: pass finally: - # 保存最后残留的数据 if points_buffer: with open(OUTPUT_FILE, "a") as f: for p in points_buffer: - f.write(f"{p[0]:.4f} {p[1]:.4f} {p[2]:.4f}\n") - - print(f"\n\n任务结束!最终点数: {total_points_captured}") - print(f"结果已保存: {OUTPUT_FILE}") + f.write(f"{p[0]:.3f} {p[1]:.3f} {p[2]:.3f} {p[3]:.3f}\n") + print(f"\n结束。文件: {OUTPUT_FILE}") client.reset() \ No newline at end of file diff --git a/src/airsim_control/settings.json b/src/airsim_control/settings.json index 809d21fe62..40ef1d2f7f 100644 --- a/src/airsim_control/settings.json +++ b/src/airsim_control/settings.json @@ -14,7 +14,7 @@ "Enabled": true, "Range": 100, "NumberOfChannels": 16, - "PointsPerSecond": 50000, + "PointsPerSecond": 15000, "VerticalFOVUpper": 10, "VerticalFOVLower": -15, "HorizontalFOVStart": -90, From 000c3b71f2a5576b49bf6db3f10648feaf02216f Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 8 Dec 2025 09:32:56 +0800 Subject: [PATCH 22/26] =?UTF-8?q?=E9=80=9A=E8=BF=87=E6=BF=80=E5=85=89?= =?UTF-8?q?=E9=9B=B7=E8=BE=BE=E5=AE=9E=E7=8E=B0=E8=BF=B7=E5=AE=AB=E5=AF=BB?= =?UTF-8?q?=E8=B7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/maze.py | 146 +++++++++++++++++++++++++++++++ src/airsim_control/settings.json | 24 +++-- 2 files changed, 157 insertions(+), 13 deletions(-) create mode 100644 src/airsim_control/maze.py diff --git a/src/airsim_control/maze.py b/src/airsim_control/maze.py new file mode 100644 index 0000000000..6d503ccb6e --- /dev/null +++ b/src/airsim_control/maze.py @@ -0,0 +1,146 @@ +import airsim +import numpy as np +import time +import math + +# --- 配置 --- +VEHICLE_NAME = "Drone_1" +LIDAR_NAME = "lidar_1" + +# 飞行参数 +TARGET_HEIGHT = -1.5 +CRUISE_SPEED = 1.5 +TURN_SPEED = 40.0 +STOP_DIST = 4.0 +EMERGENCY_DIST = 1.0 + +# --- 初始化 --- +client = airsim.MultirotorClient() +client.confirmConnection() +client.enableApiControl(True, vehicle_name=VEHICLE_NAME) +client.armDisarm(True, vehicle_name=VEHICLE_NAME) + +print("🚀 起飞中...") +client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() +client.moveToZAsync(TARGET_HEIGHT, 1, vehicle_name=VEHICLE_NAME).join() + +print(f"\n=== 最终版: 机身坐标系飞行 (Body Frame) ===") + + +def get_front_distance(): + """获取正前方的障碍物距离""" + lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) + if not lidar_data or len(lidar_data.point_cloud) < 3: return 99.0 + + points = np.array(lidar_data.point_cloud, dtype=np.float32) + points = np.reshape(points, (int(points.shape[0] / 3), 3)) + + # 这里的过滤逻辑不需要变,因为 Lidar 数据本身就是相对于机身的(Body Frame) + valid_points = points[(points[:, 2] > -0.5) & (points[:, 2] < 0.5)] + front_mask = (valid_points[:, 0] > 0) & (np.abs(valid_points[:, 1]) < 0.8) + front_objs = valid_points[front_mask] + + if len(front_objs) > 0: + return np.min(front_objs[:, 0]) + return 99.0 + + +def turn_by_time(angle): + """盲转""" + direction_str = "右" if angle > 0 else "左" + print(f" ↪️ 正在向{direction_str}转 {abs(angle)}° ...") + + duration = abs(angle) / TURN_SPEED + yaw_rate = TURN_SPEED if angle > 0 else -TURN_SPEED + + # 旋转时速度设为0,原地转 + client.moveByVelocityAsync(0, 0, 0, duration, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=float(yaw_rate)), + vehicle_name=VEHICLE_NAME).join() + + client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + + +def emergency_brake(): + print("🚨 距离过近!强制反推刹车!") + # BodyFrame 下,vx=-1 就是向后退,不用管此时机头朝哪 + client.moveByVelocityBodyFrameAsync(-1.0, 0, 0, 0.8, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=False, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME).join() + + client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + + +def decide_direction(): + """停车决策逻辑""" + print("\n🛑 停车决策中...") + + # 1. 左转90度 + turn_by_time(-90) + left_dist = get_front_distance() + print(f" 👀 左侧视野: {left_dist:.1f}m") + + # 2. 右转180度 (看向右边) + turn_by_time(180) + right_dist = get_front_distance() + print(f" 👀 右侧视野: {right_dist:.1f}m") + + # 3. 决策 + if left_dist < 3.0 and right_dist < 3.0: + print("⚠️ 死胡同 -> 继续右转90度 (掉头)") + turn_by_time(90) + + elif left_dist > right_dist: + print("✅ 左边宽敞 -> 左转180度") + turn_by_time(-180) + else: + print("✅ 右边宽敞 -> 保持当前方向") + pass + return + + +try: + while True: + front_dist = get_front_distance() + + # --- 1. 紧急避险 --- + if front_dist < EMERGENCY_DIST: + emergency_brake() + decide_direction() + continue + + # --- 2. 遇阻停车 --- + if front_dist < STOP_DIST: + print(f"\r[🛑 刹车] 前方障碍 {front_dist:.1f}m < {STOP_DIST}m ", end="", flush=True) + client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + + if get_front_distance() < STOP_DIST: + decide_direction() + + # --- 3. 正常巡航 --- + else: + print(f"\r[🚀 巡航] 前方: {front_dist:.1f}m ", end="", flush=True) + + # 高度控制 (依然是 Global Z) + z_current = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position.z_val + vz = (TARGET_HEIGHT - z_current) * 1.0 + + # --------------------------------------------------------- + # 🔴 关键修复:使用 moveByVelocityBodyFrameAsync + # vx = CRUISE_SPEED (正数) 现在代表 "机头正前方" + # --------------------------------------------------------- + client.moveByVelocityBodyFrameAsync( + vx=CRUISE_SPEED, + vy=0, + vz=float(vz), + duration=0.1, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME + ).join() + +except KeyboardInterrupt: + print("\n降落...") + client.reset() \ No newline at end of file diff --git a/src/airsim_control/settings.json b/src/airsim_control/settings.json index 40ef1d2f7f..ce2a728d0a 100644 --- a/src/airsim_control/settings.json +++ b/src/airsim_control/settings.json @@ -5,24 +5,22 @@ "Vehicles": { "Drone_1": { "VehicleType": "SimpleFlight", - "X": 0, - "Y": 0, - "Z": 0, + "X": 0, "Y": 0, "Z": 0, "Sensors": { "lidar_1": { "SensorType": 6, "Enabled": true, - "Range": 100, - "NumberOfChannels": 16, - "PointsPerSecond": 15000, + "Range": 40, + "NumberOfChannels": 32, + "PointsPerSecond": 50000, + "RotationsPerSecond": 10, "VerticalFOVUpper": 10, - "VerticalFOVLower": -15, - "HorizontalFOVStart": -90, - "HorizontalFOVEnd": 90, - "X": 0, - "Y": 0, - "Z": -0.1, - "DrawDebugPoints": true + "VerticalFOVLower": -10, + "HorizontalFOVStart": -30, + "HorizontalFOVEnd": 30, + "X": 0, "Y": 0, "Z": -0.5, + "DrawDebugPoints": false, + "DataFrame": "SensorLocalFrame" } } } From 394e9de9dc4d0d85c8006b4133a7207e80fd475d Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 8 Dec 2025 11:43:10 +0800 Subject: [PATCH 23/26] Update maze.py --- src/airsim_control/maze.py | 295 ++++++++++++++++++++++++++----------- 1 file changed, 212 insertions(+), 83 deletions(-) diff --git a/src/airsim_control/maze.py b/src/airsim_control/maze.py index 6d503ccb6e..547dd16019 100644 --- a/src/airsim_control/maze.py +++ b/src/airsim_control/maze.py @@ -9,12 +9,60 @@ # 飞行参数 TARGET_HEIGHT = -1.5 -CRUISE_SPEED = 1.5 -TURN_SPEED = 40.0 -STOP_DIST = 4.0 -EMERGENCY_DIST = 1.0 - -# --- 初始化 --- +CRUISE_SPEED = 2.5 # 稍微提速 +TURN_SPEED = 90.0 # 转快点,别磨叽 +STOP_DIST = 3.5 # 刹车距离 +PASS_DIST = 4.5 # 判定通行的距离 +GRID_SIZE = 2.0 # 记忆格大小 + +# 极远距离 (视为出口) +EXIT_DIST_THRESHOLD = 15.0 + +# 可视化开关 +VISUALIZE = True + + +# --- 记忆模块 --- +class MemoryMap: + def __init__(self, grid_size): + self.grid_size = grid_size + self.visited = set() + self.forbidden = set() + + def _to_grid(self, x, y): + return (round(x / self.grid_size), round(y / self.grid_size)) + + def mark_visited(self, pos_x, pos_y, client): + gx, gy = self._to_grid(pos_x, pos_y) + if (gx, gy) in self.forbidden: return + if (gx, gy) not in self.visited: + self.visited.add((gx, gy)) + if VISUALIZE: + client.simPlotPoints([airsim.Vector3r(gx * self.grid_size, gy * self.grid_size, -1.5)], + color_rgba=[0.0, 0.0, 1.0, 1.0], size=15, is_persistent=True) + + def mark_forbidden(self, pos_x, pos_y, client): + gx, gy = self._to_grid(pos_x, pos_y) + if (gx, gy) not in self.forbidden: + self.forbidden.add((gx, gy)) + if VISUALIZE: + client.simPlotPoints([airsim.Vector3r(gx * self.grid_size, gy * self.grid_size, -1.5)], + color_rgba=[0.0, 0.0, 0.0, 1.0], size=30, is_persistent=True) + + def check_status(self, pos_x, pos_y): + gx, gy = self._to_grid(pos_x, pos_y) + if (gx, gy) in self.forbidden: return 2 + + # 范围检查:如果目标点或其相邻点去过,都算去过(模糊匹配) + for dx in [-1, 0, 1]: + for dy in [-1, 0, 1]: + if (gx + dx, gy + dy) in self.visited: + return 1 + return 0 + + +# 初始化 +memory = MemoryMap(GRID_SIZE) client = airsim.MultirotorClient() client.confirmConnection() client.enableApiControl(True, vehicle_name=VEHICLE_NAME) @@ -24,118 +72,199 @@ client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() client.moveToZAsync(TARGET_HEIGHT, 1, vehicle_name=VEHICLE_NAME).join() -print(f"\n=== 最终版: 机身坐标系飞行 (Body Frame) ===") +print("\n=== 终极寻路: 直觉 + 出口诱导 ===") -def get_front_distance(): - """获取正前方的障碍物距离""" +def get_lidar_info(): + """获取前、左、右距离""" lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) - if not lidar_data or len(lidar_data.point_cloud) < 3: return 99.0 + if not lidar_data or len(lidar_data.point_cloud) < 3: return 99, 99, 99 points = np.array(lidar_data.point_cloud, dtype=np.float32) points = np.reshape(points, (int(points.shape[0] / 3), 3)) + valid = points[(points[:, 2] > -0.5) & (points[:, 2] < 0.5)] + if len(valid) == 0: return 99, 99, 99 + + f_mask = (valid[:, 0] > 0) & (np.abs(valid[:, 1]) < 1.0) + l_mask = (valid[:, 1] < -1.0) & (np.abs(valid[:, 0]) < 1.0) + r_mask = (valid[:, 1] > 1.0) & (np.abs(valid[:, 0]) < 1.0) - # 这里的过滤逻辑不需要变,因为 Lidar 数据本身就是相对于机身的(Body Frame) - valid_points = points[(points[:, 2] > -0.5) & (points[:, 2] < 0.5)] - front_mask = (valid_points[:, 0] > 0) & (np.abs(valid_points[:, 1]) < 0.8) - front_objs = valid_points[front_mask] + f_d = np.min(valid[f_mask][:, 0]) if np.any(f_mask) else 99 + l_d = np.min(np.linalg.norm(valid[l_mask][:, :2], axis=1)) if np.any(l_mask) else 99 + r_d = np.min(np.linalg.norm(valid[r_mask][:, :2], axis=1)) if np.any(r_mask) else 99 - if len(front_objs) > 0: - return np.min(front_objs[:, 0]) - return 99.0 + return f_d, l_d, r_d -def turn_by_time(angle): - """盲转""" - direction_str = "右" if angle > 0 else "左" - print(f" ↪️ 正在向{direction_str}转 {abs(angle)}° ...") +def get_global_yaw(): + o = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).orientation + return math.degrees( + math.atan2(2.0 * (o.w_val * o.z_val + o.x_val * o.y_val), 1.0 - 2.0 * (o.y_val * o.y_val + o.z_val * o.z_val))) - duration = abs(angle) / TURN_SPEED - yaw_rate = TURN_SPEED if angle > 0 else -TURN_SPEED - # 旋转时速度设为0,原地转 - client.moveByVelocityAsync(0, 0, 0, duration, +def turn_rel(angle): + print(f" ↪️ 转向 {angle}°...") + client.moveByVelocityAsync(0, 0, 0, abs(angle) / TURN_SPEED, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, - yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=float(yaw_rate)), + yaw_mode=airsim.YawMode(is_rate=True, + yaw_or_rate=float(TURN_SPEED if angle > 0 else -TURN_SPEED)), vehicle_name=VEHICLE_NAME).join() + client.moveByVelocityAsync(0, 0, 0, 0.2, vehicle_name=VEHICLE_NAME).join() - client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() +def check_direction_score(pos, curr_yaw, angle, lidar_dist): + """评分系统""" + # 1. 物理阻挡 + if lidar_dist < PASS_DIST: + return -1000, "🧱 阻挡" + + # 2. 【核心优化】出口检测 + # 如果雷达距离极远(>15米),说明前面是开阔地(出口),给予超高分! + if lidar_dist > EXIT_DIST_THRESHOLD: + client.simPlotPoints([airsim.Vector3r(pos.x_val, pos.y_val, -1.5)], color_rgba=[1.0, 1.0, 0.0, 1.0], size=30, + duration=5.0) + return 10000, "🎉 出口/开阔地" + + # 3. 记忆检查 + rad = math.radians(curr_yaw + angle) + check_dist = 4.0 + target_x = pos.x_val + math.cos(rad) * check_dist + target_y = pos.y_val + math.sin(rad) * check_dist + + status_code = memory.check_status(target_x, target_y) + + if status_code == 2: # 死路 + return -1000, "⚫ 死路" + + elif status_code == 1: # 老路 + # 调试:红点 + client.simPlotPoints([airsim.Vector3r(target_x, target_y, -1.5)], color_rgba=[1.0, 0.0, 0.0, 1.0], size=10, + duration=2.0) + return -50, "👣 老路" + + else: # 新路 + # 调试:绿点 + client.simPlotPoints([airsim.Vector3r(target_x, target_y, -1.5)], color_rgba=[0.0, 1.0, 0.0, 1.0], size=20, + duration=2.0) + return 100, "✨ 新路" -def emergency_brake(): - print("🚨 距离过近!强制反推刹车!") - # BodyFrame 下,vx=-1 就是向后退,不用管此时机头朝哪 - client.moveByVelocityBodyFrameAsync(-1.0, 0, 0, 0.8, - drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, - yaw_mode=airsim.YawMode(is_rate=False, yaw_or_rate=0), - vehicle_name=VEHICLE_NAME).join() +def scan_and_decide(): + print("\n🛑 决策中...") client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + pos = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position + curr_yaw = get_global_yaw() + f_d, l_d, r_d = get_lidar_info() -def decide_direction(): - """停车决策逻辑""" - print("\n🛑 停车决策中...") + options = [ + {"angle": 0, "dist": f_d, "name": "前方"}, + {"angle": -90, "dist": l_d, "name": "左侧"}, + {"angle": 90, "dist": r_d, "name": "右侧"} + ] - # 1. 左转90度 - turn_by_time(-90) - left_dist = get_front_distance() - print(f" 👀 左侧视野: {left_dist:.1f}m") + candidates = [] - # 2. 右转180度 (看向右边) - turn_by_time(180) - right_dist = get_front_distance() - print(f" 👀 右侧视野: {right_dist:.1f}m") + print(" 📊 评分:") + for opt in options: + score, status = check_direction_score(pos, curr_yaw, opt["angle"], opt["dist"]) - # 3. 决策 - if left_dist < 3.0 and right_dist < 3.0: - print("⚠️ 死胡同 -> 继续右转90度 (掉头)") - turn_by_time(90) + # 只有非墙壁才加入 + if score > -500: + candidates.append({ + "angle": opt["angle"], + "score": score, + "name": opt["name"], + "dist": opt["dist"] + }) + print(f" -> {opt['name']}: {status} ({score})") - elif left_dist > right_dist: - print("✅ 左边宽敞 -> 左转180度") - turn_by_time(-180) - else: - print("✅ 右边宽敞 -> 保持当前方向") - pass - return + if len(candidates) > 0: + # 排序逻辑优化: + # 1. 分数高的优先 + # 2. 【核心优化】分数相同时,优先选角度为0的(直行)!避免左右乱转 + # 3. 最后选距离远的 + # 我们用 tuple 排序: (score, is_straight, dist) + # angle == 0 转换为 1 (是直行), 否则 0 + candidates.sort(key=lambda x: (x["score"], 1 if x["angle"] == 0 else 0, x["dist"]), reverse=True) -try: - while True: - front_dist = get_front_distance() + best = candidates[0] + print(f"✅ 决定: {best['name']}") - # --- 1. 紧急避险 --- - if front_dist < EMERGENCY_DIST: - emergency_brake() - decide_direction() - continue + if best["angle"] != 0: + turn_rel(best["angle"]) - # --- 2. 遇阻停车 --- - if front_dist < STOP_DIST: - print(f"\r[🛑 刹车] 前方障碍 {front_dist:.1f}m < {STOP_DIST}m ", end="", flush=True) - client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + return True # 找到了路 + + else: + print("⚠️ 全是死路! 掉头并封锁") + memory.mark_forbidden(pos.x_val, pos.y_val, client) + turn_rel(180) + return False # 被迫掉头 - if get_front_distance() < STOP_DIST: - decide_direction() - # --- 3. 正常巡航 --- +try: + # 强制冷却时间 (防止刚转完头又觉得不对劲) + cooldown_until = 0 + + while True: + # 记录足迹 + pos = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position + memory.mark_visited(pos.x_val, pos.y_val, client) + + f_d, l_d, r_d = get_lidar_info() + + # 状态判定 + is_stuck = f_d < STOP_DIST + # 只有当侧面非常宽敞(>5m),且没在冷却期内,才视为岔路 + is_junction = (l_d > 5.0 or r_d > 5.0) and time.time() > cooldown_until + + # --- 优先级 1: 看到出口 (Exit) --- + # 如果前方一片空旷 (>15米),说明要出去了,无视所有逻辑直接冲 + if f_d > EXIT_DIST_THRESHOLD: + print(f"\r[🎉 发现出口!] 前方开阔 {f_d:.1f}m - 全速前进!", end="") + client.moveByVelocityBodyFrameAsync(CRUISE_SPEED * 1.5, 0, 0, 0.1, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME).join() + continue # 跳过后面所有逻辑 + + # --- 优先级 2: 遇阻 --- + if is_stuck: + print(f"\r[🛑 遇阻] 前方 {f_d:.1f}m", end="") + scan_and_decide() + # 决策完后,给 3秒 冷却时间,让它先飞离路口,别原地纠结 + cooldown_until = time.time() + 3.0 + + # --- 优先级 3: 岔路 --- + elif is_junction: + print(f"\r[✨ 岔路] 左:{l_d:.1f}m 右:{r_d:.1f}m", end="") + print(" -> 决策...") + # 往前送 2米 + client.moveByVelocityBodyFrameAsync(CRUISE_SPEED, 0, 0, 1.5, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME).join() + + scan_and_decide() + cooldown_until = time.time() + 3.0 + + # --- 优先级 4: 巡航 --- else: - print(f"\r[🚀 巡航] 前方: {front_dist:.1f}m ", end="", flush=True) + print(f"\r[🚀 巡航] 前:{f_d:.1f}m ", end="", flush=True) + + z_curr = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position.z_val + vz = (TARGET_HEIGHT - z_curr) * 1.0 - # 高度控制 (依然是 Global Z) - z_current = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position.z_val - vz = (TARGET_HEIGHT - z_current) * 1.0 + # 简单的居中 + vy = 0 + if l_d < 2.0 and r_d < 2.0: + vy = (l_d - r_d) * 0.5 + vy = np.clip(vy, -1.0, 1.0) - # --------------------------------------------------------- - # 🔴 关键修复:使用 moveByVelocityBodyFrameAsync - # vx = CRUISE_SPEED (正数) 现在代表 "机头正前方" - # --------------------------------------------------------- client.moveByVelocityBodyFrameAsync( - vx=CRUISE_SPEED, - vy=0, - vz=float(vz), - duration=0.1, + vx=CRUISE_SPEED, vy=float(vy), vz=float(vz), duration=0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), vehicle_name=VEHICLE_NAME From bd0818a4a9bdedeef37e4466d145919fe23c2f11 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Tue, 9 Dec 2025 10:37:15 +0800 Subject: [PATCH 24/26] Update README.md --- src/airsim_control/README.md | 90 +++++++++++++++++++----------------- 1 file changed, 48 insertions(+), 42 deletions(-) diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index 29baf69f8c..049742e882 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -1,32 +1,34 @@ -# 🚁 AirSim 无人机激光雷达系统:避障与 3D 扫描 +AirSim 无人机激光雷达系统:迷宫自主寻路与避障 -> 基于 Microsoft AirSim API 实现的无人机自动避障控制与环境 3D 点云扫描系统。 +[项目简介] +基于 Microsoft AirSim API 实现的无人机自动避障控制与环境 3D 点云扫描系统。 +本项目利用 Python API 与 Microsoft AirSim 仿真环境交互,通过搭载的 32 线激光雷达(Lidar)获取环境深度数据。项目核心从简单的避障升级为具备记忆能力的自主路径规划系统,能够像人类一样探索迷宫、识别死胡同、并最终找到出口。 -## 📖 项目简介 +[核心功能] -本项目利用 Python API 与 Microsoft AirSim 仿真环境交互,通过搭载的 32 线激光雷达(Lidar)获取环境深度数据。主要功能包括: -* **实时障碍物检测**:分析雷达回波数据,判断前方障碍。 -* **3D 环境扫描**:获取并在本地保存环境的点云数据。 -* **辅助飞行控制**:结合键盘控制与自动避障逻辑,实现安全的仿真飞行。 +1. 智能迷宫寻路 + - 直行优先策略:在多条路径可选时,优先保持直行,避免在老路中左右摇摆。 + - 死胡同记忆与封锁:利用 DFS (深度优先搜索) 思想,当检测到死路时,自动掉头并生成“虚拟墙(禁区)”,防止再次进入。 + - 出口诱导机制:当雷达检测到极远距离(>15米)的开阔地时,判定为出口并全速冲刺。 + - 机身坐标系控制:使用 Body Frame 控制飞行,彻底解决了无人机转向后方向感错乱的问题。 +2. 记忆与决策系统 + - 栅格化记忆地图:将世界划分为 2米 x 2米的栅格,实时记录“去过的地方”。 + - 射线检测评分:在路口决策时,向各个方向发射虚拟射线,检测路径是否为“新路”,优先探索未知区域。 + - 防抖动冷却:决策后强制执行一段距离,防止在路口反复纠结。 +3. 基础飞行保障 + - 紧急避险:配备物理反推刹车逻辑,在距离障碍物 <1.0米 时强制反向推力,防止惯性撞墙。 + - 高度锁定:通过 PID 控制器将飞行高度严格限制在设定值(如 -1.5米)。 - -## 📦 环境依赖 (Dependencies) - +[环境依赖] 在运行代码之前,请确保已安装以下 Python 库: - -```bash pip install airsim numpy keyboard +[配置文件] +关键步骤:为了确保雷达不被机身遮挡并获得最佳扫描效果,请务必使用以下配置覆盖你的 "文档\AirSim\settings.json" 文件。 +注意:HorizontalFOV 必须设置为 -90 到 90,且 DataFrame 必须为 SensorLocalFrame。 - - - -\## 运行方式 - -1\. 修改 `settings` 配置文件。 -为了确保雷达不被机身遮挡并获得最佳扫描效果,请务必使用以下配置覆盖你的 文档\AirSim\settings.json 文件: { "SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md", "SettingsVersion": 1.2, @@ -56,26 +58,30 @@ pip install airsim numpy keyboard } } -2\. 启动虚拟引擎并运行 AirSim。 - -3\. 运行相关代码。 - - - -\## 无人机操控方式 - - - -按键 功能 说明 -W 前进 向机头方向水平移动 -S 后退 向后方水平移动 -A 向左 向左侧平移 (不改变朝向) -D 向右 向右侧平移 (不改变朝向) -Q 左转 原地逆时针旋转机头 -E 右转 原地顺时针旋转机头 -↑ (上箭头) 上升 垂直向上飞行 -↓ (下箭头) 下降 垂直向下飞行 -空格 急刹 悬停,停止所有移动 - - - +[运行方式] +1. 启动 Unreal Engine (AirSim) 仿真环境。 +2. 确保无人机处于迷宫入口处。 +3. 运行 Python 寻路脚本。 + +[可视化调试说明] +代码运行时,会在 AirSim 窗口中绘制彩色小球,代表无人机的“思维过程”: + +- 绿色球体:新路 (New Path) - 未探索的区域,优先级最高。 +- 蓝色方块:足迹 (Visited) - 已经走过的路径点。 +- 红色球体:老路 (Old Path) - 探测到前方是走过的路,尽量避免。 +- 黑色大球:死路/禁区 (Forbidden) - 已确认为死胡同,生成虚拟墙封锁。 +- 黄色大球:出口 (Exit) - 检测到终点开阔地。 + +[手动操控 (辅助)] +虽然本系统设计为全自动运行,但在紧急情况下或使用手动模式代码时,可用以下按键: + +Ctrl + C : 停止 (立即中断程序并降落) +W : 前进 (向机头方向水平移动) +S : 后退 (向后方水平移动) +A : 向左 (向左侧平移,不改变朝向) +D : 向右 (向右侧平移,不改变朝向) +Q : 左转 (原地逆时针旋转机头) +E : 右转 (原地顺时针旋转机头) +上箭头 : 上升 (垂直向上飞行) +下箭头 : 下降 (垂直向下飞行) +空格 : 急刹 (悬停,停止所有移动) \ No newline at end of file From d0ffb7ac9cafb536a409af11ba4fdb4568abc37c Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 15 Dec 2025 10:24:58 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E6=94=B9=E8=BF=9B=E6=97=A0=E4=BA=BA?= =?UTF-8?q?=E6=9C=BA=E5=AF=BB=E8=B7=AF=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/airsim_control/maze.py | 306 ++++++++++++++++++++----------------- 1 file changed, 165 insertions(+), 141 deletions(-) diff --git a/src/airsim_control/maze.py b/src/airsim_control/maze.py index 547dd16019..f87d25561a 100644 --- a/src/airsim_control/maze.py +++ b/src/airsim_control/maze.py @@ -3,26 +3,25 @@ import time import math -# --- 配置 --- +# --- 精细操控版配置 --- VEHICLE_NAME = "Drone_1" LIDAR_NAME = "lidar_1" -# 飞行参数 +# 飞行参数 (慢速、精准) TARGET_HEIGHT = -1.5 -CRUISE_SPEED = 2.5 # 稍微提速 -TURN_SPEED = 90.0 # 转快点,别磨叽 -STOP_DIST = 3.5 # 刹车距离 -PASS_DIST = 4.5 # 判定通行的距离 -GRID_SIZE = 2.0 # 记忆格大小 - -# 极远距离 (视为出口) +CRUISE_SPEED = 1.0 # 速度降至 1.0,防止冲过头 +TURN_SPEED = 30.0 # 转向速度 +STOP_DIST = 2.0 # 刹车距离 +PASS_DIST = 2.0 # 通行门槛 (大于2米就敢进) +GRID_SIZE = 1.5 EXIT_DIST_THRESHOLD = 15.0 -# 可视化开关 +SIDE_MARGIN = 1.5 # 左右保持距离 + VISUALIZE = True -# --- 记忆模块 --- +# --- 记忆模块 (保持不变) --- class MemoryMap: def __init__(self, grid_size): self.grid_size = grid_size @@ -39,7 +38,7 @@ def mark_visited(self, pos_x, pos_y, client): self.visited.add((gx, gy)) if VISUALIZE: client.simPlotPoints([airsim.Vector3r(gx * self.grid_size, gy * self.grid_size, -1.5)], - color_rgba=[0.0, 0.0, 1.0, 1.0], size=15, is_persistent=True) + color_rgba=[0.0, 0.0, 1.0, 1.0], size=10, is_persistent=True) def mark_forbidden(self, pos_x, pos_y, client): gx, gy = self._to_grid(pos_x, pos_y) @@ -47,18 +46,26 @@ def mark_forbidden(self, pos_x, pos_y, client): self.forbidden.add((gx, gy)) if VISUALIZE: client.simPlotPoints([airsim.Vector3r(gx * self.grid_size, gy * self.grid_size, -1.5)], - color_rgba=[0.0, 0.0, 0.0, 1.0], size=30, is_persistent=True) + color_rgba=[0.0, 0.0, 0.0, 1.0], size=25, is_persistent=True) - def check_status(self, pos_x, pos_y): - gx, gy = self._to_grid(pos_x, pos_y) - if (gx, gy) in self.forbidden: return 2 + def calculate_path_score(self, start_x, start_y, angle_rad, check_dist): + steps = int(check_dist / self.grid_size) + if steps == 0: return 0, False, start_x, start_y + visited_count = 0 + target_x = start_x + math.cos(angle_rad) * check_dist + target_y = start_y + math.sin(angle_rad) * check_dist - # 范围检查:如果目标点或其相邻点去过,都算去过(模糊匹配) - for dx in [-1, 0, 1]: - for dy in [-1, 0, 1]: - if (gx + dx, gy + dy) in self.visited: - return 1 - return 0 + for i in range(1, steps + 1): + d = i * self.grid_size + tx = start_x + math.cos(angle_rad) * d + ty = start_y + math.sin(angle_rad) * d + gx, gy = self._to_grid(tx, ty) + if (gx, gy) in self.forbidden: return -1000, True, tx, ty + if (gx, gy) in self.visited: visited_count += 1 + + density = visited_count / steps + score = 100 - (density * 150) + return score, False, target_x, target_y # 初始化 @@ -68,31 +75,55 @@ def check_status(self, pos_x, pos_y): client.enableApiControl(True, vehicle_name=VEHICLE_NAME) client.armDisarm(True, vehicle_name=VEHICLE_NAME) -print("🚀 起飞中...") +print(" 精细操控模式起飞 (低速抗过冲)...") client.takeoffAsync(vehicle_name=VEHICLE_NAME).join() client.moveToZAsync(TARGET_HEIGHT, 1, vehicle_name=VEHICLE_NAME).join() -print("\n=== 终极寻路: 直觉 + 出口诱导 ===") +# 暴力起步 (依然需要,但稍微温柔点) +print("💨 起步...") +client.moveByVelocityBodyFrameAsync(1.5, 0, 0, 2.0, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME).join() + + +# --- 控制函数 --- + +def calculate_z_correction(current_z): + z_error = TARGET_HEIGHT - current_z + vz = z_error * 1.5 + return float(np.clip(vz, -0.8, 0.8)) + + +def calculate_y_correction(l_dist, r_dist): + if l_dist > SIDE_MARGIN and r_dist > SIDE_MARGIN: + return 0.0 + vy = 0.0 + if l_dist < SIDE_MARGIN: + push = (SIDE_MARGIN - l_dist) * 0.8 + vy += push + if r_dist < SIDE_MARGIN: + push = (SIDE_MARGIN - r_dist) * 0.8 + vy -= push + return float(np.clip(vy, -0.8, 0.8)) # 降低横向修正力度 def get_lidar_info(): - """获取前、左、右距离""" lidar_data = client.getLidarData(lidar_name=LIDAR_NAME, vehicle_name=VEHICLE_NAME) if not lidar_data or len(lidar_data.point_cloud) < 3: return 99, 99, 99 - points = np.array(lidar_data.point_cloud, dtype=np.float32) points = np.reshape(points, (int(points.shape[0] / 3), 3)) - valid = points[(points[:, 2] > -0.5) & (points[:, 2] < 0.5)] + + valid = points[(points[:, 2] > -0.4) & (points[:, 2] < 0.4)] if len(valid) == 0: return 99, 99, 99 - f_mask = (valid[:, 0] > 0) & (np.abs(valid[:, 1]) < 1.0) + f_mask = (valid[:, 0] > 0) & (np.abs(valid[:, 1]) < 0.6) # 前方判定变窄 l_mask = (valid[:, 1] < -1.0) & (np.abs(valid[:, 0]) < 1.0) r_mask = (valid[:, 1] > 1.0) & (np.abs(valid[:, 0]) < 1.0) f_d = np.min(valid[f_mask][:, 0]) if np.any(f_mask) else 99 l_d = np.min(np.linalg.norm(valid[l_mask][:, :2], axis=1)) if np.any(l_mask) else 99 r_d = np.min(np.linalg.norm(valid[r_mask][:, :2], axis=1)) if np.any(r_mask) else 99 - return f_d, l_d, r_d @@ -102,56 +133,39 @@ def get_global_yaw(): math.atan2(2.0 * (o.w_val * o.z_val + o.x_val * o.y_val), 1.0 - 2.0 * (o.y_val * o.y_val + o.z_val * o.z_val))) -def turn_rel(angle): - print(f" ↪️ 转向 {angle}°...") - client.moveByVelocityAsync(0, 0, 0, abs(angle) / TURN_SPEED, - drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, - yaw_mode=airsim.YawMode(is_rate=True, - yaw_or_rate=float(TURN_SPEED if angle > 0 else -TURN_SPEED)), - vehicle_name=VEHICLE_NAME).join() - client.moveByVelocityAsync(0, 0, 0, 0.2, vehicle_name=VEHICLE_NAME).join() - - -def check_direction_score(pos, curr_yaw, angle, lidar_dist): - """评分系统""" - # 1. 物理阻挡 - if lidar_dist < PASS_DIST: - return -1000, "🧱 阻挡" - - # 2. 【核心优化】出口检测 - # 如果雷达距离极远(>15米),说明前面是开阔地(出口),给予超高分! - if lidar_dist > EXIT_DIST_THRESHOLD: - client.simPlotPoints([airsim.Vector3r(pos.x_val, pos.y_val, -1.5)], color_rgba=[1.0, 1.0, 0.0, 1.0], size=30, - duration=5.0) - return 10000, "🎉 出口/开阔地" +def turn_to_angle_gentle(target_angle_rel): + print(f" ↪️ 缓慢转向 {target_angle_rel}°") + start_yaw = get_global_yaw() + target_yaw = start_yaw + target_angle_rel - # 3. 记忆检查 - rad = math.radians(curr_yaw + angle) - check_dist = 4.0 - target_x = pos.x_val + math.cos(rad) * check_dist - target_y = pos.y_val + math.sin(rad) * check_dist + if target_yaw > 180: + target_yaw -= 360 + elif target_yaw < -180: + target_yaw += 360 - status_code = memory.check_status(target_x, target_y) - - if status_code == 2: # 死路 - return -1000, "⚫ 死路" - - elif status_code == 1: # 老路 - # 调试:红点 - client.simPlotPoints([airsim.Vector3r(target_x, target_y, -1.5)], color_rgba=[1.0, 0.0, 0.0, 1.0], size=10, - duration=2.0) - return -50, "👣 老路" + while True: + current_yaw = get_global_yaw() + error = target_yaw - current_yaw + if error > 180: + error -= 360 + elif error < -180: + error += 360 + if abs(error) < 1.0: break # 精度更高 1.0度 + + yaw_rate = np.clip(error * 1.0, -30, 30) # 转得更慢 + if abs(yaw_rate) < 8: yaw_rate = 8 * np.sign(yaw_rate) + + client.moveByVelocityAsync(0, 0, 0, 0.05, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=float(yaw_rate)), + vehicle_name=VEHICLE_NAME).join() - else: # 新路 - # 调试:绿点 - client.simPlotPoints([airsim.Vector3r(target_x, target_y, -1.5)], color_rgba=[0.0, 1.0, 0.0, 1.0], size=20, - duration=2.0) - return 100, "✨ 新路" + client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() def scan_and_decide(): - print("\n🛑 决策中...") - client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() + # ⚡ 急刹!多停一会儿,完全消除惯性 + client.moveByVelocityAsync(0, 0, 0, 1.5, vehicle_name=VEHICLE_NAME).join() pos = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position curr_yaw = get_global_yaw() @@ -162,109 +176,119 @@ def scan_and_decide(): {"angle": -90, "dist": l_d, "name": "左侧"}, {"angle": 90, "dist": r_d, "name": "右侧"} ] - candidates = [] + print(" 📊 深度评分:") - print(" 📊 评分:") for opt in options: - score, status = check_direction_score(pos, curr_yaw, opt["angle"], opt["dist"]) - - # 只有非墙壁才加入 - if score > -500: - candidates.append({ - "angle": opt["angle"], - "score": score, - "name": opt["name"], - "dist": opt["dist"] - }) - print(f" -> {opt['name']}: {status} ({score})") - - if len(candidates) > 0: - # 排序逻辑优化: - # 1. 分数高的优先 - # 2. 【核心优化】分数相同时,优先选角度为0的(直行)!避免左右乱转 - # 3. 最后选距离远的 - # 我们用 tuple 排序: (score, is_straight, dist) - # angle == 0 转换为 1 (是直行), 否则 0 - - candidates.sort(key=lambda x: (x["score"], 1 if x["angle"] == 0 else 0, x["dist"]), reverse=True) + if opt["dist"] < PASS_DIST: continue + if opt["dist"] > EXIT_DIST_THRESHOLD: + candidates.append({"angle": opt["angle"], "score": 99999, "name": opt["name"], "dist": opt["dist"]}) + continue + + rad = math.radians(curr_yaw + opt["angle"]) + score, is_dead_end, tx, ty = memory.calculate_path_score(pos.x_val, pos.y_val, rad, 10.0) + + # ⚡ 侧路优先逻辑 (DFS Bias) + if not is_dead_end and score > 0 and opt["angle"] != 0: + print(f" -> {opt['name']}: 🚪 岔路优先探索") + score += 300 # 权重加大,确保一定转 + + if not is_dead_end and opt["dist"] > 8.0 and score > 0: + bonus = min(opt["dist"] * 5, 50) + score += bonus + + status_text = "⚫ 死路" if is_dead_end else ("✨ 新路" if score > 0 else "👣 老路") + print(f" -> {opt['name']}: {status_text} ({score:.1f})") + if not is_dead_end and VISUALIZE: + color = [0.0, 1.0, 0.0, 1.0] if score > 0 else [1.0, 0.0, 0.0, 1.0] + client.simPlotPoints([airsim.Vector3r(tx, ty, -1.5)], color_rgba=color, size=15, duration=2.0) + + if score > -900: + candidates.append({"angle": opt["angle"], "score": score, "name": opt["name"], "dist": opt["dist"]}) + + if candidates: + candidates.sort(key=lambda x: (x["score"], x["dist"]), reverse=True) best = candidates[0] print(f"✅ 决定: {best['name']}") if best["angle"] != 0: - turn_rel(best["angle"]) - - return True # 找到了路 - + turn_to_angle_gentle(best["angle"]) + + # ⚡ [关键修复] 转弯后检查:是否对准了墙? + # 如果转过去了,但前方距离很近 (<1.5m),说明冲过头了,对准了墙 + # 这时候需要做一个横向平移修正 + time.sleep(0.5) + check_f, check_l, check_r = get_lidar_info() + if check_f < 1.5: + print(" ⚠️ 检测到过冲 (对准墙壁) -> 尝试横向修正") + # 尝试左右平移看看哪边空 + # 这是一个盲猜逻辑:通常往回退一点(机身反方向平移)能对准路口 + # 假设我们刚刚右转,说明路口在机身右后方,如果对准了墙,说明机身太靠前 + # 我们尝试向后倒一点点 (Body Frame X 负方向) + client.moveByVelocityBodyFrameAsync(-0.5, 0, 0, 1.0, vehicle_name=VEHICLE_NAME).join() + + print(" 💨 缓慢进入...") + curr_z = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position.z_val + vz_fix = calculate_z_correction(curr_z) + + # 缓慢推进进入 + client.moveByVelocityBodyFrameAsync(CRUISE_SPEED, 0, float(vz_fix), 2.0, + drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, + yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), + vehicle_name=VEHICLE_NAME).join() + return True else: - print("⚠️ 全是死路! 掉头并封锁") - memory.mark_forbidden(pos.x_val, pos.y_val, client) - turn_rel(180) - return False # 被迫掉头 + print("⚠️ 绝境! 后撤封锁...") + client.moveByVelocityBodyFrameAsync(-1.0, 0, 0, 2.0, vehicle_name=VEHICLE_NAME).join() # 慢速后撤 + rad = math.radians(curr_yaw) + memory.mark_forbidden(pos.x_val + math.cos(rad) * 2.5, pos.y_val + math.sin(rad) * 2.5, client) + turn_to_angle_gentle(180) + return False try: - # 强制冷却时间 (防止刚转完头又觉得不对劲) cooldown_until = 0 - while True: - # 记录足迹 pos = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position memory.mark_visited(pos.x_val, pos.y_val, client) - f_d, l_d, r_d = get_lidar_info() - # 状态判定 + vz_fix = calculate_z_correction(pos.z_val) + vy_fix = calculate_y_correction(l_d, r_d) + is_stuck = f_d < STOP_DIST - # 只有当侧面非常宽敞(>5m),且没在冷却期内,才视为岔路 - is_junction = (l_d > 5.0 or r_d > 5.0) and time.time() > cooldown_until + # 只要侧面距离 > 2.5米 (放宽一点),立刻触发 + is_junction = (l_d > 2.5 or r_d > 2.5) and (time.time() > cooldown_until) - # --- 优先级 1: 看到出口 (Exit) --- - # 如果前方一片空旷 (>15米),说明要出去了,无视所有逻辑直接冲 if f_d > EXIT_DIST_THRESHOLD: - print(f"\r[🎉 发现出口!] 前方开阔 {f_d:.1f}m - 全速前进!", end="") - client.moveByVelocityBodyFrameAsync(CRUISE_SPEED * 1.5, 0, 0, 0.1, + print(f"\r[🚀 冲刺] 开阔地 {f_d:.1f}m", end="") + client.moveByVelocityBodyFrameAsync(3.0, 0, float(vz_fix), 0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), vehicle_name=VEHICLE_NAME).join() - continue # 跳过后面所有逻辑 + continue - # --- 优先级 2: 遇阻 --- if is_stuck: - print(f"\r[🛑 遇阻] 前方 {f_d:.1f}m", end="") + print(f"\r[🛑 遇阻] {f_d:.1f}m", end="") scan_and_decide() - # 决策完后,给 3秒 冷却时间,让它先飞离路口,别原地纠结 - cooldown_until = time.time() + 3.0 + cooldown_until = time.time() + 2.0 - # --- 优先级 3: 岔路 --- elif is_junction: - print(f"\r[✨ 岔路] 左:{l_d:.1f}m 右:{r_d:.1f}m", end="") - print(" -> 决策...") - # 往前送 2米 - client.moveByVelocityBodyFrameAsync(CRUISE_SPEED, 0, 0, 1.5, - drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, - yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), - vehicle_name=VEHICLE_NAME).join() + print(f"\r[🚪 发现路口] 左:{l_d:.1f}m 右:{r_d:.1f}m -> ⚡ 急刹决策", end="") + # ⚡ 关键修改:取消向前送的动作!立即停车! + client.moveByVelocityAsync(0, 0, 0, 0.5, vehicle_name=VEHICLE_NAME).join() scan_and_decide() cooldown_until = time.time() + 3.0 - # --- 优先级 4: 巡航 --- else: - print(f"\r[🚀 巡航] 前:{f_d:.1f}m ", end="", flush=True) - - z_curr = client.simGetVehiclePose(vehicle_name=VEHICLE_NAME).position.z_val - vz = (TARGET_HEIGHT - z_curr) * 1.0 - - # 简单的居中 - vy = 0 - if l_d < 2.0 and r_d < 2.0: - vy = (l_d - r_d) * 0.5 - vy = np.clip(vy, -1.0, 1.0) - + print(f"\r[🚀 巡航] H:{pos.z_val:.1f} Y:{vy_fix:.2f}", end="", flush=True) client.moveByVelocityBodyFrameAsync( - vx=CRUISE_SPEED, vy=float(vy), vz=float(vz), duration=0.1, + vx=CRUISE_SPEED, + vy=float(vy_fix), + vz=float(vz_fix), + duration=0.1, drivetrain=airsim.DrivetrainType.MaxDegreeOfFreedom, yaw_mode=airsim.YawMode(is_rate=True, yaw_or_rate=0), vehicle_name=VEHICLE_NAME From eb731eedc45da20a8c6e74d12eabd74a92a4ed41 Mon Sep 17 00:00:00 2001 From: explorer1009 <2350619772@qq.com> Date: Mon, 15 Dec 2025 22:08:29 +0800 Subject: [PATCH 26/26] Update README.md --- src/airsim_control/README.md | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/airsim_control/README.md b/src/airsim_control/README.md index 049742e882..1bb913fce5 100644 --- a/src/airsim_control/README.md +++ b/src/airsim_control/README.md @@ -6,20 +6,21 @@ AirSim 无人机激光雷达系统:迷宫自主寻路与避障 [核心功能] -1. 智能迷宫寻路 - - 直行优先策略:在多条路径可选时,优先保持直行,避免在老路中左右摇摆。 - - 死胡同记忆与封锁:利用 DFS (深度优先搜索) 思想,当检测到死路时,自动掉头并生成“虚拟墙(禁区)”,防止再次进入。 - - 出口诱导机制:当雷达检测到极远距离(>15米)的开阔地时,判定为出口并全速冲刺。 - - 机身坐标系控制:使用 Body Frame 控制飞行,彻底解决了无人机转向后方向感错乱的问题。 +1. 智能迷宫寻路 (DFS 深度优先) + 侧路优先策略:打破常规直行逻辑,采用 DFS (深度优先搜索) 思想,在遇到新岔路口时优先转弯探索,确保遍历所有路径。 + 死胡同记忆与回溯:当检测到死路时,自动倒车并生成“虚拟墙(禁区)”封锁该区域,随后掉头返回主路。 + 精准转向与纠偏:摒弃时间控制转向,采用闭环检测精准对准路口;若转向后对准墙壁,自动执行横向平移 (Side-Step) 进行修正。 + 机身坐标系控制:使用 Body Frame 控制飞行,结合“急刹-原地决策”逻辑,彻底解决路口冲过头的问题。 2. 记忆与决策系统 - - 栅格化记忆地图:将世界划分为 2米 x 2米的栅格,实时记录“去过的地方”。 - - 射线检测评分:在路口决策时,向各个方向发射虚拟射线,检测路径是否为“新路”,优先探索未知区域。 - - 防抖动冷却:决策后强制执行一段距离,防止在路口反复纠结。 + 栅格化记忆地图:将世界划分为 1.5米 x 1.5米的栅格,实时记录“去过的地方”。 + 射线检测评分:在路口决策时,向各个方向发射虚拟射线,检测路径深度与新旧程度,优先选择未探索区域。 + 出口诱导机制:当雷达检测到极远距离(>15米)的开阔地时,判定为出口并全速冲刺。 3. 基础飞行保障 - - 紧急避险:配备物理反推刹车逻辑,在距离障碍物 <1.0米 时强制反向推力,防止惯性撞墙。 - - 高度锁定:通过 PID 控制器将飞行高度严格限制在设定值(如 -1.5米)。 + 慢速精细操控:巡航速度降至 1.0m/s,配合高灵敏度刹车逻辑,适应狭窄迷宫环境。 + 高度硬限位 (Hard Clamp):在 PID 控制基础上增加垂直速度硬锁(限制在 ±0.8m/s),无论误差多大,强制防止无人机“飞天”或失控。 + 紧急避险:配备物理反推刹车逻辑,在距离障碍物 <1.0米 时强制反向推力,防止惯性撞墙。 [环境依赖] 在运行代码之前,请确保已安装以下 Python 库: @@ -66,11 +67,12 @@ pip install airsim numpy keyboard [可视化调试说明] 代码运行时,会在 AirSim 窗口中绘制彩色小球,代表无人机的“思维过程”: -- 绿色球体:新路 (New Path) - 未探索的区域,优先级最高。 -- 蓝色方块:足迹 (Visited) - 已经走过的路径点。 -- 红色球体:老路 (Old Path) - 探测到前方是走过的路,尽量避免。 -- 黑色大球:死路/禁区 (Forbidden) - 已确认为死胡同,生成虚拟墙封锁。 -- 黄色大球:出口 (Exit) - 检测到终点开阔地。 +绿色球体:新路 (New Path) - 未探索的区域,优先级最高。 +青色球体:岔路优先 (Priority) - 发现侧方新路口,强制优先探索。 +蓝色方块:足迹 (Visited) - 已经走过的路径点。 +红色球体:老路 (Old Path) - 探测到前方是走过的路,尽量避免。 +黑色大球:死路/禁区 (Forbidden) - 已确认为死胡同,生成虚拟墙封锁。 +黄色大球:出口 (Exit) - 检测到终点开阔地。 [手动操控 (辅助)] 虽然本系统设计为全自动运行,但在紧急情况下或使用手动模式代码时,可用以下按键: