Integrating ROS2 into an Isaac Sim / ROS2 Jazzy workspace / project?

I am trying to make a simulation of satellites in Isaac Sim. I’ve written the following extensions for Isaac Sim 5.1.

My question is, how would I integrate / import this into a ROS2 workspace? I am not familiar with the Isaac Sim workflow. Do Isaac sim projects have to be an extension, or can they be their own ROS2 workspace? I’ve cloned the Isaac sim 5.1 workspace and I’m confused on how to integrate ROS2 with it.

Thank you

Hi, both exist side-by-side and communicate via the ROS2 Bridge extension.

Your simulation logic (scene setup, physics, sensors, USD stage manipulation) belongs in an Isaac Sim extension or Python script running inside Isaac Sim. Your robotics software (controllers, perception pipelines, planners) lives in a normal ROS 2 workspace as standard nodes. The two communicate over ROS 2 topics/services via the ROS 2 Bridge extension.

How to wire them together:

  1. Build your ROS 2 workspace and source your local_setup.bash files.

    source build_ws/jazzy/jazzy_ws/install/local_setup.bash
    source build_ws/jazzy/isaac_sim_ros_ws/install/local_setup.bash
    
  2. Launch Isaac Sim from that same sourced terminal — this gives it access to rclpy.

  3. In your extension, enable the ROS 2 Bridge and publish/subscribe using OmniGraph nodes or directly via rclpy in Python.

  4. Run your external ROS 2 nodes from a second terminal sourced against your system ROS install.

Your extensions should work for this pattern — the orbit frameworks would stay as Isaac Sim extensions, while any external control or telemetry consumers would be separate ROS 2 packages. Also check out the [ROS 2 Reference Architecture] for more details.

HTH