Show EOL distros: 

rosbridge_suite: rosapi | rosbridge_launch | rosbridge_library | rosbridge_server | rosbridge_test | roswww | tf_smart_throttle

Package Summary

A set of packages which provide various web-related functionality and expose various aspects of ROS to the outside world. At its core, rosbridge is a websockets server with a JSON API exposing ROS service and pub/sub functionality. Additional packages provide convenience functions, and handling for specific datatypes.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

rosbridge_suite: rosapi | rosbridge_library | rosbridge_server

Package Summary

Rosbridge provides a JSON API to ROS functionality for non-ROS programs. There are a variety of front ends that interface with rosbridge, including a WebSocket server for web browsers to interact with. Rosbridge_suite is a meta-package containing rosbridge, various front end packages for rosbridge like a WebSocket package, and helper packages.

About

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.

Installation

Rosbridge is available as a debian. To install:

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

Tutorials

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.

Community

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)