Isaac Sim Version: 5.1.0
Operating System: Ubuntu 24.04
GPU Information: Model: A6000
Topic Description: I am a beginner with Isaac Sim and ROS 2, and I am trying to set up the ROS 2 Jazzy bridge following the official documentation. My goal is to use the ROS 2 UR description package with Isaac Sim. This is step 6 in the official tutorial.
Detailed Description: I followed the instructions provided in the Isaac Sim documentation for “Building and Installing the UR Description Package”:
Isaac Sim 5.1 requires Python 3.11, which is not natively supported by the ROS 2 UR description package, so we need to build the package from source.
Note
See Enabling rclpy, Custom ROS 2 Packages, and Workspaces with Python 3.11 for more information on setting up your custom ROS 2 package in your ROS workspace.
Following the link above, I followed these instructions:
Isaac Sim requires Python 3.11. A dockerfile is included that builds a ROS 2 workspace with Python 3.11. Packages built using this dockerfile can be used directly with
rclpyand can be sourced to run the Isaac Sim ROS 2 Bridge.To use the dockerfile to build ROS 2 and the workspace with Python 3.11:
Clone Isaac Sim ROS Workspace.
Build the dockerfile:
cd IsaacSim-ros_workspaces ./build_ros.sh -d jazzy -v 24.04The minimal
jazzy_wsneeded to run Isaac Sim is underbuild_ws/jazzy/jazzy_ws. Additional workspaces can also be created and built in this dockerfile.While the build process inside the provided Docker container (
build_ros.sh) seems to finish successfully, I encounter a runtime error as soon as I try to userclpy. It seems there is a mismatch between the Python environment used by the build script (which defaults to Python 3.12 on Ubuntu 24.04) and the Python environment required by Isaac Sim (which expects Python 3.11).
Steps to Reproduce:
-
Clone the
IsaacSim-ros_workspacesrepository. -
Run
./build_ros.sh -d jazzy -v 24.04. -
Source the resulting workspace as described in the tutorial.
-
Attempt to run the Isaac Sim-ROS 2 bridge or import
rclpywithin Isaac Sim (Python 3.11).
Error Messages:
[9.090s] Could not import system rclpy: No module named 'rclpy._rclpy_pybind11'
The C extension '.../_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so' isn't present on the system.
Note: It appears the system is looking for a Python 3.11 extension, but the build created files for Python 3.12:
$ find IsaacSim-ros_workspaces -name "*_rclpy_pybind*"
IsaacSim-ros_workspaces/build_ws/jazzy/jazzy_ws/install/lib/python3.12/site-packages/rclpy/_rclpy_pybind11.cpython-312-x86_64-linux-gnu.so
Also note running without sourcing this works, but then importing the robot as described in step 6 of the tutorial is not possible:
$ find /isaac-sim/ -name "*_rclpy_pybind*"
/isaac-sim/exts/isaacsim.ros2.bridge/jazzy/rclpy/rclpy/_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so
/isaac-sim/exts/isaacsim.ros2.bridge/humble/rclpy/rclpy/_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so
Screenshots or Videos: N/A
Additional Information: What I’ve Tried:
-
I have tried running the build script multiple times.
-
I attempted to force the use of Python 3.11 by setting
PYTHON_EXECUTABLE=/usr/bin/python3.11during the build, but the Docker environment still defaulted to its internal settings. -
I am currently unsure if I am missing a configuration step or if the provided Docker setup is intended to handle the Python version automatically.
Additional Context: As a beginner, I am struggling to understand if I should manually install Python 3.11 inside the Docker container or if there is a way to configure the build_ros.sh script to align with the Python version that Isaac Sim 5.1 expects. Any guidance or advice on how to bridge this version gap would be greatly appreciated.