Data Collection

Isaac Sim Version

4.2.0

Operating System

Ubuntu 22.04

GPU Information

  • Model: 4060Ti
  • Driver Version: 570

Topic Description

I am working on a project to generate a synthetic dataset from a custom environment. My setup involves a vehicle with a camera, and I aim to collect both RGB and semantic segmentation data as the vehicle drives through the scene. I have already configured all the necessary semantic labels on my assets.

My current workflow involves using the Synthetic Data Recorder tab. When I set a target (e.g., 1000 frames) and start the simulation, I encounter two main issues:

  1. Performance: The data recording process significantly slows down the simulation’s playback speed.

  2. Redundant Data: Because the simulation is slowed, it captures many nearly identical frames. For my use case, I don’t need to save every single frame; capturing one frame every 10-20 frames would be sufficient and much more efficient.

This leads me to my question: Is there a way to configure the Synthetic Data Recorder to capture data at specific intervals, rather than on every single frame?

Specifically, I am looking for a solution to do one of the following:

  • Collect data at a fixed frame interval?
    (e.g., save one frame every 10 simulation frames).

  • Collect data at a fixed time interval?
    (e.g., save one frame every 0.5 seconds, regardless of the simulation’s frame rate).

Essentially, I’m looking for a way to “thin” or “sample” the data capture to make the collection process more efficient and manageable. Is there a setting in the UI, a scriptable approach using Python, or another recommended workflow to achieve this?

Any guidance or examples would be greatly appreciated.

Thank you

@BaSiSa i have not used the data recorder much myself, so not sure if the following suggestions is relevant or helpful. @dennis.lynch had created two examples that might be useful for fixed frame and time interval with on_frame and on_time in SDG:

The example he mentioned above can be found on the repo in which he’s built two triggers.

The first triggers the dropping of the fruit. The second trigger is an on_frame trigger that controls the Writer, and will only trigger at the “end” of our physics simulation

the other example in the repo related to intervals is on_time for randomization, which isn’t really tied to the frame output but might still worth checking out how it can be utilized:

1 Like

Thanks @Simplychenable for providing these examples!

@BaSiSa you can also check the implementation of on_time under extscache/omni.replicator.core-1.11.35+106.5.0.lx64.r.cp310/omni/replicator/core/scripts/trigger.py and some test files. Let me know if you have more questions!

1 Like

Hello!

We noticed that this topic hasn’t received any recent responses, so we are closing it for now to help keep the forum organized.

If you’re still experiencing this issue or have additional questions, please feel free to create a new topic with updated details. When doing so, we recommend mentioning or linking to this original topic in your new post—this helps provide context and makes it easier for others to assist you.

Thank you for being part of the NVIDIA Isaac Sim community.

Best regards,
The NVIDIA Isaac Sim Forum Team