/
vasandi
/
AirSim
Обзор
Документация
Войти
/
vasandi
/
AirSim
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PythonClient/computer_vision/cv_mode.py
64 строки
2 KB
Андрей Васильченко
сборка под ubuntu 26.04
08 июл 2026, 10:15
08 июл 2026, 10:15
d53c5a2
Код
Авторство
О чём код?
# 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)