Карта компонентів та потоків даних

Таблиця. End-to-end потоки даних і керування

ПотікДжерело -> ПриймачТранспортПризначення
F1 (операторський)Browser -> Dash UI (run_codroid_picker.py)HTTPКоманди оператора, керування сценаріями, моніторинг
F2 (камера)OAK-D Pro -> codroid-ball-pickerUSB / DepthAIRGB/depth кадри для візуалізації, детекції, калібрування
F3 (робот-команди)codroid-ball-picker -> Robot ControllerWebSocket (codroid-api)Motion-команди, power/mode, coordinate control
F4 (стан робота)Robot Controller -> codroid-ball-pickerWebSocket eventsТелеметрія, пози, warning/alarm, E-stop/overspeed стани
F5 (грипер-команди)codroid-ball-picker -> Compute BoxXML-RPC (onrobot-api)Grip/release, force/speed/width керування
F6 (грипер-стан)Compute Box -> codroid-ball-pickerSocket.IO (HTTP)Поточний стан 2FG7 (width/force/grip detect тощо)
F7 (персистентність)codroid-ball-picker <-> data/*Файлова системаКалібрування, workspace, drop target, app settings

Ключові точки синхронізації між vision, motion і gripper:

  1. Перед запуском auto/manual pick&place перевіряються prerequisites (camera/workspace/robot/drop target).
  2. Перед рухами в coord5 виконується активація відповідної coordinate system.
  3. У «утримуваних» командах руху використовується heartbeat для підтримки руху.
  4. Події безпеки (emergency/overspeed) синхронно переводять програму в pause/reset-стан.
  5. Після встановлення drop target одночасно зберігаються workspace- та robot-координати для подальших циклів.
  6. Результати калібрування переходять у runtime-стан тільки після успішного verification-кроку.

Межі відповідальності компонентів

Таблиця. Межі відповідальності

КомпонентВідповідальністьНе входить у відповідальність
codroid-ball-picker (UI + orchestration)Сценарії калібрування/підготовки, orchestration pick&place, візуалізація, збереження артефактівНизькорівнева реалізація протоколів контролера та Compute Box
codroid-apiWebSocket-взаємодія з контролером, command mapping, coordinate/power/mode operationsКамера, детекція, логіка gripper-профілів
onrobot-apiКерування gripper через XML-RPC, статус через Socket.IO, профілі gripperКерування рухами робота
Robot Controller firmwareРеальне виконання рухів, стан осей, системні warning/alarmБізнес-логіка UI і vision-алгоритми
Compute Box firmwareВиконання команд gripper, телеметрія інструментаMotion planning робота
Оператор/викладачПідтвердження безпечного запуску, контроль робочої зони, рішення про start/stop/update/rollbackЗміна низькорівневого протоколу контролера без інженерної валідації

Рішення, які приймаються тільки оператором/викладачем:

  1. Дозвіл на запуск автоматичного циклу після фізичного огляду стенду.
  2. Рішення про оновлення/відкат версії під час навчального процесу.
  3. Підтвердження безпечного відновлення після аварійних станів.
  4. Внесення змін у мережеву топологію, IP-план і базові safety-параметри.