paint-brush
Schlechte Netzwerkbedingungen? Kein Problem! gRPC und WebRTC für Roboter können helfenvon@joycelin
158 Lesungen

Schlechte Netzwerkbedingungen? Kein Problem! gRPC und WebRTC für Roboter können helfen

von Joyce Lin4m2024/08/09
Read on Terminal Reader

Zu lang; Lesen

Erfahren Sie, wie Sie gRPC und WebRTC für Roboter und andere intelligente Maschinen verwenden können, um zuverlässiger zu kommunizieren. Viele Robotersysteme bestehen aus Geräten mit geringem Stromverbrauch und geringer Bandbreite oder arbeiten unter schlechten Netzwerkbedingungen. GRPC ist auf Geschwindigkeit optimiert und möglicherweise bis zu 7–10x schneller als REST-APIs.
featured image - Schlechte Netzwerkbedingungen? Kein Problem! gRPC und WebRTC für Roboter können helfen
Joyce Lin HackerNoon profile picture

Roboter arbeiten an den unterschiedlichsten Orten mit unterschiedlichen Netzwerkbedingungen, von stabilem Ethernet bis hin zu inkonsistenten Mobilfunk- oder Satellitenverbindungen. Erfahren Sie, wie Sie gRPC und WebRTC für Roboter und andere intelligente Maschinen verwenden können, um zuverlässiger zu kommunizieren.


Bedienen Sie einen Rover mit der Viam gRPC API in Postman

Warum gRPC UND WebRTC zur Steuerung von Robotern verwenden?

Ich habe vor Kurzem einen neuen Job bei Viam angetreten und war neugierig, mehr über deren Systemarchitektur zu erfahren. Viele Robotersysteme bestehen aus Geräten mit geringem Stromverbrauch und geringer Bandbreite oder arbeiten unter schlechten Netzwerkbedingungen. Viam ist eine Open-Source-Robotik-Softwareplattform, die speziell dafür entwickelt wurde, Robotern und anderen intelligenten Maschinen zu helfen, zuverlässiger zu kommunizieren.


Es verwendet gRPC für eine schnelle, strukturierte Client-Server-Kommunikation und WebRTC für eine direkte Peer-to-Peer-Kommunikation zwischen Maschinen. Lassen Sie uns die Vorteile der Verwendung von gRPC und WebRTC genauer untersuchen.

Vorteile der Verwendung von gRPC und Protobuf in der Robotik

Es gibt eine Reihe von Gründen, gRPC für die Robotik zu verwenden, beispielsweise eine verbesserte Entwicklerproduktivität und Entwicklererfahrung. Der überzeugendste Grund ist jedoch, dass es auf Geschwindigkeit optimiert ist, möglicherweise bis zu 7–10x schneller als REST-APIs über HTTP, mit leichtgewichtigem Protobuf-Messaging.

Leistung und Effizienz

  • Kodierung: Protobuf bietet eine effiziente Binärkodierung, ideal für Maschinen mit geringen Leistungs-, Speicher-, Rechen- oder Bandbreitenbeschränkungen im Vergleich zu JSON-RPC .
  • Transport: Neben dem Standardtransport von HTTP/2 unterstützt gRPC alternative Transporte wie HTTP/1.1 mit gRPC-Web und WebRTC. Dies bietet eine konsistente Schnittstelle mit der Flexibilität der zugrunde liegenden Transporttechnologie, insbesondere beim Streaming.


Components and services in the Viam API represented as protobuf

Komponenten und Dienste in der Viam-API werden als sprachunabhängige Protocol Buffer (Protobuf)-Dienste dargestellt, und gRPC ist für den Transport und die Kommunikation von Protobuf-Nachrichten beim Aufrufen von Protobuf-Methoden verantwortlich.


Insbesondere verwendet Viam gRPC für hochrangige Interaktionen zwischen Maschinenteilen und SDK-basierten Anwendungen und ermöglicht so strukturierten Datenaustausch und Steuerbefehle mit geringer Latenz. Dies ist eine effiziente Möglichkeit, die zu erledigenden Aufgaben zu koordinieren, z. B. das Abrufen von Punktwolken von Kameras, das Analysieren von Daten zur Objektsegmentierung und das Anweisen von Roboterarmen, Aufgaben basierend auf berechneten Posen auszuführen.


Protobuf minimiert die Größe der übertragenen Daten und spart so Netzwerkbandbreite während der Übertragung.

Vorteile der Verwendung von WebRTC in der Robotik

Es gibt eine Reihe von Gründen, WebRTC in der Robotik zu verwenden, beispielsweise aus Sicherheitsgründen und wegen der plattformübergreifenden Kompatibilität. Der überzeugendste Grund ist jedoch, dass es eine direkte Verbindung verwendet.

Peer-to-Peer-Kommunikation

  • Direkt : WebRTC ermöglicht direkte Verbindungen zwischen Geräten, reduziert die Abhängigkeit von zentralen Servern und minimiert den Datendurchlaufweg.
  • Netzwerkanpassungsfähigkeit : Passt die Medienqualität basierend auf den Netzwerkbedingungen an, um eine reibungslose Leistung zu gewährleisten, beispielsweise beim Video-Streaming.


Viam setzt bei der Peer-to-Peer-Kommunikation auf WebRTC und ermöglicht so direkte Video- und Datenströme zwischen Maschinenteilen und dem Viam SDK. Das bedeutet, dass Ihre Daten nach dem Herstellen der ersten Verbindung nicht mehr den langen Weg über einen zentralen Server zurücklegen müssen, um mit einer anderen Maschine zu kommunizieren. Dieses Setup optimiert die Echtzeit-Reaktionsfähigkeit und Betriebseffizienz, insbesondere bei komplexen Maschinenkonfigurationen.


WebRTC ermöglicht eine direkte Peer-to-Peer-Kommunikation und vermeidet Zwischenserver, die Verzögerungen oder Fehlerquellen verursachen könnten.

Wie Viam gRPC und WebRTC nutzt, um Peer-to-Peer-Roboterkommunikation zu ermöglichen

Sehen wir uns an, wie dies am Beispiel eines Arcade-Greifspiels funktioniert, das aus zwei Maschinenteilen besteht: einer Kamera und einem Arm.


Viam steuert Komponenten eines Roboters in einem Arcade-Greifspiel


Die Viam-App (app.viam.com) wartet auf Verbindungsanfragen, sendet Verbindungsdetails und lässt dann die beiden Peers direkt kommunizieren. Die ersten Verbindungen werden über gRPC ermöglicht.


Viam verwendet in diesem Roboter-Greifspiel gRPC zum Initialisieren von Verbindungen und WebRTC für die Peer-to-Peer-Kommunikation


Sobald die Verbindung hergestellt ist, kommunizieren die Maschinenteile über WebRTC, sodass alle Interaktionen zwischen SDKs und Maschinen über WebRTC mithilfe von gRPC-Methodenaufrufen erfolgen können. Mit anderen Worten: Das gRPC-Schema bestimmt, wie die Daten aussehen und wie sie verpackt werden, während WebRTC die eigentliche Übermittlung dieser Daten von einem Ort zum anderen übernimmt.

Erste Schritte mit der Robotik mit Viam

Sie könnten zwar selbst eine ähnliche Infrastruktur aufbauen, aber Viam bietet diese Möglichkeit mit handelsüblicher Robotik-Software. Die On-Machine-Funktionalität ist Open Source und kostenlos nutzbar. Wenn Sie irgendwann mit der Verwaltung einer Flotte beginnen, erfolgt die Abrechnung für Cloud-Dienste und Datenspeicherung nutzungsabhängig.


Die Viam-Web-App und SDKs wurden entwickelt, um Ihnen die Arbeit mit Ihren Maschinen zu erleichtern. Wenn Sie jedoch sehen möchten, was hinter den Kulissen passiert, sehen Sie sich den öffentlichen Arbeitsbereich der Viam-APIs in Postman an. Dort finden Sie schrittweise Anleitungen zum Arbeiten mit den zugrunde liegenden Viam-gRPC-APIs, darunter:


  • Autorisieren von gRPC-API-Aufrufen

  • Aufrufen von Methoden zur Steuerung von Hardwarekomponenten

  • Aufrufen von Methoden zum Verwalten von Softwarediensten


    Die Viam gRPC API-Sammlung als Referenz

Sie haben vielleicht keinen Roboterarm zur Verfügung, aber Sie können dies mit einer günstigeren Maschine wie einem Rover wie Yahboom oder SCUTTLE ausprobieren. Viam hat auch einen Open-Source-Rover entwickelt, um Leuten dabei zu helfen, etwas über Robotik zu lernen.


Verwenden Sie gRPC und WebRTC, um einen Rover zu betreiben


Um zu beginnen, verzweigen Sie die Beispielsammlung „Spin a Viam Rover“ in Ihren eigenen Arbeitsbereich, indem Sie unten auf die Schaltfläche „In Postman ausführen“ klicken.


Verzweigen Sie die gRPC-Sammlung in Ihren eigenen Arbeitsbereich, indem Sie auf die Schaltfläche „In Postman ausführen“ klicken.

Und folgen Sie diesen Ressourcen:

Technische Überprüfung durch: Nick Hehr