Научная статья на тему 'Реализация алгоритмов группового управления на языке Java в среде ОС «Эльбрус»'

Реализация алгоритмов группового управления на языке Java в среде ОС «Эльбрус» Текст научной статьи по специальности «Математика»

CC BY
205
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОДЕЛИРОВАНИЕ ДВИЖЕНИЯ / ПОИСК ПУТИ НА ГРАФЕ / МОДЕЛИРОВАНИЕ АЛГОРИТМОВ ГРУППОВОГО УПРАВЛЕНИЯ

Аннотация научной статьи по математике, автор научной работы — Бочаров Никита Алексеевич, Парамонов Николай Борисович, Сапачев Илья Денисович

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

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

Текст научной работы на тему «Реализация алгоритмов группового управления на языке Java в среде ОС «Эльбрус»»

УДК 004.94

Бочаров Н.А.1, Парамонов Н.Б.2, Сапачев И.Д.1

1 АО «МЦСТ», Москва, Россия 2 ПАО «ИНЭУМ им И.С. Брука», Москва, Россия

РЕАЛИЗАЦИЯ АЛГОРИТМОВ ГРУППОВОГО УПРАВЛЕНИЯ НА ЯЗЫКЕ JAVA В

СРЕДЕ ОС «ЭЛЬБРУС»

АННОТАЦИЯ

Цель работы — разработка программного комплекса для отладки и демонстрации задач управления движением групп роботов, а также наблюдения за группой роботов с использованием нескольких камер с использованием Java в среде «Эльбрус». Показана возможность использования вычислительных средств ряда «Эльбрус» в качестве вычислителей для задач управления и наблюдения за группой роботов.

КЛЮЧЕВЫЕ СЛОВА

Моделирование движения; поиск пути на графе; моделирование алгоритмов группового управления.

Bocharov N.A.1, Paramonov N.B.2, Sapachev I.D.1

1 «MCST», Moscow, Russia 2 «INEUM im. I.S. Bruka», Moscow, Russia

IMPLEMENTATION OF ALGORITHMS OF GROUP CONTROL ON JAVA LANGUAGE IN

OS «ELBRUS» ENVIRONMENT

ABSCTRACT

The purpose of this work is developing the software for debugging and demonstration of tasks of motion control of robots group and monitoring a robots group using multiple cameras using Java language in the OS «Elbrus» environment. The article displays possibility of using computer systems of «Elbrus» series as computer for robots control and monitoring tasks.

KEYWORDS

Motion modelling; search path on the graph; modelling algorithms of group control. Введение

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

Поскольку робототехника является одним из перспективных направлений применения вычислительных комплексов(ВК) и программного обеспечения семейства «Эльбрус» [1], то целью данной работы стала оценка возможностей существующих СВТ на базе микропроцессоров «Эльбрус» для систем управления РТК на колесных и гусеничных шасси, а так же создание модели алгоритмов для управления и наблюдения за группой роботов.

Результатом данной работы должен являться программный комплекс, позволяющий моделировать поведение группы автономных роботов на местности и моделировать работу группы средств наблюдения за роботами. Данный программный комплекс должен позволять определять временные и нагрузочные характеристики, которые позволят проводить работы по оптимизации программного обеспечения в ОС «Эльбрус».

Постановка задачи

В предыдущей работе [2] авторами было проведено моделирование алгоритмов поиска пути отдельным роботом и алгоритмов технического зрения. Движение робота было сведено к поиску пути на графе, соответственно был проведен анализ существующих алгоритмов поиска пути на графе. В качестве используемого алгоритма был выбран алгоритм А* с некоторыми изменениями в эвристической функции для учета дополнительных параметров. Для повышения реалистичности модели в нее был включен учет таких параметров робота, как: скорость, ускорение, радиус поворота, радиус обнаружения препятствий. В данной работе планировалось расширить данную модель для моделирования уже не одного, а группы из нескольких роботов.

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

Задача поиска пути

Задача поиска пути была сведена к задаче поиска пути на графе из узла-старта до узла-финиша [3, 4]. Пара (У^), Е^)) называется графом, если У^) — непустое конечное множество элементов, называемых узлами, а Е^) — конечное множество неупорядоченных пар различных элементов из У^), называемых ребрами [5]. При этом поиск необходимо осуществлять, учитывая проходимость различных опорных поверхностеи и радиус поворота робота.

Для задачи поиска пути роботом также необходимо учитывать длину пути, что можно обозначить через вес ребер. При этом, если робот может переместиться из точки А в точку В, то не обязательно, что он может и переместиться из точки В в точку А. Например, если точка А — это точка на открытои местности, а точка В — точка у стены с азимутом, направленным прямо в стену. Таким образом, для поставленнои задачи подходит использование взвешенного ориентированного графа.

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

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

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

Р2

Рисунок 1. Обход окружностей в одном направлении

Учет радиуса поворота происходит при построении траектории от узла к узлу. Соответсвенно, каждый узел, помимо координат, характеризовался еще и азимутом. Итоговая траектория между двумя узлами состоит из трех сегментов - двух дуг и отрезка прямой. При этом могут возникнуть два случая, различающиеся подсчетом основных точек: когда обе окружности обходятся в одном направлении и наоборот. Выбирается та, которая имеет наименьшую длину. Варианты обхода окружностей изображены на рисунках 1 и 2.

Рисунок 2. Обход окружностей в противоположных направлениях Задача расчета проходимости

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

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

Первыи метод формирует карту проходимости на основе загружаемои в робота карты местности. Карта местности отображает виды опорных поверхностей а карта проходимости отображает коэффициенты проходимости этих поверхностей

Второи метод анализирует реальную проходимость и меняет карту проходимости, если реальныи коэффициент отличен от коэффициента на карте.

Расчет карты проходимости

При расчете карты проходимости карта местности в формате Оре^^ееШар разбивается на квадраты, соответствующие размерам робота. В каждом таком квадрате считается среднии коэффициент проходимости по каждому пикселю. Если хотя бы один пиксель в этои области окажется непроходимым, тогда вся область считается непроходимои. Иначе, робот помечает эту область рассчитанным средним коэффициентом проходимости.

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

Рисунок 3. Пример карты местности и карты проходимости

Алгоритм поиска пути

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

Алгоритм А* считается одним из лучших алгоритмов поиска пути [6]. Он объединяет в себя достоинства двух алгоритмов: учет длины пути из алгоритма Деикстры и учет эвристическои функции из алгоритма «лучшии первьш».

Алгоритм А* [7] использует формулу эвристики, которои в общем случае имеет вид:

Цп^(п)+Цп),

где ^п) — значение оценки для узла п, g(п) — стоимость пути из узла-старта в узел п, ^п) — эвристическое приближение стоимости пути из узла п в узел-финиш.

Функция ^п) должна быть допустимои эвристическои оценкои, то есть не должна переоценивать расстояние до узла-финиша. Одним из способов задания такои функции является длина прямои, соединяющии узел п и узел-финиш.

Алгоритм работает аналогично алгоритму Деикстры, где вместо длины пути учитывается функция ^п), а когда узлу п1 устанавливается родитель п2, пересчитывается функция g(п) следующим образом:

g(n1) = g(п2) + d(n1, п2), где d(п1, п2) — расстояние между узлами п1 и п2.

Так как подразумевается использование различных опорных поверхностеи с разными коэффициентами проходимости и учет радиуса поворота, то функции g(п) и ^п) были изменены.

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

g(n)=g(n2)+d(n1, п2^(п1, п2)+г(п1, п2^(п1, п2), где d(п1, п2) — длина пути от узла п1 до узла п2, w(п1, п2) — вес ребра, соединяющего узлы п1 и п2, г(п1, п2) — суммарныи угол поворота в радианах ребра, соединяющего узлы п1 и п2.

Оценка ^п) рассчитывается как длина пути от узла п до узла финиша с учетом направлении узла п и узла финиша, умноженная на среднии вес. Среднии вес в данном случае рассчитывается как среднее значение веса в точках узла п и узла финиша.

Поиск пути группой роботов

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

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

На рисунке 4 изображено окно программы с группой из трех роботов.

Добавить робота Удалить робота Выбранный робот:

Выбор операции:

Поставить робота

Азимут робота: 297

90

180

270

• Установить финиш ' Установить финиш всем

Направление финиша: 160

90

180

270

Проходимость расчитана

Загрузка карт

Загрузить карту местности

Загрузить карту реальности

Рисунок 4. Окно программы с группой из трех роботов

Paths linking

Рисунок 5. Окно программы наблюдения за группой роботов

Наблюдение за группой роботов

Наблюдение за роботами осуществляется группой камер с такими различными параметрами, как радиус обзора и угол обзора. В данной модели предполагается, что отдельная камера способна отследить в своей области видимости отдельных роботов и вести их от момента въезда в область видимости до момента выезда из области видимости. Если робот выезжает из области видимости на любое время большее минимального кванта, воспринимаемого программой, то считается, что камера его «потеряла» и следующий въезд будет восприниматься как въезд другим роботом. Далее алгоритм поиска соответствий ищет точки въезда и выезда и областей видимости, которые могли бы принадлежать одному роботу. При поиске соответствий помимо местоположения учитываются такие характеристики роботов, как: скорость, ускорение и азимут. Если области видимости камер перекрываются, и робот проехал через это перекрытие хотя бы в одной точке, то соответствие между траекториями с камер определяется отдельно и однозначно. На рисунке 5 изображено окно программы с добавленными камерами, обнаруженными траекториями и некоторыми соответствиями.

Построение графа проходимости

Количество узлов

1Ше1 Соге-17-4700 Е1Ьгиэ-4С

Рисунок 6. Временные характеристики алгоритма построения графа проходимости

Рисунок 7. Временные характеристики алгоритма поиска пути

Тестирование

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

проведено сравнительное тестирование на платформах Intel и Эльбрус. Для задачи поиска пути ключевые этапы - это построение графа проходимости и поиск пути на на графе. Результаты представлены на рисунках 6 и 7. Тестирование на архитектуре Intel проводились на процессоре Intel Core-i7 47GG. Тестирование на архитектуре Эльбрус проводилось на ВК «Эльбрус-401 РС». Данньш вычислительныи комплекс представляет собои четырехпроцессорную систему с неравномерным доступом к памяти (NUMA). Каждыи процессор имеет по 4 ядра с тактовои частотои BGG МГц.

Заключение

В статье показано, что вычислительные средства ряда "Эльбрус" могут удовлетворять требованиям, предъявляемым РТК в области планирования маршрута и наблюдения за группои роботов. Показаны временные характеристики для соответствующих алгоритмов.

Использование отечественных вычислительных средств и сертифицированного ОПО "Эльбрус" позволяет говорить о перспективах решения задач импортозамещения в области робототехники.

Литература

1. Парамонов Н.Б., Ржевский Д.А., Перекатов В.И. Доверенная программно-аппаратная среда «Эльбрус» бортовых вычислительных средств робототехнических комплексов || Вопросы радиоэлектроники, сер. ЭВТ, 2G1S, вып. 1.

2. Н.А. Бочаров, И.Д. Сапачев, Н.Б. Парамонов. Макеты робототехнических комплексов на языке Джава в среде ОС «Эльбрус» : Материалы SB научной конференции МФТИ, 2З - 2B ноября 2G1S.

3. В.Е., Таланов В.А. Графы. Модели вычислений. Структуры данных. — Нижний Новгород: Издательство Нижегородского гос. университета, 2GGS. — 307 с.

4. Берж К. Теория графов и ее применения | Под ред. И. А. Вайнштейна. — Москва: Издательство иностранной литературы, 1962. — 320 с.

5. Уилсон Р. Введение в теорию графов. Пер с англ. М.: Мир, 1977. 208с.

6. Bryan Stout (оригинальная статья) Maxim Kamensky (перевод). Алгоритмы поиска пути [Электронный ресурс] || Программирование магических игр [Сайт] URL: http:||pmg.org.ru|ai|stout.htm (дата обращения: 27.09.2016).

7. Алгоритм поиска A* [Электронный ресурс] II Википедия [Сайт] URL: https:||ru.wikipedia.org|wiki|Алгоритм_поиска_A* (дата обращения 27.09.2016).

References

1. Paramonov N.B., Rzhevskiy D.A., Perekatov V.I. Doverennaya programmno-apparatnaya sreda «Elbrus» bortovykh vychislitel'nykh sredstv robototekhnicheskikh kompleksov 11 Voprosy radioelektroniki, ser. EVT, 2G1S, vyp. 1.

2. N.A. Bocharov, I.D. Sapachev, N.B. Paramonov. Makety robototekhnicheskikh kompleksov na yazyke Dzhava v srede OS «Elbrus» : Materialy SB nauchnoy konferentsii MFTI, 23 - 2B noyabrya 2G1S.

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

3. V.E., Talanov V.A. Grafy. Modeli vychisleniy. Struktury dannykh. — Nizhniy Novgorod: Izdatelstvo Nizhegorodskogo gos. universiteta, 2GGS. — 307 s.

4. Berzh K. Teoriya grafov i ee primeneniya | Pod red. I. A. Vaynshteyna. — Moskva: Izdatel'stvo inostrannoy literatury, 1962. — 320 s.

5. Uilson R. Vvedenie v teoriyu grafov. Per s angl. M.: Mir, 1977. 2GBs.

6. Bryan Stout (original'naya stat'ya) Maxim Kamensky (perevod). Algoritmy poiska puti [Elektronnyy resurs] 11 Programmirovanie magicheskikh igr [Sayt] URL: http:||pmg.org.ru|ai|stout.htm (data obrashcheniya: 27.09.2016).

7. Algoritm poiska A* [Elektronnyy resurs] || Vikipediya [Sayt] URL: https:||ru.wikipedia.org|wiki|Алгоритм_поиска_A* (data obrashcheniya 27.09.2016).

Поступила: 1G.1G.2G16

Об авторах:

Бочаров Никита Алексеевич, студент магистратуры кафедры информатики и вычислительной техники Московского физико-технического института, инженер-программист в АО «МЦСТ», [email protected];

Парамонов Николай Борисович, доктор технических наук, профессор, главный научный сотрудник АО «МЦСТ», [email protected];

Сапачев Илья Денисович, студент магистратуры кафедры компьютерных систем и технологий Московского инженерно-физического института, инженер-программист в АО «МЦСТ», [email protected].

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