Файл миссии Python

Фай миссии мы создаем в 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()

Last updated