Привет, Хабр!
В данной статье сделан обзор на фреймворк планирования движения BMPF.
На данный момент подавляющее большинство средств планирования движения работает по одному и тому же принципу: вся сцена описывается как один робот, после чего выполняется планирование на сетке (чаще всего A*, подробнее можно прочитать здесь).
У такого подхода есть две основных проблемы:
1) планирование на сетке гарантирует допустимость только состояний в её узлах, промежуточные никак не оцениваются и не проверяются.
2) для сцены из нескольких роботов размерность пространства планирования получается слишком большой (алгоритмическая сложность планирования растёт как показательная функция).
Данный фреймворк решает обе озвученные проблемы. С документацией фреймворка можно ознакомиться здесь.