Available Now
Book a demo and get early access. Free trial!
When working with NVIDIA Isaac Sim and ROS 2, one of the most powerful, but underrated, tools at your disposal is the ROS 2 service. Services let you send a request and wait for a response, making them perfect for simple commands like “Turn on the LED” or “Check battery level.”
Let’s break it down with an example: controlling an LED panel in a simulation.
You have:
In this example, we demonstrate how to use ROS 2 services to control an LED panel in a simulated robot environment within NVIDIA Isaac Sim. The use case involves a service-based interaction where Isaac Sim acts as a client node requesting the LED panel to be toggled, and a ROS 2 node (Battery Node) acts as the service server responsible for validating system state (e.g. battery level) and executing the request. This setup showcases how service calls can be used to implement discrete, deterministic actions between Isaac's simulation runtime and external ROS 2 logic, enabling clean separation between visualization and control logic.
The scenario:
Here’s what that interaction looks like:
Isaac Sim (Client)
└─> [Request] "Turn on LED"
└─> Battery Node (Server) checks charge
└─> [Response] "LED turned on"
Let’s say you don’t want Isaac to talk to the Battery Node directly (maybe you’ll swap it later). Add a Relay Node:
This makes your system more modular and easier to maintain.
Book a demo and get early access. Free trial!