НЕЙРОННЫЙ ГОНЩИК

Проектирование самообучающихся систем автопилотирования с применением машинного обучения.

Проектная работа

рук. Шишкова Нелла Антоновна,

Оглавление

Цель:        2

Теоретический принцип:        2

Актуальность:        2

Этапы решения задачи:        2

Результаты:        3

Новизна решения:        3

Преимущества решения:        3

Сферы применения:        3

Источники:        3

Цель: Используя обучаемые математические алгоритмы, разработать алгоритм-учитель и систему автоматического управления автомобилем, способную работать в агрессивных условиях на больших скоростях.

Теоретический принцип:

Автопилот должен:

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

Обучающая машина должна:

наиболее точно симулировать физику среды и управляющих элементов иметь удобные  инструменты для создания и редактирования условий симулирующейся среды

Актуальность: Настоящий век в большой степени определяется как век скачка в области информационных технологий. Создание беспилотного автомобиля станет новой вехой в развитии человечества.

Этапы решения задачи:

Была разработана* и изготовлена плата на основе микроконтроллера ATmega1284PU и USB-UART интерфейса FT232RL для управления сервомашиной и общения с компьютером**. Переработан игровой джойстик в прототип рулевого механизма для использования роботом. Была спроектирована*** и распечатана на 3Д-принтере деталь крепления сервопривода к рулю. Используя фрэймворк для работы с графикой SFML и физический движок Box2D, была написана на C++**** среда для тестирования и обучения автопилота. Была написана на C++ структура нейронной сети, способная получать входные данные и выдавать на выводе своё решение. Был написан на C++ механизм управления автомобилем. Нейронная сеть была научена использовать виртуальный и реальный руль. Был написан алгоритм случайного подбора весов для обучения нейросетей. Нейросеть была обучена на виртуальном руле и симуляции трассы. Проведено обширное тестирование способности нейросети управлять автомобилем с реального руля в различных условиях.

*Для проектирования платы была использована программа Sprint Layout

**Для прошивки микроконтроллера использовалась программа Atmel Studio

***Для проектирования 3Д-моделей использовалась программа Blender 3D

****Для написания основной части кода использовалась программа Visual Studio

Результаты:

Новизна решения:

В отличие от классического беспилотного автомобиля, система способна функционировать:

а) на высоких скоростях (до 120 км/ч)

б) в крайне тесных и извилистых маршрутах (до 4 метров в ширину, 2:1 ширины автомобиля!)

Преимущества решения:

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

Сферы применения:

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

Источники:

    https://www. /watch? v=aVId8KMsdUU&list=PL29C61214F2146796 – neural network tutorial https://www. /watch? v=-eJXg2tGcyM – Box2D tutorial https://www. /watch? v=6RxIeguVLcM – SFML tutorial http://chipenable. ru/index. php/programming-avr/item/186 – FT232RL tutorial http://radiolaba. ru/microcotrollers/upravlenie-servoprivodom-na-mikrokontrollere. html ATmega1284PU, LM1084 datasheets