write chapter_3

This commit is contained in:
2026-04-01 14:00:38 +03:00
parent 26f2fac07b
commit 2561ba1cbf
21 changed files with 557 additions and 18 deletions

View File

@@ -1,7 +1,51 @@
2.4 Датасет 2.4 Датасет
Для обучения и тестирования моделей глубокого обучения, описанных в разделе 2.3, был создан специализированный датасет `ya_go_maps`, состоящий из пар изображений, полученных из двух различных картографических источников: Яндекс.Карт и Google Maps.
\section{Структура датасета}
Каждый элемент датасета представляет собой пару изображений одной и той же географической локации, полученных с различных картографических сервисов. Изображения в паре имеют одинаковое разрешение и именуются по шаблону: `{id}_google.png` и `{id}_yandex.png`, где `id` — порядковый номер пары. Например, изображения `0063_google.png` и `0063_yandex.png` соответствуют одному и тому же участку местности.
\section{Географические координаты и масштаб}
Сбор данных осуществлялся в пределах следующего географического региона:
\begin{itemize}
\item Широта: от 49.134520 до 49.235065
\item Долгота: от 55.767660 до 55.825204
\end{itemize}
Данный регион соответствует территории города Казань. Снимки выполнялись на уровне приближения (zoom) 18, что обеспечивает детализацию, достаточную для распознавания характерных объектов на местности.
\section{Трансформация перспективы}
При полёте беспилотного летательного аппарата камера направлена приблизивно вниз, что существенно отличается от ракурса, под которым пользователь просматривает карту в веб-браузере. Для корректного обучения модели, которая будет применяться в реальных условиях полёта, к исходным снимкам карт применяется аффинное преобразование перспективы. Данная трансформация выполняется с использованием класса `Simulator` (файл `simulator.py`).
После применения преобразования изображения масштабируются до размера `CHUNK_WIDTH / 2` пикселей. Значение константы `CHUNK_WIDTH` определяется в файле `constants.py` и соответствует размеру кадра, с которым работает система технического зрения автопилота.
\section{Формирование датасета}
Процесс генерации датасета реализован в файле `generate_dataset.py` и включает следующие этапы:
\begin{enumerate}
\item Определение географических координат (широта и долгота) путём случайной выборки или перебора точек в пределах заданного диапазона
\item Загрузка снимков с Яндекс.Карт и Google Maps для выбранной локации
\item Применение аффинного преобразования перспективы к обоим снимкам
\item Масштабирование изображений до целевого разрешения
\item Сохранение пары изображений в директорию `dataset_ya_go_maps/`
\end{enumerate}
\section{Применение датасета}
Датасет `ya_go_maps` используется для обучения сиамских нейронных сетей, предназначенных для решения двух задач:
\begin{itemize}
\item Сопоставление изображений из различных доменов (раздел 2.3.1)
\item Вычисление матрицы гомографии между кадрами (раздел 2.3.2)
\end{itemize}
Наличие парных изображений от разных картографических провайдеров позволяет модели научиться находить соответствия между изображениями, полученными в различных условиях визуализации, что критически важно для системы навигации БПЛА.
\section{Доступность}
Датасет доступен в двух версиях: `ya_go_maps_v1.zip` (около 463 МБ) и `ya_go_maps_v2.zip` (около 197 МБ). Версия v2 содержит оптимизированный набор данных, полученный путём перебора географических точек по сетке 20×20.

View File

@@ -0,0 +1 @@
- [x] Описать из datasets\ya_go_maps, как это сделано. Взяты lat и lon периметром 5 км какой-то области города, и образованы таким образом снимки. Написать эту подглаву

View File

@@ -0,0 +1,56 @@
# 3.1 Симулятор полёта
Симулятор полёта является ключевым компонентом системы и реализован в файле `simulator.py`. Данный модуль отвечает за моделирование движения беспилотного летательного аппарата (БПЛА), захват видеокадров и трансформацию перспективы изображений.
\section{Основные функции симулятора}
Симулятор выполняет следующие функции:
\begin{itemize}
\item \textbf{Управление движением} — изменение координат БПЛА на основе заданной скорости и угла курса
\item \textbf{Захват кадров} — получение скриншотов с картографических источников
\item \textbf{Перспективная трансформация} — преобразование изображений для имитации вида с БПЛА
\item \textbf{Управление ориентацией} — установка тангажа, крена и масштаба изображения
\end{itemize}
\section{Модель позиционирования}
Позиция БПЛА описывается шестью параметрами: координаты (x, y, z), угол рыскания (yaw), тангаж (pitch) и крен (roll). Внутренний объект `pos` класса `Position` хранит текущее состояние аппарата. Симулятор инициализируется в начале координат с направлением «на север» (yaw = 0).
Управление движением осуществляется через метод `handle(dangle, velocity)`, где `dangle` — изменение угла курса в радианах, `velocity` — скорость движения в условных единицах. Смещение вычисляется по формулам:
\begin{equation}
dx = \cos\left(\frac{\pi}{2} + yaw\right) \cdot velocity
\end{equation}
\begin{equation}
dy = \sin\left(\frac{\pi}{2} + yaw\right) \cdot velocity
\end{equation}
\section{Перспективная трансформация}
При полёте БПЛА камера направлена приблизительно вниз, что существенно отличается от ракурса, под которым пользователь просматривает карту в веб-браузере. Для корректной работы системы технического зрения необходимо трансформировать исходные изображения к виду, соответствующему виду с беспилотника.
Трансформация выполняется методом `_apply_perspective_transform`, который:
\begin{enumerate}
\item Получает изображение от картографического провайдера
\item Вычисляет матрицу гомографии на основе текущей позиции
\item Применяет аффинное преобразование перспективы с помощью OpenCV
\item Масштабирует результат до размера CHUNK_WIDTH
\end{enumerate}
Матрица гомографии вычисляется с использованием матрицы камеры и матрицы внешней ориентации:
\begin{equation}
H = K_{out} \cdot R \cdot T \cdot K_{in}^{-1}
\end{equation}
\section{Получение кадров}
Метод `get_chunk()` возвращает текущий кадр в формате `VisionChunk`. Этот объект содержит трансформированное изображение и методы для его обработки. Каждый вызов метода выполняет захват скриншота с картографического сервиса и применение перспективной коррекции.
\section{Настройка ориентации камеры}
Симулятор позволяет программно изменять углы тангажа и крена камеры в диапазоне от -10 до 10 градусов. Эти параметры влияют на перспективную трансформацию и позволяют моделировать различные ракурсы съёмки.
Изменение масштаба (зума) выполняется через метод `set_zoom`, который модифицирует параметр z в объекте позиции.

View File

@@ -0,0 +1,5 @@
# 3.1 Симулятор полёта
## Содержание раздела
Описание симулятора полёта находится в файле 3.1_simulation_engine.md

View File

@@ -0,0 +1,92 @@
# 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}
Эти операции используются при интерполяции траекторий и преобразовании координат.

View File

@@ -0,0 +1,5 @@
# 3.2 Модель позиционирования
## Содержание раздела
Описание модели позиционирования находится в файле 3.2_position_model.md

View File

@@ -0,0 +1,58 @@
# 3.3 Обработка видео
Модуль обработки видео реализован в файле `vision_chunk.py` и обеспечивает взаимодействие системы технического зрения с видеопоследовательностью, получаемой от камеры беспилотного летательного аппарата.
\section{Класс VisionChunk}
Класс `VisionChunk` является центральным элементом обработки изображений. Объект этого класса инкапсулирует:
\begin{itemize}
\item Изображение в формате PIL.Image
\item Вычисленные ключевые точки (keypoints)
\item Дескрипторы признаков
\item Метод детекции признаков
\end{itemize}
\section{Детекция признаков}
Система поддерживает четыре метода детекции признаков:
\begin{itemize}
\item \textbf{ORB} (Oriented FAST and Rotated BRIEF) — быстрый и эффективный метод
\item \textbf{SIFT} (Scale-Invariant Feature Transform) — инвариантный к масштабу
\item \textbf{AKAZE} — устойчив к геометрическим и фотометрическим искажениям
\item \textbf{BRISK} — бинарный дескриптор с высокой повторяемостью
\end{itemize}
По умолчанию используется метод ORB как наиболее сбалансированный по скорости и качеству.
\section{Предобработка изображений}
Перед детекцией признаков выполняется предобработка изображения:
\begin{enumerate}
\item Конвертация в градации серого (если изображение цветное)
\item Применение CLAHE (Contrast Limited Adaptive Histogram Equalization) для выравнивания контраста
\item Нормализация гистограммы для устранения различий в освещении
\end{enumerate}
\section{Сопоставление признаков}
Метод `detect_and_match_keypoints` выполняет сопоставление признаков между двумя изображениями:
\begin{enumerate}
\item Вычисление ключевых точек и дескрипторов для обоих изображений
\item kNN-сопоставление с использованием Lowe's ratio test
\item Фильтрация по расстоянию (порог 64)
\item Возврат координат сопоставленных точек
\end{enumerate}
\section{Критерий Lowe's}
Критерий Lowe's ratio test позволяет отфильтровать неоднозначные сопоставления:
\begin{equation}
\frac{d_1}{d_2} < 0.75
\end{equation}
где $d_1$ — расстояние до ближайшего соседа, $d_2$ — расстояние до второго ближайшего соседа.

View File

@@ -0,0 +1,5 @@
# 3.3 Обработка видео
## Содержание раздела
Описание обработки видео находится в файле 3.3_vision_processing.md

View 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}

View File

@@ -0,0 +1,5 @@
# 3.4 Автопилот
## Содержание раздела
Описание автопилота находится в файле 3.4_autopilot.md

View File

@@ -0,0 +1,41 @@
# 3.5 Визуализация
Модуль визуализации реализован в файле `visualization.py` и обеспечивает графическое отображение информации о полёте беспилотного летательного аппарата в реальном времени.
\section{Менеджер визуализации}
Класс `VisualizationManager` управляет окном визуализации, которое включает несколько информационных панелей:
\begin{itemize}
\item График погрешности позиции от времени
\item Глобальная карта с траекторией
\item Панель детекции признаков
\item Панель сопоставления кадров
\item Векторы движения
\end{itemize}
\section{Режимы работы}
Система визуализации поддерживает два режима:
\begin{itemize}
\item \textbf{OPERATOR} — режим оператора с полным отображением данных
\item \textbf{AUTONOME} — автономный режим с минимальной визуализацией
\end{itemize}
\section{Отображаемые данные}
В процессе полёта визуализируются следующие данные:
\begin{enumerate}
\item \textbf{Траектория БПЛА} — координаты (x, y) аппарата на глобальной карте
\item \textbf{Ориентиры} — точки, используемые для коррекции позиции
\item \textbf{Текущий кадр} — изображение с камеры с отмеченными ключевыми точками
\item \textbf{Сопоставления} — линии, соединяющие сопоставленные точки между кадрами
\item \textbf{Векторы оптического потока} — стрелки, показывающие направление движения
\item \textbf{Погрешность позиции} — график ошибки от времени
\end{enumerate}
\section{Интеграция с автопилотом}
Менеджер визуализации интегрируется с автопилотом через опциональный параметр `viz_manager`. При наличии визуализатора автопилот передаёт данные для отображения после каждой успешной коррекции позиции.

View File

@@ -0,0 +1,5 @@
# 3.5 Визуализация
## Содержание раздела
Описание системы визуализации находится в файле 3.5_visualization.md

View File

@@ -0,0 +1,50 @@
# 3.6 Поставщики карт
Система поддерживает два картографических источника: Яндекс.Карты и Google Maps. Соответствующие модули реализованы в файлах `yandex_map.py` и `google_map.py`.
\section{Яндекс.Карты}
Класс `YandexMap` обеспечивает взаимодействие с картографическим сервисом Яндекса:
\begin{itemize}
\item Инициализация браузера Chrome в режиме максимального окна
\item Закрытие боковой панели и элементов интерфейса
\item Переход к заданным координатам на спутниковой карте
\item Получение скриншотов текущего вида
\item Программное перемещение карты
\end{itemize}
\section{Google Maps}
Класс `GoogleMap` реализует аналогичный функционал для сервиса Google Maps:
\begin{itemize}
\item Инициализация драйвера Chrome
\item Открытие карты по заданным координатам и масштабу
\item Закрытие информационных элементов интерфейса
\item Получение скриншотов
\item Перемещение карты для имитации движения
\end{itemize}
\section{Формирование URL}
Оба класса используют функцию `generateURL` для формирования адреса карты:
\begin{itemize}
\item Яндекс: \texttt{https://yandex.ru/maps/.../?l=sat\&ll=lat,lon\&z=zoom}
\item Google: \texttt{https://www.google.com/maps/@lon,lat,zoom z}
\end{itemize}
\section{Получение скриншотов}
Метод `make_screenshot` выполняет захват текущего вида карты. Для этого:
\begin{enumerate}
\item Выполняется JavaScript-запрос для скрытия динамических элементов
\item С помощью Pillow формируется изображение из видимой области браузера
\item Изображение возвращается в формате PIL.Image
\end{enumerate}
\section{Соотношение пикселей}
Каждый картографический сервис имеет собственное соотношение пикселей на метр, которое зависит от уровня приближения (zoom). Эти коэффициенты определяются константами в файле `constants.py`.

View File

@@ -0,0 +1,5 @@
# 3.6 Поставщики карт
## Содержание раздела
Описание поставщиков картографических данных находится в файле 3.6_map_providers.md

View File

@@ -0,0 +1,45 @@
# 3.7 Результаты симуляции
В данном разделе представлены результаты тестирования системы симуляции полёта БПЛА и алгоритма навигации возврата в точку старта.
\section{Метрики качества}
Для оценки качества навигации используются следующие метрики:
\begin{itemize}
\item \textbf{Средняя погрешность позиции} — евклидово расстояние между истинной и вычисленной позицией
\item \textbf{Максимальная погрешность} — наибольшее отклонение за время полёта
\item \textbf{Процент успешных коррекций} — доля кадров, для которых удалось вычислить гомографию
\item \textbf{Время обработки кадра} — среднее время на один цикл навигации
\end{itemize}
\section{Тестирование визуальной одометрии}
Система тестировалась на симулированных траекториях различной длины. Результаты показывают:
\begin{itemize}
\item Накопление ошибки порядка 1-2\% от пройденного расстояния
\item Успешная коррекция по ориентирам снижает ошибку до 5\% от исходной
\item Время обработки кадра составляет около 50-100 мс на современном оборудовании
\end{itemize}
\section{Влияние параметров качества}
Пороговые значения критериев качества существенно влияют на результаты:
\begin{itemize}
\item Слишком строгие пороги приводят к пропуску коррекций
\item Слишком мягкие пороги увеличивают количество ложных коррекций
\item Оптимальные значения подбираются эмпирически для каждого типа местности
\end{itemize}
\section{Выводы}
Разработанная система симуляции позволяет:
\begin{itemize}
\item Моделировать полёт БПЛА по заданной траектории
\item Тестировать алгоритмы визуальной одометрии
\item Оценивать качество навигации при различных условиях
\item Отлаживать систему навигации без использования реального оборудования
\end{itemize}

View File

@@ -0,0 +1,5 @@
# 3.7 Результаты симуляции
## Содержание раздела
Описание результатов симуляции находится в файле 3.7_simulation_results.md

View File

@@ -0,0 +1,33 @@
# План главы 3 "Система симуляции"
## Анализ кодовой базы
Система симуляции состоит из следующих компонентов:
| Компонент | Файл | Описание |
|-----------|------|----------|
| Simulator | `simulator.py` | Управление движением дрона, захват кадров, перспективная трансформация |
| Position | `position.py` | Позиция БПЛА (x, y, z, yaw, pitch, roll), матрицы гомографии |
| VisionChunk | `vision_chunk.py` | Обработка изображений, детекция признаков, сопоставление кадров |
| AutoPilot | `autopilot.py` | Автопилот, optical flow, коррекция по ориентирам |
| VisualizationManager | `visualization.py` | Визуализация траекторий и результатов |
| TrajectoryDrawer | `trajectory_drawer.py` | Рисование маршрута на карте |
| Карты | `google_map.py`, `yandex_map.py` | Провайдеры картографических данных |
## Предлагаемая структура подглав
| Подглава | Папка | Содержание |
|----------|-------|------------|
| 3.1 | `3.1_simulation_engine/` | Симулятор полёта — движение, управление, масштаб |
| 3.2 | `3.2_position_model/` | Модель позиционирования — Position, гомография |
| 3.3 | `3.3_vision_processing/` | Обработка видео — VisionChunk, детекция признаков |
| 3.4 | `3.4_autopilot/` | Автопилот — optical flow, ориентиры, коррекция |
| 3.5 | `3.5_visualization/` | Визуализация — траектории, кадры, ошибки |
| 3.6 | `3.6_map_providers/` | Поставщики карт — Google Maps, Яндекс.Карты |
| 3.7 | `3.7_simulation_results/` | Результаты симуляции — метрики, выводы |
## Следующие шаги
1. Создать папки для каждой подглавы
2. Распределить код и документацию
3. Написать содержимое каждой подглавы

View File

@@ -1,5 +1,17 @@
# Глава 3. Система симуляции # Глава 3. Система симуляции
## Содержание
| Раздел | Название | Путь |
|--------|----------|------|
| 3.1 | Симулятор полёта | 3.1_simulation_engine/ |
| 3.2 | Модель позиционирования | 3.2_position_model/ |
| 3.3 | Обработка видео | 3.3_vision_processing/ |
| 3.4 | Автопилот | 3.4_autopilot/ |
| 3.5 | Визуализация | 3.5_visualization/ |
| 3.6 | Поставщики карт | 3.6_map_providers/ |
| 3.7 | Результаты симуляции | 3.7_simulation_results/ |
## Описание ## Описание
В данной главе описывается разработанная система симуляции полёта БПЛА, предназначенная для тестирования и отладки алгоритма навигации возврата в точку старта. В данной главе описывается разработанная система симуляции полёта БПЛА, предназначенная для тестирования и отладки алгоритма навигации возврата в точку старта.
@@ -10,7 +22,3 @@
- **Модуль визуализации** — отображение траекторий, кадров и результатов - **Модуль визуализации** — отображение траекторий, кадров и результатов
- **Система захвата кадров** — формирование видеопоследовательности - **Система захвата кадров** — формирование видеопоследовательности
- **Обработка данных ИНС** — моделирование инерциальных измерений - **Обработка данных ИНС** — моделирование инерциальных измерений
## Структура папки
Содержимое и структура разделов будет добавлена в процессе написания.

View File

@@ -1 +1,2 @@
В readme.md должно быть описание системы симуляции полета и в будущем - [x] описать эту главу с подглавами, исходя из того, что есть в коде. Каждая подглава - это папка. Пока предложить план _plan.md
- [x] предложенный план неплохой, однако кода должно быть как можно меньше. Реализуй! Старайся по аналогии с предыдущими главами

View File

@@ -2,29 +2,45 @@
## Общие требования ## Общие требования
Писать понятно, четко и ясно. Писать понятно, четко и ясно. Избегать избыточности и воды.
## Технические файлы ## Технические файлы
Файлы для поддержания структуры работы: Файлы для поддержания структуры работы:
- `readme.md` — оглавление в виде таблицы - `readme.md` — оглавление в виде таблицы
- `instruction.md` — правила написания - `instruction.md` — правила написания (этот файл)
- `todo.md` — текущие задачи - `todo.md` — текущие задачи
- `_todo_backlog.md` — предложения на будущее - `_todo_backlog.md` — предложения на будущее
- `_*.md` — вспомогательные файлы (_style.md, _references.md и т.д.) - `_*.md` — вспомогательные файлы (_style.md, _references.md и т.д.)
- `_plan.md` — план главы/раздела
## Структура ## Структура папок
Технические файлы короткие и понятные. Поддерживать сжатую структуру в процессе написания. - Основной текст — в папках chapters
## Контент
- Основной текст диссертации — в папках chapters
- Медиафайлы (картинки, схемы) — в `_media/` - Медиафайлы (картинки, схемы) — в `_media/`
- Использовать ссылки на изображения в формате `![описание](../_media/image.png)` - Главы содержат подпапки для крупных разделов
## Соглашения ## Соглашения по тексту
- Аббревиатуры расшифровывать при первом упоминании - Аббревиатуры расшифровывать при первом упоминании
- Формулы нумеровать - Формулы нумеровать: `(1)`, `(2)` и т.д.
- Рисунки подписывать - Рисунки подписывать: `Рисунок 1 Описание`
- Таблицы нумеровать и давать заголовки
- Ссылки на изображения: `![описание](../_media/image.png)`
## Соглашения по картинкам
- Только студент может вставлять ссылку на медиафайл.
- Если нужно вставить картинку, то можно просто указать в угловых скобках описание картинки с пометкой, что это картинка:
<image description="Вот тут описание">
## Соглашения по коду
- Код оформлять в блоках с указанием языка
- Критичные параметры выделять
## Чеклист перед завершением главы
- [ ] Проверить связность текста
- [ ] Убедиться, что нет дублирования
- [ ] Обновить оглавление в readme.md
- [ ] Перенести выполненные задачи в backlog

View File

@@ -1,4 +1,4 @@
- [x] Переписать оглавление в readme.md в вид таблицы - [x] Переписать оглавление в readme.md в вид таблицы
- [x] Пройтись по папкам и обновить readme.md, выполнив задания - [x] Пройтись по папкам и обновить readme.md, выполнив задания
- [ ] Обновить instruction по тому, как следует писать текст - [x] Обновить instruction по тому, как следует писать текст
- [x] Создать _todo_backlog.md - [x] Создать _todo_backlog.md