This commit is contained in:
2026-05-28 17:30:54 +03:00
parent fc072d798e
commit 6477ce0776
16 changed files with 604 additions and 39 deletions

View File

@@ -0,0 +1,71 @@
# 3.10 Параметры запуска и кэширование маршрутов
Основной сценарий работы с программой задаётся через аргументы командной строки в файле `main.py`. Это позволяет запускать систему в разных режимах, выбирать источник карт, задавать координаты эксперимента и переиспользовать ранее построенные маршруты.
\section{Режимы работы}
Ключевым параметром является `--mode`. Он определяет, какую часть эксперимента необходимо выполнить:
\begin{itemize}
\item `build` -- построение маршрута, сбор эталонных кадров и сохранение данных;
\item `run` -- запуск симуляции по ранее сохранённому маршруту;
\item `standalone` -- последовательное выполнение построения и запуска в одном процессе.
\end{itemize}
Разделение на режимы `build` и `run` позволяет сначала подготовить набор данных, а затем многократно запускать навигационный алгоритм на одинаковом маршруте.
\section{Поддерживаемые аргументы}
Программа поддерживает следующие параметры:
\begin{itemize}
\item `--mode` -- режим работы программы: `standalone`, `build` или `run`;
\item `--name` -- имя маршрута, под которым сохраняются или загружаются данные;
\item `--lat` -- широта начальной области карты;
\item `--lon` -- долгота начальной области карты;
\item `--reference` -- источник эталонных изображений: `google` или `yandex`;
\item `--simulation` -- картографический источник, в котором выполняется симуляция: `google` или `yandex`;
\item `--ref-min-distance` -- минимальное расстояние между эталонными кадрами;
\item `--debug-fps` -- включение отладочного вывода, связанного со скоростью обработки кадров;
\item `--debug-landmark` -- включение отладочного вывода, связанного с поиском ориентиров.
\end{itemize}
Параметры `--reference` и `--simulation` могут отличаться. Это позволяет проводить эксперименты, в которых эталонные изображения получены из одного картографического сервиса, а движение моделируется в другом. Такой сценарий используется для проверки устойчивости алгоритма к различиям в цветовой палитре, детализации и способе отрисовки спутниковых снимков.
\section{Кэширование маршрутов}
При запуске в режиме `build` программа создаёт каталог `trajectories/<name>/`. В него сохраняются:
\begin{itemize}
\item каталог `chunks/` с эталонными изображениями маршрута;
\item файл `positions.pkl` с координатами контрольных точек, позициями кадров и начальной геолокацией;
\item данные, необходимые для повторного запуска без повторного ручного построения маршрута.
\end{itemize}
Файл `positions.pkl` содержит словарь с полями `points`, `chunk_positions` и `initial_geolocation`. Поле `points` хранит маршрут в координатах карты, `chunk_positions` связывает сохранённые кадры с положением БПЛА, а `initial_geolocation` используется для открытия карты в той же области при повторном запуске.
\section{Повторные запуски и сравнение}
В режиме `run` программа загружает данные из `trajectories/<name>/`, восстанавливает список эталонных кадров и запускает симуляцию без повторного этапа разметки. Параметр `--ref-min-distance` позволяет управлять плотностью используемых ориентиров: чем больше значение, тем меньше эталонных кадров участвует в коррекции позиции.
За счёт кэширования один и тот же маршрут можно использовать для серии сравнительных экспериментов. Например, можно запускать симуляцию с разными картографическими источниками, разной плотностью ориентиров или различными отладочными режимами, сохраняя неизменной геометрию маршрута и набор исходных данных.
\section{Примеры запуска}
Построение нового маршрута:
```bash
python main.py --mode build --name route_01 --reference google --lat 49.103814 --lon 55.794258
```
Повторный запуск по сохранённому маршруту:
```bash
python main.py --mode run --name route_01 --simulation yandex --ref-min-distance 100
```
Полный запуск без разделения на этапы:
```bash
python main.py --mode standalone --name route_02 --reference google --simulation yandex
```

View File

@@ -0,0 +1,3 @@
# 3.10 Параметры запуска и кэширование маршрутов
Описание параметров запуска и кэширования маршрутов находится в файле 3.10_cli_and_cache.md