Введение. В мобильной робототехнике объезд препятствий и планирование маршрута робота может осуществляться при помощи методов оптимизации, таких как рой частиц [7], генетические алгоритмы [11], пчелиный алгоритм [3], муравьиные алгоритмы [5], а также с использованием искусственных нейронных сетей (ИНС) [8]. Данная статья рассматривает последний метод, так как при работе с датчиками и проектированием нейронной сети был применен метод обучения с учителем. Были проведены исследования по моделированию траектории передвижения мобильного робота с дифференциальным приводом колес и искусственной нейронной сети для объезда препятствий в работе [1]. Где была разработана ИНС, способная по расстоянию до препятствия определить необходимую скорость и направление движения, а системой выбора скорости для каждого колеса служила булева логика, что являлось простым набором правил. В работе [2] описана методология проектирования ИНС с применением эвристического подхода создания обучающей выборки. В данной статье была проведена модификация системы управления путем интегрирования ИНС замещающей блок булевой логики на ИИ-водителя. На рис. 1 показано как выглядит этот блок. ИИ- водитель объединяет в себе две ИНС:
- NN_find_obstacles ‒ решает задачу выбора ускорения и направления движения;
- set_velocytes ‒ по выходу выше описанного блока решает какую скорость выбрать для каждого колеса.
Рис. 1. Модель искусственной нейронной сети для ИИ-водителя
Объединяя эти два блока получаем модель, позволяющую управлять дифференциальным приводом на основе появления препятствий. Рассмотрим подробнее вторую ИНС.
Методология. В данной статье использовалась сеть с прямым распространением данных, которая обучалась с использованием алгоритма обратного распространения ошибки. Данный метод предполагает, что обучение закончится в двух случаях:
- Количество пройденных итераций превысит максимум;
- Значение ошибки обучения станет меньше установленной.
Таким образом, на каждой итерации ошибка обучения (разница между выходным значением нейронной сети и целевой выборкой) будет сравниваться с заданной, пока одно из условий не будет выполнено.
Данная нейронная сеть обучалась по методу «с учителем» ‒ это означает, что необходимо разработать эмпирическую базу данных, которая бы соответствовала конкретному применению ИНС в системе и адекватно реагировала на выход первой сети, как на рис. 1.
В таблице 1 собран сжатый пример эмпирической базы данных обучения нейронной сети, где в общей системе управления коэффициент ускорения и направление являются выходом первой ИНС (NN_find_obstacles), что также является входом set_velocytes.
Таблица 1
Эмпирическая база данных
|
Коэффициент ускорения |
Направление |
Скорость правого привода |
Скорость левого привода |
|
100 |
0 |
10 |
10 |
|
90 |
0 |
9 |
9 |
|
80 |
0 |
8 |
8 |
|
70 |
10 |
0 |
7 |
|
60 |
10 |
0 |
7 |
|
50 |
10 |
0 |
7 |
|
40 |
10 |
0 |
7 |
|
70 |
-10 |
7 |
0 |
|
60 |
-10 |
7 |
0 |
|
50 |
-10 |
7 |
0 |
|
40 |
-10 |
7 |
0 |
|
30 |
10 |
0 |
10 |
|
20 |
10 |
0 |
10 |
|
10 |
10 |
0 |
10 |
|
30 |
-10 |
10 |
0 |
|
20 |
-10 |
10 |
0 |
|
10 |
-10 |
10 |
0 |
|
0 |
0 |
0 |
0 |
Следовательно, изменение скоростей для дифференциального привода БТС ориентируется на появление препятствий и устанавливает значение скорости для маневра влево и вправо соответственно сигналу с предыдущей ИНС.
Проектирование блока set_velocytes. После разработки эмпирической базы данных для обучения искусственной нейронной сети следует спроектировать ее архитектуру. В данном случае была выбрана трехслойная сеть с двумя входами и выходами, обученная при помощи функции байесовской регуляции. На рис. 2 показана архитектура этой ИНС.
Рис. 2. Архитектура и данные об обучении искусственной нейронной сети
Данная сеть была обучена за 1000 итераций с ошибкой в 0,0724, как показано на рис. 2. Нейронная сеть состоит из 3-х слоев с 5-ю нейронами в каждом, с линейными функциями активациями в первых двух и сигмоидальной функцией в выходном слое.
Результаты обучения представлены на рис. 3, где показан выход нейронной сети по левому и правому двигателю в сравнении с обучающей выборкой.
Рис. 3. Результаты обучения искусственной нейронной сети для правого и левого привода
Как видно из рис. 3 ИНС была обучена с малой ошибкой, так как выход нейронной сети и обучающая выборка практически совпадают.
Моделирование искусственной нейронной сети в составе бесплотного транспортного средства с дифференциальным приводом. Модель, представленная на рисунке 4, состоит из следующих блоков:
- set_ob – искусственно заданная диаграмма появления препятствий;
- II_driver – блок ИИ-водителя, показанная на рисунке 1;
- Block_of_dif_drive – блок, описывающий поведение дифференциального привода;
- Kin_and_MR – кинематическая модель четырехколесного беспилотного транспортного средства.
На рис. 6 показан выход блока set_ob, представляющий собой диаграмму изменения расстояния до препятствий во времени. Расчет координат [14] беспилотного транспортного средства с дифференциальным приводом осуществляется с помощью следующей системы дифференциальных уравнений:
Рис. 4. Моделирование обхода препятствий для беспилотного транспортного средства
где
‒ координата Х;
‒ координата Y;
,
‒ линейные скорости правого и левого привода БТС ;
‒ ширина БТС;
‒ угол поворота БТС;
‒ начальные координаты, которые равны [0,0].
Выходом блока ИИ-водителя тоже является диаграмма (рис. 6), представляющая собой диаграмму скоростей для правого привода (выход 1) и для левого (выход 2).
Рис. 5. Диаграмма появления препятствий на пути беспилотного транспортного средства
Рис. 6. Выход искусственной нейронной сети, установка скоростей для левого и правого привода беспилотного транспортного средства
Таким образом задается управляющий сигнал для блока Block_of_dif_drive, где с помощью ПИД-регулятора устанавливается необходимая скорость для БТС. На рис. 7а показан выход этого блока, а именно линейная скорость правого колеса (выход 1) и левого (выход 2).
(а) (б)
Рис. 7. Выход блока Block_of_dif_drive (а) и изменение угла поворота беспилотного транспортного средства (б)
Если сравнить графики на рисунке 6 и 7а становиться очевидно, что блок Block_of_dif_drive устанавливает скорость в точности по указанию ИИ-водителя. На рисунке 7б показано изменение угла поворота беспилотного транспортного средства, этот параметр является выходом блока Kin_and_MR.
Изменение угла поворота хорошо прослеживается на рисунке 8 при объезде препятствий. Здесь показано изменение траектории по мере появления преград на пути беспилотного транспортного средства.
Рис. 8. Траектория обхода препятствия беспилотным транспортным средством и визуальное представление появления преград (1 ‒ первый поворот, 2 ‒ второй поворот, 3 ‒ третий поворот)
Квадраты на рисунке 10 являются представлением препятствий, а их номер в какой момент времени они появились, соответствуя рис. 8.
Выводы. Таким образом, при моделировании объезда искусственно созданных препятствий, ИИ-водитель показал хорошие результаты, так как траектория движения БТС изменяется с точностью по концепции разработанной ИНС. Также результаты данного исследования показали большой потенциал искусственных нейронных сетей при проектировании ИИ-водителя. В дальнейшем планируется проведение модификаций обучающей выборки и интеграции в систему управления ИНС по контролю заданной траектории.
Источник финансирования. Конкурс УМНИК 17-12 (б), Автонет - 2017.



