Open Motion Planning Library (OMPL) 2.0
Почти каждый, кто работает с манипуляторами в ROS, так или иначе, опирается на библиотеку OMPL от лаборатории Лидии Кавраки. MoveIt по умолчанию берёт планировщики (planner) именно из неё. Также библиотека входит в поставку CoppeliaSim, Tesseract и Nav2, а оригинальная статья 2012 года собрала больше 2400 цитирований. И вот довольно неожиданно выходит 6 апреля OMPL 2.0 - первый за 12 лет выпуск мажорной версии с момента выхода 1.0 в 2014 году, а на днях и поясняющая публикация от авторов релиза.
По сути OMPL 2.0 подытоживает собой более чем 30 версий, вышедших за более чем десятилетие - существенно расширен спектр поддерживаемых планировщиков и задач, которые они могут решать (подробнее см. в публикации). Чем больше планировщиков и их параметров, тем труднее выбрать подходящий под конкретного робота, и авторы показывают, что здесь помогает автоматический подбор гиперпараметров (их оригинальная разработка - HyperPlan).
Главная новинка в области аппаратного ускорения планирования - интеграция VAMP (Vector-Accelerated Motion Planning), отдельной библиотеки, которая ускоряет проверку коллизий и прямую кинематику векторными SIMD-инструкциями обычного CPU, обрабатывая множество состояний за раз. В OMPL её подключили опциональным бэкендом для проверки коллизий и валидации движений. В примечаниях к релизу для VAMP-бэкенда заявлена совокупная скорость планирования до 25 кГц, порядка 25 тысяч найденных решений в секунду без GPU - уровень, на котором реактивное планирование в непрерывно меняющейся среде перестаёт требовать специализированного железа. При этом VAMP остаётся опциональным бэкендом, а не выбором MoveIt 2 по умолчанию, так что сам по себе релиз пайплайн MoveIt 2 не ускоряет; в демо его обкатывали на конкретных роботах (Panda, UR5, Fetch, Baxter), а SIMD-кинематику пишут под модель - произвольный URDF не поддерживается "из коробки". Рядом также добавили CAPT (Collision-Affording Point Trees) - тот же SIMD-подход, но для облаков точек, чтобы планировать прямо по сырым сенсорным данным.
Значительная часть работы над релизом пришлась не на алгоритмы планирования, а на упаковку. Биндинги переписали с заброшенного Py++ на nanobind, добавили CI на GitHub Actions и автопубликацию пакетов на PyPI, так что теперь работает простой "pip install ompl" вместо ручной сборки из исходников. Новые планировщики тоже есть - AORRTC и BLIT среди геометрических, HySST для гибридных систем, - но большинство этих алгоритмов опубликованы раньше (CAPT - RSS 2024, AORRTC - RA-L 2025), и собственно новое в 2.0 не сами эти алгоритмы, а интеграция SIMD-бэкендов и современная сборка. Старый GUI "OMPL app" убрали, потому что зрелые внешние симуляторы сделали отдельный графический фронтенд лишним.
Команда движется в AI-тренде и нацелена также сделать планирование движений доступным LLM-агентам напрямую - через MCP-сервер (Model Context Protocol) и agent skills.
http://www.kavrakilab.org
https://github.com/ompl/ompl/releases/tag/2.0.0
#moveit #motion #planning #ompl
Post #328
1.3K