-
Notifications
You must be signed in to change notification settings - Fork 1
Основные полётные функции FlightLib
Модуль FlightLib
библиотеки CleverFlightLib
предназначен для еще более упрощенного программирования автономного дрона.
takeoff
и land
созданы таким образом, что их можно вызывать без аргументов. Все значения по умолчанию подстроены под использование библиотеки на коптерах Clever2 и Clever3, однако все функции могут быть гибко подстроены под любую другую платформу.
Эти функции - асинхронные, и управление следующему оператору не будет передано до полного завершения текущей задачи.
Выполняет необходимые проверки, выполняет арминг коптера и переводит его в полетный режим offboard
(в случае отказа программа автоматически завершается), занимает указанную высоту во указанном фрейме (fcu_horiz
по умолчанию), переводит коптер в указанный фрейм (aruco_map
по умолчанию), корректирует высоту и фиксирует свою позицию. В случае успешного выполнения взлета функция возвращает True
; при не успешном позиционировании - False
.
Аргументы:
-
z
: целевая высота взлета (в метрах); по умолчанию1.0
-
speed_takeoff
: скорость при взлете и наборе высоты (в м\с); по умолчанию1.0
-
speed_inair
: скорость при позиционировании и корректировке высоты после взлета (в м\с); по умолчанию1.0
-
yaw
: угол по рысканью во фреймеframe_id_inair
(в радианах), поворот будет выполнен во время корректировки позиции; по умолчаниюnan
(текущее рысканье не будет изменено) -
frame_id_takeoff
: фрейм для выполнения отрыва от земли и набора минимальной высоты; по умолчаниюfcu_horiz
-
frame_id_inair
: фрейм для корректировки высоты и удержания точки поле взлета; по умолчаниюaruco_map
-
tolerance
: допустимая точность позиционирования (в метрах); по умолчанию0.25
-
wait_ms
: задержка при обновлении данных (при проверке состояний и позиционирования) (в миллисекундах); по умолчанию25
-
delay_fcu
: задержка с момента старта до проверки телеметрии при наборе необходимой высоты (в миллисекундах); по умолчанию1000
; необходимо, если точное позиционирование недоступно без достижения коптером некоторой высоты -
timeout_arm
: время ожидания перехода коптера в полетный режимoffboard
и его арминга (в миллисекундах); по умолчанию1500
; при превышении этого времени программа прекращается -
timeout_takeoff
: время ожидания набора необходимой высоты во фреймеframe_id_takeoff
(в миллисекундах); по умолчанию3000
; при превышении этого времени программа переходит к корректировке высоты во фреймеframe_id_inair
-
timeout_inair
: время ожидания набора корректировки высоты и позиционирования над точкой взлета во фреймеframe_id_inair
(в миллисекундах); по умолчанию7500
; при превышении этого времени функция возвращаетFalse
Выполняет необходимые проверки, снижает коптер до заданной высоты, после чего переводит в полётный режим 'autoland'. Автоматически дизармит коптер после посадки. При завершении посадки возвращает True
. В случае ручного перехвата во время или до запуска функции, переход в в полётный режим 'autoland' не совершается, функция возвращает False
Аргументы:
-
preland
: необходимо ли предварительное снижение до указанной высоты; по умолчаниюTrue
-
z
целевая высота снижения (в метрах); по умолчанию1.0
-
timeout_preland
: время ожидания корректировки высоты и позиционирования над точкой посадки во фреймеframe_id_preland
(в миллисекундах); по умолчанию10000
; при превышении этого времени функция переведет коптер в полетный режимautoland
-
frame_id_preland
: фрейм для снижения высоты; по умолчаниюaruco_map
-
timeout_land
: время ожидания посадки и автоматического дизарма в полётном режимеautoland (в миллисекундах); по умолчанию
5000`; при превышении этого времени функция автоматически произведет дизарм коптера -
wait_ms
: задержка при обновлении данных при посадке (при проверке состояния коптера) (в миллисекундах); по умолчанию100
Синхронная функция полёта в точку по заданным координатам(функция не ожидает прилёта коптера в заданную точку, управление следующему оператору программы передается мгновенно). Всегда возвращает True
Аргументы:
-
x
,y
,z
- целевые координаты в заданном фреймеframe_id
; обязательные аргументы. -
yaw
: угол по рысканью во фреймеframe_id
(в радианах), по умолчаниюnan
(текущее рысканье не будет изменено) -
speed
: скорость перемещения (в м\с); по умолчанию1.0
-
frame_id
: фрейм для навигации; по умолчаниюaruco_map
Асинхронная функция полёта в точку по заданным координатам(функция ожидает прилёта коптера в заданную точку, управление следующему оператору программы передается после полного выполнения). Возвращает True
, если коптер достиг заданной точки вовремя, False
при превышении времени ожидания прилёта timeout
.
Аргументы:
-
x
,y
,z
- целевые координаты в заданном фреймеframe_id
; обязательные аргументы. -
yaw
: угол по рысканью во фреймеframe_id
(в радианах), по умолчаниюnan
(текущее рысканье не будет изменено) -
speed
: скорость перемещения (в м\с); по умолчанию1.0
-
tolerance
: допустимая точность позиционирования (в метрах); по умолчанию0.2
-
frame_id
: фрейм для навигации; по умолчаниюaruco_map
-
wait_ms
: задержка при обновлении данных при (при проверке координат коптера) (в миллисекундах); по умолчанию100
-
timeout
: время ожидания достижения заданной точки коптером во фреймеframe_id
(в миллисекундах); по умолчанию7500
; при превышении этого времени функция возвращаетFalse
Асинхронная функция изменения высоты при сохранении текущих координат x
и y
(функция ожидает прилёта коптера в заданную точку, управление следующему оператору программы передается после полного выполнения). Возвращает True
, если коптер достиг заданной точки вовремя, False
при превышении времени ожидания прилёта timeout
.
Аргументы:
-
z
- целевая высота в заданном фреймеframe_id
; обязательные аргументы. -
yaw
: угол по рысканью во фреймеframe_id
(в радианах), по умолчаниюnan
(текущее рысканье не будет изменено) -
speed
: скорость перемещения (в м\с); по умолчанию1.0
-
tolerance
: допустимая точность позиционирования (в метрах); по умолчанию0.2
-
frame_id
: фрейм для навигации; по умолчаниюaruco_map
-
wait_ms
: задержка при обновлении данных при (при проверке координат коптера) (в миллисекундах); по умолчанию100
-
timeout
: время ожидания достижения заданной точки коптером во фреймеframe_id
(в миллисекундах); по умолчанию5000
; при превышении этого времени функция возвращаетFalse
Асинхронная функция изменения угла по рысканью yaw
при сохранении текущих координат x
, y
, z
(функция ожидает поворота коптера в заданный угол, управление следующему оператору программы передается после полного выполнения). Возвращает True
, если коптер достиг заданного угла вовремя, False
при превышении времени ожидания прилёта timeout
.
Аргументы:
-
yaw
: целевой угол по рысканью во фреймеframe_id
(в радианах), по умолчаниюnan
(текущее рысканье не будет изменено) -
speed
: скорость позиционирования (в м\с); по умолчанию1.0
-
tolerance
: допустимая точность позиционирования (в радианах); по умолчанию0.2
-
frame_id
: фрейм для навигации; по умолчаниюaruco_map
-
wait_ms
: задержка при обновлении данных при (при проверке координат коптера) (в миллисекундах); по умолчанию100
-
timeout
: время ожидания достижения заданной точки коптером во фреймеframe_id
(в миллисекундах); по умолчанию5000
; при превышении этого времени функция возвращаетFalse
Асинхронная функция вращения по рысканью (yaw
) в течение заданного времени timeout
при сохранении текущих координат x
, y
, z
(управление следующему оператору передается управление следующему оператору программы передается после полного выполнения). По истечении заданного времени прекращает вращение. Всегда возвращает True
Аргументы:
-
yaw_rate
: целевая угловая скорость по рысканью во фреймеframe_id
(в радианах/секунду), по умолчанию0.2
-
speed
: скорость позиционирования (в м\с); по умолчанию1.0
-
frame_id
: фрейм для навигации; по умолчаниюaruco_map
-
timeout
: время вращения по рысканью (yaw
) коптером во фреймеframe_id
(в миллисекундах); по умолчанию5000
; Если присвоить значение "None", то функция будет завершена без ожидания и вращение не будет прекращено (до выполнения следующего полетного оператора)