There's two parts to rosbridge: the protocol and the implementation.

Rosbridge Protocol

The rosbridge protocol is a specification for sending JSON based commands to ROS (and in theory, any other robot middleware). An example of the protocol for subscribing to a topic:

{ "op": "subscribe",
  "topic": "/cmd_vel",
  "type": "geometry_msgs/Twist"

The specification is programming language and transport agnostic. The idea is that any language or transport that can send JSON can talk the rosbridge protocol and interact with ROS. The protocol covers subscribing and publishing topics, service calls, getting and setting params, and even compressing messages and more.

Rosbridge Implementation

The rosbridge_suite package is a collection of packages that implement the rosbridge protocol and provides a WebSocket transport layer.

The packages include:

  • rosbridge_library - The core rosbridge package. The rosbridge_library is responsible for taking the JSON string and sending the commands to ROS and vice versa.

  • rosapi - Makes certain ROS actions accessible via service calls that are normally reserved for ROS client libraries. This includes getting and setting params, getting topics list, and more.

  • rosbridge_server - While rosbridge_library provides the JSON<->ROS conversion, it leaves the transport layer to others. Rosbridge_server provides a WebSocket connection so browsers can "talk rosbridge." Roslibjs is a JavaScript library for the browser that can talk to ROS via rosbridge_server.

Source Code

Source code is available at https://github.com/RobotWebTools/rosbridge_suite. Please file issues and pull requests there.


Rosbridge is available as a debian. To install:

sudo apt-get install ros-<rosdistro>-rosbridge-server


Beginner Tutorials

  1. Running Rosbridge

    This tutorial shows you how to launch a rosbridge server and talk to it.

Intermediate Tutorials

  1. Developing Rosbridge

    This tutorial shows you how to develop on rosbridge itself.


Rosbridge is a community project and involvement is encouraged! In addition to the GitHub repository, check out the Google Group and ROS Answers.

Wiki: rosbridge_suite (last edited 2022-09-07 18:33:59 by Carter Schultz)