I found the document that PoseWriter is existed in the replicator writer extension.
BasicWriter works for me, but the PoseWriter doesn’t work properly. Replicator created dataset file, but it’s empty.
The code that I used down below:
import omni.replicator.core as rep
from isaacsim.core.utils.stage import open_stage
from isaacsim.core.utils.semantics import add_labels
import omni.usd
from isaacsim.replicator.writers import PoseWriter
usd_path = "/home/work/isaac-5.1/replicator/field/output/field.usd"
open_stage(usd_path)
stage = omni.usd.get_context().get_stage()
with rep.new_layer():
camera = rep.create.camera( focus_distance=400.0, focal_length=24.0, clipping_range=(0.1, 10000000.0), name="Cam")
render_product = rep.create.render_product(camera, (1024, 1024))
target_path = "/World/Strawberries/Strawberry_01/Geometry/Twig_d3/Flower_stalk_1/Receptacle"
strawberry = stage.GetPrimAtPath(target_path)
add_labels(strawberry, labels=["strawberry"], instance_name= "class")
pose_writer = rep.WriterRegistry.get("PoseWriter")
pose_writer.initialize(
output_dir = "/home/work/isaac-5.1/replicator/dataset",
use_subfolders= True
)
pose_writer.attach([render_product])
with rep.trigger.on_frame(max_execs=10):
with camera:
rep.modify.pose(
position=rep.distribution.uniform((-0.5, 0.2, -0.5), (0.5, 0.5, 0.5)),
look_at=target_path
)
rep.orchestrator.preview()
It didn’t show any error log in terminal.