Data sources

Studio can inspect data via a running ROS connection (i.e. a live robot, simulation, etc.) or from a recorded ROS .bag file.

Select a data source from the sidebar's Connection menu.

data sources menu

We currently support ROS 1, but are hoping to add support for ROS 2 and non-ROS data sources. If this is something you'd be interested in, please share what protocols or serialization formats you're using.

ROS Connection

Docker for Mac unfortunately does not expose all container ports to the macOS host, and so does not support bridge or host networking. Use the Rosbridge (Websocket) connection detailed in the next section instead.

The easiest way to start seeing data in Studio is to connect to a running ROS system – this a TCP (Transmission Control Protocol) connection to directly access your ROS master and nodes.

To get a ROS master running, run roscore in your terminal:

running ros

Now in Studio, use the sidebar to add ROS as a data source, and enter your ROS master's IP and port. If you're experiencing any issues, ensure you have unrestricted network connectivity between your ROS stack and Studio, as ROS uses multiple ports to communicate.

ros dialog

You are now connected to ROS!

To test your connection, add a Raw Messages panel to your layout, and see a list of available topics populate the dropdown. If you are not yet running any ROS nodes, you should only see the /rosout_agg topic.

Rosbridge (WebSocket) Connection

A rosbridge connection connects to your ROS master over WebSockets. Because a rosbridge connection uses a standard protocol and only requires one port to be open on your ROS host, this is a better option if you have a network firewall between ROS and Studio. On the flip side, it does require running an extra ROS node – rosbridge_server.

Before you start, make sure you’ve installed rosbridge-suite. On Ubuntu / Debian, the package name is ros-<version>-rosbridge-suite. For example, to install rosbridge for ROS Noetic, run:

sudo apt install ros-noetic-rosbridge-suite

Next, ensure you do not already have a ROS master running, and start the websocket server:

roslaunch rosbridge_server rosbridge_websocket.launch

In the following example, the server is listening on port 9090:

running rosbridge server

Now in Studio, use the sidebar to add Rosbridge (WebSocket) as a data source, and enter the URL to your websocket server:

rosbridge dialog

You are now connected to ROS!

To test your connection, add a Raw Messages panel to your layout, and see a list of available topics populate the dropdown. Check out the /connected_clients topic to see information rosbridge is publishing about your connection.

ROS .bag file

Lastly, you can inspect data recorded in ROS .bag files, whether these files are loaded from your local filesystem or fetched from a remote URL.

To load a local .bag file, use the sidebar in Studio to add Bag File (local) as a data source. Alternatively, you can double-click the file from your file manager, or drag it directly into Studio.

To load a remote .bag file, use the sidebar in Studio to add Bag File (HTTP) as a data source, and enter the URL to your remote file.

bag file dialog

You are now loading your pre-recorded ROS data!

To test, add a Raw Messages panel to your layout, and see a list of available topics populate the dropdown.