Проекты*

Оптимизация левого поворота у беспилотных автомобилей

Работа призёра открытой городской научно-практической конференции «Инженеры будущего» по направлению «Инженеры» в секции «Машиностроение, транспорт» среди работ учащихся 10–11 классов

Направление работы: Программирование
Авторы работы: ГБОУ Школа № 1535
Предметы: Информатика
Классы: 10 класс
Мероприятия: Открытая городская научно-практическая конференция «Инженеры будущего» по направлению «Инженеры» 2022 года

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

Актуальность проекта обусловлена потребностью автопроизводителей в качественном программном обеспечении для своих беспилотных автомобилей, которых становится всё больше. С каждым годом доля беспилотных автомобилей на рынке растёт. В 2019 году компания Gartner подсчитала, сколько новых беспилотников выпускается каждый год: в 2018 году было выпущено 138 тысяч новых экземпляров, в 2019 году – уже 330 тысяч, а в 2022 году по прогнозу будет выпущено уже более полмиллиона новых беспилотных транспортных средств.

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

Цель

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

Задачи

  1. Анализ существующих решений.
  2. Создание модели перекрёстка с набором различных факторов.
  3. Создание 2D-модели беспилотного автомобиля.
  4. Обучение на основе нейросети; тестирование модели.
  5. Документирование.
  6. Подведение итогов.
  7. Определение путей развития.

Оснащение и оборудование, использованное при создании работы

  • Компьютеры и ПО
  • Алгоритмы компьютерного обучения OpenAI
  • Серверы Selectel

Описание

Для начала было необходимо создать компьютерную модель автомобиля, при этом она должна работать максимально схоже с настоящей машиной. За основу взяты физические характеристики Hyundai Sonata 2020, самого распространённого, по мнению автора, беспилотника. Был учтён ряд параметров: привод, мощность, разгон до 100 км, габариты и другие. Физическая модель автомобиля написана с помощью библиотеки Pymunk. После модели автомобиля была создана модель нерегулируемого перекрестка. Это плоскость, по которой двигается автомобиль, с различными объектами: границами, полосáми и пешеходными переходами. Так как автомобиль и перекресток – это лишь набор данных, они были визуализированы с помощью библиотеки PyGame.

Перед добавлением пешеходов было принято решение обучить модель автомобиля поворачивать налево на пустом перекрёстке. Изначально технология машинного обучения построена на NEAT. Но этот алгоритм занимает огромное количество времени. Поэтому была использована улучшенная технология Q-обучения, которую также называют подходом «кнута и пряника». Если искусственный интеллект выполняет нужные действия, он зарабатывает очки, если нет, то теряет. Для реализации этого метода были добавлены 11 контрольных точек, проходя через которые, искусственный интеллект зарабатывает очки. Если же машина выезжает на обочину или врезается, очки теряются. Также очки теряются каждую секунду, это стимулирует поворачивать всё быстрее и быстрее. Для реализации технологии были использованы алгоритмы OpenAI GYM. Справляться с такой задачей искусственный интеллект научился за несколько часов. Далее был добавлен плотный поток пешеходов. Движение осуществлялось по двум пешеходным переходам. Пешеходы в случайном порядке появляются раз в несколько секунд и двигаются со скоростью 4–7 км/ч.

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

К сожалению, в реальной жизни пешеходы не двигаются с одной скоростью и не всегда передвигаются пешком: они могут ехать на самокате или велосипеде. Чтобы сделать поток пешеходов более реалистичным, были изменены некоторые параметры. Теперь скорость пешеходов варьируется от 3 до 15 км/ч, а также способна увеличиваться или уменьшаться в процессе движения. На итоговые тесты потребовалось больше всего времени. Даже с использованием сторонних серверов процесс обучения занял более трёх дней.

Результаты работы/выводы

Конечная версия беспилотного автомобиля способна правильно оценивать риски и безошибочно выполнять левый поворот в различных ситуациях. Время, затрачиваемое на поворот, уменьшилось в среднем на 50% по сравнению с беспилотным автомобилем от компании Яндекс. Также автомобиль не ждёт, если человек стоит перед пешеходным переходом, а начинает движение при любой возможности. При этом процент экстренных торможений находится на очень низком для данного этапа обучения уровне: менее 2%. Для уменьшения этого значения требуется лишь время. Не стоит путать экстренные торможения с авариями, процент которых близок к нулю.

Перспективы использования результатов работы

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

Награды/достижения

Конференция «Курчатовский проект – от знаний к практике, от практики к результату» – призёр

Мнение автора

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