ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ
ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»
(НИУ «БелГУ»)
ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК
КАФЕДРА ИНФОРМАЦИОННЫХ И РОБОТОТЕХНИЧЕСКИХ СИСТЕМ
Модели и средства управления мобильным роботом
Магистерская диссертация
обучающегося по направлению подготовки
09.04.02 Информационные системы и технологии
очной формы обучения
группы 07001635
Шоур Ибрагима
Научный руководитель
к.т.н., доцент
Шамраев А.А.
Рецензент
БЕЛГОРОД 2018
РЕФЕРАТ
Модели и средства управления мобильным роботом. – Шоур Ибрагим,
магистерская
диссертация,
Белгород,
Белгородский
государственный
национальный исследовательский университет (НИУ «БелГУ»), количество
страниц 88, включая приложения 107, количество рисунков 52, количество
таблиц 4, количество использованных источников 30.
АВТОНОМНЫЙ МОБИЛЬНЫЙ РОБОТ, ЛАКАЛЬНАЯ КАРТА СРЕДЫ,
НАВИГАЦИОННЫЕ
СИСТЕМЫ,
МЕТОДЫ
НАВИГАЦИИ,
МОДЕЛЬ
УПРАВЛЕНИЯ АМР.
Объектом исследования является процесс управления мобильным
роботом.
Предметом исследования являются модели и средства навигации
автономного мобильного робота.
Цель работы: усовершенствование существующих и разработка новых
моделей и интеллектуальных средств управления автономным мобильным
роботом (АМР) в сложных неструктурированных средах за счет использования
средств
искусственного
интеллекта
для
обеспечения
адаптации
к
неопределенным ситуациям и изменениям окружающей среды во время
навигации робота к предварительно заданной цели.
Задачи
исследования:
анализ
существующих
методов
и
средств
навигации мобильного робота; разработка методов адаптивного управления
автономным
мобильным
роботом;
моделирование
систем
управления
мобильным роботом; программная реализация предложенных методов для
системы навигации мобильным роботом.
Методы исследования: регулярный итеративный метод градиентного
поиска с локальной адаптивной оценкой ограничений второго рода для
определения пути перемещения АМР; метод построения траектории движения
2
АМР подсистемы маневров, который позволяет достичь цель в сложной
неструктурированной среде.
Полученные результаты: практическое значение полученных результатов
состоит в использовании предложенных моделей и методов для повышения
эффективности навигации АМР в статической и динамической среде при
создании интеллектуальных систем управления автономными роботами, а
также
для
обеспечения
адаптации
маневрирования
в
условиях
неорпеделенности за счет использования элементов искусственного интеллекта.
3
СОДЕРЖАНИЕ
ПЕРЕЧЕНЬ
УСЛОВНЫХ
ОБОЗНАЧЕНИЙ,
СИМВОЛОВ,
ЕДИНИЦ,
СОКРАЩЕНИЙ И ТЕРМИНОВ ............................................................................... 6
ВВЕДЕНИЕ .................................................................................................................. 7
1
Анализ средств и методов навигации мобильных роботов .............................. 9
1.1
1.1.1
Анализ технологий построения систем навигации ................................... 9
Инерциальные системы навигации на гиростабилизированных
платформах ............................................................................................................ 9
1.1.2
Бесплатформенные инерциальные системы навигации .................... 10
1.1.3
Одометрические системы навигации .................................................. 11
1.1.4
Наземные радионавигационные системы ........................................... 12
1.1.5
Спутниковые радионавигационные системы ..................................... 12
1.1.6
Комбинированные системы навигации .............................................. 13
1.2
Глобальные методы навигации автономного мобильного робота в
структурированной среде ..................................................................................... 15
1.3
Локальные методы навигации для задачи достижения цели в
неизвестной среде ................................................................................................. 21
1.4
Обобщенная модель системы управления и постановка задачи
исследования .......................................................................................................... 24
2
Разработка методов и моделей адаптивного управления автономным
мобильным роботом .................................................................................................. 31
2.1
2.1.1
Разработка методов навигации мобильного робота ................................ 31
Метод навигации мобильного робота для неструктурированной
среды 31
2.1.2
Метод проведения маневров по заданной траектории ...................... 42
2.1.3
Результаты имитационного моделирования предложенных методов
49
2.2
Моделирование системы управления мобильным роботом ................... 55
4
2.2.1
Модель интеллектуальной системы управления ............................... 55
2.2.2
Исследование
производительности
аппаратных
средств
и
вычислительной сложности алгоритмов управления АМР ............................ 62
2.2.3
3
Программное обеспечение клиент-серверного взаимодействия ..... 69
Программная реализация методов и моделей адаптивного управления
автономным мобильным роботом ........................................................................... 75
3.1
Реализация подсистемы маневров мобильного робота для движения по
заранее заданной траектории ............................................................................... 75
3.2
Реализация метода локальной навигации мобильного робота .............. 80
ВЫВОДЫ ................................................................................................................... 87
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ ..................................................... 89
ПРИЛОЖЕНИЕ А ..................................................................................................... 92
А.1 Програмное обеспечение имитационного моделирлования нейросетевого
метода выполнения маневров АМР .................................................................... 92
А.2 Листинг функций клиент-серверного взаимодействия функциональных
блоков робота......................................................................................................... 96
А.3 Описание представления среды для АРМ Pioneer P2-DX ......................... 97
А.4 Листинг програмного модуля управления АМР для задачи выполнения
маневров ................................................................................................................. 98
А.5 Листинг модуля локализации АМР с помощью одометрических
устройств .............................................................................................................. 103
5
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ,
СОКРАЩЕНИЙ И ТЕРМИНОВ
АМР – автономный мобильный робот;
БД – база данных;
БИСН – бесплатформенная инерциальная система навигации;
ГКС – глобальная карта среды;
ИНС – искусственная нейронная сеть;
ИС – инфракрасный сенсор;
ИСН – инерциальные системы навигации;
КСН – комплексная система навигации;
ЛКС – локальная карта среды;
МСД – модуль сбора данных;
НРНС – наземная радионавигационная система;
ОЗУ – оперативное запоминающее устройство;
ПО – программное обеспечение;
ПЗУ – постоянное запоминающее устройство;
ПК – персональный компьютер;
СРНС – спутниковая радионавигационная система;
УС – ультразвуковой сенсор;
ЦП – центральный процессор.
6
ВВЕДЕНИЕ
Автономные мобильные роботы (АМР) как универсальные технические
системы, позволяющие самостоятельно выполнять механические действия,
являются одним из современных направлений научных исследований [1, 2, 3].
АМР,
наделенные
структурированных
средствами
интеллекта,
используются
(производственно-комнатных)
неструктурированных
(внешних)
средах
для
средах,
так
космических,
как
в
и
в
подводных,
воздушных и наземных применений [1, 4, 5]. Например, промышленность
заинтересована
в
многофункциональных
промышленных
работах;
интеллектуальные пылесосы и роботы-собаки начинают использоваться в быту;
службы безопасности и спасатели рассчитывают на автономные устройства,
обладающие способностью к непрерывному выполнению задач слежения и
поиска. При этом все подобные устройства в идеале должны уверенно
перемещаться в неизвестной и непредсказуемой среде. Поэтому в настоящее
время одной из основных проблем всех существующих мобильных устройств,
перемещающихся автономно, без управления со стороны человека, остается
навигация.
Навигация
–
процесс
управления
некоторым
объектом
в
определенной среде [6, 7]. Для успешной навигации в пространстве система
управления работа должна уметь строить маршрут, управлять параметрами
движения (задавать угол поворота колес и скорость их вращения), правильно
интерпретировать информацию об окружающей среде, получаемой от
датчиков, и постоянно отслеживать свои текущие координаты.
В структурированных средах, где известна глобальная карта среды (ГКС),
для перемещения АМР к цели используют такие методы глобальной навигации
как: фронт волны (Wave Front) [8], видимый граф (Visibility Graph) [9, 10],
диаграммы Вороного [11, 12], дерево квадратов (Quartrees) [13, 14]. Однако
данные
методы
требуют
значительных
вычислительных
ресурсов
для
построения траектории движения и для локализации АМР, и они, кроме того,
7
не могут применяться для сложных (неструктурированных) сред. Поэтому
следует применять более простые, с вычислительной точки зрения, методы
локальной навигации АМР, например, PolarBUG [15], VisBUG [16], FuzzyBUG
которые
[17],
используют
для
навигации
локальную
карту
среды,
отображающую только объекты в пределах видимости сенсоров. При этом
повышенная устойчивость управления АМР в условиях неопределенности
может
быть
обеспечена
средствами
искусственного
интеллекта
с
использованием адаптивных свойств искусственных нейронных сетей (ИНС),
что позволяет осуществлять управление АМР в сложных динамических средах
[6, 18]. Известно, что существующие методы локальной навигации имеют ряд
недостатков, в частности, отклонение от оптимального маршрута, достижение
локальных минимумов и сложность локализации АМР. Поэтому актуальной
задачей является разработка моделей и новых интеллектуальных средств
управления АМР, обеспечивающих выход к цели и повышение устойчивости
маневрирования в условиях неопределенности.
Целью
магистерской
диссертации
является
совершенствование
существующих и разработка новых моделей и интеллектуальных средств
управления автономным мобильным роботом в сложных неструктурированных
средах за счет использования средств искусственного интеллекта для
обеспечения
адаптации
к
неопределенным
ситуациям
и
изменений
окружающей среды во время навигации работа к заранее заданной цели.
8
1
Анализ средств и методов навигации мобильных роботов
1.1
Анализ технологий построения систем навигации
Решение задачи управления мобильными работами обеспечивается
широким применением на подвижных объектах средств навигации. Для этого
автономные мобильные роботы, участвующие в передвижении, должны быть
оснащены системами навигации, способными непрерывно, надежно и точно
определять их местоположение на местности (проводить локализацию), в
различных метеоусловиях, в любое время суток и время года. Для определения
преимуществ и недостатков систем и средств навигации АМР целесообразно
рассмотреть их более подробно.
1.1.1 Инерциальные системы навигации на гиростабилизированных
платформах
Инерциальные системы навигации (ИСН) на гиростабилизированных
платформах
способны
обеспечивать
точные
измерения
навигационных
параметров в любой обстановке, не излучая при этом, никаких сигналов. Кроме
того, они полностью защищены от шумов [21].
Однако специалисты отмечают и недостатки ИСН. Это, прежде всего,
достаточно высокая стоимость, сложность настройки перед началом движения,
необходимость частых остановок на опорных пунктах с известными
координатами для проведения коррекции [21, 24]. Точность ИСН в
значительной степени зависит от плавности движения мобильного объекта
(агрегата) и от наличия опорных пунктов по маршруту движения. Несмотря на
это, ИСН на гиростабилизированных платформах широко применяются на
различных подвижных объектах.
Так в США принята в эксплуатацию ИСН РАDS AN/USQ-70 фирмы
«Litton». По принципу действия указанная система является инерциальной и
9
представляет
собой
счетчик пройденного
пути. В ее состав входят
гиростабилизированная платформа с двумя механическими двухступенчатыми
гироскопами и тремя акселерометрами; вычислительная машина с клавиатурой
ввода координат исходного пункта, цифровой индикатор текущих координат;
источник электропитания. Общая масса ИСН составляет около 40 кг, что
позволяет устанавливать ее на легких машинах (носителях ИСН). ИСН PADS
AN/USQ-70 позволяет определять прямоугольные координаты (Х, Y), высоту
(Н) местоположение и дирекционный угол продольной оси машины (носителя
ИСН). Данные о местоположении машины (носителя ИСН) воспроизводятся на
цифровом табло. Для передачи дирекционного угла на другие объекты и
определения их координат относительно машины с ИСН в комплект системы
включен теодолит и импульсный светодальномер. Исходное ориентирование
ИСН
проводится
координатами
с
на
опорном
помощью
(контрольном)
гироскопического
пункте
с
устройства
известными
(платформы),
работающего в режиме гирокомпаса, теодолита и светодальномера. На
ориентирование тратится 8-10 минут. Коррекция ошибок ИСН осуществляется
на краткосрочных (примерно 20 с) остановках через каждые 8-10 мин
движения. Круговая вероятная ошибка определения координат объекта по
маршруту движения, с учетом коррекции, не превышает 10 м.
1.1.2 Бесплатформенные инерциальные системы навигации
В последнее время наметилась тенденция перехода от ИСН на
гиростабилизированных платформах к бесплатформенным инерциальным
системам навигации (БИСН).
В наше время разработаны БИСН на лазерных, волоконно-оптических,
динамико-вибрационных гироскопах. Наибольшее распространение получили
лазерные гироскопы [21].
Специалисты выделяют следующие преимущества лазерных гироскопов
10
перед механическими:
- нечувствительность к ускорениям и перегрузкам;
- высокие характеристики точности;
- малое время предстартовой готовности;
- малая потребляемая мощность;
- высокая надежность и длительный срок службы;
- низкая стоимость по сравнению с механическими гироскопами.
1.1.3 Одометрические системы навигации
Для
определения
местоположения
наземных
объектов
широко
применяются одометрические системы навигации (ОСН), в которых скорость
движения на каждом прямолинейном участке пути измеряется количеством
оборотов колес (трансмиссии) транспортного средства. Курсовой угол на таком
участке определяется с помощью гирокомпаса. Как правило, в состав ОСН
входят
гирокомпасы,
гирокурсоуказатели,
вычислительные
блоки;
одометрические сенсоры. К таким системам относятся немецкий ОСН
FNA-615, английский ОСН LNS-202, российские ОСН ТНА-4, 15Ш55 и другие.
Современные
одометрические
навигационные
системы
имеют
предельную относительную погрешность определения координат порядка 1,5%
от пройденного пути за 7 часов работы (ТНА-С) или за 5 часов движения
(ТНА-4) [25].
Для снятия накопленных ошибок определения положения осуществляется
прием контрольного ориентирования. Его проводят на опорных пунктах,
координаты которых известны. Этот способ позволяет определить координаты
любого объекта и дирекционный угол направления движения (прицеливания) с
достаточно высокой точностью (25-30 м и 0-04 град. соответственно), но он
имеет ряд недостатков. Отметим некоторые из них.
Опорных пунктов может не быть в зоне прямой видимости. Ночью их не
11
видно, они могут быть скрыты пылью, туманом, дымом, снегом. Подъезд к ним
иногда невозможен. Также при задаче исследования неизвестной территории
или при исследовании планет опорных пунктов может и не существовать.
Выше указанное убеждает в том, что одометрические навигационные
системы не могут использоваться как основные системы навигации.
1.1.4 Наземные радионавигационные системы
В навигации подвижных объектов (морских, воздушных, наземных)
продолжают
эксплуатироваться
наземные
радионавигационные
системы
(НРНС) LORAN-C, LORAN-D, «Тропик-2», «Тропик-2П» и другие.
По мнению специалистов НРНС типа LORAN-С, LORAN-D будут
находиться в эксплуатации «достаточно длительное время» [23].
В Российской Федерации еще не стоит вопрос о прекращении
эксплуатации систем типа «Тропик-2», «Тропик-2П».
1.1.5 Спутниковые радионавигационные системы
Интерес к спутниковым радионавигационным системам (СРНС) вызван
их универсальностью. В рамках одной системы возможно решение большого
комплекса различных задач.
Наиболее перспективными являются СРНС NAVSTAR (США) и
ГЛОНАСС (Россия) [24].
Потребность в оперативной высокоточной навигации сухопутных,
морских,
воздушных
объектов
обусловила
создание
в
80-90-е
годы
среднеорбитальных СРНС GPS NAVSTAR в США и ГЛОНАСС в России.
Основное назначение спутниковых радионавигационных систем второго
поколения – глобальная, оперативная навигация сухопутных, морских,
воздушных объектов, обеспечение возможности в любой точке земной
12
поверхности, в любое время года и суток, при любой погоде определить
(уточнить) параметры движущегося объекта – три координаты и три
составляющие вектора скорости.
Хотя на рынке есть много коммерчески доступных GPS-приемников, их
применение в глобальной навигации пока ограничено требованием законов
робототехники о точности такой навигации – ошибка в определении
собственных координат не может превышать размера автономного аппарата
(иначе возможны столкновения с устройствами такого же или меньшего
размера и другие конфликты со средой). Типичный самоходный коммерческий
робот обычно не превышает в длину одного-двух метров и может удаляться от
места старта на 10 км, а вот GPS-сигнал дает точность около 100 м, и
гражданским организациям в ближайшие годы будут доступны обновленные
GPS-приемники с точностью 20-30 м [23]. Потому в качестве базовой, GPSнавигация применяется преимущественно в автопилотах больших самолетов
или океанских лайнеров. Кроме того, в различных регионах Земли, на
местности со сложным рельефом и в зданиях GPS-сигнал может приниматься
неустойчивым и с препятствиями. Т.о., эта система еще довольно долго не
сможет использоваться как основная в задачах глобальной навигации
мобильных роботов.
1.1.6 Комбинированные системы навигации
В современных системах навигации наземных подвижных объектов
рядом с ИСН часто входит аппаратура СРНС. В состав английского СН INS-202
входит аппаратура СРНС NAVSTAR, что позволяет определить координаты
объектов с СКО не более 15-20 м, независимо от начальной геодезической
привязки и времени.
Для целей навигации вместе с другими системами навигации (ИСН,
БИСН, доплеровскими т.д.) широкое применение нашли СРНС типа NAVSTAR
13
(GPS), ГЛОНАСС.
Американская фирма «Northrop» разработала комбинированную систему
навигации (КСН) для наземных подвижных объектов, в которой совмещены в
одном блоке БИСН и одноканальный приемник СРНС NAVSTAR. В процессе
испытаний системы точность определения координат при работе по открытому
С/А-коду не превышала 30 м.
Другая фирма «Texas Instruments» провела испытания на самолетах и
наземных объектах КСН на базе БИСН и двухканального приемника СРНС
NAVSTAR. В процессе испытаний точность определения координат не
превышала 30 м при работе по открытому С/А-коду.
Результатом
работы
любой
навигационной
системы
является
представление среды функционирования АМР; выделяют два основных метода:
- топологический метод;
- метод представления карты среды в полярной системе координат.
Топологическая карта представляет среду в форме графа, в котором
каждая вершина соответствует различным позициям, а дуги представляют
связи между ними. Основным преимуществом топологического представления
является его компактность. Топологическая карта может строиться на основе
сеткобазирующейся карты. Основная идея проста: незанятые положения
сеткобазирующейся карты делятся на небольшое число областей, разделенных
критическими линиями, которые соответствуют узким проходам среды,
например, дверным проемам и др. Т.о., карта среды является изоморфным
графом.
Компрессия
информации
чрезвычайно
велика.
Например,
топографический граф содержит 67 вершин, принимая во внимание то, что
сеткобазирующаяся карта среды содержит 27280 занятых ячеек. Заметим, что
критические линии достаточно удобны для декомпозиции метрической карты.
Во-первых, следуя через критические линии, робот будет перемещаться в
относительно малой области. Поэтому, потеря в производительности меньше,
чем в сеточнобазирующейся карте. Во-вторых, узкие области блокируются
14
препятствиями с большей вероятностью (например, двери, которые могут быть
закрыты или открыты).
Широкое распространение для представления локальной карты среды
(ЛКС) получил метод отображения положений препятствий в полярной системе
координат, который указывает в определенном угловом диапазоне расстояния
до препятствий. Преимуществами такого метода является небольшой размер и
простота
представления
препятствий,
что
является
важным
при
функционирования АМР в реальном времени.
Проведенный анализ показал, что в АМР целесообразно использовать
ОСН, а также в зависимости от задач наземные или спутниковые
радионавигационные системы, и формировать карту среды мобильного робота
для локальной навигации в полярной системе координат, а для глобальной
навигации использовать топологический граф.
1.2
Глобальные методы навигации автономного мобильного робота в
структурированной среде
Среду функционирования мобильного робота можно разделить на два
типа: структурированная (заранее известная среда) и неструктурированная
(сложная,
заранее
неизвестная
среда).
В
зависимости
от
среды
функционирования выделяют глобальные и локальные методы навигации. Если
среда является заранее известной и заданная цель лежит в пределах известной
среды, то для навигации мобильного робота применяют глобальные методы
навигации. Если же среда является заранее неизвестной или перед роботом
ставится задача исследования среды, в данном случае применяются локальные
методы навигации к цели, используют только локальную информацию о среде
функционирования, полученную при помощи методов построения локальной
карты среды.
Существует
много
реализаций
15
систем
навигации,
использующих
глобальные методы [8-14]. Алгоритм работы глобальных методов навигации в
целом состоит из двух этапов:
1) планирование траектории движения мобильного робота;
2) непосредственное перемещение к цели, используя информацию о
необходимой траектории, полученной на первом этапе.
Этап планирования глобального метода навигации «видимый граф»
(Visibility Graph) [9, 10] состоит из трех подэтапов, обеспечивающих
построение оптимальной траектории перемещения к цели, где в качестве
критерия оптимальности взят минимальный путь:
1) установление вершин по периметру препятствий (рисунок 1.1,а);
2) установление всех возможных путей (рисунок 1.1,б);
3) поиск минимального пути перемещения (рисунок 1.1,в).
а)
б)
в)
Рисунок 1.1 – Графическое представление подэтапов планирования метода
глобальной навигации «видимый граф»: а) установление вершин по периметру
препятствий; б) установление всех возможных путей; в) поиск минимального
пути перемещения.
Одним из модификаций метода «видимый граф» является метод «Tangent
16
видимый граф», обеспечивающий уменьшение количества ребер графа. При
этом уменьшается вычислительная сложность метода. На рисунке 1.2
представлено сравнение метода «видимый граф» и метода «Tangent видимый
граф».
а)
б)
Рисунок 1.2 – Графическое представление методов: а) метод «видимый граф»;
б) метод «Tangent видимый граф»
При использовании метода «Tangent видимый граф» количество ребер,
которые используются для определения оптимального маршрута, определяется
как: 2M2+N, где N – количество вершин препятствий, M – количество
выпуклых вершин препятствия, когда для обычного метода «видимый граф»
это количество значительно больше и определяется как N2.
Глобальный метод навигации диаграмм Вороного базируется на
использовании алгоритмов триангуляции [11, 12], а этап планирования состоит
из четырех подэтапов:
1) триангуляция Делона известной среды функционирования мобильного
робота (рисунок 1.3,а);
2)
определение
середины
отрезков,
полученных
на
этапе
1
(рисунок 1.3,б);
3) установление всех возможных путей (рисунок 1.3,в);
4) поиск минимального пути в полученном на этапе 3 графе из начальной
позиции мобильного робота к цели (рисунок 1.3 г).
17
а)
б)
в)
г)
Рисунок 1.3 – Графическое представление подэтапов планирования метода
глобальной навигации диаграмм Вороного: а) триангуляция Делона; б)
определение середины отрезков; в) все возможные пути; г) минимальный путь
Другой глобальный метод навигации, похожий на метод диаграмм
Вороного – метод «дерева квадратов» (Quartrees) [13, 14], основанный на
использовании методов представления больших сред с помощью квадратов.
Этот подход состоит также из четырех подэтапов планирования:
1) разделение среды на дерево квадратов, при этом учитываются
периметры
объектов,
расположенных
в
структурированной
среде
функционирования мобильного робота (рисунок 1.4,а);
2) определение центра полученных квадратов (рисунок 1.4, б);
3) построение графа, связывающего все вершины графа (центры
квадратов), а также в данный полносвязный граф вводятся в качестве вершины
исходное положение работа и цель перемещения (рисунок 1.4,в);
4) поиск минимальной траектории движения от исходного положения
работа до цели, используя граф, полученный на подэтапе 3 (рисунок 1.4,г).
18
а)
б)
в)
г)
Рисунок 1.4 – Графическое представление подэтапов планирования метода
глобальной навигации «дерева квадратов»: а) дерево квадратов; б) определение
центра квадратов; в) граф всех возможных путей; г) минимальный путь.
Большое распространение получил метод «фронт волны» (Wave Front)
для навигации в структурированной среде, различные комбинации этого
подхода рассматриваются в [8]. Метод предусматривает следующие подэтапы
планирования траектории перемещения мобильного робота:
1) разделение структурированной среды функционирования мобильного
робота на отдельные ячейки, причем, чем больше ячеек будет представлять
единицу площади, тем точнее будет представлена среда, однако при этом
возрастет сложность вычислений (рисунок 1.5,а);
2) установление значений каждой ячейки, полученных на подэтапе 1
(рисунок 1.5,б). Логическая единица ячейки, содержащей цель перемещения,
устанавливается в «0». Логические единицы ячеек, находящихся по периметру
возле ячейки цели устанавливаются в «1». Логические единицы следующих
ячеек устанавливают по правилу:
19
LVi+1 =LVi +1,
где LVi – логическое значение предыдущей ячейки.
а)
б)
в)
г)
Рисунок 1.5 – Графическое представление подэтапов планирования метода
глобальной навигации «фронт волны»: а) разделение среды на отдельные
ячейки; б) установление значений ячеек; в) все возможные пути; г)
минимальный путь.
Значения
ячеек,
занятых
препятствиями,
не
учитываются.
Если
невозможно продолжить присвоения значений ячеек в ячейки исходного
положения работа, то на этапе планирования будет принято решение, что
используя известную информацию о среде функционирования невозможно
построить траектории достижения цели роботом;
3) следующий подэтап используется для построения всех возможных
20
траекторий движения от исходного положения мобильного робота к цели. При
этом значение каждой следующей ячейки должно уменьшаться на «1»
(рисунок 1.5,в);
4) конечный подэтап используется для нахождения минимальной
траектории перемещения (рисунок 1.5,г).
Если
на
оптимальная
этапе
планирования
траектория
перемещения
глобальных
к
цели,
методов
то
определена
следующий
этап
предусматривает непосредственное перемещение мобильного робота.
Проанализировав известные методы глобальной навигации можно
выделить ряд недостатков:
- большая вычислительная сложность методов при больших картах
среды и при наличии большого количества помех;
- необходимость достаточно часто проводить процедуру локализации,
что обусловлено неточностями сенсорной и одометрической системы работа,
но это отдельная задача, в целом приводит к еще большей вычислительной
сложности.
Поэтому следует использовать более простые с вычислительной точки
зрения методы, например, методы локальной навигации.
1.3
Локальные методы навигации для задачи достижения цели в
неизвестной среде
В противоположность методам глобальной навигации методы локальной
навигации для перемещения к заданной цели используют информацию,
полученную с помощью сенсоров. В этом случае глобальная карта среды
является недоступной или среда является достаточно неструктурированной,
или в ней присутствует большое количество динамических препятствий, при
этом применение методов глобальной навигации становится невозможным.
Наиболее известный метод локальной навигации, основанный на
21
использовании информации о среде, полученной от сенсоров, является BUG. В
настоящее время существует большое количество его модификаций PolarBUG
[15], VisBUG [16], FuzzyBUG [17].
Основная суть метода заключается в том, что направление движения
робота определяется по градиенту, т.е. вектору, который обеспечивает
минимальный путь следования. Обход препятствий осуществляется по
периметру по часовой стрелке или против нее, при этом робот возвращается на
траекторию, которая определена градиентом в начале следования к цели.
Графическое представление работы метода локальной навигации BUG
показано на рисунке 1.6.
а)
б)
Рисунок 1.6 – Графическое представление метода локальной навигации BUG:
а) обход препятствия против часовой стрелки; б) обход препятствия по часовой
стрелке
Метод VisBUG предполагает использование информации от сенсоров,
обеспечивающих определение препятствий на определенном расстоянии от
мобильного робота. Метод BUG при этом использует тактильные сенсоры,
когда
VisBUG
для
построения
локальной
карты
среды
использует
ультразвуковые, инфракрасные и лазерные сенсоры. Например, ультразвуковые
сенсоры мобильного робота AmigoBot [19] способны определить препятствие
на расстоянии 5 метров. В таком случае робот оперирует локальной картой
среды радиусом 5 метров.
22
Пример работы метода VisBUG представлен на рисунке 1.7.
а)
б)
Рисунок 1.7 – Графическое представление работы метода локальной навигации
VisBug: а) обход препятствия против часовой стрелки; б) обход препятствия по
часовой стрелке
Еще одним подходом к построению методов локальной навигации
является использование потенциальных полей (Potential Fields) объектов в
среде [28]. Цель перемещения использует собственное потенциальное поле,
обеспечивающее движение робота к цели на каждом шаге перемещения, т.к.
приближение к цели обеспечивает увеличение потенциального поля цели.
Значение потенциальных полей помех увеличивается при приближении к
препятствию, что приводит к «отталкиванию» работа от препятствия. На
каждом шаге движения определяется влияние потенциальных полей цели и
препятствий на движение робота. Поиск максимума указывает на следующую
траекторию движения мобильного робота:
мах (Кпр – ∑Кот),
где Кпр – коэффициент притягивания к цели, Кот – коэффициент
отталкивания от препятствий.
Графическое представление работы метода представлено на рисунке 1.8.
23
Рисунок 1.8 – Графическое представление работы метода локальной навигации
«потенциальных полей»
Проведя анализ методов навигации можно выделить следующие
недостатки их использования:
- большая проблема локализации работа по сравнению с методами
глобальной навигации;
- отклонение от оптимального маршрута;
- достижение локального минимума (блокирующие препятствия);
- зацикливание (кружение по одной и той же траектории) при попытке
выйти из локального минимума.
1.4
Обобщенная модель системы управления и постановка задачи
исследования
Оценка преимуществ и недостатков рассмотренных средств и методов
показала, что функциональные задачи работа условно можно разделить по
уровням сложности. К основным функциональным задачам мобильного робота
относят: выявление объектов среды и их линейных параметров, планирование
пути и траекторий движения робота, выполнение маневров в рабочей зоне
среды, управление устройствами, находящимися на платформе мобильного
робота (манипуляторами) и т.д. Одновременно решаются навигационные
задачи: локализация, достижение конечной точки движения, избегание
24
препятствий и др. Выполнение приведенных выше действий в автоматическом
режиме обеспечивают автономность мобильного робота [7, 29, 30].
Под автономным мобильным роботом в магистерской диссертации
подразумевается совокупность системы управления и технической системы,
способной целенаправленно двигаться в среде для достижения поставленной
цели. К техническим средствам системы относятся силовые устройства,
обеспечивающие физическое перемещение робота в среде и системы сенсоров,
которые могут фиксировать препятствия, расположенные в направлении
перемещения робота. В магистерской диссертации считается, что робот
функционирует в стационарном среде, в которой размещение основных
препятствий является известным заранее; с нестационарными объектами,
которые движутся или о существовании которых стало известно лишь после
перемещения робота.
Глобальная цель движения АМР – целенаправленное перемещение работа
в сложных условиях без столкновений с препятствиями для достижения
конечного пункта движения оптимальным путем.
При построении системы управления АМР возникает немало технических
сложностей, наиболее характерными из которых являются:
- для движения к цели работу необходимо сформировать достаточно
точный образ окружающей его среды;
- во время движения робот должен быстро и точно управлять двигателем
и положением колес;
- робот должен знать свое реальное местонахождение, а оно почти
всегда отличается от того, что хранится в бортовой системе.
Образ окружающей среды сегодня строится преимущественно
с
использованием лазерных дальномеров и ультразвуковых сенсоров (сонаров).
Однако лазерный луч поможет получить образ среды только в зоне прямой
видимости. Кроме того, на пути луча часто возникают мелкие препятствия,
которые вносят погрешность в такой образ. А ультразвуковые сенсоры
25
характеризуются большим временем отклика (если робот находится на
большом и открытом пространстве), что не позволяет работу двигаться быстро.
Скорость звука в различных условиях также может «плавать», влияя на
точность оценки расстояния, в результате система управления получает
искаженную общую картину окружающей среды. Создание трехмерных карт с
помощью лазеров в масштабе реального времени является достаточно сложной
задачей и, как минимум, требует существенных вычислительных мощностей,
которые пока не удается реализовать в виде компактной бортовой платы.
По этим причинам ценность информации, поступающей от бортовых
сенсоров
невелика.
Работу
необходимо
перевести
в
формальное
и
структурированное «словесное» описание среды (задачи распознавания), что
пока плохо реализовано. Наибольший эффект здесь обещают дать системы
машинного зрения, но они также еще несовершенны и имеют ряд недостатков.
Вместе с тем данный недостаток уже преодолен в проектах, где работы
функционируют в зданиях и в любых других структурированных средах.
Перспективной идеей является хранение в памяти машины полной карты
местности. Обычно она представляется в геометрическом (очень подробно, но и
очень объемно) или топологическом (компактно, с условными обозначениями,
но менее детально) виде. Лучший результат дают трехмерные карты, однако их
хранение и обработка системой управления АМР осложненно: нужны очень
большие, по сегодняшним меркам, вычислительные ресурсы. А самое главное,
роботу далеко не всегда удается правильно определить свое реальное
местонахождение на такой карте.
Некоторые задачи робототехники в принципе не допускают точного
решения
(это,
например,
задачи
управления
крутящим
моментом
электродвигателя так, чтобы робот неукоснительно следовал маршруту). В
других
задачах,
связанных
с
динамикой
движения
роботов
(область
теоретической механики), к нахождению ответа еще очень далеко, а поиск
приближенных коэффициентов, определяющих параметры движения, требует
26
от бортового устройства постоянного решения систем дифференциальных
уравнений. Поэтому сложности здесь как технические, так и теоретические.
Определение своих координат – фундаментальная задача навигации,
ответ на которую интересует не только робототехников, но и специалистов из
многих областей – прежде всего космической, авиационной и автомобильной.
В настоящее время существует много архитектурных решений для
навигации АМР в статической (структурированной) среде. В таких системах
выделяют
три
уровня
управления:
стратегический,
тактический
и
исполнительный [2, 7]. Системы стратегического и тактического уровня
решают задачи определения препятствий в рабочей среде АМР и навигации.
Исполнительный уровень решает задачи непосредственного физического
управления механизмами, которые осуществляют движение АМР. Основная
проблема функционирования таких систем в экстремальных динамических
средах – необходимость принимать решения при временны́х и вычислительных
ограничениях. Однако при такой архитектуре управления исполнительный
уровень не имеет достаточной информации для принятия решения, а верхние
уровни слишком медленные, чтобы принять вовремя такое решение.
Также
известны
решения,
которые
используют
для
построения
архитектуры мобильного робота декомпозицию на три функциональные
элемента:
система
восприятия,
система
планирования
деятельности
и
исполнительная система [6].
Для управления АМР используется, в основном, многоуровневая
иерархическая структура управления. Согласно такой структуре информация от
сенсоров поступает на разные уровни системы управления. Например, данные о
расположении препятствий нужны на высшем уровне для построения модели
рабочей
среды
в
целях
планирования
действий
работа;
результаты
классификации объектов нужны на стратегическом уровне для разделения
общего плана действий на конкретные манипуляционные операции, задания их
последовательностей и параметров; сведения о размещении и ориентации
27
объектов необходимы для формирования на тактическом уровне – уровне
задания движений АМР, его рабочих органов и звеньев манипулятора, по
которым, в свою очередь, строятся программные законы слаженного изменения
соответствующих
степеней
подвижности;
информация
об
отклонении
фактической траектории от запрограммированной может быть использована
непосредственно на исполнительном уровне для выработки управляющих
сигналов на приводы при отработке программы коррекции перемещения
рабочего органа робота. Для управления АМР особенно актуальными являются
интеллектуальные системы управления, которые имеют четко выраженную
иерархическую структуру и содержат следующие основные уровни управления:
- самонастройка законов управления;
- самопрограммирование и планирование движений;
- самомоделирование внешней среды;
- самообучение в распознавании ситуаций среды;
- самоорганизация целенаправленного поведения.
Каждый следующий уровень такой иерархии руководит работой
предыдущего уровня, повышая качество управления системы в целом.
В [30] рассмотрена модульная структура управления мобильным
роботом, в которой рассматриваются:
- модуль формирования карты среды;
- модуль определения направления движения на основе сложившейся
карты среды;
- аналитический
блок,
определяющий
оптимальное
направление
движения мобильного робота в соответствии с целью движения;
- модуль движения робота в узких для маневров средах;
- модуль управления скоростью перемещения АМР.
Особенностью применения такой иерархии является использование всех
модулей с применением средств искусственного интеллекта (нейронных сетей).
Такой подход позволяет быстро адаптироваться к изменениям в среде и
28
обеспечить достижение поставленной цели.
На основе проведенного анализа известных систем управления АМР [30],
обобщенную модель функционирования работа и обеспечения его движения
можно
изобразить
в
виде
совокупности
функциональных
блоков,
представленных на рисунке 1.9.
9
8
Цель
перемещения
База знаний
3
4
Блок построения
локальной карты
среды
5
Блок
локализации
2
Блок обработки
сенсорных
данных
Блок навигации
1
Показания
сенсоров
7
Блок маневров
6
Аппаратное
обеспечение
мобильного
робота
Блок построения
глобальной
карты среды
Управляющие
сигналы к
исполнительным
механизмам
Рисунок 1.9 – Обобщенная модель управления автономным мобильным
роботом
В блоке обработки сенсорных данных АМР (2) осуществляется
преобразование показаний сенсоров в форму, пригодную для дальнейшего
анализа и обработки; также в этом блоке используются методы подавления
шумов и повышения достоверности полученных данных.
Блок построения локальной карты среды (3) на основе полученных
данных и базы знаний, определяет тип среды функционирования работа,
формирует локальную карту.
Блок локализации (4) предназначен для корректировки местонахождения
29
АМР при движении, поскольку показания системы управления и реальное
положение АМР в среде со временем отличается, что обусловлено
неточностями одометрической системы, а также проскальзыванием колес.
Блок навигации (5) отвечает за принятие решения о направлении
движения к цели на стратегическом уровне; на тактическом уровне блок
маневров (7), используя данные об окружающей среде, непосредственно
передает управляющие сигналы к аппаратным средствам перемещения (1).
В базе знаний (8) определяются правила поведения системы управления,
а также каждого блока отдельно, на сложных участках перемещения и при
функционировании в неструктурированном динамичной среде.
Блок построения глобальной карты среды (6) используется при
функционировании в незнакомой среде. При этом используются методы,
синтезирующие глобальную карту, используя локальную карту среды на
каждом шаге перемещения.
30
Разработка
2
методов
и
моделей
адаптивного
управления
автономным мобильным роботом
2.1
Разработка методов навигации мобильного робота
2.1.1 Метод навигации мобильного робота для неструктурированной
среды
Методы глобальной навигации, которые рассматривались в первом
разделе, имеют ряд ограничений, и, прежде всего, основным недостатком
является невозможность проведения навигации в случае незначительных
изменений среды, или в неструктурированной среде с наличием динамических
препятствий. Основным преимуществом локальных методов навигации
является простота их реализации, однако они также не обеспечивают выход на
цель при существовании блокирующих препятствий, образующих локальные
минимумы. Т.о., актуальной является задача разработки метода навигации в
сложной неструктурированной среде с возможностью функционирования АМР
при
появлении
диссертации
динамических
предложен
и
препятствий.
разработан
Поэтому
регулярный
в
магистерской
итеративный
метод
градиентного поиска с локальной адаптивной оценкой ограничений второго
рода для определения пути перемещения АМР и метод построения траектории
движения АМР подсистемы маневров, которые позволяют достичь цель в
сложной неструктурированной среде.
Суть предлагаемого градиентного метода навигации заключается в том,
что перемещение осуществляется с использованием потенциальных полей
объектов в среде функционирования АМР, при этом используется вычисление
значения функции стоимости по отношению к помехам, а также по отношению
к заданной цели перемещения. Навигация к цели происходит по градиенту к
цели
–
характеристика,
показывающая
направление
наискорейшего
возрастания/убывания некоторой величины, значение которой меняется от
31
одной точки пространства в другую. В случае появления блокирующих
препятствий (попадания в локальный минимум) перемещение осуществляется
адаптацией к ограничениям и обходом препятствий по периметру с учетом
градиента к цели. При этом проводится контроль возвращения в позицию
начала обхода препятствий, характеризующий тупиковую ситуацию. В таком
случае движение АМР приостанавливается.
Специфика предлагаемого метода заключается в использовании метода
потенциальных полей для навигации и использовании процедуры обхода
препятствий для выхода из тупиковых ситуаций. При этом достигается
преимущества локальных методов – простота реализации, и глобальных –
обход препятствий.
Предложенный метод, как и существующий метод, использует для
движения градиент направления к цели. В существующем методе навигация
происходит по сложившейся глобальной карте среды с помощью метода
«фронт волны» (Wave Front), что требует дополнительных вычислительных
ресурсов и повышает сложность метода. Учитывая важность минимизации
времени обработки данных для навигации АМР в реальном времени,
предлагается
использовать
подход
локальных
методов
навигации
для
уменьшения вычислительной сложности метода, и обеспечить процедуру
выхода из тупиковых ситуаций (локального минимума и т.п.), а также
возможность перемещения в случае появления динамических препятствий.
Для определения направления движения предложено использовать
вычисления
значения
функции
стоимости
в
альтернативных
точках
перемещения на следующем шаге по отношению к цели перемещения dist
(рисунок 2.1). При этом расстояние до цели с координатами G(Х,Y,α), для
каждой из I альтернативных точек перемещения Ti(Х,Y,α) вычисляется
следующим образом:
dist =
(x
Ti
− xG ) + ( yT − yG ) ,
2
2
i
32
(2.1)
где xT , yT – координаты x и y текущей точки, xG , yG – координаты x и y
i
i
целевой точки,
Направление движения выбирается из альтернативных решений, где
значение функции стоимости расстояния до цели является наибольшим
max(f(dist)).
Т.е., в данном случае рассматривается задача максимизации функции
f(dist) без ограничений. При этом условие оптимальности будет иметь вид:
grad(f(dist)) = 0.
G(Х,Y,α)
Цель
st
Di
Ti(Х,Y,α)
1
N
R(Х,Y,α)
Рисунок 2.1 – Графическая интерпретация представления локальной карты
среды
При этом каждый шаг перемещения представляет собой итеративный
процесс:
f(dist)n+1= f(dist)n+n grad(f(dist)n),
(2.2)
где n – величина шага перемещения, определяется техническими
характеристиками сенсоров восприятия АМР.
33
Методы, основанные на соотношении (2.2), называются итеративными. А
поскольку
выбор
начального
значения
f(dist)0
однозначно
определяет
дальнейшее значение последовательности f(dist)n, то эти итеративные методы
называют регулярными.
Поскольку ограничение функции стоимости расстояния до цели заранее
неизвестны, то в случае появления помех при перемещении АМР (рисунок 2.2)
(ограничений
второго
рода)
нужно
адаптивно
оценивать
локальные
ограничения для каждого шага перемещения. При этом для каждого
препятствия устанавливается потенциальное поле и функция стоимости
расстояния до препятствия. С приближением к препятствию значение функции
возрастает. Также необходимо установить критическое значение минимального
расстояния до препятствия obst_dist_critical (определяется техническими
спецификациями робота) и расстояние non_dang_dist, на котором препятствие
не влияет на движение АМР к цели. Такой подход позволит АМР безопасно
двигаться к цели, не сталкиваясь с препятствиями, а также иметь достаточное
пространство для проведения маневров.
G(Х,Y,α)
Потенциальное поле препятствия
Цель
Опасная зона
Dis
t
Препятствие
Ti(Х,Y,α)
1
N
R(Х,Y,α)
Рисунок 2.2 – Представление препятствия на локальной карте среды АМР
Формализация вычисления функции стоимости препятствия представлена
34
в (2.3):
если obst_dist<obst_dist_critical;
1000,
g(obst_dist)= k*obst_dist+b, еслиobst_dist_critical obst_dist non_dang_dist; (2.3)
0,
если dist_obst>non_dang_dist,
где k, b – коэффициенты уравнения прямой, определяемые техническими
характеристиками АМР.
Если АМР попадает в области действия потенциальных полей
препятствия
или
нескольких
препятствий,
то
направление
движения
выбирается по максимальному значению функции стоимости (рисунок 2.3).
Для определения направления перемещения на каждом шаге при
воздействии на движение АМР двух и более препятствий находим суммарное
значение функции стоимости:
M
ySumT =f(dist Ti ) - g(obst_dist Tmi ) 2 ,
2
i
(2.4)
j=1
где M – общее количество препятствий, влияющих своим потенциальным
полем на альтернативную точку последующего перемещения Ті.
G(Х,Y,α)
Область перекрытия потенциальных
полей двух препятствий
Потенциальное поле препятствия
Опасная зона
dis
t
Цель
Ti(Х,Y,α)
Препятствие 1
Препятствие 2
1
N
R(Х,Y,α)
35
Рисунок 2.3 – Графическое представление влияния потенциальных полей двух
препятствий
Направление движения АМР выбирается по максимальному значению
суммарной функции стоимости из всех альтернативных точек перемещения:
max(ySumT ) .
(2.5)
i
Если же при перемещении АМР возникнет ситуация, когда расстояние до
препятствия при локальной адаптивной оценке ограничений будет равно
obst_dist_critical, при этом значение функции стоимости препятствия будет
равно g(obst_dist) = 1000 в лучшей из альтернативных точек перемещения, то в
такой ситуации нужно переходить к этапу обхода препятствий по периметру
(рисунок 2.4).
Движение по периметру происходит при соблюдении минимального
размера до препятствия obst_dist_critical, при этом значение функции
стоимости расстояния до препятствия должно быть максимальным из
альтернативных точек перемещения max(g(obst_distTi) <1000).
Це
л
ь
м
р
Рисунок 2.4 – Переход к этапу обхода препятствий по периметру
Направление возможного направления движения по обходу препятствия
определяется с помощью градиента grad(f(dist)) к цели из всех доступных
36
направлений обхода препятствия.
На каждом шаге этапа обхода препятствий по периметру проверяется
условие: угол О < 90 градусов (рисунок 2.5,а); если нет – то продолжается этап
обхода препятствия, если да (рисунок 2.5,б), то дополнительно проверяется
условие перехода к первому этапу навигации. Если расстояние до цели из
текущей позиции АМР меньше, чем суммарное расстояние до цели
(рисунок 2.5,б) из следующей точки перемещения на этапе обхода препятствий
и расстоянием, затрачиваемым на прохождение шага подсистемой маневров
RG < RM+MG, то происходит переход к первому этапу. Тогда условие
перехода к выполнению первого этапа градиентного метода навигации можно
задать следующим образом:
(угол О>90 градусов) and (RG < RM+MG).
(2.6)
ь
ел
Ц
G
G
ел
Ц
ь
R
o
M
M
o
R
а)
б)
Рисунок 2.5 – Обход препятствий по периметру:
а) условие (2.5) выхода из этапа не выполняется; б) условие (2.5) выхода из
этапа выполняется
Однако, возможна ситуация, изображенная на рисунке 2.6, при этом
значение угла О < 90 градусов, но переход на первый этап навигации не
происходит, так как вектор перемещения проходит через препятствие. Такой
вариант отбрасывается, поскольку градиент нужно выбирать только из всех
37
доступных вариантов направления движения. И если градиент лежит в области
всех возможных значений и справедливо условие (2.6), когда угол О < 90
градусов и RG < RM+MG (рисунок 2.5,б) в таком случае происходит переход к
этапу навигации по градиенту.
Ц
ь
ел
G
M
o
R
Рисунок 2.6 – Обход препятствия по периметру (условие (2.5) выхода из этапа
не выполняется)
Возможна ситуация, когда АМР может попасть в прежние позиции
(рисунок 2.7), при этом целесообразно хранить координаты предыдущего этапа
обхода препятствия. При этом, если следующий шаг перемещения попадает в
позицию, по которой робот проходил на предыдущем этапе обхода препятствий
P M , тогда направление обхода препятствий меняется на противоположное,
что обеспечивает выход на цель.
Цель
Цель
G
G
P
P
S
G
M
S
O
M
R
O
R
Рисунок 2.7 – Повторное попадание на траекторию движения
38
В случае когда АМР, изменив направление движения обхода препятствий
в точке Р1 попадает в точку Р2, принадлежащую траектории предыдущего
обхода, перемещение прекращается, поскольку АМР попадает в закрытую
среду, из которой нет выхода (рисунок 2.8).
Цель
P1
P2
Рисунок 2.8 – Тупиковая ситуация при навигации АМР
Т.о., реализация метода навигации состоит из двух основных этапов:
- следование к цели, используя градиент направления к цели и значение
функции стоимости к помехам;
- обход препятствия по периметру.
Для более детального представления предложенного метода, разработан
алгоритм навигации (рисунок 2.9) и выделен подэтап обхода препятствия
(рисунок 2.10).
Оценка эффективности предложенного метода навигации осуществлена
экспериментальным путем и проводилась по критерию выхода на цель.
39
Начало
Координаты цели
G(Х,У,α)
Установить начальные
координати АМР
R(X,Y,α)=(0,0,0)
А
Цель достигнута?
G(Х,У,α)=R(X,Y,α)
Нахождение градиента
к цели
Наличие
препятствия
нет
да
Определение
направления в
соответствии с
градиентом к цели
Нахождение
расстояния до
препятствия
Определение
направления
движения согласно
суммарному значению
функции стоимости
расстояния до
препятствия
Расстояние
до цели
і шаг>(i+1)шаг
нет
да
Перемещение на один
шаг в соответствии с
выбранным направлением с помощью
подсистемы маневров
Этап обхода
препятствия по
периметру
A
Конец
Рисунок 2.9 – Схема алгоритма работы предложенного метода навигации
40
Начало
Сохранение
начальной
позиции обхода
препятствия
Р1
А
да
Угол между
градиентом
і max(F(Obst_DistTi)<
1000)
< 90 градусов
нет
нет
RG<RM+MG
да
Сохранение
текущей
позиции
P2
Выход из этапа обхода
препятствия
Текущая позиция=
P1
нет
да
Текущая позиция=
P2
нет
Изменение
направления
перемещения на 180
градусов
да
Остановка
навигации
(тупиковая
ситуация)
Один шаг
перемещения по
max(F(Obst_DistTi)<
1000)
A
Конец
Рисунок 2.10 – Схема алгоритма работы этапа обхода препятствия
предложенного метода навигации
41
В целом, предложенный метод позволяет достигнуть критерия выхода на
цель, а также проводить навигацию при появлении динамических препятствий
или помех, которые не отражаются на ГКС. Если использовать в данной
ситуации методы глобальной навигации, то данные методы не смогут
обеспечить выход на цель при появлении препятствий, не изображенных на
ГКС.
Преимуществом
над
локальными
методами
навигации
является
возможность выхода из локальных минимумов, что обеспечивается вторым
этапом метода, а именно этапом обхода препятствий по периметру.
2.1.2 Метод проведения маневров по заданной траектории
Как показано в первом разделе, актуальной задачей обеспечения
автономности
в
интеллектуальной
неструктурированных
системы
управления,
средах
которая
является
разработка
позволит
управлять
функционированием АМР в ситуации неопределенности или в случае ложной
информации,
поступающей
от
любого
функционального
блока
АМР.
Рассмотренный в подразделе 2.1 метод навигации предназначен для выработки
стратегических
и
тактических
целей
перемещения.
Для
обеспечения
оперативного принятия решений при перемещении к цели предназначен блок
маневров (рисунок 1.9). Блок маневров обеспечивает быструю адаптацию к
изменяющейся среде. Поэтому ниже рассматривается задача разработки метода
для подсистемы маневров АМР с использованием элементов искусственного
интеллекта для проведения маневров во время движения АМР. Адаптация к
изменению
среды
обеспечивается
за
счет
использования
элементов
искусственного интеллекта, в частности нейронных сетей.
Альтернативой моделирования с помощью нечеткой логики в настоящее
время выступает моделирование с использованием искусственных нейронных
сетей. Задача планирования перемещения АМР осложняется тем, что, как
правило, существует огромное число маневров для перемещения АМР, среди
42
которых
необходимо
выбрать
оптимальный
вариант.
Это
затрудняет
использование классических подходов для решения подобного рода задач в
связи
с
необходимостью
последовательного
анализа
всех
возможных
вариантов. В то же время человеческий мозг легко справляется с такими
задачами, что позволяет сделать вывод о целесообразности использования
методов обработки информации, присущих мозгу человека, при решении задач
планирования поведения АМР.
Нейроподход позволяет повысить быстродействие системы, получить
новое ее качество – адаптивность. Использование свойств обучения и
самообучения нейронных сетей обеспечивает возможность адаптации работа в
среде и оптимальный выбор адекватной внешним воздействиям реакции.
Многослойная нейронная сеть имеет возможность осуществлять любое
отображение входных векторов в выходные.
Следовательно, применение неронних сетей для задачи управления
мобильным роботом достаточно целесообразно, поскольку нейронные сети
способны после обучения генерировать корректные выходы при входной
информации, которая не входила в обучающую выборку.
Предложенный метод проведения маневров базируется на использовании
искусственных нейронных сетей (ИНС), а также информации о ЛКС и
направлении
навигации,
полученной
из
подсистемы
навигации.
Суть
предлагаемого метода заключается в построении траектории маневра по
заранее определенному направлению с помощью ИНС.
Для построения траектории маневра использовано основное свойство
ИНС – интерпретировать и аппроксимировать информацию от подсистемы
навигации о направлении перемещения и информацию об окружающей среде
АМР. При этом входной информацией для подсистемы маневров является часть
ЛКС с определенным направлением перемещения (рисунок 2.11).
43
G
(Х,Y,α)
Цель
st
di
а)
б)
Рисунок 2.11 – Входная информация для подсистемы маневров АМР: а) ЛКС с
определенным направлением перемещения; б) вход для НС
Для аппроксимации значений для выбора необходимого маневра АМР
предложено использовать ИНС, задачей которой является интерполяция n
возможных показаний подсистемы навигации для получения K значений
маневров, где К – маневр, который целесообразно выполнить АМР при
навигации к цели. При этом для проведения аппроксимации ЛКС и
направления движения, полученного от подсистемы навигации, целесообразно
использовать структуру ИНС прямого распространения в форме многослойного
персептрона (рисунок 2.12), содержащего один скрытый слой, и в настоящее
время
широко
используемый
для
задачи
интерполяции,
прогноза
и
аппроксимации.
На вход ИНС подается часть ЛКС (рисунок 2.11,б), содержащая
направление движения АМР, установленное подсистемой навигации. Эта часть
представляет собой бинарную матрицу LxN, где L – размерность матрицы по
горизонтали, N – размерность матрицы по вертикали, причем значение «1» в
матрице формируют траекторию движения. Т.о. входные значения ИНС
формируют слой, содержащий LхN входов и выполняет распределительные
функции. L1 нейронов промежуточного слоя выполняют преобразование
информации, полученной от входного слоя. M нейронов выходного слоя
44
обрабатывают информацию, полученную от промежуточного слоя, и выдают
результат, отражающий значение для проведения определенного маневра.
1
1
1
2
2
2
L1
LxN
M
Рисунок 2.12 – Структура НС для определения траектории движения
подсистемы маневров
Каждый слой ИНС содержит матрицу весовых коэффициентов W, вектор
пороговых значений b и вектор выходных значений a. Выход каждого слоя
многослойного персептрона находится как:
LxN
a1j = f 1 (iw k, j * a ok + b1j ) ;
k =1
(2.7)
L1
a = f (lw i, j * a1i + b 2j ) ;
i=1
(2.8)
2
j
2
L1
LxN
a 2j = f 2 (lw i, j * f 1 (iw k, j * a ok + b1i ) + b 2j ) ,
i=1
k =1
(2.9)
где f 1 , f 2 – функции активации, соответственно, скрытого и выходного
слоя НС; iw k, j – весовые коэффициенты входного слоя от k входа до j скрытого
слоя; lw i, j – весовые коэффициенты скрытого слоя от i-нейрона скрытого слоя
45
до j-нейрона выходного слоя; a ok – k-й вход ИНС; a1j , a 2j – выходы j нейронов,
соответственно, скрытого и выходного слоев; b1i , b2j – пороговые значения j
нейронов, соответственно, скрытого и выходного слоев; LxN – количество
входов ИНС; L1 – количество нейронов скрытого слоя.
В качестве функции нелинейного преобразования для нейронов скрытого
слоя использована логарифмически-сигмоидная функция активации:
f (x) =
1
,
1 + e− x
(2.10)
а для нейронов выходного слоя – линейная функция активации:
f (x) = k * x,
(2.11)
где k – коэффициент, отражающий угол наклона прямой линии функции
активации.
Т.о., ИНС содержит LxN входов, L1 нейронов скрытого слоя, M нейронов
выходного слоя. Выходы каждого промежуточного слоя являются входами к
следующему
слою.
Поэтому,
выходной
второй
слой
может
также
анализироваться как однослойная НС с L1 входами, М нейронами, и матрицей
весовых коэффициентов W2 = L1xМ. Входами второго слоя НС является вектор
а1, а выходами – а2. Такой же подход используется для любого слоя НС.
Для
нахождения
необходимой
траектории
перемещения
можно
использовать процедуру симуляции НС:
М=NN(LхN);
(2.12)
Для обучения НС целесообразно использовать алгоритм Levenberg46
Marquardt с обратным распространением ошибки, Resilient с обратным
распространением ошибки, которые обеспечивают быстрое обучение. При
этом, первый алгоритм обеспечивает быстрое восхождение к заданной
точности обучения НС, при больших затратах памяти в отличие от второго
алгоритма.
Обучающая выборка НС состоит из вектора обучающих входов и вектора
обучающих целей. Входами НС является бинарная матрица среды с
установленным направлением движения, а вектор цели определяется на основе
соответствия заданной среде траектории движения АМР.
С целью формирования обучающей выборки предлагается создать
обучающие векторы, описывающие наиболее типичные изображения ЛКС,
сформированные подсистемой построения карты среды.
Процесс формирования обучающей выборки показан на рисунке 2.13.
Процесс формирования входного вектора обучающей выборки базируется
на представлении:
xi = pi1 K piL , i = 1..N ,
(2.13)
где і – лента бинарной матрицы; L – горизонтальный размер бинарной
матрицы.
1
L
1
N
M
а)
б)
Рисунок 2.13 – Процесс формирования обучающей выборки для НС: а) входной
вектор НС; б) результирующий вектор НС
47
Т.о., входной вектор НС можно представить как:
X = x1 K x LxN ,
T
(2.14)
где LxN – размер входного вектора НС.
Выходной вектор можно отобразить как:
Y = y1 K yM ,
(2.15)
где М – размер выходного вектора НС.
Итак, обучающая выборка может быть представлена как:
TS = X1Y1,X2Y2 K Xk Yk ,
(2.16)
где k – размерность обучающей выборки.
Т.о. формирование траектории движения АМР с помощью нейросетевого
метода осуществляется по следующим этапам:
- формирование обучающей выборки ИНС;
- обучение ИНС;
- моделирование работы (симуляция) метода;
- адаптация обучающей выборки ИНС;
- реальное использование подсистемы маневров АМР.
Для более детального представления работы усовершенствованного
метода, разработан алгоритм (рисунок 2.14), состоящий из основных этапов,
которые рассматривались выше.
Т.о., предложен усовершенствованный метод проведения маневров,
основанный на использовании нейронной сети с адаптивным формированием
обучающей выборки, и который позволяет повысит вероятность выполнения
маневров при перемещении АМР к цели.
48
Начало
Формирование
обучающей
выборки НС
TS
Добавить входной и
выходной вектор в
обучающую выборку
Обучение НС
Переобучение НС
А
І=1..100
Моделирование
работы метода
А
Один шаг
перемещения
Реальное
использование на
АМР
Корректное
направление
движения
нет
Конец
да
Рисунок 2.14 – Алгоритм работы метода построения траектории движения АМР
подсистемы маневров
2.1.3 Результаты имитационного моделирования предложенных методов
С целью исследования разработанного метода навигации использован
программный симулятор мобильных роботов компании ActivMedia MobileSim,
который позволяет проводить исследования методов навигации с различными
базами мобильных роботов: Pioneer 1, Pioneer AT, Pioneer 2™-DX, -DXe, -DXf,
-CE, -AT, Pioneer 2™-DX8/Dx8 Plus і -AT8/AT8 Plus, а также новыми
разработками Pioneer 3-DX і -AT.
Для построения карты среды использован также продукт компании
ActivMedia Mapper3, который позволяет построить статическую среду с
определением исходного положения работа и координат цели. Изображение
49
построенной среды для исследования и моделирования как существующего, так
и предложенного метода навигации представлены на рисунке 2.15.
Рисунок 2.15 – Карта среды мобильного робота, сформированная с помощью
Mapper3
Результаты исследований и моделирования предложенного метода
навигации представлены на рисунке 2.16.
Рисунок 2.16 – Результаты моделирования работы усовершенствованного
метода навигации мобильного робота с помощью симулятора MobileSim
Моделирование работы предложенного метода навигации позволило
50
провести верификацию разработанного подхода при различных картах среды.
Моделирование подтвердило выполнение критерия навигации – выход на цель.
С целью экспериментального исследования предложенного метода была
определена общая структура управления АМР (рисунок 2.17). Мобильный
робот оснащен видеокамерой, которая предназначена для отображения
заданной
траектории.
Блок
обработки
видеоизображения
преобразует
изображения от видеокамеры в бинарную матрицу.
Блок обработки
видеоизображения
Видеокамера
Блок определения направления
движения
Органы управления
роботом
Рисунок 2.17 – Структура системы автономного управления мобильным
роботом
Блок определения направления движения обеспечивает преобразование
бинарной матрицы во входной вектор X, подаваемый на вход многослойной
нейронной сети с прямыми связями. На выходе нейронной сети формируется
вектор, определяющий направление движения АМР в каждый момент времени.
После
этого
соответствующие
управляющие
сигналы
передаются
на
контроллер АМР, который приводит в движение двигатели работа.
При имитационном моделировании была использована бинарная матрица
5х5.
Также
было
разработано
программное
обеспечение
средствами
специализированного пакета нейронных сетей в среде Matlab 2008b для
эмуляции нейронной сети и моделирования движения мобильного робота.
График изменения среднеквадратичной ошибки при обучении нейронной сети
показан на рисунке 2.18.
Из графика видно, что при установлении среднеквадратической ошибки в
10-5, обучение нейронной сети достигалось за 467 итераций. При проведении
экспериментов
в
среднем
для
достижения
соответствующей
среднеквадратической ошибки обучения нейронной сети проводилось по 400-
51
1200 итераций. Различные значения объясняются тем, что при инициализации
нейронной сети задавались случайным образом веса синаптических связей.
10
10
Обучение-Синий ЦельЧорний
10
10
10
10
10
10
10
2 Продуктивность 9.86025e-006, Среднеквадратическая ошибка 1e-005
1
0
-1
-2
-3
-4
-5
-6
0
50
100
150
200
250
467 Епох
300
350
400
450
Рисунок 2.18 – Изменение среднеквадратической ошибки при обучении
нейронной сети
Моделирование движения робота проводилось на случайным образом
сгенерированном пути, который имитировал бы разметку на дороге или,
например, в промышленном цехе.
При проведении симуляции движения АМР средствами разработанного
программного обеспечения было установлено, что набора обучающих векторов
для нейронной сети недостаточно для устойчивого перемещения робота по
заранее определенной траектории. Робот достаточно часто смещался от
определенной траектории на определенных участках пути (рисунок 2.19).
В связи с этим был реализован процесс адаптации нейронной сети к
неустойчивым участкам пути перемещения АМР на этапе моделирования. При
этом обучающая выборка дополнялась новыми векторами (рисунок 2.20),
характеризующими
неустойчивые
участки
переобучение нейронной сети.
52
движения,
и
проводилось
а)
б)
Рисунок 2.19 – Графическая интерпретация отклонения АМР от определенной
траектории: a) предопределенная траектория движения; б) траектория
движения робота
Т.о.
был
сформирован
адаптивный
набор
обучающих
векторов,
обеспечивший устойчивое движение АМР на различных участках пути.
Листинг программного модуля для имитационного моделирований и
исследования нейросетевого метода выполнения маневров АМР в условиях
статической среды представлен в приложении А.1.
Имитационное
моделирование
сложившейся
системы
управления
(рисунок 2.21) показало, что разработанная нейросетевая система обеспечивает
устойчивое управление АМР при движении по разной траектории с
различными углами поворота.
а)
б)
Риссунок 2.20 – Формирование учебного вектора для неустойчивых участков
перемещения робота: а) изображение с видеокамеры; б) направление движения,
сгенерированное нейронной сетью
Также в случае смещения от определенного маршрута в пределах
53
видимости камеры система возвращала АМР к предварительно заданной
траектории. Этот процесс происходит за счет обобщения нейронной сетью
знаний о неизвестных типах траекторий, не входивших в обучающую выборку.
Как видно из рисунка 2.21, движение робота осуществляется строго по
сгенерированной траектории.
а)
б)
Рисунок 2.21 – Имитационное моделирование движения АМР по заранее
определенной траектории: a) предопределенная траектория движения; б)
траектория движения робота
На определенном отрезке происходит перемещение мобильного робота
по общему направлению следования разметки, что позволяет значительно
уменьшить время на перемещение и время, которое затрачивалось бы на
обработку входных данных и выдачи реакции без задержки во времени.
Графическое
представление
относительной
ошибки
отклонения
от
определеного маршрута приведено на рисунке 2.22. В среднем относительная
ошибка отклонения от маршрута составляет 4%. Большие значения ошибки
компенсируются нейронной системой при перемещении АМР.
Результаты
проведенных
экспериментов
показали
повышение
вероятности выполнения маневров в среднем на 35-40% от прототипа. При
этом для сравнения предложенного метода и прототипа было проведено
имитационное моделирование проведения маневров на 200 разных экземплярах
траектории заданного перемещения. При этом прототип показал вероятность
выполнения маневров в среднем на уровне 0,57-0,60, а при применении
усовершенствованного метода на уровне 0,92 ... 1.
54
18
Относительная ошибка, %
16
14
12
10
8
6
4
2
0
0
10
20
30
40
50
60
70
Шаги перемещения АМР
Рисунок 2.22 – Погрешность перемещения АМР
2.2
Моделирование системы управления мобильным роботом
2.2.1 Модель интеллектуальной системы управления
Анализ различных вариантов построения систем управления АМР
показал, что основное внимание таких решений сосредоточено на решении
задач
навигации
в
структурированных
средах,
поэтому
возникает
необходимость построения архитектуры для обеспечения функционирования
АМР в сложных (динамических) неструктурированных средах. Это позволит
сформировать оптимальную конфигурацию для взаимосвязи основных модулей
АМР для обеспечения навигации без столкновения с препятствиями.
С целью разработки оптимальной модели интеллектуальной системы
управления был осуществлен анализ задач и потоков данных, которые
возникают при движении АМР в неструктурированной динамической среде, и
предложена модель интеллектуальной системы управления АМР, которая
изображена
на
рисунке
2.23.
Она
базируется
на
обеспечении
функционирования АМР в неструктурированной динамической среде и
показывает основные потоки данных в системе и взаимосвязь элементов
системы управления АМР.
55
56
Предварительная
обработка данных
Подсистема определения типа среды
1
12
11
ГКС
Синтез ГКС
7
Одометрические
устройства
Контроллер одометров
8
Интерфейс связи
Подсистема
локализации МР на ГКС
9
X,Y,α
Полож.
АМР
10
13
База знаний
ЛКС
14
Подсистема
следования к цели
19
15
Двигатели АМР
Контроллер двигателей
16
Скорость и углы поворота двигателей АМР
Подсистема маневров
17
17
Подсистема
обхода препятствия
18
Локальная навигация
21
Подсистема выбора
типа навигации
Глобальная навигация
20
22
Коорд.
цели
X,Y,α
23
Рисунок 2.23 – Модель интеллектуальной системы управления мобильным роботом
Сенсоры АМР
Контроллеры сенсоров
2
3
4
5
Подсистема построения
ЛКС N
6.N
Подсистема построения
ЛКС 1
6.1
...
Согласно предложенной модели в начале движения робота определяются
координаты цели (Х,Y,α) (блок 23), X, Y – координаты осей абсцисс и ординат,
α – угол поворота относительно исходного положения работа. Подсистема
выбора этапа навигации (блок 22) проверяет наличие необходимых данных для
начала следования к цели (глобальной карты среды (ГКС) (блок 11), локальной
карты среды (ЛКС) (блок 12) и устанавливает исходное положение АМР (0,0,0)
(блок 10). При наличии ГКС навигация осуществляется одним из глобальных
методов навигации, например, фронтом волны (Wave Front) [8] или с помощью
дерева квадрантов [9].
В случае отсутствия синтезированной ГКС (например, при задаче
следования
к
цели
в
незнакомой
среде),
последняя
генерируется
с
отсутствующими препятствиями и по мере перемещения АМР уточняется. При
отсутствии
ЛКС
контроллером
сенсоров
(блок
2)
генерируются
инициализирующие импульсы к сенсорам восприятия среды для получения
показаний сенсоров. Полученные сенсорные показания передаются через
интерфейс связи (блок 3) в блок предварительной обработки данных (блок 4)
для уменьшения влияния помех и шумов, что повышает точность и
помехоустойчивость полученных показаний сенсоров.
В блоке 5 определяется тип среды, в которой функционирует АМР. Это
связано с тем, что различные типы сенсоров функционируют в определенных
средах (вакуум, термических, лакокрасочных, нефтегазовых и т.д. ) с большими
погрешностями
измерений.
Поэтому
на
основе
анализа
типа
среды
определяется метод построения ЛКС (блок 6.1 - 6.N ) [10, 11], для которого
определяются конкретные типы сенсоров (ультразвуковые, инфракрасные или
видеосенсоры), которые будут задействованы. Кроме того, выбор типа среды и
методов построения ЛКС обеспечивается взаимосвязью с базой знаний
(блок 14), которая выполняет функции принятия правильного решения и
накопления знаний об окружающей среде. Построенная ЛКС записывается в
оперативную память (блок 12).
57
При отсутствии ГКС в блоке 13 обеспечивается синтез глобальной карты
среды на основе ЛКС. Также входной информацией является построенная на
предыдущем шаге ГКС, которая находится в оперативной памяти (блок 11),
ЛКС АМР (блок 12) и положения АМР (блок 10). Для синтеза ГКС может быть
использован алгоритм, предложенный в [8], и требующий минимальной
вычислительной сложности. Синтезированная в блоке 13 ГКС, записывается в
оперативную память (блок 11).
В блоке 22 определяется тип навигации для движения АМР к цели:
глобальная или локальная. Если ГКС известна (X1, Y1, ..., XN, YN) и известно
положение работа R(Х,Y,α) и цели G(Х,Y,α), причем R(Х,Y,α) (X1,Y1, …,
XN,YN) и G(Х,Y,α) (X1,Y1, …, XN,YN), то навигация АМР происходит с
помощью глобальных методов (блок 20). Если среда, в которой движется АМР,
является
недостаточно
структурированной,
то
возникает
возможность
появления препятствий, которые не обозначены на ГКС, а также возможность
появления динамических препятствий. При этом нужно выполнять обход
препятствий (блок 18), используя, например, метод Wall Following.
Если R(Х,Y,α) (X1,Y1, …, XN,YN) или G(Х,Y,α) (X1,Y1, …, XN,YN),
то нужно использовать методы локальной навигации (блок 21), например,
метод потенциальных полей [12], или один из методов семейства BUG [13].
Если направление траектории движения робота неизвестно на каждом
шаге при глобальной или локальной навигации, то нужно использовать
подсистему маневров (блок 17), которая обеспечит поступательное движение
АМР. В зависимости от выбранного направления движения в блоках 20, 18 или
19 подсистема маневров на основе ЛКС определяет оптимальный маневр для
обеспечения движения робота без столкновения с препятствиями. Оценка
текущего состояния АМР и выбор желаемого маневра реализуется с
использованием
средств
искусственного
интеллекта
(блок
14)
для
конкретизации маневров, которые будут осуществлены, и накопления их в базе
знаний блока. При этом будет сформировано значение угла поворота рулевого
58
устройства, а при его отсутствии скорости и углы поворота управляющих
двигателей АМР. Контроллер двигателей (блок16) на основе принятых с
помощью интерфейса
связи
(блок3) данных
формирует
управляющие
воздействия на двигатели АМР, которые будут задействованы в определенном
на предыдущем этапе маневре.
При перемещении АМР, в блоке 7 происходит измерения реальных
параметров движения АМР, например, с помощью оптических пар для
контроля за движением колес или видеоанализатора поверхности для установки
пройденного реального пути и скорости перемещения. Сформированные
реальные данные обрабатываются с помощью контроллера (блок 8),
передаются через блок 3 к подсистеме локализации АМР ГКС. Положение
робота L(Х,Y,α), полученное на основе только одометрической системы дает
приближенное значение координат ГКС (из-за возможных погрешностей в
измерении и ситуаций, когда поверхность движения позволяет проскальзывать
ведущим колесам АМР). Для уточнения положения АМР ГКС Ri(Х,Y,α)
используется ЛКС (блок 12), сформированная ГКС (блок 11), предварительно
сформированные
значения
координат
положения
работа
Ri-1(Х,Y,α) и информация, полученная от блока 8. Для проведения локализации
АМР можно применить методы, предложенные в [14,15]. Уточненное значение
положения АМР ГКС Ri(Х,Y,α) записываются в оперативную память (блок 10).
Согласно предложенной модели управления АМР все функциональные
блоки можно разделить на программно-зависимые и аппаратно-зависимые.
Основными функциями аппаратно-зависимых блоков является прием команд,
преобразование в управляющие сигналы и получение данных от сенсоров.
Алгоритмы функционирования этих блоков четко определены на этапе
изготовления и не поддаются изменению. На программном уровне решаются
задачи построения карты местности, навигации и локализации АМР;
подвергается модификации и совершенствованию. Поэтому важно рассмотреть
структуру программы АМР как набор методов, алгоритмов и средств
59
компьютерной инженерии.
Структура
(рисунок 2.24)
предлагаемого
содержит
программного
модуль
диспетчера,
обеспечения
который
системы
является
ядром
программного обеспечения АМР, работает невидимо для пользователя и
осуществляет следующие системные функции: организацию взаимодействия
компонентов АМР, мониторинг процессов, распределение процессорного
времени между задачами и т.д.
Модуль прерываний обеспечивает общий контроль наступления событий
во времени, осуществляет направление событий в блоки, реагирующие на них,
т.о. обеспечивая общую синхронизацию выполнения процедур АМР.
ОЗУ
Модуль
прерываний
База данных
Модуль
визуализации
Диспетчер
Модуль
связи
Модуль
построения
ЛКС 1.. N
Модуль
навигации
Модуль
синтеза ГКС
Модуль
локализации
Рисунок 2.24 – Обобщенная структура программного обеспечения системы
управления АМР
Модуль
связи
обеспечивает
ввод/вывод
данных
к
активаторам
(двигателей, приводов манипуляторов) и сенсорам, используя стандартные
интерфейсы, например RS232, USB или FireWire. Кроме того, для обеспечения
связи с внешней средой АМР, в модуле связи может осуществляться
предварительная обработка сенсорных данных для повышения точности,
помехоустойчивости, достоверности сенсорных показаний, а также фильтрации
различного
рода
информационных
шумов.
команд
При
этом
прием/передача
осуществляется
60
по
управляющих
прерыванию,
и
вызванному
диспетчером, с использованием процесса буферизации и записи их в
оперативную память и в базу данных (БД). Такой подход позволяет снизить
загрузку процессора и обеспечить анализ полученных данных. В БД также
хранится информация о командах АМР, локальная и глобальная карты среды,
информация о положении АМР. При этом БД может быть использована для
формирования базы знаний, которая необходима при интеллектуальном
управлении АМР. Например, важным при управлении АМР является анализ
сохраненных данных в БД для обеспечения возможности возврата робота в
предыдущие положения в случае тупиковых ситуаций, когда необходимо
осуществить перемещение АМР в позицию, которую он занимал на
предыдущих шагах перемещения и выбора другой траектории движения.
Модуль
визуализации
обеспечивает
мониторинг
функциональной
активности АМР на экране дисплея. Такой режим необходим при отладке
основных процедур функционирования АМР. В реальных условиях модуль
мониторинга не используется для повышения общей производительности
вычислительных средств.
Модули построения ЛКС 1...N, синтеза ГКС, навигации и локализации
обеспечивают выполнение алгоритмов в соответствии с этапом общего
алгоритма управления АМР. Для выполнения таких алгоритмов выделяется
процессорное время, необходимое для их работы. Выполнение каждого из
алгоритмов завершается вызовом прерывания программы и обращением к
диспетчеру с сообщением о конце процедуры выполнения алгоритма. На
основе прерываний диспетчер определяет последовательность выполнения
процедур для функционирования АМР, которые инициализируются новыми
прерываниями.
На основе анализа архитектурных решений были сформированы
основные требования к интеллектуальной системе управления АМР в сложных
(динамических) условиях, что позволило построить детальную модель системы
управления,
и
определить
основные
61
потоки
данных
и
взаимосвязь
функциональных модулей на программном уровне.
2.2.2 Исследование
производительности
аппаратных
средств
и
вычислительной сложности алгоритмов управления АМР
Анализ известных архитектур АМР позволил выделить основные
требования к построению систем управления АМР, одним из которых является
вычислительная сложность. Оценку вычислительной сложности проведем с
учетом скорости перемещения АМР в реальном времени, а также допустимой
погрешности позиционирования АМР в среде. При этом время, необходимое
для выполнения одного цикла вычислений всех функциональных блоков АМР
(обобщенный алгоритм приведен на рисунке 2.25), вычисляется следующим
образом:
Т=Т1+Т2+Т3+Т4+Т5+Т6+Т7+Т8+Т9
(2.17)
где Т1 – время выполнения операции считывания данных от сенсоров и
записи их в ОЗУ; Т2 – время формирования массива данных о среде в ОЗУ;
Т3 – время, необходимое для определения типа среды и выбора метода
построения ЛКС; Т4 – время выполнения метода построения ЛКС; Т5 – время
для синтеза ГКС; Т6 – время, затраченное на локализацию АМР ГКС; Т7 –
время, необходимое для выбора типа навигации; Т8 – время расчета траектории
движения АМР; Т9 – время для выполнения маневров АМР.
Время, необходимое для выполнения одного цикла вычислений всех
функциональных блоков АМР, т.е. для его перемещения на один шаг при
допустимой погрешности позиционирования Pпоз, составляет:
Т=
Р поз
,
VАМР
62
(2.18)
где Pпоз – допустимая погрешность позиционирования АМР; VАМР –
скорость перемещения АМР.
1
Начало
2
Считывание данных
c сенсоров и запись
их в ОЗУ
3
Выбор метода
построения ЛКС
4
Построение ЛКС
5
Построение ГКС
6
Локализация АМР
7
Выбор типа навигации
АМР
8
Определение траектории
движения АМР
9
Определение маневров
АМР
10
Конец
Рисунок 2.25 – Обобщенный алгоритм интеллектуального управления
мобильным роботом
Алгоритм считывания данных с сенсоров (блок алгоритма 2) содержит
операции сбора сенсорных данных об окружающей среде. Время поступления
63
сенсорных данных от ультразвуковых сенсоров (УС) компании Polaroid серии
6500 составляет Т1УС=23 мс для детектирования препятствия на расстоянии 5 м
от АМР и состоит из сигнала инициализации (5 мс), времени генерации
ультразвуковых
колебаний
пластиной
сенсора
(2,38
мс)
и
времени
распространения ультразвукового сигнала в среде (2,95 мс/м * 5 м = 14,75 мс).
Аналогично, время получения показаний с инфракрасных сенсоров (ИС)
компании
Sharp
согласно
его
спецификации
составляет
Т1 ИС=54,3мс.
Получение показаний от видеокамеры осуществляется с частотой 30 Гц
(Т1видео=33мс), поэтому, для получения двух видеокадров видеокамеры для
построения ЛКС необходимо время 66мс.
Выбор метода построения ЛКС (блок 3) базируется на анализе
показателей УС и ИС. При этом нужно обеспечить считывание минимум двух
выборок данных от УС для их сравнения, что составляет Т2 = 50 мс с учетом
времени обработки. Так что для обеспечения считывания сенсорных
показателей и выбора метода построения ЛКС (Т1 + Т2) достаточно 66 мс.
Построение ЛКС (блок 4) в зависимости от выбранного типа среды
заключается в применении или пассивных сенсоров, или сенсоров активного
восприятия информации. Применение сенсоров активного восприятия хотя и
приводит к меньшим затратам вычислительных мощностей АМР, чем
применение пассивных сенсоров, однако применение в вакууме, термических,
лакокрасочных, нефтегазовых и других средах ограничено, т.к. приводит к
значительным погрешностям в связи с зависимостью скорости распространения
ультразвуковых импульсов от структуры среды, в которой они генерируются
(температуры, плотности, молекулярной массы, химического состава, степени
поглощения и др.) [3]. Поэтому, в таких средах целесообразно применять
сенсоры пассивного восприятия информации (видеосенсоров).
Если тип среды пригоден для применения методов построения ЛКС на
основе пассивных сенсоров, целесообразно использовать метод на основе
структурированного света и видеокамеры. Видеокамера считается пассивным
64
сенсором, который генерирует поток видеокадров с частотой 30 Гц и
инициализируется в начале функционирования АМР. Входной информацией
для блока 4, в таком случае будут два видеокадра с включенным и
выключенным источником излучения структурированного света (лазер). При
этом время, которое затрачивается на реализацию метода при разрешении
видеокамеры 640х480 пикселей составляет 2,2 с (на ПК с ЦП Athlon (tm) XP,
1,59 ГГц).
Если тип среды пригоден для применения методов построения ЛКС на
основе сенсоров активного восприятия среды, можно использовать методы
слияния данных от ультразвуковых и инфракрасных сенсоров на основе
статистического или нейросетевого подхода. При этом время, необходимое для
выполнения метода построения ЛКС на основе статистического подхода
составляет 0,05 мс, а нейросетевого метода 0,6 мс (на ПК с ЦП Athlon (tm),
1,59 ГГц).
Время построения ГКС (блок 5) на ПК (ЦП – 2,66 ГГц, Celeron) для ГКС
размерностью 10 м2 с размерностью ячейки сетки 10 см составляет Т4=5 мс для
реализации алгоритма на языке С.
Время выполнения процедуры локализации АМР ГКС (блок 6) составляет
Т5=100 мс (ЦП – 2,66 ГГц, Celeron). Данный метод базируется на определении
позиции построенной ЛКС на ГКС. Также для локализации АМР используют
маяки, позволяющие получить позицию АМР относительно них с большим
быстродействием. Например, предложенные в [2] маячные методы позволяют
определять координаты АМР с частотой 100 Гц на расстоянии нескольких
километров. В таком случае, позиционирование АМР может происходить по
Т5=15 мс с учетом времени обработки информации.
Т.о., на основе (2.23), (2.24) необходимое время для проведения
навигации можно определить в зависимости от допустимой погрешности
позиционирования и скорости перемещения АМР за вычетом быстродействия
выполнения
блоков
2-6
обобщенного
65
алгоритма
управления
АМР
(рисунок 2.24):
Т7+Т8+Т9=
Pпоз
-(Т1+Т2+Т3+Т4+Т5+Т6),
VАМР
(2.19)
где, Pпоз – допустимая погрешность позиционирования АМР в среде;
VАМР – скорость перемещения АМР.
Например, для допустимой погрешности позиционирования АМР в среде
равной 0,15 м, при скорости перемещения АМР 1 м/с и времени выполнения
блока локализации АМР равной 15 мс (рисунок 2.26) время построения ЛКС
составит 0,6 мс.
Необходимое время
Необходимое время обработки (с)
Необходимое время обработки (с)
Необходимое время
С к ор
ость
АМР
(м/с)
по
зи
м
Р(
сть
но я АМ
еш
г р ан и
По ров
и
он
ци
)
Скорость АМР (м/с)
а)
б)
Рисунок 3.4 – График необходимого времени для навигации и маневрирования
АМР при переменной скорости и переменной погрешности
позиционирования (а) и погрешности позиционирования равной 0,15 м (б) при
условии выполнения алгоритма локализации за 15 мс
В случае, когда время выполнения блока определения положения работа
ГКС равно 200 мс (рисунок 2.27), время выполнения навигации составит 19 мс
(52,6 Гц).
66
Необходимое время
Необходимое время обработки (с)
Необходимое время обработки (с)
Необходимое время
Ск
ор о
сть
А
МР
(м
/с)
но
реш
Пог
п
сть
озиц
ир
и он
ов ан
ия А
(м
МР
)
Скорость АМР (м/с)
а)
б)
Рисунок 3.5 – График необходимого времени для навигации и маневрирования
АМР при переменной скорости и переменной погрешности позиционирования
(а) и погрешности позиционирования равной 0,15 м (б) при условии
выполнения алгоритма локализации 200 мс
Учитывая необходимое время для выполнения методов навигации и
маневров
АМР,
можно
определить
необходимую
производительность
вычислительных средств для их реализации:
P=
K*F*R
,
N
(2.20)
где N – количество входных данных; K – количество входных каналов
данных; F – частота поступления входных данных; R = R (N) – сложность
алгоритма (количество выполняемых операций типа сложения/умножения в
секунду).
При этом количество выполняемых операций метода локальной
навигации составляет:
Rнавиг = R1+R2.
67
(2.21)
Тогда, на основе (2.20), (2.21) производительность вычислительных
средств для выполнения задачи навигации с частотой поступления входных
данных F=4,9 Гц, К=1, N=1 составит Рнавиг=122345 оп/с. Если частота
поступления
входных
данных
F=52,6Гц,
то
производительность
вычислительных средств для навигации составляет Рнавиг=122345 оп/с.
Для нейросетевого метода выполнения маневров количество операций,
необходимых для выполнения одного маневра составляет
Rманевр=R7+R9
(2.22)
Согласно (2.20), (2.22), производительность вычислительных средств для
выполнения маневров при частоте поступления данных F=4,9 Гц, К=1, N=1
составит Рманевр=12143 оп/с.
Анализ
необходимой
вычислительной
производительности
предложенных методов и вычислительной производительности современных
ПК позволил определить необходимое время для обеспечения навигации и
выполнения маневров на разных архитектурах вычислительных средств
(таблица 2.1).
Таблица 2.1 – Время, необходимое для выполнения предложенных
методов на различных вычислительных средствах
Метод
Час-
Про-
Время, необходимое для навигации и
тота
дукт.,
выполнения маневра, с
F,
оп/с
Гц
1
AMD Athlon
AMD Athlon,
Intel Celeron
1000MHz
1.59GHz
2,66 GHz
2
3
4
5
6
Градиентный
4,9
14485
4,8430e-5
7,0021e-5
1,3421e-4
метод навигации
52,6
155486
4,2982e-4
7,5424e-4
1,0034e-3
68
Продолжение таблицы 2.1
1
Нейросетевой
2
3
4
5
6
4,9
196882
7,0021e-4
9,8565e-4
1,0012e-3
52,6
2113468
7,4155e-3
1,6541e-2
1,2134e-2
метод для проведения маневров
Т.о., на основе обобщенного алгоритма управления АМР и анализе
временны́х задержек основных модулей, работы и производительности
современных персональных компьютеров, обоснованы рекомендации по
требуемой производительности вычислительных средств для проведения
навигации по маневрам АМР.
2.2.3 Программное обеспечение клиент-серверного взаимодействия
Как было сказано ранее, все функциональные блоки АМР разделяются на
программно-зависимые и аппаратно-зависимые (рисунок 2.28).
Взаимодействие
между
аппаратно-зависимыми
и
программно-
зависимыми функциональными блоками АМР реализовано по архитектуре
клиент-сервер:
- клиент – обращается к серверу за информацией;
- сервер – обслуживает запросы клиентов.
В общем случае каждый клиент может работать со многими серверами, а
сервер – со многими клиентами одновременно.
Для реализации этой архитектуры использована технология СОМ.
Сервер – это фрагмент кода (подпрограмма, модуль), который содержит
компоненты, состоящие из объектов, и обеспечивает клиентам доступ к этим
компонентам. Клиент – это фрагмент кода, которому обеспечивается доступ к
функциям и данным объектов. Клиент видит объект как его интерфейс. Как и
каждая
объектно-ориентированная
технология,
69
СОМ
поддерживает
инкапсуляцию, полиморфизм и наследование. Ни клиент, ни сервер объекта не
знают язык описания друг друга, важно лишь обеспечить стандартизированный
интерфейс СОМ при разработке объектов. Это позволяет разработать
различные модули ПО программно-зависимых функциональных блоков АМР
на
различных
языках
программирования,
наиболее
удобных
при
программирования функций этих модулей, обеспечивая при этом целостность
всего ПО и стандартизированные коммуникационные связи между модулями.
МСД2
МСД3
Интер
фейс
МСД4
Интер
фейс
ИС
CCD
Лазер
Сенсоры
движения
Двигатели
Нижний
уровень
МСД1
ОЗУ
Верхний
уровень
ЦП
HDD
УС1
...
УС N
Рисунок 2.28 – Структура мобильного робота
К
аппаратно-зависимой
части
принадлежит
интерфейс
связи,
представленный на рисунке 2.23, который является частью операционной
системы АМР. Основными функциями операционной системы АМР является
получение управляющих команд и предварительная обработка и передача
данных о состоянии АМР (показания сенсоров). В общем, взаимодействие
между аппаратно-зависимыми и программно-зависимыми функциональными
блоками АМР осуществляется по принципу клиент-сервер. Такая организация
коммуникаций обусловлена необходимостью распределения вычислительных
мощностей между задачами аппаратно-зависимых функциональных блоков
АМР и задачами верхнего уровня, реализуемых на персональном компьютере.
Был разработан алгоритм взаимодействия (рисунок 3.7), который позволяет
обеспечить минимизацию временны́х затрат на обработку пакетов между
70
клиентом и сервером за счет отсутствия подтверждения полученных команд.
Это в целом позволяет повысить производительность компонентов АМР на 1015%.
Все другие уровни относятся к программно-зависимой части и
реализуются на языке программирования. Нижний уровень двухуровневой
структуры АМР (рисунок 2.28) состоит из сенсоров и активаторов (УС, ИС,
видеокамер, лазера, сенсоров движения, двигателей), модулей сбора данных
(МСД1 – МЗД4) и контроллеров активаторов, а также из центрального
процессора, ОЗУ и накопителя на жестком диске (HDD) на верхнем уровне.
Функциями
модулей
сбора
данных
(МСД)
является
обеспечение
преобразования сигнала сенсоров в цифровой код. При этом алгоритм
преобразования является неизменным и жестко записанным в ПЗУ. МСД в
основном управляет процессом сбора данных и передачей их в шину данных на
верхний уровень. МСД является аппаратно-ориентированным на сбор данных
от конкретных типов сенсоров и наименее универсальным среди всех уровней
АМР.
Основным требованием к вычислительному устройству МСД является
его функционирование в реальном времени сбора данных с частотой
поступления показателей сенсоров. Аналогичным свойствам соответствуют
контроллеры активаторов, которые обеспечивают интерфейс с шиной данных и
аппаратно-ориентированы на определенный тип активатора.
На верхнем уровне реализуется блок центрального процессора (ЦП),
который обеспечивает функционирование всех элементов АМР и выполняет
наиболее сложные процедуры построения ЛКС, навигации, локализации и
управления другими модулями АМР. Специализация функций ЦП достигается
специализированным программным обеспечением. При этом коды программ
алгоритмов выполнения методов управления АМР и результаты выполнения
сбора сенсорных данных, а также результаты выполнения программ
размещаются в оперативной памяти (ОЗУ). Данные, которые не требуют
71
частого использования, хранятся на жестком диске (HDD), например, ГКС и
положения АМР на ней может считываться с жесткого диска на начальном
этапе движения АМР.
Начало
Инициализация
взаимосвязи между
клиентом и сервером
Stop = False
А
пока
Stop <> True
Команды
управления
есть?
да
нет
Команда
управления АМР
Формирование пакета
данных для
отправления серверу
нет
Формирование пакета
для поддержки связи
Отправка/получение
пакетов данных в
дуплексном режиме
Состояние
АМР
Вызов прерывания
обработки сенсорных
данных
A
Stop
Конец
Рисунок 2.29 – Алгоритм взаимодействия между клиентской и серверной
частью АМР
72
Согласно интеллектуальной схеме управления АМР (рисунок 2.23) задачи
построения локальной и глобальной карт среды, локальной и глобальной
навигации АМР, проведения маневров и локализации реализуются на
программном уровне управления АМР. Поэтому целесообразно рассмотреть
структуру программы АМР как совокупность методов, алгоритмов, средств
вычислительной техники и средств программирования.
На основе анализа необходимой производительности вычислительных
средств, подсистемы АМР могут реализовываться на однопроцессорной основе
или
на
специализированных
многопроцессорной
средствах,
подсистемы.
например,
Однопроцессорные
с
использованием
системы
на
базе
персональных компьютеров (ПК) по сравнению со специализированными
компьютерами проигрывают в быстродействии, однако проще в реализации,
имеют широкий набор инструментальных средств для разработки программ на
разных
языках
программирования.
Учитывая
высокие
темпы
роста
производительности ПК и объемов оперативной памяти и такими же темпами
снижения их стоимости, вопрос быстродействия становится не слишком
критичным. Другое преимущество ПК – открытость системы, т.е. возможность
построения любой конфигурации, в том числе использование одной системной
платы и сокращенного набора периферийных устройств. Кроме этого, для ПК
разработаны
операционные
системы,
позволяющие
реализовать
режим
реального времени, например UNIX, LINUX, Windows. Однако, несмотря на
большое количество задач в системе управления АМР и то, что на
выполняемые действия, требуется значительное процессорное время, возникает
необходимость во введении супервизора, который бы действовал в рамках
операционной системы.
Т.о.,
в
работе
представлена
структура
аппаратно-зависимых
и
программно-зависимых функциональных блоков АМР, обоснован выбор
архитектуры клиент-сервер для взаимодействия между ними, представлены
алгоритм взаимодействия между клиентской и серверной частью АМР. Также,
73
учитывая то, что операционные системы Windows, UNIX, LINUX являются
универсальными,
использующими
много
процессорного
времени
для
собственных нужд, целесообразно верхние уровни структуры программного
обеспечения реализовывать на языках высокого уровня на этих системах, тогда
как подсистемы связи с внешними устройствами и сенсорами – на
микропроцессорах.
74
3
Программная
реализация
методов
и
моделей
адаптивного
управления автономным мобильным роботом
3.1
Реализация подсистемы маневров мобильного робота для движения
по заранее заданной траектории
Для исследования предложенного метода использован АМР Pioneer P2DX
компании
ActivMedia.
Данный
робот
является
трехколесным,
оборудованным двумя ведущими колесами, размещенными на одной оси, и
одного колеса, вращающегося вокруг своей оси и служит балансом опоры
работа (рисунок 3.1). Платформа АМР изготовлена из алюминиевых пластин
размером 44см х 38см х 22 см, весом от 9 до 23 кг (в зависимости от
конфигурации компонентов работа) с приводными колесами диаметром
16,5 см, имеющими спецификацию RoboCup Mid-Sized League, обеспечивает
перемещение и повороты за счет механизма вращения двух ведущих колес.
а)
б)
Рисунок 3.1 – АМР Pioneer P2-DX: а) внешний вид; б) размеры АМР
В условиях с горизонтальной поверхностью, АМР может перемещаться с
максимальной скоростью до 1,6 м/с. Кроме двигателей, базовая платформа
содержит 8 ультразвуковых сенсоров компании Polaroid с чувствительностью
от 5 см до 7 м. Для обеспечения автономности, АМР оборудован тремя
75
аккумуляторами, позволяющими перемещаться 18-24 часов при полностью
заряженных батареях. Кроме того, АМР может оснащаться дополнительными
устройствами:
тактильным,
лазерным
дальномером,
видеокамерой
или
стереопарой, а также манипуляторами. Для управления работой базы работа
используется микропроцессор Siemens C166. Для связи с компьютером
используется стандартный интерфейс ввода/вывода на основе RS232.
При экспериментальных исследованиях был разработан протокол
взаимодействия
между
базой
АМР
и
персональным
компьютером.
Коммуникация осуществляется по принципу клиент-сервер. Взаимодействие
между серверной и клиентской частью обеспечивается специализированным
протоколом обмена данных, имеющим определенную структуру (таблица 3.1).
Таблица 3.1 – Структура пакета протокола взаимодействия между
клиентской и серверной частями мобильного робота
Компонента
Заголовок
Число
передаваемых
байт
Данные
Контрольная
сумма
Байты
Значение
2
0хFA, 0xFB
1
N+2
N
Команды
2
Рассчитываются
Описание
Заголовок пакета, аналогичный как
для сервера, так и для клиента
Количество байт передаваемых
данных,
включая
контрольную
сумму (максимум 200 байт)
Команды клиента или информация
сервера
Контрольная сумма пакета
В случае передачи сообщений от клиента к серверу структура команд в
пакете четко определена (таблица 3.2). С целью контроля наличия связи между
взаимодействующими сторонами протокола клиент-сервер в случае отсутствия
команд управления АМР, клиент должен периодически, например, каждые 3
секунды отправлять самоконтролирующий пакет с командой «PULSE» на
сервер. Если управляющие команды клиента или команды «PULSE»
отсутствуют, робот автоматически останавливает все двигатели, которые могут
76
возобновить свою работу только после получения пакета клиента.
Таблица 3.2 – Структура пакета передачи команд от клиента к серверу
Компонента
Заголовок
Байты
Значение
2
0хFA, 0xFB
1
N+2
1
0-255
Число
передаваемых
байт
Номер
команды
клиента
Тип аргумента
(зависит
от
типа команды)
Аргумент
Контрольная
сумма
1
N
2
Описание
Заголовок пакета, аналогичный как
для сервера так и для клиента
Количество байт передаваемых
данных,
включая
контрольную
сумму (максимум 200 байт)
Номер команды клиента серверу
Тип аргумента команды:
- положительное целое число;
- отрицательное целое число;
- строка;
аргумент команды
Контрольная
сумма
пакета,
рассчитывается при передаче пакета
0x3B
0x1B
0x2B
Данные
Рассчитывается
Реализованные средствами Matlab листинги функций, обеспечивающие
получение данных от ультразвуковых сенсоров, передачу управляющих команд
согласно приведенному протоколу, представлены в приложении А.2.
Для имитационного моделирования вероятной среды функционирования
мобильного робота Pioneer P2-DX была смоделирована среда, описание
которой представлено в приложении А.3. Для проверки функционирования
робота в реальной среде была построена среда с препятствиями, идентичная
построенной на этапе имитационного моделирования.
Проведенные
эксперименты
подтвердили
повышение
производительности компонентов работа на 10% за счет использования
протокола клиент-серверного взаимодействия.
Исследование нейросетевого метода маневров было проведено с
использованием платформы мобильного робота AmigoBot фирмы ActivMedia
Robotics. Данный робот является трехколесным, оборудованным двумя
ведущими
колесами,
расположенными
77
на
одной
оси,
и
одним
самоориентующимся колесом, расположенным на задней части работа,
вращающимся вокруг своей оси и являющимся балансом опоры работа
(рисунок 3.2).
а)
б)
Рисунок 3.2 – Мобильный робот AmigoBot: а) схематическое представление
работа; б) навигация мобильного робота в среде
Платформа АМР изготовлена из алюминиевых пластин размером
28см х 33см х 13см и весом 3,6 кг. Робот достаточно маневренный
(максимальная скорость движения 1 м/с, угол поворота колес 300 градусов/с,
есть возможность поворота на 360 градусов на месте). Два приводных колеса
диаметром 10,2 см приводятся в движение реверсивными 12 В двигателями.
Операционная система работает с 16Кб ПЗУ и 128К ОЗУ. По умолчанию
AmigoBot оборудован восемью ультразвуковыми сенсорами: по одному с
боков, четыре – спереди и два – сзади. Т.о. обеспечивается 360° покрытие
окружающей среды.
Для обеспечения связи между роботом AmigoBot и управляющим
модулем могут быть использованы последовательный порт RS-232 и
беспроводная связь WiFi. Связь работа с управляющим модулем происходит с
помощью технологии клиент-сервер; сервером в данном случае выступает
78
робот, а клиентом – программа, которая анализирует полученные данные и
передает управляющие команды.
С целью исследования разработанного метода маневров также проведены
эксперименты, связанные с перемещением АМР по заранее заданной
траектории. Для этого на плоской поверхности построена кривая, отражающая
желаемую траекторию движения. Для нахождения этой, заранее заданной,
траектории АМР был оборудован цифровой видеокамерой DEXXA, как
показано на рисунке 3.2,б. Данная веб-камера расположена на высоте 20 см от
поверхности среды и перед передней частью АМР. Она позволяет получать
цветные изображения с разрешением 320х240 или 640x480 пикселей. Глубина
цвета составляет 24 бита на 1 пиксель. Угол зрения камеры составляет 40°,
фокусное расстояние – 879 пикселей для разрешения 640 пикселей по
горизонтали. Для связи с компьютером используется USB интерфейс.
Для управления процессом получения изображения, его сегментации,
формирования входного вектора для нейронной сети и перемещения АМР
использовано разработанное программное обеспечение (приложение А.4).
Также для проведения локализации разработано программное обеспечение для
получения данных от одометрических устройств АМР и проведения
сопоставления реального положения робота и данных от системы управления
АМР (приложение А.5). Для программной реализации и исследований
предложенного метода в качестве программного средства использован пакет
Matlab ® 2008b.
Результаты
работы
разработанного
программного
обеспечения
отображены на рисунке 3.3.
Рисунок 3.3 – Результаты выполнения разработанного метода маневров для
АМР AmigoBot
79
3.2
Реализация метода локальной навигации мобильного робота
Основная задача – достижение конечной цели движения робота в среде со
статическими и динамическими препятствиями.
Метод
локальной
навигации
АМР
был
промоделирован
и
экспериментально исследован на работе Khepera II компании K-Team
Corporation (рисунок 3.4).
Рисунок 3.4 – Общий вид АМР Khepera II
С целью исследования разработанного метода навигации использован
симулятор KiKS. Разработаны программные модули градиентного метода
навигации
(приложение
А.6)
и
экспериментально
исследовано
функционирование работа в статической и динамической средах (рисунок 3.5).
Основные параметры работа задаются в виде:
KIKS_PROXIMITY_SENSORS_RANGE = 100; % mm
KIKS_PROXIMITY_DIRECTIONS = [90 45 10 -10 -45 -90 -180 180]; % the
direction each sensor points
KIKS_PROXIMITY_POSITIONS = [68 43 13 -13 -43 -68 -158 158]; % where each
sensor is placed on the robot
KIKS_ROBOT_DIAMETER = 70; % mm
KIKS_ROBOT_DISTANCE_BETWEEN_WHEELS = 53; % mm
80
Рисунок 3.5 – Результаты симуляции предложенного метода на симуляторе
KiKS для АМР
С целью проведения исследований предложенного метода локальной
навигации, использован программный симулятор мобильных роботов компании
ActivMedia MobileSim, который позволяет проводить исследования методов
навигации с различными базами мобильных роботов: Pioneer 1, Pioneer AT,
Pioneer 2™-DX, -DXe, -DXf, -CE, -AT, Pioneer 2™-DX8/Dx8 Plus і -AT8/AT8
Plus, а также новыми разработками Pioneer 3-DX і –AT.
Для построения карты среды использован также продукт компании
ActivMedia Mapper3, который позволяет построить статическое среду с
определением исходного положения работа и координат цели. Изображения
построенной среды для исследования и моделирования как существующих, так
и предложенного метода навигации представлены на рисунке 3.6.
81
Рисунок 3.6 – Карта среды мобильного робота сформирована с помощью
Mapper3
Результаты исследований и моделирования предложенного метода
навигации представлены на рисунке 3.7.
Рисунок 3.7 – Результаты моделирования работы усовершенствованного метода
навигации мобильного робота с помощью симулятора MobileSim
Моделирование работы предложенного метода навигации позволило
провести верификацию разработанного подхода при различных картах среды.
Моделирование подтвердило выполнение критерия навигации – выход на цель.
Предложенный метод был программно реализован в среде моделирования
82
Matlab. Экспериментально исследован метод построения ЛКС АМР с
использованием технологии слияния структурированного света (СС) и
видеоизображения. Для построения ЛКС создана простая механическая часть
четырехколесного
АМР,
которая
содержит
одну
ведущую
ось
дифференциалом и одну ось с рулевым механизмом (рисунок
с
3.8).
Перемещение АМР обеспечивается двумя электрическими двигателями, один
из которых обеспечивает перемещение ведущих колес, а другой – управление
рулевым механизмом работа.
Рисунок 3.8 – Изображение мобильного робота
Для построения ЛКС использована цифровая видеокамера DEXXA.
Данная веб-камера расположена на высоте 20 см над поверхностью среды и
позволяет получать цветные изображения с разрешением 320х240 или 640х480
83
пикселей. Глубина цвета составляет 24 бита на 1 пиксель. Угол зрения камеры
составляет 40, фокусное расстояние – 879 пикселей для разрешения 640
пикселей по горизонтали. Для связи с компьютером используется USB
интерфейс. Кроме того, на АМР в качестве излучателя СС использован
дешевый лазерный диод класса ІІ с длиной волны 620-680 нм с максимальной
выходной мощностью до 1 мВт, который расположен на расстоянии 70 мм
относительно видеокамеры. Конфигурация АМР позволяет изменять угол
излучения СС по отношению к видеокамере. На основе проведенной
калибровки угла излучателя СС был определен угол излучения СС, который
составляет 83. Для формирования СС в форме проекции прямой линий в
направлении препятствия использован оптический способ, основанный на
комбинации цилиндрической линзы и направленного на нее лазерного луча. В
результате такой комбинации пучок лазерного света рассеивается в форме
прямой линии СС, которая проецируется на сенсорную панель видеокамеры
через световой оптический фотофильтр K-8x 52x0,75.
Для управления двигателями АМР и обеспечения его перемещения в
среде, разработана принципиальная электрическая схема, которая позволяет
изменять направление вращения двигателей за счет логических уровней на
выходах
параллельного
интерфейса
ПК.
Т.о.,
для
управления
АМР
использовано пять битов LPT интерфейса: первый – для управления процессом
включения/выключения
излучателя
СС,
второй
–
для
обеспечения
поступательного перемещения АМР, третий – для перемещения робота в
обратном направлении, четвертый – для поворота робота в правую сторону и
пятый – для поворота робота в левую сторону.
Для управления процессами перемещения АМР, излучения СС и их
синхронизации с получением изображений от видеокамеры использована среда
Matlab. Разработано программное обеспечение, позволяющее согласовывать
процессы перемещения АМР.
Для представления предложенных методов построения ЛКС АМР с
84
использованием слияния СС и видеокамеры получено три фрагмента
видеоизображений: при исходном положении АМР, его перемещении на 95 мм
и перемещении на 215 мм относительно начального положения. При этом
создано
искусственное препятствие
в
виде прямоугольного
предмета,
расположенного перед АМР на расстоянии одного метра. В результате
выполнения предложенного метода построения ЛКС были получени сегменты
СС на изображении с использованием пороговых значений и НС.
Для сегментации лазерного луча применен трехслойный персептрон,
который содержит три входных нейрона, 20 скрытых и два выходных нейрона.
Функцией активации нейронов второго слоя НС установлен гиперболический
тангенс, а третьего
слоя
–
линейная
функция
активации
нейронов.
Представленная структура НС выбрана экспериментально и позволяет
эффективно обеспечивать сегментацию лазерного луча на видеоизображении с
учетом критериев точности сегментации и минимизации времени обучения НС.
Для обучения НС был использован метод Levenberg Marquard, причем процесс
обучения ограничивался среднеквадратической погрешностью, равной 0,0001 и
5000 эпохами.
В результате применения предложенного метода была построена ЛКС
(рисунок 3.9), которая показывает, что препятствие прямоугольной формы
находится на расстоянии одного метра относительно исходного положения
АМР (исходное положение АМР было задано в точке с координатами (0,0,0) и
соответствует уровню размещения видеокамеры АМР). Среднеквадратические
отклонения определения расстояний до препятствий составляют 3,2 см и 3,0 см
соответственно с использованием порогового метода и НС для выборки,
которая составляет более 300 значений расстояний до точек препятствия.
Препятствия (на рисунке 4.9 находятся на расстоянии более 2000 мм
относительно начального положения АМР) отражают поверхность среды, по
которой перемещается АМР. Такие препятствия могут быть отброшены за счет
введения интервала допустимых значений координаты высоты, который
85
позволяет
АМР
осуществлять
беспрепятственную
навигацию.
Т.е.
на
горизонтальной поверхности препятствием считается то значение точек ЛКС,
которое находится в пределах допустимого интервала. При этом верхняя
граница интервала задается высотой АМР, а нижняя – его проходимостью.
а)
б)
Рисунок 3.9 – Карта среды: а) вид сверху; б) 3D модель среды
Разработанное программное обеспечение метода на основе обработки
черно-белых
изображений
видеокамеры
Ganz
EMH200
обеспечивает
бесконтактное измерение расстояний до препятствий и их размеры в
трехмерном пространстве. Это позволяет в реальном времени отслеживать
изменения в среде оперирования АМР и избежать столкновений.
86
ВЫВОДЫ
В
магистерской
совершенствования
диссертации
существующих
и
решена
актуальная
разработка
новых
задача
моделей
и
интеллектуальных средств адаптивного управления автономным мобильным
роботом
с
адекватного
использованием
перемещения
элементов
мобильного
искусственного
робота
в
интеллекта
условиях
для
частичной
неопределенности в сложных неструктурированных средах.
Анализ известных средств навигации, глобальных и локальных методов
навигации и моделей управления автономным мобильным роботом показал, что
на сегодняшний день отсутствуют технические решения, которые позволяют
роботу достигать цели перемещения в условиях изменения среды при
глобальной навигации, а также при наличии тупиковых ситуаций при
локальной навигации, что приводит к необходимости разработки новых и
усовершенствования существующих моделей и интеллектуальных средств
управления с возможностью адаптации к сложной неструктурированной среде.
Исследован и усовершенствован метод проведения маневров автономного
мобильного робота с помощью элементов искусственного интеллекта, а именно
нейронных сетей, в котором за счет адаптивного формирования обучающей
выборки нейронной сети обеспечено повышение вероятности выполнения
маневров на 35-45 %.
На основе анализа потоков данных и функциональных задач автономного
мобильного робота усовершенствована модель интеллектуальной системы
управления автономным мобильным роботом в условиях динамических
изменений среды.
Обоснована структура программных и аппаратных средств системы
управления роботом. Разработано алгоритмическое и программное обеспечение
основных компонентов системы управления автономного мобильного робота.
Проведенное имитационное моделирование на АМР Pioneer P2-DX,
AmigoBot, Robotino и Khefera подтвердили выполнение критерия выхода на
87
цель перемещения и адаптацию разработанных интеллектуальных средств к
сложным динамическим условий функционирования автономных мобильных
роботов.
88
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. Everett H.R. Sensors for Mobile Robots: Theory and Application,
Wellesley / H.R. Everett. – MA: A.K. Peters, Ltd, 2005, 528 p.
2. Белда Игнаси Разум, машины и математика. – М.: DeAgostini, 2014.–
160 с.
3. Юревич Е.И. Основы робототехники. – СПб.: БХВ-Петербург, 2018. –
304 с.
4. Castellanos J.A. Mobile Robot Localization and Map Building: a
Multisensor Fusion Approach / J.A.Castellanos, J.D.Tardos
Boston Kluwer
Academic Publishers, 2010 – 205 p.
5. Kortenkamp D. Artificial Intelligence and mobile robots, Case Studies of
Successful Robot Systems / D.Kortenkamp, R.Bonasso, R.Murphy. – AAAI Press/
The MIT Press, 2012. – 400 p.
6. Omidvar O. Neural Systems For Robotics / O.Omidvar, P.van der Smagt. –
San Diego, Academic Press, 2007. – 346 p.
7. Зенкевич С. Управление роботами / С.Зенкевич, А.Ющенко. – М.:
МГТУ им.Н.Э.Баумана, 2000, 400 с.
8. Konolige K. A gradient method for realtime robot control [Электронный
ресурс] / K.Konolige // Proc. of IEEE/RSJ Intern. Conf. on Intelligent Robots and
Systems.
–
–
2017.
Режим
доступа:
http://www.ai.sri.com/~konolige/papers/gradient.pdf.
9. MRIT: Mobile Robotics Interactive Tool. Technical Report – Sevillia,
Spain. – 2012, 34 p.
10. Kamon I., Rimon E., Rivlin E. A new range-sensor based globally
convergent navigation algorithm for mobile robot / I.Kamon, E.Rimon, E.Rivlin. –
Technical Report. – 2009. – 28 p.
11. Скворцов А.В. Триангуляция Делоне и её применение / А.В.Скворцов
– Томск: Изд-во Том. ун-та, 2002.–128 с.
12. Алгоритмы триангуляции // Информационные системы. Нижний
89
Новгород у-т, 2011. – 154 с.
13. Voros, J. Low-cost implementation of distance maps for path planning
using matrix guadtrees and octrees // Robotics and Computer Integrated
Manufacturing. – 2016, Vol. 17.- pp. 447-459.
14. Квадродеревья и октодеревья [Электронный ресурс]. Режим доступа:
http://loi.sscc.ru/gis/QuadTree/QuadTree.html. – Загл. с экрана. 15.03.2017
15. Graf B., Hostalet Wandosell J. M. Flexible Path Planning for
Nonholonomic Mobile Robots / B.Graf, J.M.Hostalet Wandosell // Proc. of The
fourth European workshop on advanced mobile robots (EUROBOT'01). Lund,
(Sweden). 2001. – P.199-206.
16. Entertainment Robotics: Examples, Key Technologies and Perspectives,
Birgit Graf, Oliver Barth, 2012, 34 p.
17. W. B. Tong Paul Cohen A Smart FuzzBug in an Unknown Environment //
Fuzzy Sytem, Vol.1, 2008, 14-23 p.
18. Головко В.А. Нейроинтеллект: Теория и применения. Книга 1.
Организация и обучение нейронных сетей с прямыми и обратными связями /
В.А. Головко– Брест: БПИ, 1999. – 260с.
19. Kai-Hui Chi, Min-Fan Ricky Lee Obstacle avoidance in mobile robot
using Neural Network [Электронный ресурс] / Kai-Hui Chi, Min-Fan Ricky Lee //
IEEE
Xplore
Digital
–
Library.
2011.
–
Режим
доступа:
http://ieeexplore.ieee.org/document/5768815/.
20. Koval V. Proc. of the Third IEEE International Workshop on Intelligent
Data Acquisition and Advanced Computing Systems: Technology and Applications
(IDAACS’2005) / V.Koval, O.Adamiv. – Sofia (Bulgaria). – 2005. – Р. 120-124.
21. Аналитический обзор существующих и перспективных систем
навигации наземных подвижных объектов [Электронный ресурс] / 03.10.2016. –
Режим доступа: http://best-deals.ru/?p=9
22. Информационно-аналитический центр координатно-временного и
навигационного обеспечения (ИАЦ КВНО) ФГУП ЦНИИМАШ [Электронный
90
ресурс] / – Режим доступа: https://www.glonass-iac.ru/. – Заглавие с экрана.
21.12.2016
23. "Global radionavigation – the next 50 years and beyond". Benkers John M.
J., Navigation. 2000. 53, №2. – С. 207-214
24. "La navigation par satellite, le point de vue des utilisateurs europeens".
Bara J. M., Navigation (France). 2000. 48, №191 – С. 69-75.
25. Современные навигационные спутниковые системы [Электронный
ресурс] / – Режим доступа: https://www.glonass-iac.ru/guide/gnss/index.php. –
Заглавие с экрана. 12.01.2017
26. ГОСТ Р 54119-2010 The Global Navigation Satellite Systems. Receiver
equipment
GNSS
GLONASS/GPS/GALILEO
shipborne
multisystems,
multichannels. Technical requirements, test methods and required test results
(12.01.2011)
ресурс]
[Электронный
/
–
Режим
доступа:
http://docs.cntd.ru/document/gost-r-54119-2010
27. Глобальная
[Электронный
навигационная
ресурс]
/
–
спутниковая
Режим
доступа:
система
ГЛОНАСС
https://www.glonass-
iac.ru/guide/gnss/glonass.php
28. Qun Li, Michael DeRosa, and Daniela Rus, “Distributed algorithms for
guiding navigation across sensor networks,” in MOBICOM, 2013. MobiCom’03,
September 14–19, 2013, San Diego, California, USA.
29. Юдинцев Б.С. Интеллектуальная система планирования траекторий
мобильных роботов, построенная на сети Хопфилда [Электронный ресурс] /
Б.С.Юдинцев, О.В.Даринцев // Современные проблемы науки и образования. –
2014.
–
№
4.
–
Режим
доступа:
https://www.science-
education.ru/pdf/2014/4/361.pdf
30. Техническое зрение роботов /В.И.Мошкин, А.А.Петров, В.С.Титов,
Ю.Г. Якушенков/Под. ред. Ю.Г. Якушенкова. - М.Машиностроение,1990. –
272с.
91
ПРИЛОЖЕНИЕ А
Листинги программ
А.1
Програмное
обеспечение
имитационного
моделирлования
нейросетевого метода выполнения маневров АМР
clear all;
Out_Input1=0;
while Out_Input1==0;
echo off
Out_Input=0;
while Out_Input==0;
answer = inputdlg({'File name of training samples ', 'Sum-squared error goal:', 'Max.
number of epoch to train Neural Network:',...
'Struct. of Neural Network','Size of Video matrix[rows columns]'},...
'Phone',1,{'road_1.txt','0.00001','5000','25 10 13','5 5'});
if isempty(answer)
button
=
questdlg('Do
you
want
to
continue?','Continue
Operation','Yes','No','Help','No');
if strcmp(button,'Yes')
elseif strcmp(button,'No')
Quit;
end
else
Out_Input=1;
end
end
Input_File = answer{1};
train_accuracy = str2num(answer{2});
train_epoch = str2num(answer{3});
Stru_Neur = str2num(answer{4});
Video_matrix_size=str2num(answer{5});
%noise_range = str2num(answer{6});
%max_test=str2num(answer{7});
road=dlmread(Input_File,' ')';
%
targets=eye(size(road,2));
%
NEWFF
- Inititializes feed-forward networks.
%
TRAINGDX - Trains a feed-forward network with faster backpropagation.
%
SIM
- Simulates feed-forward networks.
[R,Q] = size(road);
% [S2,Q] = size(targets);
%
DEFINING THE NETWORK
net
=
newff(minmax(road),Stru_Neur(2:3),{'logsig'
'logsig'},'traingdx');%traingda');%traingdx');
net.LW{2,1} = net.LW{2,1}*0.001;
net.b{2} = net.b{2}*0.01;
net.performFcn = 'sse';
% Sum-Squared Error performance function
net.trainParam.goal = train_accuracy;
% Sum-squared error goal.
net.trainParam.show = 20;
% Frequency of progress displays (in epochs).
net.trainParam.epochs = train_epoch; % Maximum number of epochs to train.
net.trainParam.mc = 0.1;
% Momentum constant.
%pause % Strike any key to train the network...
P = road;
%T1 = [1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12]';
T1 =[1 0 0 0 0 0 0 0 0 0 0 0 0;...
0 1 0 0 0 0 0 0 0 0 0 0 0;...
0 0 1 0 0 0 0 0 0 0 0 0 0;...
0 0 0 1 0 0 0 0 0 0 0 0 0;...
0 1 0 0 0 0 0 0 0 0 0 0 0;...
0 0 1 0 0 0 0 0 0 0 0 0 0;...
0 0 0 1 0 0 1 0 0 0 0 0 0;...
0 0 0 1 0 0 0 1 0 0 0 0 0;...
0 0 0 0 1 0 0 0 1 0 0 0 0;...
0 1 0 0 0 0 0 0 0 0 0 0 0;...
0 0 1 0 0 0 0 0 0 0 1 0 0;...
0 0 0 0 0 1 0 0 0 0 0 1 0;...
92
0 0 0 0 0 0 1 0 0 0 0 0 1;...
0 0 0 0 0 0 0 1 0 0 0 0 0;...
0 0 0 0 0 0 0 0 1 0 0 0 0;...
0 1 0 0 0 0 0 0 0 0 0 0 0;...
0 0 1 0 0 0 0 0 0 0 0 0 0;...
0 0 0 1 0 0 0 0 0 1 0 0 0;...
0 0 0 1 0 0 0 0 0 0 1 0 0;...
0 0 0 0 0 0 0 1 0 0 0 0 0;...
0 0 0 0 1 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0 1 0;...
0 0 0 0 0 0 0 0 0 0 0 0 1;...
0 0 0 0 0 0 0 0 0 0 0 1 0;...
0 0 0 0 0 0 0 0 0 0 0 0 1];
T=T1';
tic;
[net,tr] = train(net,P,T);
%title('Sum Squared Error of Neural Network \t');
%xlabel('Epoch');
%xlabel(' Time ', t);
%ylabel('Sum Squared Error');
toc;
%Out_Input=0;
%while Out_Input==0;
button
=
questdlg('Do
you
want
Operation','Yes','No','Help','No');
if strcmp(button,'Yes')
Out_Input1=0;
elseif strcmp(button,'No')
Out_Input1=1;
end
end
%print
%legend ( t , 'rerer');
%sim
m=50;
n=200;
for i = 1:m
for j = 1:n
B(i,j) = 0;
end
end
Out_Input1=0;
while Out_Input1==0;% ctykl sho povtorue ruh robota
m=50;
n=200;
for i = 1:m
for j = 1:n
C(i,j) = 0;
end
end
C(25,1) = 1;
i=25;
j=1;
while j < 200 %| (j ~= 0) | (j ~= 50)
K1=randperm(3); % matryctia
K=K1(1,1);
if (K == 1) & ( C(i-1,j+1) ~= 1 )
C(i-1,j+1)=1;
i=i-1;
j=j+1;
end
if ( K == 2 ) & ( C(i,j+1) ~= 1 )
C(i,j+1)=1;
j=j+1;
end
if ( K == 3 ) & ( C(i+1,j+1) ~= 1 )
C(i+1,j+1)=1;
i=i+1;
j=j+1;
end
% switch K
% case 1,C(i,j-1)=1
% case 2,C(i+1,j-1)=1
% case 3,C(i+1,j+1)=1
% case 4,C(i+1,j)=1
% case 5,C(i,j+1)=1
%end
end
93
to
train
again?','Continue
figure
pause
% Strike any key to train the network...
%figure;
%subplot(2,1,1);
%imshow(C);
i=25;
j=1;
while (j<197) & (i<48) & (i>1)
ik=i;
jk=j;
%for k=1:3
%
for m=1:3
%
% V(k,m)=0;
r=1;
for k=1:5
for m=1:5
V(r)=C(i-1, j);
j=j+1;
r=r+1;
end
i=i+1;
j=j-5;
end
%------ matryctia, odyn kadr kamery, vyvоd na ekran
i=1;
for k=1:5
for m=1:5
G(k,m)=V(i);
i=i+1;
end
end
V;
subplot(1,2,1);
imshow(G);
% - end vyvodu
V1 = V';
[t,x,y]=sim(net,V1);
[C1,W] = max(t);
switch W
case {1}
i=ik-2; j=jk+2;
case {2}
i=ik-2; j=jk+4;
case {3}
i=ik+2; j=jk+4;
case {4}
i=ik; j=jk+4;
case {5}
i=ik+1; j=jk+4;
case {6}
i=ik+2; j=jk+2;
case {7}
i=ik-2; j=jk+3;
case {8}
i=ik-1; j=jk+4;
case {9}
i=ik+2; j=jk+3;
case {10}
i=ik+1; j=jk+4;
case {11}
i=ik-1; j=jk+4;
case {12}
i=ik-2; j=jk+1;
case {13}
i=ik+2; j=jk+1;
% otherwise
% i=ik+1;
% j=jk+1;
end
j; i;
B(i,j)=1;
% - risuu napravlenie dvigenia robota c uchetom NN
for k=1:5
for m=1:5
GN(k,m)=0;
94
end
end
GN(i-ik+3,j-jk+1)=1;
subplot(1,2,2);
imshow(GN);
pause
end
figure;
subplot(2,1,1);
imshow(C);
B(50,1)=0;
subplot(2,1,2);
imshow(B);
%-vidnosne vidhylennia
h=0;
for j = 1:200
for i = 1:50
if B(i,j) == 1
realin= i;
for k = 1:50
if C(k,j) == 1
h=h+1;
V2(h) = (abs((k-realin)/k))*100;
end
end
end
end
end
figure;
plot(V2);
%set(gca,'XTick',-pi:pi/2:pi)
%set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})=
%plot
pause;
button
=
questdlg('Do
you
want
Operation','Yes','No','Help','No');
if strcmp(button,'Yes')
Out_Input1=0;
m=50;
n=200;
for i = 1:m
for j = 1:n
B(i,j) = 0;
end
end
elseif strcmp(button,'No')
Out_Input1=1;
end
end
95
to
drive
again?','Continue
А.2
Листинг
функций
клиент-серверного
взаимодействия
функциональных блоков робота
function [Sonar, Count]=Get_Sonar_Readings(s);
Sonar=[]; Sonar(1)=0; Count=[]; j=1;
while length(Sonar)<8 || min(Sonar)==0
k=1;
while (k==1)
h=1;
read1=fread(s,3);
while (h==1)
if (read1(1) == 250) && (read1(2) == 251) && (read1(3)>25)
read2=fread(s,read1(3));
h=2;
else
read1(1)=read1(2);
read1(2)=read1(3);
read1(3)=fread(s,1);
end;
end;
for i=1:read1(3)-2)
read3(i)=read2(i);
end;
[Sum_High,Sum_Low]=Check_Sum(read3);
if (Sum_High ~= read2(read1(3)-1)) && (Sum_Low ~= read2(read1(3)))
else k=2
end;
end;
if read3(20)>0 && read3(20)<9
for k=21:3:(21+3*read3(20)-3)
Hight_bite=dec2bin(read3(k+2),8);
Low_bite=dec2bin(read3(k+1),8);
t_rez=[Hight_bite Low_bite];
z_rez=bin2dec(t_rez);
Sonar(read3(k)+1)=z_rez;
Count(j) = read3(k)+1;
j = j+1;
end;fwrite(s,High_byte);
end;
function SendPacket(s,My_Byte)
fwrite(s,hex2dec('FA'));
fwrite(s,hex2dec('FB'));
fwrite(s,length(My_Byte)+2);
for i=1:length(My_Byte)
fwrite(s,My_Byte(i));
end
[High_byte,Low_byte]=Check_Sum(My_Byte);
fwrite(s,High_byte);
fwrite(s,Low_byte);
96
А.3 Описание представления среды для АРМ Pioneer P2-DX
2D-Map
Resolution: 0
LineMinPos: -5000 -5000
LineMaxPos: 8508 5000
NumLines: 10
Cairn: ForbiddenArea -2000 -2000 0 "" ICON "" -2000 -2000 3000 2000
Cairn: ForbiddenArea 654 2004 0 "" ICON "" 654 2004 2932 4177
Cairn: ForbiddenArea 3877 -3950 0 "" ICON "" 3877 -3950 7026 -2376
Cairn: ForbiddenArea 5520 -1288 0 "" ICON "" 5520 -1288 5520 -1288
Cairn: ForbiddenArea 5616 -1288 0 "" ICON "" 5616 -1288 5616 -1288
Cairn: ForbiddenArea 5134 -1031 0 "" ICON "" 5134 -1031 5134 -1031
Cairn: ForbiddenArea 7030 -3955 0 "" ICON "" 7030 -3955 8315 1024
Cairn: ForbiddenArea 4331 -935 0 "" ICON "" 4331 -935 4331 -935
Cairn: ForbiddenArea 8283 -3922 0 "" ICON "" 8283 -3922 8283 -3922
Cairn: ForbiddenArea 2500 2502 0 "" ICON "" 2500 2502 2500 2502
Cairn: ForbiddenLine -4925 -9050 0 "" ICON "" -4925 -9050 10032 -9050
Cairn: Goal 6084 -8359 0 "" ICON "Goal"
Cairn: RobotHome -4172 4366 0 "" ICON ""
LINES
-5000 5000 -5000 -5000
-2397 -835 -2397 -835
-2397 -835 -2397 -835
-2000 2000 -2000 -2000
-2000 -2000 3000 -2000
3000 -2000 3000 2000
3000 2000 -2000 2000
5713 3433 4460 542
8090 2919 8508 1217
4781 1988 4781 1988
DATA
97
А.4 Листинг програмного модуля управления АМР для задачи
выполнения маневров
clear all;
Out_Input1=0;
while Out_Input1==0;
echo off
Out_Input=0;
while Out_Input==0;
answer = inputdlg({'File name of training samples ', 'Sum-squared error goal:',
'Max. number of epoch to train Neural Network:',...
'Struct. of Neural Network','Size of Video matrix[rows columns]'},...
'Phone',1,{'road_1.txt','0.00001','5000','25 10 7','5 5'});
if isempty(answer)
button
=
questdlg('Do
you
want
to
continue?','Continue
Operation','Yes','No','Help','No');
if strcmp(button,'Yes')
elseif strcmp(button,'No')
Quit;
end
else
Out_Input=1;
end
end
Input_File = answer{1};
train_accuracy = str2num(answer{2});
train_epoch = str2num(answer{3});
Stru_Neur = str2num(answer{4});
Video_matrix_size=str2num(answer{5});
%noise_range = str2num(answer{6});
%max_test=str2num(answer{7});
road=dlmread(Input_File,' ')';
%
targets=eye(size(road,2));
%
NEWFF
- Inititializes feed-forward networks.
%
TRAINGDX - Trains a feed-forward network with faster backpropagation.
%
SIM
- Simulates feed-forward networks.
[R,Q] = size(road);
%
DEFINING THE NETWORK
net
=
newff(minmax(road),Stru_Neur(2:3),{'logsig'
'logsig'},'trainlm');%
%traingda');%traingdx');
net.LW{2,1} = net.LW{2,1}*0.001;
net.b{2} = net.b{2}*0.01;
net.performFcn = 'sse';
% Sum-Squared Error performance function
net.trainParam.goal = train_accuracy;
% Sum-squared error goal.
net.trainParam.show = 20;
% Frequency of progress displays (in epochs).
net.trainParam.epochs = train_epoch; % Maximum number of epochs to train.
net.trainParam.mc = 0.1;
% Momentum constant.
%pause % Strike any key to train the network...
P = road;
T1 =[0 1 0 0 0 0 0;...
0 0 1 0 0 0 0;...
0 0 0 0 1 0 0;...
0 0 0 1 0 0 0;...
0 0 1 0 0 0 0;...
0 0 0 0 1 0 0;...
0 0 0 1 0 0 0;...
0 0 0 1 0 0 0;...
0 0 0 0 1 0 0;...
0 0 1 0 0 0 0;...
0 0 0 0 1 0 0;...
0 0 0 0 0 1 0;...
0 1 0 0 0 0 0;...
0 0 0 1 0 0 0;...
0 0 0 0 0 1 0;...
0 0 1 0 0 0 0;...
0 0 0 0 1 0 0;...
98
0 0 0 1 0 0 0;...
0 0 0 1 0 0 0;...
0 0 0 1 0 0 0;...
0 0 0 1 0 0 0;...
0 1 0 0 0 0 0;...
0 0 0 0 0 1 0;...
1 0 0 0 0 0 0;...
0 0 0 0 0 0 1];
T=T1';
tic;
[net,tr] = train(net,P,T);
% Temp
%V1=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0];
%V1=V1';
%[t,x,y]=sim(net,V1);
%End temp
% Start Robot
pause;
figure;
if ~isempty(instrfind('Status','open'))
fclose(instrfind('Status','open'));
end
s = tcpip('localhost',8101);
%Connect the TCP/IP object to the host. fopen(t)
%Write to the host and read from the host. fwrite(t,65:74)
%A = fread(t, 10);
%Disconnect the TCP/IP object from the host and stop the echo server. fclose(t)
%echotcpip('off')
fopen(s);
%----- Synhronization ------SendPacket(s,[0]);
SendPacket(s,[1]);
SendPacket(s,[2]);
%------------ After Synchronization ---------------SendPacket(s,[1]); %----- Start Controller OPEN
SendPacket(s,[4,hex2dec('3B'),1,0]);%----- Enable the motors
SendPacket(s,[28,hex2dec('3B'),0,0]);%----- Disnable sonar
%SendPacket(s,[5,hex2dec('3B'),10,0]);% ----------Set acceleration in mm/sec^2
%SendPacket(s,[23,hex2dec('3B'),10,0]);% ----------Set rotation acceleration in
degrees/sec^2
%SendPacket(s,[6,hex2dec('3B'),100,0]);% ---Set maximum velocity in mm/sec
%SendPacket(s,[10,hex2dec('3B'),10,0]);% ---Set maximum rotation velocity in
degrees/sec^2
indicator = 1;
while indicator > 0
pause(5);
% SEGMENTATION
z=vfm('grab',1);
subplot(1,6,1), imshow(z), title('real image');
k=edge(z(:,:,1),'canny',graythresh(z(:,:,1)));
subplot(1,6,2), imshow(k), title('segmented image');
%FOR FILLING THE HORIZONTAL ROUTE
%[counts,x] = imhist(...) returns the histogram counts in counts and the bin
locations in x so that stem(x,counts) shows the histogram.
%For indexed images, it returns the histogram counts for each colormap entry;
%the length of counts is the same as the length of the colormap.
for i = 2:287
g=1;
f(1)=0;
f(2)=0;
f(3)=0;
f(4)=0;
for j = 2:351
if k(i,j)==1
f(g)=j;
g=g+1;
end;
end;
if f(4)==0
if f(2)>0
99
k(i,f(1):f(2))=1;
end;
if f(2)==0 & f(1)>0 & f(1)<170
k(i,1:f(1))=1;
end;
%
if f(2)>0 & f(1)>0 & f(1)<170 & k(i,j)==k(i,j+1)
%
k(i,1:f(1))=1;
% end;
if f(2)==0 & f(1)>0 & f(1)>180
k(i,f(1):352)=1;
end;
%if f(2)==0 & f(1)>0 & f(1)>180 & k(i,j)==k(i,j+1)
%
k(i,f(1):352)=1;
%end;
if k(i,j)==k(i,j+1) & f(3)>0
k(i,f(2):f(3))=1;
end;
end;
end;
subplot(1,6,3), imshow(k), title('route');;
% END SEGMENTATION
% RESIZE
C=imresize(k,[5 5]);
subplot(1,6,4),imshow(C,'notruesize'), title('matrix 5:5');;
% END RESIZE
r=1;
indicator = 0; % SHOWS EMPTY IMAGE
for k=1:5
for m=1:5
K (k,m) = C(6-m,k);
G(k,m)=0;
if C(6-m,k)
V(r)=1;
indicator = indicator+1;
else V(r)=0
end;
r=r+1;
end
end
subplot(1,6,5), imshow(K,'notruesize'), title('data for NN');
if indicator < 1
pause;
end;% pause if image from camera is empty
%------ matryctia, odyn kadr kamery, vyvоd na ekran
V1 = V'; % Potribno povernuty na 90 gr malunok !!!!!!!!!!
[t,x,y]=sim(net,V1);
[C1,W] = max(t);
switch W
case {1}
G(1,1)=1
case {2}
G(1,3)=1
case {3}
G(1,5)=1
case {4}
G(3,5)=1
case {5}
G(5,5)=1
case {6}
G(5,3)=1
case {7}
G(5,1)=1
end
subplot(1,6,6), imshow(G,'notruesize');
pause(3);
switch W
case {1}
SendPacket(s,[9,hex2dec('1B'),17,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('1B'),17,0]);%----- Rotate at 30 deg/sec
pause(3);
100
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),230,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('3B'),30,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('3B'),30,0]);%----- Rotate at 90 deg/sec
pause(2);
SendPacket(s,[9,hex2dec('3B'),32,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('3B'),32,0]);%----- Rotate at 90 deg/sec
case {2}
SendPacket(s,[9,hex2dec('1B'),22,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('1B'),22,0]);%----- Rotate at 30 deg/sec
pause(3);
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),150,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('3B'),90,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('3B'),90,0]);%----- Rotate at 90 deg/sec
case {3}
SendPacket(s,[9,hex2dec('1B'),10,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('1B'),10,0]);%----- Rotate at 30 deg/sec
pause(3);
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),120,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('3B'),25,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('3B'),25,0]);%----- Rotate at 90 deg/sec
case {4}
SendPacket(s,[11,hex2dec('3B'),140,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),140,0]);%---- Move in mm
case {5}
SendPacket(s,[9,hex2dec('3B'),10,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('3B'),10,0]);%----- Rotate at 30 deg/sec
pause(3);
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),120,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('1B'),25,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('1B'),25,0]);%----- Rotate at 90 deg/sec
case {6}
SendPacket(s,[9,hex2dec('3B'),22,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('3B'),22,0]);%----- Rotate at 30 deg/sec
pause(3);
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),150,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('1B'),90,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('1B'),90,0]);%----- Rotate at 90 deg/sec
case {7}
SendPacket(s,[9,hex2dec('3B'),17,0]);%----- Rotate at 30 deg/sec
SendPacket(s,[21,hex2dec('3B'),17,0]);%----- Rotate at 30 deg/sec
pause(3);
SendPacket(s,[11,hex2dec('3B'),100,0]);%----- Set velocity in
commands)
SendPacket(s,[8,hex2dec('3B'),230,0]);%---- Move in mm
pause(3);
%SendPacket(s,[12,hex2dec('3B'),90,0]);
SendPacket(s,[9,hex2dec('1B'),30,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('1B'),30,0]);%----- Rotate at 90 deg/sec
pause(2);
101
mm/sec
(max
6
mm/sec
(max
6
mm/sec
(max
6
mm/sec
(max
6
mm/sec
(max
6
mm/sec
(max
6
mm/sec
(max
6
ec
ec
SendPacket(s,[9,hex2dec('1B'),32,0]);%----- Rotate at 90 deg/sec
SendPacket(s,[21,hex2dec('1B'),32,0]);%----- Rotate at 90 deg/sec
end;
end;
end
102
end;
А.5 Листинг модуля локализации АМР с помощью одометрических
устройств
function [poz]=pos(s);% pozytcia (x(mm),y(mm),Th)
poz=[];
k=1;
flushinput(s);
while (k==1) %-Perevirka na pravul'nist' formyvannja kontrol'noi symu
h=1;
read1=fread(s,3);
while (h==1)%-cukl perevirku zagolovka
%disp(read1);%-Vvuvid znachenja "read1"
if (read1(1) == 250) && (read1(2) == 251) && (read1(3)>25) %&&
(read1(3)<55)%-perevirka zagolovka pakety
read2=fread(s,read1(3)); %-prusvoenja "read2" znachenja "read1(3)"
%disp(read2);%-Vvuvid znachenja "read2"
h=2;
else
read1(1)=read1(2);%- cukl zagolovka z robota
read1(2)=read1(3);
read1(3)=fread(s,1);
end;
end;%- zakin4enja 2 while (h==1)
for i=1:read1(3)-2%- "read1(3)" bez 2 ostanjix znachen' (chek_sum)
read3(i)=read2(i);%-"read3" bez chek_sum prusvouem "read3(i)"
end;
[Sum_High,Sum_Low]=Check_Sum(read3);
if (Sum_High ~= read2(read1(3)-1)) && (Sum_Low ~= read2(read1(3)))%-perevirka
chek_sum
%disp('ERROR');
else k=2;
end;
end;%- zakin4enja 1 while (k==1)
%
if read3(20)>0 && read3(20)<9
i=0; %couter for x,y,th position
for k=2:2:6
Hight_bite=dec2bin(read3(k+1),8);%- starwa 4astuna
Low_bite=dec2bin(read3(k),8);%- molodwa 4astuna
t_rez=[Hight_bite Low_bite];%- zednyemo dva po 8 v odun 16 rozrjadn
z_rez=bin2dec(t_rez);%- perevid v desjatkovu sustemy
i=i+1;
poz(i)=z_rez;
end;
disp(poz);
103
А.6 Листинг программных модулей градиентного метода навигации для
АМР Khepera II.
function navigate(port,baud,environment_size)
% maze(port,baud)
% port = serial port to communicate with (port<0 ==> simulated robot, port>=0 ==>
real robot
% baud = baud rate
% environment_size = size of environment
if(nargin<3) environment_size=5; end;
if(nargin<2) baud=9600; end;
if(nargin<1) port=-1; end;
if port<0 % only if this is a simulated robot
mr_arena(mr_generate_environment(environmetn_size,environment_size)); % set up
a new arena using the mr_generate_environment function
end;
ref=mr_kopen([port,baud,1]);
reflex = 0;
speed = [1 1];
loops=0; % for calculating loops/second
t0=clock; % for calculating loops/second
kSetEncoders(ref,0,0);
lights=kAmbient(ref);
while (min(lights)>55) % stop when robot gets near the light
loops=loops+1; % for calculating loops/second
reflex = kProximity(ref);
weightsL = [-1 4 0 3 0 0 0 0 0];
weightsR = [ 3 0 0 -8 0 0 0 0 0];
speed = calcspd(weightsL,weightsR,reflex);
if speed==[0 0] speed=[1 1]; end;
kSetSpeed(ref,speed(1),speed(2));
mov_err = kGetStatus(ref);
backup(ref,[mov_err(3) mov_err(6)],speed);
lights = kAmbient(ref);
end;
kSetSpeed(ref,0,0);
% calculate stats
fprintf('%1.0f
seconds
simulated
in
%1.0f
seconds
(%3.0f%%
of
real
time)\n',mr_ktime(port),etime(clock,t0),(mr_ktime(port)/etime(clock,t0))*100)
fprintf('%1.1f loops / second\n',loops/mr_ktime(port))
% close port
mr_kclose(ref);
function out = calcspd(weightsL, weightsR, reflex)
mL = weightsL(1);
mR = weightsR(1);
for i=2:9
mL = weightsL(i)*(1/1023)*reflex(i-1)+mL;
mR = weightsR(i)*(1/1023)*reflex(i-1)+mR;
end
out = [round(mL) round(mR)];
function R = backup(ref,mov_err,spd)
if mov_err>spd*0.8
% back up
kSetEncoders(ref,0,0);
kMoveTo(ref,-100,-500);
%
mr_pause(1);
status=kGetStatus(ref);
while(status(1)+status(2)<2)
status=kGetStatus(ref);
end;
end;
function obstacle_avoidence (port,baud,time)
% avoid(port,baud,time)
% port = serial port to communicate with (port<0 ==> simulated robot, port>=0 ==>
real robot
% baud = baud rate
% time = time to run behaviour
104
if nargin<3 time=60; end;
if nargin<2 baud=9600; end;
if nargin<1 port=-1; end;
ref=mr_kopen([port,baud,1]);
kSetEncoders(ref,0,0);
reflex = 0;
speed = [10 10];
t0=clock;
loops=0;
while (mr_ktime(port)<time)
loops=loops+1;
reflex = kProximity(ref);
lights = kAmbient(ref);
weightsL = [10 2 4 6 6 4 2 4 4];
weightsR = [10 -2 -4 -6 -6 -4 -2 4 4];
speed = calcSpd(weightsL,weightsR,reflex)/2;
kSetSpeed(ref,speed(1),speed(2));
end;
%kGetEncoders(ref)
t=etime(clock,t0);
disp(sprintf('%.1f
loops
in
%.1f
seconds
(%.0f%%)\n',loops,t,loops/t,(time/t)*100));
kSetSpeed(ref,0,0);
mr_kclose(ref);
function out = calcSpd(weightsL, weightsR, reflex)
mL = weightsL(1);
mR = weightsR(1);
for i=2:9
mL = weightsL(i)*(1/400)*reflex(i-1)+mL;
mR = weightsR(i)*(1/400)*reflex(i-1)+mR;
end
if sum(reflex(1:4)) > sum(reflex(5:8))
out = [round(mL) round(mR)];
else
out = [round(mR) round(mL)];
end;
105
=
%.1f
loops/second
Отзывы:
Авторизуйтесь, чтобы оставить отзыв