Робот, який перестає бути корисним уже через кімнату, має проблему зв'язку або робочого навантаження значно раніше, ніж проблему з VPN. Шифрування захищає шлях, але не розширює радіопокриття й не прискорює завершення віддаленого обчислення. Рішення перед вами — яка робота справді має проходити через мережу, і така відповідь зазвичай прибирає більше трафіку, ніж очікують. Це вирішують три умови, і пропускна здатність не входить до їх числа.

Три схеми, одне питання про залежність

Таблиця розділяє схеми за тим, що залежить від каналу, а не за тим, яке програмне забезпечення зображено на діаграмі.

ArrangementWhat depends on the linkWhat stays onboard
Live remote processingThe exchange and any timely result the workstation returnsOnly what the remote step does not block
Onboard processing, remote observationThe declared telemetry or display streamThe processing loop itself
Local recording, later analysisTransfer of one selected datasetThe entire run, including raw sensors

Жоден рядок цієї таблиці не є аргументом безпеки. Функції керування та безпеки досі потребують обґрунтованої відповіді щодо затримки, втрати пакетів і обриву з'єднання, і жоден індикатор тунелю її не дає. Таблиця показує, де живе залежність, і саме цю частину проєкт мережі справді може змінити.

Перша умова: чи має відповідь бути своєчасною?

Якщо віддалений результат живить контролер, мережа перебуває всередині контуру керування, і її затримка, джиттер та збої стають властивостями керування. Якщо той самий результат живить лише екран, панель або людину, що спостерігає, така сама затримка — лише косметика.

Робота в замкненому контурі бездротовим каналом можлива, і саме звідти береться більшість скарг «VPN повільний», бо тунель — видимий компонент, а причина в радіо та маршрутизації. Вимірюйте час кругового обміну реального повідомлення, а не ping самого тунелю, потім запитайте, чи вкладається число в бюджет контуру. Якщо не вкладається, перенесіть крок на борт, а не узгоджуйте суворіший рівень обслуговування для каналу, яким у кімнаті ніхто не керує. Запишіть виміряне число разом з умовами, за яких його отримано, бо наступний звіт прийде без них.

Друга умова: яку швидкість, напрямок і перерву ви можете заявити?

Запишіть дані, швидкість, напрямок і найдовшу перерву, яку припускає застосунок. Потік з камери вгору та канал команд униз відмовляють по-різному, а перерва, яку терпить нерухома інспекція, зупинить рухому задачу.

Порівнюючи варіанти, тримайте фізичне підключення і тунель окремо, бо потужніше радіо та менше робоче навантаження — різні ремонти. Велике передавання, яке зрештою завершується, нічого не доводить про своєчасне надходження чутливого до часу результату, а здоровий тунель нічого не доводить про радіо за ним.

Далі зменшуйте попит, а не захищайте його. Проріджуйте потік спостереження, надсилайте зведення або дельти, а сирі дані датчиків залишайте на борту, де зберігання дешеве, а передавання — ні. Менший обсяг даних послаблює аргумент за швидший канал і часто знімає потребу в ньому.

Третя умова: хто має це бачити і що залишається локально

Спостереження зазвичай є значно меншою вимогою, ніж обробка. Якщо людина має дивитися камеру і потім має існувати журнал, це телеметрія плюс зберігання; якщо модель має працювати, спершу запитайте, чи може вона працювати на борту з передаванням лише свого результату. Перенесення важкого кроку на борт прибирає синхронну залежність і залишає передавання, яке можна повторити.

Наявність двох учасників ROS на одному роботі сама по собі не виправдовує тунель. Доступність вузлів, авторизація застосунку та локальний план відновлення — окремі проблеми, а VPN відповідає лише на першу і лише для того трафіку, який просять маршрутизувати.

Запис набору даних — це окремий проєкт зі своїми командами

Для прикладу, прив'язаного до версії, посібник із запису ROS 2 Jazzy охоплює запис вибраних топіків, перевірку отриманого bag і його відтворення. Записуйте схвалені топіки спостереження, дайте ім'я запуску й тримайте визначення повідомлень і конфігурацію поруч.

ros2 bag record -o run42 /scan /camera/image_raw
ros2 bag info run42
ros2 bag play run42

Не записуйте кожен топік лише тому, що інструмент це полегшує. Місце закінчується, дані камери й розташування є чутливими, а bag з непозначеними топіками — проблема аналізу для того, хто відкриє його наступним. Встановлений дистрибутив визначає й команди: інструменти, написані для bag ROS 1, не переносяться на bag ROS 2, тож узгодьте документацію з версією, встановленою на роботі.

Відтворюйте в ізольованому середовищі аналізу або симуляції. Відтворення записаних командних топіків у приводи живого робота — це аварія, а запобігання — окремий домен ROS або повна відсутність обладнання в контурі.

Вирішіть, де має бути залежність, і запишіть це: VPN захищає обмін, який має відбутися, обробка на борту прибирає обмін, якому ніколи не потрібно було бути синхронним, а записаний набір даних замінює живого споживача пізнішим. Потім навмисно перевірте від'єднаний випадок, поки локальна робота ще виконується, перш ніж хтось назве проєкт завершеним.

Схожі статті