Карта компонентів та потоків даних
Таблиця. End-to-end потоки даних і керування
| Потік | Джерело -> Приймач | Транспорт | Призначення |
|---|---|---|---|
| F1 (операторський) | Browser -> Dash UI (run_codroid_picker.py) | HTTP | Команди оператора, керування сценаріями, моніторинг |
| F2 (камера) | OAK-D Pro -> codroid-ball-picker | USB / DepthAI | RGB/depth кадри для візуалізації, детекції, калібрування |
| F3 (робот-команди) | codroid-ball-picker -> Robot Controller | WebSocket (codroid-api) | Motion-команди, power/mode, coordinate control |
| F4 (стан робота) | Robot Controller -> codroid-ball-picker | WebSocket events | Телеметрія, пози, warning/alarm, E-stop/overspeed стани |
| F5 (грипер-команди) | codroid-ball-picker -> Compute Box | XML-RPC (onrobot-api) | Grip/release, force/speed/width керування |
| F6 (грипер-стан) | Compute Box -> codroid-ball-picker | Socket.IO (HTTP) | Поточний стан 2FG7 (width/force/grip detect тощо) |
| F7 (персистентність) | codroid-ball-picker <-> data/* | Файлова система | Калібрування, workspace, drop target, app settings |
Ключові точки синхронізації між vision, motion і gripper:
- Перед запуском auto/manual pick&place перевіряються prerequisites (camera/workspace/robot/drop target).
- Перед рухами в coord5 виконується активація відповідної coordinate system.
- У «утримуваних» командах руху використовується heartbeat для підтримки руху.
- Події безпеки (emergency/overspeed) синхронно переводять програму в pause/reset-стан.
- Після встановлення drop target одночасно зберігаються workspace- та robot-координати для подальших циклів.
- Результати калібрування переходять у runtime-стан тільки після успішного verification-кроку.
Межі відповідальності компонентів
Таблиця. Межі відповідальності
| Компонент | Відповідальність | Не входить у відповідальність |
|---|---|---|
| codroid-ball-picker (UI + orchestration) | Сценарії калібрування/підготовки, orchestration pick&place, візуалізація, збереження артефактів | Низькорівнева реалізація протоколів контролера та Compute Box |
| codroid-api | WebSocket-взаємодія з контролером, 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 | Зміна низькорівневого протоколу контролера без інженерної валідації |
Рішення, які приймаються тільки оператором/викладачем:
- Дозвіл на запуск автоматичного циклу після фізичного огляду стенду.
- Рішення про оновлення/відкат версії під час навчального процесу.
- Підтвердження безпечного відновлення після аварійних станів.
- Внесення змін у мережеву топологію, IP-план і базові safety-параметри.