Мини-Система Управления Дирижаблем

Добрый день, уважаемый читатель, представляем вашему вниманию проект разработки сенсорной системы управления мини-дирижаблем.

Задача управления – переместить дирижабль по прямой.

Также была реализована простая система дистанционного управления.

Объектом управления является мини-дирижабль, разработанный на кафедре МИМ ТТИ ЮФУ.



Мини-система управления дирижаблем

Рисунок 1 – Общий вид мини-дирижабля.

Целью проекта является: разработка системы технического зрения для обнаружения линии (траектории движения); разработка регулятора курса, учитывающего факторы положения линии и угла наклона линии относительно дирижабля; разработка регулятора высоты; разработка системы дистанционного управления.



1. Анализ задачи и формулировка проблемы.

Разработка сенсорной системы управления базируется на мини-дирижабле, спроектированном на кафедре МИМ.

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

Аппаратная часть мини-дирижабля состоит из

  • — одноплатный компьютер Raspberry Pi;
  • — широкоугольная веб-камера Genius WideCam 1050;
  • — ультразвуковой датчик высоты hc-sr05;
  • — два электродвигателя;
  • — сервопривод отклонения тяги двигателя;
  • — силовые подсистемы.

Вращение мини-дирижабля вокруг вертикальной оси осуществляется двигателями различной тяги.

Высота дирижабля регулируется за счет отклонения вектора тяги двигателей вдоль вертикальной оси.

Двигатели дирижабля имеют возможность устанавливать максимальную скорость вращения 3200 об/мин.

/ мин.

Рабочее напряжение двигателей 7,4 вольта.

Двигатели разнесены на расстоянии 25 см от центра дирижабля и расположены в самой нижней точке дирижабля.



2. Система технического зрения



2.1. Блок-схема системы технического зрения


Мини-система управления дирижаблем

Рисунок 2 – Структурная схема системы технического зрения мини-дирижабля.

Система технического зрения состоит из аппаратной и программной части.

Аппаратная часть соединена с программной частью проводным соединением, куда передается уже сформированный сигнал формата MJPG. Аппаратное обеспечение включает в себя веб-камеру.

Программная часть включает в себя:

  • — драйвер камеры для получения видеоизображения в формате MJPG и настройки параметров камеры;
  • — модуль обработки изображений.



2.2. Разработка функциональной схемы
С учетом выбранного метода обработки и алгоритма определения местоположения линии (о котором речь пойдет в следующей главе) в программной реализации были выделены следующие подзадачи:
  • — настроить внутренние параметры видеокамеры;
  • — получить изображение с камеры;
  • — конвертировать изображение из формата MJPG в цветовой формат HSV;
  • — организовать поиск зоны пересечения по цветовому сопоставлению;
  • — реализовать алгоритм определения координат точки пересечения,
  • — фильтрация нежелательных сигналов;
  • — реализовать интеграцию блока ВС с блоком регулятора направления.

За получение изображения с камеры и преобразование его в цветовой формат HSV отвечает библиотека opencv.

2.3. Алгоритм
Как известно, через любые две точки пространства можно провести прямую.

В этом случае на систему технического зрения мини-дирижабля возлагается задача определения проложенной линии.

Первым этапом обработки изображения будет поиск этих двух точек, через которые была проведена наша линия.

Давайте определим области интереса на нашем изображении для поиска этих точек.

Оптимальным расположением интересующей зоны будут промежутки между 1/3 вертикальной части кадра и 2/3. как показано на рисунке 4 синими линиями.



Мини-система управления дирижаблем

Рисунок 3 – Оптимальное расположение области интереса.

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

зона.

Высота каждой зоны — 10 пикселей.

Точка пересечения с линией определяется путем сопоставления пикселей заданному цвету.

Цветовое пространство системы технического зрения HSV. 2 этапа алгоритма, работающие с каждой интересующей областью.

1. Определение соответствия заданному цвету происходит в массиве, ширина которого равна ширине полученного с камеры кадра.

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

Это усредняет цветовой шум, исходящий от камеры.

Массив состоит из 3 строк, каждая из которых соответствует каналам HSV. На выходе мы получаем одномерный массив, в котором значение «1» обозначает адреса пикселей, соответствующие данному цвету, а значение «0» обозначает адреса пикселей, не соответствующих данному цвету.

  
   

for(x = 0 ; x<width ; x++) {offset = x * nchannels; for (y2=35; y2<46; y2++ ) { uchar* data = (uchar*)(hsv->imageData + y2*step); r=data[offset + 2]; g=data[offset + 1]; b=data[offset]; h[y2-35]=b; s[y2-35]=g; v[y2-35]=r; } h[10]=(h[0]+h[1]+h[2]+h[3]+h[4]+h[5]+h[6]+h[7]+h[8]+h[9])/10; s[10]=(s[0]+s[1]+s[2]+s[3]+s[4]+s[5]+s[6]+s[7]+s[8]+s[9])/10; v[10]=(v[0]+v[1]+v[2]+v[3]+v[4]+v[5]+v[6]+v[7]+v[8]+v[9])/10; if ((h[10]<h1&&h[10]>h2)&&(v[10]>ss)&&(s[10]>vv)) {st[x]=1;} else {st[x]=0;}

2. Определение левой и правой границ зоны пересечения.

Используя входной массив, заполняются два массива одинакового размера.

Назовем их st1 и st2. Алгоритм заполнения массива реализуется циклом, в котором определенная переменная линейно увеличивается, если рассматриваемый элемент во входном массиве равен 1, и экспоненциально уменьшается, если рассматриваемый элемент равен 0, и записывается в следующий элемент. массива st1. Для формирования массива st2 входной массив рассматривается с конца.

В результате массивы st1 и st2 графически можно представить следующим образом (рис.

5)

Мини-система управления дирижаблем

Рисунок 5 – Графическое представление массивов st1 и st2. Самая широкая зона обнаружения цвета является полезным сигналом.

Шум — это небольшие ложные срабатывания, которые можно наблюдать на рисунке 7. Координата x максимального элемента на красном графике (st1) — это правая часть линии, пересекающей интересующую область.

Координата X максимального элемента синего графика (st2) — это левая часть линии, пересекающей интересующую область.

Листинг

double sum=1; double sum2=1; for (x=0; x<width; x++ ) { if (st[x]==1) {sum=sum+1;st1[x]=sum;} else {sum=sum/1.05;st1[x]=sum;} if (st[width-x]==1) {sum2=sum2+1;st2[width-x]=sum2;} else {sum2=sum2/1.005;st2[width-x]=sum2}}

После формирования массивов st1 и st2 находятся максимальные элементы массива и вычисляется центр зоны пересечения.

Применив все описанные действия ко второй зоне пересечения, на выходе мы имеем координаты точек, через которые проходит линия.

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

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



3. Контроль направления



3.1. Структурная схема регулятора в части системы управления
Рисунок 4 – Структурная схема регулятора направления.

Программная реализация состоит из:

  • — нечеткий контроллер;
  • — математический модуль расчета поворота линии;
  • - программный ШИМ.

Аппаратное обеспечение Raspberry pi состоит из процессора bcm2835, соединяющего контакты gpio по результатам работы программного ШИМ.

Аппаратная реализация состоит из:

  • — машинисты двигателя Л293ДНЕ;
  • — Левый и правый электромотор.

Структурная схема регулятора направления состоит из программной части, основанной на нечетком регуляторе.

Алгоритм дефаззификации — алгоритм Мамдани.

Использование программного ШИМ обусловлено отсутствием аппаратного ШИМ в используемом одноплатном компьютере Raspberry pi. Драйвер двигателя используется для усиления сигнала ШИМ.



3.2. Проектирование нечеткого регулятора.

3.2.1. Определение входов и выходов создаваемой системы.

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

Выходными переменными контроллера будут параметры выходного ШИМ-сигнала в процентах.

Выходная переменная воздействия на левый двигатель обозначена как (LEV), на правый двигатель соответственно (RIGHT).

3.3.2. Установка функции принадлежности с условиями для каждой входной и выходной переменной Необходимо указать выходные условия принадлежности левого и правого двигателей, определяемые нелинейными параметрами работы двигателя постоянного тока относительно эффекта ШИМ.

Но поскольку скорости полета дирижабля требуют небольшого линейного отклонения двигателей, были поставлены условия идеального двигателя с абсолютной линейной характеристикой.

Рисунок 5—Термины выходных переменных LEV и RIGHT. Входные переменные отклонения продольной оси дирижабля от линии и поворота линии от этой же оси получены в результате работы системы технического зрения и математического модуля расчета угла, камера которого имеет индикаторы искажений.

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

В этой задаче условия были скорректированы с учетом моделей искажений камеры, а не скорректированы на их основе.

Условия были изменены примерно, что было достаточным условием функционирования системы.

Рисунок 6 – Термин OFF и POV. 3.2.3. Разработка базы правил вывода для реализуемой нечеткой системы.

Для разработки базы правил необходимо обозначить лингвистические переменные (термины) понятными именами.

Рисунок 7 – Обозначение терминов.

ВЫКЛ 1 – далеко влево.

ВЫКЛ 2 – влево.

ВЫКЛ 3 – центр.

ВЫКЛ 4 – вправо.

ВЫКЛ 5 — слишком далеко вправо.

POV 1 — далеко налево.

Точка зрения 2 — слева.

Точка зрения 3 – центр.

Точка зрения 4 – верно.

POV 5 – сильно вправо.

ЛЕВ 1 – очень слабый.

ЛЕВ 2 – слабый.

Лев 3 – средний.

Лев 4 – сильный Лев 5 – очень сильный.

ПРАВО 1 – очень слабо.

ПРАВО 2 – слабое.

СПРАВА 3 – средний.

ПРАВО 4 – сильный ПРАВИЛЬНО 5 – очень сильный

Соответственно этим названиям, учитывая, что мини-дирижабль управляется разной тягой двигателей, установим термин соединения.

блок правил:

ЕСЛИ ВЫКЛ сильный влево, ТО ЛЕВЫЙ очень слабый И ПРАВЫЙ очень сильный.

ЕСЛИ ВЫКЛ находится влево, ТОГДА ВЛЕВО - слабый.

И очень ПРАВИЛЬНО ЕСЛИ ВЫКЛ от центра, ТО ЛЕВ средний.

А ПРАВО среднее.

ЕСЛИ ВЫКЛ — вправо, ТО ЛЕВОЕ — сильное, А ПРАВОЕ — слабое.

ЕСЛИ ВЫКЛ — очень вправо, ТОГДА ВЛЕВО — очень сильно.

И очень слабо ПРАВА.

ЕСЛИ Точка зрения очень левая, ТО ЛЕВ очень слаб.

И он очень ПРАВ.

ЕСЛИ Точка зрения слева, ТО ЛЕВ слаб.

И очень ПРАВИЛЬНО ЕСЛИ Точка зрения справа, ТО ЛЕВ сильный, А ПРАВЫЙ слабый.

ЕСЛИ Точка зрения очень правая, ТО СЛЕВА очень сильно.

И очень слабо прав

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

дирижабль.

В этой нечеткой системе алгоритмом дефаззификации является алгоритм Мамдани.

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

3.2.4. Анализ процесса работы нечеткой системы Анализировать рабочий процесс.

Построены корреляционные портреты регулятора.

На следующих рисунках ось Y — это входная переменная POW, ось X — входная переменная OFF. Цвет пикселя соответствует входной переменной каждого мотора, белый — минимум, черный — максимум.

Рисунок 8 – Корреляционные портреты выходного значения нечеткой системы для левого и правого двигателей, пересечение корреляционных портретов.

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

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

Характерные черные квадратные области по краям дают маргинальные термины с усеченной вершиной.

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

В правой части видео вы можете наблюдать уровни сигнала ШИМ для левого и правого двигателей соответственно.

В левой части находятся входные и выходные дополнительные термины.



4. Регулятор высоты



4.1. Блок-схема регулятора
Рисунок 9 – Структурная схема регулятора высоты.

Программная реализация состоит из:

  • ПИ-регулятор на основе нечеткой логики;
  • математический модуль расчета расстояния;
  • программный ШИМ;
Аппаратное обеспечение Raspberry pi состоит из процессора bcm2835, соединяющего контакты gpio по результатам работы программного ШИМ.

Аппаратная реализация состоит из

  • Сервопривод, изменяющий вектор тяги двигателей;
  • Ультразвуковой датчик HC-SR05.


4.2. Конструкция нечеткого контроллера
4.2.1. Определение входов и выходов создаваемой системы Входным параметром нечеткой части контроллера является отклонение от желаемой высоты.

Выходная переменная является пропорциональной частью компонента pi гибридного контроллера.

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

4.2.2. Установка функции принадлежности с условиями для каждой входной и выходной переменной Зададим выходные члены членства, руководствуясь равномерным распределением термов по поверхности.

Нелинейность вывода нечеткой системы определяется условиями входной переменной.

Рисунок 10 — Условия выходной переменной OUTPUT Условия ввода ошибки переменной высоты показаны на рисунке ниже.

Рисунок 11 — Условия входной переменной HEIGHT 4.2.3. Разработка базы правил вывода для реализуемой нечеткой системы.

Для разработки базы правил необходимо обозначить лингвистические переменные (термины) понятными именами.

Рисунок 12 — Обозначение термина

Высота 1 – сильное отклонение вниз.

Высота 2 – отклонение вниз.

Высота 3 – без отклонений.

Высота 4 – отклонение вверх.

Высота 5 сильного отклонения вверху

Выход 1 – высокий положительный Выход 2 – положительный Выход 3 – ноль Выход 4 – отрицательный Выход 5 – высокий отрицательный
Мы ответственно устанавливаем прямую связь между терминами.

блок правил: IF Высота: сильное отклонение вниз, THEN Выход: высокий положительный результат IF Высота: отклонение вниз, THEN Выход: положительный ЕСЛИ Высота: нет отклонений, ТО Выход: Ноль IF Высота: отклонение вверх, THEN Выход: отрицательный ЕСЛИ Высота: сильное отклонение вверх, ТО Выход: высокий отрицательный

5. Система дистанционного управления.

Для контроля разницы тяговых моментов на двигателях реализована система дистанционного управления.

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

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

Видеопоток передается таким же образом благодаря тому, что протокол ssh позволяет следить за экраном удаленной машины.



6. Экспериментальное исследование системы.

Разработанная система была исследована в лабораторных условиях.

Система технического зрения распознает положение линии и передает координаты точек пересечения в блок управления направлением.

Работа системы технического зрения Облет мини-дирижабля Стабильность системы регулировки направления и высоты достигалась подбором коэффициента.

пропорционально увеличению выходного воздействия нечеткой системы.

Рисунок 13 — Положения вектора тяги и датчика высоты дирижабля.

Указанная высота 80 см.

На основании полученных данных мы видим, что сигнал с датчика сильно зашумлен; ошибка при разработке системы заключалась в неиспользовании фильтра сигнала.

Причиной отказа от использования фильтра сигнала стал тест датчика, который показал, что сигнал датчика не очень зашумлен.

Тест проводился на ненагруженной системе, что, вероятно, позволяло точно генерировать и контролировать сигнал от датчика.

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

Шумами на графике направления вектора тяги можно пренебречь, так как сервопривод не успеет мгновенно развернуться на заданный угол.

Сервопривод успевал поворачиваться только на средние значения между двумя поворотниками.

Средние значения легко видны на графике.

Что касается самой системы управления высотой, то очевидно, что она опережает значения вектора тяги.

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

В ходе испытаний были протестированы все реализованные блоки управления.

Работа системы технического зрения была разработана для достижения абсолютно бесшумного и безошибочного распознавания линий в условиях люминесцентного освещения.

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

Выявлены недостатки управления, характеризующиеся острой реакцией регулятора при закрытии линии.

Ход испытаний фиксировался на видео, а также велся журнал состояний системы, что позволило сделать сформулированные выше выводы.

Теги: #Робототехника #OpenCV #Raspberry Pi #техническое видение #нечеткая логика #нечеткая логика #linux #C++ #Алгоритмы

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.