Материал: Автоматизация системы управления квадрокоптера

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

При повышении дифференциальной компоненты происходит усиление на высоких частотах, что влечёт за собой усиление шумов измерений и внешних возмущений. Исходя из этого следует, что дифференциальную составляющую используют только для улучшения формы переходного процесса в системе, тогда как её практическая реализация зачастую содержит фильтр высоких частот(ФВЧ).

Рис.5. ПИД-регулятор в системе с шумом и внешними возмущениями f(t)

Повышение пропорционального коэффициента K влечёт за собой увеличение модуля петлевого усиления контура регулирования, а также увеличение точности во всём диапазоне частот, однако запас по фазе и усилению начинает снижаться, что ухудшает робастность и качество регулирования системы, а при дальнейшем увеличении пропорциональной составляющей K возникают периодические колебания (система теряет устойчивость). Воздействие помех измерений f и шума снижается с ростом петлевого усиления и пропорционального коэффициента.

1.3    Полетный контроллер

Полетный контроллер - это основная плата управления, обеспечивающая функционирование мультикоптера. В качестве вычислительного центра платы управления используется микроконтроллер, зачастую это либо маломощные Atmega328, либо более современные, Atmega2560 или ARM-контроллеры (STM32)

К функциям полетного контроллера относятся:

·        Стабилизация аппарата в воздухе

·        Удержание высоты (при помощи барометра) и позиции (при помощи GPS)

·        Автоматический полет по заданным заранее точкам (опционально)

·        Передача на землю текущих параметров полета с помощью модема или Bluetooth (опционально)

·        Обеспечение безопасности полета (возврат в точку взлета при потере сигнала, автопосадка)

·        Подключение дополнительной периферии: OSD, светодиодной индикации и пр.

Количество функций зависит от наличия на борту мультикоптера соответствующей периферии, в бюджетных контроллерах ряд функций может отсутствовать.

Используемый в данном проекте полетный контроллер ArduPilot Mega является полноценным решением БПЛА, который позволяет помимо радиоуправляемого дистанционного пилотирования - автоматическое управление по заранее созданому маршруту, т.е. полет по точкам, а также обладает возможностью двухсторонней передачей телеметрических данных с борта на наземную станцию (телефон, планшет, ноутбук, DIY) и ведение журнала во встроенную память.

Он основан на автопилоте APM 2.x, разрабатываемым сообществом DIY Drones и базирующийся на open-source проекте, позволяющий превратить любой аппарат в автономное средство и эффективно использовать его не только в развлекательных целях, но и для выполнение профессиональных проектов.

Особенности:

·        3 осевой гироскоп, акселерометр, магнитометр и высокоточный барометр

·        Система стабилизации с возможностью воздушной акробатики

·        Удержание позиции по GPS, полет по точкам и возврат на точку старта

·        Возможность использования инфракрасного датчика для обхода препятствий

·        Поддержка ультразвукового датчика (sonar sensor) для автоматического взлета и посадки

·        Автоматическое следование по маршрутным точкам

·        Управление двигателями посредством ШИМ (PWM) с использованием дешевых регуляторов скорости (ESC)

·        Собственная система стабилизации для камеры (функция контроллера подвеса)

·        Радиосвязь и телеметрия с борта

·        Поддержка множества рам и конфигураций аппаратов

·        Поддержка датчика уровня заряда батареи

·        Настраиваемая световая индикация при полетах

·        Совместим с многими радиоуправляемыми приемниками PWM и PPM сигналов

·        Передача в реальном времени телеметрических данных

·        Поддержка OSD телеметрии (наложение на видеопередачу телемерических данных) используя протокол MAVLINK

·        Конфигурирования точек полета посредством Google Maps

·        Бортовая флеш память 16Мбит для автоматической регистрации данных

·        Цифровой компас работает на HMC5883L (до версии 2.5.2)

·        6 степеней свободы в InvenSense акселерометре , гироскоп MPU-6000

·        Контроллер Atmel ATmega2560-16AU и ATMEGA32U-2 чип для обработки и функции USB

·        Возможно загрузка обновлений встроенного программного обеспечения и конфигурации

Ниже описаны некоторые режимы полета, доступные контроллеру:

·        Stabilize - удержание горизонта,

·        AltHold - удержание высоты,

·        Loiter -«замри и слоняйся»,

·        Return-to-Launch - вернуться на точку старта,

·        Auto - выполнение заданного маршрута в автоматическом режиме,

·        Acro - акробатика (отключение всех стабилизационных систем),

·        Circle - облет по кругу заданного радиуса,

·        Position - фиксация в воздухе с ручным газом взлета

·        Land - автоматическая посадка

·        Simple - «легкий» полет

Контроллер предусматривает возможность самостоятельно программировать режимы полета.

1.4    Фильтр Калмана

В практической части работы используется алгоритм фильтрации, называемый фильтром Калмана. Это один из самых действенных методов фильтрации данных в частности в робототехнике.

Фильтр Калмана использует динамическую модель системы (например, физический закон движения), известные управляющие воздействия и множество последовательных измерений для формирования оптимальной оценки состояния. Алгоритм состоит из двух повторяющихся фаз: предсказание и корректировка. На первом рассчитывается предсказание состояния в следующий момент времени (с учетом неточности их измерения). На втором, новая информация с датчика корректирует предсказанное значение (также с учетом неточности и зашумленности этой информации)

Рис.6. Схема фильтра Калмана

Уравнения представлены в матричной форме. В случае с одной переменной матрицы вырождаются в скалярные значения.

В данных обозначениях: подстрочный индекс обозначает момент времени: k - текущий, (k-1) - предыдущий, знак «минус» в верхнем индексе обозначает, что это предсказанное промежуточное значение.
Описание переменных представлены на следующих изображениях[4]:

Рис.7. Уравнение предсказания

Рис.8. Уравнение корректировки

2.      Технология компьютерного зрения

В данном разделе даны основные теоретические сведения о рассматриваемом предмете.

2.1    Введение в компьютерное зрение

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

Компьютерное зрение - это очень молодая и динамично развивающаяся область компьютерной технологии. Первые разработки в этой области появились только в начале 1970-х годов. Главной причиной этому служит то, что методы, обычно используемые в алгоритмах компьютерного зрения достаточно требовательны к вычислительной мощности машин - почти всегда приходится иметь дело с большими по временам рассвета цифровой эры массивами данных. Так же по причине относительной новизны технологии и происхождения её из многих других областей компьютерной науки, не существует стандартной формулировки проблемы компьютерного зрения, и, более того, не существует стандартного решения этой проблемы. Методы и алгоритмы компьютерного зрения очень сильно зависят от конкретно поставленной задачи и могут кардинально отличаться друг от друга. Компьютерное зрение во многом происходит от таких областей, как статистика, методы оптимизации и обработка сигналов, а также тесно пересекается с ними.

Максимально корректно задачу компьютерного зрения можно сформулировать как извлечение полезных описаний из изображения или последовательности изображений, а также в формировании полезных выводов исходя из этих описаний. Критерий полезности описания и, соответственно, нужные методы обработки выбираются исходя из конкретной задачи[5].

Главная сложность технологий компьютерного зрения и, в то же время, причина необходимости их создания, состоит в том, что любая электронно-вычислительная машина лишена абстрактных категорий и способна работать только с конкретными величинами. Компьютер не «понимает», что такое форма, текстура, размер или даже цвет, его можно только «научить» работать с этой информацией, определенным образом закодировав её в последовательность нулей и единиц.

2.2    Методы обработки изображений в компьютерном зрении

Компьютерное зрение не рассматривает технологии создания цифровых изображений, описывая лишь их обработку, поэтому опустим подробности и остановимся на том, что устройство захвата (цифровая камера), используя светочувствительные элементы формирует изображение (фото) или последовательность изображений (видео) реальных объектов. «Изображение» для компьютера - это определенным образом закодированный массив чисел.

Рис.9. Представление зрительной информации компьютером

Каждый пиксел этого изображения - это элемент двухмерного массива. Порядковый номер определяет его положение на двухмерном пространстве изображения, а значение элемента - его яркость. Для цветного изображения каждый пиксел необходимо закодировать как минимум тремя числами, чаще всего это значения яркости красной, зеленой и синей составляющих.

Однако широкая область методов компьютерного зрения принимает в качестве входных данных бинарные изображения (состоящие только из пикселов черного или белого цветов). В данной работе есть смысл остановиться на этих методах.

Эти алгоритмы могут выполнять различные действия - от очень простых, наподобие подсчета каких-либо признаков, до гораздо более сложных действий, связанных с распознаванием, определением местоположения и контролем объектов. Для формирования бинарного изображения B по данным полутонового или цветного изображения I можно выполнить операцию, которая выбирает некоторое подмножество пикселов изображения в качестве пикселов переднего плана (foreground pixels). Эти пикселы представляют интерес для решаемой задачи анализа изображений. Остальные пикселы игнорируются как фоновые (background pixels). Операция отбора пикселов может быть простой (например, пороговый оператор, который отбирает пикселы со значениями из заданного яркостного диапазона или цветового подпространства) или представлять собой сложный алгоритм классификации. [2]

Будем предполагать, что бинарное изображение уже сформировано и рассматривать это изображение в качестве входных данных для выполнения операций анализа изображений. Понятие бинарного изображения иллюстрируется на рис. 10 на примере четырех бинарных изображений рукописных символов.

Рис. 10. Бинарное изображение рукописных символов

Пикселы бинарного изображения B принимают значения 0 или 1. Будем полагать, что значения 1 соответствуют пикселам переднего плана, а 0 - фоновым пикселам. Значение пиксела на пересечении строки r и столбца c пиксельного массива обозначается как B [r, c]. Изображение размерами M × N состоит из M строк, пронумерованных от 0 до M − 1, и N столбцов, пронумерованных от 0 до N − 1. Таким образом, обозначение B [0, 0] соответствует значению левого верхнего пиксела изображения, а B [M − 1, N − 1] - значению правого нижнего пиксела. Во многих алгоритмах при обработке пикселов учитываются не только их значения, но и значения соседних пикселов. При рассмотрении соседних пикселов часто используются два определения окрестностей - четырехсвязная и восьмисвязная окрестности. Четырехсвязная окрестность N4 [r, c] пиксела [r, c] состоит из пикселов [r − 1, c], [r + 1, c], [r, c − 1] и [r, c + 1]. Они часто называются, соответственно, северным (north), южным (south), западным (west) и восточным (east) соседями. Восьмисвязная окрестность N8 [r, c] пиксела [r, c] содержит все пикселы четырехсвязной окрестности, а также диагональные соседние пикселы [r − 1, c − 1], [r − 1, c + 1], [r + 1, c − 1] и [r + 1, c + 1]. Их можно соответственно называть северо- западным (northwest), северо-восточным (northeast), юго-западным (southwest) и юго-восточным соседями (southeast). Расположение соседних пикселов в окрестностях двух типов демонстрируется на рис. 11. [7]

Рис. 11. Четырехсвязная и восьмисвязная окрестности пикселов

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

Вообще методы обнаружения можно условно разделить на три основные группы:

− скелетные методы;

− методы на основе 3D модели объекта;

− методы на основе 2D модели объекта.

В скелетных методах исследуется контур силуэта: обычно отыскиваются углы, выступы, впадины и другие точки с высокими значениями кривизны. Для получения информации о форме контура применяются различные представления границы объекта. В методах на основе 3D модели руки представляют в виде сложных трехмерных поверхностей и классифицируются с помощью нейронных сетей Метод 2D распознавания схож с предыдущим, но использует двумерное изображение вместо объемных моделей. Каждый из методов имеет преимущества и недостатки. Недостатком метода на основе 3D модели является его ресурсоемкость. Построение 3D модели, обучение нейронной сети и ее использование могут потребовать значительных ресурсов, так же не стоит забывать, что для использования данного метода требует камеры с возможностью определения глубины изображения.

Источник: https://www.bibliofond.ru/view.aspx?id=903210