Files
2026-04-01 14:00:38 +03:00

4.2 KiB
Raw Permalink Blame History

3.2 Модель позиционирования

Модель позиционирования описывает положение и ориентацию беспилотного летательного аппарата в трёхмерном пространстве. Класс Position (файл position.py) инкапсулирует все параметры состояния БПЛА и операции над ними.

\section{Параметры позиции}

Позиция БПЛА характеризуется следующими параметрами:

\begin{itemize} \item x, y — координаты в горизонтальной плоскости (пиксели карты) \item z — масштаб изображения (уровень приближения) \item yaw — угол рыскания (поворот вокруг вертикальной оси) \item pitch — угол тангажа (поворот вокруг поперечной оси) \item roll — угол крена (поворот вокруг продольной оси) \end{itemize}

\section{Матрица гомографии}

Матрица гомографии связывает координаты точек на двух изображениях одной и той же плоскости. Для БПЛА гомография описывает преобразование между последовательными кадрами видеопоследовательности.

Матрица гомографии вычисляется как:

\begin{equation} H = K_{out} \cdot R \cdot T \cdot K_{in}^{-1} \end{equation}

где K_{in} и K_{out} — матрицы внутренних параметров камеры, R — матрица вращения, T — матрица трансляции.

\section{Матрица вращения}

Матрица вращения представляет собой комбинацию поворотов вокруг трёх осей:

\begin{equation} R = R_x(roll) \cdot R_y(pitch) \cdot R_z(yaw) \end{equation}

Элементарные матрицы поворота имеют вид:

\begin{equation} R_x(\gamma) = \begin{pmatrix} 1 & 0 & 0 \ 0 & \cos\gamma & -\sin\gamma \ 0 & \sin\gamma & \cos\gamma \end{pmatrix} \end{equation}

\begin{equation} R_y(\theta) = \begin{pmatrix} \cos\theta & 0 & \sin\theta \ 0 & 1 & 0 \ -\sin\theta & 0 & \cos\theta \end{pmatrix} \end{equation}

\begin{equation} R_z(\psi) = \begin{pmatrix} \cos\psi & -\sin\psi & 0 \ \sin\psi & \cos\psi & 0 \ 0 & 0 & 1 \end{pmatrix} \end{equation}

\section{Применение гомографии к позиции}

Метод iapply позволяет обновить позицию БПЛА на основе найденной матрицы гомографии. Алгоритм включает:

\begin{enumerate} \item Декомпозицию гомографии на компоненты R и t \item Вычисление оптимальной трансформации \item Обновление координат и углов ориентации \end{enumerate}

Трансформация координат выполняется с учётом фокусного расстояния камеры:

\begin{equation} x_{new} = x_{old} - T_x \cdot K_{focus} \end{equation} \begin{equation} y_{new} = y_{old} + T_y \cdot K_{focus} \end{equation}

\section{Операции над позицией}

Класс Position поддерживает арифметические операции:

\begin{itemize} \item Умножение на скаляр — масштабирование координат \item Деление на скаляр — обратное масштабирование \item Копирование — создание полной копии состояния \end{itemize}

Эти операции используются при интерполяции траекторий и преобразовании координат.