OrionVision/sim_control.py

30 lines
881 B
Python

import airsim
import os
from utils.path_detect import read_image
# connect to the AirSim simulator
client = airsim.MultirotorClient()
client.confirmConnection()
# get control
client.enableApiControl(True)
# unlock
client.armDisarm(True)
# Async methods returns Future. Call join() to wait for task to complete.
client.takeoffAsync().join()
# keep fly in square path until get images
client.moveByVelocityAsync(0, 0, 0, 1).join()
# client.moveOnPathAsync([airsim.Vector3r(100, 0, -10)], 0.1, 60, airsim.DrivetrainType.ForwardOnly, airsim.YawMode(False, 0)).join()
# take video from bottom camera and show using cv2
raw = client.simGetImage("bottom_center", airsim.ImageType.Scene)
airsim.write_file(os.path.normpath("./data/temp.png"), raw)
read_image("./data/temp.png")
client.landAsync().join()
# lock
client.armDisarm(False)
# release control
client.enableApiControl(False)