LiveKit Portal connects ROS 2 robots to remote systems over WebRTC

LiveKit has released LiveKit Portal for ROS 2, a standalone node that connects a local ROS graph to a LiveKit room. The software lets ROS and non-ROS participants exchange topics, service calls and video over WebRTC without exposing DDS across networks.
- LiveKit Portal for ROS 2 connects ROS graphs to LiveKit rooms.
- It supports ROS topics, services, images and direct video sources.
- ROS-to-ROS messages can remain in native CDR format.
- YAML rules control topics, directions, rates, schemas and video.
- The software is available as Docker images and Debian packages for supported ROS 2 distributions and architectures.
A bridge between ROS 2 and LiveKit
ROS 2 is designed for distributed systems, but its default networking model works best on a local network. Connecting a robot to a remote operator, cloud service or another robot can otherwise require teams to create and maintain a separate transport layer around the ROS graph.
LiveKit Portal addresses that gap as a standalone ROS 2 node. It discovers configured topics in a local ROS graph and publishes them as LiveKit tracks. A second Portal node can subscribe to those tracks and republish them into its own graph. Web applications, cloud services and other LiveKit clients can consume the same data without running ROS.
The software supports four main data paths: ROS topics through LiveKit DataTracks, ROS services through LiveKit RPC, ROS images as LiveKit VideoTracks, and video sources that bypass ROS and publish directly as LiveKit VideoTracks.
Native ROS messages and browser-friendly schemas
Portal stores each topic's message schema with its DataTrack so subscribers know how to read the data. For ROS-to-ROS connections, messages remain in ROS's native CDR format, without per-message conversion. Before forwarding a topic, Portal checks that both graphs use the same message definition.
For connections to non-ROS clients, Portal can encode a topic as JSON and publish a JSON Schema generated from the ROS message type. This allows a browser application or cloud service to read the data without ROS tooling.
LiveKit handles the wide-area connection between participants, including encryption, congestion control and selective subscriptions, while DDS remains inside each robot's local ROS network. Remote participants can subscribe only to the tracks they need.
Configuration controls what crosses the network
ROS Portal uses a YAML configuration file to specify which topics and services may cross the LiveKit connection. Topic rules support regular expressions, direction controls, rate limits, schema encoding, latched delivery and video options.
In the configuration example published by LiveKit, test topics move in both directions, an IMU stream is limited to 10 Hz and encoded with jsonschema, and remote velocity commands are received. The example also publishes a stereo camera as an H.264 LiveKit VideoTrack with a maximum bitrate of 4000000 bits per second and a maximum frame rate of 30.
LiveKit says limiting forwarding to the topics and directions an application needs can reduce unnecessary traffic on constrained robot links and limit the remote surface of the ROS graph.
A remote SLAM demonstration
LiveKit's demonstration combines teleoperation, remote inference and monitoring. A Waveshare Cobra Flex rover with a Jetson Orin Nano and a USB stereo camera streams video through LiveKit. A browser application built with the LiveKit JS SDK sends joystick and keyboard commands without running ROS.
A desktop equipped with an NVIDIA RTX 5090 runs remote ROS components for RTAB-Map stereo SLAM and ScaRF-SLAM scene reconstruction. A separate Mac runs ROS Portal and Foxglove Bridge to display the robot's pose and the growing 3D map.
The SLAM nodes continue to use ordinary ROS topics and do not know about LiveKit. Portal receives the stereo camera track, republishes it as a ROS image topic, and sends selected pose, transform and map data back through the room. LiveKit says the same pattern can be used for other heavy components, including perception models, planners and policy inference.
LiveKit: Introducing LiveKit Portal for ROS 2


