[isaacsim.ros2.bridge] ROS 2 Bridge#

Version: 5.1.4

Overview#

The ROS 2 Bridge extension enables communication between Isaac Sim and ROS 2 systems. It provides an integration layer for publishing and subscribing to ROS 2 topics and services through OmniGraph nodes and Action Graphs. This enables ROS 2 applications to interact with simulated environments in real time.

Important: ROS 2 publishers, subscribers, and services are active only during simulation playback. If ROS_DISTRO is unset, the Isaac Sim launchers configure the bundled ROS 2 libraries before startup. Source a system ROS 2 installation or workspace before launching Isaac Sim when the workflow requires custom message packages, external package resolution, or a non-default ROS environment.

Functionality#

The extension enables bidirectional data exchange between Isaac Sim and ROS 2 systems by providing ROS 2 message handling within the simulation environment. Communication flows through OmniGraph nodes, which can be assembled into Action Graphs for sensor publishing, command subscription, and service workflows.

OmniGraph Integration#

The bridge operates through OmniGraph nodes that handle ROS 2 communication. Each node can act as either a publisher or subscriber, converting data between Isaac Sim’s internal representation and ROS 2 message formats. These nodes can be connected in Action Graphs to create robotics workflows, from sensor simulation to actuator control.

Activation Behavior#

ROS 2 communication nodes remain dormant until simulation playback begins. When simulation playback starts, configured publishers and subscribers activate and begin processing messages. This limits ROS 2 traffic to active simulation and prevents unintended messages during scene setup or editing. When simulation is paused or stopped, ROS 2 communication ceases until playback resumes.

Integration#

The extension consolidates multiple ROS 2-related extensions into a unified bridge:

  • isaacsim.ros2.core provides the fundamental ROS 2 communication layer and message handling infrastructure, serving as the foundation for all ROS 2 operations

  • isaacsim.ros2.nodes supplies the OmniGraph node implementations that perform ROS 2 publishing, subscribing, and service calls

  • isaacsim.ros2.examples includes example scenes and Action Graphs demonstrating common ROS 2 integration patterns

  • isaacsim.ros2.ui offers UI components for configuring and monitoring ROS 2 connections within the Isaac Sim interface

All ROS 2 Bridge settings are centrally defined in the isaacsim.ros2.core extension, providing a single configuration point for the entire bridge system.

Considerations#

ROS 2 Environment Setup#

The bridge requires a ROS 2 runtime before Isaac Sim starts. The Isaac Sim launchers configure the bundled ROS 2 libraries automatically when ROS_DISTRO is unset. Source a system ROS 2 installation or workspace in the parent terminal when the workflow requires custom message packages, external package resolution, a custom RMW implementation, or a non-default ROS distribution.

Enable Extension#

The extension can be enabled (if not already) in one of the following ways:

Define the next entry as an application argument from a terminal.

APP_SCRIPT.(sh|bat) --enable isaacsim.ros2.bridge

Define the next entry under [dependencies] in an experience (.kit) file or an extension configuration (extension.toml) file.

[dependencies]
"isaacsim.ros2.bridge" = {}

Open the Window > Extensions menu in a running application instance and search for isaacsim.ros2.bridge. Then, toggle the enable control button if it is not already active.