Sequence Diagram Architecture#
%%{init: {"sequence": {"useMaxWidth": false}}}%%
sequenceDiagram
actor User
participant Hydra
participant ArDaGen Runtime
participant OV Replicator
participant Scenarios Manager
participant Scenario
participant Master Synthesizer
participant Synthesizer Worker
participant Single Camera
participant OV Isaac Sim
participant OV Writer
participant File System
User->>ArDaGen Runtime: Start ArDaGen
activate ArDaGen Runtime
ArDaGen Runtime->>Hydra: Load ArDaGen Hydra configuration
activate Hydra
Hydra-->>ArDaGen Runtime: Get ArDaGen Hydra config
ArDaGen Runtime->>OV Isaac Sim: Run OV Isaac Sim
activate OV Isaac Sim
OV Isaac Sim-->>ArDaGen Runtime: Isaac Sim instance reference
ArDaGen Runtime->>OV Isaac Sim: Load ArDaGen OV Extension
ArDaGen Runtime->>Scenarios Manager: Initialize Scenarios Manager
activate Scenarios Manager
ArDaGen Runtime->>OV Replicator: Start synthetic data generation
activate OV Replicator
loop For each Scenario
OV Replicator->>OV Replicator: Create new layer
OV Replicator->>Scenarios Manager: Get scenario
Scenarios Manager->>Scenario: Initialize Scenario
activate Scenario
Scenarios Manager-->>OV Replicator: Scenario
OV Replicator->>Master Synthesizer: Prepare Scenario
activate Master Synthesizer
loop For each Synthesizer Worker
Master Synthesizer->>Synthesizer Worker: Initialize Synthesizer Worker
activate Synthesizer Worker
Synthesizer Worker-->>Master Synthesizer: Synthesizer Worker
end
loop For each instantiated Synthesizer Worker
Master Synthesizer->>Synthesizer Worker: Register Synthesizer Worker's Prims
end
Master Synthesizer-->>OV Replicator: Giving back the control
loop For each Synthesizer Worker
OV Replicator->>Master Synthesizer: Get Synthesizer Worker
Master Synthesizer-->>OV Replicator: Synthesizer Worker
OV Replicator->>OV Replicator: Register the Synthesizer Worker into OV Randomizer
end
loop For each camera rig
OV Replicator->>Scenario: Get camera rig
Scenario-->>OV Replicator: Camera rig
loop For each single camera in the camera rig
OV Replicator->>Single Camera: Initialize the camera in OV Replicator
activate Single Camera
Single Camera-->>OV Replicator: Single Camera reference
end
OV Replicator->>OV Writer: Instantiate OV Replicator Writer
activate OV Writer
OV Replicator->>OV Writer: Attach camera rig
OV Replicator-->>+OV Replicator: Start simulation
loop For each frame in the frames range
OV Replicator->>OV Replicator: Update the simulation
opt frame_index mod frame_capture_interval == 0
OV Replicator->>OV Writer: Capture camera images and the labels
OV Writer->>File System: Save images and labels on the file system
end
opt frame_index mod (frame_capture_interval + 1) == 0
loop For each Synthesizer Worker
OV Replicator->>Synthesizer Worker: Randomize
end
end
end
OV Replicator->>-OV Replicator: Stop the simulation
OV Replicator->>OV Replicator: Remove camera rig
deactivate OV Writer
deactivate Single Camera
end
deactivate Synthesizer Worker
deactivate Scenario
deactivate Master Synthesizer
OV Replicator->>OV Replicator: Remove the layer
end
ArDaGen Runtime->>OV Isaac Sim: Stop OV Isaac Sim
deactivate OV Replicator
deactivate Scenarios Manager
deactivate OV Isaac Sim
deactivate Hydra
deactivate ArDaGen Runtime