LittleSam129 2a7a380875 Lab042: fix a cross-reference broken by renumbering
The TX cyclic buffer row pointed at section 7, which became the signal
parameters when the hardware and environment sections were inserted. It
means the traps section, now 9.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 13:38:50 +03:00

SDR Rover Link

1. Назначение проекта

SDR Rover Link — учебно-исследовательский проект по разработке цифрового радиоканала для наземного робототехнического комплекса с использованием программно-определяемого радио — SDR, Software Defined Radio.

Проект должен пройти полный путь от передачи простого текстового пакета до передачи телеметрии и отдельных JPEG-изображений через реальный радиоканал.

Основная задача проекта — не только получить работающую систему, но и последовательно изучить все этапы цифровой радиосвязи:

  • формирование данных;
  • разбиение данных на пакеты;
  • контроль целостности;
  • исправление ошибок;
  • цифровую модуляцию;
  • формирование IQ-сигнала;
  • передачу через SDR;
  • приём и демодуляцию;
  • восстановление исходных данных.

2. Целевой сценарий

Разрабатываемая система предназначена для исследовательского наземного ровера.

Целевые требования:

Параметр Требование
Дальность связи до 10 км
Скорость ровера до 25 км/ч
Прямая радиовидимость может отсутствовать
Рабочие частоты ниже 350 МГц
Основной тип данных телеметрия и отдельные изображения
Формат изображения JPEG
Частота передачи изображений отдельные кадры, не видеопоток
Действие при потере связи безопасная остановка ровера

Дальность 10 км без прямой видимости является целевым исследовательским требованием, а не гарантированной характеристикой первой версии системы.


3. Почему не используется обычное FPV-видео

Типовые FPV-системы работают преимущественно в диапазонах 2,4 и 5,8 ГГц.

Для наземного робота такие диапазоны имеют ряд ограничений:

  • высокие потери при работе у поверхности земли;
  • затенение рельефом, зданиями и растительностью;
  • быстрое ухудшение изображения при слабом сигнале;
  • высокая загруженность распространённых диапазонов;
  • зависимость от постоянного широкополосного видеопотока.

В этом проекте вместо непрерывного видео предполагается передавать отдельные сжатые изображения.

Пример:

Камера
  ↓
JPEG-изображение
  ↓
Разбиение на пакеты
  ↓
Передача через SDR
  ↓
Сборка изображения на наземной станции

Такой подход позволяет существенно снизить требуемую скорость радиоканала.


4. Текущее оборудование

SDR-оборудование

  • RTL-SDR — приёмник;
  • ADALM-PlutoSDR — приёмопередатчик, ожидается поступление;
  • HackRF One — может временно использоваться при необходимости.

Вычислительное оборудование

  • компьютер под управлением Windows;
  • Raspberry Pi — планируется для установки на ровер;
  • бортовой вычислитель ровера — будет выбран позднее.

Программное обеспечение

  • Python 3.12;
  • Anaconda;
  • Spyder;
  • Git;
  • GNU Radio — будет установлен на следующем этапе;
  • libiio и драйверы PlutoSDR — будут установлены после получения устройства.

5. Предварительно рассматриваемые диапазоны

В рамках проекта рассматриваются:

  • 27 МГц;
  • 50 МГц;
  • 144 МГц;
  • другие разрешённые для лабораторных испытаний частоты ниже 350 МГц.

Конкретный диапазон будет выбран после анализа:

  • доступной полосы;
  • требований законодательства;
  • размеров антенны;
  • потерь распространения;
  • уровня внешних помех;
  • возможностей выходного радиочастотного тракта;
  • допустимой мощности передачи.

Передача по эфиру должна выполняться только на разрешённых частотах и с соблюдением допустимой мощности. Первые опыты следует проводить через аттенюатор, эквивалент нагрузки или в экранированной лабораторной конфигурации.


6. Основные этапы проекта

Этап 0. Подготовка среды

  • создание репозитория;
  • настройка Git;
  • настройка Python и Spyder;
  • подготовка структуры каталогов;
  • ведение документации.

Этап 1. Пакетный протокол

  • структура пакета;
  • типы сообщений;
  • порядковый номер пакета;
  • длина данных;
  • CRC;
  • кодирование и декодирование.

Этап 2. Виртуальный канал

  • передача пакетов между Python-программами;
  • имитация потерь;
  • имитация повреждения битов;
  • измерение числа ошибочных пакетов.

Этап 3. Передача файлов

  • разбиение файла на фрагменты;
  • нумерация фрагментов;
  • подтверждение приёма;
  • повторная передача;
  • сборка исходного файла.

Этап 4. Передача изображений

  • загрузка JPEG;
  • разбиение JPEG на пакеты;
  • передача через виртуальный канал;
  • восстановление изображения;
  • обработка потерянных фрагментов.

Этап 5. Физический уровень

  • BPSK;
  • QPSK;
  • формирование символов;
  • IQ-сэмплы;
  • синхронизация;
  • фильтрация;
  • оценка BER и PER.

Этап 6. PlutoSDR

  • подключение устройства;
  • передача несущей;
  • передача тестовой последовательности;
  • передача цифрового пакета;
  • приём сигнала RTL-SDR или вторым SDR.

Этап 7. Радиоканал передачи изображений

  • передача JPEG через SDR;
  • измерение времени доставки;
  • испытания при различных уровнях сигнала;
  • испытания при наличии помех;
  • подбор скорости и модуляции.

Этап 8. Полевые испытания

  • испытания на малой мощности;
  • испытания на малой дистанции;
  • постепенное увеличение расстояния;
  • испытания с ретранслятором;
  • испытания на наземном ровере.

7. Структура репозитория

SDR_Rover
│
├── README.md
├── docs
├── protocol
├── rover
├── ground_station
├── gnuradio
├── tests
└── tools

docs

Документация, лабораторные работы, схемы и отчёты.

protocol

Реализация пакетного протокола:

  • структура пакета;
  • CRC;
  • кодирование;
  • декодирование;
  • типы сообщений.

rover

Программы, которые будут работать на борту ровера:

  • получение изображения;
  • сжатие JPEG;
  • передача телеметрии;
  • формирование радиопакетов.

ground_station

Программы наземной станции:

  • приём пакетов;
  • сборка изображений;
  • отображение телеметрии;
  • управление передачей.

gnuradio

Схемы GNU Radio Companion:

  • передатчик;
  • приёмник;
  • BPSK-модем;
  • QPSK-модем;
  • тестовые генераторы.

tests

Автоматические и лабораторные тесты.

tools

Вспомогательные программы:

  • анализ пакетов;
  • генераторы тестовых данных;
  • построение графиков;
  • анализ журналов.

8. Принципы разработки

В проекте применяются следующие правила:

  1. Каждый новый термин сначала объясняется, затем используется.
  2. Каждый этап должен завершаться работающим результатом.
  3. Радиоканал и пакетный протокол разрабатываются отдельно.
  4. Код проверяется автоматическими тестами.
  5. Все существенные решения фиксируются в документации.
  6. Сложность увеличивается постепенно.
  7. Испытания по эфиру начинаются только после проверки через виртуальный канал.
  8. Передатчик сначала проверяется через аттенюатор или эквивалент нагрузки.

9. Текущий статус

Выполнено:

  • установлен Python;
  • установлена Anaconda;
  • выбран Spyder;
  • установлен Git;
  • создан локальный Git-репозиторий;
  • создана базовая структура каталогов.

Следующая задача:

Создать первый Python-модуль пакетного протокола и передать сообщение через виртуальный канал без SDR-оборудования.


10. Ближайший контрольный результат

Первая рабочая версия должна выполнять следующий цикл:

Текстовое сообщение
        ↓
Преобразование в байты
        ↓
Формирование пакета
        ↓
Добавление CRC
        ↓
Имитация радиоканала
        ↓
Проверка CRC
        ↓
Восстановление сообщения

Первое тестовое сообщение:

HELLO SDR

11. Автор

Антон

НИЯУ МИФИ

2026

Description
No description provided
Readme 22 MiB
Languages
Python 100%