=============== Robot Web Tools =============== Robot Web Tools is a set of tools for working with ROS in a web browser. It provides a set of tools for working with ROS from a web browser. It includes a JavaScript library for creating web-based user interfaces, a WebSocket interface to ROS, and a suite of web-based tools for working with ROS. `Website `_ Rosbridge ========= Rosbridge is a :ref:`WebSocket ` interface to ROS functionality for non-ROS programs. The message transport of rosbridge is JSON objects. `GitHub `_ .. figure:: images/ros_and_websocket.png :width: 450px :alt: ROS and WebSocket ROS and WebSocket. `Source `_ .. figure:: images/rosbridge.png :width: 450px :alt: Rosbridge Rosbridge. `Source `_. * **rosbridge_server** is a server which accepts websockets connections and implements the rosbridge protocol. Installation and Usage ---------------------- * ``sudo apt-get install ros--rosbridge-server`` (packages installed: rosbridge_server, rosbridge_library, rosbridge_msgs, rosapi) * ``ros2 launch rosbridge_server rosbridge_websocket_launch.xml`` - launch the Rosbridge WebSocket server (default port: 9090) Tutorial: `Using rosbridge with ROS2 `_ Foxglove ======== `Foxglove Studio `_ is an open source visualization and debugging tool for your robotics data. It can be run as a standalone desktop app, accessed via your browser, or even self-hosted on your own domain. ROS Foxglove bridge ------------------- The ``foxglove_bridge`` uses the Foxglove WebSocket protocol, a similar protocol to rosbridge, but with the ability to support additional schema formats such as ROS 2 .msg and ROS 2 .idl, parameters, graph introspection, and non-ROS systems. The bridge is written in C++ and designed for high performance with low overhead to minimize the impact to your robot stack `GitHub `_ roslibjs (ROS JavaScript Library) ================================= roslibjs is a JavaScript library for interacting with ROS from the browser. It uses **WebSockets** to connect with rosbridge and provides publishing, subscribing, service calls, actionlib, TF, URDF parsing, and other essential ROS functionality. It communicates with rosbridge using **JSON messages**. roslibjs is developed as part of the Robot Web Tools effort. `GitHub `_