ФАЙЛ "MAIN.PY"
Файл "Main.py" является основным файлом для дальнейшего управления всеми файлами.
Задачи файла "MAIN.PY"
1. Установка соединения с различными сервисами (RTSP, YOLO, ArUco и т.д.).
2. Загрузка и обработка данных (карты ArUco и видеопотока).
3. Обнаружение маркеров и объектов на видеоизображении.
4. Управление состоянием ровера (перемещение к маркерам, управление светом и т.д.).
5. Корректное завершение работы (закрытие соединений и остановка потоков).
ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕК
- asyncio: Модуль для асинхронного программирования.
- contextlib: Модуль для управления контекстными менеджерами.
- socket: Модуль для сетевого взаимодействия.
- threading: Модуль для работы с потоками.
- aiofiles: Библиотека для асинхронной работы с файлами.
- logging: Модуль для ведения логов.
- Server_Controller: Импортирует классы Attachments и Site_run для управления внешними устройствами и веб-сервером.
- queue.SimpleQueue: Простая очередь для межпоточной коммуникации.
- Contact_state: Импортирует класс ContactState для представления состояния ровера.
- plotly.graph_objs: Библиотека для создания интерактивных графиков и визуализаций.
- Contact_controller: Импортирует классы SimulationController и RoverController для управления ровером.
- video_processing: Импортирует классы Connect_aruco и Connect_yolo для обработки видео.
КОНФИГУРАЦИЯ ПОДКЛЮЧЕНИЯ
Этот блок кода задает настройки подключения, такие как IP-адреса, порты и токен аутентификации. Обратите внимание! Ваши данные могут отличаться от данных в примере, пропишите правильные данные.
СОЗДАНИЕ СОБЫТИЙ И ОЧЕРЕДЕЙ
Здесь создаются объекты для событий, очередей и начальное состояние ровера. Эти объекты помогают координировать работу различных частей программы.
ФУНКЦИЯ ЗАГРУЗКИ КАРТЫ ARUCO
Эта асинхронная функция загружает карту маркеров ArUco из файла. Она считывает файл построчно и извлекает идентификаторы маркеров и их координаты.
ОСНОВНАЯ ФУНКЦИЯ
Эта функция координирует работу всех компонентов системы, включая загрузку карты ArUco, управление состоянием ровера, обработку видео, обнаружение маркеров и объектов, а также управление ровером или симулятором. Функция включает опциональное использование симулятора и управления светом на ровере.
ЗАПУСК ПРОГРАММЫ
Этот блок кода запускает основную функцию main и обеспечивает корректное завершение работы программы, включая остановку потоков и закрытие событий.
Процесс подготовки кода:
Создайте файл с названием main.py
Поэтапно копируйте код в свой файл
Установите необходимые библиотеки: в данном случае не предустановлены библиотеки: aiofiles и plotly. В случае, если они у вас не установлены, выполните следующие действия:
Откройте терминал VS Code (Terminal -> New Termial или комбинацией Ctrl + Shift + `)
В терминале поочередно введите и запустите следующие команды: pip install aiofiles; pip install plotly
Так же в инициализации библиотек имеются такие библиотеки, как: Server_controller, Contact_state, Contact_controller и video_processing. Это не библиотеки файлов, это файлы, которые вызываются в main. Для того, чтобы код работал корректно, в окне иерархии должны быть эти файлы.
Last updated