72
правки
Изменения
→Решение проблемы для беспилотных автомобилей (self-driving cars)
== Решение проблемы для беспилотных автомобилей (self-driving cars) ==
Для организации управления беспилотным автомобилем можно воспользоваться классическим подходом из робототехники. Разобьем задачу Задача самостоятельного передвижения разбивается на четыре модуля. *Модуль локализации отвечает за то, чтобы машина понимала, где она находитсяопределение положения автомобиля в пространстве. *Модуль распознавания — за то, что находится вокруг машиныанализ окружающей обстановки. *Модуль планирования обладает информацией о том, что находится вокруг, — за планирование маршрута исходя из обстановки и зная, куда хочется приехать, строит маршрутцели. *Модуль управления говорит, как же ехать по маршруту, чтобы приехать, выполнить эту траекторию. Но все же случай беспилотных автомобилей не так прост, как это может показаться — за определение траектории движения в первом приближениивыбранном направлении.
Тем не менее такая модель все еще имеет множество проблем, которые необходимо решить. Автомобиль обладает рядом довольно существенных ограничений. Это не шар в пространстве, который может катиться в любую сторону и условно мгновенно останавливаться и замедляться. У автомобиля есть текущее направление, угол поворота колес, и он не может просто оказаться на два метра левее от текущего местоположения, это очень сложно. Он может ехать примерно вперед, поворачивая на какой-то угол, но тем не менее, перемещение очень сильно ограничено. И на траекторию движения влияют ограничениям, которые следуют из кинематики. Например, невозможно мгновенно разогнаться и мгновенно увеличить свое ускорение.
Для планирования дальнейшего движения автомобиля можно использовать нейросети, передавая информацию со всех датчиков и камер в нейросеть, предварительно ее обучив на каких-нибудь человеческих перемещениях. Обучить, в каких ситуациях куда нужно крутить руль, увеличивать или снижать скорость и т.д. В теории такой подход представляется хорошим решением проблемы, но на практике выяснилось, что нужно все-таки слишком много данных, нужна слишком большая нейросеть, чтобы за человеком все успешно повторять в различных ситуациях. В этом направлении ведется активная работа, и пока большинство успешных решений проблемы опирается на нейросети лишь частично, доверяя бо́льшую часть работы проверенным алгоритмам.
=== Алгоритмы на графах ===
=== Оптимизационные алгоритмы ===
Что лучше рассмотреть в качестве штрафов? Например, можно сказать, что мы не хотим нужно подъезжать близко к препятствиям, учитывать это с каким-то весом, или что скорость не хотим, чтобы наша скорость была должна быть гораздо выше или ниже желаемой заранее определенной скорости, которую мы для себя определили. Мы можем Можно штрафовать себя за вторую производную, которая является ускорением, потому что мы машина не хотим, чтобы машина должна резко ускорялась ускоряться или замедляласьзамедляться.
{|align="center" cellpadding="0" cellspacing="0" style="margin: 0 auto;"
[[Файл:LaneChangePaths.png|center|thumb|400px|''Рис. 6.'' Построение и выбор плавной траектории смещения<ref name="yandex-lecture"/>]]
Не всегда нужны эти хитрые деревья, чтобы парковаться или делать сложные маневры. Когда автомобиль едет на полосе, ему достаточно построить более-менее плавную траекторию, следующую к центру этой полосы или с каким-то смещением влево-вправо. Это сделать гораздо проще, чем искать абстрактный путь в графе. Поэтому простым решением будет взять текущее положение машины, посмотреть на путь, по которому мы хотели бы ехать, и плавно свернуть на этот путь.
== Области применения решений проблемы планирования движения ==