LiveKit Portal verbindet ROS-2-Roboter über WebRTC mit entfernten Systemen

LiveKit hat LiveKit Portal für ROS 2 veröffentlicht. Der eigenständige Knoten verbindet einen lokalen ROS-Graphen mit einem LiveKit-Raum. Damit können ROS- und Nicht-ROS-Teilnehmer Topics, Service-Aufrufe und Video über WebRTC austauschen, ohne DDS netzwerkübergreifend offenzulegen.
- LiveKit Portal für ROS 2 verbindet ROS-Graphen mit LiveKit-Räumen.
- Die Software unterstützt ROS-Topics, Services, Bilder und direkte Videoquellen.
- ROS-zu-ROS-Nachrichten können im nativen CDR-Format bleiben.
- YAML-Regeln steuern Topics, Richtungen, Datenraten, Schemata und Video.
- Die Software ist als Docker-Images und Debian-Pakete für unterstützte ROS-2-Distributionen und Architekturen verfügbar.
Eine Brücke zwischen ROS 2 und LiveKit
ROS 2 ist für verteilte Systeme ausgelegt, sein standardmäßiges Netzwerkmodell funktioniert jedoch am besten in einem lokalen Netzwerk. Die Verbindung eines Roboters mit einem entfernten Bediener, einem Cloud-Dienst oder einem anderen Roboter erfordert sonst oft eine separate Transportschicht rund um den ROS-Graphen, die Teams selbst entwickeln und warten müssen.
LiveKit Portal schließt diese Lücke als eigenständiger ROS-2-Knoten. Die Software erkennt konfigurierte Topics in einem lokalen ROS-Graphen und veröffentlicht sie als LiveKit-Tracks. Ein zweiter Portal-Knoten kann diese Tracks abonnieren und sie in seinen eigenen Graphen zurückschreiben. Webanwendungen, Cloud-Dienste und andere LiveKit-Clients können dieselben Daten nutzen, ohne ROS auszuführen.
Die Software unterstützt vier zentrale Datenpfade: ROS-Topics über LiveKit DataTracks, ROS-Services über LiveKit RPC, ROS-Bilder als LiveKit VideoTracks sowie Videoquellen, die ROS umgehen und direkt als LiveKit VideoTracks veröffentlicht werden.
Native ROS-Nachrichten und browserfreundliche Schemata
Portal speichert das Nachrichtenschema jedes Topics zusammen mit dessen DataTrack, damit Abonnenten wissen, wie sie die Daten lesen müssen. Bei ROS-zu-ROS-Verbindungen bleiben die Nachrichten im nativen CDR-Format von ROS, ohne Konvertierung für jede einzelne Nachricht. Vor der Weiterleitung eines Topics prüft Portal, ob beide Graphen dieselbe Nachrichtendefinition verwenden.
Für Verbindungen mit Nicht-ROS-Clients kann Portal ein Topic als JSON kodieren und ein aus dem ROS-Nachrichtentyp generiertes JSON Schema veröffentlichen. So kann eine Browseranwendung oder ein Cloud-Dienst die Daten ohne ROS-Werkzeuge lesen.
LiveKit übernimmt die Verbindung zwischen den Teilnehmern über Weitverkehrsnetze, einschließlich Verschlüsselung, Überlastungssteuerung und selektiver Abonnements. DDS bleibt dabei innerhalb des lokalen ROS-Netzwerks jedes Roboters. Entfernte Teilnehmer können nur die Tracks abonnieren, die sie benötigen.
Die Konfiguration steuert, was das Netzwerk passiert
ROS Portal verwendet eine YAML-Konfigurationsdatei, um festzulegen, welche Topics und Services die LiveKit-Verbindung passieren dürfen. Regeln für Topics unterstützen reguläre Ausdrücke, Richtungssteuerung, Ratenbegrenzungen, Schema-Kodierung, latched delivery und Videooptionen.
Im von LiveKit veröffentlichten Konfigurationsbeispiel werden Test-Topics in beide Richtungen übertragen, ein IMU-Datenstrom auf 10 Hz begrenzt und mit jsonschema kodiert, während entfernte Geschwindigkeitsbefehle empfangen werden. Außerdem wird eine Stereokamera als H.264-LiveKit-VideoTrack mit einer maximalen Bitrate von 4000000 Bit pro Sekunde und einer maximalen Bildrate von 30 veröffentlicht.
LiveKit zufolge kann die Beschränkung der Weiterleitung auf die von einer Anwendung benötigten Topics und Richtungen unnötigen Datenverkehr auf eingeschränkten Roboterverbindungen reduzieren und die aus der Ferne erreichbare Oberfläche des ROS-Graphen begrenzen.
Eine Demonstration mit entfernter SLAM-Verarbeitung
Die Demonstration von LiveKit kombiniert Teleoperation, entfernte Inferenz und Überwachung. Ein Waveshare Cobra Flex Rover mit einem Jetson Orin Nano und einer USB-Stereokamera streamt Video über LiveKit. Eine mit dem LiveKit JS SDK entwickelte Browseranwendung sendet Joystick- und Tastaturbefehle, ohne ROS auszuführen.
Ein Desktop-PC mit einer NVIDIA RTX 5090 führt entfernte ROS-Komponenten für RTAB-Map-Stereo-SLAM und die Szenenrekonstruktion mit ScaRF-SLAM aus. Auf einem separaten Mac laufen ROS Portal und Foxglove Bridge, um die Pose des Roboters und die wachsende 3D-Karte anzuzeigen.
Die SLAM-Knoten verwenden weiterhin gewöhnliche ROS-Topics und wissen nichts von LiveKit. Portal empfängt den Stereokamera-Track, veröffentlicht ihn erneut als ROS-Bild-Topic und sendet ausgewählte Posen-, Transformations- und Kartendaten über den Raum zurück. Laut LiveKit lässt sich dasselbe Muster für andere rechenintensive Komponenten nutzen, darunter Wahrnehmungsmodelle, Planer und Policy-Inferenz.
LiveKit: Introducing LiveKit Portal for ROS 2


