Isaac Sim Version
5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):
Operating System
Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):
GPU Information
- Model: L40s
- Driver Version: 570.172.08
Topic Description
Cannot properly load isaacsim.ros2.bridge extension from a standalone script. I would relaly prefer to NOT have to set env vars in the terminal prior to launching the script, but I cannot get it to work regardless.
My setup:
- AWS g6e.2xlarge
- Nvidia IsaacSim AMI ( AWS Marketplace: NVIDIA Isaac Sim™ Development Workstation (Linux) )
- Ubuntu 24.04
- HUMBLE ros2 container (yes, humble.)
Detailed Description
I have tried:
-
source setup_ros_env.sh && ./python.sh workspace/mxi-isaacsim/main.py(without any setting of any env var in the python script)
This results inROS_DISTRO=jazzy, and python crashes. -
as another attempt: after running
source setup_ros_env.sh, i triedexport ROS_DISTRO=humble
results in the following:[11.346s] [ext: isaacsim.ros2.bridge-4.9.3] startupFatal glibc error: malloc.c:2599 (sysmalloc): assertion failed: (old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)2025-10-29T23:35:47Z [11,410ms] [Warning] [carb] Acquiring non optional plugin interface which is not listed as dependency: [carb::dictionary::ISerializer v1.1] (plugin: carb.dictionary.serializer-json.plugin), by client: carb.scenerenderer-rtx.plugin. Add it to CARB_PLUGIN_IMPL_DEPS() macro of a client.Aborted (core dumped)
[11.725s] To use the internal libraries included with the extension please set the following environment variables to use with FastDDS (default) or CycloneDDS before starting Isaac Sim:
FastDDS (default):export ROS_DISTRO=humbleexport RMW_IMPLEMENTATION=rmw_fastrtps_cppexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/IsaacSim/exts/isaacsim.ros2.bridge/humble/lib
OR
CycloneDDS:export ROS_DISTRO=humbleexport RMW_IMPLEMENTATION=rmw_cyclonedds_cppexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/IsaacSim/exts/isaacsim.ros2.bridge/humble/lib
2025-10-29T23:35:47Z [11,704ms] [Error] [isaacsim.ros2.bridge.impl.extension] ROS2 Bridge startup failed[11.883s] [ext: isaacsim.ros2.bridge-4.9.3] shutdown
-
setting
ROS_DISTRO=humble,`RMW_IMPLEMENTATION=rmw_fastrtps_cpp`andLD_LIBRARY_PATHenv manually withexport …before launching my python script… WAY too many python crashes to copy here
-
using
os.environ…inside the python script (before importingSimulationApp):
I still get the console warning from attempt 1).
The nuance is that I need humble, not jazzy, even though my host OS is ubuntu 24.04… And I know it CAN load humble just fine because it works great from isaac-sim.selector.sh
…so… how do we enable ros2 bridge purely and solely from a standalone python script?
# Set ROS2 environment variables - required for ROS2 bridge to load completely:
os.environ["ROS_DISTRO"] = "humble"
os.environ["RMW_IMPLEMENTATION"] = "rmw_fastrtps_cpp"
# Ensure ROS2 bridge native libs are found. check if /opt/IsaacSim/exts/isaacsim.ros2.bridge/humble/lib exists in $LD_LIBRARY_PATH
ros2_bridge_lib_path = "/opt/IsaacSim/exts/isaacsim.ros2.bridge/humble/lib/"
if "LD_LIBRARY_PATH" in os.environ:
if ros2_bridge_lib_path not in os.environ["LD_LIBRARY_PATH"]:
os.environ["LD_LIBRARY_PATH"] += f":{ros2_bridge_lib_path}"
else:
os.environ["LD_LIBRARY_PATH"] = ros2_bridge_lib_path
print("LD_LIBRARY_PATH:", os.environ["LD_LIBRARY_PATH"])
from isaacsim.simulation_app import SimulationApp
# Launch Isaac Sim in GUI mode
simulation_app = SimulationApp({"headless": False,}, experience="apps/isaacsim.exp.full.kit")
from isaacsim.core.api import SimulationContext
from isaacsim.core.prims.impl.xform_prim import XFormPrim
from isaacsim.core.utils.extensions import enable_extension
from isaacsim.core.utils.stage import add_reference_to_stage
from omni import usd
# enable ROS2 bridge extension
enable_extension("isaacsim.ros2.bridge")