УДК 621.865
МЕТОД ГЕНЕРАЦИИ ОПТИМАЛЬНЫХ ТРАЕКТОРИЙ КВАДРОКОПТЕРА ПОСРЕДСТВОМ ВЫПУКЛОГО ПРОГРАММИРОВАНИЯ
С.И. Савин1, Л.Ю. Ворочаева1, А.И. Савин2
1 Юго-Западный государственный университет, г. Курск, Россия 2АО «Авиаавтоматика» им. В.В. Тарасова, г. Курск, Россия
Аннотация: рассматривается задача управления четырёхроторным автономным летательным аппаратом -квадрокоптером. Описан метод генерации траекторий для квадрокоптера, основанный на использовании методов численной оптимизации и алгебраических подходов к определению последовательности ориентаций робота. Показано, что задача генерации траекторий может быть представлена как задача выпуклого программирования. Решение задачи выпуклого программирования в данном случае используется для формирования последовательности положений центра масс устройства и векторов сил, которые должны быть приложены к квадрокоптеру для его перемещения из текущего положения в следующее, с учетом динамики летательного аппарата. Информация об ориентации векторов приложенных к квадрокоптеру сил может быть использована для определения последовательности его ориентаций. В работе предложен метод, позволяющий вычислять эти ориентации, описаны необходимые допущения. Для получения задающих воздействий для системы управления по обратной связи используется интерполяция данных, полученных решением задачи оптимизации для дискретного набора положений робота. Следящая система управления реализована с использованием итеративного линейного квадратичного регулятора. Результаты математического моделирования свидетельствуют о том, что квадрокоптер отрабатывает полученные описанным методом траектории и устойчив по отношению к ошибкам своего начального положения
Ключевые слова: квадрокоптер, метод генерации траекторий, выпуклое программирование, устойчивость, траектория центра масс
Введение
Задача управления квадрокоптерами -винтокрылыми летательными аппаратами, оснащенными четырьмя движителями - стала классической для теории управления мобильными роботами [1]. При этом такие аппараты представляют не только теоретический, но и практический интерес. Квадрокоптеры и их модификации используются для выполнения аэрофотосъемки, мониторинга состояния окружающей среды, оценки состояния инженерных конструкций и зданий и др. [1-4]. Сферы использования квадрокоптеров постоянно расширяются, при этом существенным ограничением, препятствующим их более широкому использованию, являются недостаточно развитые методы управления такого рода механизмами [3,
4].
Вопросами управления квадрокоптерами занимается ряд научных групп, которые достигли существенных результатов. Так, в работе [1] рассматриваются методы математического моделирования и идентификации параметров математической модели для квадрокоптера. В публикации [4] описаны основные зависимости, характеризующие механические параметры квадрокоптера, предложена двухуровневая
© Савин С.И., Ворочаева Л.Ю., Савин А.И., 2018
модель его системы управления. В статье [5] предложена трехуровневая структура системы управления квадрокоптера. В работе [6] проведен сравнительный анализ работы систем управления квадрокоптера, основанных на линейном квадратичном и пропорционально-интегрально-дифференциальном регуляторах.
В последних трех упомянутых работах использовались системы управления с обратными связями, реализующие управление по ошибке. В работе [7] предложено использовать MPC (от англ. modelpredictivecontrol) управление. Показана эффективность предложенного метода управления, в том числе в присутствии ветра. В статье [8] проводится сравнение FL (от англ. feedbacklinearization) и SMC (от англ. sliding-modelcontrol) методов управления применительно к задаче управления квадрокоптером.
Описанные выше статьи посвящены решению задачи управления квадрокоптером, имеющим заданную траекторию движения. На практике построение такой траектории является относительно сложной задачей. Существует несколько подходов к решению этой проблемы. Первый состоит в использовании человека в качестве оператора системы. Так, в работе [9] описан способ управления квадрокоптером посредством сенсорной системы Kinect, используемой для распознавания жестов оператора, а
в публикации [10] - метод получения информации о намерениях оператора, основанный на данных электроэнцефалограммы и отслеживании направления взгляда оператора. Использование столь сложных подходов обусловлено тем, что эффективная работа квадрокоптера связана с динамическим движением в трехмерном пространстве при том, что оператор остается на земле. Эти сложности указывают на то, что более эффективным может быть второй подход к решению задачи построения траекторий квадрокоптера - их автоматическая генерация.
В статье [11] описан метод генерации траекторий квадрокоптера, использующий принцип максимума Понтрягина, а также приводится способ оценки реализуемости предложенных траекторий. В работе [12] описан способ, основанный на так называемых ключевых кадрах, представляющих собой положение центра масс квадрокоптера и его угол рыскания. Существуют и другие методы, позволяющие построить траекторию для квадрокоптера.
Здесь мы рассмотрим метод, позволяющий сформулировать задачу генерации траектории центра масс квадрокоптера как задачу выпуклого программирования. Предлагаемый в этой работе метод позволяет учитывать ограничения, накладываемые на положение квадроко-птера, на его ориентацию, а также на величину создаваемых его роторами сил тяги.
1. Описание квадрокоптера
Квадрокоптер представляет собой винтокрылый летательный аппарат с четырьмя несущими винтами с параллельно направленными осями. На рис. 1 приведена расчетная схема такого устройства.
2 - двигатели с несущими винтами
На рис. 1 использованы следующие обозначения: p7 — сила тяги, генерируемая 7-м не-
сущим винтом (7 = 1,4), т7 - момент, создаваемый этим винтом, ¡7 — расстояние от центральной оси симметрии квадрокоптера до оси этого несущего винта, т — масса квадрокоптера, g — ускорение свободного падения. Полагаем, что ориентация квадрокоптера определяется матрицей направляющих косинусов Т, причем эта матрица параметризована с помощью углов Эйлера:
Т = Т(Ф, 0, у). (1)
Положение центра масс квадрокоптера обозначено точкой С и определяется радиус-вектором
гс =[хС Ус 2с ]т . (2)
Подробное описание математических моделей квадрокоптеров можно найти в [1, 13, 14]. Такие математические модели можно построить, опираясь на динамические и кинематические уравнения Эйлера, а также уравнения Ньютона или используя уравнения Лагранжа. Здесь приведем уравнения движения в векторной форме. Для этого введем вектор обобщенных координат q:
q = [% Ус zc Ф 0 У]Т. (3)
Тогда уравнения динамики квадрокоптера примут вид:
Щ + с + у + с1 = Ги , (4)
где Н — обобщенная матрица инерции, — вектор обобщенных ускорений, с — вектор обобщенных инерционных сил, у — вектор обобщенных сил тяжести, d — вектор обобщенных диссипативных сил, в том числе сил аэродинамического сопротивления,
и = [щ и2 и3 и4]Т — вектор сил тяги,
и7 = ||р 7||, Г — матрица, связывающая силы тяги
и создаваемые ими обобщенные силы. Подробное описание общих методов составления такого рода уравнения можно найти в [15].
Отметим, что на компоненты вектора и наложены ограничения, связанные с принципом работы винтов, а также с особенностями работы электродвигателей. В частности,
0 < Щ < и^ 7 = ^ (5)
где и тах — максимальное значение модуля силы тяги несущего винта.
2. Задача генерации траектории центра масс квадрокоптера
Обозначим желаемую траекторию центра масс квадрокоптера как rC(t) и примем, что заданы начальная и конечная точки траектории Г* (t0) = rC0 и r"c (tf ) = rCf . Также возможно
наложение ограничений на скорость центра масс в начальный и конечный моменты времени: rC*(t0) = rC0 иrC(tf) = rCf .
Тогда задача генерации траектории центра масс квадрокоптера сводится к нахождению
параметрически заданной кривой rC (t), проходящей через точки rc 0 и rCf и удовлетворяющей динамике квадрокоптера (4). Последнее условие означает, что должна существовать такая функция u(t) , удовлетворяющая (5), и
такие начальные условия q(t0) , что соответствующее решение q(t) уравнения (4) обеспечит движение центра масс квадрокоптера по траектории rC* (t). Далее рассмотрим алгоритм, составляющий аппроксимацию решения данной задачи.
3. Численный алгоритм генерации траектории центра масс квадрокоптера
Для того чтобы найти численное решение задачи генерации траектории центра масс квадрокоптера произведем дискретизацию этой траектории, выделив на ней N +1 точек rC* j , соответствующих моментам времени t j ,
A = At,
j = 0, N . Обозначим интервалы времени между соседними точками как At j = j -1}- . Далее
введем следующие упрощенные динамические уравнения для центра масс квадрокоптера:
m(rC + g) = f , (6)
где f - приведённый вектор сил тяги. Заметим, что эти уравнения не описывают динамику квадрокоптера, в частности, они не учитывают действие аэродинамических сил сопротивления.
Введем вектор фазовых координат для динамической системы (6):
sC,j = [rCj rC,j]T . (7)
Также введем обозначения:
03x3 13x3 03x3 03x3
h j = At,
B
'3xi
At,.
m
g
(8)
где 0пхт и I пхт означают нулевую и единичную матрицы, а индексы указывают на их размерность. Используя эти обозначения, перепишем уравнения (6) в дискретной форме в пространстве состояний:
8с,;+: = А8С,; + Вуfj + hу, (9) где fозначает значение вектора f в момент времени (у . На векторы f]■ дополнительно наложим ограничение:
< 4и тах. (10)
Для того чтобы сформулировать задачу генерации набора точек 8С у введем критерии
качества для такого набора. Выберем три критерия. Первым критерием является дистанция между соседними точками. Вторым критерием - разница в скорости между соседними точками. Третьим критерием является модуль вектора fу в каждой точке. Эти критерии могут быть
записаны как целевая функция V, представляющая собой квадратичную форму 8 Су и f у:
N
V (sC, j, f j ) = 1 (sC, j - sC,j-i)T *
j=1
N
* Wi(sC,j - sC,j-i) + 1 f T W2 f j
j=1
(ii)
где W1 и W2 положительно определённые матрицы весовых коэффициентов, имеющие размерность 6x6 и 3x3 соответственно.
Для того чтобы связать задачу генерации
* ~
точек 8 С у с описанной в пункте 2 задачей генерации траектории центра масс, введем краевые условия:
I SC,0 = [rC0 rC0] , lSC ,N = [rTf rCf ] .
т (12)
8 С N = [1 С/ 1С/ ]
С учетом (9)—(12) можем сформулировать задачу генерации набора точек 8 С,у как задачу выпуклого программирования:
0
3x3
I
3x3
minimize V(sC j, fj ) subject to :
(13)
sc,;+i = AsC, j + В j fj + h j j =1, N,
C,0 = [rC0 T
C 0J
C N
= К
Cf
C ]T,
f j ^ 4umax.
В частности, данная задача выпуклого программирования относится к так называемым QCQP (от англ. quadratically constrained quadratic program) задачам. Такие задачи могут быть эффективно решены с использованием методов внутренней точки [16].
Заметим, что условие (10) определяет принадлежность каждого вектора f j к сфере радиусом 4wmax . Исключив это условие или заменив его системой линейных неравенств, аппроксимирующих это ограничение, получим задачу квадратичного программирования, решение которой, как правило, требует меньшего объема вычислений. Кроме того, для решения задач квадратичного программирования разработано значительное количество математических пакетов.
В последующих разделах будет показано, что полученный таким образом набор точек
sC j действительно представляет собой дискретную аппроксимацию решения задачи, описанной в пункте 2.
4. Алгоритм определения ориентации квадрокоптера
Для того чтобы задать положение квадрокоптера в каждый момент времени t j, достаточно определить положение его центра масс и его ориентацию. Пусть ориентация квадроко-птера в момент времени t j задана матрицей
направляющих косинусов Tj, причем его ориентация T0 в начальный момент времени известна. Тогда можем воспользоваться решением задачи (13) для определения Tj.
Решение задачи (13) предоставляет нам набор векторов f j, являющихся аппроксимациями приведенных сил тяги квадрокоптера в процессе выполнения траектории. Так как несущие винты квадрокоптера могут создавать тягу лишь в одном направлении - вдоль нормали к плоскости квадрокоптера, то направление
fопределяет ориентацию этой плоскости.
Например, если для описания ориентации квадрокоптера использовать гироскопические углы, то последовательность позволит однозначно определить углы прецессии и нутации. В общем случае будем использовать следующий итеративный алгоритм нахождения Т:
Т = ■, е■ )ту-1, (14)
где Ща, е) - матрица поворота на угол а вокруг оси е. Угол аи ось енайдем следующим образом:
а j = cos
fj • f-1
e j =i
f j-1 * f j
(15)
II' Л I' -И! Г-1 х ■
Формулы (14), (15) имеют следующую интерпретацию. Так как векторы Ги Г;-1 определяют нормали к плоскости квадрокоптера в моменты времени ^ и (;-1, то угол а ■ между ними определяет, на какой угол эта плоскость повернулась за время А( ;-1 = - -1 . Любое
изменение ориентации системы координат можно представить как поворот вокруг фиксированной оси. В данном случае в качестве такой оси выберем единичный вектор е ■ , перпендикулярный и Г;-1 , который можно
найти, используя векторное произведение этих векторов.
Заметим, что несмотря на то, что последовательность определяет лишь ориентацию
плоскости квадрокоптера, но не самого твердого тела (другими словами, позволяет найти лишь два из трех параметров, которыми задается его ориентация), предложенный алгоритм позволяет построить последовательность матриц направляющих косинусов Т, которые эту
ориентацию определяют однозначно. Это связано с тем, что процедура (14) реализует один из множества возможных поворотов локального базиса Т;-1, удовлетворяющих указанному в начале раздела условию, состоящему в том, что векторы должны быть сонаправлены нормали плоскости квадрокоптера. Существуют другие способы осуществить этот поворот, но все эти способы будут требовать использования больших по величине углов а ■ .
В случае, если для работы системы управления ориентацию квадрокоптера необходимо представить через углы Эйлера, кватернионы или другие системы параметризации, их можно
г
получить из матриц направляющих косинусов путем несложных преобразований, многие из которых реализованы в стандартных математических пакетах [17].
5. Моделирование работы алгоритмов генерации траектории
Рассмотрим задачу перемещения из точки с координатами г*((0) = [0 0 1]т в точку r*(tf) = [5 2 2]т, что соответствует расстоянию 5.47 м. Скорости робота в крайних точках траектории должны быть нулевыми. На рис. 2,а показана последовательность систем координат, соотносящихся с найденными последовательностями Г-, Т- и 8С -. На рис. 2,б показаны
положения квадрокоптера в пространстве в
разные моменты времени.
у, м о о
У, м
б
Рис. 2. а - графическое изображение последовательно-
Г
Т
- Гс - , б - положения
1 ' 1 ' квадрокоптера во время полета
На рис.2,а утолщенными линиями показаны приведённые силы Г-, тонкие линии показывают векторы х и у систем координат, ори-
ентированных согласно матрицам поворота Тс центрами в точках г* - .
Можно заметить, что квадрокоптер сначала меняет свою ориентацию для разгона, наклоняя нормаль к плоскости квадрокоптера в направлении конечной точки траектории (цели) и перемещаясь с относительно небольшой скоростью. Затем он ускоряется и начинает менять свою ориентацию, готовясь к торможению. Находясь достаточно близко к цели, квадроко-птер снова изменяет свою ориентацию, принимая горизонтальное положение. Такое поведение квадрокоптера является следствием выбранной формулировки задачи выпуклого программирования (13), и при этом оно является интуитивно понятным.
Задача выпуклого программирования (13) для траектории из 25 точек включает в себя 225 переменных, 156 связей в виде линейных равенств, 24 нелинейные связи в виде неравенств. Для решения этой задачи использовался пакет математического программирования Mosek и программная среда математического программирования YALMIP [18]. Решение данной задачи занимает 0.14 с на персональном компьютере с процессором i7-6700K. При решении подобной задачи на бортовом вычислителе робота это время может существенно возрасти, но даже при десятикратном росте времени вычислений алгоритм сохраняет практическую ценность.
6. Генерация задающих воздействий для системы управления квадрокоптера, реализующего полученную траекторию
Траектория квадрокоптера, получаемая описанным выше методом, задана дискретным множеством точек. На практике многие регуляторы требуют, чтобы задающие воздействия были доступны в любой момент времени или чтобы они обновлялись с заданной частотой. В связи с этим удобно перейти от дискретного множества точек к функциям, задающим желаемое положение и ориентацию квадрокоптера в любой момент времени. Для этого воспользуемся интерполяцией сплайнами.
Последовательность г£- можно непосредственно использовать для выполнения интерполяции, в результате которой получим функцию времени г*(() . С другой стороны, последовательность Т нельзя непосредственно ин-
а
терполировать, так как линейная комбинация матриц поворота может не являться матрицей поворота. Для решения этой проблемы заменим матрицы поворота T эквивалентными кватернионами Q j (соответствующие формулы приведены в [i9]). Для интерполяции последовательностей кватернионов разработаны специальные методы, включая алгоритм Slerp [20], позволяющие использовать последовательность нормированных кватернионов для получения функции, возвращающей нормированный кватернион. Таким образом, получим функцию Q(t), возвращающую кватернион, определяющий желаемую ориентацию квадрокоптера. Данный кватернион может быть затем преобразован как в матрицу поворота, так и в набор углов Эйлера.
7. Моделирование работы квадрокоптера,
движущегося по полученной траектории
Рассмотрим систему управления квадро-коптера, использующую итеративный линейный квадратичный регулятор (ИЛКР). Обычный линейный квадратичный регулятор (ЛКР) подробно описан в литературе по оптимальному управлению и основан на решении алгебраического уравнения Риккати для нахождения матрицы коэффициентов регулятора K . ИЛКР представляет собой модификацию ЛКР, отличающуюся тем, что вычисление матрицы коэффициентов регулятора производится многократно через некоторые промежутки времени. Управляющее воздействие вычисляется следующим образом:
u = u* - K(q - q*),
(i6)
где q = q (t) - значение задающего воздействия желаемого значения вектора обобщенных
*
координат, u - значение задающего воздействия, полученное решением обратной задачи динамики. Подробнее данный регулятор описан в работах [2i, 22]. В случае, когда обратная задача динамики не имеет решения, используется её псевдорешение [23].
С учетом физических свойств движителей квадрокоптера дополнительно ограничим вектор u так, чтобы его компоненты могли принимать лишь положительные значения в некотором диапазоне в соответствии с условием (2).
Проведем моделирование движения квадрокоптера для случая перемещения из точки с координатами rC(t0) = [0 0 i]T в точку
rC (tf ) = [3 i i.5]T . На рис. 3 показана желаемая траектория центра масс квадрокоптера, полученная предложенным методом, и реальная траектория квадрокоптера, полученная в ходе математического моделирования.
Рис. 3. Реальная и желаемая траектории центра масс квадрокоптера: i - реальная траектория, 2 - желаемая траектория
На рис. 4 показана желаемая траектория и последовательность положений квадрокоптера.
Рис. 4. Желаемая траектория центра масс квадрокоптера и последовательность его положений: i - желаемая траектория, 2 - положения квадрокоптера
Заметим, что в процессе движения квадро-коптер отклоняется от заданной траектории, при этом начальные и конечные точки желаемой и реальной траекторий совпадают.
Для того чтобы оценить временное отставание квадрокоптера от заданной траектории, рассмотрим временные зависимости обобщенных координат (рис. 5).
о
4
3.6 1 у ""Д__
:::п::г: ■ \
Ч-ЗН- ...;..Д...
...;... Д..
" -г-
о
1
2 3 4 5 6 7 t.С
Рис. 5. Временные зависимости обобщенных координат и их желаемые значения; 1 - xC (t) , 2 - yC (t) , 3 - zC (t) ,
4 -*C(t ), 5 - yC(t), 6 -zC(t )
Графики, показанные на рис. 5, позволяют сделать вывод, что квадрокоптер выполняет заданную траекторию с существенным отставанием по времени. Так, достижение заданной координаты вдоль оси Оу было выполнено с отставанием в 2.5 с. По остальным координатам отставание по времени значительно ниже.
Рассмотрим, какое влияние ошибка по положению центра масс квадрокоптера в начальный момент времени оказывает на положение центра масс в конце траектории. Обозначим ошибку по положению в начальный момент времени как e 0 и ошибку по положению в конечный момент времени как e f . Обозначим как S = ||en
модуль e0
и модуль e f как
s = e
f
Проведем 500 экспериментов со случайно выбранными е0. На рис. 6 для каждого эксперимента указана точка с координатами 5 и е , полученными для этого эксперимента.
Рис. 6. Распределение значений 5 и е для проведённых экспериментов
Можем заметить, что разброс значений е растет с ростом 5 , при этом остается в диапазоне 2 мм. При ошибке по положению в начальный момент времени в пределах 0.1 м ошибка по положению в конечный момент
времени варьируется в диапазоне размером 0.5 мм. Абсолютное значение ошибки по положению в конечный момент времени не превышает 44 мм для всех экспериментов.
На рис. 7 показано распределение е0, использованное для экспериментов, а на рис. 8 показано полученное распределение е / .
Рис. 7. Заданное распределение ошибок e 0
Рис. 8. Полученное распределение ошибок e f
Полученное распределение ошибок e f ,
показанное на рис. 8, помешается в кубе 2.5х3х2 мм при том, что распределение e 0 помещается в кубе со сторонами i м, т.е. объем куба, содержащего ошибки e f , в 6.6 -i0 раз меньше, чем объем куба, содержащего ошибки e0 .
Эти результаты указывают, что предложенный метод позволяет получать траектории движения квадрокоптера, которые тот может выполнить. Быстрое уменьшение разброса s при снижении S указывает на устойчивость системы управления при движении вдоль полученной траектории.
Заключение
В этой работе был предложен метод генерации траекторий для квадрокоптера, основан-
ный на выпуклом программировании, а также алгебраических подходах к определению последовательности ориентаций квадрокоптера. Предложенный метод использует решение одной задачи выпуклого программирования для получения последовательности положений центра масс квадрокоптера и векторов сил, которые должны быть приложены к квадрокоптеру, чтобы переместить его из текущего положения в следующее. Информация об ориентации этих векторов используется для определения ориентации квадрокоптера при известной начальной ориентации. Данная дискретная последовательность положений и ориентаций, в свою очередь, используется для построения интерполяции.
Проведенное математическое моделирование показало, что предложенный метод позволяет получать траектории, которые квадроко-птер может отрабатывать, демонстрируя устойчивость по отношению к ошибкам начального положения робота. Эти исследования проводились для квадрокоптера, использующего итеративный линейный квадратичный регулятор. Моделирование движения квадрокоптера вдоль полученных траекторий для случая, когда для управления роботом используются специализированные регуляторы, разработанные для квадрокоптеров, представляет отдельный интерес и будет проделано в дальнейшем.
Заметим, что предложенный метод может быть легко расширен для включения информации о препятствиях, используя подход, основанный на разбиении пространства на свободные от препятствий выпуклые области и введении соответствующих ограничений в задачи выпуклого программирования (13). Метод разбиения пространства на свободные от препятствий выпуклые области описан в работе [24].
Литература
1. A survey of modelling and identification of quadrotor robot / X. Zhang, X. Li, K. Wang, Y. Lu // Abstract and Applied Analysis. 2014. Vol. 2014. 16 р.
2. Generic unmanned aerial vehicle (UAV) for civilian application-A feasibility assessment and market survey on civilian application for aerial imaging / J.T.K. Ping, A.E. Ling, T.J. Quan, C.Y. Dat // Sustainable Utilization and Development in Engineering and Technology (STUDENT), 2012 IEEE Conference on, Kuala Lumpur, Malaysia. 2012. Р. 289294.
3. Gupte S., Mohandas P.I.T., Conrad J.M. A survey of quadrotor unmanned aerial vehicles // Southeastcon, 2012 Proceedings of IEEE, Orlando, FL, USA. 2012. Р. 1-6.
4. Kumar V., Michael N. Opportunities and challenges with autonomous micro aerial vehicles // The International Journal of Robotics Research 2012. Vol. 31(11). P.1279-1291.
5. Das A., Subbarao K., Lewis F. Dynamic inversion with zero-dynamics stabilisation for quadrotor control // IET Control Theory & Applications. 2009. Vol. 3(3). P. 303-314.
6. Bouabdallah S., Noth A., Siegwart R. PID vs LQ control techniques applied to an indoor micro quadrotor // Intelligent Robots and Systems, 2004. (IROS 2004). Proceedings 2004 IEEE/RSJ International Conference on. Sendai, Japan. 2004. Vol. 3. P. 2451-2456.
7. Alexis K., Nikolakopoulos G., Tzes, A. Model predictive quadrotor control: attitude, altitude and position experimental studies // IET Control Theory & Applications. 2012. Vol. 6(12). P. 1812-1827.
8. Lee D., Jin Kim H., Sastry S. Feedback linearization vs. adaptive sliding mode control for a quadrotor helicopter // International Journal of Control, Automation and Systems. 2009. Vol. 7(3). P. 419-428.
9. A Kinect-based natural interface for quadrotor control / A. Sanna, F. Lamberti, G. Paravati, F. Manuri // Entertainment Computing. 2013. Vol. 4(3). P. 179-186.
10. Kim B.H., Kim M., Jo S. Quadcopter flight control using a low-cost hybrid interface with EEG-based classification and eye tracking // Computers in Biology and Medicine. 2014. Vol. 51. P. 82-92.
11. Hehn M., D'Andrea R. Quadrocopter trajectory generation and control // IFAC Proceedings Volumes. 2011. Vol. 44(1). P. 1485-1491.
12. Mellinger D., Kumar V. Minimum snap trajectory generation and control for quadrotors // Robotics and Automation (ICRA), 2011 IEEE International Conference on, Shanghai, China. 2011. P. 2520-2525.
13. Bresciani T. Modelling, identification and control of a quadrotor helicopter. MScTheses. 2008. 184 p.
14. Naidoo Y., Stopforth R., Bright G. Quad-rotor unmanned aerial vehicle helicopter modelling & control // International Journal of Advanced Robotic Systems. 2011. Vol. 8(4). P. 45.
15. Featherstone R. Rigid body dynamics algorithms. Springer, 2014. 271 p.
16. Boyd S., Vandenberghe L. Convex optimization. Cambridge university press. 2004. 725 p.
17. Shoemake K. Euler angle conversion. Graphics gems IV. 1994. P. 222-229.
18. Lofberg J. YALMIP: A toolbox for modeling and optimization in MATLAB // Computer Aided Control Systems Design, 2004 IEEE International Symposium on. New Orleans, LA, USA. 2004. P. 284-289.
19. Diebel J. Representing attitude: Euler angles, unit quaternions, and rotation vectors // Matrix. 2006. Vol. 58 (1516). P. 1-35.
20. Shoemake K. Animating rotation with quaternion curves // ACM SIGGRAPH, Proceedings of the 12th annual conference on Computer graphics and interactive techniques, New York, NY, USA . 1985. Vol. 19(3). P. 245-254.
21. Jatsun S., Savin S., Yatsun A., Motion Control Algorithm for a Lower Limb Exoskeleton Based on Iterative LQR and ZMP method for trajectory generation // International Workshop on Medical and Service Robots MESROB 2016: New Trends in Medical and Service Robots, Graz, Austria. 2016. P. 305-317.
22. Li W., Todorov E. Iterative linear quadratic regulator design for nonlinear biological movement systems // Proceedings of 1st International Conference on Informatics in Control, Automation and Robotics, Setubal, Portugal. 2004. P. 222-229.
23. Леонов А.С. Решение некорректно поставленных обратных задач: очерк теории, практические алгоритмы и
демонстрации в МАТЛАБ. М.: Книжный дом ЛИБРО-КОМ, 2010. 336 с.
24. Savin S. An Algorithm for Generating Convex Obstacle-free Regions Based on Stereographic Projection // Con-
trol and Communications (SIBCON), 2017 International Siberian Conference on, Astana, Kazakhstan. 2017.
Поступила 11.05.2018; принята к публикации 14.09.2018 Сведения об авторах
Савин Сергей Игоревич - канд. техн. наук, старший научный сотрудник кафедры механики, мехатроники и робототехники, Юго-Западный государственный университет (305040 г. Курск, ул. 50 лет Октября, 94), e-mail: [email protected] Ворочаева Людмила Юрьевна - канд. техн. наук, доцент кафедры механики, мехатроники и робототехники, Юго-Западный государственный университет (305040 г. Курск, ул. 50 лет Октября, 94), e-mail: [email protected] Савин Александр Игоревич - инженер, АО «Авиаавтоматика» им. В.В. Тарасова (305040, г. Курск, ул. Запольная, 47), e-mail: [email protected]
OPTIMAL TRAJECTORY GENERATION FOR A QUADROTOR USING CONVEX
PROGRAMMING
S.I. Savin1, L.Yu. Vorochaeva1, A.I. Savin2
1Southwest State University, Kursk, Russia 2Joint-Stock Company "Aviaavtomatika" n.a. V.V. Tarasov, Kursk, Russia
Abstract: in this paper the problem of controlling a quadrotor is considered. A method for generating trajectories for a quadrotor is described; the method is based on the use of numerical optimization methods and algebraic approaches for determining the sequence of robot orientations. It is shown that the problem of generating trajectories can be represented as a convex programming problem. The solution of the problem of convex programming in this case is used to form a sequence of positions of the center of mass of the device and to find the force vectors that must be applied to the quadrotor to move it from the current position to the next, taking into account the dynamics of the aircraft. The information on the orientations of the force vectors applied to the quadrotor can be used to determine the sequence of the robot's orientations. A method for calculating these orientations is proposed, the necessary assumptions are described. To obtain the control inputs for the feedback control system, interpolation of the data obtained by solving the optimization problem for a discrete set of robot positions is used. The tracking control system is implemented using an iterative linear quadratic regulator. The results of mathematical modeling indicate that the quadrotor is able to execute the trajectories obtained by the described method and is stable in relation to the errors of its initial position
Key words: quadrotor, trajectory generation method, convex programming, stability, center of mass trajectory
References
1. Zhang X., Li X., Wang K., Lu Y. "A survey of modelling and identification of quadrotor robot", Abstract and Applied Analysis, 2014, vol. 2014, 16 р.
2. Ping J.T.K., Ling A.E., Quan T.J., Dat C.Y. "Generic unmanned aerial vehicle (UAV) for civilian application-A feasibility assessment and market survey on civilian application for aerial imaging", Sustainable Utilization and Development in Engineering and Technology (STUDENT), 2012 IEEE Conference, Kuala Lumpur, Malaysia, 2012, pp. 289-294.
3. Gupte S., Mohandas P.I.T., Conrad J.M. "A survey of quadrotor unmanned aerial vehicles", Southeastcon, 2012 Proceedings of IEEE, Orlando, FL, USA, 2012, pp. 1-6.
4. Kumar V., Michael N. "Opportunities and challenges with autonomous micro aerial vehicles", The International Journal of Robotics Research, 2012, vol. 31(11), pp.1279-1291.
5. Das A., Subbarao K., Lewis F. "Dynamic inversion with zero-dynamics stabilization for quadrotor control", IET Control Theory & Applications, 2009, vol. 3(3), pp. 303-314.
6. Bouabdallah S., Noth A., Siegwart R. "PID vs LQ control techniques applied to an indoor micro quadrotor", Intelligent Robots and Systems 2004 (IROS 2004), Proceedings 2004IEEE/RSJ International Conference, Sendai, Japan, 2004, vol. 3, pp. 24512456.
7. Alexis K., Nikolakopoulos G., Tzes, A. "Model predictive quadrotor control: attitude, altitude and position experimental studies", IET Control Theory & Applications, 2012, vol. 6(12), pp. 1812-1827.
8. Lee D., Jin Kim H., Sastry S. "Feedback linearization vs. adaptive sliding mode control for a quadrotor helicopter", International Journal of Control, Automation and Systems, 2009, vol. 7(3), pp. 419-428.
9. Sanna A., Lamberti F., Paravati G., Manuri F. "A Kinect-based natural interface for quadrotor control", Entertainment Computing, 2013, vol. 4(3), pp. 179-186.
10. Kim B.H., Kim M., Jo S. "Quadcopter flight control using a low-cost hybrid interface with EEG-based classification and eye tracking", Computers in Biology and Medicine, 2014, vol. 51, pp. 82-92.
11. Hehn M., D'Andrea R. "Quadrocopter trajectory generation and control", IFAC Proceedings Volumes, 2011, vol. 44(1), pp. 1485-1491.
12. Mellinger D., Kumar V. "Minimum snap trajectory generation and control for quadrotors", Robotics and Automation (ICRA), 2011 IEEE International Conference, Shanghai, China, 2011, pp. 2520-2525.
13. Bresciani T. "Modelling, identification and control of a quadrotor helicopter", MScTheses, 2008, 184 p.
14. Naidoo Y., Stopforth R., Bright G. "Quad-rotor unmanned aerial vehicle helicopter modelling & control", International Journal of Advanced Robotic Systems, 2011, vol. 8(4), pp. 45.
15. Featherstone R. "Rigid body dynamics algorithms", Springer, 2014, 271 p.
16. Boyd S., Vandenberghe L. "Convex optimization", Cambridge university press, 2004, 725 p.
17. Shoemake K. "Euler angle conversion", Graphics gems IV, 1994, pp. 222-229.
18. Lofberg J. "YALMIP: A toolbox for modeling and optimization in MATLAB", Computer Aided Control Systems Design, 2004 IEEE International Symposium, New Orleans, LA, USA, 2004, pp. 284-289.
19. Diebel J. "Representing attitude: Euler angles, unit quaternions, and rotation vectors", Matrix, 2006, vol. 58 (15-16), pp. 135.
20. Shoemake K. "Animating rotation with quaternion curves", ACM SIGGRAPH, Proceedings of the 12th annual conference on Computer graphics and interactive techniques, New York, NY, USA, 1985, vol. 19(3), pp. 245-254.
21. Jatsun S., Savin S., Yatsun A. "Motion Control Algorithm for a Lower Limb Exoskeleton Based on Iterative LQR and ZMP method for trajectory generation", International Workshop on Medical and Service Robots MESROB 2016: New Trends in Medical and Service Robots, Graz, Austria, 2016, pp. 305-317.
22. Li W., Todorov E. "Iterative linear quadratic regulator design for nonlinear biological movement systems", Proceedings of 1st International Conference on Informatics in Control, Automation and Robotics, Setubal, Portugal, 2004, pp. 222-229.
23. Leonov A.S. "The solution of incorrectly posed inverse problems: theory essay, practical algorithms and demonstrations in MATLAB" ("Reshenie nekorrektno postavlennykh obratnykh zadach: ocherk teorii, prakticheskiye algoritmy i demonstratsii v MATLAB"), Moscow, Knizhnyy dom LIBRO-KOM, 2010, 336 p.
24. Savin S. "An algorithm for generating convex obstacle-free regions based on stereographic projection", Control and Communications (SIBCON), 2017 International Siberian Conference, Astana, Kazakhstan, 2017.
Submitted 11.05.2018; revised 14.09.2018
Information about the authors
Sergey I Savin, Cand. Sc. (Technical), Senior Researcher, South-West State University (94 50-let Oktyabrya st., Kursk 305040, Russia), e-mail: [email protected].
Lyudmila Yu. Vorochaeva, Cand. Sc. (Technical), Associate Professor, South-West State University, (94 50-let Oktyabrya st., Kursk 305040, Russia), e-mail: [email protected].
Alexander I Savin, Engineer, JS company "Aviaavtomatika" n.a. V.V. Tarasov (47 Zapol'naya st., Kursk 305040, Russia), e-mail: [email protected].