Rclpy Import Failure in Isaac Sim Due to Python Version Conflict with ROS2 Humble, Seeking Robust Docker Solution

Isaac Sim Version

5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.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: NVIDIA RTX A4000
  • Driver Version: 580.82.07 - CUDA 13.0

Topic Description

Detailed Description

I am working with a workstation running Ubuntu 22.04 with ROS2 Humble installed (which requires Python 3.10), and I have installed Isaac Sim 5.1 following the official documentation (Workstation Installation — Isaac Sim Documentation). In the simulation, I have successfully simulated a LiDAR, an IMU, and published a string to ROS2 using Action Graph nodes. However, to publish a radar point cloud to ROS2 for visualization in RVIZ2, it appears this can only be done via Python code. I have tried publishing via the scripting window and the script node in Action Graph, but both result in the same error: rclpy version incompatibility.

From my research, this seems to be because ROS2 Humble requires Python 3.10, but Isaac Sim uses Python 3.11 for proper extension functionality. To resolve this, I attempted to use the official Docker container for Isaac Sim 5.1 GUI version (Container Installation — Isaac Sim Documentation) to see if I could read topics on the host. I noticed the official container uses Ubuntu 24.04 and ROS2 Rolling, which I thought might be causing issues with topic reading from the host.

Next, I tried an alternative Docker setup from GitHub (GitHub - arambarricalvoj/nvidia_isaac-sim_ros2_docker: Run NVIDIA Isaac Sim in a Docker container with ROS2 Humble and ROS2 bridge already set up.) (adapted for Isaac Sim 5.1) using Ubuntu 22.04 and the official workstation installation, but encountered the same rclpy issues as in the local installation. Additionally, in this custom Docker setup, since I was interested in using all ROS2 tools, I attempted to use the full desktop version and update the Python version used by ROS2 to 3.11, but encountered ROS2 errors during the update, so I abandoned this approach. I then reverted to the official 5.1 container but configured it with additional options via a docker-compose file, including network_mode: host and extra volumes for development.

In this container setup, there are no rclpy errors, and I tested various DDS configurations to visualize topics that worked locally (LiDAR and IMU). I found a working combination with CycloneDDS in the container (with some warnings) and FastDDS in the host, allowing visualization in ROS2 Humble on the host. However, since using two different DDS implementations seemed odd and due to the warnings in Isaac Sim, I attempted to configure both environments with the same DDS but could not get topics to display on the host.

My main issue is the inability to include a radar (which can only be added via code, as far as I know) due to the rclpy error stemming from the Python version mismatch between ROS2 Humble (3.10) and Isaac Sim (3.11). After attempting to solve this by exploring Docker alternatives, I am now interested in obtaining or having explained a stable working environment regardless of the computer or platform—in other words, a robust Docker solution.

Steps to Reproduce

  1. Install Isaac Sim 5.1 on Ubuntu 22.04 with ROS2 Humble.
  2. Attempt to publish a radar point cloud via Python script in the scripting window or Action Graph script node.
  3. Import rclpy in the script.
  4. Run the simulation and observe the error.

Error Messages

ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'
The C extension '/opt/ros/humble/lib/python3.10/site-packages/_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so' isn't present on the system. Please refer to 'https://docs.ros.org/en/humble/Guides/Installation-Troubleshooting.html#import-failing-without-library-present-on-the-system' for possible solutions

Full traceback:

At:
  /home/usuario/isaacsim/kit/python/lib/python3.11/importlib/__init__.py(126): import_module
  /opt/ros/humble/lib/python3.10/site-packages/rpyutils/import_c_library.py(57): import_c_library
  /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/impl/implementation_singleton.py(32): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1150): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1176): _find_and_load
  /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/exceptions.py(15): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1150): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1176): _find_and_load
  /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/signals.py(15): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1150): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1176): _find_and_load
  /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/__init__.py(49): <module>
  <frozen importlib._bootstrap>(241): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(940): exec_module
  <frozen importlib._bootstrap>(705): _load_unlocked
  <frozen importlib._bootstrap>(1149): _find_and_load_unlocked
  <frozen importlib._bootstrap>(1176): _find_and_load
  /tmp/carb.YLKgDE/script_1763119302.py(22): <module>
  /home/usuario/isaacsim/extscache/omni.kit.window.script_editor-2.0.1+69cbf6ad/omni/kit/window/script_editor/script_editor_widget.py(154): _execute_script_async
  /home/usuario/isaacsim/kit/python/lib/python3.11/asyncio/events.py(84): _run
  /home/usuario/isaacsim/kit/python/lib/python3.11/asyncio/base_events.py(1936): _run_once
  /home/usuario/isaacsim/kit/extscore/omni.kit.async_engine/omni/kit/async_engine/async_engine.py(228): run_once
  /home/usuario/isaacsim/kit/extscore/omni.kit.async_engine/omni/kit/async_engine/async_engine.py(296): <lambda>

In the working Docker setup with CycloneDDS, the following warnings appear:

[WARN] [1763105875.449461265] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'ros_discovery_info' with type 'rmw_dds_common::msg::dds_::ParticipantEntitiesInfo_' from USER_DATA '(null)'.
[WARN] [1763105875.449871285] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'rt/rosout' with type 'rcl_interfaces::msg::dds_::Log_' from USER_DATA '(null)'.
[WARN] [1763105875.449925140] [rmw_cyclonedds_cpp]: Failed to parse type hash for topic 'rt/parameter_events' with type 'rcl_interfaces::msg::dds_::ParameterEvent_' from USER_DATA '(null)'.
... (additional similar warnings)

Screenshots or Videos

(None provided)

Additional Information

What I’ve Tried

  • Workstation installation of Isaac Sim 5.1 on Ubuntu 22.04 with ROS2 Humble, resulting in rclpy import errors.
  • Official Docker container for Isaac Sim 5.1 (Ubuntu 24.04, ROS2 Rolling), but issues with topic visibility on host.
  • Custom Docker setup based on GitHub repo, adapted for Isaac Sim 5.1 with Ubuntu 22.04, same rclpy errors. Additionally, since I was interested in using all ROS2 tools, I attempted to use the full desktop version and update the Python version used by ROS2 to 3.11, but encountered ROS2 errors during the update, so I abandoned this approach.
  • Official Docker container configured via docker-compose with network_mode: host and extra volumes. This resolved rclpy errors.
  • DDS configurations:
    • Working setup: CycloneDDS in container (with warnings) and FastDDS in host, using provided XML configs.
    • Attempted unified DDS but failed to display topics on host.

Docker-compose file used:

services:
  isaac-sim:
    image: nvcr.io/nvidia/isaac-sim:5.1.0
    container_name: isaac-sim
    entrypoint: ["sleep", "infinity"]
    gpus: all
    network_mode: host
    environment:
      - ACCEPT_EULA=Y
      - PRIVACY_CONSENT=Y
      - DISPLAY=${DISPLAY}
    volumes:
      - ${HOME}/.Xauthority:/isaac-sim/.Xauthority
      - $HOME/workspace/proyecto/isaac-sim/cache/main:/isaac-sim/.cache:rw
      - $HOME/workspace/proyecto/isaac-sim/cache/computecache:/isaac-sim/.nv/ComputeCache:rw
      - $HOME/workspace/proyecto/isaac-sim/logs:/isaac-sim/.nvidia-omniverse/logs:rw
      - $HOME/workspace/proyecto/isaac-sim/config:/isaac-sim/.nvidia-omniverse/config:rw
      - $HOME/workspace/proyecto/isaac-sim/data:/isaac-sim/.local/share/ov/data:rw
      - $HOME/workspace/proyecto/isaac-sim/pkg:/isaac-sim/.local/share/ov/pkg:rw
      - $HOME/workspace/proyecto/isaac/workspace:$HOME/workspace:rw
    user: "1234:1234"
    tty: true
    stdin_open: true

FastDDS config (host):

<?xml version="1.0" encoding="UTF-8"?>
<profiles xmlns="http://www.eprosima.com/XMLSchemas/fastRTPS_Profiles">

    <!-- ==================== TRANSPORT DESCRIPTORS ==================== -->
    <transport_descriptors>
        <!-- LiDAR transport - Throttled for visualization-->
        <transport_descriptor>
            <transport_id>lidar_controlled_transport</transport_id>
            <type>UDPv4</type>
            <sendBufferSize>8388608</sendBufferSize>          <!-- 8MB - Controlado -->
            <receiveBufferSize>8388608</receiveBufferSize>     
            <maxMessageSize>65500</maxMessageSize>              
            <TTL>1</TTL>
            <non_blocking_send>false</non_blocking_send>       <!-- Blocking para estabilidad -->
        </transport_descriptor>

        <!-- RGB-D Camera transport - Balanced -->
        <transport_descriptor>
            <transport_id>rgbd_balanced_transport</transport_id>
            <type>UDPv4</type>
            <sendBufferSize>4194304</sendBufferSize>            <!-- 4MB - Balanceado -->
            <receiveBufferSize>4194304</receiveBufferSize>       
            <maxMessageSize>65500</maxMessageSize>
            <TTL>1</TTL>
            <non_blocking_send>false</non_blocking_send>
        </transport_descriptor>

        <!-- Camera transport - Estable -->
        <transport_descriptor>
            <transport_id>camera_stable_transport</transport_id>
            <type>UDPv4</type>
            <sendBufferSize>2097152</sendBufferSize>            <!-- 2MB - Estable -->
            <receiveBufferSize>2097152</receiveBufferSize>       
            <maxMessageSize>65500</maxMessageSize>
            <TTL>1</TTL>
            <non_blocking_send>false</non_blocking_send>
        </transport_descriptor>
    </transport_descriptors>

    <!-- ==================== PARTICIPANT PROFILES ==================== -->
    
    <!-- Default participant - Optimized form visualization -->
    <participant profile_name="default_participant" is_default_profile="true">
        <rtps>
            <useBuiltinTransports>false</useBuiltinTransports>
            <userTransports>
                <transport_id>lidar_controlled_transport</transport_id>
            </userTransports>

            <builtin>
                <discovery_config>
                    <discoveryProtocol>SIMPLE</discoveryProtocol>
                    <leaseDuration>
                        <sec>30</sec>
                        <nanosec>0</nanosec>
                    </leaseDuration>
                </discovery_config>
            </builtin>

            <sendSocketBufferSize>8388608</sendSocketBufferSize>
            <listenSocketBufferSize>8388608</listenSocketBufferSize>
        </rtps>
    </participant>

    <!-- ==================== PUBLISHER PROFILES ==================== -->

    <!-- LiDAR Publisher - Throttled -->
    <data_writer profile_name="lidar_visualization_publisher">
        <topic>
            <kind>NO_KEY</kind>
            <name>ouster/points</name>
            <dataType>sensor_msgs::msg::dds_::PointCloud2_</dataType>
            <historyQos>
                <kind>KEEP_LAST</kind>
                <depth>1</depth>
            </historyQos>
        </topic>

        <qos>
            <reliability>
                <kind>BEST_EFFORT</kind>                       
            </reliability>
            <durability>
                <kind>VOLATILE</kind>                          
            </durability>
            <publishMode>
                <kind>SYNCHRONOUS</kind>                       <!-- Synchronous para control -->
            </publishMode>
        </qos>

        <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
        
        <times>
            <heartbeatPeriod>
                <sec>0</sec>
                <nanosec>100000000</nanosec>                   <!-- 100ms - 10Hz max -->
            </heartbeatPeriod>
        </times>
    </data_writer>

    <!-- ==================== SUBSCRIBER PROFILES ==================== -->

    <!-- LiDAR Subscriber - with filters -->
    <data_reader profile_name="lidar_visualization_subscriber">
        <topic>
            <kind>NO_KEY</kind>
            <name>ouster/points</name>
            <dataType>sensor_msgs::msg::dds_::PointCloud2_</dataType>
            <historyQos>
                <kind>KEEP_LAST</kind>
                <depth>1</depth>
            </historyQos>
        </topic>

        <qos>
            <reliability>
                <kind>BEST_EFFORT</kind>
            </reliability>
            <durability>
                <kind>VOLATILE</kind>
            </durability>
        </qos>

        <historyMemoryPolicy>DYNAMIC</historyMemoryPolicy>
    </data_reader>

</profiles>

CycloneDDS config (container):

<?xml version="1.0" encoding="UTF-8"?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
    <Domain Id="0">  <!-- Cambiado a 0 para coincidir con ROS_DOMAIN_ID -->
        <General>
            <Interfaces>
                <NetworkInterface
                    address="MyIp"  <!-- IP de tu interfaz principal enx489ebd15f638 -->
                    autodetermine="false"
                    multicast="false"
                    prefer_multicast="false"
                    priority="default"
                />
            </Interfaces>
            <AllowMulticast>false</AllowMulticast>  <!-- Mantener unicast -->
            <DontRoute>false</DontRoute>
            <EnableMulticastLoopback>true</EnableMulticastLoopback>
            <ExternalNetworkAddress>auto</ExternalNetworkAddress>
            <ExternalNetworkMask>0.0.0.0</ExternalNetworkMask>
            <FragmentSize>1344 B</FragmentSize>
            <MaxMessageSize>65500 B</MaxMessageSize>
            <MaxRexmitMessageSize>1456 B</MaxRexmitMessageSize>
            <MulticastRecvNetworkInterfaceAddresses>preferred</MulticastRecvNetworkInterfaceAddresses>
            <MulticastTimeToLive>32</MulticastTimeToLive>
            <RedundantNetworking>false</RedundantNetworking>
            <Transport>default</Transport>
        </General>
        <Internal>
            <Watermarks>
                <WhcHigh>500kB</WhcHigh>
            </Watermarks>
        </Internal>
        <Discovery>
            <ParticipantIndex>auto</ParticipantIndex>
            <MaxAutoParticipantIndex>9</MaxAutoParticipantIndex>
            <Peers>
                <Peer address="MyIP" />  <!-- Peer único: IP del host (y contenedor, ya que comparten red) -->
                <!-- Si tienes nodos en otras máquinas, agrégalas aquí, ej. <Peer address="otra.ip.aqui" /> -->
            </Peers>
        </Discovery>
    </Domain>
</CycloneDDS>

Related Issues

Additional Context

I would like to work with a hybrid approach: publish all necessary sensor and robot topics from the simulation to develop in ROS2 Humble using both C++ and Python simultaneously. What is the best way to achieve this? Additionally, how should I configure the container or DDS settings in both the container and host to visualize simulation topics? I am seeking a stable, platform-independent Docker solution.

I have the same issue. First I was not able to build the IsaacLab ROS2 Docker container, before specifying in the .env.base file under ~/IsaacLab/docker/ the previous version of IsaacSim (5.0.0):

ISAACSIM_VERSION=5.0.0

But trying to rum import rclpy leads to the same error:

ModuleNotFoundError: No module named ‘rclpy._rclpy_pybind11’
The C extension ‘/opt/ros/humble/lib/python3.10/site-packages/_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so’ isn’t present on the system. Please refer to ‘https://docs.ros.org/en/humble/Guides/Installation-Troubleshooting.html#import-failing-without-library-present-on-the-system’ for possible solutions

Hey @guperrez,

You’re encountering Python 3.10 vs 3.11 version mismatch between ROS2 Humble and Isaac Sim 5.
The recommended approach is to follow the Custom Packages installation track, which builds your ROS2 workspace from source with Python 3.11.
The documentation is here: ROS 2 Installation — Isaac Sim Documentation

The Isaac Sim ROS Workspaces repository includes Dockerfiles that build ROS2 Humble packages specifically for Python 3.11. You’ll need to clone the repo, build using those Dockerfiles, and then link the workspace into Isaac Sim.

This should resolve your rclpy import issues. If you run into problems with any specific step, feel free to share details and we can troubleshoot.

Solution Found - Docker Deployment Working

Hi everyone,

First of all, thank you very much for your responses and support, especially to @shwsharma for taking the time to provide guidance.

I apologize for the delayed response. I should mention that I haven’t tried the alternative approach you suggested, as I managed to resolve the issue using a different multi-container architecture that has been working perfectly for my use case.

I’m happy to report that I’ve successfully resolved the deployment issues with Isaac Sim 5.1 in Docker a few weeks ago. The solution has been tested on two different machines with different hardware configurations, and it works correctly on both, which confirms the stability and portability of the approach.

Solution Overview

After extensive testing, I managed to get a stable multi-container setup running with Isaac Sim 5.1 and ROS2 Humble. Here’s a high-level overview of the architecture that worked:

Architecture Diagram

┌─────────────────────────────────────────────────────────────────┐
│                    Host Machine (Linux)                         │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                    ros-network                          │    │
│  │                (172.25.0.0/16)                          │    │
│  │  ┌─────────────────┐        ┌─────────────────┐         │    │
│  │  │   isaac-sim     │        │  ros2-humble    │         │    │
│  │  │  Container      │        │  Container      │         │    │
│  │  │                 │        │                 │         │    │
│  │  │ • Isaac Sim 5.1 │        │ • ROS2 Humble   │         │    │
│  │  │ • Ubuntu 24.04  │        │ • Ubuntu 22.04  │         │    │
│  │  │ • ROS2 Jazzy    │        │ • Python 3.10   │         │    │
│  │  │   (internal)    │        │ • rviz2         │         │    │
│  │  └─────────────────┘        └─────────────────┘         │    │
│  └─────────────────────────────────────────────────────────┘    │
│                                                                 │
│  Shared Volumes (Development):                                  │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │ • ./isaac-sim-ws → /root/projects (rw)                  │    │
│  │ • ./ros2-ws → /ros2-ws (rw)                             │    │
│  │ • ./configs → /configs (ro)                             │    │
│  │ • ./launch → /root/scripts (ro)                         │    │
│  └─────────────────────────────────────────────────────────┘    │
│                                                                 │
│  Persistent Volumes (Cache):                                    │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │ • isaac-kit-cache                                       │    │
│  │ • isaac-ov-cache                                        │    │
│  │ • isaac-pip-cache                                       │    │
│  │ • isaac-gl-cache                                        │    │
│  │ • isaac-compute-cache                                   │    │
│  │ • isaac-logs                                            │    │
│  │ • isaac-data                                            │    │
│  └─────────────────────────────────────────────────────────┘    │
└─────────────────────────────────────────────────────────────────┘

Key Configuration Points

Here are the critical aspects that made it work:

1. Separate Containers Approach

  • Isaac Sim container: Dedicated to simulation with internal ROS2 Jazzy bridge
  • ROS2 Humble container: Separate environment for development and visualization (rviz2)
  • Both containers communicate via a custom bridge network

2. IPC and Network Configuration

  • Used ipc: "shareable" on Isaac Sim container
  • ROS2 container configured with ipc: "service: isaac-sim" for shared memory
  • Custom bridge network (172.25.0.0/16 subnet) for DDS communication

3. DDS Middleware Setup

  • Configured FastDDS (rmw_fastrtps_cpp) as the RMW implementation for both containers
  • Custom FastDDS XML profile deployed to both containers via /configs/fastdds.xml volume mount
  • Environment variable FASTRTPS_DEFAULT_PROFILES_FILE=/configs/fastdds.xml properly set in both containers
  • Key FastDDS custom configuration:
    • UDPv4 transport with dynamic buffer sizing
    • Default participant profile with useBuiltinTransports: true
    • Unicast locators configured for 0.0.0.0:0 (listen on all interfaces with dynamic port assignment)
    • This configuration enables reliable DDS discovery across Docker bridge networks

4. Volume Management

Two categories of volumes:

  • Persistent volumes: For Isaac Sim cache (kit, Omniverse, pip, OpenGL, compute) - significantly improves subsequent startup times
  • Shared development volumes: For workspaces and configuration files (read-write for code, read-only for configs)

5. GPU and Display

  • NVIDIA Container Toolkit with proper runtime configuration
  • X11 forwarding configured for both Isaac Sim GUI and rviz2
  • Environment variables: NVIDIA_DRIVER_CAPABILITIES=compute,graphics
  • X11 authorization: ~/.Xauthority mounted in containers

6. Environment Variables

Key variables that needed to be set correctly:

  • ROS_DISTRO, RMW_IMPLEMENTATION, ROS_DOMAIN_ID
  • Isaac Sim specific: ACCEPT_EULA=Y, PRIVACY_CONSENT=Y
  • DDS configuration paths: FASTRTPS_DEFAULT_PROFILES_FILE
  • Python and library paths for Isaac Sim’s internal ROS2 Jazzy bridge

7. Dependencies Installation

Required on host:

  • Docker (latest version via official convenience script)
  • NVIDIA Container Toolkit with proper runtime configuration
  • X11 authorization (xhost local:docker)

Prerequisites Verified

Before deployment, I ensured:

  1. NVIDIA drivers properly installed on host
  2. Docker post-installation steps completed (user added to docker group)
  3. NVIDIA Container Toolkit configured with: sudo nvidia-ctk runtime configure --runtime=docker
  4. Docker daemon restarted after toolkit installation

Results

The setup now successfully:

  • Launches Isaac Sim 5.1 with GPU acceleration
  • Enables ROS2 topic communication between containers via FastDDS
  • Supports rviz2 visualization from the ROS2 Humble container
  • Maintains persistent cache for faster subsequent startups
  • Provides X11 forwarding for both GUI applications
  • Works consistently across different hardware configurations

Lessons Learned

The main challenges were:

  1. Correctly configuring IPC sharing between containers for efficient communication
  2. Ensuring DDS discovery worked across container boundaries
  3. Managing the differences between ROS2 Jazzy (Isaac Sim internal) and Humble (development)
  4. Setting up proper volume mounting for cache persistence to improve performance
  5. Ensuring FastDDS configuration was consistent across both containers

I hope this helps anyone facing similar deployment challenges. Thank you to everyone who offered suggestions!


Note: This solution was developed as part of my work at Instituto Tecnológico de Aragón (ITA), so I’m unable to share the specific implementation code. However, the architectural approach and configuration points described above should provide sufficient guidance for replicating the setup.


Remaining Issue: OmniRadar Sensor

While the multi-container setup is working correctly for most sensors and ROS2 topic communication, I haven’t been able to get the OmniRadar sensor to publish data to ROS2 Humble.

Current situation:

  • Other sensors (cameras, lidars) successfully publish topics to ROS2 Humble

  • I can add the OmniRadar sensor to the simulation following the official documentation

  • The OmniRadar appears in the simulation (as a prim) but doesn’t publish to ROS2 topics, and I cannot find any code section or action graph that publishes this information, as occurs with other sensors.

  • As a workaround, I’ve managed to create a “fake” radar using a lidar sensor, but this defeats the purpose of using OmniRadar’s specific radar processing capabilities

Issue with documentation:

The official Isaac Sim 5.1.0 RTX Radar documentation explains how to add the radar sensor to the simulation, but it does not cover how to publish OmniRadar data to ROS2 topics, particularly for ROS2 Humble integration.

Questions for the community:

  1. Is there a ROS2 bridge/publisher component specifically for OmniRadar in Isaac Sim 5.1?

  2. Are there additional configuration steps or extensions needed to publish OmniRadar data to ROS2 Humble?

  3. Has anyone successfully published OmniRadar topics to ROS2 in a similar setup?

  4. Is OmniRadar ROS2 integration planned for a future release, or is there existing documentation I might have missed?

Any insights, examples, or pointers to documentation would be greatly appreciated!