paint-brush
Плохое состояние сети? Не проблема! gRPC и WebRTC для роботов могут помочьк@joycelin
287 чтения

Плохое состояние сети? Не проблема! gRPC и WebRTC для роботов могут помочь

к Joyce Lin4m2024/08/09
Read on Terminal Reader

Слишком долго; Читать

Узнайте, как можно использовать gRPC и WebRTC для роботов и других интеллектуальных машин, чтобы обеспечить более надежную связь. Многие робототехнические системы состоят из маломощных и малопропускных устройств или работают в плохих сетевых условиях. GRPC оптимизирован для скорости, возможно, в 7–10 раз быстрее, чем REST API.
featured image - Плохое состояние сети? Не проблема! gRPC и WebRTC для роботов могут помочь
Joyce Lin HackerNoon profile picture

Роботы работают в самых разных местах с различными сетевыми условиями, от стабильного Ethernet до нестабильных сотовых или спутниковых соединений. Узнайте, как можно использовать gRPC и WebRTC для роботов и других умных машин, чтобы обеспечить более надежную связь.


Управляйте вездеходом с помощью API Viam gRPC в Postman

Зачем использовать gRPC и WebRTC для управления роботами?

Недавно я устроился на новую работу в Viam и мне было любопытно узнать больше об архитектуре их системы. Многие робототехнические системы состоят из маломощных и малопропускных устройств или работают в плохих сетевых условиях. Viam — это платформа программного обеспечения для робототехники с открытым исходным кодом, которая была разработана специально для того, чтобы помочь роботам и другим умным машинам общаться более надежно.


Он использует gRPC для быстрой, структурированной клиент-серверной связи и WebRTC для прямой одноранговой связи между машинами. Давайте рассмотрим преимущества использования gRPC и WebRTC более подробно.

Преимущества использования gRPC и Protobuf в робототехнике

Есть ряд причин использовать gRPC для робототехники, например, для повышения производительности и удобства разработчиков. Однако наиболее весомой причиной является оптимизация скорости, возможно, до 7–10 раз быстрее, чем REST API через HTTP, с легким обменом сообщениями Protobuf.

Производительность и эффективность

  • Кодирование: Protobuf предлагает эффективное двоичное кодирование, идеально подходящее для машин с низкими ограничениями по мощности, памяти, вычислительным ресурсам или пропускной способности по сравнению с JSON-RPC .
  • Транспорт: Наряду с транспортом по умолчанию HTTP/2, gRPC поддерживает альтернативные транспорты, такие как HTTP/1.1 с gRPC-Web и WebRTC. Это обеспечивает согласованный интерфейс с гибкостью базовой транспортной технологии, особенно с потоковой передачей.


Components and services in the Viam API represented as protobuf

Компоненты и службы в API Viam представлены как независимые от языка службы Protocol Buffer (protobuf), а gRPC отвечает за транспортировку и передачу сообщений protobuf при вызове методов protobuf.


В частности, Viam использует gRPC для высокоуровневых взаимодействий между деталями машин и приложениями на основе SDK, обеспечивая структурированный обмен данными и команды управления с низкой задержкой. Это эффективный способ координации выполняемых работ, таких как получение облаков точек с камер, анализ данных для сегментации объектов и указание роботизированным рукам выполнять задачи на основе вычисленных поз.


Protobuf минимизирует размер передаваемых данных, экономя пропускную способность сети во время передачи.

Преимущества использования WebRTC в робототехнике

Существует ряд причин использовать WebRTC в робототехнике, например, для безопасности и кроссплатформенной совместимости. Однако наиболее весомой причиной является то, что он использует прямое соединение.

Общение по принципу «равный-равному»

  • Прямой : WebRTC обеспечивает прямые соединения между устройствами, снижая зависимость от центральных серверов и минимизируя маршрут прохождения данных.
  • Адаптивность сети : регулирует качество мультимедиа в зависимости от условий сети для обеспечения бесперебойной работы, например, при потоковой передаче видео.


Viam использует WebRTC для одноранговой связи, что позволяет осуществлять прямые потоки видео и данных между частями машины и Viam SDK. Это означает, что после установки начального соединения вашим данным не нужно проходить долгий путь через центральный сервер, чтобы связаться с другой машиной. Такая настройка оптимизирует отклик в реальном времени и эффективность работы, особенно при сложных конфигурациях машин.


WebRTC обеспечивает прямую одноранговую связь, избегая промежуточных серверов, которые могут вызывать задержки или точки сбоя.

Как Viam использует gRPC и WebRTC для обеспечения одноранговой связи роботов

Давайте рассмотрим, как это работает, на примере аркадной игры-когтя, состоящей из двух частей машины: камеры и руки.


Виам управляет компонентами робота в аркадной игре-когте


Приложение Viam (app.viam.com) прослушивает запросы на подключение, отправляет данные о подключении, а затем позволяет двум пирам общаться напрямую. Первоначальные подключения осуществляются через gRPC.


Viam использует gRPC для инициализации соединений и WebRTC для одноранговой связи в этой игре-роботе-когтях


После подключения части машины взаимодействуют через WebRTC, позволяя всем взаимодействиям между SDK и машинами происходить через WebRTC с использованием вызовов методов gRPC. Другими словами, схема gRPC решает, как выглядят данные и как они упаковываются, в то время как WebRTC обрабатывает фактическую доставку этих данных из одного места в другое.

Начните изучать робототехнику с помощью Viam

Хотя вы можете построить подобную инфраструктуру самостоятельно, Viam предоставляет эту возможность с помощью готового программного обеспечения для робототехники. Функциональность на машине имеет открытый исходный код и бесплатна для использования. Если вы в конечном итоге начнете управлять парком, это будет основанная на использовании тарификация для облачных сервисов и хранения данных.


Веб-приложение Viam и SDK были разработаны, чтобы помочь вам работать с вашими машинами. Однако, если вы хотите изучить, что происходит за кулисами, ознакомьтесь с общедоступным рабочим пространством API Viam в Postman для пошаговых инструкций по работе с базовыми API Viam gRPC, включая:


  • Авторизация вызовов API gRPC

  • Вызов методов управления аппаратными компонентами

  • Вызов методов управления программными службами


    Коллекция API Viam gRPC для справки

Возможно, у вас нет роботизированной руки, но вы можете попробовать это с более доступной машиной, например, марсоходом, например, Yahboom или SCUTTLE . Viam также разработал марсоход с открытым исходным кодом , чтобы помочь людям узнать о робототехнике.


Используйте gRPC и WebRTC для управления марсоходом


Чтобы начать, скопируйте коллекцию образцов марсохода Spin a Viam в свою рабочую область, нажав кнопку «Запустить в Postman» ниже.


Создайте копию коллекции gRPC в своей рабочей области, нажав кнопку «Запустить в Postman».

И следуйте этим ресурсам:

Технический обзор: Ник Хехр