В настоящее время все чаще возникает необходимость в алгоритмах построения маршрутов. Данные алгоритмы могут использоваться в различных сферах. Например, в автопилотировании дорожных транспортных средств, в алгоритмах, обеспечивающих работу роботов манипуляторов на производствах или же в сфере компьютерных игр, для создания естественного окружения, создающегося за счет реалистичного движения персонажей. В данной работе будет рассмотрен алгоритм построения маршрутов для беспилотных летательных аппаратов.
Основная сложность этой задачи заключается в том, что необходимо прокладывать маршрут между точками в пространстве(в конкретном случае на плоскости), обладающий определенными свойствами. Свойства эти представляют собой физические и технические ограничения, такие как радиус поворота, минимальное расстояние между точками изменения траектории. К тому же в реализации конкретной задачи была важна высокая точность итогового результата построения, вследствие чего приходилось прибегать к геометрическим изысканиям.
Итоговые свойства изделия, которые должен учитывать алгоритм:
1. Изменяемая эллипсовидная навигационная ошибка аппарата.
2. Ненулевой радиус разворота аппарата.
3. Множественный запуск аппаратов и условие не пересечения их маршрутов.
4. Оптимальность с точки либо пройденного расстояния, либо с точки зрения свободного пространства вокруг аппарата, движущегося по построенному маршруту.
Для решения задачи построения маршрута с учетом всех этих свойств были рассмотрены различные алгоритмы[1], но за основу была взята диаграмма Вороного и стандартный алгоритм воронки, который был переработан для решения всех поставленных задач.
Так же стоит сказать, что поскольку в некоторых случаях предполагалось запускать данный алгоритм на системе QNX, было принято решение о разработке алгоритма, не использующего ни какие фреймворки построения маршрутов, так как в дальнейшем это могло привести к невозможности запуска итогового программного обеспечения на некоторых платформах.
Проведем обзор известных методов построения маршрутов, и разберемся, почему были выбраны конкретные методы.
В процессе выполнения данной работы были изучены методы построения маршрутов. Были выбраны конкретные методы для дальнейшей реализации и реализованы на языке программирования C++. Написанный код применяется в рабочем программном обеспечении компании Радар ММС в нескольких проектах связанных с навигацией.
Правильная работа алгоритма, приведенного в данном тексте показывает правильность выбора метода решения поставленных задач. Действительно подход в основе которого лежит диаграмма Вороного позволили обеспечить взаимодействие между маршрутами на таком уровне, что стала возможна их параллельное построение с оптимальностью коридоров и длин всех маршрутов в построении. Дальнейшее направление работы видится в усилении качества этого взаимодействия, потому что при тесном построении маршрутов сейчас маршруты все же иногда могут вести себя не так, как кажется оптимально.
[1] Андрейчук А. А., Яковлев К. С., “Методы планирования траектории на плоскости с учетом геометрических ограничений,” Известия РАН. Теория и системы управления., 2017.
[2] Steven M. LaValle, “Rapidly-exploring random trees : a new tool for path planning” The annual research report, 1998.
[3] Joseph S. B. Mitchell, “Geometric shortest paths and network optimization,” in Handbook of Computational Geometry, 2000.
[4] Sturtevant, Nathan and Buro, Michael, “Partial pathfinding using map abstraction and refinement.” vol. 3, pp. 1392-1397, 01 2005.
[5] Ф.Препарата, М.Шеймос, Вычислительная геометрия: введение. Мир, 1989.
[6] Snyk, “The boost polygon voronoi extensions.” https://www.boost.org/doc/libs/1_75_0/libs/polygon/doc/voronoi_main.htm, 2013.
[7] D. Demyen and M. Buro, “Efficient triangulation-based pathfinding,” in AAAI Conference on Artificial Intelligence, 2006.
[8] Hart, Peter E. and Nilsson, Nils J. and Raphael, Bertram, “A formal basis for the heuristic determination of minimum cost paths,” IEEE Transactions on Systems Science and Cybernetics, vol. 4, no. 2, pp. 100-107, 1968.
[9] Silver, David, “Cooperative pathfinding” Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, vol. 1, pp. 117122, Sep. 2021.
[10] Kedem, K. and Sharir, M., “An efficient algorithm for planning collision-free translational motion of a convex polygonal object in 2-dimensional space amidst polygonal obstacles” in Proceedings of the First Annual Symposium on Computational Geometry, SCG ’85, (New York, NY, USA), p. 75-80, Association for Computing Machinery, 1985.