Роботы работают в самых разных местах с различными сетевыми условиями, от стабильного Ethernet до нестабильных сотовых или спутниковых соединений. Узнайте, как можно использовать gRPC и WebRTC для роботов и других умных машин, чтобы обеспечить более надежную связь. Зачем использовать gRPC и WebRTC для управления роботами? Недавно я устроился на новую работу в Viam и мне было любопытно узнать больше об архитектуре их системы. Многие робототехнические системы состоят из маломощных и малопропускных устройств или работают в плохих сетевых условиях. — это платформа программного обеспечения для робототехники с открытым исходным кодом, которая была разработана специально для того, чтобы помочь роботам и другим умным машинам общаться более надежно. Viam Он использует gRPC для быстрой, структурированной клиент-серверной связи и WebRTC для прямой одноранговой связи между машинами. Давайте рассмотрим преимущества использования gRPC и WebRTC более подробно. Преимущества использования gRPC и Protobuf в робототехнике Есть ряд причин использовать для робототехники, например, для повышения производительности и удобства разработчиков. Однако наиболее весомой причиной является оптимизация скорости, возможно, до через HTTP, с легким обменом сообщениями Protobuf. gRPC 7–10 раз быстрее, чем REST API Производительность и эффективность Protobuf предлагает эффективное двоичное кодирование, идеально подходящее для машин с низкими ограничениями по мощности, памяти, вычислительным ресурсам или пропускной способности по сравнению с . Кодирование: JSON-RPC Наряду с транспортом по умолчанию HTTP/2, gRPC поддерживает альтернативные транспорты, такие как HTTP/1.1 с gRPC-Web и WebRTC. Это обеспечивает согласованный интерфейс с гибкостью базовой транспортной технологии, особенно с потоковой передачей. Транспорт: Компоненты и службы в представлены как независимые от языка службы Protocol Buffer (protobuf), а gRPC отвечает за транспортировку и передачу сообщений protobuf при вызове методов protobuf. API Viam В частности, Viam использует gRPC для высокоуровневых взаимодействий между деталями машин и приложениями на основе SDK, обеспечивая структурированный обмен данными и команды управления с низкой задержкой. Это эффективный способ координации выполняемых работ, таких как получение облаков точек с камер, анализ данных для сегментации объектов и указание роботизированным рукам выполнять задачи на основе вычисленных поз. Protobuf минимизирует размер передаваемых данных, экономя пропускную способность сети во время передачи. Преимущества использования WebRTC в робототехнике Существует ряд причин использовать в робототехнике, например, для безопасности и кроссплатформенной совместимости. Однако наиболее весомой причиной является то, что он использует прямое соединение. WebRTC Общение по принципу «равный-равному» : WebRTC обеспечивает прямые соединения между устройствами, снижая зависимость от центральных серверов и минимизируя маршрут прохождения данных. Прямой : регулирует качество мультимедиа в зависимости от условий сети для обеспечения бесперебойной работы, например, при потоковой передаче видео. Адаптивность сети Viam использует WebRTC для одноранговой связи, что позволяет осуществлять прямые потоки видео и данных между частями машины и Viam SDK. Это означает, что после установки начального соединения вашим данным не нужно проходить долгий путь через центральный сервер, чтобы связаться с другой машиной. Такая настройка оптимизирует отклик в реальном времени и эффективность работы, особенно при сложных конфигурациях машин. WebRTC обеспечивает прямую одноранговую связь, избегая промежуточных серверов, которые могут вызывать задержки или точки сбоя. Как Viam использует gRPC и WebRTC для обеспечения одноранговой связи роботов Давайте рассмотрим, как это работает, на примере аркадной игры-когтя, состоящей из двух частей машины: камеры и руки. Приложение Viam (app.viam.com) прослушивает запросы на подключение, отправляет данные о подключении, а затем позволяет двум пирам общаться напрямую. Первоначальные подключения осуществляются через gRPC. После подключения части машины взаимодействуют через WebRTC, позволяя всем взаимодействиям между SDK и машинами происходить через WebRTC с использованием вызовов методов gRPC. Другими словами, схема gRPC решает, как выглядят данные и как они упаковываются, в то время как WebRTC обрабатывает фактическую доставку этих данных из одного места в другое. Начните изучать робототехнику с помощью Viam Хотя вы можете построить подобную инфраструктуру самостоятельно, Viam предоставляет эту возможность с помощью готового программного обеспечения для робототехники. имеет открытый исходный код и бесплатна для использования. Если вы в конечном итоге начнете управлять парком, это будет основанная на использовании тарификация для облачных сервисов и хранения данных. Функциональность на машине и были разработаны, чтобы помочь вам работать с вашими машинами. Однако, если вы хотите изучить, что происходит за кулисами, ознакомьтесь с в Postman для пошаговых инструкций по работе с базовыми API Viam gRPC, включая: Веб-приложение Viam SDK общедоступным рабочим пространством API Viam Авторизация вызовов API gRPC Вызов методов управления аппаратными компонентами Вызов методов управления программными службами Возможно, у вас нет роботизированной руки, но вы можете попробовать это с более доступной машиной, например, марсоходом, например, . Viam также разработал , чтобы помочь людям узнать о робототехнике. Yahboom или SCUTTLE марсоход с открытым исходным кодом Используйте gRPC и WebRTC для управления марсоходом Чтобы начать, скопируйте коллекцию образцов в свою рабочую область, нажав кнопку ниже. марсохода Spin a Viam «Запустить в Postman» И следуйте этим ресурсам: Пошаговая кодовая лаборатория: Учебное пособие по Postman для API gRPC Viam Просмотрите для получения более подробной информации о каждом запросе. документацию по коллекции Посмотрите видео: Запустите марсоход с помощью API Viam gRPC https://www.youtube.com/watch?v=KaJIXznpssw&t=1s&embedable=true Технический обзор: Ник Хехр