Техническое руководство по установке ПО Wheelies
| Параметр | Значение |
|---|---|
| Назначение | Администратор платформы, администратор организации, инженер и специалист сопровождения |
| Сценарий | Подключение дрона к серверной версии платформы Wheelies |
| Редакция | 1.0 • 08.09.2026 |
Цель. Провести пользователя от создания организации и выдачи лицензии до установки дистрибутива на бортовой компьютер дрона, выпуска TLS-сертификата, отправки дроном запроса на активацию и его регистрации на платформе.
1. Термины и роли
| Термин | Определение |
|---|---|
| Дистрибутив | Персонализированный архив config.tar с токеном для доступа к GitLab Container Registry и метаданными о программных продуктах, выбранных для установки на дрон. Токен действует 5 суток. |
| Конфигурация | Запись на платформе, резервирующая идентификатор дрона. Живет 45 дней, имеет статус и историю скачиваний. В интерфейсе подписана «дистрибутив». |
| Доступная лицензия | Свободная лицензия организации со статусами «Действительна» и «Активна». |
| One-Time Token (OTT) | Одноразовый JWT-токен для получения клиентского TLS-сертификата от SmallStep Certificate Authority. Срок действия TLS-сертификата дрона — 180 дней. |
| Запрос на активацию дрона | Сообщение, которое дрон публикует в MQTT-топике drone_request_init; для регистрации дрона на платформе пользователь с соответствующим правом доступа сначала должен подтвердить запрос на его активацию. |
| Автоматизированное рабочее место (АРМ) | Qt-приложение на ноутбуке для автономного управления дронами. |
| Роль | Что делает | Что должно быть выдано |
|---|---|---|
| Администратор платформы | Создает организацию, выдает лицензии и по запросу сбрасывает лимит cert_count. cert_count — заданное максимально допустимое количество TLS-сертификатов, которое может быть выдано одному дрону с одним серийным номером. | Права администратора платформы. |
| Администратор организации | Настраивает роли в организации, приглашает пользователей и контролирует доступ. | Роль «Полный доступ» или соответствующие права. |
| Пользователь с правом управления дронами | Формирует дистрибутив и подтверждает запрос на активацию дрона. | Право на управление дронами. |
| Пользователь с правом на управление лицензиями | Управляет лицензиями организации: привязывает и отвязывает лицензии от дронов. | Право на управление лицензиями. |
| Инженер / оператор | Готовит оборудование, устанавливает дистрибутив и запускает mainmenu. | Доступ к бортовому компьютеру. |
| Платформа / Certificate Authority (CA) | Проверяет данные, выдает OTT и TLS-сертификат, регистрирует дрон и привязывает лицензию. | Автоматическая обработка. |
У одного пользователя (одного email) в одной организации одновременно может быть только одна роль.
2. Предварительные условия
- Организация создана, а ее главный администратор завершил регистрацию.
- Пользователю выдано право на управление дронами.
- У организации есть хотя бы одна свободная, действительная и активная лицензия.
- Модель дрона заведена в каталоге платформы.
- Бортовой компьютер поддерживается; схема UART сверена с документацией производителей.
- Подготовлены стабильное питание, Интернет-соединение, дисплей и клавиатура.
- Известна утвержденная процедура загрузки и установки
config.tar.
Перед соединением UART обесточьте бортовой компьютер и полетный контроллер. Это снижает риск короткого замыкания, повреждения интерфейсных портов и нежелательной разности потенциалов. Приоритет имеют требования производителей оборудования.
3. Сквозной процесс

4. Организация и лицензии
Шаг 1. Создать организацию и назначить главного администратора
Перед началом необходимо удостовериться:
- У администратора платформы есть необходимые права.
- Известны сведения об организации и данные ее будущего главного администратора.
Ответственные:
- администратор платформы — создает организацию и назначает главного администратора;
- главный администратор организации — при необходимости приглашает других участников.
Раздел / место: «Организации», «Участники».
Действие: Администратор платформы создает организацию и назначает ее главного администратора. После регистрации главный администратор организации при необходимости настраивает роли и приглашает других пользователей.
Ожидаемый результат: Организация отображается в разделе «Организации», а ее главный администратор и приглашенные участники — в разделе «Участники».
Шаг 2. Выдать организации лицензии
Перед началом необходимо удостовериться:
- Организация создана и отображается на платформе.
- Известно количество лицензий, приобретенных организацией.
Ответственные: администратор платформы.
Раздел / место: «Лицензии».
Действие: Выдать организации приобретенное количество лицензий.
Ожидаемый результат: В разделе «Лицензии» есть как минимум одна свободная, действительная и активная лицензия организации.
5. Формирование и скачивание дистрибутива
Шаг 3. Собрать дистрибутив
Перед началом необходимо удостовериться:
- Пользователь авторизован.
- Пользователю выдано право на управление дронами.
- Согласован перечень программных продуктов, доступных для установки.
Ответственный: пользователь с правом управления дронами.
Раздел / место: «Дистрибутив» (рисунок 1) → кнопка «Скачать дистрибутив».
Действие: Выбрать необходимые программные продукты и их версии (рисунок 2), затем нажать «Скачать».
Ожидаемый результат: Сгенерирована конфигурация, скачан дистрибутив (config.tar); в разделе «Дистрибутив» появилась запись. Начался 45-дневный срок отправки запроса на активацию дрона, а токен GitLab Container Registry действует 5 суток.


Обработка запроса на активацию дрона, для которого была сгенерирована такая конфигурация, прервется с ошибкой «Активный резерв для дрона не найден»; уведомление о соответствующей ошибке будет доступно в интерфейсе организации.
6. Установка дистрибутива и регистрация дрона
Шаг 4. Подготовить оборудование
Перед началом необходимо удостовериться:
- Бортовой компьютер и полетный контроллер обесточены.
- Схема UART проверена.
- Доступны питание, Интернет, дисплей и клавиатура.
Ответственный: инженер / оператор.
Раздел / место: на дроне.
Действие: При отключенном питании соединить бортовой компьютер и полетный контроллер по UART. Затем подключить к бортовому компьютеру питание и периферию, обеспечить Интернет-соединение.
Ожидаемый результат: Бортовой компьютер запитан, имеет доступ в Интернет и готов к установке дистрибутива.
Шаг 5. Установить дистрибутив и зарегистрировать дрон
Перед началом необходимо удостовериться:
config.tarперенесен на бортовой компьютер.- Токен GitLab Container Registry действует, конфигурация не старше 45 дней.
- Бортовой компьютер дрона имеет доступ к Интернету.
Ответственный: инженер / оператор.
Раздел / место: бортовой компьютер дрона.
Действие: Загрузить config.tar на бортовой компьютер, выполнить утвержденную процедуру установки, запустить mainmenu, выбрать «Быстрый старт» и прямое подключение к платформе.
Ожидаемый результат: Дрон проходит первичную регистрацию, получает OTT и TLS-сертификат, подключается напрямую к платформе и отправляет запрос на активацию.
7. Выдача OTT и TLS-сертификата

Запрос: POST /api/management/cert-enroll с drone_id, organization_id и serial_number, где:
drone_id— идентификатор дрона;organization_id— идентификатор организации;serial_number— серийный номер дрона.
Платформа выполняет проверки в следующем порядке:
- Проверяет в БД наличие действующей конфигурации для
drone_idиorganization_id. - Сверяет серийный номер с ранее зарегистрированным. При первой регистрации сохраняет уникальную привязку серийного номера к
drone_id. - Проверяет
cert_count: для одного дрона с одним серийным номером допускается выпуск менее 50 TLS-сертификатов. - Формирует OTT, увеличивает
cert_countна 1 и возвращает OTT дрону. - Дрон предъявляет OTT SmallStep CA и получает клиентский TLS-сертификат.
| HTTP | Код | Причина / действие |
|---|---|---|
| 403 | CERT_ENROLL_UNKNOWN_DEVICE | Не найдена конфигурация для drone_id и organization_id. Проверить, что используется конфигурация нужной организации. |
| 403 | CERT_ENROLL_SERIAL_MISMATCH | Серийный номер не совпадает с ранее зарегистрированным либо уже связан с другим drone_id. Серийный номер вручную не подменять. |
| 429 | CERT_ENROLL_TOO_MANY_REQUESTS | cert_count достиг 50. Администратор платформы сбрасывает счетчик по запросу после проверки причины повторных выпусков. |
| 500 | OTT_GENERATION_FAILED | Не удалось сформировать OTT. Передать сопровождению время, идентификатор дрона и код ошибки. |
8. Запрос на активацию дрона и лицензия
Шаг 6. Подтвердить запрос на активацию дрона
Перед началом необходимо удостовериться:
- Запрос на активацию дрона появился в разделе «Дроны».
- У организации есть доступная лицензия.
Ответственный: пользователь с правом управления дронами.
Раздел / место: «Дроны» → вкладка «Требуется активация» (рисунок 3).
Действие: Выбрать запрос на активацию дрона, указать название и модель дрона, затем нажать «Активировать» (рисунок 4).
Ожидаемый результат: Платформа ищет в пуле организации доступную лицензию и регистрирует дрон.


Платформа возвращает ошибку валидации 400 Bad Request: NO_AVAILABLE_LICENSES = «Нет доступных лицензий.». После выдачи или освобождения лицензии подтвердите тот же запрос на активацию дрона повторно.
Шаг 7. Проверить регистрацию дрона и привязку лицензии
Перед началом необходимо удостовериться:
- Запрос на активацию дрона подтвержден без ошибки.
Ответственный:
- пользователь с правом управления дронами;
- пользователь с правом управления лицензиями;
- система.
Раздел / место:
- «Дроны» → вкладка «Подключенные» (рисунок 5);
- «Лицензии» (рисунок 6).
Действие: Проверить появление дрона во вкладке «Подключенные» и привязку к нему лицензии в разделе «Лицензии».
Ожидаемый результат: Дрон зарегистрирован; лицензия привязана. Начальный статус «Оффлайн» не отменяет успешную регистрацию.


9. Контроль результата и отклонения
| Симптом | Проверка / действие |
|---|---|
| Образ не скачивается | Проверить, не истек ли токен GitLab Container Registry: он действует 5 суток. При истечении сформировать актуальный дистрибутив по принятому регламенту. |
| Запрос на активацию дрона отклонен после 45 дней | Сформировать новую конфигурацию. |
| Не получен TLS-сертификат | Передать сопровождению HTTP-код, код CERT_ENROLL_* и время события; не изменять серийный номер вручную. |
| Достигнут лимит 50 выпусков | Администратор платформы сбрасывает cert_count по запросу после проверки причины. |
| Нет доступной лицензии | Выдать или освободить лицензию и повторно подтвердить тот же запрос на активацию дрона. |
| Дрон зарегистрирован, но «Оффлайн» | Проверить прямое сетевое подключение отдельно; регистрацию считать завершенной, если дрон виден в «Подключенные» и лицензия привязана. |
10. Критерий успешного завершения
Образ скачан до истечения 5-дневного токена; запрос на активацию дрона отправлен в пределах 45 дней; дистрибутив установлен; запрос на активацию дрона подтвержден; дрон зарегистрирован и отображается во вкладке «Подключенные»; лицензия привязана и отображается в разделе «Лицензии».