Общая архитектура
Платформа ARTEX построена по схеме «звезда»: в центре находится ХАБ платформы, к которому независимо подключаются роботы, операторы и модели ИИ. Никто из участников не общается напрямую — все потоки проходят через ХАБ, который коммутирует их, кэширует актуальное состояние и сохраняет данные.
Общая схема
┌──────────────────────────────────────────────┐
Зарегистрированные │ ХАБ ПЛАТФОРМЫ │ Зарегистрированные
роботы │ (Go / C++, Docker + K8s) │ операторы
│ │
┌──────────┐ видео │ ┌───────────┐ ┌─────────────────────────┐ │ WebSocket ┌────────────┐
│ Робот 1 │────────────▶│ │ Коммутатор│◀─▶│ Общая память │ │◀───────────▶│ Оператор 1 │
│ artex- │ телеметрия │ │ потоков │ │ (неблокирующий кэш) │ │ WebRTC │ (Web UI) │
│ robot SDK│────────────▶│ └───────────┘ └─────────────────────────┘ │────────────▶└────────────┘
│ │◀────────────│ │ │ │ ...
└──────────┘ команды │ ▼ ▼ │ ┌────────────┐
... │ ┌─────────────┐ ┌─────────────────────┐ │ │ Оператор N │
┌──────────┐ │ │ Управление │ │ Хранилище: S3, │ │ └────────────┘
│ Робот N │◀───────────▶│ │ доступом │ │ Time Series DB, │ │
└──────────┘ │ │ JWT / RBAC │ │ PostgreSQL, Redis │ │
│ └─────────────┘ └─────────────────────┘ │
└───────────────────────▲──────────────────────┘
│ Socket / WebRTC
▼
┌──────────────────────────────────────────────┐
│ Распределённая вычислительная среда │
│ (Docker, K8s, GPU) │
│ Модели ИИ оператора 1 … оператора N │
│ YOLO · Assist AI · RL Agent · Custom │
└──────────────────────────────────────────────┘
Три потока данных
Между участниками передаются три типа данных. Каждый поток идёт по своему каналу, чтобы тяжёлое видео не задерживало команды управления.
| № | Поток | Направление | Содержание |
|---|---|---|---|
| 1 | Телеметрия, признаки | Робот → ХАБ → оператор и модели ИИ | Скорость, координаты, данные гироскопов и акселерометров, заряд АКБ, состояние дополнительных агрегатов, признаки (векторы), выделенные бортовыми моделями ИИ |
| 2 | Управление | Оператор / модель ИИ → ХАБ → робот | Управление движением, поворотом камеры, дополнительными аксессуарами. Основной источник — модель ИИ; оператор управляет при обучении или «подстраховке» модели |
| 3 | Видео | Робот → ХАБ → оператор и модели ИИ | Видео с камер, а также данные радаров, лидаров и т.п., преобразованные в видео. Оператору — для управления от первого лица и контроля работы ИИ; моделям — для анализа |
Компоненты платформы
| Компонент | Технологии | Ответственность |
|---|---|---|
| Робот | Python, SDK artex-robot, OpenCV |
Съёмка видео и передача на сервер; сбор и передача телеметрии; работа бортовых моделей ИИ (обработка видео и данных датчиков); получение и применение команд управления |
| Платформа (ХАБ) | Go, C++ | Идентификация роботов; приём видео и телеметрии, загрузка в кэш и хранилище; неблокирующий кэш с методами push и get; коммутация роботов, операторов и моделей; подключение операторов и моделей к видео и данным |
| Оператор (Web-приложение) | React, WebSocket, WebRTC | Приём видео и телеметрии от робота; управление роботом и передача управления на платформу; мониторинг работы моделей ИИ, их входных и выходных данных и логов; адаптивный интерфейс для ноутбука и телефона |
| Вычислительная среда | Docker, Kubernetes, GPU | Обработка видео (YOLO); обработка временных рядов, RL; формирование команд управления |
| Хранилище | S3 / MinIO, Time Series DB, PostgreSQL, Redis | Сохранение видео, телеметрии, команд и логов; развёртывание, подключение и тестирование хранилища |
| Управление платформой (WEB-портал) | Web | Мониторинг подключённых роботов и операторов; ограничение «видимости» роботов для операторов; настройка сохранения данных |
Типы подключаемых устройств
| Класс устройств | Типичные контроллеры | Способ подключения |
|---|---|---|
| RC-танки, машинки | ESP32 / STM32 + бортовой компьютер (Raspberry Pi 4) | SDK artex-robot |
| Наземные роботы | ROS2 / собственное ПО | SDK artex-robot (узел-мост) |
| Дроны (БПЛА) | PX4 / ArduPilot + компаньон-компьютер | SDK artex-robot |
| IoT-датчики | MQTT / GPIO | MQTT-брокер (планируется) |
| Светодиодные устройства (LED, RGB-лента) | Любой Python-контроллер | SDK artex-robot (тип LED) |
| Виртуальные роботы | Unity / Gazebo | SDK artex-robot — тот же протокол, что и у реальных |
Принципы архитектуры
- Всё через ХАБ. Роботы, операторы и модели не знают адресов друг друга — это упрощает подключение, контроль доступа и запись данных.
- Неблокирующая общая память. ХАБ хранит только актуальный кадр и актуальный вектор телеметрии (с отметкой времени). Медленный потребитель не тормозит быстрого: каждый читает последнее значение методом
get. - Модель и человек равноправны. Команды от оператора и от модели ИИ имеют одинаковый формат; различается только автор и приоритет.
- Модульность. Серверная логика собирается из модулей в визуальном редакторе с горячей перезагрузкой (hot reload). Каждый сервис — отдельный Docker-контейнер.
- Всё записывается. Видео, телеметрия и команды (включая автора команды) сохраняются для анализа и обучения.
Подробнее: Протоколы и потоки данных, Серверные модули, Хранение данных.
No comments to display
No comments to display