НЕЙРОННЫЙ ГОНЩИК
Проектирование самообучающихся систем автопилотирования с применением машинного обучения.
Проектная работа
рук. Шишкова Нелла Антоновна,
Оглавление
Цель: 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


