Применение нейронной сети для управления мотоциклом

ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ ДЛЯ УПРАВЛЕНИЯ

МОТОЦИКЛОМ

И.М. Аничкин

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

Введение

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

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

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

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

Создание системы управления

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

1. Создание среды для физического моделирования поведения мотоцикла (разработка симулятора и создание модели мотоцикла).

2. Исследование поведения мотоцикла с целью выяснения принципов управления им при удержании равновесия.

3. Создание пробной системы управления равновесием мотоцикла, позволяющей ему удерживать равновесие при движении в широком диапазоне скоростей:

• используется линейное управление;

• параметры системы управления подбираются эвристически.

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

5. Построение системы управления моделью мотоцикла на основе нейронной сети:

• реализация быстрого алгоритма обучения нейронной сети по методу обратного распространения ошибки;

• разработка методики получения исходных данных для обучения нейронной сети управлению мотоциклом;

• получение данных для обучения нейронной сети;

• обучение нейронной сети;

• проверка работы системы управления мотоциклом.

Далее в работе приводится более детальное описание приведенной последовательности выполняемых действий

Физическое моделирование

Среда моделирования. Вычислительная модель мотоцикла построена при помощи библиотеки для моделирования механики твердых тел ODE v. 0.5 (Open Dynamics Engine) [1]. Данная библиотека имеет открытый исходный код и распространяется свободно. Движок ODE разработан для использования в интерактивных симуляторах, а также симуляторах реального времени и хорошо подходит для моделирования шарнир-но связанных твердых тел. Встроенная система обнаружения столкновений движка позволяет моделировать взаимодействие тел при их столкновении. В ODE также реализовано сухое трение между телами.

Создание модели мотоцикла. В целях упрощения анализа поведения мотоцикла было принято решение сделать модель максимально простой, но так, чтобы сохранялись все основные свойства ее поведения - модель оставалась бы похожей на мотоцикл.

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

Анализ движения модели

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

Применительно к задаче удержания равновесия движение мотоцикла описывается всего лишь пятью переменными - двумя координатами и тремя скоростями. Перечислим эти переменные: скорость движения S, угол наклона мотоцикла L, угол поворота руля T, скорость изменения угла наклона LS = dL/dt, и скорость изменения угла поворота руля TS = dT/dt.

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

Отметим, что стабильная траектория задается двумя параметрами - своей кривизной о и скоростью движения мотоцикла по траектории S. Другие параметры движения мотоцикла могут быть однозначно определены по указанным двум: L = L (S, о) и T = T (S, о).

Управление мотоциклом

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

ние рулем («руление») таким образом, чтобы привести мотоцикл на траекторию требуемой кривизны как можно быстрее.

Контрруление. Для удержания мотоцикла в равновесии могут применяться два основных элемента управления: руль и смещение центра масс.

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

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

Управление равновесием. Управление равновесием мотоцикла заключается в том, чтобы в зависимости от переменных, описывающих движение мотоцикла (8, Ь, Т, Ь8), и заданных параметров движения (кривизны а) обеспечить переход мотоцикла на траекторию требуемой кривизны. При этом, как уже отмечалось выше, должны выполняться соотношения Ь = Ь (8, а) и Т = Т (8, а). Управляемой переменной в данном случае является скорость поворота руля Т8.

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

Аналогия с маятником

Мотоцикл, который едет по поверхности на двух колесах, представляет собой систему, находящуюся в состоянии неустойчивого равновесия. Управление такой системой во многом аналогично управлению простейшей системой, находящейся в состоянии неустойчивого равновесия - перевернутым маятником на тележке (рис. 1). Данная система часто рассматривается (например, в работах [3, 4]) как типичная задача об управлении системами, находящимися в состоянии неустойчивого равновесия - такими системами, которые при отклонении от равновесного состояния начинают уходить от него с течением времени все дальше.

X ->

0 ( ) О

-

Рис. 1. Перевернутый маятник

В линейном приближении движение маятника описывается формулой х" = ш2 •

Цель управления маятником - удержание его в равновесии над точкой xF. Управляющее воздействие - изменение координаты тележки X. Ограничение:

^ < XSmax = сотг.

Предположим, что в момент времени г = 0 маятник находится в равновесии над точкой х0: Х(0) = х(0) = х0 < хр, и при этом х'(0) = 0. Пусть теперь требуется сместить маятник вправо (увеличить значение х). Для этого смещаем тележку влево, так чтобы ускорение было положительным, и скорость х' начала возрастать. Когда скорость возрастет достаточно, необходимо начинать двигать тележку вправо - «догонять» маятник. При этом значения х и X должны сравняться на середине отрезка [х0, хр]: х = X = (х0 + хр) / 2. После этого тележку необходимо завести на некоторое расстояние вправо за точку хр, так чтобы затем переместить ее к точке X = хр. При этом одновременно должны выполняться соотношения х = хр и х' = 0. Графики зависимостей координат и скоростей системы от времени для оптимального управления показаны на рис. 2.

-X

.......*

-X

  X'

—-хР

Рис. 2. Оптимальный алгоритм управления маятником

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

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

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

Более простыми способами, такими как линейное управление (ПИД регулирование) или нечеткая логика [4], оптимальное управление маятником обеспечить не удается.

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

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

Для определения конфигурации нейронной сети, которая, будучи обученной, окажется в состоянии достаточно хорошо управлять маятником, потребовалось провести несколько вычислительных экспериментов. В ходе этих экспериментов были протестированы несколько конфигураций нейронной сети, отличающихся числом слоев и нейронов в слоях. Все нейронные сети, применяемые для управления мотоциклом, имеют следующую структуру: они содержат три или более слоев, из которых первый является входным, последний - выходным, а все остальные - скрытыми. При этом обозначение конфигурации сети «7» понимается как наличие у нейронной сети одного скрытого слоя, состоящего из семи нейронов, обозначение «91» - это нейронная сеть, имеющая 91 нейрон в одном скрытом слое. Обозначение «7-5» понимается как семь нейронов в первом скрытом слое и пять нейронов во втором (всего два скрытых слоя). И, наконец, обозначение 6x3 - это обозначение сети из шести скрытых слоев по три нейрона в каждом.

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

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

Таблица

Конфигурация сети Ошибка Время итерации, мс

7000 итераций 50000 итераций

Обучение Тестирование Обучение Тестирование

тах сред тах сред тах сред тах сред

7 0.0628 0.0215 0.0649 0.0217 0.0528 0.0189 0.0631 0.0191 32

37 0.0438 0.0129 0.0478 0.0134 0.0441 0.0101 0.0463 0.0107 130

91 0.0445 0.0122 0.0472 0.0127 0.0433 0.0090 0.0454 0.0096 300

7-5 0.0335 0.0080 0.0356 0.0086 0.0215 0.0045 0.0277 0.0055 50

13-7 0.0230 0.0053 0.0347 0.0061 0.0166 0.0030 0.0300 0.0042 86

Таблица

21-13 0.0214 0.0043 0.0317 0.0055 0.0100 0.0018 0.0320 0.0034 150

13-7-5 0.0158 0.0036 0.0333 0.0050 0.0089 0.0020 0.0295 0.0036 105

21-13-7 0.0128 0.0022 0.0315 0.0038 0.0075 0.0011 0.0364 0.0031 195

7-7-5-5 0.0178 0.0041 0.0379 0.0051 0.0081 0.0018 0.0297 0.0031 105

6 х 3 0.0486 0.0168 0.0524 0.0169 0.0470 0.0103 0.0503 0.0107 80

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

Как следует из результатов тестирования, ошибка на тесте может превышать ошибку обучения довольно значительно. Так, например, для сети 21-13-7: максимальная ошибка при тестировании равна 0.0364, а при обучении - 0.0075.

Для реализации управления маятником была выбрана конфигурация нейронной сети, которая обеспечила наилучшие результаты в ходе проведенного тестирования -сеть с конфигурацией 13-7-5. Эта сеть обучалась следующим образом. Начальные веса инициализировались случайными величинами из диапазона (-1, 1). Рассматривалось 10 вариантов случайного задания начальных весов (десять нейронных сетей). Каждая из этих сетей обучалась на протяжении фиксированного числа итераций на обучающем множестве (неравномерной четырехугольной сетке) из 21-41 = 861 вектора. Затем для трех лучших сетей, показавших наименьшую ошибку обучения на этом множестве, обучение продолжалось на большем множестве из 41-81 = 3321 вектора. В ходе этого этапа обучения периодически контролировалась ошибка тестирования на множестве из 81-161 = 13041 вектора. Всякий раз, когда ошибка тестирования становилась меньше ранее достигнутой, значения весов сети сохранялись. Таким способом удалось достигнуть ошибки тестирования еггМах = 0.0209 (максимальной) и errSS = 0.0022 (среднеквадратичной).

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

Исследование нейросети для управления мотоциклом

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

Аналогом координаты х маятника будет угол наклона мотоцикла Ь. Координате X тележки, на которой установлен маятник, соответствует угол поворота руля Т. Данная аналогия не полна, и системы «маятник» и «мотоцикл» не тождественны, между ними есть заметные различия.

Во-первых, если равновесие маятника достигается при х = X, х' = 0, то для равновесия мотоцикла между наклоном мотоцикла Ь и углом поворота руля Т существует более сложная связь, причем ее достаточно сложно записать аналитически.

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

Тем не менее, оказывается возможным построение системы управления равновесием мотоцикла по аналогии с системой управления маятником. Аналогом координаты х маятника является угол наклона мотоцикла Ь. Координате X тележки, на которой установлен маятник, соответствует угол поворота руля Т.

Пример оптимального управления равновесием мотоцикла (в его идеальной реализации) показан на рис. 3.

—т

----Т'/10

.......1_'/10

-—ю

Рис. 3. Пример оптимального (идеального) управления мотоциклом

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

Пример графиков зависимостей координат и скоростей системы от времени при нейросетевом управлении приведен на рис. 4.

----Т'/10

-1_

.......1_'/10

—-1_Р

Рис. 4. Пример нейросетевого управления мотоциклом

Здесь управляемая переменная (угол поворота руля) обозначена буквой Т.

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

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

удовлетворительным, что и продемонстрировали эксперименты с виртуальным мотоциклом (рис. 5).

Рис. 5. Эксперимент с виртуальным мотоциклом Заключение

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

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

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

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

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

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

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

Источники

1. Russell Smith "Open Dynamics Engine v0.5 User Guide" http://ode.org , "Documentation"

2. Кейт Код "Техника вождения мотоцикла" http://www.drivemc.ru/articles/40.files/00.html

3. Гришин А.А., Ленский А.В., Охоцимский Д.Е., Панин Д.А., Формальский А.М. О синтезе управления неустойчивым объектом. Перевернутый маятник //Известия РАН. Теория и системы управления. 2002, № 5.

4. MathWorks Inc. "Fuzzy Logic Toolbox User's Guide" http://www.mathworks.com/access/helpdesk/help/pdf_doc/fuzzy/fuzzy.pdf