write chapter_3
This commit is contained in:
59
dissertation/chapter_3/3.4_autopilot/3.4_autopilot.md
Normal file
59
dissertation/chapter_3/3.4_autopilot/3.4_autopilot.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# 3.4 Автопилот
|
||||
|
||||
Автопилот является ключевым компонентом системы навигации БПЛА и реализован в файле `autopilot.py`. Класс `AutoPilot` наследуется от базового класса `Pilot` и обеспечивает управление полётом на основе визуальной одометрии.
|
||||
|
||||
\section{Структура автопилота}
|
||||
|
||||
Автопилот хранит следующие данные:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Позиция} — текущее положение БПЛА (объект класса Position)
|
||||
\item \textbf{Ориентиры} — набор ключевых кадров (VisionChunk) с известными позициями
|
||||
\item \textbf{Целевой ориентир} — индекс текущего ориентира для коррекции
|
||||
\item \textbf{Предыдущий кадр} — последний обработанный кадр
|
||||
\end{itemize}
|
||||
|
||||
\section{Оптический поток}
|
||||
|
||||
Метод `calculate_optical_flow` вычисляет оптический поток между двумя последовательными кадрами с использованием алгоритма Лукаса-Канаде:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Создание сетки точек для отслеживания (шаг 20 пикселей)
|
||||
\item Вычисление разреженного оптического потока
|
||||
\item Фильтрация по ошибке предсказания (порог 12.0)
|
||||
\item Центрирование координат относительно центра изображения
|
||||
\end{enumerate}
|
||||
|
||||
\section{Коррекция по ориентирам}
|
||||
|
||||
Метод `get_position_by_chunk` определяет позицию БПЛА путём сопоставления текущего кадра с ближайшим ориентиром:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Поиск ближайшего ориентира по евклидову расстоянию
|
||||
\item Сопоставление ключевых точек между кадрами
|
||||
\item Оценка матрицы гомографии
|
||||
\item Проверка качества гомографии
|
||||
\item Обновление позиции при выполнении критериев
|
||||
\end{enumerate}
|
||||
|
||||
\section{Критерии качества}
|
||||
|
||||
Для принятия коррекции позиции используются следующие критерии:
|
||||
|
||||
\begin{itemize}
|
||||
\item Минимальное количество инлайеров (не менее 6)
|
||||
\item Доля инлайеров от общего числа сопоставлений (не менее 60\%)
|
||||
\item Детерминант матрицы гомографии (от 0.1 до 10.0)
|
||||
\item Средняя ошибка репроекции (не более 3.0 пикселей)
|
||||
\end{itemize}
|
||||
|
||||
\section{Команды управления}
|
||||
|
||||
Автопилот формирует команды управления в виде объекта `PilotCommand`, содержащего:
|
||||
|
||||
\begin{itemize}
|
||||
\item `dangle` — изменение угла курса
|
||||
\item `velocity` — скорость движения
|
||||
\item `stop` — флаг остановки
|
||||
\item `proccessing_time` — время обработки кадра
|
||||
\end{itemize}
|
||||
5
dissertation/chapter_3/3.4_autopilot/readme.md
Normal file
5
dissertation/chapter_3/3.4_autopilot/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# 3.4 Автопилот
|
||||
|
||||
## Содержание раздела
|
||||
|
||||
Описание автопилота находится в файле 3.4_autopilot.md
|
||||
Reference in New Issue
Block a user