/
vasandi
/
AirSim
Обзор
Документация
Войти
/
vasandi
/
AirSim
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
PythonClient/computer_vision/cv_capture.py
55 строк
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 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)