Using ObjectronWriter in Isaac Sim Replicator headless offline Python script

Hello, how can I access ObjectronWriter in Isaac Sim headless python script? And how should I actually use it? Can’t find any examples.


 writer = rep.WriterRegistry.get("ObjectronWriter")
    output_directory = args.data_dir
    
    writer.initialize(output_dir=output_directory, bounding_box_3d_fast=True, bounding_box_2d_tight_fast=True, bounding_box_2d_loose_fast=True, camera_params=True, semantic_segmentation=True, rgb=True, distance_to_camera=True, bbox=True)
Error: 2024-02-27 16:28:06 [124,686ms] [Error] [__main__] Exception: No writer with name `ObjectronWriter` was found in registry.
 File "/home/mona/.local/share/ov/pkg/isaac_sim-2023.1.1/extscache/omni.replicator.core-1.10.20+105.1.lx64.r.cp310/omni/replicator/core/scripts/writers.py", line 998, in get
    raise WriterRegistryError(f"No writer with name `{writer_name}` was found in registry.")
omni.replicator.core.scripts.writers.WriterRegistryError: No writer with name `ObjectronWriter` was found in registry.
[125.001s] Simulation App Shutting Down

https://docs.omniverse.nvidia.com/isaacsim/latest/replicator_tutorials/ext_replicator-character/writer_control.html#objectron-writer

When I look at 10.10.4.1. Setting — Omniverse IsaacSim latest documentation I see it is listed as TODO?

Reading this I see that in the writer registry there is not a objectron definition. I would find that file and look for those arguments. Looking at the docs as far as I can see I would say you just need to toggle if the bbox is 3d or not and not the type.

To me it is only saying that it is stored in that format and you do not need to make the argument for that writer. As it’s already attached when the 3d bbox arg is true.

Try to remove the argument and even if you only get 2d data out as a trial and build up to the 3d bbox data.

Also you could try to run non headless. Save two USDA files one with the 3d writer tick box applied and one without. Then do a code comparison to find out what the differences are in the code.

Not an expert but I hope this gives you some other suggestions I seen you posting in the discord.