Топологія мережі комірки

У поточній лабораторній конфігурації Jetson Orin Nano є центральним вузлом інтеграції. Через нього проходить взаємодія між UI, контролером робота та OnRobot Compute Box.

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

Практичне правило маршрутизації для лабораторії:

  1. Оператор не керує роботом напряму через Controller UI під час роботи codroid-ball-picker.
  2. Керування роботом і грипером виконується з одного вузла (Jetson), щоб уникати конфлікту команд.
  3. Прямий доступ до мережі контролера робота (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 server0.0.0.0:8050 (доступ як http://<jetson-ip>:8050)Web-інтерфейс codroid-ball-picker
Robot Controller (Codroid WS robot)WebSocketws://192.168.101.100:9000/Команди/стан робота (robot channel)
Robot Controller (Codroid WS user)WebSocketws://192.168.101.100:9098/User/session channel
OnRobot Compute Box (XML-RPC)HTTP/XML-RPChttp://192.168.101.95:41414/Команди грипера
OnRobot Compute Box (status)HTTP + Socket.IOhttp://192.168.101.95Потік статусу грипера
OAK-D ProUSB-CБез IP (USB)RGB/depth відеопотоки

Керовані параметри, які дозволено змінювати через .env/налаштування:

  1. CODROID_HOST, CODROID_ROBOT_PORT, CODROID_WS_PORT (адреса/порти контролера).
  2. ONROBOT_CB_IP (адреса Compute Box).
  3. Порт UI (8050) у команді запуску контейнера, якщо це погоджено з викладачем/інтегратором.

Параметри, які не слід змінювати без окремого узгодження:

  1. network_mode: host у docker-compose.yml (впливає на досяжність обладнання з контейнера).
  2. Базова адресація лабораторної підмережі (192.168.101.0/24) і фіксовані IP обладнання.
  3. Порт 41414 для XML-RPC Compute Box, якщо використовується стандартна OnRobot-схема.

Базові перевірки зв’язності

Мінімальна діагностика виконується з Jetson (або з контейнера з network_mode: host).

  1. Перевірка досяжності контролера робота:

ping -c 3 192.168.101.100

nc -vz 192.168.101.100 9000

nc -vz 192.168.101.100 9098

  1. Перевірка досяжності OnRobot Compute Box:

ping -c 3 192.168.101.95

nc -vz 192.168.101.95 41414

  1. Перевірка доступності UI:

curl -I http://127.0.0.1:8050

  1. Перевірка USB-камери OAK-D Pro:

lsusb | grep -i luxonis

Рекомендований порядок дій при частковій недоступності:

  1. Спочатку перевірити фізичний рівень: живлення вузла, кабелі Ethernet/USB, індикатори link/activity.
  2. Далі перевірити IP-маршрут: ping до вузла, потім nc до прикладного порту.
  3. Якщо ping успішний, а порт закритий: перевірити стан сервісу на цільовому вузлі та локальні firewall/policy.
  4. Якщо вузол недосяжний тільки з контейнера: перевірити режим мережі контейнера та актуальність docker-compose.yml.
  5. Після відновлення зв’язності виконати повторний запуск застосунку і короткий acceptance check (UI + robot WS + gripper + camera).