Изменения

Перейти к: навигация, поиск

Задача планирования движения

57 байт убрано, 23 январь
Отмена правки 80465, сделанной NikolayPlyusnin (обсуждение)
{{В разработке}}
 
Планирование движения (также известное как планирование пути и проблема навигации) — это вычислительная задача поиска последовательности допустимых конфигураций, которая перемещает объект от источника к месту назначения.
== Этапы ==
[[Файл:MotionPlanningMLUsage.png|left|thumb|600px|''Рисунок 3.'' Доля методов, основанных на машинном обучении, машинного обучения в используемых на каждом этапеметодах<ref name="lyft-ml-motion-planning"/>]]
<div style="clear:{{{1|both}}};"></div>
=== Восприятие/анализ обстановки (англ. ''Perception'')===
[[Файл:AutoCarPerception.jpg|left|thumb|300px450px|''Рисунок 4.'' Визуализация восприятия автомобилем изображения с камеры<ref>[https://www.eenewsautomotive.com/news/deep-learning-method-improves-environment-perception-self-driving-cars Christoph Hammerschmidt (2020) "Deep learning method improves environment perception of self-driving cars"]</ref>]]
Анализ данных об окружении, выделение объектов и препятствий, определение их размеров, скоростей, и расстояний до них.
Зачастую осуществляется путем применения алгоритмов машинного обучения для [[Задача нахождения объектов на изображении|распознавания объектов]] на изображениях и прочих массивах данных (таких как данные с датчиков).
=== Предсказание движения объектов (англ. ''Prediction'') ===
 
[[Файл:AutoCarPrediction.png|left|thumb|450px|''Рисунок 5.'' Предсказание движения окружающих объектов<ref>[https://medium.com/lyftself-driving/fueling-self-driving-research-with-level-5s-open-prediction-dataset-f0175e2b0cf8 Sacha Arnoud, Peter Ondruska (2020) "Fueling Self-Driving Research with Level 5’s Open Prediction Dataset"]</ref>]]
Анализ собранных за время наблюдения данных об окружающих объектах для последующего построение модели их движения и предсказания их траекторий.
Этот этап будет подробно рассмотрен далее.
[[Файл:AutoCarPrediction.png|left|thumb|300px|''Рисунок 5.'' Предсказание движения окружающих объектов<ref>[https://medium.com/lyftself-driving/fueling-self-driving-research-with-level-5s-open-prediction-dataset-f0175e2b0cf8 Sacha Arnoud, Peter Ondruska (2020) "Fueling Self-Driving Research with Level 5’s Open Prediction Dataset"]</ref>]]
<div style="clear:{{{1|both}}};"></div>
=== Принятие решения/планирование траектории движения (англ. ''Planning'') ===
[[Файл:AutoCarPlanning.png|left|thumb|450px|''Рисунок 6.'' Планирование траектории движения<ref>[https://medium.com/lyftself-driving/virtual-validation-a-scalable-solution-to-test-navigate-the-autonomous-road-ahead-e1a7d1fe1538 Robert Morgan, Mason Lee (2020) "Virtual Validation: A Scalable Solution to Test & Navigate the Autonomous Road Ahead"]</ref>]]
Построение потенциальных траекторий движения и выбор итоговой на основе собранных на предыдущих этапах данных.
Как правило осуществляется с помощью дискретизации пространства и последующего применения алгоритмов на графах, например различных вариаций [https://en.wikipedia.org/wiki/Rapidly-exploring_random_tree RRT алгоритмов], для поиска оптимальной траектории. В последнее время также становятся более актуальными решения с применением машинного обучения {{---}} в частности, подходы на основе имитационного обучения и обратного [[Обучение с подкреплением|обучения с подкреплением]]<ref>[https://towardsdatascience.com/inverse-reinforcement-learning-6453b7cdc90d Alexandre Gonfalonieri (2018) "Inverse Reinforcement Learning {{---}} Introduction and Main Issues"]</ref><ref>[https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_417 Abbeel P., Ng A.Y. (2011) "Inverse Reinforcement Learning"]</ref>, обученные на большом количестве примеров, предоставленных человеком<ref name="lyft-ml-motion-planning">[https://medium.com/lyftself-driving/the-next-frontier-in-self-driving-using-machine-learning-to-solve-motion-planning-a259b814e9ad Peter Ondruska, Sammy Omari (2020) "The Next Frontier in Self-Driving: Using Machine Learning to Solve Motion Planning"]</ref>.
[[Файл:AutoCarPlanning.png|left|thumb|300px|''Рисунок 6.'' Планирование траектории движения<ref>[https://medium.com/lyftself-driving/virtual-validation-a-scalable-solution-to-test-navigate-the-autonomous-road-ahead-e1a7d1fe1538 Robert Morgan, Mason Lee (2020) "Virtual Validation: A Scalable Solution to Test & Navigate the Autonomous Road Ahead"]</ref>]]
<div style="clear:{{{1|both}}};"></div>
Также проблематичным является тот факт, что одной модели (особенно простой) как правило недостаточно для описания траектории движения объекта. В связи с этим существует алгоритм, использующий множество взаимодействующих моделей (англ. ''Interacting Multiple Model, IMM'') {{---}} подход применения сразу нескольких моделей, для каждой из которых поддерживается актуальная (меняющаяся по мере прошествия времени и получения новых измерений) вероятность того, что объект двигается согласно этой модели. Таким образом, используя, например, модель для каждого возможного движения, такого как поворот или ускорение, мы можем делать более точные предположения о том, где объект будет находиться в будущем.
[[Файл:IMMDiagram.png|left|thumb|1000px750px|''Рисунок 8.'' Диаграмма процесса работы IMM<ref>[https://www.ksae.org/func/download_journal.php?path=L2hvbWUvdmlydHVhbC9rc2FlL2h0ZG9jcy91cGxvYWQvam91cm5hbC8yMDE5MTIyODE5MzI1OS44MDUxLjMuMS5wZGY=&filename=MTlBS1NBRV9EMDYyLnBkZg==&bsid=46256 Jongwon Park, Jaeho Choi, Kunsoo Huh (2019) "Interacting Multiple Model Filter for Multi-Sensor Data Fusion System"]</ref>. На картинке KF означает [https://ru.wikipedia.org/wiki/%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80_%D0%9A%D0%B0%D0%BB%D0%BC%D0%B0%D0%BD%D0%B0 фильтр Калмана] (англ. ''Kalman filter'') {{---}} один из возможных предсказательных алгоритмов]]
<div style="clear:{{{1|both}}};"></div>
=== Оптимизационные алгоритмы ===
Идея [https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0) оптимизационных] алгоритмов заключается в следующем: рассмотрим траекторию нашего положения во времени, <tex>x</tex> и <tex>y</tex> {{---}} координаты, зависящие от времени <tex>t</tex>, то есть поймем, в какой точке мы хотим оказаться в момент времени <tex>t</tex>. Можно сказать, что оптимальной в этом случае будет траектория, которая минимизирует функционал <tex>J</tex>, являющийся интегралом по времени вперед от какой-то некоторой функции от траекториипо времени.
<tex>J[\text{x}(t)] = \int\limits_{t_0}^{t_0 + T} L(\text{x}, \dot{\text{x}}', \ddot{\text{x}}'', \dddot{\text{x}}''') dt</tex>, где <tex>\text{x}(t) = (x(t), y(t))^T</tex> {{---}} траектория.
Функция от траектории <tex>L</tex> здесь каким-либо образом нас штрафует за резкие повороты, резкие разгоны, нахождение близко к препятствиям. Тогда, если просуммировать вдоль траектории все необходимые штрафы и попытаться это минимизировать с помощью стандартного математического аппарата, никак не связанного с автомобилями в целом и беспилотными автомобилями в частности, это решит задачу в общем виде.
72
правки

Навигация