Научная статья на тему 'ИЗУЧЕНИЕ ДИНАМИКИ КВАДРОКОПТЕРА НА ОСНОВЕ MATLAB SUPPORT PACKAGE FOR PARROT DRONES'

ИЗУЧЕНИЕ ДИНАМИКИ КВАДРОКОПТЕРА НА ОСНОВЕ MATLAB SUPPORT PACKAGE FOR PARROT DRONES Текст научной статьи по специальности «Математика»

CC BY
344
52
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Modern European Researches
Область наук
Ключевые слова
КВАДРОКОПТЕР / MATLAB / ОБРАЗОВАНИЕ / ПРАКТИЧЕСКИЕ ЗАНЯТИЯ / PARROT DRONES

Аннотация научной статьи по математике, автор научной работы — Глазков Тимур Владимирович, Решмин Сергей Александрович

Обычно пользователь управляет квадрокоптером прилагаемым к нему пультом или со смартфона, используя специально разработанные производителем приложения. Возможности управления при этом сильно ограничены набором некоторых стандартных встроенных функций. Однако, в процессе обучения у студентов может возникнуть необходимость управлять квадрокоптером или группой квадрокоптеров с использованием персонального компьютера. В этом случае удается задавать сложные последовательности из заранее разработанных команд или реализовывать свои собственные законы управления. Однако, для этого требуются дополнительные знания о том какие модели квадрокоптеров выбрать для экспериментов, какие программы и операторы использовать, как установить соединение компьютера с квадрокоптером по Wi-Fi и т.п. Статья посвящена рассмотрению указанных вопросов и может быть полезна студентам, интересующимся механикой и управлением подвижными объектами, а также преподавателям при организации лабораторных работ, связанных с управлением квадрокоптерами.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ИЗУЧЕНИЕ ДИНАМИКИ КВАДРОКОПТЕРА НА ОСНОВЕ MATLAB SUPPORT PACKAGE FOR PARROT DRONES»

Irina E. Kandaurova,

Moscow State Technical University named after N.E. Bauman, Moscow

iriskan07@gmail.com

Olga S. Tkacheva,

Institute of Control Sciences V.A. Trapeznikov Academy of Sciences, approved by the Presidium of the Russian Academy of Sciences, Moscow tkolga17@gmail.com

Combinatorial method for calculating probabilities

Abstract. The article discusses practical techniques for solving problems of probability theory using combinatorics. The basic concepts of combinatorics with examples are considered. The basic laws of combinatorics are described, illustrated by examples. An algorithm for solving problems is proposed, problems with a detailed analysis of solutions and problems for independent solution are presented. The aim of the work is to describe the features of the application of methods of combinatorics for calculating probabilities. The content of the article will be useful for students and teachers of the discipline "Probability theory and mathematical statistics".

Key words: combinatorics, set of events, probability.

ИЗУЧЕНИЕ ДИНАМИКИ КВАДРОКОПТЕРА НА ОСНОВЕ MATLAB SUPPORT PACKAGE FOR PARROT DRONES1

Аннотация

Обычно пользователь управляет квадрокоптером прилагаемым к нему пультом или со смартфона, используя специально разработанные производителем приложения. Возможности управления при этом сильно ограничены набором некоторых стандартных встроенных функций. Однако, в процессе обучения у студентов может возникнуть необходимость управлять квадрокоптером или группой квадрокоптеров с использованием персонального компьютера. В этом случае удается задавать сложные последовательности из заранее разработанных команд или реализовывать свои собственные законы управления. Однако, для этого требуются дополнительные знания о том какие модели квадрокоптеров выбрать для экспериментов, какие программы и операторы использовать, как установить соединение компьютера с квадрокоптером по Wi-Fi и т.п. Статья посвящена рассмотрению указанных вопросов и может быть полезна студентам, интересующимся механикой и управлением подвижными объектами, а также преподавателям при организации лабораторных работ, связанных с управлением квадрокоптерами.

Ключевые слова

квадрокоптер, matlab, образование, практические занятия, Parrot Drones

АВТОРЫ

Глазков Тимур Владимирович,

математик лаборатории механики систем, Институт проблем механики им. А.Ю. Ишлинского РАН; аспирант кафедры математического моделирования ФГБОУ ВО «Московский государственный технический университет

им. Н. Э. Баумана»;

ассистент департамента механики и процессов управления, Инженерная академия ФГАОУ ВО «Российский университет дружбы народов», г. Москва

t.glazkov@bk.ru

1 Публикация выполнена при поддержке Программы стратегического академического лидерства РУДН.

Решмин Сергей Александрович,

главный научный сотрудник лаборатории механики систем, Институт проблем механики им. А.Ю. Ишлинского РАН; профессор кафедры математического моделирования ФГБОУ ВО «Московский государственный технический университет

им. Н. Э. Баумана»; профессор департамента механики и мехатроники, Институт космических технологий ФГАОУ ВО «Российский университет дружбы народов», г. Москва

геБИтт^'ртпе^ ги

Введение

В последнее время наблюдается положительный тренд на использование беспилотных летательных аппаратов (БПЛА) в образовательных учреждениях по всему миру [1, 2, 3, 4, 5]. В образовательных целях чаще всего используются БПЛА мультиротор-ного типа. В отличие от БПЛА самолетного или вертолетного типа, они обладают такими основными преимуществами, как возможность вертикального взлета и посадки (актуально при запуске аппарата в ограниченных по площади учебных помещениях), способность зависать в заданной точке пространства, перемещаться в любом направлении и вокруг своей оси. В некоторых моделях, например, Parrot Bebop, Parrot Mambo, Parrot Rolling Spider (Рис. 1) производители предусматривают специальные конструктивные элементы для защиты летательного аппарата (особенно пропеллеров) от повреждений при падении или столкновении с препятствием. Эти элементы также позволяют обезопасить человека от быстро вращающихся пропеллеров, поэтому для целей безопасности обучающихся в образовательном процессе часто предпочитают использовать аппараты именно с такой защитой.

Рис. 1. Квадрокоптеры Parrot Mambo FPV (слева) и Parrot Bebop 2 (справа)

БПЛА мультироторного типа обычно состоит из корпуса на основе крестообразной рамы или иной геометрии, на котором закрепляется полетный контроллер, аккумуляторная батарея и другие элементы, и двигателей, расположенных на концах рамы. На валы (оси вращения) двигателей закрепляются пропеллеры, за счет которых возникают силы тяги и крутящие моменты. Путем изменения этих сил и моментов осуществляется перемещение аппарата в пространстве. Такие БПЛА в технической литературе называют мультикоптерами.

Данная статья посвящена пакету поддержки Matlab Support Package for Parrot Drones [6], который является специальным дополнением к среде Matlab и позволяет управлять движением квадрокоптера (мультикоптер, оснащенный четырьмя двигателями) Parrot с компьютера путем задания команд летательному аппарату. Пакет позволяет управлять взлетом и посадкой, изменять направление движения, контролировать скорость и уровень наклона аппарата, выполнять «акробатические» элементы

(сальто в одном из четырех направлений). В режиме реального времени есть возможность считывать с бортовых датчиков навигационные данные о полете, такие как высота, ориентация и линейная скорость, оценивать текущий уровень заряда батареи, получать изображения и видео с камеры квадрокоптера, которые в дальнейшем могут быть использованы при их цифровой обработке в пакете Image Processing Toolbox. Команды передаются на дрон посредством Wi-Fi соединения, которое требуется заранее установить между компьютером и квадрокоптером.

Разработчиком квадрокоптеров Parrot является французская компания-производитель Parrot SA. Компания является одним из лидеров [7], наряду с китайской компанией DJI Technology, в сфере разработки и производства БПЛА мультироторного типа и обладает широким модельным рядом. Однако пакет поддержки позволяет работать не со всеми моделями Parrot. Компания MathWorks, разработчик среды Matlab, в списке поддерживаемых моделей указывает квадрокоптеры Parrot Mambo FPV и Parrot Bebop 2 (Рис. 1). Отметим, что пакет также позволяет работать с моделью Parrot Bebop 1.

Принцип движения квадрокоптера в пространстве

При математическом описании движения квадрокоптера предполагают, что аппарат представляет собой абсолютно твердое тело, обладающее тремя поступательными и тремя вращательными степенями свободы [8]. Поступательное движение описывается координатами центра масс аппарата в неподвижной системе координат, связанной с Землей, и происходит за счет изменения вектора силы тяги, который характеризуется направлением и величиной. В свою очередь, изменение параметров вектора силы тяги происходит за счет изменения углов наклона корпуса, относительно осей подвижной системы координат (ПСК). Введем оси ПСК как показано на Рис. 2, а именно: 1) начало ПСК находится в центре масс квадрокоптера; 2) ось X начинается в центре масс и указывает направление вдоль носа квадрокоптера; 3) ось Y начинается в центре масс и указывает вправо от квадрокоптера; 4) ось Z начинается в центре масс и направлена по направлению силы тяжести. Таким образом, тройка векторов, образующих оси ПСК, образовывает правый базис.

Y

X

Z

Рис. 2. Квадрокоптер и оси подвижной системы координат

Движение вдоль оси X происходит за счет наклона (поворота) корпуса вокруг оси Y. В этом случае наклон характеризуется углом тангажа (в пакете поддержки обозначается как «pitch»). Квадрокоптер движется вперед, если этот угол отрицательный. Если тангаж положительный, то аппарат движется назад.

Аналогично, движение вдоль оси Y происходит за счет наклона (поворота) корпуса вокруг оси X. В этом случае наклон характеризуется углом крена («roll»). Квадрокоптер движется влево, если этот угол отрицательный. Если крен положительный, то аппарат движется вправо.

В случае вращательного движения вокруг оси Z координаты центра масс не изменяются. В этом случае поворот характеризуется углом рыскания («yaw»). Если этот угол положительный, то вращение происходит в направлении от оси X к оси Y (движение против часовой стрелки, если смотреть на плоскость X-Y со стороны вектора Z). Если угол рыскания отрицательный, то вращение происходит в направлении от оси Y к оси X.

Таким образом, в идеализированных условиях (отсутствие шумов датчиков, внешних возмущений и др.) поступательное движение квадрокоптера зависит от динамики углов крена и тангажа и не зависит от динамики угла рыскания.

Задача взлета и посадки

Рассмотрим реализацию в пакете поддержки Matlab Support Package for Parrot Drones одних из основных этапов движения квадрокоптера - этапов взлета и посадки. Данный пакет поддержки по умолчанию не включен в среду Matlab, поэтому его потребуется дополнительно установить.

Установка пакета поддержки. Для установки пакета необходимо на вкладке «Ноme» в разделе «Environment» выбрать пункт «Add-Ons», а затем «Get Hardware Support Packages» (Рис. 3). В открывшемся окне «Add-On Explorer» необходимо найти пакет «Matlab Support Package for Parrot Drones», используя для этого поиск.

Проверить наличие обновлений пакета можно, выбрав на вкладке «Home» в разделе «Resources» пункт «Help», а затем подпункт «Check for Updates». Отметим, что пакет поддержки доступен для версий среды Matlab, начиная с R20^.

Подключение компьютера к квадрокоптеру Parrot. Для работы пакета поддержки потребуется установить Wi-Fi соединение между компьютером и дроном. Чтобы подключить компьютер к Wi-Fi-сети квадрокоптера Parrot Mambo или Parrot Bebop 2, необходимо: 1) вставить заряженный аккумулятор и включить дрон; 2) дождаться загрузки дрона; 3) открыть на компьютере Wi-Fi соединения и подключиться к беспроводной сети, соответствующей дрону. Название Wi-Fi-сети дрона состоит из модели и уникального ID-номера, например, «Bebop2-182202». Если на компьютере отсутствует Wi-Fi модуль, одним из решений является приобретение сетевого Wi-Fi-адаптера с USB-интерфейсом.

ш Simulink SIMULINK LjJ @ Preferences Layout Э Set Path ENVIRONMENT & Add-Ons Community Help 3 Request Support * Ш Learn MATLAB

Get Add-Ons

Manage Add-Ons

Package Toolbox ^."J Package App

Get Hardware Support Packages |\

Рис. 3. Этап установки пакета поддержки

Отметим, что пакет поддерживает только оригинальную заводскую прошивку и в процессе установки пакета не меняет ее. Восстановить оригинальную прошивку можно следуя инструкциям производителя дронов Parrot (см. [9]).

Связь среды Matlab и квадрокоптера Parrot. После установки пакета поддержки и подключения компьютера к Wi-Fi-сети дрона, остается подключиться к дрону непосредственно из среды Matlab. Для этого используется команда parrot:

• p = parrot() - подключение к первому доступному квадрокоптеру Parrot.

• p = parrot(droneName) - подключение к квадрокоптеру Parrot определенной модели. Тип входного аргумента droneName - string, допустимые значения - 'Mambo', 'Bebop2'. Пример: p = parrot('Bebop2').

• p = parrot(droneID) - подключение к квадрокоптеру Parrot c заданным ID. Тип входного аргумента droneID - string. Значение аргумента droneID совпадает с названием беспроводной сети дрона. Пример: p = parrot('Mambo_564853').

В результате выполнения команды parrot создается объект подключения дрона p (имя этого объекта может быть любым), в который будет занесена информация об имени и уникальном ID дрона, текущем состоянии дрона и уровне заряда батареи, доступности FPV камеры. К созданному объекту p можно применять функции.

Функция взлета. Функция takeoff инициирует взлет летательного аппарата на высоту 1 метр. В качестве входного аргумента выступает объект подключения дрона p. Пример: takeoff(p).

Функция посадки. Функция land инициирует постепенную («мягкую») посадку летательного аппарата с некоторого текущего положения дрона и завершает полет. В качестве входного аргумента выступает объект подключения дрона p. Пример: land(p).

Функция экстренного прерывания полета. Функция abort мгновенно завершает полет дрона путем прекращения работы двигателей. В качестве входного аргумента выступает объект подключения дрона p. Пример: abort(p).

Функция считывания текущей высоты. Функция readHeight возвращает текущую высоту квадрокоптера в метрах и момент времени, когда было произведено измерение (в виде datatime). В качестве входного аргумента выступает объект подключения дрона p. Функция работает только после этапа взлета аппарата. Пример: [height, time] = readHeight(p).

Рассмотрим следующую полетную задачу: требуется осуществить с помощью Matlab Support Package for Parrot Drones зависание дрона в течение 15 секунд на высоте 1 метр. Результаты полета необходимо представить в виде графика зависимости высоты от времени.

Создадим новое окно для графика, зададим цвет и толщину линии графика, подпишем оси:

f = figure;

linel = animatedline('Color', 'r', 'LineWidth', 2); xlabel(,Время, с); ylabel( Высота, м);

Осуществим подключение к дрону Parrot и взлет на высоту 1 метр, зададим время зависания flightTime:

p = parrot(); takeoff(p); flightTime = 15;

Для построения графика будем использовать пару функций - tic и toc. Функция tic записывает текущее время, в которое была вызвана; обращение к функции toc позволяет вычислить время прошедшее с момента запуска функции tic. Значение t1 соответствует прошедшему с момента окончания взлета времени, а h1 - высоте в это время. Функции addpoints и drawnow позволяют в режиме реального времени добавлять результаты измерения высоты на график:

tObj = tic;

while toc(tObj) < flightTime t1 = toc(tObj); hl = readHeight(p); addpoints(line1, t1, hl);

drawnow;

pause(0.1);

end

Остается реализовать этап посадки и завершить полет с помощью команды land(p). Результаты работы программы, полученные в процессе полета квадрокоптера Parrot Bebop, представлены на Рис. 4.

Рис. 5. Специально оборудованная площадка Заключение

В статье приведена методическая информация, которую читатель может использовать в качестве начальных знаний во время учебного процесса при знакомстве с технологией управления квадрокоптером с использованием персонального компьютера или ноутбука. В настоящее время в Инженерной академии РУДН разрабатывается соответствующий лабораторный практикум. На Рис. 5 изображена часть помещения, огороженная защитной сеткой и оборудованная мягким основанием для безопасных полетов квадрокоптеров.

Публикация выполнена при поддержке Программы стратегического академического лидерства РУДН.

ССЫЛКИ НА ИСТОЧНИКИ

1. Исаев Р.Р., Фазылов А.И., Нурышева К.И., Киряев Р.В. Методика обучения пилотированию квадрокопте-рами в дополнительном образовании // Вестник Башкирского государственного педагогического университета им. М. Акмуллы. 2016. № 4-2 (40). С. 53-59.

2. Зеленко Г.Н., Зеленко Н.В. Квадрокоптер как объект изучения в центре образования "Точка роста" // Тех-нолого-экономическое образование. 2020. № 13. С. 33-37.

3. Спивакова К.С. Использование квадрокоптеров в образовательном процессе // В сборнике: Информатизация непрерывного образования - 2018. Материалы Международной научной конференции: в 2 томах. Под общей редакцией В. В. Гриншкуна. 2018. С. 194-196.

4. Исаев Б.А., Дуйшонбек кызы Гулжамал, Умаров Т.С. Внедрение в учебный процесс беспилотного летательного аппарата (БПЛА) DJI квадрокоптера Phantom 3 Professional и программного обеспечения Agisoft Photoscan Professional // Известия Кыргызского государственного технического университета им. И. Разза-кова. 2018. № 3 (47). С. 486-492.

5. Golubev A. E., Glazkov T. V. Nonlinear quadrotor control based on Simulink Support Package for Parrot Mini-drones // Proceedings of the Workshop on Mathematical Modeling and Scientific Computing: Focus on Complex Processes and Systems — dedicated to the memory of Nikolai Botkin. — Vol. 2783. — Munich, Germany, 2020. P. 113-127.

6. MATLAB Support Package for Parrot Drones // MATLAB & Simulink URL: https://www.mathworks.com/help/sup-portpkg/parrotio/index.html (дата обращения: 20.10.2021).

7. Битва дронов: французский попугай против китайского яблока, или Parrot vs DJI // Хабр URL: https://habr.com/ru/company/inspectorgadgets/blog/404275/ (дата обращения: 20.10.2021).

8. Глазков Т. В., Голубев А. Е. Отслеживание программного изменения углового положения квадрокоптера // Математика и математическое моделирование. 2017. № 5. С. 15-28.

9. Restore Original Firmware // MATLAB & Simulink URL: https://www.mathworks.com/help/supportpkg/parro-tio/ug/restore-original-firmware.html (дата обращения: 20.10.2021).

Timur V. Glazkov,

Mathematician, Institute for Problems in Mechanics named after A.Yu. Ishlinsky RAS; Graduate Student, Department of Mathematical Simulation, Moscow State Technical University named after N.E.Bauman; Assistant, Department of Mechanics and Mechatronics, Institute of Space Technology of RUDN University, Moscow

t.glazkov@bk. ru Sergey A. Reshmin,

Principal Researcher, Institute for Problems in Mechanics named after A. Yu. Ishlinsky RAS; Professor, Department of Mathematical Simulation, Moscow State Technical University named after N.E.Bauman; Professor, Department of Mechanics and Mechatronics, Institute of Space Technology of RUDN University, Moscow reshmin@ipmnet. ru

Studying the dynamics of a quadrotor based on Matlab Support Package for Parrot Drones Abstract. Usually, the user controls the quadrotor with the remote control attached to it or from a smartphone using applications specially developed by the manufacturer. At the same time, the control capabilities are severely limited by a set of some standard built-in functions. However, in the course of training, students may need to control a quadrotor or a group of quadrotors using a personal computer. In this case, it is possible to set complex sequences from pre-designed commands or implement your own control laws. However, this requires additional knowledge about which models of quadrotors to choose for experiments, which programs and operators to use, how to connect a computer to a quadrotor via Wi-Fi, etc. The article is devoted to the consideration of these issues and may be useful to students interested in mechanics and control of moving objects, as well as teachers in the organization of laboratory work related to the control of quadrotors.

Key words: quadcopter, Matlab, education, practical training, Parrot Drones.

i Надоели баннеры? Вы всегда можете отключить рекламу.