ROS2 bridge rosidl missing

I created this issue because I didn’t find anything relevant. There where multiple topics about the extension loading failed, but the solution there was to properly export distro, rmw implementation and ld_path, which in my case seem to be okay.

I tried to run Isaac Sim from python script with Ros2 Bridge.

First, I created a script to open the isaac sim alone

from isaacsim import SimulationApp
simulation_app = SimulationApp(
    {
        "headless": False,   # set True for headless runs
         "isaac/startup/ros_sim_control_extension": True,
    }
)

while simulation_app.is_running():
    simulation_app.update()

simulation_app.close()

I run it from /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64 with ./python.sh <path_to_script>

and it works. Isaac opens properly.
Then I tried to load the isaac ros2 bridge extension.

from isaacsim import SimulationApp
import os
import sys

ISAAC_ROOT = "/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64"
ROS_LIB = os.path.join(ISAAC_ROOT, "exts", "isaacsim.ros2.bridge", "jazzy", "lib")

os.environ["RMW_IMPLEMENTATION"] = "rmw_fastrtps_cpp"
os.environ["LD_LIBRARY_PATH"] = ROS_LIB

simulation_app = SimulationApp(
    {
        "headless": False,   # set True for headless runs
         "isaac/startup/ros_sim_control_extension": True,
    }
)

import omni.kit.app
mgr = omni.kit.app.get_app().get_extension_manager()
mgr.set_extension_enabled("isaacsim.ros2.bridge", True)

while simulation_app.is_running():
    simulation_app.update()

simulation_app.close()

I skipped the export of ROS_DISTRO to force Isaac to use in-built version.
Isaac Sim opens but I got this info

[19.560s] app ready
[21.750s] Simulation App Startup Complete
[21.772s] [ext: isaacsim.ros2.bridge-4.12.4] startup
[22.008s] Using backup internal ROS2 jazzy distro
Could not load the dynamic library from librosidl_runtime_c.so. Error: librosidl_runtime_c.so: cannot open shared object file: No such file or directory
[22.039s] Loading librosidl_runtime_c.so from sourced ROS_DISTRO failed, falling back to internal libraries.
Could not load the dynamic library from /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/liblibrosidl_runtime_c.so. Error: /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/liblibrosidl_runtime_c.so: cannot open shared object file: No such file or directory
2026-02-06T16:01:48Z [22,028ms] [Warning] [isaacsim.ros2.bridge.plugin] Could not load ROS2 Bridge due to missing library dependencies, please make sure your sourced ROS2 workspace has the correct packages/libraries installed
2026-02-06T16:01:48Z [22,028ms] [Error] [isaacsim.ros2.bridge.impl.extension] ROS2 Bridge startup failed

And here I think is the problem because /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/liblibrosidl_runtime_c.so this seems to have a typo XD

proper path which exists in my isaac directory is /isaacsim/i/exts/isaacsim.ros2.bridge/jazzy/lib/librosidl_runtime_c.so

I am not sure if there is really a typo, or I am doing something wrong. Would be grateful for every hint and help to get this working.

PS. I tried to create this in the GitHub as asked, but I could not create an issue.

1 Like

Thanks for the detailed report.

Is the issue also reproducible with the built‑in standalone examples, for example:
./python.sh standalone_examples/testing/isaacsim.ros2.bridge/enable_extension.py
or
./python.sh standalone_examples/api/isaacsim.ros2.bridge/clock.py?

This will help narrow down whether the problem is specific to your custom script or affects the default ROS2 bridge setup as well.

Thank you for the reply.

I tried with
./python.sh standalone_examples/testing/isaacsim.ros2.bridge/enable_extension.py

it asked me to export LD_PATH, ROS_DISTRO and RMW_implementation. I skipped distro, but exported the rest and the script worked properly. with logged msg
2026-02-09T07:23:05Z [2ms] [Info] [omni.ext.plugin] [ext: isaacsim.ros2.bridge-4.12.4] registered (path: /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge)

and other components loaded after, before closing

2026-02-09T07:23:13Z [7,962ms] [Info] [omni.ext.plugin] About to startup: [ext: isaacsim.ros2.bridge-4.12.4] (order: 0) Triggered by API/CLI/Config. (path: /isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge)
2026-02-09T07:23:13Z [7,962ms] [Info] [omni.kit.app.plugin] [7.973s] [ext: isaacsim.ros2.bridge-4.12.4] startup
2026-02-09T07:23:13Z [7,963ms] [Info] [omni.ext._impl.utils] -> func:_refresh_cache took: 0.0013s
2026-02-09T07:23:13Z [7,973ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [7,973ms] [Info] [omni.ext._impl._internal] Found class `ROS2BridgeExtension` derived from `omni.ext.IExt` in module: 'isaacsim.ros2.bridge' in '/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge'. Calling `on_startup`.
2026-02-09T07:23:13Z [7,973ms] [Info] [isaacsim.ros2.bridge.impl.extension] Ubuntu distro detected. Using system default ROS distribution: jazzy
2026-02-09T07:23:13Z [7,973ms] [Info] [omni.kit.app.plugin] [7.985s] Using backup internal ROS2 jazzy distro
2026-02-09T07:23:13Z [7,976ms] [Info] [carb] Registered plugin: isaacsim.ros2.bridge.plugin (interfaces: [isaacsim::ros2::bridge::Ros2Bridge v0.2]) (impl: isaacsim.ros2.bridge.plugin)
2026-02-09T07:23:13Z [8,006ms] [Info] [carb] Initializing plugin: isaacsim.ros2.bridge.plugin (interfaces: [isaacsim::ros2::bridge::Ros2Bridge v0.2]) (impl: isaacsim.ros2.bridge.plugin)
2026-02-09T07:23:13Z [8,023ms] [Info] [isaacsim.ros2.bridge.plugin] rcl::init()
2026-02-09T07:23:13Z [8,026ms] [Info] [omni.kit.app.plugin] [8.037s] Attempting to load system rclpy
2026-02-09T07:23:13Z [8,026ms] [Info] [omni.kit.app.plugin] [8.038s] Could not import system rclpy: No module named 'rclpy'
2026-02-09T07:23:13Z [8,026ms] [Info] [omni.kit.app.plugin] [8.038s] Attempting to load internal rclpy for ROS Distro: jazzy
2026-02-09T07:23:13Z [8,054ms] [Info] [omni.kit.app.plugin] [8.066s] rclpy loaded
2026-02-09T07:23:13Z [8,054ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge.tests' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [8,054ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge.impl.samples.ros_samples' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [8,054ms] [Info] [omni.ext._impl._internal] Found class `Extension` derived from `omni.ext.IExt` in module: 'isaacsim.ros2.bridge.impl.samples.ros_samples' in '/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge'. Calling `on_startup`.
2026-02-09T07:23:13Z [8,055ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge.impl.samples.ros_waypoint_follower_sample' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [8,055ms] [Info] [omni.ext._impl._internal] Found class `Extension` derived from `omni.ext.IExt` in module: 'isaacsim.ros2.bridge.impl.samples.ros_waypoint_follower_sample' in '/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge'. Calling `on_startup`.
2026-02-09T07:23:13Z [8,055ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge.impl.samples.ros_moveit_sample' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [8,055ms] [Info] [omni.ext._impl._internal] Found class `Extension` derived from `omni.ext.IExt` in module: 'isaacsim.ros2.bridge.impl.samples.ros_moveit_sample' in '/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge'. Calling `on_startup`.
2026-02-09T07:23:13Z [8,056ms] [Info] [omni.ext._impl._internal] Searching for classes derived from 'omni.ext.IExt' in 'isaacsim.ros2.bridge.impl.og_shortcuts.og_shortcut_menu' ('/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge')
2026-02-09T07:23:13Z [8,056ms] [Info] [omni.ext._impl._internal] Found class `Extension` derived from `omni.ext.IExt` in module: 'isaacsim.ros2.bridge.impl.og_shortcuts.og_shortcut_menu' in '/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge'. Calling `on_startup`.
2026-02-09T07:23:13Z [8,236ms] [Info] [omni.ext.plugin] [ext: isaacsim.ros2.bridge-4.12.4] started, startup time: 274 (ms)
2026-02-09T07:23:13Z [8,236ms] [Info] [omni.ext.plugin] [ext manager] preferLocalVersions: 1
2026-02-09T07:23:13Z [8,249ms] [Info] [omni.graph.core.plugin] Creating unregistered node type isaacsim.ros2.bridge.ROS2QoSProfile (version 1)
2026-02-09T07:23:13Z [8,249ms] [Info] [omni.graph.core.plugin] Creating unregistered node type isaacsim.ros2.bridge.ROS2CameraHelper (version 2)
2026-02-09T07:23:13Z [8,249ms] [Info] [omni.graph.core.plugin] Creating unregistered node type isaacsim.ros2.bridge.ROS2RtxLidarHelper (version 1)
2026-02-09T07:23:13Z [8,249ms] [Info] [omni.graph.core.plugin] Creating unregistered node type isaacsim.ros2.bridge.ROS2CameraInfoHelper (version 1)

but what seems interesting is that terminal window froze and didn’t close properly.

[8.066s] rclpy loaded
[8.398s] Simulation App Shutting Down
^C^C^C^C^C^C^C

The second example the clock.py works properly from the beginning to the end.

What interesting, with the given export, my script also works without issues, so maybe this part export something unproper :/

ROS_LIB = os.path.join(ISAAC_ROOT, "exts", "isaacsim.ros2.bridge", "jazzy", "lib")
os.environ["LD_LIBRARY_PATH"] = ROS_LIB

it seems I found it

~ ❯ echo $LD_LIBRARY_PATH                                                                                                                                                                            08:50:50
:/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/lib

the instruction of exporting says to use “:” mark at the beginning, but my exporting does not provide it. Even if before the export the $LD_LIBRARY_PATH is completely empty, this “:” influence the Isaac looking for

I make static exports in my .zshrc as

export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
export ROS_DISTRO=jazzy
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/lib

and now even my script which should open the Isaac Sim App with isaac.ros2.bridge enabled opens without errors.

After trying to load the world with

from omni.isaac.core.utils.stage import open_stage

_script_dir = os.path.dirname(os.path.abspath(__file__))
_code_base = os.path.dirname(_script_dir)
USD_PATH = os.path.join(_code_base, "my_simulation", "my_simulation_assets", "assets")

if os.path.exists(USD_PATH):
    print(f"USD file found: {USD_PATH}")
else:
    print(f"USD file not found: {USD_PATH}")

USD_PATH = USD_PATH + "/scene.usda"

if not os.path.isfile(USD_PATH):
    raise FileNotFoundError(f"USD file not found: {USD_PATH}")

open_stage(USD_PATH)

I got a Warning that

2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2SubscribeTwist'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraHelper'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraInfoHelper'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishOdometry'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishTransformTree'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraInfoHelper'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishRawTransformTree'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishTransformTree'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraHelper'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishClock'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraHelper'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2PublishTransformTree'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,402ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2Context'
2026-02-09T09:15:57Z [29,403ms] [Warning] [omni.graph.core.plugin] Could not find node type interface for 'isaacsim.ros2.bridge.ROS2CameraInfoHelper'

If I don;t load the scene through the script but I run the script with Isaac App and Ros2 bridge openning, and then go from Open>> from GUI, then all work properly, and topics are visible. Also then I don’t have above warnings about not finding type interfaces :/

I managed to properly do it, so I am describing it how it’s done properly.

this way of exporting is necessery
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/isaacsim/isaac-sim-standalone-5.1.0-linux-x86_64/exts/isaacsim.ros2.bridge/jazzy/lib

I am not sure why the : is so important here, even if the LD_LIBRARY_PATH is empty at the beginning but lack of it was important part of the problem.

from isaacsim import SimulationApp
simulation_app = SimulationApp({"renderer": "RaytracedLighting", "headless": True})
from isaacsim.core.utils.extensions import enable_extension

enable_extension("isaacsim.ros2.bridge")
# here other extensions can be enabled
simulation_app.update()

# here is the file openning with final 
open_stage(USD_PATH)

# ---- 3. Keep the app running ----
while simulation_app.is_running():
    simulation_app.update()

# ---- 4. Shutdown ----
simulation_app.close()

as seen above, I changed the way of enabling extension, not thourgh KIT, but with utils. Also the important thing is to make an update after loading extensions, and then the isaacsim.ros2.bridge elements are properly load then.

Thanks @VickNV for proposing testing and api scripts, they were extremely useful to compare the results

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.