Autopilot
Симуляция автопилота по маршруту на карте.
Требования
- Python 3.10+
- Chrome/Chromium
- Выключенный VPN
Установка
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
Запуск
python main.py --mode standalone --name test_route
Команда построит маршрут и запустит симуляцию. Результаты сохраняются в trajectories.
Можно выполнить шаги отдельно:
python main.py --mode markup --name test_route
python main.py --mode build --name test_route
python main.py --mode run --name test_route
markup только скачивает карту и сохраняет разметку маршрута. build наполняет маршрут chunks и служебными данными. Если при build папки маршрута ещё нет, сначала автоматически выполнится разметка, затем наполнение. standalone выполняет весь путь: разметка, build и run.
Дополнительно можно указать координаты и карты:
python main.py --mode standalone --name test_route --lat 49.103814 --lon 55.794258 --reference google --simulation yandex
Флаги
--mode- режим работы:standalone,markup,build,run.--name- название маршрута.--lat,--lon- координаты начальной области.--reference- карта для эталонных изображений:googleилиyandex.--simulation- карта для симуляции:googleилиyandex.--ref-min-distance- минимальное расстояние между эталонами.--debug-fps- вывести отладку FPS.--debug-landmark- вывести отладку ориентиров.--use-sian-similarity- выбирать ориентир через SiaN Similarity.--use-gan- преобразовывать эталонные изображения через GAN.--no-landmarks- отключить эталоны и лететь только по межкадровой одометрии.--interframe-method- метод межкадрового сравнения:optical-flow,orb,akaze,sift,brisk.--landmark-method- метод сравнения с эталонами:orb,akaze,sift,brisk.
Автоматические серии запусков
run_batch.ps1 запускает серию экспериментов по уже построенным маршрутам. Скрипт не делает ручную разметку: маршруты должны быть заранее подготовлены через markup и build, либо через standalone. Каждый запуск вызывает python main.py --mode run ..., а результаты сохраняются обычным способом в test_runs.
Минимальный запуск для одного маршрута:
.\run_batch.ps1 -Routes test_route
Если -Routes не указан, скрипт запустит все маршруты из trajectories, у которых есть positions.pkl:
.\run_batch.ps1
Несколько маршрутов можно указать через запятую:
.\run_batch.ps1 -Routes 2026-05-31_15-32-53,2026-05-31_15-21-17
Или через текстовый файл, по одному маршруту на строку:
.\run_batch.ps1 -RouteListPath .\routes.txt
Пример routes.txt:
2026-05-31_15-32-53
2026-05-31_15-21-17
# строки с комментариями игнорируются
Прогон разных методов межкадрового сравнения:
.\run_batch.ps1 `
-Routes test_route `
-InterframeMethods optical-flow,orb,akaze,sift,brisk `
-LandmarkMethods orb
Прогон разных методов эталонов:
.\run_batch.ps1 `
-Routes test_route `
-InterframeMethods optical-flow `
-LandmarkMethods orb,akaze,sift,brisk
Прогон с эталонами и без эталонов:
.\run_batch.ps1 `
-Routes test_route `
-UseLandmarksValues true,false
Полная матрица экспериментов:
.\run_batch.ps1 `
-Routes test_route `
-SimulationMaps yandex,google `
-InterframeMethods optical-flow,orb,akaze `
-LandmarkMethods orb,sift `
-UseLandmarksValues true,false `
-UseSianSimilarityValues false,true `
-UseGanValues false,true `
-RefMinDistances 75,100
Для проверки команд без запуска Selenium:
.\run_batch.ps1 -DryRun
Флаги run_batch.ps1
| Флаг | Описание | Пример |
|---|---|---|
-Routes |
Список имён маршрутов из trajectories. Можно через запятую. |
-Routes route1,route2 |
-RouteListPath |
Путь к txt-файлу со списком маршрутов, по одному на строку. | -RouteListPath .\routes.txt |
-SimulationMaps |
Карты, на которых выполнять симуляцию. | -SimulationMaps yandex,google |
-InterframeMethods |
Методы межкадрового сравнения. | -InterframeMethods optical-flow,orb,sift |
-LandmarkMethods |
Методы сравнения с эталонами. | -LandmarkMethods orb,akaze,brisk |
-UseLandmarksValues |
Использовать эталоны или лететь только по межкадровой одометрии. | -UseLandmarksValues true,false |
-UseSianSimilarityValues |
Включать выбор эталона через SiaN Similarity. | -UseSianSimilarityValues false,true |
-UseGanValues |
Включать GAN-преобразование эталонных изображений. | -UseGanValues false,true |
-RefMinDistances |
Минимальное расстояние между загружаемыми эталонами. | -RefMinDistances 50,100,150 |
-UseSianSimilarity |
Быстрый вариант -UseSianSimilarityValues true. |
-UseSianSimilarity |
-UseGan |
Быстрый вариант -UseGanValues true. |
-UseGan |
-DryRun |
Только напечатать команды, не запускать Selenium и симуляцию. | -DryRun |