Конвейеры модулей
Логика обработки данных на сервере собирается в визуальном редакторе модулей: модули перетаскиваются на рабочее поле, их порты соединяются линиями. Описание самих модулей и их портов — на странице Веб-интерфейс управления роботами; здесь — готовые схемы соединения для типовых задач.
Базовые правила
- Данные идут от выхода одного модуля ко входу другого; соединяются порты одного типа (
robot.video→robot.video). - Один выход можно соединить с несколькими входами — например, видео одновременно идёт в интерфейс и в YOLO.
- Изменения конвейера применяются без перезапуска сервера (hot reload).
- Для отладки подключите ConsoleLogModule к интересующему порту — все данные будут выведены в консоль сервера.
Схема 1. Ручное управление (минимальная)
Оператор видит видео и телеметрию робота и управляет им.
┌───────────────┐ robot.video ┌────────────────┐
│ RobotWSModule │ ───────────────▶ │ ClientIOModule │
│ │ robot.telemetry │ (Web UI) │
│ │ ───────────────▶ │ │
│ │ robot.connected │ │
│ │ ───────────────▶ │ │
│ │ robot.disconnected │
│ │ ───────────────▶ │ │
│ │ ◀─────────────── │ │
└───────────────┘ robot.command └────────────────┘
Схема 2. Детекция объектов поверх видео
Оператор управляет вручную, а YOLO подсвечивает найденные объекты.
robot.video ┌────────────┐ yolo.detect ┌────────────────┐
┌───────────────┐ ─────────────▶ │ YoloModule │ ─────────────▶ │ │
│ RobotWSModule │ └────────────┘ │ ClientIOModule │
│ │ robot.video, robot.telemetry, connected ... │ │
│ │ ────────────────────────────────────────────▶│ │
└───────────────┘ ◀──────────────────────────────────────────── └────────────────┘
robot.command
Схема 3. Автономное управление по видео
Конвейер полного автономного контура: захват → детекция → трекинг → решение → команда, с логированием.
Захват видео ─▶ Детекция (YOLO) ─▶ Трекинг объектов ─▶ Принятие решения ─▶ Команда устройству
(RobotWSModule) (YoloModule) │ (robot.command)
└──▶ Логирование (S3 + DB)
Запуск и остановка автоматического управления — командами auto_run / auto_stop из поля ввода команд на странице робота. Оператор в любой момент может нажать «Стоп».
Схема 4. Запись датасета
Для сбора данных к источнику видео и телеметрии подключается модуль записи (VideoRecordModule). Запись включается командой video_start_record и останавливается командой video_stop_record.
┌───────────────┐ robot.video ┌────────────────────┐
│ RobotWSModule │ ───────────▶ │ VideoRecordModule │ ──▶ файл / S3
│ │ └────────────────────┘
│ │ robot.video, robot.telemetry ──────▶ ClientIOModule
└───────────────┘
Отладка конвейера
| Проблема | Проверка |
|---|---|
| В интерфейсе нет видео | Соединён ли robot.video источника с ClientIOModule? Подключите ConsoleLogModule к robot.video |
| YOLO не выдаёт результатов | Идёт ли видео на вход YoloModule; есть ли объекты известных модели классов |
| Команды не доходят до робота | Соединён ли robot.command ClientIOModule с RobotWSModule; получил ли робот Ready |
| Высокая задержка | Не подключено ли слишком много тяжёлых модулей к одному потоку; загрузка GPU в мониторинге |
No comments to display
No comments to display