paint-brush
Mauvaise qualité du réseau ? Pas de problème ! gRPC et WebRTC pour robots peuvent vous aiderpar@joycelin
287 lectures

Mauvaise qualité du réseau ? Pas de problème ! gRPC et WebRTC pour robots peuvent vous aider

par Joyce Lin4m2024/08/09
Read on Terminal Reader

Trop long; Pour lire

Découvrez comment utiliser gRPC et WebRTC pour que les robots et autres machines intelligentes communiquent de manière plus fiable. De nombreux systèmes robotiques sont composés d'appareils à faible consommation d'énergie et à faible bande passante, ou fonctionnent dans de mauvaises conditions de réseau. GRPC est optimisé pour la vitesse, peut-être jusqu'à 7 à 10 fois plus rapide que les API REST.
featured image - Mauvaise qualité du réseau ? Pas de problème ! gRPC et WebRTC pour robots peuvent vous aider
Joyce Lin HackerNoon profile picture

Les robots travaillent dans des environnements très divers, avec des conditions de réseau variables, allant d'un réseau Ethernet stable à des connexions cellulaires ou satellites instables. Découvrez comment utiliser gRPC et WebRTC pour permettre aux robots et autres machines intelligentes de communiquer de manière plus fiable.


Pilotez un rover à l'aide de l'API gRPC Viam dans Postman

Pourquoi utiliser gRPC ET WebRTC pour contrôler les robots ?

J'ai récemment commencé un nouveau travail chez Viam et j'étais curieux d'en savoir plus sur leur architecture système. De nombreux systèmes robotiques sont composés d'appareils à faible consommation d'énergie et à faible bande passante, ou fonctionnent dans de mauvaises conditions de réseau. Viam est une plate-forme logicielle robotique open source conçue spécifiquement pour aider les robots et autres machines intelligentes à communiquer de manière plus fiable.


Il utilise gRPC pour une communication client-serveur rapide et structurée et WebRTC pour une communication directe entre machines en peer-to-peer. Explorons plus en détail les avantages de l'utilisation de gRPC et de WebRTC.

Avantages de l'utilisation de gRPC et Protobuf en robotique

Il existe de nombreuses raisons d'utiliser gRPC pour la robotique, notamment pour améliorer la productivité et l'expérience des développeurs. Cependant, la raison la plus convaincante est qu'il est optimisé pour la vitesse, peut-être jusqu'à 7 à 10 fois plus rapide que les API REST sur HTTP, avec une messagerie Protobuf légère.

Performance et efficacité

  • Codage : Protobuf offre un codage binaire efficace, idéal pour les machines avec de faibles contraintes de puissance, de mémoire, de calcul ou de bande passante par rapport à JSON-RPC .
  • Transport : en plus du transport par défaut de HTTP/2, gRPC prend en charge des transports alternatifs comme HTTP/1.1 avec gRPC-Web et WebRTC. Cela fournit une interface cohérente avec la flexibilité de la technologie de transport sous-jacente, en particulier avec le streaming.


Components and services in the Viam API represented as protobuf

Les composants et services de l' API Viam sont représentés sous forme de services Protocol Buffer (protobuf) indépendants du langage, et gRPC est responsable du transport et de la communication des messages protobuf lors de l'appel des méthodes protobuf.


Viam utilise notamment le protocole gRPC pour les interactions de haut niveau entre les composants de la machine et les applications basées sur le SDK, ce qui permet un échange de données structuré et à faible latence ainsi que des commandes de contrôle. Il s'agit d'un moyen efficace de coordonner le travail à effectuer, comme la récupération de nuages de points à partir de caméras, l'analyse de données pour la segmentation d'objets et l'instruction de bras robotisés pour effectuer des tâches basées sur des poses calculées.


Protobuf minimise la taille des données transmises, économisant ainsi la bande passante du réseau pendant la transmission.

Avantages de l'utilisation de WebRTC en robotique

Il existe de nombreuses raisons d'utiliser WebRTC en robotique, notamment pour des raisons de sécurité et de compatibilité multiplateforme. Cependant, la raison la plus convaincante est qu'il utilise une connexion directe.

Communication entre pairs

  • Direct : WebRTC facilite les connexions directes entre les appareils, réduisant ainsi la dépendance aux serveurs centraux et minimisant le chemin de traversée des données.
  • Adaptabilité du réseau : ajuste la qualité du média en fonction des conditions du réseau pour des performances fluides, par exemple pour le streaming vidéo.


Viam s'appuie sur WebRTC pour la communication peer-to-peer, permettant des flux vidéo et de données directs entre les composants de la machine et le SDK Viam. Cela signifie qu'une fois la connexion initiale établie, vos données n'ont pas besoin de parcourir un long chemin en passant par un serveur central pour communiquer avec une autre machine. Cette configuration optimise la réactivité en temps réel et l'efficacité opérationnelle, en particulier avec des configurations de machines complexes.


WebRTC permet une communication directe entre homologues, évitant ainsi les serveurs intermédiaires qui pourraient introduire des retards ou des points de défaillance.

Comment Viam utilise gRPC et WebRTC pour permettre la communication entre robots en peer-to-peer

Voyons comment cela fonctionne dans l'exemple d'un jeu de griffes d'arcade composé de deux parties de machine : une caméra et un bras.


Viam contrôle les composants d'un robot dans un jeu de griffes d'arcade


L'application Viam (app.viam.com) écoute les demandes de connexion, envoie les détails de la connexion, puis permet aux deux homologues de communiquer directement. Les connexions initiales sont facilitées via gRPC.


Viam utilise gRPC pour initialiser les connexions et WebRTC pour la communication peer-to-peer dans ce jeu de griffes de robot


Une fois connectées, les parties de la machine communiquent via WebRTC, ce qui permet à toutes les interactions entre les SDK et les machines de se dérouler via WebRTC à l'aide d'appels de méthode gRPC. En d'autres termes, le schéma gRPC décide de l'apparence des données et de la manière dont elles sont empaquetées, tandis que WebRTC gère la livraison réelle de ces données d'un endroit à un autre.

Initiez-vous à la robotique avec Viam

Bien que vous puissiez créer vous-même une infrastructure similaire, Viam fournit cette capacité avec un logiciel de robotique prêt à l'emploi. La fonctionnalité sur machine est open source et gratuite. Si vous commencez à gérer une flotte, la facturation des services cloud et du stockage des données est basée sur l'utilisation.


L' application Web et les SDK Viam ont été conçus pour vous aider à travailler avec vos machines. Cependant, si vous souhaitez découvrir ce qui se passe en coulisses, consultez l' espace de travail public des API Viam dans Postman pour obtenir des instructions étape par étape sur l'utilisation des API gRPC Viam sous-jacentes, notamment :


  • Autoriser les appels d'API gRPC

  • Appel de méthodes pour contrôler les composants matériels

  • Appel de méthodes pour gérer les services logiciels


    La collection d'API gRPC de Viam pour référence

Vous n'avez peut-être pas de bras robotisé à votre disposition, mais vous pouvez essayer cela avec une machine plus abordable, comme un rover, comme Yahboom ou SCUTTLE . Viam a également conçu un rover open source pour aider les gens à en savoir plus sur la robotique.


Utiliser gRPC et WebRTC pour faire fonctionner un rover


Pour commencer, copiez la collection d'échantillons du rover Spin a Viam dans votre propre espace de travail en cliquant sur le bouton Exécuter dans Postman ci-dessous.


Forkez la collection gRPC vers votre propre espace de travail en cliquant sur le bouton Exécuter dans Postman

Et suivez ces ressources :

Revue technique par : Nick Hehr