Статья опубликована в рамках: XLII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 31 мая 2016 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ АЛГОРИТМА РАСПОЗНАВАНИЯ СТАНДАРТНЫХ СИТУАЦИЙ АВТОНОМНЫМ РОБОТОМ НА ОСНОВЕ НЕЧЕТКОЙ ЛОГИКИ В СРЕДЕ LABVIEW
Одной из проблем, возникающих при разработке систем управления автономного мобильного робота, является проблема распознавания стандартных ситуаций. Решение навигационной задачи автономным мобильным роботом обеспечивает сенсорный блок, состоящий из ультразвуковых датчиков HC-SR04 [1]. Отличительными особенностями предлагаемой модели являются:
- использование системы сонаров посылающих на управляющее устройство не непосредственные показания в метрической системе, а обработанные нечетко-логическими алгоритмами данные [4].
- распознавание ситуаций осуществляется на основе нечетко-логических моделей, в отличие от распознавания методами кластерного анализа, используемыми в [5].
В результате чего на вход управляющего движением микроконтроллера (МК) поступает модель ситуации, в которой находится анимат, что позволяет реализовать принципы ситуационного управления и иерархический принцип построения интеллектуальных систем, описанные в [5].
Для плоского движения мобильного гусеничного робота была поставлена задача распознавания стандартных ситуаций (таблица 1).
Таблица 1.
Набор стандартных ситуаций
Распознавание осуществлялось при помощи сенсорного блока, описанного в [3]. Данный блок базируется на МК Arduino, являющемся представителем AVR-архитектуры, а управляющим контроллером робота является LEGO NXT, который базируется на микросхеме ARM-структуры. Нетривиальной задачей было не только объединить разработанный нами ранее сенсорный блок с NXT, но и правильно производить опрос датчиков, чтобы минимизировать взаимное влияние датчиков друг на друга и «просадку» напряжения на микроконтроллере, которая ведет к значительному искажению результатов измерений. Структурная схема полученной системы представлена на рис. 1.
Рисунок 1. Структурная схема иерархической структуры.
Принцип структуры состоит в следующем: микроконтроллер NXT («мастер») каждые 100 мс посылает запрос на получение данных с текущего датчика (они опрашиваются по кругу от Д3 к Д1). Это происходит путем посыла 16-ти битного кода по шине I2C (0x01, 0x02, 0x03 для Д3, Д1 и Д2 соответственно) [2] на МК Arduino («слейв»). В ответ слейв отправляет показание датчика, преобразованное в массив 16-ти битных кодов символов, составляющих число. Данные получаются NXT и отправляются на обработку в среду LabVIEW.
Рассмотрим подробнее алгоритм обработки полученных от Arduino данных.
Рисунок 2. Блок-диаграмма виртуального прибора
Сначала мы объявляем разъем №1 на МК NXT пользовательским датчиком. Далее мы производим получение данных с каждого из датчиков с помощью функции I2С_Communication (3 – количество байт, ожидаемых от «слейва», x14 – адрес Arduino, заложенный прошивкой, а 0x01, 0x02 и 0x03 – адреса датчиков, описанные выше). Выходной массив данных поступает на подприбор FF, который сравнивает текущий элемент массива с xFF (пустым символом) и обрезает эти самые незначимые нули. Затем происходит конкатинация выходной строки со строковой константой «Distance D1..3:» и вывод полученной строки на экран NXT. Параллельно каждая из выходных строк поступает на вход блока NXT String to Number, преобразующего строковое представление в числовое. Уже преобразованные значения от каждого из трех датчиков поступают на вход блока Build Array, создающего массив, выход которого передается на блок «нечеткой логики». Результатом «мягкой» обработки данных является номер ситуации (Таблица 1), в которой находится мобильный робот. Данный номер также передается на экран NXT, пройдя предварительную конкатинацию со строковой константой «Event:». База нечеткой логики была подробно описана в [3] и применена здесь без существенных изменений.
Лицевая панель прибора представляет собой виртуальный экран NXT (рис. 3)
Рисунок 3. Лицевая панель виртуального прибора.
Полученные в рамках данной работы результаты позволили сделать еще один маленький шаг на пути к созданию автономного мобильного робота. В дальнейшем, планируется выходное значение переменной Event передавать на вход нечеткой базы, контролирующей ответную реакцию анимата, находящегося в сложившейся ситуации. Тем самым акцент будет переноситься из области решения задачи идентификации стандартной ситуации в область формирования реакции анимата на возникающую ситуацию.
Список литературы:
- Горшенин Н.О., Рябошапко Б.В. Аэроакустическая интеллектуальная система предупреждения лобового столкновения квадрокоптера с препятствием// Материалы XXXVI-XXXVII Международной научно-практической конференции: «Научная дискуссия: проблемы математики, физики, химии, биологии ». Интернаука, 2016. С. 35-42.
- Горшенин Н.О., Рябошапко Б.В. Интеграция микроконтроллеров и языков программирования при решении навигационной задачи автономным роботом. Материалы X Международной научно-практической конференции: «Вектор развития современной науки». Олимп, 2016. С. 245-251.
- Горшенин Н.О., Рябошапко Б.В. Практическая реализация сенсорного навигационного блока квадрокоптера на основе нечетко-логической модели в среде LABVIEW// Материалы IX Международной научно-практической конференции: «Научные исследования и разработки 2016». Олимп, 2016. С. 324-328.
- Пегат А. Нечеткое моделирование и управление. – М. БИНОМ. Лаборатория знаний, 2013 – (Адаптивные и интеллектуальные системы).
- Поспелов Д.А. Ситуационное управление: теория и практика – М.: Наука – Физ.мат.лит., 1986.
дипломов
Оставить комментарий