Skip to content

Архитектура

Цикл планирования

Пайплайн от запроса к переиспользуемому покрытию

  1. Запрос задаёт начальную и целевую конфигурации.
  2. Стандартный запуск оценивает baseline RRT для каждого запроса и baseline TrajOpt, когда RRT построил путь; их метрики записываются.
  3. Затем GCS пытается соединить конфигурации через текущий граф выпуклых областей.
  4. При недостаточном покрытии или неудаче GCS fallback-ветка обновляет двунаправленный путь RRT* и сокращает его равномерным или экспериментальным smart-алгоритмом.
  5. IRIS выращивает вокруг этих seed выпуклые области без столкновений.
  6. Неизбыточные области обновляют граф, после чего GCS запускается повторно.
  7. Расширенное покрытие остаётся доступным для следующих запросов процесса.

Такое онлайн-обновление — предмет исследования проекта. Оно не гарантирует, что будет найден любой существующий путь или что расширение всегда быстрее построения статического покрытия для любой нагрузки. Время стандартного запуска включает baseline RRT* и обычно TrajOpt даже при успехе GCS. Для TrajOpt нужен совместимый solver; без него baseline не вернёт успешную оптимизированную траекторию.

Компоненты

Модуль Ответственность
config.py Не зависящая от Drake валидация пользовательских параметров
scenes.py Встроенные конфигурации сцен и сборка диаграмм Drake
planners/online.py Цикл запросов и координация планировщиков
planners/gcs.py Пути по графу выпуклых областей конфигурационного пространства
planners/rrt_star.py Семплирующий запасной планировщик и выбор ключевых точек
regions/iris.py Построение и сохранение областей IRIS без столкновений
visualization.py Состояние Meshcat, маркеры, пути и анимации
metrics.py Слабо связанный с зависимостями расчёт качества траекторий

Graphs of Convex Sets

Каждая вершина представляет выпуклую область конфигурационного пространства. Рёбра соединяют пересекающиеся области. GCS оптимизирует непрерывную траекторию через связную последовательность областей, поэтому разорванное или неполное покрытие может помешать текущему графу решить запрос.

IRIS и запасной RRT*

RRT* строит запасной маршрут через свободное конфигурационное пространство. Точки этого маршрута служат seed, а не готовыми выпуклыми областями. IRIS раздувает каждый seed до выпуклого множества без столкновений с учётом локальной геометрии и поведения solver. Проверка избыточности ограничивает дублирование перед перестройкой графа.

Границы пакета

Стабильные точки входа версии 0.1.0 экспортируются из online_gcs. Внутренности планировщиков, приватные методы, словари статистики, пути визуализации и скрипты экспериментов могут измениться до 1.0. Парсер CLI не загружает Drake и импортирует тяжёлые классы только после успешной валидации аргументов.