# 3.8 Визуализатор эксперимента Визуализатор эксперимента используется для наблюдения за ходом симуляции и анализа качества работы алгоритма навигации. Он реализован в модуле `visualization.py` классом `VisualizationManager` и запускается в режиме выполнения маршрута. \section{Назначение визуализатора} Визуализатор объединяет в одном окне несколько источников диагностической информации. Это позволяет одновременно контролировать реальное положение БПЛА в симуляторе, положение, вычисленное алгоритмом визуальной одометрии, качество сопоставления кадров и динамику ошибки. В процессе эксперимента отображаются: \begin{itemize} \item график погрешности позиционирования по кадрам; \item глобальная карта с фактической траекторией и траекторией, восстановленной автопилотом; \item текущий целевой ориентир и уже пройденные контрольные точки; \item результат сопоставления признаков между последовательными кадрами; \item результат сопоставления текущего кадра с ближайшим эталонным ориентиром; \item визуализация движения ключевых точек и сетки гомографии. \end{itemize} \section{Структура окна} Окно визуализации построено как сетка из нескольких областей. Левая часть отвечает за численную и траекторную оценку: сверху расположен график ошибки, снизу -- карта перемещения. Правая и центральная части отведены под изображения, получаемые в ходе обработки кадров: сопоставление признаков, поиск ориентиров и отображение преобразования изображения. Такое размещение выбрано для того, чтобы во время запуска видеть не только итоговую метрику, но и причину изменения ошибки. Например, резкий рост погрешности можно сопоставить с отсутствием устойчивых ключевых точек или с ошибочным сопоставлением текущего кадра с эталонным. \section{Обновление данных} В режиме `run` объект `VisualizationManager` передаётся в автопилот и дополнительно обновляется из основного цикла симуляции. После обработки очередного кадра вызываются методы обновления целевого ориентира, траектории БПЛА, фактического положения и графика ошибки. Затем окно перерисовывается методом `update_display`. График ошибки строится как евклидово расстояние между координатами, рассчитанными автопилотом, и координатами симулятора. Для более удобного анализа поверх исходных значений может отображаться сглаженный тренд. \section{Использование при отладке} Визуализатор выполняет роль инструмента отладки. Он позволяет проверять: \begin{itemize} \item устойчивость визуальной одометрии на соседних кадрах; \item корректность выбора ближайшего ориентира; \item влияние крена, тангажа и изменения масштаба на ошибку; \item моменты, в которые автопилот переходит к следующей целевой точке; \item расхождение между фактической траекторией и траекторией, восстановленной по изображениям. \end{itemize} Таким образом, визуализатор связывает численные результаты эксперимента с визуальными признаками, по которым алгоритм принимает решение.