January 25, 2026
Ken Suzuki
Technology

Streaming Camera Feed from Isaac Sim 5.1.0 to ROS 2 Jazzy

Streaming Camera Feed from Isaac Sim 5.1.0 to ROS 2 Jazzy: Action Graph Setup and the Conda Environment Pitfall

Isaac SimROS2OmniverseTechman Robot
Streaming Camera Feed from Isaac Sim 5.1.0 to ROS 2 Jazzy

1. Introduction

After successfully getting the robot arm (Techman Robot) to move, the next step is extracting information from the simulation space as "vision". In this article, I'll document the process of publishing camera feed from Isaac Sim to ROS 2 image topics, verifying it with rqt_image_view, and the solutions to the critical errors encountered along the way.

2. Building Camera Stream with Action Graph

In Isaac Sim 5.1.0, we use Action Graph to connect camera data to the ROS 2 Bridge.

Component Nodes

  • On Playback Tick: Execution trigger
  • Isaac Create Render Product: Captures camera feed (specify existing camera here)
  • ROS2 Camera Helper: Converts to ROS 2 topic (sensor_msgs/Image)

💡 Tips: Timing of Reflection Sometimes topics don't appear immediately after placing and configuring nodes. Stop and restart (Play) the simulation or Reload the graph to start publishing correctly.


3. 【Challenge】rqt_image_view Fails to Launch

After setting up the camera, when I tried to verify the feed by running ros2 run rqt_image_view rqt_image_view, I was blocked by the following error.

【Error Message】 ModuleNotFoundError: No module named 'rclpy._rclpy_pybind11'

Cause: Python Contamination from Conda Environment

When the Conda environment for Isaac Sim (Python 3.11) is still active, ROS 2 Jazzy's (Python 3.12) system tools don't work correctly. Even after running conda deactivate, if environment variables like PYTHONPATH still contain Conda paths, the error persists.

Solution: Clean Run Command

The issue can be resolved by temporarily resetting environment variables before execution.

$ conda deactivate
$ export PYTHONPATH=""
$ export PYTHONHOME=""
$ export PATH=$(echo $PATH | sed -e 's/[^:]*miniconda3[^:]*://g' -e 's/:[^:]*miniconda3[^:]*//g')

4. Verifying the Feed: Operating rqt_image_view

Even when the window opens, the screen remains gray initially.

  1. Reload Topics: Press the refresh button in the upper right corner.
  2. Select Topic: Choose /camera/image_raw (the name you configured).

Now the real-time feed from Isaac Sim will be rendered!


5. Summary and Next Steps

With camera feed successfully streaming to ROS 2, the following becomes possible:

  • Image Processing with OpenCV: Recognizing object colors and shapes
  • AI Integration: Object detection using YOLO and similar tools
  • Visual Servoing: Feedback control of the arm based on visual input

In modern environments, Python version management is the biggest challenge, but with proper environment isolation, you can fully leverage Isaac Sim's powerful rendering capabilities with ROS 2.

Streaming Camera Feed from Isaac Sim 5.1.0 to ROS 2 Jazzy | Shirokuma.online