САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
КАФЕДРА КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И СИСТЕМ
Любич Леонард Яковлевич
Выпускная квалификационная работа бакалавра
Автоматическое управление посадкой
квадрокоптера на движущееся основание
Направление 010400
Прикладная математика и информатика
Научный руководитель,
кандидат физ.-мат. наук,
доцент
Сотникова М. В.
Санкт-Петербург
2016
Содержание
Введение .................................................................................................................. 3
Глава 1. Постановка задачи ................................................................................... 5
1.1. Общая схема мисии автопосадки .......................................................... 6
1.2. Моделирование динамики квадрокоптера ........................................... 9
1.3. Система компьютерного зрения .......................................................... 13
1.4. Математическая постановка задачи .................................................... 16
Глава 2. Разработка алгоритма управления ...................................................... 18
2.1. Алгоритм Backstepping ......................................................................... 19
2.2. Общая схема алгоритма Backstepping ................................................. 20
2.3. Применение алгоритма Backstepping к квадрокоптеру .................... 22
Глава 3. Программная реализация алгоритма управления .............................. 25
3.1. Алгоритм Backstepping ......................................................................... 25
3.2. Трехмерная имитация системы компьютерного зрения ................... 28
3.3. Результаты имитационного моделирования ...................................... 31
Выводы .................................................................................................................. 34
Список литературы .............................................................................................. 35
Введение
Развитие
систем
с
использованием
беспилотных
летательных
аппаратов (БЛА) является современной тенденцией в аэрокосмических
исследованиях.
Беспилотным
летательным
аппаратом
называется
движущийся объект, на борту которого в процессе полета отсутствует
человек. Такие БЛА могут пилотироваться дистанционно или автономно
следовать по предварительно запрограммированному пути. БЛА в основном
используются в военных операциях. Однако они находят приложение и в
гражданских нуждах, таких как пожаротушение. В целом, беспилотные
аппараты
предпочтительны
при
выполнении
неподходящих
для
пилотируемых аппаратов миссий.
Существует широкий спектр геометрических конфигураций, средств
управления и общего функционирования БЛА. Аппараты с лопастными
моторами имеют ряд преимуществ перед вариантами с фиксированными
крыльями. К ним в первую очередь относятся способность вертикально
взлетать и садиться, а также возможность парить над неподвижной точкой.
Кроме того, БЛА вертолетного типа могут перемещаться в диапазоне низких
скоростей.
Одну из возможных конфигураций моторов вертолета представляет так
называемый квадрокоптер – летательный аппарат с 4-мя основными винтами
и отсутствующим хвостовым. Все несущие винты расположены в одной
плоскости. Управление движением квадрокоптера достигается за счет
изменения скоростей вращения каждого пропеллера.
Рис. 1. Квадрокоптер
3
Целью данной работы является реализация управления посадкой
квадрокоптера
на
движущуюся
платформу.
Движение
платформы
происходит в горизонтальной плоскости, что может соответствовать участку
земли или другому подвижному объекту с очень малыми колебаниями по
вертикали. Основным и единственным координатором движения является
сам БЛА, оценивающий обстановку по видеоданным, получаемым с
бортовой камеры.
Квадрокоптер представляет из себя транспортное средство с четырьмя
входными
силами,
которые
преобразуются
в
шесть
управляющих
воздействий. Существует ряд способов управления движением такой
системы. Могут применяться методы управления линейными системами
(PID-контроллер,
нелинейной
Однако,
LQR).
системой,
для
поскольку
должной
квадрокоптер
функциональности
является
необходимо
применение нелинейных способов управления. Наиболее употребимыми
являются методы Backstepping, Sliding и метод линеаризации обратной связи.
В работе используется закон управления Backstepping, примененный к
квадрокоптеру
для
разработки
надежной
системы
стабилизации
и
преследования траектории.
Нелинейный Backstepping позволяет построить закон управления для
следования желаемой траектории. В рамках работы таковой является
движение целевой точки посадки. Траектория платформы изначально
считается неопределенной. Считается, что посадочная область двигается с
небольшой
скоростью
и
ее
траектория
является
непрерывно
дифференцируемой, поэтому в течение малых промежутков времени её
можно приближать линейной. Это учитывается при симуляции миссии
полета.
В работе описана математическая модель квадрокоптера, система
компьютерного зрения, построена общая схема полета при выполнении
миссии посадки и синтезирован закон управления для нее. Также
представлены результаты имитационного моделирования тестовых полетов.
4
Глава 1. Постановка задачи
Пусть имеется один квадрокоптер с симметрично расположенными
винтами и жестко прикрепленной ко дну видеокамерой. Также есть круговая
плоская платформа, которая двигается в горизонтальной плоскости в
пределах обнаружения ее квадрокоптером. Радиус платформы незначительно
превосходит расстояние от центра масс до края любого из винтов. На
стартовом этапе квадрокоптер находится на земле, моторы выключены.
Целевым является состояние, когда квадрокоптер сел на движущуюся
платформу.
Требуется:
построить математическую модель динамики квадрокоптера в
виде системы обыкновенных дифференциальных уравнений
второго порядка;
выбрать алгоритм обнаружения по видеоданным, поступающим с
бортовой камеры, текущего положения платформы относительно
квадрокоптера;
построить
закон
управления,
который
обеспечивает
стабилизацию аппарата и следованию за траекторией движения
платформы;
построить алгоритм перехода квадрокоптера из начального
состояния в область посадки;
реализовать программно симуляцию этого перехода;
получить и проанализировать результаты, сделать выводы.
Предполагается, что квадрокоптер не может работать в штормовых
условиях: сильном дожде, порывистом ветре, высокой турбулентности.
5
1.1. Общая схема миссии автопосадки
Для летательных аппаратов углы поворота вокруг осей прямоугольной
системы координат приняты следующие названия: угол крена (roll), угол
тангажа (pitch) и угол рыскания (yaw).
Риc. 2. Крен, тангаж и рыскание.
Потребуем выполнения следующих условий при посадке [1]:
Крен и тангаж в момент посадки должны быть нулевыми
𝜃 𝑑𝑒𝑠 = 0,
Точка
посадки
должна
𝑝𝑙𝑎𝑡
𝑥 = 𝑥𝑐
𝜑 𝑑𝑒𝑠 = 0.
быть
,
в
центре
𝑝𝑙𝑎𝑡
𝑦 = 𝑦𝑐
платформы
.
На завершающем этапе вертикальная скорость квадрокоптера
относительно платформы должна подчиняться условию
𝑧̇ ≤ 0.5 м⁄с.
Единственное, чем может руководствоваться автопилотная система, –
получаемые с бортовой камеры кадры. По ним система должна быть
способна вычислить свое положение относительно платформы. Такой подход
в иностранной литературе называется image-based [1]. Главный минус
подхода заключается в том, что потеря цели на кадре лишает квадрокоптер
6
возможности оценить свое положение относительно платформы. Для
компенсации этого недостатка обычно добавляется GPS-навигация.
В работе предполагается, что квадрокоптер изначально находится в
небольшой удаленности от платформы.
Ниже представлена блок-схема режимов котроллера во время полета и
их детальное описание.
Режим поиска
В этом режиме квадрокоптер, начиная полет из начального состояния,
набирает высоту до тех пор, пока платформа не будет обнаружена на кадре,
полученном с камеры. Предполагается, что цель будет двигаться в пределах
некоторой ограниченной области, не выходя за ее пределы. Обозначим
характерный радиус этой области через 𝑅𝑝 . Пусть FOV (field of view) – угол
обзора камеры. Тогда высота, с которой цель может быть гарантированно
обнаружена, вычисляется по формуле
𝑧𝑠𝑒𝑎𝑟𝑐ℎ =
𝑅𝑝
𝑡𝑔(𝑚𝑖𝑛{𝐹𝑂𝑉}⁄2)
(1)
К каждому получаемому с камеры кадру применяется алгоритм
обнаружения области платформы.
Режим отслеживания
После того, как цель была обнаружена видеокамерой, квадрокоптер
начинает выполнять задачу позиционирования над платформой на заданной
высоте.
К каждому кадру по-прежнему применяется алгоритм обнаружения. В
случае потери цели контроллер возвращается в режим поиска.
Режим сближения
После
выполнения
задачи
позиционирования
квадрокоптер
выравнивается с центром платформы. Это способствует уменьшению
вероятности расхождения с ней во время финального снижения.
Режим посадки
Данный режим управляет вертикальной скоростью квадрокоптера,
7
который должен приземлиться как можно ближе к заданной точке посадки.
При сближении БЛА (следовательно, и камеры) с целью, ее
изображение полностью заполняет кадр. В следствие этого, система
видеонаблюдения оказывается не в состоянии определить положение
квадрокоптера относительно платформы. Данная проблема может быть
решена
изменением
дополнительных
внешнего
ориентиров.
В
вида
платформы
данной
работе
с
добавлением
этот
вопрос
не
рассматривается.
При
разработке
моделирования
в
среде
программного
комплекса
MATLAB-Simulink
имитационного
математическая
модель,
регулятор и платформа реализуются в виде отдельных подсистем, связанных
друг с другом. При этом режимы полета выбираются в процессе
моделирования в зависимости от текущего состояния системы.
Рис. 3. Схема миссии.
8
Особенность подхода image-based control состоит в том, что целевое
состояние системы изначально выбирается как желаемый образ цели на
кадре, а впоследствии преобразуется в желаемое положение квадрокоптера.
1.2. Моделирование динамики квадрокоптера
Математическая модель квадрокоптера необходима для разработки
регуляторов, а также для их тестирования в имитационных полетах.
Используемые предположения [1]:
квадрокоптер имеет жесткую структуру;
квадрокоптер симметричен;
осевая нагрузка моторов направлена вертикально;
масса постоянна.
Рис. 4. Системы координат.
Будем использовать две системы координат:
1. связанная с Землей ортогональная система координат 𝑂𝑖 𝑥𝑖 𝑦𝑖 𝑧𝑖 .
Ось 𝑂𝑖 𝑥𝑖 направлена на восток, ось 𝑂𝑖 𝑦𝑖 на север, ось 𝑂𝑖 𝑧𝑖
9
дополняет до правой тройки;
2. связанная
с
телом
квадрокоптера ортогональная
система
координат 𝑂𝑏 𝑥𝑏 𝑦𝑏 𝑧𝑏 . Ось 𝑂𝑏 𝑥𝑏 направлена вправо, ось 𝑂𝑏 𝑦𝑏
вперед, ось 𝑂𝑏 𝑧𝑏 дополняет до правой тройки.
Введем следующие обозначения:
положение: 𝑃 = (𝑥, 𝑦, 𝑧)𝑇 ;
скорость: 𝑉 = (𝑢, 𝑣, 𝑤)𝑇 ;
углы Эйлера: 𝜃 = (𝜑, 𝜃, 𝜓)𝑇 ;
угловые скорости: 𝜔 = (𝑝, 𝑞, 𝑟)𝑇 .
Переход от системы координат 𝑂𝑏 𝑥𝑏 𝑦𝑏 𝑧𝑏 к системе координат 𝑂𝑖 𝑥𝑖 𝑦𝑖 𝑧𝑖
осуществляется при помощи матрицы поворота [3]:
𝑇 𝐼𝐵
𝐶𝜓 𝐶 𝜃
= [𝐶𝜓 𝑆 𝜃 𝑆𝜑 − 𝑆𝜓 𝐶𝜑
𝐶𝜓 𝑆 𝜃 𝐶𝜑 + 𝑆𝜓 𝑆𝜑
𝑆𝜓 𝐶 𝜃
𝑆𝜓 𝑆 𝜃 𝑆𝜑 + 𝐶𝜓 𝐶𝜑
𝑆𝜓 𝑆 𝜃 𝐶𝜑 − 𝐶𝜓 𝑆𝜑
−𝑆 𝜃
𝐶 𝜃 𝑆𝜑 ],
𝐶 𝜃 𝐶𝜑
(2)
где 𝐶𝛾 = 𝑐𝑜𝑠(𝛾), 𝑆𝛾 = 𝑠𝑖𝑛(𝛾).
Обратный переход осуществляется матрицей 𝑇 𝐵𝐼 = 𝑇 𝐼𝐵
−1
𝑇
= 𝑇 𝐼𝐵 .
Запишем кинематические дифференциальные уравнения для углов
Эйлера через угловые скорости [1]:
𝜑̇
1
𝑠𝑖𝑛𝜑𝑡𝑔𝜃
̇
𝑐𝑜𝑠𝜑
[ 𝜃 ] = [0
0 𝑠𝑖𝑛𝜑⁄𝑐𝑜𝑠𝜃
𝜓̇
𝑐𝑜𝑠𝜑𝑡𝑔𝜃 𝑝
−𝑠𝑖𝑛𝜑 ] [𝑞 ],
𝑐𝑜𝑠𝜑⁄𝑐𝑜𝑠𝜃 𝑟
(3)
где 𝜑, 𝜃, 𝜓 – крен, тангаж и рыскание соответственно.
Из второго закона Ньютона могут быть получены уравнения движения
квадрокоптера [1]:
𝐹=
𝑑
(𝑚𝑉),
𝑑𝑡
𝑑𝐻
.
𝑑𝑡
Распишем уравнения (4), (5) в скалярной форме:
𝑀=
(4)
(5)
10
𝐹𝑥
−𝑚𝑔 + 𝑚𝑢̇
𝐹
[ 𝑦] = [
],
𝑚𝑣̇
𝐹𝑧
𝑚𝑤̇
(6)
𝐼𝑥 𝑝̇ + (𝐼𝑧 − 𝐼𝑦 )𝑞𝑟
𝑀𝑥
[𝑀𝑦 ] = [𝐼𝑦 𝑞̇ + (𝐼𝑥 − 𝐼𝑧 )𝑟𝑝],
𝑀𝑧
𝐼𝑧 𝑟̇ + (𝐼𝑦 − 𝐼𝑥 )𝑝𝑞
(7)
где 𝐹𝑖 , 𝑀𝑖 – это проекции сил и моментов сил (уравнения записаны в системе
координат 𝑂𝑏 𝑥𝑏 𝑦𝑏 𝑧𝑏 ).
Совместное управление 𝑈1 есть суммарная подъемная сила, вызванная
четырьмя моторами одновременно. Вращение по углу тангажа возникает при
возрастании (падении) скорости заднего мотора, тогда как скорость
переднего убывает (растет). Движение по крену получается ускорением
(замедлением) правого мотора совместно с замедлением (ускорением)
левого. Угол рыскания изменяется, когда одновременно растут (падают)
скорости вращения переднего и заднего моторов, а боковых падают (растут).
Динамическая модель квадрокоптера [9] в виде системы ОДУ имеет
вид:
1
[(𝐼 − 𝐼𝑦 )𝑞𝑟 + 𝑀𝑥 + 𝑀𝑥 𝑑 ]
𝐼𝑥 𝑧
1
𝜃̈ = [(𝐼𝑧 − 𝐼𝑥 )𝑟𝑝 + 𝑀𝑦 + 𝑀𝑦 𝑑 ]
𝐼𝑦
1
𝜓̈ = [(𝐼𝑥 − 𝐼𝑦 )𝑝𝑞 + 𝑀𝑧 + 𝑀𝑧 𝑑 ]
𝐼𝑧
.
𝐹𝑥
𝑥̈ =
𝑚
𝐹𝑦
𝑦̈ =
𝑚
𝐹𝑧
𝑧̈
=
−𝑔
+
{
𝑚
𝜑̈ =
(8)
Здесь 𝑀𝑖 – это моменты управляемых сил, 𝑀𝑖 𝑑 – моменты внешних
возмущений, 𝐹𝑖 – управляемые силы, 𝐹𝑖 𝑑 – силы внешних возмущений, m –
масса квадрокоптера, 𝑙 – расстояние от центра масс до винта. Эти величины
вычисляются по формулам:
11
𝑀𝑥 =
𝑙
𝑙
𝑙
𝑈2 , 𝑀𝑦 = 𝑈3 , 𝑀𝑧 = 𝑈4 ,
𝐼𝑥
𝐼𝑦
𝐼𝑧
𝑀𝑥 𝑑 = −
𝐽𝑟
𝐽𝑟
𝑞Ω, 𝑀𝑦 𝑑 = − 𝑝Ω, 𝑀𝑧 𝑑 = 0,
𝐼𝑥
𝐼𝑦
(9)
𝐹𝑥 = (𝑐𝑜𝑠 𝜓𝑠𝑖𝑛 𝜃𝑐𝑜𝑠𝜑 + 𝑠𝑖𝑛 𝜓𝑠𝑖𝑛𝜑)𝑈1 ,
𝐹𝑦 = (𝑠𝑖𝑛 𝜓𝑠𝑖𝑛 𝜃𝑐𝑜𝑠𝜑 − 𝑠𝑖𝑛 𝜓𝑠𝑖𝑛𝜑)𝑈1 ,
(10)
𝐹𝑧 = (𝑐𝑜𝑠𝜑𝑐𝑜𝑠𝜃)𝑈1 .
Управляющие сигналы 𝑈1 , 𝑈2 , 𝑈3 , 𝑈4 и возмущение Ω находятся через
скорости моторов по следующим формулам:
𝑈1 = 𝑏(Ω12 + Ω22 + Ω23 + Ω24 ),
𝑈2 = 𝑏(−Ω22 + Ω24 ),
𝑈3 = 𝑏(−Ω12 + Ω23 ),
(11)
𝑈4 = 𝑑(−Ω12 + Ω22 − Ω23 + Ω24 ),
Ω = −Ω1 + Ω2 − Ω3 + Ω4 .
Динамическую модель, описанную системой (8), можно переписать в
виде LTI-модели в ss-форме. Определим вектор состояния:
𝑋 𝑇 = [𝜑
𝜑̇
𝜃
𝜃̇
𝜓
𝜓̇
𝑧
𝑧̇
𝑥
𝑥̇
𝑦
𝑦̇ ],
𝑥1 = 𝜑, 𝑥2 = 𝜑̇ = 𝑥1̇ , 𝑥3 = 𝜃, 𝑥4 = 𝜃̇ = 𝑥3̇ , 𝑥5 = 𝜓, 𝑥6 = 𝜓̇ = 𝑥5̇ ,
𝑥7 = 𝑧, 𝑥8 = 𝑧̇ , 𝑥9 = 𝑥, 𝑥10 = 𝑥̇ , 𝑥11 = 𝑦, 𝑥12 = 𝑦̇ .
𝑥2
𝑥4 𝑥6 𝑎1 + 𝑥4 𝑎2 Ω + 𝑏1 𝑈2
𝑥4
𝑥2 𝑥6 𝑎3 + 𝑥2 𝑎4 Ω + 𝑏2 𝑈3
𝑥6
𝑥4 𝑥6 𝑎5 + 𝑏3 𝑈4
𝑥8
̇
𝑋 = 𝑓(𝑋, 𝑢) =
1
,
−𝑔 + (𝑐𝑜𝑠𝑥1 𝑐𝑜𝑠𝑥3 ) 𝑈1
𝑚
𝑥10
1
𝑢𝑥 𝑈1
𝑚
𝑥12
1
𝑢
𝑈
𝑦
(
)
𝑚 1
(12)
(13)
12
где
𝑎1 = (𝐼𝑦 − 𝐼𝑧 )⁄𝐼𝑥 , 𝑎2 = −𝐽𝑟 ⁄𝐼𝑥 , 𝑎3 = (𝐼𝑧 − 𝐼𝑥 )⁄𝐼𝑦 , 𝑎4 = −𝐽𝑟 ⁄𝐼𝑦 ,
𝑎5 = (𝐼𝑥 − 𝐼𝑦 )⁄𝐼𝑧 , 𝑏1 = 𝑙 ⁄𝐼𝑥 , 𝑏2 = 𝑙 ⁄𝐼𝑦 , 𝑏3 = 𝑙 ⁄𝐼𝑧 ,
𝑢𝑥 = (𝑐𝑜𝑠𝑥1 𝑠𝑖𝑛 𝑥3 𝑐𝑜𝑠𝑥5 + 𝑠𝑖𝑛 𝑥1 𝑠𝑖𝑛𝑥5 ),
𝑢𝑦 = (𝑠𝑖𝑛𝑥1 𝑠𝑖𝑛𝑥3 𝑐𝑜𝑠𝑥5 − 𝑠𝑖𝑛 𝑥1 𝑠𝑖𝑛𝑥5 ).
1.3. Система компьютерного зрения
Бортовая камера является неподвижной и направлена вертикально
вниз.
Она
используется
для
определения
положения
квадрокоптера
относительно платформы.
Характеристики цели могут быть разнообразны и многочисленны.
Геометрическая конструкция и другие свойства цели существенно влияют на
сложность алгоритма обнаружения, поэтому целесообразно определить их
заранее. Можно выделить следующие основные требования:
предпочтительны простые геометрические формы (круги или
квадраты);
размеры: с одной стороны целевая граница должна быть
достаточно малой, чтобы помещаться в кадр изображения при
сближении квадрокоптера с платформой; с другой стороны, при
слишком малых размерах цель будет занимать недостаточное
количество пикселей для качественной работы алгоритмов
компьютерного зрения;
цвет
платформы
следует
выбрать
таким,
чтобы
он
не
существовал в изобилии в природе (например, красный).
Из вышеуказанных характеристик очевидно, что на изображении
камеры цель будет отображаться как некоторое красное пятно. Требуется
разработать соответствующий алгоритм обработки изображений, который
обнаруживает и выявляет свойства красных пятен на кадре, состоящий из
следующих этапов:
13
1. поиск красных пикселей;
2. конвертация изображения в бинарное;
3. извлечение свойств пятен.
Поиск красных пикселей
Обнаружение объекта производится путем сканирования всех пикселей
захваченного изображения. При использовании цветовой модели RGB
каждый пиксель представлен 3х-элементным вектором. «Чистому» красному
пискелю будет соответствовать значение [255, 0, 0]. В реальной ситуации
такие
значения
почти
не
встречаются,
поэтому
нужно
допустить
определенное отклонение и включить в рассмотрение «красноподобные»
пиксели. Ниже представлены некоторые варианты критерия «красноты» [1]:
√(𝑅 − 255)2 + 𝐺 2 + 𝐵2 < 𝜀1
𝑅 > 𝜀2 ∙ 𝐺 && 𝑅 > 𝜀2 ∙ 𝐵
𝑅 > 𝜀3 ∙ (𝐺 + 𝐵)
Конвертация в бинарное изображение
Черный цвет присваивается пикселям, которые по какому-либо из
критериев приняты красными, все остальные принимаются белыми. Путем
таких преобразований платформа на изображении примет вид сплошной
черной кляксы.
Извлечение свойств пятен
Важно отметить, что вполне возможно множественное появление
черных клякс на кадрах. Необходимо построить фильтр для исключения
шумовых
пятен.
Затем,
учитывая
что
нужные
сгустки
пискселей
обнаружены, можно вычислить некоторые их свойства: площадь, периметр,
центр, координаты краев.
По кадру на изображении можно вычислить позицию соответствующей
пикселю точки относительно камеры. Введя плоскую ортогональную
систему координат на изображении, центр которой находится в центре кадра,
порядковый номер каждого пискеля можно принять за его координаты в этой
14
системе. По расстоянию между пикселями 𝑑𝑝 и известному реальному
расстоянию
𝑑𝑟𝑒𝑎𝑙
можно
вычислить
высоту,
с
которой
захвачено
изображение:
𝑧=
𝑠𝑐 𝑓𝑑𝑟𝑒𝑎𝑙
,
𝑑𝑝
(15)
где 𝑓это фокусное расстояние, 𝑠𝑐 это масштабирующий множитель.
Относительное горизонтальное положение точки вычисляется как
𝑥=
𝑧(𝑥𝑝 − 𝑥𝑜 )
𝑧(𝑦𝑝 − 𝑦𝑜 )
,𝑦 =
.
𝑠𝑐 𝑓
𝑠𝑐 𝑓
(16)
Координаты центра пятна вычисляются по формулам:
𝑥𝑡𝑎𝑟𝑔𝑒𝑡 = (𝑚𝑖𝑛(𝑐𝑖𝑟𝑐𝑙𝑒𝑥 ) + 𝑚𝑎𝑥(𝑐𝑖𝑟𝑐𝑙𝑒𝑥 ))/2,
(17)
𝑦𝑡𝑎𝑟𝑔𝑒𝑡 = (𝑚𝑖𝑛(𝑐𝑖𝑟𝑐𝑙𝑒𝑦 ) + 𝑚𝑎𝑥(𝑐𝑖𝑟𝑐𝑙𝑒𝑦 ))/2.
Для фильтрации пятен можно ввести два критерия [1]:
занимаемая область на изображении должна быть не менее, чем
пороговое значение 𝜀𝐴𝑟𝑒𝑎 ;
показатель округлости области |
периметр
2𝜋
−
диаметр
2
| должен быть
меньше 𝜀𝑅 .
Заканчивая
координатная
обзор
плоскость
системы
камеры
зрения,
в
отдельно
системе
подчеркнем,
координат
тела
что
имеет
собственную ориентацию, что требуется учитывать при составлении
отношений между точкой на изображении и точкой в пространстве. Это
должно быть учтено при составлении отношений между точкой на
изображении и точкой в пространстве. Матрица перехода имеет вид:
𝑇 𝐶𝐼 = 𝑇 𝐶𝐵 ∙ 𝑇 𝐵𝐼 .
Построенная
система
зрения
(18)
позволяет
выявлять
траекторию
перемещения центра платформы в пространстве, руководствуясь только
видеоданными с камеры. Следование этой траектории является целью
управления в процессе полета квадрокоптера.
Как видно на рис. 5, на кадре обнаружено множество черных элементов
15
разного размера. С помощью представленного выше подхода возможно
выделить самую крупную область, наиболее похожую на цель.
Рис.5. Пример работы алгоритма обнаружения красных пикселей.
1.4. Математическая постановка задачи
Пусть круговая платформа с центром (𝑥𝑐 , 𝑦𝑐 ) движется по некоторому
закону:
𝑥 = 𝑥𝑝𝑙𝑎𝑡 (𝑡)
{𝑦 = 𝑦𝑝𝑙𝑎𝑡 (𝑡),
𝑧=0
а перемещение квадрокоптера в пространстве задается изменением его
координат (𝑥, 𝑦, 𝑧) = [𝑥(𝑡), 𝑦(𝑡), 𝑧(𝑡)].
Динамика квадрокоптера описывается системой (16).
Вектор
компоненты
управления
определяется
зависят
настраиваемых
от
𝑢 = (𝑈1 , 𝑈2 , 𝑈3 , 𝑈4 )𝑇 .
как
параметров.
Все
Следовательно,
обозначив набор параметров через 𝐾, управление становится функцией этих
параметров: 𝑢 = 𝑢(𝐾).
Требуется построить управление 𝑢 = 𝑢(𝐾) для системы (16):
{
lim |𝑥 − 𝑥𝑝𝑙𝑎𝑡 (𝑡)| = 0
𝑡→∞
lim |𝑦 − 𝑦𝑝𝑙𝑎𝑡 (𝑡)| = 0
,
𝑡→∞
и обеспечить выполнение условия
|𝑥 − 𝑥𝑐 | < Δ
𝑧=0⟹{
,
|𝑦 − 𝑦𝑐 | < Δ
где Δ обозначает разницу между радиусом платформы и радиусом
16
окружности, описывающей квадрокоптер.
Основные идеи и принципы построения решения могут быть
почерпнуты в [1]. Также в этом источнике глубоко рассматривается imagebased подход.
Управление квадрокоптером является сложной задачей из-за его
нелинейного поведения. В [2] описывается моделирование и управление
кавдрокоптером.
В [3] автор производит сравнение линейных и нелинейных методов
управления квадрокоптерами.
Нелинейный метод управления Backstepping довольно подробно
описывается [4].
Управление летательным аппаратом с 4 винтами при помощи
компьютерного зрения исследуется в работе [5].
Вопрос навигации летательных аппаратов с использованием данных,
получаемых с бортовой камеры описан в [6].
Для управления квадрокоптером существует целый ряд различных
методов. Их можно подразделить на линейные, такие как LQR и PID,
рассматриваемые в [7], и нелинейные, в частности Backstepping и Sliding [9].
В [8] автор дает общую схему синтеза управления квадрокоптером.
17
Глава 2. Разработка алгоритма управления
Квадрокоптер
является
неустойчивой
системой,
поэтому
для
управления таким аппаратом требуется контроллер с обратной связью.
Backstepping – подход к синтезу регуляторов для нелинейных систем,
основанный на теории устойчивости Ляпунова [4].Метод разработан в 1990г.
П. Кокотовичем для построения алгоритмов управления системами
определенной структуры. Эти системы имеют рекурсивную структуру, т.е.
состоят из отдельных подсистем, на вход каждой из которых поступают
данные из стабильной внешней по отношению к ней подсистемы.
Построенная
в
предыдущей
главе
математическая
модель
квадрокоптера (1) имеет вышеописанную структуру. Первые три ОДУ
представляют подсистему, отвечающую за вращение БЛА в пространстве. В
свою очередь следующие три уравнения описывают горизонтальные
перемещения [8]. Причем вторая подсистема зависит от выходного состояния
первой. Следовательно, применительно к построенной модель backstepping
начинает работу со стабилизации по углам и угловым скоростям, результаты
которой будут использованы при дальнейшей стабилизации по позиции и
скоростям.
Верно построенный закон управления Backstepping обеспечивает
асимптотическую сходимость вектора состояния системы к желаемой
величине. Применительно к данной работе это позволит квадрокоптеру
совершать следование за центром платформы с целью максимального
сближения с ней и дальнейшей посадки. Иначе говоря, кроме стабилизации
движения самого квадрокоптера, аппарат, используя методы компьютерного
зрения, самостоятельно определит целевую траекторию и будет следовать по
ней.
18
2.1. Метод управления Backstepping
Рассмотрим систему следующего вида:
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑧1
𝑧1̇ = 𝑓1 (𝑥, 𝑧1 ) + 𝑔1 (𝑥, 𝑧1 )𝑧2
⋮
,
𝑧𝑖̇ = 𝑓𝑖 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑖−1 , 𝑧𝑖 ) + 𝑔𝑖 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑖−1 , 𝑧𝑖 )𝑧𝑖+1
⋮
{𝑧𝑘̇ = 𝑓𝑘 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−1 , 𝑧𝑘 ) + 𝑔𝑘 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−1 , 𝑧𝑘 )𝑢
(19)
где 𝑥 ∈ 𝑅𝑛 , 𝑧𝑖 ∈ 𝑅1 , 𝑢 ∈ 𝑅1 - вход в систему, 𝑓𝑖 (0) = 0.
При построении управления для системы (19) будем пользоваться
теоремой Ляпунова об устойивости.
Теорема Ляпунова об асимптотической устойчивости. Пусть
имеется система
𝑑𝑥
𝑑𝑡
= 𝑓(𝑥, 𝑡). При этом считается, что множество 𝑍 =
является
{(𝑡, 𝑥) | 𝑡 ≥ 0, ‖𝑥‖ ≤ 𝐻}
областью
существования
и
единственности решения задачи Коши. Если для системы существует
положительно
определенная
функция
Ляпунова
𝑉(𝑡, 𝑥),
непрерывно
дифференцируемая по совокупности своих аргументов, допускающая
бесконечно малый высший предел и имеющая отрицательно определенную
производную 𝑉̇ (𝑡, 𝑥) по времени в силу системы, то нулевое решение 𝑥 =
0рассматриваемой системы асимптотически устойчиво по Ляпунову.
Пусть
первая
в
(19)
подсистема
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑢𝑥 (𝑥)
стабилизирована некоторым известным управлением 𝑢𝑥 (𝑥): 𝑢𝑥 (0) = 0. Пусть
также известна функция Ляпунова 𝑉𝑥 для стабилизированной системы.
Управление
𝑢,
построенное
с
помощью
Backstepping,
даст
непосредственноестабилизирующее воздействие на состояние 𝑧𝑘 . В свою
очередь состояние 𝑧𝑘 действует как стабилизирующее управление для
состояния 𝑧𝑘−1 . Это процесс продолжается аналогичным образом, и каждое
состояние 𝑧𝑖 стабилизируется фиктивным управлением 𝑧𝑖+1 . Проход в
обратном направлении от управления 𝑢 до управления 𝑧1 послужил
причиной названия метода Backstepping, т.е. «шагание назад».
19
Таким образом, подход Backstepping состоит в определении того, как
стабилизировать подсистему 𝑥 с помощью выхода подсистемы 𝑧1 , приводом
которой является 𝑧2 , и так далее. Процесс «спускается вниз» до тех пор, пока
не будет построено последнее управление 𝑢. Пошаговая схема:
1. 𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑢𝑥 (𝑥) стабилизирована, функция Ляпунова 𝑉𝑥 ;
2. Управление 𝑢1 (𝑥, 𝑧1 ) строится так, что 𝑧1 сходится к 𝑢𝑥 . При
1
построении используется 𝑉1 (𝑥, 𝑧1 ) = 𝑉𝑥 (𝑥) + (𝑧1 − 𝑢𝑥 (𝑥))2 ;
2
3. Управление 𝑢2 (𝑥, 𝑧1 , 𝑧2 ) строится так, что 𝑧2 сходится к 𝑢1 . При
построении
используется
1
𝑉2 (𝑥, 𝑧1 , 𝑧2 ) = 𝑉1 (𝑥, 𝑧1 ) + (𝑧2 −
2
𝑢1 (𝑥, 𝑧1 ))2 ;
4. Далее все аналогично, пока не будет построено последнее
управление 𝑢.
2.2. Общая схема алгоритма Backstepping
Одношаговая процедура
Рассмотрим простую систему:
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑧1
.
{
𝑧1̇ = 𝑓1 (𝑥, 𝑧1 ) + 𝑔1 (𝑥, 𝑧1 )𝑢1
(20)
Вместо того, чтобы проектировать управление с обратной связью 𝑢1 ,
вводится новое управление 𝑢𝑎1 и используется новый закон:
𝑢1 (𝑥, 𝑧1 ) =
1
(𝑢 − 𝑓1 (𝑥, 𝑧1 )).
𝑔1 (𝑥, 𝑧1 ) 𝑎1
(21)
Перепишем систему (20) после подстановки управления (21):
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑧1
1
,
{
𝑧1̇ = 𝑓1 (𝑥, 𝑧1 ) + 𝑔1 (𝑥, 𝑧1 )
(𝑢𝑎1 − 𝑓1 (𝑥, 𝑧1 ))
𝑔1 (𝑥, 𝑧1 )
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑧1
.
{
𝑧1̇ = 𝑢𝑎1
(22)
(23)
Считая известными закон управления 𝑢𝑥 (𝑥) и функцию Ляпунова 𝑉𝑥 (𝑥)
20
для первой подситемы (23), получим управление для второй подсистемы:
𝑢𝑎1 (𝑥, 𝑧1 ) = −
𝜕𝑉𝑥
𝜕𝑢𝑥
𝑔𝑥 (𝑥) − 𝑘1 (𝑧1 − 𝑢𝑥 (𝑥)) +
(𝑓 (𝑥)
𝜕𝑥
𝜕𝑥 𝑥
(24)
+ 𝑔𝑥 (𝑥)𝑧1 ),
где 𝑘1 > 0.
Итоговый стабилизирующий закон управления:
𝑢1 (𝑥, 𝑧1 ) =
1
𝜕𝑉𝑥
(−
𝑔 (𝑥) − 𝑘1 (𝑧1 − 𝑢𝑥 (𝑥))
𝑔1 (𝑥, 𝑧1 )
𝜕𝑥 𝑥
𝜕𝑢𝑥
+
(𝑓 (𝑥) + 𝑔𝑥 (𝑥)𝑧1 ) − 𝑓1 (𝑥, 𝑧1 ).
𝜕𝑥 𝑥
(25)
Соответствующая функция Ляпунова:
1
𝑉1 (𝑥, 𝑧1 ) = 𝑉𝑥 (𝑥) + (𝑧1 − 𝑢𝑥 (𝑥))2 .
2
(26)
Таким образом, исходная система (20) теперь имеет известные
стабилизирующее управление и функцию Ляпунова для него. По методу
Backstepping теперь эта система может рассматриваться как часть более
сложной системы.
Многошаговая процедура
Исходная система имеет рекурсивную структуру:
𝑥̇ = 𝑓𝑥 (𝑥) + 𝑔𝑥 (𝑥)𝑧1
{
𝑧1̇ = 𝑓1 (𝑥, 𝑧1 ) + 𝑔1 (𝑥, 𝑧1 )𝑢1
{{
𝑧2̇ = 𝑓2 (𝑥, 𝑧1 , 𝑧2 ) + 𝑔2 (𝑥, 𝑧1 , 𝑧2 )𝑧3
⋮
𝑧
̇
=
𝑓
(𝑥,
𝑧
,
𝑧
,
…
,
𝑧
,
𝑧
)
+
𝑔𝑖 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑖−1 , 𝑧𝑖 )𝑧𝑖+1
{ 𝑖
𝑖
1 2
𝑖−1 𝑖
{
⋮
{𝑧̇𝑘−1 = 𝑓𝑘−1 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−2 , 𝑧𝑘−1 ) + 𝑔𝑘−1 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−2 , 𝑧𝑘−1 )𝑧𝑘
𝑧𝑘̇ = 𝑓𝑘 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−1 , 𝑧𝑘 ) + 𝑔𝑘 (𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘−1 , 𝑧𝑘 )𝑢
{
(27)
и может быть стабилизирована обратной связью нахождением управления и
функции Ляпунова для интегратора подсистемы (𝑥, 𝑧1 ) в (27), после чего
процесс выходит из этой внутренней подсистемы и продолжается, пока не
будет получен стабилизирующий закон управления 𝑢.
На i-ом шаге система (27) эквивалентна:
21
≜𝑥̇ 𝑖−1
⏞ 𝑥̇
≜𝑓𝑖−1 (𝑥𝑖−1 )
≜𝑔𝑖−1 (𝑥𝑖−1 )
𝑧̇1
⏞𝑓𝑖−2 (𝑥𝑖−2 ) + 𝑔𝑖−2 (𝑥𝑖−2 )𝑧𝑖−2
⏞ 0
𝑧̇2
=[
]+[
].
𝑔𝑖−1 (𝑥𝑖 )
⋮
𝑓𝑖−1 (𝑥𝑖 )
𝑧̇𝑖−2
[𝑧̇𝑖−1 ]
𝑧𝑖̇ = 𝑓𝑖 (𝑥𝑖 ) + 𝑔𝑖 (𝑥𝑖 )𝑢𝑖
{
(28)
Управление:
≜𝑥𝑖
⏞ 𝑧1 , … , 𝑧𝑖 )
𝑢𝑖 (𝑥,
=
1
𝜕𝑉𝑖−1
[−
𝑔 (𝑥 ) − 𝑘𝑖 (𝑧𝑖 − 𝑢𝑖−1 (𝑥𝑖−1 )
𝑔𝑖 (𝑥𝑖 ) 𝜕𝑥𝑖−1 𝑖−1 𝑖−1
+
𝜕𝑢𝑖−1
(𝑓 (𝑥 ) + 𝑔𝑖−1 (𝑥𝑖−1 )𝑧𝑖 ) − 𝑓𝑖 (𝑥𝑖−1 )],
𝜕𝑥𝑖−1 𝑖−1 𝑖−1
(29)
где 𝑘𝑖 > 0.
Функция Ляпунова:
1
𝑉𝑖 (𝑥𝑖 ) = 𝑉𝑖−1 (𝑥𝑖−1 ) + (𝑧𝑖 − 𝑢𝑖−1 (𝑥𝑖−1 ))2 .
2
(30)
На шаге 𝑖 = 𝑘 может быть получено конечное управление
𝑢(𝑥, 𝑧1 , 𝑧2 , … , 𝑧𝑘 ) = 𝑢𝑘 (𝑥𝑘 ).
2.3. Применение алгоритма Backstepping к квадрокоптеру
Математическая
модель
квадрокоптера
описывается
системой
обыкновенных дифференциальных уравнений (8). В ней первые три
уравнения описывают подсистему угловых вращений, а последующие три –
горизонтальных перемещений. Будем работать с системой, представленной в
state-space форме (13). Для начала рассмотрим входное управление для
вращательной подсистемы, из которой в дальнейшем выведем управление
координатами.
Пусть 𝑋 = 𝑋𝑑 — желаемое состояние модели, которое считается
целевой траекторией движения квадрокоптера. Построим управление,
обеспечивающее следование по этой траектории системой.
22
Для первого уравнения системы (13) введем ошибку преследования:
𝑧1 = 𝑥1𝑑 − 𝑥1
(31)
1
𝑉(𝑧1 ) = 𝑧12 ,
2
(32)
и функцию Ляпунова:
производная которой имеет вид:
𝑉̇ (𝑧1 ) = 𝑧1 (𝑥̇ 1𝑑 − 𝑥̇ 1 ).
(33)
Представляя виртуальное входное управление 𝑥2 для стабилизации 𝑧1
𝑥2 = 𝑥̇ 1𝑑 + 𝑘1 𝑧1 ,
(34)
где 𝑘1 > 0, получаем производную функции Ляпунова в виде:
𝑉̇ (𝑧1 ) = −𝑘1 𝑧12 .
(35)
Введя обозначения:
𝑧2 = 𝑥2 − 𝑥̇ 1𝑑 − 𝑘1 𝑧1 ,
1
𝑉(𝑧1 , 𝑧2 ) = (𝑧12 + 𝑧22 ).
2
(36)
следует, что производная функции Ляпунова 𝑉(𝑧1 , 𝑧2 ) выражается:
𝑉̇ (𝑧1 , 𝑧2 ) = 𝑧2 (𝑎1 𝑥4 𝑥6 + 𝑎2 𝑥4 Ω + 𝑏1 𝑈2 ) − 𝑧2 (𝑥̈ 1𝑑 − 𝑘1 (𝑧2
+ 𝑘1 𝑧1 )) − 𝑧1 𝑧2 − 𝑘1 𝑧12 ,
(37)
и должно выполняться: 𝑉̇ (𝑧1 , 𝑧2 ) < 0.
Таким образом, 𝑈2 может быть вычислено:
𝑈2 =
1
(𝑧 − 𝑎1 𝑥4 𝑥6 − 𝑎2 𝑥4 Ω − 𝑏1 𝑈2 − 𝑘1 (𝑧2 + 𝑘1 𝑧1 )) − 𝑘2 𝑧2 )
𝑏1 1
(38)
По той же процедуре вычисляются 𝑈3 и 𝑈4
𝑈3 =
1
(𝑧 − 𝑎3 𝑥2 𝑥6 − 𝑎4 𝑥2 Ω − 𝑘3 (𝑧4 + 𝑘3 𝑧3 ) − 𝑘4 𝑧4 ),
𝑏2 3
(39)
1
(𝑧 − 𝑎5 𝑥2 𝑥4 − 𝑘5 (𝑧2 + 𝑘1 𝑧1 ) − 𝑘6 𝑧6 ).
𝑏3 5
(40)
𝑈4 =
Получив входные управления (38-40) для вращательной подсистемы,
можно вычислить входы 𝑈1 , 𝑢𝑥 и 𝑢𝑦 для нижней подсистемы [7]:
𝑈1 =
𝑚
(𝑧 + 𝑔 − 𝑘7 (𝑧8 + 𝑘7 𝑧7 )) − 𝑘8 𝑧8 ),
𝑐𝑜𝑠𝑥1 𝑐𝑜𝑠𝑥3 7
(41)
23
𝑚
(𝑧 − 𝑘9 (𝑧10 + 𝑘9 𝑧9 ) − 𝑘10 𝑧10 ),
𝑈1 9
𝑚
𝑢𝑦 =
(𝑧 − 𝑘11 (𝑧12 + 𝑘11 𝑧11 ) − 𝑘12 𝑧12 ).
𝑈1 11
𝑢𝑥 =
(42)
(43)
Здесь
𝑧3 = 𝑥3𝑑 − 𝑥3
𝑧4 = 𝑥4 − 𝑥̇ 3𝑑 − 𝑘3 𝑧3
𝑧5 = 𝑥5𝑑 − 𝑥5
𝑧6 = 𝑥6 − 𝑥̇ 5𝑑 − 𝑘5 𝑧5
𝑧7 = 𝑥7𝑑 − 𝑥7
𝑧8 = 𝑥8 − 𝑥̇ 7𝑑 − 𝑘7 𝑧7
𝑧9 = 𝑥9𝑑 − 𝑥9
𝑧10 = 𝑥10 − 𝑥̇ 9𝑑 − 𝑘9 𝑧9
𝑧11 = 𝑥11𝑑 − 𝑥11
𝑧12 = 𝑥12 − 𝑥̇ 11𝑑 − 𝑘11 𝑧11 .
Все коэффициенты (𝑘1 , … , 𝑘12 ) положительны. За счет них происходит
определение интенсивности реакции на отклонение вектора состояния от
желаемой траектории.
24
Глава 3. Программная реализация алгоритма
управления
Для
проверки
использовался
разработки
высокоуровневый
программного
язык
и
кода
и
интерактивная
вычислений
среда
для
программирования и численных расчетов MATLAB. Для симуляции
динамики квадрокоптера и тестирования миссии автопосадки был выбрана
графическая среда имитационного моделирования Simulink.
3.1. Алгоритм Backstepping
В
первую
квадракоптера,
а
очередь
также
была
построена
проведена
ее
математическая
стабилизация
модель
контроллером
Backstepping.
Рис.6. Модель квадрокоптера.
Блок «Динамическая модель квадрокоптера» принимает на вход вектор
состояния, вектор управления и скорости вращения моторов в предыдущий
25
момент
времени.
На
выходе
получаем
производную
вектора
состояниямодели (13) 𝑋̇ = 𝑓(𝑋, 𝑈) в текущий момент времени.
Полученный сигнал поступает на «Интегратор», а затем вместе с
желаемой траекторией передается в контроллер. Подсистема Backstepping
Controller преобразует входной сигнал, формируя новое управление.
Сигнал управления, проходя через блок «Скорости моторов», замыкает
систему и вновь подается в модель динамики квадрокоптера для
формирования нового вектора состояния. Нижний набор блоков (на рис. 6)
требуется для задания желаемой траектории.
Зададим
в
качестве
начальной
позиции [𝑥, 𝑦, 𝑧] = [−5, −5, 1],
начальной
ориентации
[𝜑, 𝜃, 𝜓] = [𝜋⁄4 , 𝜋⁄4 , 𝜋⁄4].
Проверим
работоспособность алгоритма backstepping, задав желаемый закон движения:
𝑥 = 𝑠𝑖𝑛𝑡
{ 𝑦=𝑡 .
𝑧=0
Желаемые углы крена, тангажа и рыскания нулевые.
Результат имитации отображены на последующих графиках:
Рис.7. Графики изменения координат X и Y в период [0;20].
26
Рис. 8. Графики изменения координаты Z и угла крена в период [0; 20].
Рис. 9. Графики изменения углов тангажа и рыскания в период [0; 20].
27
3.2. Трехмерная имитация системы компьютерного
зрения
Для наглядности имитации полета и посадки квадрокоптера в среде
Simulink была создана 3D-сцена. В нее помимо фона было добавлено 4
основных элемента: схематичный трехмерный макет квадрокоптера, круговая
посадочная поверхность, а также две точки обзора (viewpoint, кратко VP).
Первая VP соответствует бортовой камере, жесткой сцепленной с днищем
летательного аппарата, вторая – стороннему наблюдателю.
Рис. 10. Квадрокоптер, вид снизу.
Рис.11. Платформа, вид со стороны.
28
Рис. 12. Квадрокоптер парит над платформой, вид со стороны.
Составляющие модели квадрокоптера:
4 двигателя реализованы в виде одинаковых параллелепипедов
размером 0.15м ×0.15м×0.01м.;
Центральный элемент, содержащий центр масс представляет
собой параллелепипед размером 0.2м ×0.2м×0.1м.;
4 связующих звена в виде одинаковых цилиндров высотой 0.3м и
радиусом 0.02м каждый.
От платформы в 3D-сцену добавлена только верхняя посадочная
поверхность в виде плоского круга радиусом 0.6м.
Для построения управления в данной работе принимаются решения,
основанные только на данных обработки получаемых изображений с
бортовой камеры. Для захвата видео в процессе полета использовались
инструменты библиотеки Simulink 3D Animation. Кадры передаются
функциям библиотеки 8-битными изображениями, получаемыми с VP,
прикрепленной к нижней части коптера.
Ниже показан пример части изображения и его обработанного
варианта, снятого камерой с 5 метров над платформой (Рис. 13). Кадр
обрабатывается алгоритмом, описанным в главе 1.2.
29
Рис. 13. Квадрокоптер обнаружил цель.
Рис. 14. Подсистема компьютерного зрения.
Simulink-модель на рис.14 строит текущее состояние системы с
помощью двух блоков: «math data to 3D» и «3D-проекция». Первый
преобразует координаты, второй формирует изображение бортовой камеры.
Сигнал «Кадр» содержит 8-битное изображение, подаваемое в блок для его
обработки. Внутри происходят вычисления, и на выходе имеются бинарное
изображение, координаты центра цели на кадре, а также режим полета. Далее
координаты
центра
платформы
используются
для
определения
горизонтальной коррекции движения.
30
3.3. Результаты имитационного моделирования
Следующие значения констант и параметров модели были выбраны
при реализации программного полета [2]:
Обозначение
Название
Значение
𝑚
Масса квадрокоптера
0.65 кг
𝐼𝑥
Момент инерции отн. оси 𝑥
7.5 ⋅ 10−3 кг ⋅ м2
𝐼𝑦
Момент инерции отн. оси y
7.5 ⋅ 10−3 кг ⋅ м2
𝐼𝑧
Момент инерции отн. оси z
1.3 ⋅ 10−2 кг ⋅ м2
𝑏
Коэффициент тяги
3 ⋅ 10−5 Н ⋅ с2
𝑑
Коэффициент сопротивления
7.5 ⋅ 10−7 Н ⋅ м ⋅ с2
𝐽𝑟
Инерция двигателя
6 ⋅ 10−5 кг ⋅ м2
𝑙
Длина рукоятки
0.3
м
Построенный закон управления Backstepping содержит 12 числовых
задаваемых параметров. Их вариация влияет на реакцию регулятора на
отклонение системы от желаемого состояния, и, следовательно, на скорость
сходимости.
Для симуляции полета были выбраны следующие значения:
𝑘1 = 5, 𝑘2 = 5, 𝑘3 = 5, 𝑘4 = 5, 𝑘5 = 5, 𝑘6 = 5,
𝑘7 = 0.5, 𝑘8 = 0.5, 𝑘9 = 5, 𝑘10 = 1, 𝑘11 = 5, 𝑘12 = 1.
Стоит отметить, что выбор оптимального набора коэффициентов
𝑘𝑖 выходит за рамки данной работы.
Квадрокоптер находится в начальной позиции:
𝑥0 = −1, 𝑦0 = −1, 𝑧0 = 0.
Платформа движется прямолинейно:
𝑥𝑝𝑙𝑎𝑡 (𝑡) = 0, 𝑦𝑝𝑙𝑎𝑡 (𝑡) = 𝑡.
В результате моделирования было показано, что автопилотируемый
аппарат взлетел, и приземлился на цель за 6 с секунд. Ниже представлены
графики изменения положения во время полета, а также отклонение от
31
желаемой прямолинейной траектории.
Рис.15. Квадрокотер сел на цель, вид сверху.
Рис. 16. Графики изменения горизонтальных координат квадрокоптера.
По графику видно, что после старта квадрокоптер некоторое время
сохранял свою горизонтальную позицию. В это время происходил набор
высоты до появления цели в поле зрения камеры.
Цель впервые была обнаружена на камере на высоте около 5 метров.
После посадки центр масс квадрокоптера оказался смещен на 6-7 см от
центра платформы, что является следствием неспособности камеры
32
захватывать цель полностью во время финальной стадии снижения.
Рис. 17. График изменения высоты полета квадрокоптера.
Рис. 18. График отклонения движения от прямолинейного.
33
Выводы
В данной работе была рассмотрена проблема автоматической посадки
квадрокоптера, основанной на методах компьютерного зрения.
В ходе работы построена нелинейная математическая модель динамики
квадрокоптера, представленная в среде имитационного моделирования
Simulink, а также программно реализован аналог бортовой камеры.
Для
удовлетворения
квадрокоптера
требования
синтезирован
максимально
регулятор
точной
движения
посадки
Backstepping,
обеспечивающий следование желаемой траектории. Данный метод основан
на
теории
Ляпунова,
следовательно,
результатом
его
является
асимптотическая сходимость траектории движения к желаемой. Подход
Backstepping является одним из самых популярных в области управления
движением квадрокоптера, для которого построена нелинейная модель. В то
же время, в дальнейшем необходимо построить и другие типы регуляторов
(PID, Sliding и др.) с целью анализа качества/скорости работы и выбора
наиболее подходящего.
В работе представлен результат решения в случае прямолинейного
движения платформы и при данных предположениях продемонстрирована
эффективная работа алгоритма.
При выполнении данной работы получены следующие результаты.
1. Построена
математическая,
имитационная
модели
квадрокоптера.
2. Для этой модели синтезирован закон управления Backstepping.
3. Программно смоделирована бортовая камера и разработан
алгоритм обработки поступающих кадров.
4. Реализован
алгоритм
автоматической
посадки
на
цель,
находящуюся в поле зрения камеры.
5. Проведено имитационное моделирование полета полета
квадрокоптера.
34
Список литературы
[1]. Mendes, A. S. “Vision-based automatic landing of a quadrotor UAV on
a floating platfrorm”, Master of Science thesis, Faculty of AerospaceEngineering,
Delft University of Technology, 2012
[2].G.M. Hoffmann, H. Huang, S.L.Waslander, C.J.Tomlin,“Quadrotor
Helicopter Flight Dynamics and Control: Theoryand Experiment”, American
Institute of Aeronautics andAstronautics, pp. 01-20, 2007.
[3].Y.M.Younes, M.A.A.Jarrah and A.A.Jhemi, “Linear vsNonlinear
Control Technology for a Quadrotor Vehicle”,Proceeding of the 7th International
Symposium onMechatronics and its Application, Shajah,UAE, April 20-22,2010.
[4]. T. Madani and A. Benallegue, “Backstepping Contol for aQuadrotor
Helicopter”, Proceeding of International Conferenceon Intelligent Robots and
System, pp. 3255-3260, October 9-15, 2006.
[5]. L. R. G. Carrillo, E. Randon, A. Sanchez, A. Dzul and R. Lozano,
”Stabilization and trajectory tracking of a quad-rotor using vision”, JournalL of
Intelligent and Robotic Systems, 61(1-4), 2011, pp 103- 118.
[6]. Sinopoli, B., Micheli, M., Donato, G., and Koo, T. J., “Vision based
Navigation for an Unmanned Aerial Vehicle,” In Proceedings of IEEE
International Conference on Robotics and Automation, 2001, pp. 1757–1765.
[7].
S.
Bouabdallah,
ControlTechniques
applies
A.Noth
to
an
and
Indoor
R.
Siegwart,
Micro
“PID
vs
LQ
Quadrotor”,International
Conference on Intelligent Robots and Systems,vol.3, pp. 2451 – 2456, 2004.
[8]. S. Bouabdallah P. Murrieri and R. Siegwart, “Design andcontrol of an
Indoor Micro Quadrotor”, Proceeding of IEEEInternational Conference on
Robotics and Automation NewOrieans, pp. 4393-4398, April 2004.
[9].
S.
Bouabdallah
and
R.
Siegwart,
“Backstepping
and
SlidingmodeTechniques Applied to an Indoor Micro Quadrotor”,Proceeding of
IEEE International Conference on Robotics andAutomation Barcelona, Spain, pp.
2259-2264, April 2005.
35
Отзывы:
Авторизуйтесь, чтобы оставить отзыв