Фай миссии мы создаем в Python IDE, называем его удобным для вас названием, например, mission.py.
Важно! Файл миссии должен находится в одном каталоге с библиотекой FlightController.py чтобы выполнить импорт библиотеки в код миссии
import FlightController
import sys
import time
# Создаем объект myCopter (можно задать любое имя)
myCopter = FlightController.Vehicle()
# Подключаемся к дрону (simulation - если true то подключаем симулятор к SITL)
if not myCopter.initialize(simulation = False):
sys.exit(1)
# На данном этапе происходит попытка ARM дрона, попытка происходит 3 раза,
# Если дрон не армится, выдается ошибка, необходимо подключиться в QGC для диагностики
timeoutCounter = 0
while not myCopter.arm():
timeoutCounter += 1
if timeoutCounter > 3:
print "Cannot arm the vehicle after 3 retries."
sys.exit(1)
# Команда взлета на заданную высоту, высота задается в метрах,
# в данном случае 0.8 это 80 см
if not myCopter.takeoff(0.8):
sys.exit(1)
# Висение коптера заданное количество секунд, в данном случае 2 секунды
myCopter.hover(2)
# Данная команда задает вектор и скорость движения дрона по x y и z,
# так называемая Velocity (3D скорость), параметр relative - тут всегда false
myCopter.send_nav_velocity(0.1, 0, 0, relative = False)
# Данная команда задает вектор и расстояние перемещения по осям x y z
myCopter.goto(-0.4, 0, 0, relative = True)
# Задержка перед выполнением следующей команды в сек.
# необходима после выполнения каждой команды перемещения.
time.sleep(3)
# Команда поворота вокруг вертикальной оси по часовой стрелке
# задаем градус поворота, абсолютное или относительое значение (relative = true)
# и направление по часовой или против часовой стрелки
myCopter.condition_yaw(90, relative = True, clock_wise = True)
# Команда поворота вокруг вертикальной оси против часовой стрелки
# myCopter.condition_yaw(90, relative = True, clock_wise = False)
# Приземление
timeoutCounter = 0
while not myCopter.land():
timeoutCounter += 1
if timeoutCounter > 3:
sys.exit(1)
# Завершение миссии
myCopter.exit()