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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
Et suivez ces ressources :
Revue technique par : Nick Hehr