Топологія мережі комірки
У поточній лабораторній конфігурації Jetson Orin Nano є центральним вузлом інтеграції. Через нього проходить взаємодія між UI, контролером робота та OnRobot Compute Box.
- Операторський ПК -> Jetson (UI): браузерний доступ до codroid-ball-picker по HTTP (:8050).
- Jetson -> Robot Controller (Codroid): websocket-з’єднання до двох endpoint-ів контролера робота (:9000 та :9098).
- Jetson -> OnRobot Compute Box: XML-RPC канал керування грипером (:41414) і канал статусу (Socket.IO по HTTP на IP Compute Box).
- Jetson <-> OAK-D Pro: локальне USB-C підключення (без IP-адресації, рівень USB).
Практичне правило маршрутизації для лабораторії:
- Оператор не керує роботом напряму через Controller UI під час роботи codroid-ball-picker.
- Керування роботом і грипером виконується з одного вузла (Jetson), щоб уникати конфлікту команд.
- Прямий доступ до мережі контролера робота (192.168.101.0/24) потрібен саме Jetson-контейнеру.

Рисунок 13.1.1. Wiring diagram комірки (мережа, USB та живлення)
Карта IP-адрес і портів
Нижче наведено мережеву карту, яка відповідає дефолтним налаштуванням у коді (app/settings.py, codroid_api/settings.py, onrobot/device.py).
Таблиця 13.2.1. Карта вузлів, адрес і портів комірки
| Вузол | Тип з’єднання | Типове значення | Призначення |
|---|---|---|---|
| Jetson (UI контейнер) | HTTP server | 0.0.0.0:8050 (доступ як http://<jetson-ip>:8050) | Web-інтерфейс codroid-ball-picker |
| Robot Controller (Codroid WS robot) | WebSocket | ws://192.168.101.100:9000/ | Команди/стан робота (robot channel) |
| Robot Controller (Codroid WS user) | WebSocket | ws://192.168.101.100:9098/ | User/session channel |
| OnRobot Compute Box (XML-RPC) | HTTP/XML-RPC | http://192.168.101.95:41414/ | Команди грипера |
| OnRobot Compute Box (status) | HTTP + Socket.IO | http://192.168.101.95 | Потік статусу грипера |
| OAK-D Pro | USB-C | Без IP (USB) | RGB/depth відеопотоки |
Керовані параметри, які дозволено змінювати через .env/налаштування:
- CODROID_HOST, CODROID_ROBOT_PORT, CODROID_WS_PORT (адреса/порти контролера).
- ONROBOT_CB_IP (адреса Compute Box).
- Порт UI (8050) у команді запуску контейнера, якщо це погоджено з викладачем/інтегратором.
Параметри, які не слід змінювати без окремого узгодження:
- network_mode: host у docker-compose.yml (впливає на досяжність обладнання з контейнера).
- Базова адресація лабораторної підмережі (192.168.101.0/24) і фіксовані IP обладнання.
- Порт 41414 для XML-RPC Compute Box, якщо використовується стандартна OnRobot-схема.
Базові перевірки зв’язності
Мінімальна діагностика виконується з Jetson (або з контейнера з network_mode: host).
- Перевірка досяжності контролера робота:
ping -c 3 192.168.101.100
nc -vz 192.168.101.100 9000
nc -vz 192.168.101.100 9098
- Перевірка досяжності OnRobot Compute Box:
ping -c 3 192.168.101.95
nc -vz 192.168.101.95 41414
- Перевірка доступності UI:
curl -I http://127.0.0.1:8050
- Перевірка USB-камери OAK-D Pro:
lsusb | grep -i luxonis
Рекомендований порядок дій при частковій недоступності:
- Спочатку перевірити фізичний рівень: живлення вузла, кабелі Ethernet/USB, індикатори link/activity.
- Далі перевірити IP-маршрут: ping до вузла, потім nc до прикладного порту.
- Якщо ping успішний, а порт закритий: перевірити стан сервісу на цільовому вузлі та локальні firewall/policy.
- Якщо вузол недосяжний тільки з контейнера: перевірити режим мережі контейнера та актуальність docker-compose.yml.
- Після відновлення зв’язності виконати повторний запуск застосунку і короткий acceptance check (UI + robot WS + gripper + camera).