Native ROS 1 and ROS 2

Desktop app only

Connect directly to your running ROS stack via a native TCP (Transmission Control Protocol) connection to access your ROS master and/or nodes directly.

Loading data

In the Data source dialog, click Open connection and then select the type of native ROS connection you'd like to initiate ("ROS 1" or "ROS 2"):

ros 1 dialog

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 connection instead.

Once you have a working ROS 1 or ROS 2 setup on your computer, run roscore in your terminal to start your ROS master.

For ROS 1, enter your ROS_MASTER_URI (ROS master's IP and port) and ROS_HOSTNAME. 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 1 dialog

For ROS 2, enter your ROS_DOMAIN_ID:

ros 2 dialog

Note: Linux users opening a ROS 2 connection may need to adjust their networking receive buffer size in order to receive larger messages.

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.

Current limitations

Native ROS 1 connections can decode custom message definitions and allow you to publish back to your ROS stack. Native ROS 2 connections, however, currently have the following limitations:

Both native ROS 1 and ROS 2 connections do not yet support reading or setting ROS parameters.